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 C2194C433F5 for ; Mon, 20 Sep 2021 21:43:28 +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 40CC7610A8 for ; Mon, 20 Sep 2021 21:43:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 40CC7610A8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=quicinc.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=nongnu.org Received: from localhost ([::1]:56608 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mSR4R-0007ER-9J for qemu-devel@archiver.kernel.org; Mon, 20 Sep 2021 17:43:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60580) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mSQmy-00033u-S5 for qemu-devel@nongnu.org; Mon, 20 Sep 2021 17:25:27 -0400 Received: from alexa-out-sd-02.qualcomm.com ([199.106.114.39]:9866) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1mSQmw-000268-Hf for qemu-devel@nongnu.org; Mon, 20 Sep 2021 17:25:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1632173122; x=1663709122; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KhQZjEMQ0rNezxcZ+yGYmRrM1w/i0xcNnKAVctPCQYk=; b=R1sNVbTNUVkOdIgnl1ypJzaHPKTx8QWWV1sTSDynbGWUE0yBtUM/WFpo 32lS3T1vhiLJ3XSdCyhrzh+8VUQ8V8CelfgpkB7WuT39VsewJ1Z9MEskf fWClW6mleuRNuSjARW7dGwGWsRS43r+juUE2TPitkE/4coDss6fzBEx0m I=; Received: from unknown (HELO ironmsg01-sd.qualcomm.com) ([10.53.140.141]) by alexa-out-sd-02.qualcomm.com with ESMTP; 20 Sep 2021 14:24:37 -0700 X-QCInternal: smtphost Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg01-sd.qualcomm.com with ESMTP; 20 Sep 2021 14:24:37 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id D55A41758; Mon, 20 Sep 2021 16:24:35 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [PATCH v3 28/30] Hexagon HVX (tests/tcg/hexagon) hvx_misc test Date: Mon, 20 Sep 2021 16:24:23 -0500 Message-Id: <1632173065-18522-29-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1632173065-18522-1-git-send-email-tsimpson@quicinc.com> References: <1632173065-18522-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.39; envelope-from=tsimpson@qualcomm.com; helo=alexa-out-sd-02.qualcomm.com X-Spam_score_int: -39 X-Spam_score: -4.0 X-Spam_bar: ---- X-Spam_report: (-4.0 / 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.25, 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, bcain@quicinc.com, tsimpson@quicinc.com, richard.henderson@linaro.org, f4bug@amsat.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" VGVzdHMgZm9yCiAgICBwYWNrZXQgc2VtYW50aWNzCiAgICB2ZWN0b3IgbG9hZHMgKGFsaWduZWQg YW5kIHVuYWxpZ25lZCkKICAgIHZlY3RvciBzdG9yZXMgKGFsaWduZWQgYW5kIHVuYWxpZ25lZCkK ICAgIHZlY3RvciBtYXNrZWQgc3RvcmVzCiAgICB2ZWN0b3Igb3BlcmF0aW9ucwoKU2lnbmVkLW9m Zi1ieTogVGF5bG9yIFNpbXBzb24gPHRzaW1wc29uQHF1aWNpbmMuY29tPgotLS0KIHRlc3RzL3Rj Zy9oZXhhZ29uL2h2eF9taXNjLmMgICAgICB8IDQxNCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogdGVzdHMvdGNnL2hleGFnb24vTWFrZWZpbGUudGFyZ2V0IHwgICAyICsK IDIgZmlsZXMgY2hhbmdlZCwgNDE2IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 ZXN0cy90Y2cvaGV4YWdvbi9odnhfbWlzYy5jCgpkaWZmIC0tZ2l0IGEvdGVzdHMvdGNnL2hleGFn b24vaHZ4X21pc2MuYyBiL3Rlc3RzL3RjZy9oZXhhZ29uL2h2eF9taXNjLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgwOWY4MQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Rz L3RjZy9oZXhhZ29uL2h2eF9taXNjLmMKQEAgLTAsMCArMSw0MTQgQEAKKy8qCisgKiAgQ29weXJp Z2h0KGMpIDIwMjEgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBS ZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us IG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICov CisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0 ZGJvb2wuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworaW50IGVycjsKKworc3RhdGljIHZvaWQg X19jaGVjayhpbnQgbGluZSwgdWludDY0X3QgcmVzdWx0LCB1aW50NjRfdCBleHBlY3QpCit7Cisg ICAgaWYgKHJlc3VsdCAhPSBleHBlY3QpIHsKKyAgICAgICAgcHJpbnRmKCJFUlJPUiBhdCBsaW5l ICVkOiAweCUwMTZsbHggIT0gMHglMDE2bGx4XG4iLAorICAgICAgICAgICAgICAgbGluZSwgcmVz dWx0LCBleHBlY3QpOworICAgICAgICBlcnIrKzsKKyAgICB9Cit9CisKKyNkZWZpbmUgY2hlY2so UkVTLCBFWFApIF9fY2hlY2soX19MSU5FX18sIFJFUywgRVhQKQorCisjZGVmaW5lIE1BWF9WRUNf U0laRV9CWVRFUyAgICAgICAgIDEyOAorCit0eXBlZGVmIHVuaW9uIHsKKyAgICB1aW50NjRfdCB1 ZFtNQVhfVkVDX1NJWkVfQllURVMgLyA4XTsKKyAgICBpbnQ2NF90ICAgZFtNQVhfVkVDX1NJWkVf QllURVMgLyA4XTsKKyAgICB1aW50MzJfdCB1d1tNQVhfVkVDX1NJWkVfQllURVMgLyA0XTsKKyAg ICBpbnQzMl90ICAgd1tNQVhfVkVDX1NJWkVfQllURVMgLyA0XTsKKyAgICB1aW50MTZfdCB1aFtN QVhfVkVDX1NJWkVfQllURVMgLyAyXTsKKyAgICBpbnQxNl90ICAgaFtNQVhfVkVDX1NJWkVfQllU RVMgLyAyXTsKKyAgICB1aW50OF90ICB1YltNQVhfVkVDX1NJWkVfQllURVMgLyAxXTsKKyAgICBp bnQ4X3QgICAgYltNQVhfVkVDX1NJWkVfQllURVMgLyAxXTsKK30gTU1WZWN0b3I7CisKKyNkZWZp bmUgQlVGU0laRSAgICAgIDE2CisjZGVmaW5lIE9VVFNJWkUgICAgICAxNgorI2RlZmluZSBNQVNL TU9EICAgICAgMworCitNTVZlY3RvciBidWZmZXIwW0JVRlNJWkVdIF9fYXR0cmlidXRlX18oKGFs aWduZWQoTUFYX1ZFQ19TSVpFX0JZVEVTKSkpOworTU1WZWN0b3IgYnVmZmVyMVtCVUZTSVpFXSBf X2F0dHJpYnV0ZV9fKChhbGlnbmVkKE1BWF9WRUNfU0laRV9CWVRFUykpKTsKK01NVmVjdG9yIG1h c2tbQlVGU0laRV0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZChNQVhfVkVDX1NJWkVfQllURVMpKSk7 CitNTVZlY3RvciBvdXRwdXRbT1VUU0laRV0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZChNQVhfVkVD X1NJWkVfQllURVMpKSk7CitNTVZlY3RvciBleHBlY3RbT1VUU0laRV0gX19hdHRyaWJ1dGVfXygo YWxpZ25lZChNQVhfVkVDX1NJWkVfQllURVMpKSk7CisKKyNkZWZpbmUgQ0hFQ0tfT1VUUFVUX0ZV TkMoRklFTEQsIEZJRUxEU1opIFwKK3N0YXRpYyB2b2lkIGNoZWNrX291dHB1dF8jI0ZJRUxEKGlu dCBsaW5lLCBzaXplX3QgbnVtX3ZlY3RvcnMpIFwKK3sgXAorICAgIGZvciAoaW50IGkgPSAwOyBp IDwgbnVtX3ZlY3RvcnM7IGkrKykgeyBcCisgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgTUFY X1ZFQ19TSVpFX0JZVEVTIC8gRklFTERTWjsgaisrKSB7IFwKKyAgICAgICAgICAgIF9fY2hlY2so bGluZSwgb3V0cHV0W2ldLkZJRUxEW2pdLCBleHBlY3RbaV0uRklFTERbal0pOyBcCisgICAgICAg IH0gXAorICAgIH0gXAorfQorCitDSEVDS19PVVRQVVRfRlVOQyhkLCAgOCkKK0NIRUNLX09VVFBV VF9GVU5DKHcsICA0KQorQ0hFQ0tfT1VUUFVUX0ZVTkMoaCwgIDIpCitDSEVDS19PVVRQVVRfRlVO QyhiLCAgMSkKKworc3RhdGljIHZvaWQgaW5pdF9idWZmZXJzKHZvaWQpCit7CisgICAgaW50IGNv dW50ZXIwID0gMDsKKyAgICBpbnQgY291bnRlcjEgPSAxNzsKKyAgICBmb3IgKGludCBpID0gMDsg aSA8IEJVRlNJWkU7IGkrKykgeworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE1BWF9WRUNf U0laRV9CWVRFUzsgaisrKSB7CisgICAgICAgICAgICBidWZmZXIwW2ldLmJbal0gPSBjb3VudGVy MCsrOworICAgICAgICAgICAgYnVmZmVyMVtpXS5iW2pdID0gY291bnRlcjErKzsKKyAgICAgICAg fQorICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE1BWF9WRUNfU0laRV9CWVRFUyAvIDQ7IGor KykgeworICAgICAgICAgICAgbWFza1tpXS53W2pdID0gKGkgKyBqICUgTUFTS01PRCA9PSAwKSA/ IDAgOiAxOworICAgICAgICB9CisgICAgfQorfQorCitzdGF0aWMgdm9pZCB0ZXN0X2xvYWRfdG1w KHZvaWQpCit7CisgICAgdm9pZCAqcDAgPSBidWZmZXIwOworICAgIHZvaWQgKnAxID0gYnVmZmVy MTsKKyAgICB2b2lkICpwb3V0ID0gb3V0cHV0OworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBC VUZTSVpFOyBpKyspIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogTG9hZCBpbnRvIHYxMiBhcyAu dG1wLCB0aGVuIHVzZSBpdCBpbiB0aGUgbmV4dCBwYWNrZXQKKyAgICAgICAgICogU2hvdWxkIGdl dCB0aGUgbmV3IHZhbHVlIHdpdGhpbiB0aGUgc2FtZSBwYWNrZXQgYW5kCisgICAgICAgICAqIHRo ZSBvbGQgdmFsdWUgaW4gdGhlIG5leHQgcGFja2V0CisgICAgICAgICAqLworICAgICAgICBhc20o InYzID0gdm1lbSglMCArICMwKVxuXHQiCisgICAgICAgICAgICAicjEgPSAjMVxuXHQiCisgICAg ICAgICAgICAidjEyID0gdnNwbGF0KHIxKVxuXHQiCisgICAgICAgICAgICAie1xuXHQiCisgICAg ICAgICAgICAiICAgIHYxMi50bXAgPSB2bWVtKCUxICsgIzApXG5cdCIKKyAgICAgICAgICAgICIg ICAgdjQudyA9IHZhZGQodjEyLncsIHYzLncpXG5cdCIKKyAgICAgICAgICAgICJ9XG5cdCIKKyAg ICAgICAgICAgICJ2NC53ID0gdmFkZCh2NC53LCB2MTIudylcblx0IgorICAgICAgICAgICAgInZt ZW0oJTIgKyAjMCkgPSB2NFxuXHQiCisgICAgICAgICAgICA6IDogInIiKHAwKSwgInIiKHAxKSwg InIiKHBvdXQpCisgICAgICAgICAgICA6ICJyMSIsICJ2MTIiLCAidjMiLCAidjQiLCAidjYiLCAi bWVtb3J5Iik7CisgICAgICAgIHAwICs9IHNpemVvZihNTVZlY3Rvcik7CisgICAgICAgIHAxICs9 IHNpemVvZihNTVZlY3Rvcik7CisgICAgICAgIHBvdXQgKz0gc2l6ZW9mKE1NVmVjdG9yKTsKKwor ICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE1BWF9WRUNfU0laRV9CWVRFUyAvIDQ7IGorKykg eworICAgICAgICAgICAgZXhwZWN0W2ldLndbal0gPSBidWZmZXIwW2ldLndbal0gKyBidWZmZXIx W2ldLndbal0gKyAxOworICAgICAgICB9CisgICAgfQorCisgICAgY2hlY2tfb3V0cHV0X3coX19M SU5FX18sIEJVRlNJWkUpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X2xvYWRfY3VyKHZvaWQpCit7 CisgICAgdm9pZCAqcDAgPSBidWZmZXIwOworICAgIHZvaWQgKnBvdXQgPSBvdXRwdXQ7CisKKyAg ICBmb3IgKGludCBpID0gMDsgaSA8IEJVRlNJWkU7IGkrKykgeworICAgICAgICBhc20oIntcblx0 IgorICAgICAgICAgICAgIiAgICB2Mi5jdXIgPSB2bWVtKCUwICsgIzApXG5cdCIKKyAgICAgICAg ICAgICIgICAgdm1lbSglMSArICMwKSA9IHYyXG5cdCIKKyAgICAgICAgICAgICJ9XG5cdCIKKyAg ICAgICAgICAgIDogOiAiciIocDApLCAiciIocG91dCkgOiAidjIiLCAibWVtb3J5Iik7CisgICAg ICAgIHAwICs9IHNpemVvZihNTVZlY3Rvcik7CisgICAgICAgIHBvdXQgKz0gc2l6ZW9mKE1NVmVj dG9yKTsKKworICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE1BWF9WRUNfU0laRV9CWVRFUyAv IDQ7IGorKykgeworICAgICAgICAgICAgZXhwZWN0W2ldLnV3W2pdID0gYnVmZmVyMFtpXS51d1tq XTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNoZWNrX291dHB1dF93KF9fTElORV9fLCBCVUZT SVpFKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF9sb2FkX2FsaWduZWQodm9pZCkKK3sKKyAgICAv KiBBbGlnbmVkIGxvYWRzIGlnbm9yZSB0aGUgbG93IGJpdHMgb2YgdGhlIGFkZHJlc3MgKi8KKyAg ICB2b2lkICpwMCA9IGJ1ZmZlcjA7CisgICAgdm9pZCAqcG91dCA9IG91dHB1dDsKKyAgICBjb25z dCBzaXplX3Qgb2Zmc2V0ID0gMTM7CisKKyAgICBwMCArPSBvZmZzZXQ7ICAgIC8qIENyZWF0ZSBh biB1bmFsaWduZWQgYWRkcmVzcyAqLworICAgIGFzbSgidjIgPSB2bWVtKCUwICsgIzApXG5cdCIK KyAgICAgICAgInZtZW0oJTEgKyAjMCkgPSB2MlxuXHQiCisgICAgICAgIDogOiAiciIocDApLCAi ciIocG91dCkgOiAidjIiLCAibWVtb3J5Iik7CisKKyAgICBleHBlY3RbMF0gPSBidWZmZXIwWzBd OworCisgICAgY2hlY2tfb3V0cHV0X3coX19MSU5FX18sIDEpOworfQorCitzdGF0aWMgdm9pZCB0 ZXN0X2xvYWRfdW5hbGlnbmVkKHZvaWQpCit7CisgICAgdm9pZCAqcDAgPSBidWZmZXIwOworICAg IHZvaWQgKnBvdXQgPSBvdXRwdXQ7CisgICAgY29uc3Qgc2l6ZV90IG9mZnNldCA9IDEyOworCisg ICAgcDAgKz0gb2Zmc2V0OyAgICAvKiBDcmVhdGUgYW4gdW5hbGlnbmVkIGFkZHJlc3MgKi8KKyAg ICBhc20oInYyID0gdm1lbXUoJTAgKyAjMClcblx0IgorICAgICAgICAidm1lbSglMSArICMwKSA9 IHYyXG5cdCIKKyAgICAgICAgOiA6ICJyIihwMCksICJyIihwb3V0KSA6ICJ2MiIsICJtZW1vcnki KTsKKworICAgIG1lbWNweShleHBlY3QsICZidWZmZXIwWzBdLnViW29mZnNldF0sIHNpemVvZihN TVZlY3RvcikpOworCisgICAgY2hlY2tfb3V0cHV0X3coX19MSU5FX18sIDEpOworfQorCitzdGF0 aWMgdm9pZCB0ZXN0X3N0b3JlX2FsaWduZWQodm9pZCkKK3sKKyAgICAvKiBBbGlnbmVkIHN0b3Jl cyBpZ25vcmUgdGhlIGxvdyBiaXRzIG9mIHRoZSBhZGRyZXNzICovCisgICAgdm9pZCAqcDAgPSBi dWZmZXIwOworICAgIHZvaWQgKnBvdXQgPSBvdXRwdXQ7CisgICAgY29uc3Qgc2l6ZV90IG9mZnNl dCA9IDEzOworCisgICAgcG91dCArPSBvZmZzZXQ7ICAgIC8qIENyZWF0ZSBhbiB1bmFsaWduZWQg YWRkcmVzcyAqLworICAgIGFzbSgidjIgPSB2bWVtKCUwICsgIzApXG5cdCIKKyAgICAgICAgInZt ZW0oJTEgKyAjMCkgPSB2MlxuXHQiCisgICAgICAgIDogOiAiciIocDApLCAiciIocG91dCkgOiAi djIiLCAibWVtb3J5Iik7CisKKyAgICBleHBlY3RbMF0gPSBidWZmZXIwWzBdOworCisgICAgY2hl Y2tfb3V0cHV0X3coX19MSU5FX18sIDEpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X3N0b3JlX3Vu YWxpZ25lZCh2b2lkKQoreworICAgIHZvaWQgKnAwID0gYnVmZmVyMDsKKyAgICB2b2lkICpwb3V0 ID0gb3V0cHV0OworICAgIGNvbnN0IHNpemVfdCBvZmZzZXQgPSAxMjsKKworICAgIHBvdXQgKz0g b2Zmc2V0OyAgICAvKiBDcmVhdGUgYW4gdW5hbGlnbmVkIGFkZHJlc3MgKi8KKyAgICBhc20oInYy ID0gdm1lbSglMCArICMwKVxuXHQiCisgICAgICAgICJ2bWVtdSglMSArICMwKSA9IHYyXG5cdCIK KyAgICAgICAgOiA6ICJyIihwMCksICJyIihwb3V0KSA6ICJ2MiIsICJtZW1vcnkiKTsKKworICAg IG1lbWNweShleHBlY3QsIGJ1ZmZlcjAsIDIgKiBzaXplb2YoTU1WZWN0b3IpKTsKKyAgICBtZW1j cHkoJmV4cGVjdFswXS51YltvZmZzZXRdLCBidWZmZXIwLCBzaXplb2YoTU1WZWN0b3IpKTsKKwor ICAgIGNoZWNrX291dHB1dF93KF9fTElORV9fLCAyKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF9t YXNrZWRfc3RvcmUoYm9vbCBpbnZlcnQpCit7CisgICAgdm9pZCAqcDAgPSBidWZmZXIwOworICAg IHZvaWQgKnBtYXNrID0gbWFzazsKKyAgICB2b2lkICpwb3V0ID0gb3V0cHV0OworCisgICAgbWVt c2V0KGV4cGVjdCwgMHhmZiwgc2l6ZW9mKGV4cGVjdCkpOworICAgIG1lbXNldChvdXRwdXQsIDB4 ZmYsIHNpemVvZihleHBlY3QpKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQlVGU0laRTsg aSsrKSB7CisgICAgICAgIGlmIChpbnZlcnQpIHsKKyAgICAgICAgICAgIGFzbSgicjQgPSAjMFxu XHQiCisgICAgICAgICAgICAgICAgInY0ID0gdnNwbGF0KHI0KVxuXHQiCisgICAgICAgICAgICAg ICAgInY1ID0gdm1lbSglMCArICMwKVxuXHQiCisgICAgICAgICAgICAgICAgInEwID0gdmNtcC5l cSh2NC53LCB2NS53KVxuXHQiCisgICAgICAgICAgICAgICAgInY1ID0gdm1lbSglMSlcblx0Igor ICAgICAgICAgICAgICAgICJpZiAoIXEwKSB2bWVtKCUyKSA9IHY1XG5cdCIgICAgICAgICAgICAg LyogSW52ZXJ0ZWQgdGVzdCAqLworICAgICAgICAgICAgICAgIDogOiAiciIocG1hc2spLCAiciIo cDApLCAiciIocG91dCkKKyAgICAgICAgICAgICAgICA6ICJyNCIsICJ2NCIsICJ2NSIsICJxMCIs ICJtZW1vcnkiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzbSgicjQgPSAjMFxu XHQiCisgICAgICAgICAgICAgICAgInY0ID0gdnNwbGF0KHI0KVxuXHQiCisgICAgICAgICAgICAg ICAgInY1ID0gdm1lbSglMCArICMwKVxuXHQiCisgICAgICAgICAgICAgICAgInEwID0gdmNtcC5l cSh2NC53LCB2NS53KVxuXHQiCisgICAgICAgICAgICAgICAgInY1ID0gdm1lbSglMSlcblx0Igor ICAgICAgICAgICAgICAgICJpZiAocTApIHZtZW0oJTIpID0gdjVcblx0IiAgICAgICAgICAgICAv KiBOb24taW52ZXJ0ZWQgdGVzdCAqLworICAgICAgICAgICAgICAgIDogOiAiciIocG1hc2spLCAi ciIocDApLCAiciIocG91dCkKKyAgICAgICAgICAgICAgICA6ICJyNCIsICJ2NCIsICJ2NSIsICJx MCIsICJtZW1vcnkiKTsKKyAgICAgICAgfQorICAgICAgICBwMCArPSBzaXplb2YoTU1WZWN0b3Ip OworICAgICAgICBwbWFzayArPSBzaXplb2YoTU1WZWN0b3IpOworICAgICAgICBwb3V0ICs9IHNp emVvZihNTVZlY3Rvcik7CisKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBNQVhfVkVDX1NJ WkVfQllURVMgLyA0OyBqKyspIHsKKyAgICAgICAgICAgIGlmIChpbnZlcnQpIHsKKyAgICAgICAg ICAgICAgICBpZiAoaSArIGogJSBNQVNLTU9EICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAg ZXhwZWN0W2ldLndbal0gPSBidWZmZXIwW2ldLndbal07CisgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoaSArIGogJSBNQVNLTU9EID09 IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0W2ldLndbal0gPSBidWZmZXIwW2ldLndb al07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor CisgICAgY2hlY2tfb3V0cHV0X3coX19MSU5FX18sIEJVRlNJWkUpOworfQorCitzdGF0aWMgdm9p ZCB0ZXN0X25ld192YWx1ZV9zdG9yZSh2b2lkKQoreworICAgIHZvaWQgKnAwID0gYnVmZmVyMDsK KyAgICB2b2lkICpwb3V0ID0gb3V0cHV0OworCisgICAgYXNtKCJ7XG5cdCIKKyAgICAgICAgIiAg ICB2MiA9IHZtZW0oJTAgKyAjMClcblx0IgorICAgICAgICAiICAgIHZtZW0oJTEgKyAjMCkgPSB2 Mi5uZXdcblx0IgorICAgICAgICAifVxuXHQiCisgICAgICAgIDogOiAiciIocDApLCAiciIocG91 dCkgOiAidjIiLCAibWVtb3J5Iik7CisKKyAgICBleHBlY3RbMF0gPSBidWZmZXIwWzBdOworCisg ICAgY2hlY2tfb3V0cHV0X3coX19MSU5FX18sIDEpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X21h eF90ZW1wcygpCit7CisgICAgdm9pZCAqcDAgPSBidWZmZXIwOworICAgIHZvaWQgKnBvdXQgPSBv dXRwdXQ7CisKKyAgICBhc20oInYwID0gdm1lbSglMCArICMwKVxuXHQiCisgICAgICAgICJ2MSA9 IHZtZW0oJTAgKyAjMSlcblx0IgorICAgICAgICAidjIgPSB2bWVtKCUwICsgIzIpXG5cdCIKKyAg ICAgICAgInYzID0gdm1lbSglMCArICMzKVxuXHQiCisgICAgICAgICJ2NCA9IHZtZW0oJTAgKyAj NClcblx0IgorICAgICAgICAie1xuXHQiCisgICAgICAgICIgICAgdjE6MC53ID0gdmFkZCh2Mzoy LncsIHYxOjAudylcblx0IgorICAgICAgICAiICAgIHYyLmIgPSB2c2h1ZmZlKHYzLmIsIHYyLmIp XG5cdCIKKyAgICAgICAgIiAgICB2My53ID0gdmFkZCh2MS53LCB2NC53KVxuXHQiCisgICAgICAg ICIgICAgdjQudG1wID0gdm1lbSglMCArICM1KVxuXHQiCisgICAgICAgICJ9XG5cdCIKKyAgICAg ICAgInZtZW0oJTEgKyAjMCkgPSB2MFxuXHQiCisgICAgICAgICJ2bWVtKCUxICsgIzEpID0gdjFc blx0IgorICAgICAgICAidm1lbSglMSArICMyKSA9IHYyXG5cdCIKKyAgICAgICAgInZtZW0oJTEg KyAjMykgPSB2M1xuXHQiCisgICAgICAgICJ2bWVtKCUxICsgIzQpID0gdjRcblx0IgorICAgICAg ICA6IDogInIiKHAwKSwgInIiKHBvdXQpIDogIm1lbW9yeSIpOworCisgICAgICAgIC8qIFRoZSBm aXJzdCB0d28gdmVjdG9ycyBjb21lIGZyb20gdGhlIHZhZGQtcGFpciBpbnN0cnVjdGlvbiAqLwor ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1BWF9WRUNfU0laRV9CWVRFUyAvIDQ7IGkrKykg eworICAgICAgICAgICAgZXhwZWN0WzBdLndbaV0gPSBidWZmZXIwWzBdLndbaV0gKyBidWZmZXIw WzJdLndbaV07CisgICAgICAgICAgICBleHBlY3RbMV0ud1tpXSA9IGJ1ZmZlcjBbMV0ud1tpXSAr IGJ1ZmZlcjBbM10ud1tpXTsKKyAgICAgICAgfQorICAgICAgICAvKiBUaGUgdGhpcmQgdmVjdG9y IGNvbWVzIGZyb20gdGhlIHZzaHVmZmUgaW5zdHJ1Y3Rpb24gKi8KKyAgICAgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBNQVhfVkVDX1NJWkVfQllURVMgLyAyOyBpKyspIHsKKyAgICAgICAgICAgIGV4 cGVjdFsyXS51aFtpXSA9IChidWZmZXIwWzJdLnVoW2ldICYgMHhmZikgfAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGJ1ZmZlcjBbM10udWhbaV0gJiAweGZmKSA8PCA4OworICAgICAg ICB9CisgICAgICAgIC8qIFRoZSBmb3VydGggdmVjdG9yIGNvbWVzIGZyb20gdGhlIHZhZGQtc2lu Z2xlIGluc3RydWN0aW9uICovCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTUFYX1ZFQ19T SVpFX0JZVEVTIC8gNDsgaSsrKSB7CisgICAgICAgICAgICBleHBlY3RbM10ud1tpXSA9IGJ1ZmZl cjBbMV0ud1tpXSArIGJ1ZmZlcjBbNV0ud1tpXTsKKyAgICAgICAgfQorICAgICAgICAvKgorICAg ICAgICAgKiBUaGUgZmlmdGggdmVjdG9yIGNvbWVzIGZyb20gdGhlIGxvYWQgdG8gdjQKKyAgICAg ICAgICogbWFrZSBzdXJlIHRoZSAudG1wIGlzIGRyb3BwZWQKKyAgICAgICAgICovCisgICAgICAg IGV4cGVjdFs0XSA9IGJ1ZmZlcjBbNF07CisKKyAgICAgICAgY2hlY2tfb3V0cHV0X2IoX19MSU5F X18sIDUpOworfQorCisjZGVmaW5lIE9QMShBU00sIEVMLCBJTiwgT1VUKSBcCisgICAgYXNtKCJ2 MiA9IHZtZW0oJTAgKyAjMClcblx0IiBcCisgICAgICAgICJ2MiIgI0VMICIgPSAiICNBU00gIih2 MiIgI0VMICIpXG5cdCIgXAorICAgICAgICAidm1lbSglMSArICMwKSA9IHYyXG5cdCIgXAorICAg ICAgICA6IDogInIiKElOKSwgInIiKE9VVCkgOiAidjIiLCAibWVtb3J5IikKKworI2RlZmluZSBP UDIoQVNNLCBFTCwgSU4wLCBJTjEsIE9VVCkgXAorICAgIGFzbSgidjIgPSB2bWVtKCUwICsgIzAp XG5cdCIgXAorICAgICAgICAidjMgPSB2bWVtKCUxICsgIzApXG5cdCIgXAorICAgICAgICAidjIi ICNFTCAiID0gIiAjQVNNICIodjIiICNFTCAiLCB2MyIgI0VMICIpXG5cdCIgXAorICAgICAgICAi dm1lbSglMiArICMwKSA9IHYyXG5cdCIgXAorICAgICAgICA6IDogInIiKElOMCksICJyIihJTjEp LCAiciIoT1VUKSA6ICJ2MiIsICJ2MyIsICJtZW1vcnkiKQorCisjZGVmaW5lIFRFU1RfT1AxKE5B TUUsIEFTTSwgRUwsIEZJRUxELCBGSUVMRFNaLCBPUCkgXAorc3RhdGljIHZvaWQgdGVzdF8jI05B TUUodm9pZCkgXAoreyBcCisgICAgdm9pZCAqcGluID0gYnVmZmVyMDsgXAorICAgIHZvaWQgKnBv dXQgPSBvdXRwdXQ7IFwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IEJVRlNJWkU7IGkrKykgeyBc CisgICAgICAgIE9QMShBU00sIEVMLCBwaW4sIHBvdXQpOyBcCisgICAgICAgIHBpbiArPSBzaXpl b2YoTU1WZWN0b3IpOyBcCisgICAgICAgIHBvdXQgKz0gc2l6ZW9mKE1NVmVjdG9yKTsgXAorICAg IH0gXAorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQlVGU0laRTsgaSsrKSB7IFwKKyAgICAgICAg Zm9yIChpbnQgaiA9IDA7IGogPCBNQVhfVkVDX1NJWkVfQllURVMgLyBGSUVMRFNaOyBqKyspIHsg XAorICAgICAgICAgICAgZXhwZWN0W2ldLkZJRUxEW2pdID0gT1AgYnVmZmVyMFtpXS5GSUVMRFtq XTsgXAorICAgICAgICB9IFwKKyAgICB9IFwKKyAgICBjaGVja19vdXRwdXRfIyNGSUVMRChfX0xJ TkVfXywgQlVGU0laRSk7IFwKK30KKworI2RlZmluZSBURVNUX09QMihOQU1FLCBBU00sIEVMLCBG SUVMRCwgRklFTERTWiwgT1ApIFwKK3N0YXRpYyB2b2lkIHRlc3RfIyNOQU1FKHZvaWQpIFwKK3sg XAorICAgIHZvaWQgKnAwID0gYnVmZmVyMDsgXAorICAgIHZvaWQgKnAxID0gYnVmZmVyMTsgXAor ICAgIHZvaWQgKnBvdXQgPSBvdXRwdXQ7IFwKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IEJVRlNJ WkU7IGkrKykgeyBcCisgICAgICAgIE9QMihBU00sIEVMLCBwMCwgcDEsIHBvdXQpOyBcCisgICAg ICAgIHAwICs9IHNpemVvZihNTVZlY3Rvcik7IFwKKyAgICAgICAgcDEgKz0gc2l6ZW9mKE1NVmVj dG9yKTsgXAorICAgICAgICBwb3V0ICs9IHNpemVvZihNTVZlY3Rvcik7IFwKKyAgICB9IFwKKyAg ICBmb3IgKGludCBpID0gMDsgaSA8IEJVRlNJWkU7IGkrKykgeyBcCisgICAgICAgIGZvciAoaW50 IGogPSAwOyBqIDwgTUFYX1ZFQ19TSVpFX0JZVEVTIC8gRklFTERTWjsgaisrKSB7IFwKKyAgICAg ICAgICAgIGV4cGVjdFtpXS5GSUVMRFtqXSA9IGJ1ZmZlcjBbaV0uRklFTERbal0gT1AgYnVmZmVy MVtpXS5GSUVMRFtqXTsgXAorICAgICAgICB9IFwKKyAgICB9IFwKKyAgICBjaGVja19vdXRwdXRf IyNGSUVMRChfX0xJTkVfXywgQlVGU0laRSk7IFwKK30KKworVEVTVF9PUDIodmFkZF93LCB2YWRk LCAudywgdywgNCwgKykKK1RFU1RfT1AyKHZhZGRfaCwgdmFkZCwgLmgsIGgsIDIsICspCitURVNU X09QMih2YWRkX2IsIHZhZGQsIC5iLCBiLCAxLCArKQorVEVTVF9PUDIodnN1Yl93LCB2c3ViLCAu dywgdywgNCwgLSkKK1RFU1RfT1AyKHZzdWJfaCwgdnN1YiwgLmgsIGgsIDIsIC0pCitURVNUX09Q Mih2c3ViX2IsIHZzdWIsIC5iLCBiLCAxLCAtKQorVEVTVF9PUDIodnhvciwgdnhvciwgLCBkLCA4 LCBeKQorVEVTVF9PUDIodmFuZCwgdmFuZCwgLCBkLCA4LCAmKQorVEVTVF9PUDIodm9yLCB2b3Is ICwgZCwgOCwgfCkKK1RFU1RfT1AxKHZub3QsIHZub3QsICwgZCwgOCwgfikKKworaW50IG1haW4o KQoreworICAgIGluaXRfYnVmZmVycygpOworCisgICAgdGVzdF9sb2FkX3RtcCgpOworICAgIHRl c3RfbG9hZF9jdXIoKTsKKyAgICB0ZXN0X2xvYWRfYWxpZ25lZCgpOworICAgIHRlc3RfbG9hZF91 bmFsaWduZWQoKTsKKyAgICB0ZXN0X3N0b3JlX2FsaWduZWQoKTsKKyAgICB0ZXN0X3N0b3JlX3Vu YWxpZ25lZCgpOworICAgIHRlc3RfbWFza2VkX3N0b3JlKGZhbHNlKTsKKyAgICB0ZXN0X21hc2tl ZF9zdG9yZSh0cnVlKTsKKyAgICB0ZXN0X25ld192YWx1ZV9zdG9yZSgpOworICAgIHRlc3RfbWF4 X3RlbXBzKCk7CisKKyAgICB0ZXN0X3ZhZGRfdygpOworICAgIHRlc3RfdmFkZF9oKCk7CisgICAg dGVzdF92YWRkX2IoKTsKKyAgICB0ZXN0X3ZzdWJfdygpOworICAgIHRlc3RfdnN1Yl9oKCk7Cisg ICAgdGVzdF92c3ViX2IoKTsKKyAgICB0ZXN0X3Z4b3IoKTsKKyAgICB0ZXN0X3ZhbmQoKTsKKyAg ICB0ZXN0X3ZvcigpOworICAgIHRlc3Rfdm5vdCgpOworCisgICAgcHV0cyhlcnIgPyAiRkFJTCIg OiAiUEFTUyIpOworICAgIHJldHVybiBlcnIgPyAxIDogMDsKK30KZGlmZiAtLWdpdCBhL3Rlc3Rz L3RjZy9oZXhhZ29uL01ha2VmaWxlLnRhcmdldCBiL3Rlc3RzL3RjZy9oZXhhZ29uL01ha2VmaWxl LnRhcmdldAppbmRleCAxOGI0NDcyLi43NzA4ZTc2IDEwMDY0NAotLS0gYS90ZXN0cy90Y2cvaGV4 YWdvbi9NYWtlZmlsZS50YXJnZXQKKysrIGIvdGVzdHMvdGNnL2hleGFnb24vTWFrZWZpbGUudGFy Z2V0CkBAIC00MCw3ICs0MCw5IEBAIEhFWF9URVNUUyArPSBsb2FkX2FsaWduCiBIRVhfVEVTVFMg Kz0gdmVjdG9yX2FkZF9pbnQKIEhFWF9URVNUUyArPSBhdG9taWNzCiBIRVhfVEVTVFMgKz0gZnBz dHVmZgorSEVYX1RFU1RTICs9IGh2eF9taXNjCiAKIFRFU1RTICs9ICQoSEVYX1RFU1RTKQogCiB2 ZWN0b3JfYWRkX2ludDogQ0ZMQUdTICs9IC1taHZ4IC1mdmVjdG9yaXplCitodnhfbWlzYzogQ0ZM QUdTICs9IC1taHZ4Ci0tIAoyLjcuNAoK