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 35FE8CF857C for ; Thu, 20 Nov 2025 09:36:49 +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=xNEIVg3DxbLMTcMKkTrCd+woo6ctuwQqC9kHYzyXbf4=; b=JlLKxRS0xmTLvG 72zBB4ESlx5Cw2Yfm+tqRdHxeRLOi6mYE3jaaJOJgSFJFZyY1px3Tsw5/WBVRsKat8DdyOYQjFaSI snk20r69ap5qmC5ZCR7+lu8RKtgpH8JX5YXzKmf/n7dhiFEjszZSAoqVqcJ7v/fKLMeJFhITkAaAS wegZ13YsDsDbqbvAehLSVgHirhnWWK5cwsGJCMu2+sJShVFMl4YZxbPjtPJqQTEdBBXzwL9pkahtf 99lGdOHoMWCdlChvFqe0aQxC40vYroJjLnknDM2IU5Pg6neAYX648ldntVLd8KPoiqh3DBCnVDtQd qCptCGtL1ymytebR8GcQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vM15l-00000006Qr0-4Ag8; Thu, 20 Nov 2025 09:36:41 +0000 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vM15j-00000006Qpb-344B for opensbi@lists.infradead.org; Thu, 20 Nov 2025 09:36:41 +0000 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-34374febdefso699137a91.0 for ; Thu, 20 Nov 2025 01:36:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763631399; x=1764236199; 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=6IbcW5CMxBpWNvpBW43s4DX6QudRddlCF5040uA7ssI=; b=naPoRMs5dbK0hFuiq1n3XiRnk9ZXqWmgfZRIyXyWs+QEwt3NX0jcv9mlMqBhYntL8b 2j00LK9OpEapbJ4sqGrawW0qG/XcBtNpIJBhiIPeEfE59HUDl0lXXV3cEl81T+fhKiSA arfNcC4eGBD1yC5k57FnRX+NBMJhEtVVqoaefdm0YICagi9W55Kh5AOyG58siWVeAi7b WnWE6CQyAEla82iQDbWhj9omc/ohxei8KFAW2N2g7MfkVBzeLzLaiKh1Hq/CUdEBWOQz MQqlBi4qzV0w9MDNTB0rhxNxOZM7qdRDnZBxzVc9+pxlDIYZDMJ0ijtnuRtbA7Qlg4xm YuAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763631399; x=1764236199; 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=6IbcW5CMxBpWNvpBW43s4DX6QudRddlCF5040uA7ssI=; b=u2LQvKrBiUZSu0Lr7W8Hnu8epYHSOH2d4uvKlhn3tqpvoVY1NhWnLsSvDLzQhjpKHO MUmz9RRgI1a8OVsofT+uy4yyKCGNCxIh5p0sXhJWGT/0UEzysU9IzqXMzy6J/F5lFvfo yRaTqgWf5aTzos60neBpxSLwi/6/gsYyk4bFdp7PjL5KdWuiUpr4GVUVKwWnyhNjcG+E 1xkuxhyeV4skrL0SjvVekN72+zFKnxZT52OZdpcipSaRoRMMkFpgfAVJ3LzxHRMEcCGR QMCjDteCpd97bh+/flr+DR3AJlhmCHiKKno88jWlNNpbMkK8u5Ilgk3tzV/R0gYHJRvU QWkA== X-Gm-Message-State: AOJu0YwUyCubPDhjEG3iSc4erkQJueq3IW7+xym9geRZxJasyIwQ1S5l RM4T4Ors9GWeWvpskLx912nico3BsmkDSSG56dC1KHtUwMjs/Dt63ySFueg+Z9zK X-Gm-Gg: ASbGnctsX+XIzClI7OJLwCeJFblEmgI+ozLVrHkxst7ZKIZ0nTWF9i3dIZgdgcG8Raj jjcnoCjjuz6ojQwnYHTUqG3yJZg/E809Lyf9IEEOdMWgeTHOSNxC5l9cF6/4an/0T1YdLzQGvG+ tyAxhP6enJwGN2gLAsfQxiBZJpt3Gp4bD9NsIgAV5O6Y6mEYZwg7SZIQQL+7Z2A9BfT4qoXC1W6 jzmv6OGcXdWY1Dajzn8IsKabvkPvO660bI6eVRYnr37Z78PWsLrerqDiQCsta06h0J21pY2yV1f a7uXkCNmYEE2wpEtCInObP7eLrNVksgOoB5bYM83qDypOJrUQBuspvtoZXJUbEbBKyqv9xMsHfm yh25XH0YcWLrcqPxQez6HaAp+qB0xVUTSa56JaHNVHkoCYnEUl6vho3UBYEkNGPNmmdg1/UW5CI 6yFdlouIIr5nTGj93d8KXRYo4= X-Google-Smtp-Source: AGHT+IHxKkbn7ST4hyYyTkEEg/lP8McUheNTylNOhaR39KFzWVONtFy2Zpk7qAJksGLmncBdAuohjw== X-Received: by 2002:a17:90b:1843:b0:338:3d07:5174 with SMTP id 98e67ed59e1d1-34727bd947fmr2423145a91.5.1763631398394; Thu, 20 Nov 2025 01:36:38 -0800 (PST) Received: from m91p.airy.home ([172.92.174.155]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34726696b52sm2019042a91.1.2025.11.20.01.36.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Nov 2025 01:36:37 -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 v3 4/4] platform: generic: eswin: add EIC7700 Date: Thu, 20 Nov 2025 01:34:40 -0800 Message-Id: <20251120093440.4533-5-ganboing@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251120093440.4533-1-ganboing@gmail.com> References: <20251120093440.4533-1-ganboing@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251120_013639_812880_99F2C696 X-CRM114-Status: GOOD ( 33.02 ) 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 aWMvZXN3aW4vZWljNzcweC5jICAgICAgICAgfCAzODUgKysrKysrKysrKysrKysrKysrKysrKysK IHBsYXRmb3JtL2dlbmVyaWMvZXN3aW4vb2JqZWN0cy5tayAgICAgICAgfCAgMTEgKwogcGxhdGZv cm0vZ2VuZXJpYy9pbmNsdWRlL2Vzd2luL2VpYzc3MHguaCB8ICA3MyArKysrKwogNiBmaWxlcyBj aGFuZ2VkLCA1MDQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHBsYXRmb3JtL2dl bmVyaWMvZXN3aW4vS2NvbmZpZwogY3JlYXRlIG1vZGUgMTAwNjQ0IHBsYXRmb3JtL2dlbmVyaWMv ZXN3aW4vZWljNzcweC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGxhdGZvcm0vZ2VuZXJpYy9lc3dp bi9vYmplY3RzLm1rCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGxhdGZvcm0vZ2VuZXJpYy9pbmNsdWRl L2Vzd2luL2VpYzc3MHguaAoKZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvS2NvbmZpZyBi L3BsYXRmb3JtL2dlbmVyaWMvS2NvbmZpZwppbmRleCBhZWRjNTlhNS4uMDQ3ZTEzY2EgMTAwNjQ0 Ci0tLSBhL3BsYXRmb3JtL2dlbmVyaWMvS2NvbmZpZworKysgYi9wbGF0Zm9ybS9nZW5lcmljL0tj b25maWcKQEAgLTg4LDcgKzg4LDEyIEBAIGNvbmZpZyBQTEFURk9STV9TUEFDRU1JVF9LMQogCXNl bGVjdCBGRFRfSFNNX1NQQUNFTUlUCiAJZGVmYXVsdCBuCiAKK2NvbmZpZyBQTEFURk9STV9FU1dJ Tl9FSUM3NzBYCisJYm9vbCAiRVNXSU4gRUlDNzcwWCBzdXBwb3J0IgorCWRlZmF1bHQgbgorCiBz b3VyY2UgIiQoT1BFTlNCSV9TUkNfRElSKS9wbGF0Zm9ybS9nZW5lcmljL2FuZGVzL0tjb25maWci Citzb3VyY2UgIiQoT1BFTlNCSV9TUkNfRElSKS9wbGF0Zm9ybS9nZW5lcmljL2Vzd2luL0tjb25m aWciCiBzb3VyY2UgIiQoT1BFTlNCSV9TUkNfRElSKS9wbGF0Zm9ybS9nZW5lcmljL3RoZWFkL0tj b25maWciCiAKIGVuZGlmCmRpZmYgLS1naXQgYS9wbGF0Zm9ybS9nZW5lcmljL2NvbmZpZ3MvZGVm Y29uZmlnIGIvcGxhdGZvcm0vZ2VuZXJpYy9jb25maWdzL2RlZmNvbmZpZwppbmRleCA5ZTA0MGFj My4uNjBjNTQ0OWUgMTAwNjQ0Ci0tLSBhL3BsYXRmb3JtL2dlbmVyaWMvY29uZmlncy9kZWZjb25m aWcKKysrIGIvcGxhdGZvcm0vZ2VuZXJpYy9jb25maWdzL2RlZmNvbmZpZwpAQCAtMTAsNiArMTAs 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 d2luL2VpYzc3MHguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uNWNmMTRh MDUKLS0tIC9kZXYvbnVsbAorKysgYi9wbGF0Zm9ybS9nZW5lcmljL2Vzd2luL2VpYzc3MHguYwpA QCAtMCwwICsxLDM4NSBAQAorLyoKKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMjUgQm8gR2FuIDxnYW5ib2luZ0BnbWFpbC5j b20+CisgKgorICovCisKKyNpbmNsdWRlIDxwbGF0Zm9ybV9vdmVycmlkZS5oPgorI2luY2x1ZGUg PHNiaS9yaXNjdl9pby5oPgorI2luY2x1ZGUgPHNiaS9zYmlfY29uc29sZS5oPgorI2luY2x1ZGUg PHNiaS9zYmlfc3lzdGVtLmg+CisjaW5jbHVkZSA8c2JpL3NiaV9tYXRoLmg+CisjaW5jbHVkZSA8 ZXN3aW4vZWljNzcweC5oPgorCitzdGF0aWMgaW50IGVpYzc3MHhfc3lzdGVtX3Jlc2V0X2NoZWNr KHUzMiB0eXBlLCB1MzIgcmVhc29uKQoreworCXN3aXRjaCAodHlwZSkgeworCWNhc2UgU0JJX1NS U1RfUkVTRVRfVFlQRV9DT0xEX1JFQk9PVDoKKwljYXNlIFNCSV9TUlNUX1JFU0VUX1RZUEVfV0FS TV9SRUJPT1Q6CisJCXJldHVybiAxOworCWRlZmF1bHQ6CisJCXJldHVybiAwOworCX0KK30KKwor c3RhdGljIHZvaWQgZWljNzcweF9zeXN0ZW1fcmVzZXQodTMyIHR5cGUsIHUzMiByZWFzb24pCit7 CisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBTQklfU1JTVF9SRVNFVF9UWVBFX0NPTERfUkVCT09U OgorCWNhc2UgU0JJX1NSU1RfUkVTRVRfVFlQRV9XQVJNX1JFQk9PVDoKKwkJd3JpdGVsKEVJQzc3 MFhfU1lTQ1JHX1JTVF9WQUwsICh2b2lkICopRUlDNzcwWF9TWVNDUkdfUlNUKTsKKwl9CisKKwlz YmlfcHJpbnRmKCIlczogVW5hYmxlIHRvIHJlc2V0IHN5c3RlbVxuIiwgX19mdW5jX18pOworCXNi aV9oYXJ0X2hhbmcoKTsKK30KKworc3RhdGljIHN0cnVjdCBzYmlfc3lzdGVtX3Jlc2V0X2Rldmlj ZSBlaWM3NzB4X3Jlc2V0ID0geworCS5uYW1lID0gImVpYzc3MHhfcmVzZXQiLAorCS5zeXN0ZW1f cmVzZXRfY2hlY2sgPSBlaWM3NzB4X3N5c3RlbV9yZXNldF9jaGVjaywKKwkuc3lzdGVtX3Jlc2V0 ID0gZWljNzcweF9zeXN0ZW1fcmVzZXQKK307CisKKyNkZWZpbmUgYWRkX3Jvb3RfbWVtX2Noaygu Li4pIGRvIHsgXAorCXJjID0gc2JpX2RvbWFpbl9yb290X2FkZF9tZW1yYW5nZShfX1ZBX0FSR1Nf Xyk7IFwKKwlpZiAocmMpIFwKKwkJcmV0dXJuIHJjOyBcCit9IHdoaWxlICgwKQorCisvKioKKyAq IEVJQzc3MDAgc3BlY2lhbCBhcnJhbmdlbWVudCBvZiBQTVAgZW50cmllczoKKyAqCisgKiBXZSBo YXZlIHRvIHVzZSBleHRyYSBQTVBzIHRvIGJsb2NrIGRhdGEgY2FjaGVhYmxlIHJlZ2lvbnMgdGhh dAorICogdGhhdCBkb2Vzbid0IGJlbG9uZyB0byB0aGUgY3VycmVudCBoYXJ0J3MgZGllIGluIG9y ZGVyIHRvIHByZXZlbnQKKyAqIHNwZWN1bGF0aXZlIGFjY2Vzc2VzIG9yIEhXIHByZWZldGNoZXIg ZnJvbSBnZW5lcmF0aW5nIGJ1cyBlcnJvcjoKKyAqCisgKiAJYnVzIGVycm9yIG9mIGNhdXNlIGV2 ZW50OiA5LCBhY2NydWVkOiAweDIyMCwKKyAqCXBoeXNpY2FsIGFkZHJlc3M6IDB4MjRmZmZmZmZh MAorICoKKyAqIFRoZSBkYXRhIGNhY2hlYWJsZSByZWdpb25zIChwZXIgZGF0YXNoZWV0KSBpbmNs dWRlOgorICoKKyAqICAgLSBbMHgxYTAwMDAwMCwgICAgMHgxYTQwMDAwMCkgLS0gRGllIDAgTDMg emVybyBkZXZpY2UKKyAqICAgLSBbMHgzYTAwMDAwMCwgICAgMHgzYTQwMDAwMCkgLS0gRGllIDEg TDMgemVybyBkZXZpY2UKKyAqICAgLSBbMHg4MDAwMDAwMCwgMHg4MF8wMDAwMDAwMCkgLS0gbWVt b3J5IHBvcnQKKyAqCisgKiBUbyBtYWtlIHRoZSBibG9ja2VyIGVmZmVjdGl2ZSBmb3IgTSBtb2Rl IHRvbywgdGhlIGV4dHJhIFBNUHMgbmVlZAorICogTE9DSyBiaXQgdG8gYmUgc2V0LCBhbmQgb25j ZSBzZXQsIHdlIGNhbid0IGNoYW5nZSB0aGVtIGxhdGVyLgorICogV2UgYWxzbyBoYXZlIHRvIHRv IHVzZSAxIGV4dHJhIFBNUCB0byBwcm90ZWN0IE9wZW5TQkkgaW4gdW5jYWNoZWQKKyAqIG1lbW9y eS4gRUlDNzcwWCBtYXBzIG1haW4gbWVtb3J5IChEUkFNKSB0d2ljZSAtLSBvbmUgaW4gbWVtb3J5 CisgKiBwb3J0IChjYWNoZWQpLCB0aGUgb3RoZXIgaW4gc3lzdGVtIHBvcnQgKHVuY2FjaGVkKS4g UDU1MCBkb2Vzbid0CisgKiBzdXBwb3J0IFN2cGJtdCwgc28gRUlDNzcwWCB1c2UgdGhlIHVuY2Fj aGVkIHdpbmRvdyB0byBoYW5kbGUgRE1BCisgKiB0aGF0IGFyZSBjYWNoZSBpbmNvaGVyZW50IC0t IHByZXR0eSBtdWNoIGFsbCBwZXJpcGhlcmFscworICoKKyAqIEZpbmFsIFBNUCBjb25maWd1cmF0 aW9uOgorICoKKyAqIEZyb20gZGllIDAgcG9pbnQgb2YgdmlldywgYmxvY2sKKyAqICAgLSAgICAg ICAgIFsweDNhMDAwMDAwLCAgICAweDNhNDAwMDAwKSAtLSBEaWUgMSBMMyB6ZXJvIGRldmljZQor ICogICAtICAgICAgWzB4MTBfMDAwMDAwMDAsIDB4ODBfMDAwMDAwMDApIC0tIERpZSAxIGNhY2hl ZCBtZW0gKyBob2xlcworICoKKyAqIFJvb3QgZG9tYWluIEhhcnRzOgorICogIFBNUFswXTogWyAg IDB4ODAwMDAwMDAsICAgIDB4ODAwODAwMDApIF9fX18gRmlybXdhcmUgaW4gY2FjaGVkIG1lbQor ICogIFBNUFsxXTogWzB4YzBfMDAwMDAwMDAsIDB4YzBfMDAwODAwMDApIF9fX18gRmlybXdhcmUg aW4gdW5jYWNoZWQKKyAqICBQTVBbMl06IFsgICAweDNhMDAwMDAwLCAgICAweDNhNDAwMDAwKSBM X19fIERpZSAxIEwzIHplcm8gZGV2aWNlCisgKiAgUE1QWzNdOiBbICAgIDB4MjAwMDAwMCAgICAg IDB4MjAxMDAwMCkgX19fXyBDTElOVAorICogIFBNUFs0XTogWyAgICAgICAgICAweDAsIDB4MTBf MDAwMDAwMDApIF9SV1ggUDU1MC9TeXN0ZW0vRGllIDAgY2FjaGVkIG1lbQorICogIFBNUFs1XTog PEZyZWU+CisgKiAgUE1QWzZdOiBbICAgICAgICAgIDB4MCwgMHg4MF8wMDAwMDAwMCkgTF9fXyBQ NTUwL1N5c3RlbS9NZW1vcnkgUG9ydAorICogIFBNUFs3XTogWyAgICAgMHgwLCAweGZmZmZmZmZm ZmZmZmZmZmZdIF9SV1ggRXZlcnl0aGluZworICoKKyAqIEZyb20gZGllIDEgcG9pbnQgb2Ygdmll dywgYmxvY2sKKyAqICAgLSAgICAgICAgIFsweDFhMDAwMDAwLCAgICAweDFhNDAwMDAwKSAtLSBE aWUgMCBMMyB6ZXJvIGRldmljZQorICogICAtICAgICAgICAgWzB4ODAwMDAwMDAsIDB4MjBfMDAw MDAwMDApIC0tIERpZSAwIGNhY2hlZCBtZW0gKyBob2xlcworICogICAtICAgICAgWzB4MzBfMDAw MDAwMDAsIDB4ODBfMDAwMDAwMDApIC0tIG90aGVyIGhvbGVzIGluIE1lbW9yeSBwb3J0CisgKgor ICogUm9vdCBkb21haW4gSGFydHM6CisgKiAgUE1QWzBdOiBbMHgyMF8wMDAwMDAwMCwgMHgyMF8w MDA4MDAwMCkgX19fXyBGaXJtd2FyZSBpbiBjYWNoZWQgbWVtCisgKiAgUE1QWzFdOiBbMHhlMF8w MDAwMDAwMCwgMHhlMF8wMDA4MDAwMCkgX19fXyBGaXJtd2FyZSBpbiB1bmNhY2hlZAorICogIFBN UFsyXTogWyAgIDB4MWEwMDAwMDAsICAgIDB4MWE0MDAwMDApIExfX18gRGllIDAgTDMgemVybyBk ZXYKKyAqICBQTVBbM106IFsgICAweDIyMDAwMDAwICAgICAweDIyMDEwMDAwKSBfX19fIENMSU5U CisgKiAgUE1QWzRdOiBbICAgICAgICAgIDB4MCwgICAgMHg4MDAwMDAwMCkgX1JXWCBEaWUgMC8x IFA1NTAgaW50ZXJuYWwKKyAqICBQTVBbNV06IFsweDIwXzAwMDAwMDAwLCAweDMwXzAwMDAwMDAw KSBfUldYIERpZSAxIGNhY2hlZCBtZW1vcnkKKyAqICBQTVBbNl06IFsgICAgICAgICAgMHgwLCAw eDgwXzAwMDAwMDAwKSBMX19fIFA1NTAvU3lzdGVtL01lbW9yeSBQb3J0CisgKiAgUE1QWzddOiBb ICAgICAweDAsIDB4ZmZmZmZmZmZmZmZmZmZmZl0gX1JXWCBFdmVyeXRoaW5nCisgKgorICogRUlD NzcwWCBtZW1vcnkgcG9ydCBtYXA6CisgKiBQNTUwIEludGVybmFsCisgKiAgIOKUnOKUgCAweDAw MDBfMDAwMCAtIDB4MjAwMF8wMDAwIGRpZSAwIGludGVybmFsCisgKiAgIOKUlOKUgCAweDIwMDBf MDAwMCAtIDB4NDAwMF8wMDAwIGRpZSAxIGludGVybmFsCisgKiBTeXN0ZW0gUG9ydCAwCisgKiAg IOKUnOKUgCAweDQwMDBfMDAwMCAtIDB4NjAwMF8wMDAwIGRpZSAwIGxvdyBNTUlPCisgKiAgIOKU lOKUgCAweDYwMDBfMDAwMCAtIDB4ODAwMF8wMDAwIGRpZSAxIGxvdyBNTUlPCisgKiBNZW1vcnkg UG9ydAorICogICDilJzilIAgICAgMHg4MDAwXzAwMDAgLSAweDEwXzgwMDBfMDAwMCBkaWUgMCBt ZW1vcnkgKGNhY2hlZCkKKyAqICAg4pSc4pSAIDB4MjBfMDAwMF8wMDAwIC0gMHgzMF8wMDAwXzAw MDAgZGllIDEgbWVtb3J5IChjYWNoZWQpCisgKiAgIOKUlOKUgCAweDQwXzAwMDBfMDAwMCAtIDB4 NjBfMDAwMF8wMDAwIGludGVybGVhdmVkIG1lbW9yeSAoY2FjaGVkKQorICogU3lzdGVtIFBvcnQg MQorICogICDilJzilIAgMHg4MF8wMDAwXzAwMDAgLSAweGEwXzAwMDBfMDAwMCBkaWUgMCBoaWdo IE1NSU8KKyAqICAg4pSc4pSAIDB4YTBfMDAwMF8wMDAwIC0gMHhjMF8wMDAwXzAwMDAgZGllIDEg aGlnaCBNTUlPCisgKiAgIOKUnOKUgCAweGMwXzAwMDBfMDAwMCAtIDB4ZDBfMDAwMF8wMDAwIGRp ZSAwIG1lbW9yeSAodW5jYWNoZWQpCisgKiAgIOKUnOKUgCAweGUwXzAwMDBfMDAwMCAtIDB4ZjBf MDAwMF8wMDAwIGRpZSAxIG1lbW9yeSAodW5jYWNoZWQpCisgKiAgIOKUnOKUgCAweDEwMF8wMDAw XzAwMDAgLSAweDEyMF8wMDAwXzAwMDAgaW50ZXJsZWF2ZWQgbWVtb3J5ICh1bmNhY2hlZCkKKyAq ICAg4pSU4pSAIC4uLgorICoKKyAqIEluIGVhcmx5X2luaXQsIGFkZCBtZW1vcnkgcmVnaW9ucyBz dWNoIHRoYXQgbGliLyBjb2RlIGhhcyB0aGUga25vd2xlZGdlCisgKiBvZiBibG9ja2VkIHJhbmdl cy4gV2hlbiB0aGUgZHJpdmVyIGNvZGUgaW5zZXJ0cyBuZXcgcmVnaW9ucywgbGliLyBjb2RlCisg KiBjYW4gb3B0aW1pemUgYXdheSB1bm5lY2Vzc2FyeSBvbmVzLiBOZXh0LCBpbiBmaW5hbF9pbml0 LCB3ZSBwcm9ncmFtIHRoZQorICogUE1QcyB0byBhIGRlZmF1bHQgc3RhdGUgdGhhdCdsbCBrZWVw IG91cnNlbHZlcyBmdW5jdGlvbmFsIChDTElOVC8uLi4KKyAqIGFjY2Vzc2libGUpLiBMYXRlciwg aW4gcG1wX2NvbmZpZ3VyZSwgZG8gdGhlIGFjdHVhbCBjb25maWd1cmF0aW9uIG9mCisgKiBQTVAs IHVzaW5nIGRvbWFpbiBtZW1vcnkgcmVnaW9ucyBhbmQgcGVybWlzc2lvbnMuCisgKi8KKworc3Rh dGljIGludCBlc3dpbl9laWM3NzAwX2Vhcmx5X2luaXQoYm9vbCBjb2xkX2Jvb3QpCit7CisJc3Ry dWN0IHNiaV9zY3JhdGNoICpzY3JhdGNoID0gc2JpX3NjcmF0Y2hfdGhpc2hhcnRfcHRyKCk7CisJ aW50IHJjOworCisJaWYgKCFjb2xkX2Jvb3QpCisJCXJldHVybiBnZW5lcmljX2Vhcmx5X2luaXQo Y29sZF9ib290KTsKKworCS8qIEVuYWJsZSBidXMgYmxvY2tlciAqLworCXdyaXRlbCgxLCAodm9p ZCopRUlDNzcwWF9UTDY0RDJEX09VVCk7CisJd3JpdGVsKDEsICh2b2lkKilFSUM3NzBYX1RMMjU2 RDJEX09VVCk7CisJd3JpdGVsKDEsICh2b2lkKilFSUM3NzBYX1RMMjU2RDJEX0lOKTsKKwlhc20g dm9sYXRpbGUgKCJmZW5jZSBvLCBydyIpOworCisJLyogQmxvY2sgZmlybXdhcmUgaW4gdW5jYWNo ZWQgbWVtb3J5ICovCisJYWRkX3Jvb3RfbWVtX2NoayhFSUM3NzBYX1RPX1VOQ0FDSEVEKAorCQkJ IHNjcmF0Y2gtPmZ3X3N0YXJ0KSwKKwkJCSAxVUwgPDwgbG9nMnJvdW5kdXAoc2NyYXRjaC0+Zndf c2l6ZSksCisJCQkgMVVMIDw8IGxvZzJyb3VuZHVwKHNjcmF0Y2gtPmZ3X3NpemUpLAorCQkJKFNC SV9ET01BSU5fTUVNUkVHSU9OX01fUkVBREFCTEUgfAorCQkJIFNCSV9ET01BSU5fTUVNUkVHSU9O X01fV1JJVEFCTEUgfAorCQkJIFNCSV9ET01BSU5fTUVNUkVHSU9OX01fRVhFQ1VUQUJMRSB8CisJ CQkgU0JJX0RPTUFJTl9NRU1SRUdJT05fRlcpKTsKKworCS8qIEFsbG93IFNVUlcgb2YgUDU1MCAr IFN5c3RlbSBQb3J0ICovCisJYWRkX3Jvb3RfbWVtX2NoaygwLAorCQkJIEVJQzc3MFhfTUVNUE9S VF9CQVNFLAorCQkJIEVJQzc3MFhfTUVNUE9SVF9CQVNFLAorCQkJKFNCSV9ET01BSU5fTUVNUkVH SU9OX01NSU8gfAorCQkJIFNCSV9ET01BSU5fTUVNUkVHSU9OX1NIQVJFRF9TVVJXX01SVykpOwor CisJaWYgKGN1cnJlbnRfaGFydF9kaWUoKSkgeworCQkvKiBBbGxvdyBTVVJXWCBvZiBkaWUgMSBj YWNoZWQgbWVtb3J5ICovCisJCWFkZF9yb290X21lbV9jaGsoRUlDNzcwWF9EMV9NRU1fQkFTRSwK KwkJCQkgRUlDNzcwWF9EMV9NRU1fU0laRSwKKwkJCQkgRUlDNzcwWF9EMV9NRU1fU0laRSwKKwkJ CQkoU0JJX0RPTUFJTl9NRU1SRUdJT05fTV9SRUFEQUJMRSB8CisJCQkJIFNCSV9ET01BSU5fTUVN UkVHSU9OX01fV1JJVEFCTEUgfAorCQkJCSBTQklfRE9NQUlOX01FTVJFR0lPTl9TVV9SV1gpKTsK Kwl9IGVsc2UgeworCQkvKiBBbGxvdyBTVVJXWCBvZiBQNTUwICsgU3lzdGVtIFBvcnQgKyBkaWUg MCBjYWNoZWQgbWVtb3J5ICovCisJCWFkZF9yb290X21lbV9jaGsoMCwKKwkJCQkgRUlDNzcwWF9E MF9NRU1fTElNSVQsCisJCQkJIEVJQzc3MFhfRDBfTUVNX0xJTUlULAorCQkJCShTQklfRE9NQUlO X01FTVJFR0lPTl9NX1JFQURBQkxFIHwKKwkJCQkgU0JJX0RPTUFJTl9NRU1SRUdJT05fTV9XUklU QUJMRSB8CisJCQkJIFNCSV9ET01BSU5fTUVNUkVHSU9OX1NVX1JXWCkpOworCX0KKworCS8qIEJs b2NrIFA1NTAgKyBTeXN0ZW0gUG9ydCAwICsgTWVtb3J5IFBvcnQgKGVuZm9yY2VkKSAqLworCWFk ZF9yb290X21lbV9jaGsoMCwKKwkJCSBFSUM3NzBYX01FTVBPUlRfTElNSVQsCisJCQkgRUlDNzcw WF9NRU1QT1JUX0xJTUlULAorCQkJKFNCSV9ET01BSU5fTUVNUkVHSU9OX01NSU8gfAorCQkJIFNC SV9ET01BSU5fTUVNUkVHSU9OX0VORl9QRVJNSVNTSU9OUykpOworCisJcmV0dXJuIGdlbmVyaWNf ZWFybHlfaW5pdChjb2xkX2Jvb3QpOworfQorCisjZGVmaW5lIFBNUF9GV19TVEFSVCAwCisjZGVm aW5lIFBNUF9GV19DT1VOVCAyCisjZGVmaW5lIFBNUF9SRVNFUlZFRF9BIDIKKyNkZWZpbmUgUE1Q X0ZSRUVfQV9TVEFSVCAzCisjZGVmaW5lIFBNUF9GUkVFX0FfQ09VTlQgMworI2RlZmluZSBQTVBf UkVTRVJWRURfQiA2CisjZGVmaW5lIFBNUF9GUkVFX0JfU1RBUlQgNworI2RlZmluZSBQTVBfRlJF RV9CX0NPVU5UIDEKKworc3RhdGljIGludCBlc3dpbl9laWM3NzAwX2ZpbmFsX2luaXQoYm9vbCBj b2xkX2Jvb3QpCit7CisJLyoqCisJICogRm9yIGJvdGggZGllcyBhZnRlciBmaW5hbF9pbml0Ogor CSAqCisJICogIFBNUFswXTogICBQcm90ZWN0IE9wZW5TQkkgaW4gY2FjaGVkIG1lbW9yeQorCSAq ICBQTVBbMV06ICAgUHJvdGVjdCBPcGVuU0JJIGluIHVuY2FjaGVkIG1lbW9yeQorCSAqICBQTVBb Ml06ICAgQmxvY2sgcmVtb3RlIGRpZSBQNTUwIEwzIFplcm8gRGV2aWNlCisJICogIFBNUFszLTVd OiA8RnJlZSByYW5nZXMgQT4KKwkgKiAgUE1QWzVdOiAgIFRlbXBvcmFyeSBlbmFibGUgUDU1MCAr IFN5c3RlbSBQb3J0CisJICogIFBNUFs2XTogICBCbG9jayBhbGwgUDU1MCArIFN5c3RlbSArIE1l bW9yeSBQb3J0CisJICogIFBNUFs3LTddOiA8RnJlZSByYW5nZXMgQj4KKwkgKi8KKwlzdHJ1Y3Qg c2JpX2RvbWFpbl9tZW1yZWdpb24gKnJlZzsKKwl1bnNpZ25lZCBpbnQgcG1wX2lkeCA9IFBNUF9G V19TVEFSVCwKKwkJICAgICBwbXBfbWF4ID0gUE1QX0ZXX1NUQVJUICsgUE1QX0ZXX0NPVU5UOwor CWludCByYzsKKworCWlmIChjb2xkX2Jvb3QpCisJCXNiaV9zeXN0ZW1fcmVzZXRfYWRkX2Rldmlj ZSgmZWljNzcweF9yZXNldCk7CisKKwkvKioKKwkgKiBEbyBnZW5lcmljX2ZpbmFsX2luaXQgc3R1 ZmYgZmlyc3QsIGJlY2F1c2UgaXQgdG91Y2hzIEZEVC4KKwkgKiBBZnRlciBmaW5hbF9pbml0LCB3 ZSdsbCBibG9jayBlbnRpcmUgbWVtb3J5IHBvcnQgd2l0aCB0aGUKKwkgKiBMT0NLIGJpdCBzZXQs IHdoaWNoIG1lYW5zIHdlIGNhbid0IGFjY2VzcyBtZW1vcnkgb3V0c2lkZQorCSAqIG9mIFtmd19z dGFydCwgZndfc3RhcnQgKyBmd19zaXplKS4gVGhlIEZEVCBjb3VsZCB2ZXJ5IHdlbGwKKwkgKiBy ZXNpZGUgb3V0c2lkZSBvZiBmaXJtd2FyZSByZWdpb24uIExhdGVyLCBwbXBfY29uZmlndXJlKCkK KwkgKiBtYXkgdW5ibG9jayBpdCB3aXRoIHNvbWUgcHJlY2VkaW5nIGVudHJpZXMgZm9yIHJvb3Qg ZG9tYWluCisJICogaGFydHMuIEl0IG1heSBub3QgdW5ibG9jayBpdCwgaG93ZXZlciwgZm9yIG5v bi1yb290IGhhcnRzLgorCSAqLworCXJjID0gZ2VuZXJpY19maW5hbF9pbml0KGNvbGRfYm9vdCk7 CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKworCS8qIFByb2Nlc3MgZmlybXdhcmUgcmVnaW9u cyAqLworCXNiaV9kb21haW5fZm9yX2VhY2hfbWVtcmVnaW9uKCZyb290LCByZWcpIHsKKwkJaWYg KCFTQklfRE9NQUlOX01FTVJFR0lPTl9JU19GSVJNV0FSRShyZWctPmZsYWdzKSkKKwkJCWNvbnRp bnVlOworCisJCWlmIChwbXBfaWR4ID49IHBtcF9tYXgpIHsKKwkJCXNiaV9wcmludGYoIiVzOiBp bnN1ZmZpY2llbnQgRlcgUE1QIGVudHJpZXNcbiIsCisJCQkJICAgX19mdW5jX18pOworCQkJcmV0 dXJuIFNCSV9FRkFJTDsKKwkJfQorCQlwbXBfc2V0KHBtcF9pZHgrKywgc2JpX2RvbWFpbl9nZXRf b2xkcG1wX2ZsYWdzKHJlZyksCisJCQlyZWctPmJhc2UsIHJlZy0+b3JkZXIpOworCX0KKworCXBt cF9zZXQoUE1QX1JFU0VSVkVEX0EsIFBNUF9MLCBFSUM3NzBYX0wzX1pFUk9fUkVNT1RFLAorCQkJ ICAgbG9nMnJvdW5kdXAoRUlDNzcwWF9MM19aRVJPX1NJWkUpKTsKKwkvKioKKwkgKiBFbmFibGUg UDU1MCBpbnRlcm5hbCArIFN5c3RlbSBQb3J0LCBzbyBPcGVuU0JJIGNhbiBhY2Nlc3MKKwkgKiBD TElOVC9QTElDL1VBUlQuIE1pZ2h0IGJlIG92ZXJ3cml0dGVuIGluIHBtcF9jb25maWd1cmUuCisJ ICovCisJcG1wX3NldChQTVBfRlJFRV9BX1NUQVJUICsgUE1QX0ZSRUVfQV9DT1VOVCAtIDEsIDAs IDAsCisJCWxvZzJyb3VuZHVwKEVJQzc3MFhfTUVNUE9SVF9CQVNFKSk7CisKKwlwbXBfc2V0KFBN UF9SRVNFUlZFRF9CLCBQTVBfTCwgMCwKKwkJbG9nMnJvdW5kdXAoRUlDNzcwWF9NRU1QT1JUX0xJ TUlUKSk7CisKKwkvKioKKwkgKiBUaGVzZSBtdXN0IGNvbWUgYWZ0ZXIgdGhlIHNldHVwIG9mIFBN UCwgYXMgd2UgYXJlIGFib3V0IHRvCisJICogZW5hYmxlIHNwZWN1bGF0aW9uIGFuZCBIVyBwcmVm ZXRjaGVyIGJpdHMKKwkgKi8KKwljc3Jfd3JpdGUoRUlDNzcwWF9DU1JfRkVBVDAsIENPTkZJR19F U1dJTl9FSUM3NzBYX0ZFQVQwX0NGRyk7CisJY3NyX3dyaXRlKEVJQzc3MFhfQ1NSX0ZFQVQxLCBD T05GSUdfRVNXSU5fRUlDNzcwWF9GRUFUMV9DRkcpOworCWNzcl93cml0ZShFSUM3NzBYX0NTUl9M MV9IV1BGLCBDT05GSUdfRVNXSU5fRUlDNzcwWF9MMV9IV1BGX0NGRyk7CisJY3NyX3dyaXRlKEVJ Qzc3MFhfQ1NSX0wyX0hXUEYsIENPTkZJR19FU1dJTl9FSUM3NzBYX0wyX0hXUEZfQ0ZHKTsKKwor CXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGVzd2luX2VpYzc3MDBfcG1wX2NvbmZpZ3VyZSh1 bnNpZ25lZCBpbnQgcG1wX2NvdW50LAorCQkJCQl1bnNpZ25lZCBpbnQgcG1wX2xvZzJncmFuLAor CQkJCQl1bnNpZ25lZCBsb25nIHBtcF9hZGRyX21heCkKK3sKKwlzdHJ1Y3Qgc2JpX2RvbWFpbiAq ZG9tID0gc2JpX2RvbWFpbl90aGlzaGFydF9wdHIoKTsKKwlzdHJ1Y3Qgc2JpX2RvbWFpbl9tZW1y ZWdpb24gKnJlZywgKnByZXYgPSBOVUxMOworCXVuc2lnbmVkIGludCBwbXBfaWR4LCBwbXBfbWF4 OworCXVuc2lnbmVkIGludCBpLCBqOworCisJLyogUHJvY2VzcyB0aGUgZmlyc3QgZnJlZSByYW5n ZSBBIFszLTVdICovCisJcG1wX2lkeCA9IFBNUF9GUkVFX0FfU1RBUlQsCisJcG1wX21heCA9IFBN UF9GUkVFX0FfU1RBUlQgKyBQTVBfRlJFRV9BX0NPVU5UOworCisJc2JpX2RvbWFpbl9mb3JfZWFj aF9tZW1yZWdpb25faWR4KGRvbSwgcmVnLCBpKSB7CisJCWlmIChTQklfRE9NQUlOX01FTVJFR0lP Tl9JU19GSVJNV0FSRShyZWctPmZsYWdzKSkKKwkJCWNvbnRpbnVlOworCisJCS8qKgorCQkgKiBU aGlzIG11c3QgYmUgdGhlIG9uZSBibG9ja2luZyBQNTUwICsgU3lzdGVtIFBvcnQgKworCQkgKiBN ZW1vcnkgUG9ydCB3ZSBzZXR1cCBpbiBlYXJseV9pbml0LCBvciBhIHN1cGVyc2V0CisJCSAqIG9m IGl0LiBJZiBzZWVuLCBicmVhaywgYW5kIHByb2dyYW0gdGhlIHJlc3QgaW4KKwkJICogZnJlZSBy YW5nZSBCLgorCQkgKi8KKwkJaWYgKHJlZy0+YmFzZSA9PSAwICYmCisJCSAgICByZWctPm9yZGVy ID49IGxvZzJyb3VuZHVwKEVJQzc3MFhfTUVNUE9SVF9MSU1JVCkpCisJCQlicmVhazsKKworCQkv KioKKwkJICogUmVsYXhhdGlvbjoKKwkJICogVHJlYXQgYSBwcmV2aW91cyByZWdpb24gd2l0aCBT VVJXIGFzIFNVUldYIGlmIHRoZQorCQkgKiBjdXJyZW50IGhhcyBTVVJXWCwgYW5kIGN1cnJlbnQg cmVnaW9uIHdpdGggTU1JTworCQkgKiBpZiBwcmV2aW91cyBoYXMgTU1JTywgYW5kIHNlZSBpZiBp dCBjYW4gYmUgbWVyZ2VkLgorCQkgKiBUaGlzIHNhdmVzIDEgUE1QIGVudHJ5IG9uIGRpZSAwLwor CQkgKi8KKwkJaWYgKHByZXYgJiYgc2JpX2RvbWFpbl9tZW1yZWdpb25faXNfc3Vic2V0KHByZXYs IHJlZykgJiYKKwkJICAgIChyZWctPmZsYWdzIHwgU0JJX0RPTUFJTl9NRU1SRUdJT05fTU1JTykg PT0KKwkJICAgIChwcmV2LT5mbGFncyB8IFNCSV9ET01BSU5fTUVNUkVHSU9OX1NVX0VYRUNVVEFC TEUpKQorCQkJcG1wX2lkeC0tOworCisJCWlmIChwbXBfaWR4ID49IHBtcF9tYXgpCisJCQlnb3Rv IG5vX21vcmVfcG1wOworCisJCXBtcF9zZXQocG1wX2lkeCsrLCBzYmlfZG9tYWluX2dldF9vbGRw bXBfZmxhZ3MocmVnKSwKKwkJCXJlZy0+YmFzZSwgcmVnLT5vcmRlcik7CisJCXByZXYgPSByZWc7 CisJfQorCS8qIERpc2FibGUgdGhlIHJlc3QgKi8KKwl3aGlsZSAocG1wX2lkeCA8IHBtcF9tYXgp CisJCXBtcF9kaXNhYmxlKHBtcF9pZHgrKyk7CisKKwkvKiBQcm9jZXNzIHRoZSBzZWNvbmQgZnJl ZSByYW5nZSBCIFs3LTddICovCisJcG1wX2lkeCA9IFBNUF9GUkVFX0JfU1RBUlQsCisJcG1wX21h eCA9IFBNUF9GUkVFX0JfU1RBUlQgKyBQTVBfRlJFRV9CX0NPVU5UOworCisJc2JpX2RvbWFpbl9m b3JfZWFjaF9tZW1yZWdpb25faWR4KGRvbSwgcmVnLCBqKSB7CisJCWlmIChpID49IGopCisJCQlj b250aW51ZTsKKworCQlpZiAocG1wX2lkeCA+PSBwbXBfbWF4KQorCQkJZ290byBub19tb3JlX3Bt cDsKKworCQlwbXBfc2V0KHBtcF9pZHgrKywgc2JpX2RvbWFpbl9nZXRfb2xkcG1wX2ZsYWdzKHJl ZyksCisJCQlyZWctPmJhc2UsIHJlZy0+b3JkZXIpOworCX0KKwkvKiBEaXNhYmxlIHRoZSByZXN0 ICovCisJd2hpbGUgKHBtcF9pZHggPCBwbXBfbWF4KQorCQlwbXBfZGlzYWJsZShwbXBfaWR4Kysp OworCisJcmV0dXJuIDA7Citub19tb3JlX3BtcDoKKwlzYmlfcHJpbnRmKCIlczogaW5zdWZmaWNp ZW50IFBNUCBlbnRyaWVzXG4iLCBfX2Z1bmNfXyk7CisJcmV0dXJuIFNCSV9FRkFJTDsKK30KKwor c3RhdGljIHZvaWQgZXN3aW5fZWljNzcwMF9wbXBfdW5jb25maWd1cmUodm9pZCkKK3sKKwkvKiBF bmFibGUgUDU1MCBpbnRlcm5hbCArIFN5c3RlbSBQb3J0ICovCisJcG1wX3NldChQTVBfRlJFRV9B X1NUQVJUICsgUE1QX0ZSRUVfQV9DT1VOVCAtIDEsIDAsIDAsCisJCWxvZzJyb3VuZHVwKEVJQzc3 MFhfTUVNUE9SVF9CQVNFKSk7CisKKwlmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IFBNUF9G UkVFX0FfQ09VTlQgLSAxOyBpKyspCisJCXBtcF9kaXNhYmxlKGkgKyBQTVBfRlJFRV9BX1NUQVJU KTsKKworCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgUE1QX0ZSRUVfQl9DT1VOVDsgaSsr KQorCQlwbXBfZGlzYWJsZShpICsgUE1QX0ZSRUVfQl9TVEFSVCk7Cit9CisKK3N0YXRpYyBib29s IGVzd2luX2VpYzc3MDBfc2luZ2xlX2Z3X3JlZ2lvbih2b2lkKQoreworCXJldHVybiB0cnVlOwor fQorCitzdGF0aWMgaW50IGVzd2luX2VpYzc3MDBfcGxhdGZvcm1faW5pdChjb25zdCB2b2lkICpm ZHQsIGludCBub2Rlb2ZmLAorCQkJCQljb25zdCBzdHJ1Y3QgZmR0X21hdGNoICptYXRjaCkKK3sK KwlnZW5lcmljX3BsYXRmb3JtX29wcy5lYXJseV9pbml0ID0gZXN3aW5fZWljNzcwMF9lYXJseV9p bml0OworCWdlbmVyaWNfcGxhdGZvcm1fb3BzLmZpbmFsX2luaXQgPSBlc3dpbl9laWM3NzAwX2Zp bmFsX2luaXQ7CisJZ2VuZXJpY19wbGF0Zm9ybV9vcHMucG1wX2NvbmZpZ3VyZSA9IGVzd2luX2Vp Yzc3MDBfcG1wX2NvbmZpZ3VyZTsKKwlnZW5lcmljX3BsYXRmb3JtX29wcy5wbXBfdW5jb25maWd1 cmUgPSBlc3dpbl9laWM3NzAwX3BtcF91bmNvbmZpZ3VyZTsKKwlnZW5lcmljX3BsYXRmb3JtX29w cy5zaW5nbGVfZndfcmVnaW9uID0gZXN3aW5fZWljNzcwMF9zaW5nbGVfZndfcmVnaW9uOworCisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmR0X21hdGNoIGVzd2luX2VpYzc3 MDBfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gImVzd2luLGVpYzc3MDAiIH0sCisJeyB9 LAorfTsKKworY29uc3Qgc3RydWN0IGZkdF9kcml2ZXIgZXN3aW5fZWljNzcwMCA9IHsKKwkubWF0 Y2hfdGFibGUgPSBlc3dpbl9laWM3NzAwX21hdGNoLAorCS5pbml0ID0gZXN3aW5fZWljNzcwMF9w bGF0Zm9ybV9pbml0LAorfTsKZGlmZiAtLWdpdCBhL3BsYXRmb3JtL2dlbmVyaWMvZXN3aW4vb2Jq ZWN0cy5tayBiL3BsYXRmb3JtL2dlbmVyaWMvZXN3aW4vb2JqZWN0cy5tawpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMC4uNjk0MmExMDcKLS0tIC9kZXYvbnVsbAorKysgYi9wbGF0 Zm9ybS9nZW5lcmljL2Vzd2luL29iamVjdHMubWsKQEAgLTAsMCArMSwxMSBAQAorIworIyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlCisjCisjIENvcHlyaWdodCAoQykgMjAy NSBCbyBHYW4gPGdhbmJvaW5nQGdtYWlsLmNvbT4KKyMKKworY2FycmF5LXBsYXRmb3JtX292ZXJy aWRlX21vZHVsZXMtJChDT05GSUdfUExBVEZPUk1fRVNXSU5fRUlDNzcwWCkgKz0gZXN3aW5fZWlj NzcwMAorcGxhdGZvcm0tb2Jqcy0kKENPTkZJR19QTEFURk9STV9FU1dJTl9FSUM3NzBYKSArPSBl c3dpbi9laWM3NzB4Lm8KKworRldfUEFZTE9BRD15CitGV19QQVlMT0FEX09GRlNFVD0weDIwMDAw MApkaWZmIC0tZ2l0IGEvcGxhdGZvcm0vZ2VuZXJpYy9pbmNsdWRlL2Vzd2luL2VpYzc3MHguaCBi L3BsYXRmb3JtL2dlbmVyaWMvaW5jbHVkZS9lc3dpbi9laWM3NzB4LmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAuLjhjZTIzMjgzCi0tLSAvZGV2L251bGwKKysrIGIvcGxhdGZv cm0vZ2VuZXJpYy9pbmNsdWRlL2Vzd2luL2VpYzc3MHguaApAQCAtMCwwICsxLDczIEBACisvKgor ICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZQorICoKKyAqIENvcHlyaWdo dCAoYykgMjAyNSBCbyBHYW4gPGdhbmJvaW5nQGdtYWlsLmNvbT4KKyAqCisgKi8KKworI2lmbmRl ZiBfX0VJQzc3MFhfSF9fCisjZGVmaW5lIF9fRUlDNzcwWF9IX18KKworLyogQ1NScyAqLworI2Rl ZmluZSBFSUM3NzBYX0NTUl9CUlBSRURJQ1QJMHg3YzAKKyNkZWZpbmUgRUlDNzcwWF9DU1JfRkVB VDAJMHg3YzEKKyNkZWZpbmUgRUlDNzcwWF9DU1JfRkVBVDEJMHg3YzIKKyNkZWZpbmUgRUlDNzcw WF9DU1JfTDFfSFdQRgkweDdjMworI2RlZmluZSBFSUM3NzBYX0NTUl9MMl9IV1BGCTB4N2M0CisK Ky8qIEhhcnQgSUQgdG8gY29yZS9kaWUgY29udmVyc2lvbiAqLworI2RlZmluZSBDUFVfQ09SRV9C SVRTCQkyCisjZGVmaW5lIENQVV9DT1JFX01BU0sJCSgoMSA8PCBDUFVfQ09SRV9CSVRTKSAtIDEp CisjZGVmaW5lIENQVV9ESUVfU0hJRlQJCUNQVV9DT1JFX0JJVFMKKyNkZWZpbmUgQ1BVX0RJRV9C SVRTCQkxCisjZGVmaW5lIENQVV9ESUVfTUFTSwkJKCgxIDw8IENQVV9ESUVfU0hJRlQpIC0gMSkK KworI2RlZmluZSBoYXJ0X2NvcmUoaSkJCSgoaSkgJiBDUFVfQ09SRV9NQVNLKQorI2RlZmluZSBo YXJ0X2RpZShpKQkJKCgoaSkgPj4gQ1BVX0RJRV9TSElGVCkgJiBDUFVfRElFX01BU0spCisjZGVm aW5lIGN1cnJlbnRfaGFydF9jb3JlKCkJaGFydF9jb3JlKGN1cnJlbnRfaGFydGlkKCkpCisjZGVm aW5lIGN1cnJlbnRfaGFydF9kaWUoKQloYXJ0X2RpZShjdXJyZW50X2hhcnRpZCgpKQorCisvKiBQ NTUwIEludGVybmFsIGFuZCBTeXN0ZW0gUG9ydCAwICovCisjZGVmaW5lIEVJQzc3MFhfUDU1MElO VF9TSVpFCTB4MjAwMDAwMDBVTAorI2RlZmluZSBFSUM3NzBYX1A1NTBJTlRfQkFTRShkKQkoMFVM ICsgRUlDNzcwWF9QNTUwSU5UX1NJWkUgKiAoZCkpCisjZGVmaW5lIEVJQzc3MFhfUDU1MElOVF9M T0NBTAlFSUM3NzBYX1A1NTBJTlRfQkFTRShjdXJyZW50X2hhcnRfZGllKCkpCisjZGVmaW5lIEVJ Qzc3MFhfVEw2NEQyRF9PVVQJKEVJQzc3MFhfUDU1MElOVF9MT0NBTCArIDB4MjAwMDAwKQorI2Rl ZmluZSBFSUM3NzBYX1RMMjU2RDJEX09VVAkoRUlDNzcwWF9QNTUwSU5UX0xPQ0FMICsgMHgyMDIw MDApCisjZGVmaW5lIEVJQzc3MFhfVEwyNTZEMkRfSU4JKEVJQzc3MFhfUDU1MElOVF9MT0NBTCAr IDB4MjA0MDAwKQorI2RlZmluZSBFSUM3NzBYX0wzX1pFUk9fU0laRQkweDQwMDAwMFVMCisjZGVm aW5lIEVJQzc3MFhfTDNfWkVST19CQVNFKGQpCShFSUM3NzBYX1A1NTBJTlRfQkFTRShkKSArIDB4 MWEwMDAwMDApCisjZGVmaW5lIEVJQzc3MFhfTDNfWkVST19MT0NBTAlFSUM3NzBYX0wzX1pFUk9f QkFTRShjdXJyZW50X2hhcnRfZGllKCkpCisjZGVmaW5lIEVJQzc3MFhfTDNfWkVST19SRU1PVEUJ RUlDNzcwWF9MM19aRVJPX0JBU0UoMSAtIGN1cnJlbnRfaGFydF9kaWUoKSkKKworI2RlZmluZSBF SUM3NzBYX1NZU1BPUlRfU0laRQkweDIwMDAwMDAwVUwKKyNkZWZpbmUgRUlDNzcwWF9TWVNQT1JU X0JBU0UoZCkJKDB4NDAwMDAwMDBVTCArIEVJQzc3MFhfU1lTUE9SVF9TSVpFICogKGQpKQorI2Rl ZmluZSBFSUM3NzBYX1NZU1BPUlRfTE9DQUwJRUlDNzcwWF9TWVNQT1JUX0JBU0UoY3VycmVudF9o YXJ0X2RpZSgpKQorI2RlZmluZSBFSUM3NzBYX1NZU0NSRwkJKEVJQzc3MFhfU1lTUE9SVF9MT0NB TCArIDB4MTE4MjgwMDBVTCkKKyNkZWZpbmUgRUlDNzcwWF9TWVNDUkdfUlNUCShFSUM3NzBYX1NZ U0NSRyArIDB4MzAwVUwpCisjZGVmaW5lIEVJQzc3MFhfU1lTQ1JHX1JTVF9WQUwJMHgxQUMwRkZF NlVMCisKKy8qIE1lbW9yeSBQb3J0cyAqLworI2RlZmluZSBFSUM3NzBYX01FTVBPUlRfQkFTRQkw eDAwODAwMDAwMDBVTCAvLyAyRworI2RlZmluZSBFSUM3NzBYX01FTVBPUlRfU0laRQkweDdmODAw MDAwMDBVTCAvLyArNTEwRworI2RlZmluZSBFSUM3NzBYX01FTVBPUlRfTElNSVQJKEVJQzc3MFhf TUVNUE9SVF9CQVNFICsgRUlDNzcwWF9NRU1QT1JUX1NJWkUpCisjZGVmaW5lIEVJQzc3MFhfRDBf TUVNX0JBU0UJMHgwMDgwMDAwMDAwVUwgLy8gMkcKKyNkZWZpbmUgRUlDNzcwWF9EMF9NRU1fU0la RQkweDBmODAwMDAwMDBVTCAvLyArNjJHCisjZGVmaW5lIEVJQzc3MFhfRDBfTUVNX0xJTUlUCShF SUM3NzBYX0QwX01FTV9CQVNFICsgRUlDNzcwWF9EMF9NRU1fU0laRSkKKyNkZWZpbmUgRUlDNzcw WF9EMV9NRU1fQkFTRQkweDIwMDAwMDAwMDBVTCAvLyAxMjhHCisjZGVmaW5lIEVJQzc3MFhfRDFf TUVNX1NJWkUJMHgxMDAwMDAwMDAwVUwgLy8gKzY0RworI2RlZmluZSBFSUM3NzBYX0QxX01FTV9M SU1JVAkoRUlDNzcwWF9EMV9NRU1fQkFTRSArIEVJQzc3MFhfRDFfTUVNX1NJWkUpCisjZGVmaW5l IEVJQzc3MFhfQ0FDSEVEX0JBU0UJKGN1cnJlbnRfaGFydF9kaWUoKSA/IFwKKwkJCQlFSUM3NzBY X0QxX01FTV9CQVNFIDogXAorCQkJCUVJQzc3MFhfRDBfTUVNX0JBU0UpCisKKy8qIFVuY2FjaGVk IG1lbW9yeSBtYXBwZWQgaW4gU3lzdGVtIFBvcnQgMSAqLworI2RlZmluZSBFSUM3NzBYX0QwX1VD X0JBU0UJMHhjMDAwMDAwMDAwVUwKKyNkZWZpbmUgRUlDNzcwWF9EMV9VQ19CQVNFCTB4ZTAwMDAw MDAwMFVMCisjZGVmaW5lIEVJQzc3MFhfVU5DQUNIRURfQkFTRQkoY3VycmVudF9oYXJ0X2RpZSgp ID8gXAorCQkJCUVJQzc3MFhfRDFfVUNfQkFTRSA6IFwKKwkJCQlFSUM3NzBYX0QwX1VDX0JBU0Up CisKKyNkZWZpbmUgRUlDNzcwWF9UT19VTkNBQ0hFRCh4KQkoKHgpIC0gRUlDNzcwWF9DQUNIRURf QkFTRSArIFwKKwkJCQlFSUM3NzBYX1VOQ0FDSEVEX0JBU0UpCisKKyNlbmRpZgotLSAKMi4zNC4x CgoKLS0gCm9wZW5zYmkgbWFpbGluZyBsaXN0Cm9wZW5zYmlAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL29wZW5zYmkK