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 6D691D3B7EA for ; Tue, 9 Dec 2025 10:25:08 +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:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=1mC2CSdsbNWYO0NEcdTZUs55k4FBZmN0Tq5Aj4yjbug=; b=Fj5EFoG0HrR+ze RfkM6ENPP6Ctea0fYv+ZmwD5Yv1XYhoh5CIzktTvq/NU8LZvZ7JTpAqyq5kqqieXLfAOgjKDeIGs7 kWQxKDD+Ed63kC/9ndCpT99d3H4HQIrPZ04VGMMrXSdVsApwA9m1KiPa/I4doJ8///uVGM/9YIMUe lTF5hfz/dsRZxUZdqRB0XYT2q5+poRMx+CxtgZBLrfjMmr65/IAyzVGa5gAGHpYedDxO4CqvlWK2h fCxBBkWRJKmbrYH4+5/CJtzUozTdCuCinR/BbvEyXoQWdsppd37b/xhf7ocCMDv6n+Gb7DpfwesOJ qq2Zoz3LYG9bjja2IJRw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vSuty-0000000E6Y6-1yKv; Tue, 09 Dec 2025 10:25:02 +0000 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vSutu-0000000E6V0-47j2 for opensbi@lists.infradead.org; Tue, 09 Dec 2025 10:25:00 +0000 Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-7aa2170adf9so4471878b3a.0 for ; Tue, 09 Dec 2025 02:24:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765275898; x=1765880698; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oxXcfTC9yZmWGj4ltAgf3iqK3KVi8N1ZEMIKmeDxFZ4=; b=BN16clUHAZPTVYdRYeknxn78oQArBBAqo5VznjxUMcKrEqPluvJl4VE/9/7JGep7oJ H0Z4qBjXzrS3+y92RAUQLcMpcx0g0vBc2T/kvbsSI9n+I9I9NAYEk67T4sljIyD4XQV6 OlCC5dO9/rBiVb3gbNLY3XKsW/mHJen5UVLdfSUJlSSwwpzOq0oX4MQocJvU1cr1J2Le ffVyQwAs4dsY3i0kpuTScotzOgnScTrY85aTCM8Xxgo27pHWCTpyi34ty1R6LvwPqBeo 4+gmHnbTQ78a7GxvmRLUB/j0566wazQuh3K8gdv3g6aKGaaUVZ4ubNPA7n2Lci3IdsHo 2TmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765275898; x=1765880698; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=oxXcfTC9yZmWGj4ltAgf3iqK3KVi8N1ZEMIKmeDxFZ4=; b=vcnW24xv09+aE4Q+ioLnzutR/UhNAegCJxdk++OX5jkHm+onUrg++BW5QeUs0Z4GlI flsZtv6D3lVZwZx2meKpNFvBBnnlS9iqNBN3NtSHEdy1Dz/MFIC1NkD8za/QUn9P0gZT 2LF+taiYvRw/fCugImsVtgy3dvn2wOi3NtWO/ionlEjaz0qjJ40Bq7mBKxNhTDgnXvvD xEMyZf1I0koygeJAUQoLzI16bz7ICazW91QQ5yshKO/uW7QFr1U6ZA1DuRP+ilmXh064 VXrfykFi7sCloyZpKoO0qFUuaVeCcIaZDavXpFxXX6gC4KjPxEg+ilHzC0xDZozVT2gp GOmg== X-Gm-Message-State: AOJu0Yw5vBCZu/hlTtesQQMor52kAwsyd+rxL2nTThP9ZAU8CgztOPKy BQP1Gp/MqIKVbsFcOgaKEL+87APYfP7q99lpiaXLin4jmiTuvNU2jWB30c8XfmHI X-Gm-Gg: ASbGncsbNXqWsExn5mFUFNUNlA1zDFkpjFuHTJ9J6r4hf9p7iNrdAoalren4zGrBL/M dA71LCvGHAikfPigfiKTONxdVkCrbJQG6ULaoLcCe+ZZbNZdgxRoKwoXifFXoNF8T64bMAfuMRD oX1bIT61qyDsva4bbjLIeUas+uIp5JkJ2O7ZnIzfpDUioTZEprMJl/WJQkeWcZAf3SkOQqsC94h BlS4VkKwvd00gCMY5bcF9qIc95iclKDDjeOaOrnp3vYCDYpIf97SQMEZceBjHAoW2GH6yy3gn9t 3fv9mOHk6zMfP2kLLxG+BwGCp8MvGsUmZWJ8xtI1MX8+Hz/5ZqqxfUgtxkkIkIMMsv+vZPv+s7Y q7ZKma/vujZIyexNX1sYoVJQEAABANhBAxsJpGmUrHqylthAyv8myEgzks91UsRTAjGu9D55ReN SFs/sn/JV8WYltGCXpYStpV2Q= X-Google-Smtp-Source: AGHT+IGr/FxENGvho3aiOvub0tqyFRi9kjB23Z2T2/OmOTjvNdVc+P/gj7M+h/GKILTz6i3cDPJkJA== X-Received: by 2002:a05:6a20:2589:b0:350:d523:80a4 with SMTP id adf61e73a8af0-36617ec8b37mr12302466637.28.1765275897440; Tue, 09 Dec 2025 02:24:57 -0800 (PST) Received: from m91p.airy.home ([172.92.174.155]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29dae49ca1esm149302135ad.2.2025.12.09.02.24.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 02:24:56 -0800 (PST) From: Bo Gan To: opensbi@lists.infradead.org Cc: linmin@eswincomputing.com, pinkesh.vaghela@einfochips.com, gaohan@iscas.ac.cn, samuel@sholland.org, wangxiang@iscas.ac.cn Subject: [PATCH v4 5/5] platform: generic: eswin: add EIC7700 Date: Tue, 9 Dec 2025 02:22:46 -0800 Message-Id: <20251209102246.1161-6-ganboing@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251209102246.1161-1-ganboing@gmail.com> References: <20251209102246.1161-1-ganboing@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251209_022459_059474_79948596 X-CRM114-Status: GOOD ( 32.55 ) X-BeenThere: opensbi@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "opensbi" Errors-To: opensbi-bounces+opensbi=archiver.kernel.org@lists.infradead.org SW5pdGlhbCBwbGF0Zm9ybSBzdXBwb3J0IGZvciBFU1dJTiBDb21wdXRpbmcgRUlDNzcwMCBiYXNl ZCBvbiBwdWJsaWMgU29DCmRhdGFzaGVldFsxXSBhbmQgdGVzdGVkIG9uIEhpRml2ZSBQcmVtaWVy IFA1NTAuIFZlbmRvciBVLWJvb3QvTGludXggYm9vdHMKZmluZSwgYW5kIEkndmUgdGVzdGVkIEdl ZWtiZW5jaCA2LjUuMCBQcmV2aWV3IGFuZCBnb3Qgc2NvcmVzIG9uIHBhciB3aXRoCnRoZSB2ZW5k b3IgT3BlblNCSS4gU3lzdGVtIHNodXRkb3duIGlzIG5vdCBpbXBsZW1lbnRlZCBkdWUgdG8gdGhl IGxhY2sgb2YKcHVibGljIGRvYyByZWdhcmRpbmcgdGhlIFVBUlQgY29tbXVuaWNhdGlvbiBwcm90 b2NvbCBiZXR3ZWVuIHRoZSBTb0MgYW5kCnRoZSBvbmJvYXJkIEJNQywgd2hpY2ggY29udHJvbHMg QVRYIHBvd2VyIG9uIEhpRml2ZSBQNTUwIFsyXS4KClRoZSBmaWxlcyBhbmQgZnVuY3Rpb25zIGFy ZSBpbnRlbnRpb25hbGx5IG5hbWVkIGFzIGVpYzc3MHggaW4gbWFueSBwbGFjZXMKZm9yIGZ1dHVy ZSBlbmhhbmNlbWVudHMgdG8gc3VwcG9ydCB0aGUgMiBkaWUgdmVyc2lvbiBvZiB0aGUgc2FtZSBT b0MsCm5hbWVseSBFSUM3NzAyLCBzZWVuIG9uIERDLVJPTUEgQUkgUEMgRk1MMTNWMDMgWzNdLiBU aGlzIHBhdGNoIHNldCBvbmx5CmRlYWxzIHdpdGggdGhlIHNpbmdsZSBkaWUgdmVyc2lvbiwgYW5k IHRoZSBhc3N1bXB0aW9uIGlzIHdlIGNhbiBiZSBlaXRoZXIKZGllIHdpdGggaWQ9MCBvciBpZD0x LCBidXQgdGhlcmUncyBvbmx5IGEgc2luZ2xlIGRpZSBpbiB0aGUgc3lzdGVtLCBvciB3ZQphcmUg b25seSB1c2luZyBhIHNpbmdsZSBkaWUgb3V0IG9mIDIuIEhvd2V2ZXIsIHRoZSB3YXkgdGhlIFNv QyBoYW5kbGVzIDItCmRpZSBncmVhdGx5IGFmZmVjdHMgaG93IHdlIGNvbmZpZ3VyZSBpdCBpbiBh IDEtZGllIHNldHVwLiBFSUM3NzBYIGFkZHJlc3MKbWFwIGhhcyBkaWUgMC8xIG1lbW9yeSByZWdp b25zIGludGVybGVhdmVkIChzZWUgY29tbWVudHMgaW4gZWljNzcweC5jKS4KSWYgb25seSAxIGRp ZSBpcyBjb25uZWN0ZWQgb3IgYWN0aXZlLCBpdCBjcmVhdGVzIGhvbGVzIGluIHRoZSBhZGRyZXNz IG1hcApmb3IgdGhvc2UgcmVnaW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoZSByZW1vdGUgZGllLiBX aGVuIHNwZWN1bGF0aXZlLQpleGVjdXRpb24gb3IgSFcgcHJlZmV0Y2hlciB0b3VjaGVzIGRhdGEt Y2FjaGVhYmxlIHJlZ2lvbnMgdGhhdCBoYXBwZW4gdG8KZmFsbCBpbnRvIHRob3NlIGhvbGVzLCBp dCBjYW4gdHJpZ2dlciBidXMgZXJyb3IuIFNwZWNpZmljYWxseToKCiAtIFJlbW90ZSAobm9uLWV4 aXN0ZW50KSBkaWUgTDMgemVybyBkZXZpY2UKIC0gUmVtb3RlIChub24tZXhpc3RlbnQpIGRpZSBj YWNoZWQgbWVtb3J5IHJlZ2lvbgogLSBPdGhlciBob2xlcyBpbiBNZW1vcnkgUG9ydAoKVG8gbWFr ZSBtYXR0ZXJzIHdvcnNlLCBFSUM3NzBYIGRvZXNuJ3QgaGF2ZSBjYWNoZSBjb2hlcmVudCBETUEs IGFuZCBkdWUKdG8gdGhlIGZhY3QgdGhhdCB0aGUgUDU1MCBjb3JlIGxhY2tzIFN2cGJtdCwgdGhl IFNvQyBtYXBzIG1haW4gbWVtb3J5CnR3aWNlIGFzIGRpZmZlcmVudCByZWdpb25zLCBzbyBpdCBj YW4gYnlwYXNzIGNhY2hlIGFuZCBmZXRjaCB0aGUgZGF0YQpkaXJlY3RseSBmcm9tIG1lbW9yeS4g SW4gYWRkcmVzcyBzcGFjZSwgd2UgaGF2ZSB0d28gbWVtb3J5IHJlZ2lvbnMsIG9uZQphcyBjYWNo ZWQsIHRoZSBvdGhlciBhcyB1bmNhY2hlZC4gVGh1cywgd2UgYWxzbyBuZWVkIGFuIGV4dHJhIFBN UCBlbnRyeQp0byBwcm90ZWN0IE9wZW5TQkkgYmxvYiBmcm9tIHRoZSB1bmNhY2hlZCB3aW5kb3cu IFRvIGRvIHRoaXMsIHBsYXRmb3JtCmNvZGUgcmVxdWlyZXMgc2luZ2xlX2Z3X3JlZ2lvbiwgb3Ro ZXJ3aXNlLCB3ZSdsbCBydW4gb3V0IG9mIFBNUCBlbnRyaWVzLgoKRUlDNzcwWCBhbHNvIGhhdmUg c2V2ZXJhbCBmZWF0dXJlIGRpc2FibGUvZW5hYmxlIENTUnMgYWNjZXNzaWJsZSBpbiBNCm1vZGUu IEJ5IGRlZmF1bHQgbWFueSBjb3JlIGZlYXR1cmVzIHN1Y2ggYXMgc3BlY3VsYXRpb24gYW5kIEhX IHByZWZldGNoCmFyZSBkaXNhYmxlZCwgYW5kIE0gbW9kZSBzb2Z0d2FyZSBpcyByZXNwb25zaWJs ZSBvZiBlbmFibGluZy4gSGVuY2UsCmludHJvZHVjZSA0IG5ldyBidWlsZCB0aW1lIHR1bmFibGUg cGFyYW1ldGVycyB0byBLY29uZmlnLCB3aGljaCByZWZsZWN0cwp0aGUgdmFsdWVzIGdldCB1cGRh dGVkIHRvIHRob3NlIENTUnM6CiAtIEVTV0lOX0VJQzc3MFhfRkVBVDBfQ0ZHCiAtIEVTV0lOX0VJ Qzc3MFhfRkVBVDFfQ0ZHCiAtIEVTV0lOX0VJQzc3MFhfTDFfSFdQRl9DRkcKIC0gRVNXSU5fRUlD NzcwWF9MMl9IV1BGX0NGRwoKVGhlIGRlZmF1bHQgdmFsdWVzIGFyZSBzb21ld2hhdCBvcHRpbWFs IGZvciBnZW5lcmljIHdvcmtsb2Fkcy4gVGhleSBhcmUKZHVtcGVkIHdoZW4gcnVubmluZyBTaUZp dmUncyB2ZW5kb3IgT3BlblNCSSwgYW5kIGluIGFkZGl0aW9uLCB3aXRoIG15Cm93biB0dW5pbmcg dG8gYWRkcmVzcyB0aGUgcGVyZiByZWdyZXNzaW9uIHJlcG9ydGVkIGJ5IGRybXBlZyBbNF0KClRv IGJ1aWxkIHRoZSBmaXJtd2FyZSt1LWJvb3QgYmxvYiwgVXNlIHRoZSBmb2xsb3dpbmcsIGFuZCBk b2NzIFs1XSBmb3IKdGVzdGluZyBpdCB3aXRoIFVBUlQgYm9vdCB3aXRob3V0IGZsYXNoaW5nOgoK bWFrZSBGV19URVhUX1NUQVJUPTB4ODAwMDAwMDAgXAogICAgIEZXX1BBWUxPQURfT0ZGU0VUPTB4 MjAwMDAwIFwKICAgICBGV19QQVlMT0FEX1BBVEg9dS1ib290LW5vZHRiLmJpbiBcCiAgICAgRldf UEFZTE9BRF9GRFRfQUREUj0weGY4MDAwMDAwIFwKICAgICBGV19GRFRfUEFUSD11LWJvb3QuZHRi CgpbMV0gaHR0cHM6Ly9naXRodWIuY29tL2Vzd2luY29tcHV0aW5nL0VJQzc3MDBYLVNvQy1UZWNo bmljYWwtUmVmZXJlbmNlLU1hbnVhbApbMl0gaHR0cHM6Ly93d3cuc2lmaXZlLmNvbS9ib2FyZHMv aGlmaXZlLXByZW1pZXItcDU1MCNkb2N1bWVudGF0aW9uClszXSBodHRwczovL2dpdGh1Yi5jb20v Z2VlcmxpbmdndXkvc2JjLXJldmlld3MvaXNzdWVzLzgyCls0XSBodHRwczovL2ZvcnVtcy5zaWZp dmUuY29tL3QvbG93LTEtY29yZS1zdHJlYW0tYmFuZHdpZHRoLzcyNzQvMTUKWzVdIGh0dHBzOi8v Z2l0aHViLmNvbS9nYW5ib2luZy9FSUM3NzB4LURvY3MvYmxvYi9tYWluL3A1NTAvYm9vdGNoYWlu L1VBUlQtQm9vdC5tZAoKU2lnbmVkLW9mZi1ieTogQm8gR2FuIDxnYW5ib2luZ0BnbWFpbC5jb20+ Ci0tLQogcGxhdGZvcm0vZ2VuZXJpYy9LY29uZmlnICAgICAgICAgICAgICAgICB8ICAgNSArCiBw bGF0Zm9ybS9nZW5lcmljL2NvbmZpZ3MvZGVmY29uZmlnICAgICAgIHwgICAxICsKIHBsYXRmb3Jt L2dlbmVyaWMvZXN3aW4vS2NvbmZpZyAgICAgICAgICAgfCAgMjkgKysKIHBsYXRmb3JtL2dlbmVy aWMvZXN3aW4vZWljNzcweC5jICAgICAgICAgfCAzOTggKysrKysrKysrKysrKysrKysrKysrKysK IHBsYXRmb3JtL2dlbmVyaWMvZXN3aW4vb2JqZWN0cy5tayAgICAgICAgfCAgMTEgKwogcGxhdGZv cm0vZ2VuZXJpYy9pbmNsdWRlL2Vzd2luL2VpYzc3MHguaCB8ICA3MyArKysrKwogNiBmaWxlcyBj aGFuZ2VkLCA1MTcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHBsYXRmb3JtL2dl bmVyaWMvZXN3aW4vS2NvbmZpZwogY3JlYXRlIG1vZGUgMTAwNjQ0IHBsYXRmb3JtL2dlbmVyaWMv ZXN3aW4vZWljNzcweC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGxhdGZvcm0vZ2VuZXJpYy9lc3dp bi9vYmplY3RzLm1rCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGxhdGZvcm0vZ2VuZXJpYy9pbmNsdWRl L2Vzd2luL2VpYzc3MHguaAoKZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvS2NvbmZpZyBi L3BsYXRmb3JtL2dlbmVyaWMvS2NvbmZpZwppbmRleCAyNWI4ODg2Yi4uMjk5ODE3YTMgMTAwNjQ0 Ci0tLSBhL3BsYXRmb3JtL2dlbmVyaWMvS2NvbmZpZworKysgYi9wbGF0Zm9ybS9nZW5lcmljL0tj b25maWcKQEAgLTkyLDcgKzkyLDEyIEBAIGNvbmZpZyBQTEFURk9STV9TUEFDRU1JVF9LMQogCXNl bGVjdCBGRFRfSFNNX1NQQUNFTUlUCiAJZGVmYXVsdCBuCiAKK2NvbmZpZyBQTEFURk9STV9FU1dJ Tl9FSUM3NzBYCisJYm9vbCAiRVNXSU4gRUlDNzcwWCBzdXBwb3J0IgorCWRlZmF1bHQgbgorCiBz b3VyY2UgIiQoT1BFTlNCSV9TUkNfRElSKS9wbGF0Zm9ybS9nZW5lcmljL2FuZGVzL0tjb25maWci Citzb3VyY2UgIiQoT1BFTlNCSV9TUkNfRElSKS9wbGF0Zm9ybS9nZW5lcmljL2Vzd2luL0tjb25m aWciCiBzb3VyY2UgIiQoT1BFTlNCSV9TUkNfRElSKS9wbGF0Zm9ybS9nZW5lcmljL3RoZWFkL0tj b25maWciCiAKIGVuZGlmCmRpZmYgLS1naXQgYS9wbGF0Zm9ybS9nZW5lcmljL2NvbmZpZ3MvZGVm Y29uZmlnIGIvcGxhdGZvcm0vZ2VuZXJpYy9jb25maWdzL2RlZmNvbmZpZwppbmRleCAzODk2YjBl MC4uODY4YTQzNjIgMTAwNjQ0Ci0tLSBhL3BsYXRmb3JtL2dlbmVyaWMvY29uZmlncy9kZWZjb25m aWcKKysrIGIvcGxhdGZvcm0vZ2VuZXJpYy9jb25maWdzL2RlZmNvbmZpZwpAQCAtMTEsNiArMTEs NyBAQCBDT05GSUdfUExBVEZPUk1fU1RBUkZJVkVfSkg3MTEwPXkKIENPTkZJR19QTEFURk9STV9U SEVBRD15CiBDT05GSUdfUExBVEZPUk1fTUlQU19QODcwMD15CiBDT05GSUdfUExBVEZPUk1fU1BB Q0VNSVRfSzE9eQorQ09ORklHX1BMQVRGT1JNX0VTV0lOX0VJQzc3MFg9eQogQ09ORklHX0ZEVF9D QUNIRT15CiBDT05GSUdfRkRUX0NBQ0hFX1NJRklWRV9DQ0FDSEU9eQogQ09ORklHX0ZEVF9DUFBD PXkKZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvZXN3aW4vS2NvbmZpZyBiL3BsYXRmb3Jt L2dlbmVyaWMvZXN3aW4vS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MC4uODRkMGY0M2EKLS0tIC9kZXYvbnVsbAorKysgYi9wbGF0Zm9ybS9nZW5lcmljL2Vzd2luL0tj b25maWcKQEAgLTAsMCArMSwyOSBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlCisKK2NvbmZpZyBFU1dJTl9FSUM3NzBYX0ZFQVQwX0NGRworCWludCAiRVNXSU4gRUlD NzcwMFggRmVhdHVyZSBEaXNhYmxlIDAgQ1NSIENvbmZpZ3VyYXRpb24iCisJZGVmYXVsdCAweDQw MDAKKwloZWxwCisJIENTUiBWYWx1ZSB0byBpbml0aWFsaXplIEVJQzc3MFhfRkVBVDAgKDB4N2Mx KSB3aXRoLgorCSBSZWZlciB0byBFSUM3NzBYIFNvQyBUUk0gZm9yIHJlY29tbWVuZGF0aW9ucy4K KworY29uZmlnIEVTV0lOX0VJQzc3MFhfRkVBVDFfQ0ZHCisJaW50ICJFU1dJTiBFSUM3NzAwWCBG ZWF0dXJlIERpc2FibGUgMSBDU1IgQ29uZmlndXJhdGlvbiIKKwlkZWZhdWx0IDB4ODAKKwloZWxw CisJIENTUiBWYWx1ZSB0byBpbml0aWFsaXplIEVJQzc3MFhfRkVBVDEgKDB4N2MyKSB3aXRoLgor CSBSZWZlciB0byBFSUM3NzBYIFNvQyBUUk0gZm9yIHJlY29tbWVuZGF0aW9ucy4KKworY29uZmln IEVTV0lOX0VJQzc3MFhfTDFfSFdQRl9DRkcKKwlpbnQgIkVTV0lOIEVJQzc3MDBYIEwxIEhXIFBy ZWZldGNoZXIgQ1NSIENvbmZpZ3VyYXRpb24iCisJZGVmYXVsdCAweDEwMDVjMWJlNjQ5CisJaGVs cAorCSBDU1IgVmFsdWUgdG8gaW5pdGlhbGl6ZSBFSUM3NzBYX0wxX0hXUEYgKDB4N2MzKSB3aXRo LgorCSBSZWZlciB0byBFSUM3NzBYIFNvQyBUUk0gZm9yIHJlY29tbWVuZGF0aW9ucy4KKworY29u ZmlnIEVTV0lOX0VJQzc3MFhfTDJfSFdQRl9DRkcKKwlpbnQgIkVTV0lOIEVJQzc3MDBYIEwyIEhX IFByZWZldGNoZXIgQ1NSIENvbmZpZ3VyYXRpb24iCisJZGVmYXVsdCAweDkyOWYKKwloZWxwCisJ IENTUiBWYWx1ZSB0byBpbml0aWFsaXplIEVJQzc3MFhfTDJfSFdQRiAoMHg3YzQpIHdpdGguCisJ IFJlZmVyIHRvIEVJQzc3MFggU29DIFRSTSBmb3IgcmVjb21tZW5kYXRpb25zLgpkaWZmIC0tZ2l0 IGEvcGxhdGZvcm0vZ2VuZXJpYy9lc3dpbi9laWM3NzB4LmMgYi9wbGF0Zm9ybS9nZW5lcmljL2Vz d2luL2VpYzc3MHguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uNzU4MjM0 MWUKLS0tIC9kZXYvbnVsbAorKysgYi9wbGF0Zm9ybS9nZW5lcmljL2Vzd2luL2VpYzc3MHguYwpA QCAtMCwwICsxLDM5OCBAQAorLyoKKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMjUgQm8gR2FuIDxnYW5ib2luZ0BnbWFpbC5j b20+CisgKgorICovCisKKyNpbmNsdWRlIDxwbGF0Zm9ybV9vdmVycmlkZS5oPgorI2luY2x1ZGUg PHNiaS9yaXNjdl9pby5oPgorI2luY2x1ZGUgPHNiaS9zYmlfY29uc29sZS5oPgorI2luY2x1ZGUg PHNiaS9zYmlfc3lzdGVtLmg+CisjaW5jbHVkZSA8c2JpL3NiaV9tYXRoLmg+CisjaW5jbHVkZSA8 c2JpL3NiaV9oYXJ0X3BtcC5oPgorI2luY2x1ZGUgPHNiaS9zYmlfaGFydF9wcm90ZWN0aW9uLmg+ CisjaW5jbHVkZSA8ZXN3aW4vZWljNzcweC5oPgorCitzdGF0aWMgc3RydWN0IHNiaV9oYXJ0X3By b3RlY3Rpb24gZXN3aW5fZWljNzcwMF9wbXBfcHJvdGVjdGlvbjsKKworc3RhdGljIGludCBlaWM3 NzB4X3N5c3RlbV9yZXNldF9jaGVjayh1MzIgdHlwZSwgdTMyIHJlYXNvbikKK3sKKwlzd2l0Y2gg KHR5cGUpIHsKKwljYXNlIFNCSV9TUlNUX1JFU0VUX1RZUEVfQ09MRF9SRUJPT1Q6CisJY2FzZSBT QklfU1JTVF9SRVNFVF9UWVBFX1dBUk1fUkVCT09UOgorCQlyZXR1cm4gMTsKKwlkZWZhdWx0Ogor CQlyZXR1cm4gMDsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGVpYzc3MHhfc3lzdGVtX3Jlc2V0KHUz MiB0eXBlLCB1MzIgcmVhc29uKQoreworCXN3aXRjaCAodHlwZSkgeworCWNhc2UgU0JJX1NSU1Rf UkVTRVRfVFlQRV9DT0xEX1JFQk9PVDoKKwljYXNlIFNCSV9TUlNUX1JFU0VUX1RZUEVfV0FSTV9S RUJPT1Q6CisJCXdyaXRlbChFSUM3NzBYX1NZU0NSR19SU1RfVkFMLCAodm9pZCAqKUVJQzc3MFhf U1lTQ1JHX1JTVCk7CisJfQorCisJc2JpX3ByaW50ZigiJXM6IFVuYWJsZSB0byByZXNldCBzeXN0 ZW1cbiIsIF9fZnVuY19fKTsKKwlzYmlfaGFydF9oYW5nKCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qg c2JpX3N5c3RlbV9yZXNldF9kZXZpY2UgZWljNzcweF9yZXNldCA9IHsKKwkubmFtZSA9ICJlaWM3 NzB4X3Jlc2V0IiwKKwkuc3lzdGVtX3Jlc2V0X2NoZWNrID0gZWljNzcweF9zeXN0ZW1fcmVzZXRf Y2hlY2ssCisJLnN5c3RlbV9yZXNldCA9IGVpYzc3MHhfc3lzdGVtX3Jlc2V0Cit9OworCisjZGVm aW5lIGFkZF9yb290X21lbV9jaGsoLi4uKSBkbyB7IFwKKwlyYyA9IHNiaV9kb21haW5fcm9vdF9h ZGRfbWVtcmFuZ2UoX19WQV9BUkdTX18pOyBcCisJaWYgKHJjKSBcCisJCXJldHVybiByYzsgXAor fSB3aGlsZSAoMCkKKworLyoqCisgKiBFSUM3NzAwIHNwZWNpYWwgYXJyYW5nZW1lbnQgb2YgUE1Q IGVudHJpZXM6CisgKgorICogV2UgaGF2ZSB0byB1c2UgZXh0cmEgUE1QcyB0byBibG9jayBkYXRh IGNhY2hlYWJsZSByZWdpb25zIHRoYXQKKyAqIHRoYXQgZG9lc24ndCBiZWxvbmcgdG8gdGhlIGN1 cnJlbnQgaGFydCdzIGRpZSBpbiBvcmRlciB0byBwcmV2ZW50CisgKiBzcGVjdWxhdGl2ZSBhY2Nl c3NlcyBvciBIVyBwcmVmZXRjaGVyIGZyb20gZ2VuZXJhdGluZyBidXMgZXJyb3I6CisgKgorICog CWJ1cyBlcnJvciBvZiBjYXVzZSBldmVudDogOSwgYWNjcnVlZDogMHgyMjAsCisgKglwaHlzaWNh bCBhZGRyZXNzOiAweDI0ZmZmZmZmYTAKKyAqCisgKiBUaGUgZGF0YSBjYWNoZWFibGUgcmVnaW9u cyAocGVyIGRhdGFzaGVldCkgaW5jbHVkZToKKyAqCisgKiAgIC0gWzB4MWEwMDAwMDAsICAgIDB4 MWE0MDAwMDApIC0tIERpZSAwIEwzIHplcm8gZGV2aWNlCisgKiAgIC0gWzB4M2EwMDAwMDAsICAg IDB4M2E0MDAwMDApIC0tIERpZSAxIEwzIHplcm8gZGV2aWNlCisgKiAgIC0gWzB4ODAwMDAwMDAs IDB4ODBfMDAwMDAwMDApIC0tIG1lbW9yeSBwb3J0CisgKgorICogVG8gbWFrZSB0aGUgYmxvY2tl ciBlZmZlY3RpdmUgZm9yIE0gbW9kZSB0b28sIHRoZSBleHRyYSBQTVBzIG5lZWQKKyAqIExPQ0sg Yml0IHRvIGJlIHNldCwgYW5kIG9uY2Ugc2V0LCB3ZSBjYW4ndCBjaGFuZ2UgdGhlbSBsYXRlci4K KyAqIFdlIGFsc28gaGF2ZSB0byB0byB1c2UgMSBleHRyYSBQTVAgdG8gcHJvdGVjdCBPcGVuU0JJ IGluIHVuY2FjaGVkCisgKiBtZW1vcnkuIEVJQzc3MFggbWFwcyBtYWluIG1lbW9yeSAoRFJBTSkg dHdpY2UgLS0gb25lIGluIG1lbW9yeQorICogcG9ydCAoY2FjaGVkKSwgdGhlIG90aGVyIGluIHN5 c3RlbSBwb3J0ICh1bmNhY2hlZCkuIFA1NTAgZG9lc24ndAorICogc3VwcG9ydCBTdnBibXQsIHNv IEVJQzc3MFggdXNlIHRoZSB1bmNhY2hlZCB3aW5kb3cgdG8gaGFuZGxlIERNQQorICogdGhhdCBh cmUgY2FjaGUgaW5jb2hlcmVudCAtLSBwcmV0dHkgbXVjaCBhbGwgcGVyaXBoZXJhbHMKKyAqCisg KiBGaW5hbCBQTVAgY29uZmlndXJhdGlvbjoKKyAqCisgKiBGcm9tIGRpZSAwIHBvaW50IG9mIHZp ZXcsIGJsb2NrCisgKiAgIC0gICAgICAgICBbMHgzYTAwMDAwMCwgICAgMHgzYTQwMDAwMCkgLS0g RGllIDEgTDMgemVybyBkZXZpY2UKKyAqICAgLSAgICAgIFsweDEwXzAwMDAwMDAwLCAweDgwXzAw MDAwMDAwKSAtLSBEaWUgMSBjYWNoZWQgbWVtICsgaG9sZXMKKyAqCisgKiBSb290IGRvbWFpbiBI YXJ0czoKKyAqICBQTVBbMF06IFsgICAweDgwMDAwMDAwLCAgICAweDgwMDgwMDAwKSBfX19fIEZp cm13YXJlIGluIGNhY2hlZCBtZW0KKyAqICBQTVBbMV06IFsweGMwXzAwMDAwMDAwLCAweGMwXzAw MDgwMDAwKSBfX19fIEZpcm13YXJlIGluIHVuY2FjaGVkCisgKiAgUE1QWzJdOiBbICAgMHgzYTAw MDAwMCwgICAgMHgzYTQwMDAwMCkgTF9fXyBEaWUgMSBMMyB6ZXJvIGRldmljZQorICogIFBNUFsz XTogWyAgICAweDIwMDAwMDAgICAgICAweDIwMTAwMDApIF9fX18gQ0xJTlQKKyAqICBQTVBbNF06 IFsgICAgICAgICAgMHgwLCAweDEwXzAwMDAwMDAwKSBfUldYIFA1NTAvU3lzdGVtL0RpZSAwIGNh Y2hlZCBtZW0KKyAqICBQTVBbNV06IDxGcmVlPgorICogIFBNUFs2XTogWyAgICAgICAgICAweDAs IDB4ODBfMDAwMDAwMDApIExfX18gUDU1MC9TeXN0ZW0vTWVtb3J5IFBvcnQKKyAqICBQTVBbN106 IFsgICAgIDB4MCwgMHhmZmZmZmZmZmZmZmZmZmZmXSBfUldYIEV2ZXJ5dGhpbmcKKyAqCisgKiBG cm9tIGRpZSAxIHBvaW50IG9mIHZpZXcsIGJsb2NrCisgKiAgIC0gICAgICAgICBbMHgxYTAwMDAw MCwgICAgMHgxYTQwMDAwMCkgLS0gRGllIDAgTDMgemVybyBkZXZpY2UKKyAqICAgLSAgICAgICAg IFsweDgwMDAwMDAwLCAweDIwXzAwMDAwMDAwKSAtLSBEaWUgMCBjYWNoZWQgbWVtICsgaG9sZXMK KyAqICAgLSAgICAgIFsweDMwXzAwMDAwMDAwLCAweDgwXzAwMDAwMDAwKSAtLSBvdGhlciBob2xl cyBpbiBNZW1vcnkgcG9ydAorICoKKyAqIFJvb3QgZG9tYWluIEhhcnRzOgorICogIFBNUFswXTog WzB4MjBfMDAwMDAwMDAsIDB4MjBfMDAwODAwMDApIF9fX18gRmlybXdhcmUgaW4gY2FjaGVkIG1l bQorICogIFBNUFsxXTogWzB4ZTBfMDAwMDAwMDAsIDB4ZTBfMDAwODAwMDApIF9fX18gRmlybXdh cmUgaW4gdW5jYWNoZWQKKyAqICBQTVBbMl06IFsgICAweDFhMDAwMDAwLCAgICAweDFhNDAwMDAw KSBMX19fIERpZSAwIEwzIHplcm8gZGV2CisgKiAgUE1QWzNdOiBbICAgMHgyMjAwMDAwMCAgICAg MHgyMjAxMDAwMCkgX19fXyBDTElOVAorICogIFBNUFs0XTogWyAgICAgICAgICAweDAsICAgIDB4 ODAwMDAwMDApIF9SV1ggRGllIDAvMSBQNTUwIGludGVybmFsCisgKiAgUE1QWzVdOiBbMHgyMF8w MDAwMDAwMCwgMHgzMF8wMDAwMDAwMCkgX1JXWCBEaWUgMSBjYWNoZWQgbWVtb3J5CisgKiAgUE1Q WzZdOiBbICAgICAgICAgIDB4MCwgMHg4MF8wMDAwMDAwMCkgTF9fXyBQNTUwL1N5c3RlbS9NZW1v cnkgUG9ydAorICogIFBNUFs3XTogWyAgICAgMHgwLCAweGZmZmZmZmZmZmZmZmZmZmZdIF9SV1gg RXZlcnl0aGluZworICoKKyAqIEVJQzc3MFggbWVtb3J5IHBvcnQgbWFwOgorICogUDU1MCBJbnRl cm5hbAorICogICDilJzilIAgMHgwMDAwXzAwMDAgLSAweDIwMDBfMDAwMCBkaWUgMCBpbnRlcm5h bAorICogICDilJTilIAgMHgyMDAwXzAwMDAgLSAweDQwMDBfMDAwMCBkaWUgMSBpbnRlcm5hbAor ICogU3lzdGVtIFBvcnQgMAorICogICDilJzilIAgMHg0MDAwXzAwMDAgLSAweDYwMDBfMDAwMCBk aWUgMCBsb3cgTU1JTworICogICDilJTilIAgMHg2MDAwXzAwMDAgLSAweDgwMDBfMDAwMCBkaWUg MSBsb3cgTU1JTworICogTWVtb3J5IFBvcnQKKyAqICAg4pSc4pSAICAgIDB4ODAwMF8wMDAwIC0g MHgxMF84MDAwXzAwMDAgZGllIDAgbWVtb3J5IChjYWNoZWQpCisgKiAgIOKUnOKUgCAweDIwXzAw MDBfMDAwMCAtIDB4MzBfMDAwMF8wMDAwIGRpZSAxIG1lbW9yeSAoY2FjaGVkKQorICogICDilJTi lIAgMHg0MF8wMDAwXzAwMDAgLSAweDYwXzAwMDBfMDAwMCBpbnRlcmxlYXZlZCBtZW1vcnkgKGNh Y2hlZCkKKyAqIFN5c3RlbSBQb3J0IDEKKyAqICAg4pSc4pSAIDB4ODBfMDAwMF8wMDAwIC0gMHhh MF8wMDAwXzAwMDAgZGllIDAgaGlnaCBNTUlPCisgKiAgIOKUnOKUgCAweGEwXzAwMDBfMDAwMCAt IDB4YzBfMDAwMF8wMDAwIGRpZSAxIGhpZ2ggTU1JTworICogICDilJzilIAgMHhjMF8wMDAwXzAw MDAgLSAweGQwXzAwMDBfMDAwMCBkaWUgMCBtZW1vcnkgKHVuY2FjaGVkKQorICogICDilJzilIAg MHhlMF8wMDAwXzAwMDAgLSAweGYwXzAwMDBfMDAwMCBkaWUgMSBtZW1vcnkgKHVuY2FjaGVkKQor ICogICDilJzilIAgMHgxMDBfMDAwMF8wMDAwIC0gMHgxMjBfMDAwMF8wMDAwIGludGVybGVhdmVk IG1lbW9yeSAodW5jYWNoZWQpCisgKiAgIOKUlOKUgCAuLi4KKyAqCisgKiBJbiBlYXJseV9pbml0 LCBhZGQgbWVtb3J5IHJlZ2lvbnMgc3VjaCB0aGF0IGxpYi8gY29kZSBoYXMgdGhlIGtub3dsZWRn ZQorICogb2YgYmxvY2tlZCByYW5nZXMuIFdoZW4gdGhlIGRyaXZlciBjb2RlIGluc2VydHMgbmV3 IHJlZ2lvbnMsIGxpYi8gY29kZQorICogY2FuIG9wdGltaXplIGF3YXkgdW5uZWNlc3Nhcnkgb25l cy4gTmV4dCwgaW4gZmluYWxfaW5pdCwgd2UgcHJvZ3JhbSB0aGUKKyAqIFBNUHMgdG8gYSBkZWZh dWx0IHN0YXRlIHRoYXQnbGwga2VlcCBvdXJzZWx2ZXMgZnVuY3Rpb25hbCAoQ0xJTlQvLi4uCisg KiBhY2Nlc3NpYmxlKS4gTGF0ZXIsIGluIHBtcF9jb25maWd1cmUsIGRvIHRoZSBhY3R1YWwgY29u ZmlndXJhdGlvbiBvZgorICogUE1QLCB1c2luZyBkb21haW4gbWVtb3J5IHJlZ2lvbnMgYW5kIHBl cm1pc3Npb25zLgorICovCisKK3N0YXRpYyBpbnQgZXN3aW5fZWljNzcwMF9lYXJseV9pbml0KGJv b2wgY29sZF9ib290KQoreworCXN0cnVjdCBzYmlfc2NyYXRjaCAqc2NyYXRjaCA9IHNiaV9zY3Jh dGNoX3RoaXNoYXJ0X3B0cigpOworCWludCByYzsKKworCWlmICghY29sZF9ib290KQorCQlyZXR1 cm4gZ2VuZXJpY19lYXJseV9pbml0KGNvbGRfYm9vdCk7CisKKwkvKiBFbmFibGUgYnVzIGJsb2Nr ZXIgKi8KKwl3cml0ZWwoMSwgKHZvaWQqKUVJQzc3MFhfVEw2NEQyRF9PVVQpOworCXdyaXRlbCgx LCAodm9pZCopRUlDNzcwWF9UTDI1NkQyRF9PVVQpOworCXdyaXRlbCgxLCAodm9pZCopRUlDNzcw WF9UTDI1NkQyRF9JTik7CisJYXNtIHZvbGF0aWxlICgiZmVuY2UgbywgcnciKTsKKworCS8qIEJs b2NrIGZpcm13YXJlIGluIHVuY2FjaGVkIG1lbW9yeSAqLworCWFkZF9yb290X21lbV9jaGsoRUlD NzcwWF9UT19VTkNBQ0hFRCgKKwkJCSBzY3JhdGNoLT5md19zdGFydCksCisJCQkgMVVMIDw8IGxv ZzJyb3VuZHVwKHNjcmF0Y2gtPmZ3X3NpemUpLAorCQkJIDFVTCA8PCBsb2cycm91bmR1cChzY3Jh dGNoLT5md19zaXplKSwKKwkJCShTQklfRE9NQUlOX01FTVJFR0lPTl9NX1JFQURBQkxFIHwKKwkJ CSBTQklfRE9NQUlOX01FTVJFR0lPTl9NX1dSSVRBQkxFIHwKKwkJCSBTQklfRE9NQUlOX01FTVJF R0lPTl9NX0VYRUNVVEFCTEUgfAorCQkJIFNCSV9ET01BSU5fTUVNUkVHSU9OX01NSU8gfAorCQkJ IFNCSV9ET01BSU5fTUVNUkVHSU9OX0ZXKSk7CisKKwkvKiBBbGxvdyBTVVJXIG9mIFA1NTAgKyBT eXN0ZW0gUG9ydCAqLworCWFkZF9yb290X21lbV9jaGsoMCwKKwkJCSBFSUM3NzBYX01FTVBPUlRf QkFTRSwKKwkJCSBFSUM3NzBYX01FTVBPUlRfQkFTRSwKKwkJCShTQklfRE9NQUlOX01FTVJFR0lP Tl9NTUlPIHwKKwkJCSBTQklfRE9NQUlOX01FTVJFR0lPTl9TSEFSRURfU1VSV19NUlcpKTsKKwor CWlmIChjdXJyZW50X2hhcnRfZGllKCkpIHsKKwkJLyogQWxsb3cgU1VSV1ggb2YgZGllIDEgY2Fj aGVkIG1lbW9yeSAqLworCQlhZGRfcm9vdF9tZW1fY2hrKEVJQzc3MFhfRDFfTUVNX0JBU0UsCisJ CQkJIEVJQzc3MFhfRDFfTUVNX1NJWkUsCisJCQkJIEVJQzc3MFhfRDFfTUVNX1NJWkUsCisJCQkJ KFNCSV9ET01BSU5fTUVNUkVHSU9OX01fUkVBREFCTEUgfAorCQkJCSBTQklfRE9NQUlOX01FTVJF R0lPTl9NX1dSSVRBQkxFIHwKKwkJCQkgU0JJX0RPTUFJTl9NRU1SRUdJT05fU1VfUldYKSk7CisJ fSBlbHNlIHsKKwkJLyogQWxsb3cgU1VSV1ggb2YgUDU1MCArIFN5c3RlbSBQb3J0ICsgZGllIDAg Y2FjaGVkIG1lbW9yeSAqLworCQlhZGRfcm9vdF9tZW1fY2hrKDAsCisJCQkJIEVJQzc3MFhfRDBf TUVNX0xJTUlULAorCQkJCSBFSUM3NzBYX0QwX01FTV9MSU1JVCwKKwkJCQkoU0JJX0RPTUFJTl9N RU1SRUdJT05fTV9SRUFEQUJMRSB8CisJCQkJIFNCSV9ET01BSU5fTUVNUkVHSU9OX01fV1JJVEFC TEUgfAorCQkJCSBTQklfRE9NQUlOX01FTVJFR0lPTl9TVV9SV1gpKTsKKwl9CisKKwkvKiBCbG9j ayBQNTUwICsgU3lzdGVtIFBvcnQgMCArIE1lbW9yeSBQb3J0IChlbmZvcmNlZCkgKi8KKwlhZGRf cm9vdF9tZW1fY2hrKDAsCisJCQkgRUlDNzcwWF9NRU1QT1JUX0xJTUlULAorCQkJIEVJQzc3MFhf TUVNUE9SVF9MSU1JVCwKKwkJCShTQklfRE9NQUlOX01FTVJFR0lPTl9NTUlPIHwKKwkJCSBTQklf RE9NQUlOX01FTVJFR0lPTl9FTkZfUEVSTUlTU0lPTlMpKTsKKworCXJjID0gc2JpX2hhcnRfcHJv dGVjdGlvbl9yZWdpc3RlcigmZXN3aW5fZWljNzcwMF9wbXBfcHJvdGVjdGlvbik7CisJaWYgKHJj KQorCQlyZXR1cm4gcmM7CisKKwlyZXR1cm4gZ2VuZXJpY19lYXJseV9pbml0KGNvbGRfYm9vdCk7 Cit9CisKKyNkZWZpbmUgUE1QX0ZXX1NUQVJUIDAKKyNkZWZpbmUgUE1QX0ZXX0NPVU5UIDIKKyNk ZWZpbmUgUE1QX1JFU0VSVkVEX0EgMgorI2RlZmluZSBQTVBfRlJFRV9BX1NUQVJUIDMKKyNkZWZp bmUgUE1QX0ZSRUVfQV9DT1VOVCAzCisjZGVmaW5lIFBNUF9SRVNFUlZFRF9CIDYKKyNkZWZpbmUg UE1QX0ZSRUVfQl9TVEFSVCA3CisjZGVmaW5lIFBNUF9GUkVFX0JfQ09VTlQgMQorCitzdGF0aWMg aW50IGVzd2luX2VpYzc3MDBfZmluYWxfaW5pdChib29sIGNvbGRfYm9vdCkKK3sKKwkvKioKKwkg KiBGb3IgYm90aCBkaWVzIGFmdGVyIGZpbmFsX2luaXQ6CisJICoKKwkgKiAgUE1QWzBdOiAgIFBy b3RlY3QgT3BlblNCSSBpbiBjYWNoZWQgbWVtb3J5CisJICogIFBNUFsxXTogICBQcm90ZWN0IE9w ZW5TQkkgaW4gdW5jYWNoZWQgbWVtb3J5CisJICogIFBNUFsyXTogICBCbG9jayByZW1vdGUgZGll IFA1NTAgTDMgWmVybyBEZXZpY2UKKwkgKiAgUE1QWzMtNV06IDxGcmVlIHJhbmdlcyBBPgorCSAq ICBQTVBbNV06ICAgVGVtcG9yYXJ5IGVuYWJsZSBQNTUwICsgU3lzdGVtIFBvcnQKKwkgKiAgUE1Q WzZdOiAgIEJsb2NrIGFsbCBQNTUwICsgU3lzdGVtICsgTWVtb3J5IFBvcnQKKwkgKiAgUE1QWzct N106IDxGcmVlIHJhbmdlcyBCPgorCSAqLworCXN0cnVjdCBzYmlfZG9tYWluX21lbXJlZ2lvbiAq cmVnOworCXVuc2lnbmVkIGludCBwbXBfaWR4ID0gUE1QX0ZXX1NUQVJULAorCQkgICAgIHBtcF9t YXggPSBQTVBfRldfU1RBUlQgKyBQTVBfRldfQ09VTlQ7CisJaW50IHJjOworCisJaWYgKGNvbGRf Ym9vdCkKKwkJc2JpX3N5c3RlbV9yZXNldF9hZGRfZGV2aWNlKCZlaWM3NzB4X3Jlc2V0KTsKKwor CS8qKgorCSAqIERvIGdlbmVyaWNfZmluYWxfaW5pdCBzdHVmZiBmaXJzdCwgYmVjYXVzZSBpdCB0 b3VjaHMgRkRULgorCSAqIEFmdGVyIGZpbmFsX2luaXQsIHdlJ2xsIGJsb2NrIGVudGlyZSBtZW1v cnkgcG9ydCB3aXRoIHRoZQorCSAqIExPQ0sgYml0IHNldCwgd2hpY2ggbWVhbnMgd2UgY2FuJ3Qg YWNjZXNzIG1lbW9yeSBvdXRzaWRlCisJICogb2YgW2Z3X3N0YXJ0LCBmd19zdGFydCArIGZ3X3Np emUpLiBUaGUgRkRUIGNvdWxkIHZlcnkgd2VsbAorCSAqIHJlc2lkZSBvdXRzaWRlIG9mIGZpcm13 YXJlIHJlZ2lvbi4gTGF0ZXIsIHBtcF9jb25maWd1cmUoKQorCSAqIG1heSB1bmJsb2NrIGl0IHdp dGggc29tZSBwcmVjZWRpbmcgZW50cmllcyBmb3Igcm9vdCBkb21haW4KKwkgKiBoYXJ0cy4gSXQg bWF5IG5vdCB1bmJsb2NrIGl0LCBob3dldmVyLCBmb3Igbm9uLXJvb3QgaGFydHMuCisJICovCisJ cmMgPSBnZW5lcmljX2ZpbmFsX2luaXQoY29sZF9ib290KTsKKwlpZiAocmMpCisJCXJldHVybiBy YzsKKworCisJLyogUHJvY2VzcyBmaXJtd2FyZSByZWdpb25zICovCisJc2JpX2RvbWFpbl9mb3Jf ZWFjaF9tZW1yZWdpb24oJnJvb3QsIHJlZykgeworCQlpZiAoIVNCSV9ET01BSU5fTUVNUkVHSU9O X0lTX0ZJUk1XQVJFKHJlZy0+ZmxhZ3MpKQorCQkJY29udGludWU7CisKKwkJaWYgKHBtcF9pZHgg Pj0gcG1wX21heCkgeworCQkJc2JpX3ByaW50ZigiJXM6IGluc3VmZmljaWVudCBGVyBQTVAgZW50 cmllc1xuIiwKKwkJCQkgICBfX2Z1bmNfXyk7CisJCQlyZXR1cm4gU0JJX0VGQUlMOworCQl9CisJ CXBtcF9zZXQocG1wX2lkeCsrLCBzYmlfZG9tYWluX2dldF9vbGRwbXBfZmxhZ3MocmVnKSwKKwkJ CXJlZy0+YmFzZSwgcmVnLT5vcmRlcik7CisJfQorCisJcG1wX3NldChQTVBfUkVTRVJWRURfQSwg UE1QX0wsIEVJQzc3MFhfTDNfWkVST19SRU1PVEUsCisJCQkgICBsb2cycm91bmR1cChFSUM3NzBY X0wzX1pFUk9fU0laRSkpOworCS8qKgorCSAqIEVuYWJsZSBQNTUwIGludGVybmFsICsgU3lzdGVt IFBvcnQsIHNvIE9wZW5TQkkgY2FuIGFjY2VzcworCSAqIENMSU5UL1BMSUMvVUFSVC4gTWlnaHQg YmUgb3ZlcndyaXR0ZW4gaW4gcG1wX2NvbmZpZ3VyZS4KKwkgKi8KKwlwbXBfc2V0KFBNUF9GUkVF X0FfU1RBUlQgKyBQTVBfRlJFRV9BX0NPVU5UIC0gMSwgMCwgMCwKKwkJbG9nMnJvdW5kdXAoRUlD NzcwWF9NRU1QT1JUX0JBU0UpKTsKKworCXBtcF9zZXQoUE1QX1JFU0VSVkVEX0IsIFBNUF9MLCAw LAorCQlsb2cycm91bmR1cChFSUM3NzBYX01FTVBPUlRfTElNSVQpKTsKKworCS8qKgorCSAqIFRo ZXNlIG11c3QgY29tZSBhZnRlciB0aGUgc2V0dXAgb2YgUE1QLCBhcyB3ZSBhcmUgYWJvdXQgdG8K KwkgKiBlbmFibGUgc3BlY3VsYXRpb24gYW5kIEhXIHByZWZldGNoZXIgYml0cworCSAqLworCWNz cl93cml0ZShFSUM3NzBYX0NTUl9GRUFUMCwgQ09ORklHX0VTV0lOX0VJQzc3MFhfRkVBVDBfQ0ZH KTsKKwljc3Jfd3JpdGUoRUlDNzcwWF9DU1JfRkVBVDEsIENPTkZJR19FU1dJTl9FSUM3NzBYX0ZF QVQxX0NGRyk7CisJY3NyX3dyaXRlKEVJQzc3MFhfQ1NSX0wxX0hXUEYsIENPTkZJR19FU1dJTl9F SUM3NzBYX0wxX0hXUEZfQ0ZHKTsKKwljc3Jfd3JpdGUoRUlDNzcwWF9DU1JfTDJfSFdQRiwgQ09O RklHX0VTV0lOX0VJQzc3MFhfTDJfSFdQRl9DRkcpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBpbnQgZXN3aW5fZWljNzcwMF9wbXBfY29uZmlndXJlKHN0cnVjdCBzYmlfc2NyYXRjaCAqc2Ny YXRjaCkKK3sKKwlzdHJ1Y3Qgc2JpX2RvbWFpbiAqZG9tID0gc2JpX2RvbWFpbl90aGlzaGFydF9w dHIoKTsKKwlzdHJ1Y3Qgc2JpX2RvbWFpbl9tZW1yZWdpb24gKnJlZywgKnByZXYgPSBOVUxMOwor CXVuc2lnbmVkIGludCBwbXBfaWR4LCBwbXBfbWF4OworCXVuc2lnbmVkIGludCBpLCBqOworCisJ LyogUHJvY2VzcyB0aGUgZmlyc3QgZnJlZSByYW5nZSBBIFszLTVdICovCisJcG1wX2lkeCA9IFBN UF9GUkVFX0FfU1RBUlQsCisJcG1wX21heCA9IFBNUF9GUkVFX0FfU1RBUlQgKyBQTVBfRlJFRV9B X0NPVU5UOworCisJc2JpX2RvbWFpbl9mb3JfZWFjaF9tZW1yZWdpb25faWR4KGRvbSwgcmVnLCBp KSB7CisJCWlmIChTQklfRE9NQUlOX01FTVJFR0lPTl9JU19GSVJNV0FSRShyZWctPmZsYWdzKSkK KwkJCWNvbnRpbnVlOworCisJCS8qKgorCQkgKiBUaGlzIG11c3QgYmUgdGhlIG9uZSBibG9ja2lu ZyBQNTUwICsgU3lzdGVtIFBvcnQgKworCQkgKiBNZW1vcnkgUG9ydCB3ZSBzZXR1cCBpbiBlYXJs eV9pbml0LCBvciBhIHN1cGVyc2V0CisJCSAqIG9mIGl0LiBJZiBzZWVuLCBicmVhaywgYW5kIHBy b2dyYW0gdGhlIHJlc3QgaW4KKwkJICogZnJlZSByYW5nZSBCLgorCQkgKi8KKwkJaWYgKHJlZy0+ YmFzZSA9PSAwICYmCisJCSAgICByZWctPm9yZGVyID49IGxvZzJyb3VuZHVwKEVJQzc3MFhfTUVN UE9SVF9MSU1JVCkpCisJCQlicmVhazsKKworCQkvKioKKwkJICogUmVsYXhhdGlvbjoKKwkJICog VHJlYXQgYSBwcmV2aW91cyByZWdpb24gd2l0aCBTVVJXIGFzIFNVUldYIGlmIHRoZQorCQkgKiBj dXJyZW50IGhhcyBTVVJXWCwgYW5kIGN1cnJlbnQgcmVnaW9uIHdpdGggTU1JTworCQkgKiBpZiBw cmV2aW91cyBoYXMgTU1JTywgYW5kIHNlZSBpZiBpdCBjYW4gYmUgbWVyZ2VkLgorCQkgKiBUaGlz IHNhdmVzIDEgUE1QIGVudHJ5IG9uIGRpZSAwLworCQkgKi8KKwkJaWYgKHByZXYgJiYgc2JpX2Rv bWFpbl9tZW1yZWdpb25faXNfc3Vic2V0KHByZXYsIHJlZykgJiYKKwkJICAgIChyZWctPmZsYWdz IHwgU0JJX0RPTUFJTl9NRU1SRUdJT05fTU1JTykgPT0KKwkJICAgIChwcmV2LT5mbGFncyB8IFNC SV9ET01BSU5fTUVNUkVHSU9OX1NVX0VYRUNVVEFCTEUpKQorCQkJcG1wX2lkeC0tOworCisJCWlm IChwbXBfaWR4ID49IHBtcF9tYXgpCisJCQlnb3RvIG5vX21vcmVfcG1wOworCisJCXBtcF9zZXQo cG1wX2lkeCsrLCBzYmlfZG9tYWluX2dldF9vbGRwbXBfZmxhZ3MocmVnKSwKKwkJCXJlZy0+YmFz ZSwgcmVnLT5vcmRlcik7CisJCXByZXYgPSByZWc7CisJfQorCS8qIERpc2FibGUgdGhlIHJlc3Qg Ki8KKwl3aGlsZSAocG1wX2lkeCA8IHBtcF9tYXgpCisJCXBtcF9kaXNhYmxlKHBtcF9pZHgrKyk7 CisKKwkvKiBQcm9jZXNzIHRoZSBzZWNvbmQgZnJlZSByYW5nZSBCIFs3LTddICovCisJcG1wX2lk eCA9IFBNUF9GUkVFX0JfU1RBUlQsCisJcG1wX21heCA9IFBNUF9GUkVFX0JfU1RBUlQgKyBQTVBf RlJFRV9CX0NPVU5UOworCisJc2JpX2RvbWFpbl9mb3JfZWFjaF9tZW1yZWdpb25faWR4KGRvbSwg cmVnLCBqKSB7CisJCWlmIChpID49IGopCisJCQljb250aW51ZTsKKworCQlpZiAocG1wX2lkeCA+ PSBwbXBfbWF4KQorCQkJZ290byBub19tb3JlX3BtcDsKKworCQlwbXBfc2V0KHBtcF9pZHgrKywg c2JpX2RvbWFpbl9nZXRfb2xkcG1wX2ZsYWdzKHJlZyksCisJCQlyZWctPmJhc2UsIHJlZy0+b3Jk ZXIpOworCX0KKwkvKiBEaXNhYmxlIHRoZSByZXN0ICovCisJd2hpbGUgKHBtcF9pZHggPCBwbXBf bWF4KQorCQlwbXBfZGlzYWJsZShwbXBfaWR4KyspOworCisJc2JpX2hhcnRfcG1wX2ZlbmNlKCk7 CisJcmV0dXJuIDA7Citub19tb3JlX3BtcDoKKwlzYmlfcHJpbnRmKCIlczogaW5zdWZmaWNpZW50 IFBNUCBlbnRyaWVzXG4iLCBfX2Z1bmNfXyk7CisJcmV0dXJuIFNCSV9FRkFJTDsKK30KKworc3Rh dGljIHZvaWQgZXN3aW5fZWljNzcwMF9wbXBfdW5jb25maWd1cmUoc3RydWN0IHNiaV9zY3JhdGNo ICpzY3JhdGNoKQoreworCS8qIEVuYWJsZSBQNTUwIGludGVybmFsICsgU3lzdGVtIFBvcnQgKi8K KwlwbXBfc2V0KFBNUF9GUkVFX0FfU1RBUlQgKyBQTVBfRlJFRV9BX0NPVU5UIC0gMSwgMCwgMCwK KwkJbG9nMnJvdW5kdXAoRUlDNzcwWF9NRU1QT1JUX0JBU0UpKTsKKworCWZvciAodW5zaWduZWQg aW50IGkgPSAwOyBpIDwgUE1QX0ZSRUVfQV9DT1VOVCAtIDE7IGkrKykKKwkJcG1wX2Rpc2FibGUo aSArIFBNUF9GUkVFX0FfU1RBUlQpOworCisJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBQ TVBfRlJFRV9CX0NPVU5UOyBpKyspCisJCXBtcF9kaXNhYmxlKGkgKyBQTVBfRlJFRV9CX1NUQVJU KTsKK30KKworc3RhdGljIHN0cnVjdCBzYmlfaGFydF9wcm90ZWN0aW9uIGVzd2luX2VpYzc3MDBf cG1wX3Byb3RlY3Rpb24gPSB7CisJLm5hbWUgPSAiZWljNzcwMF9wbXAiLAorCS5yYXRpbmcgPSAt MVVMLAorCS5jb25maWd1cmUgPSBlc3dpbl9laWM3NzAwX3BtcF9jb25maWd1cmUsCisJLnVuY29u ZmlndXJlID0gZXN3aW5fZWljNzcwMF9wbXBfdW5jb25maWd1cmUsCit9OworCitzdGF0aWMgYm9v bCBlc3dpbl9laWM3NzAwX3NpbmdsZV9md19yZWdpb24odm9pZCkKK3sKKwlyZXR1cm4gdHJ1ZTsK K30KKworc3RhdGljIGludCBlc3dpbl9laWM3NzAwX3BsYXRmb3JtX2luaXQoY29uc3Qgdm9pZCAq ZmR0LCBpbnQgbm9kZW9mZiwKKwkJCQkJY29uc3Qgc3RydWN0IGZkdF9tYXRjaCAqbWF0Y2gpCit7 CisJZ2VuZXJpY19wbGF0Zm9ybV9vcHMuZWFybHlfaW5pdCA9IGVzd2luX2VpYzc3MDBfZWFybHlf aW5pdDsKKwlnZW5lcmljX3BsYXRmb3JtX29wcy5maW5hbF9pbml0ID0gZXN3aW5fZWljNzcwMF9m aW5hbF9pbml0OworCWdlbmVyaWNfcGxhdGZvcm1fb3BzLnNpbmdsZV9md19yZWdpb24gPSBlc3dp bl9laWM3NzAwX3NpbmdsZV9md19yZWdpb247CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNv bnN0IHN0cnVjdCBmZHRfbWF0Y2ggZXN3aW5fZWljNzcwMF9tYXRjaFtdID0geworCXsgLmNvbXBh dGlibGUgPSAiZXN3aW4sZWljNzcwMCIgfSwKKwl7IH0sCit9OworCitjb25zdCBzdHJ1Y3QgZmR0 X2RyaXZlciBlc3dpbl9laWM3NzAwID0geworCS5tYXRjaF90YWJsZSA9IGVzd2luX2VpYzc3MDBf bWF0Y2gsCisJLmluaXQgPSBlc3dpbl9laWM3NzAwX3BsYXRmb3JtX2luaXQsCit9OwpkaWZmIC0t Z2l0IGEvcGxhdGZvcm0vZ2VuZXJpYy9lc3dpbi9vYmplY3RzLm1rIGIvcGxhdGZvcm0vZ2VuZXJp Yy9lc3dpbi9vYmplY3RzLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi42 OTQyYTEwNwotLS0gL2Rldi9udWxsCisrKyBiL3BsYXRmb3JtL2dlbmVyaWMvZXN3aW4vb2JqZWN0 cy5tawpAQCAtMCwwICsxLDExIEBACisjCisjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDI1IEJvIEdhbiA8Z2FuYm9pbmdAZ21haWwu Y29tPgorIworCitjYXJyYXktcGxhdGZvcm1fb3ZlcnJpZGVfbW9kdWxlcy0kKENPTkZJR19QTEFU Rk9STV9FU1dJTl9FSUM3NzBYKSArPSBlc3dpbl9laWM3NzAwCitwbGF0Zm9ybS1vYmpzLSQoQ09O RklHX1BMQVRGT1JNX0VTV0lOX0VJQzc3MFgpICs9IGVzd2luL2VpYzc3MHgubworCitGV19QQVlM T0FEPXkKK0ZXX1BBWUxPQURfT0ZGU0VUPTB4MjAwMDAwCmRpZmYgLS1naXQgYS9wbGF0Zm9ybS9n ZW5lcmljL2luY2x1ZGUvZXN3aW4vZWljNzcweC5oIGIvcGxhdGZvcm0vZ2VuZXJpYy9pbmNsdWRl L2Vzd2luL2VpYzc3MHguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uOGNl MjMyODMKLS0tIC9kZXYvbnVsbAorKysgYi9wbGF0Zm9ybS9nZW5lcmljL2luY2x1ZGUvZXN3aW4v ZWljNzcweC5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI1IEJvIEdhbiA8Z2FuYm9p bmdAZ21haWwuY29tPgorICoKKyAqLworCisjaWZuZGVmIF9fRUlDNzcwWF9IX18KKyNkZWZpbmUg X19FSUM3NzBYX0hfXworCisvKiBDU1JzICovCisjZGVmaW5lIEVJQzc3MFhfQ1NSX0JSUFJFRElD VAkweDdjMAorI2RlZmluZSBFSUM3NzBYX0NTUl9GRUFUMAkweDdjMQorI2RlZmluZSBFSUM3NzBY X0NTUl9GRUFUMQkweDdjMgorI2RlZmluZSBFSUM3NzBYX0NTUl9MMV9IV1BGCTB4N2MzCisjZGVm aW5lIEVJQzc3MFhfQ1NSX0wyX0hXUEYJMHg3YzQKKworLyogSGFydCBJRCB0byBjb3JlL2RpZSBj b252ZXJzaW9uICovCisjZGVmaW5lIENQVV9DT1JFX0JJVFMJCTIKKyNkZWZpbmUgQ1BVX0NPUkVf TUFTSwkJKCgxIDw8IENQVV9DT1JFX0JJVFMpIC0gMSkKKyNkZWZpbmUgQ1BVX0RJRV9TSElGVAkJ Q1BVX0NPUkVfQklUUworI2RlZmluZSBDUFVfRElFX0JJVFMJCTEKKyNkZWZpbmUgQ1BVX0RJRV9N QVNLCQkoKDEgPDwgQ1BVX0RJRV9TSElGVCkgLSAxKQorCisjZGVmaW5lIGhhcnRfY29yZShpKQkJ KChpKSAmIENQVV9DT1JFX01BU0spCisjZGVmaW5lIGhhcnRfZGllKGkpCQkoKChpKSA+PiBDUFVf RElFX1NISUZUKSAmIENQVV9ESUVfTUFTSykKKyNkZWZpbmUgY3VycmVudF9oYXJ0X2NvcmUoKQlo YXJ0X2NvcmUoY3VycmVudF9oYXJ0aWQoKSkKKyNkZWZpbmUgY3VycmVudF9oYXJ0X2RpZSgpCWhh cnRfZGllKGN1cnJlbnRfaGFydGlkKCkpCisKKy8qIFA1NTAgSW50ZXJuYWwgYW5kIFN5c3RlbSBQ b3J0IDAgKi8KKyNkZWZpbmUgRUlDNzcwWF9QNTUwSU5UX1NJWkUJMHgyMDAwMDAwMFVMCisjZGVm aW5lIEVJQzc3MFhfUDU1MElOVF9CQVNFKGQpCSgwVUwgKyBFSUM3NzBYX1A1NTBJTlRfU0laRSAq IChkKSkKKyNkZWZpbmUgRUlDNzcwWF9QNTUwSU5UX0xPQ0FMCUVJQzc3MFhfUDU1MElOVF9CQVNF KGN1cnJlbnRfaGFydF9kaWUoKSkKKyNkZWZpbmUgRUlDNzcwWF9UTDY0RDJEX09VVAkoRUlDNzcw WF9QNTUwSU5UX0xPQ0FMICsgMHgyMDAwMDApCisjZGVmaW5lIEVJQzc3MFhfVEwyNTZEMkRfT1VU CShFSUM3NzBYX1A1NTBJTlRfTE9DQUwgKyAweDIwMjAwMCkKKyNkZWZpbmUgRUlDNzcwWF9UTDI1 NkQyRF9JTgkoRUlDNzcwWF9QNTUwSU5UX0xPQ0FMICsgMHgyMDQwMDApCisjZGVmaW5lIEVJQzc3 MFhfTDNfWkVST19TSVpFCTB4NDAwMDAwVUwKKyNkZWZpbmUgRUlDNzcwWF9MM19aRVJPX0JBU0Uo ZCkJKEVJQzc3MFhfUDU1MElOVF9CQVNFKGQpICsgMHgxYTAwMDAwMCkKKyNkZWZpbmUgRUlDNzcw WF9MM19aRVJPX0xPQ0FMCUVJQzc3MFhfTDNfWkVST19CQVNFKGN1cnJlbnRfaGFydF9kaWUoKSkK KyNkZWZpbmUgRUlDNzcwWF9MM19aRVJPX1JFTU9URQlFSUM3NzBYX0wzX1pFUk9fQkFTRSgxIC0g Y3VycmVudF9oYXJ0X2RpZSgpKQorCisjZGVmaW5lIEVJQzc3MFhfU1lTUE9SVF9TSVpFCTB4MjAw MDAwMDBVTAorI2RlZmluZSBFSUM3NzBYX1NZU1BPUlRfQkFTRShkKQkoMHg0MDAwMDAwMFVMICsg RUlDNzcwWF9TWVNQT1JUX1NJWkUgKiAoZCkpCisjZGVmaW5lIEVJQzc3MFhfU1lTUE9SVF9MT0NB TAlFSUM3NzBYX1NZU1BPUlRfQkFTRShjdXJyZW50X2hhcnRfZGllKCkpCisjZGVmaW5lIEVJQzc3 MFhfU1lTQ1JHCQkoRUlDNzcwWF9TWVNQT1JUX0xPQ0FMICsgMHgxMTgyODAwMFVMKQorI2RlZmlu ZSBFSUM3NzBYX1NZU0NSR19SU1QJKEVJQzc3MFhfU1lTQ1JHICsgMHgzMDBVTCkKKyNkZWZpbmUg RUlDNzcwWF9TWVNDUkdfUlNUX1ZBTAkweDFBQzBGRkU2VUwKKworLyogTWVtb3J5IFBvcnRzICov CisjZGVmaW5lIEVJQzc3MFhfTUVNUE9SVF9CQVNFCTB4MDA4MDAwMDAwMFVMIC8vIDJHCisjZGVm aW5lIEVJQzc3MFhfTUVNUE9SVF9TSVpFCTB4N2Y4MDAwMDAwMFVMIC8vICs1MTBHCisjZGVmaW5l IEVJQzc3MFhfTUVNUE9SVF9MSU1JVAkoRUlDNzcwWF9NRU1QT1JUX0JBU0UgKyBFSUM3NzBYX01F TVBPUlRfU0laRSkKKyNkZWZpbmUgRUlDNzcwWF9EMF9NRU1fQkFTRQkweDAwODAwMDAwMDBVTCAv LyAyRworI2RlZmluZSBFSUM3NzBYX0QwX01FTV9TSVpFCTB4MGY4MDAwMDAwMFVMIC8vICs2MkcK KyNkZWZpbmUgRUlDNzcwWF9EMF9NRU1fTElNSVQJKEVJQzc3MFhfRDBfTUVNX0JBU0UgKyBFSUM3 NzBYX0QwX01FTV9TSVpFKQorI2RlZmluZSBFSUM3NzBYX0QxX01FTV9CQVNFCTB4MjAwMDAwMDAw MFVMIC8vIDEyOEcKKyNkZWZpbmUgRUlDNzcwWF9EMV9NRU1fU0laRQkweDEwMDAwMDAwMDBVTCAv LyArNjRHCisjZGVmaW5lIEVJQzc3MFhfRDFfTUVNX0xJTUlUCShFSUM3NzBYX0QxX01FTV9CQVNF ICsgRUlDNzcwWF9EMV9NRU1fU0laRSkKKyNkZWZpbmUgRUlDNzcwWF9DQUNIRURfQkFTRQkoY3Vy cmVudF9oYXJ0X2RpZSgpID8gXAorCQkJCUVJQzc3MFhfRDFfTUVNX0JBU0UgOiBcCisJCQkJRUlD NzcwWF9EMF9NRU1fQkFTRSkKKworLyogVW5jYWNoZWQgbWVtb3J5IG1hcHBlZCBpbiBTeXN0ZW0g UG9ydCAxICovCisjZGVmaW5lIEVJQzc3MFhfRDBfVUNfQkFTRQkweGMwMDAwMDAwMDBVTAorI2Rl ZmluZSBFSUM3NzBYX0QxX1VDX0JBU0UJMHhlMDAwMDAwMDAwVUwKKyNkZWZpbmUgRUlDNzcwWF9V TkNBQ0hFRF9CQVNFCShjdXJyZW50X2hhcnRfZGllKCkgPyBcCisJCQkJRUlDNzcwWF9EMV9VQ19C QVNFIDogXAorCQkJCUVJQzc3MFhfRDBfVUNfQkFTRSkKKworI2RlZmluZSBFSUM3NzBYX1RPX1VO Q0FDSEVEKHgpCSgoeCkgLSBFSUM3NzBYX0NBQ0hFRF9CQVNFICsgXAorCQkJCUVJQzc3MFhfVU5D QUNIRURfQkFTRSkKKworI2VuZGlmCi0tIAoyLjM0LjEKCgotLSAKb3BlbnNiaSBtYWlsaW5nIGxp c3QKb3BlbnNiaUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vb3BlbnNiaQo=