From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Antipov Newsgroups: gmane.emacs.devel Subject: Re: Proposal: 'struct window' cleanup Date: Wed, 23 May 2012 08:49:02 +0400 Message-ID: <4FBC6C3E.6010909@yandex.ru> References: <4FBA5060.7070702@yandex.ru> <4FBB3B62.4070504@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010505010909040804020604" X-Trace: dough.gmane.org 1337748443 31218 80.91.229.3 (23 May 2012 04:47:23 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 23 May 2012 04:47:23 +0000 (UTC) Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed May 23 06:47:22 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1SX3Tk-0007R4-9j for ged-emacs-devel@m.gmane.org; Wed, 23 May 2012 06:47:20 +0200 Original-Received: from localhost ([::1]:43383 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SX3Tj-0004AY-Rv for ged-emacs-devel@m.gmane.org; Wed, 23 May 2012 00:47:19 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:42697) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SX3Td-00048c-UG for emacs-devel@gnu.org; Wed, 23 May 2012 00:47:17 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SX3TZ-0003h5-HK for emacs-devel@gnu.org; Wed, 23 May 2012 00:47:13 -0400 Original-Received: from forward8.mail.yandex.net ([77.88.61.38]:48907) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SX3TW-0003cB-MS for emacs-devel@gnu.org; Wed, 23 May 2012 00:47:09 -0400 Original-Received: from smtp8.mail.yandex.net (smtp8.mail.yandex.net [77.88.61.54]) by forward8.mail.yandex.net (Yandex) with ESMTP id C52C8F62A7B; Wed, 23 May 2012 08:46:51 +0400 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1337748411; bh=b6eE7IGf4W1Jmx3VLGk3pXUin6wuu7Sg2tC0F8M/gq0=; h=Message-ID:Date:From:MIME-Version:To:CC:Subject:References: In-Reply-To:Content-Type; b=pTpM4PwMTld/NvM23bq8mtcbtdDsOd17Q9dHL7/+hK1kaIBNg+pX/eo5jcm+cTXn+ PeewKLD2MgrPfbaYCrzYiZaQnlOXB1d9S+HdnCVpg78tDsbVZQ8trLNB9wIerXAkgn vdaoT/UlHQ877OFAUjIbdIDc2P6q7Z6rixid91fQ= Original-Received: from smtp8.mail.yandex.net (localhost [127.0.0.1]) by smtp8.mail.yandex.net (Yandex) with ESMTP id A4DF01B60649; Wed, 23 May 2012 08:46:51 +0400 (MSK) Original-Received: from antipov.client.gelicon.ru (antipov.client.gelicon.ru [78.153.153.8]) by smtp8.mail.yandex.net (nwsmtp/Yandex) with ESMTP id koPa74tP-kpPCGrXq; Wed, 23 May 2012 08:46:51 +0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1337748411; bh=b6eE7IGf4W1Jmx3VLGk3pXUin6wuu7Sg2tC0F8M/gq0=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type; b=No5YgD9XFicQY14I5vTDCny+XoFRVyEZmqi686LLWoC0gYT/CVL2jUlcit12MBmGw VgXGhCD3DQuklZxT5kJ/QMqhCN0grgcgrCENByZRIiqAbEZiedNw6kgi7EgihB6K5G weJb3d4wRQ1kCCr3bl8D/2KwDftYW3ggoqmn+uuM= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 77.88.61.38 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:150613 Archived-At: This is a multi-part message in MIME format. --------------010505010909040804020604 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 05/22/2012 04:39 PM, Stefan Monnier wrote: > I'd do it like > > * foo.h (struct bar): Use bitfields for field1, field2, field3. > Adjust users accordingly. OK, I try to make it not too confusing. Dmitry --------------010505010909040804020604 Content-Type: text/plain; charset=UTF-8; name="window_cleanup.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="window_cleanup.patch" PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9DaGFuZ2VMb2cnCi0tLSBzcmMvQ2hhbmdlTG9nCTIw MTItMDUtMjIgMTg6MzE6MTkgKzAwMDAKKysrIHNyYy9DaGFuZ2VMb2cJMjAxMi0wNS0yMyAw NDozODoyNyArMDAwMApAQCAtMSwzICsxLDM4IEBACisyMDEyLTA1LTIzICBEbWl0cnkgQW50 aXBvdiAgPGRtYW50aXBvdkB5YW5kZXgucnU+CisKKwlGb3IgYSAnc3RydWN0IHdpbmRvdycs IHJlcGxhY2Ugc29tZSBMaXNwX09iamVjdCBmaWVsZHMgdG8KKwliaXRmaWVsZHMgd2hlcmUg YXBwcm9wcmlhdGUsIHJlbW92ZSB1bnVzZWQgZmllbGRzLgorCSogd2luZG93LmggKHN0cnVj dCB3aW5kb3cpOiByZW1vdmUgdW51c2VkICdsYXN0X21hcmtfeCcgYW5kCisJJ2xhc3RfbWFy a195JyBmaWVsZHMuCisJKiB3aW5kb3cuaCAoc3RydWN0IHdpbmRvdyk6IHJlbmFtZSAnbWlu aV9wJyBmaWVsZCB0byAnbWluaScsCisJY2hhbmdlIGl0J3MgdHlwZSBmcm9tIExpc3BfT2Jq ZWN0IHRvIGJpdGZpZWxkLgorCSogd2luZG93LmggKHN0cnVjdCB3aW5kb3cpOiBjaGFuZ2Ug dHlwZSBvZiAnZm9yY2Vfc3RhcnQnLAorCSdvcHRpb25hbF9uZXdfc3RhcnQnLCAnbGFzdF9o YWRfc3RhcicsICd1cGRhdGVfbW9kZV9saW5lJworCWFuZCAnc3RhcnRfYXRfbGluZV9iZWcn IGZpZWxkcyBmcm9tIExpc3BfT2JqZWN0IHRvIGJpdGZpZWxkLgorCSogZmlsZWlvLmMgKEZp bnNlcnRfZmlsZV9jb250ZW50cyk6IGFkanVzdGVkIGZvciBhIG5ldworCXR5cGUgb2YgJ3N0 YXJ0X2F0X2xpbmVfYmVnJy4KKwkqIGZyYW1lLmMgKG1ha2VfZnJhbWUsIG1ha2VfbWluaWJ1 ZmZlcl9mcmFtZSk6IGFkanVzdGVkIGZvcgorCWEgbmV3IHR5cGUgb2YgJ21pbmknLgorCSog a2V5Ym9hcmQuYyAoY29tbWFuZF9sb29wXzEpOiBhZGp1c3RlZCBmb3IgYSBuZXcgdHlwZQor CW9mICdmb3JjZV9zdGFydCcuCisJKiB3aW5kb3cuYyAoRnNldF93aW5kb3dfc3RhcnQsIHdp bmRvd19sb29wKQorCShGZGVsZXRlX290aGVyX3dpbmRvd3NfaW50ZXJuYWwsIHNldF93aW5k b3dfYnVmZmVyKQorCShGZm9yY2Vfd2luZG93X3VwZGF0ZSwgbWFrZV93aW5kb3csIHdpbmRv d19zY3JvbGxfcGl4ZWxfYmFzZWQpCisJKHdpbmRvd19zY3JvbGxfbGluZV9iYXNlZCwgRnJl Y2VudGVyLCBGbW92ZV90b193aW5kb3dfbGluZSkKKwkoRnNldF93aW5kb3dfY29uZmlndXJh dGlvbiwgc2F2ZV93aW5kb3dfc2F2ZSk6IGFkanVzdGVkIGZvcgorCWEgdHlwZSBjaGFuZ2Vz IGluICdzdHJ1Y3Qgd2luZG93Jy4KKwkqIHhkaXNwLmMgKHVwZGF0ZV9tZW51X2JhciwgdXBk YXRlX3Rvb2xfYmFyKTogYWRqdXN0ZWQgZm9yCisJYSBuZXcgdHlwZSBvZiAnbGFzdF9oYWRf c3RhcicgYW5kICd1cGRhdGVfbW9kZV9saW5lJy4KKwkqIHhkaXNwLmMgKHJlZGlzcGxheV9p bnRlcm5hbCk6IGFkanVzdGVkIGZvciBhIG5ldyB0eXBlCisJb2YgJ3VwZGF0ZV9tb2RlX2xp bmUnLCAnZm9yY2Vfc3RhcnQnIGFuZCAnb3B0aW9uYWxfbmV3X3N0YXJ0Jy4KKwkqIHhkaXNw LmMgKG1hcmtfd2luZG93X2Rpc3BsYXlfYWNjdXJhdGVfMSk6IGFkanVzdGVkIGZvcgorCWEg bmV3IHR5cGUgb2YgJ2xhc3RfaGFkX3N0YXInIGFuZCAndXBkYXRlX21vZGVfbGluZScuCisJ KiB4ZGlzcC5jIChyZWRpc3BsYXlfd2luZG93KTogYWRqdXN0ZWQgZm9yCisJYSB0eXBlIGNo YW5nZXMgaW4gJ3N0cnVjdCB3aW5kb3cnLgorCSogeGRpc3AuYyAodHJ5X3dpbmRvdyk6IGFk anVzdGVkIGZvciBhIG5ldyB0eXBlIG9mICd1cGRhdGVfbW9kZV9saW5lJy4KKwkqIHhmbnMu YyAoeF9zZXRfbWVudV9iYXJfbGluZXMpOiBhZGp1c3RlZCBmb3IgYSBuZXcgdHlwZQorCW9m ICd1cGRhdGVfbW9kZV9saW5lJy4KKwogMjAxMi0wNS0yMiAgSnVhbm1hIEJhcnJhbnF1ZXJv ICA8bGVra3R1QGdtYWlsLmNvbT4KIAogCSogbWFrZWZpbGUudzMyLWluOiBGb2xsb3ctdXAg dG8gcmV2bm86MTA4MzQxLgoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9maWxlaW8uYycKLS0t IHNyYy9maWxlaW8uYwkyMDEyLTA1LTA0IDIzOjE2OjQ3ICswMDAwCisrKyBzcmMvZmlsZWlv LmMJMjAxMi0wNS0yMyAwMzo1MDo1MiArMDAwMApAQCAtMzczMiw3ICszNzMyLDcgQEAKIAkg IC8qIElmIGRpc3BsYXkgY3VycmVudGx5IHN0YXJ0cyBhdCBiZWdpbm5pbmcgb2YgbGluZSwK IAkgICAgIGtlZXAgaXQgdGhhdCB3YXkuICAqLwogCSAgaWYgKFhCVUZGRVIgKFhXSU5ET1cg KHNlbGVjdGVkX3dpbmRvdyktPmJ1ZmZlcikgPT0gY3VycmVudF9idWZmZXIpCi0JICAgIFhX SU5ET1cgKHNlbGVjdGVkX3dpbmRvdyktPnN0YXJ0X2F0X2xpbmVfYmVnID0gRmJvbHAgKCk7 CisJICAgIFhXSU5ET1cgKHNlbGVjdGVkX3dpbmRvdyktPnN0YXJ0X2F0X2xpbmVfYmVnID0g IU5JTFAgKEZib2xwICgpKTsKIAogCSAgcmVwbGFjZV9oYW5kbGVkID0gMTsKIAl9CkBAIC0z ODkwLDcgKzM4OTAsNyBAQAogICAgICAgLyogSWYgZGlzcGxheSBjdXJyZW50bHkgc3RhcnRz IGF0IGJlZ2lubmluZyBvZiBsaW5lLAogCSBrZWVwIGl0IHRoYXQgd2F5LiAgKi8KICAgICAg IGlmIChYQlVGRkVSIChYV0lORE9XIChzZWxlY3RlZF93aW5kb3cpLT5idWZmZXIpID09IGN1 cnJlbnRfYnVmZmVyKQotCVhXSU5ET1cgKHNlbGVjdGVkX3dpbmRvdyktPnN0YXJ0X2F0X2xp bmVfYmVnID0gRmJvbHAgKCk7CisJWFdJTkRPVyAoc2VsZWN0ZWRfd2luZG93KS0+c3RhcnRf YXRfbGluZV9iZWcgPSAhTklMUCAoRmJvbHAgKCkpOwogCiAgICAgICAvKiBSZXBsYWNlIHRo ZSBjaGFycyB0aGF0IHdlIG5lZWQgdG8gcmVwbGFjZSwKIAkgYW5kIHVwZGF0ZSBJTlNFUlRF RCB0byBlcXVhbCB0aGUgbnVtYmVyIG9mIGJ5dGVzCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3Jj L2ZyYW1lLmMnCi0tLSBzcmMvZnJhbWUuYwkyMDEyLTAzLTEwIDA3OjQ2OjA3ICswMDAwCisr KyBzcmMvZnJhbWUuYwkyMDEyLTA1LTIzIDAzOjQ0OjEwICswMDAwCkBAIC0zMzEsNyArMzMx LDcgQEAKICAgICAgIG1pbmlfd2luZG93ID0gbWFrZV93aW5kb3cgKCk7CiAgICAgICBYV0lO RE9XIChyb290X3dpbmRvdyktPm5leHQgPSBtaW5pX3dpbmRvdzsKICAgICAgIFhXSU5ET1cg KG1pbmlfd2luZG93KS0+cHJldiA9IHJvb3Rfd2luZG93OwotICAgICAgWFdJTkRPVyAobWlu aV93aW5kb3cpLT5taW5pX3AgPSBRdDsKKyAgICAgIFhXSU5ET1cgKG1pbmlfd2luZG93KS0+ bWluaSA9IDE7CiAgICAgICBYV0lORE9XIChtaW5pX3dpbmRvdyktPmZyYW1lID0gZnJhbWU7 CiAgICAgICBmLT5taW5pYnVmZmVyX3dpbmRvdyA9IG1pbmlfd2luZG93OwogICAgIH0KQEAg LTQ4MCw3ICs0ODAsNyBAQAogICAgICBhcyBuaWwuICovCiAKICAgbWluaV93aW5kb3cgPSBm LT5taW5pYnVmZmVyX3dpbmRvdyA9IGYtPnJvb3Rfd2luZG93OwotICBYV0lORE9XIChtaW5p X3dpbmRvdyktPm1pbmlfcCA9IFF0OworICBYV0lORE9XIChtaW5pX3dpbmRvdyktPm1pbmkg PSAxOwogICBYV0lORE9XIChtaW5pX3dpbmRvdyktPm5leHQgPSBRbmlsOwogICBYV0lORE9X IChtaW5pX3dpbmRvdyktPnByZXYgPSBRbmlsOwogICBYV0lORE9XIChtaW5pX3dpbmRvdykt PmZyYW1lID0gZnJhbWU7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2tleWJvYXJkLmMnCi0t LSBzcmMva2V5Ym9hcmQuYwkyMDEyLTA1LTE0IDE1OjIyOjI5ICswMDAwCisrKyBzcmMva2V5 Ym9hcmQuYwkyMDEyLTA1LTIzIDAzOjUwOjMxICswMDAwCkBAIC0xNDg2LDEwICsxNDg2LDEw IEBACiAJIGZyb20gdGhhdCBwb3NpdGlvbi4gIEJ1dCBhbHNvIHRocm93IGF3YXkgYmVnX3Vu Y2hhbmdlZCBhbmQKIAkgZW5kX3VuY2hhbmdlZCBpbmZvcm1hdGlvbiBpbiB0aGF0IGNhc2Us IHNvIHRoYXQgcmVkaXNwbGF5IHdpbGwKIAkgdXBkYXRlIHRoZSB3aG9sZSB3aW5kb3cgcHJv cGVybHkuICAqLwotICAgICAgaWYgKCFOSUxQIChYV0lORE9XIChzZWxlY3RlZF93aW5kb3cp LT5mb3JjZV9zdGFydCkpCisgICAgICBpZiAoWFdJTkRPVyAoc2VsZWN0ZWRfd2luZG93KS0+ Zm9yY2Vfc3RhcnQpCiAJewogCSAgc3RydWN0IGJ1ZmZlciAqYjsKLQkgIFhXSU5ET1cgKHNl bGVjdGVkX3dpbmRvdyktPmZvcmNlX3N0YXJ0ID0gUW5pbDsKKwkgIFhXSU5ET1cgKHNlbGVj dGVkX3dpbmRvdyktPmZvcmNlX3N0YXJ0ID0gMDsKIAkgIGIgPSBYQlVGRkVSIChYV0lORE9X IChzZWxlY3RlZF93aW5kb3cpLT5idWZmZXIpOwogCSAgQlVGX0JFR19VTkNIQU5HRUQgKGIp ID0gQlVGX0VORF9VTkNIQU5HRUQgKGIpID0gMDsKIAl9Cgo9PT0gbW9kaWZpZWQgZmlsZSAn c3JjL3dpbmRvdy5jJwotLS0gc3JjL3dpbmRvdy5jCTIwMTItMDQtMjcgMDM6MTA6MzggKzAw MDAKKysrIHNyYy93aW5kb3cuYwkyMDEyLTA1LTIzIDAzOjU4OjQ0ICswMDAwCkBAIC0xMzkz LDEwICsxMzkzLDEwIEBACiAgIENIRUNLX05VTUJFUl9DT0VSQ0VfTUFSS0VSIChwb3MpOwog ICBzZXRfbWFya2VyX3Jlc3RyaWN0ZWQgKHctPnN0YXJ0LCBwb3MsIHctPmJ1ZmZlcik7CiAg IC8qIHRoaXMgaXMgbm90IHJpZ2h0LCBidXQgbXVjaCBlYXNpZXIgdGhhbiBkb2luZyB3aGF0 IGlzIHJpZ2h0LiAqLwotICB3LT5zdGFydF9hdF9saW5lX2JlZyA9IFFuaWw7CisgIHctPnN0 YXJ0X2F0X2xpbmVfYmVnID0gMDsKICAgaWYgKE5JTFAgKG5vZm9yY2UpKQotICAgIHctPmZv cmNlX3N0YXJ0ID0gUXQ7Ci0gIHctPnVwZGF0ZV9tb2RlX2xpbmUgPSBRdDsKKyAgICB3LT5m b3JjZV9zdGFydCA9IDE7CisgIHctPnVwZGF0ZV9tb2RlX2xpbmUgPSAxOwogICBYU0VURkFT VElOVCAody0+bGFzdF9tb2RpZmllZCwgMCk7CiAgIFhTRVRGQVNUSU5UICh3LT5sYXN0X292 ZXJsYXlfbW9kaWZpZWQsIDApOwogICBpZiAoIUVRICh3aW5kb3csIHNlbGVjdGVkX3dpbmRv dykpCkBAIC0yNDcxLDcgKzI0NzEsNyBAQAogCSAgICBpZiAoRVEgKHctPmJ1ZmZlciwgb2Jq KSkKIAkgICAgICB7CiAJCW1hcmtfd2luZG93X2Rpc3BsYXlfYWNjdXJhdGUgKHdpbmRvdywg MCk7Ci0JCXctPnVwZGF0ZV9tb2RlX2xpbmUgPSBRdDsKKwkJdy0+dXBkYXRlX21vZGVfbGlu ZSA9IDE7CiAJCVhCVUZGRVIgKG9iaiktPnByZXZlbnRfcmVkaXNwbGF5X29wdGltaXphdGlv bnNfcCA9IDE7CiAJCSsrdXBkYXRlX21vZGVfbGluZXM7CiAJCWJlc3Rfd2luZG93ID0gd2lu ZG93OwpAQCAtMjc3MCwxMiArMjc3MCwxMSBAQAogCiAJICBzZXRfbWFya2VyX2JvdGggKHct PnN0YXJ0LCB3LT5idWZmZXIsIHBvcy5idWZwb3MsIHBvcy5ieXRlcG9zKTsKIAkgIHctPndp bmRvd19lbmRfdmFsaWQgPSBRbmlsOwotCSAgdy0+c3RhcnRfYXRfbGluZV9iZWcgPSAoKHBv cy5ieXRlcG9zID09IEJFR1ZfQllURQotCQkJCSAgIHx8IEZFVENIX0JZVEUgKHBvcy5ieXRl cG9zIC0gMSkgPT0gJ1xuJykgPyBRdAotCQkJCSAgOiBRbmlsKTsKKwkgIHctPnN0YXJ0X2F0 X2xpbmVfYmVnID0gKHBvcy5ieXRlcG9zID09IEJFR1ZfQllURQorCQkJCSAgICB8fCBGRVRD SF9CWVRFIChwb3MuYnl0ZXBvcyAtIDEpID09ICdcbicpOwogCSAgLyogV2UgbmVlZCB0byBk byB0aGlzLCBzbyB0aGF0IHRoZSB3aW5kb3ctc2Nyb2xsLWZ1bmN0aW9ucwogCSAgICAgZ2V0 IGNhbGxlZC4gICovCi0JICB3LT5vcHRpb25hbF9uZXdfc3RhcnQgPSBRdDsKKwkgIHctPm9w dGlvbmFsX25ld19zdGFydCA9IDE7CiAKIAkgIHNldF9idWZmZXJfaW50ZXJuYWwgKG9idWYp OwogCX0KQEAgLTMwMDUsOCArMzAwNCw4IEBACiAgICAgICBzZXRfbWFya2VyX3Jlc3RyaWN0 ZWQgKHctPnN0YXJ0LAogCQkJICAgICBtYWtlX251bWJlciAoYi0+bGFzdF93aW5kb3dfc3Rh cnQpLAogCQkJICAgICBidWZmZXIpOwotICAgICAgdy0+c3RhcnRfYXRfbGluZV9iZWcgPSBR bmlsOwotICAgICAgdy0+Zm9yY2Vfc3RhcnQgPSBRbmlsOworICAgICAgdy0+c3RhcnRfYXRf bGluZV9iZWcgPSAwOworICAgICAgdy0+Zm9yY2Vfc3RhcnQgPSAwOwogICAgICAgWFNFVEZB U1RJTlQgKHctPmxhc3RfbW9kaWZpZWQsIDApOwogICAgICAgWFNFVEZBU1RJTlQgKHctPmxh c3Rfb3ZlcmxheV9tb2RpZmllZCwgMCk7CiAgICAgfQpAQCAtMzE0Miw3ICszMTQxLDcgQEAK ICAgICB7CiAgICAgICBzdHJ1Y3Qgd2luZG93ICp3ID0gWFdJTkRPVyAob2JqZWN0KTsKICAg ICAgIG1hcmtfd2luZG93X2Rpc3BsYXlfYWNjdXJhdGUgKG9iamVjdCwgMCk7Ci0gICAgICB3 LT51cGRhdGVfbW9kZV9saW5lID0gUXQ7CisgICAgICB3LT51cGRhdGVfbW9kZV9saW5lID0g MTsKICAgICAgIGlmIChCVUZGRVJQICh3LT5idWZmZXIpKQogCVhCVUZGRVIgKHctPmJ1ZmZl ciktPnByZXZlbnRfcmVkaXNwbGF5X29wdGltaXphdGlvbnNfcCA9IDE7CiAgICAgICArK3Vw ZGF0ZV9tb2RlX2xpbmVzOwpAQCAtMzI3NCw3ICszMjczLDggQEAKIAogICB3ID0gYWxsb2Nh dGVfd2luZG93ICgpOwogICAvKiBJbml0aWFsaXplIGFsbCBMaXNwIGRhdGEuICAqLwotICB3 LT5mcmFtZSA9IHctPm1pbmlfcCA9IFFuaWw7CisgIHctPmZyYW1lID0gUW5pbDsKKyAgdy0+ bWluaSA9IDA7CiAgIHctPm5leHQgPSB3LT5wcmV2ID0gdy0+aGNoaWxkID0gdy0+dmNoaWxk ID0gdy0+cGFyZW50ID0gUW5pbDsKICAgWFNFVEZBU1RJTlQgKHctPmxlZnRfY29sLCAwKTsK ICAgWFNFVEZBU1RJTlQgKHctPnRvcF9saW5lLCAwKTsKQEAgLTMyODcsNyArMzI4Nyw3IEBA CiAgIHctPmJ1ZmZlciA9IFFuaWw7CiAgIHctPnN0YXJ0ID0gRm1ha2VfbWFya2VyICgpOwog ICB3LT5wb2ludG0gPSBGbWFrZV9tYXJrZXIgKCk7Ci0gIHctPmZvcmNlX3N0YXJ0ID0gdy0+ b3B0aW9uYWxfbmV3X3N0YXJ0ID0gUW5pbDsKKyAgdy0+Zm9yY2Vfc3RhcnQgPSB3LT5vcHRp b25hbF9uZXdfc3RhcnQgPSAwOwogICBYU0VURkFTVElOVCAody0+aHNjcm9sbCwgMCk7CiAg IFhTRVRGQVNUSU5UICh3LT5taW5faHNjcm9sbCwgMCk7CiAgIFhTRVRGQVNUSU5UICh3LT51 c2VfdGltZSwgMCk7CkBAIC0zMjk1LDE3ICszMjk1LDE4IEBACiAgIFhTRVRGQVNUSU5UICh3 LT5zZXF1ZW5jZV9udW1iZXIsIHNlcXVlbmNlX251bWJlcik7CiAgIHctPnRlbXNsb3QgPSB3 LT5sYXN0X21vZGlmaWVkID0gdy0+bGFzdF9vdmVybGF5X21vZGlmaWVkID0gUW5pbDsKICAg WFNFVEZBU1RJTlQgKHctPmxhc3RfcG9pbnQsIDApOwotICB3LT5sYXN0X2hhZF9zdGFyID0g dy0+dmVydGljYWxfc2Nyb2xsX2JhciA9IFFuaWw7CisgIHctPmxhc3RfaGFkX3N0YXIgPSAw OworICB3LT52ZXJ0aWNhbF9zY3JvbGxfYmFyID0gUW5pbDsKICAgdy0+bGVmdF9tYXJnaW5f Y29scyA9IHctPnJpZ2h0X21hcmdpbl9jb2xzID0gUW5pbDsKICAgdy0+bGVmdF9mcmluZ2Vf d2lkdGggPSB3LT5yaWdodF9mcmluZ2Vfd2lkdGggPSBRbmlsOwogICB3LT5mcmluZ2VzX291 dHNpZGVfbWFyZ2lucyA9IFFuaWw7CiAgIHctPnNjcm9sbF9iYXJfd2lkdGggPSBRbmlsOwog ICB3LT52ZXJ0aWNhbF9zY3JvbGxfYmFyX3R5cGUgPSBRdDsKLSAgdy0+bGFzdF9tYXJrX3gg PSB3LT5sYXN0X21hcmtfeSA9IFFuaWw7CiAgIFhTRVRGQVNUSU5UICh3LT53aW5kb3dfZW5k X3BvcywgMCk7CiAgIFhTRVRGQVNUSU5UICh3LT53aW5kb3dfZW5kX3Zwb3MsIDApOwotICB3 LT53aW5kb3dfZW5kX3ZhbGlkID0gdy0+dXBkYXRlX21vZGVfbGluZSA9IFFuaWw7Ci0gIHct PnN0YXJ0X2F0X2xpbmVfYmVnID0gdy0+ZGlzcGxheV90YWJsZSA9IHctPmRlZGljYXRlZCA9 IFFuaWw7CisgIHctPndpbmRvd19lbmRfdmFsaWQgPSB3LT5kaXNwbGF5X3RhYmxlID0gUW5p bDsKKyAgdy0+dXBkYXRlX21vZGVfbGluZSA9IHctPnN0YXJ0X2F0X2xpbmVfYmVnID0gMDsK KyAgdy0+ZGVkaWNhdGVkID0gUW5pbDsKICAgdy0+YmFzZV9saW5lX251bWJlciA9IHctPmJh c2VfbGluZV9wb3MgPSB3LT5yZWdpb25fc2hvd2luZyA9IFFuaWw7CiAgIHctPmNvbHVtbl9u dW1iZXJfZGlzcGxheWVkID0gdy0+cmVkaXNwbGF5X2VuZF90cmlnZ2VyID0gUW5pbDsKICAg dy0+Y29tYmluYXRpb25fbGltaXQgPSB3LT53aW5kb3dfcGFyYW1ldGVycyA9IFFuaWw7CkBA IC00MzAzLDEzICs0MzA0LDEzIEBACiAJCSAgICBzcG9zID0gbWluIChYSU5UIChGbGluZV9l bmRfcG9zaXRpb24gKFFuaWwpKSArIDEsIFpWKTsKIAkJICBzZXRfbWFya2VyX3Jlc3RyaWN0 ZWQgKHctPnN0YXJ0LCBtYWtlX251bWJlciAoc3BvcyksCiAJCQkJCSB3LT5idWZmZXIpOwot CQkgIHctPnN0YXJ0X2F0X2xpbmVfYmVnID0gUXQ7Ci0JCSAgdy0+dXBkYXRlX21vZGVfbGlu ZSA9IFF0OworCQkgIHctPnN0YXJ0X2F0X2xpbmVfYmVnID0gMTsKKwkJICB3LT51cGRhdGVf bW9kZV9saW5lID0gMTsKIAkJICBYU0VURkFTVElOVCAody0+bGFzdF9tb2RpZmllZCwgMCk7 CiAJCSAgWFNFVEZBU1RJTlQgKHctPmxhc3Rfb3ZlcmxheV9tb2RpZmllZCwgMCk7CiAJCSAg LyogU2V0IGZvcmNlX3N0YXJ0IHNvIHRoYXQgcmVkaXNwbGF5X3dpbmRvdyB3aWxsIHJ1biB0 aGUKIAkJICAgICB3aW5kb3ctc2Nyb2xsLWZ1bmN0aW9ucy4gICovCi0JCSAgdy0+Zm9yY2Vf c3RhcnQgPSBRdDsKKwkJICB3LT5mb3JjZV9zdGFydCA9IDE7CiAJCSAgcmV0dXJuOwogCQl9 CiAJICAgIH0KQEAgLTQ0NDksMTQgKzQ0NTAsMTMgQEAKICAgICAgIHNldF9tYXJrZXJfcmVz dHJpY3RlZCAody0+c3RhcnQsIG1ha2VfbnVtYmVyIChwb3MpLAogCQkJICAgICB3LT5idWZm ZXIpOwogICAgICAgYnl0ZXBvcyA9IFhNQVJLRVIgKHctPnN0YXJ0KS0+Ynl0ZXBvczsKLSAg ICAgIHctPnN0YXJ0X2F0X2xpbmVfYmVnID0gKChwb3MgPT0gQkVHViB8fCBGRVRDSF9CWVRF IChieXRlcG9zIC0gMSkgPT0gJ1xuJykKLQkJCSAgICAgID8gUXQgOiBRbmlsKTsKLSAgICAg IHctPnVwZGF0ZV9tb2RlX2xpbmUgPSBRdDsKKyAgICAgIHctPnN0YXJ0X2F0X2xpbmVfYmVn ID0gKHBvcyA9PSBCRUdWIHx8IEZFVENIX0JZVEUgKGJ5dGVwb3MgLSAxKSA9PSAnXG4nKTsK KyAgICAgIHctPnVwZGF0ZV9tb2RlX2xpbmUgPSAxOwogICAgICAgWFNFVEZBU1RJTlQgKHct Pmxhc3RfbW9kaWZpZWQsIDApOwogICAgICAgWFNFVEZBU1RJTlQgKHctPmxhc3Rfb3Zlcmxh eV9tb2RpZmllZCwgMCk7CiAgICAgICAvKiBTZXQgZm9yY2Vfc3RhcnQgc28gdGhhdCByZWRp c3BsYXlfd2luZG93IHdpbGwgcnVuIHRoZQogCSB3aW5kb3ctc2Nyb2xsLWZ1bmN0aW9ucy4g ICovCi0gICAgICB3LT5mb3JjZV9zdGFydCA9IFF0OworICAgICAgdy0+Zm9yY2Vfc3RhcnQg PSAxOwogICAgIH0KIAogICAvKiBUaGUgcmVzdCBvZiB0aGlzIGZ1bmN0aW9uIHVzZXMgY3Vy cmVudF95IGluIGEgbm9uc3RhbmRhcmQgd2F5LApAQCAtNDY0OSwxMyArNDY0OSwxMyBAQAog CW1heCAoMCwgbWluIChzY3JvbGxfbWFyZ2luLCBYSU5UICh3LT50b3RhbF9saW5lcykgLyA0 KSk7CiAKICAgICAgIHNldF9tYXJrZXJfcmVzdHJpY3RlZF9ib3RoICh3LT5zdGFydCwgdy0+ YnVmZmVyLCBwb3MsIHBvc19ieXRlKTsKLSAgICAgIHctPnN0YXJ0X2F0X2xpbmVfYmVnID0g Ym9scDsKLSAgICAgIHctPnVwZGF0ZV9tb2RlX2xpbmUgPSBRdDsKKyAgICAgIHctPnN0YXJ0 X2F0X2xpbmVfYmVnID0gIU5JTFAgKGJvbHApOworICAgICAgdy0+dXBkYXRlX21vZGVfbGlu ZSA9IDE7CiAgICAgICBYU0VURkFTVElOVCAody0+bGFzdF9tb2RpZmllZCwgMCk7CiAgICAg ICBYU0VURkFTVElOVCAody0+bGFzdF9vdmVybGF5X21vZGlmaWVkLCAwKTsKICAgICAgIC8q IFNldCBmb3JjZV9zdGFydCBzbyB0aGF0IHJlZGlzcGxheV93aW5kb3cgd2lsbCBydW4KIAkg dGhlIHdpbmRvdy1zY3JvbGwtZnVuY3Rpb25zLiAgKi8KLSAgICAgIHctPmZvcmNlX3N0YXJ0 ID0gUXQ7CisgICAgICB3LT5mb3JjZV9zdGFydCA9IDE7CiAKICAgICAgIGlmICghTklMUCAo VnNjcm9sbF9wcmVzZXJ2ZV9zY3JlZW5fcG9zaXRpb24pCiAJICAmJiAod2hvbGUgfHwgIUVR IChWc2Nyb2xsX3ByZXNlcnZlX3NjcmVlbl9wb3NpdGlvbiwgUXQpKSkKQEAgLTUxOTksMTIg KzUxOTksMTAgQEAKICAgc2V0X21hcmtlcl9ib3RoICh3LT5zdGFydCwgdy0+YnVmZmVyLCBj aGFycG9zLCBieXRlcG9zKTsKICAgdy0+d2luZG93X2VuZF92YWxpZCA9IFFuaWw7CiAKLSAg dy0+b3B0aW9uYWxfbmV3X3N0YXJ0ID0gUXQ7CisgIHctPm9wdGlvbmFsX25ld19zdGFydCA9 IDE7CiAKLSAgaWYgKGJ5dGVwb3MgPT0gQkVHVl9CWVRFIHx8IEZFVENIX0JZVEUgKGJ5dGVw b3MgLSAxKSA9PSAnXG4nKQotICAgIHctPnN0YXJ0X2F0X2xpbmVfYmVnID0gUXQ7Ci0gIGVs c2UKLSAgICB3LT5zdGFydF9hdF9saW5lX2JlZyA9IFFuaWw7CisgIHctPnN0YXJ0X2F0X2xp bmVfYmVnID0gKGJ5dGVwb3MgPT0gQkVHVl9CWVRFIHx8CisJCQkgIEZFVENIX0JZVEUgKGJ5 dGVwb3MgLSAxKSA9PSAnXG4nKTsKIAogICBzZXRfYnVmZmVyX2ludGVybmFsIChvYnVmKTsK ICAgcmV0dXJuIFFuaWw7CkBAIC01MjU1LDggKzUyNTMsOCBAQAogICAgICAgaW50IGhlaWdo dCA9IHdpbmRvd19pbnRlcm5hbF9oZWlnaHQgKHcpOwogICAgICAgRnZlcnRpY2FsX21vdGlv biAobWFrZV9udW1iZXIgKC0gKGhlaWdodCAvIDIpKSwgd2luZG93KTsKICAgICAgIHNldF9t YXJrZXJfYm90aCAody0+c3RhcnQsIHctPmJ1ZmZlciwgUFQsIFBUX0JZVEUpOwotICAgICAg dy0+c3RhcnRfYXRfbGluZV9iZWcgPSBGYm9scCAoKTsKLSAgICAgIHctPmZvcmNlX3N0YXJ0 ID0gUXQ7CisgICAgICB3LT5zdGFydF9hdF9saW5lX2JlZyA9ICFOSUxQIChGYm9scCAoKSk7 CisgICAgICB3LT5mb3JjZV9zdGFydCA9IDE7CiAgICAgfQogICBlbHNlCiAgICAgRmdvdG9f Y2hhciAody0+c3RhcnQpOwpAQCAtNTYwNSw3ICs1NjAzLDcgQEAKIAkgICAgLyogSWYgc2F2 ZWQgYnVmZmVyIGlzIGFsaXZlLCBpbnN0YWxsIGl0LiAgKi8KIAkgICAgewogCSAgICAgIHct PmJ1ZmZlciA9IHAtPmJ1ZmZlcjsKLQkgICAgICB3LT5zdGFydF9hdF9saW5lX2JlZyA9IHAt PnN0YXJ0X2F0X2xpbmVfYmVnOworCSAgICAgIHctPnN0YXJ0X2F0X2xpbmVfYmVnID0gIU5J TFAgKHAtPnN0YXJ0X2F0X2xpbmVfYmVnKTsKIAkgICAgICBzZXRfbWFya2VyX3Jlc3RyaWN0 ZWQgKHctPnN0YXJ0LCBwLT5zdGFydCwgdy0+YnVmZmVyKTsKIAkgICAgICBzZXRfbWFya2Vy X3Jlc3RyaWN0ZWQgKHctPnBvaW50bSwgcC0+cG9pbnRtLCB3LT5idWZmZXIpOwogCSAgICAg IEZzZXRfbWFya2VyIChCVkFSIChYQlVGRkVSICh3LT5idWZmZXIpLCBtYXJrKSwKQEAgLTU2 MzAsNyArNTYyOCw3IEBACiAJCXNldF9tYXJrZXJfcmVzdHJpY3RlZF9ib3RoICh3LT5wb2lu dG0sIHctPmJ1ZmZlciwKIAkJCQkJICAgIEJVRl9QVCAoWEJVRkZFUiAody0+YnVmZmVyKSks CiAJCQkJCSAgICBCVUZfUFRfQllURSAoWEJVRkZFUiAody0+YnVmZmVyKSkpOwotCSAgICAg IHctPnN0YXJ0X2F0X2xpbmVfYmVnID0gUXQ7CisJICAgICAgdy0+c3RhcnRfYXRfbGluZV9i ZWcgPSAxOwogCSAgICB9CiAJICBlbHNlIGlmIChTVFJJTkdQIChhdXRvX2J1ZmZlcl9uYW1l ID0KIAkJCSAgICBGd2luZG93X3BhcmFtZXRlciAod2luZG93LCBRYXV0b19idWZmZXJfbmFt ZSkpCkBAIC01NjM5LDcgKzU2MzcsNyBAQAogCSAgICB7CiAJICAgICAgc2V0X21hcmtlcl9y ZXN0cmljdGVkICh3LT5zdGFydCwgbWFrZV9udW1iZXIgKDApLCB3LT5idWZmZXIpOwogCSAg ICAgIHNldF9tYXJrZXJfcmVzdHJpY3RlZCAody0+cG9pbnRtLCBtYWtlX251bWJlciAoMCks IHctPmJ1ZmZlcik7Ci0JICAgICAgdy0+c3RhcnRfYXRfbGluZV9iZWcgPSBRdDsKKwkgICAg ICB3LT5zdGFydF9hdF9saW5lX2JlZyA9IDE7CiAJICAgIH0KIAkgIGVsc2UKIAkgICAgLyog V2luZG93IGhhcyBubyBsaXZlIGJ1ZmZlciwgZ2V0IG9uZS4gICovCkBAIC01NjUzLDcgKzU2 NTEsNyBAQAogCQkgcmFuZ2UuICAqLwogCSAgICAgIHNldF9tYXJrZXJfcmVzdHJpY3RlZCAo dy0+c3RhcnQsIG1ha2VfbnVtYmVyICgwKSwgdy0+YnVmZmVyKTsKIAkgICAgICBzZXRfbWFy a2VyX3Jlc3RyaWN0ZWQgKHctPnBvaW50bSwgbWFrZV9udW1iZXIgKDApLCB3LT5idWZmZXIp OwotCSAgICAgIHctPnN0YXJ0X2F0X2xpbmVfYmVnID0gUXQ7CisJICAgICAgdy0+c3RhcnRf YXRfbGluZV9iZWcgPSAxOwogCSAgICAgIGlmICghTklMUCAody0+ZGVkaWNhdGVkKSkKIAkJ LyogUmVjb3JkIHRoaXMgd2luZG93IGFzIGRlYWQuICAqLwogCQlkZWFkX3dpbmRvd3MgPSBG Y29ucyAod2luZG93LCBkZWFkX3dpbmRvd3MpOwpAQCAtNTk1NCw3ICs1OTUyLDcgQEAKIAkg ICAgPSAhTklMUCAoVndpbmRvd19wb2ludF9pbnNlcnRpb25fdHlwZSk7CiAKIAkgIHAtPnN0 YXJ0ID0gRmNvcHlfbWFya2VyICh3LT5zdGFydCwgUW5pbCk7Ci0JICBwLT5zdGFydF9hdF9s aW5lX2JlZyA9IHctPnN0YXJ0X2F0X2xpbmVfYmVnOworCSAgcC0+c3RhcnRfYXRfbGluZV9i ZWcgPSB3LT5zdGFydF9hdF9saW5lX2JlZyA/IFF0IDogUW5pbDsKIAogCSAgdGVtID0gQlZB UiAoWEJVRkZFUiAody0+YnVmZmVyKSwgbWFyayk7CiAJICBwLT5tYXJrID0gRmNvcHlfbWFy a2VyICh0ZW0sIFFuaWwpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy93aW5kb3cuaCcKLS0t IHNyYy93aW5kb3cuaAkyMDEyLTAzLTEyIDA2OjM0OjMyICswMDAwCisrKyBzcmMvd2luZG93 LmgJMjAxMi0wNS0yMyAwMzo0Mzo1MCArMDAwMApAQCAtOTQsOSArOTQsNiBAQAogICAgIC8q IFRoZSBmcmFtZSB0aGlzIHdpbmRvdyBpcyBvbi4gICovCiAgICAgTGlzcF9PYmplY3QgZnJh bWU7CiAKLSAgICAvKiB0IGlmIHRoaXMgd2luZG93IGlzIGEgbWluaWJ1ZmZlciB3aW5kb3cu ICAqLwotICAgIExpc3BfT2JqZWN0IG1pbmlfcDsKLQogICAgIC8qIEZvbGxvd2luZyAodG8g cmlnaHQgb3IgZG93bikgYW5kIHByZWNlZGluZyAodG8gbGVmdCBvciB1cCkgY2hpbGQKICAg ICAgICBhdCBzYW1lIGxldmVsIG9mIHRyZWUuICAqLwogICAgIExpc3BfT2JqZWN0IG5leHQs IHByZXY7CkBAIC0xNDQsMTUgKzE0MSw2IEBACiAgICAgICAgZWFjaCBvbmUgY2FuIGhhdmUg aXRzIG93biB2YWx1ZSBvZiBwb2ludC4gICovCiAgICAgTGlzcF9PYmplY3QgcG9pbnRtOwog Ci0gICAgLyogTm9uLW5pbCBtZWFucyBuZXh0IHJlZGlzcGxheSBtdXN0IHVzZSB0aGUgdmFs dWUgb2Ygc3RhcnQKLSAgICAgICBzZXQgdXAgZm9yIGl0IGluIGFkdmFuY2UuICBTZXQgYnkg c2Nyb2xsaW5nIGNvbW1hbmRzLiAgKi8KLSAgICBMaXNwX09iamVjdCBmb3JjZV9zdGFydDsK LSAgICAvKiBOb24tbmlsIG1lYW5zIHdlIGhhdmUgZXhwbGljaXRseSBjaGFuZ2VkIHRoZSB2 YWx1ZSBvZiBzdGFydCwKLSAgICAgICBidXQgdGhhdCB0aGUgbmV4dCByZWRpc3BsYXkgaXMg bm90IG9ibGlnZWQgdG8gdXNlIHRoZSBuZXcgdmFsdWUuCi0gICAgICAgVGhpcyBpcyB1c2Vk IGluIEZkZWxldGVfb3RoZXJfd2luZG93cyB0byBmb3JjZSBhIGNhbGwgdG8KLSAgICAgICBW d2luZG93X3Njcm9sbF9mdW5jdGlvbnM7IGFsc28gYnkgRnJlY2VudGVyIHdpdGggYXJndW1l bnQuICAqLwotICAgIExpc3BfT2JqZWN0IG9wdGlvbmFsX25ld19zdGFydDsKLQogICAgIC8q IE51bWJlciBvZiBjb2x1bW5zIGRpc3BsYXkgd2l0aGluIHRoZSB3aW5kb3cgaXMgc2Nyb2xs ZWQgdG8gdGhlIGxlZnQuICAqLwogICAgIExpc3BfT2JqZWN0IGhzY3JvbGw7CiAgICAgLyog TWluaW11bSBoc2Nyb2xsIGZvciBhdXRvbWF0aWMgaHNjcm9sbGluZy4gIFRoaXMgaXMgdGhl IHZhbHVlCkBAIC0xNzYsOSArMTY0LDYgQEAKICAgICBMaXNwX09iamVjdCBsYXN0X292ZXJs YXlfbW9kaWZpZWQ7CiAgICAgLyogVmFsdWUgb2YgcG9pbnQgYXQgdGhhdCB0aW1lLiAgKi8K ICAgICBMaXNwX09iamVjdCBsYXN0X3BvaW50OwotICAgIC8qIE5vbi1uaWwgaWYgdGhlIGJ1 ZmZlciB3YXMgIm1vZGlmaWVkIiB3aGVuIHRoZSB3aW5kb3cKLSAgICAgICB3YXMgbGFzdCB1 cGRhdGVkLiAgKi8KLSAgICBMaXNwX09iamVjdCBsYXN0X2hhZF9zdGFyOwogCiAgICAgLyog VGhpcyB3aW5kb3cncyB2ZXJ0aWNhbCBzY3JvbGwgYmFyLiAgVGhpcyBmaWVsZCBpcyBvbmx5 IGZvciB1c2UKICAgICAgICBieSB0aGUgd2luZG93LXN5c3RlbS1kZXBlbmRlbnQgY29kZSB3 aGljaCBpbXBsZW1lbnRzIHRoZQpAQCAtMjA2LDExICsxOTEsNiBAQAogICAgICAgIG5vIHNj cm9sbCBiYXIuICBBIHZhbHVlIG9mIHQgbWVhbnMgdXNlIGZyYW1lIHZhbHVlLiAgKi8KICAg ICBMaXNwX09iamVjdCB2ZXJ0aWNhbF9zY3JvbGxfYmFyX3R5cGU7CiAKLSAgICAvKiBGcmFt ZSBjb29yZHMgb2YgbWFyayBhcyBvZiBsYXN0IHRpbWUgZGlzcGxheSBjb21wbGV0ZWQgKi8K LSAgICAvKiBNYXkgYmUgbmlsIGlmIG1hcmsgZG9lcyBub3QgZXhpc3Qgb3Igd2FzIG5vdCBv biBmcmFtZSAqLwotICAgIExpc3BfT2JqZWN0IGxhc3RfbWFya194OwotICAgIExpc3BfT2Jq ZWN0IGxhc3RfbWFya195OwotCiAgICAgLyogWiAtIHRoZSBidWZmZXIgcG9zaXRpb24gb2Yg dGhlIGxhc3QgZ2x5cGggaW4gdGhlIGN1cnJlbnQgbWF0cml4CiAgICAgICAgb2YgVy4gIE9u bHkgdmFsaWQgaWYgV0lORE9XX0VORF9WQUxJRCBpcyBub3QgbmlsLiAgKi8KICAgICBMaXNw X09iamVjdCB3aW5kb3dfZW5kX3BvczsKQEAgLTIyMywxOCArMjAzLDEzIEBACiAgICAgICAg ZGlkIG5vdCBnZXQgb250byB0aGUgZnJhbWUuICAqLwogICAgIExpc3BfT2JqZWN0IHdpbmRv d19lbmRfdmFsaWQ7CiAKLSAgICAvKiBOb24tbmlsIG1lYW5zIG11c3QgcmVnZW5lcmF0ZSBt b2RlIGxpbmUgb2YgdGhpcyB3aW5kb3cgKi8KLSAgICBMaXNwX09iamVjdCB1cGRhdGVfbW9k ZV9saW5lOwotCi0gICAgLyogTm9uLW5pbCBtZWFucyBjdXJyZW50IHZhbHVlIG9mIGBzdGFy dCcKLSAgICAgICB3YXMgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUgd2hlbiBpdCB3YXMgY2hv c2VuLiAgKi8KLSAgICBMaXNwX09iamVjdCBzdGFydF9hdF9saW5lX2JlZzsKLQogICAgIC8q IERpc3BsYXktdGFibGUgdG8gdXNlIGZvciBkaXNwbGF5aW5nIGNoYXJzIGluIHRoaXMgd2lu ZG93LgogICAgICAgIE5pbCBtZWFucyB1c2UgdGhlIGJ1ZmZlcidzIG93biBkaXNwbGF5LXRh YmxlLiAgKi8KICAgICBMaXNwX09iamVjdCBkaXNwbGF5X3RhYmxlOwogCi0gICAgLyogTm9u LW5pbCBtZWFucyB3aW5kb3cgaXMgbWFya2VkIGFzIGRlZGljYXRlZC4gICovCisgICAgLyog Tm9uLW5pbCB1c3VhbGx5IG1lYW5zIHdpbmRvdyBpcyBtYXJrZWQgYXMgZGVkaWNhdGVkLgor ICAgICAgIE5vdGUgTGlzcCBjb2RlIG1heSBzZXQgdGhpcyB0byBzb21ldGhpbmcgYmV5b25k IFFuaWwKKyAgICAgICBhbmQgUXQsIHNvIGJpdGZpZWxkIGNhbid0IGJlIHVzZWQgaGVyZS4g ICovCiAgICAgTGlzcF9PYmplY3QgZGVkaWNhdGVkOwogCiAgICAgLyogTGluZSBudW1iZXIg YW5kIHBvc2l0aW9uIG9mIGEgbGluZSBzb21ld2hlcmUgYWJvdmUgdGhlIHRvcCBvZiB0aGUK QEAgLTMwMiw2ICsyNzcsMzAgQEAKICAgICAvKiBUaGlzIGlzIGhhbmR5IGZvciB1bmRyYXdp bmcgdGhlIGN1cnNvci4gICovCiAgICAgaW50IHBoeXNfY3Vyc29yX2FzY2VudCwgcGh5c19j dXJzb3JfaGVpZ2h0OwogCisgICAgLyogTm9uLXplcm8gaWYgdGhpcyB3aW5kb3cgaXMgYSBt aW5pYnVmZmVyIHdpbmRvdy4gICovCisgICAgdW5zaWduZWQgbWluaSA6IDE7CisKKyAgICAv KiBOb24temVybyBtZWFucyBtdXN0IHJlZ2VuZXJhdGUgbW9kZSBsaW5lIG9mIHRoaXMgd2lu ZG93ICovCisgICAgdW5zaWduZWQgdXBkYXRlX21vZGVfbGluZSA6IDE7CisKKyAgICAvKiBO b24tbmlsIGlmIHRoZSBidWZmZXIgd2FzICJtb2RpZmllZCIgd2hlbiB0aGUgd2luZG93Cisg ICAgICAgd2FzIGxhc3QgdXBkYXRlZC4gICovCisgICAgdW5zaWduZWQgbGFzdF9oYWRfc3Rh ciA6IDE7CisKKyAgICAvKiBOb24temVybyBtZWFucyBjdXJyZW50IHZhbHVlIG9mIGBzdGFy dCcKKyAgICAgICB3YXMgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUgd2hlbiBpdCB3YXMgY2hv c2VuLiAgKi8KKyAgICB1bnNpZ25lZCBzdGFydF9hdF9saW5lX2JlZyA6IDE7CisKKyAgICAv KiBOb24temVybyBtZWFucyBuZXh0IHJlZGlzcGxheSBtdXN0IHVzZSB0aGUgdmFsdWUgb2Yg c3RhcnQKKyAgICAgICBzZXQgdXAgZm9yIGl0IGluIGFkdmFuY2UuICBTZXQgYnkgc2Nyb2xs aW5nIGNvbW1hbmRzLiAgKi8KKyAgICB1bnNpZ25lZCBmb3JjZV9zdGFydCA6IDE7CisKKyAg ICAvKiBOb24temVybyBtZWFucyB3ZSBoYXZlIGV4cGxpY2l0bHkgY2hhbmdlZCB0aGUgdmFs dWUgb2Ygc3RhcnQsCisgICAgICAgYnV0IHRoYXQgdGhlIG5leHQgcmVkaXNwbGF5IGlzIG5v dCBvYmxpZ2VkIHRvIHVzZSB0aGUgbmV3IHZhbHVlLgorICAgICAgIFRoaXMgaXMgdXNlZCBp biBGZGVsZXRlX290aGVyX3dpbmRvd3MgdG8gZm9yY2UgYSBjYWxsIHRvCisgICAgICAgVndp bmRvd19zY3JvbGxfZnVuY3Rpb25zOyBhbHNvIGJ5IEZyZWNlbnRlciB3aXRoIGFyZ3VtZW50 LiAgKi8KKyAgICB1bnNpZ25lZCBvcHRpb25hbF9uZXdfc3RhcnQgOiAxOworCiAgICAgLyog Tm9uLXplcm8gbWVhbnMgdGhlIGN1cnNvciBpcyBjdXJyZW50bHkgZGlzcGxheWVkLiAgVGhp cyBjYW4gYmUKICAgICAgICBzZXQgdG8gemVybyBieSBmdW5jdGlvbnMgb3ZlcnBhaW50aW5n IHRoZSBjdXJzb3IgaW1hZ2UuICAqLwogICAgIHVuc2lnbmVkIHBoeXNfY3Vyc29yX29uX3Ag OiAxOwpAQCAtMzM3LDcgKzMzNiw3IEBACiAKIC8qIDEgaWYgVyBpcyBhIG1pbmlidWZmZXIg d2luZG93LiAgKi8KIAotI2RlZmluZSBNSU5JX1dJTkRPV19QKFcpCSghTklMUCAoKFcpLT5t aW5pX3ApKQorI2RlZmluZSBNSU5JX1dJTkRPV19QKFcpCSgoVyktPm1pbmkpCiAKIC8qIEdl bmVyYWwgd2luZG93IGxheW91dDoKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy94ZGlzcC5j JwotLS0gc3JjL3hkaXNwLmMJMjAxMi0wNS0xNCAxMTo1OToyOCArMDAwMAorKysgc3JjL3hk aXNwLmMJMjAxMi0wNS0yMyAwNDoyNjo0NiArMDAwMApAQCAtMTExNTIsNyArMTExNTIsNyBA QAogCSAgfHwgdXBkYXRlX21vZGVfbGluZXMKIAkgIHx8ICgoQlVGX1NBVkVfTU9ESUZGIChY QlVGRkVSICh3LT5idWZmZXIpKQogCSAgICAgICA8IEJVRl9NT0RJRkYgKFhCVUZGRVIgKHct PmJ1ZmZlcikpKQotCSAgICAgICE9ICFOSUxQICh3LT5sYXN0X2hhZF9zdGFyKSkKKwkgICAg ICAhPSB3LT5sYXN0X2hhZF9zdGFyKQogCSAgfHwgKCghTklMUCAoVnRyYW5zaWVudF9tYXJr X21vZGUpCiAJICAgICAgICYmICFOSUxQIChCVkFSIChYQlVGRkVSICh3LT5idWZmZXIpLCBt YXJrX2FjdGl2ZSkpKQogCSAgICAgICE9ICFOSUxQICh3LT5yZWdpb25fc2hvd2luZykpKQpA QCAtMTEyMDQsMTEgKzExMjA0LDExIEBACiAJICBlbHNlCiAJICAgIC8qIE9uIGEgdGVybWlu YWwgc2NyZWVuLCB0aGUgbWVudSBiYXIgaXMgYW4gb3JkaW5hcnkgc2NyZWVuCiAJICAgICAg IGxpbmUsIGFuZCB0aGlzIG1ha2VzIGl0IGdldCB1cGRhdGVkLiAgKi8KLQkgICAgdy0+dXBk YXRlX21vZGVfbGluZSA9IFF0OworCSAgICB3LT51cGRhdGVfbW9kZV9saW5lID0gMTsKICNl bHNlIC8qICEgKFVTRV9YX1RPT0xLSVQgfHwgSEFWRV9OVEdVSSB8fCBIQVZFX05TIHx8IFVT RV9HVEspICovCiAJICAvKiBJbiB0aGUgbm9uLXRvb2xraXQgdmVyc2lvbiwgdGhlIG1lbnUg YmFyIGlzIGFuIG9yZGluYXJ5IHNjcmVlbgogCSAgICAgbGluZSwgYW5kIHRoaXMgbWFrZXMg aXQgZ2V0IHVwZGF0ZWQuICAqLwotCSAgdy0+dXBkYXRlX21vZGVfbGluZSA9IFF0OworCSAg dy0+dXBkYXRlX21vZGVfbGluZSA9IDE7CiAjZW5kaWYgLyogISAoVVNFX1hfVE9PTEtJVCB8 fCBIQVZFX05UR1VJIHx8IEhBVkVfTlMgfHwgVVNFX0dUSykgKi8KIAogCSAgdW5iaW5kX3Rv IChjb3VudCwgUW5pbCk7CkBAIC0xMTM0NiwxMSArMTEzNDYsMTEgQEAKIAkgdGhlIHJlc3Qg b2YgdGhlIHJlZGlzcGxheSBhbGdvcml0aG0gaXMgYWJvdXQgdGhlIHNhbWUgYXMKIAkgd2lu ZG93c19vcl9idWZmZXJzX2NoYW5nZWQgYW55d2F5LiAgKi8KICAgICAgIGlmICh3aW5kb3dz X29yX2J1ZmZlcnNfY2hhbmdlZAotCSAgfHwgIU5JTFAgKHctPnVwZGF0ZV9tb2RlX2xpbmUp CisJICB8fCB3LT51cGRhdGVfbW9kZV9saW5lCiAJICB8fCB1cGRhdGVfbW9kZV9saW5lcwog CSAgfHwgKChCVUZfU0FWRV9NT0RJRkYgKFhCVUZGRVIgKHctPmJ1ZmZlcikpCiAJICAgICAg IDwgQlVGX01PRElGRiAoWEJVRkZFUiAody0+YnVmZmVyKSkpCi0JICAgICAgIT0gIU5JTFAg KHctPmxhc3RfaGFkX3N0YXIpKQorCSAgICAgICE9IHctPmxhc3RfaGFkX3N0YXIpCiAJICB8 fCAoKCFOSUxQIChWdHJhbnNpZW50X21hcmtfbW9kZSkKIAkgICAgICAgJiYgIU5JTFAgKEJW QVIgKFhCVUZGRVIgKHctPmJ1ZmZlciksIG1hcmtfYWN0aXZlKSkpCiAJICAgICAgIT0gIU5J TFAgKHctPnJlZ2lvbl9zaG93aW5nKSkpCkBAIC0xMTQwMSw3ICsxMTQwMSw3IEBACiAgICAg ICAgICAgICAgIEJMT0NLX0lOUFVUOwogICAgICAgICAgICAgICBmLT50b29sX2Jhcl9pdGVt cyA9IG5ld190b29sX2JhcjsKICAgICAgICAgICAgICAgZi0+bl90b29sX2Jhcl9pdGVtcyA9 IG5ld19uX3Rvb2xfYmFyOwotICAgICAgICAgICAgICB3LT51cGRhdGVfbW9kZV9saW5lID0g UXQ7CisgICAgICAgICAgICAgIHctPnVwZGF0ZV9tb2RlX2xpbmUgPSAxOwogICAgICAgICAg ICAgICBVTkJMT0NLX0lOUFVUOwogICAgICAgICAgICAgfQogCkBAIC0xMjk1MCw5ICsxMjk1 MCw5IEBACiAgICAgdXBkYXRlX21vZGVfbGluZXMrKzsKIAogICAvKiBEZXRlY3QgY2FzZSB0 aGF0IHdlIG5lZWQgdG8gd3JpdGUgb3IgcmVtb3ZlIGEgc3RhciBpbiB0aGUgbW9kZSBsaW5l LiAgKi8KLSAgaWYgKChTQVZFX01PRElGRiA8IE1PRElGRikgIT0gIU5JTFAgKHctPmxhc3Rf aGFkX3N0YXIpKQorICBpZiAoKFNBVkVfTU9ESUZGIDwgTU9ESUZGKSAhPSB3LT5sYXN0X2hh ZF9zdGFyKQogICAgIHsKLSAgICAgIHctPnVwZGF0ZV9tb2RlX2xpbmUgPSBRdDsKKyAgICAg IHctPnVwZGF0ZV9tb2RlX2xpbmUgPSAxOwogICAgICAgaWYgKGJ1ZmZlcl9zaGFyZWQgPiAx KQogCXVwZGF0ZV9tb2RlX2xpbmVzKys7CiAgICAgfQpAQCAtMTI5NjksNyArMTI5NjksNyBA QAogCSAgICYmIFhGQVNUSU5UICh3LT5sYXN0X21vZGlmaWVkKSA+PSBNT0RJRkYKIAkgICAm JiBYRkFTVElOVCAody0+bGFzdF9vdmVybGF5X21vZGlmaWVkKSA+PSBPVkVSTEFZX01PRElG RikKICAgICAgICYmIChYRkFTVElOVCAody0+Y29sdW1uX251bWJlcl9kaXNwbGF5ZWQpICE9 IGN1cnJlbnRfY29sdW1uICgpKSkKLSAgICB3LT51cGRhdGVfbW9kZV9saW5lID0gUXQ7Cisg ICAgdy0+dXBkYXRlX21vZGVfbGluZSA9IDE7CiAKICAgdW5iaW5kX3RvIChjb3VudDEsIFFu aWwpOwogCkBAIC0xMzA3Miw3ICsxMzA3Miw3IEBACiAgIHRsZW5kcG9zID0gdGhpc19saW5l X2VuZF9wb3M7CiAgIGlmICghY29uc2lkZXJfYWxsX3dpbmRvd3NfcAogICAgICAgJiYgQ0hB UlBPUyAodGxidWZwb3MpID4gMAotICAgICAgJiYgTklMUCAody0+dXBkYXRlX21vZGVfbGlu ZSkKKyAgICAgICYmICF3LT51cGRhdGVfbW9kZV9saW5lCiAgICAgICAmJiAhY3VycmVudF9i dWZmZXItPmNsaXBfY2hhbmdlZAogICAgICAgJiYgIWN1cnJlbnRfYnVmZmVyLT5wcmV2ZW50 X3JlZGlzcGxheV9vcHRpbWl6YXRpb25zX3AKICAgICAgICYmIEZSQU1FX1ZJU0lCTEVfUCAo WEZSQU1FICh3LT5mcmFtZSkpCkBAIC0xMzA4MCw4ICsxMzA4MCw4IEBACiAgICAgICAvKiBN YWtlIHN1cmUgcmVjb3JkZWQgZGF0YSBhcHBsaWVzIHRvIGN1cnJlbnQgYnVmZmVyLCBldGMu ICAqLwogICAgICAgJiYgdGhpc19saW5lX2J1ZmZlciA9PSBjdXJyZW50X2J1ZmZlcgogICAg ICAgJiYgY3VycmVudF9idWZmZXIgPT0gWEJVRkZFUiAody0+YnVmZmVyKQotICAgICAgJiYg TklMUCAody0+Zm9yY2Vfc3RhcnQpCi0gICAgICAmJiBOSUxQICh3LT5vcHRpb25hbF9uZXdf c3RhcnQpCisgICAgICAmJiAhdy0+Zm9yY2Vfc3RhcnQKKyAgICAgICYmICF3LT5vcHRpb25h bF9uZXdfc3RhcnQKICAgICAgIC8qIFBvaW50IG11c3QgYmUgb24gdGhlIGxpbmUgdGhhdCB3 ZSBoYXZlIGluZm8gcmVjb3JkZWQgYWJvdXQuICAqLwogICAgICAgJiYgUFQgPj0gQ0hBUlBP UyAodGxidWZwb3MpCiAgICAgICAmJiBQVCA8PSBaIC0gQ0hBUlBPUyAodGxlbmRwb3MpCkBA IC0xMzYxNiw3ICsxMzYxNiw3IEBACiAgICAgICB3LT5sYXN0X292ZXJsYXlfbW9kaWZpZWQK IAk9IG1ha2VfbnVtYmVyIChhY2N1cmF0ZV9wID8gQlVGX09WRVJMQVlfTU9ESUZGIChiKSA6 IDApOwogICAgICAgdy0+bGFzdF9oYWRfc3RhcgotCT0gQlVGX01PRElGRiAoYikgPiBCVUZf U0FWRV9NT0RJRkYgKGIpID8gUXQgOiBRbmlsOworCT0gQlVGX01PRElGRiAoYikgPiBCVUZf U0FWRV9NT0RJRkYgKGIpOwogCiAgICAgICBpZiAoYWNjdXJhdGVfcCkKIAl7CkBAIC0xMzY0 NSw3ICsxMzY0NSw3IEBACiAgIGlmIChhY2N1cmF0ZV9wKQogICAgIHsKICAgICAgIHctPndp bmRvd19lbmRfdmFsaWQgPSB3LT5idWZmZXI7Ci0gICAgICB3LT51cGRhdGVfbW9kZV9saW5l ID0gUW5pbDsKKyAgICAgIHctPnVwZGF0ZV9tb2RlX2xpbmUgPSAwOwogICAgIH0KIH0KIApA QCAtMTUyNzQsNyArMTUyNzQsNyBAQAogICByZWNvbnNpZGVyX2NsaXBfY2hhbmdlcyAodywg YnVmZmVyKTsKIAogICAvKiBIYXMgdGhlIG1vZGUgbGluZSB0byBiZSB1cGRhdGVkPyAgKi8K LSAgdXBkYXRlX21vZGVfbGluZSA9ICghTklMUCAody0+dXBkYXRlX21vZGVfbGluZSkKKyAg dXBkYXRlX21vZGVfbGluZSA9ICh3LT51cGRhdGVfbW9kZV9saW5lCiAJCSAgICAgIHx8IHVw ZGF0ZV9tb2RlX2xpbmVzCiAJCSAgICAgIHx8IGJ1ZmZlci0+Y2xpcF9jaGFuZ2VkCiAJCSAg ICAgIHx8IGJ1ZmZlci0+cHJldmVudF9yZWRpc3BsYXlfb3B0aW1pemF0aW9uc19wKTsKQEAg LTE1NDQ2LDMyICsxNTQ0NiwzMSBAQAogCiAgIC8qIElmIHNvbWVvbmUgc3BlY2lmaWVkIGEg bmV3IHN0YXJ0aW5nIHBvaW50IGJ1dCBkaWQgbm90IGluc2lzdCwKICAgICAgY2hlY2sgd2hl dGhlciBpdCBjYW4gYmUgdXNlZC4gICovCi0gIGlmICghTklMUCAody0+b3B0aW9uYWxfbmV3 X3N0YXJ0KQorICBpZiAody0+b3B0aW9uYWxfbmV3X3N0YXJ0CiAgICAgICAmJiBDSEFSUE9T IChzdGFydHApID49IEJFR1YKICAgICAgICYmIENIQVJQT1MgKHN0YXJ0cCkgPD0gWlYpCiAg ICAgewotICAgICAgdy0+b3B0aW9uYWxfbmV3X3N0YXJ0ID0gUW5pbDsKKyAgICAgIHctPm9w dGlvbmFsX25ld19zdGFydCA9IDA7CiAgICAgICBzdGFydF9kaXNwbGF5ICgmaXQsIHcsIHN0 YXJ0cCk7CiAgICAgICBtb3ZlX2l0X3RvICgmaXQsIFBULCAwLCBpdC5sYXN0X3Zpc2libGVf eSwgLTEsCiAJCSAgTU9WRV9UT19QT1MgfCBNT1ZFX1RPX1ggfCBNT1ZFX1RPX1kpOwogICAg ICAgaWYgKElUX0NIQVJQT1MgKGl0KSA9PSBQVCkKLQl3LT5mb3JjZV9zdGFydCA9IFF0Owor CXctPmZvcmNlX3N0YXJ0ID0gMTsKICAgICAgIC8qIElUIG1heSBvdmVyc2hvb3QgUFQgaWYg dGV4dCBhdCBQVCBpcyBpbnZpc2libGUuICAqLwogICAgICAgZWxzZSBpZiAoSVRfQ0hBUlBP UyAoaXQpID4gUFQgJiYgQ0hBUlBPUyAoc3RhcnRwKSA8PSBQVCkKLQl3LT5mb3JjZV9zdGFy dCA9IFF0OworCXctPmZvcmNlX3N0YXJ0ID0gMTsKICAgICB9CiAKICBmb3JjZV9zdGFydDoK IAogICAvKiBIYW5kbGUgY2FzZSB3aGVyZSBwbGFjZSB0byBzdGFydCBkaXNwbGF5aW5nIGhh cyBiZWVuIHNwZWNpZmllZCwKICAgICAgdW5sZXNzIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24g aXMgb3V0c2lkZSB0aGUgYWNjZXNzaWJsZSByYW5nZS4gICovCi0gIGlmICghTklMUCAody0+ Zm9yY2Vfc3RhcnQpCi0gICAgICB8fCB3LT5mcm96ZW5fd2luZG93X3N0YXJ0X3ApCisgIGlm ICh3LT5mb3JjZV9zdGFydCB8fCB3LT5mcm96ZW5fd2luZG93X3N0YXJ0X3ApCiAgICAgewog ICAgICAgLyogV2Ugc2V0IHRoaXMgbGF0ZXIgb24gaWYgd2UgaGF2ZSB0byBhZGp1c3QgcG9p bnQuICAqLwogICAgICAgaW50IG5ld192cG9zID0gLTE7CiAKLSAgICAgIHctPmZvcmNlX3N0 YXJ0ID0gUW5pbDsKKyAgICAgIHctPmZvcmNlX3N0YXJ0ID0gMDsKICAgICAgIHctPnZzY3Jv bGwgPSAwOwogICAgICAgdy0+d2luZG93X2VuZF92YWxpZCA9IFFuaWw7CiAKQEAgLTE1NDkw LDcgKzE1NDg5LDcgQEAKIAkgIHx8ICEgTklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rpb25z KSkKIAl7CiAJICB1cGRhdGVfbW9kZV9saW5lID0gMTsKLQkgIHctPnVwZGF0ZV9tb2RlX2xp bmUgPSBRdDsKKwkgIHctPnVwZGF0ZV9tb2RlX2xpbmUgPSAxOwogCSAgc3RhcnRwID0gcnVu X3dpbmRvd19zY3JvbGxfZnVuY3Rpb25zICh3aW5kb3csIHN0YXJ0cCk7CiAJfQogCkBAIC0x NTUwOCw3ICsxNTUwNyw3IEBACiAJIHRoZSBzY3JvbGwgbWFyZ2luIChidWcjMTQ4KSAtLSBj eWQgICovCiAgICAgICBpZiAoIXRyeV93aW5kb3cgKHdpbmRvdywgc3RhcnRwLCAwKSkKIAl7 Ci0JICB3LT5mb3JjZV9zdGFydCA9IFF0OworCSAgdy0+Zm9yY2Vfc3RhcnQgPSAxOwogCSAg Y2xlYXJfZ2x5cGhfbWF0cml4ICh3LT5kZXNpcmVkX21hdHJpeCk7CiAJICBnb3RvIG5lZWRf bGFyZ2VyX21hdHJpY2VzOwogCX0KQEAgLTE1NTg3LDcgKzE1NTg2LDcgQEAKICAgICB9CiAg IC8qIElmIGN1cnJlbnQgc3RhcnRpbmcgcG9pbnQgd2FzIG9yaWdpbmFsbHkgdGhlIGJlZ2lu bmluZyBvZiBhIGxpbmUKICAgICAgYnV0IG5vIGxvbmdlciBpcywgZmluZCBhIG5ldyBzdGFy dGluZyBwb2ludC4gICovCi0gIGVsc2UgaWYgKCFOSUxQICh3LT5zdGFydF9hdF9saW5lX2Jl ZykKKyAgZWxzZSBpZiAody0+c3RhcnRfYXRfbGluZV9iZWcKIAkgICAmJiAhKENIQVJQT1Mg KHN0YXJ0cCkgPD0gQkVHVgogCQl8fCBGRVRDSF9CWVRFIChCWVRFUE9TIChzdGFydHApIC0g MSkgPT0gJ1xuJykpCiAgICAgewpAQCAtMTU2MzQsNyArMTU2MzMsNyBAQAogCSBuZXcgd2lu ZG93IHN0YXJ0LCBzaW5jZSB0aGF0IHdvdWxkIGNoYW5nZSB0aGUgcG9zaXRpb24gdW5kZXIK IAkgdGhlIG1vdXNlLCByZXN1bHRpbmcgaW4gYW4gdW53YW50ZWQgbW91c2UtbW92ZW1lbnQg cmF0aGVyCiAJIHRoYW4gYSBzaW1wbGUgbW91c2UtY2xpY2suICAqLwotICAgICAgaWYgKE5J TFAgKHctPnN0YXJ0X2F0X2xpbmVfYmVnKQorICAgICAgaWYgKCF3LT5zdGFydF9hdF9saW5l X2JlZwogCSAgJiYgTklMUCAoZG9fbW91c2VfdHJhY2tpbmcpCiAgICAgICAJICAmJiBDSEFS UE9TIChzdGFydHApID4gQkVHVgogCSAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA+IEJFRyArIGJl Z191bmNoYW5nZWQKQEAgLTE1NjU0LDcgKzE1NjUzLDcgQEAKIAkgICAgIFNlZSBidWcjOTMy NC4gICovCiAJICAmJiBwb3NfdmlzaWJsZV9wICh3LCBQVCwgJmQxLCAmZDIsICZkMywgJmQ0 LCAmZDUsICZkNikpCiAJewotCSAgdy0+Zm9yY2Vfc3RhcnQgPSBRdDsKKwkgIHctPmZvcmNl X3N0YXJ0ID0gMTsKIAkgIFNFVF9URVhUX1BPU19GUk9NX01BUktFUiAoc3RhcnRwLCB3LT5z dGFydCk7CiAJICBnb3RvIGZvcmNlX3N0YXJ0OwogICAgICAgCX0KQEAgLTE1NzE1LDcgKzE1 NzE0LDcgQEAKICAgaWYgKCF1cGRhdGVfbW9kZV9saW5lKQogICAgIHsKICAgICAgIHVwZGF0 ZV9tb2RlX2xpbmUgPSAxOwotICAgICAgdy0+dXBkYXRlX21vZGVfbGluZSA9IFF0OworICAg ICAgdy0+dXBkYXRlX21vZGVfbGluZSA9IDE7CiAgICAgfQogCiAgIC8qIFRyeSB0byBzY3Jv bGwgYnkgc3BlY2lmaWVkIGZldyBsaW5lcy4gICovCkBAIC0xNTk3MCw5ICsxNTk2OSw4IEBA CiAgZG9uZToKIAogICBTRVRfVEVYVF9QT1NfRlJPTV9NQVJLRVIgKHN0YXJ0cCwgdy0+c3Rh cnQpOwotICB3LT5zdGFydF9hdF9saW5lX2JlZyA9ICgoQ0hBUlBPUyAoc3RhcnRwKSA9PSBC RUdWCi0JCQkgICB8fCBGRVRDSF9CWVRFIChCWVRFUE9TIChzdGFydHApIC0gMSkgPT0gJ1xu JykKLQkJCSAgPyBRdCA6IFFuaWwpOworICB3LT5zdGFydF9hdF9saW5lX2JlZyA9IChDSEFS UE9TIChzdGFydHApID09IEJFR1YKKwkJCSAgICB8fCBGRVRDSF9CWVRFIChCWVRFUE9TIChz dGFydHApIC0gMSkgPT0gJ1xuJyk7CiAKICAgLyogRGlzcGxheSB0aGUgbW9kZSBsaW5lLCBp ZiB3ZSBtdXN0LiAgKi8KICAgaWYgKCh1cGRhdGVfbW9kZV9saW5lCkBAIC0xNjE4OSw3ICsx NjE4Nyw3IEBACiAgIC8qIElmIGJvdHRvbSBtb3ZlZCBvZmYgZW5kIG9mIGZyYW1lLCBjaGFu Z2UgbW9kZSBsaW5lIHBlcmNlbnRhZ2UuICAqLwogICBpZiAoWEZBU1RJTlQgKHctPndpbmRv d19lbmRfcG9zKSA8PSAwCiAgICAgICAmJiBaICE9IElUX0NIQVJQT1MgKGl0KSkKLSAgICB3 LT51cGRhdGVfbW9kZV9saW5lID0gUXQ7CisgICAgdy0+dXBkYXRlX21vZGVfbGluZSA9IDE7 CiAKICAgLyogU2V0IHdpbmRvd19lbmRfcG9zIHRvIHRoZSBvZmZzZXQgb2YgdGhlIGxhc3Qg Y2hhcmFjdGVyIGRpc3BsYXllZAogICAgICBvbiB0aGUgd2luZG93IGZyb20gdGhlIGVuZCBv ZiBjdXJyZW50X2J1ZmZlci4gIFNldAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy94Zm5zLmMn Ci0tLSBzcmMveGZucy5jCTIwMTItMDUtMTkgMjE6NDY6NDMgKzAwMDAKKysrIHNyYy94Zm5z LmMJMjAxMi0wNS0yMyAwMzo1MDoxNiArMDAwMApAQCAtMTIxNSw3ICsxMjE1LDcgQEAKICAg ICAgIEZSQU1FX0VYVEVSTkFMX01FTlVfQkFSIChmKSA9IDE7CiAgICAgICBpZiAoRlJBTUVf WF9QIChmKSAmJiBmLT5vdXRwdXRfZGF0YS54LT5tZW51YmFyX3dpZGdldCA9PSAwKQogCS8q IE1ha2Ugc3VyZSBuZXh0IHJlZGlzcGxheSBzaG93cyB0aGUgbWVudSBiYXIuICAqLwotCVhX SU5ET1cgKEZSQU1FX1NFTEVDVEVEX1dJTkRPVyAoZikpLT51cGRhdGVfbW9kZV9saW5lID0g UXQ7CisJWFdJTkRPVyAoRlJBTUVfU0VMRUNURURfV0lORE9XIChmKSktPnVwZGF0ZV9tb2Rl X2xpbmUgPSAxOwogICAgIH0KICAgZWxzZQogICAgIHsKCg== --------------010505010909040804020604--