From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6DA4EA0C4D for ; Tue, 2 Nov 2021 00:29:12 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 479024069F; Tue, 2 Nov 2021 00:29:12 +0100 (CET) Received: from mail-oi1-f225.google.com (mail-oi1-f225.google.com [209.85.167.225]) by mails.dpdk.org (Postfix) with ESMTP id 05BAD4068F for ; Tue, 2 Nov 2021 00:29:09 +0100 (CET) Received: by mail-oi1-f225.google.com with SMTP id o83so27307395oif.4 for ; Mon, 01 Nov 2021 16:29:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=mime-version:subject:from:to:cc:message-id:date; bh=Knm8J6MSgp+1pJK2KVhfF1Hl37e1IKjiK/xrH0f3oyU=; b=fpFWRBBM3FRXz/FudeBizVPNSN4TPfH+ZYmykIgzbbNas7RKoWIZNpQ9r7N1zLHYOK L/ZSYW0hnREdBAx3N3J5+jffdQr3itZJPOgXl2xgWCVPVa1WkkvGra/7uxpxHqoFstZo 4jzHQy0r+lhiAE3Fiv24ME9wYm42OHkbru58U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:to:cc:message-id:date; bh=Knm8J6MSgp+1pJK2KVhfF1Hl37e1IKjiK/xrH0f3oyU=; b=7M6c6DQQbND6O5DxKTDxCOIUK9Qpj7pdJRM15z+npIXNrfaHRFOOAQoPXw7/1aotOD IVa5+Q7orCPmiH0YWMTeA2lGZXPvF66WG4DkpZVd71A7+YUl6qJBoj6pw9m9drHhaXQM roGCMDXUB4/yOwG8so9GoniAHSC97ZvoBl6YmBUfsF9isqGiqtsR5dNLEArMuJgwVcJA nvLav2wlopRjt6A1qmaewzs9JpoSNpb+ENP/9PLpnyIxgNwyiRMsFObnI9G2zARqf5yB ygnX2BIqj/qGaLRvBCVxzHeC5D3DRwgjbWd1zBrd2xuFVO1FRttpgGpYNpE84SKLYE+f ockQ== X-Gm-Message-State: AOAM533PckR9J2N1/7grDOw5+Y+cmPFvza3f4uzydI6J/R6BAg5bSvjB zXMJpyaZbCQHt6Q1paJ904FN6dVszs1uwVzvzb9SzGxHUm5FVUN59+rW3kiyEQ0pBg== X-Google-Smtp-Source: ABdhPJwR0wGi2tNzkRhO34oSllDaHYAUzcN59M4FaI8UJtvHPLmYA6GcxWlEFbezSrbqtu+bsTsgwQ09jJMX X-Received: by 2002:a05:6808:128e:: with SMTP id a14mr599352oiw.26.1635809349320; Mon, 01 Nov 2021 16:29:09 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [2606:4100:3880:1234::84]) by smtp-relay.gmail.com with ESMTPS id l16sm3524184ota.14.2021.11.01.16.29.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 Nov 2021 16:29:09 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from dpdk-ubuntu.dpdklab.iol.unh.edu (unknown [IPv6:2606:4100:3880:1722::32]) by postal.iol.unh.edu (Postfix) with ESMTP id C7814605247D; Mon, 1 Nov 2021 19:29:08 -0400 (EDT) Received: from dpdk-ubuntu.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by dpdk-ubuntu.dpdklab.iol.unh.edu (Postfix) with ESMTP id C3B1160796; Mon, 1 Nov 2021 23:29:08 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============6582348635675344030==" MIME-Version: 1.0 From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20211101232908.C3B1160796@dpdk-ubuntu.dpdklab.iol.unh.edu> Date: Mon, 1 Nov 2021 23:29:08 +0000 (UTC) Subject: [dpdk-test-report] |WARNING| pw103368-103374 [PATCH] [v2, 7/7] crypto/qat: qat driver rework clean up X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: test-report-bounces@dpdk.org Sender: "test-report" --===============6582348635675344030== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzEwMzM2OAoKX2FwcGx5IHBhdGNoIGZhaWx1cmVfCgpTdWJtaXR0ZXI6IEthaSBK aSA8a2FpLmppQGludGVsLmNvbT4KRGF0ZTogTW9uZGF5LCBOb3ZlbWJlciAwMSAyMDIxIDIzOjEy OjU3IApBcHBsaWVkIG9uOiBDb21taXRJRDpiMmJlNjNiNTVhYjA4NmM1MmMwODJkNWMwYjJiMDFm ZmZiYzQ4MzI2CkFwcGx5IHBhdGNoIHNldCAxMDMzNjgtMTAzMzc0IGZhaWxlZDoKCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvY29tbW9uL3FhdC9xYXRfcXAuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCXJldHVybiBkYXRhICYgbW9kdWxvX21hc2s7Cn0KCnVpbnQxNl90CnFhdF9lbnF1 ZXVlX29wX2J1cnN0KHZvaWQgKnFwLCB2b2lkICoqb3BzLCB1aW50MTZfdCBuYl9vcHMpCnsKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvY29tbW9uL3FhdC9xYXRfcXAuYzo1NDkKQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9jb21tb24vcWF0L3FhdF9xcC5oLi4uCkh1bmsgIzEgc3VjY2VlZGVk IGF0IDc4IChvZmZzZXQgNDIgbGluZXMpLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAxMzEgKG9mZnNl dCA0MiBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJY29uc3QgY2hhciAqc2Vy dmljZV9zdHI7Cn07Cgp1aW50MTZfdApxYXRfZW5xdWV1ZV9vcF9idXJzdCh2b2lkICpxcCwgdm9p ZCAqKm9wcywgdWludDE2X3QgbmJfb3BzKTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L2NvbW1vbi9xYXQvcWF0X3FwLmg6NzcKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0 L3FhdF9hc3ltLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9hc3lt LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW0uYy4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQvcWF0X3N5bS5oLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3ltX3Nlc3Npb24uaC4uLgpBcHBseWluZyBwYXRjaCBk cml2ZXJzL2NvbW1vbi9xYXQvcWF0X3FwLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5r ICMxLgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL2NvbW1vbi9xYXQvcWF0X3FwLmggd2l0aCAxIHJl amVjdC4uLgpIdW5rICMxIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMiBhcHBsaWVkIGNsZWFubHku ClJlamVjdGVkIGh1bmsgIzMuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9h c3ltLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQvcWF0X2FzeW0u aCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3ltLmMgY2xl YW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQvcWF0X3N5bS5oIGNsZWFubHku CkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1fc2Vzc2lvbi5oIGNsZWFu bHkuCmRpZmYgYS9kcml2ZXJzL2NvbW1vbi9xYXQvcWF0X3FwLmMgYi9kcml2ZXJzL2NvbW1vbi9x YXQvcWF0X3FwLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNTQ5LDYgKzU0OSwyMiBAQCBhZGZfbW9k dWxvKHVpbnQzMl90IGRhdGEsIHVpbnQzMl90IG1vZHVsb19tYXNrKQogCXJldHVybiBkYXRhICYg bW9kdWxvX21hc2s7CiB9CiAKK3VpbnQxNl90CityZWZhY3Rvcl9xYXRfZW5xdWV1ZV9vcF9idXJz dChfX3J0ZV91bnVzZWQgdm9pZCAqcXAsCisJCV9fcnRlX3VudXNlZCBxYXRfb3BfYnVpbGRfcmVx dWVzdF90IG9wX2J1aWxkX3JlcXVlc3QsCisJCV9fcnRlX3VudXNlZCB2b2lkICoqb3BzLCBfX3J0 ZV91bnVzZWQgdWludDE2X3QgbmJfb3BzKQoreworCXJldHVybiAwOworfQorCit1aW50MTZfdAor cmVmYWN0b3JfcWF0X2RlcXVldWVfb3BfYnVyc3QoX19ydGVfdW51c2VkIHZvaWQgKnFwLCBfX3J0 ZV91bnVzZWQgdm9pZCAqKm9wcywKKwkJX19ydGVfdW51c2VkIHFhdF9vcF9kZXF1ZXVlX3QgcWF0 X2RlcXVldWVfcHJvY2Vzc19yZXNwb25zZSwKKwkJX19ydGVfdW51c2VkIHVpbnQxNl90IG5iX29w cykKK3sKKwlyZXR1cm4gMDsKK30KKwogdWludDE2X3QKIHFhdF9lbnF1ZXVlX29wX2J1cnN0KHZv aWQgKnFwLCB2b2lkICoqb3BzLCB1aW50MTZfdCBuYl9vcHMpCiB7CmRpZmYgYS9kcml2ZXJzL2Nv bW1vbi9xYXQvcWF0X3FwLmggYi9kcml2ZXJzL2NvbW1vbi9xYXQvcWF0X3FwLmgJKHJlamVjdGVk IGh1bmtzKQpAQCAtNzcsNiArMTIzLDE0IEBAIHN0cnVjdCBxYXRfcXBfY29uZmlnIHsKIAljb25z dCBjaGFyICpzZXJ2aWNlX3N0cjsKIH07CiAKK3VpbnQxNl90CityZWZhY3Rvcl9xYXRfZW5xdWV1 ZV9vcF9idXJzdCh2b2lkICpxcCwgcWF0X29wX2J1aWxkX3JlcXVlc3RfdCBvcF9idWlsZF9yZXF1 ZXN0LAorCQl2b2lkICoqb3BzLCB1aW50MTZfdCBuYl9vcHMpOworCit1aW50MTZfdAorcmVmYWN0 b3JfcWF0X2RlcXVldWVfb3BfYnVyc3Qodm9pZCAqcXAsIHZvaWQgKipvcHMsCisJCXFhdF9vcF9k ZXF1ZXVlX3QgcWF0X2RlcXVldWVfcHJvY2Vzc19yZXNwb25zZSwgdWludDE2X3QgbmJfb3BzKTsK KwogdWludDE2X3QKIHFhdF9lbnF1ZXVlX29wX2J1cnN0KHZvaWQgKnFwLCB2b2lkICoqb3BzLCB1 aW50MTZfdCBuYl9vcHMpOwogCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9kZXYv cWF0X2NyeXB0b19wbWRfZ2Vucy5oLi4uCmVycm9yOiBkcml2ZXJzL2NyeXB0by9xYXQvZGV2L3Fh dF9jcnlwdG9fcG1kX2dlbnMuaDogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9jcnlwdG8vcWF0L2Rldi9xYXRfc3ltX3BtZF9nZW4xLmMuLi4KZXJyb3I6IGRy aXZlcnMvY3J5cHRvL3FhdC9kZXYvcWF0X3N5bV9wbWRfZ2VuMS5jOiBkb2VzIG5vdCBleGlzdCBp biBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQvcWF0X3N5bS5oLi4uCmVy cm9yOiBkcml2ZXJzL2NyeXB0by9xYXQvcWF0X3N5bS5oOiBkb2VzIG5vdCBtYXRjaCBpbmRleApD aGVja2luZyBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQvcWF0X3N5bV9od19kcC5jLi4uCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3ltX3JlZmFjdG9yLmMuLi4KQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1fcmVmYWN0b3IuaC4uLgpBcHBsaWVk IHBhdGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3ltX2h3X2RwLmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQvcWF0X3N5bV9yZWZhY3Rvci5jIGNsZWFubHkuCkFw cGxpZWQgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1fcmVmYWN0b3IuaCBjbGVhbmx5 LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQvZGV2L3FhdF9hc3ltX3BtZF9nZW4x LmMuLi4KZXJyb3I6IGRyaXZlcnMvY3J5cHRvL3FhdC9kZXYvcWF0X2FzeW1fcG1kX2dlbjEuYzog ZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0 L3FhdF9hc3ltX3JlZmFjdG9yLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0 L3FhdF9hc3ltX3JlZmFjdG9yLmguLi4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQv cWF0X2FzeW1fcmVmYWN0b3IuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvY3J5cHRv L3FhdC9xYXRfYXN5bV9yZWZhY3Rvci5oIGNsZWFubHkuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv Y3J5cHRvL3FhdC9kZXYvcWF0X2NyeXB0b19wbWRfZ2VuMi5jLi4uCmVycm9yOiBkcml2ZXJzL2Ny eXB0by9xYXQvZGV2L3FhdF9jcnlwdG9fcG1kX2dlbjIuYzogZG9lcyBub3QgZXhpc3QgaW4gaW5k ZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L2Rldi9xYXRfY3J5cHRvX3BtZF9n ZW4zLmMuLi4KZXJyb3I6IGRyaXZlcnMvY3J5cHRvL3FhdC9kZXYvcWF0X2NyeXB0b19wbWRfZ2Vu My5jOiBkb2VzIG5vdCBleGlzdCBpbiBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL2NyeXB0 by9xYXQvZGV2L3FhdF9jcnlwdG9fcG1kX2dlbjQuYy4uLgplcnJvcjogZHJpdmVycy9jcnlwdG8v cWF0L2Rldi9xYXRfY3J5cHRvX3BtZF9nZW40LmM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9kZXYvcWF0X3N5bV9wbWRfZ2VuMS5jLi4u CmVycm9yOiBkcml2ZXJzL2NyeXB0by9xYXQvZGV2L3FhdF9zeW1fcG1kX2dlbjEuYzogZG9lcyBu b3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9j cnlwdG8uYy4uLgplcnJvcjogZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9jcnlwdG8uYzogZG9lcyBu b3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9j cnlwdG8uaC4uLgplcnJvcjogZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9jcnlwdG8uaDogZG9lcyBu b3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9z eW0uYy4uLgplcnJvcjogZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW0uYzogZG9lcyBub3QgbWF0 Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1fc2Vzc2lv bi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJcmV0dXJuIDA7Cn0KCnN0YXRpYyB2 b2lkCnFhdF9zeW1fc2Vzc2lvbl9zZXRfZXh0X2hhc2hfZmxhZ3Moc3RydWN0IHFhdF9zeW1fc2Vz c2lvbiAqc2Vzc2lvbiwKCQl1aW50OF90IGhhc2hfZmxhZykKewoJc3RydWN0IGljcF9xYXRfZndf Y29tbl9yZXFfaGRyICpoZWFkZXIgPSAmc2Vzc2lvbi0+ZndfcmVxLmNvbW5faGRyOwoJc3RydWN0 IGljcF9xYXRfZndfY2lwaGVyX2F1dGhfY2RfY3RybF9oZHIgKmNkX2N0cmwgPQoJCQkoc3RydWN0 IGljcF9xYXRfZndfY2lwaGVyX2F1dGhfY2RfY3RybF9oZHIgKikKCQkJc2Vzc2lvbi0+ZndfcmVx LmNkX2N0cmwuY29udGVudF9kZXNjX2N0cmxfbHc7CgoJLyogU2V0IHRoZSBVc2UgRXh0ZW5kZWQg UHJvdG9jb2wgRmxhZ3MgYml0IGluIExXIDEgKi8KCVFBVF9GSUVMRF9TRVQoaGVhZGVyLT5jb21u X3JlcV9mbGFncywKCQkJUUFUX0NPTU5fRVhUX0ZMQUdTX1VTRUQsCgkJCVFBVF9DT01OX0VYVF9G TEFHU19CSVRQT1MsCgkJCVFBVF9DT01OX0VYVF9GTEFHU19NQVNLKTsKCgkvKiBTZXQgSGFzaCBG bGFncyBpbiBMVyAyOCAqLwoJY2RfY3RybC0+aGFzaF9mbGFncyB8PSBoYXNoX2ZsYWc7CgoJLyog U2V0IHByb3RvIGZsYWdzIGluIExXIDEgKi8KCXN3aXRjaCAoc2Vzc2lvbi0+cWF0X2NpcGhlcl9h bGcpIHsKCWNhc2UgSUNQX1FBVF9IV19DSVBIRVJfQUxHT19TTk9XXzNHX1VFQTI6CgkJSUNQX1FB VF9GV19MQV9QUk9UT19TRVQoaGVhZGVyLT5zZXJ2X3NwZWNpZl9mbGFncywKCQkJCUlDUF9RQVRf RldfTEFfU05PV18zR19QUk9UTyk7CgkJSUNQX1FBVF9GV19MQV9aVUNfM0dfUFJPVE9fRkxBR19T RVQoCgkJCQloZWFkZXItPnNlcnZfc3BlY2lmX2ZsYWdzLCAwKTsKCQlicmVhazsKCWNhc2UgSUNQ X1FBVF9IV19DSVBIRVJfQUxHT19aVUNfM0dfMTI4X0VFQTM6CgkJSUNQX1FBVF9GV19MQV9QUk9U T19TRVQoaGVhZGVyLT5zZXJ2X3NwZWNpZl9mbGFncywKCQkJCUlDUF9RQVRfRldfTEFfTk9fUFJP VE8pOwoJCUlDUF9RQVRfRldfTEFfWlVDXzNHX1BST1RPX0ZMQUdfU0VUKAoJCQkJaGVhZGVyLT5z ZXJ2X3NwZWNpZl9mbGFncywKCQkJCUlDUF9RQVRfRldfTEFfWlVDXzNHX1BST1RPKTsKCQlicmVh azsKCWRlZmF1bHQ6CgkJSUNQX1FBVF9GV19MQV9QUk9UT19TRVQoaGVhZGVyLT5zZXJ2X3NwZWNp Zl9mbGFncywKCQkJCUlDUF9RQVRfRldfTEFfTk9fUFJPVE8pOwoJCUlDUF9RQVRfRldfTEFfWlVD XzNHX1BST1RPX0ZMQUdfU0VUKAoJCQkJaGVhZGVyLT5zZXJ2X3NwZWNpZl9mbGFncywgMCk7CgkJ YnJlYWs7Cgl9Cn0KCnN0YXRpYyB2b2lkCnFhdF9zeW1fc2Vzc2lvbl9oYW5kbGVfbWl4ZWQoY29u c3Qgc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldiwKCQlzdHJ1Y3QgcWF0X3N5bV9zZXNzaW9uICpz ZXNzaW9uKQp7Cgljb25zdCBzdHJ1Y3QgcWF0X2NyeXB0b2Rldl9wcml2YXRlICpxYXRfcHJpdmF0 ZSA9CgkJCWRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7CgllbnVtIHFhdF9kZXZpY2VfZ2VuIG1pbl9k ZXZfZ2VuID0gKHFhdF9wcml2YXRlLT5pbnRlcm5hbF9jYXBhYmlsaXRpZXMgJgoJCQlRQVRfU1lN X0NBUF9NSVhFRF9DUllQVE8pID8gUUFUX0dFTjIgOiBRQVRfR0VOMzsKCglpZiAoc2Vzc2lvbi0+ cWF0X2hhc2hfYWxnID09IElDUF9RQVRfSFdfQVVUSF9BTEdPX1pVQ18zR18xMjhfRUlBMyAmJgoJ CQlzZXNzaW9uLT5xYXRfY2lwaGVyX2FsZyAhPQoJCQlJQ1BfUUFUX0hXX0NJUEhFUl9BTEdPX1pV Q18zR18xMjhfRUVBMykgewoJCXNlc3Npb24tPm1pbl9xYXRfZGV2X2dlbiA9IG1pbl9kZXZfZ2Vu OwoJCXFhdF9zeW1fc2Vzc2lvbl9zZXRfZXh0X2hhc2hfZmxhZ3Moc2Vzc2lvbiwKCQkJMSA8PCBJ Q1BfUUFUX0ZXX0FVVEhfSERSX0ZMQUdfWlVDX0VJQTNfQklUUE9TKTsKCX0gZWxzZSBpZiAoc2Vz c2lvbi0+cWF0X2hhc2hfYWxnID09IElDUF9RQVRfSFdfQVVUSF9BTEdPX1NOT1dfM0dfVUlBMiAm JgoJCQlzZXNzaW9uLT5xYXRfY2lwaGVyX2FsZyAhPQoJCQlJQ1BfUUFUX0hXX0NJUEhFUl9BTEdP X1NOT1dfM0dfVUVBMikgewoJCXNlc3Npb24tPm1pbl9xYXRfZGV2X2dlbiA9IG1pbl9kZXZfZ2Vu OwoJCXFhdF9zeW1fc2Vzc2lvbl9zZXRfZXh0X2hhc2hfZmxhZ3Moc2Vzc2lvbiwKCQkJMSA8PCBJ Q1BfUUFUX0ZXX0FVVEhfSERSX0ZMQUdfU05PVzNHX1VJQTJfQklUUE9TKTsKCX0gZWxzZSBpZiAo KHNlc3Npb24tPmFlc19jbWFjIHx8CgkJCXNlc3Npb24tPnFhdF9oYXNoX2FsZyA9PSBJQ1BfUUFU X0hXX0FVVEhfQUxHT19OVUxMKSAmJgoJCQkoc2Vzc2lvbi0+cWF0X2NpcGhlcl9hbGcgPT0KCQkJ SUNQX1FBVF9IV19DSVBIRVJfQUxHT19TTk9XXzNHX1VFQTIgfHwKCQkJc2Vzc2lvbi0+cWF0X2Np cGhlcl9hbGcgPT0KCQkJSUNQX1FBVF9IV19DSVBIRVJfQUxHT19aVUNfM0dfMTI4X0VFQTMpKSB7 CgkJc2Vzc2lvbi0+bWluX3FhdF9kZXZfZ2VuID0gbWluX2Rldl9nZW47CgkJcWF0X3N5bV9zZXNz aW9uX3NldF9leHRfaGFzaF9mbGFncyhzZXNzaW9uLCAwKTsKCX0KfQoKaW50CnFhdF9zeW1fc2Vz c2lvbl9zZXRfcGFyYW1ldGVycyhzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2LAoJCXN0cnVjdCBy dGVfY3J5cHRvX3N5bV94Zm9ybSAqeGZvcm0sIHZvaWQgKnNlc3Npb25fcHJpdmF0ZSkKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3ltX3Nlc3Npb24uYzo0ODYK SHVuayAjMiBzdWNjZWVkZWQgYXQgNTY4IChvZmZzZXQgNzMgbGluZXMpLgpIdW5rICMzIHN1Y2Nl ZWRlZCBhdCA1ODIgKG9mZnNldCA3MyBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDYyMyAo b2Zmc2V0IDczIGxpbmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgNjQwIChvZmZzZXQgNzMgbGlu ZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA2NjAgKG9mZnNldCA3MyBsaW5lcykuCkh1bmsgIzcg c3VjY2VlZGVkIGF0IDY3MSAob2Zmc2V0IDczIGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQg MTE5NyAob2Zmc2V0IDczIGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgMTY0NyAob2Zmc2V0 IDczIGxpbmVzKS4KSHVuayAjMTAgc3VjY2VlZGVkIGF0IDE5OTQgKG9mZnNldCA3MyBsaW5lcyku Ckh1bmsgIzExIHN1Y2NlZWRlZCBhdCAyMjU0IChvZmZzZXQgNzMgbGluZXMpLgpIdW5rICMxMiBz dWNjZWVkZWQgYXQgMjI3OCAob2Zmc2V0IDczIGxpbmVzKS4KSHVuayAjMTMgc3VjY2VlZGVkIGF0 IDIzMDQgKG9mZnNldCA3MyBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRvL3Fh dC9xYXRfc3ltX3Nlc3Npb24uaC4uLgplcnJvcjogZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1f c2Vzc2lvbi5oOiBkb2VzIG5vdCBtYXRjaCBpbmRleApBcHBseWluZyBwYXRjaCBkcml2ZXJzL2Ny eXB0by9xYXQvcWF0X3N5bV9zZXNzaW9uLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5r ICMxLgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNiBh cHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQg Y2xlYW5seS4KSHVuayAjOSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzEwIGFwcGxpZWQgY2xlYW5s eS4KSHVuayAjMTEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMxMiBhcHBsaWVkIGNsZWFubHkuCkh1 bmsgIzEzIGFwcGxpZWQgY2xlYW5seS4KZGlmZiBhL2RyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3lt X3Nlc3Npb24uYyBiL2RyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3ltX3Nlc3Npb24uYwkocmVqZWN0 ZWQgaHVua3MpCkBAIC00ODYsODAgKzQ4Niw2IEBAIHFhdF9zeW1fc2Vzc2lvbl9jb25maWd1cmUo c3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldiwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQK LXFhdF9zeW1fc2Vzc2lvbl9zZXRfZXh0X2hhc2hfZmxhZ3Moc3RydWN0IHFhdF9zeW1fc2Vzc2lv biAqc2Vzc2lvbiwKLQkJdWludDhfdCBoYXNoX2ZsYWcpCi17Ci0Jc3RydWN0IGljcF9xYXRfZndf Y29tbl9yZXFfaGRyICpoZWFkZXIgPSAmc2Vzc2lvbi0+ZndfcmVxLmNvbW5faGRyOwotCXN0cnVj dCBpY3BfcWF0X2Z3X2NpcGhlcl9hdXRoX2NkX2N0cmxfaGRyICpjZF9jdHJsID0KLQkJCShzdHJ1 Y3QgaWNwX3FhdF9md19jaXBoZXJfYXV0aF9jZF9jdHJsX2hkciAqKQotCQkJc2Vzc2lvbi0+Zndf cmVxLmNkX2N0cmwuY29udGVudF9kZXNjX2N0cmxfbHc7Ci0KLQkvKiBTZXQgdGhlIFVzZSBFeHRl bmRlZCBQcm90b2NvbCBGbGFncyBiaXQgaW4gTFcgMSAqLwotCVFBVF9GSUVMRF9TRVQoaGVhZGVy LT5jb21uX3JlcV9mbGFncywKLQkJCVFBVF9DT01OX0VYVF9GTEFHU19VU0VELAotCQkJUUFUX0NP TU5fRVhUX0ZMQUdTX0JJVFBPUywKLQkJCVFBVF9DT01OX0VYVF9GTEFHU19NQVNLKTsKLQotCS8q IFNldCBIYXNoIEZsYWdzIGluIExXIDI4ICovCi0JY2RfY3RybC0+aGFzaF9mbGFncyB8PSBoYXNo X2ZsYWc7Ci0KLQkvKiBTZXQgcHJvdG8gZmxhZ3MgaW4gTFcgMSAqLwotCXN3aXRjaCAoc2Vzc2lv bi0+cWF0X2NpcGhlcl9hbGcpIHsKLQljYXNlIElDUF9RQVRfSFdfQ0lQSEVSX0FMR09fU05PV18z R19VRUEyOgotCQlJQ1BfUUFUX0ZXX0xBX1BST1RPX1NFVChoZWFkZXItPnNlcnZfc3BlY2lmX2Zs YWdzLAotCQkJCUlDUF9RQVRfRldfTEFfU05PV18zR19QUk9UTyk7Ci0JCUlDUF9RQVRfRldfTEFf WlVDXzNHX1BST1RPX0ZMQUdfU0VUKAotCQkJCWhlYWRlci0+c2Vydl9zcGVjaWZfZmxhZ3MsIDAp OwotCQlicmVhazsKLQljYXNlIElDUF9RQVRfSFdfQ0lQSEVSX0FMR09fWlVDXzNHXzEyOF9FRUEz OgotCQlJQ1BfUUFUX0ZXX0xBX1BST1RPX1NFVChoZWFkZXItPnNlcnZfc3BlY2lmX2ZsYWdzLAot CQkJCUlDUF9RQVRfRldfTEFfTk9fUFJPVE8pOwotCQlJQ1BfUUFUX0ZXX0xBX1pVQ18zR19QUk9U T19GTEFHX1NFVCgKLQkJCQloZWFkZXItPnNlcnZfc3BlY2lmX2ZsYWdzLAotCQkJCUlDUF9RQVRf RldfTEFfWlVDXzNHX1BST1RPKTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJSUNQX1FBVF9GV19M QV9QUk9UT19TRVQoaGVhZGVyLT5zZXJ2X3NwZWNpZl9mbGFncywKLQkJCQlJQ1BfUUFUX0ZXX0xB X05PX1BST1RPKTsKLQkJSUNQX1FBVF9GV19MQV9aVUNfM0dfUFJPVE9fRkxBR19TRVQoCi0JCQkJ aGVhZGVyLT5zZXJ2X3NwZWNpZl9mbGFncywgMCk7Ci0JCWJyZWFrOwotCX0KLX0KLQotc3RhdGlj IHZvaWQKLXFhdF9zeW1fc2Vzc2lvbl9oYW5kbGVfbWl4ZWQoY29uc3Qgc3RydWN0IHJ0ZV9jcnlw dG9kZXYgKmRldiwKLQkJc3RydWN0IHFhdF9zeW1fc2Vzc2lvbiAqc2Vzc2lvbikKLXsKLQljb25z dCBzdHJ1Y3QgcWF0X2NyeXB0b2Rldl9wcml2YXRlICpxYXRfcHJpdmF0ZSA9Ci0JCQlkZXYtPmRh dGEtPmRldl9wcml2YXRlOwotCWVudW0gcWF0X2RldmljZV9nZW4gbWluX2Rldl9nZW4gPSAocWF0 X3ByaXZhdGUtPmludGVybmFsX2NhcGFiaWxpdGllcyAmCi0JCQlRQVRfU1lNX0NBUF9NSVhFRF9D UllQVE8pID8gUUFUX0dFTjIgOiBRQVRfR0VOMzsKLQotCWlmIChzZXNzaW9uLT5xYXRfaGFzaF9h bGcgPT0gSUNQX1FBVF9IV19BVVRIX0FMR09fWlVDXzNHXzEyOF9FSUEzICYmCi0JCQlzZXNzaW9u LT5xYXRfY2lwaGVyX2FsZyAhPQotCQkJSUNQX1FBVF9IV19DSVBIRVJfQUxHT19aVUNfM0dfMTI4 X0VFQTMpIHsKLQkJc2Vzc2lvbi0+bWluX3FhdF9kZXZfZ2VuID0gbWluX2Rldl9nZW47Ci0JCXFh dF9zeW1fc2Vzc2lvbl9zZXRfZXh0X2hhc2hfZmxhZ3Moc2Vzc2lvbiwKLQkJCTEgPDwgSUNQX1FB VF9GV19BVVRIX0hEUl9GTEFHX1pVQ19FSUEzX0JJVFBPUyk7Ci0JfSBlbHNlIGlmIChzZXNzaW9u LT5xYXRfaGFzaF9hbGcgPT0gSUNQX1FBVF9IV19BVVRIX0FMR09fU05PV18zR19VSUEyICYmCi0J CQlzZXNzaW9uLT5xYXRfY2lwaGVyX2FsZyAhPQotCQkJSUNQX1FBVF9IV19DSVBIRVJfQUxHT19T Tk9XXzNHX1VFQTIpIHsKLQkJc2Vzc2lvbi0+bWluX3FhdF9kZXZfZ2VuID0gbWluX2Rldl9nZW47 Ci0JCXFhdF9zeW1fc2Vzc2lvbl9zZXRfZXh0X2hhc2hfZmxhZ3Moc2Vzc2lvbiwKLQkJCTEgPDwg SUNQX1FBVF9GV19BVVRIX0hEUl9GTEFHX1NOT1czR19VSUEyX0JJVFBPUyk7Ci0JfSBlbHNlIGlm ICgoc2Vzc2lvbi0+YWVzX2NtYWMgfHwKLQkJCXNlc3Npb24tPnFhdF9oYXNoX2FsZyA9PSBJQ1Bf UUFUX0hXX0FVVEhfQUxHT19OVUxMKSAmJgotCQkJKHNlc3Npb24tPnFhdF9jaXBoZXJfYWxnID09 Ci0JCQlJQ1BfUUFUX0hXX0NJUEhFUl9BTEdPX1NOT1dfM0dfVUVBMiB8fAotCQkJc2Vzc2lvbi0+ cWF0X2NpcGhlcl9hbGcgPT0KLQkJCUlDUF9RQVRfSFdfQ0lQSEVSX0FMR09fWlVDXzNHXzEyOF9F RUEzKSkgewotCQlzZXNzaW9uLT5taW5fcWF0X2Rldl9nZW4gPSBtaW5fZGV2X2dlbjsKLQkJcWF0 X3N5bV9zZXNzaW9uX3NldF9leHRfaGFzaF9mbGFncyhzZXNzaW9uLCAwKTsKLQl9Ci19Ci0KIGlu dAogcWF0X3N5bV9zZXNzaW9uX3NldF9wYXJhbWV0ZXJzKHN0cnVjdCBydGVfY3J5cHRvZGV2ICpk ZXYsCiAJCXN0cnVjdCBydGVfY3J5cHRvX3N5bV94Zm9ybSAqeGZvcm0sIHZvaWQgKnNlc3Npb25f cHJpdmF0ZSkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jb21tb24vcWF0L21lc29uLmJ1aWxkLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgplbmRpZgoKaWYgcWF0X2NyeXB0bwogICAgZm9y ZWFjaCBmOiBbJ3FhdF9zeW1fcG1kLmMnLCAncWF0X3N5bS5jJywgJ3FhdF9zeW1fc2Vzc2lvbi5j JywKICAgICAgICAgICAgJ3FhdF9zeW1faHdfZHAuYycsICdxYXRfYXN5bV9wbWQuYycsICdxYXRf YXN5bS5jJywgJ3FhdF9jcnlwdG8uYycsCgkgICAgJ2Rldi9xYXRfc3ltX3BtZF9nZW4xLmMnLAog ICAgICAgICAgICAnZGV2L3FhdF9hc3ltX3BtZF9nZW4xLmMnLAogICAgICAgICAgICAnZGV2L3Fh dF9jcnlwdG9fcG1kX2dlbjIuYycsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NvbW1v bi9xYXQvbWVzb24uYnVpbGQ6NzAKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jb21tb24vcWF0L3Fh dF9xcC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojaW5jbHVkZSAicWF0X2xvZ3Mu aCIKI2luY2x1ZGUgInFhdF9kZXZpY2UuaCIKI2luY2x1ZGUgInFhdF9xcC5oIgojaW5jbHVkZSAi cWF0X3N5bS5oIgojaW5jbHVkZSAicWF0X2FzeW0uaCIKI2luY2x1ZGUgInFhdF9jb21wLmgiCgoj ZGVmaW5lIFFBVF9DUV9NQVhfREVRX1JFVFJJRVMgMTAKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRy aXZlcnMvY29tbW9uL3FhdC9xYXRfcXAuYzoxNQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK fQoKdWludDE2X3QKcmVmYWN0b3JfcWF0X2VucXVldWVfb3BfYnVyc3QoX19ydGVfdW51c2VkIHZv aWQgKnFwLAoJCV9fcnRlX3VudXNlZCBxYXRfb3BfYnVpbGRfcmVxdWVzdF90IG9wX2J1aWxkX3Jl cXVlc3QsCgkJX19ydGVfdW51c2VkIHZvaWQgKipvcHMsIF9fcnRlX3VudXNlZCB1aW50MTZfdCBu Yl9vcHMpCnsKCXJldHVybiAwOwp9Cgp1aW50MTZfdApyZWZhY3Rvcl9xYXRfZGVxdWV1ZV9vcF9i dXJzdChfX3J0ZV91bnVzZWQgdm9pZCAqcXAsIF9fcnRlX3VudXNlZCB2b2lkICoqb3BzLAoJCV9f cnRlX3VudXNlZCBxYXRfb3BfZGVxdWV1ZV90IHFhdF9kZXF1ZXVlX3Byb2Nlc3NfcmVzcG9uc2Us CgkJX19ydGVfdW51c2VkIHVpbnQxNl90IG5iX29wcykKewoJcmV0dXJuIDA7Cn0KCnVpbnQxNl90 CnFhdF9lbnF1ZXVlX29wX2J1cnN0KHZvaWQgKnFwLCB2b2lkICoqb3BzLCB1aW50MTZfdCBuYl9v cHMpCnsKCXJlZ2lzdGVyIHN0cnVjdCBxYXRfcXVldWUgKnF1ZXVlOwoJc3RydWN0IHFhdF9xcCAq dG1wX3FwID0gKHN0cnVjdCBxYXRfcXAgKilxcDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvY29tbW9uL3FhdC9xYXRfcXAuYzo1NTAKSHVuayAjMyBzdWNjZWVkZWQgYXQgNzY1IChvZmZz ZXQgMTY0IGxpbmVzKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgOTcxIChvZmZzZXQgMTY0IGxpbmVz KS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgOTkwIChvZmZzZXQgMTY0IGxpbmVzKS4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9jb21tb24vcWF0L3FhdF9xcC5oLi4uCmVycm9yOiBkcml2ZXJzL2NvbW1v bi9xYXQvcWF0X3FwLmg6IGRvZXMgbm90IG1hdGNoIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvY29tcHJlc3MvcWF0L3FhdF9jb21wX3BtZC5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDYz MyAob2Zmc2V0IDE3IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgNjYyIChvZmZzZXQgMTcg bGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQvZGV2L3FhdF9jcnlwdG9f cG1kX2dlbjIuYy4uLgplcnJvcjogZHJpdmVycy9jcnlwdG8vcWF0L2Rldi9xYXRfY3J5cHRvX3Bt ZF9nZW4yLmM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv Y3J5cHRvL3FhdC9kZXYvcWF0X2NyeXB0b19wbWRfZ2VuNC5jLi4uCmVycm9yOiBkcml2ZXJzL2Ny eXB0by9xYXQvZGV2L3FhdF9jcnlwdG9fcG1kX2dlbjQuYzogZG9lcyBub3QgZXhpc3QgaW4gaW5k ZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L2Rldi9xYXRfc3ltX3BtZF9nZW4x LmMuLi4KZXJyb3I6IGRyaXZlcnMvY3J5cHRvL3FhdC9kZXYvcWF0X3N5bV9wbWRfZ2VuMS5jOiBk b2VzIG5vdCBleGlzdCBpbiBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQv cWF0X2FzeW1fcmVmYWN0b3IuYy4uLgplcnJvcjogZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9hc3lt X3JlZmFjdG9yLmM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvY3J5cHRvL3FhdC9xYXRfYXN5bV9yZWZhY3Rvci5oLi4uCmVycm9yOiBkcml2ZXJzL2NyeXB0 by9xYXQvcWF0X2FzeW1fcmVmYWN0b3IuaDogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1faHdfZHAuYy4uLgplcnJvcjogZHJp dmVycy9jcnlwdG8vcWF0L3FhdF9zeW1faHdfZHAuYzogZG9lcyBub3QgbWF0Y2ggaW5kZXgKQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1fcmVmYWN0b3IuYy4uLgplcnJv cjogZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1fcmVmYWN0b3IuYzogZG9lcyBub3QgZXhpc3Qg aW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1fcmVmYWN0 b3IuaC4uLgplcnJvcjogZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1fcmVmYWN0b3IuaDogZG9l cyBub3QgZXhpc3QgaW4gaW5kZXgKQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9jb21tb24vcWF0L21l c29uLmJ1aWxkIHdpdGggMSByZWplY3QuLi4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbHlpbmcgcGF0 Y2ggZHJpdmVycy9jb21tb24vcWF0L3FhdF9xcC5jIHdpdGggMiByZWplY3RzLi4uClJlamVjdGVk IGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIuCkh1bmsgIzMgYXBwbGllZCBjbGVhbmx5LgpIdW5r ICM0IGFwcGxpZWQgY2xlYW5seS4KSHVuayAjNSBhcHBsaWVkIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9jb21wcmVzcy9xYXQvcWF0X2NvbXBfcG1kLmMgY2xlYW5seS4KZGlmZiBhL2Ry aXZlcnMvY29tbW9uL3FhdC9tZXNvbi5idWlsZCBiL2RyaXZlcnMvY29tbW9uL3FhdC9tZXNvbi5i dWlsZAkocmVqZWN0ZWQgaHVua3MpCkBAIC03MCw4ICs3MCw4IEBAIGlmIHFhdF9jb21wcmVzcwog ZW5kaWYKIAogaWYgcWF0X2NyeXB0bwotICAgIGZvcmVhY2ggZjogWydxYXRfc3ltX3BtZC5jJywg J3FhdF9zeW0uYycsICdxYXRfc3ltX3Nlc3Npb24uYycsCi0gICAgICAgICAgICAncWF0X3N5bV9o d19kcC5jJywgJ3FhdF9hc3ltX3BtZC5jJywgJ3FhdF9hc3ltLmMnLCAncWF0X2NyeXB0by5jJywK KyAgICBmb3JlYWNoIGY6IFsncWF0X3N5bV9yZWZhY3Rvci5jJywgJ3FhdF9zeW1fc2Vzc2lvbi5j JywKKyAgICAgICAgICAgICdxYXRfc3ltX2h3X2RwLmMnLCAncWF0X2FzeW1fcmVmYWN0b3IuYycs ICdxYXRfY3J5cHRvLmMnLAogCSAgICAnZGV2L3FhdF9zeW1fcG1kX2dlbjEuYycsCiAgICAgICAg ICAgICAnZGV2L3FhdF9hc3ltX3BtZF9nZW4xLmMnLAogICAgICAgICAgICAgJ2Rldi9xYXRfY3J5 cHRvX3BtZF9nZW4yLmMnLApkaWZmIGEvZHJpdmVycy9jb21tb24vcWF0L3FhdF9xcC5jIGIvZHJp dmVycy9jb21tb24vcWF0L3FhdF9xcC5jCShyZWplY3RlZCBodW5rcykKQEAgLTE1LDggKzE1LDgg QEAKICNpbmNsdWRlICJxYXRfbG9ncy5oIgogI2luY2x1ZGUgInFhdF9kZXZpY2UuaCIKICNpbmNs dWRlICJxYXRfcXAuaCIKLSNpbmNsdWRlICJxYXRfc3ltLmgiCi0jaW5jbHVkZSAicWF0X2FzeW0u aCIKKyNpbmNsdWRlICJxYXRfc3ltX3JlZmFjdG9yLmgiCisjaW5jbHVkZSAicWF0X2FzeW1fcmVm YWN0b3IuaCIKICNpbmNsdWRlICJxYXRfY29tcC5oIgogCiAjZGVmaW5lIFFBVF9DUV9NQVhfREVR X1JFVFJJRVMgMTAKQEAgLTU1MCwyMyArNTUwLDggQEAgYWRmX21vZHVsbyh1aW50MzJfdCBkYXRh LCB1aW50MzJfdCBtb2R1bG9fbWFzaykKIH0KIAogdWludDE2X3QKLXJlZmFjdG9yX3FhdF9lbnF1 ZXVlX29wX2J1cnN0KF9fcnRlX3VudXNlZCB2b2lkICpxcCwKLQkJX19ydGVfdW51c2VkIHFhdF9v cF9idWlsZF9yZXF1ZXN0X3Qgb3BfYnVpbGRfcmVxdWVzdCwKLQkJX19ydGVfdW51c2VkIHZvaWQg KipvcHMsIF9fcnRlX3VudXNlZCB1aW50MTZfdCBuYl9vcHMpCi17Ci0JcmV0dXJuIDA7Ci19Ci0K LXVpbnQxNl90Ci1yZWZhY3Rvcl9xYXRfZGVxdWV1ZV9vcF9idXJzdChfX3J0ZV91bnVzZWQgdm9p ZCAqcXAsIF9fcnRlX3VudXNlZCB2b2lkICoqb3BzLAotCQlfX3J0ZV91bnVzZWQgcWF0X29wX2Rl cXVldWVfdCBxYXRfZGVxdWV1ZV9wcm9jZXNzX3Jlc3BvbnNlLAotCQlfX3J0ZV91bnVzZWQgdWlu dDE2X3QgbmJfb3BzKQotewotCXJldHVybiAwOwotfQotCi11aW50MTZfdAotcWF0X2VucXVldWVf b3BfYnVyc3Qodm9pZCAqcXAsIHZvaWQgKipvcHMsIHVpbnQxNl90IG5iX29wcykKK3FhdF9lbnF1 ZXVlX29wX2J1cnN0KHZvaWQgKnFwLCBxYXRfb3BfYnVpbGRfcmVxdWVzdF90IG9wX2J1aWxkX3Jl cXVlc3QsCisJCXZvaWQgKipvcHMsIHVpbnQxNl90IG5iX29wcykKIHsKIAlyZWdpc3RlciBzdHJ1 Y3QgcWF0X3F1ZXVlICpxdWV1ZTsKIAlzdHJ1Y3QgcWF0X3FwICp0bXBfcXAgPSAoc3RydWN0IHFh dF9xcCAqKXFwOwpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC90ZXN0X2NyeXB0b2Rldi5jLi4uCkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9kZXYvcWF0X2NyeXB0b19wbWRfZ2VuMy5j Li4uCmVycm9yOiBkcml2ZXJzL2NyeXB0by9xYXQvZGV2L3FhdF9jcnlwdG9fcG1kX2dlbjMuYzog ZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0 L2Rldi9xYXRfY3J5cHRvX3BtZF9nZW40LmMuLi4KZXJyb3I6IGRyaXZlcnMvY3J5cHRvL3FhdC9k ZXYvcWF0X2NyeXB0b19wbWRfZ2VuNC5jOiBkb2VzIG5vdCBleGlzdCBpbiBpbmRleApDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQvZGV2L3FhdF9zeW1fcG1kX2dlbjEuYy4uLgplcnJv cjogZHJpdmVycy9jcnlwdG8vcWF0L2Rldi9xYXRfc3ltX3BtZF9nZW4xLmM6IGRvZXMgbm90IGV4 aXN0IGluIGluZGV4CkFwcGxpZWQgcGF0Y2ggYXBwL3Rlc3QvdGVzdF9jcnlwdG9kZXYuYyBjbGVh bmx5LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL2NvbW1vbi9xYXQvbWVzb24uYnVpbGQuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CmVuZGlmCgppZiBxYXRfY3J5cHRvCiAgICBmb3JlYWNo IGY6IFsncWF0X3N5bV9yZWZhY3Rvci5jJywgJ3FhdF9zeW1fc2Vzc2lvbi5jJywKICAgICAgICAg ICAgJ3FhdF9zeW1faHdfZHAuYycsICdxYXRfYXN5bV9yZWZhY3Rvci5jJywgJ3FhdF9jcnlwdG8u YycsCgkgICAgJ2Rldi9xYXRfc3ltX3BtZF9nZW4xLmMnLAogICAgICAgICAgICAnZGV2L3FhdF9h c3ltX3BtZF9nZW4xLmMnLAogICAgICAgICAgICAnZGV2L3FhdF9jcnlwdG9fcG1kX2dlbjIuYycs CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NvbW1vbi9xYXQvbWVzb24uYnVpbGQ6NzAK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jb21tb24vcWF0L3FhdF9kZXZpY2UuYy4uLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL2NvbW1vbi9xYXQvcWF0X3FwLmMuLi4KZXJyb3I6IGRyaXZlcnMvY29t bW9uL3FhdC9xYXRfcXAuYzogZG9lcyBub3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9jb21tb24vcWF0L3FhdF9xcC5oLi4uCmVycm9yOiBkcml2ZXJzL2NvbW1vbi9xYXQvcWF0 X3FwLmg6IGRvZXMgbm90IG1hdGNoIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRv L3FhdC9kZXYvcWF0X2NyeXB0b19wbWRfZ2VuMi5jLi4uCmVycm9yOiBkcml2ZXJzL2NyeXB0by9x YXQvZGV2L3FhdF9jcnlwdG9fcG1kX2dlbjIuYzogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgKQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L2Rldi9xYXRfY3J5cHRvX3BtZF9nZW40LmMu Li4KZXJyb3I6IGRyaXZlcnMvY3J5cHRvL3FhdC9kZXYvcWF0X2NyeXB0b19wbWRfZ2VuNC5jOiBk b2VzIG5vdCBleGlzdCBpbiBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQv ZGV2L3FhdF9jcnlwdG9fcG1kX2dlbnMuaC4uLgplcnJvcjogZHJpdmVycy9jcnlwdG8vcWF0L2Rl di9xYXRfY3J5cHRvX3BtZF9nZW5zLmg6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9kZXYvcWF0X3N5bV9wbWRfZ2VuMS5jLi4uCmVycm9y OiBkcml2ZXJzL2NyeXB0by9xYXQvZGV2L3FhdF9zeW1fcG1kX2dlbjEuYzogZG9lcyBub3QgZXhp c3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9hc3ltLmMu Li4KZXJyb3I6IGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfYXN5bS5jOiBkb2VzIG5vdCBtYXRjaCBp bmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL2NyeXB0by9xYXQvcWF0X2FzeW0uaC4uLgplcnJv cjogZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9hc3ltLmg6IGRvZXMgbm90IG1hdGNoIGluZGV4CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfYXN5bV9wbWQuYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNs YXVzZQogKiBDb3B5cmlnaHQoYykgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgogKi8KCiNpbmNsdWRl IDxjcnlwdG9kZXZfcG1kLmg+CgojaW5jbHVkZSAicWF0X2xvZ3MuaCIKCiNpbmNsdWRlICJxYXRf Y3J5cHRvLmgiCiNpbmNsdWRlICJxYXRfYXN5bS5oIgojaW5jbHVkZSAicWF0X2FzeW1fcG1kLmgi Cgp1aW50OF90IHFhdF9hc3ltX2RyaXZlcl9pZDsKc3RydWN0IHFhdF9jcnlwdG9fZ2VuX2Rldl9v cHMgcWF0X2FzeW1fZ2VuX2Rldl9vcHNbUUFUX05fR0VOU107Cgp2b2lkCnFhdF9hc3ltX2luaXRf b3BfY29va2llKHZvaWQgKm9wX2Nvb2tpZSkKewoJaW50IGo7CglzdHJ1Y3QgcWF0X2FzeW1fb3Bf Y29va2llICpjb29raWUgPSBvcF9jb29raWU7CgoJY29va2llLT5pbnB1dF9hZGRyID0gcnRlX21l bXBvb2xfdmlydDJpb3ZhKGNvb2tpZSkgKwoJCQlvZmZzZXRvZihzdHJ1Y3QgcWF0X2FzeW1fb3Bf Y29va2llLAoJCQkJCWlucHV0X3BhcmFtc19wdHJzKTsKCgljb29raWUtPm91dHB1dF9hZGRyID0g cnRlX21lbXBvb2xfdmlydDJpb3ZhKGNvb2tpZSkgKwoJCQlvZmZzZXRvZihzdHJ1Y3QgcWF0X2Fz eW1fb3BfY29va2llLAoJCQkJCW91dHB1dF9wYXJhbXNfcHRycyk7CgoJZm9yIChqID0gMDsgaiA8 IDg7IGorKykgewoJCWNvb2tpZS0+aW5wdXRfcGFyYW1zX3B0cnNbal0gPQoJCQkJcnRlX21lbXBv b2xfdmlydDJpb3ZhKGNvb2tpZSkgKwoJCQkJb2Zmc2V0b2Yoc3RydWN0IHFhdF9hc3ltX29wX2Nv b2tpZSwKCQkJCQkJaW5wdXRfYXJyYXlbal0pOwoJCWNvb2tpZS0+b3V0cHV0X3BhcmFtc19wdHJz W2pdID0KCQkJCXJ0ZV9tZW1wb29sX3ZpcnQyaW92YShjb29raWUpICsKCQkJCW9mZnNldG9mKHN0 cnVjdCBxYXRfYXN5bV9vcF9jb29raWUsCgkJCQkJCW91dHB1dF9hcnJheVtqXSk7Cgl9Cn0KCnN0 YXRpYyBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9vcHMgY3J5cHRvX3FhdF9vcHMgPSB7CgoJLyogRGV2 aWNlIHJlbGF0ZWQgb3BlcmF0aW9ucyAqLwoJLmRldl9jb25maWd1cmUJCT0gcWF0X2NyeXB0b2Rl dl9jb25maWcsCgkuZGV2X3N0YXJ0CQk9IHFhdF9jcnlwdG9kZXZfc3RhcnQsCgkuZGV2X3N0b3AJ CT0gcWF0X2NyeXB0b2Rldl9zdG9wLAoJLmRldl9jbG9zZQkJPSBxYXRfY3J5cHRvZGV2X2Nsb3Nl LAoJLmRldl9pbmZvc19nZXQJCT0gcWF0X2NyeXB0b2Rldl9pbmZvX2dldCwKCgkuc3RhdHNfZ2V0 CQk9IHFhdF9jcnlwdG9kZXZfc3RhdHNfZ2V0LAoJLnN0YXRzX3Jlc2V0CQk9IHFhdF9jcnlwdG9k ZXZfc3RhdHNfcmVzZXQsCgkucXVldWVfcGFpcl9zZXR1cAk9IHFhdF9jcnlwdG9kZXZfcXBfc2V0 dXAsCgkucXVldWVfcGFpcl9yZWxlYXNlCT0gcWF0X2NyeXB0b2Rldl9xcF9yZWxlYXNlLAoKCS8q IENyeXB0byByZWxhdGVkIG9wZXJhdGlvbnMgKi8KCS5hc3ltX3Nlc3Npb25fZ2V0X3NpemUJPSBx YXRfYXN5bV9zZXNzaW9uX2dldF9wcml2YXRlX3NpemUsCgkuYXN5bV9zZXNzaW9uX2NvbmZpZ3Vy ZQk9IHFhdF9hc3ltX3Nlc3Npb25fY29uZmlndXJlLAoJLmFzeW1fc2Vzc2lvbl9jbGVhcgk9IHFh dF9hc3ltX3Nlc3Npb25fY2xlYXIKfTsKCnVpbnQxNl90IHFhdF9hc3ltX3BtZF9lbnF1ZXVlX29w X2J1cnN0KHZvaWQgKnFwLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqKm9wcywKCQkJCSAgICAgICB1 aW50MTZfdCBuYl9vcHMpCnsKCXJldHVybiBxYXRfZW5xdWV1ZV9vcF9idXJzdChxcCwgKHZvaWQg Kiopb3BzLCBuYl9vcHMpOwp9Cgp1aW50MTZfdCBxYXRfYXN5bV9wbWRfZGVxdWV1ZV9vcF9idXJz dCh2b2lkICpxcCwgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKipvcHMsCgkJCQkgICAgICAgdWludDE2 X3QgbmJfb3BzKQp7CglyZXR1cm4gcWF0X2RlcXVldWVfb3BfYnVyc3QocXAsICh2b2lkICoqKW9w cywgbmJfb3BzKTsKfQoKLyogQW4gcnRlX2RyaXZlciBpcyBuZWVkZWQgaW4gdGhlIHJlZ2lzdHJh dGlvbiBvZiBib3RoIHRoZSBkZXZpY2UgYW5kIHRoZSBkcml2ZXIKICogd2l0aCBjcnlwdG9kZXYu CiAqIFRoZSBhY3R1YWwgcWF0IHBjaSdzIHJ0ZV9kcml2ZXIgY2FuJ3QgYmUgdXNlZCBhcyBpdHMg bmFtZSByZXByZXNlbnRzCiAqIHRoZSB3aG9sZSBwY2kgZGV2aWNlIHdpdGggYWxsIHNlcnZpY2Vz LiBUaGluayBvZiB0aGlzIGFzIGEgaG9sZGVyIGZvciBhIG5hbWUKICogZm9yIHRoZSBjcnlwdG8g cGFydCBvZiB0aGUgcGNpIGRldmljZS4KICovCnN0YXRpYyBjb25zdCBjaGFyIHFhdF9hc3ltX2Ry dl9uYW1lW10gPSBSVEVfU1RSKENSWVBUT0RFVl9OQU1FX1FBVF9BU1lNX1BNRCk7CnN0YXRpYyBj b25zdCBzdHJ1Y3QgcnRlX2RyaXZlciBjcnlwdG9kZXZfcWF0X2FzeW1fZHJpdmVyID0gewoJLm5h bWUgPSBxYXRfYXN5bV9kcnZfbmFtZSwKCS5hbGlhcyA9IHFhdF9hc3ltX2Rydl9uYW1lCn07Cgpp bnQKcWF0X2FzeW1fZGV2X2NyZWF0ZShzdHJ1Y3QgcWF0X3BjaV9kZXZpY2UgKnFhdF9wY2lfZGV2 LAoJCXN0cnVjdCBxYXRfZGV2X2NtZF9wYXJhbSAqcWF0X2Rldl9jbWRfcGFyYW0pCnsKCWludCBp ID0gMDsKCXN0cnVjdCBxYXRfZGV2aWNlX2luZm8gKnFhdF9kZXZfaW5zdGFuY2UgPQoJCQkmcWF0 X3BjaV9kZXZzW3FhdF9wY2lfZGV2LT5xYXRfZGV2X2lkXTsKCXN0cnVjdCBydGVfY3J5cHRvZGV2 X3BtZF9pbml0X3BhcmFtcyBpbml0X3BhcmFtcyA9IHsKCQkubmFtZSA9ICIiLAoJCS5zb2NrZXRf aWQgPSBxYXRfZGV2X2luc3RhbmNlLT5wY2lfZGV2LT5kZXZpY2UubnVtYV9ub2RlLAoJCS5wcml2 YXRlX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcWF0X2NyeXB0b2Rldl9wcml2YXRlKQoJfTsK CXN0cnVjdCBxYXRfY2FwYWJpbGl0aWVzX2luZm8gY2FwYV9pbmZvOwoJY29uc3Qgc3RydWN0IHJ0 ZV9jcnlwdG9kZXZfY2FwYWJpbGl0aWVzICpjYXBhYmlsaXRpZXM7Cgljb25zdCBzdHJ1Y3QgcWF0 X2NyeXB0b19nZW5fZGV2X29wcyAqZ2VuX2Rldl9vcHMgPQoJCSZxYXRfYXN5bV9nZW5fZGV2X29w c1txYXRfcGNpX2Rldi0+cWF0X2Rldl9nZW5dOwoJY2hhciBuYW1lW1JURV9DUllQVE9ERVZfTkFN RV9NQVhfTEVOXTsKCWNoYXIgY2FwYV9tZW16X25hbWVbUlRFX0NSWVBUT0RFVl9OQU1FX01BWF9M RU5dOwoJc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmNyeXB0b2RldjsKCXN0cnVjdCBxYXRfY3J5cHRv ZGV2X3ByaXZhdGUgKmludGVybmFsczsKCXVpbnQ2NF90IGNhcGFfc2l6ZTsKCglzbnByaW50Zihu YW1lLCBSVEVfQ1JZUFRPREVWX05BTUVfTUFYX0xFTiwgIiVzXyVzIiwKCQkJcWF0X3BjaV9kZXYt Pm5hbWUsICJhc3ltIik7CglRQVRfTE9HKERFQlVHLCAiQ3JlYXRpbmcgUUFUIEFTWU0gZGV2aWNl ICVzXG4iLCBuYW1lKTsKCglpZiAoZ2VuX2Rldl9vcHMtPmNyeXB0b2Rldl9vcHMgPT0gTlVMTCkg ewoJCVFBVF9MT0coRVJSLCAiRGV2aWNlICVzIGRvZXMgbm90IHN1cHBvcnQgYXN5bW1ldHJpYyBj cnlwdG8iLAoJCQkJbmFtZSk7CgkJcmV0dXJuIC1FRkFVTFQ7Cgl9CgoJaWYgKHJ0ZV9lYWxfcHJv Y2Vzc190eXBlKCkgPT0gUlRFX1BST0NfUFJJTUFSWSkgewoJCXFhdF9wY2lfZGV2LT5xYXRfYXN5 bV9kcml2ZXJfaWQgPQoJCQkJcWF0X2FzeW1fZHJpdmVyX2lkOwoJfSBlbHNlIGlmIChydGVfZWFs X3Byb2Nlc3NfdHlwZSgpID09IFJURV9QUk9DX1NFQ09OREFSWSkgewoJCWlmIChxYXRfcGNpX2Rl di0+cWF0X2FzeW1fZHJpdmVyX2lkICE9CgkJCQlxYXRfYXN5bV9kcml2ZXJfaWQpIHsKCQkJUUFU X0xPRyhFUlIsCgkJCQkiRGV2aWNlICVzIGhhdmUgZGlmZmVyZW50IGRyaXZlciBpZCB0aGFuIGNv cnJlc3BvbmRpbmcgZGV2aWNlIGluIHByaW1hcnkgcHJvY2VzcyIsCgkJCQluYW1lKTsKCQkJcmV0 dXJuIC0oRUZBVUxUKTsKCQl9Cgl9CgoJLyogUG9wdWxhdGUgc3Vic2V0IGRldmljZSB0byB1c2Ug aW4gY3J5cHRvZGV2IGRldmljZSBjcmVhdGlvbiAqLwoJcWF0X2Rldl9pbnN0YW5jZS0+YXN5bV9y dGVfZGV2LmRyaXZlciA9ICZjcnlwdG9kZXZfcWF0X2FzeW1fZHJpdmVyOwoJcWF0X2Rldl9pbnN0 YW5jZS0+YXN5bV9ydGVfZGV2Lm51bWFfbm9kZSA9CgkJCXFhdF9kZXZfaW5zdGFuCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfYXN5bV9wbWQuYzoxCmVycm9yOiBy ZW1vdmFsIHBhdGNoIGxlYXZlcyBmaWxlIGNvbnRlbnRzCmVycm9yOiBkcml2ZXJzL2NyeXB0by9x YXQvcWF0X2FzeW1fcG1kLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvY3J5cHRvL3FhdC9xYXRfYXN5bV9wbWQuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQogKiBDb3B5cmln aHQoYykgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgogKi8KCgojaWZuZGVmIF9RQVRfQVNZTV9QTURf SF8KI2RlZmluZSBfUUFUX0FTWU1fUE1EX0hfCgojaW5jbHVkZSA8cnRlX2NyeXB0b2Rldi5oPgoj aW5jbHVkZSAicWF0X2NyeXB0by5oIgojaW5jbHVkZSAicWF0X2RldmljZS5oIgoKLyoqIEludGVs KFIpIFFBVCBBc3ltbWV0cmljIENyeXB0byBQTUQgZHJpdmVyIG5hbWUgKi8KI2RlZmluZSBDUllQ VE9ERVZfTkFNRV9RQVRfQVNZTV9QTUQJY3J5cHRvX3FhdF9hc3ltCgoKLyoqCiAqIEhlbHBlciBm dW5jdGlvbiB0byBhZGQgYW4gYXN5bSBjYXBhYmlsaXR5CiAqIDxuYW1lPiA8b3AgdHlwZT4gPG1v ZGxlbiAobWluLCBtYXgsIGluY3JlbWVudCk+CiAqKi8KI2RlZmluZSBRQVRfQVNZTV9DQVAobiwg bywgbCwgciwgaSkJCQkJCVwKCXsJCQkJCQkJCVwKCQkub3AgPSBSVEVfQ1JZUFRPX09QX1RZUEVf QVNZTU1FVFJJQywJCQlcCgkJey5hc3ltID0gewkJCQkJCVwKCQkJLnhmb3JtX2NhcGEgPSB7CQkJ CQlcCgkJCQkueGZvcm1fdHlwZSA9IFJURV9DUllQVE9fQVNZTV9YRk9STV8jI24sXAoJCQkJLm9w X3R5cGVzID0gbywJCQkJXAoJCQkJewkJCQkJXAoJCQkJLm1vZGxlbiA9IHsJCQkJXAoJCQkJLm1p biA9IGwsCQkJCVwKCQkJCS5tYXggPSByLAkJCQlcCgkJCQkuaW5jcmVtZW50ID0gaQkJCQlcCgkJ CQl9LCB9CQkJCQlcCgkJCX0JCQkJCQlcCgkJfSwJCQkJCQkJXAoJCX0JCQkJCQkJXAoJfQoKZXh0 ZXJuIHVpbnQ4X3QgcWF0X2FzeW1fZHJpdmVyX2lkOwoKZXh0ZXJuIHN0cnVjdCBxYXRfY3J5cHRv X2dlbl9kZXZfb3BzIHFhdF9hc3ltX2dlbl9kZXZfb3BzW107Cgp2b2lkCnFhdF9hc3ltX2luaXRf b3BfY29va2llKHZvaWQgKm9wX2Nvb2tpZSk7Cgp1aW50MTZfdApxYXRfYXN5bV9wbWRfZW5xdWV1 ZV9vcF9idXJzdCh2b2lkICpxcCwgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKipvcHMsCgkJCSAgICAg IHVpbnQxNl90IG5iX29wcyk7Cgp1aW50MTZfdApxYXRfYXN5bV9wbWRfZGVxdWV1ZV9vcF9idXJz dCh2b2lkICpxcCwgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKipvcHMsCgkJCSAgICAgIHVpbnQxNl90 IG5iX29wcyk7CgojZW5kaWYgLyogX1FBVF9BU1lNX1BNRF9IXyAqLwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9hc3ltX3BtZC5oOjEKZXJyb3I6IHJlbW92YWwg cGF0Y2ggbGVhdmVzIGZpbGUgY29udGVudHMKZXJyb3I6IGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRf YXN5bV9wbWQuaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9j cnlwdG8vcWF0L3FhdF9hc3ltX3JlZmFjdG9yLmMuLi4KZXJyb3I6IGRyaXZlcnMvY3J5cHRvL3Fh dC9xYXRfYXN5bV9yZWZhY3Rvci5jOiBkb2VzIG5vdCBleGlzdCBpbiBpbmRleApDaGVja2luZyBw YXRjaCBkcml2ZXJzL2NyeXB0by9xYXQvcWF0X2FzeW1fcmVmYWN0b3IuaC4uLgplcnJvcjogZHJp dmVycy9jcnlwdG8vcWF0L3FhdF9hc3ltX3JlZmFjdG9yLmg6IGRvZXMgbm90IGV4aXN0IGluIGlu ZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfY3J5cHRvLmguLi4KZXJy b3I6IGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfY3J5cHRvLmg6IGRvZXMgbm90IGV4aXN0IGluIGlu ZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3ltLmMuLi4KZXJyb3I6 IGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3ltLmM6IGRvZXMgbm90IG1hdGNoIGluZGV4CkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3ltLmguLi4KZXJyb3I6IGRyaXZlcnMv Y3J5cHRvL3FhdC9xYXRfc3ltLmg6IGRvZXMgbm90IG1hdGNoIGluZGV4CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3ltX2h3X2RwLmMuLi4KZXJyb3I6IGRyaXZlcnMvY3J5 cHRvL3FhdC9xYXRfc3ltX2h3X2RwLmM6IGRvZXMgbm90IG1hdGNoIGluZGV4CkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvY3J5cHRvL3FhdC9xYXRfc3ltX3BtZC5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgovKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqIENv cHlyaWdodChjKSAyMDE1LTIwMTggSW50ZWwgQ29ycG9yYXRpb24KICovCgojaW5jbHVkZSA8cnRl X2J1c19wY2kuaD4KI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4KI2luY2x1ZGUgPHJ0ZV9kZXYuaD4K I2luY2x1ZGUgPHJ0ZV9tYWxsb2MuaD4KI2luY2x1ZGUgPHJ0ZV9wY2kuaD4KI2luY2x1ZGUgPGNy eXB0b2Rldl9wbWQuaD4KI2lmZGVmIFJURV9MSUJfU0VDVVJJVFkKI2luY2x1ZGUgPHJ0ZV9zZWN1 cml0eV9kcml2ZXIuaD4KI2VuZGlmCgojaW5jbHVkZSAicWF0X2xvZ3MuaCIKI2luY2x1ZGUgInFh dF9jcnlwdG8uaCIKI2luY2x1ZGUgInFhdF9zeW0uaCIKI2luY2x1ZGUgInFhdF9zeW1fc2Vzc2lv bi5oIgojaW5jbHVkZSAicWF0X3N5bV9wbWQuaCIKCiNkZWZpbmUgTUlYRURfQ1JZUFRPX01JTl9G V19WRVIgMHgwNDA5MDAwMAoKdWludDhfdCBxYXRfc3ltX2RyaXZlcl9pZDsKCnN0cnVjdCBxYXRf Y3J5cHRvX2dlbl9kZXZfb3BzIHFhdF9zeW1fZ2VuX2Rldl9vcHNbUUFUX05fR0VOU107Cgp2b2lk CnFhdF9zeW1faW5pdF9vcF9jb29raWUodm9pZCAqb3BfY29va2llKQp7CglzdHJ1Y3QgcWF0X3N5 bV9vcF9jb29raWUgKmNvb2tpZSA9IG9wX2Nvb2tpZTsKCgljb29raWUtPnFhdF9zZ2xfc3JjX3Bo eXNfYWRkciA9CgkJCXJ0ZV9tZW1wb29sX3ZpcnQyaW92YShjb29raWUpICsKCQkJb2Zmc2V0b2Yo c3RydWN0IHFhdF9zeW1fb3BfY29va2llLAoJCQlxYXRfc2dsX3NyYyk7CgoJY29va2llLT5xYXRf c2dsX2RzdF9waHlzX2FkZHIgPQoJCQlydGVfbWVtcG9vbF92aXJ0MmlvdmEoY29va2llKSArCgkJ CW9mZnNldG9mKHN0cnVjdCBxYXRfc3ltX29wX2Nvb2tpZSwKCQkJcWF0X3NnbF9kc3QpOwoKCWNv b2tpZS0+b3B0LnNwY19nbWFjLmNkX3BoeXNfYWRkciA9CgkJCXJ0ZV9tZW1wb29sX3ZpcnQyaW92 YShjb29raWUpICsKCQkJb2Zmc2V0b2Yoc3RydWN0IHFhdF9zeW1fb3BfY29va2llLAoJCQlvcHQu c3BjX2dtYWMuY2RfY2lwaGVyKTsKfQoKc3RhdGljIHVpbnQxNl90CnFhdF9zeW1fcG1kX2VucXVl dWVfb3BfYnVyc3Qodm9pZCAqcXAsIHN0cnVjdCBydGVfY3J5cHRvX29wICoqb3BzLAoJCXVpbnQx Nl90IG5iX29wcykKewoJcmV0dXJuIHFhdF9lbnF1ZXVlX29wX2J1cnN0KHFwLCAodm9pZCAqKilv cHMsIG5iX29wcyk7Cn0KCnN0YXRpYyB1aW50MTZfdApxYXRfc3ltX3BtZF9kZXF1ZXVlX29wX2J1 cnN0KHZvaWQgKnFwLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqKm9wcywKCQl1aW50MTZfdCBuYl9v cHMpCnsKCXJldHVybiBxYXRfZGVxdWV1ZV9vcF9idXJzdChxcCwgKHZvaWQgKiopb3BzLCBuYl9v cHMpOwp9CgovKiBBbiBydGVfZHJpdmVyIGlzIG5lZWRlZCBpbiB0aGUgcmVnaXN0cmF0aW9uIG9m IGJvdGggdGhlIGRldmljZSBhbmQgdGhlIGRyaXZlcgogKiB3aXRoIGNyeXB0b2Rldi4KICogVGhl IGFjdHVhbCBxYXQgcGNpJ3MgcnRlX2RyaXZlciBjYW4ndCBiZSB1c2VkIGFzIGl0cyBuYW1lIHJl cHJlc2VudHMKICogdGhlIHdob2xlIHBjaSBkZXZpY2Ugd2l0aCBhbGwgc2VydmljZXMuIFRoaW5r IG9mIHRoaXMgYXMgYSBob2xkZXIgZm9yIGEgbmFtZQogKiBmb3IgdGhlIGNyeXB0byBwYXJ0IG9m IHRoZSBwY2kgZGV2aWNlLgogKi8Kc3RhdGljIGNvbnN0IGNoYXIgcWF0X3N5bV9kcnZfbmFtZVtd ID0gUlRFX1NUUihDUllQVE9ERVZfTkFNRV9RQVRfU1lNX1BNRCk7CnN0YXRpYyBjb25zdCBzdHJ1 Y3QgcnRlX2RyaXZlciBjcnlwdG9kZXZfcWF0X3N5bV9kcml2ZXIgPSB7CgkubmFtZSA9IHFhdF9z eW1fZHJ2X25hbWUsCgkuYWxpYXMgPSBxYXRfc3ltX2Rydl9uYW1lCn07CgppbnQKcWF0X3N5bV9k ZXZfY3JlYXRlKHN0cnVjdCBxYXRfcGNpX2RldmljZSAqcWF0X3BjaV9kZXYsCgkJc3RydWN0IHFh dF9kZXZfY21kX3BhcmFtICpxYXRfZGV2X2NtZF9wYXJhbSBfX3J0ZV91bnVzZWQpCnsKCWludCBp ID0gMCwgcmV0ID0gMDsKCXN0cnVjdCBxYXRfZGV2aWNlX2luZm8gKnFhdF9kZXZfaW5zdGFuY2Ug PQoJCQkmcWF0X3BjaV9kZXZzW3FhdF9wY2lfZGV2LT5xYXRfZGV2X2lkXTsKCXN0cnVjdCBydGVf Y3J5cHRvZGV2X3BtZF9pbml0X3BhcmFtcyBpbml0X3BhcmFtcyA9IHsKCQkubmFtZSA9ICIiLAoJ CS5zb2NrZXRfaWQgPSBxYXRfZGV2X2luc3RhbmNlLT5wY2lfZGV2LT5kZXZpY2UubnVtYV9ub2Rl LAoJCS5wcml2YXRlX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcWF0X2NyeXB0b2Rldl9wcml2 YXRlKQoJfTsKCWNoYXIgbmFtZVtSVEVfQ1JZUFRPREVWX05BTUVfTUFYX0xFTl07CgljaGFyIGNh cGFfbWVtel9uYW1lW1JURV9DUllQVE9ERVZfTkFNRV9NQVhfTEVOXTsKCXN0cnVjdCBydGVfY3J5 cHRvZGV2ICpjcnlwdG9kZXY7CglzdHJ1Y3QgcWF0X2NyeXB0b2Rldl9wcml2YXRlICppbnRlcm5h bHM7CglzdHJ1Y3QgcWF0X2NhcGFiaWxpdGllc19pbmZvIGNhcGFfaW5mbzsKCWNvbnN0IHN0cnVj dCBydGVfY3J5cHRvZGV2X2NhcGFiaWxpdGllcyAqY2FwYWJpbGl0aWVzOwoJY29uc3Qgc3RydWN0 IHFhdF9jcnlwdG9fZ2VuX2Rldl9vcHMgKmdlbl9kZXZfb3BzID0KCQkmcWF0X3N5bV9nZW5fZGV2 X29wc1txYXRfcGNpX2Rldi0+cWF0X2Rldl9nZW5dOwoJdWludDY0X3QgY2FwYV9zaXplOwoKCXNu cHJpbnRmKG5hbWUsIFJURV9DUllQVE9ERVZfTkFNRV9NQVhfTEVOLCAiJXNfJXMiLAoJCQlxYXRf cGNpX2Rldi0+bmFtZSwgInN5bSIpOwoJUUFUX0xPRyhERUJVRywgIkNyZWF0aW5nIFFBVCBTWU0g ZGV2aWNlICVzIiwgbmFtZSk7CgoJaWYgKGdlbl9kZXZfb3BzLT5jcnlwdG9kZXZfb3BzID09IE5V TEwpIHsKCQlRQVRfTE9HKEVSUiwgIkRldmljZSAlcyBkb2VzIG5vdCBzdXBwb3J0IHN5bW1ldHJp YyBjcnlwdG8iLAoJCQkJbmFtZSk7CgkJcmV0dXJuIC1FRkFVTFQ7Cgl9CgoJLyoKCSAqIEFsbCBw cm9jZXNzZXMgbXVzdCB1c2Ugc2FtZSBkcml2ZXIgaWQgc28gdGhleSBjYW4gc2hhcmUgc2Vzc2lv bnMuCgkgKiBTdG9yZSBkcml2ZXJfaWQgc28gd2UgY2FuIHZhbGlkYXRlIHRoYXQgYWxsIHByb2Nl c3NlcyBoYXZlIHRoZSBzYW1lCgkgKiB2YWx1ZSwgdHlwaWNhbGx5IHRoZXkgaGF2ZSwgYnV0IGNv dWxkIGRpZmZlciBpZiBiaW5hcmllcyBidWlsdAoJICogc2VwYXJhdGVseS4KCSAqLwoJaWYgKHJ0 ZV9lYWxfcHJvY2Vzc190eXBlKCkgPT0gUlRFX1BST0NfUFJJTUFSWSkgewoJCXFhdF9wY2lfZGV2 LT5xYXRfc3ltX2RyaXZlcl9pZCA9CgkJCQlxYXRfc3ltX2RyaXZlcl9pZDsKCX0gZWxzZSBpZiAo cnRlX2VhbF9wcm9jZXNzX3R5cGUoKSA9PSBSVEVfUFJPQ19TRUNPTkRBUlkpIHsKCQlpZiAocWF0 X3BjaV9kZXYtPnFhdF9zeW1fZHJpdmVyX2lkICE9CgkJCQlxYXRfc3ltX2RyaXZlcl9pZCkgewoJ CQlRQVRfTE9HKEVSUiwKCQkJCSJEZXZpY2UgJXMgaGF2ZSBkaWZmZXJlbnQgZHJpdmVyIGlkIHRo YW4gY29ycmVzcG9uZGluZyBkZXZpY2UgaW4gcHJpbWFyeSBwcm9jZXNzIiwKCQkJCW5hbWUpOwoJ CQlyZXR1cm4gLShFRkFVTFQpOwoJCX0KCX0KCgkvKiBQb3B1bGF0ZSBzdWJzZXQgZGV2aWNlIHRv IHVzZSBpbiBjcnlwdG9kZXYgZGV2aWNlIGNyZWF0aW9uICovCglxYXRfZGV2X2luc3RhbmNlLT5z eW1fcnRlX2Rldi5kcml2ZXIgPSAmY3J5cHRvZGV2X3FhdF9zeW1fZHJpdmVyOwoJcWF0X2Rldl9p bnN0YW5jZS0+c3ltX3J0ZV9kZXYubnVtYV9ub2RlID0KCQkJcWF0X2Rldl9pbnN0YW5jZS0+cGNp X2Rldi0+ZGV2aWNlLm51bWFfbm9kZTsKCXFhdF9kZXZfaW5zdGFuY2UtPnN5bV9ydGVfZGV2LmRl dmFyZ3MgPSBOVUxMOwoKCWNyeXB0b2RldiA9IHJ0ZV9jcnlwdG9kZXZfcG1kX2NyZWF0ZShuYW1l LAoJCQkmKHFhdF9kZXZfaW5zdGFuY2UtPnN5bV9ydGVfZGV2KSwgJmluaXRfcGFyYW1zKTsKCglp ZiAoY3J5cHRvZGV2ID09IE5VTEwpCgkJcmV0dXJuIC1FTk9ERVY7CgoJcWF0X2Rldl9pbnN0YW5j ZS0+c3ltX3J0ZV9kZXYubmFtZSA9IGNyeXB0b2Rldi0+ZGF0YS0+bmFtZTsKCWNyeXB0b2Rldi0+ ZHJpdmVyX2lkID0gcWF0X3N5bV9kcml2ZXJfaWQ7CgljcnlwdG8KZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1fcG1kLmM6MQplcnJvcjogcmVtb3ZhbCBwYXRj aCBsZWF2ZXMgZmlsZSBjb250ZW50cwplcnJvcjogZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1f cG1kLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRv L3FhdC9xYXRfc3ltX3BtZC5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgovKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCiAqIENvcHlyaWdodChjKSAyMDE1LTIw MTggSW50ZWwgQ29ycG9yYXRpb24KICovCgojaWZuZGVmIF9RQVRfU1lNX1BNRF9IXwojZGVmaW5l IF9RQVRfU1lNX1BNRF9IXwoKI2lmZGVmIEJVSUxEX1FBVF9TWU0KCiNpbmNsdWRlIDxydGVfZXRo ZXIuaD4KI2luY2x1ZGUgPHJ0ZV9jcnlwdG9kZXYuaD4KI2lmZGVmIFJURV9MSUJfU0VDVVJJVFkK I2luY2x1ZGUgPHJ0ZV9zZWN1cml0eS5oPgojZW5kaWYKCiNpbmNsdWRlICJxYXRfY3J5cHRvLmgi CiNpbmNsdWRlICJxYXRfZGV2aWNlLmgiCgovKiogSW50ZWwoUikgUUFUIFN5bW1ldHJpYyBDcnlw dG8gUE1EIGRyaXZlciBuYW1lICovCiNkZWZpbmUgQ1JZUFRPREVWX05BTUVfUUFUX1NZTV9QTUQJ Y3J5cHRvX3FhdAoKLyogSW50ZXJuYWwgY2FwYWJpbGl0aWVzICovCiNkZWZpbmUgUUFUX1NZTV9D QVBfTUlYRURfQ1JZUFRPCSgxIDw8IDApCiNkZWZpbmUgUUFUX1NZTV9DQVBfVkFMSUQJCSgxIDw8 IDMxKQoKLyoqCiAqIE1hY3JvIHRvIGFkZCBhIHN5bSBjYXBhYmlsaXR5CiAqIGhlbHBlciBmdW5j dGlvbiB0byBhZGQgYW4gc3ltIGNhcGFiaWxpdHkKICogPG46IG5hbWU+IDxiOiBibG9jayBzaXpl PiA8azoga2V5IHNpemU+IDxkOiBkaWdlc3Qgc2l6ZT4KICogPGE6IGFhZF9zaXplPiA8aTogaXZf c2l6ZT4KICoqLwojZGVmaW5lIFFBVF9TWU1fUExBSU5fQVVUSF9DQVAobiwgYiwgZCkJCQkJCVwK CXsJCQkJCQkJCVwKCQkub3AgPSBSVEVfQ1JZUFRPX09QX1RZUEVfU1lNTUVUUklDLAkJCVwKCQl7 LnN5bSA9IHsJCQkJCQlcCgkJCS54Zm9ybV90eXBlID0gUlRFX0NSWVBUT19TWU1fWEZPUk1fQVVU SCwJXAoJCQl7LmF1dGggPSB7CQkJCQlcCgkJCQkuYWxnbyA9IFJURV9DUllQVE9fQVVUSF8jI24s CQlcCgkJCQliLCBkCQkJCQlcCgkJCX0sIH0JCQkJCQlcCgkJfSwgfQkJCQkJCQlcCgl9CgojZGVm aW5lIFFBVF9TWU1fQVVUSF9DQVAobiwgYiwgaywgZCwgYSwgaSkJCQkJXAoJewkJCQkJCQkJXAoJ CS5vcCA9IFJURV9DUllQVE9fT1BfVFlQRV9TWU1NRVRSSUMsCQkJXAoJCXsuc3ltID0gewkJCQkJ CVwKCQkJLnhmb3JtX3R5cGUgPSBSVEVfQ1JZUFRPX1NZTV9YRk9STV9BVVRILAlcCgkJCXsuYXV0 aCA9IHsJCQkJCVwKCQkJCS5hbGdvID0gUlRFX0NSWVBUT19BVVRIXyMjbiwJCVwKCQkJCWIsIGss IGQsIGEsIGkJCQkJXAoJCQl9LCB9CQkJCQkJXAoJCX0sIH0JCQkJCQkJXAoJfQoKI2RlZmluZSBR QVRfU1lNX0FFQURfQ0FQKG4sIGIsIGssIGQsIGEsIGkpCQkJCVwKCXsJCQkJCQkJCVwKCQkub3Ag PSBSVEVfQ1JZUFRPX09QX1RZUEVfU1lNTUVUUklDLAkJCVwKCQl7LnN5bSA9IHsJCQkJCQlcCgkJ CS54Zm9ybV90eXBlID0gUlRFX0NSWVBUT19TWU1fWEZPUk1fQUVBRCwJXAoJCQl7LmFlYWQgPSB7 CQkJCQlcCgkJCQkuYWxnbyA9IFJURV9DUllQVE9fQUVBRF8jI24sCQlcCgkJCQliLCBrLCBkLCBh LCBpCQkJCVwKCQkJfSwgfQkJCQkJCVwKCQl9LCB9CQkJCQkJCVwKCX0KCiNkZWZpbmUgUUFUX1NZ TV9DSVBIRVJfQ0FQKG4sIGIsIGssIGkpCQkJCQlcCgl7CQkJCQkJCQlcCgkJLm9wID0gUlRFX0NS WVBUT19PUF9UWVBFX1NZTU1FVFJJQywJCQlcCgkJey5zeW0gPSB7CQkJCQkJXAoJCQkueGZvcm1f dHlwZSA9IFJURV9DUllQVE9fU1lNX1hGT1JNX0NJUEhFUiwJXAoJCQl7LmNpcGhlciA9IHsJCQkJ CVwKCQkJCS5hbGdvID0gUlRFX0NSWVBUT19DSVBIRVJfIyNuLAkJXAoJCQkJYiwgaywgaQkJCQkJ XAoJCQl9LCB9CQkJCQkJXAoJCX0sIH0JCQkJCQkJXAoJfQoKZXh0ZXJuIHVpbnQ4X3QgcWF0X3N5 bV9kcml2ZXJfaWQ7CgpleHRlcm4gc3RydWN0IHFhdF9jcnlwdG9fZ2VuX2Rldl9vcHMgcWF0X3N5 bV9nZW5fZGV2X29wc1tdOwoKaW50CnFhdF9zeW1fZGV2X2NyZWF0ZShzdHJ1Y3QgcWF0X3BjaV9k ZXZpY2UgKnFhdF9wY2lfZGV2LAoJCXN0cnVjdCBxYXRfZGV2X2NtZF9wYXJhbSAqcWF0X2Rldl9j bWRfcGFyYW0pOwoKaW50CnFhdF9zeW1fZGV2X2Rlc3Ryb3koc3RydWN0IHFhdF9wY2lfZGV2aWNl ICpxYXRfcGNpX2Rldik7Cgp2b2lkCnFhdF9zeW1faW5pdF9vcF9jb29raWUodm9pZCAqb3BfY29v a2llKTsKCiNlbmRpZgojZW5kaWYgLyogX1FBVF9TWU1fUE1EX0hfICovCgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9xYXQvcWF0X3N5bV9wbWQuaDoxCmVycm9yOiByZW1vdmFs IHBhdGNoIGxlYXZlcyBmaWxlIGNvbnRlbnRzCmVycm9yOiBkcml2ZXJzL2NyeXB0by9xYXQvcWF0 X3N5bV9wbWQuaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9j cnlwdG8vcWF0L3FhdF9zeW1fcmVmYWN0b3IuYy4uLgplcnJvcjogZHJpdmVycy9jcnlwdG8vcWF0 L3FhdF9zeW1fcmVmYWN0b3IuYzogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1fcmVmYWN0b3IuaC4uLgplcnJvcjogZHJpdmVy cy9jcnlwdG8vcWF0L3FhdF9zeW1fcmVmYWN0b3IuaDogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vcWF0L3FhdF9zeW1fc2Vzc2lvbi5jLi4uCmVy cm9yOiBkcml2ZXJzL2NyeXB0by9xYXQvcWF0X3N5bV9zZXNzaW9uLmM6IGRvZXMgbm90IG1hdGNo IGluZGV4CkFwcGx5aW5nIHBhdGNoIGRyaXZlcnMvY29tbW9uL3FhdC9tZXNvbi5idWlsZCB3aXRo IDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9jb21t b24vcWF0L3FhdF9kZXZpY2UuYyBjbGVhbmx5LgpkaWZmIGEvZHJpdmVycy9jb21tb24vcWF0L21l c29uLmJ1aWxkIGIvZHJpdmVycy9jb21tb24vcWF0L21lc29uLmJ1aWxkCShyZWplY3RlZCBodW5r cykKQEAgLTcwLDggKzcwLDggQEAgaWYgcWF0X2NvbXByZXNzCiBlbmRpZgogCiBpZiBxYXRfY3J5 cHRvCi0gICAgZm9yZWFjaCBmOiBbJ3FhdF9zeW1fcmVmYWN0b3IuYycsICdxYXRfc3ltX3Nlc3Np b24uYycsCi0gICAgICAgICAgICAncWF0X3N5bV9od19kcC5jJywgJ3FhdF9hc3ltX3JlZmFjdG9y LmMnLCAncWF0X2NyeXB0by5jJywKKyAgICBmb3JlYWNoIGY6IFsncWF0X3N5bS5jJywgJ3FhdF9z eW1fc2Vzc2lvbi5jJywKKyAgICAgICAgICAgICdxYXRfYXN5bS5jJywgJ3FhdF9jcnlwdG8uYycs CiAJICAgICdkZXYvcWF0X3N5bV9wbWRfZ2VuMS5jJywKICAgICAgICAgICAgICdkZXYvcWF0X2Fz eW1fcG1kX2dlbjEuYycsCiAgICAgICAgICAgICAnZGV2L3FhdF9jcnlwdG9fcG1kX2dlbjIuYycs CgpodHRwczovL2xhYi5kcGRrLm9yZy9yZXN1bHRzL2Rhc2hib2FyZC9wYXRjaHNldHMvMTk4OTQv CgpVTkgtSU9MIERQREsgQ29tbXVuaXR5IExhYgo= --===============6582348635675344030==--