From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id ACE2FC98311 for ; Wed, 23 Sep 2026 18:30:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4GrEHGewW/mlyecxqYK6PWiNzox5bAuWATRIqhuWf+Q=; b=ma6LUFZlcbDy1Y IvvTZHbg+M3MDtkZA6X2Cbboy74uZUrfuJL7/sf/G8BxeDwTl84cz0q65G06f/w64gSKZXdfSvrKL 3dtLc9wQVA3E4nkJVcZwZ64SMCif8QoePV54IiD9v4Xm6ZJXeWQPnq/OfaWRR5oksG5XhDFIlIsGp NbC/OkCGkL+2wlqp9e9Z+nED1kxxhYLCB4RuDVc90h61Nuv83qUbSdR4yNJq2DTFtN1zPDsC0PZv8 kmrgbCndWzN6zJetecBumbxxk8Fa0i+kB4c1Nf7ANVF4ust3WP1Dbya9c3ys2gOyVsCsblhtAY9MO 8wT8nHCm2sFLwNOhH+bQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9RjS-00000009CNw-1KB4; Wed, 23 Sep 2026 18:30:14 +0000 Received: from mail-wm2-x11.google.com ([2a00:1450:4864:31::11]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9RjJ-00000009CH8-2rhj for linux-phy@lists.infradead.org; Wed, 23 Sep 2026 18:30:10 +0000 Received: by mail-wm2-x11.google.com with SMTP id 5b1f17b1804b1-49cd38e0f79so6998915e9.3 for ; Wed, 23 Sep 2026 11:30:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790188204; x=1790793004; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Dt7Z1/Y1SF2YcaDjj8EVKBl0+6gDhUSuvfn56m6J+pU=; b=HxjGdZU+RagYVQSKl9VzEO6lK+kvNXw3t/oOrEPPxfIdBs8Ns7j8M8iX9QaFryFP1j sSw5DDqir2FVheiuNWcc0mkaBCWaKUSFE+RUFEC8wQ0PHEprB/FIZyplsmI01JGNDrAM ATa9e6/PnqVZ17czKqAAB1dIR2jUfwE5htJeAN2ysHYxCy86kbA4ZOwStxJn+ssrWnXD AHyutCQfWxiakWVOm9UiHqgeR4h7cTX/nEXHlwZFcSDULfxiD+3B9XBHKCOMv1HvWmBC iq4Gb+6QC+bZJ9KYJHZGLsxgdDtbp9Qm9CFyh+wvcjTZeyz5bj1I/f21C0+DuJBaL1gp ZpSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790188204; x=1790793004; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Dt7Z1/Y1SF2YcaDjj8EVKBl0+6gDhUSuvfn56m6J+pU=; b=H5PSm95O+f2misbDNeBIXCEDim0oCRXVmMV5hZf+cSv/631vuw7SdfmdyPOEVIV/Od +CYOkIWr0dmHyvJqNx3FGnATHZ0WxSxocEoZX7klJt+AV66y7tFDmuW9teGyLLLDfr2x n+JRfei8+xYjPttKBmc9djGOpHVzDot1sqliUYRSomNIUUa+JIIF4eJVIBgSmhfJzYqc +y6lu50hMf8F8ee5/rdSjchMkyK7voSURnlpbkBr6jgJT3qzOw9xjgPiOWVzC/bzkvdW u8FtA9fB4+HTV0aCVcBhIh5BmiJpwaHCK6Lb8E1tiMOWz3AhRJyK9+rrcBwcB5+Fv4Fd qDzQ== X-Forwarded-Encrypted: i=1; AKwUvBzycjatG67hSeArG2C9SsHX10bPaG+3y1tm36xJGKZaosU8pc0Ffd0HfW2ovKaEwEG4vqLVqMFSPno=@lists.infradead.org X-Gm-Message-State: AFuF++mQHrv4TuX+YOESAV7+bAqYyfaL+8KX42jy39ZUk4VxgOEo1z0X 78ppbXpodjkpod4mTZH5g8bBfozGP2UTCFNeG+nxDXDbra0C2pS8J/Ni X-Gm-Gg: AYBFou11iSb2VQOxx3Q5Kv4btFHtfys+p4UbLLfrmvohhZ4fub/eNscPaOB4vfd1ohM CDTYzBfts4sBluv0TsX01ZMzVFR8nNp7zGyZFbTfkolA6PmmZ/PT0RoJMdV2ULHst6mDAYnL7/Y jyYGQu4H99frPDBPJCFsLAEZmzIKgyuzacdzYVBCpa1ruTnlb4YWOZq/eIRrXTVvcEXfXa0Xtkr WYmXJDLKWl6KMMR1h9UDtEPGO4pKkrbmxhd4fvhBF9R/Q8QcjWeTg1IqaAnNeqKKyXUUmv3qUgB eQYWI4gT8yvaE0wQlUR2yUnjQ5NKt5lL+pBEYMiyakydXr6BhtQyZEq7Sc64Xg0JJg2H0YlrYTV Aei/UcJfOMe0rmraXWlB+fIdnMOZzlT+lbVCo4sz/nChcMCVCbAhdEk3hAuVbJdxUgRosJkLYq5 BDjYmHujoqkEFFkZXLP527kgD2IQ1UuRSu9ZR+RilhHJ72PwZM1PY9pvbhnMVCWu8oq2OIhCgeV fOw X-Received: by 2002:a05:600c:4e86:b0:49f:bc0d:2e9 with SMTP id 5b1f17b1804b1-49fe668419dmr1924855e9.0.1790188203544; Wed, 23 Sep 2026 11:30:03 -0700 (PDT) Received: from [192.168.0.2] ([197.250.51.38]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-49fe5cd3d5csm4711835e9.14.2026.09.23.11.29.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Sep 2026 11:30:03 -0700 (PDT) From: =?utf-8?q?Stefan_D=C3=B6singer?= Date: Wed, 23 Sep 2026 21:28:54 +0300 Subject: [PATCH v12 08/12] clk: zte: Introduce a driver for zx297520v3 top clocks MIME-Version: 1.0 Message-Id: <20260923-zx29clk-v12-8-9c243796b6d2@gmail.com> References: <20260923-zx29clk-v12-0-9c243796b6d2@gmail.com> In-Reply-To: <20260923-zx29clk-v12-0-9c243796b6d2@gmail.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Brian Masney , Vinod Koul , Neil Armstrong , Russell King , Lee Jones , Brian Masney , Jerome Brunet , Manivannan Sadhasivam Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, mfd@lists.linux.dev, =?utf-8?q?Stefan_D=C3=B6singer?= X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=43190; i=stefandoesinger@gmail.com; h=from:subject:message-id; bh=mtaDzwOOefyyi+FqiqQxrHAqnQQo3gmbQhcZynFjgb4=; b=owEBiQJ2/ZANAwAIAT0TvMhUTxoiAcsmYgBqtBpuPivSLdu/624OG+j3AYflKGL95aQWdpNMh ay5g6714LmJAk8EAAEIADkWIQRDFvS2qgVbJ5UyXWw9E7zIVE8aIgUCarQabhsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDIACgkQPRO8yFRPGiKO6w/6A73V9ppZUBweYgSArZqtsmzuCdA4FDz KqX8rGKBmAfsiV6SxptpKfzpIKENLyBugmocke3xot3zyZViz61K7j8yeVgfJaEaC89xpeyn8b3 I8STswgpJOv00B+X6ynNKMNro6Y4VoyqzNcVCNRN251XJZAiGQ8oTmupCwnBOSvOvSZ6cBTaBTg RWigVP1sfQ4dexUhSR9GJ2kX735eOjg4gi+MNW7a2JiPrpE2G1yTbk0zSSfDgK9T35MHDleGgnG Pqy4/Jk5aULiOpPmNnRaTD9iFFVPB94Otn2gTxGDDqlW2sUK6adKZKW7uQmMJNMtde9U/ueloH4 o0rt8YTxF+RQpfuv0msouKCt/GXDydcAn3ha9qWtYvy2PtxyO6LITHBe9B0gkySw450Geluvrcl dfRE5OSfC71Jew6Uf0GBdToBWu+1FtWWHAwN8UIZmyIvMOK5Vk2keGKj+0wJErnnPkpYytvrDX1 P7cuAQvKTjdvD2xaCbjsDzJTH6QsXIr5OnJWZdoPVVxzx8egFaeJsqWoOm+LaPp4baaFaH14RPH 04ddxOlBrCyKbALsNiJVd2C7wIOEW0BzeHz8N0UN7xn84Q/R9iEZl1S+KT2eV0c8tPAaGsuwKhg 1kXUijTrfAYRx4m4euQqV2VSlKOaJeTXJhb1rUv1yk366VNXwgCw= X-Developer-Key: i=stefandoesinger@gmail.com; a=openpgp; fpr=4F9C2C8728019633893EBBB98CB81F9A72BBA155 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260923_113006_822772_4D13F977 X-CRM114-Status: GOOD ( 41.07 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhpcyByZWdpc3RlciBzcGFjZSBjb250cm9scyBjb3JlIGRldmljZXM6IFBMTHMsIHRoZSBBSEIg YnVzLCBhIGxvdCBvZgp0aW1lcnMsIHRoZSBVU0IgY29udHJvbGxlciwgdGhlIENvcnRleCBNMCBw cm9jZXNzb3IgdGhhdCBib290cyB0aGUgYm9hcmQKYW5kIGEgZmV3IG90aGVyIGRldmljZXMuIEZv ciBzb21lIHJlYXNvbiB0aGUgTFRFIGNvcHJvY2Vzc29yIGlzIGFsc28KcGFydGlhbGx5IGNvbnRy b2xsZWQgYnkgaXQuIFRoZSBtYWluIGFwcGxpY2F0aW9uIHByb2Nlc3NvciBhbmQgRERSCm1lbW9y eSBhcmUgbm90IGZvdW5kIGhlcmUgdGhvdWdoLgoKVGhlIHJlZ2lzdGVyIHRvIHJlYm9vdCB0aGUg Ym9hcmQgaXMgZm91bmQgaGVyZSwgYXMgd2VsbCBhcyBhIHJlZ2lzdGVyIHRvCmNvbnRyb2wgd2hl dGhlciB3YXRjaGRvZyBleHBpcmllcyBjYXVzZSBhIGJvYXJkIHJlc2V0LgoKUmV2aWV3ZWQtYnk6 IEJyaWFuIE1hc25leSA8Ym1hc25leUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4g RMO2c2luZ2VyIDxzdGVmYW5kb2VzaW5nZXJAZ21haWwuY29tPgotLS0KClZlcnNpb24gMTI6Cklt cHJvdmVtZW50cyBvbiB0aGUgR1NNIGFuZCBMVEUgcmVsYXRlZCBjbG9ja3MuIFRoZSBHU00gY2xv Y2tzIGluIDB4NjgKYXJlIGV4cG9ydHMgZm9yIHlldCBhbm90aGVyIGNsb2NrIGNvbnRyb2xsZXIs IHdoaWNoIGluIHR1cm4gZmVlZHMgYQpJbmZpbmVvbiBQTUI4ODc3IGJhc2VkIEdTTSBJUC4gVGhl IFNJTSBjYXJkIHJlYWRlciBpcyBhIHBhcnQgb2YgdGhpcywgc28KaXQgaXMgbmVjZXNzYXJ5IGhh cmR3YXJlIGV2ZW4gaWYgb25lIGRvZXNuJ3QgY2FyZSBhYm91dCAyRyBuZXR3b3JrCmFjY2Vzcy4g VGhpcyB3b3JrIGFsc28gdW5jb3ZlcmVkIG9uZSBvZiB0aGUgcHJldmlvdXNseSB1bmtub3duIGNs b2NrcyBpbgp0aGUgMHgxNDAgZGlzdHJpYnV0aW9uIGdhdGVzLgoKVGhlIExQTV8qIGNsb2NrcyBo YXZlIG9zYzI2bSBhcyB0aGVpciBwYXJlbnRzLiBJIGFsc28gdXBkYXRlZCB0aGUKY29tbWVudCBh IGJpdCB0byByZWZsZWN0IG5ldyBrbm93bGVkZ2UgSSBmb3VuZCB3aGVuIHBva2luZyBhdCBMVEUK c3VwcG9ydC4KClZlcnNpb24gMTE6ClVuY2hhbmdlZAoKQFNhc2hpa286IEFzIGZhciBhcyBteSBy ZXZlcnNlIGVuZ2luZWVyaW5nIHVuZGVyc3RhbmRpbmcgZ29lcyBBSEJfUENMSwphbmQgQUhCX1dD TEsgaGF2ZSB0aGUgY29ycmVjdCBwYXJlbnRzLiBXaXRoIEFIQl9XQ0xLIGdhdGVkIG9mZiBlaXRo ZXIKZGlyZWN0bHkgb3IgdmlhIG9uZSBvZiBpdHMgcGFyZW50cywgdGhlIFVTQiByZWdpc3RlcnMg YXJlIG5vIGxvbmdlcgpyZWFkYWJsZS4KCkFIQl9QQ0xLIG9uIHRoZSBvdGhlciBoYW5kIGlzIGNs b2NraW5nIHdoYXRldmVyIGhhcmR3YXJlIGlzIHJlc3BvbnNpYmxlCmZvciBldmVudHVhbGx5IHRy YW5zZmVycmluZyB0aGUgZGF0YSBmcm9tIHRoZSBBSEIvTTAvVVNCIHN1YnNlY3Rpb24gb2YKdGhl IGJvYXJkIHRvIEREUiByYW0sIHNvIGNsb2NraW5nIEFIQl9QQ0xLIGxvd2VyIGNhdXNlcyBsb3dl ciBVU0IKdHJhbnNmZXIgc3BlZWRzLiBJdCBkb2Vzbid0IGFmZmVjdCB0aGUgVVNCIGNvbnRyb2xs ZXIgZGlyZWN0bHkgdGhvdWdoLgoKVmVyc2lvbiA5OgpMaW5rIGludGVybmFsIHBhcmVudHMgYnkg YW4gKGludGVybmFsKSBjbG9jayBJRCByYXRoZXIgdGhhbiBuYW1lcy4KClRoZXJlIHNob3VsZCBi ZSBubyBkaWZmZXJlbmNlIGluIHRoZSBidWlsdCBjbG9jayB0cmVlIGNvbXBhcmVkIHRvClZlcnNp b24gOC4KClZlcnNpb24gODoKUmVuYW1lIHRoZSBleHBlY3RlZCBjbG9jayBuYW1lIG9mIHRoZSBm aXhlZCBvc2NpbGxhdG9ycyB0byBjbG9jay0yNm0gYW5kCmNsb2NrLTMyay4gU2FzaGlrbyBwb2lu dGVkIG91dCB0aGF0ICJvc2NYWG0iIGlzIGRlcHJlY2F0ZWQsIGFsdGhvdWdoCndpZGVzcHJlYWQg aW4gZXhpc3RpbmcgZHJpdmVycy4KCkFkZCBhIGRlZmluZSBpbmRpcmVjdGlvbiBmb3IgdGhlIEFY SSBjYW5kaWRhdGU9Y3JpdGljYWwgcHJvdGVjdGlvbi4KV2hpbGUgaXQgaG9sZHMgdHJ1ZSBpbiBh IHN5c3RlbSB3aXRoIHJ1bm5pbmcgcnByb2NzLCBJIGZpbmQgaXQgdXNlZnVsCmZvciBzdHJlc3Mg dGVzdGluZyB0aGUgY2xvY2sgdHJlZSB0byBkaXNhYmxlIGl0LgoKRG91YmxlLWNoZWNrZWQgcGNs ayBhbmQgd2NsayBiaXRzLCBmaXhlZCBpbmNvcnJlY3QgYXNzaWdubWVudHMgaW4KcmVnaXN0ZXIg MHg1NC4KClZlcnNpb24gNzoKClRoZSByZWdpc3RlciBhdCB0b3ArMHgxNDAgY29udGFpbnMgYSBz ZXJpZXMgb2YgZ2F0ZXMgdGhhdCBjb250cm9sIFBMTAppbnB1dCBpbnRvIHRoZSB0b3AgY29udHJv bGxlciBhbmQgUExMIGFuZCBvc2MyNm0gd29yayBjbG9jayBmb3J3YXJkIGludG8KbWF0cml4LiBU aGlzIGFsbG93ZWQgZnVydGhlciBpbnNpZ2h0IGludG8gdGhlIGNsb2NrIHRyZWUuCgpUaGUgUExM IHN1YmRpdmlzaW9uIGxpc3Qgd2FzIHJlcGxhY2VkIHdpdGggZml4ZWQgZmFjdG9yIGNsb2NrcyB0 aGF0CmRpdmlkZSBQTExzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGlucHV0IGdhdGUgKGFuZCBzb21l IGZpeGVkIGZhY3RvciBkaXZzCmdvIGludG8gbWF0cml4IGluIHRoZSBuZXh0IHBhdGNoKS4gVGhl IG51bWJlciBvZiBjbG9ja3MgZXhwb3J0ZWQgdG8KTWF0cml4IGlzIGFjdHVhbGx5IHJlbGF0aXZl bHkgc21hbGwuCgpBcyBmb3IgU2FzaGlrbydzIHN1Z2dlc3Rpb24gYWJvdXQgb3V0IG9mIGJvdW5k IHBhcmVudHMgZm9yIGRwbGwgYW5kCnVua25vd25wbGw6IEkgaGF2ZSBuZXZlciBzZWVuIGEgcGFy ZW50ICE9IDAuIElmIHRoYXQgaGFwcGVucyBvbiBhIGRldmljZQpJIHdhbnQgdG8ga25vdyBhYm91 dCBpdC4gQXQgdGhpcyBzdGFnZSBvZiBkZXZlbG9wbWVudCBJJ2QgcmF0aGVyIGhhdmUKY2xlYXJs eSB2aXNpYmxlIG9ycGhhbmVkIGNsb2NrIHRoYW4gc2lsZW50bHkgY29udGludWluZyBhdCBhbiB1 bmV4cGVjdGVkCmZyZXF1ZW5jeS4KCiJvc2MyNm0iIC0+ICJjbG9jay0yNm0iIGFzICJvc2NYWCIs IGFsdGhvdWdoIHdpZGVzcHJlYWQsIGlzIGRlcHJlY2F0ZWQuCkluIGRvaW5nIHNvLCBjaGFuZ2Ug dW5kZXJzY29yZXMgaW4gY2xvY2sgbmFtZXMgdG8gZGFzaGVzIChTYXNoaWtvKS4KClZlcnNpb24g NToKCiopIE1ha2UgaXQgYSBNRkQgY2hpbGQgZHJpdmVyIGluc3RlYWQgb2YgYmluZGluZyB0byB0 aGUgbm9kZSBkaXJlY3RseQoqKSBDb3JyZWN0IHBhcmVudHMgZm9yIGRwbGwKKikgQ29ycmVjdCBI U0lDIHdvcmsgY2xvY2sgcGFyZW50Ci0tLQogZHJpdmVycy9jbGsvenRlL0tjb25maWcgICAgICAg ICAgfCAgMTEgKwogZHJpdmVycy9jbGsvenRlL01ha2VmaWxlICAgICAgICAgfCAgIDEgKwogZHJp dmVycy9jbGsvenRlL2Nsay16eDI5NzUyMHYzLmMgfCA4NDYgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDg1OCBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvenRlL0tjb25maWcgYi9kcml2ZXJzL2Nsay96dGUvS2Nv bmZpZwppbmRleCAxNTJjMjQyM2I4ZjAuLjBjY2M2ZWRmM2M1YiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9jbGsvenRlL0tjb25maWcKKysrIGIvZHJpdmVycy9jbGsvenRlL0tjb25maWcKQEAgLTE1LDMg KzE1LDE0IEBAIGNvbmZpZyBDT01NT05fQ0xLX1pURQogCSAgb2YgdGhpcy4KIAogCSAgRW5hYmxl IHRoaXMgaWYgeW91IGFyZSBidWlsZGluZyBhIGtlcm5lbCBmb3IgYSBaVEUgZGVzaWduZWQgYm9h cmQuCisKK2NvbmZpZyBDTEtfWlRFX1pYMjk3NTIwVjMKKwl0cmlzdGF0ZSAiQ2xvY2sgZHJpdmVy IGZvciBaVEUgengyOTc1MjB2MyBiYXNlZCBTb0NzIgorCWRlcGVuZHMgb24gQ09NTU9OX0NMS19a VEUgJiYgKE1GRF9aVEVfWlgyOTc1MjBWM19DUk0gfHwgQ09NUElMRV9URVNUKQorCWRlZmF1bHQg U09DX1pYMjk3NTIwVjMKKwloZWxwCisJICBUaGlzIGRyaXZlciBzdXBwb3J0cyBaVEUgengyOTc1 MjB2MyBiYXNpYyBjbG9ja3MuCisKKwkgIEVuYWJsZSB0aGlzIGlmIHlvdSB3YW50IHRvIGJ1aWxk IGEga2VybmVsIHRoYXQgaXMgYWJsZSB0byBydW4gb24KKwkgIGJvYXJkcyBiYXNlZCBvbiB0aGlz IFNvQy4gWW91IGNhbiBzYWZlbHkgZW5hYmxlIG11bHRpcGxlIGNsb2NrCisJICBkcml2ZXJzLiBU aGUgb25lKHMpIG1hdGNoaW5nIHRoZSBkZXZpY2UgdHJlZSB3aWxsIGJlIHVzZWQuCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2Nsay96dGUvTWFrZWZpbGUgYi9kcml2ZXJzL2Nsay96dGUvTWFrZWZpbGUK aW5kZXggMjdkYjA3MjkzMTY1Li4yYzA3MzUxMmU5MTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xr L3p0ZS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2Nsay96dGUvTWFrZWZpbGUKQEAgLTEsNSArMSw2 IEBACiAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKIAogb2JqLSQoQ09O RklHX0NPTU1PTl9DTEtfWlRFKSArPSBjbGstenRlLm8KK29iai0kKENPTkZJR19DTEtfWlRFX1pY Mjk3NTIwVjMpICs9IGNsay16eDI5NzUyMHYzLm8KIAogY2xrLXp0ZS15ICs9IGNsay16eC5vIHBs bC16eC5vIGNsay1yZWdtYXAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvenRlL2Nsay16eDI5 NzUyMHYzLmMgYi9kcml2ZXJzL2Nsay96dGUvY2xrLXp4Mjk3NTIwdjMuYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjY4YmZlYWI4NGQ3NAotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvY2xrL3p0ZS9jbGstengyOTc1MjB2My5jCkBAIC0wLDAgKzEsODQ2IEBACisv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisvKgorICogQ29weXJpZ2h0 IChDKSAyMDI2IFN0ZWZhbiBEw7ZzaW5nZXIKKyAqCisgKiBUaGVyZSBhcmUgbm8gcHVibGljIGRh dGFzaGVldHMgZm9yIHp4Mjk3NTIwdjMuIFRoZSBjb250cm9scyBvbiB0aGlzIGNsb2NrIGNvbnRy b2xsZXIgaGF2ZSBiZWVuCisgKiBleHRyYWN0ZWQgZnJvbSBaVEUncyBrZXJuZWwgYW5kIFUtQm9v dCBzb3VyY2VzIGFuZCBhIExPVCBvZiBtYW51YWwgdGVzdGluZy4gU29tZSBjbG9ja3MgY2FuIGJl CisgKiBmb3VuZCBpbiB0aGUgcG93ZXIgbWFuYWdlbWVudCAoZXZiX2NwdXJwbS5pbWcpIGFuZCBM VEUgKGNwa28ua28pIGJsb2JzIHNoaXBwZWQgd2l0aCB0aGUgcm91dGVycy4KKyAqCisgKiBCZWNh dXNlIFpURSdzIHNvdXJjZXMgYXJlIHdyb25nIG9yIG1pc2xlYWRpbmcgaW4gc29tZSBwYXJ0cyBh bmQgdGVzdGluZyBjYW4gYmUgbWlzaW50ZXJwcmV0ZWQsCisgKiB0aGlzIGZpbGUgY29udGFpbnMg YSBMT1Qgb2YgY29tbWVudHMgb24gaG93IHBhcnRpY3VsYXIgY2xvY2tzIHdlcmUgdGVzdGVkIGFu ZCBob3cgdGhlIGltcGFjdCBvZgorICogY2hhbmdlcyB0byB0aGVtIGNhbiBiZSBvYnNlcnZlZC4K KyAqLworCisjaW5jbHVkZSA8ZHQtYmluZGluZ3MvY2xvY2svenRlLHp4Mjk3NTIwdjMtY2xrLmg+ CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNp bmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAu aD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisjaW5jbHVkZSAiY2xrLXp4LmgiCisKK01P RFVMRV9JTVBPUlRfTlMoIlpURV9DTEsiKTsKKworLyoKKyAqIEFYSSBzcGVlZCBpcyBlaXRoZXIg ZGV0ZXJtaW5lZCBieSBhIGZpeGVkIHNlbGVjdGlvbiBpbiBtYXRyaXgrMHgwLCBiaXRzIDA6MiBv ciBieSBhIHZvdGluZyBzeXN0ZW0KKyAqIHdpdGggYmFsbG90cyBpbiBtYXRyaXgrMHgxMjAsIDB4 MTI0LCAweDEyOC4gVGhlIHZvdGluZyBzeXN0ZW0gaXMgZW5hYmxlZCBieSBzZXR0aW5nIG1hdHJp eCAweDEyYworICogdG8gMS4gT3RoZXJ3aXNlIHRoZSBzZWxlY3Rpb24gaW4gMHgwIGFwcGxpZXMu CisgKgorICogVGhlIGZhc3Rlc3Qgc2VsZWN0ZWQgc3BlZWQgd2lucy4gVGhpcyBob2xkcyB0cnVl IGZvciB2YWx1ZXMgMCAoMjYgTUh6KSBhbmQgNyAoNi41IE1IeikgdG9vLCBzbyBpdAorICogaXNu J3QgYSBjYXNlIG9mIGxvd2VzdCBzZWxlY3RvciB3aW5zLiBJIGhhdmVuJ3QgdGVzdGVkIHdoYXQg aGFwcGVucyBpZiBtcGxsIGlzIGNoYW5nZWQgdG8gb3V0cHV0CisgKiA1eCB0aGUgbm9ybWFsIGNs b2NrLCBzbyA3IGJlYXRzIDAuIFByZXN1bWFibHkgdmFsdWUgMCB3b3VsZCBzdGlsbCB3aW4gdGhl IGVsZWN0aW9uLgorICoKKyAqIEFYSSBzcGVlZCA2LjUgaXMgYSBjaGlsZCBvZiBtYXRyaXgtb3Nj MjZtLCBub3QgYSBQTEwuIFRoaXMgY2FuIGJlIHNlZW4gYnkgZ2F0aW5nIGl0IG9mZiBpbgorICog dG9wY3JtKzB4MTQwLgorICoKKyAqIFRoZSBzeXN0ZW0gaW5pdGlhbGl6ZXMgd2l0aCB2b3Rpbmcg ZGlzYWJsZWQgYW5kIGFsbCBwcmVmZXJlbmNlcyBzZXQgdG8gdGhlIGxvd2VzdCBzZXR0aW5nLCA3 LgorICogVGhlIHp4Mjk3NTIwdjNfbWF0cml4X2luaXQgZnVuY3Rpb24gdHJhbnNmZXJzIHRoZSBn bG9iYWwgbXV4IHRvIG91ciB2b3RlIGFuZCBlbmFibGVzIHZvdGluZy4KKyAqCisgKiBCZWNhdXNl IHJwcm9jcyBtYXkgY2hhbmdlIHRoZWlyIHNlbGVjdGlvbiB3aXRob3V0IG5vdGljZSwgYWxsIHBv c3NpYmxlIHBhcmVudHMgb2YgdGhlIEFYSSBtdXggYXJlCisgKiBtYXJrZWQgY3JpdGljYWwuIFRo aXMgY2FuIGhvd2V2ZXIgb2JzY3VyZSBidWdzIGluIHRoZSBjbG9jayB0cmVlLiBEZWZpbmUgWlgy OTc1MjBWM19BWElfQ0FORElEQVRFCisgKiB0byAwIHRvIGRpc2FibGUgdGhpcyBwcm90ZWN0aW9u IGZvciB0ZXN0aW5nIGFuZCBlaXRoZXIgbm90IHJ1biBhbnl0aGluZyBvbiB0aGUgcnByb2NzIG9y IG1ha2UKKyAqIHN1cmUgTGludXggdm90ZXMgZm9yIHRoZSBmYXN0ZXN0IHJhdGUuCisgKi8KKyNk ZWZpbmUgWlgyOTc1MjBWM19BWElfQ0FORElEQVRFIENMS19JU19DUklUSUNBTAorCisvKgorICog VG9wIGFuZCBtYXRyaXggY2xvY2tzIGFyZSBjaGFvdGljIC0gSSBoYXZlbid0IGZvdW5kIGEgY29u c2lzdGVudCBwYXR0ZXJuIGJlaGluZCB0aGVpciByZWdpc3RlcgorICogYW5kIGJpdCBsb2NhdGlv bnMuIEdlbmVyYWxseSB0aGVyZSBhcmUgdHdvIGdhdGVzIChwY2xrLCB3Y2xrKSwgb25lIG11eCwg dHdvIHJlc2V0cyBhbmQgc29tZXRpbWVzCisgKiBvbmUgZGl2aWRlciwgYnV0IGV4Y2VwdGlvbnMg YXBwbHkuIEZvciBzb21lIGRldmljZXMgdGhlcmUgaXMgb25seSBhIHJlc2V0IGFuZCBzb21lIGdl bmVyYWwKKyAqIChwYXJlbnQpIGNsb2NrcyBuZWVkIHNldHVwLiBUaGlzIHN0cnVjdHVyZSBwbHVz IG1hY3JvIGhhbmRsZXMgdGhlIHNvbWV3aGF0IHJlZ3VsYXIgcGFydHMuCisgKgorICogVGhlcmUg YXJlIHNvbWUgcGF0dGVybnMgdGhhdCBjYW4gYmUgb2JzZXJ2ZWQuCisgKiBtdXggMHgzYywgZGl2 IDB4NDgsIGdhdGUgMHg1NAorICogbXV4IDB4NDAsIGRpdiAweDRjLCBnYXRlIDB4NWMKKyAqIG11 eCAweDQ0LCBkaXYgMHg1MCwgZ2F0ZSAweDYwCisgKgorICogRm9yIGEgMCAtIDB4YyAtIDB4MTgg cGF0dGVybi4gTXV4ZXMgZnJvbSAweDNjIHRvIDB4NDQsIGRpdmlkZXJzIGZyb20gMHg0OCB0byAw eDUwLCBnYXRlcyAweDU0IHRvCisgKiAweDYwLiBUaGUgcGF0dGVybiBpcyBicm9rZW4gZm9yIHRp bWVyIHQxNyB0aG91Z2guCisgKgorICogR2F0ZXMgaGF2ZSA0IGJpdHMgcGVyIGNsb2NrIC0gdXN1 YWxseSwgYnV0IG5vdCBhbHdheXMsIGJpdCAwIGZvciB3Y2xrLCBiaXQgMSBmb3IgcGNsaywgYml0 IDIgZm9yCisgKiBzb21ldGhpbmcgdGhlIFpURSBrZXJuZWwgY2FsbHMgImdhdGUiICh0aGUgYml0 cyB3ZSB1c2UgaGVyZSBhcmUgY2FsbGVkICJlbiIpLCB3aGljaCBwcmVzdW1hYmx5CisgKiBlbmFi bGVzIGF1dG9tYXRpYyBjbG9jayBnYXRpbmcuIEJpdCAzLCBpZiBzZXR0YWJsZSwgc2VlbXMgdW51 c2VkLiBFLmcuIG9mZnNldCAweDU0IGFjY2VwdHMgYWxsCisgKiBiaXRzIGluIDB4Rjc3RjdGN0Yg LSBzdWdnZXN0aW5nIFJUQywgSTJDMCBoYXZlIGFuIGV4dHJhIGdhdGUgYml0LgorICoKKyAqIFRo ZSBkZWZhdWx0IG1wbGwgc2V0dGluZ3MgbXVsdGlwbHkgdGhlIDI2IE1IeiByZWZlcmVuY2UgY2xv Y2sgdGltZXMgMjQuIEEgbXV4IHNlbGVjdGlvbiBvZiAyNiBNSHoKKyAqIGNvdWxkIG1lYW4gdXNp bmcgdGhlIDI2IE1IeiBvc2NpbGxhdG9yIGRpcmVjdGx5LCBvciBwYXNzaW5nIGl0IHRocm91Z2gg dGhlIFBMTCBhbmQgZGl2aWRlIGJ5IDI0LgorICoKKyAqIElmIGEgVUFSVCBpcyBzZXQgdG8gbXBs bC1kNiAoZGVmYXVsdCAxMDQgTUh6KSwgY2hhbmdpbmcgdGhlIG1wbGwgbXVsdGlwbGllcnMgZG9l cyBhZmZlY3QgVUFSVAorICogdGltaW5nIGFzIGl0IHNob3VsZC4gVGhpcyBkb2VzIG5vdCBoYXBw ZW4gd2hlbiB0aGUgVUFSVCBpcyBzZXQgdG8gMjYgTUh6IGlucHV0IG9yIHRpbWVycyB0aGF0Cisg KiByZWFkIDI2IE1IeiBpbnB1dC4gVGhpcyBzdWdnZXN0cyAyNiBNSHogY2xvY2tzIHVzZSB0aGUg cmVmZXJlbmNlIGNsb2NrIGRpcmVjdGx5LgorICoKKyAqIFRoZSBnZW5lcmFsIGNsb2NrIGZsb3cg b24gdGhpcyBib2FyZCBnb2VzIGZyb20gb3NjMjZtIGludG8gdGhlIFBMTHMuIFRoZSBQTEwgb3V0 cHV0IGlzCisgKiBicmFuY2hlZCBpbnRvIGEgc21hbGwgbnVtYmVyIG9mIGRpdmlkZWQgZnJlcXVl bmNpZXMgKG1wbGwsIG1wbGwtZDQsIG1wbGwtZDUsIG1wbGwtZDYsIG1wbGwtZDgsCisgKiBncGxs LCBncGxsLWQyLCBncGxsLWQ0KSBhdCBhIGhpZ2ggbGV2ZWwuIFRoZXNlIGRpdmlkZWQgZnJlcXVl bmNpZXMgYXMgd2VsbCBhcyBvc2MyNm0gZ28KKyAqIHRocm91Z2ggYSBzZXJpZXMgb2YgZ2F0ZXMg YXQgb2Zmc2V0IDB4MTQwIGluIHRvcGNybS4gVGhlIG91dHB1dCBvZiB0aGVzZSBnYXRlcyBwcm92 aWRlIHdjbGtzIGZvcgorICogZXZlcnl0aGluZy4KKyAqCisgKiBBdCBsZWFzdCAzIG9mIHRob3Nl IGdhdGUgb3V0cHV0cyAobXBsbCwgZHBsbCwgZ3BsbC1kMikgYXJlIGZ1cnRoZXIgZGl2aWRlZCBi ZWhpbmQgdGhvc2UgZ2F0ZXMsCisgKiBwcmVzdW1hYmx5IGluIHRoZSBtYXRyaXggY29udHJvbGxl ci4gVGhlcmUgYXJlIG11bHRpcGxlIHBhdGhzIGhvdyAxMDQgYW5kIDc4IE1IeiBhcmUgZGVyaXZl ZCwKKyAqIHNvbWUgc3BlY2lmaWMgdG8gdG9wY3JtICgweDE0MCBiaXRzIDEgYW5kIDQpLCBzb21l IHNwZWNpZmljIHRvIG1hdHJpeCAoMHgxNDAgYml0IDkpLiBUaGVyZSBhcmUKKyAqIGxpa2VseSAz ICJjb3BpZXMiIG9mIHRoZSA3OCBNSHogY2xvY2sgYW5kIHR3byA1MCBNSHogb25lcy4KKyAqCisg KiBQY2xrIGlzIG5vdCBnYXRlZCBieSB0aGUgMHgxNDAgZ2F0ZXMgYXQgYWxsLiBMaWtld2lzZSBv c2MzMmsgaXMgZmVkIHRvIHRoZSB0aW1lcnMgd2l0aG91dAorICogcGFzc2luZyB0aHJvdWdoIHRo aXMgZ2F0ZSwgZXZlbiBmb3IgY29uc3VtZXJzIG9uIG1hdHJpeC9MU1AuIFRvcGNybSBvc2MyNm0g d2Nsa3MgYXJlIG5vdCBnYXRlZAorICogZWl0aGVyLCBidXQgdG9wLWNvbnN1bWVkIFBMTCBjbG9j a3MgYXJlLgorICovCisKK2VudW0gdG9wX2Nsb2NrX2lkcyB7CisJWlhfQ0xLX01QTEwsCisJWlhf Q0xLX1VQTEwsCisJWlhfQ0xLX0RQTEwyLAorCVpYX0NMS19EUExMMl9EMiwKKwlaWF9DTEtfRFBM TCwKKwlaWF9DTEtfR1BMTCwKKworCVpYX0NMS19PU0MyNk1fRDIsCisJWlhfQ0xLX1RPUF9NUExM X0QyX1BSRUdBVEUsCisJWlhfQ0xLX1RPUF9NUExMX0Q0X1BSRUdBVEUsCisJWlhfQ0xLX1RPUF9N UExMX0Q1X1BSRUdBVEUsCisJWlhfQ0xLX1RPUF9NUExMX0Q2X1BSRUdBVEUsCisJWlhfQ0xLX1RP UF9NUExMX0Q4X1BSRUdBVEUsCisJWlhfQ0xLX1RPUF9VUExMX0QxMl9QUkVHQVRFLAorCVpYX0NM S19UT1BfR1BMTF9EMl9QUkVHQVRFLAorCVpYX0NMS19UT1BfR1BMTF9ENF9QUkVHQVRFLAorCisJ WlhfQ0xLX1RPUF9NUExMX0QyLAorCVpYX0NMS19UT1BfTVBMTF9EOCwKKwlaWF9DTEtfVE9QX01Q TExfRDYsCisJWlhfQ0xLX1RPUF9NUExMX0Q0LAorCVpYX0NMS19UT01BVFJJWF9NUExMX0Q1LAor CVpYX0NMS19UT01BVFJJWF9NUExMLAorCVpYX0NMS19UT01BVFJJWF9EUExMLAorCVpYX0NMS19U T1BfVVBMTF9EMTIsCisJWlhfQ0xLX1RPUF9VUExMLAorCVpYX0NMS19UT1BfR1BMTF9ENCwKKwla WF9DTEtfVE9NQVRSSVhfR1BMTF9EMiwKKwlaWF9DTEtfVE9NQVRSSVhfR1BMTCwKKwlaWF9DTEtf VE9NQVRSSVhfT1NDMjZNLAorCisJWlhfQ0xLX1RPUF9NUExMX0QyX0Q0LAorCVpYX0NMS19UT1Bf TVBMTF9EMl9EMTMsCisJWlhfQ0xLX1RPUF9VUExMX0QxMl9EMiwKKwlaWF9DTEtfVE9QX0dQTExf RDRfRDIsCisKKwlaWF9DTEtfTTBfTVVYLAorCVpYX0NMS19BSEJfTVVYLAorCVpYX0NMS19USU1F Ul9UMDhfTVVYLAorCVpYX0NMS19USU1FUl9UMDlfTVVYLAorCVpYX0NMS19USU1FUl9UMTJfTVVY LAorCVpYX0NMS19USU1FUl9UMTNfTVVYLAorCVpYX0NMS19USU1FUl9UMTRfTVVYLAorCVpYX0NM S19USU1FUl9UMTVfTVVYLAorCVpYX0NMS19USU1FUl9UMTZfTVVYLAorCVpYX0NMS19USU1FUl9U MTdfTVVYLAorCVpYX0NMS19XRFRfVDE4X01VWCwKKwlaWF9DTEtfSTJDMF9NVVgsCisJWlhfQ0xL X1VBUlQwX01VWCwKKwlaWF9DTEtfT1VUMF9NVVgsCisJWlhfQ0xLX09VVDFfTVVYLAorCVpYX0NM S19PVVQyX01VWCwKKwlaWF9DTEtfUk1JSVBIWV9NVVgsCisKKwlaWF9DTEtfVElNRVJfVDA4X0RJ ViwKKwlaWF9DTEtfVElNRVJfVDA5X0RJViwKKwlaWF9DTEtfVElNRVJfVDEyX0RJViwKKwlaWF9D TEtfVElNRVJfVDEzX0RJViwKKwlaWF9DTEtfVElNRVJfVDE0X0RJViwKKwlaWF9DTEtfVElNRVJf VDE1X0RJViwKKwlaWF9DTEtfVElNRVJfVDE2X0RJViwKKwlaWF9DTEtfVElNRVJfVDE3X0RJViwK KwlaWF9DTEtfV0RUX1QxOF9ESVYsCisJWlhfQ0xLX1VTSU0xX0RJViwKKworCVpYX0NMS19BSEJf UENMSywKKwlaWF9DTEtfQUhCX1dDTEssCisJWlhfQ0xLX1NSQU0xX1BDTEssCisJWlhfQ0xLX1NS QU0yX1BDTEssCisJWlhfQ0xLX1BNTV9XQ0xLLAorCVpYX0NMS19QTU1fUENMSywKKwlaWF9DTEtf VElNRVJfVDA4X1dDTEssCisJWlhfQ0xLX1RJTUVSX1QwOF9QQ0xLLAorCVpYX0NMS19USU1FUl9U MDlfV0NMSywKKwlaWF9DTEtfVElNRVJfVDA5X1BDTEssCisJWlhfQ0xLX1RJTUVSX1QxMl9XQ0xL LAorCVpYX0NMS19USU1FUl9UMTJfUENMSywKKwlaWF9DTEtfVElNRVJfVDEzX1dDTEssCisJWlhf Q0xLX1RJTUVSX1QxM19QQ0xLLAorCVpYX0NMS19USU1FUl9UMTRfV0NMSywKKwlaWF9DTEtfVElN RVJfVDE0X1BDTEssCisJWlhfQ0xLX1RJTUVSX1QxNV9XQ0xLLAorCVpYX0NMS19USU1FUl9UMTVf UENMSywKKwlaWF9DTEtfVElNRVJfVDE2X1dDTEssCisJWlhfQ0xLX1RJTUVSX1QxNl9QQ0xLLAor CVpYX0NMS19USU1FUl9UMTdfV0NMSywKKwlaWF9DTEtfVElNRVJfVDE3X1BDTEssCisJWlhfQ0xL X1dEVF9UMThfV0NMSywKKwlaWF9DTEtfV0RUX1QxOF9QQ0xLLAorCVpYX0NMS19JMkMwX1dDTEss CisJWlhfQ0xLX0kyQzBfUENMSywKKwlaWF9DTEtfVUFSVDBfV0NMSywKKwlaWF9DTEtfVUFSVDBf UENMSywKKwlaWF9DTEtfVVNCX1dDTEssCisJWlhfQ0xLX1VTQl9QQ0xLLAorCVpYX0NMS19IU0lD X1dDTEssCisJWlhfQ0xLX0hTSUNfUENMSywKKwlaWF9DTEtfUlRDX1dDTEssCisJWlhfQ0xLX1JU Q19QQ0xLLAorCVpYX0NMS19VU0lNMV9XQ0xLLAorCVpYX0NMS19VU0lNMV9QQ0xLLAorCVpYX0NM S19MUE1fR1NNX1dDTEssCisJWlhfQ0xLX0xQTV9HU01fUENMSywKKwlaWF9DTEtfTFBNX0xURV9X Q0xLLAorCVpYX0NMS19MUE1fTFRFX1BDTEssCisJWlhfQ0xLX0xQTV9URF9XQ0xLLAorCVpYX0NM S19MUE1fVERfUENMSywKKwlaWF9DTEtfTFBNX1dfV0NMSywKKwlaWF9DTEtfTFBNX1dfUENMSywK KwlaWF9DTEtfT1VUMF9XQ0xLLAorCVpYX0NMS19PVVQxX1dDTEssCisJWlhfQ0xLX09VVDJfV0NM SywKKwlaWF9DTEtfT1VUMzJLX1dDTEssCisJWlhfQ0xLX1JNSUlQSFlfV0NMSywKKwlaWF9DTEtf R1NNXzMySywKKwlaWF9DTEtfR1NNXzI2TSwKKwlaWF9DTEtfR1NNXzQ4TSwKKwlaWF9DTEtfR1NN XzEwNE0sCisJWlhfQ0xLX0dTTV8xNTZNLAorCVpYX0NMS19BQkJfV0NMSywKK307CisKKy8qIFVz ZWQgZm9yIGdhdGVzIHdoZXJlIHdlIGRvbid0IGtub3cgdGhlIHBhcmVudCBpbnB1dChzKS4gQXNz dW1lIGdlbmVyYWwgb3NjaWxsYXRvciAqLworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRf ZGVzYyBjbGtfdW5rbm93biA9IFBBUkVOVF9GVygib3NjMjZtIik7CisKKy8qIEZvciBjbG9ja3Mg dGhhdCBhcmUga25vd24gdG8gdXNlIHRoZSB1bmdhdGVkIG9zYzI2bSBpbnB1dCAqLworc3RhdGlj IGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVzYyBjbGtfbWFpbltdID0geworCVBBUkVOVF9GVygi b3NjMjZtIiksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIGRwbGxf cGFyZW50c1tdID0geworCVBBUkVOVF9JRChaWF9DTEtfRFBMTDJfRDIpLAorCVBBUkVOVF9GVygi b3NjMjZtIiksCit9OworCisvKgorICogQUhCOiBUaGUgY2xvY2sgbXV4IHdvcmtzIGFuZCBpbXBh Y3QgY2FuIGJlIHRlc3RlZCBlLmcuIHdpdGggaXBlcmYgc3BlZWQgdGVzdGluZyBvZiB0aGUgVVNC CisgKiBuZXR3b3JrIGNvbm5lY3Rpb24uIFZhbHVlcyAyIGFuZCAzIGdpdmUgdGhlIHNhbWUgc3Bl ZWQgYW5kIGRlcGVuZCBvbiB0aGUgc2FtZSBiaXQgKDMpIGluIDB4MTQwLgorICogVGhlIG1wbGwt ZDYgcmF0ZSBpcyBnYXRlZCBvZmYgYnkgdGhlIHNhbWUgYml0IGluIDB4MTQwIGFzIG0wJ3MgbXBs bC1kNiwgYnV0IHRoZSBkOCBpcyBkaWZmZXJlbnQuCisgKiBUaGlzIG1heSBpbmRpY2F0ZSB0aGF0 IG9uZSBvZiB0aGUgdHdvIHVzZXMgYSBkaWZmZXJlbnQgY2xvY2sgcmF0ZSB0aGFuIGRvY3VtZW50 ZWQgaW4gWlRFJ3MKKyAqIGtlcm5lbC4gVGhlIE0wIHNwZWVkIGlzIGVhc3kgdG8gbWVhc3VyZSwg c28gSSBhbSBjb25maWRlbnQgaW4gdGhlIE0wJ3MgNzggTUh6IHJhdGUuIEFIQiBsb29rcworICog bGlrZSA3OCByYXRoZXIgdGhhbiA1MiwgYnV0IGNvbmZpZGVuY2UgaXMgbG93ZXIgYmVjYXVzZSBS QU0gcmVhZCB0ZXN0cyBhcmUgaW5mbHVlbmNlZCBieSBDUFUKKyAqIG92ZXJoZWFkIHRvby4KKyAq LworCitzdGF0aWMgY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjIGFoYl9zZWxbXSA9IHsKKwlQ QVJFTlRfRlcoIm9zYzI2bSIpLAorCVBBUkVOVF9JRChaWF9DTEtfVE9QX01QTExfRDYpLAkvKiAx MDQgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19UT1BfTVBMTF9EOCksCS8qIDc4IE1IeiAqLwor CVBBUkVOVF9JRChaWF9DTEtfVE9QX01QTExfRDgpLAkvKiA3OCBNSHogKi8KK307CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2MgdGltZXJfdG9wX3NlbFtdID0geworCVBBUkVO VF9GVygib3NjMzJrIiksCisJUEFSRU5UX0ZXKCJvc2MyNm0iKSwKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2MgdWFydF90b3Bfc2VsW10gPSB7CisJUEFSRU5UX0ZXKCJv c2MyNm0iKSwKKwlQQVJFTlRfSUQoWlhfQ0xLX1RPUF9NUExMX0Q2KSwJLyogMTA0IE1Ieiwgc2hh cmluZyBNMCdzIGFuZCBhaGIncyAweDE0MCBnYXRlICovCit9OworCisvKgorICogVGhlIENvcnRl eCBNMCBjb3Byb2Nlc3Nvci4gSXQgaXMgcmVzcG9uc2libGUgZm9yIGJvb3RpbmcgdGhlIGJvYXJk IGFuZCBydW5zIHNvbWUgcG93ZXIgbWFuYWdlbWVudAorICogaGVscGVyIGNvZGUgb24gdGhlIHN0 b2NrIGZpcm13YXJlLiBUaGUgTTAgcnByb2MgaXRzZWxmIGlzIG5vdCBjcml0aWNhbCwgYnV0IG1v c3Qgb2YgdG9wY3JtJ3MKKyAqIHJlZ2lzdGVycyBiZWNvbWUgdW5yZWFkYWJsZSBpZiB0aGlzIGlz IGdhdGVkIG9mZiBvciBiZWNvbWUgc2xvdyB3aGVuIGNsb2NrZWQgYXQgMzIga0h6LCBlLmcuIEdQ SU8KKyAqIGJlY29tZXMgYm9yZGVybGluZSB1bnVzYWJsZSBhdCAzMiBrSHouCisgKgorICogVGhl cmUgaXMgbm8gZGVkaWNhdGVkIE0wIGdhdGUuIERpc2FibGluZyBhaGItd2NsayBsb29rcyBsaWtl IHRoZSBNMCBzdG9wcyBmcm9tIEE1MydzIHBvaW50IG9mCisgKiB2aWV3LCBidXQgaXQgbWVyZWx5 IGJyZWFrcyB0aGUgQTUzJ3MgYWJpbGl0eSB0byBjb21tdW5pY2F0ZSB3aXRoIGl0LCBhbmQgTTAn cyBhYmlsaXR5IHRvCisgKiBjb21tdW5pY2F0ZSB3aXRoIHRoZSBzdGFuZGFyZCBVQVJUIG9uIExT UC4gTTAga2VlcHMgcnVubmluZyB3aXRoIGJvdGggYWhiLXdjbGsgYW5kIGFoYi1wY2xrCisgKiBn YXRlZCBvZmYgYW5kIGNhbiByZS1lbmFibGUgdGhlIGdhdGVzLgorICovCitzdGF0aWMgY29uc3Qg c3RydWN0IHp4X3BhcmVudF9kZXNjIG0wX3NlbFtdID0geworCVBBUkVOVF9GVygib3NjMjZtIiks CisJUEFSRU5UX0lEKFpYX0NMS19UT1BfTVBMTF9ENiksCQkvKiAxMDQgTUh6ICovCisJUEFSRU5U X0lEKFpYX0NMS19UT1BfTVBMTF9EMl9ENCksCS8qIDc4IE1IeiwgYnV0IGRpZmZlcmVudCBnYXRl IHRoYW4gdGhlIGFoYiA3OCBNSHogKi8KKwlQQVJFTlRfRlcoIm9zYzMyayIpLAkJCS8qIFllcywg dGVzdGVkLiBJdCBpcyBTTExMTE9PT09PV1dXLiAqLworfTsKKworLyoKKyAqIENsay1vdXQwLzEv Mi8zMms6IFRoZXNlIGNsb2NrcyBhcmUgZXhwb3NlZCBvbiBHUElPcyAxNSwgMTYsIDE3IGFuZCAx OCByZXNwZWN0aXZlbHkuIFRoZXkgYXJlIHVzZWQKKyAqIGluIFpURSdzIGNhbWVyYSBhbmQgc291 bmQgY29kZSwgYnkgZGlyZWN0bHkgcG9raW5nIGludG8gdGhlIGNsb2NrIHJlZ2lzdGVycyBmcm9t IHRoZSBkZXZpY2UKKyAqIGRyaXZlcnMuIFVudGlsIHRoZSByZXNwZWN0aXZlIGRldmljZXMgYXJl IHN1cHBvcnRlZCB0aGV5IGNhbiBzYWZlbHkgYmUgc3dpdGNoZWQgb2ZmLgorICoKKyAqIEZvciBj bGstb3V0MSBaVEUncyBjYW1lcmEgY29kZSBzYXlzIHRoZSBmb2xsb3dpbmc6CisgKgorICogMCAt PiAyMCBNSHoKKyAqIDEgLT4gNDAgTUh6CisgKiAyIC0+IDEzIE1IegorICogMyAtPiAyNiBNSHoK KyAqCisgKiAwIGFuZCAxIHJlYWQgZnJvbSB1cGxsLiBJIGNvbmZpcm1lZCB0aGVpciByYXRlcyAo dXBsbC1kMjQgYW5kIHVwbGwtZDEyKSBieSBzZXR0aW5nIHVwbGwgdG8gYSB2ZXJ5CisgKiBsb3cg ZnJlcXVlbmN5IGFuZCBzYW1wbGluZyB0aGUgY2xvY2sgYnkgR1BJTyByZWFkcy4gVGhlIG91dHB1 dHMgb2YgMiBhbmQgMyBhcmUgd2F5IHRvbyBoaWdoIHRvCisgKiB0ZXN0IHRoYXQgd2F5LiBOZWl0 aGVyIGlzIHJlYWRpbmcgZnJvbSBhbnkgUExMLCB0aGV5IGtlZXAgb3NjaWxsYXRpbmcgd2hlbiBh bGwgUExMcyBhcmUgZGlzYWJsZWQuCisgKiBJIGFtIGZhaXJseSBzdXJlIHRoYXQgMyBpcyBqdXN0 IGRpcmVjdCBvc2MyNm0gYmVjYXVzZSBpdCBwZXJmZWN0bHkgbWF0Y2hlcyB3aGF0IG91dDIgaXMK KyAqIHNob3dpbmcgaW4gaXRzIDI2IE1IeiBzZXR0aW5nLgorICoKKyAqIENsay1vdXQyIGlzIHNp bWlsYXIsIGJ1dCBpdCBoYXMgb25seSBvbmUgY29udHJvbCBiaXQgaW4gdG9wIDB4MzQgYml0IDgu IE5laXRoZXIgc2V0dGluZyBzZWxlY3RzCisgKiBhIFBMTCBvdXRwdXQuIFdoZW4gc2V0dGluZyAq MHgzNCA9IDB4MDgwLCBjbGstb3V0MSBhbmQgY2xrLW91dDIgYXJlIGluIGxvY2tzdGVwLCBwcmVz dW1hYmx5CisgKiBydW5uaW5nIGF0IDEzIE1Iei4gMHgxYzAgYWxzbyBydW5zIGluIGxvY2tzdGVw LCBwcmVzdW1hYmx5IDI2IE1Iei4KKyAqCisgKiBjbGstb3V0MCBoYXMgYSBtdXggaW4gYml0IDUu IFZhbHVlIDAgbW9zdCBsaWtlbHkgc2VsZWN0cyBvc2MyNm0uIEkgYW0gbm90IGVudGlyZWx5IHN1 cmUgYWJvdXQKKyAqIHZhbHVlIDEgKHdoaWNoIGlzIHRoZSBkZWZhdWx0KSwgYnV0IHRoZSBtMCBt dXggaGFzIGFuIGltcGFjdCBvbiBpdC4gSXQgbG9va3MgbGlrZSBhIGRlYnVnIHBpbgorICogdGhh dCBleHBvc2VzIHNvbWUgY29yZSBjbG9jay4KKyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9w YXJlbnRfZGVzYyBvdXQwX3NlbFtdID0geworCVBBUkVOVF9GVygib3NjMjZtIiksCisJUEFSRU5U X0lEKFpYX0NMS19NMF9NVVgpLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRf ZGVzYyBvdXQxX3NlbFtdID0geworCVBBUkVOVF9JRChaWF9DTEtfVE9QX1VQTExfRDEyX0QyKSwJ LyogMjAgTUh6ICovCisJUEFSRU5UX0lEKFpYX0NMS19UT1BfVVBMTF9EMTIpLAkJLyogNDAgTUh6 ICovCisJUEFSRU5UX0lEKFpYX0NMS19PU0MyNk1fRDIpLAkJLyogMTMgTUh6ICovCisJUEFSRU5U X0ZXKCJvc2MyNm0iKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2Mg b3V0Ml9zZWxbXSA9IHsKKwlQQVJFTlRfSUQoWlhfQ0xLX09TQzI2TV9EMiksCQkvKiAxMyBNSHog Ki8KKwlQQVJFTlRfRlcoIm9zYzI2bSIpLAorfTsKKworLyoKKyAqIENsay1vIGlzIHNpbWlsYXIg dG8gY2xrLW91dCosIHByb3ZpZGluZyBhIGNsb2NrIG9uIEdQSU8gMjAsIHByZXN1bWFibHkgZm9y IGRyaXZpbmcgYSAoUilNSUkgcGh5LgorICogVGhlIDUwIE1IeiB2YWx1ZSBpcyBkb2N1bWVudGVk IGluIGEgc3RyYXkgY29tbWVudCBpbiBaVEUncyBHTUFDIGRyaXZlci4gSSB0ZXN0ZWQgaXQgc2lt aWxhcmx5IHRvCisgKiB0aGUgYWJvdmUgcGlucy4gTXV4IHNldHRpbmcgMCBnaXZlcyBoYWxmIHRo ZSBjb3VudCBhcyBzZXR0aW5nIDEgYW5kIHNldHRpbmcgMSBnaXZlcyBncGxsIGRpdmlkZWQKKyAq IGJ5IDQgLSBtYXRjaGluZyB0aGUgNTAgTUh6IHN1Z2dlc3RlZCBieSB0aGUgWlRFIGNvbW1lbnQg YXQgdGhlIGRlZmF1bHQgZ3BsbCBzZXR0aW5ncy4gR2F0aW5nIGdwbGwKKyAqIHN0b3BzIHRoZSBj bG9jayBmb3IgdmFsdWVzIDAgYW5kIDEuCisgKgorICogU2V0dGluZ3MgMiBhbmQgMyBhcmUgcG9z c2libGUsIGJ1dCBzZWVtIHRvIHJldHVybiBnYXJiYWdlLiBJdCBpcyBnZW5lcmFsbHkgcHVsc2lu ZyB1cCBhbmQgZG93biwKKyAqIGV4Y2VwdCBpZiBib3RoIGdwbGwgYW5kIHVwbGwgYXJlIHN0b3Bw ZWQuIEkgc3VzcGVjdCBpdCBqdXN0IHJlYWRzIHJhbmRvbSBlbGVjdHJpY2FsIGZsdWN0dWF0aW9u CisgKiBmcm9tIG90aGVyIHBsYWNlcyBpbiB0aGUgYm9hcmQuIFllcywgSSBoYWQgYSBwdWxsLWRv d24gZW5hYmxlZCB3aGVuIHRlc3RpbmcgdGhpcy4KKyAqCisgKiBJIGFtIG5vdCBhd2FyZSBvZiBh bnkgYm9hcmQgdGhhdCB1c2VzIHRoaXMgdGhvdWdoLiBUaGUgRXRoZXJuZXQtZXF1aXBwZWQgb25l cyBJIGhhdmUgYWxsIHJ1biB0aGUKKyAqIFBIWSB3aXRoIGl0cyBvd24gb3NjaWxsYXRvci4KKyAq Lworc3RhdGljIGNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVzYyBybWlpX3NlbFtdID0geworCVBB UkVOVF9JRChaWF9DTEtfVE9QX0dQTExfRDRfRDIpLAkvKiAyNSBNSHogKi8KKwlQQVJFTlRfSUQo WlhfQ0xLX1RPUF9HUExMX0Q0KSwJCS8qIDUwIE1IeiAqLworfTsKKworI2RlZmluZSBQTEwoX25h bWUsIF9wYXJlbnRzLCBfcmF0ZSwgX3JlZywgX2ZsYWdzKQkJXAorCXsJCQkJCQkJXAorCQkudHlw ZSA9IFpYX0NMT0NLX1BMTCwJCQkJXAorCQkucGxsID0gewkJCQkJXAorCQkJLm5hbWUgPSBfbmFt ZSwJCQkJXAorCQkJLnBhcmVudHMgPSBfcGFyZW50cywJCQlcCisJCQkubnVtX3BhcmVudHMgPSBB UlJBWV9TSVpFKF9wYXJlbnRzKSwJXAorCQkJLnJhdGUgPSBfcmF0ZSwJCQkJXAorCQkJLnJlZyA9 IF9yZWcsCQkJCVwKKwkJCS5mbGFncyA9IF9mbGFncywJCQlcCisJCX0sCQkJCQkJXAorCX0KKwor I2RlZmluZSBGSVhFRF9ESVYoX25hbWUsIF9wYXJlbnQsIF9kaXYpCQkJCVwKKwl7CQkJCQkJCVwK KwkJLnR5cGUgPSBaWF9DTE9DS19GSVhFRF9ESVYsCQkJXAorCQkuZml4ZWRfZGl2ID0gewkJCQkJ XAorCQkJLm5hbWUgPSBfbmFtZSwJCQkJXAorCQkJLnBhcmVudCA9IF9wYXJlbnQsCQkJXAorCQkJ LmRpdiA9IF9kaXYsCQkJCVwKKwkJfSwJCQkJCQlcCisJfQorCisjZGVmaW5lIE1VWChfbmFtZSwg X3BhcmVudHMsIF9yZWcsIF9zaGlmdCwgX3NpemUpCQlcCisJewkJCQkJCQlcCisJCS50eXBlID0g WlhfQ0xPQ0tfTVVYLAkJCQlcCisJCS5tdXggPSB7CQkJCQlcCisJCQkubmFtZSA9IF9uYW1lLAkJ CQlcCisJCQkucGFyZW50cyA9IF9wYXJlbnRzLAkJCVwKKwkJCS5udW1fcGFyZW50cyA9IEFSUkFZ X1NJWkUoX3BhcmVudHMpLAlcCisJCQkucmVnID0gX3JlZywJCQkJXAorCQkJLnNoaWZ0ID0gX3No aWZ0LAkJCVwKKwkJCS5zaXplID0gX3NpemUsCQkJCVwKKwkJfSwJCQkJCQlcCisJfQorCisjZGVm aW5lIERJVihfbmFtZSwgX3BhcmVudCwgX3JlZywgX3NoaWZ0LCBfc2l6ZSkJCVwKKwl7CQkJCQkJ CVwKKwkJLnR5cGUgPSBaWF9DTE9DS19ESVYsCQkJCVwKKwkJLmRpdiA9IHsJCQkJCVwKKwkJCS5u YW1lID0gX25hbWUsCQkJCVwKKwkJCS5wYXJlbnQgPSBfcGFyZW50LAkJCVwKKwkJCS5yZWcgPSBf cmVnLAkJCQlcCisJCQkuc2hpZnQgPSBfc2hpZnQsCQkJXAorCQkJLnNpemUgPSBfc2l6ZSwJCQkJ XAorCQl9LAkJCQkJCVwKKwl9CisKKyNkZWZpbmUgR0FURShfbmFtZSwgX3BhcmVudCwgX3JlZywg X3NoaWZ0LCBfZmxhZ3MpCQlcCisJewkJCQkJCQlcCisJCS50eXBlID0gWlhfQ0xPQ0tfR0FURSwJ CQkJXAorCQkuZ2F0ZSA9IHsJCQkJCVwKKwkJCS5uYW1lID0gX25hbWUsCQkJCVwKKwkJCS5wYXJl bnQgPSBfcGFyZW50LAkJCVwKKwkJCS5yZWcgPSBfcmVnLAkJCQlcCisJCQkuZmxhZ3MgPSBfZmxh Z3MsCQkJXAorCQkJLnNoaWZ0ID0gX3NoaWZ0LAkJCVwKKwkJfSwJCQkJCQlcCisJfQorCitzdGF0 aWMgY29uc3Qgc3RydWN0IHp4X2Nsb2NrIHp4Mjk3NTIwdjNfdG9wX2Nsb2Nrc1tdID0geworCS8q CisJICogRGVmYXVsdCBzZXR0aW5nOiAweDQ4MDQwYzExLiA2MjQvMzEyLzE1Ni4gT25seSBhIHNp bmdsZSBwb3NzaWJsZSBwYXJlbnQuIFRoaXMgaXMgdGhlCisJICogUExMIGZvciBwcmV0dHkgbXVj aCBldmVyeXRoaW5nLCBpbmNsdWRpbmcgQ1BVLCBSQU0gYW5kIFVTQi4KKwkgKgorCSAqIENoYW5n aW5nIHRoaXMgUExMIG1ha2VzIGl0IHBvc3NpYmxlIHRvIG92ZXJjbG9jayB0aGUgQ1BVIG9yIGRv IG1vcmUgZmluZSBncmFpbmVkCisJICogdW5kZXJjbG9ja2luZyB0aGFuIHRoZSBDUFUncyBtdXgg YWxsb3dzLiBJdCBkb2VzIHJ1biBpbnRvIHR3byBwcm9ibGVtcyB0aG91Z2g6IFRoZSBVU0IKKwkg KiBkZXZpY2UgdXNlcyB0aGlzIFBMTCdzIG91dHB1dCBkaXJlY3RseSBhbmQgaXMgKnZlcnkqIHNl bnNpdGl2ZSB0byBkaWZmZXJlbmNlcy4gRFJBTQorCSAqIGlzIGFsc28gZmVkIGJ5IHRoaXMgY2xv Y2sgYW5kIG5lZWRzIHRvIGJlIHJlLXRyYWluZWQgb24gbGFyZ2VyIGNoYW5nZXMsIHdoaWNoIG5l ZWRzIHRvCisJICogYmUgZG9uZSBieSB0aGUgc3RhZ2UgMSBib290IGxvYWRlci4KKwkgKi8KKwlb WlhfQ0xLX01QTExdICAgICAgICAgICAgICA9IFBMTCgibXBsbCIsIGNsa19tYWluLCAwLCAweDgs IDApLAorCisJLyoKKwkgKiBaVEUncyBjb2RlIGNhbGxzIHRoaXMgUExMICJ1cGxsIi4gVGhlIG9u bHkgcG9zc2libGUgY29uc3VtZXJzIEkgZm91bmQgYXJlIGNsay1vdXQxLAorCSAqIHdoaWNoIG91 dHB1dHMgdGhpcyBjbG9jayBvbiBHUElPIDE2IGFuZCBIU0lDLiBIU0lDIGRvZXNuJ3QgaGF2ZSBh bnl0aGluZyBjb25uZWN0ZWQgdG8KKwkgKiBpdCBvbiB0aGUgZGV2aWNlcyBJIHRlc3RlZC4gVGhl IGRldmljZSB0aGF0IGNvbnN1bWVzIGNsay1vdXQxIHNlZW1zIHRvIGJlIGFuIFNQSQorCSAqIGNh bWVyYSwgd2hpY2ggSSBoYXZlbid0IHNlZW4gaW4gYW55IGRldmljZSBzbyBmYXIuIFpURSBtYW5p cHVsYXRlcyB0aGlzIFBMTCBkaXJlY3RseSBvdXQKKwkgKiBvZiB0aGUgY2FtZXJhIGNvZGUsIHNv IGl0IGlzIHVubGlrZWx5IHRvIGhhdmUgYW5vdGhlciBjb25zdW1lci4KKwkgKgorCSAqIExvbmcg c3Rvcnkgc2hvcnQsIHNodXQgaXQgb2ZmLgorCSAqLworCVtaWF9DTEtfVVBMTF0gICAgICAgICAg ICAgID0gUExMKCJ1cGxsIiwgY2xrX21haW4sIDAsIDB4MTAsIDApLAorCisJLyoKKwkgKiBEZWZh dWx0IHZhbHVlIDB4NDgzNDkwMmQuIEZlZWRzIGRwbGwuIDQ2LjA4IE1Iei4gQml0IDI1IGNhbiBi ZSBzZXQsIHNvIHR3byBwYXJlbnRzIGFyZQorCSAqIHBvc3NpYmxlLiBJdCBsb29rcyBsaWtlIGJv dGggdmFsdWVzIHNlbGVjdCB0aGUgMjYgTUh6IG9zY2lsbGF0b3IgdGhvdWdoLgorCSAqCisJICog U2luY2UgZHBsbCdzIHByZXBhcmUgbWF5IGRlcGVuZCBvbiB0aGlzIGNsb2NrIGdlbmVyYXRpbmcg YSB1c2FibGUgc2lnbmFsLCBpdCBuZWVkcyB0byBiZQorCSAqIGVuYWJsZWQgd2hlbiBwcmVwYXJl ZC4KKwkgKgorCSAqIEl0IGlzbid0IG5hbWVkIGFueXdoZXJlIGluIFpURSdzIGNvZGUsIGJ1dCBj cGtvLmtvIGhhcyB0aGUgc3RyaW5nICJkcGxsMiIgc29tZXdoZXJlIGluCisJICogaXRzIGNsb2Nr IHRhYmxlcy4KKwkgKi8KKwlbWlhfQ0xLX0RQTEwyXSAgICAgICAgICAgICA9IFBMTCgiZHBsbDIi LCBjbGtfbWFpbiwgMCwgMHgxMDAsIENMS19aWF9QTExfUFJFUEFSRV9JU19FTkFCTEUpLAorCVta WF9DTEtfRFBMTDJfRDJdICAgICAgICAgID0gRklYRURfRElWKCJkcGxsMi1kMiIsIFBBUkVOVF9J RChaWF9DTEtfRFBMTDIpLCAyKSwKKworCS8qCisJICogVGhlIGRvY3VtZW50YXRpb24gc2F5cyA0 OTEuNTIgTUh6IGFuZCBtZWFzdXJlbWVudCB3aXRoIHRoZSBMU1AgVERNIGRldmljZSBzdXBwb3J0 cyB0aGlzLgorCSAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDB4NDgwYzIwMTEsIGJ1dCBub3QgYWxs IGJvb3QgbG9hZGVycyBzZXQgaXQgdXAuIFRvIGdldCB0byA0OTEuNTIKKwkgKiB3aXRoIHRoZXNl IHNldHRpbmdzIGl0IG5lZWRzIGEgMjMuMDQgTUh6IHJlZmVyZW5jZSBjbG9jaywgd2hpY2ggbWF0 Y2hlcyBkcGxsMi1kMi4gSWYKKwkgKiBkcGxsMiBpcyBkaXNhYmxlZCwgZHBsbCBsb3NlcyBpdHMg bG9jay4gV2Ugc2V0IHRoZSBmcmVxdWVuY3kgb24gdGhpcyBQTEwgaWYgd2UgZmluZCBpdCBpcwor CSAqIG5vdCBwcmVwYXJlZCBieSB0aGUgYm9vdCBsb2FkZXIuCisJICoKKwkgKiBUaGUgcHJvcHJp ZXRhcnkgTFRFIGRyaXZlciBhbmQvb3IgcnByb2MgcHJlcGFyZSBhbmQgdW5wcmVwYXJlIGl0LiBU RE0gYW5kIEkyUyBjYW4gdXNlIGl0LgorCSAqCisJICogSXQgYWNjZXB0cyBwYXJlbnQgdmFsdWVz IDAsIDEsIDIgYW5kIDMuIFBhcmVudCAwIGlzIGRwbGwyLWQyLiBUaGUgb3RoZXJzIGxvb2sgbGlr ZQorCSAqIG9zYzI2bS4gV2l0aCBhIHBhcmVudCAhPSAwIGRwbGwgbmV2ZXIgbG9zZXMgaXRzIGxv Y2sgZXZlbiB3aGVuIGFsbCBvdGhlciBQTExzIGFyZSBvZmYKKwkgKiBhbmQgdGhlIFRETSBjb3Vu dGVyIHJlZ2lzdGVyIGluY3JlYXNlcyBhdCBhIHJhdGUgY29uc2lzdGVudCB3aXRoIGEgMjYuMC8y My4wNCBjbG9jaworCSAqIGluY3JlYXNlLgorCSAqLworCVtaWF9DTEtfRFBMTF0gICAgICAgICAg ICAgID0gUExMKCJkcGxsIiwgZHBsbF9wYXJlbnRzLCA0OTE1MjAwMDAsIDB4MTgsIDApLAorCisJ LyoKKwkgKiAiZyIgaXMgZWl0aGVyIGZvciAiZ2VuZXJhbCIgb3IgImdpZ2FoZXJ0eiIuIFRoZSBW Q08gcnVucyBhdCAxIEdIei4gT3V0cHV0IGNsb2NrcyBhcmUgMjAwLAorCSAqIDEwMCwgNTAsIDI1 LCAuLi4gTUh6LiBJdCBpcyB1c2VkIG9wdGlvbmFsbHkgYnkgU0RJTyBhbmQgUVNQSSBhbmQgY2Fu IGRyaXZlIGEgR1BJTyBjbG9jaworCSAqIG91dHB1dCBmb3IgUk1JSSwgc28gaXQgZG9lc24ndCBz ZWVtIHZlcnkgZ2VuZXJhbC4KKwkgKi8KKwlbWlhfQ0xLX0dQTExdICAgICAgICAgICAgICA9IFBM TCgiZ3BsbCIsIGNsa19tYWluLCAwLCAweDExMCwgMCksCisKKwkvKiBvc2MyNm0gZGl2aXNpb24g Zm9yIGNsa19vdXRYICovCisJW1pYX0NMS19PU0MyNk1fRDJdICAgICAgICAgPSBGSVhFRF9ESVYo Im9zYzI2bS1kMiIsIGNsa19tYWluWzBdLCAyKSwKKworCS8qIFByZS0weDE0MCBkaXN0cmlidXRp b24gZml4ZWQgZGl2cyAqLworCVtaWF9DTEtfVE9QX01QTExfRDJfUFJFR0FURV0gID0gRklYRURf RElWKCJtcGxsLWQyIiwgUEFSRU5UX0lEKFpYX0NMS19NUExMKSwgMiksCisJW1pYX0NMS19UT1Bf TVBMTF9ENF9QUkVHQVRFXSAgPSBGSVhFRF9ESVYoIm1wbGwtZDQiLCBQQVJFTlRfSUQoWlhfQ0xL X01QTEwpLCA0KSwKKwlbWlhfQ0xLX1RPUF9NUExMX0Q1X1BSRUdBVEVdICA9IEZJWEVEX0RJVigi bXBsbC1kNSIsIFBBUkVOVF9JRChaWF9DTEtfTVBMTCksIDUpLAorCVtaWF9DTEtfVE9QX01QTExf RDZfUFJFR0FURV0gID0gRklYRURfRElWKCJtcGxsLWQ2IiwgUEFSRU5UX0lEKFpYX0NMS19NUExM KSwgNiksCisJW1pYX0NMS19UT1BfTVBMTF9EOF9QUkVHQVRFXSAgPSBGSVhFRF9ESVYoIm1wbGwt ZDgiLCBQQVJFTlRfSUQoWlhfQ0xLX01QTEwpLCA4KSwKKwlbWlhfQ0xLX1RPUF9VUExMX0QxMl9Q UkVHQVRFXSA9IEZJWEVEX0RJVigidXBsbC1kMTIiLCBQQVJFTlRfSUQoWlhfQ0xLX1VQTEwpLCAx MiksCisJW1pYX0NMS19UT1BfR1BMTF9EMl9QUkVHQVRFXSAgPSBGSVhFRF9ESVYoImdwbGwtZDIi LCBQQVJFTlRfSUQoWlhfQ0xLX0dQTEwpLCAyKSwKKwlbWlhfQ0xLX1RPUF9HUExMX0Q0X1BSRUdB VEVdICA9IEZJWEVEX0RJVigiZ3BsbC1kNCIsIFBBUkVOVF9JRChaWF9DTEtfR1BMTCksIDQpLAor CisJLyoKKwkgKiB0b3Bjcm0gZGlzdHJpYnV0aW9uIGdhdGVzLiBUaGVzZSBhcmUgY29tcGxpY2F0 ZWQsIGJ1dCBzaGVkIGEgbG90IG9mIGxpZ2h0IG9uIHRoZSBib2FyZCdzCisJICogY2xvY2sgZGlz dHJpYnV0aW9uLgorCSAqCisJICogU2V0dGFibGUgbWFzazogMHgwMTczMzNGRi4gR2VuZXJhbGx5 IG9uZSBuaWJibGUgcGVyIFBMTCwgZXhjZXB0IGZvciBNUExMIHRoYXQgaGFzIG1vcmUuCisJICog T25lIGZvciBvc2MyNm0gd29yayBjbG9jay4gcGNsayBhbmQgb3NjMzJrIGFyZSBub3QgZ2F0ZWQg Z2xvYmFsbHkgaGVyZSBvciBhbnl3aGVyZSBlbHNlCisJICogYXMgZmFyIGFzIEkgY2FuIHNlZS4K KwkgKgorCSAqIElmIHlvdSB3YW50IHRvIHRlc3QgeW91ciB1bmRlcnN0YW5kaW5nIG9mIHRoaXMg Ym9hcmQsIHRyeSB0byBtYW51YWxseSBjb25maWd1cmUgaXQgaW50byBhCisJICogc2V0dXAgd2hl cmUgYml0IDI0IG9yIGJpdCA5IGFyZSBvZmYgd2l0aG91dCBjcmFzaGluZyBpdC4KKwkgKi8KKwor CS8qIEJpdCAwOiBObyBrbm93biBjb25zdW1lciAqLworCS8qIEJpdCAxOiBNMCdzIDc4IE1IeiBz ZWxlY3Rpb24sIGJ1dCBzb21laG93IGFsc28gaW52b2x2ZWQgaW4gVVNCIHRvbyAqLworCVtaWF9D TEtfVE9QX01QTExfRDJdICAgICAgID0gR0FURSgidG9wLW1wbGwtZDIiLCBQQVJFTlRfSUQoWlhf Q0xLX1RPUF9NUExMX0QyX1BSRUdBVEUpLAorCQkJCQkgIDB4MTQwLCAxLCAwKSwKKwkvKiBCaXQg MjogTm8ga25vd24gY29uc3VtZXIsIG5hbWVkICJtcGxsXzQ4bV9jbGsiIGluIFpURSdzIGNwa28u a28gYmxvYiAqLworCVtaWF9DTEtfVE9QX01QTExfRDhdICAgICAgID0gR0FURSgidG9wLW1wbGwt ZDgiLCBQQVJFTlRfSUQoWlhfQ0xLX1RPUF9NUExMX0Q4X1BSRUdBVEUpLAorCQkJCQkgIDB4MTQw LCAzLCAwKSwKKwlbWlhfQ0xLX1RPUF9NUExMX0Q2XSAgICAgICA9IEdBVEUoInRvcC1tcGxsLWQ2 IiwgUEFSRU5UX0lEKFpYX0NMS19UT1BfTVBMTF9ENl9QUkVHQVRFKSwKKwkJCQkJICAweDE0MCwg NCwgMCksCisJW1pYX0NMS19UT1BfTVBMTF9ENF0gICAgICAgPSBHQVRFKCJ0b3AtbXBsbC1kNCIs IFBBUkVOVF9JRChaWF9DTEtfVE9QX01QTExfRDRfUFJFR0FURSksCisJCQkJCSAgMHgxNDAsIDUs IDApLAorCVtaWF9DTEtfVE9NQVRSSVhfTVBMTF9ENV0gID0gR0FURSgibWF0cml4LW1wbGwtZDUi LCBQQVJFTlRfSUQoWlhfQ0xLX1RPUF9NUExMX0Q1X1BSRUdBVEUpLAorCQkJCQkgIDB4MTQwLCA2 LCBaWDI5NzUyMFYzX0FYSV9DQU5ESURBVEUpLAorCS8qIEJpdCA3OiBObyBrbm93biBjb25zdW1l ciAqLworCS8qIEJpdCA4OiBIYXMgYSBjb25zdW1lciwgTFRFIGRlcGVuZHMgb24gaXQuIEJ1dCB1 bmtub3duIHdoYXQgYW5kIGhvdy4gKi8KKwkvKgorCSAqIEJpdCA5OiBCaWcgTVBMTCBwcm92aWRl ciBmb3IgTWF0cml4LiBJdCBpcyBhbiBBWEkgdm90aW5nIGNhbmRpZGF0ZSwgYnV0IGl0IGlzIHBy b3RlY3RlZAorCSAqIGluIE1hdHJpeCdzIDB4MTE4IGdhdGVzLgorCSAqLworCVtaWF9DTEtfVE9N QVRSSVhfTVBMTF0gICAgID0gR0FURSgibWF0cml4LW1wbGwiLCBQQVJFTlRfSUQoWlhfQ0xLX01Q TEwpLCAweDE0MCwgOSwgMCksCisJLyogQml0IDEwOiBBbHdheXMgMCAqLworCS8qIEJpdCAxMTog QWx3YXlzIDAgKi8KKworCS8qIEJpdCAxMjogTm8ga25vd24gY29uc3VtZXIuIEV4aXN0aW5nIHBh dHRlcm5zIGluZGljYXRlIGEgZHBsbCBjb25zdW1lciBpbiB0b3AgaXRzZWxmICovCisJW1pYX0NM S19UT01BVFJJWF9EUExMXSAgICAgPSBHQVRFKCJtYXRyaXgtZHBsbCIsIFBBUkVOVF9JRChaWF9D TEtfRFBMTCksIDB4MTQwLCAxMywgMCksCisJLyogQml0IDE0OiBBbHdheXMgMCAqLworCS8qIEJp dCAxNTogQWx3YXlzIDAgKi8KKworCVtaWF9DTEtfVE9QX1VQTExfRDEyXSAgICAgID0gR0FURSgi dG9wLXVwbGwtZDEyIiwgUEFSRU5UX0lEKFpYX0NMS19UT1BfVVBMTF9EMTJfUFJFR0FURSksCisJ CQkJCSAgMHgxNDAsIDE2LCAwKSwKKwlbWlhfQ0xLX1RPUF9VUExMXSAgICAgICAgICA9IEdBVEUo InRvcC11cGxsIiwgUEFSRU5UX0lEKFpYX0NMS19VUExMKSwgMHgxNDAsIDE3LCAwKSwKKwkvKiBC aXQgMTg6IEFsd2F5cyAwICovCisJLyogQml0IDE5OiBBbHdheXMgMCAqLworCisJW1pYX0NMS19U T1BfR1BMTF9ENF0gICAgICAgPSBHQVRFKCJ0b3AtZ3BsbC1kNCIsIFBBUkVOVF9JRChaWF9DTEtf VE9QX0dQTExfRDRfUFJFR0FURSksCisJCQkJCSAgMHgxNDAsIDIwLCAwKSwKKwlbWlhfQ0xLX1RP TUFUUklYX0dQTExfRDJdICA9IEdBVEUoIm1hdHJpeC1ncGxsLWQyIiwgUEFSRU5UX0lEKFpYX0NM S19UT1BfR1BMTF9EMl9QUkVHQVRFKSwKKwkJCQkJICAweDE0MCwgMjEsIDApLAorCVtaWF9DTEtf VE9NQVRSSVhfR1BMTF0gICAgID0gR0FURSgibWF0cml4LWdwbGwiLCBQQVJFTlRfSUQoWlhfQ0xL X0dQTEwpLCAweDE0MCwgMjIsIDApLAorCS8qIEJpdCAyMzogQWx3YXlzIDAgKi8KKworCS8qCisJ ICogQml0IDI0IGNvdmVycyBhbGwgMjYgTUh6IG9uIG1hdHJpeCwgYnV0IG5vdCBwY2xrcy4gT3Nj MjZtIGNvbnN1bWVycyBvbiB0b3Bjcm0gZG8gbm90CisJICogdXNlIHRoaXMsIHRoZXkgZ2V0IHRo ZSB1bmdhdGVkIG9zYzI2bS4gSXQgaXMgYW4gQVhJIHZvdGluZyBjYW5kaWRhdGUsIGJ1dCBkb2Vz IG5vdAorCSAqIG5lZWQgcHJvdGVjdGlvbiBiZWNhdXNlIGl0IGlzIHRoZSBzbG93ZXN0IHNwZWVk LiBJdCB3aWxsIG9ubHkgYmUgdXNlZCBpZiBldmVyeSBwcm9jZXNzb3IsCisJICogaW5jbHVkaW5n IHVzLCB2b3RlcyBmb3IgaXQuCisJICovCisJW1pYX0NMS19UT01BVFJJWF9PU0MyNk1dICAgPSBH QVRFKCJtYXRyaXgtb3NjMjZtIiwgY2xrX21haW5bMF0sIDB4MTQwLCAyNCwgMCksCisKKwkvKgor CSAqIFBvc3QtMTQwIGRpdmlzaW9ucy4gVGhleSBlbnRlciB0aHJvdWdoIHRoZSBzYW1lIGJpdCBh bmQgY2FuIGJlIHNlbGVjdGVkIGJ5IGRpZmZlcmVudCBtdXgKKwkgKiB2YWx1ZXMgb2YgdGhlaXIg Y29uc3VtZXJzIG9yIGdldCBwaXBlZCB0byBtdWx0aXBsZSBjb25zdW1lcnMgd2l0aCBkaWZmZXJl bnQgZG9jdW1lbnRlZAorCSAqIHJhdGVzIC0gaW4gcGFydGljdWxhciwgVVNCIHdjbGsgKDI0IE1I eiBhY2NvcmRpbmcgdG8gWlRFKSBzaGFyZXMgYml0IDEgd2l0aCBNMCdzIDc4IE1Iei4KKwkgKi8K KwlbWlhfQ0xLX1RPUF9NUExMX0QyX0Q0XSAgICA9IEZJWEVEX0RJVigidG9wLW1wbGwtZDItZDQi LCBQQVJFTlRfSUQoWlhfQ0xLX1RPUF9NUExMX0QyKSwgNCksCisJW1pYX0NMS19UT1BfTVBMTF9E Ml9EMTNdICAgPSBGSVhFRF9ESVYoInRvcC1tcGxsLWQyLWQxMyIsIFBBUkVOVF9JRChaWF9DTEtf VE9QX01QTExfRDIpLAorCQkJCQkgICAgICAgMTMpLAorCVtaWF9DTEtfVE9QX1VQTExfRDEyX0Qy XSAgID0gRklYRURfRElWKCJ0b3AtdXBsbC1kMTItZDIiLCBQQVJFTlRfSUQoWlhfQ0xLX1RPUF9V UExMX0QxMiksCisJCQkJCSAgICAgICAyKSwKKwlbWlhfQ0xLX1RPUF9HUExMX0Q0X0QyXSAgICA9 IEZJWEVEX0RJVigidG9wLWdwbGwtZDQtZDIiLCBQQVJFTlRfSUQoWlhfQ0xLX1RPUF9HUExMX0Q0 KSwgMiksCisKKwkvKiBEZXZpY2Utc3BlY2lmaWMgTXV4ZXMgKi8KKwlbWlhfQ0xLX00wX01VWF0g ICAgICAgICAgICA9IE1VWCgibTAtbXV4IiwgICAgICAgIG0wX3NlbCwgICAgICAgICAgICAweDM4 LCAgMCwgMiksCisJW1pYX0NMS19BSEJfTVVYXSAgICAgICAgICAgPSBNVVgoImFoYi1tdXgiLCAg ICAgICBhaGJfc2VsLCAgICAgICAgICAgMHgzYywgIDQsIDIpLAorCVtaWF9DTEtfVElNRVJfVDA4 X01VWF0gICAgID0gTVVYKCJ0aW1lci10MDgtbXV4IiwgdGltZXJfdG9wX3NlbCwgICAgIDB4NDAs ICAxLCAxKSwKKwlbWlhfQ0xLX1RJTUVSX1QwOV9NVVhdICAgICA9IE1VWCgidGltZXItdDA5LW11 eCIsIHRpbWVyX3RvcF9zZWwsICAgICAweDQwLCAgMCwgMSksCisJW1pYX0NMS19USU1FUl9UMTJf TVVYXSAgICAgPSBNVVgoInRpbWVyLXQxMi1tdXgiLCB0aW1lcl90b3Bfc2VsLCAgICAgMHgzYywg IDAsIDEpLAorCVtaWF9DTEtfVElNRVJfVDEzX01VWF0gICAgID0gTVVYKCJ0aW1lci10MTMtbXV4 IiwgdGltZXJfdG9wX3NlbCwgICAgIDB4NDQsICAwLCAxKSwKKwlbWlhfQ0xLX1RJTUVSX1QxNF9N VVhdICAgICA9IE1VWCgidGltZXItdDE0LW11eCIsIHRpbWVyX3RvcF9zZWwsICAgICAweDQ0LCAg MSwgMSksCisJW1pYX0NMS19USU1FUl9UMTVfTVVYXSAgICAgPSBNVVgoInRpbWVyLXQxNS1tdXgi LCB0aW1lcl90b3Bfc2VsLCAgICAgMHgzYywgIDMsIDEpLAorCVtaWF9DTEtfVElNRVJfVDE2X01V WF0gICAgID0gTVVYKCJ0aW1lci10MTYtbXV4IiwgdGltZXJfdG9wX3NlbCwgICAgIDB4NDQsICAy LCAxKSwKKwlbWlhfQ0xLX1RJTUVSX1QxN19NVVhdICAgICA9IE1VWCgidGltZXItdDE3LW11eCIs IHRpbWVyX3RvcF9zZWwsICAgIDB4MTIwLCAgMCwgMSksCisJW1pYX0NMS19XRFRfVDE4X01VWF0g ICAgICAgPSBNVVgoIndkdC10MTgtbXV4IiwgICB0aW1lcl90b3Bfc2VsLCAgICAgMHgzYywgIDYs IDEpLAorCVtaWF9DTEtfSTJDMF9NVVhdICAgICAgICAgID0gTVVYKCJpMmMwLW11eCIsICAgICAg dWFydF90b3Bfc2VsLCAgICAgIDB4M2MsICAxLCAxKSwKKwlbWlhfQ0xLX1VBUlQwX01VWF0gICAg ICAgICA9IE1VWCgidWFydDAtbXV4IiwgICAgIHVhcnRfdG9wX3NlbCwgICAgICAweDQwLCAgMiwg MSksCisJW1pYX0NMS19PVVQwX01VWF0gICAgICAgICAgPSBNVVgoIm91dDAtbXV4IiwgICAgICBv dXQwX3NlbCwgICAgICAgICAgMHgzNCwgIDUsIDEpLAorCVtaWF9DTEtfT1VUMV9NVVhdICAgICAg ICAgID0gTVVYKCJvdXQxLW11eCIsICAgICAgb3V0MV9zZWwsICAgICAgICAgIDB4MzQsICA2LCAy KSwKKwlbWlhfQ0xLX09VVDJfTVVYXSAgICAgICAgICA9IE1VWCgib3V0Mi1tdXgiLCAgICAgIG91 dDJfc2VsLCAgICAgICAgICAweDM0LCAgOCwgMSksCisJW1pYX0NMS19STUlJUEhZX01VWF0gICAg ICAgPSBNVVgoInJtaWlwaHktbXV4IiwgICBybWlpX3NlbCwgICAgICAgICAweDExYywgIDAsIDIp LAorCisJLyogRGV2aWNlLXNwZWNpZmljIGRpdmlkZXJzICovCisJW1pYX0NMS19USU1FUl9UMDhf RElWXSAgICAgPSBESVYoInRpbWVyLXQwOC1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1Qw OF9NVVgpLAorCQkJCQkgMHg0YywgOCwgNCksCisJW1pYX0NMS19USU1FUl9UMDlfRElWXSAgICAg PSBESVYoInRpbWVyLXQwOS1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1QwOV9NVVgpLAor CQkJCQkgMHg0YywgMCwgNCksCisJW1pYX0NMS19USU1FUl9UMTJfRElWXSAgICAgPSBESVYoInRp bWVyLXQxMi1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1QxMl9NVVgpLAorCQkJCQkgMHg0 OCwgMCwgNCksCisJW1pYX0NMS19USU1FUl9UMTNfRElWXSAgICAgPSBESVYoInRpbWVyLXQxMy1k aXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1QxM19NVVgpLAorCQkJCQkgMHg1MCwgMCwgNCks CisJW1pYX0NMS19USU1FUl9UMTRfRElWXSAgICAgPSBESVYoInRpbWVyLXQxNC1kaXYiLCBQQVJF TlRfSUQoWlhfQ0xLX1RJTUVSX1QxNF9NVVgpLAorCQkJCQkgMHg1MCwgNCwgNCksCisJW1pYX0NM S19USU1FUl9UMTVfRElWXSAgICAgPSBESVYoInRpbWVyLXQxNS1kaXYiLCBQQVJFTlRfSUQoWlhf Q0xLX1RJTUVSX1QxNV9NVVgpLAorCQkJCQkgMHg0OCwgNCwgNCksCisJW1pYX0NMS19USU1FUl9U MTZfRElWXSAgICAgPSBESVYoInRpbWVyLXQxNi1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVS X1QxNl9NVVgpLAorCQkJCQkgMHg1MCwgOCwgNCksCisJW1pYX0NMS19USU1FUl9UMTdfRElWXSAg ICAgPSBESVYoInRpbWVyLXQxNy1kaXYiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1QxN19NVVgp LAorCQkJCQkgMHgxMjQsIDAsIDQpLAorCVtaWF9DTEtfV0RUX1QxOF9ESVZdICAgICAgID0gRElW KCJ3ZHQtdDE4LWRpdiIsIFBBUkVOVF9JRChaWF9DTEtfV0RUX1QxOF9NVVgpLAorCQkJCQkgMHg0 OCwgOCwgNCksCisJW1pYX0NMS19VU0lNMV9ESVZdICAgICAgICAgPSBESVYoInVzaW0xLWRpdiIs IGNsa191bmtub3duLAorCQkJCQkgMHg0OCwgMTIsIDEpLAorCisJLyogRGV2aWNlIHNwZWNpZmlj IGdhdGVzICovCisKKwkvKgorCSAqIEFIQiBjbG9jayBnYXRlczogRGlzYWJsaW5nIHRoZXNlIGN1 dHMgb2ZmIHRoZSBBNTMgZnJvbSByZWdpc3RlciBhY2Nlc3MgaW50byAweDEzMDAwMC8KKwkgKiAw eDE0MDAwMCwgaW5jbHVkaW5nIHRoZSB0b3Bjcm0gcmVnaW9uLCBzbyBpdCBjYW4ndCBiZSByZS1l bmFibGVkLiBNYXJrIHRoZW0gY3JpdGljYWwgZm9yCisJICogdGhhdCByZWFzb24uCisJICoKKwkg KiBHYXRpbmcgdGhpcyBvZmYgZG9lcyBub3Qgc3RvcCB0aGUgTTAgcnByb2MsIG5vciBkb2VzIGl0 IHN0b3AgTTAgZnJvbSBhY2Nlc3NpbmcgdG9wY3JtLiBJdAorCSAqIGRvZXMgaG93ZXZlciBnYXRl IG9mZiBNMCBmcm9tIHRoZSBBWEkgaW50ZXJjb25uZWN0LCBzbyBpdCBjYW4ndCByZWFkIFJBTSwg TWF0cml4LCBldGMuIFNvCisJICogdGhlc2UgYml0cyBoZXJlIG1lcmVseSBnYXRlIHRoZSBidXMs IG5vdCB0aGUgYWN0dWFsIGRldmljZXMuCisJICovCisJW1pYX0NMS19BSEJfUENMS10gICAgICAg ICAgPSBHQVRFKCJhaGItcGNsayIsIFBBUkVOVF9JRChaWF9DTEtfQUhCX01VWCksIDB4NTQsIDEy LAorCQkJCQkgIENMS19JU19DUklUSUNBTCksCisJW1pYX0NMS19BSEJfV0NMS10gICAgICAgICAg PSBHQVRFKCJhaGItd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfTTBfTVVYKSwgMHg1NCwgMTMsCisJ CQkJCSAgQ0xLX0lTX0NSSVRJQ0FMKSwKKworCS8qIFNSQU0xIGFuZCAyIGNsb2Nrcy4gTGVhdmUg dGhlbSBvbiBmb3Igbm93LCBhcyB0dXJuaW5nIHRoZW0gb2ZmIGNhcmVsZXNzbHkgaGFuZ3MgdGhl IE0wICovCisJW1pYX0NMS19TUkFNMV9QQ0xLXSAgICAgICAgPSBHQVRFKCJzcmFtMS1wY2xrIiwg Y2xrX21haW5bMF0sIDB4NTQsIDE4LCBDTEtfSVNfQ1JJVElDQUwpLAorCVtaWF9DTEtfU1JBTTJf UENMS10gICAgICAgID0gR0FURSgic3JhbTItcGNsayIsIGNsa19tYWluWzBdLCAweDU0LCAxNiwg Q0xLX0lTX0NSSVRJQ0FMKSwKKworCS8qCisJICogUGlubXV4IChBT04sIFRPUCwgSU9DRkcgYnV0 IG5vdCBQRENGRykuIENyaXRpY2FsIGFzIHdlbGwgdW50aWwgd2UgaGF2ZSBhIGRyaXZlciB0aGF0 CisJICogY29uc3VtZXMgaXQuIEkgZG9uJ3QgdGhpbmsgd2UnbGwgcmVhbGlzdGljYWxseSBzaHV0 IHRoaXMgb2ZmIGV2ZXIuCisJICoKKwkgKiBTZXR0aW5nIGVpdGhlciBiaXQgMCBvciAxIGluIHJl Z2lzdGVyIDB4NTggbWFrZXMgdGhlIGRldmljZSB3b3JrLgorCSAqLworCVtaWF9DTEtfUE1NX1dD TEtdICAgICAgICAgID0gR0FURSgicG1tLXdjbGsiLCBjbGtfbWFpblswXSwgMHg1OCwgMCwgQ0xL X0lTX0NSSVRJQ0FMKSwKKwlbWlhfQ0xLX1BNTV9QQ0xLXSAgICAgICAgICA9IEdBVEUoInBtbS1w Y2xrIiwgY2xrX21haW5bMF0sIDB4NTgsIDEsIENMS19JU19DUklUSUNBTCksCisKKwkvKgorCSAq IFRpbWVycy4gV2UgZG9uJ3QgdXNlIGFueSBvZiB0aGVtLCBqdXN0IHNodXQgdGhlbSBvZmYuIFRo ZSB0aW1lcnMgYXJlIG5hbWVkIGFuZCBzb3J0ZWQKKwkgKiBieSB0aGUgSU8gYWRkcmVzcyBvZiB0 aGUgbWFpbiB0aW1lciBjb250cm9scy4gU29tZSBvZiB0aGUgY29udHJvbHMgYXJlIGRvY3VtZW50 ZWQgaW4KKwkgKiBaVEUncyBrZXJuZWwsIHRoZSBvdGhlcnMgSSBmb3VuZCBieSB0cmlhbCBhbmQg ZXJyb3IuIFRpbWVycyBpbiByZWdpc3RlciAweDU0IGhhdmUgdGhlCisJICogcGNsayBmaXJzdCwg dGhlIG90aGVycyBoYXZlIHRoZSB3Y2xrIGZpcnN0LgorCSAqCisJICogVGltZXIgVDE3IGlzIHVz ZWQgYnkgdGhlIFpTUCBmaXJtd2FyZS4gVGhlIHJwcm9jIGRyaXZlciB3aWxsIGVuYWJsZSBpdCBh cyBuZWVkZWQuCisJICovCisJW1pYX0NMS19USU1FUl9UMDhfV0NMS10gICAgPSBHQVRFKCJ0aW1l ci10MDgtd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfVElNRVJfVDA4X0RJViksCisJCQkJCSAgMHg1 YywgOCwgMCksCisJW1pYX0NMS19USU1FUl9UMDhfUENMS10gICAgPSBHQVRFKCJ0aW1lci10MDgt cGNsayIsIGNsa19tYWluWzBdLCAweDVjLCA5LCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QwOV9XQ0xL XSAgICA9IEdBVEUoInRpbWVyLXQwOS13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19USU1FUl9UMDlf RElWKSwKKwkJCQkJICAweDVjLCA0LCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QwOV9QQ0xLXSAgICA9 IEdBVEUoInRpbWVyLXQwOS1wY2xrIiwgY2xrX21haW5bMF0sIDB4NWMsIDUsIDApLAorCVtaWF9D TEtfVElNRVJfVDEyX1dDTEtdICAgID0gR0FURSgidGltZXItdDEyLXdjbGsiLCBQQVJFTlRfSUQo WlhfQ0xLX1RJTUVSX1QxMl9ESVYpLAorCQkJCQkgIDB4NTQsIDUsIDApLAorCVtaWF9DTEtfVElN RVJfVDEyX1BDTEtdICAgID0gR0FURSgidGltZXItdDEyLXBjbGsiLCBjbGtfbWFpblswXSwgMHg1 NCwgNCwgMCksCisJW1pYX0NMS19USU1FUl9UMTNfV0NMS10gICAgPSBHQVRFKCJ0aW1lci10MTMt d2NsayIsIFBBUkVOVF9JRChaWF9DTEtfVElNRVJfVDEzX0RJViksCisJCQkJCSAgMHg2MCwgMCwg MCksCisJW1pYX0NMS19USU1FUl9UMTNfUENMS10gICAgPSBHQVRFKCJ0aW1lci10MTMtcGNsayIs IGNsa19tYWluWzBdLCAweDYwLCAxLCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QxNF9XQ0xLXSAgICA9 IEdBVEUoInRpbWVyLXQxNC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19USU1FUl9UMTRfRElWKSwK KwkJCQkJICAweDYwLCA0LCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QxNF9QQ0xLXSAgICA9IEdBVEUo InRpbWVyLXQxNC1wY2xrIiwgY2xrX21haW5bMF0sIDB4NjAsIDUsIDApLAorCVtaWF9DTEtfVElN RVJfVDE1X1dDTEtdICAgID0gR0FURSgidGltZXItdDE1LXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xL X1RJTUVSX1QxNV9ESVYpLAorCQkJCQkgIDB4NTQsIDIxLCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1Qx NV9QQ0xLXSAgICA9IEdBVEUoInRpbWVyLXQxNS1wY2xrIiwgY2xrX21haW5bMF0sIDB4NTQsIDIw LCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QxNl9XQ0xLXSAgICA9IEdBVEUoInRpbWVyLXQxNi13Y2xr IiwgUEFSRU5UX0lEKFpYX0NMS19USU1FUl9UMTZfRElWKSwKKwkJCQkJICAweDYwLCA4LCAwKSwK KwlbWlhfQ0xLX1RJTUVSX1QxNl9QQ0xLXSAgICA9IEdBVEUoInRpbWVyLXQxNi1wY2xrIiwgY2xr X21haW5bMF0sIDB4NjAsIDksIDApLAorCVtaWF9DTEtfVElNRVJfVDE3X1dDTEtdICAgID0gR0FU RSgidGltZXItdDE3LXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX1RJTUVSX1QxN19ESVYpLAorCQkJ CQkgIDB4MTI4LCAwLCAwKSwKKwlbWlhfQ0xLX1RJTUVSX1QxN19QQ0xLXSAgICA9IEdBVEUoInRp bWVyLXQxNy1wY2xrIiwgY2xrX21haW5bMF0sIDB4MTI4LCAxLCAwKSwKKworCS8qCisJICogVGhp cyB3YXRjaGRvZyBpcyBzZXQgdXAgYnkgWlRFJ3MgYm9vdGxvYWRlciBhbmQgaW4gWlRFJ3MgT1Mg dGhlIG0wIGZpcm13YXJlIHdpbGwgZmVlZCB0aGUKKwkgKiBkb2cuIFRoZSBtMCBmaXJtd2FyZSBp biB0dXJuIHdhbnRzIHRvIGJlIGZlZCBpbiBpdHMgb3duIHdheS4gU2luY2Ugd2Ugbm9ybWFsbHkg ZG9uJ3QgcnVuCisJICogYW55IG0wIGZpcm13YXJlIHdlIHNodXQgaXQgb2ZmIGJ5IGRlZmF1bHQg YW5kIGV4cG9zZSBpdCB0byB1c2Vyc3BhY2UgdmlhIHRoZSB3YXRjaGRvZworCSAqIGRyaXZlci4K KwkgKi8KKwlbWlhfQ0xLX1dEVF9UMThfV0NMS10gICAgID0gR0FURSgid2R0LXQxOC13Y2xrIiwg UEFSRU5UX0lEKFpYX0NMS19XRFRfVDE4X0RJViksCisJCQkJCSAweDU0LCAyNSwgMCksCisJW1pY X0NMS19XRFRfVDE4X1BDTEtdICAgICA9IEdBVEUoIndkdC10MTgtcGNsayIsIGNsa19tYWluWzBd LCAweDU0LCAyNCwgMCksCisKKwlbWlhfQ0xLX0kyQzBfV0NMS10gICAgICAgID0gR0FURSgiaTJj MC13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19JMkMwX01VWCksIDB4NTQsIDksIDApLAorCVtaWF9D TEtfSTJDMF9QQ0xLXSAgICAgICAgPSBHQVRFKCJpMmMwLXBjbGsiLCBjbGtfbWFpblswXSwgMHg1 NCwgOCwgMCksCisJW1pYX0NMS19VQVJUMF9XQ0xLXSAgICAgICA9IEdBVEUoInVhcnQwLXdjbGsi LCBQQVJFTlRfSUQoWlhfQ0xLX1VBUlQwX01VWCksIDB4NWMsIDEyLCAwKSwKKwlbWlhfQ0xLX1VB UlQwX1BDTEtdICAgICAgID0gR0FURSgidWFydDAtcGNsayIsIGNsa19tYWluWzBdLCAweDVjLCAx MywgMCksCisKKwkvKgorCSAqIFpURSBzYXlzIHRoZSBVU0IgaW5wdXQgaXMgYSAyNCBNSHogY2xv Y2sgYmFzZWQgb24gbXBsbC4gVGVzdGluZyBzaG93cyB0aGF0IHVwbGwgaXMgbm90CisJICogaW52 b2x2ZWQuIFRoZSBVU0IgcmVnaXN0ZXIgc3BhY2UgY2FuIGJlIGFjY2Vzc2VkIHdpdGggYWhiLXBj bGsgZ2F0ZWQsIGJ1dCBub3Qgd2l0aAorCSAqIGFoYi13Y2xrIGdhdGVkLiBaVEUgYWxzbyBsaXN0 cyBhaGItd2NsayBhcyBwYXJlbnQgZm9yIHRoZSBzZWNvbmQgY2xvY2suCisJICoKKwkgKiBUaGVy ZSBkb2Vzbid0IHNlZW0gdG8gYmUgYSBzZXBhcmF0ZSBQSFkgY2xvY2suIHVzYi13Y2xrIHN0b3Bz IGNvbnRyb2xsZXIgcmVnaXN0ZXJzIGZyb20KKwkgKiB1cGRhdGluZywgYnV0IGRvZXNuJ3QgY2F1 c2UgdGhlIFVTQiBkZXZpY2UgdG8gZGlzY29ubmVjdCBsaWtlIGFzc2VydGluZyB0aGUgUEhZIHJl c2V0CisJICogZG9lcy4gQml0IDAgaW4gdGhpcyByZWdpc3RlciBjYW4ndCBiZSBzZXQsIHNvIG5v IFBIWSBjbG9jayBpcyBoaWRpbmcgdGhlcmUgZWl0aGVyLgorCSAqLworCVtaWF9DTEtfVVNCX1dD TEtdICAgICAgICAgPSBHQVRFKCJ1c2Itd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfVE9QX01QTExf RDJfRDEzKSwgMHg2YywgMywgMCksCisJW1pYX0NMS19VU0JfUENMS10gICAgICAgICA9IEdBVEUo InVzYi1wY2xrIiwgUEFSRU5UX0lEKFpYX0NMS19BSEJfV0NMSyksIDB4NmMsIDQsIDApLAorCS8q CisJICogVGhlIEhTSUMgaGFyZHdhcmUgaXMgbGlzdGVkIGluIFpURSdzIGNvZGUgd2l0aCBhIHBo eXNpY2FsIGFkZHJlc3Mgb2YgMHgwMTYwMDAwMC4gVW5saWtlCisJICogdGhlIFVTQiBjb250cm9s bGVyLCBpdCBkb2VzIGNvbnN1bWUgdXBsbC4gWlRFIHNheXMgMjQwIE1IeiwgYnV0IDQ4MCBpcyB0 aGUgdXN1YWwgb25lIGZvcgorCSAqIEhTSUMuCisJICovCisJW1pYX0NMS19IU0lDX1dDTEtdICAg ICAgICA9IEdBVEUoImhzaWMtd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfVE9QX1VQTEwpLCAweDZj LCAxLCAwKSwKKwlbWlhfQ0xLX0hTSUNfUENMS10gICAgICAgID0gR0FURSgiaHNpYy1wY2xrIiwg UEFSRU5UX0lEKFpYX0NMS19BSEJfV0NMSyksIDB4NmMsIDIsIDApLAorCisJLyoKKwkgKiBIb3cg ZG9lcyB0aGlzIFJUQyB3b3JrPyBJIGRvbid0IGtub3csIHRoZSBaVEUga2VybmVsIGRvZXMgbm90 IHRhbGsgdG8gaXQuIFRoZSBhY3R1YWwgUlRDCisJICogaXMgb24gdGhlIEkyQy1jb25uZWN0ZWQg UE1JQy4KKwkgKi8KKwlbWlhfQ0xLX1JUQ19XQ0xLXSAgICAgICAgID0gR0FURSgicnRjLXdjbGsi LCBjbGtfdW5rbm93biwgMHg1NCwgMSwgMCksCisJW1pYX0NMS19SVENfUENMS10gICAgICAgICA9 IEdBVEUoInJ0Yy1wY2xrIiwgY2xrX21haW5bMF0sIDB4NTQsIDAsIDApLAorCisJW1pYX0NMS19V U0lNMV9XQ0xLXSAgICAgICA9IEdBVEUoInVzaW0xLXdjbGsiLCBQQVJFTlRfSUQoWlhfQ0xLX1VT SU0xX0RJViksIDB4NTQsIDI5LCAwKSwKKwlbWlhfQ0xLX1VTSU0xX1BDTEtdICAgICAgID0gR0FU RSgidXNpbTEtcGNsayIsIGNsa19tYWluWzBdLCAweDU0LCAyOCwgMCksCisKKwkvKgorCSAqIExU RTogZ2F0ZSBvbmx5IGFzIGZhciBhcyBJIGNhbiBzZWUuIEkgbG9va2VkIGZvciByZXNldHMgYW5k IGRpZCBub3QgZmluZCBhbnkuIFRoZXJlIG1heQorCSAqIGJlIG11eC9kaXYsIGJ1dCB3aXRob3V0 IHVuZGVyc3RhbmRpbmcgdGhlIGJlaGF2aW9yIG9mIHRoaXMgaGFyZHdhcmUgaXQgaXMgaW1wb3Nz aWJsZSB0bworCSAqIHRlbGwuIFRoZXkgYXJlIHNvcnRlZCBieSBwaHlzaWNhbCBNTUlPIGFkZHJl c3Mgb2YgdGhlIGRldmljZXMsIHdoaWNoIGhhcHBlbnMgdG8gYmUgdGhlCisJICogaW52ZXJzZSBv cmRlciBvZiB0aGUgYml0cy4KKwkgKgorCSAqIExpa2UgUE1NIGluIHRoaXMgcmVnaXN0ZXIsIGVp dGhlciBiaXQgZW5hYmxlcyByZWdpc3RlciBhY2Nlc3MsIHdoZXRoZXIgdGhleSBjb250cm9sIHBj bGsKKwkgKiBvciB3Y2xrIGNhbm5vdCBiZSBkaXN0aW5ndWlzaGVkLgorCSAqCisJICogVGhlIHdv cmsgcGFyZW50IG9mIEdTTSwgVEQgYW5kIFcgaXMgd2l0aG91dCBkb3VidCBvc2MyNm0uIFRoZSBt bWlvIHNwYWNlIGhhcyByZWdpc3RlcnMKKwkgKiB0aGF0IGNvdW50IHVwIGF0IGFuIGludGVnZXIg ZnJhY3Rpb24gb2YgMjYwMDAwMDAuIEdhdGluZyBQTExzIGRvZXMgbm90IGFmZmVjdCB0aGVtLAor CSAqIGluY2x1ZGluZyBnYXRpbmcgbXBsbC4KKwkgKgorCSAqIExQTV9MVEUgaGFzIHNvbWUgaW50 ZXJhY3Rpb24gd2l0aCBMVEVfTU9ERU1fV0NMSy4gSWYgTFRFX01PREVNX1dDTEsgaXMgZGlzYWJs ZWQsIExQTV9MVEUKKwkgKiBzdG9wcyBjb3VudGluZywgYW5kIGp1c3QgZmxpcHMgYmV0d2VlbiB0 d28gc3RhdGVzLiBUaGlzIG1ha2VzIGl0IGxvb2sgbGlrZSBMUE1fTFRFIGluCisJICogdG9wY3Jt IGhhcyBhIGNsb2NrIHBhcmVudCBpbiBtYXRyaXhjcm0sIHdoaWNoIHdvdWxkbid0IG1ha2UgbXVj aCBzZW5zZS4gSSB0aGluayB0aGlzCisJICogYmVoYXZpb3IgaXMgYSByZXN1bHQgb2YgdGhlIGRl dmljZXMgaW50ZXJhY3RpbmcgcmF0aGVyIHRoYW4gYSBjbG9jayBwYXJlbnRhZ2UuCisJICoKKwkg KiBBcyBmb3Igd2hhdCB0aGVzZSBkZXZpY2VzIGRvPyBJIGFtIG5vdCBzdXJlLiBUaGV5IGdlbmVy YXRlIGEgbG90IG9mIElSUXMsIGJ1dCB0aGUgSVJRcworCSAqIGFyZSBpbmRlcGVuZGVudCBvZiBh Y3R1YWwgcmFkaW8gYWN0aXZpdHkuIFRoZSBaU1AgZmlybXdhcmUgcHJvZ3JhbXMgdGhlbQorCSAq LworCVtaWF9DTEtfTFBNX0dTTV9XQ0xLXSAgICAgPSBHQVRFKCJscG0tZ3NtLXdjbGsiLCBjbGtf bWFpblswXSwgMHg1OCwgMTAsIDApLAorCVtaWF9DTEtfTFBNX0dTTV9QQ0xLXSAgICAgPSBHQVRF KCJscG0tZ3NtLXBjbGsiLCBjbGtfbWFpblswXSwgMHg1OCwgMTEsIDApLAorCVtaWF9DTEtfTFBN X0xURV9XQ0xLXSAgICAgPSBHQVRFKCJscG0tbHRlLXdjbGsiLCBjbGtfdW5rbm93biwgMHg1OCwg OCwgMCksCisJW1pYX0NMS19MUE1fTFRFX1BDTEtdICAgICA9IEdBVEUoImxwbS1sdGUtcGNsayIs IGNsa19tYWluWzBdLCAweDU4LCA5LCAwKSwKKwlbWlhfQ0xLX0xQTV9URF9XQ0xLXSAgICAgID0g R0FURSgibHBtLXRkLXdjbGsiLCBjbGtfbWFpblswXSwgMHg1OCwgNiwgMCksCisJW1pYX0NMS19M UE1fVERfUENMS10gICAgICA9IEdBVEUoImxwbS10ZC1wY2xrIiwgY2xrX21haW5bMF0sIDB4NTgs IDcsIDApLAorCVtaWF9DTEtfTFBNX1dfV0NMS10gICAgICAgPSBHQVRFKCJscG0tdy13Y2xrIiwg Y2xrX21haW5bMF0sIDB4NTgsIDQsIDApLAorCVtaWF9DTEtfTFBNX1dfUENMS10gICAgICAgPSBH QVRFKCJscG0tdy1wY2xrIiwgY2xrX21haW5bMF0sIDB4NTgsIDUsIDApLAorCisJW1pYX0NMS19P VVQwX1dDTEtdICAgICAgICA9IEdBVEUoIm91dDAtd2NsayIsIFBBUkVOVF9JRChaWF9DTEtfT1VU MF9NVVgpLCAweDM0LCAwLCAwKSwKKwlbWlhfQ0xLX09VVDFfV0NMS10gICAgICAgID0gR0FURSgi b3V0MS13Y2xrIiwgUEFSRU5UX0lEKFpYX0NMS19PVVQxX01VWCksIDB4OTAsIDIsIDApLAorCVta WF9DTEtfT1VUMl9XQ0xLXSAgICAgICAgPSBHQVRFKCJvdXQyLXdjbGsiLCBQQVJFTlRfSUQoWlhf Q0xLX09VVDJfTVVYKSwgMHg5NCwgMiwgMCksCisJW1pYX0NMS19PVVQzMktfV0NMS10gICAgICA9 IEdBVEUoIm91dDMyay13Y2xrIiwgUEFSRU5UX0ZXKCJvc2MzMmsiKSwgMHgzNCwgMSwgMCksCisJ W1pYX0NMS19STUlJUEhZX1dDTEtdICAgICA9IEdBVEUoInJtaWlwaHktd2NsayIsIFBBUkVOVF9J RChaWF9DTEtfUk1JSVBIWV9NVVgpLAorCQkJCQkgMHgxMWMsIDIsIDApLAorCisJLyoKKwkgKiBH U00gY2xvY2tzIC0gdGhleSBmZWVkIHRoZSAyRy8zRyByYWRpbyBjb21wb25lbnRzIGFuZCBTSU0g Y29udHJvbGxlci4KKwkgKgorCSAqIFRoZSBuYW1lcyBhcmUgZnJvbSB0aGUgY2xvY2sgdGFibGUg aW4gY3Brby5rby4gVGhlIHBhcmVudHMgb2YgZ3NtLTEwNG0gYW5kIGdzbS0xNTZtIGFyZQorCSAq IGV4cGVyaW1lbnRhbGx5IHZlcmlmaWVkLiBUaGUgZ3NtLTQ4bSBwYXJlbnQgaXMgbGlrZWx5IGJp dCAyIGluIHRvcGNybSsweDE0MC4gSSBoYXZlIG5vdAorCSAqIGZvdW5kIGFuIGNvbnN1bWVyIHRo YXQgSSB1bmRlcnN0YW5kIHdlbGwgZW5vdWdoIHRvIHNheSBpZiBpdCBpcyBydW5uaW5nIG9yIG5v dCwgc28gSSBoYXZlCisJICogbm90IGJlZW4gYWJsZSB0byBjb25maXJtIHRoaXMgeWV0LgorCSAq LworCVtaWF9DTEtfR1NNXzMyS10gICAgICAgICAgPSBHQVRFKCJnc20tMzJrIiwgUEFSRU5UX0ZX KCJvc2MzMmsiKSwgMHg2OCwgMCwgMCksCisJW1pYX0NMS19HU01fMjZNXSAgICAgICAgICA9IEdB VEUoImdzbS0yNm0iLCBQQVJFTlRfRlcoIm9zYzI2bSIpLCAweDY4LCAxLCAwKSwKKwlbWlhfQ0xL X0dTTV80OE1dICAgICAgICAgID0gR0FURSgiZ3NtLTQ4bSIsIGNsa191bmtub3duLCAweDY4LCAy LCAwKSwKKwlbWlhfQ0xLX0dTTV8xMDRNXSAgICAgICAgID0gR0FURSgiZ3NtLTEwNG0iLCBQQVJF TlRfSUQoWlhfQ0xLX1RPUF9NUExMX0Q2KSwgMHg2OCwgMywgMCksCisJW1pYX0NMS19HU01fMTU2 TV0gICAgICAgICA9IEdBVEUoImdzbS0xNTZtIiwgUEFSRU5UX0lEKFpYX0NMS19UT1BfTVBMTF9E NCksIDB4NjgsIDQsIDApLAorCisJLyogQW5hbG9nIEJhc2ViYW5kLCBwcm9iYWJseS4gY3Brby5r byBlbmFibGVzIGl0IGZvciBMVEUsIGFuZCBMVEUgc2NhbnMgY29tZSBiYWNrIGVtcHR5CisJICog d2l0aG91dCBpdC4gVGhlIE1NSU8gbG9jYXRpb24gb2YgdGhlIGRldmljZSBpcyB1bmtub3duLiBJ dCBpcyBsaWtlbHkgY29ubmVjdGVkIG9ubHkgdG8KKwkgKiBaU1AgYW5kIGluYWNjZXNzaWJsZSB0 byB0aGUgbWFpbiBDUFUuCisJICovCisJW1pYX0NMS19BQkJfV0NMS10gICAgICAgICA9IEdBVEUo ImFiYi13Y2xrIiwgY2xrX3Vua25vd24sIDB4MTQ0LCAxLCAwKSwKK307CisKK3N0YXRpYyBjb25z dCB1bnNpZ25lZCBpbnQgengyOTc1MjB2M190b3BfZXhwb3J0c1tdID0geworCVtaWDI5NzUyMFYz X00wX1dDTEtdID0JCVpYX0NMS19NMF9NVVgsCisJW1pYMjk3NTIwVjNfU1JBTTFfUENMS10gPQla WF9DTEtfU1JBTTFfUENMSywKKwlbWlgyOTc1MjBWM19TUkFNMl9QQ0xLXSA9CVpYX0NMS19TUkFN Ml9QQ0xLLAorCVtaWDI5NzUyMFYzX1VBUlQwX1dDTEtdID0JWlhfQ0xLX1VBUlQwX1dDTEssCisJ W1pYMjk3NTIwVjNfVUFSVDBfUENMS10gPQlaWF9DTEtfVUFSVDBfUENMSywKKwlbWlgyOTc1MjBW M19JMkMwX1dDTEtdID0JWlhfQ0xLX0kyQzBfV0NMSywKKwlbWlgyOTc1MjBWM19JMkMwX1BDTEtd ID0JWlhfQ0xLX0kyQzBfUENMSywKKwlbWlgyOTc1MjBWM19SVENfV0NMS10gPQkJWlhfQ0xLX1JU Q19XQ0xLLAorCVtaWDI5NzUyMFYzX1JUQ19QQ0xLXSA9CQlaWF9DTEtfUlRDX1BDTEssCisJW1pY Mjk3NTIwVjNfTFBNX0dTTV9XQ0xLXSA9CVpYX0NMS19MUE1fR1NNX1dDTEssCisJW1pYMjk3NTIw VjNfTFBNX0dTTV9QQ0xLXSA9CVpYX0NMS19MUE1fR1NNX1BDTEssCisJW1pYMjk3NTIwVjNfTFBN X0xURV9XQ0xLXSA9CVpYX0NMS19MUE1fTFRFX1dDTEssCisJW1pYMjk3NTIwVjNfTFBNX0xURV9Q Q0xLXSA9CVpYX0NMS19MUE1fTFRFX1BDTEssCisJW1pYMjk3NTIwVjNfTFBNX1REX1dDTEtdID0J WlhfQ0xLX0xQTV9URF9XQ0xLLAorCVtaWDI5NzUyMFYzX0xQTV9URF9QQ0xLXSA9CVpYX0NMS19M UE1fVERfUENMSywKKwlbWlgyOTc1MjBWM19MUE1fV19XQ0xLXSA9CVpYX0NMS19MUE1fV19XQ0xL LAorCVtaWDI5NzUyMFYzX0xQTV9XX1BDTEtdID0JWlhfQ0xLX0xQTV9XX1BDTEssCisJW1pYMjk3 NTIwVjNfVElNRVJfVDA4X1dDTEtdID0JWlhfQ0xLX1RJTUVSX1QwOF9XQ0xLLAorCVtaWDI5NzUy MFYzX1RJTUVSX1QwOF9QQ0xLXSA9CVpYX0NMS19USU1FUl9UMDhfUENMSywKKwlbWlgyOTc1MjBW M19USU1FUl9UMDlfV0NMS10gPQlaWF9DTEtfVElNRVJfVDA5X1dDTEssCisJW1pYMjk3NTIwVjNf VElNRVJfVDA5X1BDTEtdID0JWlhfQ0xLX1RJTUVSX1QwOV9QQ0xLLAorCVtaWDI5NzUyMFYzX01Q TExdID0JCVpYX0NMS19UT01BVFJJWF9NUExMLAorCVtaWDI5NzUyMFYzX01QTExfRDVdID0JCVpY X0NMS19UT01BVFJJWF9NUExMX0Q1LAorCVtaWDI5NzUyMFYzX0RQTExdID0JCVpYX0NMS19UT01B VFJJWF9EUExMLAorCVtaWDI5NzUyMFYzX0dQTExdID0JCVpYX0NMS19UT01BVFJJWF9HUExMLAor CVtaWDI5NzUyMFYzX0dQTExfRDJdID0JCVpYX0NMS19UT01BVFJJWF9HUExMX0QyLAorCVtaWDI5 NzUyMFYzX0dBVEVEX09TQzI2TV0gPQlaWF9DTEtfVE9NQVRSSVhfT1NDMjZNLAorCVtaWDI5NzUy MFYzX1BNTV9XQ0xLXSA9CQlaWF9DTEtfUE1NX1dDTEssCisJW1pYMjk3NTIwVjNfUE1NX1BDTEtd ID0JCVpYX0NMS19QTU1fUENMSywKKwlbWlgyOTc1MjBWM19PVVQwX1dDTEtdID0JWlhfQ0xLX09V VDBfV0NMSywKKwlbWlgyOTc1MjBWM19PVVQxX1dDTEtdID0JWlhfQ0xLX09VVDFfV0NMSywKKwlb WlgyOTc1MjBWM19PVVQyX1dDTEtdID0JWlhfQ0xLX09VVDJfV0NMSywKKwlbWlgyOTc1MjBWM19P VVQzMktfV0NMS10gPQlaWF9DTEtfT1VUMzJLX1dDTEssCisJW1pYMjk3NTIwVjNfUk1JSVBIWV9X Q0xLXSA9CVpYX0NMS19STUlJUEhZX1dDTEssCisJW1pYMjk3NTIwVjNfVElNRVJfVDEyX1dDTEtd ID0JWlhfQ0xLX1RJTUVSX1QxMl9XQ0xLLAorCVtaWDI5NzUyMFYzX1RJTUVSX1QxMl9QQ0xLXSA9 CVpYX0NMS19USU1FUl9UMTJfUENMSywKKwlbWlgyOTc1MjBWM19USU1FUl9UMTNfV0NMS10gPQla WF9DTEtfVElNRVJfVDEzX1dDTEssCisJW1pYMjk3NTIwVjNfVElNRVJfVDEzX1BDTEtdID0JWlhf Q0xLX1RJTUVSX1QxM19QQ0xLLAorCVtaWDI5NzUyMFYzX1RJTUVSX1QxNF9XQ0xLXSA9CVpYX0NM S19USU1FUl9UMTRfV0NMSywKKwlbWlgyOTc1MjBWM19USU1FUl9UMTRfUENMS10gPQlaWF9DTEtf VElNRVJfVDE0X1BDTEssCisJW1pYMjk3NTIwVjNfVElNRVJfVDE1X1dDTEtdID0JWlhfQ0xLX1RJ TUVSX1QxNV9XQ0xLLAorCVtaWDI5NzUyMFYzX1RJTUVSX1QxNV9QQ0xLXSA9CVpYX0NMS19USU1F Ul9UMTVfUENMSywKKwlbWlgyOTc1MjBWM19USU1FUl9UMTZfV0NMS10gPQlaWF9DTEtfVElNRVJf VDE2X1dDTEssCisJW1pYMjk3NTIwVjNfVElNRVJfVDE2X1BDTEtdID0JWlhfQ0xLX1RJTUVSX1Qx Nl9QQ0xLLAorCVtaWDI5NzUyMFYzX1RJTUVSX1QxN19XQ0xLXSA9CVpYX0NMS19USU1FUl9UMTdf V0NMSywKKwlbWlgyOTc1MjBWM19USU1FUl9UMTdfUENMS10gPQlaWF9DTEtfVElNRVJfVDE3X1BD TEssCisJW1pYMjk3NTIwVjNfV0RUX1QxOF9XQ0xLXSA9CVpYX0NMS19XRFRfVDE4X1dDTEssCisJ W1pYMjk3NTIwVjNfV0RUX1QxOF9QQ0xLXSA9CVpYX0NMS19XRFRfVDE4X1BDTEssCisJW1pYMjk3 NTIwVjNfVVNJTTFfV0NMS10gPQlaWF9DTEtfVVNJTTFfV0NMSywKKwlbWlgyOTc1MjBWM19VU0lN MV9QQ0xLXSA9CVpYX0NMS19VU0lNMV9QQ0xLLAorCVtaWDI5NzUyMFYzX0FIQl9XQ0xLXSA9CQla WF9DTEtfQUhCX1dDTEssCisJW1pYMjk3NTIwVjNfQUhCX1BDTEtdID0JCVpYX0NMS19BSEJfUENM SywKKwlbWlgyOTc1MjBWM19VU0JfV0NMS10gPQkJWlhfQ0xLX1VTQl9XQ0xLLAorCVtaWDI5NzUy MFYzX1VTQl9QQ0xLXSA9CQlaWF9DTEtfVVNCX1BDTEssCisJW1pYMjk3NTIwVjNfSFNJQ19XQ0xL XSA9CVpYX0NMS19IU0lDX1dDTEssCisJW1pYMjk3NTIwVjNfSFNJQ19QQ0xLXSA9CVpYX0NMS19I U0lDX1BDTEssCisJW1pYMjk3NTIwVjNfR1NNXzMyS10gPQkJWlhfQ0xLX0dTTV8zMkssCisJW1pY Mjk3NTIwVjNfR1NNXzI2TV0gPQkJWlhfQ0xLX0dTTV8yNk0sCisJW1pYMjk3NTIwVjNfR1NNXzQ4 TV0gPQkJWlhfQ0xLX0dTTV80OE0sCisJW1pYMjk3NTIwVjNfR1NNXzEwNE1dID0JCVpYX0NMS19H U01fMTA0TSwKKwlbWlgyOTc1MjBWM19HU01fMTU2TV0gPQkJWlhfQ0xLX0dTTV8xNTZNLAorCVta WDI5NzUyMFYzX0FCQl9XQ0xLXSA9CQlaWF9DTEtfQUJCX1dDTEssCit9OworCitzdGF0aWMgY29u c3Qgc3RydWN0IHp4X2Nsa19kYXRhIHp4Mjk3NTIwdjNfdG9wY2xrX2RhdGEgPSB7CisJLmNsb2Nr cyA9IHp4Mjk3NTIwdjNfdG9wX2Nsb2NrcywKKwkubnVtX2Nsb2NrcyA9IEFSUkFZX1NJWkUoengy OTc1MjB2M190b3BfY2xvY2tzKSwKKwkuZXhwb3J0cyA9IHp4Mjk3NTIwdjNfdG9wX2V4cG9ydHMs CisJLm51bV9leHBvcnRzID0gQVJSQVlfU0laRSh6eDI5NzUyMHYzX3RvcF9leHBvcnRzKSwKK307 CisKK3N0YXRpYyBpbnQgY2xrX3p4Mjk3NTIwdjNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKK3sKKwljb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkICppZCA9IHBsYXRm b3JtX2dldF9kZXZpY2VfaWQocGRldik7CisKKwlpZiAoIWlkKQorCQlyZXR1cm4gLUVOT0RFVjsK KworCXJldHVybiB6eF9jbGtfY29tbW9uX3Byb2JlKCZwZGV2LT5kZXYsIHBkZXYtPmRldi5wYXJl bnQtPm9mX25vZGUsCisJCQkJICAgKGNvbnN0IHN0cnVjdCB6eF9jbGtfZGF0YSAqKWlkLT5kcml2 ZXJfZGF0YSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIGNs a196eDI5NzUyMHYzX2lkc1tdID0geworCXsKKwkJLm5hbWUgPSAiengyOTc1MjB2My10b3BjbGsi LAorCQkuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpJnp4Mjk3NTIwdjNfdG9wY2xrX2Rh dGEsCisJfSwKKwl7IH0KK307CitNT0RVTEVfREVWSUNFX1RBQkxFKHBsYXRmb3JtLCBjbGtfengy OTc1MjB2M19pZHMpOworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBjbGtfengyOTc1 MjB2MyA9IHsKKwkucHJvYmUgPSBjbGtfengyOTc1MjB2M19wcm9iZSwKKwkuZHJpdmVyID0gewor CQkubmFtZSA9ICJjbGstengyOTc1MjB2MyIsCisJfSwKKwkuaWRfdGFibGUgPSBjbGtfengyOTc1 MjB2M19pZHMsCit9OworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihjbGtfengyOTc1MjB2Myk7CisK K01PRFVMRV9BVVRIT1IoIlN0ZWZhbiBEw7ZzaW5nZXIgPHN0ZWZhbmRvZXNpbmdlckBnbWFpbC5j b20+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlpURSB6eDI5NzUyMHYzIGNsb2NrIGRyaXZlciIp OworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwoKLS0gCjIuNTUuMAoKCi0tIApsaW51eC1waHkgbWFp bGluZyBsaXN0CmxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo=