Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Tue, 5 Feb 2002 14:59:43 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Tue, 5 Feb 2002 14:59:26 -0500 Received: from mailout06.sul.t-online.com ([194.25.134.19]:43491 "EHLO mailout06.sul.t-online.com") by vger.kernel.org with ESMTP id ; Tue, 5 Feb 2002 14:59:13 -0500 From: "ChristianK."@t-online.de (Christian Koenig) To: Anuradha Ratnaweera Subject: Re: [ANNOUNCE] kernelconf-0.1.2 Date: Tue, 5 Feb 2002 21:01:17 +0100 X-Mailer: KMail [version 1.3.2] In-Reply-To: <20020124124548.A2435@lklug.pdn.ac.lk> In-Reply-To: <20020124124548.A2435@lklug.pdn.ac.lk> Cc: linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="------------Boundary-00=_5YS2R4BJFA47RJAVYCX0" Message-ID: <16YBk1-1gvG08C@fwd07.sul.t-online.com> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --------------Boundary-00=_5YS2R4BJFA47RJAVYCX0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Hi, The atachmend is a little beta/patch to your kernelconf. It adds xconfig capability to kernelconf, by using Tcl/Tk scripts. It's still a little bit beta, but the main parts like config file loading/storing, menu-deps ... are implemented. The main disatvantage for the moment: it doesn't looks like the original xconfig, but i'm working on it. MfG,Christian Koenig (and sorry for my poor english) --------------Boundary-00=_5YS2R4BJFA47RJAVYCX0 Content-Type: text/x-diff; charset="iso-8859-1"; name="kernelconf-xconfig.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kernelconf-xconfig.diff" ZGlmZiAtdU5yYiBrZXJuZWxjb25mLTAuMS4yL2NvbmYvZGVwcy5kIGtlcm5lbGNvbmYtMC4xLjIu bmV3L2NvbmYvZGVwcy5kCi0tLSBrZXJuZWxjb25mLTAuMS4yL2NvbmYvZGVwcy5kCVRodSBKYW4g IDEgMDE6MDA6MDAgMTk3MAorKysga2VybmVsY29uZi0wLjEuMi5uZXcvY29uZi9kZXBzLmQJVHVl IEZlYiAgNSAyMDo0OTowNCAyMDAyCkBAIC0wLDAgKzEsMTYgQEAKK2RlcHMubzogZGVwcy5jIC91 c3IvaW5jbHVkZS9jdHlwZS5oIC91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIFwKKyAvdXNyL2luY2x1 ZGUvc3lzL2NkZWZzLmggL3Vzci9pbmNsdWRlL2dudS9zdHVicy5oIFwKKyAvdXNyL2luY2x1ZGUv Yml0cy90eXBlcy5oIFwKKyAvdXNyL2xpYi9nY2MtbGliL2kzODYtbGludXgvMi45NS40L2luY2x1 ZGUvc3RkZGVmLmggXAorIC91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIC91c3IvaW5j bHVkZS9iaXRzL3NjaGVkLmggXAorIC91c3IvaW5jbHVkZS9lbmRpYW4uaCAvdXNyL2luY2x1ZGUv Yml0cy9lbmRpYW4uaCBcCisgL3Vzci9pbmNsdWRlL21hbGxvYy5oIC91c3IvaW5jbHVkZS9zdGRp by5oIC91c3IvaW5jbHVkZS9saWJpby5oIFwKKyAvdXNyL2luY2x1ZGUvX0dfY29uZmlnLmggL3Vz ci9pbmNsdWRlL3djaGFyLmggXAorIC91c3IvaW5jbHVkZS9iaXRzL3djaGFyLmggL3Vzci9pbmNs dWRlL2djb252LmggXAorIC91c3IvbGliL2djYy1saWIvaTM4Ni1saW51eC8yLjk1LjQvaW5jbHVk ZS9zdGRhcmcuaCBcCisgL3Vzci9pbmNsdWRlL2JpdHMvc3RkaW9fbGltLmggL3Vzci9pbmNsdWRl L3N0cmluZy5oIFwKKyAvdXNyL2luY2x1ZGUvc3RkbGliLmggL3Vzci9pbmNsdWRlL3N5cy90eXBl cy5oIC91c3IvaW5jbHVkZS90aW1lLmggXAorIC91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmggL3Vz ci9pbmNsdWRlL2JpdHMvc2VsZWN0LmggXAorIC91c3IvaW5jbHVkZS9iaXRzL3NpZ3NldC5oIC91 c3IvaW5jbHVkZS9iaXRzL3RpbWUuaCBcCisgL3Vzci9pbmNsdWRlL3N5cy9zeXNtYWNyb3MuaCAv dXNyL2luY2x1ZGUvYWxsb2NhLmgga2VybmVsY29uZi5oIFwKKyBleHByZXNzaW9ucy5oIHV0aWxz LmggdHJlZS5oCkJpbmFyeSBmaWxlcyBrZXJuZWxjb25mLTAuMS4yL2NvbmYvZGVwcy5vIGFuZCBr ZXJuZWxjb25mLTAuMS4yLm5ldy9jb25mL2RlcHMubyBkaWZmZXIKZGlmZiAtdU5yYiBrZXJuZWxj b25mLTAuMS4yL2NvbmYvZXhwcmVzc2lvbnMuYyBrZXJuZWxjb25mLTAuMS4yLm5ldy9jb25mL2V4 cHJlc3Npb25zLmMKLS0tIGtlcm5lbGNvbmYtMC4xLjIvY29uZi9leHByZXNzaW9ucy5jCVRodSBK YW4gMjQgMDU6Mjc6MDggMjAwMgorKysga2VybmVsY29uZi0wLjEuMi5uZXcvY29uZi9leHByZXNz aW9ucy5jCVN1biBGZWIgIDMgMTk6MDE6NDUgMjAwMgpAQCAtODM2LDYgKzgzNiwxMjIgQEAKICAg ICByZXR1cm4gdG1wOwogfQogCit2b2lkIGZwcmludGZfdmFsdWUydGsoRklMRSAqdGNsZiwgVHlw ZSB0eXBlLCBWYWx1ZSB2YWx1ZSkKK3sKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIFRZUEVfVFJJ OgorLy8JY2FzZSBUWVBFX01PRFVMRToKKwljYXNlIFRZUEVfQk9PTDoKKwljYXNlIFRZUEVfT1BU SU9OOgorCQlmcHJpbnRmKHRjbGYsIiVjIix2YWx1ZS5jaGFyX3ZhbCk7IGJyZWFrOworCWNhc2Ug VFlQRV9JTlQ6CisJY2FzZSBUWVBFX0hFWDoKKwljYXNlIFRZUEVfQ0hBUjoKKwkJZnByaW50Zih0 Y2xmLCIlZCIsdmFsdWUuaW50X3ZhbCk7CWJyZWFrOworCWNhc2UgVFlQRV9TWU1CT0w6CisJCWZw cmludGYodGNsZiwiQ09ORklHXyVzIix2YWx1ZS5pZF92YWwtPm5hbWUpOwlicmVhazsKKwljYXNl IFRZUEVfU1RSOgorCWNhc2UgVFlQRV9WQUxVRToKKwkJZnByaW50Zih0Y2xmLCIlcyIsdmFsdWUu c3RyX3ZhbCk7IGJyZWFrOworCWRlZmF1bHQ6CisJCWZwcmludGYodGNsZiwiJWQgJWQgdGVzdDEi LFRZUEVfQ0hBUix0eXBlKTsKKwkJYnJlYWs7CisJfQorfQorCit2b2lkIHRjbF9wb3AoRklMRSAq dGNsZiwgVG9rZW5QdHIgKnN0YWNrKQoreworCVRva2VuUHRyIHRva2VuOworCisJdG9rZW4gPSBw b3Aoc3RhY2spOworCWlmKHRva2VuLT50eXBlICE9IFRZUEVfVkFMVUUgKQorCQlmcHJpbnRmKHRj bGYsIiBbICIpOworCisKKwlzd2l0Y2ggKHRva2VuLT50eXBlKSB7CisJY2FzZSBUWVBFX09SOgor CQlmcHJpbnRmKHRjbGYsInN5bV9vciIpOworCQl0Y2xfcG9wKHRjbGYsc3RhY2spOworCQl0Y2xf cG9wKHRjbGYsc3RhY2spOworCQlicmVhazsKKwljYXNlIFRZUEVfQU5EOgorCQlmcHJpbnRmKHRj bGYsInN5bV9hbmQiKTsKKwkJdGNsX3BvcCh0Y2xmLHN0YWNrKTsKKwkJdGNsX3BvcCh0Y2xmLHN0 YWNrKTsKKwkJYnJlYWs7CisJY2FzZSBUWVBFX0VRVUFMOgorCQlmcHJpbnRmKHRjbGYsInN5bV9l cXVhbCIpOworCQl0Y2xfcG9wKHRjbGYsc3RhY2spOworCQl0Y2xfcG9wKHRjbGYsc3RhY2spOwor CQlicmVhazsKKwljYXNlIFRZUEVfTk9UX0VRVUFMOgorCQlmcHJpbnRmKHRjbGYsInN5bV9ub3Rf ZXF1YWwiKTsKKwkJdGNsX3BvcCh0Y2xmLHN0YWNrKTsKKwkJdGNsX3BvcCh0Y2xmLHN0YWNrKTsK KwkJYnJlYWs7CisJY2FzZSBUWVBFX0xUOgorCQlmcHJpbnRmKHRjbGYsInN5bV9sdCIpOworCQl0 Y2xfcG9wKHRjbGYsc3RhY2spOworCQl0Y2xfcG9wKHRjbGYsc3RhY2spOworCQlicmVhazsKKwlj YXNlIFRZUEVfR1Q6CisJCWZwcmludGYodGNsZiwic3ltX2d0Iik7CisJCXRjbF9wb3AodGNsZixz dGFjayk7CisJCXRjbF9wb3AodGNsZixzdGFjayk7CisJCWJyZWFrOworCWNhc2UgVFlQRV9MVEU6 CisJCWZwcmludGYodGNsZiwic3ltX2x0ZSIpOworCQl0Y2xfcG9wKHRjbGYsc3RhY2spOworCQl0 Y2xfcG9wKHRjbGYsc3RhY2spOworCQlicmVhazsKKwljYXNlIFRZUEVfR1RFOgorCQlmcHJpbnRm KHRjbGYsInN5bV9ndGUiKTsKKwkJdGNsX3BvcCh0Y2xmLHN0YWNrKTsKKwkJdGNsX3BvcCh0Y2xm LHN0YWNrKTsKKwkJYnJlYWs7CisJY2FzZSBUWVBFX05PVDoKKwkJZnByaW50Zih0Y2xmLCJzeW1f bm90Iik7CisJCXRjbF9wb3AodGNsZixzdGFjayk7CisJCWJyZWFrOworCWNhc2UgVFlQRV9ERVBF TkRTOgorCQlmcHJpbnRmKHRjbGYsInN5bV9kZXBlbmRzIik7CisJCXRjbF9wb3AodGNsZixzdGFj ayk7CisJCXRjbF9wb3AodGNsZixzdGFjayk7CisJCWJyZWFrOworCWNhc2UgVFlQRV9ERVJJVkVE OgorCQlmcHJpbnRmKHRjbGYsInN5bV9kZXJpdmVkIik7CisJCXRjbF9wb3AodGNsZixzdGFjayk7 CisJCWJyZWFrOworCWNhc2UgVFlQRV9TWU1CT0w6CisJCWZwcmludGYodGNsZiwiZ2V0X3N5bSIp OworCWNhc2UgVFlQRV9WQUxVRToKKwkJZnByaW50Zih0Y2xmLCIgIik7CisJCWZwcmludGZfdmFs dWUydGsodGNsZix0b2tlbi0+dHlwZSx0b2tlbi0+dmFsdWUpOworCQlicmVhazsKKwlkZWZhdWx0 OgorCQlmcHJpbnRmKHRjbGYsInRlc3QyIik7CisJCTsKKwl9CisKKwlpZih0b2tlbi0+dHlwZSAh PSBUWVBFX1ZBTFVFICkKKwkJZnByaW50Zih0Y2xmLCIgXSAiKTsKKworCWZyZWVfdG9rZW4odG9r ZW4pOworfQorCit2b2lkIGV2YWx1YXRlX2V4cHJlc3Npb25zMnRrKEZJTEUgKnRjbGYsIEV4cHJl c3Npb25QdHIgZXhwKSB7CisKKwlUb2tlblB0ciB0b2tlbiwgc3RhY2ssIHQ7CisKKwlzdGFjayA9 IE5VTEw7CisJZm9yICh0ID0gZXhwLT5maXJzdF90b2tlbjsgdDsgdCA9IHQtPm5leHQpIHsKKwkJ dG9rZW4gPSBkdXBsaWNhdGVfdG9rZW4odCk7CisJCXB1c2goJnN0YWNrLCB0b2tlbik7CisJfQor CXRjbF9wb3AodGNsZiwmc3RhY2spOworfQorCisKIC8qCiAgKiBFeHByZXNzaW9ucyBhcmUgcmVw cmVzZW50ZWQgYXMgYSBzZXF1ZW5jZSBvZiB0b2tlbnMuICBUaGVzZSB0b2tlbnMgYXJlCiAgKiBv cGVyYXRvcnMsIG9mIFRZUEVfVkFMVUUgb3Igb2YgdHlwZSBUWVBFX1NZTUJPTC4gIFdoaWxlIGV2 YWx1YXRpbmcsIHdlIGRvbid0CmRpZmYgLXVOcmIga2VybmVsY29uZi0wLjEuMi9jb25mL2V4cHJl c3Npb25zLmQga2VybmVsY29uZi0wLjEuMi5uZXcvY29uZi9leHByZXNzaW9ucy5kCi0tLSBrZXJu ZWxjb25mLTAuMS4yL2NvbmYvZXhwcmVzc2lvbnMuZAlUaHUgSmFuICAxIDAxOjAwOjAwIDE5NzAK KysrIGtlcm5lbGNvbmYtMC4xLjIubmV3L2NvbmYvZXhwcmVzc2lvbnMuZAlUdWUgRmViICA1IDIw OjQ5OjA0IDIwMDIKQEAgLTAsMCArMSwxNiBAQAorZXhwcmVzc2lvbnMubzogZXhwcmVzc2lvbnMu YyAvdXNyL2luY2x1ZGUvY3R5cGUuaCBcCisgL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmggL3Vzci9p bmNsdWRlL3N5cy9jZGVmcy5oIFwKKyAvdXNyL2luY2x1ZGUvZ251L3N0dWJzLmggL3Vzci9pbmNs dWRlL2JpdHMvdHlwZXMuaCBcCisgL3Vzci9saWIvZ2NjLWxpYi9pMzg2LWxpbnV4LzIuOTUuNC9p bmNsdWRlL3N0ZGRlZi5oIFwKKyAvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCAvdXNy L2luY2x1ZGUvYml0cy9zY2hlZC5oIFwKKyAvdXNyL2luY2x1ZGUvZW5kaWFuLmggL3Vzci9pbmNs dWRlL2JpdHMvZW5kaWFuLmggXAorIC91c3IvaW5jbHVkZS9tYWxsb2MuaCAvdXNyL2luY2x1ZGUv c3RkaW8uaCAvdXNyL2luY2x1ZGUvbGliaW8uaCBcCisgL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5o IC91c3IvaW5jbHVkZS93Y2hhci5oIFwKKyAvdXNyL2luY2x1ZGUvYml0cy93Y2hhci5oIC91c3Iv aW5jbHVkZS9nY29udi5oIFwKKyAvdXNyL2xpYi9nY2MtbGliL2kzODYtbGludXgvMi45NS40L2lu Y2x1ZGUvc3RkYXJnLmggXAorIC91c3IvaW5jbHVkZS9iaXRzL3N0ZGlvX2xpbS5oIC91c3IvaW5j bHVkZS9zdHJpbmcuaCBcCisgL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIC91c3IvaW5jbHVkZS9zeXMv dHlwZXMuaCAvdXNyL2luY2x1ZGUvdGltZS5oIFwKKyAvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5o IC91c3IvaW5jbHVkZS9iaXRzL3NlbGVjdC5oIFwKKyAvdXNyL2luY2x1ZGUvYml0cy9zaWdzZXQu aCAvdXNyL2luY2x1ZGUvYml0cy90aW1lLmggXAorIC91c3IvaW5jbHVkZS9zeXMvc3lzbWFjcm9z LmggL3Vzci9pbmNsdWRlL2FsbG9jYS5oIGtlcm5lbGNvbmYuaCBcCisgZXhwcmVzc2lvbnMuaCB1 dGlscy5oIHRyZWUuaApkaWZmIC11TnJiIGtlcm5lbGNvbmYtMC4xLjIvY29uZi9leHByZXNzaW9u cy5oIGtlcm5lbGNvbmYtMC4xLjIubmV3L2NvbmYvZXhwcmVzc2lvbnMuaAotLS0ga2VybmVsY29u Zi0wLjEuMi9jb25mL2V4cHJlc3Npb25zLmgJVGh1IEphbiAyNCAwNToyNzowOSAyMDAyCisrKyBr ZXJuZWxjb25mLTAuMS4yLm5ldy9jb25mL2V4cHJlc3Npb25zLmgJU2F0IEZlYiAgMiAxMzoyNDoz MCAyMDAyCkBAIC0xNiw1ICsxNiw3IEBACiBUeXBlIGdldF9nZW5lcmljX3R5cGUoVHlwZSk7CiB2 b2lkIGZyZWVfdG9rZW4oVG9rZW5QdHIpOwogY2hhciBnZXRfYm9vbGVhbl92YWx1ZShUb2tlblB0 cik7Cit2b2lkIGZwcmludGZfdmFsdWUydGsoRklMRSAqdGNsZiwgVHlwZSB0eXBlLCBWYWx1ZSB2 YWx1ZSk7Cit2b2lkIGV2YWx1YXRlX2V4cHJlc3Npb25zMnRrKEZJTEUgKnRjbGYsIEV4cHJlc3Np b25QdHIgZXhwKTsKIAogI2VuZGlmIC8qIF9LQ09ORl9FWFBSRVNTSU9OU19IICovCkJpbmFyeSBm aWxlcyBrZXJuZWxjb25mLTAuMS4yL2NvbmYvZXhwcmVzc2lvbnMubyBhbmQga2VybmVsY29uZi0w LjEuMi5uZXcvY29uZi9leHByZXNzaW9ucy5vIGRpZmZlcgpkaWZmIC11TnJiIGtlcm5lbGNvbmYt MC4xLjIvY29uZi9oZWFkZXIudGsga2VybmVsY29uZi0wLjEuMi5uZXcvY29uZi9oZWFkZXIudGsK LS0tIGtlcm5lbGNvbmYtMC4xLjIvY29uZi9oZWFkZXIudGsJVGh1IEphbiAgMSAwMTowMDowMCAx OTcwCisrKyBrZXJuZWxjb25mLTAuMS4yLm5ldy9jb25mL2hlYWRlci50awlUdWUgRmViICA1IDIw OjQ5OjQ3IDIwMDIKQEAgLTAsMCArMSwzODQgQEAKK3Byb2MgY29uZmlnX29wdGlvbiB7dyBsaW5l IHRleHQgc3ltIHN5bW5hbWUgaGF2ZXN5bSBoZWxwIGhhdmVoZWxwIGNoaWxkIGhhdmVjaGlsZH0g eworCWZyYW1lICR3LmYkbGluZQorCisJaWYgeyAkaGF2ZXN5bSAmIDQgfSB7CisJCXJhZGlvYnV0 dG9uICR3LmYkbGluZS5zeSAtdGV4dCAieSIgLXZhcmlhYmxlICRzeW1uYW1lIC12YWx1ZSB5IFwK KwkJCS1yZWxpZWYgZ3Jvb3ZlIC13aWR0aCAyIC1jb21tYW5kICJjaGFuZ2Vfc3ltXyRzeW1uYW1l IHRydWUiCisJCWlmIHsgJHN5bSAhPSAiU1lNX0JPT0wiICYmICRzeW0gIT0gIlNZTV9UUkkiICYm ICRzeW0gIT0gIlNZTV9PUFRJT04ifSB7CisJCQkkdy5mJGxpbmUuc3kgY29uZmlndXJlIC10ZXh0 ICItIiAtc3RhdGUgZGlzYWJsZWQKKwkJfSBlbHNlaWYgeyAkc3ltID09ICJTWU1fT1BUSU9OIiB9 IHsKKwkJCSR3LmYkbGluZS5zeSBjb25maWd1cmUgLXRleHQgIiIKKwkJfQorCQlwYWNrICR3LmYk bGluZS5zeSAtc2lkZSBsZWZ0IC1maWxsIHkKKwl9CisKKwlpZiB7ICRoYXZlc3ltICYgMiB9IHsK KwkJcmFkaW9idXR0b24gJHcuZiRsaW5lLnNtIC10ZXh0ICJtIiAgLXZhcmlhYmxlICRzeW1uYW1l IC12YWx1ZSBtIFwKKwkJCS1yZWxpZWYgZ3Jvb3ZlIC13aWR0aCAyIC1jb21tYW5kICJjaGFuZ2Vf c3ltXyRzeW1uYW1lIHRydWUiCisKKwkJaWYgeyAkc3ltICE9ICJTWU1fTU9EVUxFIiAmJiAkc3lt ICE9ICJTWU1fVFJJIiB9IHsKKwkJCSR3LmYkbGluZS5zbSBjb25maWd1cmUgLXRleHQgIi0iIC1z dGF0ZSBkaXNhYmxlZAorCQl9CisJCXBhY2sgJHcuZiRsaW5lLnNtIC1zaWRlIGxlZnQgLWZpbGwg eQorCX0KKworCWlmIHsgJGhhdmVzeW0gJiAxIH0geworCQlyYWRpb2J1dHRvbiAkdy5mJGxpbmUu c24gLXRleHQgIm4iICAtdmFyaWFibGUgJHN5bW5hbWUgLXZhbHVlIG4gXAorCQkJLXJlbGllZiBn cm9vdmUgLXdpZHRoIDIgLWNvbW1hbmQgImNoYW5nZV9zeW1fJHN5bW5hbWUgdHJ1ZSIKKwkJaWYg eyAkc3ltICE9ICJTWU1fQk9PTCIgJiYgJHN5bSAhPSAiU1lNX01PRFVMRSIgJiYgJHN5bSAhPSAi U1lNX1RSSSIgfSB7CisJCQkkdy5mJGxpbmUuc24gY29uZmlndXJlIC10ZXh0ICItIiAtc3RhdGUg ZGlzYWJsZWQKKwkJfQorCQlwYWNrICR3LmYkbGluZS5zbiAtc2lkZSBsZWZ0IC1maWxsIHkKKwl9 CisKKwltZXNzYWdlICR3LmYkbGluZS5tIC10ZXh0ICIkdGV4dCIgLWFuY2hvciB3IC13aWR0aCAx MDAwMAorCXBhY2sgJHcuZiRsaW5lLm0gLXNpZGUgbGVmdCAtZmlsbCBib3RoIC1leHBhbmQgb24K KworCWlmIHsgJGhhdmVoZWxwIH0geworCQlpZiB7ICRoZWxwICE9ICIiIH0geworCQkJYnV0dG9u ICR3LmYkbGluZS5oIC10ZXh0ICI/IiAtY29tbWFuZCAkaGVscAorCQl9IGVsc2UgeworCQkJYnV0 dG9uICR3LmYkbGluZS5oIC10ZXh0ICI/IiAtc3RhdGUgZGlzYWJsZWQgLXJlbGllZiBmbGF0CisJ CX0KKwkJcGFjayAkdy5mJGxpbmUuaCAtc2lkZSBsZWZ0IC1maWxsIHkKKwl9CisKKwlpZiB7ICRo YXZlY2hpbGQgfSB7CisJCWlmIHsgJGNoaWxkICE9ICIiIH0geworCQkJYnV0dG9uICR3LmYkbGlu ZS5jCisJCQljaGlsZF9idXR0b25fb24gJHcgJGxpbmUgIiR0ZXh0IiAiJGNoaWxkIgorCQl9IGVs c2UgeworCQkJYnV0dG9uICR3LmYkbGluZS5jIC10ZXh0ICItPiIgLXN0YXRlIGRpc2FibGVkIC1y ZWxpZWYgZmxhdAorCQl9CisJCXBhY2sgJHcuZiRsaW5lLmMgLXNpZGUgbGVmdCAtZmlsbCB5CisJ fQorCisJcGFjayAkdy5mJGxpbmUgLWFuY2hvciB3IC1maWxsIGJvdGggLWV4cGFuZCB5IC1pbiAk dy5jYW52YXMuc2JmCit9CisKK3Byb2MgY2hpbGRfYnV0dG9uX29uIHsgdyBsaW5lIHRleHQgY2hp bGQgfSB7CisJJHcuZiRsaW5lLmMgY29uZmlndXJlIC10ZXh0ICItPiIKKwkkdy5mJGxpbmUuYyBj b25maWd1cmUgLWNvbW1hbmQgImNyZWF0ZV93aW5kb3cgJHcgJGxpbmUgXCIkdGV4dFwiIFwiJGNo aWxkXCI7JGNoaWxkO2NyZWF0ZV9zY3JvbGxiYXIgJHcuYyRsaW5lIgorCSR3LmYkbGluZS5jIGNv bmZpZ3VyZSAtcmVsaWVmIHJhaXNlZAorfQorCitwcm9jIGNoaWxkX2J1dHRvbl9vZmYgeyB3IGxp bmUgfSB7CisJJHcuZiRsaW5lLmMgY29uZmlndXJlIC10ZXh0ICI8LSIKKwkkdy5mJGxpbmUuYyBj b25maWd1cmUgLWNvbW1hbmQgImRlc3Ryb3kgJHcuYyRsaW5lIgorCSR3LmYkbGluZS5jIGNvbmZp Z3VyZSAtcmVsaWVmIGZsYXQKK30KKworcHJvYyBpbml0X3dpbmRvdyB7IHcgdGV4dCB9IHsKKwor CXNjcm9sbGJhciAkdy52c2Nyb2xsIC1jb21tYW5kICIkdy5jYW52YXMgeXZpZXciCisJcGFjayAk dy52c2Nyb2xsIC1zaWRlIHJpZ2h0IC1maWxsIHkKKworCWNhbnZhcyAkdy5jYW52YXMgLXJlbGll ZiBmbGF0IC1ib3JkZXJ3aWR0aCAwIC15c2Nyb2xsY29tbWFuZCAiJHcudnNjcm9sbCBzZXQiCisJ ZnJhbWUgJHcuY2FudmFzLnNiZgorCXBhY2sgJHcuY2FudmFzIC1zaWRlIHJpZ2h0IC1maWxsIHkg LWV4cGFuZCBvbgorfQorCitwcm9jIGNhbHdpIHsgY21kIHcgfSB7CisJaWYgeyBbIHdpbmZvIHBh cmVudCAkdyBdICE9ICIiIH0geworCQlyZXR1cm4gWyBleHByIFsgY2Fsd2kgJGNtZCBbIHdpbmZv IHBhcmVudCAkdyBdIF0gKyBbIHdpbmZvICRjbWQgJHcgXSBdCisJfSBlbHNlIHsKKwkJcmV0dXJu IFsgd2luZm8gJGNtZCAkdyBdCisJfQorfQorCitwcm9jIG1heHdpIHsgY21kIHcgfSB7CisJaWYg eyBbIHdpbmZvIHBhcmVudCAkdyBdICE9ICIiIH0geworCQlyZXR1cm4gWyBtYXggWyBtYXh3aSAk Y21kIFsgd2luZm8gcGFyZW50ICR3IF0gXSAgWyB3aW5mbyAkY21kICR3IF0gXQorCX0gZWxzZSB7 CisJCXJldHVybiBbIHdpbmZvICRjbWQgJHcgXQorCX0KK30KKworcHJvYyBjcmVhdGVfd2luZG93 IHsgdyBsaW5lIHRleHQgY2hpbGQgfSB7CisKKwl0b3BsZXZlbCAkdy5jJGxpbmUgLWNsYXNzIERp YWxvZworCXdtIHRpdGxlICR3LmMkbGluZSAkdGV4dAorCisJaW5pdF93aW5kb3cgJHcuYyRsaW5l ICR0ZXh0CisKKwlldmFsICJiaW5kICR3LmMkbGluZSA8RGVzdHJveT4geyBjaGlsZF9idXR0b25f b24gJHcgJGxpbmUgXCIkdGV4dFwiIFwiJGNoaWxkXCIgfSIKKwljaGlsZF9idXR0b25fb2ZmICR3 ICRsaW5lCisKKyMJYnV0dG9uICR3LmMkbGluZS5jbG9zZSAtdGV4dCAiPC0iIC1jb21tYW5kICJk ZXN0cm95ICR3LmMkbGluZSIKKyMJcGFjayAkdy5jJGxpbmUuY2xvc2UgLXNpZGUgbGVmdCAtYW5j aG9yIG4KKworIwlzZXQgcG9zeCBbIG1heHdpIHJlcXcgJHcgXQorIwlzZXQgcG9zeSBbIGV4cHIg WyBjYWx3aSB5ICR3LmYkbGluZS5jIF0gLSBbIGNhbHdpIHkgJHcuYyRsaW5lLmNsb3NlIF0gXQor IwlzZXQgcG9zeSBbIGNhbHdpIHkgJHcuZiRsaW5lLmMgXQorCisjCXdtIGdlb21ldHJ5ICR3LmMk bGluZSArJHBvc3grJHBvc3kKK30KKworcHJvYyBjcmVhdGVfc2Nyb2xsYmFyIHsgdyB9IHsKKwor CXNldCBzaXpvayAwCisJI1tleHByIFt3aW5mbyByZXFoZWlnaHQgJHcuZjIub2tdICsgMTJdCisJ I3BhY2sgJHcuY2FudmFzLnNiZgorCXVwZGF0ZSBpZGxldGFza3MKKwlzZXQgbWF4eSBbZXhwciBb d2luZm8gc2NyZWVuaGVpZ2h0IC5dICogMyAvIDRdCisJc2V0IGNhbnZ0b3RhbCBbd2luZm8gcmVx aGVpZ2h0ICR3LmNhbnZhcy5zYmZdCisJaWYgW2V4cHIgJHNpem9rICsgJGNhbnZ0b3RhbCA8ICRt YXh5XSB7CisJCXNldCBzaXp5ICRjYW52dG90YWwKKwl9IGVsc2UgeworCQlzZXQgc2l6eSBbZXhw ciAkbWF4eSAtICRzaXpva10KKwl9CisKKwkkdy5jYW52YXMgY29uZmlndXJlIC13aWR0aCBbd2lu Zm8gcmVxdyAkdy5jYW52YXMuc2JmXSAtaGVpZ2h0ICRzaXp5IFwKKwkJLXNjcm9sbHJlZ2lvbiAi MCAwIFt3aW5mbyByZXF3ICR3LmNhbnZhcy5zYmZdIFt3aW5mbyByZXFoICR3LmNhbnZhcy5zYmZd IgorCSR3LmNhbnZhcyBjb25maWd1cmUgLXlzY3JvbGxpbmNyZW1lbnQgMTAKKwkkdy5jYW52YXMg Y3JlYXRlIHdpbmRvdyAwIDAgLWFuY2hvciBudyAtd2luZG93ICR3LmNhbnZhcy5zYmYKKwlwYWNr ICR3LmNhbnZhcyAtc2lkZSByaWdodCAtZmlsbCB5IC1leHBhbmQgb24KKwkjIHVwZGF0ZSBpZGxl dGFza3MKKworfQorCitwcm9jIGRvaGVscCB7IHcgcGFyZW50IGZpbGVuYW1lIHN0YXJ0IGxlbmd0 aCB9IHsKKwljYXRjaCB7ZGVzdHJveSAkdyB9CisJdG9wbGV2ZWwgJHcgLWNsYXNzIERpYWxvZwor CXNldCBmaWxlZm91bmQgMAorCWlmIHsgW2ZpbGUgcmVhZGFibGUgJGZpbGVuYW1lXSA9PSAxfSB0 aGVuIHsKKwkJc2V0IGZpbGVmb3VuZCAxCisJCXNldCBpZCBbb3BlbiAkZmlsZW5hbWVdCisJCXNl ZWsgJGlkICRzdGFydAorCQlzZXQgbWVzc2FnZSBbcmVhZCAkaWQgJGxlbmd0aF0KKwkJY2xvc2Ug JGlkCisJfQorCWZyYW1lICR3LmYxCisJcGFjayAkdy5mMSAtZmlsbCBib3RoIC1leHBhbmQgb24K KwlzZXQgb2xkRm9jdXMgW2ZvY3VzXQorCWZyYW1lICR3LmYyCisJYnV0dG9uICR3LmYyLm9rIC10 ZXh0ICJPSyIgLXdpZHRoIDEwIC1jb21tYW5kICJkZXN0cm95ICR3OyBjYXRjaCB7Zm9jdXMgJG9s ZEZvY3VzfSIKKwlwYWNrICR3LmYyLm9rIC1zaWRlIGJvdHRvbSAtcGFkeSA2IC1hbmNob3Igbgor CXBhY2sgJHcuZjIgLXNpZGUgYm90dG9tIC1wYWR4IDEwIC1hbmNob3IgcworCXNjcm9sbGJhciAk dy5mMS52c2Nyb2xsIC1jb21tYW5kICIkdy5mMS5jYW52YXMgeXZpZXciCisJcGFjayAkdy5mMS52 c2Nyb2xsIC1zaWRlIHJpZ2h0IC1maWxsIHkKKworCWNhbnZhcyAkdy5mMS5jYW52YXMgLXJlbGll ZiBmbGF0IC1ib3JkZXJ3aWR0aCAwIC15c2Nyb2xsY29tbWFuZCAiJHcuZjEudnNjcm9sbCBzZXQi CisJZnJhbWUgJHcuZjEuZgorCXBhY2sgJHcuZjEuY2FudmFzIC1zaWRlIHJpZ2h0IC1maWxsIHkg LWV4cGFuZCBvbgorCWlmIHsgJGZpbGVmb3VuZCA9PSAwIH0gdGhlbiB7CisJCW1lc3NhZ2UgJHcu ZjEuZi5tIC13aWR0aCA3NTAgLWFzcGVjdCAzMDAgLXJlbGllZiBmbGF0IC10ZXh0IFwKKwkJCSJO byBoZWxwIGF2YWlsYWJsZSAtIHVuYWJsZSB0byBvcGVuIGZpbGUgJGZpbGVuYW1lLiAgVGhpcyBm aWxlIHNob3VsZCBoYXZlIGNvbWUgd2l0aCB5b3VyIGtlcm5lbC4iCisJCWxhYmVsICR3LmYxLmJt IC1iaXRtYXAgZXJyb3IKKwkJd20gdGl0bGUgJHcgIlJURk0iCisJfSBlbHNlIHsKKwkJdGV4dCAk dy5mMS5mLm0gLXdpZHRoIDczIC1yZWxpZWYgZmxhdCAtd3JhcCB3b3JkCisJCSR3LmYxLmYubSBp bnNlcnQgMC4wICRtZXNzYWdlCisJCSR3LmYxLmYubSBjb25mIC1zdGF0ZSBkaXNhYmxlZCAtaGVp Z2h0IFskdy5mMS5mLm0gaW5kZXggZW5kXQorCQlsYWJlbCAkdy5mMS5ibSAtYml0bWFwIGluZm8K KwkJd20gdGl0bGUgJHcgIkNvbmZpZ3VyYXRpb24gaGVscCIKKwl9CisJcGFjayAkdy5mMS5mLm0g LXNpZGUgbGVmdAorCXBhY2sgJHcuZjEuYm0gJHcuZjEuZiAtc2lkZSBsZWZ0IC1wYWR4IDEwCisJ Zm9jdXMgJHcKKwlzZXQgd2lueCBbZXhwciBbd2luZm8geCAkcGFyZW50XSsyMF0KKwlzZXQgd2lu eSBbZXhwciBbd2luZm8geSAkcGFyZW50XSsyMF0KKwl3bSBnZW9tZXRyeSAkdyArJHdpbngrJHdp bnkKKwlzZXQgc2l6b2sgW2V4cHIgW3dpbmZvIHJlcWhlaWdodCAkdy5mMi5va10gKyAxMl0KKwlz ZXQgbWF4eSBbZXhwciBbd2luZm8gc2NyZWVuaGVpZ2h0IC5dICogMyAvIDRdCisJc2V0IGNhbnZ0 b3RhbCBbd2luZm8gcmVxaGVpZ2h0ICR3LmYxLmYubV0KKwlpZiBbZXhwciAkc2l6b2sgKyAkY2Fu dnRvdGFsIDwgJG1heHldIHsKKwkJc2V0IHNpenkgJGNhbnZ0b3RhbAorCX0gZWxzZSB7CisJCXNl dCBzaXp5IFtleHByICRtYXh5IC0gJHNpem9rXQorCX0KKwkkdy5mMS5jYW52YXMgY29uZmlndXJl IC1oZWlnaHQgJHNpenkgLXdpZHRoIFt3aW5mbyByZXF3aWR0aCAkdy5mMS5mLm1dIFwKKwkJLXNj cm9sbHJlZ2lvbiAiMCAwIFt3aW5mbyByZXF3aWR0aCAkdy5mMS5mLm1dIFt3aW5mbyByZXFoZWln aHQgJHcuZjEuZi5tXSIKKwkkdy5mMS5jYW52YXMgY3JlYXRlIHdpbmRvdyAwIDAgLWFuY2hvciBu dyAtd2luZG93ICR3LmYxLmYKKwl1cGRhdGUgaWRsZXRhc2tzCisJc2V0IG1heHkgW3dpbmZvIHNj cmVlbmhlaWdodCAuXQorCWlmIFtleHByICRzaXpvayArICRjYW52dG90YWwgPCAkbWF4eV0gewor CQlzZXQgc2l6eSBbZXhwciAkc2l6b2sgKyAkY2FudnRvdGFsXQorCX0gZWxzZSB7CisJCXNldCBz aXp5ICRtYXh5CisJfQorCXdtIG1heHNpemUgJHcgW3dpbmZvIHdpZHRoICR3XSAkc2l6eQorfQor Citwcm9jIHdyaXRlX3N5bWJvbCB7IGNvbmYgY29uZl9oIHR5cGUgc3ltbmFtZSBzeW12YWwgfSB7 CisJc3dpdGNoICR0eXBlIHsKKwkJIlNZTV9UUkkiIC0gIlNZTV9CT09MIiAtICJTWU1fT1BUSU9O IiB7CisJCQlpZiB7ICRzeW12YWwgPT0gInkiIH0geworCQkJCXB1dHMgJGNvbmZfaCAiI2RlZmlu ZSBDT05GSUdfJHN5bW5hbWUgMSIKKwkJCQlwdXRzICRjb25mICJDT05GSUdfJHN5bW5hbWU9eSIK KwkJCX0gZWxzZWlmIHsgJHN5bXZhbCA9PSAibSIgfSB7CisJCQkJcHV0cyAkY29uZl9oICIjdW5k ZWYgIENPTkZJR18kc3ltbmFtZSIKKwkJCQlwdXRzICRjb25mX2ggIiNkZWZpbmUgQ09ORklHXyRz eW1uYW1lX01PRFVMRSAxIgorCQkJCXB1dHMgJGNvbmYgIkNPTkZJR18kc3ltbmFtZT1tIgorCQkJ fSBlbHNlIHsKKwkJCQlwdXRzICRjb25mX2ggIiN1bmRlZiAgQ09ORklHXyRzeW1uYW1lIgorCQkJ CXB1dHMgJGNvbmYgIiMgQ09ORklHXyRzeW1uYW1lIGlzIG5vdCBzZXQiCisJCQl9CisJCX0KKwkJ IlNZTV9OVUxMIiB7CisJCQlwdXRzIGNvbmZfaCAiI3VuZGVmICBDT05GSUdfJHN5bW5hbWUiCisJ CQlwdXRzIGNvbmYgIiMgQ09ORklHXyRzeW1uYW1lIGlzIG5vdCBzZXQiCisJCX0KKwl9Cit9CisK K3Byb2MgcmVhZF9jb25maWcgeyBjb25mX25hbWUgfSB7CisJaWYgeyBbc3RyaW5nIGxlbmd0aCAk Y29uZl9uYW1lXSA9PSAwIHx8IFtmaWxlIHJlYWRhYmxlICRjb25mX25hbWVdICE9IDEgfSB0aGVu IHsgcmV0dXJuIH0KKwlzZXQgY29uZiBbIG9wZW4gJGNvbmZfbmFtZSByIF0KKwl3aGlsZSB7IFsg Z2V0cyAkY29uZiBsaW5lIF0gPj0gMCB9IHsKKwkJaWYgW3JlZ2V4cCB7KFswLTlBLVphLXpfXSsp PShbeW5tXSl9ICRsaW5lIGZvbyB2YXIgdmFsdWVdIHsKKwkJCWlmIHsgJHZhbHVlID09ICJ5IiB9 IHRoZW4geyBzZXQgY21kICJnbG9iYWwgJHZhcjsgc2V0ICR2YXIgeSIgfQorCQkJaWYgeyAkdmFs dWUgPT0gIm4iIH0gdGhlbiB7IHNldCBjbWQgImdsb2JhbCAkdmFyOyBzZXQgJHZhciBuIiB9CisJ CQlpZiB7ICR2YWx1ZSA9PSAibSIgfSB0aGVuIHsgc2V0IGNtZCAiZ2xvYmFsICR2YXI7IHNldCAk dmFyIG0iIH0KKwkJCWV2YWwgJGNtZAorCQl9CisJCWlmIFtyZWdleHAgeyMgKFswLTlBLVphLXpf XSspIGlzIG5vdCBzZXR9ICRsaW5lIGZvbyB2YXJdIHsKKwkJCXNldCBjbWQgImdsb2JhbCAkdmFy OyBzZXQgJHZhciBuIgorCQkJZXZhbCAkY21kCisJCX0KKwkJaWYgW3JlZ2V4cCB7KFswLTlBLVph LXpfXSspPShbMC05QS1GYS1mXSspfSAkbGluZSBmb28gdmFyIHZhbHVlXSB7CisJCQlzZXQgY21k ICJnbG9iYWwgJHZhcjsgc2V0ICR2YXIgJHZhbHVlIgorCQkJZXZhbCAkY21kCisJCX0KKwkJaWYg W3JlZ2V4cCB7KFswLTlBLVphLXpfXSspPSIoW14iXSopIn0gJGxpbmUgZm9vIHZhciB2YWx1ZV0g eworCQkJc2V0IGNtZCAiZ2xvYmFsICR2YXI7IHNldCAkdmFyIFwiJHZhbHVlXCIiCisJCQlldmFs ICRjbWQKKwkJfQorCX0KKwljbG9zZSAkY29uZgorfQorCitwcm9jIHVwZGF0ZV9tZW51X3N5bSB7 IHcgdHlwZSBzeW1zaXplIHN5bXZhbCB9IHsKKwljYXRjaCB7CisJCWlmIHsgJHN5bXNpemUgJiA0 IH0geworCQkJaWYgeyAkc3ltdmFsID09ICJuIiB9IHsKKwkJCQlldmFsICIkdy5zeSBjb25maWd1 cmUgLXRleHQgXCJ5XCIgLXN0YXRlIGRpc2FibGVkIgorCQkJfSBlbHNlIHsKKwkJCQlldmFsICIk dy5zeSBjb25maWd1cmUgLXRleHQgXCJ5XCIgLXN0YXRlIG5vcm1hbCIKKwkJCX0KKwkJfQorCQlp ZiB7ICRzeW1zaXplICYgMiB9IHsKKwkJCWlmIHsgJHN5bXZhbCA9PSAibiIgfSB7CisJCQkJZXZh bCAiJHcuc20gY29uZmlndXJlIC10ZXh0IFwibVwiIC1zdGF0ZSBkaXNhYmxlZCIKKwkJCX0gZWxz ZSB7CisJCQkJZXZhbCAiJHcuc20gY29uZmlndXJlIC10ZXh0IFwibVwiIC1zdGF0ZSBub3JtYWwi CisJCQl9CisJCX0KKwkJaWYgeyAkc3ltc2l6ZSAmIDEgfSB7CisJCQlpZiB7ICRzeW12YWwgPT0g Im4iIH0geworCQkJCWV2YWwgIiR3LnNuIGNvbmZpZ3VyZSAtdGV4dCBcIm5cIiAtc3RhdGUgZGlz YWJsZWQiCisJCQl9IGVsc2UgeworCQkJCWV2YWwgIiR3LnNuIGNvbmZpZ3VyZSAtdGV4dCBcIm5c IiAtc3RhdGUgbm9ybWFsIgorCQkJfQorCQl9CisJfQorfQorCitwcm9jIGNvbnZfYm9vbGVhbiB7 IHZhbHVlIH0geworCWlmIHsgJHZhbHVlID09ICIiIH0JeyByZXR1cm4gIm4iIH0KKwlpZiB7ICR2 YWx1ZSA9PSAwIH0JeyByZXR1cm4gIm4iIH0KKwlpZiB7ICR2YWx1ZSA9PSAibiIgfQl7IHJldHVy biAibiIgfQorCWlmIHsgJHZhbHVlID09ICJtIiB9CXsgcmV0dXJuICJtIiB9CisJcmV0dXJuICJ5 IgorfQorCitwcm9jIHN5bV9ub3QgeyB2YWx1ZSB9IHsKKwlzZXQgdmFsdWUgWyBjb252X2Jvb2xl YW4gJHZhbHVlIF0KKwlpZiB7ICR2YWx1ZSA9PSAibiIgfSB7IHJldHVybiAieSIgfQorCXJldHVy biAibiIKK30KKworcHJvYyBib29sMmludCB7IHZhbHVlIH0geworCWlmIHsgJHZhbHVlID09ICJu IiB9IHsKKwkJcmV0dXJuIDAKKwl9IGVsc2VpZiB7ICR2YWx1ZSA9PSAibSIgfSB7CisJCXJldHVy biAxCisJfSBlbHNlIHsKKwkJcmV0dXJuIDIKKwl9Cit9CisKK3Byb2MgaW50MmJvb2wgeyB2YWx1 ZSB9IHsKKwlpZiB7ICR2YWx1ZSA9PSAwIH0geworCQlyZXR1cm4gIm4iCisJfSBlbHNlaWYgeyAk dmFsdWUgPT0gMSB9IHsKKwkJcmV0dXJuICJtIgorCX0gZWxzZSB7CisJCXJldHVybiAieSIKKwl9 Cit9CisKK3Byb2MgbWluIHsgdmFsdWUxIHZhbHVlMiB9IHsKKwlpZiB7ICR2YWx1ZTEgPCAkdmFs dWUyIH0geworCQlyZXR1cm4gJHZhbHVlMQorCX0gZWxzZSB7CisJCXJldHVybiAkdmFsdWUyCisJ fQorfQorCitwcm9jIG1heCB7IHZhbHVlMSB2YWx1ZTIgfSB7CisJaWYgeyAkdmFsdWUxIDwgJHZh bHVlMiB9IHsKKwkJcmV0dXJuICR2YWx1ZTEKKwl9IGVsc2UgeworCQlyZXR1cm4gJHZhbHVlMgor CX0KK30KKworcHJvYyBnZXRfc3ltIHsgc3ltbmFtZSB9IHsKKwlzZXQgY21kICJnbG9iYWwgJHN5 bW5hbWU7IHJldHVybiBcJCRzeW1uYW1lIgorCXJldHVybiBbIGV2YWwgJGNtZCBdCit9CisKK3By b2Mgc3ltX2FuZCB7IHZhbHVlMSB2YWx1ZTIgfSB7CisJc2V0IHZhbHVlMSBbIGJvb2wyaW50IFsg Y29udl9ib29sZWFuICR2YWx1ZTEgXSBdCisJc2V0IHZhbHVlMiBbIGJvb2wyaW50IFsgY29udl9i b29sZWFuICR2YWx1ZTIgXSBdCisJc2V0IHZhbHVlIFsgbWluICR2YWx1ZTEgJHZhbHVlMiBdCisJ cmV0dXJuIFsgaW50MmJvb2wgJHZhbHVlIF0KK30KKworcHJvYyBzeW1fb3IgeyB2YWx1ZTEgdmFs dWUyIH0geworCXNldCB2YWx1ZTEgWyBib29sMmludCBbIGNvbnZfYm9vbGVhbiAkdmFsdWUxIF0g XQorCXNldCB2YWx1ZTIgWyBib29sMmludCBbIGNvbnZfYm9vbGVhbiAkdmFsdWUyIF0gXQorCXNl dCB2YWx1ZSBbIG1heCAkdmFsdWUxICR2YWx1ZTIgXQorCXJldHVybiBbIGludDJib29sICR2YWx1 ZSBdCit9CisKK3Byb2Mgc3ltX2VxdWFsIHsgdmFsdWUxIHZhbHVlMiB9IHsKKwlpZiB7ICR2YWx1 ZTEgPT0gJHZhbHVlMiB9IHsgcmV0dXJuICJ5IiB9CisJc2V0IHZhbHVlMSBbIGNvbnZfYm9vbGVh biAkdmFsdWUxIF0KKwlzZXQgdmFsdWUyIFsgY29udl9ib29sZWFuICR2YWx1ZTIgXQorCWlmIHsg JHZhbHVlMSA9PSAkdmFsdWUyIH0geyByZXR1cm4gInkiIH0KKwlyZXR1cm4gIm4iCit9CisKK3By b2Mgc3ltX25vdF9lcXVhbCB7IHZhbHVlMSB2YWx1ZTIgfSB7CisJaWYgeyAkdmFsdWUxID09ICR2 YWx1ZTIgfSB7IHJldHVybiAibiIgfQorCXNldCB2YWx1ZTEgWyBjb252X2Jvb2xlYW4gJHZhbHVl MSBdCisJc2V0IHZhbHVlMiBbIGNvbnZfYm9vbGVhbiAkdmFsdWUyIF0KKwlpZiB7ICR2YWx1ZTEg PT0gJHZhbHVlMiB9IHsgcmV0dXJuICJuIiB9CisJcmV0dXJuICJ5IgorfQorCitwcm9jIHN5bV9k ZXBlbmRzIHsgdmFsdWUxIHZhbHVlMiB9IHsKKwlpZiB7ICR2YWx1ZTEgPT0gInkiIH0geworCQlp ZiB7ICR2YWx1ZTIgPT0gIm4iIH0geworCQkJcmV0dXJuICJuIgorCQl9IGVsc2UgeworCQkJcmV0 dXJuICJ5IgorCQl9CisJfSBlbHNlIHsKKwkJcmV0dXJuICJ5IgorCX0KK30KKworcHJvYyBzeW1f ZGVyaXZlZCB7IHZhbHVlIH0geworCWlmIHsgJHZhbHVlID09ICJ5IiB9IHsgcmV0dXJuICIiIH0K KwlyZXR1cm4gIm4iCit9CisKK3Byb2MgdXBkYXRlX2Rlcml2ZWQgeyBzeW1uYW1lIGRlcml2ZWQg fSB7Cit9CisKK3Byb2MgdXBkYXRlX2RlcGVuZHMgeyBzeW1uYW1lIGRlcGVuZHMgfSB7Cit9CisK ZGlmZiAtdU5yYiBrZXJuZWxjb25mLTAuMS4yL2NvbmYvaGVscC5kIGtlcm5lbGNvbmYtMC4xLjIu bmV3L2NvbmYvaGVscC5kCi0tLSBrZXJuZWxjb25mLTAuMS4yL2NvbmYvaGVscC5kCVRodSBKYW4g IDEgMDE6MDA6MDAgMTk3MAorKysga2VybmVsY29uZi0wLjEuMi5uZXcvY29uZi9oZWxwLmQJVHVl IEZlYiAgNSAyMDo0OTowNSAyMDAyCkBAIC0wLDAgKzEsMTAgQEAKK2hlbHAubzogaGVscC5jIC91 c3IvaW5jbHVkZS9zdGRpby5oIC91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIFwKKyAvdXNyL2luY2x1 ZGUvc3lzL2NkZWZzLmggL3Vzci9pbmNsdWRlL2dudS9zdHVicy5oIFwKKyAvdXNyL2xpYi9nY2Mt bGliL2kzODYtbGludXgvMi45NS40L2luY2x1ZGUvc3RkZGVmLmggXAorIC91c3IvaW5jbHVkZS9i aXRzL3R5cGVzLmggL3Vzci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVzLmggXAorIC91c3IvaW5j bHVkZS9iaXRzL3NjaGVkLmggL3Vzci9pbmNsdWRlL2xpYmlvLmggXAorIC91c3IvaW5jbHVkZS9f R19jb25maWcuaCAvdXNyL2luY2x1ZGUvd2NoYXIuaCBcCisgL3Vzci9pbmNsdWRlL2JpdHMvd2No YXIuaCAvdXNyL2luY2x1ZGUvZ2NvbnYuaCBcCisgL3Vzci9saWIvZ2NjLWxpYi9pMzg2LWxpbnV4 LzIuOTUuNC9pbmNsdWRlL3N0ZGFyZy5oIFwKKyAvdXNyL2luY2x1ZGUvYml0cy9zdGRpb19saW0u aCAvdXNyL2luY2x1ZGUvbWFsbG9jLmggXAorIC91c3IvaW5jbHVkZS9zdHJpbmcuaCBoZWxwLmgg a2VybmVsY29uZi5oCkJpbmFyeSBmaWxlcyBrZXJuZWxjb25mLTAuMS4yL2NvbmYvaGVscC5vIGFu ZCBrZXJuZWxjb25mLTAuMS4yLm5ldy9jb25mL2hlbHAubyBkaWZmZXIKQmluYXJ5IGZpbGVzIGtl cm5lbGNvbmYtMC4xLjIvY29uZi9rZXJuZWxjb25mIGFuZCBrZXJuZWxjb25mLTAuMS4yLm5ldy9j b25mL2tlcm5lbGNvbmYgZGlmZmVyCmRpZmYgLXVOcmIga2VybmVsY29uZi0wLjEuMi9jb25mL2tl cm5lbGNvbmYuZCBrZXJuZWxjb25mLTAuMS4yLm5ldy9jb25mL2tlcm5lbGNvbmYuZAotLS0ga2Vy bmVsY29uZi0wLjEuMi9jb25mL2tlcm5lbGNvbmYuZAlUaHUgSmFuICAxIDAxOjAwOjAwIDE5NzAK KysrIGtlcm5lbGNvbmYtMC4xLjIubmV3L2NvbmYva2VybmVsY29uZi5kCVR1ZSBGZWIgIDUgMjA6 NDk6MDUgMjAwMgpAQCAtMCwwICsxLDUgQEAKK2tlcm5lbGNvbmYubzoga2VybmVsY29uZi5jIC91 c3IvaW5jbHVkZS9zdHJpbmcuaCBcCisgL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmggL3Vzci9pbmNs dWRlL3N5cy9jZGVmcy5oIFwKKyAvdXNyL2luY2x1ZGUvZ251L3N0dWJzLmggXAorIC91c3IvbGli L2djYy1saWIvaTM4Ni1saW51eC8yLjk1LjQvaW5jbHVkZS9zdGRkZWYuaCBtZW51Y29uZmlnLmgg XAorIG9sZGNvbmZpZy5oIHJlYWRjb25maWcuaCByZWFkc3ltYm9scy5oIHhjb25maWcuaApCaW5h cnkgZmlsZXMga2VybmVsY29uZi0wLjEuMi9jb25mL2tlcm5lbGNvbmYubyBhbmQga2VybmVsY29u Zi0wLjEuMi5uZXcvY29uZi9rZXJuZWxjb25mLm8gZGlmZmVyCmRpZmYgLXVOcmIga2VybmVsY29u Zi0wLjEuMi9jb25mL21lbnVjb25maWcuZCBrZXJuZWxjb25mLTAuMS4yLm5ldy9jb25mL21lbnVj b25maWcuZAotLS0ga2VybmVsY29uZi0wLjEuMi9jb25mL21lbnVjb25maWcuZAlUaHUgSmFuICAx IDAxOjAwOjAwIDE5NzAKKysrIGtlcm5lbGNvbmYtMC4xLjIubmV3L2NvbmYvbWVudWNvbmZpZy5k CVR1ZSBGZWIgIDUgMjA6NDk6MDUgMjAwMgpAQCAtMCwwICsxLDE4IEBACittZW51Y29uZmlnLm86 IG1lbnVjb25maWcuYyAvdXNyL2luY2x1ZGUvY3R5cGUuaCBcCisgL3Vzci9pbmNsdWRlL2ZlYXR1 cmVzLmggL3Vzci9pbmNsdWRlL3N5cy9jZGVmcy5oIFwKKyAvdXNyL2luY2x1ZGUvZ251L3N0dWJz LmggL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCBcCisgL3Vzci9saWIvZ2NjLWxpYi9pMzg2LWxp bnV4LzIuOTUuNC9pbmNsdWRlL3N0ZGRlZi5oIFwKKyAvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFk dHlwZXMuaCAvdXNyL2luY2x1ZGUvYml0cy9zY2hlZC5oIFwKKyAvdXNyL2luY2x1ZGUvZW5kaWFu LmggL3Vzci9pbmNsdWRlL2JpdHMvZW5kaWFuLmggL3Vzci9pbmNsdWRlL3N0ZGlvLmggXAorIC91 c3IvaW5jbHVkZS9saWJpby5oIC91c3IvaW5jbHVkZS9fR19jb25maWcuaCAvdXNyL2luY2x1ZGUv d2NoYXIuaCBcCisgL3Vzci9pbmNsdWRlL2JpdHMvd2NoYXIuaCAvdXNyL2luY2x1ZGUvZ2NvbnYu aCBcCisgL3Vzci9saWIvZ2NjLWxpYi9pMzg2LWxpbnV4LzIuOTUuNC9pbmNsdWRlL3N0ZGFyZy5o IFwKKyAvdXNyL2luY2x1ZGUvYml0cy9zdGRpb19saW0uaCAvdXNyL2luY2x1ZGUvc3RyaW5nLmgg XAorIC91c3IvaW5jbHVkZS9zdGRsaWIuaCAvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmggL3Vzci9p bmNsdWRlL3RpbWUuaCBcCisgL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCAvdXNyL2luY2x1ZGUv Yml0cy9zZWxlY3QuaCBcCisgL3Vzci9pbmNsdWRlL2JpdHMvc2lnc2V0LmggL3Vzci9pbmNsdWRl L2JpdHMvdGltZS5oIFwKKyAvdXNyL2luY2x1ZGUvc3lzL3N5c21hY3Jvcy5oIC91c3IvaW5jbHVk ZS9hbGxvY2EuaCBcCisgL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIC91c3IvaW5jbHVkZS9iaXRzL3Bv c2l4X29wdC5oIFwKKyAvdXNyL2luY2x1ZGUvYml0cy9jb25mbmFtZS5oIC91c3IvaW5jbHVkZS9n ZXRvcHQuaCBcCisgLi4vaW5jbHVkZS9saW51eC92ZXJzaW9uLmggdHJlZS5oIGtlcm5lbGNvbmYu aCBkZXBzLmggZXhwcmVzc2lvbnMuaCBcCisgaGVscC5oIHdyaXRlY29uZmlnLmgKQmluYXJ5IGZp bGVzIGtlcm5lbGNvbmYtMC4xLjIvY29uZi9tZW51Y29uZmlnLm8gYW5kIGtlcm5lbGNvbmYtMC4x LjIubmV3L2NvbmYvbWVudWNvbmZpZy5vIGRpZmZlcgpkaWZmIC11TnJiIGtlcm5lbGNvbmYtMC4x LjIvY29uZi9vbGRjb25maWcuZCBrZXJuZWxjb25mLTAuMS4yLm5ldy9jb25mL29sZGNvbmZpZy5k Ci0tLSBrZXJuZWxjb25mLTAuMS4yL2NvbmYvb2xkY29uZmlnLmQJVGh1IEphbiAgMSAwMTowMDow MCAxOTcwCisrKyBrZXJuZWxjb25mLTAuMS4yLm5ldy9jb25mL29sZGNvbmZpZy5kCVR1ZSBGZWIg IDUgMjA6NDk6MDYgMjAwMgpAQCAtMCwwICsxIEBACitvbGRjb25maWcubzogb2xkY29uZmlnLmMK QmluYXJ5IGZpbGVzIGtlcm5lbGNvbmYtMC4xLjIvY29uZi9vbGRjb25maWcubyBhbmQga2VybmVs Y29uZi0wLjEuMi5uZXcvY29uZi9vbGRjb25maWcubyBkaWZmZXIKZGlmZiAtdU5yYiBrZXJuZWxj b25mLTAuMS4yL2NvbmYvcmVhZGNvbmZpZy5kIGtlcm5lbGNvbmYtMC4xLjIubmV3L2NvbmYvcmVh ZGNvbmZpZy5kCi0tLSBrZXJuZWxjb25mLTAuMS4yL2NvbmYvcmVhZGNvbmZpZy5kCVRodSBKYW4g IDEgMDE6MDA6MDAgMTk3MAorKysga2VybmVsY29uZi0wLjEuMi5uZXcvY29uZi9yZWFkY29uZmln LmQJVHVlIEZlYiAgNSAyMDo0OTowNiAyMDAyCkBAIC0wLDAgKzEsMTcgQEAKK3JlYWRjb25maWcu bzogcmVhZGNvbmZpZy5jIC91c3IvaW5jbHVkZS9jdHlwZS5oIFwKKyAvdXNyL2luY2x1ZGUvZmVh dHVyZXMuaCAvdXNyL2luY2x1ZGUvc3lzL2NkZWZzLmggXAorIC91c3IvaW5jbHVkZS9nbnUvc3R1 YnMuaCAvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIFwKKyAvdXNyL2xpYi9nY2MtbGliL2kzODYt bGludXgvMi45NS40L2luY2x1ZGUvc3RkZGVmLmggXAorIC91c3IvaW5jbHVkZS9iaXRzL3B0aHJl YWR0eXBlcy5oIC91c3IvaW5jbHVkZS9iaXRzL3NjaGVkLmggXAorIC91c3IvaW5jbHVkZS9lbmRp YW4uaCAvdXNyL2luY2x1ZGUvYml0cy9lbmRpYW4uaCBcCisgL3Vzci9pbmNsdWRlL21hbGxvYy5o IC91c3IvaW5jbHVkZS9zdGRpby5oIC91c3IvaW5jbHVkZS9saWJpby5oIFwKKyAvdXNyL2luY2x1 ZGUvX0dfY29uZmlnLmggL3Vzci9pbmNsdWRlL3djaGFyLmggXAorIC91c3IvaW5jbHVkZS9iaXRz L3djaGFyLmggL3Vzci9pbmNsdWRlL2djb252LmggXAorIC91c3IvbGliL2djYy1saWIvaTM4Ni1s aW51eC8yLjk1LjQvaW5jbHVkZS9zdGRhcmcuaCBcCisgL3Vzci9pbmNsdWRlL2JpdHMvc3RkaW9f bGltLmggL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIFwKKyAvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgg L3Vzci9pbmNsdWRlL3RpbWUuaCBcCisgL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCAvdXNyL2lu Y2x1ZGUvYml0cy9zZWxlY3QuaCBcCisgL3Vzci9pbmNsdWRlL2JpdHMvc2lnc2V0LmggL3Vzci9p bmNsdWRlL2JpdHMvdGltZS5oIFwKKyAvdXNyL2luY2x1ZGUvc3lzL3N5c21hY3Jvcy5oIC91c3Iv aW5jbHVkZS9hbGxvY2EuaCBcCisgL3Vzci9pbmNsdWRlL3N0cmluZy5oIC4uL2luY2x1ZGUvbGlu dXgvdmVyc2lvbi5oIGtlcm5lbGNvbmYuaCBcCisgcmVhZHN5bWJvbHMuaCBoZWxwLmggdHJlZS5o IHV0aWxzLmgKQmluYXJ5IGZpbGVzIGtlcm5lbGNvbmYtMC4xLjIvY29uZi9yZWFkY29uZmlnLm8g YW5kIGtlcm5lbGNvbmYtMC4xLjIubmV3L2NvbmYvcmVhZGNvbmZpZy5vIGRpZmZlcgpkaWZmIC11 TnJiIGtlcm5lbGNvbmYtMC4xLjIvY29uZi9yZWFkc3ltYm9scy5kIGtlcm5lbGNvbmYtMC4xLjIu bmV3L2NvbmYvcmVhZHN5bWJvbHMuZAotLS0ga2VybmVsY29uZi0wLjEuMi9jb25mL3JlYWRzeW1i b2xzLmQJVGh1IEphbiAgMSAwMTowMDowMCAxOTcwCisrKyBrZXJuZWxjb25mLTAuMS4yLm5ldy9j b25mL3JlYWRzeW1ib2xzLmQJVHVlIEZlYiAgNSAyMDo0OTowNiAyMDAyCkBAIC0wLDAgKzEsMTcg QEAKK3JlYWRzeW1ib2xzLm86IHJlYWRzeW1ib2xzLmMgL3Vzci9pbmNsdWRlL2N0eXBlLmggXAor IC91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIC91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCBcCisgL3Vz ci9pbmNsdWRlL2dudS9zdHVicy5oIC91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmggXAorIC91c3Iv bGliL2djYy1saWIvaTM4Ni1saW51eC8yLjk1LjQvaW5jbHVkZS9zdGRkZWYuaCBcCisgL3Vzci9p bmNsdWRlL2JpdHMvcHRocmVhZHR5cGVzLmggL3Vzci9pbmNsdWRlL2JpdHMvc2NoZWQuaCBcCisg L3Vzci9pbmNsdWRlL2VuZGlhbi5oIC91c3IvaW5jbHVkZS9iaXRzL2VuZGlhbi5oIFwKKyAvdXNy L2luY2x1ZGUvbWFsbG9jLmggL3Vzci9pbmNsdWRlL3N0ZGlvLmggL3Vzci9pbmNsdWRlL2xpYmlv LmggXAorIC91c3IvaW5jbHVkZS9fR19jb25maWcuaCAvdXNyL2luY2x1ZGUvd2NoYXIuaCBcCisg L3Vzci9pbmNsdWRlL2JpdHMvd2NoYXIuaCAvdXNyL2luY2x1ZGUvZ2NvbnYuaCBcCisgL3Vzci9s aWIvZ2NjLWxpYi9pMzg2LWxpbnV4LzIuOTUuNC9pbmNsdWRlL3N0ZGFyZy5oIFwKKyAvdXNyL2lu Y2x1ZGUvYml0cy9zdGRpb19saW0uaCAvdXNyL2luY2x1ZGUvc3RkbGliLmggXAorIC91c3IvaW5j bHVkZS9zeXMvdHlwZXMuaCAvdXNyL2luY2x1ZGUvdGltZS5oIFwKKyAvdXNyL2luY2x1ZGUvc3lz L3NlbGVjdC5oIC91c3IvaW5jbHVkZS9iaXRzL3NlbGVjdC5oIFwKKyAvdXNyL2luY2x1ZGUvYml0 cy9zaWdzZXQuaCAvdXNyL2luY2x1ZGUvYml0cy90aW1lLmggXAorIC91c3IvaW5jbHVkZS9zeXMv c3lzbWFjcm9zLmggL3Vzci9pbmNsdWRlL2FsbG9jYS5oIFwKKyAvdXNyL2luY2x1ZGUvc3RyaW5n LmggLi4vaW5jbHVkZS9saW51eC92ZXJzaW9uLmgga2VybmVsY29uZi5oIGRlcHMuaCBcCisgZXhw cmVzc2lvbnMuaCByZWFkc3ltYm9scy5oIGhlbHAuaCB1dGlscy5oIHRyZWUuaApCaW5hcnkgZmls ZXMga2VybmVsY29uZi0wLjEuMi9jb25mL3JlYWRzeW1ib2xzLm8gYW5kIGtlcm5lbGNvbmYtMC4x LjIubmV3L2NvbmYvcmVhZHN5bWJvbHMubyBkaWZmZXIKZGlmZiAtdU5yYiBrZXJuZWxjb25mLTAu MS4yL2NvbmYvdHJlZS5kIGtlcm5lbGNvbmYtMC4xLjIubmV3L2NvbmYvdHJlZS5kCi0tLSBrZXJu ZWxjb25mLTAuMS4yL2NvbmYvdHJlZS5kCVRodSBKYW4gIDEgMDE6MDA6MDAgMTk3MAorKysga2Vy bmVsY29uZi0wLjEuMi5uZXcvY29uZi90cmVlLmQJVHVlIEZlYiAgNSAyMDo0OTowNiAyMDAyCkBA IC0wLDAgKzEsNCBAQAordHJlZS5vOiB0cmVlLmMgL3Vzci9pbmNsdWRlL21hbGxvYy5oIC91c3Iv aW5jbHVkZS9mZWF0dXJlcy5oIFwKKyAvdXNyL2luY2x1ZGUvc3lzL2NkZWZzLmggL3Vzci9pbmNs dWRlL2dudS9zdHVicy5oIFwKKyAvdXNyL2xpYi9nY2MtbGliL2kzODYtbGludXgvMi45NS40L2lu Y2x1ZGUvc3RkZGVmLmggdHJlZS5oIFwKKyBrZXJuZWxjb25mLmggdXRpbHMuaApCaW5hcnkgZmls ZXMga2VybmVsY29uZi0wLjEuMi9jb25mL3RyZWUubyBhbmQga2VybmVsY29uZi0wLjEuMi5uZXcv Y29uZi90cmVlLm8gZGlmZmVyCmRpZmYgLXVOcmIga2VybmVsY29uZi0wLjEuMi9jb25mL3V0aWxz LmQga2VybmVsY29uZi0wLjEuMi5uZXcvY29uZi91dGlscy5kCi0tLSBrZXJuZWxjb25mLTAuMS4y L2NvbmYvdXRpbHMuZAlUaHUgSmFuICAxIDAxOjAwOjAwIDE5NzAKKysrIGtlcm5lbGNvbmYtMC4x LjIubmV3L2NvbmYvdXRpbHMuZAlUdWUgRmViICA1IDIwOjQ5OjA2IDIwMDIKQEAgLTAsMCArMSw3 IEBACit1dGlscy5vOiB1dGlscy5jIC91c3IvaW5jbHVkZS9jdHlwZS5oIC91c3IvaW5jbHVkZS9m ZWF0dXJlcy5oIFwKKyAvdXNyL2luY2x1ZGUvc3lzL2NkZWZzLmggL3Vzci9pbmNsdWRlL2dudS9z dHVicy5oIFwKKyAvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIFwKKyAvdXNyL2xpYi9nY2MtbGli L2kzODYtbGludXgvMi45NS40L2luY2x1ZGUvc3RkZGVmLmggXAorIC91c3IvaW5jbHVkZS9iaXRz L3B0aHJlYWR0eXBlcy5oIC91c3IvaW5jbHVkZS9iaXRzL3NjaGVkLmggXAorIC91c3IvaW5jbHVk ZS9lbmRpYW4uaCAvdXNyL2luY2x1ZGUvYml0cy9lbmRpYW4uaCBcCisgL3Vzci9pbmNsdWRlL21h bGxvYy5oCkJpbmFyeSBmaWxlcyBrZXJuZWxjb25mLTAuMS4yL2NvbmYvdXRpbHMubyBhbmQga2Vy bmVsY29uZi0wLjEuMi5uZXcvY29uZi91dGlscy5vIGRpZmZlcgpkaWZmIC11TnJiIGtlcm5lbGNv bmYtMC4xLjIvY29uZi93cml0ZWNvbmZpZy5kIGtlcm5lbGNvbmYtMC4xLjIubmV3L2NvbmYvd3Jp dGVjb25maWcuZAotLS0ga2VybmVsY29uZi0wLjEuMi9jb25mL3dyaXRlY29uZmlnLmQJVGh1IEph biAgMSAwMTowMDowMCAxOTcwCisrKyBrZXJuZWxjb25mLTAuMS4yLm5ldy9jb25mL3dyaXRlY29u ZmlnLmQJVHVlIEZlYiAgNSAyMDo0OTowNyAyMDAyCkBAIC0wLDAgKzEsMTAgQEAKK3dyaXRlY29u ZmlnLm86IHdyaXRlY29uZmlnLmMgL3Vzci9pbmNsdWRlL3N0ZGlvLmggXAorIC91c3IvaW5jbHVk ZS9mZWF0dXJlcy5oIC91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCBcCisgL3Vzci9pbmNsdWRlL2du dS9zdHVicy5oIFwKKyAvdXNyL2xpYi9nY2MtbGliL2kzODYtbGludXgvMi45NS40L2luY2x1ZGUv c3RkZGVmLmggXAorIC91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmggL3Vzci9pbmNsdWRlL2JpdHMv cHRocmVhZHR5cGVzLmggXAorIC91c3IvaW5jbHVkZS9iaXRzL3NjaGVkLmggL3Vzci9pbmNsdWRl L2xpYmlvLmggXAorIC91c3IvaW5jbHVkZS9fR19jb25maWcuaCAvdXNyL2luY2x1ZGUvd2NoYXIu aCBcCisgL3Vzci9pbmNsdWRlL2JpdHMvd2NoYXIuaCAvdXNyL2luY2x1ZGUvZ2NvbnYuaCBcCisg L3Vzci9saWIvZ2NjLWxpYi9pMzg2LWxpbnV4LzIuOTUuNC9pbmNsdWRlL3N0ZGFyZy5oIFwKKyAv dXNyL2luY2x1ZGUvYml0cy9zdGRpb19saW0uaCBrZXJuZWxjb25mLmggd3JpdGVjb25maWcuaApC aW5hcnkgZmlsZXMga2VybmVsY29uZi0wLjEuMi9jb25mL3dyaXRlY29uZmlnLm8gYW5kIGtlcm5l bGNvbmYtMC4xLjIubmV3L2NvbmYvd3JpdGVjb25maWcubyBkaWZmZXIKZGlmZiAtdU5yYiBrZXJu ZWxjb25mLTAuMS4yL2NvbmYveGNvbmZpZy5jIGtlcm5lbGNvbmYtMC4xLjIubmV3L2NvbmYveGNv bmZpZy5jCi0tLSBrZXJuZWxjb25mLTAuMS4yL2NvbmYveGNvbmZpZy5jCVRodSBKYW4gMjQgMDU6 Mjc6MDggMjAwMgorKysga2VybmVsY29uZi0wLjEuMi5uZXcvY29uZi94Y29uZmlnLmMJVHVlIEZl YiAgNSAyMDoxMjo1MiAyMDAyCkBAIC02LDkgKzYsMzIyIEBACiAgKiBDb3B5cmlnaHQgKEMpIDIw MDIgYnkgQW51cmFkaGEgUmF0bmF3ZWVyYQogICovCiAKKyNpbmNsdWRlIDxjdHlwZS5oPgorI2lu Y2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+ CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlICJrZXJuZWxjb25mLmgiCisjaW5jbHVk ZSAiZXhwcmVzc2lvbnMuaCIKKworI2RlZmluZSBNQVhfTUVOVV9OQU1FCQkyNTYKKyNkZWZpbmUg TUFYX1ZBTFVFX1NJWkUJMjU2CisKK2V4dGVybiBJZFB0ciByb290X21lbnU7CitleHRlcm4gSWRQ dHIgZmlyc3Rfc3ltYm9sOworCitGSUxFICp0Y2xmOworCitpbnQgdHlwZTJ4c2l6ZShUeXBlIHR5 cGUpCit7CisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBUWVBFX09QVElPTjoKKwkJcmV0dXJuIDQ7 IGJyZWFrOworCWNhc2UgVFlQRV9CT09MOgorCQlyZXR1cm4gNTsgYnJlYWs7CisJY2FzZSBUWVBF X1RSSToKKwljYXNlIFRZUEVfSU5UOgorCWNhc2UgVFlQRV9IRVg6CisJY2FzZSBUWVBFX0NIQVI6 CisJY2FzZSBUWVBFX1NUUjoKKwkJcmV0dXJuIDc7IGJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVy biAwOworCX0KK30KKwordm9pZCBmcHJpbnRmX3R5cGUybmFtZShUeXBlIHR5cGUpCit7CisJc3dp dGNoICh0eXBlKSB7CisJY2FzZSBUWVBFX05VTEw6CisJCWZwcmludGYodGNsZiwiU1lNX05VTEwi KTsgYnJlYWs7CisJCWNhc2UgVFlQRV9CT09MOgorCQkJZnByaW50Zih0Y2xmLCJTWU1fQk9PTCIp OyBicmVhazsKKwkJY2FzZSBUWVBFX1RSSToKKwkJCWZwcmludGYodGNsZiwiU1lNX1RSSSIpOyBi cmVhazsKKwkJY2FzZSBUWVBFX0lOVDoKKwkJCWZwcmludGYodGNsZiwiU1lNX0lOVCIpOyBicmVh azsKKwkJY2FzZSBUWVBFX0hFWDoKKwkJCWZwcmludGYodGNsZiwiU1lNX0hFWCIpOyBicmVhazsK KwkJY2FzZSBUWVBFX0NIQVI6CisJCQlmcHJpbnRmKHRjbGYsIlNZTV9DSEFSIik7IGJyZWFrOwor CQljYXNlIFRZUEVfU1RSOgorCQkJZnByaW50Zih0Y2xmLCJTWU1fU1RSIik7IGJyZWFrOworCQlj YXNlIFRZUEVfT1BUSU9OOgorCQkJZnByaW50Zih0Y2xmLCJTWU1fT1BUSU9OIik7IGJyZWFrOwor CQljYXNlIFRZUEVfVU5LTk9XTjoKKwkJCWZwcmludGYodGNsZiwiU1lNX1VOS05PV04iKTsgYnJl YWs7CisJCWNhc2UgVFlQRV9ERVBFTkRTOgorCQkJZnByaW50Zih0Y2xmLCJTWU1fREVQRU5EUyIp OyBicmVhazsKKwkJY2FzZSBUWVBFX0RFUklWRUQ6CisJCQlmcHJpbnRmKHRjbGYsIlNZTV9ERVJJ VkVEIik7IGJyZWFrOworCQljYXNlIFRZUEVfT1I6CisJCQlmcHJpbnRmKHRjbGYsIlNZTV9PUiIp OyBicmVhazsKKwkJY2FzZSBUWVBFX0FORDoKKwkJCWZwcmludGYodGNsZiwiU1lNX0FORCIpOyBi cmVhazsKKwkJY2FzZSBUWVBFX0VRVUFMOgorCQkJZnByaW50Zih0Y2xmLCJTWU1fRVFVQUwiKTsg YnJlYWs7CisJCWNhc2UgVFlQRV9OT1RfRVFVQUw6CisJCQlmcHJpbnRmKHRjbGYsIlNZTV9OT1Rf RVFVQUwiKTsgYnJlYWs7CisJCWNhc2UgVFlQRV9MVDoKKwkJCWZwcmludGYodGNsZiwiU1lNX0xU Iik7IGJyZWFrOworCQljYXNlIFRZUEVfR1Q6CisJCQlmcHJpbnRmKHRjbGYsIlNZTV9HVCIpOyBi cmVhazsKKwkJY2FzZSBUWVBFX0xURToKKwkJCWZwcmludGYodGNsZiwiU1lNX0xURSIpOyBicmVh azsKKwkJY2FzZSBUWVBFX0dURToKKwkJCWZwcmludGYodGNsZiwiU1lNX0dURSIpOyBicmVhazsK KwkJY2FzZSBUWVBFX05PVDoKKwkJCWZwcmludGYodGNsZiwiU1lNX05PVCIpOyBicmVhazsKKwkJ Y2FzZSBUWVBFX0xFRlRfUEFSQToKKwkJCWZwcmludGYodGNsZiwiU1lNX0xFRlRfUEFSQSIpOyBi cmVhazsKKwkJY2FzZSBUWVBFX1JJR0hUX1BBUkE6CisJCQlmcHJpbnRmKHRjbGYsIlNZTV9SSUdI VF9QQVJBIik7IGJyZWFrOworCQljYXNlIFRZUEVfU1lNQk9MOgorCQkJZnByaW50Zih0Y2xmLCJT WU1fU1lNQk9MRSIpOyBicmVhazsKKwkJY2FzZSBUWVBFX1ZBTFVFOgorCQkJZnByaW50Zih0Y2xm LCJTWU1fVkFMVUUiKTsgYnJlYWs7CisJfQorfQorCisjZGVmaW5lIENTWU1OQU1FCWN1cl9tZW51 LT5zeW1ib2wtPm5vZGUubmFtZQorI2RlZmluZSBDU1lNVFlQRQlpZiAoY3VyX21lbnUtPnN5bWJv bCkgeyBcCisJCWZwcmludGZfdHlwZTJuYW1lKGN1cl9tZW51LT5zeW1ib2wtPnR5cGUpOyBcCisJ fSBlbHNlIHsgXAorCQlmcHJpbnRmKHRjbGYsIlNZTV9OT05FIik7IFwKKwl9CisKK3ZvaWQgZnBy aW50Zl9wcmVjMnRrKFByZWNlZGVuY2UgcHJlYykKK3sKKwlzd2l0Y2ggKHByZWMpIHsKKwkJY2Fz ZSBQUkVfTlVMTDoKKwkJCWZwcmludGYodGNsZiwiUFJFX05VTEwiKTsgYnJlYWs7CisJCWNhc2Ug UFJFX0FTU0lHTjoKKwkJCWZwcmludGYodGNsZiwiUFJFX0FTU0lHTiIpOyBicmVhazsKKwkJY2Fz ZSBQUkVfT1I6CisJCQlmcHJpbnRmKHRjbGYsIlBSRV9PUiIpOyBicmVhazsKKwkJY2FzZSBQUkVf QU5EOgorCQkJZnByaW50Zih0Y2xmLCJQUkVfQU5EIik7IGJyZWFrOworCQljYXNlIFBSRV9FUVVB TDoKKwkJCWZwcmludGYodGNsZiwiUFJFX0VRVUFMIik7IGJyZWFrOworCQljYXNlIFBSRV9SRUw6 CisJCQlmcHJpbnRmKHRjbGYsIlBSRV9SRUwiKTsgYnJlYWs7CisJCWNhc2UgUFJFX05PVDoKKwkJ CWZwcmludGYodGNsZiwiUFJFX05PVCIpOyBicmVhazsKKwl9Cit9CisKK3ZvaWQgZnByaW50Zl9t ZW51X25hbWUoSWRQdHIgbWVudSwgaW50IHJvb3QpCit7CisJaW50IHRjbGlkeCA9IDA7CisJaW50 IGNoaWxkaWR4ID0gMDsKKwlJZFB0ciBjdXJfbWVudTsKKworCWlmKG1lbnUtPm1lbnUtPnBhcmVu dCkgeworCQlmcHJpbnRmX21lbnVfbmFtZShtZW51LT5tZW51LT5wYXJlbnQsIDApOworCQljdXJf bWVudSA9IG1lbnUtPm1lbnUtPnBhcmVudC0+bWVudS0+Zmlyc3RfY2hpbGQ7CisJCWZvcig7Y3Vy X21lbnUgJiYgKHN0cmNtcChjdXJfbWVudS0+bmFtZSxtZW51LT5uYW1lKSAhPSAwKTtjdXJfbWVu dSA9IGN1cl9tZW51LT5tZW51LT5uZXh0KQorCQkJaWYoY3VyX21lbnUtPm1lbnUpIHsKKwkJCXRj bGlkeCsrOworCQkJaWYoY3VyX21lbnUtPm1lbnUtPmZpcnN0X2NoaWxkKQorCQkJCWNoaWxkaWR4 Kys7CisJCQl9CisJCWlmKHJvb3QpCisJCQlmcHJpbnRmKHRjbGYsIi5mJWQiLHRjbGlkeCk7CisJ CWVsc2UKKwkJCWZwcmludGYodGNsZiwiLmMlZCIsY2hpbGRpZHgpOworCX0gZWxzZQorCQlmcHJp bnRmKHRjbGYsIi5mMCIpOworfQorCit2b2lkIGZwcmludGZfdXBkYXRlX21lbnUoSWRQdHIgbWVu dSkKK3sKKwlmcHJpbnRmKHRjbGYsIlx0XHR1cGRhdGVfbWVudV9zeW0gIik7CisJZnByaW50Zl9t ZW51X25hbWUobWVudSwxKTsKKwlpZiAobWVudS0+c3ltYm9sKSB7CisJCWZwcmludGYodGNsZiwi ICIpOworCQlmcHJpbnRmX3R5cGUybmFtZShtZW51LT5zeW1ib2wtPnR5cGUpOworCQlmcHJpbnRm KHRjbGYsICIgJWQgIix0eXBlMnhzaXplKG1lbnUtPnN5bWJvbC0+dHlwZSkpOworCX0gZWxzZQor CQlmcHJpbnRmKHRjbGYsIiBTWU1fTk9ORSAwICIpOworCWlmKG1lbnUtPm1lbnUtPmRlcGVuZHMp CisJCWV2YWx1YXRlX2V4cHJlc3Npb25zMnRrKHRjbGYsIG1lbnUtPm1lbnUtPmRlcGVuZHMpOwor CWVsc2UKKwkJZnByaW50Zih0Y2xmLCJcIlwiIik7CisJZnByaW50Zih0Y2xmLCJcbiIpOworfQor Cit2b2lkIGRvX3hzeW1zKElkUHRyIHN5bSkKK3sKKwlJZFB0ciBjdXJfc3ltOworCisJZm9yKGN1 cl9zeW0gPSBzeW07Y3VyX3N5bTtjdXJfc3ltID0gY3VyX3N5bS0+c3ltYm9sLT5uZXh0KSB7CisJ CWZwcmludGYodGNsZiwic2V0IENPTkZJR18lcyAiLGN1cl9zeW0tPm5hbWUpOworCQlmcHJpbnRm X3ZhbHVlMnRrKHRjbGYsY3VyX3N5bS0+c3ltYm9sLT50eXBlLGN1cl9zeW0tPnN5bWJvbC0+dmFs dWUpOworCQlmcHJpbnRmKHRjbGYsIlxuIik7CisJfQorCisJZm9yKGN1cl9zeW0gPSBzeW07Y3Vy X3N5bTtjdXJfc3ltID0gY3VyX3N5bS0+c3ltYm9sLT5uZXh0KSB7CisJCWZwcmludGYodGNsZiwi cHJvYyBjaGFuZ2Vfc3ltX0NPTkZJR18lcyB7IHJvb3QgfSB7XG4iLGN1cl9zeW0tPm5hbWUpOwor CQlmcHJpbnRmKHRjbGYsIlx0Z2xvYmFsIEFSQ0hcbiIpOworCQlmcHJpbnRmKHRjbGYsIlx0c2V0 IG9sZF9DT05GSUdfJXMgWyBnZXRfc3ltIENPTkZJR18lcyBdXG4iLGN1cl9zeW0tPm5hbWUsY3Vy X3N5bS0+bmFtZSk7CisJCWlmKGN1cl9zeW0tPnN5bWJvbC0+ZGVwZW5kcyB8fCBjdXJfc3ltLT5z eW1ib2wtPmRlcml2ZWQpIHsKKwkJCWZwcmludGYodGNsZiwiXHRpZiB7ICEgJHJvb3QgfSB7XG4i KTsKKwkJCWlmKGN1cl9zeW0tPnN5bWJvbC0+ZGVwZW5kcykgeworCQkJCWZwcmludGYodGNsZiwi XHRcdHVwZGF0ZV9kZXBlbmRzIENPTkZJR18lcyAiLGN1cl9zeW0tPm5hbWUpOworCQkJCWV2YWx1 YXRlX2V4cHJlc3Npb25zMnRrKHRjbGYsIGN1cl9zeW0tPnN5bWJvbC0+ZGVwZW5kcyk7CisJCQkJ ZnByaW50Zih0Y2xmLCJcbiIpOworCQkJfQorCQkJaWYoY3VyX3N5bS0+c3ltYm9sLT5kZXJpdmVk KSB7CisJCQkJZnByaW50Zih0Y2xmLCJcdFx0dXBkYXRlX2Rlcml2ZWQgQ09ORklHXyVzICIsY3Vy X3N5bS0+bmFtZSk7CisJCQkJZXZhbHVhdGVfZXhwcmVzc2lvbnMydGsodGNsZiwgY3VyX3N5bS0+ c3ltYm9sLT5kZXJpdmVkKTsKKwkJCQlmcHJpbnRmKHRjbGYsIlxuIik7CisJCQl9CisJCQlmcHJp bnRmKHRjbGYsIlx0fVxuIik7CisJCX0KKwkJZnByaW50Zih0Y2xmLCJcdGlmIHsgJG9sZF9DT05G SUdfJXMgIT0gWyBnZXRfc3ltIENPTkZJR18lcyBdIHx8ICRyb290IH0ge1xuIixjdXJfc3ltLT5u YW1lLGN1cl9zeW0tPm5hbWUpOworCQlpZihjdXJfc3ltLT5zeW1ib2wtPmFmZmVjdHMpIHsKKwkJ CUlkTGlzdFB0ciBsaXN0OworCQkJZm9yKGxpc3Q9Y3VyX3N5bS0+c3ltYm9sLT5hZmZlY3RzO2xp c3Q7bGlzdCA9IGxpc3QtPm5leHQpIHsKKwkJCQlpZiAobGlzdC0+aWQtPnN5bWJvbCkKKwkJCQkJ ZnByaW50Zih0Y2xmLCJcdFx0Y2hhbmdlX3N5bV9DT05GSUdfJXMgZmFsc2VcbiIsbGlzdC0+aWQt Pm5hbWUpOworCQkJCWlmIChsaXN0LT5pZC0+bWVudSkgeworCQkJCQlmcHJpbnRmX3VwZGF0ZV9t ZW51KGxpc3QtPmlkKTsKKwkJCQl9CisJCQl9CisKKwkJfQorCQlmcHJpbnRmKHRjbGYsIlx0fVxu Iik7CisKKwkJZnByaW50Zih0Y2xmLCJ9XG5cbiIpOworCX0KKworCWZwcmludGYodGNsZiwicHJv YyB3cml0ZV9jb25maWcgeyBjb25mX25hbWUgY29uZl9oX25hbWUgfSB7XG4iKTsKKwlmcHJpbnRm KHRjbGYsIlx0aWYgeyBbc3RyaW5nIGxlbmd0aCAkY29uZl9uYW1lXSAhPSAwXG4iKTsKKwlmcHJp bnRmKHRjbGYsIlx0XHQmJiAoW2ZpbGUgd3JpdGFibGUgJGNvbmZfbmFtZV0gPT0gMSB8fCBcbiIp OworCWZwcmludGYodGNsZiwiXHRcdChbZmlsZSBleGlzdHMgJGNvbmZfbmFtZV0gPT0gMCAmJiBb ZmlsZSB3cml0YWJsZSBbZmlsZSBkaXJuYW1lICRjb25mX25hbWVdXSA9PSAxKSkgfSB0aGVuIHtc biIpOworCWZwcmludGYodGNsZiwiXHRcdHNldCBjb25mIFsgb3BlbiAkY29uZl9uYW1lIHcgXVxu Iik7CisJZnByaW50Zih0Y2xmLCJcdFx0c2V0IGNvbmZfaCBbIG9wZW4gJGNvbmZfaF9uYW1lIHcg XVxuIik7CisJZnByaW50Zih0Y2xmLCJcdFx0cHV0cyAkY29uZl9oIFwiI2RlZmluZSBBVVRPQ09O Rl9JTkNMVURFRFwiXG4iKTsKKwlmb3IoY3VyX3N5bSA9IHN5bTtjdXJfc3ltO2N1cl9zeW0gPSBj dXJfc3ltLT5zeW1ib2wtPm5leHQpIHsKKwkJZnByaW50Zih0Y2xmLCJcdFx0Z2xvYmFsIENPTkZJ R18lc1xuIixjdXJfc3ltLT5uYW1lKTsKKwkJZnByaW50Zih0Y2xmLCJcdFx0d3JpdGVfc3ltYm9s ICRjb25mICRjb25mX2ggIik7CisJCWZwcmludGZfdHlwZTJuYW1lKGN1cl9zeW0tPnN5bWJvbC0+ dHlwZSk7CisJCWZwcmludGYodGNsZiwiIENPTkZJR18lcyAkQ09ORklHXyVzXG4iLGN1cl9zeW0t Pm5hbWUsY3VyX3N5bS0+bmFtZSk7CisJfQorCWZwcmludGYodGNsZiwiXHRcdGNsb3NlICRjb25m XG4iKTsKKwlmcHJpbnRmKHRjbGYsIlx0XHRjbG9zZSAkY29uZl9oXG4iKTsKKwlmcHJpbnRmKHRj bGYsIlx0fVxuXG4iKTsKKwlmcHJpbnRmKHRjbGYsIn1cblxuIik7Cit9CisKK3ZvaWQgZG9feG1l bnUoSWRQdHIgbWVudSwgY2hhciAqbmFtZSkKK3sKKwljaGFyIHN1Yl9uYW1lW01BWF9NRU5VX05B TUVdOworCWludCBzdWJfaW5kZXgsdGNsaWR4OworCWludCBoYXZlX3N5bQkJPSAwOworCWludCBo YXZlX2Rlc2MJCT0gMDsKKwlpbnQgaGF2ZV9jaGlsZAk9IDA7CisJSWRQdHIgY3VyX21lbnU7CisK KwlzdWJfaW5kZXggPSAwOworCWZvcihjdXJfbWVudSA9IG1lbnU7Y3VyX21lbnU7Y3VyX21lbnUg PSBjdXJfbWVudS0+bWVudS0+bmV4dCkgeworCQlpZihjdXJfbWVudS0+c3ltYm9sKQorCQkJaGF2 ZV9zeW0gPSB0eXBlMnhzaXplKGN1cl9tZW51LT5zeW1ib2wtPnR5cGUpOworCisJCWlmKGN1cl9t ZW51LT5tZW51LT5maXJzdF9jaGlsZCkgeworCQkJc3ByaW50ZihzdWJfbmFtZSwiJXNfJWQiLG5h bWUsc3ViX2luZGV4KyspOworCQkJZG9feG1lbnUoY3VyX21lbnUtPm1lbnUtPmZpcnN0X2NoaWxk LCZzdWJfbmFtZVswXSk7CisJCQloYXZlX2NoaWxkID0gMTsKKwkJfQorCisJCWlmKGN1cl9tZW51 LT5kZXNjX2xlbmd0aCkKKwkJCWhhdmVfZGVzYyA9IDE7CisJfQorCisJZnByaW50Zih0Y2xmLCJc biIpOworCWZwcmludGYodGNsZiwgInByb2MgJXMgeyB3IH0ge1xuIixuYW1lKTsKKwlzdWJfaW5k ZXggPSAwOworCXRjbGlkeCA9IDA7CisJZm9yKGN1cl9tZW51ID0gbWVudTtjdXJfbWVudTtjdXJf bWVudSA9IGN1cl9tZW51LT5tZW51LT5uZXh0KSB7CisKKwkJZnByaW50Zih0Y2xmLCAiXHRjb25m aWdfb3B0aW9uICR3ICVkIFwiJXNcIiAiLHRjbGlkeCxjdXJfbWVudS0+bWVudS0+Y2FwdGlvbik7 CisKKwkJaWYoY3VyX21lbnUtPnN5bWJvbCkgeworCQkJQ1NZTVRZUEU7CisJCQlmcHJpbnRmKHRj bGYsICIgQ09ORklHXyVzICVkICIsY3VyX21lbnUtPm5hbWUsaGF2ZV9zeW0pOworCQl9IGVsc2Ug eworCQkJZnByaW50Zih0Y2xmLCAiU1lNX05PTkUgXCJcIiAlZCAiLGhhdmVfc3ltKTsKKwkJfQor CisJCWlmKGN1cl9tZW51LT5kZXNjX2xlbmd0aCkgeworCQkJZnByaW50Zih0Y2xmLCAiXCJkb2hl bHAgLmRvaGVscCAuIFxcXCIlc1xcXCIgJWxkICVsZFwiIHRydWUgIiwKKwkJCQljdXJfbWVudS0+ Y29uZmlnX2ZpbGUsCisJCQkJY3VyX21lbnUtPmRlc2Nfc3RhcnQsY3VyX21lbnUtPmRlc2NfbGVu Z3RoKTsKKwkJfSBlbHNlIHsKKwkJCWZwcmludGYodGNsZiwgIlwiXCIgJXMgIiwgaGF2ZV9kZXNj ID8gInRydWUiIDogImZhbHNlIik7CisJCX0KKworCQlpZihjdXJfbWVudS0+bWVudS0+Zmlyc3Rf Y2hpbGQpIHsKKwkJCXNwcmludGYoc3ViX25hbWUsIiVzXyVkIixuYW1lLHN1Yl9pbmRleCk7CisJ CQlmcHJpbnRmKHRjbGYsICJcIiVzICR3LmMlZFwiIHRydWVcbiIsJnN1Yl9uYW1lWzBdLHRjbGlk eCk7CisJCQlzdWJfaW5kZXgrKzsKKwkJfSBlbHNlIHsKKwkJCWZwcmludGYodGNsZiwgIlwiXCIg JXNcbiIsIGhhdmVfY2hpbGQgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKwkJfQorCisJCWZwcmludGZf dXBkYXRlX21lbnUoY3VyX21lbnUpOworCQl0Y2xpZHgrKzsKKwl9CisJZnByaW50Zih0Y2xmLCAi fVxuXG4iKTsKKworfQogCiBpbnQgZG9feGNvbmZpZygpCiB7Ci0gICAgcmV0dXJuIDE7CisJRklM RSAqaGVhZGVyOworCWludCBjaDsKKworCXRjbGYgPSBmb3BlbigiWENtZW51IiwgInd0Iik7CisK KwloZWFkZXIgPSBmb3BlbigiY29uZi9oZWFkZXIudGsiLCJyIik7CisJd2hpbGUgKCFmZW9mKGhl YWRlcikpIHsKKwkJY2ggPSBmZ2V0YyhoZWFkZXIpOworCQlpZiAoY2ggPj0gMCkgZnB1dGMoY2gs IHRjbGYpOworCX0KKwlmY2xvc2UoaGVhZGVyKTsKKworCWZwcmludGYodGNsZiwic2V0IEFSQ0gg aTM4NlxuIik7CisJZG9feHN5bXMoZmlyc3Rfc3ltYm9sKTsKKworCWRvX3htZW51KHJvb3RfbWVu dS0+bWVudS0+Zmlyc3RfY2hpbGQsImRvbWVudSIpOworCisJZnByaW50Zih0Y2xmLCJyZWFkX2Nv bmZpZyAuY29uZmlnXG4iKTsKKwlmcHJpbnRmKHRjbGYsImZyYW1lIC5mMFxuIik7CisJZnByaW50 Zih0Y2xmLCJpbml0X3dpbmRvdyAuZjAgXCIlc1wiXG4iLHJvb3RfbWVudS0+bWVudS0+Y2FwdGlv bik7CisJZnByaW50Zih0Y2xmLCJkb21lbnUgLmYwXG4iKTsKKwlmcHJpbnRmKHRjbGYsImNyZWF0 ZV9zY3JvbGxiYXIgLmYwXG4iKTsKKwlmcHJpbnRmKHRjbGYsInBhY2sgLmYwXG4iKTsKKwlmcHJp bnRmKHRjbGYsImJ1dHRvbiAuc2F2ZSAtdGV4dCBcIlNhdmVcIiAtY29tbWFuZCBcIndyaXRlX2Nv bmZpZyAuY29uZmlnIGluY2x1ZGUvbGludXgvYXV0b2NvbmYuaFwiXG4iKTsKKwlmcHJpbnRmKHRj bGYsInBhY2sgLnNhdmVcbiIpOworCWZwcmludGYodGNsZiwiYnV0dG9uIC5sb2FkIC10ZXh0IFwi TG9hZFwiIC1jb21tYW5kIFwicmVhZF9jb25maWcgLmNvbmZpZ1wiXG4iKTsKKwlmcHJpbnRmKHRj bGYsInBhY2sgLmxvYWRcbiIpOworCWZjbG9zZSh0Y2xmKTsKKworCXN5c3RlbSgid2lzaCAtZiBY Q21lbnUiKTsKKworCXVubGluaygiWENtZW51Iik7CisJcmV0dXJuIDA7CiB9CiAKZGlmZiAtdU5y YiBrZXJuZWxjb25mLTAuMS4yL2NvbmYveGNvbmZpZy5kIGtlcm5lbGNvbmYtMC4xLjIubmV3L2Nv bmYveGNvbmZpZy5kCi0tLSBrZXJuZWxjb25mLTAuMS4yL2NvbmYveGNvbmZpZy5kCVRodSBKYW4g IDEgMDE6MDA6MDAgMTk3MAorKysga2VybmVsY29uZi0wLjEuMi5uZXcvY29uZi94Y29uZmlnLmQJ VHVlIEZlYiAgNSAyMDo0OTowNyAyMDAyCkBAIC0wLDAgKzEsMTcgQEAKK3hjb25maWcubzogeGNv bmZpZy5jIC91c3IvaW5jbHVkZS9jdHlwZS5oIC91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIFwKKyAv dXNyL2luY2x1ZGUvc3lzL2NkZWZzLmggL3Vzci9pbmNsdWRlL2dudS9zdHVicy5oIFwKKyAvdXNy L2luY2x1ZGUvYml0cy90eXBlcy5oIFwKKyAvdXNyL2xpYi9nY2MtbGliL2kzODYtbGludXgvMi45 NS40L2luY2x1ZGUvc3RkZGVmLmggXAorIC91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5o IC91c3IvaW5jbHVkZS9iaXRzL3NjaGVkLmggXAorIC91c3IvaW5jbHVkZS9lbmRpYW4uaCAvdXNy L2luY2x1ZGUvYml0cy9lbmRpYW4uaCAvdXNyL2luY2x1ZGUvc3RkaW8uaCBcCisgL3Vzci9pbmNs dWRlL2xpYmlvLmggL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIC91c3IvaW5jbHVkZS93Y2hhci5o IFwKKyAvdXNyL2luY2x1ZGUvYml0cy93Y2hhci5oIC91c3IvaW5jbHVkZS9nY29udi5oIFwKKyAv dXNyL2xpYi9nY2MtbGliL2kzODYtbGludXgvMi45NS40L2luY2x1ZGUvc3RkYXJnLmggXAorIC91 c3IvaW5jbHVkZS9iaXRzL3N0ZGlvX2xpbS5oIC91c3IvaW5jbHVkZS9zdHJpbmcuaCBcCisgL3Vz ci9pbmNsdWRlL3N0ZGxpYi5oIC91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCAvdXNyL2luY2x1ZGUv dGltZS5oIFwKKyAvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIC91c3IvaW5jbHVkZS9iaXRzL3Nl bGVjdC5oIFwKKyAvdXNyL2luY2x1ZGUvYml0cy9zaWdzZXQuaCAvdXNyL2luY2x1ZGUvYml0cy90 aW1lLmggXAorIC91c3IvaW5jbHVkZS9zeXMvc3lzbWFjcm9zLmggL3Vzci9pbmNsdWRlL2FsbG9j YS5oIFwKKyAvdXNyL2luY2x1ZGUvdW5pc3RkLmggL3Vzci9pbmNsdWRlL2JpdHMvcG9zaXhfb3B0 LmggXAorIC91c3IvaW5jbHVkZS9iaXRzL2NvbmZuYW1lLmggL3Vzci9pbmNsdWRlL2dldG9wdC5o IGtlcm5lbGNvbmYuaCBcCisgZXhwcmVzc2lvbnMuaApCaW5hcnkgZmlsZXMga2VybmVsY29uZi0w LjEuMi9jb25mL3hjb25maWcubyBhbmQga2VybmVsY29uZi0wLjEuMi5uZXcvY29uZi94Y29uZmln Lm8gZGlmZmVyCg== --------------Boundary-00=_5YS2R4BJFA47RJAVYCX0-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/