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 BBE26C53210 for ; Tue, 3 Jan 2023 03:38:56 +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=GGC26Pqi8uIjNN20r6bpLEX9a/ogKklZ3R4Yne3uSV8=; b=Pnl6Xmf+IOLT45 hGNSIe8Hvtf7KW75GYsOLmsmIscwvUz36/SUVq6SaYNlIWFETyax7Tc4rC8G9lQYkB3OWTUO4a6Dt F8NqL07P8E+wdRoBNHsYx8cub6FlFWXUyVRFHYHjsRq30It2ZyBi8HkGDOogeD/40E3UTZUnsC97G db8pt3gvgjLV9uiuyRjbnsGniUgmkxtcBCqwKKAtgfj/p8ApTiWScgqH+B9h5X79Jgko8Y7d0kgdN ryaekCjSjyFGK9Oz2wPugXJSacBsZvXidgBsohL/2xrSp6p28eKqBUz5vkrVqvJ2Eib617mL20Jzh w+5A+x65ix5cB5NgEp9Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pCY8U-00G8Hp-5N; Tue, 03 Jan 2023 03:38:46 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pCY6H-00G7Ag-Km for linux-riscv@lists.infradead.org; Tue, 03 Jan 2023 03:36:33 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 24ECE61197; Tue, 3 Jan 2023 03:36:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C390C433D2; Tue, 3 Jan 2023 03:36:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1672716988; bh=hQNXUuGxP47YsJ4qagNhW2kGdr9CJOxyB3xyABvhBT8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A2NkfoyuQDEX2qgKJzNgAE+GUJHpy1uNsA2Yvz3AIya75ietIftbPQNkD+6EVRvcx 2/bCdi0S8xhNod+nUMlAzQBYAaJLldUHzzCGpStgtBIXSftRsMofkLbCszD4wtCpQW /1JxsfJvA4GjbYnKRcGAXL0/rRluQw17R1AXgoNtVXONk3Dr3ay4xOXKHD47s90Tum gfYpjk3uPbEt7aSwslNzKUAJX2ilSZtfR7X6yEUOjlTPAYT7pzT3OLpckS74/B5/jB 3HOK0TCaxKikOpc7ySHBy85axVvQ0b2Yruz87HkbUhjmpTPHmpfNkr6j9VPnyvY8un BvYU4FB6F209A== From: guoren@kernel.org To: arnd@arndb.de, guoren@kernel.org, palmer@rivosinc.com, tglx@linutronix.de, peterz@infradead.org, luto@kernel.org, conor.dooley@microchip.com, heiko@sntech.de, jszhang@kernel.org, lazyparser@gmail.com, falcon@tinylab.org, chenhuacai@kernel.org, apatel@ventanamicro.com, atishp@atishpatra.org, mark.rutland@arm.com, ben@decadent.org.uk, bjorn@kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, Guo Ren , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Yipeng Zou Subject: [PATCH -next V12 4/7] riscv: entry: Convert to generic entry Date: Mon, 2 Jan 2023 22:35:28 -0500 Message-Id: <20230103033531.2011112-5-guoren@kernel.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20230103033531.2011112-1-guoren@kernel.org> References: <20230103033531.2011112-1-guoren@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230102_193629_836052_D1F8BBEF X-CRM114-Status: GOOD ( 30.67 ) X-BeenThere: linux-riscv@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: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org RnJvbTogR3VvIFJlbiA8Z3VvcmVuQGxpbnV4LmFsaWJhYmEuY29tPgoKVGhpcyBwYXRjaCBjb252 ZXJ0cyByaXNjdiB0byB1c2UgdGhlIGdlbmVyaWMgZW50cnkgaW5mcmFzdHJ1Y3R1cmUgZnJvbQpr ZXJuZWwvZW50cnkvKi4gVGhlIGdlbmVyaWMgZW50cnkgbWFrZXMgbWFpbnRhaW5lcnMnIHdvcmsg ZWFzaWVyIGFuZApjb2RlcyBtb3JlIGVsZWdhbnQuIEhlcmUgYXJlIHRoZSBjaGFuZ2VzOgoKIC0g TW9yZSBjbGVhciBlbnRyeS5TIHdpdGggaGFuZGxlX2V4Y2VwdGlvbiBhbmQgcmV0X2Zyb21fZXhj ZXB0aW9uCiAtIEdldCByaWQgb2YgY29tcGxleCBjdXN0b20gc2lnbmFsIGltcGxlbWVudGF0aW9u CiAtIE1vdmUgc3lzY2FsbCBwcm9jZWR1cmUgZnJvbSBhc3NlbWJseSB0byBDLCB3aGljaCBpcyBt dWNoIG1vcmUKICAgcmVhZGFibGUuCiAtIENvbm5lY3QgcmV0X2Zyb21fZm9yayAmIHJldF9mcm9t X2tlcm5lbF90aHJlYWQgdG8gZ2VuZXJpYyBlbnRyeS4KIC0gV3JhcCB3aXRoIGlycWVudHJ5X2Vu dGVyL2V4aXQgYW5kIHN5c2NhbGxfZW50ZXIvZXhpdF9mcm9tX3VzZXJfbW9kZQogLSBVc2UgdGhl IHN0YW5kYXJkIHByZWVtcHRpb24gY29kZSBpbnN0ZWFkIG9mIGN1c3RvbQoKU3VnZ2VzdGVkLWJ5 OiBIdWFjYWkgQ2hlbiA8Y2hlbmh1YWNhaUBrZXJuZWwub3JnPgpSZXZpZXdlZC1ieTogQmrDtnJu IFTDtnBlbCA8Ympvcm5Acml2b3NpbmMuY29tPgpUZXN0ZWQtYnk6IFlpcGVuZyBab3UgPHpvdXlp cGVuZ0BodWF3ZWkuY29tPgpUZXN0ZWQtYnk6IEppc2hlbmcgWmhhbmcgPGpzemhhbmdAa2VybmVs Lm9yZz4KU2lnbmVkLW9mZi1ieTogR3VvIFJlbiA8Z3VvcmVuQGxpbnV4LmFsaWJhYmEuY29tPgpT aWduZWQtb2ZmLWJ5OiBHdW8gUmVuIDxndW9yZW5Aa2VybmVsLm9yZz4KQ2M6IEJlbiBIdXRjaGlu Z3MgPGJlbkBkZWNhZGVudC5vcmcudWs+Ci0tLQogYXJjaC9yaXNjdi9LY29uZmlnICAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Nzci5oICAgICAgICAg IHwgICAxIC0KIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vZW50cnktY29tbW9uLmggfCAgIDggKwog YXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wdHJhY2UuaCAgICAgICB8ICAxMCArLQogYXJjaC9yaXNj di9pbmNsdWRlL2FzbS9zdGFja3RyYWNlLmggICB8ICAgNSArCiBhcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL3N5c2NhbGwuaCAgICAgIHwgICA2ICsKIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vdGhyZWFk X2luZm8uaCAgfCAgMTMgKy0KIGFyY2gvcmlzY3Yva2VybmVsL2VudHJ5LlMgICAgICAgICAgICAg fCAyNTIgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGFyY2gvcmlzY3Yva2VybmVsL2lycS5j ICAgICAgICAgICAgICAgfCAgMTUgKysKIGFyY2gvcmlzY3Yva2VybmVsL3B0cmFjZS5jICAgICAg ICAgICAgfCAgNDMgLS0tLS0KIGFyY2gvcmlzY3Yva2VybmVsL3NpZ25hbC5jICAgICAgICAgICAg fCAgMjkgKy0tCiBhcmNoL3Jpc2N2L2tlcm5lbC9zeXNfcmlzY3YuYyAgICAgICAgIHwgIDMxICsr KysKIGFyY2gvcmlzY3Yva2VybmVsL3RyYXBzLmMgICAgICAgICAgICAgfCAgODIgKysrKysrKy0t CiBhcmNoL3Jpc2N2L21tL2ZhdWx0LmMgICAgICAgICAgICAgICAgIHwgIDE2ICstCiAxNCBmaWxl cyBjaGFuZ2VkLCAyMDAgaW5zZXJ0aW9ucygrKSwgMzEyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vZW50cnktY29tbW9uLmgKCmRpZmYgLS1n aXQgYS9hcmNoL3Jpc2N2L0tjb25maWcgYi9hcmNoL3Jpc2N2L0tjb25maWcKaW5kZXggZTJiNjU2 MDQzYWJmLi41NTJkN2ZkNjhhZWIgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvS2NvbmZpZworKysg Yi9hcmNoL3Jpc2N2L0tjb25maWcKQEAgLTU4LDYgKzU4LDcgQEAgY29uZmlnIFJJU0NWCiAJc2Vs ZWN0IEdFTkVSSUNfQVRPTUlDNjQgaWYgITY0QklUCiAJc2VsZWN0IEdFTkVSSUNfQ0xPQ0tFVkVO VFNfQlJPQURDQVNUIGlmIFNNUAogCXNlbGVjdCBHRU5FUklDX0VBUkxZX0lPUkVNQVAKKwlzZWxl Y3QgR0VORVJJQ19FTlRSWQogCXNlbGVjdCBHRU5FUklDX0dFVFRJTUVPRkRBWSBpZiBIQVZFX0dF TkVSSUNfVkRTTwogCXNlbGVjdCBHRU5FUklDX0lETEVfUE9MTF9TRVRVUAogCXNlbGVjdCBHRU5F UklDX0lPUkVNQVAgaWYgTU1VCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Nz ci5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jc3IuaAppbmRleCAwZTU3MWY2NDgzZDkuLjdj MmI4Y2RiN2I3NyAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jc3IuaAorKysg Yi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2Nzci5oCkBAIC00MCw3ICs0MCw2IEBACiAjZGVmaW5l IFNSX1VYTAkJX0FDKDB4MzAwMDAwMDAwLCBVTCkgLyogWExFTiBtYXNrIGZvciBVLW1vZGUgKi8K ICNkZWZpbmUgU1JfVVhMXzMyCV9BQygweDEwMDAwMDAwMCwgVUwpIC8qIFhMRU4gPSAzMiBmb3Ig VS1tb2RlICovCiAjZGVmaW5lIFNSX1VYTF82NAlfQUMoMHgyMDAwMDAwMDAsIFVMKSAvKiBYTEVO ID0gNjQgZm9yIFUtbW9kZSAqLwotI2RlZmluZSBTUl9VWExfU0hJRlQJMzIKICNlbmRpZgogCiAv KiBTQVRQIGZsYWdzICovCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2VudHJ5 LWNvbW1vbi5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9lbnRyeS1jb21tb24uaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjE2MzZhYzJhZjI4ZQotLS0gL2Rldi9u dWxsCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vZW50cnktY29tbW9uLmgKQEAgLTAsMCAr MSw4IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworCisjaWZuZGVm IF9BU01fUklTQ1ZfRU5UUllfQ09NTU9OX0gKKyNkZWZpbmUgX0FTTV9SSVNDVl9FTlRSWV9DT01N T05fSAorCisjaW5jbHVkZSA8YXNtL3N0YWNrdHJhY2UuaD4KKworI2VuZGlmIC8qIF9BU01fUklT Q1ZfRU5UUllfQ09NTU9OX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20v cHRyYWNlLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3B0cmFjZS5oCmluZGV4IDZlY2Q0NjEx MjlkMi4uYjViMGFkY2M4NWMxIDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3B0 cmFjZS5oCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcHRyYWNlLmgKQEAgLTUzLDYgKzUz LDkgQEAgc3RydWN0IHB0X3JlZ3MgewogCXVuc2lnbmVkIGxvbmcgb3JpZ19hMDsKIH07CiAKKyNk ZWZpbmUgUFRSQUNFX1NZU0VNVQkJCTB4MWYKKyNkZWZpbmUgUFRSQUNFX1NZU0VNVV9TSU5HTEVT VEVQCTB4MjAKKwogI2lmZGVmIENPTkZJR182NEJJVAogI2RlZmluZSBSRUdfRk1UICIlMDE2bHgi CiAjZWxzZQpAQCAtMTIxLDggKzEyNCw2IEBAIGV4dGVybiB1bnNpZ25lZCBsb25nIHJlZ3NfZ2V0 X2tlcm5lbF9zdGFja19udGgoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAKIHZvaWQgcHJlcGFyZV9m dHJhY2VfcmV0dXJuKHVuc2lnbmVkIGxvbmcgKnBhcmVudCwgdW5zaWduZWQgbG9uZyBzZWxmX2Fk ZHIsCiAJCQkgICB1bnNpZ25lZCBsb25nIGZyYW1lX3BvaW50ZXIpOwotaW50IGRvX3N5c2NhbGxf dHJhY2VfZW50ZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwotdm9pZCBkb19zeXNjYWxsX3RyYWNl X2V4aXQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwogCiAvKioKICAqIHJlZ3NfZ2V0X3JlZ2lzdGVy KCkgLSBnZXQgcmVnaXN0ZXIgdmFsdWUgZnJvbSBpdHMgb2Zmc2V0CkBAIC0xNzIsNiArMTczLDEx IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyByZWdzX2dldF9rZXJuZWxfYXJndW1lbnQo c3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50 IHJlZ3NfaXJxc19kaXNhYmxlZChzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlyZXR1cm4gIShy ZWdzLT5zdGF0dXMgJiBTUl9QSUUpOworfQorCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCiAK ICNlbmRpZiAvKiBfQVNNX1JJU0NWX1BUUkFDRV9IICovCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2 L2luY2x1ZGUvYXNtL3N0YWNrdHJhY2UuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3RhY2t0 cmFjZS5oCmluZGV4IDM0NTBjMTkxMmFmZC4uZjdlOGVmMjQxOGI5IDEwMDY0NAotLS0gYS9hcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL3N0YWNrdHJhY2UuaAorKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL3N0YWNrdHJhY2UuaApAQCAtMTYsNCArMTYsOSBAQCBleHRlcm4gdm9pZCBub3RyYWNlIHdh bGtfc3RhY2tmcmFtZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHN0cnVjdCBwdF9yZWdzICpy ZQogZXh0ZXJuIHZvaWQgZHVtcF9iYWNrdHJhY2Uoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHN0cnVj dCB0YXNrX3N0cnVjdCAqdGFzaywKIAkJCSAgIGNvbnN0IGNoYXIgKmxvZ2x2bCk7CiAKK3N0YXRp YyBpbmxpbmUgYm9vbCBvbl90aHJlYWRfc3RhY2sodm9pZCkKK3sKKwlyZXR1cm4gISgoKHVuc2ln bmVkIGxvbmcpKGN1cnJlbnQtPnN0YWNrKSBeIGN1cnJlbnRfc3RhY2tfcG9pbnRlcikgJiB+KFRI UkVBRF9TSVpFIC0gMSkpOworfQorCiAjZW5kaWYgLyogX0FTTV9SSVNDVl9TVEFDS1RSQUNFX0gg Ki8KZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3lzY2FsbC5oIGIvYXJjaC9y aXNjdi9pbmNsdWRlL2FzbS9zeXNjYWxsLmgKaW5kZXggMzg0YTYzYjg2NDIwLi42YzU3M2YxODAz MGIgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vc3lzY2FsbC5oCisrKyBiL2Fy Y2gvcmlzY3YvaW5jbHVkZS9hc20vc3lzY2FsbC5oCkBAIC03NCw1ICs3NCwxMSBAQCBzdGF0aWMg aW5saW5lIGludCBzeXNjYWxsX2dldF9hcmNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKICNl bmRpZgogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgYXJjaF9zeXNjYWxsX2lzX3Zkc29fc2lncmV0 dXJuKHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXJldHVybiBmYWxzZTsKK30KKwogYXNtbGlu a2FnZSBsb25nIHN5c19yaXNjdl9mbHVzaF9pY2FjaGUodWludHB0cl90LCB1aW50cHRyX3QsIHVp bnRwdHJfdCk7Cithc21saW5rYWdlIHZvaWQgZG9fc3lzX2VjYWxsX3Uoc3RydWN0IHB0X3JlZ3Mg KnJlZ3MpOwogI2VuZGlmCS8qIF9BU01fUklTQ1ZfU1lTQ0FMTF9IICovCmRpZmYgLS1naXQgYS9h cmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL3RocmVhZF9pbmZvLmgKaW5kZXggNjczMjJmODc4ZTBkLi43ZGU0ZmI5NmYwYjUgMTAwNjQ0 Ci0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaAorKysgYi9hcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKQEAgLTY2LDYgKzY2LDcgQEAgc3RydWN0IHRo cmVhZF9pbmZvIHsKIAlsb25nCQkJa2VybmVsX3NwOwkvKiBLZXJuZWwgc3RhY2sgcG9pbnRlciAq LwogCWxvbmcJCQl1c2VyX3NwOwkvKiBVc2VyIHN0YWNrIHBvaW50ZXIgKi8KIAlpbnQJCQljcHU7 CisJdW5zaWduZWQgbG9uZwkJc3lzY2FsbF93b3JrOwkvKiBTWVNDQUxMX1dPUktfIGZsYWdzICov CiB9OwogCiAvKgpAQCAtODgsMjYgKzg5LDE4IEBAIHN0cnVjdCB0aHJlYWRfaW5mbyB7CiAgKiAt IHBlbmRpbmcgd29yay10by1iZS1kb25lIGZsYWdzIGFyZSBpbiBsb3dlc3QgaGFsZi13b3JkCiAg KiAtIG90aGVyIGZsYWdzIGluIHVwcGVyIGhhbGYtd29yZChzKQogICovCi0jZGVmaW5lIFRJRl9T WVNDQUxMX1RSQUNFCTAJLyogc3lzY2FsbCB0cmFjZSBhY3RpdmUgKi8KICNkZWZpbmUgVElGX05P VElGWV9SRVNVTUUJMQkvKiBjYWxsYmFjayBiZWZvcmUgcmV0dXJuaW5nIHRvIHVzZXIgKi8KICNk ZWZpbmUgVElGX1NJR1BFTkRJTkcJCTIJLyogc2lnbmFsIHBlbmRpbmcgKi8KICNkZWZpbmUgVElG X05FRURfUkVTQ0hFRAkzCS8qIHJlc2NoZWR1bGluZyBuZWNlc3NhcnkgKi8KICNkZWZpbmUgVElG X1JFU1RPUkVfU0lHTUFTSwk0CS8qIHJlc3RvcmUgc2lnbmFsIG1hc2sgaW4gZG9fc2lnbmFsKCkg Ki8KICNkZWZpbmUgVElGX01FTURJRQkJNQkvKiBpcyB0ZXJtaW5hdGluZyBkdWUgdG8gT09NIGtp bGxlciAqLwotI2RlZmluZSBUSUZfU1lTQ0FMTF9UUkFDRVBPSU5UICA2ICAgICAgIC8qIHN5c2Nh bGwgdHJhY2Vwb2ludCBpbnN0cnVtZW50YXRpb24gKi8KLSNkZWZpbmUgVElGX1NZU0NBTExfQVVE SVQJNwkvKiBzeXNjYWxsIGF1ZGl0aW5nICovCi0jZGVmaW5lIFRJRl9TRUNDT01QCQk4CS8qIHN5 c2NhbGwgc2VjdXJlIGNvbXB1dGluZyAqLwogI2RlZmluZSBUSUZfTk9USUZZX1NJR05BTAk5CS8q IHNpZ25hbCBub3RpZmljYXRpb25zIGV4aXN0ICovCiAjZGVmaW5lIFRJRl9VUFJPQkUJCTEwCS8q IHVwcm9iZSBicmVha3BvaW50IG9yIHNpbmdsZXN0ZXAgKi8KICNkZWZpbmUgVElGXzMyQklUCQkx MQkvKiBjb21wYXQtbW9kZSAzMmJpdCBwcm9jZXNzICovCiAKLSNkZWZpbmUgX1RJRl9TWVNDQUxM X1RSQUNFCSgxIDw8IFRJRl9TWVNDQUxMX1RSQUNFKQogI2RlZmluZSBfVElGX05PVElGWV9SRVNV TUUJKDEgPDwgVElGX05PVElGWV9SRVNVTUUpCiAjZGVmaW5lIF9USUZfU0lHUEVORElORwkJKDEg PDwgVElGX1NJR1BFTkRJTkcpCiAjZGVmaW5lIF9USUZfTkVFRF9SRVNDSEVECSgxIDw8IFRJRl9O RUVEX1JFU0NIRUQpCi0jZGVmaW5lIF9USUZfU1lTQ0FMTF9UUkFDRVBPSU5UCSgxIDw8IFRJRl9T WVNDQUxMX1RSQUNFUE9JTlQpCi0jZGVmaW5lIF9USUZfU1lTQ0FMTF9BVURJVAkoMSA8PCBUSUZf U1lTQ0FMTF9BVURJVCkKLSNkZWZpbmUgX1RJRl9TRUNDT01QCQkoMSA8PCBUSUZfU0VDQ09NUCkK ICNkZWZpbmUgX1RJRl9OT1RJRllfU0lHTkFMCSgxIDw8IFRJRl9OT1RJRllfU0lHTkFMKQogI2Rl ZmluZSBfVElGX1VQUk9CRQkJKDEgPDwgVElGX1VQUk9CRSkKIApAQCAtMTE1LDggKzEwOCw0IEBA IHN0cnVjdCB0aHJlYWRfaW5mbyB7CiAJKF9USUZfTk9USUZZX1JFU1VNRSB8IF9USUZfU0lHUEVO RElORyB8IF9USUZfTkVFRF9SRVNDSEVEIHwgXAogCSBfVElGX05PVElGWV9TSUdOQUwgfCBfVElG X1VQUk9CRSkKIAotI2RlZmluZSBfVElGX1NZU0NBTExfV09SSyBcCi0JKF9USUZfU1lTQ0FMTF9U UkFDRSB8IF9USUZfU1lTQ0FMTF9UUkFDRVBPSU5UIHwgX1RJRl9TWVNDQUxMX0FVRElUIHwgXAot CSBfVElGX1NFQ0NPTVApCi0KICNlbmRpZiAvKiBfQVNNX1JJU0NWX1RIUkVBRF9JTkZPX0ggKi8K ZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL2VudHJ5LlMgYi9hcmNoL3Jpc2N2L2tlcm5l bC9lbnRyeS5TCmluZGV4IDk5ZDM4ZmRmOGIxOC4uOTk3ODg2ZmIzN2EyIDEwMDY0NAotLS0gYS9h cmNoL3Jpc2N2L2tlcm5lbC9lbnRyeS5TCisrKyBiL2FyY2gvcmlzY3Yva2VybmVsL2VudHJ5LlMK QEAgLTE0LDExICsxNCw3IEBACiAjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CiAjaW5jbHVk ZSA8YXNtL2VycmF0YV9saXN0Lmg+CiAKLSNpZiAhSVNfRU5BQkxFRChDT05GSUdfUFJFRU1QVElP TikKLS5zZXQgcmVzdW1lX2tlcm5lbCwgcmVzdG9yZV9hbGwKLSNlbmRpZgotCi1FTlRSWShoYW5k bGVfZXhjZXB0aW9uKQorU1lNX0NPREVfU1RBUlQoaGFuZGxlX2V4Y2VwdGlvbikKIAkvKgogCSAq IElmIGNvbWluZyBmcm9tIHVzZXJzcGFjZSwgcHJlc2VydmUgdGhlIHVzZXIgdGhyZWFkIHBvaW50 ZXIgYW5kIGxvYWQKIAkgKiB0aGUga2VybmVsIHRocmVhZCBwb2ludGVyLiAgSWYgd2UgY2FtZSBm cm9tIHRoZSBrZXJuZWwsIHRoZSBzY3JhdGNoCkBAIC0xMDYsMTkgKzEwMiw4IEBAIF9zYXZlX2Nv bnRleHQ6CiAub3B0aW9uIG5vcmVsYXgKIAlsYSBncCwgX19nbG9iYWxfcG9pbnRlciQKIC5vcHRp b24gcG9wCi0KLSNpZmRlZiBDT05GSUdfVFJBQ0VfSVJRRkxBR1MKLQljYWxsIF9fdHJhY2VfaGFy ZGlycXNfb2ZmCi0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19DT05URVhUX1RSQUNLSU5HX1VTRVIK LQkvKiBJZiBwcmV2aW91cyBzdGF0ZSBpcyBpbiB1c2VyIG1vZGUsIGNhbGwgdXNlcl9leGl0X2Nh bGxhYmxlKCkuICovCi0JbGkgICBhMCwgU1JfUFAKLQlhbmQgYTAsIHMxLCBhMAotCWJuZXogYTAs IHNraXBfY29udGV4dF90cmFja2luZwotCWNhbGwgdXNlcl9leGl0X2NhbGxhYmxlCi1za2lwX2Nv bnRleHRfdHJhY2tpbmc6Ci0jZW5kaWYKKwltb3ZlIGEwLCBzcCAvKiBwdF9yZWdzICovCisJbGEg cmEsIHJldF9mcm9tX2V4Y2VwdGlvbgogCiAJLyoKIAkgKiBNU0Igb2YgY2F1c2UgZGlmZmVyZW50 aWF0ZXMgYmV0d2VlbgpAQCAtMTI2LDEzNCArMTExLDMyIEBAIHNraXBfY29udGV4dF90cmFja2lu ZzoKIAkgKi8KIAliZ2UgczQsIHplcm8sIDFmCiAKLQlsYSByYSwgcmV0X2Zyb21fZXhjZXB0aW9u Ci0KIAkvKiBIYW5kbGUgaW50ZXJydXB0cyAqLwotCW1vdmUgYTAsIHNwIC8qIHB0X3JlZ3MgKi8K LQlsYSBhMSwgZ2VuZXJpY19oYW5kbGVfYXJjaF9pcnEKLQlqciBhMQorCXRhaWwgZG9fcmlzY3Zf aXJxCiAxOgotCS8qCi0JICogRXhjZXB0aW9ucyBydW4gd2l0aCBpbnRlcnJ1cHRzIGVuYWJsZWQg b3IgZGlzYWJsZWQgZGVwZW5kaW5nIG9uIHRoZQotCSAqIHN0YXRlIG9mIFNSX1BJRSBpbiBtL3Nz dGF0dXMuCi0JICovCi0JYW5kaSB0MCwgczEsIFNSX1BJRQotCWJlcXogdDAsIDFmCi0JLyoga3By b2JlcywgZW50ZXJlZCB2aWEgZWJyZWFrLCBtdXN0IGhhdmUgaW50ZXJydXB0cyBkaXNhYmxlZC4g Ki8KLQlsaSB0MCwgRVhDX0JSRUFLUE9JTlQKLQliZXEgczQsIHQwLCAxZgotI2lmZGVmIENPTkZJ R19UUkFDRV9JUlFGTEFHUwotCWNhbGwgX190cmFjZV9oYXJkaXJxc19vbgotI2VuZGlmCi0JY3Ny cyBDU1JfU1RBVFVTLCBTUl9JRQotCi0xOgotCWxhIHJhLCByZXRfZnJvbV9leGNlcHRpb24KLQkv KiBIYW5kbGUgc3lzY2FsbHMgKi8KLQlsaSB0MCwgRVhDX1NZU0NBTEwKLQliZXEgczQsIHQwLCBo YW5kbGVfc3lzY2FsbAotCiAJLyogSGFuZGxlIG90aGVyIGV4Y2VwdGlvbnMgKi8KIAlzbGxpIHQw LCBzNCwgUklTQ1ZfTEdQVFIKIAlsYSB0MSwgZXhjcF92ZWN0X3RhYmxlCiAJbGEgdDIsIGV4Y3Bf dmVjdF90YWJsZV9lbmQKLQltb3ZlIGEwLCBzcCAvKiBwdF9yZWdzICovCiAJYWRkIHQwLCB0MSwg dDAKIAkvKiBDaGVjayBpZiBleGNlcHRpb24gY29kZSBsaWVzIHdpdGhpbiBib3VuZHMgKi8KLQli Z2V1IHQwLCB0MiwgMWYKKwliZ2V1IHQwLCB0MiwgMmYKIAlSRUdfTCB0MCwgMCh0MCkKIAlqciB0 MAotMToKLQl0YWlsIGRvX3RyYXBfdW5rbm93bgotCi1oYW5kbGVfc3lzY2FsbDoKLSNpZmRlZiBD T05GSUdfUklTQ1ZfTV9NT0RFCi0JLyoKLQkgKiBXaGVuIHJ1bm5pbmcgaXMgTS1Nb2RlIChubyBN TVUgY29uZmlnKSwgTVBJRSBkb2VzIG5vdCBnZXQgc2V0LgotCSAqIEFzIGEgcmVzdWx0LCB3ZSBu ZWVkIHRvIGZvcmNlIGVuYWJsZSBpbnRlcnJ1cHRzIGhlcmUgYmVjYXVzZQotCSAqIGhhbmRsZV9l eGNlcHRpb24gZGlkIG5vdCBkbyBzZXQgU1JfSUUgYXMgaXQgYWx3YXlzIHNlZXMgU1JfUElFCi0J ICogYmVpbmcgY2xlYXJlZC4KLQkgKi8KLQljc3JzIENTUl9TVEFUVVMsIFNSX0lFCi0jZW5kaWYK LSNpZiBkZWZpbmVkKENPTkZJR19UUkFDRV9JUlFGTEFHUykgfHwgZGVmaW5lZChDT05GSUdfQ09O VEVYVF9UUkFDS0lOR19VU0VSKQotCS8qIFJlY292ZXIgYTAgLSBhNyBmb3Igc3lzdGVtIGNhbGxz ICovCi0JUkVHX0wgYTAsIFBUX0EwKHNwKQotCVJFR19MIGExLCBQVF9BMShzcCkKLQlSRUdfTCBh MiwgUFRfQTIoc3ApCi0JUkVHX0wgYTMsIFBUX0EzKHNwKQotCVJFR19MIGE0LCBQVF9BNChzcCkK LQlSRUdfTCBhNSwgUFRfQTUoc3ApCi0JUkVHX0wgYTYsIFBUX0E2KHNwKQotCVJFR19MIGE3LCBQ VF9BNyhzcCkKLSNlbmRpZgotCSAvKiBzYXZlIHRoZSBpbml0aWFsIEEwIHZhbHVlIChuZWVkZWQg aW4gc2lnbmFsIGhhbmRsZXJzKSAqLwotCVJFR19TIGEwLCBQVF9PUklHX0EwKHNwKQotCS8qCi0J ICogQWR2YW5jZSBTRVBDIHRvIGF2b2lkIGV4ZWN1dGluZyB0aGUgb3JpZ2luYWwKLQkgKiBzY2Fs bCBpbnN0cnVjdGlvbiBvbiBzcmV0Ci0JICovCi0JYWRkaSBzMiwgczIsIDB4NAotCVJFR19TIHMy LCBQVF9FUEMoc3ApCi0JLyogVHJhY2Ugc3lzY2FsbHMsIGJ1dCBvbmx5IGlmIHJlcXVlc3RlZCBi eSB0aGUgdXNlci4gKi8KLQlSRUdfTCB0MCwgVEFTS19USV9GTEFHUyh0cCkKLQlhbmRpIHQwLCB0 MCwgX1RJRl9TWVNDQUxMX1dPUksKLQlibmV6IHQwLCBoYW5kbGVfc3lzY2FsbF90cmFjZV9lbnRl cgotY2hlY2tfc3lzY2FsbF9ucjoKLQkvKiBDaGVjayB0byBtYWtlIHN1cmUgd2UgZG9uJ3QganVt cCB0byBhIGJvZ3VzIHN5c2NhbGwgbnVtYmVyLiAqLwotCWxpIHQwLCBfX05SX3N5c2NhbGxzCi0J bGEgczAsIHN5c19uaV9zeXNjYWxsCi0JLyoKLQkgKiBTeXNjYWxsIG51bWJlciBoZWxkIGluIGE3 LgotCSAqIElmIHN5c2NhbGwgbnVtYmVyIGlzIGFib3ZlIGFsbG93ZWQgdmFsdWUsIHJlZGlyZWN0 IHRvIG5pX3N5c2NhbGwuCi0JICovCi0JYmdldSBhNywgdDAsIDNmCi0jaWZkZWYgQ09ORklHX0NP TVBBVAotCVJFR19MIHMwLCBQVF9TVEFUVVMoc3ApCi0Jc3JsaSBzMCwgczAsIFNSX1VYTF9TSElG VAotCWFuZGkgczAsIHMwLCAoU1JfVVhMID4+IFNSX1VYTF9TSElGVCkKLQlsaSB0MCwgKFNSX1VY TF8zMiA+PiBTUl9VWExfU0hJRlQpCi0Jc3ViIHQwLCBzMCwgdDAKLQlibmV6IHQwLCAxZgotCi0J LyogQ2FsbCBjb21wYXRfc3lzY2FsbCAqLwotCWxhIHMwLCBjb21wYXRfc3lzX2NhbGxfdGFibGUK LQlqIDJmCi0xOgotI2VuZGlmCi0JLyogQ2FsbCBzeXNjYWxsICovCi0JbGEgczAsIHN5c19jYWxs X3RhYmxlCiAyOgotCXNsbGkgdDAsIGE3LCBSSVNDVl9MR1BUUgotCWFkZCBzMCwgczAsIHQwCi0J UkVHX0wgczAsIDAoczApCi0zOgotCWphbHIgczAKLQotcmV0X2Zyb21fc3lzY2FsbDoKLQkvKiBT ZXQgdXNlciBhMCB0byBrZXJuZWwgYTAgKi8KLQlSRUdfUyBhMCwgUFRfQTAoc3ApCi0JLyoKLQkg KiBXZSBkaWRuJ3QgZXhlY3V0ZSB0aGUgYWN0dWFsIHN5c2NhbGwuCi0JICogU2VjY29tcCBhbHJl YWR5IHNldCByZXR1cm4gdmFsdWUgZm9yIHRoZSBjdXJyZW50IHRhc2sgcHRfcmVncy4KLQkgKiAo SWYgaXQgd2FzIGNvbmZpZ3VyZWQgd2l0aCBTRUNDT01QX1JFVF9FUlJOTy9UUkFDRSkKLQkgKi8K LXJldF9mcm9tX3N5c2NhbGxfcmVqZWN0ZWQ6Ci0jaWZkZWYgQ09ORklHX0RFQlVHX1JTRVEKLQlt b3ZlIGEwLCBzcAotCWNhbGwgcnNlcV9zeXNjYWxsCi0jZW5kaWYKLQkvKiBUcmFjZSBzeXNjYWxs cywgYnV0IG9ubHkgaWYgcmVxdWVzdGVkIGJ5IHRoZSB1c2VyLiAqLwotCVJFR19MIHQwLCBUQVNL X1RJX0ZMQUdTKHRwKQotCWFuZGkgdDAsIHQwLCBfVElGX1NZU0NBTExfV09SSwotCWJuZXogdDAs IGhhbmRsZV9zeXNjYWxsX3RyYWNlX2V4aXQKKwl0YWlsIGRvX3RyYXBfdW5rbm93bgorU1lNX0NP REVfRU5EKGhhbmRsZV9leGNlcHRpb24pCiAKKy8qCisgKiBUaGUgcmV0X2Zyb21fZXhjZXB0aW9u IG11c3QgYmUgY2FsbGVkIHdpdGggaW50ZXJydXB0IGRpc2FibGVkLiBIZXJlIGlzIHRoZQorICog Y2FsbGVyIGxpc3Q6CisgKiAgLSBoYW5kbGVfZXhjZXB0aW9uCisgKiAgLSByZXRfZnJvbV9mb3Jr CisgKiAgLSByZXRfZnJvbV9rZXJuZWxfdGhyZWFkCisgKi8KIFNZTV9DT0RFX1NUQVJUX05PQUxJ R04ocmV0X2Zyb21fZXhjZXB0aW9uKQogCVJFR19MIHMwLCBQVF9TVEFUVVMoc3ApCi0JY3NyYyBD U1JfU1RBVFVTLCBTUl9JRQotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotCWNhbGwgX190 cmFjZV9oYXJkaXJxc19vZmYKLSNlbmRpZgorCiAjaWZkZWYgQ09ORklHX1JJU0NWX01fTU9ERQog CS8qIHRoZSBNUFAgdmFsdWUgaXMgdG9vIGxhcmdlIHRvIGJlIHVzZWQgYXMgYW4gaW1tZWRpYXRl IGFyZyBmb3IgYWRkaSAqLwogCWxpIHQwLCBTUl9NUFAKQEAgLTI2MSwxNyArMTQ0LDcgQEAgU1lN X0NPREVfU1RBUlRfTk9BTElHTihyZXRfZnJvbV9leGNlcHRpb24pCiAjZWxzZQogCWFuZGkgczAs IHMwLCBTUl9TUFAKICNlbmRpZgotCWJuZXogczAsIHJlc3VtZV9rZXJuZWwKLVNZTV9DT0RFX0VO RChyZXRfZnJvbV9leGNlcHRpb24pCi0KLQkvKiBJbnRlcnJ1cHRzIG11c3QgYmUgZGlzYWJsZWQg aGVyZSBzbyBmbGFncyBhcmUgY2hlY2tlZCBhdG9taWNhbGx5ICovCi0JUkVHX0wgczAsIFRBU0tf VElfRkxBR1ModHApIC8qIGN1cnJlbnRfdGhyZWFkX2luZm8tPmZsYWdzICovCi0JYW5kaSBzMSwg czAsIF9USUZfV09SS19NQVNLCi0JYm5leiBzMSwgcmVzdW1lX3VzZXJzcGFjZV9zbG93Ci1yZXN1 bWVfdXNlcnNwYWNlOgotI2lmZGVmIENPTkZJR19DT05URVhUX1RSQUNLSU5HX1VTRVIKLQljYWxs IHVzZXJfZW50ZXJfY2FsbGFibGUKLSNlbmRpZgorCWJuZXogczAsIDFmCiAKIAkvKiBTYXZlIHVu d291bmQga2VybmVsIHN0YWNrIHBvaW50ZXIgaW4gdGhyZWFkX2luZm8gKi8KIAlhZGRpIHMwLCBz cCwgUFRfU0laRV9PTl9TVEFDSwpAQCAtMjgyLDE5ICsxNTUsNyBAQCByZXN1bWVfdXNlcnNwYWNl OgogCSAqIHN0cnVjdHVyZXMgYWdhaW4uCiAJICovCiAJY3NydyBDU1JfU0NSQVRDSCwgdHAKLQot cmVzdG9yZV9hbGw6Ci0jaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0JUkVHX0wgczEsIFBU X1NUQVRVUyhzcCkKLQlhbmRpIHQwLCBzMSwgU1JfUElFCi0JYmVxeiB0MCwgMWYKLQljYWxsIF9f dHJhY2VfaGFyZGlycXNfb24KLQlqIDJmCiAxOgotCWNhbGwgX190cmFjZV9oYXJkaXJxc19vZmYK LTI6Ci0jZW5kaWYKLQlSRUdfTCBhMCwgUFRfU1RBVFVTKHNwKQogCS8qCiAJICogVGhlIGN1cnJl bnQgbG9hZCByZXNlcnZhdGlvbiBpcyBlZmZlY3RpdmVseSBwYXJ0IG9mIHRoZSBwcm9jZXNzb3In cwogCSAqIHN0YXRlLCBpbiB0aGUgc2Vuc2UgdGhhdCBsb2FkIHJlc2VydmF0aW9ucyBjYW5ub3Qg YmUgc2hhcmVkIGJldHdlZW4KQEAgLTMxNSw5ICsxNzYsMTEgQEAgcmVzdG9yZV9hbGw6CiAJUkVH X0wgIGEyLCBQVF9FUEMoc3ApCiAJUkVHX1NDIHgwLCBhMiwgUFRfRVBDKHNwKQogCi0JY3NydyBD U1JfU1RBVFVTLCBhMAogCWNzcncgQ1NSX0VQQywgYTIKIAorCVJFR19MIGEwLCBQVF9TVEFUVVMo c3ApCisJY3NydyBDU1JfU1RBVFVTLCBhMAorCiAJUkVHX0wgeDEsICBQVF9SQShzcCkKIAlSRUdf TCB4MywgIFBUX0dQKHNwKQogCVJFR19MIHg0LCAgUFRfVFAoc3ApCkBAIC0zNTYsNDcgKzIxOSwx MCBAQCByZXN0b3JlX2FsbDoKICNlbHNlCiAJc3JldAogI2VuZGlmCi0KLSNpZiBJU19FTkFCTEVE KENPTkZJR19QUkVFTVBUSU9OKQotcmVzdW1lX2tlcm5lbDoKLQlSRUdfTCBzMCwgVEFTS19USV9Q UkVFTVBUX0NPVU5UKHRwKQotCWJuZXogczAsIHJlc3RvcmVfYWxsCi0JUkVHX0wgczAsIFRBU0tf VElfRkxBR1ModHApCi0JYW5kaSBzMCwgczAsIF9USUZfTkVFRF9SRVNDSEVECi0JYmVxeiBzMCwg cmVzdG9yZV9hbGwKLQljYWxsIHByZWVtcHRfc2NoZWR1bGVfaXJxCi0JaiByZXN0b3JlX2FsbAot I2VuZGlmCi0KLXJlc3VtZV91c2Vyc3BhY2Vfc2xvdzoKLQkvKiBFbnRlciBzbG93IHBhdGggZm9y IHN1cHBsZW1lbnRhcnkgcHJvY2Vzc2luZyAqLwotCW1vdmUgYTAsIHNwIC8qIHB0X3JlZ3MgKi8K LQltb3ZlIGExLCBzMCAvKiBjdXJyZW50X3RocmVhZF9pbmZvLT5mbGFncyAqLwotCWNhbGwgZG9f d29ya19wZW5kaW5nCi0JaiByZXN1bWVfdXNlcnNwYWNlCi0KLS8qIFNsb3cgcGF0aHMgZm9yIHB0 cmFjZS4gKi8KLWhhbmRsZV9zeXNjYWxsX3RyYWNlX2VudGVyOgotCW1vdmUgYTAsIHNwCi0JY2Fs bCBkb19zeXNjYWxsX3RyYWNlX2VudGVyCi0JbW92ZSB0MCwgYTAKLQlSRUdfTCBhMCwgUFRfQTAo c3ApCi0JUkVHX0wgYTEsIFBUX0ExKHNwKQotCVJFR19MIGEyLCBQVF9BMihzcCkKLQlSRUdfTCBh MywgUFRfQTMoc3ApCi0JUkVHX0wgYTQsIFBUX0E0KHNwKQotCVJFR19MIGE1LCBQVF9BNShzcCkK LQlSRUdfTCBhNiwgUFRfQTYoc3ApCi0JUkVHX0wgYTcsIFBUX0E3KHNwKQotCWJuZXogdDAsIHJl dF9mcm9tX3N5c2NhbGxfcmVqZWN0ZWQKLQlqIGNoZWNrX3N5c2NhbGxfbnIKLWhhbmRsZV9zeXNj YWxsX3RyYWNlX2V4aXQ6Ci0JbW92ZSBhMCwgc3AKLQljYWxsIGRvX3N5c2NhbGxfdHJhY2VfZXhp dAotCWogcmV0X2Zyb21fZXhjZXB0aW9uCitTWU1fQ09ERV9FTkQocmV0X2Zyb21fZXhjZXB0aW9u KQogCiAjaWZkZWYgQ09ORklHX1ZNQVBfU1RBQ0sKLWhhbmRsZV9rZXJuZWxfc3RhY2tfb3ZlcmZs b3c6CitTWU1fQ09ERV9TVEFSVF9MT0NBTChoYW5kbGVfa2VybmVsX3N0YWNrX292ZXJmbG93KQog CS8qCiAJICogVGFrZXMgdGhlIHBzdWVkby1zcGlubG9jayBmb3IgdGhlIHNoYWRvdyBzdGFjaywg aW4gY2FzZSBtdWx0aXBsZQogCSAqIGhhcnRzIGFyZSBjb25jdXJyZW50bHkgb3ZlcmZsb3dpbmcg dGhlaXIga2VybmVsIHN0YWNrcy4gIFdlIGNvdWxkCkBAIC01MDUsMjMgKzMzMSwyNSBAQCByZXN0 b3JlX2NhbGxlcl9yZWc6CiAJUkVHX1MgczUsIFBUX1RQKHNwKQogCW1vdmUgYTAsIHNwCiAJdGFp bCBoYW5kbGVfYmFkX3N0YWNrCitTWU1fQ09ERV9FTkQoaGFuZGxlX2tlcm5lbF9zdGFja19vdmVy ZmxvdykKICNlbmRpZgogCi1FTkQoaGFuZGxlX2V4Y2VwdGlvbikKLQotRU5UUlkocmV0X2Zyb21f Zm9yaykKK1NZTV9DT0RFX1NUQVJUKHJldF9mcm9tX2ZvcmspCisJY2FsbCBzY2hlZHVsZV90YWls CisJbW92ZSBhMCwgc3AgLyogcHRfcmVncyAqLwogCWxhIHJhLCByZXRfZnJvbV9leGNlcHRpb24K LQl0YWlsIHNjaGVkdWxlX3RhaWwKLUVORFBST0MocmV0X2Zyb21fZm9yaykKKwl0YWlsIHN5c2Nh bGxfZXhpdF90b191c2VyX21vZGUKK1NZTV9DT0RFX0VORChyZXRfZnJvbV9mb3JrKQogCi1FTlRS WShyZXRfZnJvbV9rZXJuZWxfdGhyZWFkKQorU1lNX0NPREVfU1RBUlQocmV0X2Zyb21fa2VybmVs X3RocmVhZCkKIAljYWxsIHNjaGVkdWxlX3RhaWwKIAkvKiBDYWxsIGZuKGFyZykgKi8KLQlsYSBy YSwgcmV0X2Zyb21fZXhjZXB0aW9uCiAJbW92ZSBhMCwgczEKLQlqciBzMAotRU5EUFJPQyhyZXRf ZnJvbV9rZXJuZWxfdGhyZWFkKQotCisJamFsciBzMAorCW1vdmUgYTAsIHNwIC8qIHB0X3JlZ3Mg Ki8KKwlsYSByYSwgcmV0X2Zyb21fZXhjZXB0aW9uCisJdGFpbCBzeXNjYWxsX2V4aXRfdG9fdXNl cl9tb2RlCitTWU1fQ09ERV9FTkQocmV0X2Zyb21fa2VybmVsX3RocmVhZCkKIAogLyoKICAqIElu dGVnZXIgcmVnaXN0ZXIgY29udGV4dCBzd2l0Y2gKQEAgLTUzMyw3ICszNjEsNyBAQCBFTkRQUk9D KHJldF9mcm9tX2tlcm5lbF90aHJlYWQpCiAgKiBUaGUgdmFsdWUgb2YgYTAgYW5kIGExIG11c3Qg YmUgcHJlc2VydmVkIGJ5IHRoaXMgZnVuY3Rpb24sIGFzIHRoYXQncyBob3cKICAqIGFyZ3VtZW50 cyBhcmUgcGFzc2VkIHRvIHNjaGVkdWxlX3RhaWwuCiAgKi8KLUVOVFJZKF9fc3dpdGNoX3RvKQor U1lNX0ZVTkNfU1RBUlQoX19zd2l0Y2hfdG8pCiAJLyogU2F2ZSBjb250ZXh0IGludG8gcHJldi0+ dGhyZWFkICovCiAJbGkgICAgYTQsICBUQVNLX1RIUkVBRF9SQQogCWFkZCAgIGEzLCBhMCwgYTQK QEAgLTU3MCw3ICszOTgsNyBAQCBFTlRSWShfX3N3aXRjaF90bykKIAkvKiBUaGUgb2Zmc2V0IG9m IHRocmVhZF9pbmZvIGluIHRhc2tfc3RydWN0IGlzIHplcm8uICovCiAJbW92ZSB0cCwgYTEKIAly ZXQKLUVORFBST0MoX19zd2l0Y2hfdG8pCitTWU1fRlVOQ19FTkQoX19zd2l0Y2hfdG8pCiAKICNp Zm5kZWYgQ09ORklHX01NVQogI2RlZmluZSBkb19wYWdlX2ZhdWx0IGRvX3RyYXBfdW5rbm93bgpA QCAtNTc5LDcgKzQwNyw3IEBAIEVORFBST0MoX19zd2l0Y2hfdG8pCiAJLnNlY3Rpb24gIi5yb2Rh dGEiCiAJLmFsaWduIExHUkVHCiAJLyogRXhjZXB0aW9uIHZlY3RvciB0YWJsZSAqLwotRU5UUlko ZXhjcF92ZWN0X3RhYmxlKQorU1lNX0NPREVfU1RBUlQoZXhjcF92ZWN0X3RhYmxlKQogCVJJU0NW X1BUUiBkb190cmFwX2luc25fbWlzYWxpZ25lZAogCUFMVF9JTlNOX0ZBVUxUKFJJU0NWX1BUUiBk b190cmFwX2luc25fZmF1bHQpCiAJUklTQ1ZfUFRSIGRvX3RyYXBfaW5zbl9pbGxlZ2FsCkBAIC01 ODgsNyArNDE2LDcgQEAgRU5UUlkoZXhjcF92ZWN0X3RhYmxlKQogCVJJU0NWX1BUUiBkb190cmFw X2xvYWRfZmF1bHQKIAlSSVNDVl9QVFIgZG9fdHJhcF9zdG9yZV9taXNhbGlnbmVkCiAJUklTQ1Zf UFRSIGRvX3RyYXBfc3RvcmVfZmF1bHQKLQlSSVNDVl9QVFIgZG9fdHJhcF9lY2FsbF91IC8qIHN5 c3RlbSBjYWxsLCBnZXRzIGludGVyY2VwdGVkICovCisJUklTQ1ZfUFRSIGRvX3N5c19lY2FsbF91 IC8qIHN5c3RlbSBjYWxsICovCiAJUklTQ1ZfUFRSIGRvX3RyYXBfZWNhbGxfcwogCVJJU0NWX1BU UiBkb190cmFwX3Vua25vd24KIAlSSVNDVl9QVFIgZG9fdHJhcF9lY2FsbF9tCkBAIC01OTgsMTEg KzQyNiwxMSBAQCBFTlRSWShleGNwX3ZlY3RfdGFibGUpCiAJUklTQ1ZfUFRSIGRvX3RyYXBfdW5r bm93bgogCVJJU0NWX1BUUiBkb19wYWdlX2ZhdWx0ICAgLyogc3RvcmUgcGFnZSBmYXVsdCAqLwog ZXhjcF92ZWN0X3RhYmxlX2VuZDoKLUVORChleGNwX3ZlY3RfdGFibGUpCitTWU1fQ09ERV9FTkQo ZXhjcF92ZWN0X3RhYmxlKQogCiAjaWZuZGVmIENPTkZJR19NTVUKLUVOVFJZKF9fdXNlcl9ydF9z aWdyZXR1cm4pCitTWU1fQ09ERV9TVEFSVChfX3VzZXJfcnRfc2lncmV0dXJuKQogCWxpIGE3LCBf X05SX3J0X3NpZ3JldHVybgogCXNjYWxsCi1FTkQoX191c2VyX3J0X3NpZ3JldHVybikKK1NZTV9D T0RFX0VORChfX3VzZXJfcnRfc2lncmV0dXJuKQogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3Jp c2N2L2tlcm5lbC9pcnEuYyBiL2FyY2gvcmlzY3Yva2VybmVsL2lycS5jCmluZGV4IDcyMDdmYTA4 ZDc4Zi4uMjRjMmUxYmQ3NTZhIDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9pcnEuYwor KysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9pcnEuYwpAQCAtNSw2ICs1LDcgQEAKICAqIENvcHlyaWdo dCAoQykgMjAxOCBDaHJpc3RvcGggSGVsbHdpZwogICovCiAKKyNpbmNsdWRlIDxsaW51eC9lbnRy eS1jb21tb24uaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51 eC9pcnFjaGlwLmg+CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KQEAgLTIyLDMgKzIzLDE3 IEBAIHZvaWQgX19pbml0IGluaXRfSVJRKHZvaWQpCiAJaWYgKCFoYW5kbGVfYXJjaF9pcnEpCiAJ CXBhbmljKCJObyBpbnRlcnJ1cHQgY29udHJvbGxlciBmb3VuZC4iKTsKIH0KKworYXNtbGlua2Fn ZSB2b2lkIG5vaW5zdHIgZG9fcmlzY3ZfaXJxKHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0 cnVjdCBwdF9yZWdzICpvbGRfcmVnczsKKwlpcnFlbnRyeV9zdGF0ZV90IHN0YXRlID0gaXJxZW50 cnlfZW50ZXIocmVncyk7CisKKwlpcnFfZW50ZXJfcmN1KCk7CisJb2xkX3JlZ3MgPSBzZXRfaXJx X3JlZ3MocmVncyk7CisJaGFuZGxlX2FyY2hfaXJxKHJlZ3MpOworCXNldF9pcnFfcmVncyhvbGRf cmVncyk7CisJaXJxX2V4aXRfcmN1KCk7CisKKwlpcnFlbnRyeV9leGl0KHJlZ3MsIHN0YXRlKTsK K30KZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3B0cmFjZS5jIGIvYXJjaC9yaXNjdi9r ZXJuZWwvcHRyYWNlLmMKaW5kZXggNDRmNGIxY2EzMTVkLi4yM2M0OGIxNGEwZTcgMTAwNjQ0Ci0t LSBhL2FyY2gvcmlzY3Yva2VybmVsL3B0cmFjZS5jCisrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3B0 cmFjZS5jCkBAIC0xOSw5ICsxOSw2IEBACiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNs dWRlIDxsaW51eC9zY2hlZC90YXNrX3N0YWNrLmg+CiAKLSNkZWZpbmUgQ1JFQVRFX1RSQUNFX1BP SU5UUwotI2luY2x1ZGUgPHRyYWNlL2V2ZW50cy9zeXNjYWxscy5oPgotCiBlbnVtIHJpc2N2X3Jl Z3NldCB7CiAJUkVHU0VUX1gsCiAjaWZkZWYgQ09ORklHX0ZQVQpAQCAtMjI4LDQ2ICsyMjUsNiBA QCBsb25nIGFyY2hfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGxvbmcgcmVxdWVz dCwKIAlyZXR1cm4gcmV0OwogfQogCi0vKgotICogQWxsb3dzIFBUUkFDRV9TWVNDQUxMIHRvIHdv cmsuICBUaGVzZSBhcmUgY2FsbGVkIGZyb20gZW50cnkuUyBpbgotICoge2hhbmRsZSxyZXRfZnJv bX1fc3lzY2FsbC4KLSAqLwotX192aXNpYmxlIGludCBkb19zeXNjYWxsX3RyYWNlX2VudGVyKHN0 cnVjdCBwdF9yZWdzICpyZWdzKQotewotCWlmICh0ZXN0X3RocmVhZF9mbGFnKFRJRl9TWVNDQUxM X1RSQUNFKSkKLQkJaWYgKHB0cmFjZV9yZXBvcnRfc3lzY2FsbF9lbnRyeShyZWdzKSkKLQkJCXJl dHVybiAtMTsKLQotCS8qCi0JICogRG8gdGhlIHNlY3VyZSBjb21wdXRpbmcgYWZ0ZXIgcHRyYWNl OyBmYWlsdXJlcyBzaG91bGQgYmUgZmFzdC4KLQkgKiBJZiB0aGlzIGZhaWxzIHdlIG1pZ2h0IGhh dmUgcmV0dXJuIHZhbHVlIGluIGEwIGZyb20gc2VjY29tcAotCSAqICh2aWEgU0VDQ09NUF9SRVRf RVJSTk8vVFJBQ0UpLgotCSAqLwotCWlmIChzZWN1cmVfY29tcHV0aW5nKCkgPT0gLTEpCi0JCXJl dHVybiAtMTsKLQotI2lmZGVmIENPTkZJR19IQVZFX1NZU0NBTExfVFJBQ0VQT0lOVFMKLQlpZiAo dGVzdF90aHJlYWRfZmxhZyhUSUZfU1lTQ0FMTF9UUkFDRVBPSU5UKSkKLQkJdHJhY2Vfc3lzX2Vu dGVyKHJlZ3MsIHN5c2NhbGxfZ2V0X25yKGN1cnJlbnQsIHJlZ3MpKTsKLSNlbmRpZgotCi0JYXVk aXRfc3lzY2FsbF9lbnRyeShyZWdzLT5hNywgcmVncy0+YTAsIHJlZ3MtPmExLCByZWdzLT5hMiwg cmVncy0+YTMpOwotCXJldHVybiAwOwotfQotCi1fX3Zpc2libGUgdm9pZCBkb19zeXNjYWxsX3Ry YWNlX2V4aXQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCi17Ci0JYXVkaXRfc3lzY2FsbF9leGl0KHJl Z3MpOwotCi0JaWYgKHRlc3RfdGhyZWFkX2ZsYWcoVElGX1NZU0NBTExfVFJBQ0UpKQotCQlwdHJh Y2VfcmVwb3J0X3N5c2NhbGxfZXhpdChyZWdzLCAwKTsKLQotI2lmZGVmIENPTkZJR19IQVZFX1NZ U0NBTExfVFJBQ0VQT0lOVFMKLQlpZiAodGVzdF90aHJlYWRfZmxhZyhUSUZfU1lTQ0FMTF9UUkFD RVBPSU5UKSkKLQkJdHJhY2Vfc3lzX2V4aXQocmVncywgcmVnc19yZXR1cm5fdmFsdWUocmVncykp OwotI2VuZGlmCi19Ci0KICNpZmRlZiBDT05GSUdfQ09NUEFUCiBzdGF0aWMgaW50IGNvbXBhdF9y aXNjdl9ncHJfZ2V0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LAogCQkJCWNvbnN0IHN0cnVj dCB1c2VyX3JlZ3NldCAqcmVnc2V0LApkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvc2ln bmFsLmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9zaWduYWwuYwppbmRleCBiZmIyYWZhNDEzNWYuLjJl MzY1MDg0NDE3ZSAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvc2lnbmFsLmMKKysrIGIv YXJjaC9yaXNjdi9rZXJuZWwvc2lnbmFsLmMKQEAgLTEyLDYgKzEyLDcgQEAKICNpbmNsdWRlIDxs aW51eC9zeXNjYWxscy5oPgogI2luY2x1ZGUgPGxpbnV4L3Jlc3VtZV91c2VyX21vZGUuaD4KICNp bmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8bGludXgvZW50cnktY29tbW9uLmg+ CiAKICNpbmNsdWRlIDxhc20vdWNvbnRleHQuaD4KICNpbmNsdWRlIDxhc20vdmRzby5oPgpAQCAt Mjc0LDcgKzI3NSw3IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9zaWduYWwoc3RydWN0IGtzaWduYWwg KmtzaWcsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCXNpZ25hbF9zZXR1cF9kb25lKHJldCwga3Np ZywgMCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRvX3NpZ25hbChzdHJ1Y3QgcHRfcmVncyAqcmVncykK K3ZvaWQgYXJjaF9kb19zaWduYWxfb3JfcmVzdGFydChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsK IAlzdHJ1Y3Qga3NpZ25hbCBrc2lnOwogCkBAIC0zMTEsMjkgKzMxMiwzIEBAIHN0YXRpYyB2b2lk IGRvX3NpZ25hbChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAkgKi8KIAlyZXN0b3JlX3NhdmVkX3Np Z21hc2soKTsKIH0KLQotLyoKLSAqIEhhbmRsZSBhbnkgcGVuZGluZyB3b3JrIG9uIHRoZSByZXN1 bWUtdG8tdXNlcnNwYWNlIHBhdGgsIGFzIGluZGljYXRlZCBieQotICogX1RJRl9XT1JLX01BU0su IEVudGVyZWQgZnJvbSBhc3NlbWJseSB3aXRoIElSUXMgb2ZmLgotICovCi1hc21saW5rYWdlIF9f dmlzaWJsZSB2b2lkIGRvX3dvcmtfcGVuZGluZyhzdHJ1Y3QgcHRfcmVncyAqcmVncywKLQkJCQkJ ICB1bnNpZ25lZCBsb25nIHRocmVhZF9pbmZvX2ZsYWdzKQotewotCWRvIHsKLQkJaWYgKHRocmVh ZF9pbmZvX2ZsYWdzICYgX1RJRl9ORUVEX1JFU0NIRUQpIHsKLQkJCXNjaGVkdWxlKCk7Ci0JCX0g ZWxzZSB7Ci0JCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0JCQlpZiAodGhyZWFkX2luZm9fZmxhZ3Mg JiBfVElGX1VQUk9CRSkKLQkJCQl1cHJvYmVfbm90aWZ5X3Jlc3VtZShyZWdzKTsKLQkJCS8qIEhh bmRsZSBwZW5kaW5nIHNpZ25hbCBkZWxpdmVyeSAqLwotCQkJaWYgKHRocmVhZF9pbmZvX2ZsYWdz ICYgKF9USUZfU0lHUEVORElORyB8Ci0JCQkJCQkgX1RJRl9OT1RJRllfU0lHTkFMKSkKLQkJCQlk b19zaWduYWwocmVncyk7Ci0JCQlpZiAodGhyZWFkX2luZm9fZmxhZ3MgJiBfVElGX05PVElGWV9S RVNVTUUpCi0JCQkJcmVzdW1lX3VzZXJfbW9kZV93b3JrKHJlZ3MpOwotCQl9Ci0JCWxvY2FsX2ly cV9kaXNhYmxlKCk7Ci0JCXRocmVhZF9pbmZvX2ZsYWdzID0gcmVhZF90aHJlYWRfZmxhZ3MoKTsK LQl9IHdoaWxlICh0aHJlYWRfaW5mb19mbGFncyAmIF9USUZfV09SS19NQVNLKTsKLX0KZGlmZiAt LWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3N5c19yaXNjdi5jIGIvYXJjaC9yaXNjdi9rZXJuZWwv c3lzX3Jpc2N2LmMKaW5kZXggNWQzZjJmYmViMzNjLi43MjY4OWY4NDViMjYgMTAwNjQ0Ci0tLSBh L2FyY2gvcmlzY3Yva2VybmVsL3N5c19yaXNjdi5jCisrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3N5 c19yaXNjdi5jCkBAIC01LDggKzUsMTAgQEAKICAqIENvcHlyaWdodCAoQykgMjAxNyBTaUZpdmUK ICAqLwogCisjaW5jbHVkZSA8bGludXgvZW50cnktY29tbW9uLmg+CiAjaW5jbHVkZSA8bGludXgv c3lzY2FsbHMuaD4KICNpbmNsdWRlIDxhc20vdW5pc3RkLmg+CisjaW5jbHVkZSA8YXNtL3N5c2Nh bGwuaD4KICNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgogI2luY2x1ZGUgPGFzbS1nZW5lcmlj L21tYW4tY29tbW9uLmg+CiAKQEAgLTY5LDMgKzcxLDMyIEBAIFNZU0NBTExfREVGSU5FMyhyaXNj dl9mbHVzaF9pY2FjaGUsIHVpbnRwdHJfdCwgc3RhcnQsIHVpbnRwdHJfdCwgZW5kLAogCiAJcmV0 dXJuIDA7CiB9CisKK3R5cGVkZWYgbG9uZyAoKnN5c2NhbGxfdCkodWxvbmcsIHVsb25nLCB1bG9u ZywgdWxvbmcsIHVsb25nLCB1bG9uZywgdWxvbmcpOworCithc21saW5rYWdlIHZvaWQgZG9fc3lz X2VjYWxsX3Uoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3lzY2FsbF90IHN5c2NhbGw7CisJ dWxvbmcgbnIgPSByZWdzLT5hNzsKKworCXJlZ3MtPmVwYyArPSA0OworCXJlZ3MtPm9yaWdfYTAg PSByZWdzLT5hMDsKKworCW5yID0gc3lzY2FsbF9lbnRlcl9mcm9tX3VzZXJfbW9kZShyZWdzLCBu cik7CisKKwlpZiAobnIgPCBOUl9zeXNjYWxscykgeworI2lmZGVmIENPTkZJR19DT01QQVQKKwkJ aWYgKChyZWdzLT5zdGF0dXMgJiBTUl9VWEwpID09IFNSX1VYTF8zMikKKwkJCXN5c2NhbGwgPSBj b21wYXRfc3lzX2NhbGxfdGFibGVbbnJdOworCQllbHNlCisjZW5kaWYKKwkJCXN5c2NhbGwgPSBz eXNfY2FsbF90YWJsZVtucl07CisKKwkJcmVncy0+YTAgPSBzeXNjYWxsKHJlZ3MtPm9yaWdfYTAs IHJlZ3MtPmExLCByZWdzLT5hMiwKKwkJCQkgICByZWdzLT5hMywgcmVncy0+YTQsIHJlZ3MtPmE1 LCByZWdzLT5hNik7CisJfSBlbHNlIHsKKwkJcmVncy0+YTAgPSAtRU5PU1lTOworCX0KKworCXN5 c2NhbGxfZXhpdF90b191c2VyX21vZGUocmVncyk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2 L2tlcm5lbC90cmFwcy5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvdHJhcHMuYwppbmRleCA5NmVjNzZj NTRmZjIuLmMzZWI3MmFjMzk0NiAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvdHJhcHMu YworKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC90cmFwcy5jCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaXJxLmg+CiAjaW5jbHVkZSA8 bGludXgva2V4ZWMuaD4KKyNpbmNsdWRlIDxsaW51eC9lbnRyeS1jb21tb24uaD4KIAogI2luY2x1 ZGUgPGFzbS9hc20tcHJvdG90eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9idWcuaD4KQEAgLTk5LDEw ICsxMDAsMTkgQEAgc3RhdGljIHZvaWQgZG9fdHJhcF9lcnJvcihzdHJ1Y3QgcHRfcmVncyAqcmVn cywgaW50IHNpZ25vLCBpbnQgY29kZSwKICNlbHNlCiAjZGVmaW5lIF9fdHJhcF9zZWN0aW9uIG5v aW5zdHIKICNlbmRpZgotI2RlZmluZSBET19FUlJPUl9JTkZPKG5hbWUsIHNpZ25vLCBjb2RlLCBz dHIpCQkJCVwKLWFzbWxpbmthZ2UgX192aXNpYmxlIF9fdHJhcF9zZWN0aW9uIHZvaWQgbmFtZShz dHJ1Y3QgcHRfcmVncyAqcmVncykJXAotewkJCQkJCQkJCVwKLQlkb190cmFwX2Vycm9yKHJlZ3Ms IHNpZ25vLCBjb2RlLCByZWdzLT5lcGMsICJPb3BzIC0gIiBzdHIpOwlcCisjZGVmaW5lIERPX0VS Uk9SX0lORk8obmFtZSwgc2lnbm8sIGNvZGUsIHN0cikJCQkJCVwKK2FzbWxpbmthZ2UgX192aXNp YmxlIF9fdHJhcF9zZWN0aW9uIHZvaWQgbmFtZShzdHJ1Y3QgcHRfcmVncyAqcmVncykJCVwKK3sJ CQkJCQkJCQkJXAorCWlmICh1c2VyX21vZGUocmVncykpIHsJCQkJCQkJXAorCQlpcnFlbnRyeV9l bnRlcl9mcm9tX3VzZXJfbW9kZShyZWdzKTsJCQkJXAorCQlkb190cmFwX2Vycm9yKHJlZ3MsIHNp Z25vLCBjb2RlLCByZWdzLT5lcGMsICJPb3BzIC0gIiBzdHIpOwlcCisJCWlycWVudHJ5X2V4aXRf dG9fdXNlcl9tb2RlKHJlZ3MpOwkJCQlcCisJfSBlbHNlIHsJCQkJCQkJCVwKKwkJaXJxZW50cnlf c3RhdGVfdCBpcnFfc3RhdGUgPSBpcnFlbnRyeV9ubWlfZW50ZXIocmVncyk7CQlcCisJCWRvX3Ry YXBfZXJyb3IocmVncywgc2lnbm8sIGNvZGUsIHJlZ3MtPmVwYywgIk9vcHMgLSAiIHN0cik7CVwK KwkJaXJxZW50cnlfbm1pX2V4aXQocmVncywgaXJxX3N0YXRlKTsJCQkJXAorCX0JCQkJCQkJCQlc CisJV0FSTl9PTl9PTkNFKCFpcnFzX2Rpc2FibGVkKCkpOwkJCQkJCVwKIH0KIAogRE9fRVJST1Jf SU5GTyhkb190cmFwX3Vua25vd24sCkBAIC0xMjYsMTggKzEzNiw0NiBAQCBpbnQgaGFuZGxlX21p c2FsaWduZWRfc3RvcmUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwogCiBhc21saW5rYWdlIHZvaWQg X190cmFwX3NlY3Rpb24gZG9fdHJhcF9sb2FkX21pc2FsaWduZWQoc3RydWN0IHB0X3JlZ3MgKnJl Z3MpCiB7Ci0JaWYgKCFoYW5kbGVfbWlzYWxpZ25lZF9sb2FkKHJlZ3MpKQotCQlyZXR1cm47Ci0J ZG9fdHJhcF9lcnJvcihyZWdzLCBTSUdCVVMsIEJVU19BRFJBTE4sIHJlZ3MtPmVwYywKLQkJICAg ICAgIk9vcHMgLSBsb2FkIGFkZHJlc3MgbWlzYWxpZ25lZCIpOworCWlmICh1c2VyX21vZGUocmVn cykpIHsKKwkJaXJxZW50cnlfZW50ZXJfZnJvbV91c2VyX21vZGUocmVncyk7CisKKwkJaWYgKGhh bmRsZV9taXNhbGlnbmVkX2xvYWQocmVncykpCisJCQlkb190cmFwX2Vycm9yKHJlZ3MsIFNJR0JV UywgQlVTX0FEUkFMTiwgcmVncy0+ZXBjLAorCQkJICAgICAgIk9vcHMgLSBsb2FkIGFkZHJlc3Mg bWlzYWxpZ25lZCIpOworCisJCWlycWVudHJ5X2V4aXRfdG9fdXNlcl9tb2RlKHJlZ3MpOworCX0g ZWxzZSB7CisJCWlycWVudHJ5X3N0YXRlX3QgaXJxX3N0YXRlID0gaXJxZW50cnlfbm1pX2VudGVy KHJlZ3MpOworCisJCWlmIChoYW5kbGVfbWlzYWxpZ25lZF9sb2FkKHJlZ3MpKQorCQkJZG9fdHJh cF9lcnJvcihyZWdzLCBTSUdCVVMsIEJVU19BRFJBTE4sIHJlZ3MtPmVwYywKKwkJCSAgICAgICJP b3BzIC0gbG9hZCBhZGRyZXNzIG1pc2FsaWduZWQiKTsKKworCQlpcnFlbnRyeV9ubWlfZXhpdChy ZWdzLCBpcnFfc3RhdGUpOworCX0KKwlXQVJOX09OX09OQ0UoIWlycXNfZGlzYWJsZWQoKSk7CiB9 CiAKIGFzbWxpbmthZ2Ugdm9pZCBfX3RyYXBfc2VjdGlvbiBkb190cmFwX3N0b3JlX21pc2FsaWdu ZWQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0JaWYgKCFoYW5kbGVfbWlzYWxpZ25lZF9zdG9y ZShyZWdzKSkKLQkJcmV0dXJuOwotCWRvX3RyYXBfZXJyb3IocmVncywgU0lHQlVTLCBCVVNfQURS QUxOLCByZWdzLT5lcGMsCi0JCSAgICAgICJPb3BzIC0gc3RvcmUgKG9yIEFNTykgYWRkcmVzcyBt aXNhbGlnbmVkIik7CisJaWYgKHVzZXJfbW9kZShyZWdzKSkgeworCQlpcnFlbnRyeV9lbnRlcl9m cm9tX3VzZXJfbW9kZShyZWdzKTsKKworCQlpZiAoaGFuZGxlX21pc2FsaWduZWRfc3RvcmUocmVn cykpCisJCQlkb190cmFwX2Vycm9yKHJlZ3MsIFNJR0JVUywgQlVTX0FEUkFMTiwgcmVncy0+ZXBj LAorCQkJCSJPb3BzIC0gc3RvcmUgKG9yIEFNTykgYWRkcmVzcyBtaXNhbGlnbmVkIik7CisKKwkJ aXJxZW50cnlfZXhpdF90b191c2VyX21vZGUocmVncyk7CisJfSBlbHNlIHsKKwkJaXJxZW50cnlf c3RhdGVfdCBpcnFfc3RhdGUgPSBpcnFlbnRyeV9ubWlfZW50ZXIocmVncyk7CisKKwkJaWYgKGhh bmRsZV9taXNhbGlnbmVkX3N0b3JlKHJlZ3MpKQorCQkJZG9fdHJhcF9lcnJvcihyZWdzLCBTSUdC VVMsIEJVU19BRFJBTE4sIHJlZ3MtPmVwYywKKwkJCQkiT29wcyAtIHN0b3JlIChvciBBTU8pIGFk ZHJlc3MgbWlzYWxpZ25lZCIpOworCisJCWlycWVudHJ5X25taV9leGl0KHJlZ3MsIGlycV9zdGF0 ZSk7CisJfQorCVdBUk5fT05fT05DRSghaXJxc19kaXNhYmxlZCgpKTsKIH0KICNlbmRpZgogRE9f RVJST1JfSU5GTyhkb190cmFwX3N0b3JlX2ZhdWx0LApAQCAtMTU5LDcgKzE5Nyw3IEBAIHN0YXRp YyBpbmxpbmUgdW5zaWduZWQgbG9uZyBnZXRfYnJlYWtfaW5zbl9sZW5ndGgodW5zaWduZWQgbG9u ZyBwYykKIAlyZXR1cm4gR0VUX0lOU05fTEVOR1RIKGluc24pOwogfQogCi1hc21saW5rYWdlIF9f dmlzaWJsZSBfX3RyYXBfc2VjdGlvbiB2b2lkIGRvX3RyYXBfYnJlYWsoc3RydWN0IHB0X3JlZ3Mg KnJlZ3MpCitzdGF0aWMgdm9pZCBfX2RvX3RyYXBfYnJlYWsoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp CiB7CiAjaWZkZWYgQ09ORklHX0tQUk9CRVMKIAlpZiAoa3Byb2JlX3NpbmdsZV9zdGVwX2hhbmRs ZXIocmVncykpCkBAIC0xODksNiArMjI3LDI0IEBAIGFzbWxpbmthZ2UgX192aXNpYmxlIF9fdHJh cF9zZWN0aW9uIHZvaWQgZG9fdHJhcF9icmVhayhzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAllbHNl CiAJCWRpZShyZWdzLCAiS2VybmVsIEJVRyIpOwogfQorCithc21saW5rYWdlIF9fdmlzaWJsZSBf X3RyYXBfc2VjdGlvbiB2b2lkIGRvX3RyYXBfYnJlYWsoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7 CisJaWYgKHVzZXJfbW9kZShyZWdzKSkgeworCQlpcnFlbnRyeV9lbnRlcl9mcm9tX3VzZXJfbW9k ZShyZWdzKTsKKworCQlfX2RvX3RyYXBfYnJlYWsocmVncyk7CisKKwkJaXJxZW50cnlfZXhpdF90 b191c2VyX21vZGUocmVncyk7CisJfSBlbHNlIHsKKwkJaXJxZW50cnlfc3RhdGVfdCBpcnFfc3Rh dGUgPSBpcnFlbnRyeV9ubWlfZW50ZXIocmVncyk7CisKKwkJX19kb190cmFwX2JyZWFrKHJlZ3Mp OworCisJCWlycWVudHJ5X25taV9leGl0KHJlZ3MsIGlycV9zdGF0ZSk7CisJfQorCVdBUk5fT05f T05DRSghaXJxc19kaXNhYmxlZCgpKTsKK30KIE5PS1BST0JFX1NZTUJPTChkb190cmFwX2JyZWFr KTsKIAogI2lmZGVmIENPTkZJR19HRU5FUklDX0JVRwpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9t bS9mYXVsdC5jIGIvYXJjaC9yaXNjdi9tbS9mYXVsdC5jCmluZGV4IGIyNmY2OGVhYzYxYy4uNWNi ZWE2YzU1YTU5IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L21tL2ZhdWx0LmMKKysrIGIvYXJjaC9y aXNjdi9tbS9mYXVsdC5jCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSA8bGludXgvdWFjY2Vz cy5oPgogI2luY2x1ZGUgPGxpbnV4L2twcm9iZXMuaD4KICNpbmNsdWRlIDxsaW51eC9rZmVuY2Uu aD4KKyNpbmNsdWRlIDxsaW51eC9lbnRyeS1jb21tb24uaD4KIAogI2luY2x1ZGUgPGFzbS9wdHJh Y2UuaD4KICNpbmNsdWRlIDxhc20vdGxiZmx1c2guaD4KQEAgLTIwNCw3ICsyMDUsNyBAQCBzdGF0 aWMgaW5saW5lIGJvb2wgYWNjZXNzX2Vycm9yKHVuc2lnbmVkIGxvbmcgY2F1c2UsIHN0cnVjdCB2 bV9hcmVhX3N0cnVjdCAqdm1hKQogICogVGhpcyByb3V0aW5lIGhhbmRsZXMgcGFnZSBmYXVsdHMu ICBJdCBkZXRlcm1pbmVzIHRoZSBhZGRyZXNzIGFuZCB0aGUKICAqIHByb2JsZW0sIGFuZCB0aGVu IHBhc3NlcyBpdCBvZmYgdG8gb25lIG9mIHRoZSBhcHByb3ByaWF0ZSByb3V0aW5lcy4KICAqLwot YXNtbGlua2FnZSB2b2lkIG5vaW5zdHIgZG9fcGFnZV9mYXVsdChzdHJ1Y3QgcHRfcmVncyAqcmVn cykKK3N0YXRpYyB2b2lkIF9fZG9fcGFnZV9mYXVsdChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsK IAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzazsKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsK QEAgLTI1MSw3ICsyNTIsNyBAQCBhc21saW5rYWdlIHZvaWQgbm9pbnN0ciBkb19wYWdlX2ZhdWx0 KHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCX0KICNlbmRpZgogCS8qIEVuYWJsZSBpbnRlcnJ1cHRz IGlmIHRoZXkgd2VyZSBlbmFibGVkIGluIHRoZSBwYXJlbnQgY29udGV4dC4gKi8KLQlpZiAobGlr ZWx5KHJlZ3MtPnN0YXR1cyAmIFNSX1BJRSkpCisJaWYgKCFyZWdzX2lycXNfZGlzYWJsZWQocmVn cykpCiAJCWxvY2FsX2lycV9lbmFibGUoKTsKIAogCS8qCkBAIC0zNTEsNCArMzUyLDE1IEBAIGFz bWxpbmthZ2Ugdm9pZCBub2luc3RyIGRvX3BhZ2VfZmF1bHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp CiAJfQogCXJldHVybjsKIH0KKworYXNtbGlua2FnZSB2b2lkIG5vaW5zdHIgZG9fcGFnZV9mYXVs dChzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlpcnFlbnRyeV9zdGF0ZV90IHN0YXRlID0gaXJx ZW50cnlfZW50ZXIocmVncyk7CisKKwlfX2RvX3BhZ2VfZmF1bHQocmVncyk7CisKKwlsb2NhbF9p cnFfZGlzYWJsZSgpOworCisJaXJxZW50cnlfZXhpdChyZWdzLCBzdGF0ZSk7Cit9CiBOT0tQUk9C RV9TWU1CT0woZG9fcGFnZV9mYXVsdCk7Ci0tIAoyLjM2LjEKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGlu dXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==