Received: from makus.postgresql.org (makus.postgresql.org [98.129.198.125]) by mail.postgresql.org (Postfix) with ESMTP id DF59B1AEBA92 for ; Tue, 24 Jan 2012 08:39:12 -0400 (AST) Received: from exprod7og113.obsmtp.com ([64.18.2.179]) by makus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1Rpfdt-0001Dh-DX for pgsql-hackers@postgresql.org; Tue, 24 Jan 2012 12:39:12 +0000 Received: from mail-lpp01m010-f50.google.com ([209.85.215.50]) (using TLSv1) by exprod7ob113.postini.com ([64.18.6.12]) with SMTP ID DSNKTx6mNXT2Uy+ZrAnUHyuW2/keAfgOBqZj@postini.com; Tue, 24 Jan 2012 04:38:26 PST Received: by lahm13 with SMTP id m13so1654879lah.37 for ; Tue, 24 Jan 2012 04:38:11 -0800 (PST) Received: by 10.152.136.20 with SMTP id pw20mr6485502lab.32.1327408691618; Tue, 24 Jan 2012 04:38:11 -0800 (PST) Received: from [192.168.1.102] (dsl-hkibrasgw2-ff6cc300-200.dhcp.inet.fi. [88.195.108.200]) by mx.google.com with ESMTPS id nt7sm13251170lab.15.2012.01.24.04.38.05 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 24 Jan 2012 04:38:07 -0800 (PST) Message-ID: <4F1EA62C.8010203@enterprisedb.com> Date: Tue, 24 Jan 2012 14:38:04 +0200 From: Heikki Linnakangas User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20120104 Icedove/8.0 MIME-Version: 1.0 To: Jim Mlodgenski CC: Fujii Masao , pgsql-hackers@postgresql.org Subject: Re: Client Messages References: <4F167E08.9030802@enterprisedb.com> In-Reply-To: X-Gm-Message-State: ALoCoQkE0+ezId1sjt30eY0isUsPZ6jCd7fuIbrAq3PINLNbOM871FK2v3aLFP2mOj6Bd1UbEbqY Content-Type: multipart/mixed; boundary="------------030402070506030906030907" X-Pg-Spam-Score: -4.2 (----) X-Archive-Number: 201201/1367 X-Sequence-Number: 201954 This is a multi-part message in MIME format. --------------030402070506030906030907 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 23.01.2012 22:52, Jim Mlodgenski wrote: > On Wed, Jan 18, 2012 at 9:19 AM, Jim Mlodgenski wrote: >> On Wed, Jan 18, 2012 at 3:08 AM, Heikki Linnakangas >>> I don't think that's a problem, it's just a free-form message to display. >>> But it also doesn't seem very useful to have it PGC_USERSET: if it's only >>> displayed at connect time, there's no point in changing it after connecting. >> Should we make it PGC_BACKEND? In hindsight, making it PGC_BACKEND makes it much less useful, because then you can't set it on a per-database basis with "ALTER DATABASE foo SET ..." So I made it PGC_USERSET again. > Here is the revised patch based on the feedback. Thanks! I renamed the GUC to "welcome_message", to avoid confusion with "client_min_messages". I also moved it to "Connection Settings" category. Although it's technically settable within a session, the purpose is to display a message when connecting, so "Connection Settings" feels more fitting. There's one little problem remaining with this, which is what to do if the message is in a different encoding than used by the client? That's not a new problem, we have the same problem with any string GUC, if you do "SHOW ". We restricted application_name to ASCII characters, which is an obvious way to avoid the problem, but I think it would be a shame to restrict this to ASCII-only. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com --------------030402070506030906030907 Content-Type: text/x-diff; name="welcome_message-v3.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="welcome_message-v3.patch" Y29tbWl0IGIwZjg0NWI5MzExODc1ZWQyZDQ3ZTI4NWRiN2Q1NDJmZjI2ZWVhYmIKQXV0aG9y OiBIZWlra2kgTGlubmFrYW5nYXMgPGhlaWtraS5saW5uYWthbmdhc0Bpa2kuZmk+CkRhdGU6 ICAgVHVlIEphbiAyNCAxNDowNjowNSAyMDEyICswMjAwCgogICAgQWRkIHdlbGNvbWVfbWVz c2FnZSBHVUMsIGEgZnJlZS1mb3JtIG1lc3NhZ2UgdG8gZGlzcGxheSBhdCBwc3FsIGxvZ2lu LgogICAgCiAgICBTdWNoIGEgYmFubmVyIGNhbiBiZSB1c2VmdWwgdG8gcmVtaW5kaW5nIHBl b3BsZSB0byBiZSBjYXJlZnVsIHdoZW4gY29ubmVjdGluZwogICAgdG8gYSBwcm9kdWN0aW9u IGRhdGFiYXNlLCBmb3IgZXhhbXBsZS4KICAgIAogICAgSmltIE1sb2RnZW5za2kKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwKaW5kZXggZTU1YjUwMy4uNzJiOGI0NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtNTU4LDYg KzU1OCwxOSBAQCBTRVQgRU5BQkxFX1NFUVNDQU4gVE8gT0ZGOwogICAgICAgPC9saXN0aXRl bT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3Vj LXdlbGNvbWUtbWVzc2FnZSIgeHJlZmxhYmVsPSJ3ZWxjb21lX21lc3NhZ2UiPgorICAgICAg PHRlcm0+PHZhcm5hbWU+d2VsY29tZV9tZXNzYWdlPC92YXJuYW1lPiAoPHR5cGU+c3RyaW5n PC90eXBlPik8L3Rlcm0+CisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5Pjx2 YXJuYW1lPndlbGNvbWVfbWVzc2FnZTwvPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJp bWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxw YXJhPgorICAgICAgICBBIG1lc3NhZ2UgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCB3aGVuIGNv bm5lY3Rpbmcgd2l0aAorICAgICAgICA8YXBwbGljYXRpb24+cHNxbDwvPiwgb3IgYW55IG90 aGVyIGNsaWVudCBhcHBsaWNhdGlvbiB0aGF0IHN1cHBvcnRzIGl0LgorICAgICAgIDwvcGFy YT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2 YXJsaXN0ZW50cnkgaWQ9Imd1Yy10Y3Ata2VlcGFsaXZlcy1pZGxlIiB4cmVmbGFiZWw9InRj cF9rZWVwYWxpdmVzX2lkbGUiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+dGNwX2tlZXBhbGl2 ZXNfaWRsZTwvdmFybmFtZT4gKDx0eXBlPmludGVnZXI8L3R5cGU+KTwvdGVybT4KICAgICAg IDxpbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9saWJwcS5zZ21sCmluZGV4IDcyYzkzODQuLjY1NzM5MDEgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9saWJwcS5z Z21sCkBAIC0xNDg3LDYgKzE0ODcsNyBAQCBjb25zdCBjaGFyICpQUXBhcmFtZXRlclN0YXR1 cyhjb25zdCBQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnBhcmFtTmFtZSk7CiAgICAgICAg PHZhcm5hbWU+c2VydmVyX2VuY29kaW5nPC8+LAogICAgICAgIDx2YXJuYW1lPmNsaWVudF9l bmNvZGluZzwvPiwKICAgICAgICA8dmFybmFtZT5hcHBsaWNhdGlvbl9uYW1lPC8+LAorICAg ICAgIDx2YXJuYW1lPndlbGNvbWVfbWVzc2FnZTwvPiwKICAgICAgICA8dmFybmFtZT5pc19z dXBlcnVzZXI8Lz4sCiAgICAgICAgPHZhcm5hbWU+c2Vzc2lvbl9hdXRob3JpemF0aW9uPC8+ LAogICAgICAgIDx2YXJuYW1lPkRhdGVTdHlsZTwvPiwKQEAgLTE0OTksNyArMTUwMCw4IEBA IGNvbnN0IGNoYXIgKlBRcGFyYW1ldGVyU3RhdHVzKGNvbnN0IFBHY29ubiAqY29ubiwgY29u c3QgY2hhciAqcGFyYW1OYW1lKTsKICAgICAgICA8dmFybmFtZT5zdGFuZGFyZF9jb25mb3Jt aW5nX3N0cmluZ3M8Lz4gd2FzIG5vdCByZXBvcnRlZCBieSByZWxlYXNlcwogICAgICAgIGJl Zm9yZSA4LjE7CiAgICAgICAgPHZhcm5hbWU+SW50ZXJ2YWxTdHlsZTwvPiB3YXMgbm90IHJl cG9ydGVkIGJ5IHJlbGVhc2VzIGJlZm9yZSA4LjQ7Ci0gICAgICAgPHZhcm5hbWU+YXBwbGlj YXRpb25fbmFtZTwvPiB3YXMgbm90IHJlcG9ydGVkIGJ5IHJlbGVhc2VzIGJlZm9yZSA5LjAu KQorICAgICAgIDx2YXJuYW1lPmFwcGxpY2F0aW9uX25hbWU8Lz4gd2FzIG5vdCByZXBvcnRl ZCBieSByZWxlYXNlcyBiZWZvcmUgOS4wOworICAgICAgIDx2YXJuYW1lPndlbGNvbWVfbWVz c2FnZTwvPiB3YXMgbm90IHJlcG9ydGVkIGJ5IHJlbGVhc2VzIGJlZm9yZSA5LjIuKQogICAg ICAgIE5vdGUgdGhhdAogICAgICAgIDx2YXJuYW1lPnNlcnZlcl92ZXJzaW9uPC8+LAogICAg ICAgIDx2YXJuYW1lPnNlcnZlcl9lbmNvZGluZzwvPiBhbmQKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5j CmluZGV4IDlmYzk2YjIuLmQ3ZjA0ZjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwpAQCAtNDQ1 LDYgKzQ0NSw5IEBAIGludAkJCXRjcF9rZWVwYWxpdmVzX2lkbGU7CiBpbnQJCQl0Y3Bfa2Vl cGFsaXZlc19pbnRlcnZhbDsKIGludAkJCXRjcF9rZWVwYWxpdmVzX2NvdW50OwogCisvKiBU aGlzIGlzIG5vdCBuZWVkZWQgb3V0c2lkZSB0aGlzIG1vZHVsZSAqLworc3RhdGljIGNoYXIg KndlbGNvbWVfbWVzc2FnZTsKKwogLyoKICAqIFRoZXNlIHZhcmlhYmxlcyBhcmUgYWxsIGR1 bW1pZXMgdGhhdCBkb24ndCBkbyBhbnl0aGluZywgZXhjZXB0IGluIHNvbWUKICAqIGNhc2Vz IHByb3ZpZGUgdGhlIHZhbHVlIGZvciBTSE9XIHRvIGRpc3BsYXkuICBUaGUgcmVhbCBzdGF0 ZSBpcyBlbHNld2hlcmUKQEAgLTMwMTgsNiArMzAyMSwxNyBAQCBzdGF0aWMgc3RydWN0IGNv bmZpZ19zdHJpbmcgQ29uZmlndXJlTmFtZXNTdHJpbmdbXSA9CiAJCWNoZWNrX2FwcGxpY2F0 aW9uX25hbWUsIGFzc2lnbl9hcHBsaWNhdGlvbl9uYW1lLCBOVUxMCiAJfSwKIAorCXsKKwkJ eyJ3ZWxjb21lX21lc3NhZ2UiLCBQR0NfVVNFUlNFVCwgQ09OTl9BVVRIX1NFVFRJTkdTLAor CQkgZ2V0dGV4dF9ub29wKCJNZXNzYWdlIGRpc3BsYXllZCB0byB0aGUgdXNlciB3aGVuIGNv bm5lY3RpbmcuIiksCisJCSBOVUxMLAorCQkgR1VDX1JFUE9SVCB8IEdVQ19OT19TSE9XX0FM TAorCQl9LAorCQkmd2VsY29tZV9tZXNzYWdlLAorCQkiIiwKKwkJTlVMTCwgTlVMTCwgTlVM TAorCX0sCisKIAkvKiBFbmQtb2YtbGlzdCBtYXJrZXIgKi8KIAl7CiAJCXtOVUxMLCAwLCAw LCBOVUxMLCBOVUxMfSwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IDMxNWRi NDYuLmJiZTExY2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKQEAgLTczLDYgKzczLDcgQEAKIAkJCQkJIyAoY2hhbmdlIHJlcXVp cmVzIHJlc3RhcnQpCiAjYm9uam91cl9uYW1lID0gJycJCQkjIGRlZmF1bHRzIHRvIHRoZSBj b21wdXRlciBuYW1lCiAJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQorI3dlbGNv bWVfbWVzc2FnZSA9ICcnCQkJIyBtZXNzYWdlIGRpc3BsYXllZCBpbiBwc3FsIGFmdGVyIGxv Z2luCiAKICMgLSBTZWN1cml0eSBhbmQgQXV0aGVudGljYXRpb24gLQogCmRpZmYgLS1naXQg YS9zcmMvYmluL3BzcWwvY29tbWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwppbmRl eCA2YzNmMGFhLi5lZTlkNDQzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5j CisrKyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKQEAgLTE2NTMsNiArMTY1Myw4IEBAIGRv X2Nvbm5lY3QoY2hhciAqZGJuYW1lLCBjaGFyICp1c2VyLCBjaGFyICpob3N0LCBjaGFyICpw b3J0KQogCQllbHNlCiAJCQlwcmludGYoXygiWW91IGFyZSBub3cgY29ubmVjdGVkIHRvIGRh dGFiYXNlIFwiJXNcIiBhcyB1c2VyIFwiJXNcIi5cbiIpLAogCQkJCSAgIFBRZGIocHNldC5k YiksIFBRdXNlcihwc2V0LmRiKSk7CisKKwkJcHJpbnRXZWxjb21lTWVzc2FnZSgpOwogCX0K IAogCWlmIChvX2Nvbm4pCkBAIC0xNzA3LDYgKzE3MDksMjMgQEAgY29ubmVjdGlvbl93YXJu aW5ncyhib29sIGluX3N0YXJ0dXApCiAKIAogLyoKKyAqIHByaW50V2VsY29tZU1lc3NhZ2UK KyAqCisgKiBQcmludHMgd2VsY29tZV9tZXNzYWdlLCBpZiBhbnkKKyAqLwordm9pZAorcHJp bnRXZWxjb21lTWVzc2FnZSh2b2lkKQoreworCWNvbnN0IGNoYXIgKm1lc3NhZ2U7CisKKwlt ZXNzYWdlID0gUFFwYXJhbWV0ZXJTdGF0dXMocHNldC5kYiwgIndlbGNvbWVfbWVzc2FnZSIp OworCisJaWYgKG1lc3NhZ2UgJiYgbWVzc2FnZVswXSAhPSAnXDAnKQorCQlwcmludGYoXygi JXNcbiIpLCBtZXNzYWdlKTsKK30KKworCisvKgogICogcHJpbnRTU0xJbmZvCiAgKgogICog UHJpbnRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IFNTTCBjb25uZWN0aW9uLCBp ZiBTU0wgaXMgaW4gdXNlCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvY29tbWFuZC5oIGIv c3JjL2Jpbi9wc3FsL2NvbW1hbmQuaAppbmRleCBmMGJjZWEwLi5mOWRkN2Y1IDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5oCisrKyBiL3NyYy9iaW4vcHNxbC9jb21tYW5k LmgKQEAgLTM2LDYgKzM2LDggQEAgZXh0ZXJuIGJvb2wgZG9fcHNldChjb25zdCBjaGFyICpw YXJhbSwKIAogZXh0ZXJuIHZvaWQgY29ubmVjdGlvbl93YXJuaW5ncyhib29sIGluX3N0YXJ0 dXApOwogCitleHRlcm4gdm9pZCBwcmludFdlbGNvbWVNZXNzYWdlKHZvaWQpOworCiBleHRl cm4gdm9pZCBTeW5jVmFyaWFibGVzKHZvaWQpOwogCiBleHRlcm4gdm9pZCBVbnN5bmNWYXJp YWJsZXModm9pZCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jIGIvc3Jj L2Jpbi9wc3FsL3N0YXJ0dXAuYwppbmRleCA4YjE4NjRjLi43MDYyZGQ5IDEwMDY0NAotLS0g YS9zcmMvYmluL3BzcWwvc3RhcnR1cC5jCisrKyBiL3NyYy9iaW4vcHNxbC9zdGFydHVwLmMK QEAgLTMwMiw3ICszMDIsMTAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCiAJ CWNvbm5lY3Rpb25fd2FybmluZ3ModHJ1ZSk7CiAJCWlmICghcHNldC5xdWlldCAmJiAhcHNl dC5ub3R0eSkKKwkJewogCQkJcHJpbnRmKF8oIlR5cGUgXCJoZWxwXCIgZm9yIGhlbHAuXG5c biIpKTsKKwkJCXByaW50V2VsY29tZU1lc3NhZ2UoKTsKKwkJfQogCQlpZiAoIXBzZXQubm90 dHkpCiAJCQlpbml0aWFsaXplSW5wdXQob3B0aW9ucy5ub19yZWFkbGluZSA/IDAgOiAxKTsK IAkJaWYgKG9wdGlvbnMuYWN0aW9uX3N0cmluZykJCS8qIC1mIC0gd2FzIHVzZWQgKi8KCmNv bW1pdCBjMTcyYjdiMDJlNmY2MDA4ZDZkYWQ2NmRkZWU4ZjY3ZmFmMjIzYzViCkF1dGhvcjog U2ltb24gUmlnZ3MgPHNpbW9uQDJuZFF1YWRyYW50LmNvbT4KRGF0ZTogICBNb24gSmFuIDIz IDIzOjM3OjMyIDIwMTIgKzAwMDAKCiAgICBSZXNvbHZlIHRpbWluZyBpc3N1ZSB3aXRoIGxv Z2dpbmcgbG9ja3MgZm9yIEhvdCBTdGFuZGJ5LgogICAgV2UgbG9nIEFjY2Vzc0V4Y2x1c2l2 ZUxvY2tzIGZvciByZXBsYXkgb250byBzdGFuZGJ5IG5vZGVzLAogICAgYnV0IGJlY2F1c2Ug b2YgdGltaW5nIGlzc3VlcyBvbiBQcm9jQXJyYXkgaXQgaXMgcG9zc2libGUgdG8KICAgIGxv ZyBhIGxvY2sgdGhhdCBpcyBzdGlsbCBoZWxkIGJ5IGEganVzdCBjb21taXR0ZWQgdHJhbnNh Y3Rpb24KICAgIHRoYXQgaXMgdmVyeSBzb29uIHRvIGJlIHJlbW92ZWQuIFRvIGF2b2lkIGFu eSB0aW1pbmcgaXNzdWUgd2UKICAgIGF2b2lkIGFwcGx5aW5nIGxvY2tzIG1hZGUgYnkgdHJh bnNhY3Rpb25zIHdpdGggSW52YWxpZFhpZC4KICAgIAogICAgU2ltb24gUmlnZ3MsIGJ1ZyBy ZXBvcnQgVG9tIExhbmUsIGRpYWdub3NpcyBQYXZhbiBEZW9sYXNlZQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvcHJvY2FycmF5LmMKaW5kZXggNmVhMGEyOC4uZGMyNzY4YiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKKysrIGIvc3JjL2JhY2tl bmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKQEAgLTQ5OSw3ICs0OTksNyBAQCBQcm9jQXJy YXlBcHBseVJlY292ZXJ5SW5mbyhSdW5uaW5nVHJhbnNhY3Rpb25zIHJ1bm5pbmcpCiAJICog UmVtb3ZlIHN0YWxlIHRyYW5zYWN0aW9ucywgaWYgYW55LgogCSAqLwogCUV4cGlyZU9sZEtu b3duQXNzaWduZWRUcmFuc2FjdGlvbklkcyhydW5uaW5nLT5vbGRlc3RSdW5uaW5nWGlkKTsK LQlTdGFuZGJ5UmVsZWFzZU9sZExvY2tzKHJ1bm5pbmctPm9sZGVzdFJ1bm5pbmdYaWQpOwor CVN0YW5kYnlSZWxlYXNlT2xkTG9ja3MocnVubmluZy0+eGNudCwgcnVubmluZy0+eGlkcyk7 CiAKIAkvKgogCSAqIElmIG91ciBzbmFwc2hvdCBpcyBhbHJlYWR5IHZhbGlkLCBub3RoaW5n IGVsc2UgdG8gZG8uLi4KQEAgLTU1NCwxMiArNTU0LDYgQEAgUHJvY0FycmF5QXBwbHlSZWNv dmVyeUluZm8oUnVubmluZ1RyYW5zYWN0aW9ucyBydW5uaW5nKQogCSAqLwogCiAJLyoKLQkg KiBSZWxlYXNlIGFueSBsb2NrcyBiZWxvbmdpbmcgdG8gb2xkIHRyYW5zYWN0aW9ucyB0aGF0 IGFyZSBub3QgcnVubmluZwotCSAqIGFjY29yZGluZyB0byB0aGUgcnVubmluZy14YWN0cyBy ZWNvcmQuCi0JICovCi0JU3RhbmRieVJlbGVhc2VPbGRMb2NrcyhydW5uaW5nLT5uZXh0WGlk KTsKLQotCS8qCiAJICogTm9ib2R5IGVsc2UgaXMgcnVubmluZyB5ZXQsIGJ1dCB0YWtlIGxv Y2tzIGFueWhvdwogCSAqLwogCUxXTG9ja0FjcXVpcmUoUHJvY0FycmF5TG9jaywgTFdfRVhD TFVTSVZFKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnku YyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwppbmRleCBjODg1NTdjLi5k YzY4MzNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMK KysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCkBAIC01MjUsNyArNTI1 LDkgQEAgU3RhbmRieUFjcXVpcmVBY2Nlc3NFeGNsdXNpdmVMb2NrKFRyYW5zYWN0aW9uSWQg eGlkLCBPaWQgZGJPaWQsIE9pZCByZWxPaWQpCiAJTE9DS1RBRwkJbG9ja3RhZzsKIAogCS8q IEFscmVhZHkgcHJvY2Vzc2VkPyAqLwotCWlmIChUcmFuc2FjdGlvbklkRGlkQ29tbWl0KHhp ZCkgfHwgVHJhbnNhY3Rpb25JZERpZEFib3J0KHhpZCkpCisJaWYgKCFUcmFuc2FjdGlvbklk SXNWYWxpZCh4aWQpIHx8CisJCVRyYW5zYWN0aW9uSWREaWRDb21taXQoeGlkKSB8fAorCQlU cmFuc2FjdGlvbklkRGlkQWJvcnQoeGlkKSkKIAkJcmV0dXJuOwogCiAJZWxvZyh0cmFjZV9y ZWNvdmVyeShERUJVRzQpLApAQCAtNjA3LDM0ICs2MDksODYgQEAgU3RhbmRieVJlbGVhc2VM b2NrVHJlZShUcmFuc2FjdGlvbklkIHhpZCwgaW50IG5zdWJ4aWRzLCBUcmFuc2FjdGlvbklk ICpzdWJ4aWRzKQogfQogCiAvKgotICogU3RhbmRieVJlbGVhc2VMb2Nrc01hbnkKLSAqCQlS ZWxlYXNlIHN0YW5kYnkgbG9ja3MgaGVsZCBieSBYSURzIDwgcmVtb3ZlWGlkCi0gKgotICog SWYga2VlcFByZXBhcmVkWGFjdHMgaXMgdHJ1ZSwga2VlcCBwcmVwYXJlZCB0cmFuc2FjdGlv bnMgZXZlbiBpZgotICogdGhleSdyZSBvbGRlciB0aGFuIHJlbW92ZVhpZAorICogQ2FsbGVk IGF0IGVuZCBvZiByZWNvdmVyeSBhbmQgd2hlbiB3ZSBzZWUgYSBzaHV0ZG93biBjaGVja3Bv aW50LgogICovCi1zdGF0aWMgdm9pZAotU3RhbmRieVJlbGVhc2VMb2Nrc01hbnkoVHJhbnNh Y3Rpb25JZCByZW1vdmVYaWQsIGJvb2wga2VlcFByZXBhcmVkWGFjdHMpCit2b2lkCitTdGFu ZGJ5UmVsZWFzZUFsbExvY2tzKHZvaWQpCit7CisJTGlzdENlbGwgICAqY2VsbCwKKwkJCSAg ICpwcmV2LAorCQkJICAgKm5leHQ7CisJTE9DS1RBRwkJbG9ja3RhZzsKKworCWVsb2codHJh Y2VfcmVjb3ZlcnkoREVCVUcyKSwgInJlbGVhc2UgYWxsIHN0YW5kYnkgbG9ja3MiKTsKKwor CXByZXYgPSBOVUxMOworCWZvciAoY2VsbCA9IGxpc3RfaGVhZChSZWNvdmVyeUxvY2tMaXN0 KTsgY2VsbDsgY2VsbCA9IG5leHQpCisJeworCQl4bF9zdGFuZGJ5X2xvY2sgKmxvY2sgPSAo eGxfc3RhbmRieV9sb2NrICopIGxmaXJzdChjZWxsKTsKKworCQluZXh0ID0gbG5leHQoY2Vs bCk7CisKKwkJZWxvZyh0cmFjZV9yZWNvdmVyeShERUJVRzQpLAorCQkJICJyZWxlYXNpbmcg cmVjb3ZlcnkgbG9jazogeGlkICV1IGRiICV1IHJlbCAldSIsCisJCQkgbG9jay0+eGlkLCBs b2NrLT5kYk9pZCwgbG9jay0+cmVsT2lkKTsKKwkJU0VUX0xPQ0tUQUdfUkVMQVRJT04obG9j a3RhZywgbG9jay0+ZGJPaWQsIGxvY2stPnJlbE9pZCk7CisJCWlmICghTG9ja1JlbGVhc2Uo JmxvY2t0YWcsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2ssIHRydWUpKQorCQkJZWxvZyhMT0csCisJ CQkJICJSZWNvdmVyeUxvY2tMaXN0IGNvbnRhaW5zIGVudHJ5IGZvciBsb2NrIG5vIGxvbmdl ciByZWNvcmRlZCBieSBsb2NrIG1hbmFnZXI6IHhpZCAldSBkYXRhYmFzZSAldSByZWxhdGlv biAldSIsCisJCQkJIGxvY2stPnhpZCwgbG9jay0+ZGJPaWQsIGxvY2stPnJlbE9pZCk7CisJ CVJlY292ZXJ5TG9ja0xpc3QgPSBsaXN0X2RlbGV0ZV9jZWxsKFJlY292ZXJ5TG9ja0xpc3Qs IGNlbGwsIHByZXYpOworCQlwZnJlZShsb2NrKTsKKwl9Cit9CisKKy8qCisgKiBTdGFuZGJ5 UmVsZWFzZU9sZExvY2tzCisgKgkJUmVsZWFzZSBzdGFuZGJ5IGxvY2tzIGhlbGQgYnkgWElE cyB0aGF0IGFyZW4ndCBydW5uaW5nLCBhcyBsb25nCisgKgkJYXMgdGhleSdyZSBub3QgcHJl cGFyZWQgdHJhbnNhY3Rpb25zLgorICovCit2b2lkCitTdGFuZGJ5UmVsZWFzZU9sZExvY2tz KGludCBueGlkcywgVHJhbnNhY3Rpb25JZCAqeGlkcykKIHsKIAlMaXN0Q2VsbCAgICpjZWxs LAogCQkJICAgKnByZXYsCiAJCQkgICAqbmV4dDsKIAlMT0NLVEFHCQlsb2NrdGFnOwogCi0J LyoKLQkgKiBSZWxlYXNlIGFsbCBtYXRjaGluZyBsb2Nrcy4KLQkgKi8KIAlwcmV2ID0gTlVM TDsKIAlmb3IgKGNlbGwgPSBsaXN0X2hlYWQoUmVjb3ZlcnlMb2NrTGlzdCk7IGNlbGw7IGNl bGwgPSBuZXh0KQogCXsKIAkJeGxfc3RhbmRieV9sb2NrICpsb2NrID0gKHhsX3N0YW5kYnlf bG9jayAqKSBsZmlyc3QoY2VsbCk7CisJCWJvb2wJcmVtb3ZlID0gZmFsc2U7CiAKIAkJbmV4 dCA9IGxuZXh0KGNlbGwpOwogCi0JCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQocmVtb3Zl WGlkKSB8fCBUcmFuc2FjdGlvbklkUHJlY2VkZXMobG9jay0+eGlkLCByZW1vdmVYaWQpKQor CQlBc3NlcnQoVHJhbnNhY3Rpb25JZElzVmFsaWQobG9jay0+eGlkKSk7CisKKwkJaWYgKFN0 YW5kYnlUcmFuc2FjdGlvbklkSXNQcmVwYXJlZChsb2NrLT54aWQpKQorCQkJcmVtb3ZlID0g ZmFsc2U7CisJCWVsc2UKKwkJeworCQkJaW50CQlpOworCQkJYm9vbAlmb3VuZCA9IGZhbHNl OworCisJCQlmb3IgKGkgPSAwOyBpIDwgbnhpZHM7IGkrKykKKwkJCXsKKwkJCQlpZiAobG9j ay0+eGlkID09IHhpZHNbaV0pCisJCQkJeworCQkJCQlmb3VuZCA9IHRydWU7CisJCQkJCWJy ZWFrOworCQkJCX0KKwkJCX0KKworCQkJLyoKKwkJCSAqIElmIGl0cyBub3QgYSBydW5uaW5n IHRyYW5zYWN0aW9uLCByZW1vdmUgaXQuCisJCQkgKi8KKwkJCWlmICghZm91bmQpCisJCQkJ cmVtb3ZlID0gdHJ1ZTsKKwkJfQorCisJCWlmIChyZW1vdmUpCiAJCXsKLQkJCWlmIChrZWVw UHJlcGFyZWRYYWN0cyAmJiBTdGFuZGJ5VHJhbnNhY3Rpb25JZElzUHJlcGFyZWQobG9jay0+ eGlkKSkKLQkJCQljb250aW51ZTsKIAkJCWVsb2codHJhY2VfcmVjb3ZlcnkoREVCVUc0KSwK IAkJCQkgInJlbGVhc2luZyByZWNvdmVyeSBsb2NrOiB4aWQgJXUgZGIgJXUgcmVsICV1IiwK IAkJCQkgbG9jay0+eGlkLCBsb2NrLT5kYk9pZCwgbG9jay0+cmVsT2lkKTsKQEAgLTY1Miwy NyArNzA2LDYgQEAgU3RhbmRieVJlbGVhc2VMb2Nrc01hbnkoVHJhbnNhY3Rpb25JZCByZW1v dmVYaWQsIGJvb2wga2VlcFByZXBhcmVkWGFjdHMpCiB9CiAKIC8qCi0gKiBDYWxsZWQgYXQg ZW5kIG9mIHJlY292ZXJ5IGFuZCB3aGVuIHdlIHNlZSBhIHNodXRkb3duIGNoZWNrcG9pbnQu Ci0gKi8KLXZvaWQKLVN0YW5kYnlSZWxlYXNlQWxsTG9ja3Modm9pZCkKLXsKLQllbG9nKHRy YWNlX3JlY292ZXJ5KERFQlVHMiksICJyZWxlYXNlIGFsbCBzdGFuZGJ5IGxvY2tzIik7Ci0J U3RhbmRieVJlbGVhc2VMb2Nrc01hbnkoSW52YWxpZFRyYW5zYWN0aW9uSWQsIGZhbHNlKTsK LX0KLQotLyoKLSAqIFN0YW5kYnlSZWxlYXNlT2xkTG9ja3MKLSAqCQlSZWxlYXNlIHN0YW5k YnkgbG9ja3MgaGVsZCBieSBYSURzIDwgcmVtb3ZlWGlkLCBhcyBsb25nCi0gKgkJYXMgdGhl eSdyZSBub3QgcHJlcGFyZWQgdHJhbnNhY3Rpb25zLgotICovCi12b2lkCi1TdGFuZGJ5UmVs ZWFzZU9sZExvY2tzKFRyYW5zYWN0aW9uSWQgcmVtb3ZlWGlkKQotewotCVN0YW5kYnlSZWxl YXNlTG9ja3NNYW55KHJlbW92ZVhpZCwgdHJ1ZSk7Ci19Ci0KLS8qCiAgKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICoJCVJlY292ZXJ5IGhhbmRsaW5nIGZvciBSbWdyIFJNX1NUQU5EQllfSUQKICAq CkBAIC04MTMsNiArODQ2LDEzIEBAIHN0YW5kYnlfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgdWlu dDggeGxfaW5mbywgY2hhciAqcmVjKQogICogTGF0ZXIsIHdoZW4gd2UgYXBwbHkgdGhlIHJ1 bm5pbmcgeGFjdCBkYXRhIHdlIG11c3QgYmUgY2FyZWZ1bCB0byBpZ25vcmUKICAqIHRyYW5z YWN0aW9ucyBhbHJlYWR5IGNvbW1pdHRlZCwgc2luY2UgdGhvc2UgY29tbWl0cyByYWNlZCBh aGVhZCB3aGVuCiAgKiBtYWtpbmcgV0FMIGVudHJpZXMuCisgKgorICogVGhlIGxvb3NlIHRp bWluZyBhbHNvIG1lYW5zIHRoYXQgbG9ja3MgbWF5IGJlIHJlY29yZGVkIHRoYXQgaGF2ZSBh CisgKiB6ZXJvIHhpZCwgc2luY2UgeGlkcyBhcmUgcmVtb3ZlZCBmcm9tIHByb2NzIGJlZm9y ZSBsb2NrcyBhcmUgcmVtb3ZlZC4KKyAqIFNvIHdlIG11c3QgcHJ1bmUgdGhlIGxvY2sgbGlz dCBkb3duIHRvIGVuc3VyZSB3ZSBob2xkIGxvY2tzIG9ubHkgZm9yCisgKiBjdXJyZW50bHkg cnVubmluZyB4aWRzLCBwZXJmb3JtZWQgYnkgU3RhbmRieVJlbGVhc2VPbGRMb2NrcygpLgor ICogWmVybyB4aWRzIHNob3VsZCBubyBsb25nZXIgYmUgcG9zc2libGUsIGJ1dCB3ZSBtYXkg YmUgcmVwbGF5aW5nIFdBTAorICogZnJvbSBhIHRpbWUgd2hlbiB0aGV5IHdlcmUgcG9zc2li bGUuCiAgKi8KIHZvaWQKIExvZ1N0YW5kYnlTbmFwc2hvdChUcmFuc2FjdGlvbklkICpuZXh0 WGlkKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYyBiL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sb2NrLmMKaW5kZXggNzYyMjk0YS4uYTk4ZGZjYSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYworKysgYi9zcmMv YmFja2VuZC9zdG9yYWdlL2xtZ3IvbG9jay5jCkBAIC0zMTkwLDggKzMxOTAsMTggQEAgR2V0 UnVubmluZ1RyYW5zYWN0aW9uTG9ja3MoaW50ICpubG9ja3MpCiAJCQlQR1BST0MJICAgKnBy b2MgPSBwcm9jbG9jay0+dGFnLm15UHJvYzsKIAkJCVBHWEFDVAkgICAqcGd4YWN0ID0gJlBy b2NHbG9iYWwtPmFsbFBnWGFjdFtwcm9jLT5wZ3Byb2Nub107CiAJCQlMT0NLCSAgICpsb2Nr ID0gcHJvY2xvY2stPnRhZy5teUxvY2s7CisJCQlUcmFuc2FjdGlvbklkIHhpZCA9IHBneGFj dC0+eGlkOwogCi0JCQlhY2Nlc3NFeGNsdXNpdmVMb2Nrc1tpbmRleF0ueGlkID0gcGd4YWN0 LT54aWQ7CisJCQkvKgorCQkJICogRG9uJ3QgcmVjb3JkIGxvY2tzIGZvciB0cmFuc2FjdGlv bnMgaWYgd2Uga25vdyB0aGV5IGhhdmUgYWxyZWFkeQorCQkJICogaXNzdWVkIHRoZWlyIFdB TCByZWNvcmQgZm9yIGNvbW1pdCBidXQgbm90IHlldCByZWxlYXNlZCBsb2NrLgorCQkJICog SXQgaXMgc3RpbGwgcG9zc2libGUgdGhhdCB3ZSBzZWUgbG9ja3MgaGVsZCBieSBhbHJlYWR5 IGNvbXBsZXRlCisJCQkgKiB0cmFuc2FjdGlvbnMsIGlmIHRoZXkgaGF2ZW4ndCB5ZXQgemVy b2VkIHRoZWlyIHhpZHMuCisJCQkgKi8KKwkJCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQo eGlkKSkKKwkJCQljb250aW51ZTsKKworCQkJYWNjZXNzRXhjbHVzaXZlTG9ja3NbaW5kZXhd LnhpZCA9IHhpZDsKIAkJCWFjY2Vzc0V4Y2x1c2l2ZUxvY2tzW2luZGV4XS5kYk9pZCA9IGxv Y2stPnRhZy5sb2NrdGFnX2ZpZWxkMTsKIAkJCWFjY2Vzc0V4Y2x1c2l2ZUxvY2tzW2luZGV4 XS5yZWxPaWQgPSBsb2NrLT50YWcubG9ja3RhZ19maWVsZDI7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFu ZGJ5LmgKaW5kZXggYTUzOWVjMi4uMTAyN2JiYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv c3RvcmFnZS9zdGFuZGJ5LmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgK QEAgLTQ4LDcgKzQ4LDcgQEAgZXh0ZXJuIHZvaWQgU3RhbmRieUFjcXVpcmVBY2Nlc3NFeGNs dXNpdmVMb2NrKFRyYW5zYWN0aW9uSWQgeGlkLCBPaWQgZGJPaWQsIE9pZAogZXh0ZXJuIHZv aWQgU3RhbmRieVJlbGVhc2VMb2NrVHJlZShUcmFuc2FjdGlvbklkIHhpZCwKIAkJCQkJICAg aW50IG5zdWJ4aWRzLCBUcmFuc2FjdGlvbklkICpzdWJ4aWRzKTsKIGV4dGVybiB2b2lkIFN0 YW5kYnlSZWxlYXNlQWxsTG9ja3Modm9pZCk7Ci1leHRlcm4gdm9pZCBTdGFuZGJ5UmVsZWFz ZU9sZExvY2tzKFRyYW5zYWN0aW9uSWQgcmVtb3ZlWGlkKTsKK2V4dGVybiB2b2lkIFN0YW5k YnlSZWxlYXNlT2xkTG9ja3MoaW50IG54aWRzLCBUcmFuc2FjdGlvbklkICp4aWRzKTsKIAog LyoKICAqIFhMT0cgbWVzc2FnZSB0eXBlcwoKY29tbWl0IGI4YTkxZDlkMWM3ZWM3NWFhZWNm MTNkZjY4N2VjN2I1YjBlZDM1YTYKQXV0aG9yOiBTaW1vbiBSaWdncyA8c2ltb25AMm5kUXVh ZHJhbnQuY29tPgpEYXRlOiAgIE1vbiBKYW4gMjMgMjM6MjU6MDQgMjAxMiArMDAwMAoKICAg IEFMVEVSIDx0aGluZz4gW0lGIEVYSVNUU10gLi4uIGFsbG93cyBzaWxlbnQgRERMIGlmIHJl cXVpcmVkLAogICAgZS5nLiBBTFRFUiBGT1JFSUdOIFRBQkxFIElGIEVYSVNUUyBmb28gUkVO QU1FIFRPIGJhcgogICAgCiAgICBQYXZlbCBTdGVodWxlCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9mb3JlaWduX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX2ZvcmVpZ25fdGFibGUuc2dtbAppbmRleCA5OWU4ZTkwLi40NTU1MjdjIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2ZvcmVpZ25fdGFibGUuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2ZvcmVpZ25fdGFibGUuc2dtbApAQCAtMjEsMTMg KzIxLDEzIEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2 PgogPHN5bm9wc2lzPgotQUxURVIgRk9SRUlHTiBUQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9 IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBGT1JFSUdOIFRBQkxFIFsg SUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPm5hbWU8L3JlcGxh Y2VhYmxlPgogICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5hY3Rpb248L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXQotQUxURVIgRk9SRUlHTiBUQUJMRSA8cmVwbGFjZWFibGUg Y2xhc3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBGT1JFSUdOIFRB QkxFIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPm5hbWU8 L3JlcGxhY2VhYmxlPgogICAgIFJFTkFNRSBbIENPTFVNTiBdIDxyZXBsYWNlYWJsZSBjbGFz cz0iUEFSQU1FVEVSIj5jb2x1bW48L3JlcGxhY2VhYmxlPiBUTyA8cmVwbGFjZWFibGUgY2xh c3M9IlBBUkFNRVRFUiI+bmV3X2NvbHVtbjwvcmVwbGFjZWFibGU+Ci1BTFRFUiBGT1JFSUdO IFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5uYW1lPC9yZXBsYWNlYWJs ZT4KK0FMVEVSIEZPUkVJR04gVEFCTEUgWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xh c3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgUkVOQU1FIFRPIDxyZXBs YWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+Ci1BTFRF UiBGT1JFSUdOIFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5uYW1lPC9y ZXBsYWNlYWJsZT4KK0FMVEVSIEZPUkVJR04gVEFCTEUgWyBJRiBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgU0VUIFND SEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmV3X3NjaGVtYTwvcmVwbGFj ZWFibGU+CiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIi PmFjdGlvbjwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KQEAgLTc2LDYgKzc2 LDE2IEBAIEFMVEVSIEZPUkVJR04gVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVU RVIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgPC92YXJsaXN0ZW50cnk+CiAKICAgIDx2YXJs aXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVy bT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93IGFu IGVycm9yIGlmIHRoZSBzZXF1ZW5jZSBkb2VzIG5vdCBleGlzdC4gQSBub3RpY2UgaXMgaXNz dWVkCisgICAgICBpbiB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+ PGxpdGVyYWw+U0VUIERBVEEgVFlQRTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVt PgogICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfaW5k ZXguc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfaW5kZXguc2dtbAppbmRleCBjNzAx ZDE2Li5kMjEwMDc3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2luZGV4 LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9pbmRleC5zZ21sCkBAIC0yMSwx MCArMjEsMTAgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVmc3lub3BzaXNk aXY+CiA8c3lub3BzaXM+Ci1BTFRFUiBJTkRFWCA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFN RVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9 IlBBUkFNRVRFUiI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgotQUxURVIgSU5ERVggPHJlcGxh Y2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgVEFCTEVT UEFDRSA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+dGFibGVzcGFjZV9uYW1lPC9y ZXBsYWNlYWJsZT4KLUFMVEVSIElOREVYIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVS Ij5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVU RVIiPnN0b3JhZ2VfcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xh c3M9IlBBUkFNRVRFUiI+dmFsdWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApCi1BTFRFUiBJ TkRFWCA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+ IFJFU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPnN0b3JhZ2VfcGFyYW1l dGVyPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKQorQUxURVIgSU5ERVggWyBJRiBFWElTVFMg XSA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+IFJF TkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmV3X25hbWU8L3JlcGxh Y2VhYmxlPgorQUxURVIgSU5ERVggWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9 IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCBUQUJMRVNQQUNFIDxyZXBsYWNl YWJsZSBjbGFzcz0iUEFSQU1FVEVSIj50YWJsZXNwYWNlX25hbWU8L3JlcGxhY2VhYmxlPgor QUxURVIgSU5ERVggWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRF UiI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1F VEVSIj5zdG9yYWdlX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+ID0gPHJlcGxhY2VhYmxlIGNs YXNzPSJQQVJBTUVURVIiPnZhbHVlPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKQorQUxURVIg SU5ERVggWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmFt ZTwvcmVwbGFjZWFibGU+IFJFU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIi PnN0b3JhZ2VfcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKQogPC9zeW5vcHNp cz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0zOCw2ICszOCwxNiBAQCBBTFRFUiBJTkRF WCA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+IFJF U0VUICggPHJlcGxhY2VhYgogICA8dmFyaWFibGVsaXN0PgogCiAgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBp ZiB0aGUgaW5kZXggZG9lcyBub3QgZXhpc3QuIEEgbm90aWNlIGlzIGlzc3VlZAorICAgICAg aW4gdGhpcyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPlJF TkFNRTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc2VxdWVuY2Uuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfc2VxdWVuY2Uuc2dtbAppbmRleCA3OTc5NWQ5Li42ZGRkNDYx IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3NlcXVlbmNlLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zZXF1ZW5jZS5zZ21sCkBAIC0yMywxNSArMjMs MTUgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+CiA8 c3lub3BzaXM+Ci1BTFRFUiBTRVFVRU5DRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgSU5DUkVNRU5UIFsgQlkgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+aW5jcmVtZW50PC9yZXBsYWNlYWJsZT4gXQorQUxURVIgU0VR VUVOQ0UgWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFsgSU5DUkVNRU5UIFsgQlkgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+aW5jcmVtZW50PC9yZXBsYWNlYWJsZT4gXQogICAgIFsgTUlOVkFMVUUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm1pbnZhbHVlPC9yZXBsYWNlYWJsZT4g fCBOTyBNSU5WQUxVRSBdIFsgTUFYVkFMVUUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm1heHZhbHVlPC9yZXBsYWNlYWJsZT4gfCBOTyBNQVhWQUxVRSBdCiAgICAgWyBTVEFS VCBbIFdJVEggXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RhcnQ8L3JlcGxh Y2VhYmxlPiBdCiAgICAgWyBSRVNUQVJUIFsgWyBXSVRIIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJlc3RhcnQ8L3JlcGxhY2VhYmxlPiBdIF0KICAgICBbIENBQ0hFIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jYWNoZTwvcmVwbGFjZWFibGU+IF0gWyBb IE5PIF0gQ1lDTEUgXQogICAgIFsgT1dORUQgQlkgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dGFibGU8L3JlcGxhY2VhYmxlPi48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uPC9yZXBsYWNlYWJsZT4gfCBOT05FIH0gXQotQUxURVIgU0VRVUVOQ0Ug PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05F UiBUTyA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmV3X293bmVyPC9yZXBsYWNl YWJsZT4KLUFMVEVSIFNFUVVFTkNFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+Ci1BTFRFUiBTRVFVRU5DRSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCBTQ0hFTUEgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPgor QUxURVIgU0VRVUVOQ0UgWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0i UEFSQU1FVEVSIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPgorQUxURVIgU0VRVUVOQ0UgWyBJ RiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25h bWU8L3JlcGxhY2VhYmxlPgorQUxURVIgU0VRVUVOQ0UgWyBJRiBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCBTQ0hFTUEg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxl PgogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC03MSw2ICs3MSwxNiBA QCBBTFRFUiBTRVFVRU5DRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IFNFVCBTQ0hFTUEgPHJlcAogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAog ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9s aXRlcmFsPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAg ICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBzZXF1ZW5jZSBkb2VzIG5vdCBleGlz dC4gQSBub3RpY2UgaXMgaXNzdWVkCisgICAgICAgIGluIHRoaXMgY2FzZS4KKyAgICAgICA8 L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg ICA8dmFybGlzdGVudHJ5PgogICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmluY3JlbWVudDwvcmVwbGFjZWFibGU+PC90ZXJtPgogICAgICAgPGxpc3RpdGVt PgogICAgICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90 YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCmluZGV4IDZm MTkxN2YuLjk1MWI2M2IgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFi bGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKQEAgLTIx LDEzICsyMSwxMyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNp c2Rpdj4KIDxzeW5vcHNpcz4KLUFMVEVSIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBj bGFzcz0iUEFSQU1FVEVSIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0KK0FMVEVSIFRBQkxF IFsgSUYgRVhJU1RTIF0gWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBbICogXQogICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFS QU1FVEVSIj5hY3Rpb248L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQotQUxURVIgVEFCTEUgWyBP TkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPm5hbWU8L3JlcGxhY2VhYmxl PiBbICogXQorQUxURVIgVEFCTEUgWyBJRiBFWElTVFMgXSBbIE9OTFkgXSA8cmVwbGFjZWFi bGUgY2xhc3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdCiAgICAgUkVO QU1FIFsgQ09MVU1OIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPmNvbHVtbjwv cmVwbGFjZWFibGU+IFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5uZXdfY29s dW1uPC9yZXBsYWNlYWJsZT4KLUFMVEVSIFRBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFS QU1FVEVSIj5uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFRBQkxFIFsgSUYgRVhJU1RTIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAg IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmV3X25hbWU8L3Jl cGxhY2VhYmxlPgotQUxURVIgVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIi Pm5hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgVEFCTEUgWyBJRiBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgU0VUIFND SEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmV3X3NjaGVtYTwvcmVwbGFj ZWFibGU+CiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIi PmFjdGlvbjwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KQEAgLTExMCw2ICsx MTAsMTYgQEAgQUxURVIgVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPm5h bWU8L3JlcGxhY2VhYmxlPgogICAgPC92YXJsaXN0ZW50cnk+CiAKICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVycm9y IGlmIHRoZSB0YWJsZSBkb2VzIG5vdCBleGlzdC4gQSBub3RpY2UgaXMgaXNzdWVkCisgICAg ICBpbiB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+ U0VUIERBVEEgVFlQRTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICA8 cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmlldy5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92aWV3LnNnbWwKaW5kZXggZTc4MTc2Yi4uYzUxOGQ5 MyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92aWV3LnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92aWV3LnNnbWwKQEAgLTIxLDEzICsyMSwxMyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNp cz4KLUFMVEVSIFZJRVcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBBTFRFUiBbIENPTFVNTiBdIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1F VEVSIj5jb2x1bW48L3JlcGxhY2VhYmxlPiBTRVQgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xh c3M9IlBBUkFNRVRFUiI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+Ci1BTFRFUiBWSUVXIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUxURVIg WyBDT0xVTU4gXSA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+Y29sdW1uPC9yZXBs YWNlYWJsZT4gRFJPUCBERUZBVUxUCi1BTFRFUiBWSUVXIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gT1dORVIgVE8gPHJlcGxhY2VhYmxlIGNs YXNzPSJQQVJBTUVURVIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+Ci1BTFRFUiBWSUVXIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1F IFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFi bGU+Ci1BTFRFUiBWSUVXIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gU0VUIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+Ci1BTFRFUiBWSUVXIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnZpZXdfb3B0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBbPSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmlld19vcHRpb25fdmFsdWU8L3JlcGxhY2Vh YmxlPl0gWywgLi4uIF0gKQotQUxURVIgVklFVyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnZpZXdfb3B0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApCitB TFRFUiBWSUVXIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBBTFRFUiBbIENPTFVNTiBdIDxyZXBsYWNlYWJsZSBjbGFz cz0iUEFSQU1FVEVSIj5jb2x1bW48L3JlcGxhY2VhYmxlPiBTRVQgREVGQVVMVCA8cmVwbGFj ZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+CitBTFRF UiBWSUVXIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBBTFRFUiBbIENPTFVNTiBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i UEFSQU1FVEVSIj5jb2x1bW48L3JlcGxhY2VhYmxlPiBEUk9QIERFRkFVTFQKK0FMVEVSIFZJ RVcgWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IE9XTkVSIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5u ZXdfb3duZXI8L3JlcGxhY2VhYmxlPgorQUxURVIgVklFVyBbIElGIEVYSVNUUyBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRP IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+ CitBTFRFUiBWSUVXIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFZJRVcgWyBJRiBF WElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+IFNFVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52aWV3X29wdGlvbl9u YW1lPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZp ZXdfb3B0aW9uX3ZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKK0FMVEVSIFZJRVcg WyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+IFJFU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZpZXdf b3B0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApCiA8L3N5bm9wc2lzPgogIDwv cmVmc3lub3BzaXNkaXY+CiAKQEAgLTY2LDYgKzY2LDE2IEBAIEFMVEVSIFZJRVcgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNFVCAoIDxy ZXBsYWNlYWJsCiAgICA8L3Zhcmxpc3RlbnRyeT4KIAogICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhl IHZpZXcgZG9lcyBub3QgZXhpc3QuIEEgbm90aWNlIGlzIGlzc3VlZAorICAgICAgaW4gdGhp cyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPlNFVDwvbGl0 ZXJhbD4vPGxpdGVyYWw+RFJPUCBERUZBVUxUPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CiAgICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2VxdWVuY2UuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlcXVlbmNlLmMKaW5kZXggZjc3 MTJhOS4uZDM3MzljYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VxdWVu Y2UuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZS5jCkBAIC00MjUsNyAr NDI1LDE1IEBAIEFsdGVyU2VxdWVuY2UoQWx0ZXJTZXFTdG10ICpzdG10KQogCUxpc3QJICAg Km93bmVkX2J5OwogCiAJLyogT3BlbiBhbmQgbG9jayBzZXF1ZW5jZS4gKi8KLQlyZWxpZCA9 IFJhbmdlVmFyR2V0UmVsaWQoc3RtdC0+c2VxdWVuY2UsIEFjY2Vzc1NoYXJlTG9jaywgZmFs c2UpOworCXJlbGlkID0gUmFuZ2VWYXJHZXRSZWxpZChzdG10LT5zZXF1ZW5jZSwgQWNjZXNz U2hhcmVMb2NrLCBzdG10LT5taXNzaW5nX29rKTsKKwlpZiAocmVsaWQgPT0gSW52YWxpZE9p ZCkKKwl7CisJCWVyZXBvcnQoTk9USUNFLAorCQkJCShlcnJtc2coInJlbGF0aW9uIFwiJXNc IiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciLAorCQkJCQkJCXN0bXQtPnNlcXVlbmNlLT5y ZWxuYW1lKSkpOworCQlyZXR1cm47CisJfQorCiAJaW5pdF9zZXF1ZW5jZShyZWxpZCwgJmVs bSwgJnNlcXJlbCk7CiAKIAkvKiBhbGxvdyBBTFRFUiB0byBzZXF1ZW5jZSBvd25lciBvbmx5 ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IGNjMjEwZjAuLmNiOGFjNjcg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yMzEwLDkgKzIzMTAsMTggQEAg cmVuYW1lYXR0KFJlbmFtZVN0bXQgKnN0bXQpCiAKIAkvKiBsb2NrIGxldmVsIHRha2VuIGhl cmUgc2hvdWxkIG1hdGNoIHJlbmFtZWF0dF9pbnRlcm5hbCAqLwogCXJlbGlkID0gUmFuZ2VW YXJHZXRSZWxpZEV4dGVuZGVkKHN0bXQtPnJlbGF0aW9uLCBBY2Nlc3NFeGNsdXNpdmVMb2Nr LAotCQkJCQkJCQkJIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJCSBzdG10LT5taXNzaW5nX29r LCBmYWxzZSwKIAkJCQkJCQkJCSBSYW5nZVZhckNhbGxiYWNrRm9yUmVuYW1lQXR0cmlidXRl LAogCQkJCQkJCQkJIE5VTEwpOworCisJaWYgKCFPaWRJc1ZhbGlkKHJlbGlkKSkKKwl7CisJ CWVyZXBvcnQoTk9USUNFLAorCQkJCShlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBkb2VzIG5v dCBleGlzdCwgc2tpcHBpbmciLAorCQkJCQkJCXN0bXQtPnJlbGF0aW9uLT5yZWxuYW1lKSkp OworCQlyZXR1cm47CisJfQorCiAJcmVuYW1lYXR0X2ludGVybmFsKHJlbGlkLAogCQkJCQkg ICBzdG10LT5zdWJuYW1lLAkvKiBvbGQgYXR0IG5hbWUgKi8KIAkJCQkJICAgc3RtdC0+bmV3 bmFtZSwJLyogbmV3IGF0dCBuYW1lICovCkBAIC0yMzM4LDEwICsyMzQ3LDE4IEBAIFJlbmFt ZVJlbGF0aW9uKFJlbmFtZVN0bXQgKnN0bXQpCiAJICogbG9jayBlc2NhbGF0aW9uLgogCSAq LwogCXJlbGlkID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHN0bXQtPnJlbGF0aW9uLCBB Y2Nlc3NFeGNsdXNpdmVMb2NrLAotCQkJCQkJCQkJIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJ CSBzdG10LT5taXNzaW5nX29rLCBmYWxzZSwKIAkJCQkJCQkJCSBSYW5nZVZhckNhbGxiYWNr Rm9yQWx0ZXJSZWxhdGlvbiwKIAkJCQkJCQkJCSAodm9pZCAqKSBzdG10KTsKIAorCWlmICgh T2lkSXNWYWxpZChyZWxpZCkpCisJeworCQllcmVwb3J0KE5PVElDRSwKKwkJCQkoZXJybXNn KCJyZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIiwKKwkJCQkJCQlz dG10LT5yZWxhdGlvbi0+cmVsbmFtZSkpKTsKKwkJcmV0dXJuOworCX0KKwogCS8qIERvIHRo ZSB3b3JrICovCiAJUmVuYW1lUmVsYXRpb25JbnRlcm5hbChyZWxpZCwgc3RtdC0+bmV3bmFt ZSk7CiB9CkBAIC0yNDgyLDcgKzI0OTksNyBAQCBDaGVja1RhYmxlTm90SW5Vc2UoUmVsYXRp b24gcmVsLCBjb25zdCBjaGFyICpzdG10KQogT2lkCiBBbHRlclRhYmxlTG9va3VwUmVsYXRp b24oQWx0ZXJUYWJsZVN0bXQgKnN0bXQsIExPQ0tNT0RFIGxvY2ttb2RlKQogewotCXJldHVy biBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoc3RtdC0+cmVsYXRpb24sIGxvY2ttb2RlLCBm YWxzZSwgZmFsc2UsCisJcmV0dXJuIFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChzdG10LT5y ZWxhdGlvbiwgbG9ja21vZGUsIHN0bXQtPm1pc3Npbmdfb2ssIGZhbHNlLAogCQkJCQkJCQkJ UmFuZ2VWYXJDYWxsYmFja0ZvckFsdGVyUmVsYXRpb24sCiAJCQkJCQkJCQkodm9pZCAqKSBz dG10KTsKIH0KQEAgLTk0MzQsOSArOTQ1MSwxOCBAQCBBbHRlclRhYmxlTmFtZXNwYWNlKEFs dGVyT2JqZWN0U2NoZW1hU3RtdCAqc3RtdCkKIAlSYW5nZVZhciAgICpuZXdydjsKIAogCXJl bGlkID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHN0bXQtPnJlbGF0aW9uLCBBY2Nlc3NF eGNsdXNpdmVMb2NrLAotCQkJCQkJCQkJIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJCSBzdG10 LT5taXNzaW5nX29rLCBmYWxzZSwKIAkJCQkJCQkJCSBSYW5nZVZhckNhbGxiYWNrRm9yQWx0 ZXJSZWxhdGlvbiwKIAkJCQkJCQkJCSAodm9pZCAqKSBzdG10KTsKKworCWlmICghT2lkSXNW YWxpZChyZWxpZCkpCisJeworCQllcmVwb3J0KE5PVElDRSwKKwkJCQkoZXJybXNnKCJyZWxh dGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIiwKKwkJCQkJCQlzdG10LT5y ZWxhdGlvbi0+cmVsbmFtZSkpKTsKKwkJcmV0dXJuOworCX0KKwogCXJlbCA9IHJlbGF0aW9u X29wZW4ocmVsaWQsIE5vTG9jayk7CiAKIAlvbGROc3BPaWQgPSBSZWxhdGlvbkdldE5hbWVz cGFjZShyZWwpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMg Yi9zcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYwppbmRleCA3MWRhMGQ4Li5jYzMxNjhk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYworKysgYi9zcmMv YmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYwpAQCAtMjU0MCw2ICsyNTQwLDcgQEAgX2NvcHlB bHRlclRhYmxlU3RtdChjb25zdCBBbHRlclRhYmxlU3RtdCAqZnJvbSkKIAlDT1BZX05PREVf RklFTEQocmVsYXRpb24pOwogCUNPUFlfTk9ERV9GSUVMRChjbWRzKTsKIAlDT1BZX1NDQUxB Ul9GSUVMRChyZWxraW5kKTsKKwlDT1BZX1NDQUxBUl9GSUVMRChtaXNzaW5nX29rKTsKIAog CXJldHVybiBuZXdub2RlOwogfQpAQCAtMjkwNCw2ICsyOTA1LDcgQEAgX2NvcHlSZW5hbWVT dG10KGNvbnN0IFJlbmFtZVN0bXQgKmZyb20pCiAJQ09QWV9TVFJJTkdfRklFTEQoc3VibmFt ZSk7CiAJQ09QWV9TVFJJTkdfRklFTEQobmV3bmFtZSk7CiAJQ09QWV9TQ0FMQVJfRklFTEQo YmVoYXZpb3IpOworCUNPUFlfU0NBTEFSX0ZJRUxEKG1pc3Npbmdfb2spOwogCiAJcmV0dXJu IG5ld25vZGU7CiB9CkBAIC0yOTE5LDYgKzI5MjEsNyBAQCBfY29weUFsdGVyT2JqZWN0U2No ZW1hU3RtdChjb25zdCBBbHRlck9iamVjdFNjaGVtYVN0bXQgKmZyb20pCiAJQ09QWV9OT0RF X0ZJRUxEKG9iamFyZyk7CiAJQ09QWV9TVFJJTkdfRklFTEQoYWRkbmFtZSk7CiAJQ09QWV9T VFJJTkdfRklFTEQobmV3c2NoZW1hKTsKKwlDT1BZX1NDQUxBUl9GSUVMRChtaXNzaW5nX29r KTsKIAogCXJldHVybiBuZXdub2RlOwogfQpAQCAtMzIyMiw2ICszMjI1LDcgQEAgX2NvcHlB bHRlclNlcVN0bXQoY29uc3QgQWx0ZXJTZXFTdG10ICpmcm9tKQogCiAJQ09QWV9OT0RFX0ZJ RUxEKHNlcXVlbmNlKTsKIAlDT1BZX05PREVfRklFTEQob3B0aW9ucyk7CisJQ09QWV9TQ0FM QVJfRklFTEQobWlzc2luZ19vayk7CiAKIAlyZXR1cm4gbmV3bm9kZTsKIH0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL25vZGVzL2VxdWFsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVz L2VxdWFsZnVuY3MuYwppbmRleCBiYTk0OWRiLi4yMjk1MTk1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvZXF1 YWxmdW5jcy5jCkBAIC0xMDEwLDYgKzEwMTAsNyBAQCBfZXF1YWxBbHRlclRhYmxlU3RtdChj b25zdCBBbHRlclRhYmxlU3RtdCAqYSwgY29uc3QgQWx0ZXJUYWJsZVN0bXQgKmIpCiAJQ09N UEFSRV9OT0RFX0ZJRUxEKHJlbGF0aW9uKTsKIAlDT01QQVJFX05PREVfRklFTEQoY21kcyk7 CiAJQ09NUEFSRV9TQ0FMQVJfRklFTEQocmVsa2luZCk7CisJQ09NUEFSRV9TQ0FMQVJfRklF TEQobWlzc2luZ19vayk7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KQEAgLTEzMTAsNiArMTMxMSw3 IEBAIF9lcXVhbFJlbmFtZVN0bXQoY29uc3QgUmVuYW1lU3RtdCAqYSwgY29uc3QgUmVuYW1l U3RtdCAqYikKIAlDT01QQVJFX1NUUklOR19GSUVMRChzdWJuYW1lKTsKIAlDT01QQVJFX1NU UklOR19GSUVMRChuZXduYW1lKTsKIAlDT01QQVJFX1NDQUxBUl9GSUVMRChiZWhhdmlvcik7 CisJQ09NUEFSRV9TQ0FMQVJfRklFTEQobWlzc2luZ19vayk7CiAKIAlyZXR1cm4gdHJ1ZTsK IH0KQEAgLTEzMjMsNiArMTMyNSw3IEBAIF9lcXVhbEFsdGVyT2JqZWN0U2NoZW1hU3RtdChj b25zdCBBbHRlck9iamVjdFNjaGVtYVN0bXQgKmEsIGNvbnN0IEFsdGVyT2JqZWN0U2NoCiAJ Q09NUEFSRV9OT0RFX0ZJRUxEKG9iamFyZyk7CiAJQ09NUEFSRV9TVFJJTkdfRklFTEQoYWRk bmFtZSk7CiAJQ09NUEFSRV9TVFJJTkdfRklFTEQobmV3c2NoZW1hKTsKKwlDT01QQVJFX1ND QUxBUl9GSUVMRChtaXNzaW5nX29rKTsKIAogCXJldHVybiB0cnVlOwogfQpAQCAtMTU3Niw2 ICsxNTc5LDcgQEAgX2VxdWFsQWx0ZXJTZXFTdG10KGNvbnN0IEFsdGVyU2VxU3RtdCAqYSwg Y29uc3QgQWx0ZXJTZXFTdG10ICpiKQogewogCUNPTVBBUkVfTk9ERV9GSUVMRChzZXF1ZW5j ZSk7CiAJQ09NUEFSRV9OT0RFX0ZJRUxEKG9wdGlvbnMpOworCUNPTVBBUkVfU0NBTEFSX0ZJ RUxEKG1pc3Npbmdfb2spOwogCiAJcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRl eCAwZWMwMzliLi42MmZkZTY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTE2MjksNiArMTYyOSwx NiBAQCBBbHRlclRhYmxlU3RtdDoKIAkJCQkJbi0+cmVsYXRpb24gPSAkMzsKIAkJCQkJbi0+ Y21kcyA9ICQ0OwogCQkJCQluLT5yZWxraW5kID0gT0JKRUNUX1RBQkxFOworCQkJCQluLT5t aXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJfAlB TFRFUiBUQUJMRSBJRl9QIEVYSVNUUyByZWxhdGlvbl9leHByIGFsdGVyX3RhYmxlX2NtZHMK KwkJCQl7CisJCQkJCUFsdGVyVGFibGVTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJUYWJsZVN0 bXQpOworCQkJCQluLT5yZWxhdGlvbiA9ICQ1OworCQkJCQluLT5jbWRzID0gJDY7CisJCQkJ CW4tPnJlbGtpbmQgPSBPQkpFQ1RfVEFCTEU7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVl OwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCXwJQUxURVIgSU5ERVggcXVhbGlm aWVkX25hbWUgYWx0ZXJfdGFibGVfY21kcwpAQCAtMTYzNyw2ICsxNjQ3LDE2IEBAIEFsdGVy VGFibGVTdG10OgogCQkJCQluLT5yZWxhdGlvbiA9ICQzOwogCQkJCQluLT5jbWRzID0gJDQ7 CiAJCQkJCW4tPnJlbGtpbmQgPSBPQkpFQ1RfSU5ERVg7CisJCQkJCW4tPm1pc3Npbmdfb2sg PSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQl8CUFMVEVSIElOREVY IElGX1AgRVhJU1RTIHF1YWxpZmllZF9uYW1lIGFsdGVyX3RhYmxlX2NtZHMKKwkJCQl7CisJ CQkJCUFsdGVyVGFibGVTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJUYWJsZVN0bXQpOworCQkJ CQluLT5yZWxhdGlvbiA9ICQ1OworCQkJCQluLT5jbWRzID0gJDY7CisJCQkJCW4tPnJlbGtp bmQgPSBPQkpFQ1RfSU5ERVg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOwogCQkJCQkk JCA9IChOb2RlICopbjsKIAkJCQl9CiAJCXwJQUxURVIgU0VRVUVOQ0UgcXVhbGlmaWVkX25h bWUgYWx0ZXJfdGFibGVfY21kcwpAQCAtMTY0NSw2ICsxNjY1LDE2IEBAIEFsdGVyVGFibGVT dG10OgogCQkJCQluLT5yZWxhdGlvbiA9ICQzOwogCQkJCQluLT5jbWRzID0gJDQ7CiAJCQkJ CW4tPnJlbGtpbmQgPSBPQkpFQ1RfU0VRVUVOQ0U7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBm YWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQl8CUFMVEVSIFNFUVVFTkNF IElGX1AgRVhJU1RTIHF1YWxpZmllZF9uYW1lIGFsdGVyX3RhYmxlX2NtZHMKKwkJCQl7CisJ CQkJCUFsdGVyVGFibGVTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJUYWJsZVN0bXQpOworCQkJ CQluLT5yZWxhdGlvbiA9ICQ1OworCQkJCQluLT5jbWRzID0gJDY7CisJCQkJCW4tPnJlbGtp bmQgPSBPQkpFQ1RfU0VRVUVOQ0U7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOwogCQkJ CQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCXwJQUxURVIgVklFVyBxdWFsaWZpZWRfbmFt ZSBhbHRlcl90YWJsZV9jbWRzCkBAIC0xNjUzLDYgKzE2ODMsMTYgQEAgQWx0ZXJUYWJsZVN0 bXQ6CiAJCQkJCW4tPnJlbGF0aW9uID0gJDM7CiAJCQkJCW4tPmNtZHMgPSAkNDsKIAkJCQkJ bi0+cmVsa2luZCA9IE9CSkVDVF9WSUVXOworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7 CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJfAlBTFRFUiBWSUVXIElGX1AgRVhJ U1RTIHF1YWxpZmllZF9uYW1lIGFsdGVyX3RhYmxlX2NtZHMKKwkJCQl7CisJCQkJCUFsdGVy VGFibGVTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJUYWJsZVN0bXQpOworCQkJCQluLT5yZWxh dGlvbiA9ICQ1OworCQkJCQluLT5jbWRzID0gJDY7CisJCQkJCW4tPnJlbGtpbmQgPSBPQkpF Q1RfVklFVzsKKwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUg KiluOwogCQkJCX0KIAkJOwpAQCAtMzA2OCw4ICszMTA4LDE4IEBAIEFsdGVyU2VxU3RtdDoK IAkJCQkJQWx0ZXJTZXFTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJTZXFTdG10KTsKIAkJCQkJ bi0+c2VxdWVuY2UgPSAkMzsKIAkJCQkJbi0+b3B0aW9ucyA9ICQ0OworCQkJCQluLT5taXNz aW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0KKwkJCXwgQUxU RVIgU0VRVUVOQ0UgSUZfUCBFWElTVFMgcXVhbGlmaWVkX25hbWUgU2VxT3B0TGlzdAorCQkJ CXsKKwkJCQkJQWx0ZXJTZXFTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJTZXFTdG10KTsKKwkJ CQkJbi0+c2VxdWVuY2UgPSAkNTsKKwkJCQkJbi0+b3B0aW9ucyA9ICQ2OworCQkJCQluLT5t aXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCiAJCTsK IAogT3B0U2VxT3B0TGlzdDogU2VxT3B0TGlzdAkJCQkJCQl7ICQkID0gJDE7IH0KQEAgLTM5 MDYsNiArMzk1NiwxNiBAQCBBbHRlckZvcmVpZ25UYWJsZVN0bXQ6CiAJCQkJCW4tPnJlbGF0 aW9uID0gJDQ7CiAJCQkJCW4tPmNtZHMgPSAkNTsKIAkJCQkJbi0+cmVsa2luZCA9IE9CSkVD VF9GT1JFSUdOX1RBQkxFOworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQk ID0gKE5vZGUgKiluOworCQkJCX0KKwkJCXwgQUxURVIgRk9SRUlHTiBUQUJMRSBJRl9QIEVY SVNUUyByZWxhdGlvbl9leHByIGFsdGVyX3RhYmxlX2NtZHMKKwkJCQl7CisJCQkJCUFsdGVy VGFibGVTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJUYWJsZVN0bXQpOworCQkJCQluLT5yZWxh dGlvbiA9ICQ2OworCQkJCQluLT5jbWRzID0gJDc7CisJCQkJCW4tPnJlbGtpbmQgPSBPQkpF Q1RfRk9SRUlHTl9UQUJMRTsKKwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CiAJCQkJCSQk ID0gKE5vZGUgKiluOwogCQkJCX0KIAkJOwpAQCAtNjQxNyw2ICs2NDc3LDcgQEAgUmVuYW1l U3RtdDogQUxURVIgQUdHUkVHQVRFIGZ1bmNfbmFtZSBhZ2dyX2FyZ3MgUkVOQU1FIFRPIG5h bWUKIAkJCQkJbi0+b2JqZWN0ID0gJDM7CiAJCQkJCW4tPm9iamFyZyA9ICQ0OwogCQkJCQlu LT5uZXduYW1lID0gJDc7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQg PSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBDT0xMQVRJT04gYW55X25hbWUgUkVO QU1FIFRPIG5hbWUKQEAgLTY0MjUsNiArNjQ4Niw3IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFH R1JFR0FURSBmdW5jX25hbWUgYWdncl9hcmdzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPnJl bmFtZVR5cGUgPSBPQkpFQ1RfQ09MTEFUSU9OOwogCQkJCQluLT5vYmplY3QgPSAkMzsKIAkJ CQkJbi0+bmV3bmFtZSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJ CSQkID0gKE5vZGUgKiluOwogCQkJCX0KIAkJCXwgQUxURVIgQ09OVkVSU0lPTl9QIGFueV9u YW1lIFJFTkFNRSBUTyBuYW1lCkBAIC02NDMzLDYgKzY0OTUsNyBAQCBSZW5hbWVTdG10OiBB TFRFUiBBR0dSRUdBVEUgZnVuY19uYW1lIGFnZ3JfYXJncyBSRU5BTUUgVE8gbmFtZQogCQkJ CQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX0NPTlZFUlNJT047CiAJCQkJCW4tPm9iamVjdCA9 ICQzOwogCQkJCQluLT5uZXduYW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxz ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBEQVRBQkFTRSBk YXRhYmFzZV9uYW1lIFJFTkFNRSBUTyBkYXRhYmFzZV9uYW1lCkBAIC02NDQxLDYgKzY1MDQs NyBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgZnVuY19uYW1lIGFnZ3JfYXJncyBS RU5BTUUgVE8gbmFtZQogCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX0RBVEFCQVNFOwog CQkJCQluLT5zdWJuYW1lID0gJDM7CiAJCQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+ bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCQl8 IEFMVEVSIERPTUFJTl9QIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCkBAIC02NDQ5LDYgKzY1 MTMsNyBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgZnVuY19uYW1lIGFnZ3JfYXJn cyBSRU5BTUUgVE8gbmFtZQogCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX0RPTUFJTjsK IAkJCQkJbi0+b2JqZWN0ID0gJDM7CiAJCQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+ bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCQl8 IEFMVEVSIEZPUkVJR04gREFUQV9QIFdSQVBQRVIgbmFtZSBSRU5BTUUgVE8gbmFtZQpAQCAt NjQ1Nyw2ICs2NTIyLDcgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRFIGZ1bmNfbmFt ZSBhZ2dyX2FyZ3MgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVD VF9GRFc7CiAJCQkJCW4tPnN1Ym5hbWUgPSAkNTsKIAkJCQkJbi0+bmV3bmFtZSA9ICQ4Owor CQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJ CX0KIAkJCXwgQUxURVIgRlVOQ1RJT04gZnVuY3Rpb25fd2l0aF9hcmd0eXBlcyBSRU5BTUUg VE8gbmFtZQpAQCAtNjQ2Niw2ICs2NTMyLDcgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVH QVRFIGZ1bmNfbmFtZSBhZ2dyX2FyZ3MgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+b2JqZWN0 ID0gJDMtPmZ1bmNuYW1lOwogCQkJCQluLT5vYmphcmcgPSAkMy0+ZnVuY2FyZ3M7CiAJCQkJ CW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkk JCA9IChOb2RlICopbjsKIAkJCQl9CiAJCQl8IEFMVEVSIEdST1VQX1AgUm9sZUlkIFJFTkFN RSBUTyBSb2xlSWQKQEAgLTY0NzQsNiArNjU0MSw3IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFH R1JFR0FURSBmdW5jX25hbWUgYWdncl9hcmdzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPnJl bmFtZVR5cGUgPSBPQkpFQ1RfUk9MRTsKIAkJCQkJbi0+c3VibmFtZSA9ICQzOwogCQkJCQlu LT5uZXduYW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQg PSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBvcHRfcHJvY2VkdXJhbCBMQU5HVUFH RSBuYW1lIFJFTkFNRSBUTyBuYW1lCkBAIC02NDgyLDYgKzY1NTAsNyBAQCBSZW5hbWVTdG10 OiBBTFRFUiBBR0dSRUdBVEUgZnVuY19uYW1lIGFnZ3JfYXJncyBSRU5BTUUgVE8gbmFtZQog CQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX0xBTkdVQUdFOwogCQkJCQluLT5zdWJuYW1l ID0gJDQ7CiAJCQkJCW4tPm5ld25hbWUgPSAkNzsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZh bHNlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCQl8IEFMVEVSIE9QRVJBVE9S IENMQVNTIGFueV9uYW1lIFVTSU5HIGFjY2Vzc19tZXRob2QgUkVOQU1FIFRPIG5hbWUKQEAg LTY0OTEsNiArNjU2MCw3IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBmdW5jX25h bWUgYWdncl9hcmdzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPm9iamVjdCA9ICQ0OwogCQkJ CQluLT5zdWJuYW1lID0gJDY7CiAJCQkJCW4tPm5ld25hbWUgPSAkOTsKKwkJCQkJbi0+bWlz c2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCQl8IEFM VEVSIE9QRVJBVE9SIEZBTUlMWSBhbnlfbmFtZSBVU0lORyBhY2Nlc3NfbWV0aG9kIFJFTkFN RSBUTyBuYW1lCkBAIC02NTAwLDYgKzY1NzAsNyBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dS RUdBVEUgZnVuY19uYW1lIGFnZ3JfYXJncyBSRU5BTUUgVE8gbmFtZQogCQkJCQluLT5vYmpl Y3QgPSAkNDsKIAkJCQkJbi0+c3VibmFtZSA9ICQ2OwogCQkJCQluLT5uZXduYW1lID0gJDk7 CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJ CQkJfQogCQkJfCBBTFRFUiBTQ0hFTUEgbmFtZSBSRU5BTUUgVE8gbmFtZQpAQCAtNjUwOCw2 ICs2NTc5LDcgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRFIGZ1bmNfbmFtZSBhZ2dy X2FyZ3MgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9TQ0hF TUE7CiAJCQkJCW4tPnN1Ym5hbWUgPSAkMzsKIAkJCQkJbi0+bmV3bmFtZSA9ICQ2OworCQkJ CQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0K IAkJCXwgQUxURVIgU0VSVkVSIG5hbWUgUkVOQU1FIFRPIG5hbWUKQEAgLTY1MTYsNiArNjU4 OCw3IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBmdW5jX25hbWUgYWdncl9hcmdz IFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfRk9SRUlHTl9T RVJWRVI7CiAJCQkJCW4tPnN1Ym5hbWUgPSAkMzsKIAkJCQkJbi0+bmV3bmFtZSA9ICQ2Owor CQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJ CX0KIAkJCXwgQUxURVIgVEFCTEUgcmVsYXRpb25fZXhwciBSRU5BTUUgVE8gbmFtZQpAQCAt NjUyNSw2ICs2NTk4LDE3IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBmdW5jX25h bWUgYWdncl9hcmdzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPnJlbGF0aW9uID0gJDM7CiAJ CQkJCW4tPnN1Ym5hbWUgPSBOVUxMOwogCQkJCQluLT5uZXduYW1lID0gJDY7CisJCQkJCW4t Pm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJ fCBBTFRFUiBUQUJMRSBJRl9QIEVYSVNUUyByZWxhdGlvbl9leHByIFJFTkFNRSBUTyBuYW1l CisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJ CQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVEFCTEU7CisJCQkJCW4tPnJlbGF0aW9uID0g JDU7CisJCQkJCW4tPnN1Ym5hbWUgPSBOVUxMOworCQkJCQluLT5uZXduYW1lID0gJDg7CisJ CQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9 CiAJCQl8IEFMVEVSIFNFUVVFTkNFIHF1YWxpZmllZF9uYW1lIFJFTkFNRSBUTyBuYW1lCkBA IC02NTM0LDYgKzY2MTgsMTcgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRFIGZ1bmNf bmFtZSBhZ2dyX2FyZ3MgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+cmVsYXRpb24gPSAkMzsK IAkJCQkJbi0+c3VibmFtZSA9IE5VTEw7CiAJCQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJ bi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJ CQl8IEFMVEVSIFNFUVVFTkNFIElGX1AgRVhJU1RTIHF1YWxpZmllZF9uYW1lIFJFTkFNRSBU TyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3Rt dCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfU0VRVUVOQ0U7CisJCQkJCW4tPnJl bGF0aW9uID0gJDU7CisJCQkJCW4tPnN1Ym5hbWUgPSBOVUxMOworCQkJCQluLT5uZXduYW1l ID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICop bjsKIAkJCQl9CiAJCQl8IEFMVEVSIFZJRVcgcXVhbGlmaWVkX25hbWUgUkVOQU1FIFRPIG5h bWUKQEAgLTY1NDMsNiArNjYzOCwxNyBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUg ZnVuY19uYW1lIGFnZ3JfYXJncyBSRU5BTUUgVE8gbmFtZQogCQkJCQluLT5yZWxhdGlvbiA9 ICQzOwogCQkJCQluLT5zdWJuYW1lID0gTlVMTDsKIAkJCQkJbi0+bmV3bmFtZSA9ICQ2Owor CQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJ CX0KKwkJCXwgQUxURVIgVklFVyBJRl9QIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBSRU5BTUUg VE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0 bXQpOworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX1ZJRVc7CisJCQkJCW4tPnJlbGF0 aW9uID0gJDU7CisJCQkJCW4tPnN1Ym5hbWUgPSBOVUxMOworCQkJCQluLT5uZXduYW1lID0g JDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopbjsK IAkJCQl9CiAJCQl8IEFMVEVSIElOREVYIHF1YWxpZmllZF9uYW1lIFJFTkFNRSBUTyBuYW1l CkBAIC02NTUyLDYgKzY2NTgsMTcgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRFIGZ1 bmNfbmFtZSBhZ2dyX2FyZ3MgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+cmVsYXRpb24gPSAk MzsKIAkJCQkJbi0+c3VibmFtZSA9IE5VTEw7CiAJCQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJ CQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9 CisJCQl8IEFMVEVSIElOREVYIElGX1AgRVhJU1RTIHF1YWxpZmllZF9uYW1lIFJFTkFNRSBU TyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3Rt dCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfSU5ERVg7CisJCQkJCW4tPnJlbGF0 aW9uID0gJDU7CisJCQkJCW4tPnN1Ym5hbWUgPSBOVUxMOworCQkJCQluLT5uZXduYW1lID0g JDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopbjsK IAkJCQl9CiAJCQl8IEFMVEVSIEZPUkVJR04gVEFCTEUgcmVsYXRpb25fZXhwciBSRU5BTUUg VE8gbmFtZQpAQCAtNjU2MSw2ICs2Njc4LDE3IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JF R0FURSBmdW5jX25hbWUgYWdncl9hcmdzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPnJlbGF0 aW9uID0gJDQ7CiAJCQkJCW4tPnN1Ym5hbWUgPSBOVUxMOwogCQkJCQluLT5uZXduYW1lID0g JDc7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47 CisJCQkJfQorCQkJfCBBTFRFUiBGT1JFSUdOIFRBQkxFIElGX1AgRVhJU1RTIHJlbGF0aW9u X2V4cHIgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtl Tm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9GT1JFSUdO X1RBQkxFOworCQkJCQluLT5yZWxhdGlvbiA9ICQ2OworCQkJCQluLT5zdWJuYW1lID0gTlVM TDsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ5OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsK IAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBUQUJMRSByZWxhdGlv bl9leHByIFJFTkFNRSBvcHRfY29sdW1uIG5hbWUgVE8gbmFtZQpAQCAtNjU3MSw2ICs2Njk5 LDE4IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBmdW5jX25hbWUgYWdncl9hcmdz IFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPnJlbGF0aW9uID0gJDM7CiAJCQkJCW4tPnN1Ym5h bWUgPSAkNjsKIAkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0g ZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJCXwgQUxURVIgVEFCTEUg SUZfUCBFWElTVFMgcmVsYXRpb25fZXhwciBSRU5BTUUgb3B0X2NvbHVtbiBuYW1lIFRPIG5h bWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsK KwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9DT0xVTU47CisJCQkJCW4tPnJlbGF0aW9u VHlwZSA9IE9CSkVDVF9UQUJMRTsKKwkJCQkJbi0+cmVsYXRpb24gPSAkNTsKKwkJCQkJbi0+ c3VibmFtZSA9ICQ4OworCQkJCQluLT5uZXduYW1lID0gJDEwOworCQkJCQluLT5taXNzaW5n X29rID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBG T1JFSUdOIFRBQkxFIHJlbGF0aW9uX2V4cHIgUkVOQU1FIG9wdF9jb2x1bW4gbmFtZSBUTyBu YW1lCkBAIC02NTgxLDYgKzY3MjEsMTggQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRF IGZ1bmNfbmFtZSBhZ2dyX2FyZ3MgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+cmVsYXRpb24g PSAkNDsKIAkJCQkJbi0+c3VibmFtZSA9ICQ3OwogCQkJCQluLT5uZXduYW1lID0gJDk7CisJ CQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJ fQorCQkJfCBBTFRFUiBGT1JFSUdOIFRBQkxFIElGX1AgRVhJU1RTIHJlbGF0aW9uX2V4cHIg UkVOQU1FIG9wdF9jb2x1bW4gbmFtZSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10 ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpF Q1RfQ09MVU1OOworCQkJCQluLT5yZWxhdGlvblR5cGUgPSBPQkpFQ1RfRk9SRUlHTl9UQUJM RTsKKwkJCQkJbi0+cmVsYXRpb24gPSAkNjsKKwkJCQkJbi0+c3VibmFtZSA9ICQ5OworCQkJ CQluLT5uZXduYW1lID0gJDExOworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKIAkJCQkJ JCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBUUklHR0VSIG5hbWUgT04gcXVh bGlmaWVkX25hbWUgUkVOQU1FIFRPIG5hbWUKQEAgLTY1OTAsNiArNjc0Miw3IEBAIFJlbmFt ZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBmdW5jX25hbWUgYWdncl9hcmdzIFJFTkFNRSBUTyBu YW1lCiAJCQkJCW4tPnJlbGF0aW9uID0gJDU7CiAJCQkJCW4tPnN1Ym5hbWUgPSAkMzsKIAkJ CQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJ CSQkID0gKE5vZGUgKiluOwogCQkJCX0KIAkJCXwgQUxURVIgUk9MRSBSb2xlSWQgUkVOQU1F IFRPIFJvbGVJZApAQCAtNjU5OCw2ICs2NzUxLDcgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdH UkVHQVRFIGZ1bmNfbmFtZSBhZ2dyX2FyZ3MgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+cmVu YW1lVHlwZSA9IE9CSkVDVF9ST0xFOwogCQkJCQluLT5zdWJuYW1lID0gJDM7CiAJCQkJCW4t Pm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9 IChOb2RlICopbjsKIAkJCQl9CiAJCQl8IEFMVEVSIFVTRVIgUm9sZUlkIFJFTkFNRSBUTyBS b2xlSWQKQEAgLTY2MDYsNiArNjc2MCw3IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FU RSBmdW5jX25hbWUgYWdncl9hcmdzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPnJlbmFtZVR5 cGUgPSBPQkpFQ1RfUk9MRTsKIAkJCQkJbi0+c3VibmFtZSA9ICQzOwogCQkJCQluLT5uZXdu YW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9k ZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBUQUJMRVNQQUNFIG5hbWUgUkVOQU1FIFRPIG5h bWUKQEAgLTY2MTQsNiArNjc2OSw3IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBm dW5jX25hbWUgYWdncl9hcmdzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPnJlbmFtZVR5cGUg PSBPQkpFQ1RfVEFCTEVTUEFDRTsKIAkJCQkJbi0+c3VibmFtZSA9ICQzOwogCQkJCQluLT5u ZXduYW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAo Tm9kZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBUQUJMRVNQQUNFIG5hbWUgU0VUIHJlbG9w dGlvbnMKQEAgLTY2NDAsNiArNjc5Niw3IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FU RSBmdW5jX25hbWUgYWdncl9hcmdzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPnJlbmFtZVR5 cGUgPSBPQkpFQ1RfVFNQQVJTRVI7CiAJCQkJCW4tPm9iamVjdCA9ICQ1OwogCQkJCQluLT5u ZXduYW1lID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAo Tm9kZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBURVhUX1AgU0VBUkNIIERJQ1RJT05BUlkg YW55X25hbWUgUkVOQU1FIFRPIG5hbWUKQEAgLTY2NDgsNiArNjgwNSw3IEBAIFJlbmFtZVN0 bXQ6IEFMVEVSIEFHR1JFR0FURSBmdW5jX25hbWUgYWdncl9hcmdzIFJFTkFNRSBUTyBuYW1l CiAJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVFNESUNUSU9OQVJZOwogCQkJCQluLT5v YmplY3QgPSAkNTsKIAkJCQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29r ID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0KIAkJCXwgQUxURVIgVEVY VF9QIFNFQVJDSCBURU1QTEFURSBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQpAQCAtNjY1Niw2 ICs2ODE0LDcgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRFIGZ1bmNfbmFtZSBhZ2dy X2FyZ3MgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9UU1RF TVBMQVRFOwogCQkJCQluLT5vYmplY3QgPSAkNTsKIAkJCQkJbi0+bmV3bmFtZSA9ICQ4Owor CQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJ CX0KIAkJCXwgQUxURVIgVEVYVF9QIFNFQVJDSCBDT05GSUdVUkFUSU9OIGFueV9uYW1lIFJF TkFNRSBUTyBuYW1lCkBAIC02NjY0LDYgKzY4MjMsNyBAQCBSZW5hbWVTdG10OiBBTFRFUiBB R0dSRUdBVEUgZnVuY19uYW1lIGFnZ3JfYXJncyBSRU5BTUUgVE8gbmFtZQogCQkJCQluLT5y ZW5hbWVUeXBlID0gT0JKRUNUX1RTQ09ORklHVVJBVElPTjsKIAkJCQkJbi0+b2JqZWN0ID0g JDU7CiAJCQkJCW4tPm5ld25hbWUgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNl OwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCQl8IEFMVEVSIFRZUEVfUCBhbnlf bmFtZSBSRU5BTUUgVE8gbmFtZQpAQCAtNjY3Miw2ICs2ODMyLDcgQEAgUmVuYW1lU3RtdDog QUxURVIgQUdHUkVHQVRFIGZ1bmNfbmFtZSBhZ2dyX2FyZ3MgUkVOQU1FIFRPIG5hbWUKIAkJ CQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9UWVBFOwogCQkJCQluLT5vYmplY3QgPSAkMzsK IAkJCQkJbi0+bmV3bmFtZSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJ CQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0KIAkJCXwgQUxURVIgVFlQRV9QIGFueV9uYW1l IFJFTkFNRSBBVFRSSUJVVEUgbmFtZSBUTyBuYW1lIG9wdF9kcm9wX2JlaGF2aW9yCkBAIC02 NjgzLDYgKzY4NDQsNyBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgZnVuY19uYW1l IGFnZ3JfYXJncyBSRU5BTUUgVE8gbmFtZQogCQkJCQluLT5zdWJuYW1lID0gJDY7CiAJCQkJ CW4tPm5ld25hbWUgPSAkODsKIAkJCQkJbi0+YmVoYXZpb3IgPSAkOTsKKwkJCQkJbi0+bWlz c2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCTsKQEAg LTY3MDksNiArNjg3MSw3IEBAIEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+b2Jq ZWN0ID0gJDM7CiAJCQkJCW4tPm9iamFyZyA9ICQ0OwogCQkJCQluLT5uZXdzY2hlbWEgPSAk NzsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopbjsK IAkJCQl9CiAJCQl8IEFMVEVSIENPTExBVElPTiBhbnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUK QEAgLTY3MTcsNiArNjg4MCw3IEBAIEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+ b2JqZWN0VHlwZSA9IE9CSkVDVF9DT0xMQVRJT047CiAJCQkJCW4tPm9iamVjdCA9ICQzOwog CQkJCQluLT5uZXdzY2hlbWEgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwog CQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCQl8IEFMVEVSIENPTlZFUlNJT05fUCBh bnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUKQEAgLTY3MjUsNiArNjg4OSw3IEBAIEFsdGVyT2Jq ZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9DT05WRVJTSU9O OwogCQkJCQluLT5vYmplY3QgPSAkMzsKIAkJCQkJbi0+bmV3c2NoZW1hID0gJDY7CisJCQkJ CW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQog CQkJfCBBTFRFUiBET01BSU5fUCBhbnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUKQEAgLTY3MzMs NiArNjg5OCw3IEBAIEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+b2JqZWN0VHlw ZSA9IE9CSkVDVF9ET01BSU47CiAJCQkJCW4tPm9iamVjdCA9ICQzOwogCQkJCQluLT5uZXdz Y2hlbWEgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChO b2RlICopbjsKIAkJCQl9CiAJCQl8IEFMVEVSIEVYVEVOU0lPTiBhbnlfbmFtZSBTRVQgU0NI RU1BIG5hbWUKQEAgLTY3NDEsNiArNjkwNyw3IEBAIEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoK IAkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9FWFRFTlNJT047CiAJCQkJCW4tPm9iamVj dCA9ICQzOwogCQkJCQluLT5uZXdzY2hlbWEgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9 IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCQl8IEFMVEVSIEZVTkNU SU9OIGZ1bmN0aW9uX3dpdGhfYXJndHlwZXMgU0VUIFNDSEVNQSBuYW1lCkBAIC02NzUwLDYg KzY5MTcsNyBAQCBBbHRlck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm9iamVjdCA9ICQz LT5mdW5jbmFtZTsKIAkJCQkJbi0+b2JqYXJnID0gJDMtPmZ1bmNhcmdzOwogCQkJCQluLT5u ZXdzY2hlbWEgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9 IChOb2RlICopbjsKIAkJCQl9CiAJCQl8IEFMVEVSIE9QRVJBVE9SIGFueV9vcGVyYXRvciBv cGVyX2FyZ3R5cGVzIFNFVCBTQ0hFTUEgbmFtZQpAQCAtNjc1OSw2ICs2OTI3LDcgQEAgQWx0 ZXJPYmplY3RTY2hlbWFTdG10OgogCQkJCQluLT5vYmplY3QgPSAkMzsKIAkJCQkJbi0+b2Jq YXJnID0gJDQ7CiAJCQkJCW4tPm5ld3NjaGVtYSA9ICQ3OworCQkJCQluLT5taXNzaW5nX29r ID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0KIAkJCXwgQUxURVIgT1BF UkFUT1IgQ0xBU1MgYW55X25hbWUgVVNJTkcgYWNjZXNzX21ldGhvZCBTRVQgU0NIRU1BIG5h bWUKQEAgLTY3NjgsNiArNjkzNyw3IEBAIEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJ bi0+b2JqZWN0ID0gJDQ7CiAJCQkJCW4tPmFkZG5hbWUgPSAkNjsKIAkJCQkJbi0+bmV3c2No ZW1hID0gJDk7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9k ZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBPUEVSQVRPUiBGQU1JTFkgYW55X25hbWUgVVNJ TkcgYWNjZXNzX21ldGhvZCBTRVQgU0NIRU1BIG5hbWUKQEAgLTY3NzcsNiArNjk0Nyw3IEBA IEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+b2JqZWN0ID0gJDQ7CiAJCQkJCW4t PmFkZG5hbWUgPSAkNjsKIAkJCQkJbi0+bmV3c2NoZW1hID0gJDk7CisJCQkJCW4tPm1pc3Np bmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBBTFRF UiBUQUJMRSByZWxhdGlvbl9leHByIFNFVCBTQ0hFTUEgbmFtZQpAQCAtNjc4NSw2ICs2OTU2 LDE2IEBAIEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+b2JqZWN0VHlwZSA9IE9C SkVDVF9UQUJMRTsKIAkJCQkJbi0+cmVsYXRpb24gPSAkMzsKIAkJCQkJbi0+bmV3c2NoZW1h ID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAq KW47CisJCQkJfQorCQkJfCBBTFRFUiBUQUJMRSBJRl9QIEVYSVNUUyByZWxhdGlvbl9leHBy IFNFVCBTQ0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpu ID0gbWFrZU5vZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlw ZSA9IE9CSkVDVF9UQUJMRTsKKwkJCQkJbi0+cmVsYXRpb24gPSAkNTsKKwkJCQkJbi0+bmV3 c2NoZW1hID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOwogCQkJCQkkJCA9IChO b2RlICopbjsKIAkJCQl9CiAJCQl8IEFMVEVSIFRFWFRfUCBTRUFSQ0ggUEFSU0VSIGFueV9u YW1lIFNFVCBTQ0hFTUEgbmFtZQpAQCAtNjc5Myw2ICs2OTc0LDcgQEAgQWx0ZXJPYmplY3RT Y2hlbWFTdG10OgogCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1RTUEFSU0VSOwogCQkJ CQluLT5vYmplY3QgPSAkNTsKIAkJCQkJbi0+bmV3c2NoZW1hID0gJDg7CisJCQkJCW4tPm1p c3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBB TFRFUiBURVhUX1AgU0VBUkNIIERJQ1RJT05BUlkgYW55X25hbWUgU0VUIFNDSEVNQSBuYW1l CkBAIC02ODAxLDYgKzY5ODMsNyBAQCBBbHRlck9iamVjdFNjaGVtYVN0bXQ6CiAJCQkJCW4t Pm9iamVjdFR5cGUgPSBPQkpFQ1RfVFNESUNUSU9OQVJZOwogCQkJCQluLT5vYmplY3QgPSAk NTsKIAkJCQkJbi0+bmV3c2NoZW1hID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxz ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBURVhUX1AgU0VB UkNIIFRFTVBMQVRFIGFueV9uYW1lIFNFVCBTQ0hFTUEgbmFtZQpAQCAtNjgwOSw2ICs2OTky LDcgQEAgQWx0ZXJPYmplY3RTY2hlbWFTdG10OgogCQkJCQluLT5vYmplY3RUeXBlID0gT0JK RUNUX1RTVEVNUExBVEU7CiAJCQkJCW4tPm9iamVjdCA9ICQ1OwogCQkJCQluLT5uZXdzY2hl bWEgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2Rl ICopbjsKIAkJCQl9CiAJCQl8IEFMVEVSIFRFWFRfUCBTRUFSQ0ggQ09ORklHVVJBVElPTiBh bnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUKQEAgLTY4MTcsNiArNzAwMSw3IEBAIEFsdGVyT2Jq ZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9UU0NPTkZJR1VS QVRJT047CiAJCQkJCW4tPm9iamVjdCA9ICQ1OwogCQkJCQluLT5uZXdzY2hlbWEgPSAkODsK KwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJ CQl9CiAJCQl8IEFMVEVSIFNFUVVFTkNFIHF1YWxpZmllZF9uYW1lIFNFVCBTQ0hFTUEgbmFt ZQpAQCAtNjgyNSw2ICs3MDEwLDE2IEBAIEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJ bi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9TRVFVRU5DRTsKIAkJCQkJbi0+cmVsYXRpb24gPSAk MzsKIAkJCQkJbi0+bmV3c2NoZW1hID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxz ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBTRVFVRU5DRSBJ Rl9QIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBTRVQgU0NIRU1BIG5hbWUKKwkJCQl7CisJCQkJ CUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT2JqZWN0U2NoZW1h U3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfU0VRVUVOQ0U7CisJCQkJCW4t PnJlbGF0aW9uID0gJDU7CisJCQkJCW4tPm5ld3NjaGVtYSA9ICQ4OworCQkJCQluLT5taXNz aW5nX29rID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBBTFRF UiBWSUVXIHF1YWxpZmllZF9uYW1lIFNFVCBTQ0hFTUEgbmFtZQpAQCAtNjgzMyw2ICs3MDI4 LDE2IEBAIEFsdGVyT2JqZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+b2JqZWN0VHlwZSA9IE9C SkVDVF9WSUVXOwogCQkJCQluLT5yZWxhdGlvbiA9ICQzOwogCQkJCQluLT5uZXdzY2hlbWEg PSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICop bjsKKwkJCQl9CisJCQl8IEFMVEVSIFZJRVcgSUZfUCBFWElTVFMgcXVhbGlmaWVkX25hbWUg U0VUIFNDSEVNQSBuYW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4g PSBtYWtlTm9kZShBbHRlck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBl ID0gT0JKRUNUX1ZJRVc7CisJCQkJCW4tPnJlbGF0aW9uID0gJDU7CisJCQkJCW4tPm5ld3Nj aGVtYSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9k ZSAqKW47CiAJCQkJfQogCQkJfCBBTFRFUiBGT1JFSUdOIFRBQkxFIHJlbGF0aW9uX2V4cHIg U0VUIFNDSEVNQSBuYW1lCkBAIC02ODQxLDYgKzcwNDYsMTYgQEAgQWx0ZXJPYmplY3RTY2hl bWFTdG10OgogCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX0ZPUkVJR05fVEFCTEU7CiAJ CQkJCW4tPnJlbGF0aW9uID0gJDQ7CiAJCQkJCW4tPm5ld3NjaGVtYSA9ICQ3OworCQkJCQlu LT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJ CXwgQUxURVIgRk9SRUlHTiBUQUJMRSBJRl9QIEVYSVNUUyByZWxhdGlvbl9leHByIFNFVCBT Q0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFr ZU5vZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9C SkVDVF9GT1JFSUdOX1RBQkxFOworCQkJCQluLT5yZWxhdGlvbiA9ICQ2OworCQkJCQluLT5u ZXdzY2hlbWEgPSAkOTsKKwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CiAJCQkJCSQkID0g KE5vZGUgKiluOwogCQkJCX0KIAkJCXwgQUxURVIgVFlQRV9QIGFueV9uYW1lIFNFVCBTQ0hF TUEgbmFtZQpAQCAtNjg0OSw2ICs3MDY0LDcgQEAgQWx0ZXJPYmplY3RTY2hlbWFTdG10Ogog CQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1RZUEU7CiAJCQkJCW4tPm9iamVjdCA9ICQz OwogCQkJCQluLT5uZXdzY2hlbWEgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNl OwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdXRpbGNtZC5jCmluZGV4IDk5MTU3YzUuLmYxYTEwOGEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3V0aWxjbWQuYwpAQCAtMjI4Myw3ICsyMjgzLDE1IEBAIHRyYW5zZm9ybUFsdGVy VGFibGVTdG10KEFsdGVyVGFibGVTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmlu ZykKIAkgKiBuZXcgY29tbWFuZHMgd2UgYWRkIGFmdGVyIHRoaXMgbXVzdCBub3QgdXBncmFk ZSB0aGUgbG9jayBsZXZlbAogCSAqIHJlcXVlc3RlZCBoZXJlLgogCSAqLwotCXJlbCA9IHJl bGF0aW9uX29wZW5ydihzdG10LT5yZWxhdGlvbiwgbG9ja21vZGUpOworCXJlbCA9IHJlbGF0 aW9uX29wZW5ydl9leHRlbmRlZChzdG10LT5yZWxhdGlvbiwgbG9ja21vZGUsIHN0bXQtPm1p c3Npbmdfb2spOworCWlmIChyZWwgPT0gTlVMTCkKKwl7CisJCS8qIHRoaXMgbWVzc2FnZSBp cyBjb25zaXN0ZW50IHdpdGggcmVsYXRpb25fb3BlbnJ2ICovCisJCWVyZXBvcnQoTk9USUNF LAorCQkJCShlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBp bmciLAorCQkJCQkJCXN0bXQtPnJlbGF0aW9uLT5yZWxuYW1lKSkpOworCQlyZXR1cm4gTklM OworCX0KIAogCS8qIFNldCB1cCBwc3RhdGUgYW5kIENyZWF0ZVN0bXRDb250ZXh0ICovCiAJ cHN0YXRlID0gbWFrZV9wYXJzZXN0YXRlKE5VTEwpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCBk ZTE2YTYxLi41YjgxYzBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtNzE0LDM0ICs3MTQsNDEg QEAgc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkoTm9kZSAqcGFyc2V0cmVlLAogCQkJCWxvY2tt b2RlID0gQWx0ZXJUYWJsZUdldExvY2tMZXZlbChhdHN0bXQtPmNtZHMpOwogCQkJCXJlbGlk ID0gQWx0ZXJUYWJsZUxvb2t1cFJlbGF0aW9uKGF0c3RtdCwgbG9ja21vZGUpOwogCi0JCQkJ LyogUnVuIHBhcnNlIGFuYWx5c2lzIC4uLiAqLwotCQkJCXN0bXRzID0gdHJhbnNmb3JtQWx0 ZXJUYWJsZVN0bXQoYXRzdG10LCBxdWVyeVN0cmluZyk7Ci0KLQkJCQkvKiAuLi4gYW5kIGRv IGl0ICovCi0JCQkJZm9yZWFjaChsLCBzdG10cykKKwkJCQlpZiAoT2lkSXNWYWxpZChyZWxp ZCkpCiAJCQkJewotCQkJCQlOb2RlCSAgICpzdG10ID0gKE5vZGUgKikgbGZpcnN0KGwpOwor CQkJCQkvKiBSdW4gcGFyc2UgYW5hbHlzaXMgLi4uICovCisJCQkJCXN0bXRzID0gdHJhbnNm b3JtQWx0ZXJUYWJsZVN0bXQoYXRzdG10LCBxdWVyeVN0cmluZyk7CiAKLQkJCQkJaWYgKElz QShzdG10LCBBbHRlclRhYmxlU3RtdCkpCi0JCQkJCXsKLQkJCQkJCS8qIERvIHRoZSB0YWJs ZSBhbHRlcmF0aW9uIHByb3BlciAqLwotCQkJCQkJQWx0ZXJUYWJsZShyZWxpZCwgbG9ja21v ZGUsIChBbHRlclRhYmxlU3RtdCAqKSBzdG10KTsKLQkJCQkJfQotCQkJCQllbHNlCisJCQkJ CS8qIC4uLiBhbmQgZG8gaXQgKi8KKwkJCQkJZm9yZWFjaChsLCBzdG10cykKIAkJCQkJewot CQkJCQkJLyogUmVjdXJzZSBmb3IgYW55dGhpbmcgZWxzZSAqLwotCQkJCQkJUHJvY2Vzc1V0 aWxpdHkoc3RtdCwKLQkJCQkJCQkJCSAgIHF1ZXJ5U3RyaW5nLAotCQkJCQkJCQkJICAgcGFy YW1zLAotCQkJCQkJCQkJICAgZmFsc2UsCi0JCQkJCQkJCQkgICBOb25lX1JlY2VpdmVyLAot CQkJCQkJCQkJICAgTlVMTCk7Ci0JCQkJCX0KKwkJCQkJCU5vZGUJICAgKnN0bXQgPSAoTm9k ZSAqKSBsZmlyc3QobCk7CiAKLQkJCQkJLyogTmVlZCBDQ0kgYmV0d2VlbiBjb21tYW5kcyAq LwotCQkJCQlpZiAobG5leHQobCkgIT0gTlVMTCkKLQkJCQkJCUNvbW1hbmRDb3VudGVySW5j cmVtZW50KCk7CisJCQkJCQlpZiAoSXNBKHN0bXQsIEFsdGVyVGFibGVTdG10KSkKKwkJCQkJ CXsKKwkJCQkJCQkvKiBEbyB0aGUgdGFibGUgYWx0ZXJhdGlvbiBwcm9wZXIgKi8KKwkJCQkJ CQlBbHRlclRhYmxlKHJlbGlkLCBsb2NrbW9kZSwgKEFsdGVyVGFibGVTdG10ICopIHN0bXQp OworCQkJCQkJfQorCQkJCQkJZWxzZQorCQkJCQkJeworCQkJCQkJCS8qIFJlY3Vyc2UgZm9y IGFueXRoaW5nIGVsc2UgKi8KKwkJCQkJCQlQcm9jZXNzVXRpbGl0eShzdG10LAorCQkJCQkJ CQkJCSAgIHF1ZXJ5U3RyaW5nLAorCQkJCQkJCQkJCSAgIHBhcmFtcywKKwkJCQkJCQkJCQkg ICBmYWxzZSwKKwkJCQkJCQkJCQkgICBOb25lX1JlY2VpdmVyLAorCQkJCQkJCQkJCSAgIE5V TEwpOworCQkJCQkJfQorCisJCQkJCQkvKiBOZWVkIENDSSBiZXR3ZWVuIGNvbW1hbmRzICov CisJCQkJCQlpZiAobG5leHQobCkgIT0gTlVMTCkKKwkJCQkJCQlDb21tYW5kQ291bnRlcklu Y3JlbWVudCgpOworCQkJCQl9CiAJCQkJfQorCQkJCWVsc2UKKwkJCQkJZXJlcG9ydChOT1RJ Q0UsCisJCQkJCQkoZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNr aXBwaW5nIiwKKwkJCQkJCQlhdHN0bXQtPnJlbGF0aW9uLT5yZWxuYW1lKSkpOwogCQkJfQog CQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBkY2UwZTcyLi4xZDMz Y2ViIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0xMTcxLDYgKzExNzEsNyBAQCB0 eXBlZGVmIHN0cnVjdCBBbHRlclRhYmxlU3RtdAogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJ LyogdGFibGUgdG8gd29yayBvbiAqLwogCUxpc3QJICAgKmNtZHM7CQkJLyogbGlzdCBvZiBz dWJjb21tYW5kcyAqLwogCU9iamVjdFR5cGUJcmVsa2luZDsJCS8qIHR5cGUgb2Ygb2JqZWN0 ICovCisJYm9vbAkgICBtaXNzaW5nX29rOwkJLyogc2tpcCBlcnJvciBpZiB0YWJsZSBtaXNz aW5nICovCiB9IEFsdGVyVGFibGVTdG10OwogCiB0eXBlZGVmIGVudW0gQWx0ZXJUYWJsZVR5 cGUKQEAgLTE4MDcsNiArMTgwOCw3IEBAIHR5cGVkZWYgc3RydWN0IEFsdGVyU2VxU3RtdAog CU5vZGVUYWcJCXR5cGU7CiAJUmFuZ2VWYXIgICAqc2VxdWVuY2U7CQkvKiB0aGUgc2VxdWVu Y2UgdG8gYWx0ZXIgKi8KIAlMaXN0CSAgICpvcHRpb25zOworCWJvb2wJCW1pc3Npbmdfb2s7 CQkvKiBza2lwIGVycm9yIGlmIGEgcm9sZSBpcyBtaXNzaW5nPyAqLwogfSBBbHRlclNlcVN0 bXQ7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxMTcsNiArMjExOSw3IEBA IHR5cGVkZWYgc3RydWN0IFJlbmFtZVN0bXQKIAkJCQkJCQkJICogdHJpZ2dlciwgZXRjKSAq LwogCWNoYXIJICAgKm5ld25hbWU7CQkvKiB0aGUgbmV3IG5hbWUgKi8KIAlEcm9wQmVoYXZp b3IgYmVoYXZpb3I7CQkvKiBSRVNUUklDVCBvciBDQVNDQURFIGJlaGF2aW9yICovCisJYm9v bAkJbWlzc2luZ19vazsJLyogc2tpcCBlcnJvciBpZiBtaXNzaW5nPyAqLwogfSBSZW5hbWVT dG10OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMTMyLDYgKzIxMzUsNyBA QCB0eXBlZGVmIHN0cnVjdCBBbHRlck9iamVjdFNjaGVtYVN0bXQKIAlMaXN0CSAgICpvYmph cmc7CQkJLyogYXJndW1lbnQgdHlwZXMsIGlmIGFwcGxpY2FibGUgKi8KIAljaGFyCSAgICph ZGRuYW1lOwkJLyogYWRkaXRpb25hbCBuYW1lIGlmIG5lZWRlZCAqLwogCWNoYXIJICAgKm5l d3NjaGVtYTsJCS8qIHRoZSBuZXcgc2NoZW1hICovCisJYm9vbAkJbWlzc2luZ19vazsJLyog c2tpcCBlcnJvciBpZiBtaXNzaW5nPyAqLwogfSBBbHRlck9iamVjdFNjaGVtYVN0bXQ7CiAK IC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9hbHRlcl90YWJsZS5vdXQKaW5kZXggNTcwOTZmMi4uZTk5MjU0OSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQKQEAgLTEyOCw2ICsxMjgsMTAg QEAgRFJPUCBUQUJMRSB0bXBfbmV3OwogRFJPUCBUQUJMRSB0bXBfbmV3MjsKIC0tIEFMVEVS IFRBQkxFIC4uLiBSRU5BTUUgb24gbm9uLXRhYmxlIHJlbGF0aW9ucwogLS0gcmVuYW1pbmcg aW5kZXhlcyAoRklYTUU6IHRoaXMgc2hvdWxkIHByb2JhYmx5IHRlc3QgdGhlIGluZGV4J3Mg ZnVuY3Rpb25hbGl0eSkKK0FMVEVSIElOREVYIElGIEVYSVNUUyBfX29uZWtfdW5pcXVlMSBS RU5BTUUgVE8gdG1wX29uZWtfdW5pcXVlMTsKK05PVElDRTogIHJlbGF0aW9uICJfX29uZWtf dW5pcXVlMSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCitBTFRFUiBJTkRFWCBJRiBFWElT VFMgX190bXBfb25la191bmlxdWUxIFJFTkFNRSBUTyBvbmVrX3VuaXF1ZTE7CitOT1RJQ0U6 ICByZWxhdGlvbiAiX190bXBfb25la191bmlxdWUxIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBp bmcKIEFMVEVSIElOREVYIG9uZWtfdW5pcXVlMSBSRU5BTUUgVE8gdG1wX29uZWtfdW5pcXVl MTsKIEFMVEVSIElOREVYIHRtcF9vbmVrX3VuaXF1ZTEgUkVOQU1FIFRPIG9uZWtfdW5pcXVl MTsKIC0tIHJlbmFtaW5nIHZpZXdzCkBAIC0xMTg1LDYgKzExODksMTEgQEAgRVJST1I6ICBp bmhlcml0ZWQgY29sdW1uICJhIiBtdXN0IGJlIHJlbmFtZWQgaW4gY2hpbGQgdGFibGVzIHRv bwogLS0gdGhlc2Ugc2hvdWxkIHdvcmsKIGFsdGVyIHRhYmxlIHJlbmFtZUNvbHVtbiByZW5h bWUgY29sdW1uIGEgdG8gZDsKIGFsdGVyIHRhYmxlIHJlbmFtZUNvbHVtbkNoaWxkIHJlbmFt ZSBjb2x1bW4gYiB0byBhOworLS0gdGhlc2Ugc2hvdWxkIHdvcmsKK2FsdGVyIHRhYmxlIGlm IGV4aXN0cyBkb2VzbnRfZXhpc3RfdGFiIHJlbmFtZSBjb2x1bW4gYSB0byBkOworTk9USUNF OiAgcmVsYXRpb24gImRvZXNudF9leGlzdF90YWIiIGRvZXMgbm90IGV4aXN0LCBza2lwcGlu ZworYWx0ZXIgdGFibGUgaWYgZXhpc3RzIGRvZXNudF9leGlzdF90YWIgcmVuYW1lIGNvbHVt biBiIHRvIGE7CitOT1RJQ0U6ICByZWxhdGlvbiAiZG9lc250X2V4aXN0X3RhYiIgZG9lcyBu b3QgZXhpc3QsIHNraXBwaW5nCiAtLSB0aGlzIHNob3VsZCB3b3JrCiBhbHRlciB0YWJsZSBy ZW5hbWVDb2x1bW4gYWRkIGNvbHVtbiB3IGludDsKIC0tIHRoaXMgc2hvdWxkIGZhaWwKQEAg LTIxMzAsMyArMjEzOSw0MCBAQCBFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJ0ZXN0 X2Ryb3BfY29uc3RyX2NoaWxkIiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50CiBERVRBSUw6 ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCkuCiBEUk9QIFRBQkxFIHRlc3RfZHJvcF9j b25zdHJfcGFyZW50IENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxl IHRlc3RfZHJvcF9jb25zdHJfY2hpbGQKKy0tCistLSBJRiBFWElTVFMgdGVzdAorLS0KK0FM VEVSIFRBQkxFIElGIEVYSVNUUyB0dDggQUREIENPTFVNTiBmIGludDsKK05PVElDRTogIHJl bGF0aW9uICJ0dDgiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworQUxURVIgVEFCTEUgSUYg RVhJU1RTIHR0OCBBREQgQ09OU1RSQUlOVCB4eHggUFJJTUFSWSBLRVkoZik7CitOT1RJQ0U6 ICByZWxhdGlvbiAidHQ4IiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKK0FMVEVSIFRBQkxF IElGIEVYSVNUUyB0dDggQUREIENIRUNLIChmIEJFVFdFRU4gMCBBTkQgMTApOworTk9USUNF OiAgcmVsYXRpb24gInR0OCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCitBTFRFUiBUQUJM RSBJRiBFWElTVFMgdHQ4IEFMVEVSIENPTFVNTiBmIFNFVCBERUZBVUxUIDA7CitOT1RJQ0U6 ICByZWxhdGlvbiAidHQ4IiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKK0FMVEVSIFRBQkxF IElGIEVYSVNUUyB0dDggUkVOQU1FIENPTFVNTiBmIFRPIGYxOworTk9USUNFOiAgcmVsYXRp b24gInR0OCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCitBTFRFUiBUQUJMRSBJRiBFWElT VFMgdHQ4IFNFVCBTQ0hFTUEgYWx0ZXIyOworTk9USUNFOiAgcmVsYXRpb24gInR0OCIgZG9l cyBub3QgZXhpc3QsIHNraXBwaW5nCitDUkVBVEUgVEFCTEUgdHQ4KGEgaW50KTsKK0NSRUFU RSBTQ0hFTUEgYWx0ZXIyOworQUxURVIgVEFCTEUgSUYgRVhJU1RTIHR0OCBBREQgQ09MVU1O IGYgaW50OworQUxURVIgVEFCTEUgSUYgRVhJU1RTIHR0OCBBREQgQ09OU1RSQUlOVCB4eHgg UFJJTUFSWSBLRVkoZik7CitOT1RJQ0U6ICBBTFRFUiBUQUJMRSAvIEFERCBQUklNQVJZIEtF WSB3aWxsIGNyZWF0ZSBpbXBsaWNpdCBpbmRleCAieHh4IiBmb3IgdGFibGUgInR0OCIKK0FM VEVSIFRBQkxFIElGIEVYSVNUUyB0dDggQUREIENIRUNLIChmIEJFVFdFRU4gMCBBTkQgMTAp OworQUxURVIgVEFCTEUgSUYgRVhJU1RTIHR0OCBBTFRFUiBDT0xVTU4gZiBTRVQgREVGQVVM VCAwOworQUxURVIgVEFCTEUgSUYgRVhJU1RTIHR0OCBSRU5BTUUgQ09MVU1OIGYgVE8gZjE7 CitBTFRFUiBUQUJMRSBJRiBFWElTVFMgdHQ4IFNFVCBTQ0hFTUEgYWx0ZXIyOworXGQgYWx0 ZXIyLnR0OAorICAgICAgICAgIFRhYmxlICJhbHRlcjIudHQ4IgorIENvbHVtbiB8ICBUeXBl ICAgfCAgICAgTW9kaWZpZXJzICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgCisgZjEgICAgIHwgaW50ZWdlciB8 IG5vdCBudWxsIGRlZmF1bHQgMAorSW5kZXhlczoKKyAgICAieHh4IiBQUklNQVJZIEtFWSwg YnRyZWUgKGYxKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInR0OF9mX2NoZWNrIiBDSEVD SyAoZjEgPj0gMCBBTkQgZjEgPD0gMTApCisKK0RST1AgVEFCTEUgYWx0ZXIyLnR0ODsKK0RS T1AgU0NIRU1BIGFsdGVyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZm9yZWlnbl9kYXRhLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yZWln bl9kYXRhLm91dAppbmRleCAyYTZlODc2Li5jMTJlMGQwIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVpZ25fZGF0YS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0CkBAIC03ODksNiArNzg5LDUwIEBAIEFM VEVSIEZPUkVJR04gVEFCTEUgZm9yZWlnbl9zY2hlbWEuZnQxIFJFTkFNRSBUTyBmb3JlaWdu X3RhYmxlXzE7CiBTZXJ2ZXI6IHMwCiBGRFcgT3B0aW9uczogKHF1b3RlICd+JywgImJlIHF1 b3RlZCIgJ3ZhbHVlJywgZXNjYXBlICdAJykKIAorLS0gYWx0ZXIgbm9leGlzdGluZyB0YWJs ZQorQUxURVIgRk9SRUlHTiBUQUJMRSBJRiBFWElTVFMgZG9lc250X2V4aXN0X2Z0MSBBREQg Q09MVU1OIGM0IGludGVnZXI7CitOT1RJQ0U6ICByZWxhdGlvbiAiZG9lc250X2V4aXN0X2Z0 MSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCitBTFRFUiBGT1JFSUdOIFRBQkxFIElGIEVY SVNUUyBkb2VzbnRfZXhpc3RfZnQxIEFERCBDT0xVTU4gYzYgaW50ZWdlcjsKK05PVElDRTog IHJlbGF0aW9uICJkb2VzbnRfZXhpc3RfZnQxIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcK K0FMVEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RTIGRvZXNudF9leGlzdF9mdDEgQUREIENP TFVNTiBjNyBpbnRlZ2VyIE5PVCBOVUxMOworTk9USUNFOiAgcmVsYXRpb24gImRvZXNudF9l eGlzdF9mdDEiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworQUxURVIgRk9SRUlHTiBUQUJM RSBJRiBFWElTVFMgZG9lc250X2V4aXN0X2Z0MSBBREQgQ09MVU1OIGM4IGludGVnZXI7CitO T1RJQ0U6ICByZWxhdGlvbiAiZG9lc250X2V4aXN0X2Z0MSIgZG9lcyBub3QgZXhpc3QsIHNr aXBwaW5nCitBTFRFUiBGT1JFSUdOIFRBQkxFIElGIEVYSVNUUyBkb2VzbnRfZXhpc3RfZnQx IEFERCBDT0xVTU4gYzkgaW50ZWdlcjsKK05PVElDRTogIHJlbGF0aW9uICJkb2VzbnRfZXhp c3RfZnQxIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKK0FMVEVSIEZPUkVJR04gVEFCTEUg SUYgRVhJU1RTIGRvZXNudF9leGlzdF9mdDEgQUREIENPTFVNTiBjMTAgaW50ZWdlciBPUFRJ T05TIChwMSAndjEnKTsKK05PVElDRTogIHJlbGF0aW9uICJkb2VzbnRfZXhpc3RfZnQxIiBk b2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKK0FMVEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RT IGRvZXNudF9leGlzdF9mdDEgQUxURVIgQ09MVU1OIGM2IFNFVCBOT1QgTlVMTDsKK05PVElD RTogIHJlbGF0aW9uICJkb2VzbnRfZXhpc3RfZnQxIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBp bmcKK0FMVEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RTIGRvZXNudF9leGlzdF9mdDEgQUxU RVIgQ09MVU1OIGM3IERST1AgTk9UIE5VTEw7CitOT1RJQ0U6ICByZWxhdGlvbiAiZG9lc250 X2V4aXN0X2Z0MSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCitBTFRFUiBGT1JFSUdOIFRB QkxFIElGIEVYSVNUUyBkb2VzbnRfZXhpc3RfZnQxIEFMVEVSIENPTFVNTiBjOCBUWVBFIGNo YXIoMTApOworTk9USUNFOiAgcmVsYXRpb24gImRvZXNudF9leGlzdF9mdDEiIGRvZXMgbm90 IGV4aXN0LCBza2lwcGluZworQUxURVIgRk9SRUlHTiBUQUJMRSBJRiBFWElTVFMgZG9lc250 X2V4aXN0X2Z0MSBBTFRFUiBDT0xVTU4gYzggU0VUIERBVEEgVFlQRSB0ZXh0OworTk9USUNF OiAgcmVsYXRpb24gImRvZXNudF9leGlzdF9mdDEiIGRvZXMgbm90IGV4aXN0LCBza2lwcGlu ZworQUxURVIgRk9SRUlHTiBUQUJMRSBJRiBFWElTVFMgZG9lc250X2V4aXN0X2Z0MSBBTFRF UiBDT0xVTU4gYzcgT1BUSU9OUyAoQUREIHAxICd2MScsIEFERCBwMiAndjInKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgIEFMVEVSIENPTFVNTiBjOCBPUFRJT05TIChBREQgcDEgJ3Yx JywgQUREIHAyICd2MicpOworTk9USUNFOiAgcmVsYXRpb24gImRvZXNudF9leGlzdF9mdDEi IGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworQUxURVIgRk9SRUlHTiBUQUJMRSBJRiBFWElT VFMgZG9lc250X2V4aXN0X2Z0MSBBTFRFUiBDT0xVTU4gYzggT1BUSU9OUyAoU0VUIHAyICdW MicsIERST1AgcDEpOworTk9USUNFOiAgcmVsYXRpb24gImRvZXNudF9leGlzdF9mdDEiIGRv ZXMgbm90IGV4aXN0LCBza2lwcGluZworQUxURVIgRk9SRUlHTiBUQUJMRSBJRiBFWElTVFMg ZG9lc250X2V4aXN0X2Z0MSBEUk9QIENPTlNUUkFJTlQgSUYgRVhJU1RTIG5vX2NvbnN0Owor Tk9USUNFOiAgcmVsYXRpb24gImRvZXNudF9leGlzdF9mdDEiIGRvZXMgbm90IGV4aXN0LCBz a2lwcGluZworQUxURVIgRk9SRUlHTiBUQUJMRSBJRiBFWElTVFMgZG9lc250X2V4aXN0X2Z0 MSBEUk9QIENPTlNUUkFJTlQgZnQxX2MxX2NoZWNrOworTk9USUNFOiAgcmVsYXRpb24gImRv ZXNudF9leGlzdF9mdDEiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworQUxURVIgRk9SRUlH TiBUQUJMRSBJRiBFWElTVFMgZG9lc250X2V4aXN0X2Z0MSBPV05FUiBUTyByZWdyZXNzX3Rl c3Rfcm9sZTsKK05PVElDRTogIHJlbGF0aW9uICJkb2VzbnRfZXhpc3RfZnQxIiBkb2VzIG5v dCBleGlzdCwgc2tpcHBpbmcKK0FMVEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RTIGRvZXNu dF9leGlzdF9mdDEgT1BUSU9OUyAoRFJPUCBkZWxpbWl0ZXIsIFNFVCBxdW90ZSAnficsIEFE RCBlc2NhcGUgJ0AnKTsKK05PVElDRTogIHJlbGF0aW9uICJkb2VzbnRfZXhpc3RfZnQxIiBk b2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKK0FMVEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RT IGRvZXNudF9leGlzdF9mdDEgRFJPUCBDT0xVTU4gSUYgRVhJU1RTIG5vX2NvbHVtbjsKK05P VElDRTogIHJlbGF0aW9uICJkb2VzbnRfZXhpc3RfZnQxIiBkb2VzIG5vdCBleGlzdCwgc2tp cHBpbmcKK0FMVEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RTIGRvZXNudF9leGlzdF9mdDEg RFJPUCBDT0xVTU4gYzk7CitOT1RJQ0U6ICByZWxhdGlvbiAiZG9lc250X2V4aXN0X2Z0MSIg ZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCitBTFRFUiBGT1JFSUdOIFRBQkxFIElGIEVYSVNU UyBkb2VzbnRfZXhpc3RfZnQxIFNFVCBTQ0hFTUEgZm9yZWlnbl9zY2hlbWE7CitOT1RJQ0U6 ICByZWxhdGlvbiAiZG9lc250X2V4aXN0X2Z0MSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5n CitBTFRFUiBGT1JFSUdOIFRBQkxFIElGIEVYSVNUUyBkb2VzbnRfZXhpc3RfZnQxIFJFTkFN RSBjMSBUTyBmb3JlaWduX2NvbHVtbl8xOworTk9USUNFOiAgcmVsYXRpb24gImRvZXNudF9l eGlzdF9mdDEiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworQUxURVIgRk9SRUlHTiBUQUJM RSBJRiBFWElTVFMgZG9lc250X2V4aXN0X2Z0MSBSRU5BTUUgVE8gZm9yZWlnbl90YWJsZV8x OworTk9USUNFOiAgcmVsYXRpb24gImRvZXNudF9leGlzdF9mdDEiIGRvZXMgbm90IGV4aXN0 LCBza2lwcGluZwogLS0gSW5mb3JtYXRpb24gc2NoZW1hCiBTRUxFQ1QgKiBGUk9NIGluZm9y bWF0aW9uX3NjaGVtYS5mb3JlaWduX2RhdGFfd3JhcHBlcnMgT1JERVIgQlkgMSwgMjsKICBm b3JlaWduX2RhdGFfd3JhcHBlcl9jYXRhbG9nIHwgZm9yZWlnbl9kYXRhX3dyYXBwZXJfbmFt ZSB8IGF1dGhvcml6YXRpb25faWRlbnRpZmllciB8IGxpYnJhcnlfbmFtZSB8IGZvcmVpZ25f ZGF0YV93cmFwcGVyX2xhbmd1YWdlIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXF1ZW5jZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlcXVl bmNlLm91dAppbmRleCBhMTEwYTJlLi4xZGVmMDcwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3NlcXVlbmNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3NlcXVlbmNlLm91dApAQCAtMjQxLDYgKzI0MSw5IEBAIERST1AgU0VRVUVOQ0Ug bXlzZXEyOwogLS0KIC0tIEFsdGVyIHNlcXVlbmNlCiAtLQorQUxURVIgU0VRVUVOQ0UgSUYg RVhJU1RTIHNlcXVlbmNlX3Rlc3QyIFJFU1RBUlQgV0lUSCAyNAorCSBJTkNSRU1FTlQgQlkg NCBNQVhWQUxVRSAzNiBNSU5WQUxVRSA1IENZQ0xFOworTk9USUNFOiAgcmVsYXRpb24gInNl cXVlbmNlX3Rlc3QyIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKIENSRUFURSBTRVFVRU5D RSBzZXF1ZW5jZV90ZXN0MiBTVEFSVCBXSVRIIDMyOwogU0VMRUNUIG5leHR2YWwoJ3NlcXVl bmNlX3Rlc3QyJyk7CiAgbmV4dHZhbCAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2FsdGVyX3RhYmxlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FsdGVyX3RhYmxl LnNxbAppbmRleCBmYWFmYjIyLi5kOWJmMDhkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9hbHRlcl90YWJsZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWx0 ZXJfdGFibGUuc3FsCkBAIC0xNjYsNiArMTY2LDkgQEAgRFJPUCBUQUJMRSB0bXBfbmV3MjsK IAogLS0gQUxURVIgVEFCTEUgLi4uIFJFTkFNRSBvbiBub24tdGFibGUgcmVsYXRpb25zCiAt LSByZW5hbWluZyBpbmRleGVzIChGSVhNRTogdGhpcyBzaG91bGQgcHJvYmFibHkgdGVzdCB0 aGUgaW5kZXgncyBmdW5jdGlvbmFsaXR5KQorQUxURVIgSU5ERVggSUYgRVhJU1RTIF9fb25l a191bmlxdWUxIFJFTkFNRSBUTyB0bXBfb25la191bmlxdWUxOworQUxURVIgSU5ERVggSUYg RVhJU1RTIF9fdG1wX29uZWtfdW5pcXVlMSBSRU5BTUUgVE8gb25la191bmlxdWUxOworCiBB TFRFUiBJTkRFWCBvbmVrX3VuaXF1ZTEgUkVOQU1FIFRPIHRtcF9vbmVrX3VuaXF1ZTE7CiBB TFRFUiBJTkRFWCB0bXBfb25la191bmlxdWUxIFJFTkFNRSBUTyBvbmVrX3VuaXF1ZTE7CiAt LSByZW5hbWluZyB2aWV3cwpAQCAtODk4LDYgKzkwMSwxMCBAQCBhbHRlciB0YWJsZSBvbmx5 IHJlbmFtZUNvbHVtbiByZW5hbWUgY29sdW1uIGEgdG8gZDsKIGFsdGVyIHRhYmxlIHJlbmFt ZUNvbHVtbiByZW5hbWUgY29sdW1uIGEgdG8gZDsKIGFsdGVyIHRhYmxlIHJlbmFtZUNvbHVt bkNoaWxkIHJlbmFtZSBjb2x1bW4gYiB0byBhOwogCistLSB0aGVzZSBzaG91bGQgd29yawor YWx0ZXIgdGFibGUgaWYgZXhpc3RzIGRvZXNudF9leGlzdF90YWIgcmVuYW1lIGNvbHVtbiBh IHRvIGQ7CithbHRlciB0YWJsZSBpZiBleGlzdHMgZG9lc250X2V4aXN0X3RhYiByZW5hbWUg Y29sdW1uIGIgdG8gYTsKKwogLS0gdGhpcyBzaG91bGQgd29yawogYWx0ZXIgdGFibGUgcmVu YW1lQ29sdW1uIGFkZCBjb2x1bW4gdyBpbnQ7CiAKQEAgLTE0NjMsMyArMTQ3MCwyOCBAQCBB TFRFUiBUQUJMRSBPTkxZIHRlc3RfZHJvcF9jb25zdHJfcGFyZW50IERST1AgQ09OU1RSQUlO VCAidGVzdF9kcm9wX2NvbnN0cl9wYXJlbgogLS0gc2hvdWxkIGZhaWwKIElOU0VSVCBJTlRP IHRlc3RfZHJvcF9jb25zdHJfY2hpbGQgKGMpIFZBTFVFUyAoTlVMTCk7CiBEUk9QIFRBQkxF IHRlc3RfZHJvcF9jb25zdHJfcGFyZW50IENBU0NBREU7CisKKy0tCistLSBJRiBFWElTVFMg dGVzdAorLS0KK0FMVEVSIFRBQkxFIElGIEVYSVNUUyB0dDggQUREIENPTFVNTiBmIGludDsK K0FMVEVSIFRBQkxFIElGIEVYSVNUUyB0dDggQUREIENPTlNUUkFJTlQgeHh4IFBSSU1BUlkg S0VZKGYpOworQUxURVIgVEFCTEUgSUYgRVhJU1RTIHR0OCBBREQgQ0hFQ0sgKGYgQkVUV0VF TiAwIEFORCAxMCk7CitBTFRFUiBUQUJMRSBJRiBFWElTVFMgdHQ4IEFMVEVSIENPTFVNTiBm IFNFVCBERUZBVUxUIDA7CitBTFRFUiBUQUJMRSBJRiBFWElTVFMgdHQ4IFJFTkFNRSBDT0xV TU4gZiBUTyBmMTsKK0FMVEVSIFRBQkxFIElGIEVYSVNUUyB0dDggU0VUIFNDSEVNQSBhbHRl cjI7CisKK0NSRUFURSBUQUJMRSB0dDgoYSBpbnQpOworQ1JFQVRFIFNDSEVNQSBhbHRlcjI7 CisKK0FMVEVSIFRBQkxFIElGIEVYSVNUUyB0dDggQUREIENPTFVNTiBmIGludDsKK0FMVEVS IFRBQkxFIElGIEVYSVNUUyB0dDggQUREIENPTlNUUkFJTlQgeHh4IFBSSU1BUlkgS0VZKGYp OworQUxURVIgVEFCTEUgSUYgRVhJU1RTIHR0OCBBREQgQ0hFQ0sgKGYgQkVUV0VFTiAwIEFO RCAxMCk7CitBTFRFUiBUQUJMRSBJRiBFWElTVFMgdHQ4IEFMVEVSIENPTFVNTiBmIFNFVCBE RUZBVUxUIDA7CitBTFRFUiBUQUJMRSBJRiBFWElTVFMgdHQ4IFJFTkFNRSBDT0xVTU4gZiBU TyBmMTsKK0FMVEVSIFRBQkxFIElGIEVYSVNUUyB0dDggU0VUIFNDSEVNQSBhbHRlcjI7CisK K1xkIGFsdGVyMi50dDgKKworRFJPUCBUQUJMRSBhbHRlcjIudHQ4OworRFJPUCBTQ0hFTUEg YWx0ZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yZWlnbl9kYXRh LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2ZvcmVpZ25fZGF0YS5zcWwKaW5kZXggOTVk MDJkMS4uYjQxYTdlNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yZWln bl9kYXRhLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JlaWduX2RhdGEuc3Fs CkBAIC0zMjgsNiArMzI4LDMyIEBAIEFMVEVSIEZPUkVJR04gVEFCTEUgZm9yZWlnbl9zY2hl bWEuZnQxIFJFTkFNRSBjMSBUTyBmb3JlaWduX2NvbHVtbl8xOwogQUxURVIgRk9SRUlHTiBU QUJMRSBmb3JlaWduX3NjaGVtYS5mdDEgUkVOQU1FIFRPIGZvcmVpZ25fdGFibGVfMTsKIFxk IGZvcmVpZ25fc2NoZW1hLmZvcmVpZ25fdGFibGVfMQogCistLSBhbHRlciBub2V4aXN0aW5n IHRhYmxlCitBTFRFUiBGT1JFSUdOIFRBQkxFIElGIEVYSVNUUyBkb2VzbnRfZXhpc3RfZnQx IEFERCBDT0xVTU4gYzQgaW50ZWdlcjsKK0FMVEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RT IGRvZXNudF9leGlzdF9mdDEgQUREIENPTFVNTiBjNiBpbnRlZ2VyOworQUxURVIgRk9SRUlH TiBUQUJMRSBJRiBFWElTVFMgZG9lc250X2V4aXN0X2Z0MSBBREQgQ09MVU1OIGM3IGludGVn ZXIgTk9UIE5VTEw7CitBTFRFUiBGT1JFSUdOIFRBQkxFIElGIEVYSVNUUyBkb2VzbnRfZXhp c3RfZnQxIEFERCBDT0xVTU4gYzggaW50ZWdlcjsKK0FMVEVSIEZPUkVJR04gVEFCTEUgSUYg RVhJU1RTIGRvZXNudF9leGlzdF9mdDEgQUREIENPTFVNTiBjOSBpbnRlZ2VyOworQUxURVIg Rk9SRUlHTiBUQUJMRSBJRiBFWElTVFMgZG9lc250X2V4aXN0X2Z0MSBBREQgQ09MVU1OIGMx MCBpbnRlZ2VyIE9QVElPTlMgKHAxICd2MScpOworCitBTFRFUiBGT1JFSUdOIFRBQkxFIElG IEVYSVNUUyBkb2VzbnRfZXhpc3RfZnQxIEFMVEVSIENPTFVNTiBjNiBTRVQgTk9UIE5VTEw7 CitBTFRFUiBGT1JFSUdOIFRBQkxFIElGIEVYSVNUUyBkb2VzbnRfZXhpc3RfZnQxIEFMVEVS IENPTFVNTiBjNyBEUk9QIE5PVCBOVUxMOworQUxURVIgRk9SRUlHTiBUQUJMRSBJRiBFWElT VFMgZG9lc250X2V4aXN0X2Z0MSBBTFRFUiBDT0xVTU4gYzggVFlQRSBjaGFyKDEwKTsKK0FM VEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RTIGRvZXNudF9leGlzdF9mdDEgQUxURVIgQ09M VU1OIGM4IFNFVCBEQVRBIFRZUEUgdGV4dDsKK0FMVEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJ U1RTIGRvZXNudF9leGlzdF9mdDEgQUxURVIgQ09MVU1OIGM3IE9QVElPTlMgKEFERCBwMSAn djEnLCBBREQgcDIgJ3YyJyksCisgICAgICAgICAgICAgICAgICAgICAgICBBTFRFUiBDT0xV TU4gYzggT1BUSU9OUyAoQUREIHAxICd2MScsIEFERCBwMiAndjInKTsKK0FMVEVSIEZPUkVJ R04gVEFCTEUgSUYgRVhJU1RTIGRvZXNudF9leGlzdF9mdDEgQUxURVIgQ09MVU1OIGM4IE9Q VElPTlMgKFNFVCBwMiAnVjInLCBEUk9QIHAxKTsKKworQUxURVIgRk9SRUlHTiBUQUJMRSBJ RiBFWElTVFMgZG9lc250X2V4aXN0X2Z0MSBEUk9QIENPTlNUUkFJTlQgSUYgRVhJU1RTIG5v X2NvbnN0OworQUxURVIgRk9SRUlHTiBUQUJMRSBJRiBFWElTVFMgZG9lc250X2V4aXN0X2Z0 MSBEUk9QIENPTlNUUkFJTlQgZnQxX2MxX2NoZWNrOworQUxURVIgRk9SRUlHTiBUQUJMRSBJ RiBFWElTVFMgZG9lc250X2V4aXN0X2Z0MSBPV05FUiBUTyByZWdyZXNzX3Rlc3Rfcm9sZTsK K0FMVEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RTIGRvZXNudF9leGlzdF9mdDEgT1BUSU9O UyAoRFJPUCBkZWxpbWl0ZXIsIFNFVCBxdW90ZSAnficsIEFERCBlc2NhcGUgJ0AnKTsKK0FM VEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RTIGRvZXNudF9leGlzdF9mdDEgRFJPUCBDT0xV TU4gSUYgRVhJU1RTIG5vX2NvbHVtbjsKK0FMVEVSIEZPUkVJR04gVEFCTEUgSUYgRVhJU1RT IGRvZXNudF9leGlzdF9mdDEgRFJPUCBDT0xVTU4gYzk7CitBTFRFUiBGT1JFSUdOIFRBQkxF IElGIEVYSVNUUyBkb2VzbnRfZXhpc3RfZnQxIFNFVCBTQ0hFTUEgZm9yZWlnbl9zY2hlbWE7 CitBTFRFUiBGT1JFSUdOIFRBQkxFIElGIEVYSVNUUyBkb2VzbnRfZXhpc3RfZnQxIFJFTkFN RSBjMSBUTyBmb3JlaWduX2NvbHVtbl8xOworQUxURVIgRk9SRUlHTiBUQUJMRSBJRiBFWElT VFMgZG9lc250X2V4aXN0X2Z0MSBSRU5BTUUgVE8gZm9yZWlnbl90YWJsZV8xOworCiAtLSBJ bmZvcm1hdGlvbiBzY2hlbWEKIAogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEu Zm9yZWlnbl9kYXRhX3dyYXBwZXJzIE9SREVSIEJZIDEsIDI7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXF1ZW5jZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXF1ZW5jZS5zcWwKaW5kZXggOTdmZmI2MC4uYTMyZTA0OSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2VxdWVuY2Uuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3NlcXVlbmNlLnNxbApAQCAtMTEzLDYgKzExMywxMCBAQCBEUk9QIFNFUVVFTkNFIG15c2Vx MjsKIC0tCiAtLSBBbHRlciBzZXF1ZW5jZQogLS0KKworQUxURVIgU0VRVUVOQ0UgSUYgRVhJ U1RTIHNlcXVlbmNlX3Rlc3QyIFJFU1RBUlQgV0lUSCAyNAorCSBJTkNSRU1FTlQgQlkgNCBN QVhWQUxVRSAzNiBNSU5WQUxVRSA1IENZQ0xFOworCiBDUkVBVEUgU0VRVUVOQ0Ugc2VxdWVu Y2VfdGVzdDIgU1RBUlQgV0lUSCAzMjsKIAogU0VMRUNUIG5leHR2YWwoJ3NlcXVlbmNlX3Rl c3QyJyk7Cgpjb21taXQgNDk5M2E0OWI3Y2YxZDIzZGZlMWY5ZTFhODVkOTQxMWI4ZmY1NzQ1 NApBdXRob3I6IE1hZ251cyBIYWdhbmRlciA8bWFnbnVzQGhhZ2FuZGVyLm5ldD4KRGF0ZTog ICBTdW4gSmFuIDIyIDIyOjM0OjI4IDIwMTIgKzAxMDAKCiAgICBUeXBvIGZpeAogICAgCiAg ICBHdWlsbGF1bWUgTGVsYXJnZQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC90Y24uc2dt bCBiL2RvYy9zcmMvc2dtbC90Y24uc2dtbAppbmRleCBhZjgzMGRmLi41M2M0NjM3IDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvdGNuLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Rjbi5z Z21sCkBAIC0xOCw3ICsxOCw3IEBACiAgPC9wYXJhPgogCiAgPHBhcmE+Ci0gIE9ubHkgb25l IHBhcmFtZXRlciBtYXkgYmUgc3V1cHBsaWVkIHRvIHRoZSBmdW5jdGlvbiBpbiBhCisgIE9u bHkgb25lIHBhcmFtZXRlciBtYXkgYmUgc3VwcGxpZWQgdG8gdGhlIGZ1bmN0aW9uIGluIGEK ICAgPGxpdGVyYWw+Q1JFQVRFIFRSSUdHRVI8Lz4gc3RhdGVtZW50LCBhbmQgdGhhdCBpcyBv cHRpb25hbC4gIElmIHN1cHBsaWVkCiAgIGl0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIGNoYW5u ZWwgbmFtZSBmb3IgdGhlIG5vdGlmaWNhdGlvbnMuICBJZiBvbWl0dGVkCiAgIDxsaXRlcmFs PnRjbjwvPiB3aWxsIGJlIHVzZWQgZm9yIHRoZSBjaGFubmVsIG5hbWUuCgpjb21taXQgOTVj NjNiNWUzMjA5Y2ZjOGQ5MWQ3OTU2NDA3MDMyZmM2ZmU4OTY0MApBdXRob3I6IFBldGVyIEVp c2VudHJhdXQgPHBldGVyX2VAZ214Lm5ldD4KRGF0ZTogICBTYXQgSmFuIDIxIDE5OjQ2OjU1 IDIwMTIgKzAyMDAKCiAgICBwc3FsOiBBZGQgc3VwcG9ydCBmb3IgdGFiIGNvbXBsZXRpb24g b2YgR1JBTlQvUkVWT0tFIHJvbGUKICAgIAogICAgUHJldmlvdXNseSwgb25seSBHUkFOVC9S RVZPS0UgcHJpdmlsZWdlIHdhcyBzdXBwb3J0ZWQuCiAgICAKICAgIHJldmlld2VkIGJ5IFBh dmVsIFN0ZWh1bGUKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMg Yi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggYTI3ZWY2OS4uNmVmYzBjZSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuYwpAQCAtMjIwOSwyMSArMjIwOSw1MiBAQCBwc3FsX2NvbXBs ZXRpb24oY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQlDT01QTEVURV9XSVRI X1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9mb3JlaWduX3RhYmxlcywgTlVMTCk7 CiAKIC8qIEdSQU5UICYmIFJFVk9LRSAqLwotCS8qIENvbXBsZXRlIEdSQU5UL1JFVk9LRSB3 aXRoIGEgbGlzdCBvZiBwcml2aWxlZ2VzICovCisJLyogQ29tcGxldGUgR1JBTlQvUkVWT0tF IHdpdGggYSBsaXN0IG9mIHJvbGVzIGFuZCBwcml2aWxlZ2VzICovCiAJZWxzZSBpZiAocGdf c3RyY2FzZWNtcChwcmV2X3dkLCAiR1JBTlQiKSA9PSAwIHx8CiAJCQkgcGdfc3RyY2FzZWNt cChwcmV2X3dkLCAiUkVWT0tFIikgPT0gMCkKIAl7Ci0JCXN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBsaXN0X3ByaXZpbGVnZVtdID0KLQkJeyJTRUxFQ1QiLCAiSU5TRVJUIiwgIlVQREFU RSIsICJERUxFVEUiLCAiVFJVTkNBVEUiLCAiUkVGRVJFTkNFUyIsCi0JCQkiVFJJR0dFUiIs ICJDUkVBVEUiLCAiQ09OTkVDVCIsICJURU1QT1JBUlkiLCAiRVhFQ1VURSIsICJVU0FHRSIs Ci0JCSJBTEwiLCBOVUxMfTsKLQotCQlDT01QTEVURV9XSVRIX0xJU1QobGlzdF9wcml2aWxl Z2UpOwotCX0KLQkvKiBDb21wbGV0ZSBHUkFOVC9SRVZPS0UgPHN0aD4gd2l0aCAiT04iICov CisJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMKKwkJCQkJ CQkiIFVOSU9OIFNFTEVDVCAnU0VMRUNUJyIKKwkJCQkJCQkiIFVOSU9OIFNFTEVDVCAnSU5T RVJUJyIKKwkJCQkJCQkiIFVOSU9OIFNFTEVDVCAnVVBEQVRFJyIKKwkJCQkJCQkiIFVOSU9O IFNFTEVDVCAnREVMRVRFJyIKKwkJCQkJCQkiIFVOSU9OIFNFTEVDVCAnVFJVTkNBVEUnIgor CQkJCQkJCSIgVU5JT04gU0VMRUNUICdSRUZFUkVOQ0VTJyIKKwkJCQkJCQkiIFVOSU9OIFNF TEVDVCAnVFJJR0dFUiciCisJCQkJCQkJIiBVTklPTiBTRUxFQ1QgJ0NSRUFURSciCisJCQkJ CQkJIiBVTklPTiBTRUxFQ1QgJ0NPTk5FQ1QnIgorCQkJCQkJCSIgVU5JT04gU0VMRUNUICdU RU1QT1JBUlknIgorCQkJCQkJCSIgVU5JT04gU0VMRUNUICdFWEVDVVRFJyIKKwkJCQkJCQki IFVOSU9OIFNFTEVDVCAnVVNBR0UnIgorCQkJCQkJCSIgVU5JT04gU0VMRUNUICdBTEwnIik7 CisJfQorCS8qIENvbXBsZXRlIEdSQU5UL1JFVk9LRSA8cHJpdmlsZWdlPiB3aXRoICJPTiIs IEdSQU5UL1JFVk9LRSA8cm9sZT4gd2l0aCBUTy9GUk9NICovCiAJZWxzZSBpZiAocGdfc3Ry Y2FzZWNtcChwcmV2Ml93ZCwgIkdSQU5UIikgPT0gMCB8fAogCQkJIHBnX3N0cmNhc2VjbXAo cHJldjJfd2QsICJSRVZPS0UiKSA9PSAwKQotCQlDT01QTEVURV9XSVRIX0NPTlNUKCJPTiIp OworCXsKKwkJaWYgKHBnX3N0cmNhc2VjbXAocHJldl93ZCwgIlNFTEVDVCIpID09IDAKKwkJ CXx8IHBnX3N0cmNhc2VjbXAocHJldl93ZCwgIklOU0VSVCIpID09IDAKKwkJCXx8IHBnX3N0 cmNhc2VjbXAocHJldl93ZCwgIlVQREFURSIpID09IDAKKwkJCXx8IHBnX3N0cmNhc2VjbXAo cHJldl93ZCwgIkRFTEVURSIpID09IDAKKwkJCXx8IHBnX3N0cmNhc2VjbXAocHJldl93ZCwg IlRSVU5DQVRFIikgPT0gMAorCQkJfHwgcGdfc3RyY2FzZWNtcChwcmV2X3dkLCAiUkVGRVJF TkNFUyIpID09IDAKKwkJCXx8IHBnX3N0cmNhc2VjbXAocHJldl93ZCwgIlRSSUdHRVIiKSA9 PSAwCisJCQl8fCBwZ19zdHJjYXNlY21wKHByZXZfd2QsICJDUkVBVEUiKSA9PSAwCisJCQl8 fCBwZ19zdHJjYXNlY21wKHByZXZfd2QsICJDT05ORUNUIikgPT0gMAorCQkJfHwgcGdfc3Ry Y2FzZWNtcChwcmV2X3dkLCAiVEVNUE9SQVJZIikgPT0gMAorCQkJfHwgcGdfc3RyY2FzZWNt cChwcmV2X3dkLCAiVEVNUCIpID09IDAKKwkJCXx8IHBnX3N0cmNhc2VjbXAocHJldl93ZCwg IkVYRUNVVEUiKSA9PSAwCisJCQl8fCBwZ19zdHJjYXNlY21wKHByZXZfd2QsICJVU0FHRSIp ID09IDAKKwkJCXx8IHBnX3N0cmNhc2VjbXAocHJldl93ZCwgIkFMTCIpID09IDApCisJCQlD T01QTEVURV9XSVRIX0NPTlNUKCJPTiIpOworCQllbHNlCisJCXsKKwkJCWlmIChwZ19zdHJj YXNlY21wKHByZXYyX3dkLCAiR1JBTlQiKSA9PSAwKQorCQkJCUNPTVBMRVRFX1dJVEhfQ09O U1QoIlRPIik7CisJCQllbHNlCisJCQkJQ09NUExFVEVfV0lUSF9DT05TVCgiRlJPTSIpOwor CQl9CisJfQogCiAJLyoKIAkgKiBDb21wbGV0ZSBHUkFOVC9SRVZPS0UgPHN0aD4gT04gd2l0 aCBhIGxpc3Qgb2YgdGFibGVzLCB2aWV3cywgc2VxdWVuY2VzLApAQCAtMjMwNCw2ICsyMzM1 LDE4IEBAIHBzcWxfY29tcGxldGlvbihjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQp CiAJCQlDT01QTEVURV9XSVRIX0NPTlNUKCJGUk9NIik7CiAJfQogCisJLyogQ29tcGxldGUg IkdSQU5UL1JFVk9LRSAqIFRPL0ZST00iIHdpdGggdXNlcm5hbWUsIEdST1VQLCBvciBQVUJM SUMgKi8KKwllbHNlIGlmIChwZ19zdHJjYXNlY21wKHByZXYzX3dkLCAiR1JBTlQiKSA9PSAw ICYmCisJCQkgcGdfc3RyY2FzZWNtcChwcmV2X3dkLCAiVE8iKSA9PSAwKQorCXsKKwkJQ09N UExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9ncmFudF9yb2xlcyk7CisJfQor CWVsc2UgaWYgKHBnX3N0cmNhc2VjbXAocHJldjNfd2QsICJSRVZPS0UiKSA9PSAwICYmCisJ CQkgcGdfc3RyY2FzZWNtcChwcmV2X3dkLCAiRlJPTSIpID09IDApCisJeworCQlDT01QTEVU RV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2dyYW50X3JvbGVzKTsKKwl9CisKIC8q IEdST1VQIEJZICovCiAJZWxzZSBpZiAocGdfc3RyY2FzZWNtcChwcmV2M193ZCwgIkZST00i KSA9PSAwICYmCiAJCQkgcGdfc3RyY2FzZWNtcChwcmV2X3dkLCAiR1JPVVAiKSA9PSAwKQoK Y29tbWl0IGMxNDUzNDk1N2JiOTNkZjc2YmM2NjUxNmFhMDM0NzZkZTAwNjkyMTMKQXV0aG9y OiBNYWdudXMgSGFnYW5kZXIgPG1hZ251c0BoYWdhbmRlci5uZXQ+CkRhdGU6ICAgRnJpIEph biAyMCAxMzo1NzowMiAyMDEyICswMTAwCgogICAgQ2hlY2sgbnVtYmVyIG9mIGZpZWxkcyBp biBJREVOVElGWV9TWVNURU0gcmVzcG9uc2UKICAgIAogICAgSmFpbWUgQ2FzYW5vdmEKCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5jIGIvc3Jj L2Jpbi9wZ19iYXNlYmFja3VwL3BnX2Jhc2ViYWNrdXAuYwppbmRleCA0MDA3NjgwLi5hYWJi ZGFjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfYmFzZWJhY2t1cC5j CisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19iYXNlYmFja3VwLmMKQEAgLTkxOCwx MCArOTE4LDEwIEBAIEJhc2VCYWNrdXAodm9pZCkKIAkJCQlwcm9nbmFtZSwgUFFlcnJvck1l c3NhZ2UoY29ubikpOwogCQlkaXNjb25uZWN0X2FuZF9leGl0KDEpOwogCX0KLQlpZiAoUFFu dHVwbGVzKHJlcykgIT0gMSkKKwlpZiAoUFFudHVwbGVzKHJlcykgIT0gMSB8fCBQUW5maWVs ZHMocmVzKSAhPSAzKQogCXsKLQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3Qg aWRlbnRpZnkgc3lzdGVtLCBnb3QgJWkgcm93c1xuIiksCi0JCQkJcHJvZ25hbWUsIFBRbnR1 cGxlcyhyZXMpKTsKKwkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3QgaWRlbnRp Znkgc3lzdGVtLCBnb3QgJWkgcm93cyBhbmQgJWkgZmllbGRzXG4iKSwKKwkJCQlwcm9nbmFt ZSwgUFFudHVwbGVzKHJlcyksIFBRbmZpZWxkcyhyZXMpKTsKIAkJZGlzY29ubmVjdF9hbmRf ZXhpdCgxKTsKIAl9CiAJc3lzaWRlbnRpZmllciA9IHN0cmR1cChQUWdldHZhbHVlKHJlcywg MCwgMCkpOwpAQCAtMTEzMCw3ICsxMTMwLDcgQEAgQmFzZUJhY2t1cCh2b2lkKQogCQl7CiAJ CQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBwYXJzZSB4bG9nIGVuZCBwb3Np dGlvbiBcIiVzXCJcbiIpLAogCQkJCQlwcm9nbmFtZSwgeGxvZ2VuZCk7Ci0JCQlleGl0KDEp OworCQkJZGlzY29ubmVjdF9hbmRfZXhpdCgxKTsKIAkJfQogCQlJbnRlcmxvY2tlZEluY3Jl bWVudCgmaGFzX3hsb2dlbmRwdHIpOwogCkBAIC0xMTYyLDYgKzExNjIsNyBAQCBCYXNlQmFj a3VwKHZvaWQpCiAJLyoKIAkgKiBFbmQgb2YgY29weSBkYXRhLiBGaW5hbCByZXN1bHQgaXMg YWxyZWFkeSBjaGVja2VkIGluc2lkZSB0aGUgbG9vcC4KIAkgKi8KKwlQUWNsZWFyKHJlcyk7 CiAJUFFmaW5pc2goY29ubik7CiAKIAlpZiAodmVyYm9zZSkKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfYmFzZWJhY2t1cC9wZ19yZWNlaXZleGxvZy5jIGIvc3JjL2Jpbi9wZ19iYXNlYmFj a3VwL3BnX3JlY2VpdmV4bG9nLmMKaW5kZXggZTY5OGIwNi4uZmU5ZTM5YiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX3JlY2VpdmV4bG9nLmMKKysrIGIvc3JjL2Jp bi9wZ19iYXNlYmFja3VwL3BnX3JlY2VpdmV4bG9nLmMKQEAgLTIzNSwxMCArMjM1LDEwIEBA IFN0cmVhbUxvZyh2b2lkKQogCQkJCXByb2duYW1lLCBQUWVycm9yTWVzc2FnZShjb25uKSk7 CiAJCWRpc2Nvbm5lY3RfYW5kX2V4aXQoMSk7CiAJfQotCWlmIChQUW50dXBsZXMocmVzKSAh PSAxKQorCWlmIChQUW50dXBsZXMocmVzKSAhPSAxIHx8IFBRbmZpZWxkcyhyZXMpICE9IDMp CiAJewotCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBpZGVudGlmeSBzeXN0 ZW0sIGdvdCAlaSByb3dzXG4iKSwKLQkJCQlwcm9nbmFtZSwgUFFudHVwbGVzKHJlcykpOwor CQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBpZGVudGlmeSBzeXN0ZW0sIGdv dCAlaSByb3dzIGFuZCAlaSBmaWVsZHNcbiIpLAorCQkJCXByb2duYW1lLCBQUW50dXBsZXMo cmVzKSwgUFFuZmllbGRzKHJlcykpOwogCQlkaXNjb25uZWN0X2FuZF9leGl0KDEpOwogCX0K IAl0aW1lbGluZSA9IGF0b2koUFFnZXR2YWx1ZShyZXMsIDAsIDEpKTsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9yZWNlaXZlbG9nLmMgYi9zcmMvYmluL3BnX2Jhc2Vi YWNrdXAvcmVjZWl2ZWxvZy5jCmluZGV4IGMzOTBjYmYuLjhjYTM4ODIgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9yZWNlaXZlbG9nLmMKKysrIGIvc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3JlY2VpdmVsb2cuYwpAQCAtMjM1LDYgKzIzNSwxMyBAQCBSZWNlaXZlWGxv Z1N0cmVhbShQR2Nvbm4gKmNvbm4sIFhMb2dSZWNQdHIgc3RhcnRwb3MsIHVpbnQzMiB0aW1l bGluZSwgY2hhciAqc3lzaQogCQkJUFFjbGVhcihyZXMpOwogCQkJcmV0dXJuIGZhbHNlOwog CQl9CisJCWlmIChQUW5maWVsZHMocmVzKSAhPSAzIHx8IFBRbnR1cGxlcyhyZXMpICE9IDEp CisJCXsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IGlkZW50aWZ5IHN5 c3RlbSwgZ290ICVpIHJvd3MgYW5kICVpIGZpZWxkc1xuIiksCisJCQkJCXByb2duYW1lLCBQ UW50dXBsZXMocmVzKSwgUFFuZmllbGRzKHJlcykpOworCQkJUFFjbGVhcihyZXMpOworCQkJ cmV0dXJuIGZhbHNlOworCQl9CiAJCWlmIChzdHJjbXAoc3lzaWRlbnRpZmllciwgUFFnZXR2 YWx1ZShyZXMsIDAsIDApKSAhPSAwKQogCQl7CiAJCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6 IHN5c3RlbSBpZGVudGlmaWVyIGRvZXMgbm90IG1hdGNoIGJldHdlZW4gYmFzZSBiYWNrdXAg YW5kIHN0cmVhbWluZyBjb25uZWN0aW9uXG4iKSwgcHJvZ25hbWUpOwoKY29tbWl0IDM1NmZk ZGZhMGZmNjEyYTQwY2M4NWY4Mzc0ZjljZDA1ODU4NTY4N2YKQXV0aG9yOiBNYWdudXMgSGFn YW5kZXIgPG1hZ251c0BoYWdhbmRlci5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxMjozMDox OSAyMDEyICswMTAwCgogICAgR2V0IHJpZCBvZiBpdGVtaXplZGxpc3QgaW5zaWRlIHRhYmxl CiAgICAKICAgIFRoaXMgcmVuZGVycyBiYWRseSBvbiB0aGUgd2Vic2l0ZSwgYW5kIGluIHRo aXMgcGFydGljdWxhciBjYXNlIGFsc28KICAgIGRvZXNuJ3QgYWN0dWFsbHkgYWRkIGFueXRo aW5nIHRvIHRoZSByZWFkYWJpbGl0eS4uLgoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9t b25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IGRh ZGZkMjQuLmZlZjJhMzUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbApAQCAtNTc3LDE3ICs1Nzcs OSBAQCBwb3N0Z3JlczogPHJlcGxhY2VhYmxlPnVzZXI8Lz4gPHJlcGxhY2VhYmxlPmRhdGFi YXNlPC8+IDxyZXBsYWNlYWJsZT5ob3N0PC8+IDxyZQogICAgICA8ZW50cnk+Y2xpZW50X2Fk ZHI8L2VudHJ5PgogICAgICA8ZW50cnk+PHR5cGU+aW5ldDwvPjwvZW50cnk+CiAgICAgIDxl bnRyeT5UaGUgcmVtb3RlIElQIG9mIHRoZSBjbGllbnQgY29ubmVjdGVkIHRvIHRoZSBiYWNr ZW5kLgotICAgICBJZiB0aGlzIGZpZWxkIGlzIG5vdCBzZXQsIGl0IGluZGljYXRlcyB0aGF0 IHRoZSBjbGllbnQgaXMgZWl0aGVyOgotICAgICAgPGl0ZW1pemVkbGlzdCBzcGFjaW5nPSJj b21wYWN0IiBtYXJrPSJidWxsZXQiPgotICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgPHBh cmE+Ci0gICAgICAgICBDb25uZWN0ZWQgdmlhIHVuaXggc29ja2V0cyBvbiB0aGUgc2VydmVy IG1hY2hpbmUKLSAgICAgICAgPC9wYXJhPgotICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAg PGxpc3RpdGVtPgotICAgICAgICA8cGFyYT5BbiBpbnRlcm5hbCBwcm9jZXNzIHN1Y2ggYXMg YXV0b3ZhY3V1bTwvcGFyYT4KLSAgICAgICA8L2xpc3RpdGVtPgotICAgICA8L2l0ZW1pemVk bGlzdD4KKyAgICAgIElmIHRoaXMgZmllbGQgaXMgbm90IHNldCwgaXQgaW5kaWNhdGVzIHRo YXQgdGhlIGNsaWVudCBpcyBlaXRoZXIgY29ubmVjdGVkCisgICAgICB2aWEgYSBVbml4IHNv Y2tldCBvbiB0aGUgc2VydmVyIG1hY2hpbmUgb3IgaXMgYW4gaW50ZXJuYWwgcHJvY2VzcyBz dWNoCisgICAgICBhcyBhdXRvdmFjdXVtLgogICAgICA8L2VudHJ5PgogICAgIDwvcm93Pgog ICAgIDxyb3c+Cgpjb21taXQgYTY1MDIzZTdkZWNmNWY1YmE5YjE3YmQ4NmRiOGZlMWVhNGI2 YzMzMQpBdXRob3I6IE1hZ251cyBIYWdhbmRlciA8bWFnbnVzQGhhZ2FuZGVyLm5ldD4KRGF0 ZTogICBGcmkgSmFuIDIwIDEyOjIzOjI2IDIwMTIgKzAxMDAKCiAgICBGdXJ0aGVyIGRvYyBj bGVhbnVwcyBmcm9tIHRoZSBwZ19zdGF0X2FjdGl2aXR5IGNoYW5nZXMKICAgIAogICAgRnVq aWkgTWFzYW8KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGJlNGJiYzcuLmVhOThjYjcgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCkBAIC03MzIwLDcgKzczMjAsNyBAQAogCiAgIDxwYXJhPgogICAgVGhl IDxzdHJ1Y3RmaWVsZD5waWQ8L3N0cnVjdGZpZWxkPiBjb2x1bW4gY2FuIGJlIGpvaW5lZCB0 byB0aGUKLSAgIDxzdHJ1Y3RmaWVsZD5wcm9jcGlkPC9zdHJ1Y3RmaWVsZD4gY29sdW1uIG9m IHRoZQorICAgPHN0cnVjdGZpZWxkPnBpZDwvc3RydWN0ZmllbGQ+IGNvbHVtbiBvZiB0aGUK ICAgIDxzdHJ1Y3RuYW1lPnBnX3N0YXRfYWN0aXZpdHk8L3N0cnVjdG5hbWU+IHZpZXcgdG8g Z2V0IG1vcmUKICAgIGluZm9ybWF0aW9uIG9uIHRoZSBzZXNzaW9uIGhvbGRpbmcgb3Igd2Fp dGluZyB0byBob2xkIGVhY2ggbG9jay4KICAgIEFsc28sIGlmIHlvdSBhcmUgdXNpbmcgcHJl cGFyZWQgdHJhbnNhY3Rpb25zLCB0aGUKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25m aWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCA1OGU4ZWRlLi5lNTVi NTAzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0zODU3LDcgKzM4NTcsNyBAQCBsb2NhbDAuKiAgICAv dmFyL2xvZy9wb3N0Z3Jlc3FsCiAgICAgICAgICBpZGVudGlmaWVyIGZyb20gPGxpdGVyYWw+ cGdfc3RhdF9hY3Rpdml0eTwvPiwgdXNlIHRoaXMgcXVlcnk6CiA8cHJvZ3JhbWxpc3Rpbmc+ CiBTRUxFQ1QgdG9faGV4KEVYVFJBQ1QoRVBPQ0ggRlJPTSBiYWNrZW5kX3N0YXJ0KTo6aW50 ZWdlcikgfHwgJy4nIHx8Ci0gICAgICAgdG9faGV4KHByb2NwaWQpCisgICAgICAgdG9faGV4 KHBpZCkKIEZST00gcGdfc3RhdF9hY3Rpdml0eTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAKQEAg LTQxNTMsNyArNDE1Myw3IEBAIENPUFkgcG9zdGdyZXNfbG9nIEZST00gJy9mdWxsL3BhdGgv dG8vbG9nZmlsZS5jc3YnIFdJVEggY3N2OwogICAgICAgIDxwYXJhPgogICAgICAgIFNwZWNp ZmllcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlc2VydmVkIHRvIHRyYWNrIHRoZSBjdXJyZW50 bHkKICAgICAgICBleGVjdXRpbmcgY29tbWFuZCBmb3IgZWFjaCBhY3RpdmUgc2Vzc2lvbiwg Zm9yIHRoZQotICAgICAgIDxzdHJ1Y3RuYW1lPnBnX3N0YXRfYWN0aXZpdHk8Lz4uPHN0cnVj dGZpZWxkPmN1cnJlbnRfcXVlcnk8Lz4gZmllbGQuCisgICAgICAgPHN0cnVjdG5hbWU+cGdf c3RhdF9hY3Rpdml0eTwvPi48c3RydWN0ZmllbGQ+cXVlcnk8Lz4gZmllbGQuCiAgICAgICAg VGhlIGRlZmF1bHQgdmFsdWUgaXMgMTAyNC4gVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUg c2V0IGF0IHNlcnZlcgogICAgICAgIHN0YXJ0LgogICAgICAgIDwvcGFyYT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmlu ZGV4IDQzYjcyZjYuLjQ4NjMxY2MgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMTQzMjIsNyArMTQzMjIsNyBA QCBTRUxFQ1Qgc2V0X2NvbmZpZygnbG9nX3N0YXRlbWVudF9zdGF0cycsICdvZmYnLCBmYWxz ZSk7CiAgICAgc2VuZCBzaWduYWxzICg8c3lzdGVtaXRlbT5TSUdJTlQ8Lz4gb3IgPHN5c3Rl bWl0ZW0+U0lHVEVSTTwvPgogICAgIHJlc3BlY3RpdmVseSkgdG8gYmFja2VuZCBwcm9jZXNz ZXMgaWRlbnRpZmllZCBieSBwcm9jZXNzIElELgogICAgIFRoZSBwcm9jZXNzIElEIG9mIGFu IGFjdGl2ZSBiYWNrZW5kIGNhbiBiZSBmb3VuZCBmcm9tCi0gICAgdGhlIDxzdHJ1Y3RmaWVs ZD5wcm9jcGlkPC9zdHJ1Y3RmaWVsZD4gY29sdW1uIG9mIHRoZQorICAgIHRoZSA8c3RydWN0 ZmllbGQ+cGlkPC9zdHJ1Y3RmaWVsZD4gY29sdW1uIG9mIHRoZQogICAgIDxzdHJ1Y3RuYW1l PnBnX3N0YXRfYWN0aXZpdHk8L3N0cnVjdG5hbWU+IHZpZXcsIG9yIGJ5IGxpc3RpbmcgdGhl CiAgICAgPGNvbW1hbmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IHByb2Nlc3NlcyBvbiB0aGUgc2Vy dmVyICh1c2luZwogICAgIDxhcHBsaWNhdGlvbj5wczwvPiBvbiBVbml4IG9yIHRoZSA8YXBw bGljYXRpb24+VGFzawpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dt bCBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKaW5kZXggMjI1OTE4MC4uZGFkZmQy NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCkBAIC0xNDYyLDggKzE0NjIsOCBAQCBwb3N0Z3Jl czogPHJlcGxhY2VhYmxlPnVzZXI8Lz4gPHJlcGxhY2VhYmxlPmRhdGFiYXNlPC8+IDxyZXBs YWNlYWJsZT5ob3N0PC8+IDxyZQogICAgZXhhbXBsZSwgdG8gc2hvdyB0aGUgPGFjcm9ueW0+ UElEPC8+cyBhbmQgY3VycmVudCBxdWVyaWVzIG9mIGFsbCBzZXJ2ZXIgcHJvY2Vzc2VzOgog CiA8cHJvZ3JhbWxpc3Rpbmc+Ci1TRUxFQ1QgcGdfc3RhdF9nZXRfYmFja2VuZF9waWQocy5i YWNrZW5kaWQpIEFTIHByb2NwaWQsCi0gICAgICAgcGdfc3RhdF9nZXRfYmFja2VuZF9hY3Rp dml0eShzLmJhY2tlbmRpZCkgQVMgY3VycmVudF9xdWVyeQorU0VMRUNUIHBnX3N0YXRfZ2V0 X2JhY2tlbmRfcGlkKHMuYmFja2VuZGlkKSBBUyBwaWQsCisgICAgICAgcGdfc3RhdF9nZXRf YmFja2VuZF9hY3Rpdml0eShzLmJhY2tlbmRpZCkgQVMgcXVlcnkKICAgICBGUk9NIChTRUxF Q1QgcGdfc3RhdF9nZXRfYmFja2VuZF9pZHNldCgpIEFTIGJhY2tlbmRpZCkgQVMgczsKIDwv cHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4KQEAgLTE2NzAsNyArMTY3MCw3IEBAIFNFTEVD VCBwZ19zdGF0X2dldF9iYWNrZW5kX3BpZChzLmJhY2tlbmRpZCkgQVMgcHJvY3BpZCwKICAg ICAgPGVudHJ5PnN0YXRlbWVudC1zdGF0dXM8L2VudHJ5PgogICAgICA8ZW50cnk+KGNvbnN0 IGNoYXIgKik8L2VudHJ5PgogICAgICA8ZW50cnk+UHJvYmUgdGhhdCBmaXJlcyBhbnl0aW1l IHRoZSBzZXJ2ZXIgcHJvY2VzcyB1cGRhdGVzIGl0cwotICAgICAgPHN0cnVjdG5hbWU+cGdf c3RhdF9hY3Rpdml0eTwvPi48c3RydWN0ZmllbGQ+Y3VycmVudF9xdWVyeTwvPiBzdGF0dXMu CisgICAgICA8c3RydWN0bmFtZT5wZ19zdGF0X2FjdGl2aXR5PC8+LjxzdHJ1Y3RmaWVsZD5z dGF0dXM8Lz4uCiAgICAgICBhcmcwIGlzIHRoZSBuZXcgc3RhdHVzIHN0cmluZy48L2VudHJ5 PgogICAgIDwvcm93PgogICAgIDxyb3c+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwppbmRleCA1Yzkx MGRkLi45ZmM5NmIyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKQEAgLTIzNjIsNyArMjM2Miw3 IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnX2ludCBDb25maWd1cmVOYW1lc0ludFtdID0KIAog CXsKIAkJeyJ0cmFja19hY3Rpdml0eV9xdWVyeV9zaXplIiwgUEdDX1BPU1RNQVNURVIsIFJF U09VUkNFU19NRU0sCi0JCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIHNpemUgcmVzZXJ2ZWQg Zm9yIHBnX3N0YXRfYWN0aXZpdHkuY3VycmVudF9xdWVyeSwgaW4gYnl0ZXMuIiksCisJCQln ZXR0ZXh0X25vb3AoIlNldHMgdGhlIHNpemUgcmVzZXJ2ZWQgZm9yIHBnX3N0YXRfYWN0aXZp dHkucXVlcnksIGluIGJ5dGVzLiIpLAogCQkJTlVMTCwKIAkJfSwKIAkJJnBnc3RhdF90cmFj a19hY3Rpdml0eV9xdWVyeV9zaXplLAoKY29tbWl0IDZlMzMyM2Q0MWRjNDVlOTM3MDBhMzQy MGZkMjdjYTA1ZGI2YTY0YTcKQXV0aG9yOiBSb2JlcnQgSGFhcyA8cmhhYXNAcG9zdGdyZXNx bC5vcmc+CkRhdGU6ICAgVGh1IEphbiAxOSAyMzoxNToxNSAyMDEyIC0wNTAwCgogICAgVHJp Z2dlcmVkIGNoYW5nZSBub3RpZmljYXRpb25zLgogICAgCiAgICBLZXZpbiBHcml0dG5lciwg cmV2aWV3ZWQgKGluIGVhcmxpZXIgdmVyc2lvbnMpIGJ5IMOBbHZhcm8gSGVycmVyYQoKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvTWFrZWZpbGUgYi9jb250cmliL01ha2VmaWxlCmluZGV4IDBj MjM4YWEuLmFjMGE4MGEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvTWFrZWZpbGUKKysrIGIvY29u dHJpYi9NYWtlZmlsZQpAQCAtNDUsNiArNDUsNyBAQCBTVUJESVJTID0gXAogCQlzZWcJCVwK IAkJc3BpCQlcCiAJCXRhYmxlZnVuYwlcCisJCXRjbgkJXAogCQl0ZXN0X3BhcnNlcglcCiAJ CXRzZWFyY2gyCVwKIAkJdW5hY2NlbnQJXApkaWZmIC0tZ2l0IGEvY29udHJpYi90Y24vTWFr ZWZpbGUgYi9jb250cmliL3Rjbi9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi43YmFjNWUzCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi90Y24vTWFr ZWZpbGUKQEAgLTAsMCArMSwxNyBAQAorIyBjb250cmliL3Rjbi9NYWtlZmlsZQorCitNT0RV TEVTID0gdGNuCisKK0VYVEVOU0lPTiA9IHRjbgorREFUQSA9IHRjbi0tMS4wLnNxbAorCitp ZmRlZiBVU0VfUEdYUworUEdfQ09ORklHID0gcGdfY29uZmlnCitQR1hTIDo9ICQoc2hlbGwg JChQR19DT05GSUcpIC0tcGd4cykKK2luY2x1ZGUgJChQR1hTKQorZWxzZQorc3ViZGlyID0g Y29udHJpYi90Y24KK3RvcF9idWlsZGRpciA9IC4uLy4uCitpbmNsdWRlICQodG9wX2J1aWxk ZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCitpbmNsdWRlICQodG9wX3NyY2RpcikvY29udHJp Yi9jb250cmliLWdsb2JhbC5taworZW5kaWYKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGNuL3Rj bi0tMS4wLnNxbCBiL2NvbnRyaWIvdGNuL3Rjbi0tMS4wLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4wMjdhNGVmCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJp Yi90Y24vdGNuLS0xLjAuc3FsCkBAIC0wLDAgKzEsOSBAQAorLyogY29udHJpYi90Y24vdGNu LS0xLjAuc3FsICovCisKKy0tIGNvbXBsYWluIGlmIHNjcmlwdCBpcyBzb3VyY2VkIGluIHBz cWwsIHJhdGhlciB0aGFuIHZpYSBDUkVBVEUgRVhURU5TSU9OCitcZWNobyBVc2UgIkNSRUFU RSBFWFRFTlNJT04gdGNuIiB0byBsb2FkIHRoaXMgZmlsZS4gXHF1aXQKKworQ1JFQVRFIEZV TkNUSU9OIHRyaWdnZXJlZF9jaGFuZ2Vfbm90aWZpY2F0aW9uKCkKK1JFVFVSTlMgcGdfY2F0 YWxvZy50cmlnZ2VyCitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQzsKZGlmZiAt LWdpdCBhL2NvbnRyaWIvdGNuL3Rjbi5jIGIvY29udHJpYi90Y24vdGNuLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE0NjMyZAotLS0gL2Rldi9udWxsCisrKyBi L2NvbnRyaWIvdGNuL3Rjbi5jCkBAIC0wLDAgKzEsMTg0IEBACisvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqCisgKiB0Y24uYworICoJICB0cmlnZ2VyZWQgY2hhbmdlIG5vdGlmaWNhdGlv biBzdXBwb3J0IGZvciBQb3N0Z3JlU1FMCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAyMDExLTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkg b2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBjb250cmli L3Rjbi90Y24uYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCisjaW5jbHVkZSAi Y29tbWFuZHMvYXN5bmMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCisjaW5j bHVkZSAibGliL3N0cmluZ2luZm8uaCIKKyNpbmNsdWRlICJ1dGlscy9yZWwuaCIKKyNpbmNs dWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCisKK1BHX01PRFVMRV9NQUdJQzsKKworCisvKiBm b3J3YXJkIGRlY2xhcmF0aW9ucyAqLworRGF0dW0JCXRyaWdnZXJlZF9jaGFuZ2Vfbm90aWZp Y2F0aW9uKFBHX0ZVTkNUSU9OX0FSR1MpOworCisKKy8qCisgKiBDb3B5IGZyb20gcyAoZm9y IHNvdXJjZSkgdG8gciAoZm9yIHJlc3VsdCksIHdyYXBwaW5nIHdpdGggcSAocXVvdGUpCisg KiBjaGFyYWN0ZXJzIGFuZCBkb3VibGluZyBhbnkgcXVvdGUgY2hhcmFjdGVycyBmb3VuZC4K KyAqLworc3RhdGljIHZvaWQKK3N0cmNweV9xdW90ZWQoU3RyaW5nSW5mbyByLCBjb25zdCBj aGFyICpzLCBjb25zdCBjaGFyIHEpCit7CisJYXBwZW5kU3RyaW5nSW5mb0NoYXJNYWNybyhy LCBxKTsKKwl3aGlsZSAoKnMpCisJeworCQlpZiAoKnMgPT0gcSkKKwkJCWFwcGVuZFN0cmlu Z0luZm9DaGFyTWFjcm8ociwgcSk7CisJCWFwcGVuZFN0cmluZ0luZm9DaGFyTWFjcm8ociwg KnMpOworCQlzKys7CisJfQorCWFwcGVuZFN0cmluZ0luZm9DaGFyTWFjcm8ociwgcSk7Cit9 CisKKy8qCisgKiB0cmlnZ2VyZWRfY2hhbmdlX25vdGlmaWNhdGlvbgorICoKKyAqIFRoaXMg dHJpZ2dlciBmdW5jdGlvbiB3aWxsIHNlbmQgYSBub3RpZmljYXRpb24gb2YgZGF0YSBtb2Rp ZmljYXRpb24gd2l0aAorICogcHJpbWFyeSBrZXkgdmFsdWVzLglUaGUgY2hhbm5lbCB3aWxs IGJlICJ0Y24iIHVubGVzcyB0aGUgdHJpZ2dlciBpcworICogY3JlYXRlZCB3aXRoIGEgcGFy YW1ldGVyLCBpbiB3aGljaCBjYXNlIHRoYXQgcGFyYW1ldGVyIHdpbGwgYmUgdXNlZC4KKyAq LworUEdfRlVOQ1RJT05fSU5GT19WMSh0cmlnZ2VyZWRfY2hhbmdlX25vdGlmaWNhdGlvbik7 CisKK0RhdHVtCit0cmlnZ2VyZWRfY2hhbmdlX25vdGlmaWNhdGlvbihQR19GVU5DVElPTl9B UkdTKQoreworCVRyaWdnZXJEYXRhICp0cmlnZGF0YSA9IChUcmlnZ2VyRGF0YSAqKSBmY2lu Zm8tPmNvbnRleHQ7CisJVHJpZ2dlciAgICAqdHJpZ2dlcjsKKwlpbnQJCQluYXJnczsKKwlI ZWFwVHVwbGUJdHJpZ3R1cGxlOworCVJlbGF0aW9uCXJlbDsKKwlUdXBsZURlc2MJdHVwZGVz YzsKKwljaGFyCSAgICpjaGFubmVsOworCWNoYXIJCW9wZXJhdGlvbjsKKwlTdHJpbmdJbmZv CXBheWxvYWQgPSBtYWtlU3RyaW5nSW5mbygpOworCWJvb2wJCWZvdW5kUEs7CisKKwlMaXN0 CSAgICppbmRleG9pZGxpc3Q7CisJTGlzdENlbGwgICAqaW5kZXhvaWRzY2FuOworCisJLyog bWFrZSBzdXJlIGl0J3MgY2FsbGVkIGFzIGEgdHJpZ2dlciAqLworCWlmICghQ0FMTEVEX0FT X1RSSUdHRVIoZmNpbmZvKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX0VfUl9JX0VfVFJJR0dFUl9QUk9UT0NPTF9WSU9MQVRFRCksCisJCWVycm1zZygidHJp Z2dlcmVkX2NoYW5nZV9ub3RpZmljYXRpb246IG11c3QgYmUgY2FsbGVkIGFzIHRyaWdnZXIi KSkpOworCisJLyogYW5kIHRoYXQgaXQncyBjYWxsZWQgYWZ0ZXIgdGhlIGNoYW5nZSAqLwor CWlmICghVFJJR0dFUl9GSVJFRF9BRlRFUih0cmlnZGF0YS0+dGdfZXZlbnQpKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRV9SX0lfRV9UUklHR0VSX1BST1RP Q09MX1ZJT0xBVEVEKSwKKwkJCQkgZXJybXNnKCJ0cmlnZ2VyZWRfY2hhbmdlX25vdGlmaWNh dGlvbjogbXVzdCBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGNoYW5nZSIpKSk7CisKKwkvKiBhbmQg dGhhdCBpdCdzIGNhbGxlZCBmb3IgZWFjaCByb3cgKi8KKwlpZiAoIVRSSUdHRVJfRklSRURf Rk9SX1JPVyh0cmlnZGF0YS0+dGdfZXZlbnQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfRV9SX0lfRV9UUklHR0VSX1BST1RPQ09MX1ZJT0xBVEVEKSwKKwkJ CQkgZXJybXNnKCJ0cmlnZ2VyZWRfY2hhbmdlX25vdGlmaWNhdGlvbjogbXVzdCBiZSBjYWxs ZWQgZm9yIGVhY2ggcm93IikpKTsKKworCWlmIChUUklHR0VSX0ZJUkVEX0JZX0lOU0VSVCh0 cmlnZGF0YS0+dGdfZXZlbnQpKQorCQlvcGVyYXRpb24gPSAnSSc7CisJZWxzZSBpZiAoVFJJ R0dFUl9GSVJFRF9CWV9VUERBVEUodHJpZ2RhdGEtPnRnX2V2ZW50KSkKKwkJb3BlcmF0aW9u ID0gJ1UnOworCWVsc2UgaWYgKFRSSUdHRVJfRklSRURfQllfREVMRVRFKHRyaWdkYXRhLT50 Z19ldmVudCkpCisJCW9wZXJhdGlvbiA9ICdEJzsKKwllbHNlCisJeworCQllbG9nKEVSUk9S LCAidHJpZ2dlcmVkX2NoYW5nZV9ub3RpZmljYXRpb246IHRyaWdnZXIgZmlyZWQgYnkgdW5y ZWNvZ25pemVkIG9wZXJhdGlvbiIpOworCQlvcGVyYXRpb24gPSAnWCc7CQkvKiBzaWxlbmNl IGNvbXBpbGVyIHdhcm5pbmcgKi8KKwl9CisKKwl0cmlnZ2VyID0gdHJpZ2RhdGEtPnRnX3Ry aWdnZXI7CisJbmFyZ3MgPSB0cmlnZ2VyLT50Z25hcmdzOworCWlmIChuYXJncyA+IDEpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9FX1JfSV9FX1RSSUdHRVJf UFJPVE9DT0xfVklPTEFURUQpLAorCQkJCSBlcnJtc2coInRyaWdnZXJlZF9jaGFuZ2Vfbm90 aWZpY2F0aW9uOiBtdXN0IG5vdCBiZSBjYWxsZWQgd2l0aCBtb3JlIHRoYW4gb25lIHBhcmFt ZXRlciIpKSk7CisKKwlpZiAobmFyZ3MgPT0gMCkKKwkJY2hhbm5lbCA9ICJ0Y24iOworCWVs c2UKKwkJY2hhbm5lbCA9IHRyaWdnZXItPnRnYXJnc1swXTsKKworCS8qIGdldCB0dXBsZSBk YXRhICovCisJdHJpZ3R1cGxlID0gdHJpZ2RhdGEtPnRnX3RyaWd0dXBsZTsKKwlyZWwgPSB0 cmlnZGF0YS0+dGdfcmVsYXRpb247CisJdHVwZGVzYyA9IHJlbC0+cmRfYXR0OworCisJZm91 bmRQSyA9IGZhbHNlOworCisJLyoKKwkgKiBHZXQgdGhlIGxpc3Qgb2YgaW5kZXggT0lEcyBm b3IgdGhlIHRhYmxlIGZyb20gdGhlIHJlbGNhY2hlLCBhbmQgbG9vayB1cAorCSAqIGVhY2gg b25lIGluIHRoZSBwZ19pbmRleCBzeXNjYWNoZSB1bnRpbCB3ZSBmaW5kIG9uZSBtYXJrZWQg cHJpbWFyeSBrZXkKKwkgKiAoaG9wZWZ1bGx5IHRoZXJlIGlzbid0IG1vcmUgdGhhbiBvbmUg c3VjaCkuCisJICovCisJaW5kZXhvaWRsaXN0ID0gUmVsYXRpb25HZXRJbmRleExpc3QocmVs KTsKKworCWZvcmVhY2goaW5kZXhvaWRzY2FuLCBpbmRleG9pZGxpc3QpCisJeworCQlPaWQJ CQlpbmRleG9pZCA9IGxmaXJzdF9vaWQoaW5kZXhvaWRzY2FuKTsKKwkJSGVhcFR1cGxlCWlu ZGV4VHVwbGU7CisJCUZvcm1fcGdfaW5kZXggaW5kZXg7CisKKwkJaW5kZXhUdXBsZSA9IFNl YXJjaFN5c0NhY2hlMShJTkRFWFJFTElELCBPYmplY3RJZEdldERhdHVtKGluZGV4b2lkKSk7 CisJCWlmICghSGVhcFR1cGxlSXNWYWxpZChpbmRleFR1cGxlKSkJCS8qIHNob3VsZCBub3Qg aGFwcGVuICovCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgaW5k ZXggJXUiLCBpbmRleG9pZCk7CisJCWluZGV4ID0gKEZvcm1fcGdfaW5kZXgpIEdFVFNUUlVD VChpbmRleFR1cGxlKTsKKwkJLyogd2UncmUgb25seSBpbnRlcmVzdGVkIGlmIGl0IGlzIHRo ZSBwcmltYXJ5IGtleSAqLworCQlpZiAoaW5kZXgtPmluZGlzcHJpbWFyeSkKKwkJeworCQkJ aW50CQkJbnVtYXR0cyA9IGluZGV4LT5pbmRuYXR0czsKKworCQkJaWYgKG51bWF0dHMgPiAw KQorCQkJeworCQkJCWludAkJCWk7CisKKwkJCQlmb3VuZFBLID0gdHJ1ZTsKKworCQkJCXN0 cmNweV9xdW90ZWQocGF5bG9hZCwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSwgJyIn KTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhck1hY3JvKHBheWxvYWQsICcsJyk7CisJCQkJ YXBwZW5kU3RyaW5nSW5mb0NoYXJNYWNybyhwYXlsb2FkLCBvcGVyYXRpb24pOworCisJCQkJ Zm9yIChpID0gMDsgaSA8IG51bWF0dHM7IGkrKykKKwkJCQl7CisJCQkJCWludAkJCWNvbG5v ID0gaW5kZXgtPmluZGtleS52YWx1ZXNbaV07CisKKwkJCQkJYXBwZW5kU3RyaW5nSW5mb0No YXJNYWNybyhwYXlsb2FkLCAnLCcpOworCQkJCQlzdHJjcHlfcXVvdGVkKHBheWxvYWQsIE5h bWVTdHIoKHR1cGRlc2MtPmF0dHJzW2NvbG5vIC0gMV0pLT5hdHRuYW1lKSwgJyInKTsKKwkJ CQkJYXBwZW5kU3RyaW5nSW5mb0NoYXJNYWNybyhwYXlsb2FkLCAnPScpOworCQkJCQlzdHJj cHlfcXVvdGVkKHBheWxvYWQsIFNQSV9nZXR2YWx1ZSh0cmlndHVwbGUsIHR1cGRlc2MsIGNv bG5vKSwgJ1wnJyk7CisJCQkJfQorCisJCQkJQXN5bmNfTm90aWZ5KGNoYW5uZWwsIHBheWxv YWQtPmRhdGEpOworCQkJfQorCQkJUmVsZWFzZVN5c0NhY2hlKGluZGV4VHVwbGUpOworCQkJ YnJlYWs7CisJCX0KKwkJUmVsZWFzZVN5c0NhY2hlKGluZGV4VHVwbGUpOworCX0KKworCWxp c3RfZnJlZShpbmRleG9pZGxpc3QpOworCisJaWYgKCFmb3VuZFBLKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRV9SX0lfRV9UUklHR0VSX1BST1RPQ09MX1ZJ T0xBVEVEKSwKKwkJCQkgZXJybXNnKCJ0cmlnZ2VyZWRfY2hhbmdlX25vdGlmaWNhdGlvbjog bXVzdCBiZSBjYWxsZWQgb24gYSB0YWJsZSB3aXRoIGEgcHJpbWFyeSBrZXkiKSkpOworCisJ cmV0dXJuIFBvaW50ZXJHZXREYXR1bShOVUxMKTsJCS8qIGFmdGVyIHRyaWdnZXI7IHZhbHVl IGRvZXNuJ3QgbWF0dGVyICovCit9CmRpZmYgLS1naXQgYS9jb250cmliL3Rjbi90Y24uY29u dHJvbCBiL2NvbnRyaWIvdGNuL3Rjbi5jb250cm9sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjhhYmZkMTkKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3Rjbi90 Y24uY29udHJvbApAQCAtMCwwICsxLDUgQEAKKyMgdGNuIGV4dGVuc2lvbgorY29tbWVudCA9 ICdUcmlnZ2VyZWQgY2hhbmdlIG5vdGlmaWNhdGlvbnMnCitkZWZhdWx0X3ZlcnNpb24gPSAn MS4wJworbW9kdWxlX3BhdGhuYW1lID0gJyRsaWJkaXIvdGNuJworcmVsb2NhdGFibGUgPSB0 cnVlCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29udHJpYi5zZ21sIGIvZG9jL3NyYy9z Z21sL2NvbnRyaWIuc2dtbAppbmRleCBhZGYwOWNhLi5kNGRhNGVlIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvY29udHJpYi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb250cmliLnNn bWwKQEAgLTEyOCw2ICsxMjgsNyBAQCBDUkVBVEUgRVhURU5TSU9OIDxyZXBsYWNlYWJsZT5t b2R1bGVfbmFtZTwvPiBGUk9NIHVucGFja2FnZWQ7CiAgJmNvbnRyaWItc3BpOwogICZzc2xp bmZvOwogICZ0YWJsZWZ1bmM7CisgJnRjbjsKICAmdGVzdC1wYXJzZXI7CiAgJnRzZWFyY2gy OwogICZ1bmFjY2VudDsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9maWxlbGlzdC5zZ21s IGIvZG9jL3NyYy9zZ21sL2ZpbGVsaXN0LnNnbWwKaW5kZXggYjk2ZGQ2NS4uYjVkM2M2ZCAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2ZpbGVsaXN0LnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2ZpbGVsaXN0LnNnbWwKQEAgLTEzNiw2ICsxMzYsNyBAQAogPCFFTlRJVFkgc2VwZ3Nx bCAgICAgICAgIFNZU1RFTSAic2VwZ3NxbC5zZ21sIj4KIDwhRU5USVRZIHNzbGluZm8gICAg ICAgICBTWVNURU0gInNzbGluZm8uc2dtbCI+CiA8IUVOVElUWSB0YWJsZWZ1bmMgICAgICAg U1lTVEVNICJ0YWJsZWZ1bmMuc2dtbCI+Cis8IUVOVElUWSB0Y24gICAgICAgICAgICAgU1lT VEVNICJ0Y24uc2dtbCI+CiA8IUVOVElUWSB0ZXN0LXBhcnNlciAgICAgU1lTVEVNICJ0ZXN0 LXBhcnNlci5zZ21sIj4KIDwhRU5USVRZIHRzZWFyY2gyICAgICAgICBTWVNURU0gInRzZWFy Y2gyLnNnbWwiPgogPCFFTlRJVFkgdW5hY2NlbnQgICAgICBTWVNURU0gInVuYWNjZW50LnNn bWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Rjbi5zZ21sIGIvZG9jL3NyYy9zZ21s L3Rjbi5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmODMwZGYK LS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvdGNuLnNnbWwKQEAgLTAsMCArMSw3 MiBAQAorPCEtLSBkb2Mvc3JjL3NnbWwvdGNuLnNnbWwgLS0+CisKKzxzZWN0MSBpZD0idGNu IiB4cmVmbGFiZWw9InRjbiI+CisgPHRpdGxlPnRjbjwvdGl0bGU+CisKKyA8aW5kZXh0ZXJt IHpvbmU9InRjbiI+CisgIDxwcmltYXJ5PnRjbjwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4K KworIDxpbmRleHRlcm0gem9uZT0idGNuIj4KKyAgPHByaW1hcnk+dHJpZ2dlcmVkX2NoYW5n ZV9ub3RpZmljYXRpb248L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cGFyYT4KKyAg VGhlIDxmaWxlbmFtZT50Y248Lz4gbW9kdWxlIHByb3ZpZGVzIGEgdHJpZ2dlciBmdW5jdGlv biB0aGF0IG5vdGlmaWVzCisgIGxpc3RlbmVycyBvZiBjaGFuZ2VzIHRvIGFueSB0YWJsZSBv biB3aGljaCBpdCBpcyBhdHRhY2hlZC4gIEl0IG11c3QgYmUKKyAgdXNlZCBhcyBhbiA8bGl0 ZXJhbD5BRlRFUjwvPiB0cmlnZ2VyIDxsaXRlcmFsPkZPUiBFQUNIIFJPVzwvPi4KKyA8L3Bh cmE+CisKKyA8cGFyYT4KKyAgT25seSBvbmUgcGFyYW1ldGVyIG1heSBiZSBzdXVwcGxpZWQg dG8gdGhlIGZ1bmN0aW9uIGluIGEKKyAgPGxpdGVyYWw+Q1JFQVRFIFRSSUdHRVI8Lz4gc3Rh dGVtZW50LCBhbmQgdGhhdCBpcyBvcHRpb25hbC4gIElmIHN1cHBsaWVkCisgIGl0IHdpbGwg YmUgdXNlZCBmb3IgdGhlIGNoYW5uZWwgbmFtZSBmb3IgdGhlIG5vdGlmaWNhdGlvbnMuICBJ ZiBvbWl0dGVkCisgIDxsaXRlcmFsPnRjbjwvPiB3aWxsIGJlIHVzZWQgZm9yIHRoZSBjaGFu bmVsIG5hbWUuCisgPC9wYXJhPgorCisgPHBhcmE+CisgIFRoZSBwYXlsb2FkIG9mIHRoZSBu b3RpZmljYXRpb25zIGNvbnNpc3RzIG9mIHRoZSB0YWJsZSBuYW1lLCBhIGxldHRlciB0bwor ICBpbmRpY2F0ZSB3aGljaCB0eXBlIG9mIG9wZXJhdGlvbiB3YXMgcGVyZm9ybWVkLCBhbmQg Y29sdW1uIG5hbWUvdmFsdWUgcGFpcnMKKyAgZm9yIHByaW1hcnkga2V5IGNvbHVtbnMuICBF YWNoIHBhcnQgaXMgc2VwYXJhdGVkIGZyb20gdGhlIG5leHQgYnkgYSBjb21tYS4KKyAgRm9y IGVhc2Ugb2YgcGFyc2luZyB1c2luZyByZWd1bGFyIGV4cHJlc3Npb25zLCB0YWJsZSBhbmQg Y29sdW1uIG5hbWVzIGFyZQorICBhbHdheXMgd3JhcHBlZCBpbiBkb3VibGUgcXVvdGVzLCBh bmQgZGF0YSB2YWx1ZXMgYXJlIGFsd2F5cyB3cmFwcGVkIGluCisgIHNpbmdsZSBxdW90ZXMu ICBFbWJlZGVkIHF1b3RlcyBhcmUgZG91YmxlZC4KKyA8L3BhcmE+CisKKyA8cGFyYT4KKyAg QSBicmllZiBleGFtcGxlIG9mIHVzaW5nIHRoZSBleHRlbnNpb24gZm9sbG93cy4KKworPHBy b2dyYW1saXN0aW5nPgordGVzdD0jIGNyZWF0ZSB0YWJsZSB0Y25kYXRhCit0ZXN0LSMgICAo Cit0ZXN0KCMgICAgIGEgaW50IG5vdCBudWxsLAordGVzdCgjICAgICBiIGRhdGUgbm90IG51 bGwsCit0ZXN0KCMgICAgIGMgdGV4dCwKK3Rlc3QoIyAgICAgcHJpbWFyeSBrZXkgKGEsIGIp Cit0ZXN0KCMgICApOworTk9USUNFOiAgQ1JFQVRFIFRBQkxFIC8gUFJJTUFSWSBLRVkgd2ls bCBjcmVhdGUgaW1wbGljaXQgaW5kZXggInRjbmRhdGFfcGtleSIgZm9yIHRhYmxlICJ0Y25k YXRhIgorQ1JFQVRFIFRBQkxFCit0ZXN0PSMgY3JlYXRlIHRyaWdnZXIgdGNuZGF0YV90Y25f dHJpZ2dlcgordGVzdC0jICAgYWZ0ZXIgaW5zZXJ0IG9yIHVwZGF0ZSBvciBkZWxldGUgb24g dGNuZGF0YQordGVzdC0jICAgZm9yIGVhY2ggcm93IGV4ZWN1dGUgcHJvY2VkdXJlIHRyaWdn ZXJlZF9jaGFuZ2Vfbm90aWZpY2F0aW9uKCk7CitDUkVBVEUgVFJJR0dFUgordGVzdD0jIGxp c3RlbiB0Y247CitMSVNURU4KK3Rlc3Q9IyBpbnNlcnQgaW50byB0Y25kYXRhIHZhbHVlcyAo MSwgZGF0ZSAnMjAxMi0xMi0yMicsICdvbmUnKSwKK3Rlc3QtIyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoMSwgZGF0ZSAnMjAxMi0xMi0yMycsICdhbm90aGVyJyksCit0ZXN0LSMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDIsIGRhdGUgJzIwMTItMTItMjMnLCAndHdv Jyk7CitJTlNFUlQgMCAzCitBc3luY2hyb25vdXMgbm90aWZpY2F0aW9uICJ0Y24iIHdpdGgg cGF5bG9hZCAiInRjbmRhdGEiLEksImEiPScxJywiYiI9JzIwMTItMTItMjInIiByZWNlaXZl ZCBmcm9tIHNlcnZlciBwcm9jZXNzIHdpdGggUElEIDIyNzcwLgorQXN5bmNocm9ub3VzIG5v dGlmaWNhdGlvbiAidGNuIiB3aXRoIHBheWxvYWQgIiJ0Y25kYXRhIixJLCJhIj0nMScsImIi PScyMDEyLTEyLTIzJyIgcmVjZWl2ZWQgZnJvbSBzZXJ2ZXIgcHJvY2VzcyB3aXRoIFBJRCAy Mjc3MC4KK0FzeW5jaHJvbm91cyBub3RpZmljYXRpb24gInRjbiIgd2l0aCBwYXlsb2FkICIi dGNuZGF0YSIsSSwiYSI9JzInLCJiIj0nMjAxMi0xMi0yMyciIHJlY2VpdmVkIGZyb20gc2Vy dmVyIHByb2Nlc3Mgd2l0aCBQSUQgMjI3NzAuCit0ZXN0PSMgdXBkYXRlIHRjbmRhdGEgc2V0 IGMgPSAndW5vJyB3aGVyZSBhID0gMTsKK1VQREFURSAyCitBc3luY2hyb25vdXMgbm90aWZp Y2F0aW9uICJ0Y24iIHdpdGggcGF5bG9hZCAiInRjbmRhdGEiLFUsImEiPScxJywiYiI9JzIw MTItMTItMjInIiByZWNlaXZlZCBmcm9tIHNlcnZlciBwcm9jZXNzIHdpdGggUElEIDIyNzcw LgorQXN5bmNocm9ub3VzIG5vdGlmaWNhdGlvbiAidGNuIiB3aXRoIHBheWxvYWQgIiJ0Y25k YXRhIixVLCJhIj0nMScsImIiPScyMDEyLTEyLTIzJyIgcmVjZWl2ZWQgZnJvbSBzZXJ2ZXIg cHJvY2VzcyB3aXRoIFBJRCAyMjc3MC4KK3Rlc3Q9IyBkZWxldGUgZnJvbSB0Y25kYXRhIHdo ZXJlIGEgPSAxIGFuZCBiID0gZGF0ZSAnMjAxMi0xMi0yMic7CitERUxFVEUgMQorQXN5bmNo cm9ub3VzIG5vdGlmaWNhdGlvbiAidGNuIiB3aXRoIHBheWxvYWQgIiJ0Y25kYXRhIixELCJh Ij0nMScsImIiPScyMDEyLTEyLTIyJyIgcmVjZWl2ZWQgZnJvbSBzZXJ2ZXIgcHJvY2VzcyB3 aXRoIFBJRCAyMjc3MC4KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgPC9wYXJhPgorCis8L3NlY3Qx PgoKY29tbWl0IGM4Mzk3YmQ2ZDkwOTYyMDQ1N2I1MzJlMjUyY2UyZTQzN2M3ODdkNGYKQXV0 aG9yOiBSb2JlcnQgSGFhcyA8cmhhYXNAcG9zdGdyZXNxbC5vcmc+CkRhdGU6ICAgVGh1IEph biAxOSAyMTo1Mjo1MSAyMDEyIC0wNTAwCgogICAgQ2xhcmlmeSB0aGF0IGJnd3JpdGVyIG5v IGxvbmdlciBoYW5kbGVzIGNoZWNrcG9pbnRzLgogICAgCiAgICBUZXh0IGJ5IFBldGVyIEdl b2doZWdhbi4KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mv c3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggMGNjMzI5Ni4uNThlOGVkZSAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcu c2dtbApAQCAtMTM0Miw3ICsxMzQyLDggQEAgU0VUIEVOQUJMRV9TRVFTQ0FOIFRPIE9GRjsK ICAgICAgICAgPHBhcmE+CiAgICAgICAgICBJbiBlYWNoIHJvdW5kLCBubyBtb3JlIHRoYW4g dGhpcyBtYW55IGJ1ZmZlcnMgd2lsbCBiZSB3cml0dGVuCiAgICAgICAgICBieSB0aGUgYmFj a2dyb3VuZCB3cml0ZXIuICBTZXR0aW5nIHRoaXMgdG8gemVybyBkaXNhYmxlcwotICAgICAg ICAgYmFja2dyb3VuZCB3cml0aW5nIChleGNlcHQgZm9yIGNoZWNrcG9pbnQgYWN0aXZpdHkp LgorICAgICAgICAgYmFja2dyb3VuZCB3cml0aW5nLiAgKE5vdGUgdGhhdCBjaGVja3BvaW50 cywgd2hpY2ggYXJlIG1hbmFnZWQgYnkKKyAgICAgICAgIGEgc2VwYXJhdGUsIGRlZGljYXRl ZCBhdXhpbGlhcnkgcHJvY2VzcywgYXJlIHVuYWZmZWN0ZWQuKQogICAgICAgICAgVGhlIGRl ZmF1bHQgdmFsdWUgaXMgMTAwIGJ1ZmZlcnMuCiAgICAgICAgICBUaGlzIHBhcmFtZXRlciBj YW4gb25seSBiZSBzZXQgaW4gdGhlIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8Lz4KICAg ICAgICAgIGZpbGUgb3Igb24gdGhlIHNlcnZlciBjb21tYW5kIGxpbmUuCgpjb21taXQgZWNm N2EyZWEzODdhNDA5ZjYxNTJjMDVmNjBlNTc2NWM3NDM2YjhkZgpBdXRob3I6IEJydWNlIE1v bWppYW4gPGJydWNlQG1vbWppYW4udXM+CkRhdGU6ICAgVGh1IEphbiAxOSAxNjowNDozNCAy MDEyIC0wNTAwCgogICAgQWRkIHBnX3VwZ3JhZGUgQyBjb21tZW50IGFib3V0IHdoeSB3ZSBj aGVjayBhbGwgcmVsa2luZHMgZm9yIHJlZ3R5cGVzLgoKZGlmZiAtLWdpdCBhL2NvbnRyaWIv cGdfdXBncmFkZS9jaGVjay5jIGIvY29udHJpYi9wZ191cGdyYWRlL2NoZWNrLmMKaW5kZXgg ODU5NGQyNi4uODkxZWI5YSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ191cGdyYWRlL2NoZWNr LmMKKysrIGIvY29udHJpYi9wZ191cGdyYWRlL2NoZWNrLmMKQEAgLTY0NCw2ICs2NDQsMTEg QEAgY2hlY2tfZm9yX3JlZ19kYXRhX3R5cGVfdXNhZ2UoQ2x1c3RlckluZm8gKmNsdXN0ZXIp CiAJCURiSW5mbwkgICAqYWN0aXZlX2RiID0gJmNsdXN0ZXItPmRiYXJyLmRic1tkYm51bV07 CiAJCVBHY29ubgkgICAqY29ubiA9IGNvbm5lY3RUb1NlcnZlcihjbHVzdGVyLCBhY3RpdmVf ZGItPmRiX25hbWUpOwogCisJCS8qCisJCSAqCVdoaWxlIHNldmVyYWwgcmVsa2luZHMgZG9u J3Qgc3RvcmUgYW55IGRhdGEsIGUuZy4gdmlld3MsIHRoZXkKKwkJICoJY2FuIGJlIHVzZWQg dG8gZGVmaW5lIGRhdGEgdHlwZXMgb2Ygb3RoZXIgY29sdW1ucywgc28gd2UKKwkJICoJY2hl Y2sgYWxsIHJlbGtpbmRzLgorCQkgKi8KIAkJcmVzID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29u biwKIAkJCQkJCQkJIlNFTEVDVCBuLm5zcG5hbWUsIGMucmVsbmFtZSwgYS5hdHRuYW1lICIK IAkJCQkJCQkJIkZST00JcGdfY2F0YWxvZy5wZ19jbGFzcyBjLCAiCgpjb21taXQgY2M1M2Ex ZTdjY2ZhNzYyYmRhNzBlMWI2YTE1YmZkOTI5YmYxYjRlMwpBdXRob3I6IFJvYmVydCBIYWFz IDxyaGFhc0Bwb3N0Z3Jlc3FsLm9yZz4KRGF0ZTogICBUaHUgSmFuIDE5IDE1OjIzOjA0IDIw MTIgLTA1MDAKCiAgICBBZGQgYml0d2lzZSBBTkQsIE9SLCBhbmQgTk9UIG9wZXJhdG9ycyBm b3IgbWFjYWRkciBkYXRhIHR5cGUuCiAgICAKICAgIEJyZW5kYW4gSnVyZCwgcmV2aWV3ZWQg YnkgRnVqaWkgTWFzYW8KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIv ZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRleCBmZjliOGIwLi40M2I3MmY2IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5jLnNn bWwKQEAgLTgzMDAsNyArODMwMCw5IEBAIENSRUFURSBUWVBFIHJhaW5ib3cgQVMgRU5VTSAo J3JlZCcsICdvcmFuZ2UnLCAneWVsbG93JywgJ2dyZWVuJywgJ2JsdWUnLCAncHVycGxlCiAg ICA8cGFyYT4KICAgICBUaGUgPHR5cGU+bWFjYWRkcjwvdHlwZT4gdHlwZSBhbHNvIHN1cHBv cnRzIHRoZSBzdGFuZGFyZCByZWxhdGlvbmFsCiAgICAgb3BlcmF0b3JzICg8bGl0ZXJhbD4m Z3Q7PC9saXRlcmFsPiwgPGxpdGVyYWw+Jmx0Oz08L2xpdGVyYWw+LCBldGMuKSBmb3IKLSAg ICBsZXhpY29ncmFwaGljYWwgb3JkZXJpbmcuCisgICAgbGV4aWNvZ3JhcGhpY2FsIG9yZGVy aW5nLCBhbmQgdGhlIGJpdHdpc2UgYXJpdGhtZXRpYyBvcGVyYXRvcnMKKyAgICAoPGxpdGVy YWw+fjwvbGl0ZXJhbD4sIDxsaXRlcmFsPiZhbXA7PC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+ fDwvbGl0ZXJhbD4pCisgICAgZm9yIE5PVCwgQU5EIGFuZCBPUi4KICAgIDwvcGFyYT4KIAog ICA8L3NlY3QxPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYy5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYy5jCmluZGV4IDMzM2Y0YmMuLjk1OGZmNTQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbWFjLmMKQEAgLTI0Miw2ICsyNDIsNTkgQEAgaGFzaG1hY2FkZHIoUEdf RlVOQ1RJT05fQVJHUykKIH0KIAogLyoKKyAqIEFyaXRobWV0aWMgZnVuY3Rpb25zOiBiaXR3 aXNlIE5PVCwgQU5ELCBPUi4KKyAqLworRGF0dW0KK21hY2FkZHJfbm90KFBHX0ZVTkNUSU9O X0FSR1MpCit7CisJbWFjYWRkcgkgICAqYWRkciA9IFBHX0dFVEFSR19NQUNBRERSX1AoMCk7 CisJbWFjYWRkcgkgICAqcmVzdWx0OworCisJcmVzdWx0ID0gKG1hY2FkZHIgKikgcGFsbG9j KHNpemVvZihtYWNhZGRyKSk7CisJcmVzdWx0LT5hID0gfmFkZHItPmE7CisJcmVzdWx0LT5i ID0gfmFkZHItPmI7CisJcmVzdWx0LT5jID0gfmFkZHItPmM7CisJcmVzdWx0LT5kID0gfmFk ZHItPmQ7CisJcmVzdWx0LT5lID0gfmFkZHItPmU7CisJcmVzdWx0LT5mID0gfmFkZHItPmY7 CisJUEdfUkVUVVJOX01BQ0FERFJfUChyZXN1bHQpOworfQorCitEYXR1bQorbWFjYWRkcl9h bmQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwltYWNhZGRyCSAgICphZGRyMSA9IFBHX0dFVEFS R19NQUNBRERSX1AoMCk7CisJbWFjYWRkcgkgICAqYWRkcjIgPSBQR19HRVRBUkdfTUFDQURE Ul9QKDEpOworCW1hY2FkZHIJICAgKnJlc3VsdDsKKworCXJlc3VsdCA9IChtYWNhZGRyICop IHBhbGxvYyhzaXplb2YobWFjYWRkcikpOworCXJlc3VsdC0+YSA9IGFkZHIxLT5hICYgYWRk cjItPmE7CisJcmVzdWx0LT5iID0gYWRkcjEtPmIgJiBhZGRyMi0+YjsKKwlyZXN1bHQtPmMg PSBhZGRyMS0+YyAmIGFkZHIyLT5jOworCXJlc3VsdC0+ZCA9IGFkZHIxLT5kICYgYWRkcjIt PmQ7CisJcmVzdWx0LT5lID0gYWRkcjEtPmUgJiBhZGRyMi0+ZTsKKwlyZXN1bHQtPmYgPSBh ZGRyMS0+ZiAmIGFkZHIyLT5mOworCVBHX1JFVFVSTl9NQUNBRERSX1AocmVzdWx0KTsKK30K KworRGF0dW0KK21hY2FkZHJfb3IoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwltYWNhZGRyCSAg ICphZGRyMSA9IFBHX0dFVEFSR19NQUNBRERSX1AoMCk7CisJbWFjYWRkcgkgICAqYWRkcjIg PSBQR19HRVRBUkdfTUFDQUREUl9QKDEpOworCW1hY2FkZHIJICAgKnJlc3VsdDsKKworCXJl c3VsdCA9IChtYWNhZGRyICopIHBhbGxvYyhzaXplb2YobWFjYWRkcikpOworCXJlc3VsdC0+ YSA9IGFkZHIxLT5hIHwgYWRkcjItPmE7CisJcmVzdWx0LT5iID0gYWRkcjEtPmIgfCBhZGRy Mi0+YjsKKwlyZXN1bHQtPmMgPSBhZGRyMS0+YyB8IGFkZHIyLT5jOworCXJlc3VsdC0+ZCA9 IGFkZHIxLT5kIHwgYWRkcjItPmQ7CisJcmVzdWx0LT5lID0gYWRkcjEtPmUgfCBhZGRyMi0+ ZTsKKwlyZXN1bHQtPmYgPSBhZGRyMS0+ZiB8IGFkZHIyLT5mOworCVBHX1JFVFVSTl9NQUNB RERSX1AocmVzdWx0KTsKK30KKworLyoKICAqCVRydW5jYXRpb24gZnVuY3Rpb24gdG8gYWxs b3cgY29tcGFyaW5nIG1hYyBtYW51ZmFjdHVyZXJzLgogICoJRnJvbSBzdWdnZXN0aW9uIGJ5 IEFsZXggUGlsb3NvdiA8YWxleEBwaWxvc29mdC5jb20+CiAgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9j YXR2ZXJzaW9uLmgKaW5kZXggOWU3OTljNi4uMjg1ZmFlMyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9j YXR2ZXJzaW9uLmgKQEAgLTUzLDYgKzUzLDYgQEAKICAqLwogCiAvKgkJCQkJCQl5eXl5bW1k ZE4gKi8KLSNkZWZpbmUgQ0FUQUxPR19WRVJTSU9OX05PCTIwMTIwMTE5MQorI2RlZmluZSBD QVRBTE9HX1ZFUlNJT05fTk8JMjAxMjAxMTkyCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19vcGVyYXRvci5oCmluZGV4IGYxOTg2NWQuLmVhZDVhZjYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX29wZXJhdG9yLmgKQEAgLTExMTYsNiArMTExNiwxMyBAQCBERVNDUigiZ3JlYXRlciB0 aGFuIik7CiBEQVRBKGluc2VydCBPSUQgPSAxMjI1ICggICI+PSIJICAgUEdOU1AgUEdVSUQg YiBmIGYgODI5IDgyOQkgMTYgMTIyMyAxMjIyIG1hY2FkZHJfZ2Ugc2NhbGFyZ3RzZWwgc2Nh bGFyZ3Rqb2luc2VsICkpOwogREVTQ1IoImdyZWF0ZXIgdGhhbiBvciBlcXVhbCIpOwogCitE QVRBKGluc2VydCBPSUQgPSAzMTQ3ICggICJ+IgkgICBQR05TUCBQR1VJRCBsIGYgZgkgIDAg ODI5IDgyOSAwIDAgbWFjYWRkcl9ub3QgLSAtICkpOworREVTQ1IoImJpdHdpc2Ugbm90Iik7 CitEQVRBKGluc2VydCBPSUQgPSAzMTQ4ICggICImIgkgICBQR05TUCBQR1VJRCBiIGYgZgk4 MjkgODI5IDgyOSAwIDAgbWFjYWRkcl9hbmQgLSAtICkpOworREVTQ1IoImJpdHdpc2UgYW5k Iik7CitEQVRBKGluc2VydCBPSUQgPSAzMTQ5ICggICJ8IgkgICBQR05TUCBQR1VJRCBiIGYg Zgk4MjkgODI5IDgyOSAwIDAgbWFjYWRkcl9vciAtIC0gKSk7CitERVNDUigiYml0d2lzZSBv ciIpOworCiAvKiBJTkVUIHR5cGUgKHRoZXNlIGFsc28gc3VwcG9ydCBDSURSIHZpYSBpbXBs aWNpdCBjYXN0KSAqLwogREFUQShpbnNlcnQgT0lEID0gMTIwMSAoICAiPSIJICAgUEdOU1Ag UEdVSUQgYiB0IHQgODY5IDg2OQkgMTYgMTIwMSAxMjAyIG5ldHdvcmtfZXEgZXFzZWwgZXFq b2luc2VsICkpOwogREVTQ1IoImVxdWFsIik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5oCmluZGV4 IDk5OTQ0NjguLmI2YWMxOTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5oCkBAIC0yMDM5LDYg KzIwMzksOSBAQCBEQVRBKGluc2VydCBPSUQgPSA4MzQgKCAgbWFjYWRkcl9nZQkJCVBHTlNQ IFBHVUlEIDEyIDEgMCAwIDAgZiBmIGYgdCBmIGkgMiAwIDE2CiBEQVRBKGluc2VydCBPSUQg PSA4MzUgKCAgbWFjYWRkcl9uZQkJCVBHTlNQIFBHVUlEIDEyIDEgMCAwIDAgZiBmIGYgdCBm IGkgMiAwIDE2ICI4MjkgODI5IiBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8JbWFjYWRk cl9uZSBfbnVsbF8gX251bGxfIF9udWxsXyApKTsKIERBVEEoaW5zZXJ0IE9JRCA9IDgzNiAo ICBtYWNhZGRyX2NtcAkJUEdOU1AgUEdVSUQgMTIgMSAwIDAgMCBmIGYgZiB0IGYgaSAyIDAg MjMgIjgyOSA4MjkiIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXwltYWNhZGRyX2NtcCBf bnVsbF8gX251bGxfIF9udWxsXyApKTsKIERFU0NSKCJsZXNzLWVxdWFsLWdyZWF0ZXIiKTsK K0RBVEEoaW5zZXJ0IE9JRCA9IDMxNDQgKCAgbWFjYWRkcl9ub3QJCVBHTlNQIFBHVUlEIDEy IDEgMCAwIDAgZiBmIGYgdCBmIGkgMSAwIDgyOSAiODI5IiBfbnVsbF8gX251bGxfIF9udWxs XyBfbnVsbF8JbWFjYWRkcl9ub3QgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CitEQVRBKGlu c2VydCBPSUQgPSAzMTQ1ICggIG1hY2FkZHJfYW5kCQlQR05TUCBQR1VJRCAxMiAxIDAgMCAw IGYgZiBmIHQgZiBpIDIgMCA4MjkgIjgyOSA4MjkiIF9udWxsXyBfbnVsbF8gX251bGxfIF9u dWxsXwltYWNhZGRyX2FuZCBfbnVsbF8gX251bGxfIF9udWxsXyApKTsKK0RBVEEoaW5zZXJ0 IE9JRCA9IDMxNDYgKCAgbWFjYWRkcl9vcgkJUEdOU1AgUEdVSUQgMTIgMSAwIDAgMCBmIGYg ZiB0IGYgaSAyIDAgODI5ICI4MjkgODI5IiBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8J bWFjYWRkcl9vciBfbnVsbF8gX251bGxfIF9udWxsXyApKTsKIAogLyogZm9yIGluZXQgdHlw ZSBzdXBwb3J0ICovCiBEQVRBKGluc2VydCBPSUQgPSA5MTAgKCAgaW5ldF9pbgkJCVBHTlNQ IFBHVUlEIDEyIDEgMCAwIDAgZiBmIGYgdCBmIGkgMSAwIDg2OSAiMjI3NSIgX251bGxfIF9u dWxsXyBfbnVsbF8gX251bGxfIGluZXRfaW4gX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9idWlsdGlucy5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvYnVpbHRpbnMuaAppbmRleCA0NmIyZjNiLi42ODE3OWQ1IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy9idWlsdGlucy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2J1 aWx0aW5zLmgKQEAgLTkwMCw2ICs5MDAsOSBAQCBleHRlcm4gRGF0dW0gbWFjYWRkcl9lcShQ R19GVU5DVElPTl9BUkdTKTsKIGV4dGVybiBEYXR1bSBtYWNhZGRyX2dlKFBHX0ZVTkNUSU9O X0FSR1MpOwogZXh0ZXJuIERhdHVtIG1hY2FkZHJfZ3QoUEdfRlVOQ1RJT05fQVJHUyk7CiBl eHRlcm4gRGF0dW0gbWFjYWRkcl9uZShQR19GVU5DVElPTl9BUkdTKTsKK2V4dGVybiBEYXR1 bSBtYWNhZGRyX25vdChQR19GVU5DVElPTl9BUkdTKTsKK2V4dGVybiBEYXR1bSBtYWNhZGRy X2FuZChQR19GVU5DVElPTl9BUkdTKTsKK2V4dGVybiBEYXR1bSBtYWNhZGRyX29yKFBHX0ZV TkNUSU9OX0FSR1MpOwogZXh0ZXJuIERhdHVtIG1hY2FkZHJfdHJ1bmMoUEdfRlVOQ1RJT05f QVJHUyk7CiBleHRlcm4gRGF0dW0gaGFzaG1hY2FkZHIoUEdfRlVOQ1RJT05fQVJHUyk7CiAK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWFjYWRkci5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21hY2FkZHIub3V0CmluZGV4IDBiMmE5NmQuLjUw ZDAzNjkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWFjYWRkci5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tYWNhZGRyLm91dApAQCAtMTAz LDQgKzEwMyw1MiBAQCBTRUxFQ1QgYiA8PiAnMDg6MDA6MmI6MDE6MDI6MDMnIEZST00gbWFj YWRkcl9kYXRhIFdIRVJFIGEgPSAxOyAtLSBmYWxzZQogIGYKICgxIHJvdykKIAorU0VMRUNU IH5iICAgICAgICAgICAgICAgICAgICAgICBGUk9NIG1hY2FkZHJfZGF0YTsKKyAgICAgP2Nv bHVtbj8gICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmNzpmZjpkNDpmZTpmZDpmYwor IGY3OmZmOmQ0OmZlOmZkOmZjCisgZjc6ZmY6ZDQ6ZmU6ZmQ6ZmMKKyBmNzpmZjpkNDpmZTpm ZDpmYworIGY3OmZmOmQ0OmZlOmZkOmZjCisgZjc6ZmY6ZDQ6ZmU6ZmQ6ZmMKKyBmNzpmZjpk NDpmZTpmZDpmYgorIGY3OmZmOmQ0OmZlOmZkOmZkCisgZjc6ZmY6ZDU6ZmU6ZmQ6ZmMKKyBm NzpmZjpkMzpmZTpmZDpmYworIGY3OmZmOmQ1OmZlOmZkOmZiCisoMTEgcm93cykKKworU0VM RUNUICBiICYgJzAwOjAwOjAwOmZmOmZmOmZmJyBGUk9NIG1hY2FkZHJfZGF0YTsKKyAgICAg P2NvbHVtbj8gICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAwMDowMDowMDowMTowMjow MworIDAwOjAwOjAwOjAxOjAyOjAzCisgMDA6MDA6MDA6MDE6MDI6MDMKKyAwMDowMDowMDow MTowMjowMworIDAwOjAwOjAwOjAxOjAyOjAzCisgMDA6MDA6MDA6MDE6MDI6MDMKKyAwMDow MDowMDowMTowMjowNAorIDAwOjAwOjAwOjAxOjAyOjAyCisgMDA6MDA6MDA6MDE6MDI6MDMK KyAwMDowMDowMDowMTowMjowMworIDAwOjAwOjAwOjAxOjAyOjA0CisoMTEgcm93cykKKwor U0VMRUNUICBiIHwgJzAxOjAyOjAzOjA0OjA1OjA2JyBGUk9NIG1hY2FkZHJfZGF0YTsKKyAg ICAgP2NvbHVtbj8gICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAwOTowMjoyYjowNTow NzowNworIDA5OjAyOjJiOjA1OjA3OjA3CisgMDk6MDI6MmI6MDU6MDc6MDcKKyAwOTowMjoy YjowNTowNzowNworIDA5OjAyOjJiOjA1OjA3OjA3CisgMDk6MDI6MmI6MDU6MDc6MDcKKyAw OTowMjoyYjowNTowNzowNgorIDA5OjAyOjJiOjA1OjA3OjA2CisgMDk6MDI6MmI6MDU6MDc6 MDcKKyAwOTowMjoyZjowNTowNzowNworIDA5OjAyOjJiOjA1OjA3OjA2CisoMTEgcm93cykK KwogRFJPUCBUQUJMRSBtYWNhZGRyX2RhdGE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9tYWNhZGRyLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21hY2FkZHIuc3Fs CmluZGV4IGNlOGQ5MjAuLjFjY2Y1MDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL21hY2FkZHIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21hY2FkZHIuc3Fs CkBAIC0zNSw0ICszNSw4IEBAIFNFTEVDVCBiID0gICcwODowMDoyYjowMTowMjowMycgRlJP TSBtYWNhZGRyX2RhdGEgV0hFUkUgYSA9IDE7IC0tIHRydWUKIFNFTEVDVCBiIDw+ICcwODow MDoyYjowMTowMjowNCcgRlJPTSBtYWNhZGRyX2RhdGEgV0hFUkUgYSA9IDE7IC0tIHRydWUK IFNFTEVDVCBiIDw+ICcwODowMDoyYjowMTowMjowMycgRlJPTSBtYWNhZGRyX2RhdGEgV0hF UkUgYSA9IDE7IC0tIGZhbHNlCiAKK1NFTEVDVCB+YiAgICAgICAgICAgICAgICAgICAgICAg RlJPTSBtYWNhZGRyX2RhdGE7CitTRUxFQ1QgIGIgJiAnMDA6MDA6MDA6ZmY6ZmY6ZmYnIEZS T00gbWFjYWRkcl9kYXRhOworU0VMRUNUICBiIHwgJzAxOjAyOjAzOjA0OjA1OjA2JyBGUk9N IG1hY2FkZHJfZGF0YTsKKwogRFJPUCBUQUJMRSBtYWNhZGRyX2RhdGE7Cgpjb21taXQgNGY0 MmI1NDZmZDg3YTgwYmUzMGM1M2EwZjJjODk3YWNiODI2YWQ1MgpBdXRob3I6IE1hZ251cyBI YWdhbmRlciA8bWFnbnVzQGhhZ2FuZGVyLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjE5 OjIwIDIwMTIgKzAxMDAKCiAgICBTZXBhcmF0ZSBzdGF0ZSBmcm9tIHF1ZXJ5IHN0cmluZyBp biBwZ19zdGF0X2FjdGl2aXR5CiAgICAKICAgIFRoaXMgc2VwYXJhdGVzIHRoZSBzdGF0ZSAo cnVubmluZy9pZGxlL2lkbGVpbnRyYW5zYWN0aW9uIGV0YykgaW50bwogICAgaXQncyBvd24g ZmllbGQgKCJzdGF0ZSIpLCBhbmQgbGVhdmVzIHRoZSBxdWVyeSBmaWVsZCBjb250YWluaW5n IGp1c3QKICAgIHF1ZXJ5IHRleHQuCiAgICAKICAgIFRoZSBxdWVyeSB0ZXh0IHdpbGwgbm93 IG1lYW4gImN1cnJlbnQgcXVlcnkiIHdoZW4gYSBxdWVyeSBpcyBydW5uaW5nCiAgICBhbmQg Imxhc3QgcXVlcnkiIGluIG90aGVyIHN0YXRlcy4gQWNjb3JkaW5nbHksdGhlIGZpZWxkIGhh cyBiZWVuCiAgICByZW5hbWVkIGZyb20gY3VycmVudF9xdWVyeSB0byBxdWVyeS4KICAgIAog ICAgU2luY2UgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2FzIGJyb2tlbiBhbnl3YXkgdG8g bWFrZSB0aGF0LCB0aGUgcHJvY3BpZAogICAgZmllbGQgaGFzIGFsc28gYmVlbiByZW5hbWVk IHRvIHBpZCAtIGFsb25nIHdpdGggdGhlIHNhbWUgZmllbGQgaW4KICAgIHBnX3N0YXRfcmVw bGljYXRpb24gZm9yIGNvbnNpc3RlbmN5LgogICAgCiAgICBTY290dCBNZWFkIGFuZCBNYWdu dXMgSGFnYW5kZXIsIHJldmlldyB3b3JrIGZyb20gR3JlZyBTbWl0aAoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sCmluZGV4IGExMmE5YTIuLjIyNTkxODAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbApA QCAtMjQyLDIwICsyNDIsMjAgQEAgcG9zdGdyZXM6IDxyZXBsYWNlYWJsZT51c2VyPC8+IDxy ZXBsYWNlYWJsZT5kYXRhYmFzZTwvPiA8cmVwbGFjZWFibGU+aG9zdDwvPiA8cmUKIAogICAg IDx0Ym9keT4KICAgICAgPHJvdz4KLSAgICAgIDxlbnRyeT48c3RydWN0bmFtZT5wZ19zdGF0 X2FjdGl2aXR5PC8+PGluZGV4dGVybT48cHJpbWFyeT5wZ19zdGF0X2FjdGl2aXR5PC9wcmlt YXJ5PjwvaW5kZXh0ZXJtPjwvZW50cnk+Ci0gICAgICA8ZW50cnk+T25lIHJvdyBwZXIgc2Vy dmVyIHByb2Nlc3MsIHNob3dpbmcgZGF0YWJhc2UgT0lELCBkYXRhYmFzZQotICAgICAgbmFt ZSwgcHJvY2VzcyA8YWNyb255bT5JRDwvPiwgdXNlciBPSUQsIHVzZXIgbmFtZSwgYXBwbGlj YXRpb24gbmFtZSwKLSAgICAgIGNsaWVudCdzIGFkZHJlc3MsIGhvc3QgbmFtZSAoaWYgYXZh aWxhYmxlKSwgYW5kIHBvcnQgbnVtYmVyLCB0aW1lcyBhdAotICAgICAgd2hpY2ggdGhlIHNl cnZlciBwcm9jZXNzLCBjdXJyZW50IHRyYW5zYWN0aW9uLCBhbmQgY3VycmVudCBxdWVyeSBi ZWdhbgotICAgICAgZXhlY3V0aW9uLCBwcm9jZXNzJ3Mgd2FpdGluZyBzdGF0dXMsIGFuZCB0 ZXh0IG9mIHRoZSBjdXJyZW50IHF1ZXJ5LgotICAgICAgVGhlIGNvbHVtbnMgdGhhdCByZXBv cnQgZGF0YSBvbiB0aGUgY3VycmVudCBxdWVyeSBhcmUgYXZhaWxhYmxlIHVubGVzcwotICAg ICAgdGhlIHBhcmFtZXRlciA8dmFybmFtZT50cmFja19hY3Rpdml0aWVzPC92YXJuYW1lPiBo YXMgYmVlbiB0dXJuZWQgb2ZmLgotICAgICAgRnVydGhlcm1vcmUsIHRoZXNlIGNvbHVtbnMg YXJlIG9ubHkgdmlzaWJsZSBpZiB0aGUgdXNlciBleGFtaW5pbmcKLSAgICAgIHRoZSB2aWV3 IGlzIGEgc3VwZXJ1c2VyIG9yIHRoZSBzYW1lIGFzIHRoZSB1c2VyIG93bmluZyB0aGUgcHJv Y2VzcwotICAgICAgYmVpbmcgcmVwb3J0ZWQgb24uICBUaGUgY2xpZW50J3MgaG9zdCBuYW1l IHdpbGwgYmUgYXZhaWxhYmxlIG9ubHkgaWYKLSAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1s b2ctaG9zdG5hbWUiPiBpcyBzZXQgb3IgaWYgdGhlIHVzZXIncyBob3N0IG5hbWUKLSAgICAg IG5lZWRlZCB0byBiZSBsb29rZWQgdXAgZHVyaW5nIDxmaWxlbmFtZT5wZ19oYmEuY29uZjwv ZmlsZW5hbWU+Ci0gICAgICBwcm9jZXNzaW5nLgorICAgICAgPGVudHJ5PgorICAgICAgIDxz dHJ1Y3RuYW1lPnBnX3N0YXRfYWN0aXZpdHk8L3N0cnVjdG5hbWU+CisgICAgICAgPGluZGV4 dGVybT48cHJpbWFyeT5wZ19zdGF0X2FjdGl2aXR5PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgor ICAgICAgPC9lbnRyeT4KKyAgICAgIDxlbnRyeT4KKyAgICAgICA8cGFyYT5PbmUgcm93IHBl ciBzZXJ2ZXIgcHJvY2Vzcywgc2hvd2luZyBpbmZvcm1hdGlvbiByZWxhdGVkIHRvCisgICAg ICAgIGVhY2ggY29ubmVjdGlvbiB0byB0aGUgc2VydmVyLiBVbmxlc3MgdGhlCisgICAgICAg IDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1hY3Rpdml0aWVzIj4gcGFyYW1ldGVyIGhhcyBi ZWVuIHR1cm5lZAorICAgICAgICAgb2ZmLCBpdCBpcyBwb3NzaWJsZSB0byBtb25pdG9yIHN0 YXRlIGFuZCBxdWVyeSBpbmZvcm1hdGlvbiBvZgorICAgICAgICAgYWxsIHJ1bm5pbmcgcHJv Y2Vzc2VzLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU2VlIDx4 cmVmIGxpbmtlbmQ9InBnLXN0YXQtYWN0aXZpdHktdmlldyI+IGZvciBtb3JlIGRldGFpbHMu CisgICAgICAgPC9wYXJhPgogICAgICA8L2VudHJ5PgogICAgICA8L3Jvdz4KIApAQCAtNTI5 LDYgKzUyOSwyMTAgQEAgcG9zdGdyZXM6IDxyZXBsYWNlYWJsZT51c2VyPC8+IDxyZXBsYWNl YWJsZT5kYXRhYmFzZTwvPiA8cmVwbGFjZWFibGU+aG9zdDwvPiA8cmUKICAgIGludG8gdGhl IGtlcm5lbCdzIGhhbmRsaW5nIG9mIEkvTy4KICAgPC9wYXJhPgogCisgIDx0YWJsZSBpZD0i cGctc3RhdC1hY3Rpdml0eS12aWV3IiB4cmVmbGFiZWw9InBnX3N0YXRfYWN0aXZpdHkiPgor ICAgPHRpdGxlPnBnX3N0YXRfYWN0aXZpdHkgdmlldzwvdGl0bGU+CisKKyAgIDx0Z3JvdXAg Y29scz0iMyI+CisgICAgPHRoZWFkPgorICAgIDxyb3c+CisgICAgICA8ZW50cnk+Q29sdW1u PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UeXBlPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5EZXNj cmlwdGlvbjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgIDx0Ym9k eT4KKyAgICA8cm93PgorICAgICA8ZW50cnk+ZGF0aWQ8L2VudHJ5PgorICAgICA8ZW50cnk+ PHR5cGU+b2lkPC8+PC9lbnRyeT4KKyAgICAgPGVudHJ5PlRoZSBvaWQgb2YgdGhlIGRhdGFi YXNlIHRoZSBiYWNrZW5kIGlzIGNvbm5lY3RlZCB0by48L2VudHJ5PgorICAgIDwvcm93Pgor ICAgIDxyb3c+CisgICAgIDxlbnRyeT5kYXRuYW1lPC9lbnRyeT4KKyAgICAgPGVudHJ5Pjx0 eXBlPm5hbWU8Lz48L2VudHJ5PgorICAgICA8ZW50cnk+VGhlIG5hbWUgb2YgdGhlIGRhdGFi YXNlIHRoZSBiYWNrZW5kIGlzIGNvbm5lY3RlZCB0by48L2VudHJ5PgorICAgIDwvcm93Pgor ICAgIDxyb3c+CisgICAgIDxlbnRyeT5waWQ8L2VudHJ5PgorICAgICA8ZW50cnk+PHR5cGU+ aW50ZWdlcjwvPjwvZW50cnk+CisgICAgIDxlbnRyeT5UaGUgcHJvY2VzcyBJRCBvZiB0aGUg YmFja2VuZC48L2VudHJ5PgorICAgIDwvcm93PgorICAgIDxyb3c+CisgICAgIDxlbnRyeT51 c2VzeXNpZDwvZW50cnk+CisgICAgIDxlbnRyeT48dHlwZT5vaWQ8Lz48L2VudHJ5PgorICAg ICA8ZW50cnk+VGhlIGlkIG9mIHRoZSB1c2VyIGxvZ2dlZCBpbnRvIHRoZSBiYWNrZW5kLjwv ZW50cnk+CisgICAgPC9yb3c+CisgICAgPHJvdz4KKyAgICAgPGVudHJ5PnVzZW5hbWU8L2Vu dHJ5PgorICAgICA8ZW50cnk+PHR5cGU+bmFtZTwvPjwvZW50cnk+CisgICAgIDxlbnRyeT5U aGUgbmFtZSBvZiB0aGUgdXNlciBsb2dnZWQgaW50byB0aGUgYmFja2VuZC48L2VudHJ5Pgor ICAgIDwvcm93PgorICAgIDxyb3c+CisgICAgIDxlbnRyeT5hcHBsaWNhdGlvbl9uYW1lPC9l bnRyeT4KKyAgICAgPGVudHJ5Pjx0eXBlPnRleHQ8Lz48L2VudHJ5PgorICAgICA8ZW50cnk+ VGhlIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIHRoYXQgaGFzIGluaXRpYXRlZCB0aGUgY29u bmVjdGlvbgorICAgICAgdG8gdGhlIGJhY2tlbmQuPC9lbnRyeT4KKyAgICA8L3Jvdz4KKyAg ICA8cm93PgorICAgICA8ZW50cnk+Y2xpZW50X2FkZHI8L2VudHJ5PgorICAgICA8ZW50cnk+ PHR5cGU+aW5ldDwvPjwvZW50cnk+CisgICAgIDxlbnRyeT5UaGUgcmVtb3RlIElQIG9mIHRo ZSBjbGllbnQgY29ubmVjdGVkIHRvIHRoZSBiYWNrZW5kLgorICAgICBJZiB0aGlzIGZpZWxk IGlzIG5vdCBzZXQsIGl0IGluZGljYXRlcyB0aGF0IHRoZSBjbGllbnQgaXMgZWl0aGVyOgor ICAgICAgPGl0ZW1pemVkbGlzdCBzcGFjaW5nPSJjb21wYWN0IiBtYXJrPSJidWxsZXQiPgor ICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBDb25uZWN0ZWQg dmlhIHVuaXggc29ja2V0cyBvbiB0aGUgc2VydmVyIG1hY2hpbmUKKyAgICAgICAgPC9wYXJh PgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFy YT5BbiBpbnRlcm5hbCBwcm9jZXNzIHN1Y2ggYXMgYXV0b3ZhY3V1bTwvcGFyYT4KKyAgICAg ICA8L2xpc3RpdGVtPgorICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgPC9lbnRyeT4KKyAg ICA8L3Jvdz4KKyAgICA8cm93PgorICAgICA8ZW50cnk+Y2xpZW50X2hvc3RuYW1lPC9lbnRy eT4KKyAgICAgPGVudHJ5Pjx0eXBlPnRleHQ8Lz48L2VudHJ5PgorICAgICA8ZW50cnk+Cisg ICAgICBJZiBhdmFpbGFibGUsIHRoZSBob3N0bmFtZSBvZiB0aGUgY2xpZW50IGFzIHJlcG9y dGVkIGJ5IGEKKyAgICAgIHJldmVyc2UgbG9va3VwIG9mIDxzdHJ1Y3RmaWVsZD5jbGllbnRf YWRkcjwvPi4gVGhpcyBmaWVsZCB3aWxsCisgICAgICBvbmx5IGJlIHNldCB3aGVuIDx4cmVm IGxpbmtlbmQ9Imd1Yy1sb2ctaG9zdG5hbWUiPiBpcyBlbmFibGVkLgorICAgICA8L2VudHJ5 PgorICAgIDwvcm93PgorICAgIDxyb3c+CisgICAgIDxlbnRyeT5jbGllbnRfcG9ydDwvZW50 cnk+CisgICAgIDxlbnRyeT48dHlwZT5pbnRlZ2VyPC8+PC9lbnRyeT4KKyAgICAgPGVudHJ5 PgorICAgICAgVGhlIHJlbW90ZSBUQ1AgcG9ydCB0aGF0IHRoZSBjbGllbnQgaXMgdXNpbmcg Zm9yIGNvbW11bmljYXRpb24KKyAgICAgIHRvIHRoZSBiYWNrZW5kLCBvciA8c3ltYm9sPk5V TEw8Lz4gaWYgYSB1bml4IHNvY2tldCBpcyB1c2VkLgorICAgICA8L2VudHJ5PgorICAgIDwv cm93PgorICAgIDxyb3c+CisgICAgIDxlbnRyeT5iYWNrZW5kX3N0YXJ0PC9lbnRyeT4KKyAg ICAgPGVudHJ5Pjx0eXBlPnRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZTwvPjwvZW50cnk+Cisg ICAgIDxlbnRyeT4KKyAgICAgIFRoZSB0aW1lIHdoZW4gdGhpcyBwcm9jZXNzIHdhcyBzdGFy dGVkLCAgaS5lLiB3aGVuIHRoZQorICAgICAgY2xpZW50IGNvbm5lY3RlZCB0byB0aGUgc2Vy dmVyLgorICAgICA8L2VudHJ5PgorICAgIDwvcm93PgorICAgIDxyb3c+CisgICAgIDxlbnRy eT54YWN0X3N0YXJ0PC9lbnRyeT4KKyAgICAgPGVudHJ5Pjx0eXBlPnRpbWVzdGFtcCB3aXRo IHRpbWUgem9uZTwvPjwvZW50cnk+CisgICAgIDxlbnRyeT4KKyAgICAgIFRoZSB0aW1lIHdo ZW4gdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gd2FzIHN0YXJ0ZWQuIElmIHRoZSBjbGllbnQg aXMKKyAgICAgIHVzaW5nIGF1dG9jb21taXQgZm9yIHRyYW5zYWN0aW9ucywgdGhpcyB2YWx1 ZSBpcyBlcXVhbCB0byB0aGUKKyAgICAgIHF1ZXJ5X3N0YXJ0IGNvbHVtbi4KKyAgICAgPC9l bnRyeT4KKyAgICA8L3Jvdz4KKyAgICA8cm93PgorICAgICA8ZW50cnk+cXVlcnlfc3RhcnQ8 L2VudHJ5PgorICAgICA8ZW50cnk+PHR5cGU+dGltZXN0YW1wIHdpdGggdGltZSB6b25lPC8+ PC9lbnRyeT4KKyAgICAgPGVudHJ5PgorICAgICAgVGhlIHRpbWUgd2hlbiB0aGUgY3VycmVu dGx5IGFjdGl2ZSBxdWVyeSBzdGFydGVkLCBvciBpZgorICAgICAgPHN0cnVjdGZpZWxkPnN0 YXRlPC8+IGlzIDxsaXRlcmFsPmlkbGU8Lz4sIHdoZW4gdGhlIGxhc3QgcXVlcnkKKyAgICAg IHdhcyBzdGFydGVkLgorICAgICA8L2VudHJ5PgorICAgIDwvcm93PgorICAgIDxyb3c+Cisg ICAgIDxlbnRyeT5zdGF0ZV9jaGFuZ2U8L2VudHJ5PgorICAgICA8ZW50cnk+PHR5cGU+dGlt ZXN0YW1wIHdpdGggdGltZSB6b25lPC8+PC9lbnRyeT4KKyAgICAgPGVudHJ5PlRoZSB0aW1l IHdoZW4gdGhlIDxzdHJ1Y3RmaWVsZD5zdGF0ZTwvPiB3YXMgbGFzdCBjaGFuZ2VkLjwvZW50 cnk+CisgICAgPC9yb3c+CisgICAgPHJvdz4KKyAgICAgPGVudHJ5PndhaXRpbmc8L2VudHJ5 PgorICAgICA8ZW50cnk+PHR5cGU+Ym9vbGVhbjwvPjwvZW50cnk+CisgICAgIDxlbnRyeT4K KyAgICAgIEJvb2xlYW4gaW5kaWNhdGluZyBpZiBhIGJhY2tlbmQgaXMgY3VycmVudGx5IHdh aXRpbmcgb24gYSBsb2NrLgorICAgICA8L2VudHJ5PgorICAgIDwvcm93PgorICAgIDxyb3c+ CisgICAgIDxlbnRyeT5zdGF0ZTwvZW50cnk+CisgICAgIDxlbnRyeT48dHlwZT50ZXh0PC8+ PC9lbnRyeT4KKyAgICAgPGVudHJ5PgorICAgICAgIFRoZSA8c3RydWN0ZmllbGQ+c3RhdGU8 Lz4gb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIHF1ZXJ5LgorICAgICAgIENhbiBiZSBvbmUg b2Y6CisgICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgICAgICAgIDx0ZXJtPmFjdGl2ZTwvdGVybT4KKyAgICAgICAgICAgPGxpc3RpdGVtPgor ICAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgICBUaGUgYmFja2VuZCBpcyBleGVj dXRpbmcgYSBxdWVyeS4KKyAgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgICAgICAgIDx0ZXJtPmlkbGU8L3Rlcm0+CisgICAgICAgICAgIDxs aXN0aXRlbT4KKyAgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgICAgIFRoZXJlIGlz IG5vIHF1ZXJ5IGV4ZWN1dGluZyBpbiB0aGUgYmFja2VuZC4KKyAgICAgICAgICAgICA8L3Bh cmE+CisgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4K KyAgICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgICAgIDx0ZXJtPmlkbGUgaW4gdHJh bnNhY3Rpb248L3Rlcm0+CisgICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgICA8 cGFyYT4KKyAgICAgICAgICAgICAgIFRoZSBiYWNrZW5kIGlzIGluIGEgdHJhbnNhY3Rpb24s IGJ1dCBpcyBjdXJyZW50bHkgbm90IGN1cnJlbnRseQorICAgICAgICAgICAgICAgZXhlY3V0 aW5nIGEgcXVlcnkuCisgICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgICA8L2xpc3Rp dGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgICAgICA8dGVybT5pZGxlIGluIHRyYW5zYWN0aW9uIChhYm9ydGVkKTwvdGVy bT4KKyAgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgIDxwYXJhPgorICAgICAg ICAgICAgICAgVGhpcyBzdGF0ZSBpcyBzaW1pbGFyIHRvIDxsaXRlcmFsPmlkbGUgaW4gdHJh bnNhY3Rpb248Lz4sCisgICAgICAgICAgICAgICBleGNlcHQgb25lIG9mIHRoZSBzdGF0ZW1l bnRzIGluIHRoZSB0cmFuc2FjdGlvbiBjYXVzZWQgYW4gZXJyb3IuCisgICAgICAgICAgICAg PC9wYXJhPgorICAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50 cnk+CisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgICA8dGVybT5mYXN0cGF0 aCBmdW5jdGlvbiBjYWxsPC90ZXJtPgorICAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg ICAgICAgPHBhcmE+CisgICAgICAgICAgICAgICBUaGUgYmFja2VuZCBpcyBleGVjdXRpbmcg YSBmYXN0LXBhdGggZnVuY3Rpb24uCisgICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAg ICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgICAgICA8dGVybT5kaXNhYmxlZDwvdGVybT4KKyAgICAgICAg ICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgICAgVGhp cyBzdGF0ZSBpbmRpY2F0ZXMgdGhhdCA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2stYWN0aXZp dGllcyI+CisgICAgICAgICAgICAgICBpcyBkaXNhYmxlZC4KKyAgICAgICAgICAgICA8L3Bh cmE+CisgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4K KyAgICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICAgIDxub3RlPgorICAgICAgIDxwYXJhPgor ICAgICAgICBUaGUgPHN0cnVjdGZpZWxkPndhaXRpbmc8Lz4gYW5kIDxzdHJ1Y3RmaWVsZD5z dGF0ZTwvPiBjb2x1bW5zIGFyZQorICAgICAgICBpbmRlcGVuZGVudC4gIElmIGEgcXVlcnkg aXMgaW4gdGhlIDxsaXRlcmFsPmFjdGl2ZTwvPiBzdGF0ZSwKKyAgICAgICAgaXQgbWF5IG9y IG1heSBub3QgYmUgPGxpdGVyYWw+d2FpdGluZzwvPi4gIElmIGEgcXVlcnkgaXMKKyAgICAg ICAgPGxpdGVyYWw+YWN0aXZlPC8+IGFuZCA8c3RydWN0ZmllbGQ+d2FpdGluZzwvPiBpcyB0 cnVlLCBpdCBtZWFucworICAgICAgICB0aGF0IHRoZSBxdWVyeSBpcyBiZWluZyBleGVjdXRl ZCwgYnV0IGlzIGJlaW5nIGJsb2NrZWQgYnkgYSBsb2NrCisgICAgICAgIHNvbWV3aGVyZSBp biB0aGUgc3lzdGVtLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbm90ZT4KKyAgICAgPC9l bnRyeT4KKyAgICA8L3Jvdz4KKyAgICA8cm93PgorICAgICA8ZW50cnk+cXVlcnk8L2VudHJ5 PgorICAgICA8ZW50cnk+PHR5cGU+dGV4dDwvPjwvZW50cnk+CisgICAgIDxlbnRyeT4KKyAg ICAgIFRoZSBtb3N0IHJlY2VudCBxdWVyeSB0aGF0IHRoZSBiYWNrZW5kIGhhcyBleGVjdXRl ZC4gSWYKKyAgICAgIDxzdHJ1Y3RmaWVsZD5zdGF0ZTwvPiBpcyA8bGl0ZXJhbD5hY3RpdmU8 Lz4gdGhpcyBtZWFucyB0aGUgY3VycmVudGx5CisgICAgICBleGVjdXRpbmcgcXVlcnkuIElu IGFsbCBvdGhlciBzdGF0ZXMsIGl0IG1lYW5zIHRoZSBsYXN0IHF1ZXJ5IHRoYXQgd2FzCisg ICAgICBleGVjdXRlZC4KKyAgICAgPC9lbnRyeT4KKyAgICA8L3Jvdz4KKyAgIDwvdGJvZHk+ CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKworIDxzZWN0MyBpZD0ibW9uaXRvcmluZy1z dGF0cy1mdW5jdGlvbnMiPgorICA8dGl0bGU+U3RhdGlzdGljcyBBY2Nlc3MgRnVuY3Rpb25z PC90aXRsZT4KKwogICA8cGFyYT4KICAgIE90aGVyIHdheXMgb2YgbG9va2luZyBhdCB0aGUg c3RhdGlzdGljcyBjYW4gYmUgc2V0IHVwIGJ5IHdyaXRpbmcKICAgIHF1ZXJpZXMgdGhhdCB1 c2UgdGhlIHNhbWUgdW5kZXJseWluZyBzdGF0aXN0aWNzIGFjY2VzcyBmdW5jdGlvbnMgYXMK QEAgLTEyNjQsNiArMTQ2OCw3IEBAIFNFTEVDVCBwZ19zdGF0X2dldF9iYWNrZW5kX3BpZChz LmJhY2tlbmRpZCkgQVMgcHJvY3BpZCwKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4K IAorIDwvc2VjdDM+CiAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwKaW5kZXggNTBiYTIwYy4uZTI1OTE0YiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtNTIwLDcgKzUyMCw3IEBAIENSRUFURSBW SUVXIHBnX3N0YXRfYWN0aXZpdHkgQVMKICAgICBTRUxFQ1QKICAgICAgICAgICAgIFMuZGF0 aWQgQVMgZGF0aWQsCiAgICAgICAgICAgICBELmRhdG5hbWUgQVMgZGF0bmFtZSwKLSAgICAg ICAgICAgIFMucHJvY3BpZCwKKyAgICAgICAgICAgIFMucGlkLAogICAgICAgICAgICAgUy51 c2VzeXNpZCwKICAgICAgICAgICAgIFUucm9sbmFtZSBBUyB1c2VuYW1lLAogICAgICAgICAg ICAgUy5hcHBsaWNhdGlvbl9uYW1lLApAQCAtNTMwLDE1ICs1MzAsMTcgQEAgQ1JFQVRFIFZJ RVcgcGdfc3RhdF9hY3Rpdml0eSBBUwogICAgICAgICAgICAgUy5iYWNrZW5kX3N0YXJ0LAog ICAgICAgICAgICAgUy54YWN0X3N0YXJ0LAogICAgICAgICAgICAgUy5xdWVyeV9zdGFydCwK KyAgICAgICAgICAgIFMuc3RhdGVfY2hhbmdlLAogICAgICAgICAgICAgUy53YWl0aW5nLAot ICAgICAgICAgICAgUy5jdXJyZW50X3F1ZXJ5CisgICAgICAgICAgICBTLnN0YXRlLAorICAg ICAgICAgICAgUy5xdWVyeQogICAgIEZST00gcGdfZGF0YWJhc2UgRCwgcGdfc3RhdF9nZXRf YWN0aXZpdHkoTlVMTCkgQVMgUywgcGdfYXV0aGlkIFUKICAgICBXSEVSRSBTLmRhdGlkID0g RC5vaWQgQU5ECiAgICAgICAgICAgICBTLnVzZXN5c2lkID0gVS5vaWQ7CiAKIENSRUFURSBW SUVXIHBnX3N0YXRfcmVwbGljYXRpb24gQVMKICAgICBTRUxFQ1QKLSAgICAgICAgICAgIFMu cHJvY3BpZCwKKyAgICAgICAgICAgIFMucGlkLAogICAgICAgICAgICAgUy51c2VzeXNpZCwK ICAgICAgICAgICAgIFUucm9sbmFtZSBBUyB1c2VuYW1lLAogICAgICAgICAgICAgUy5hcHBs aWNhdGlvbl9uYW1lLApAQCAtNTU2LDcgKzU1OCw3IEBAIENSRUFURSBWSUVXIHBnX3N0YXRf cmVwbGljYXRpb24gQVMKICAgICBGUk9NIHBnX3N0YXRfZ2V0X2FjdGl2aXR5KE5VTEwpIEFT IFMsIHBnX2F1dGhpZCBVLAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfd2FsX3NlbmRlcnMo KSBBUyBXCiAgICAgV0hFUkUgUy51c2VzeXNpZCA9IFUub2lkIEFORAotICAgICAgICAgICAg Uy5wcm9jcGlkID0gVy5wcm9jcGlkOworICAgICAgICAgICAgUy5waWQgPSBXLnBpZDsKIAog Q1JFQVRFIFZJRVcgcGdfc3RhdF9kYXRhYmFzZSBBUwogICAgIFNFTEVDVApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL2F1dG92YWN1dW0uYwppbmRleCBmODU4YTZkLi5lODRlMjFjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYworKysgYi9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwpAQCAtMjc4MSw3ICsyNzgxLDcgQEAgYXV0 b3ZhY19yZXBvcnRfYWN0aXZpdHkoYXV0b3ZhY190YWJsZSAqdGFiKQogCS8qIFNldCBzdGF0 ZW1lbnRfdGltZXN0YW1wKCkgdG8gY3VycmVudCB0aW1lIGZvciBwZ19zdGF0X2FjdGl2aXR5 ICovCiAJU2V0Q3VycmVudFN0YXRlbWVudFN0YXJ0VGltZXN0YW1wKCk7CiAKLQlwZ3N0YXRf cmVwb3J0X2FjdGl2aXR5KGFjdGl2aXR5KTsKKwlwZ3N0YXRfcmVwb3J0X2FjdGl2aXR5KFNU QVRFX1JVTk5JTkcsIGFjdGl2aXR5KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3Rh dC5jCmluZGV4IDMyM2Q0MmIuLjNhYjhkZmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bv c3RtYXN0ZXIvcGdzdGF0LmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQu YwpAQCAtMjQxMCwxMiArMjQxMCwxNCBAQCBwZ3N0YXRfYmVzdGFydCh2b2lkKQogCWJlZW50 cnktPnN0X3Byb2NwaWQgPSBNeVByb2NQaWQ7CiAJYmVlbnRyeS0+c3RfcHJvY19zdGFydF90 aW1lc3RhbXAgPSBwcm9jX3N0YXJ0X3RpbWVzdGFtcDsKIAliZWVudHJ5LT5zdF9hY3Rpdml0 eV9zdGFydF90aW1lc3RhbXAgPSAwOworCWJlZW50cnktPnN0X3N0YXRlX3N0YXJ0X3RpbWVz dGFtcCA9IDA7CiAJYmVlbnRyeS0+c3RfeGFjdF9zdGFydF90aW1lc3RhbXAgPSAwOwogCWJl ZW50cnktPnN0X2RhdGFiYXNlaWQgPSBNeURhdGFiYXNlSWQ7CiAJYmVlbnRyeS0+c3RfdXNl cmlkID0gdXNlcmlkOwogCWJlZW50cnktPnN0X2NsaWVudGFkZHIgPSBjbGllbnRhZGRyOwog CWJlZW50cnktPnN0X2NsaWVudGhvc3RuYW1lWzBdID0gJ1wwJzsKIAliZWVudHJ5LT5zdF93 YWl0aW5nID0gZmFsc2U7CisJYmVlbnRyeS0+c3Rfc3RhdGUgPSBTVEFURV9VTkRFRklORUQ7 CiAJYmVlbnRyeS0+c3RfYXBwbmFtZVswXSA9ICdcMCc7CiAJYmVlbnRyeS0+c3RfYWN0aXZp dHlbMF0gPSAnXDAnOwogCS8qIEFsc28gbWFrZSBzdXJlIHRoZSBsYXN0IGJ5dGUgaW4gZWFj aCBzdHJpbmcgYXJlYSBpcyBhbHdheXMgMCAqLwpAQCAtMjQ3NiwzOSArMjQ3OCw3MCBAQCBw Z3N0YXRfYmVzaHV0ZG93bl9ob29rKGludCBjb2RlLCBEYXR1bSBhcmcpCiAgKgogICoJQ2Fs bGVkIGZyb20gdGNvcC9wb3N0Z3Jlcy5jIHRvIHJlcG9ydCB3aGF0IHRoZSBiYWNrZW5kIGlz IGFjdHVhbGx5IGRvaW5nCiAgKgkodXN1YWxseSAiPElETEU+IiBvciB0aGUgc3RhcnQgb2Yg dGhlIHF1ZXJ5IHRvIGJlIGV4ZWN1dGVkKS4KKyAqCisgKiBBbGwgdXBkYXRlcyBvZiB0aGUg c3RhdHVzIGVudHJ5IGZvbGxvdyB0aGUgcHJvdG9jb2wgb2YgYnVtcGluZworICogc3RfY2hh bmdlY291bnQgYmVmb3JlIGFuZCBhZnRlci4gIFdlIHVzZSBhIHZvbGF0aWxlIHBvaW50ZXIg aGVyZSB0bworICogZW5zdXJlIHRoZSBjb21waWxlciBkb2Vzbid0IHRyeSB0byBnZXQgY3V0 ZS4KICAqIC0tLS0tLS0tLS0KICAqLwogdm9pZAotcGdzdGF0X3JlcG9ydF9hY3Rpdml0eShj b25zdCBjaGFyICpjbWRfc3RyKQorcGdzdGF0X3JlcG9ydF9hY3Rpdml0eShCYWNrZW5kU3Rh dGUgc3RhdGUsIGNvbnN0IGNoYXIgKmNtZF9zdHIpCiB7CiAJdm9sYXRpbGUgUGdCYWNrZW5k U3RhdHVzICpiZWVudHJ5ID0gTXlCRUVudHJ5OwogCVRpbWVzdGFtcFR6IHN0YXJ0X3RpbWVz dGFtcDsKKwlUaW1lc3RhbXBUeiBjdXJyZW50X3RpbWVzdGFtcDsKIAlpbnQJCQlsZW47CiAK IAlUUkFDRV9QT1NUR1JFU1FMX1NUQVRFTUVOVF9TVEFUVVMoY21kX3N0cik7CiAKLQlpZiAo IXBnc3RhdF90cmFja19hY3Rpdml0aWVzIHx8ICFiZWVudHJ5KQorCWlmICghYmVlbnRyeSkK IAkJcmV0dXJuOwogCiAJLyoKIAkgKiBUbyBtaW5pbWl6ZSB0aGUgdGltZSBzcGVudCBtb2Rp ZnlpbmcgdGhlIGVudHJ5LCBmZXRjaCBhbGwgdGhlIG5lZWRlZAogCSAqIGRhdGEgZmlyc3Qu CiAJICovCi0Jc3RhcnRfdGltZXN0YW1wID0gR2V0Q3VycmVudFN0YXRlbWVudFN0YXJ0VGlt ZXN0YW1wKCk7CisJY3VycmVudF90aW1lc3RhbXAgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7 CiAKLQlsZW4gPSBzdHJsZW4oY21kX3N0cik7Ci0JbGVuID0gcGdfbWJjbGlwbGVuKGNtZF9z dHIsIGxlbiwgcGdzdGF0X3RyYWNrX2FjdGl2aXR5X3F1ZXJ5X3NpemUgLSAxKTsKKwlpZiAo IXBnc3RhdF90cmFja19hY3Rpdml0aWVzICYmIGJlZW50cnktPnN0X3N0YXRlICE9IFNUQVRF X0RJU0FCTEVEKQorCXsKKwkJLyoKKwkJICogVHJhY2sgYWN0aXZpdGllcyBpcyBkaXNhYmxl ZCwgYnV0IHdlIGhhdmUgYSBub24tZGlzYWJsZWQgc3RhdGUgc2V0LgorCQkgKiBUaGF0IG1l YW5zIHRoZSBzdGF0dXMgY2hhbmdlZCAtIHNvIGFzIG91ciBsYXN0IHVwZGF0ZSwgdGVsbCB0 aGUKKwkJICogY29sbGVjdG9yIHRoYXQgd2UgZGlzYWJsZWQgaXQgYW5kIHdpbGwgbm8gbG9u Z2VyIHVwZGF0ZS4KKwkJICovCisJCWJlZW50cnktPnN0X2NoYW5nZWNvdW50Kys7CisJCWJl ZW50cnktPnN0X3N0YXRlID0gU1RBVEVfRElTQUJMRUQ7CisJCWJlZW50cnktPnN0X3N0YXRl X3N0YXJ0X3RpbWVzdGFtcCA9IGN1cnJlbnRfdGltZXN0YW1wOworCQliZWVudHJ5LT5zdF9j aGFuZ2Vjb3VudCsrOworCQlBc3NlcnQoKGJlZW50cnktPnN0X2NoYW5nZWNvdW50ICYgMSkg PT0gMCk7CisJCXJldHVybjsKKwl9CiAKIAkvKgotCSAqIFVwZGF0ZSBteSBzdGF0dXMgZW50 cnksIGZvbGxvd2luZyB0aGUgcHJvdG9jb2wgb2YgYnVtcGluZwotCSAqIHN0X2NoYW5nZWNv dW50IGJlZm9yZSBhbmQgYWZ0ZXIuICBXZSB1c2UgYSB2b2xhdGlsZSBwb2ludGVyIGhlcmUg dG8KLQkgKiBlbnN1cmUgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgdHJ5IHRvIGdldCBjdXRlLgor CSAqIEZldGNoIG1vcmUgZGF0YSBiZWZvcmUgd2Ugc3RhcnQgbW9kaWZ5aW5nIHRoZSBlbnRy eQorCSAqLworCXN0YXJ0X3RpbWVzdGFtcCA9IEdldEN1cnJlbnRTdGF0ZW1lbnRTdGFydFRp bWVzdGFtcCgpOworCWlmIChjbWRfc3RyICE9IE5VTEwpCisJeworCQlsZW4gPSBzdHJsZW4o Y21kX3N0cik7CisJCWxlbiA9IHBnX21iY2xpcGxlbihjbWRfc3RyLCBsZW4sIHBnc3RhdF90 cmFja19hY3Rpdml0eV9xdWVyeV9zaXplIC0gMSk7CisJfQorCisJLyoKKwkgKiBOb3cgdXBk YXRlIHRoZSBzdGF0dXMgZW50cnkKIAkgKi8KIAliZWVudHJ5LT5zdF9jaGFuZ2Vjb3VudCsr OwogCi0JYmVlbnRyeS0+c3RfYWN0aXZpdHlfc3RhcnRfdGltZXN0YW1wID0gc3RhcnRfdGlt ZXN0YW1wOwotCW1lbWNweSgoY2hhciAqKSBiZWVudHJ5LT5zdF9hY3Rpdml0eSwgY21kX3N0 ciwgbGVuKTsKLQliZWVudHJ5LT5zdF9hY3Rpdml0eVtsZW5dID0gJ1wwJzsKKwliZWVudHJ5 LT5zdF9zdGF0ZSA9IHN0YXRlOworCWJlZW50cnktPnN0X3N0YXRlX3N0YXJ0X3RpbWVzdGFt cCA9IGN1cnJlbnRfdGltZXN0YW1wOworCisJaWYgKGNtZF9zdHIgIT0gTlVMTCkKKwl7CisJ CW1lbWNweSgoY2hhciAqKSBiZWVudHJ5LT5zdF9hY3Rpdml0eSwgY21kX3N0ciwgbGVuKTsK KwkJYmVlbnRyeS0+c3RfYWN0aXZpdHlbbGVuXSA9ICdcMCc7CisJCWJlZW50cnktPnN0X2Fj dGl2aXR5X3N0YXJ0X3RpbWVzdGFtcCA9IHN0YXJ0X3RpbWVzdGFtcDsKKwl9CiAKIAliZWVu dHJ5LT5zdF9jaGFuZ2Vjb3VudCsrOwogCUFzc2VydCgoYmVlbnRyeS0+c3RfY2hhbmdlY291 bnQgJiAxKSA9PSAwKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMu YyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCA1OWEyODdmLi40OWEzOTY5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC04MDksNyArODA5LDcgQEAgZXhlY19zaW1wbGVf cXVlcnkoY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nKQogCSAqLwogCWRlYnVnX3F1ZXJ5X3N0 cmluZyA9IHF1ZXJ5X3N0cmluZzsKIAotCXBnc3RhdF9yZXBvcnRfYWN0aXZpdHkocXVlcnlf c3RyaW5nKTsKKwlwZ3N0YXRfcmVwb3J0X2FjdGl2aXR5KFNUQVRFX1JVTk5JTkcsIHF1ZXJ5 X3N0cmluZyk7CiAKIAlUUkFDRV9QT1NUR1JFU1FMX1FVRVJZX1NUQVJUKHF1ZXJ5X3N0cmlu Zyk7CiAKQEAgLTExMzQsNyArMTEzNCw3IEBAIGV4ZWNfcGFyc2VfbWVzc2FnZShjb25zdCBj aGFyICpxdWVyeV9zdHJpbmcsCS8qIHN0cmluZyB0byBleGVjdXRlICovCiAJICovCiAJZGVi dWdfcXVlcnlfc3RyaW5nID0gcXVlcnlfc3RyaW5nOwogCi0JcGdzdGF0X3JlcG9ydF9hY3Rp dml0eShxdWVyeV9zdHJpbmcpOworCXBnc3RhdF9yZXBvcnRfYWN0aXZpdHkoU1RBVEVfUlVO TklORywgcXVlcnlfc3RyaW5nKTsKIAogCXNldF9wc19kaXNwbGF5KCJQQVJTRSIsIGZhbHNl KTsKIApAQCAtMTQyOSw3ICsxNDI5LDcgQEAgZXhlY19iaW5kX21lc3NhZ2UoU3RyaW5nSW5m byBpbnB1dF9tZXNzYWdlKQogCSAqLwogCWRlYnVnX3F1ZXJ5X3N0cmluZyA9IHBzcmMtPnF1 ZXJ5X3N0cmluZzsKIAotCXBnc3RhdF9yZXBvcnRfYWN0aXZpdHkocHNyYy0+cXVlcnlfc3Ry aW5nKTsKKwlwZ3N0YXRfcmVwb3J0X2FjdGl2aXR5KFNUQVRFX1JVTk5JTkcsIHBzcmMtPnF1 ZXJ5X3N0cmluZyk7CiAKIAlzZXRfcHNfZGlzcGxheSgiQklORCIsIGZhbHNlKTsKIApAQCAt MTgzNiw3ICsxODM2LDcgQEAgZXhlY19leGVjdXRlX21lc3NhZ2UoY29uc3QgY2hhciAqcG9y dGFsX25hbWUsIGxvbmcgbWF4X3Jvd3MpCiAJICovCiAJZGVidWdfcXVlcnlfc3RyaW5nID0g c291cmNlVGV4dDsKIAotCXBnc3RhdF9yZXBvcnRfYWN0aXZpdHkoc291cmNlVGV4dCk7CisJ cGdzdGF0X3JlcG9ydF9hY3Rpdml0eShTVEFURV9SVU5OSU5HLCBzb3VyY2VUZXh0KTsKIAog CXNldF9wc19kaXNwbGF5KHBvcnRhbC0+Y29tbWFuZFRhZywgZmFsc2UpOwogCkBAIC0zODEx LDEyICszODExLDEyIEBAIFBvc3RncmVzTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLCBj b25zdCBjaGFyICp1c2VybmFtZSkKIAkJCWlmIChJc0Fib3J0ZWRUcmFuc2FjdGlvbkJsb2Nr U3RhdGUoKSkKIAkJCXsKIAkJCQlzZXRfcHNfZGlzcGxheSgiaWRsZSBpbiB0cmFuc2FjdGlv biAoYWJvcnRlZCkiLCBmYWxzZSk7Ci0JCQkJcGdzdGF0X3JlcG9ydF9hY3Rpdml0eSgiPElE TEU+IGluIHRyYW5zYWN0aW9uIChhYm9ydGVkKSIpOworCQkJCXBnc3RhdF9yZXBvcnRfYWN0 aXZpdHkoU1RBVEVfSURMRUlOVFJBTlNBQ1RJT05fQUJPUlRFRCwgTlVMTCk7CiAJCQl9CiAJ CQllbHNlIGlmIChJc1RyYW5zYWN0aW9uT3JUcmFuc2FjdGlvbkJsb2NrKCkpCiAJCQl7CiAJ CQkJc2V0X3BzX2Rpc3BsYXkoImlkbGUgaW4gdHJhbnNhY3Rpb24iLCBmYWxzZSk7Ci0JCQkJ cGdzdGF0X3JlcG9ydF9hY3Rpdml0eSgiPElETEU+IGluIHRyYW5zYWN0aW9uIik7CisJCQkJ cGdzdGF0X3JlcG9ydF9hY3Rpdml0eShTVEFURV9JRExFSU5UUkFOU0FDVElPTiwgTlVMTCk7 CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC0zODI0LDcgKzM4MjQsNyBAQCBQb3N0Z3Jlc01h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgY29uc3QgY2hhciAqdXNlcm5hbWUpCiAJCQkJ cGdzdGF0X3JlcG9ydF9zdGF0KGZhbHNlKTsKIAogCQkJCXNldF9wc19kaXNwbGF5KCJpZGxl IiwgZmFsc2UpOwotCQkJCXBnc3RhdF9yZXBvcnRfYWN0aXZpdHkoIjxJRExFPiIpOworCQkJ CXBnc3RhdF9yZXBvcnRfYWN0aXZpdHkoU1RBVEVfSURMRSwgTlVMTCk7CiAJCQl9CiAKIAkJ CVJlYWR5Rm9yUXVlcnkod2hlcmVUb1NlbmRPdXRwdXQpOwpAQCAtMzk0NCw3ICszOTQ0LDcg QEAgUG9zdGdyZXNNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10sIGNvbnN0IGNoYXIgKnVz ZXJuYW1lKQogCQkJCVNldEN1cnJlbnRTdGF0ZW1lbnRTdGFydFRpbWVzdGFtcCgpOwogCiAJ CQkJLyogUmVwb3J0IHF1ZXJ5IHRvIHZhcmlvdXMgbW9uaXRvcmluZyBmYWNpbGl0aWVzLiAq LwotCQkJCXBnc3RhdF9yZXBvcnRfYWN0aXZpdHkoIjxGQVNUUEFUSD4gZnVuY3Rpb24gY2Fs bCIpOworCQkJCXBnc3RhdF9yZXBvcnRfYWN0aXZpdHkoU1RBVEVfRkFTVFBBVEgsIE5VTEwp OwogCQkJCXNldF9wc19kaXNwbGF5KCI8RkFTVFBBVEg+IiwgZmFsc2UpOwogCiAJCQkJLyog c3RhcnQgYW4geGFjdCBmb3IgdGhpcyBmdW5jdGlvbiBpbnZvY2F0aW9uICovCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IGI0OTg2ZDguLmVkMzlmMjcgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC01MDcsMzEgKzUwNywzNCBAQCBw Z19zdGF0X2dldF9hY3Rpdml0eShQR19GVU5DVElPTl9BUkdTKQogCiAJCW9sZGNvbnRleHQg PSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZnVuY2N0eC0+bXVsdGlfY2FsbF9tZW1vcnlfY3R4 KTsKIAotCQl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2MoMTIsIGZhbHNlKTsK KwkJdHVwZGVzYyA9IENyZWF0ZVRlbXBsYXRlVHVwbGVEZXNjKDE0LCBmYWxzZSk7CiAJCVR1 cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMSwgImRhdGlkIiwKIAkJ CQkJCSAgIE9JRE9JRCwgLTEsIDApOwotCQkvKiBUaGlzIHNob3VsZCBoYXZlIGJlZW4gY2Fs bGVkICdwaWQnOyAgY2FuJ3QgY2hhbmdlIGl0LiAyMDExLTA2LTExICovCi0JCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMiwgInByb2NwaWQiLAorCQlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDIsICJwaWQiLAogCQkJCQkJ ICAgSU5UNE9JRCwgLTEsIDApOwogCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpIDMsICJ1c2VzeXNpZCIsCiAJCQkJCQkgICBPSURPSUQsIC0xLCAwKTsKIAkJ VHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA0LCAiYXBwbGljYXRp b25fbmFtZSIsCiAJCQkJCQkgICBURVhUT0lELCAtMSwgMCk7Ci0JCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNSwgImN1cnJlbnRfcXVlcnkiLAorCQlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDUsICJzdGF0ZSIsCiAJCQkJ CQkgICBURVhUT0lELCAtMSwgMCk7Ci0JCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAo QXR0ck51bWJlcikgNiwgIndhaXRpbmciLAorCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVz YywgKEF0dHJOdW1iZXIpIDYsICJxdWVyeSIsCisJCQkJCQkgICBURVhUT0lELCAtMSwgMCk7 CisJCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNywgIndhaXRp bmciLAogCQkJCQkJICAgQk9PTE9JRCwgLTEsIDApOwotCQlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpIDcsICJhY3Rfc3RhcnQiLAorCQlUdXBsZURlc2NJbml0 RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDgsICJhY3Rfc3RhcnQiLAorCQkJCQkJICAg VElNRVNUQU1QVFpPSUQsIC0xLCAwKTsKKwkJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2Ms IChBdHRyTnVtYmVyKSA5LCAicXVlcnlfc3RhcnQiLAogCQkJCQkJICAgVElNRVNUQU1QVFpP SUQsIC0xLCAwKTsKLQkJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVy KSA4LCAicXVlcnlfc3RhcnQiLAorCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpIDEwLCAiYmFja2VuZF9zdGFydCIsCiAJCQkJCQkgICBUSU1FU1RBTVBUWk9J RCwgLTEsIDApOwotCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp IDksICJiYWNrZW5kX3N0YXJ0IiwKKwkJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSAxMSwgInN0YXRlX2NoYW5nZSIsCiAJCQkJCQkgICBUSU1FU1RBTVBUWk9J RCwgLTEsIDApOwotCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIp IDEwLCAiY2xpZW50X2FkZHIiLAorCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0 dHJOdW1iZXIpIDEyLCAiY2xpZW50X2FkZHIiLAogCQkJCQkJICAgSU5FVE9JRCwgLTEsIDAp OwotCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDExLCAiY2xp ZW50X2hvc3RuYW1lIiwKKwkJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSAxMywgImNsaWVudF9ob3N0bmFtZSIsCiAJCQkJCQkgICBURVhUT0lELCAtMSwgMCk7 Ci0JCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMTIsICJjbGll bnRfcG9ydCIsCisJCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikg MTQsICJjbGllbnRfcG9ydCIsCiAJCQkJCQkgICBJTlQ0T0lELCAtMSwgMCk7CiAKIAkJZnVu Y2N0eC0+dHVwbGVfZGVzYyA9IEJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOwpAQCAtNTg0LDgg KzU4Nyw4IEBAIHBnX3N0YXRfZ2V0X2FjdGl2aXR5KFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYg KGZ1bmNjdHgtPmNhbGxfY250ciA8IGZ1bmNjdHgtPm1heF9jYWxscykKIAl7CiAJCS8qIGZv ciBlYWNoIHJvdyAqLwotCQlEYXR1bQkJdmFsdWVzWzEyXTsKLQkJYm9vbAkJbnVsbHNbMTJd OworCQlEYXR1bQkJdmFsdWVzWzE0XTsKKwkJYm9vbAkJbnVsbHNbMTRdOwogCQlIZWFwVHVw bGUJdHVwbGU7CiAJCVBnQmFja2VuZFN0YXR1cyAqYmVlbnRyeTsKIAkJU29ja0FkZHIJemVy b19jbGllbnRhZGRyOwpAQCAtNjEwLDggKzYxMyw4IEBAIHBnX3N0YXRfZ2V0X2FjdGl2aXR5 KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKG51bGxzKSAv IHNpemVvZihudWxsc1swXSk7IGkrKykKIAkJCQludWxsc1tpXSA9IHRydWU7CiAKLQkJCW51 bGxzWzRdID0gZmFsc2U7Ci0JCQl2YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKCI8 YmFja2VuZCBpbmZvcm1hdGlvbiBub3QgYXZhaWxhYmxlPiIpOworCQkJbnVsbHNbNV0gPSBm YWxzZTsKKwkJCXZhbHVlc1s1XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oIjxiYWNrZW5kIGlu Zm9ybWF0aW9uIG5vdCBhdmFpbGFibGU+Iik7CiAKIAkJCXR1cGxlID0gaGVhcF9mb3JtX3R1 cGxlKGZ1bmNjdHgtPnR1cGxlX2Rlc2MsIHZhbHVlcywgbnVsbHMpOwogCQkJU1JGX1JFVFVS Tl9ORVhUKGZ1bmNjdHgsIEhlYXBUdXBsZUdldERhdHVtKHR1cGxlKSk7CkBAIC02MjksNDAg KzYzMiw2OSBAQCBwZ19zdGF0X2dldF9hY3Rpdml0eShQR19GVU5DVElPTl9BUkdTKQogCQkv KiBWYWx1ZXMgb25seSBhdmFpbGFibGUgdG8gc2FtZSB1c2VyIG9yIHN1cGVydXNlciAqLwog CQlpZiAoc3VwZXJ1c2VyKCkgfHwgYmVlbnRyeS0+c3RfdXNlcmlkID09IEdldFVzZXJJZCgp KQogCQl7Ci0JCQlpZiAoKihiZWVudHJ5LT5zdF9hY3Rpdml0eSkgPT0gJ1wwJykKKwkJCXN3 aXRjaCAoYmVlbnRyeS0+c3Rfc3RhdGUpCisJCQl7CisJCQkJY2FzZSBTVEFURV9JRExFOgor CQkJCQl2YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKCJpZGxlIik7CisJCQkJCWJy ZWFrOworCQkJCWNhc2UgU1RBVEVfUlVOTklORzoKKwkJCQkJdmFsdWVzWzRdID0gQ1N0cmlu Z0dldFRleHREYXR1bSgiYWN0aXZlIik7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgU1RBVEVf SURMRUlOVFJBTlNBQ1RJT046CisJCQkJCXZhbHVlc1s0XSA9IENTdHJpbmdHZXRUZXh0RGF0 dW0oImlkbGUgaW4gdHJhbnNhY3Rpb24iKTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBTVEFU RV9GQVNUUEFUSDoKKwkJCQkJdmFsdWVzWzRdID0gQ1N0cmluZ0dldFRleHREYXR1bSgiZmFz dHBhdGggZnVuY3Rpb24gY2FsbCIpOworCQkJCQlicmVhazsKKwkJCQljYXNlIFNUQVRFX0lE TEVJTlRSQU5TQUNUSU9OX0FCT1JURUQ6CisJCQkJCXZhbHVlc1s0XSA9IENTdHJpbmdHZXRU ZXh0RGF0dW0oImlkbGUgaW4gdHJhbnNhY3Rpb24gKGFib3J0ZWQpIik7CisJCQkJCWJyZWFr OworCQkJCWNhc2UgU1RBVEVfRElTQUJMRUQ6CisJCQkJCXZhbHVlc1s0XSA9IENTdHJpbmdH ZXRUZXh0RGF0dW0oImRpc2FibGVkIik7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgU1RBVEVf VU5ERUZJTkVEOgorCQkJCQludWxsc1s0XSA9IHRydWU7CisJCQkJCWJyZWFrOworCQkJfQor CQkJaWYgKGJlZW50cnktPnN0X3N0YXRlID09IFNUQVRFX1VOREVGSU5FRCB8fAorCQkJCWJl ZW50cnktPnN0X3N0YXRlID09IFNUQVRFX0RJU0FCTEVEKQogCQkJewotCQkJCXZhbHVlc1s0 XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oIjxjb21tYW5kIHN0cmluZyBub3QgZW5hYmxlZD4i KTsKKwkJCQl2YWx1ZXNbNV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKCIiKTsKIAkJCX0KIAkJ CWVsc2UKIAkJCXsKLQkJCQl2YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKGJlZW50 cnktPnN0X2FjdGl2aXR5KTsKKwkJCQl2YWx1ZXNbNV0gPSBDU3RyaW5nR2V0VGV4dERhdHVt KGJlZW50cnktPnN0X2FjdGl2aXR5KTsKIAkJCX0KLQotCQkJdmFsdWVzWzVdID0gQm9vbEdl dERhdHVtKGJlZW50cnktPnN0X3dhaXRpbmcpOworCQkJdmFsdWVzWzZdID0gQm9vbEdldERh dHVtKGJlZW50cnktPnN0X3dhaXRpbmcpOwogCiAJCQlpZiAoYmVlbnRyeS0+c3RfeGFjdF9z dGFydF90aW1lc3RhbXAgIT0gMCkKLQkJCQl2YWx1ZXNbNl0gPSBUaW1lc3RhbXBUekdldERh dHVtKGJlZW50cnktPnN0X3hhY3Rfc3RhcnRfdGltZXN0YW1wKTsKKwkJCQl2YWx1ZXNbN10g PSBUaW1lc3RhbXBUekdldERhdHVtKGJlZW50cnktPnN0X3hhY3Rfc3RhcnRfdGltZXN0YW1w KTsKIAkJCWVsc2UKLQkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVsbHNbN10gPSB0cnVl OwogCiAJCQlpZiAoYmVlbnRyeS0+c3RfYWN0aXZpdHlfc3RhcnRfdGltZXN0YW1wICE9IDAp Ci0JCQkJdmFsdWVzWzddID0gVGltZXN0YW1wVHpHZXREYXR1bShiZWVudHJ5LT5zdF9hY3Rp dml0eV9zdGFydF90aW1lc3RhbXApOworCQkJCXZhbHVlc1s4XSA9IFRpbWVzdGFtcFR6R2V0 RGF0dW0oYmVlbnRyeS0+c3RfYWN0aXZpdHlfc3RhcnRfdGltZXN0YW1wKTsKIAkJCWVsc2UK LQkJCQludWxsc1s3XSA9IHRydWU7CisJCQkJbnVsbHNbOF0gPSB0cnVlOwogCiAJCQlpZiAo YmVlbnRyeS0+c3RfcHJvY19zdGFydF90aW1lc3RhbXAgIT0gMCkKLQkJCQl2YWx1ZXNbOF0g PSBUaW1lc3RhbXBUekdldERhdHVtKGJlZW50cnktPnN0X3Byb2Nfc3RhcnRfdGltZXN0YW1w KTsKKwkJCQl2YWx1ZXNbOV0gPSBUaW1lc3RhbXBUekdldERhdHVtKGJlZW50cnktPnN0X3By b2Nfc3RhcnRfdGltZXN0YW1wKTsKIAkJCWVsc2UKLQkJCQludWxsc1s4XSA9IHRydWU7CisJ CQkJbnVsbHNbOV0gPSB0cnVlOworCisJCQlpZiAoYmVlbnRyeS0+c3Rfc3RhdGVfc3RhcnRf dGltZXN0YW1wICE9IDApCisJCQkJdmFsdWVzWzEwXSA9IFRpbWVzdGFtcFR6R2V0RGF0dW0o YmVlbnRyeS0+c3Rfc3RhdGVfc3RhcnRfdGltZXN0YW1wKTsKKwkJCWVsc2UKKwkJCQludWxs c1sxMF0gPSB0cnVlOwogCiAJCQkvKiBBIHplcm9lZCBjbGllbnQgYWRkciBtZWFucyB3ZSBk b24ndCBrbm93ICovCiAJCQltZW1zZXQoJnplcm9fY2xpZW50YWRkciwgMCwgc2l6ZW9mKHpl cm9fY2xpZW50YWRkcikpOwogCQkJaWYgKG1lbWNtcCgmKGJlZW50cnktPnN0X2NsaWVudGFk ZHIpLCAmemVyb19jbGllbnRhZGRyLAogCQkJCQkgICBzaXplb2YoemVyb19jbGllbnRhZGRy KSA9PSAwKSkKIAkJCXsKLQkJCQludWxsc1s5XSA9IHRydWU7Ci0JCQkJbnVsbHNbMTBdID0g dHJ1ZTsKIAkJCQludWxsc1sxMV0gPSB0cnVlOworCQkJCW51bGxzWzEyXSA9IHRydWU7CisJ CQkJbnVsbHNbMTNdID0gdHJ1ZTsKIAkJCX0KIAkJCWVsc2UKIAkJCXsKQEAgLTY4NiwxOSAr NzE4LDE5IEBAIHBnX3N0YXRfZ2V0X2FjdGl2aXR5KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJ CWlmIChyZXQgPT0gMCkKIAkJCQkJewogCQkJCQkJY2xlYW5faXB2Nl9hZGRyKGJlZW50cnkt PnN0X2NsaWVudGFkZHIuYWRkci5zc19mYW1pbHksIHJlbW90ZV9ob3N0KTsKLQkJCQkJCXZh bHVlc1s5XSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoaW5ldF9pbiwKKwkJCQkJCXZhbHVlc1sx MV0gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKGluZXRfaW4sCiAJCQkJCQkJCQkJCSAgIENTdHJp bmdHZXREYXR1bShyZW1vdGVfaG9zdCkpOwogCQkJCQkJaWYgKGJlZW50cnktPnN0X2NsaWVu dGhvc3RuYW1lKQotCQkJCQkJCXZhbHVlc1sxMF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKGJl ZW50cnktPnN0X2NsaWVudGhvc3RuYW1lKTsKKwkJCQkJCQl2YWx1ZXNbMTJdID0gQ1N0cmlu Z0dldFRleHREYXR1bShiZWVudHJ5LT5zdF9jbGllbnRob3N0bmFtZSk7CiAJCQkJCQllbHNl Ci0JCQkJCQkJbnVsbHNbMTBdID0gdHJ1ZTsKLQkJCQkJCXZhbHVlc1sxMV0gPSBJbnQzMkdl dERhdHVtKGF0b2kocmVtb3RlX3BvcnQpKTsKKwkJCQkJCQludWxsc1sxMl0gPSB0cnVlOwor CQkJCQkJdmFsdWVzWzEzXSA9IEludDMyR2V0RGF0dW0oYXRvaShyZW1vdGVfcG9ydCkpOwog CQkJCQl9CiAJCQkJCWVsc2UKIAkJCQkJewotCQkJCQkJbnVsbHNbOV0gPSB0cnVlOwotCQkJ CQkJbnVsbHNbMTBdID0gdHJ1ZTsKIAkJCQkJCW51bGxzWzExXSA9IHRydWU7CisJCQkJCQlu dWxsc1sxMl0gPSB0cnVlOworCQkJCQkJbnVsbHNbMTNdID0gdHJ1ZTsKIAkJCQkJfQogCQkJ CX0KIAkJCQllbHNlIGlmIChiZWVudHJ5LT5zdF9jbGllbnRhZGRyLmFkZHIuc3NfZmFtaWx5 ID09IEFGX1VOSVgpCkBAIC03MDksMzAgKzc0MSwzMiBAQCBwZ19zdGF0X2dldF9hY3Rpdml0 eShQR19GVU5DVElPTl9BUkdTKQogCQkJCQkgKiBjb25uZWN0aW9ucyB3ZSBoYXZlIG5vIHBl cm1pc3Npb25zIHRvIHZpZXcsIG9yIHdpdGgKIAkJCQkJICogZXJyb3JzLgogCQkJCQkgKi8K LQkJCQkJbnVsbHNbOV0gPSB0cnVlOwotCQkJCQludWxsc1sxMF0gPSB0cnVlOwotCQkJCQl2 YWx1ZXNbMTFdID0gRGF0dW1HZXRJbnQzMigtMSk7CisJCQkJCW51bGxzWzExXSA9IHRydWU7 CisJCQkJCW51bGxzWzEyXSA9IHRydWU7CisJCQkJCXZhbHVlc1sxM10gPSBEYXR1bUdldElu dDMyKC0xKTsKIAkJCQl9CiAJCQkJZWxzZQogCQkJCXsKIAkJCQkJLyogVW5rbm93biBhZGRy ZXNzIHR5cGUsIHNob3VsZCBuZXZlciBoYXBwZW4gKi8KLQkJCQkJbnVsbHNbOV0gPSB0cnVl OwotCQkJCQludWxsc1sxMF0gPSB0cnVlOwogCQkJCQludWxsc1sxMV0gPSB0cnVlOworCQkJ CQludWxsc1sxMl0gPSB0cnVlOworCQkJCQludWxsc1sxM10gPSB0cnVlOwogCQkJCX0KIAkJ CX0KIAkJfQogCQllbHNlCiAJCXsKIAkJCS8qIE5vIHBlcm1pc3Npb25zIHRvIHZpZXcgZGF0 YSBhYm91dCB0aGlzIHNlc3Npb24gKi8KLQkJCXZhbHVlc1s0XSA9IENTdHJpbmdHZXRUZXh0 RGF0dW0oIjxpbnN1ZmZpY2llbnQgcHJpdmlsZWdlPiIpOwotCQkJbnVsbHNbNV0gPSB0cnVl OworCQkJdmFsdWVzWzVdID0gQ1N0cmluZ0dldFRleHREYXR1bSgiPGluc3VmZmljaWVudCBw cml2aWxlZ2U+Iik7CisJCQludWxsc1s0XSA9IHRydWU7CiAJCQludWxsc1s2XSA9IHRydWU7 CiAJCQludWxsc1s3XSA9IHRydWU7CiAJCQludWxsc1s4XSA9IHRydWU7CiAJCQludWxsc1s5 XSA9IHRydWU7CiAJCQludWxsc1sxMF0gPSB0cnVlOwogCQkJbnVsbHNbMTFdID0gdHJ1ZTsK KwkJCW51bGxzWzEyXSA9IHRydWU7CisJCQludWxsc1sxM10gPSB0cnVlOwogCQl9CiAKIAkJ dHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUoZnVuY2N0eC0+dHVwbGVfZGVzYywgdmFsdWVzLCBu dWxscyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oCmluZGV4IGY3YWY1ZmQuLjllNzk5 YzYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oCkBAIC01Myw2ICs1Myw2IEBACiAg Ki8KIAogLyoJCQkJCQkJeXl5eW1tZGROICovCi0jZGVmaW5lIENBVEFMT0dfVkVSU0lPTl9O TwkyMDExMTIyNDEKKyNkZWZpbmUgQ0FUQUxPR19WRVJTSU9OX05PCTIwMTIwMTE5MQogCiAj ZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5oIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmgKaW5kZXggMzU1YzYxYS4uOTk5NDQ2OCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmgKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmgKQEAgLTI1NzMsOSArMjU3Myw5IEBAIERBVEEoaW5zZXJ0 IE9JRCA9IDMwNTcgKCBwZ19zdGF0X2dldF9hdXRvYW5hbHl6ZV9jb3VudCBQR05TUCBQR1VJ RCAxMiAxIDAgMCAwIGYKIERFU0NSKCJzdGF0aXN0aWNzOiBudW1iZXIgb2YgYXV0byBhbmFs eXplcyBmb3IgYSB0YWJsZSIpOwogREFUQShpbnNlcnQgT0lEID0gMTkzNiAoICBwZ19zdGF0 X2dldF9iYWNrZW5kX2lkc2V0CQlQR05TUCBQR1VJRCAxMiAxIDEwMCAwIDAgZiBmIGYgdCB0 IHMgMCAwIDIzICIiIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXyBwZ19zdGF0X2dldF9i YWNrZW5kX2lkc2V0IF9udWxsXyBfbnVsbF8gX251bGxfICkpOwogREVTQ1IoInN0YXRpc3Rp Y3M6IGN1cnJlbnRseSBhY3RpdmUgYmFja2VuZCBJRHMiKTsKLURBVEEoaW5zZXJ0IE9JRCA9 IDIwMjIgKCAgcGdfc3RhdF9nZXRfYWN0aXZpdHkJCQlQR05TUCBQR1VJRCAxMiAxIDEwMCAw IDAgZiBmIGYgZiB0IHMgMSAwIDIyNDkgIjIzIiAiezIzLDI2LDIzLDI2LDI1LDI1LDE2LDEx ODQsMTE4NCwxMTg0LDg2OSwyNSwyM30iICJ7aSxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30i ICJ7cGlkLGRhdGlkLHByb2NwaWQsdXNlc3lzaWQsYXBwbGljYXRpb25fbmFtZSxjdXJyZW50 X3F1ZXJ5LHdhaXRpbmcseGFjdF9zdGFydCxxdWVyeV9zdGFydCxiYWNrZW5kX3N0YXJ0LGNs aWVudF9hZGRyLGNsaWVudF9ob3N0bmFtZSxjbGllbnRfcG9ydH0iIF9udWxsXyBwZ19zdGF0 X2dldF9hY3Rpdml0eSBfbnVsbF8gX251bGxfIF9udWxsXyApKTsKK0RBVEEoaW5zZXJ0IE9J RCA9IDIwMjIgKCAgcGdfc3RhdF9nZXRfYWN0aXZpdHkJCQlQR05TUCBQR1VJRCAxMiAxIDEw MCAwIDAgZiBmIGYgZiB0IHMgMSAwIDIyNDkgIjIzIiAiezIzLDI2LDIzLDI2LDI1LDI1LDI1 LDE2LDExODQsMTE4NCwxMTg0LDExODQsODY5LDI1LDIzfSIgIntpLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvLG8sb30iICJ7cGlkLGRhdGlkLHBpZCx1c2VzeXNpZCxhcHBsaWNhdGlvbl9u YW1lLHN0YXRlLHF1ZXJ5LHdhaXRpbmcseGFjdF9zdGFydCxxdWVyeV9zdGFydCxiYWNrZW5k X3N0YXJ0LHN0YXRlX2NoYW5nZSxjbGllbnRfYWRkcixjbGllbnRfaG9zdG5hbWUsY2xpZW50 X3BvcnR9IiBfbnVsbF8gcGdfc3RhdF9nZXRfYWN0aXZpdHkgX251bGxfIF9udWxsXyBfbnVs bF8gKSk7CiBERVNDUigic3RhdGlzdGljczogaW5mb3JtYXRpb24gYWJvdXQgY3VycmVudGx5 IGFjdGl2ZSBiYWNrZW5kcyIpOwotREFUQShpbnNlcnQgT0lEID0gMzA5OSAoICBwZ19zdGF0 X2dldF93YWxfc2VuZGVycwlQR05TUCBQR1VJRCAxMiAxIDEwIDAgMCBmIGYgZiBmIHQgcyAw IDAgMjI0OSAiIiAiezIzLDI1LDI1LDI1LDI1LDI1LDIzLDI1fSIgIntvLG8sbyxvLG8sbyxv LG99IiAie3Byb2NwaWQsc3RhdGUsc2VudF9sb2NhdGlvbix3cml0ZV9sb2NhdGlvbixmbHVz aF9sb2NhdGlvbixyZXBsYXlfbG9jYXRpb24sc3luY19wcmlvcml0eSxzeW5jX3N0YXRlfSIg X251bGxfIHBnX3N0YXRfZ2V0X3dhbF9zZW5kZXJzIF9udWxsXyBfbnVsbF8gX251bGxfICkp OworREFUQShpbnNlcnQgT0lEID0gMzA5OSAoICBwZ19zdGF0X2dldF93YWxfc2VuZGVycwlQ R05TUCBQR1VJRCAxMiAxIDEwIDAgMCBmIGYgZiBmIHQgcyAwIDAgMjI0OSAiIiAiezIzLDI1 LDI1LDI1LDI1LDI1LDIzLDI1fSIgIntvLG8sbyxvLG8sbyxvLG99IiAie3BpZCxzdGF0ZSxz ZW50X2xvY2F0aW9uLHdyaXRlX2xvY2F0aW9uLGZsdXNoX2xvY2F0aW9uLHJlcGxheV9sb2Nh dGlvbixzeW5jX3ByaW9yaXR5LHN5bmNfc3RhdGV9IiBfbnVsbF8gcGdfc3RhdF9nZXRfd2Fs X3NlbmRlcnMgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CiBERVNDUigic3RhdGlzdGljczog aW5mb3JtYXRpb24gYWJvdXQgY3VycmVudGx5IGFjdGl2ZSByZXBsaWNhdGlvbiIpOwogREFU QShpbnNlcnQgT0lEID0gMjAyNiAoICBwZ19iYWNrZW5kX3BpZAkJCQlQR05TUCBQR1VJRCAx MiAxIDAgMCAwIGYgZiBmIHQgZiBzIDAgMCAyMyAiIiBfbnVsbF8gX251bGxfIF9udWxsXyBf bnVsbF8gcGdfYmFja2VuZF9waWQgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CiBERVNDUigi c3RhdGlzdGljczogY3VycmVudCBiYWNrZW5kIFBJRCIpOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvcGdzdGF0LmggYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaAppbmRleCBiOGM2ZDgyLi5m YTUyNDQ3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5j bHVkZS9wZ3N0YXQuaApAQCAtNTg5LDEwICs1ODksMjUgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdT dGF0X0dsb2JhbFN0YXRzCiAKIAogLyogLS0tLS0tLS0tLQorICogQmFja2VuZCBzdGF0ZXMK KyAqIC0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBlbnVtIEJhY2tlbmRTdGF0ZSB7CisJU1RB VEVfVU5ERUZJTkVELAorCVNUQVRFX0lETEUsCisJU1RBVEVfUlVOTklORywKKwlTVEFURV9J RExFSU5UUkFOU0FDVElPTiwKKwlTVEFURV9GQVNUUEFUSCwKKwlTVEFURV9JRExFSU5UUkFO U0FDVElPTl9BQk9SVEVELAorCVNUQVRFX0RJU0FCTEVELAorfSBCYWNrZW5kU3RhdGU7CisK Ky8qIC0tLS0tLS0tLS0KICAqIFNoYXJlZC1tZW1vcnkgZGF0YSBzdHJ1Y3R1cmVzCiAgKiAt LS0tLS0tLS0tCiAgKi8KIAorCiAvKiAtLS0tLS0tLS0tCiAgKiBQZ0JhY2tlbmRTdGF0dXMK ICAqCkBAIC02MjIsNiArNjM3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdCYWNrZW5kU3RhdHVz CiAJVGltZXN0YW1wVHogc3RfcHJvY19zdGFydF90aW1lc3RhbXA7CiAJVGltZXN0YW1wVHog c3RfeGFjdF9zdGFydF90aW1lc3RhbXA7CiAJVGltZXN0YW1wVHogc3RfYWN0aXZpdHlfc3Rh cnRfdGltZXN0YW1wOworICAgIFRpbWVzdGFtcFR6IHN0X3N0YXRlX3N0YXJ0X3RpbWVzdGFt cDsKIAogCS8qIERhdGFiYXNlIE9JRCwgb3duaW5nIHVzZXIncyBPSUQsIGNvbm5lY3Rpb24g Y2xpZW50IGFkZHJlc3MgKi8KIAlPaWQJCQlzdF9kYXRhYmFzZWlkOwpAQCAtNjMyLDYgKzY0 OCw5IEBAIHR5cGVkZWYgc3RydWN0IFBnQmFja2VuZFN0YXR1cwogCS8qIElzIGJhY2tlbmQg Y3VycmVudGx5IHdhaXRpbmcgb24gYW4gbG1nciBsb2NrPyAqLwogCWJvb2wJCXN0X3dhaXRp bmc7CiAKKyAgICAvKiBjdXJyZW50IHN0YXRlICovCisgICAgQmFja2VuZFN0YXRlCXN0X3N0 YXRlOworCiAJLyogYXBwbGljYXRpb24gbmFtZTsgTVVTVCBiZSBudWxsLXRlcm1pbmF0ZWQg Ki8KIAljaGFyCSAgICpzdF9hcHBuYW1lOwogCkBAIC03MTUsNyArNzM0LDcgQEAgZXh0ZXJu IHZvaWQgcGdzdGF0X3JlcG9ydF9yZWNvdmVyeV9jb25mbGljdChpbnQgcmVhc29uKTsKIGV4 dGVybiB2b2lkIHBnc3RhdF9pbml0aWFsaXplKHZvaWQpOwogZXh0ZXJuIHZvaWQgcGdzdGF0 X2Jlc3RhcnQodm9pZCk7CiAKLWV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfYWN0aXZpdHko Y29uc3QgY2hhciAqY21kX3N0cik7CitleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X2FjdGl2 aXR5KEJhY2tlbmRTdGF0ZSBzdGF0ZSwgY29uc3QgY2hhciAqY21kX3N0cik7CiBleHRlcm4g dm9pZCBwZ3N0YXRfcmVwb3J0X2FwcG5hbWUoY29uc3QgY2hhciAqYXBwbmFtZSk7CiBleHRl cm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3hhY3RfdGltZXN0YW1wKFRpbWVzdGFtcFR6IHRzdGFt cCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3dhaXRpbmcoYm9vbCB3YWl0aW5nKTsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggNDU0ZTFmOS4uZDI2ODgx ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTEyOTIsMTMgKzEy OTIsMTMgQEAgU0VMRUNUIHZpZXduYW1lLCBkZWZpbml0aW9uIEZST00gcGdfdmlld3MgV0hF UkUgc2NoZW1hbmFtZSA8PiAnaW5mb3JtYXRpb25fc2NoZW0KICBwZ19zZWNsYWJlbHMgICAg ICAgICAgICAgICAgICAgIHwgKCgoKCgoKChTRUxFQ1QgbC5vYmpvaWQsIGwuY2xhc3NvaWQs IGwub2Jqc3ViaWQsIENBU0UgV0hFTiAocmVsLnJlbGtpbmQgPSAncic6OiJjaGFyIikgVEhF TiAndGFibGUnOjp0ZXh0IFdIRU4gKHJlbC5yZWxraW5kID0gJ3YnOjoiY2hhciIpIFRIRU4g J3ZpZXcnOjp0ZXh0IFdIRU4gKHJlbC5yZWxraW5kID0gJ1MnOjoiY2hhciIpIFRIRU4gJ3Nl cXVlbmNlJzo6dGV4dCBXSEVOIChyZWwucmVsa2luZCA9ICdmJzo6ImNoYXIiKSBUSEVOICdm b3JlaWduIHRhYmxlJzo6dGV4dCBFTFNFIE5VTEw6OnRleHQgRU5EIEFTIG9ianR5cGUsIHJl bC5yZWxuYW1lc3BhY2UgQVMgb2JqbmFtZXNwYWNlLCBDQVNFIFdIRU4gcGdfdGFibGVfaXNf dmlzaWJsZShyZWwub2lkKSBUSEVOIHF1b3RlX2lkZW50KChyZWwucmVsbmFtZSk6OnRleHQp IEVMU0UgKChxdW90ZV9pZGVudCgobnNwLm5zcG5hbWUpOjp0ZXh0KSB8fCAnLic6OnRleHQp IHx8IHF1b3RlX2lkZW50KChyZWwucmVsbmFtZSk6OnRleHQpKSBFTkQgQVMgb2JqbmFtZSwg bC5wcm92aWRlciwgbC5sYWJlbCBGUk9NICgocGdfc2VjbGFiZWwgbCBKT0lOIHBnX2NsYXNz IHJlbCBPTiAoKChsLmNsYXNzb2lkID0gcmVsLnRhYmxlb2lkKSBBTkQgKGwub2Jqb2lkID0g cmVsLm9pZCkpKSkgSk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OICgocmVsLnJlbG5hbWVzcGFj ZSA9IG5zcC5vaWQpKSkgV0hFUkUgKGwub2Jqc3ViaWQgPSAwKSBVTklPTiBBTEwgU0VMRUNU IGwub2Jqb2lkLCBsLmNsYXNzb2lkLCBsLm9ianN1YmlkLCAnY29sdW1uJzo6dGV4dCBBUyBv Ymp0eXBlLCByZWwucmVsbmFtZXNwYWNlIEFTIG9iam5hbWVzcGFjZSwgKChDQVNFIFdIRU4g cGdfdGFibGVfaXNfdmlzaWJsZShyZWwub2lkKSBUSEVOIHF1b3RlX2lkZW50KChyZWwucmVs bmFtZSk6OnRleHQpIEVMU0UgKChxdW90ZV9pZGVudCgobnNwLm5zcG5hbWUpOjp0ZXh0KSB8 fCAnLic6OnRleHQpIHx8IHF1b3RlX2lkZW50KChyZWwucmVsbmFtZSk6OnRleHQpKSBFTkQg fHwgJy4nOjp0ZXh0KSB8fCAoYXR0LmF0dG5hbWUpOjp0ZXh0KSBBUyBvYmpuYW1lLCBsLnBy b3ZpZGVyLCBsLmxhYmVsIEZST00gKCgocGdfc2VjbGFiZWwgbCBKT0lOIHBnX2NsYXNzIHJl bCBPTiAoKChsLmNsYXNzb2lkID0gcmVsLnRhYmxlb2lkKSBBTkQgKGwub2Jqb2lkID0gcmVs Lm9pZCkpKSkgSk9JTiBwZ19hdHRyaWJ1dGUgYXR0IE9OICgoKHJlbC5vaWQgPSBhdHQuYXR0 cmVsaWQpIEFORCAobC5vYmpzdWJpZCA9IGF0dC5hdHRudW0pKSkpIEpPSU4gcGdfbmFtZXNw YWNlIG5zcCBPTiAoKHJlbC5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkKSkpIFdIRVJFIChsLm9i anN1YmlkIDw+IDApKSBVTklPTiBBTEwgU0VMRUNUIGwub2Jqb2lkLCBsLmNsYXNzb2lkLCBs Lm9ianN1YmlkLCBDQVNFIFdIRU4gKHByby5wcm9pc2FnZyA9IHRydWUpIFRIRU4gJ2FnZ3Jl Z2F0ZSc6OnRleHQgV0hFTiAocHJvLnByb2lzYWdnID0gZmFsc2UpIFRIRU4gJ2Z1bmN0aW9u Jzo6dGV4dCBFTFNFIE5VTEw6OnRleHQgRU5EIEFTIG9ianR5cGUsIHByby5wcm9uYW1lc3Bh Y2UgQVMgb2JqbmFtZXNwYWNlLCAoKChDQVNFIFdIRU4gcGdfZnVuY3Rpb25faXNfdmlzaWJs ZShwcm8ub2lkKSBUSEVOIHF1b3RlX2lkZW50KChwcm8ucHJvbmFtZSk6OnRleHQpIEVMU0Ug KChxdW90ZV9pZGVudCgobnNwLm5zcG5hbWUpOjp0ZXh0KSB8fCAnLic6OnRleHQpIHx8IHF1 b3RlX2lkZW50KChwcm8ucHJvbmFtZSk6OnRleHQpKSBFTkQgfHwgJygnOjp0ZXh0KSB8fCBw Z19nZXRfZnVuY3Rpb25fYXJndW1lbnRzKHByby5vaWQpKSB8fCAnKSc6OnRleHQpIEFTIG9i am5hbWUsIGwucHJvdmlkZXIsIGwubGFiZWwgRlJPTSAoKHBnX3NlY2xhYmVsIGwgSk9JTiBw Z19wcm9jIHBybyBPTiAoKChsLmNsYXNzb2lkID0gcHJvLnRhYmxlb2lkKSBBTkQgKGwub2Jq b2lkID0gcHJvLm9pZCkpKSkgSk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OICgocHJvLnByb25h bWVzcGFjZSA9IG5zcC5vaWQpKSkgV0hFUkUgKGwub2Jqc3ViaWQgPSAwKSkgVU5JT04gQUxM IFNFTEVDVCBsLm9iam9pZCwgbC5jbGFzc29pZCwgbC5vYmpzdWJpZCwgQ0FTRSBXSEVOICh0 eXAudHlwdHlwZSA9ICdkJzo6ImNoYXIiKSBUSEVOICdkb21haW4nOjp0ZXh0IEVMU0UgJ3R5 cGUnOjp0ZXh0IEVORCBBUyBvYmp0eXBlLCB0eXAudHlwbmFtZXNwYWNlIEFTIG9iam5hbWVz cGFjZSwgQ0FTRSBXSEVOIHBnX3R5cGVfaXNfdmlzaWJsZSh0eXAub2lkKSBUSEVOIHF1b3Rl X2lkZW50KCh0eXAudHlwbmFtZSk6OnRleHQpIEVMU0UgKChxdW90ZV9pZGVudCgobnNwLm5z cG5hbWUpOjp0ZXh0KSB8fCAnLic6OnRleHQpIHx8IHF1b3RlX2lkZW50KCh0eXAudHlwbmFt ZSk6OnRleHQpKSBFTkQgQVMgb2JqbmFtZSwgbC5wcm92aWRlciwgbC5sYWJlbCBGUk9NICgo cGdfc2VjbGFiZWwgbCBKT0lOIHBnX3R5cGUgdHlwIE9OICgoKGwuY2xhc3NvaWQgPSB0eXAu dGFibGVvaWQpIEFORCAobC5vYmpvaWQgPSB0eXAub2lkKSkpKSBKT0lOIHBnX25hbWVzcGFj ZSBuc3AgT04gKCh0eXAudHlwbmFtZXNwYWNlID0gbnNwLm9pZCkpKSBXSEVSRSAobC5vYmpz dWJpZCA9IDApKSBVTklPTiBBTEwgU0VMRUNUIGwub2Jqb2lkLCBsLmNsYXNzb2lkLCBsLm9i anN1YmlkLCAnbGFyZ2Ugb2JqZWN0Jzo6dGV4dCBBUyBvYmp0eXBlLCBOVUxMOjpvaWQgQVMg b2JqbmFtZXNwYWNlLCAobC5vYmpvaWQpOjp0ZXh0IEFTIG9iam5hbWUsIGwucHJvdmlkZXIs IGwubGFiZWwgRlJPTSAocGdfc2VjbGFiZWwgbCBKT0lOIHBnX2xhcmdlb2JqZWN0X21ldGFk YXRhIGxvbSBPTiAoKGwub2Jqb2lkID0gbG9tLm9pZCkpKSBXSEVSRSAoKGwuY2xhc3NvaWQg PSAoJ3BnX2xhcmdlb2JqZWN0Jzo6cmVnY2xhc3MpOjpvaWQpIEFORCAobC5vYmpzdWJpZCA9 IDApKSkgVU5JT04gQUxMIFNFTEVDVCBsLm9iam9pZCwgbC5jbGFzc29pZCwgbC5vYmpzdWJp ZCwgJ2xhbmd1YWdlJzo6dGV4dCBBUyBvYmp0eXBlLCBOVUxMOjpvaWQgQVMgb2JqbmFtZXNw YWNlLCBxdW90ZV9pZGVudCgobGFuLmxhbm5hbWUpOjp0ZXh0KSBBUyBvYmpuYW1lLCBsLnBy b3ZpZGVyLCBsLmxhYmVsIEZST00gKHBnX3NlY2xhYmVsIGwgSk9JTiBwZ19sYW5ndWFnZSBs YW4gT04gKCgobC5jbGFzc29pZCA9IGxhbi50YWJsZW9pZCkgQU5EIChsLm9iam9pZCA9IGxh bi5vaWQpKSkpIFdIRVJFIChsLm9ianN1YmlkID0gMCkpIFVOSU9OIEFMTCBTRUxFQ1QgbC5v YmpvaWQsIGwuY2xhc3NvaWQsIGwub2Jqc3ViaWQsICdzY2hlbWEnOjp0ZXh0IEFTIG9ianR5 cGUsIG5zcC5vaWQgQVMgb2JqbmFtZXNwYWNlLCBxdW90ZV9pZGVudCgobnNwLm5zcG5hbWUp Ojp0ZXh0KSBBUyBvYmpuYW1lLCBsLnByb3ZpZGVyLCBsLmxhYmVsIEZST00gKHBnX3NlY2xh YmVsIGwgSk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OICgoKGwuY2xhc3NvaWQgPSBuc3AudGFi bGVvaWQpIEFORCAobC5vYmpvaWQgPSBuc3Aub2lkKSkpKSBXSEVSRSAobC5vYmpzdWJpZCA9 IDApKSBVTklPTiBBTEwgU0VMRUNUIGwub2Jqb2lkLCBsLmNsYXNzb2lkLCAwIEFTIG9ianN1 YmlkLCAnZGF0YWJhc2UnOjp0ZXh0IEFTIG9ianR5cGUsIE5VTEw6Om9pZCBBUyBvYmpuYW1l c3BhY2UsIHF1b3RlX2lkZW50KChkYXQuZGF0bmFtZSk6OnRleHQpIEFTIG9iam5hbWUsIGwu cHJvdmlkZXIsIGwubGFiZWwgRlJPTSAocGdfc2hzZWNsYWJlbCBsIEpPSU4gcGdfZGF0YWJh c2UgZGF0IE9OICgoKGwuY2xhc3NvaWQgPSBkYXQudGFibGVvaWQpIEFORCAobC5vYmpvaWQg PSBkYXQub2lkKSkpKSkgVU5JT04gQUxMIFNFTEVDVCBsLm9iam9pZCwgbC5jbGFzc29pZCwg MCBBUyBvYmpzdWJpZCwgJ3RhYmxlc3BhY2UnOjp0ZXh0IEFTIG9ianR5cGUsIE5VTEw6Om9p ZCBBUyBvYmpuYW1lc3BhY2UsIHF1b3RlX2lkZW50KChzcGMuc3BjbmFtZSk6OnRleHQpIEFT IG9iam5hbWUsIGwucHJvdmlkZXIsIGwubGFiZWwgRlJPTSAocGdfc2hzZWNsYWJlbCBsIEpP SU4gcGdfdGFibGVzcGFjZSBzcGMgT04gKCgobC5jbGFzc29pZCA9IHNwYy50YWJsZW9pZCkg QU5EIChsLm9iam9pZCA9IHNwYy5vaWQpKSkpKSBVTklPTiBBTEwgU0VMRUNUIGwub2Jqb2lk LCBsLmNsYXNzb2lkLCAwIEFTIG9ianN1YmlkLCAncm9sZSc6OnRleHQgQVMgb2JqdHlwZSwg TlVMTDo6b2lkIEFTIG9iam5hbWVzcGFjZSwgcXVvdGVfaWRlbnQoKHJvbC5yb2xuYW1lKTo6 dGV4dCkgQVMgb2JqbmFtZSwgbC5wcm92aWRlciwgbC5sYWJlbCBGUk9NIChwZ19zaHNlY2xh YmVsIGwgSk9JTiBwZ19hdXRoaWQgcm9sIE9OICgoKGwuY2xhc3NvaWQgPSByb2wudGFibGVv aWQpIEFORCAobC5vYmpvaWQgPSByb2wub2lkKSkpKTsKICBwZ19zZXR0aW5ncyAgICAgICAg ICAgICAgICAgICAgIHwgU0VMRUNUIGEubmFtZSwgYS5zZXR0aW5nLCBhLnVuaXQsIGEuY2F0 ZWdvcnksIGEuc2hvcnRfZGVzYywgYS5leHRyYV9kZXNjLCBhLmNvbnRleHQsIGEudmFydHlw ZSwgYS5zb3VyY2UsIGEubWluX3ZhbCwgYS5tYXhfdmFsLCBhLmVudW12YWxzLCBhLmJvb3Rf dmFsLCBhLnJlc2V0X3ZhbCwgYS5zb3VyY2VmaWxlLCBhLnNvdXJjZWxpbmUgRlJPTSBwZ19z aG93X2FsbF9zZXR0aW5ncygpIGEobmFtZSwgc2V0dGluZywgdW5pdCwgY2F0ZWdvcnksIHNo b3J0X2Rlc2MsIGV4dHJhX2Rlc2MsIGNvbnRleHQsIHZhcnR5cGUsIHNvdXJjZSwgbWluX3Zh bCwgbWF4X3ZhbCwgZW51bXZhbHMsIGJvb3RfdmFsLCByZXNldF92YWwsIHNvdXJjZWZpbGUs IHNvdXJjZWxpbmUpOwogIHBnX3NoYWRvdyAgICAgICAgICAgICAgICAgICAgICAgfCBTRUxF Q1QgcGdfYXV0aGlkLnJvbG5hbWUgQVMgdXNlbmFtZSwgcGdfYXV0aGlkLm9pZCBBUyB1c2Vz eXNpZCwgcGdfYXV0aGlkLnJvbGNyZWF0ZWRiIEFTIHVzZWNyZWF0ZWRiLCBwZ19hdXRoaWQu cm9sc3VwZXIgQVMgdXNlc3VwZXIsIHBnX2F1dGhpZC5yb2xjYXR1cGRhdGUgQVMgdXNlY2F0 dXBkLCBwZ19hdXRoaWQucm9scmVwbGljYXRpb24gQVMgdXNlcmVwbCwgcGdfYXV0aGlkLnJv bHBhc3N3b3JkIEFTIHBhc3N3ZCwgKHBnX2F1dGhpZC5yb2x2YWxpZHVudGlsKTo6YWJzdGlt ZSBBUyB2YWx1bnRpbCwgcy5zZXRjb25maWcgQVMgdXNlY29uZmlnIEZST00gKHBnX2F1dGhp ZCBMRUZUIEpPSU4gcGdfZGJfcm9sZV9zZXR0aW5nIHMgT04gKCgocGdfYXV0aGlkLm9pZCA9 IHMuc2V0cm9sZSkgQU5EIChzLnNldGRhdGFiYXNlID0gKDApOjpvaWQpKSkpIFdIRVJFIHBn X2F1dGhpZC5yb2xjYW5sb2dpbjsKLSBwZ19zdGF0X2FjdGl2aXR5ICAgICAgICAgICAgICAg IHwgU0VMRUNUIHMuZGF0aWQsIGQuZGF0bmFtZSwgcy5wcm9jcGlkLCBzLnVzZXN5c2lkLCB1 LnJvbG5hbWUgQVMgdXNlbmFtZSwgcy5hcHBsaWNhdGlvbl9uYW1lLCBzLmNsaWVudF9hZGRy LCBzLmNsaWVudF9ob3N0bmFtZSwgcy5jbGllbnRfcG9ydCwgcy5iYWNrZW5kX3N0YXJ0LCBz LnhhY3Rfc3RhcnQsIHMucXVlcnlfc3RhcnQsIHMud2FpdGluZywgcy5jdXJyZW50X3F1ZXJ5 IEZST00gcGdfZGF0YWJhc2UgZCwgcGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6aW50ZWdl cikgcyhkYXRpZCwgcHJvY3BpZCwgdXNlc3lzaWQsIGFwcGxpY2F0aW9uX25hbWUsIGN1cnJl bnRfcXVlcnksIHdhaXRpbmcsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0YXJ0LCBiYWNrZW5kX3N0 YXJ0LCBjbGllbnRfYWRkciwgY2xpZW50X2hvc3RuYW1lLCBjbGllbnRfcG9ydCksIHBnX2F1 dGhpZCB1IFdIRVJFICgocy5kYXRpZCA9IGQub2lkKSBBTkQgKHMudXNlc3lzaWQgPSB1Lm9p ZCkpOworIHBnX3N0YXRfYWN0aXZpdHkgICAgICAgICAgICAgICAgfCBTRUxFQ1Qgcy5kYXRp ZCwgZC5kYXRuYW1lLCBzLnBpZCwgcy51c2VzeXNpZCwgdS5yb2xuYW1lIEFTIHVzZW5hbWUs IHMuYXBwbGljYXRpb25fbmFtZSwgcy5jbGllbnRfYWRkciwgcy5jbGllbnRfaG9zdG5hbWUs IHMuY2xpZW50X3BvcnQsIHMuYmFja2VuZF9zdGFydCwgcy54YWN0X3N0YXJ0LCBzLnF1ZXJ5 X3N0YXJ0LCBzLnN0YXRlX2NoYW5nZSwgcy53YWl0aW5nLCBzLnN0YXRlLCBzLnF1ZXJ5IEZS T00gcGdfZGF0YWJhc2UgZCwgcGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6aW50ZWdlcikg cyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUsIHF1ZXJ5 LCB3YWl0aW5nLCB4YWN0X3N0YXJ0LCBxdWVyeV9zdGFydCwgYmFja2VuZF9zdGFydCwgc3Rh dGVfY2hhbmdlLCBjbGllbnRfYWRkciwgY2xpZW50X2hvc3RuYW1lLCBjbGllbnRfcG9ydCks IHBnX2F1dGhpZCB1IFdIRVJFICgocy5kYXRpZCA9IGQub2lkKSBBTkQgKHMudXNlc3lzaWQg PSB1Lm9pZCkpOwogIHBnX3N0YXRfYWxsX2luZGV4ZXMgICAgICAgICAgICAgfCBTRUxFQ1Qg Yy5vaWQgQVMgcmVsaWQsIGkub2lkIEFTIGluZGV4cmVsaWQsIG4ubnNwbmFtZSBBUyBzY2hl bWFuYW1lLCBjLnJlbG5hbWUsIGkucmVsbmFtZSBBUyBpbmRleHJlbG5hbWUsIHBnX3N0YXRf Z2V0X251bXNjYW5zKGkub2lkKSBBUyBpZHhfc2NhbiwgcGdfc3RhdF9nZXRfdHVwbGVzX3Jl dHVybmVkKGkub2lkKSBBUyBpZHhfdHVwX3JlYWQsIHBnX3N0YXRfZ2V0X3R1cGxlc19mZXRj aGVkKGkub2lkKSBBUyBpZHhfdHVwX2ZldGNoIEZST00gKCgocGdfY2xhc3MgYyBKT0lOIHBn X2luZGV4IHggT04gKChjLm9pZCA9IHguaW5kcmVsaWQpKSkgSk9JTiBwZ19jbGFzcyBpIE9O ICgoaS5vaWQgPSB4LmluZGV4cmVsaWQpKSkgTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuIE9O ICgobi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkpKSBXSEVSRSAoYy5yZWxraW5kID0gQU5ZIChB UlJBWVsncic6OiJjaGFyIiwgJ3QnOjoiY2hhciJdKSk7CiAgcGdfc3RhdF9hbGxfdGFibGVz ICAgICAgICAgICAgICB8IFNFTEVDVCBjLm9pZCBBUyByZWxpZCwgbi5uc3BuYW1lIEFTIHNj aGVtYW5hbWUsIGMucmVsbmFtZSwgcGdfc3RhdF9nZXRfbnVtc2NhbnMoYy5vaWQpIEFTIHNl cV9zY2FuLCBwZ19zdGF0X2dldF90dXBsZXNfcmV0dXJuZWQoYy5vaWQpIEFTIHNlcV90dXBf cmVhZCwgKHN1bShwZ19zdGF0X2dldF9udW1zY2FucyhpLmluZGV4cmVsaWQpKSk6OmJpZ2lu dCBBUyBpZHhfc2NhbiwgKChzdW0ocGdfc3RhdF9nZXRfdHVwbGVzX2ZldGNoZWQoaS5pbmRl eHJlbGlkKSkpOjpiaWdpbnQgKyBwZ19zdGF0X2dldF90dXBsZXNfZmV0Y2hlZChjLm9pZCkp IEFTIGlkeF90dXBfZmV0Y2gsIHBnX3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZChjLm9pZCkg QVMgbl90dXBfaW5zLCBwZ19zdGF0X2dldF90dXBsZXNfdXBkYXRlZChjLm9pZCkgQVMgbl90 dXBfdXBkLCBwZ19zdGF0X2dldF90dXBsZXNfZGVsZXRlZChjLm9pZCkgQVMgbl90dXBfZGVs LCBwZ19zdGF0X2dldF90dXBsZXNfaG90X3VwZGF0ZWQoYy5vaWQpIEFTIG5fdHVwX2hvdF91 cGQsIHBnX3N0YXRfZ2V0X2xpdmVfdHVwbGVzKGMub2lkKSBBUyBuX2xpdmVfdHVwLCBwZ19z dGF0X2dldF9kZWFkX3R1cGxlcyhjLm9pZCkgQVMgbl9kZWFkX3R1cCwgcGdfc3RhdF9nZXRf bGFzdF92YWN1dW1fdGltZShjLm9pZCkgQVMgbGFzdF92YWN1dW0sIHBnX3N0YXRfZ2V0X2xh c3RfYXV0b3ZhY3V1bV90aW1lKGMub2lkKSBBUyBsYXN0X2F1dG92YWN1dW0sIHBnX3N0YXRf Z2V0X2xhc3RfYW5hbHl6ZV90aW1lKGMub2lkKSBBUyBsYXN0X2FuYWx5emUsIHBnX3N0YXRf Z2V0X2xhc3RfYXV0b2FuYWx5emVfdGltZShjLm9pZCkgQVMgbGFzdF9hdXRvYW5hbHl6ZSwg cGdfc3RhdF9nZXRfdmFjdXVtX2NvdW50KGMub2lkKSBBUyB2YWN1dW1fY291bnQsIHBnX3N0 YXRfZ2V0X2F1dG92YWN1dW1fY291bnQoYy5vaWQpIEFTIGF1dG92YWN1dW1fY291bnQsIHBn X3N0YXRfZ2V0X2FuYWx5emVfY291bnQoYy5vaWQpIEFTIGFuYWx5emVfY291bnQsIHBnX3N0 YXRfZ2V0X2F1dG9hbmFseXplX2NvdW50KGMub2lkKSBBUyBhdXRvYW5hbHl6ZV9jb3VudCBG Uk9NICgocGdfY2xhc3MgYyBMRUZUIEpPSU4gcGdfaW5kZXggaSBPTiAoKGMub2lkID0gaS5p bmRyZWxpZCkpKSBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gKChuLm9pZCA9IGMucmVs bmFtZXNwYWNlKSkpIFdIRVJFIChjLnJlbGtpbmQgPSBBTlkgKEFSUkFZWydyJzo6ImNoYXIi LCAndCc6OiJjaGFyIl0pKSBHUk9VUCBCWSBjLm9pZCwgbi5uc3BuYW1lLCBjLnJlbG5hbWU7 CiAgcGdfc3RhdF9iZ3dyaXRlciAgICAgICAgICAgICAgICB8IFNFTEVDVCBwZ19zdGF0X2dl dF9iZ3dyaXRlcl90aW1lZF9jaGVja3BvaW50cygpIEFTIGNoZWNrcG9pbnRzX3RpbWVkLCBw Z19zdGF0X2dldF9iZ3dyaXRlcl9yZXF1ZXN0ZWRfY2hlY2twb2ludHMoKSBBUyBjaGVja3Bv aW50c19yZXEsIHBnX3N0YXRfZ2V0X2Jnd3JpdGVyX2J1Zl93cml0dGVuX2NoZWNrcG9pbnRz KCkgQVMgYnVmZmVyc19jaGVja3BvaW50LCBwZ19zdGF0X2dldF9iZ3dyaXRlcl9idWZfd3Jp dHRlbl9jbGVhbigpIEFTIGJ1ZmZlcnNfY2xlYW4sIHBnX3N0YXRfZ2V0X2Jnd3JpdGVyX21h eHdyaXR0ZW5fY2xlYW4oKSBBUyBtYXh3cml0dGVuX2NsZWFuLCBwZ19zdGF0X2dldF9idWZf d3JpdHRlbl9iYWNrZW5kKCkgQVMgYnVmZmVyc19iYWNrZW5kLCBwZ19zdGF0X2dldF9idWZf ZnN5bmNfYmFja2VuZCgpIEFTIGJ1ZmZlcnNfYmFja2VuZF9mc3luYywgcGdfc3RhdF9nZXRf YnVmX2FsbG9jKCkgQVMgYnVmZmVyc19hbGxvYywgcGdfc3RhdF9nZXRfYmd3cml0ZXJfc3Rh dF9yZXNldF90aW1lKCkgQVMgc3RhdHNfcmVzZXQ7CiAgcGdfc3RhdF9kYXRhYmFzZSAgICAg ICAgICAgICAgICB8IFNFTEVDVCBkLm9pZCBBUyBkYXRpZCwgZC5kYXRuYW1lLCBwZ19zdGF0 X2dldF9kYl9udW1iYWNrZW5kcyhkLm9pZCkgQVMgbnVtYmFja2VuZHMsIHBnX3N0YXRfZ2V0 X2RiX3hhY3RfY29tbWl0KGQub2lkKSBBUyB4YWN0X2NvbW1pdCwgcGdfc3RhdF9nZXRfZGJf eGFjdF9yb2xsYmFjayhkLm9pZCkgQVMgeGFjdF9yb2xsYmFjaywgKHBnX3N0YXRfZ2V0X2Ri X2Jsb2Nrc19mZXRjaGVkKGQub2lkKSAtIHBnX3N0YXRfZ2V0X2RiX2Jsb2Nrc19oaXQoZC5v aWQpKSBBUyBibGtzX3JlYWQsIHBnX3N0YXRfZ2V0X2RiX2Jsb2Nrc19oaXQoZC5vaWQpIEFT IGJsa3NfaGl0LCBwZ19zdGF0X2dldF9kYl90dXBsZXNfcmV0dXJuZWQoZC5vaWQpIEFTIHR1 cF9yZXR1cm5lZCwgcGdfc3RhdF9nZXRfZGJfdHVwbGVzX2ZldGNoZWQoZC5vaWQpIEFTIHR1 cF9mZXRjaGVkLCBwZ19zdGF0X2dldF9kYl90dXBsZXNfaW5zZXJ0ZWQoZC5vaWQpIEFTIHR1 cF9pbnNlcnRlZCwgcGdfc3RhdF9nZXRfZGJfdHVwbGVzX3VwZGF0ZWQoZC5vaWQpIEFTIHR1 cF91cGRhdGVkLCBwZ19zdGF0X2dldF9kYl90dXBsZXNfZGVsZXRlZChkLm9pZCkgQVMgdHVw X2RlbGV0ZWQsIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2FsbChkLm9pZCkgQVMgY29uZmxp Y3RzLCBwZ19zdGF0X2dldF9kYl9zdGF0X3Jlc2V0X3RpbWUoZC5vaWQpIEFTIHN0YXRzX3Jl c2V0IEZST00gcGdfZGF0YWJhc2UgZDsKICBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyAg ICAgIHwgU0VMRUNUIGQub2lkIEFTIGRhdGlkLCBkLmRhdG5hbWUsIHBnX3N0YXRfZ2V0X2Ri X2NvbmZsaWN0X3RhYmxlc3BhY2UoZC5vaWQpIEFTIGNvbmZsX3RhYmxlc3BhY2UsIHBnX3N0 YXRfZ2V0X2RiX2NvbmZsaWN0X2xvY2soZC5vaWQpIEFTIGNvbmZsX2xvY2ssIHBnX3N0YXRf Z2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KGQub2lkKSBBUyBjb25mbF9zbmFwc2hvdCwgcGdf c3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKGQub2lkKSBBUyBjb25mbF9idWZmZXJw aW4sIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2soZC5vaWQpIEFT IGNvbmZsX2RlYWRsb2NrIEZST00gcGdfZGF0YWJhc2UgZDsKLSBwZ19zdGF0X3JlcGxpY2F0 aW9uICAgICAgICAgICAgIHwgU0VMRUNUIHMucHJvY3BpZCwgcy51c2VzeXNpZCwgdS5yb2xu YW1lIEFTIHVzZW5hbWUsIHMuYXBwbGljYXRpb25fbmFtZSwgcy5jbGllbnRfYWRkciwgcy5j bGllbnRfaG9zdG5hbWUsIHMuY2xpZW50X3BvcnQsIHMuYmFja2VuZF9zdGFydCwgdy5zdGF0 ZSwgdy5zZW50X2xvY2F0aW9uLCB3LndyaXRlX2xvY2F0aW9uLCB3LmZsdXNoX2xvY2F0aW9u LCB3LnJlcGxheV9sb2NhdGlvbiwgdy5zeW5jX3ByaW9yaXR5LCB3LnN5bmNfc3RhdGUgRlJP TSBwZ19zdGF0X2dldF9hY3Rpdml0eShOVUxMOjppbnRlZ2VyKSBzKGRhdGlkLCBwcm9jcGlk LCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgY3VycmVudF9xdWVyeSwgd2FpdGluZywg eGFjdF9zdGFydCwgcXVlcnlfc3RhcnQsIGJhY2tlbmRfc3RhcnQsIGNsaWVudF9hZGRyLCBj bGllbnRfaG9zdG5hbWUsIGNsaWVudF9wb3J0KSwgcGdfYXV0aGlkIHUsIHBnX3N0YXRfZ2V0 X3dhbF9zZW5kZXJzKCkgdyhwcm9jcGlkLCBzdGF0ZSwgc2VudF9sb2NhdGlvbiwgd3JpdGVf bG9jYXRpb24sIGZsdXNoX2xvY2F0aW9uLCByZXBsYXlfbG9jYXRpb24sIHN5bmNfcHJpb3Jp dHksIHN5bmNfc3RhdGUpIFdIRVJFICgocy51c2VzeXNpZCA9IHUub2lkKSBBTkQgKHMucHJv Y3BpZCA9IHcucHJvY3BpZCkpOworIHBnX3N0YXRfcmVwbGljYXRpb24gICAgICAgICAgICAg fCBTRUxFQ1Qgcy5waWQsIHMudXNlc3lzaWQsIHUucm9sbmFtZSBBUyB1c2VuYW1lLCBzLmFw cGxpY2F0aW9uX25hbWUsIHMuY2xpZW50X2FkZHIsIHMuY2xpZW50X2hvc3RuYW1lLCBzLmNs aWVudF9wb3J0LCBzLmJhY2tlbmRfc3RhcnQsIHcuc3RhdGUsIHcuc2VudF9sb2NhdGlvbiwg dy53cml0ZV9sb2NhdGlvbiwgdy5mbHVzaF9sb2NhdGlvbiwgdy5yZXBsYXlfbG9jYXRpb24s IHcuc3luY19wcmlvcml0eSwgdy5zeW5jX3N0YXRlIEZST00gcGdfc3RhdF9nZXRfYWN0aXZp dHkoTlVMTDo6aW50ZWdlcikgcyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25f bmFtZSwgc3RhdGUsIHF1ZXJ5LCB3YWl0aW5nLCB4YWN0X3N0YXJ0LCBxdWVyeV9zdGFydCwg YmFja2VuZF9zdGFydCwgc3RhdGVfY2hhbmdlLCBjbGllbnRfYWRkciwgY2xpZW50X2hvc3Ru YW1lLCBjbGllbnRfcG9ydCksIHBnX2F1dGhpZCB1LCBwZ19zdGF0X2dldF93YWxfc2VuZGVy cygpIHcocGlkLCBzdGF0ZSwgc2VudF9sb2NhdGlvbiwgd3JpdGVfbG9jYXRpb24sIGZsdXNo X2xvY2F0aW9uLCByZXBsYXlfbG9jYXRpb24sIHN5bmNfcHJpb3JpdHksIHN5bmNfc3RhdGUp IFdIRVJFICgocy51c2VzeXNpZCA9IHUub2lkKSBBTkQgKHMucGlkID0gdy5waWQpKTsKICBw Z19zdGF0X3N5c19pbmRleGVzICAgICAgICAgICAgIHwgU0VMRUNUIHBnX3N0YXRfYWxsX2lu ZGV4ZXMucmVsaWQsIHBnX3N0YXRfYWxsX2luZGV4ZXMuaW5kZXhyZWxpZCwgcGdfc3RhdF9h bGxfaW5kZXhlcy5zY2hlbWFuYW1lLCBwZ19zdGF0X2FsbF9pbmRleGVzLnJlbG5hbWUsIHBn X3N0YXRfYWxsX2luZGV4ZXMuaW5kZXhyZWxuYW1lLCBwZ19zdGF0X2FsbF9pbmRleGVzLmlk eF9zY2FuLCBwZ19zdGF0X2FsbF9pbmRleGVzLmlkeF90dXBfcmVhZCwgcGdfc3RhdF9hbGxf aW5kZXhlcy5pZHhfdHVwX2ZldGNoIEZST00gcGdfc3RhdF9hbGxfaW5kZXhlcyBXSEVSRSAo KHBnX3N0YXRfYWxsX2luZGV4ZXMuc2NoZW1hbmFtZSA9IEFOWSAoQVJSQVlbJ3BnX2NhdGFs b2cnOjpuYW1lLCAnaW5mb3JtYXRpb25fc2NoZW1hJzo6bmFtZV0pKSBPUiAocGdfc3RhdF9h bGxfaW5kZXhlcy5zY2hlbWFuYW1lIH4gJ15wZ190b2FzdCc6OnRleHQpKTsKICBwZ19zdGF0 X3N5c190YWJsZXMgICAgICAgICAgICAgIHwgU0VMRUNUIHBnX3N0YXRfYWxsX3RhYmxlcy5y ZWxpZCwgcGdfc3RhdF9hbGxfdGFibGVzLnNjaGVtYW5hbWUsIHBnX3N0YXRfYWxsX3RhYmxl cy5yZWxuYW1lLCBwZ19zdGF0X2FsbF90YWJsZXMuc2VxX3NjYW4sIHBnX3N0YXRfYWxsX3Rh Ymxlcy5zZXFfdHVwX3JlYWQsIHBnX3N0YXRfYWxsX3RhYmxlcy5pZHhfc2NhbiwgcGdfc3Rh dF9hbGxfdGFibGVzLmlkeF90dXBfZmV0Y2gsIHBnX3N0YXRfYWxsX3RhYmxlcy5uX3R1cF9p bnMsIHBnX3N0YXRfYWxsX3RhYmxlcy5uX3R1cF91cGQsIHBnX3N0YXRfYWxsX3RhYmxlcy5u X3R1cF9kZWwsIHBnX3N0YXRfYWxsX3RhYmxlcy5uX3R1cF9ob3RfdXBkLCBwZ19zdGF0X2Fs bF90YWJsZXMubl9saXZlX3R1cCwgcGdfc3RhdF9hbGxfdGFibGVzLm5fZGVhZF90dXAsIHBn X3N0YXRfYWxsX3RhYmxlcy5sYXN0X3ZhY3V1bSwgcGdfc3RhdF9hbGxfdGFibGVzLmxhc3Rf YXV0b3ZhY3V1bSwgcGdfc3RhdF9hbGxfdGFibGVzLmxhc3RfYW5hbHl6ZSwgcGdfc3RhdF9h bGxfdGFibGVzLmxhc3RfYXV0b2FuYWx5emUsIHBnX3N0YXRfYWxsX3RhYmxlcy52YWN1dW1f Y291bnQsIHBnX3N0YXRfYWxsX3RhYmxlcy5hdXRvdmFjdXVtX2NvdW50LCBwZ19zdGF0X2Fs bF90YWJsZXMuYW5hbHl6ZV9jb3VudCwgcGdfc3RhdF9hbGxfdGFibGVzLmF1dG9hbmFseXpl X2NvdW50IEZST00gcGdfc3RhdF9hbGxfdGFibGVzIFdIRVJFICgocGdfc3RhdF9hbGxfdGFi bGVzLnNjaGVtYW5hbWUgPSBBTlkgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9y bWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgT1IgKHBnX3N0YXRfYWxsX3RhYmxlcy5zY2hlbWFu YW1lIH4gJ15wZ190b2FzdCc6OnRleHQpKTsKICBwZ19zdGF0X3VzZXJfZnVuY3Rpb25zICAg ICAgICAgIHwgU0VMRUNUIHAub2lkIEFTIGZ1bmNpZCwgbi5uc3BuYW1lIEFTIHNjaGVtYW5h bWUsIHAucHJvbmFtZSBBUyBmdW5jbmFtZSwgcGdfc3RhdF9nZXRfZnVuY3Rpb25fY2FsbHMo cC5vaWQpIEFTIGNhbGxzLCAocGdfc3RhdF9nZXRfZnVuY3Rpb25fdGltZShwLm9pZCkgLyAx MDAwKSBBUyB0b3RhbF90aW1lLCAocGdfc3RhdF9nZXRfZnVuY3Rpb25fc2VsZl90aW1lKHAu b2lkKSAvIDEwMDApIEFTIHNlbGZfdGltZSBGUk9NIChwZ19wcm9jIHAgTEVGVCBKT0lOIHBn X25hbWVzcGFjZSBuIE9OICgobi5vaWQgPSBwLnByb25hbWVzcGFjZSkpKSBXSEVSRSAoKHAu cHJvbGFuZyA8PiAoMTIpOjpvaWQpIEFORCAocGdfc3RhdF9nZXRfZnVuY3Rpb25fY2FsbHMo cC5vaWQpIElTIE5PVCBOVUxMKSk7Cgpjb21taXQgZmEzNTJkNjYyZTU3ZmExNTAxNThiOWNi MGE4ZjEyNzI1MGY4Yzk3ZgpBdXRob3I6IEhlaWtraSBMaW5uYWthbmdhcyA8aGVpa2tpLmxp bm5ha2FuZ2FzQGlraS5maT4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjA2OjMwIDIwMTIgKzAy MDAKCiAgICBNYWtlIHBnX3JlbGF0aW9uX3NpemUoKSBhbmQgZnJpZW5kcyByZXR1cm4gTlVM TCBpZiB0aGUgb2JqZWN0IGRvZXNuJ3QgZXhpc3QuCiAgICAKICAgIFRoYXQgYXZvaWRzIGVy cm9ycyB3aGVuIHRoZSBmdW5jdGlvbnMgYXJlIHVzZWQgaW4gcXVlcmllcyBsaWtlICJTRUxF Q1QKICAgIHBnX3JlbGF0aW9uX3NpemUob2lkKSBGUk9NIHBnX2NsYXNzIiwgYW5kIGEgdGFi bGUgaXMgZHJvcHBlZCBjb25jdXJyZW50bHkuCiAgICAKICAgIFBoaWwgU29yYmVyCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNn bWwKaW5kZXggN2Q3YWJhNy4uZmY5YjhiMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1 bmMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0xNDk4MCw2ICsxNDk4 MCwxMSBAQCBwb3N0Z3Jlcz0jIFNFTEVDVCAqIEZST00gcGdfeGxvZ2ZpbGVfbmFtZV9vZmZz ZXQocGdfc3RvcF9iYWNrdXAoKSk7CiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgorICAgIElm IGFuIE9JRCB0aGF0IGRvZXMgbm90IHJlcHJlc2VudCBhbiBleGlzdGluZyBvYmplY3QgaXMg cGFzc2VkIGFzCisgICAgYXJndW1lbnQgdG8gb25lIG9mIHRoZSBhYm92ZSBmdW5jdGlvbnMs IE5VTEwgaXMgcmV0dXJuZWQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgogICAgIFRoZSBm dW5jdGlvbnMgc2hvd24gaW4gPHhyZWYgbGlua2VuZD0iZnVuY3Rpb25zLWFkbWluLWRibG9j YXRpb24iPiBhc3Npc3QKICAgICBpbiBpZGVudGlmeWluZyB0aGUgc3BlY2lmaWMgZGlzayBm aWxlcyBhc3NvY2lhdGVkIHdpdGggZGF0YWJhc2Ugb2JqZWN0cy4KICAgIDwvcGFyYT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYnNpemUuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYnNpemUuYwppbmRleCBjZmYwNjFjLi4yNmE4YzAxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGJzaXplLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2Ric2l6ZS5jCkBAIC0xMjAsMTIgKzEyMCw2IEBAIGNhbGN1bGF0ZV9kYXRhYmFz ZV9zaXplKE9pZCBkYk9pZCkKIAogCUZyZWVEaXIoZGlyZGVzYyk7CiAKLQkvKiBDb21wbGFp biBpZiB3ZSBmb3VuZCBubyB0cmFjZSBvZiB0aGUgREIgYXQgYWxsICovCi0JaWYgKCF0b3Rh bHNpemUpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKEVSUkNPREVfVU5ERUZJTkVEX0RBVEFC QVNFLAotCQkJCSBlcnJtc2coImRhdGFiYXNlIHdpdGggT0lEICV1IGRvZXMgbm90IGV4aXN0 IiwgZGJPaWQpKSk7Ci0KIAlyZXR1cm4gdG90YWxzaXplOwogfQogCkBAIC0xMzMsOCArMTI3 LDE0IEBAIERhdHVtCiBwZ19kYXRhYmFzZV9zaXplX29pZChQR19GVU5DVElPTl9BUkdTKQog ewogCU9pZAkJCWRiT2lkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlpbnQ2NAkJc2l6ZTsKIAot CVBHX1JFVFVSTl9JTlQ2NChjYWxjdWxhdGVfZGF0YWJhc2Vfc2l6ZShkYk9pZCkpOworCXNp emUgPSBjYWxjdWxhdGVfZGF0YWJhc2Vfc2l6ZShkYk9pZCk7CisKKwlpZiAoc2l6ZSA9PSAw KQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0lOVDY0KHNpemUpOwogfQog CiBEYXR1bQpAQCAtMTQyLDEzICsxNDIsMjAgQEAgcGdfZGF0YWJhc2Vfc2l6ZV9uYW1lKFBH X0ZVTkNUSU9OX0FSR1MpCiB7CiAJTmFtZQkJZGJOYW1lID0gUEdfR0VUQVJHX05BTUUoMCk7 CiAJT2lkCQkJZGJPaWQgPSBnZXRfZGF0YWJhc2Vfb2lkKE5hbWVTdHIoKmRiTmFtZSksIGZh bHNlKTsKKwlpbnQ2NAkJc2l6ZTsKKworCXNpemUgPSBjYWxjdWxhdGVfZGF0YWJhc2Vfc2l6 ZShkYk9pZCk7CiAKLQlQR19SRVRVUk5fSU5UNjQoY2FsY3VsYXRlX2RhdGFiYXNlX3NpemUo ZGJPaWQpKTsKKwlpZiAoc2l6ZSA9PSAwKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdf UkVUVVJOX0lOVDY0KHNpemUpOwogfQogCiAKIC8qCi0gKiBjYWxjdWxhdGUgdG90YWwgc2l6 ZSBvZiB0YWJsZXNwYWNlCisgKiBDYWxjdWxhdGUgdG90YWwgc2l6ZSBvZiB0YWJsZXNwYWNl LiBSZXR1cm5zIC0xIGlmIHRoZSB0YWJsZXNwYWNlIGRpcmVjdG9yeQorICogY2Fubm90IGJl IGZvdW5kLgogICovCiBzdGF0aWMgaW50NjQKIGNhbGN1bGF0ZV90YWJsZXNwYWNlX3NpemUo T2lkIHRibHNwY09pZCkKQEAgLTE4NCwxMCArMTkxLDcgQEAgY2FsY3VsYXRlX3RhYmxlc3Bh Y2Vfc2l6ZShPaWQgdGJsc3BjT2lkKQogCWRpcmRlc2MgPSBBbGxvY2F0ZURpcih0YmxzcGNQ YXRoKTsKIAogCWlmICghZGlyZGVzYykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29k ZV9mb3JfZmlsZV9hY2Nlc3MoKSwKLQkJCQkgZXJybXNnKCJjb3VsZCBub3Qgb3BlbiB0YWJs ZXNwYWNlIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwKLQkJCQkJCXRibHNwY1BhdGgpKSk7CisJ CXJldHVybiAtMTsKIAogCXdoaWxlICgoZGlyZW50cnkgPSBSZWFkRGlyKGRpcmRlc2MsIHRi bHNwY1BhdGgpKSAhPSBOVUxMKQogCXsKQEAgLTIyNiw4ICsyMzAsMTQgQEAgRGF0dW0KIHBn X3RhYmxlc3BhY2Vfc2l6ZV9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlPaWQJCQl0Ymxz cGNPaWQgPSBQR19HRVRBUkdfT0lEKDApOworCWludDY0CQlzaXplOworCisJc2l6ZSA9IGNh bGN1bGF0ZV90YWJsZXNwYWNlX3NpemUodGJsc3BjT2lkKTsKIAotCVBHX1JFVFVSTl9JTlQ2 NChjYWxjdWxhdGVfdGFibGVzcGFjZV9zaXplKHRibHNwY09pZCkpOworCWlmIChzaXplIDwg MCkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQ2NChzaXplKTsKIH0K IAogRGF0dW0KQEAgLTIzNSw4ICsyNDUsMTQgQEAgcGdfdGFibGVzcGFjZV9zaXplX25hbWUo UEdfRlVOQ1RJT05fQVJHUykKIHsKIAlOYW1lCQl0YmxzcGNOYW1lID0gUEdfR0VUQVJHX05B TUUoMCk7CiAJT2lkCQkJdGJsc3BjT2lkID0gZ2V0X3RhYmxlc3BhY2Vfb2lkKE5hbWVTdHIo KnRibHNwY05hbWUpLCBmYWxzZSk7CisJaW50NjQJCXNpemU7CiAKLQlQR19SRVRVUk5fSU5U NjQoY2FsY3VsYXRlX3RhYmxlc3BhY2Vfc2l6ZSh0YmxzcGNPaWQpKTsKKwlzaXplID0gY2Fs Y3VsYXRlX3RhYmxlc3BhY2Vfc2l6ZSh0YmxzcGNPaWQpOworCisJaWYgKHNpemUgPCAwKQor CQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0lOVDY0KHNpemUpOwogfQogCiAK QEAgLTI4OSw3ICszMDUsMTcgQEAgcGdfcmVsYXRpb25fc2l6ZShQR19GVU5DVElPTl9BUkdT KQogCVJlbGF0aW9uCXJlbDsKIAlpbnQ2NAkJc2l6ZTsKIAotCXJlbCA9IHJlbGF0aW9uX29w ZW4ocmVsT2lkLCBBY2Nlc3NTaGFyZUxvY2spOworCXJlbCA9IHRyeV9yZWxhdGlvbl9vcGVu KHJlbE9pZCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCS8qCisJICogQmVmb3JlIDkuMiwgd2Ug dXNlZCB0byB0aHJvdyBhbiBlcnJvciBpZiB0aGUgcmVsYXRpb24gZGlkbid0IGV4aXN0LCBi dXQKKwkgKiB0aGF0IG1ha2VzIHF1ZXJpZXMgbGlrZSAiU0VMRUNUIHBnX3JlbGF0aW9uX3Np emUob2lkKSBGUk9NIHBnX2NsYXNzIgorCSAqIGxlc3Mgcm9idXN0LCBiZWNhdXNlIHdoaWxl IHdlIHNjYW4gcGdfY2xhc3Mgd2l0aCBhbiBNVkNDIHNuYXBzaG90LAorCSAqIHNvbWVvbmUg ZWxzZSBtaWdodCBkcm9wIHRoZSB0YWJsZS4gSXQncyBiZXR0ZXIgdG8gcmV0dXJuIE5VTEwg Zm9yCisJICogYWxyZWFkLWRyb3BwZWQgdGFibGVzIHRoYW4gdGhyb3cgYW4gZXJyb3IgYW5k IGFib3J0IHRoZSB3aG9sZSBxdWVyeS4KKwkgKi8KKwlpZiAocmVsID09IE5VTEwpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlzaXplID0gY2FsY3VsYXRlX3JlbGF0aW9uX3NpemUoJihy ZWwtPnJkX25vZGUpLCByZWwtPnJkX2JhY2tlbmQsCiAJCQkJCQkJICBmb3JrbmFtZV90b19u dW1iZXIodGV4dF90b19jc3RyaW5nKGZvcmtOYW1lKSkpOwpAQCAtMzM5LDE0ICszNjUsMTEg QEAgY2FsY3VsYXRlX3RvYXN0X3RhYmxlX3NpemUoT2lkIHRvYXN0cmVsaWQpCiAgKiB0aG9z ZSB3b24ndCBoYXZlIGF0dGFjaGVkIHRvYXN0IHRhYmxlcywgYnV0IHRoZXkgY2FuIGhhdmUg bXVsdGlwbGUgZm9ya3MuCiAgKi8KIHN0YXRpYyBpbnQ2NAotY2FsY3VsYXRlX3RhYmxlX3Np emUoT2lkIHJlbE9pZCkKK2NhbGN1bGF0ZV90YWJsZV9zaXplKFJlbGF0aW9uIHJlbCkKIHsK IAlpbnQ2NAkJc2l6ZSA9IDA7Ci0JUmVsYXRpb24JcmVsOwogCUZvcmtOdW1iZXIJZm9ya051 bTsKIAotCXJlbCA9IHJlbGF0aW9uX29wZW4ocmVsT2lkLCBBY2Nlc3NTaGFyZUxvY2spOwot CiAJLyoKIAkgKiBoZWFwIHNpemUsIGluY2x1ZGluZyBGU00gYW5kIFZNCiAJICovCkBAIC0z NjAsOCArMzgzLDYgQEAgY2FsY3VsYXRlX3RhYmxlX3NpemUoT2lkIHJlbE9pZCkKIAlpZiAo T2lkSXNWYWxpZChyZWwtPnJkX3JlbC0+cmVsdG9hc3RyZWxpZCkpCiAJCXNpemUgKz0gY2Fs Y3VsYXRlX3RvYXN0X3RhYmxlX3NpemUocmVsLT5yZF9yZWwtPnJlbHRvYXN0cmVsaWQpOwog Ci0JcmVsYXRpb25fY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwotCiAJcmV0dXJuIHNp emU7CiB9CiAKQEAgLTM3MSwxMiArMzkyLDkgQEAgY2FsY3VsYXRlX3RhYmxlX3NpemUoT2lk IHJlbE9pZCkKICAqIENhbiBiZSBhcHBsaWVkIHNhZmVseSB0byBhbiBpbmRleCwgYnV0IHlv dSdsbCBqdXN0IGdldCB6ZXJvLgogICovCiBzdGF0aWMgaW50NjQKLWNhbGN1bGF0ZV9pbmRl eGVzX3NpemUoT2lkIHJlbE9pZCkKK2NhbGN1bGF0ZV9pbmRleGVzX3NpemUoUmVsYXRpb24g cmVsKQogewogCWludDY0CQlzaXplID0gMDsKLQlSZWxhdGlvbglyZWw7Ci0KLQlyZWwgPSBy ZWxhdGlvbl9vcGVuKHJlbE9pZCwgQWNjZXNzU2hhcmVMb2NrKTsKIAogCS8qCiAJICogQWdn cmVnYXRlIGFsbCBpbmRleGVzIG9uIHRoZSBnaXZlbiByZWxhdGlvbgpAQCAtNDA1LDggKzQy Myw2IEBAIGNhbGN1bGF0ZV9pbmRleGVzX3NpemUoT2lkIHJlbE9pZCkKIAkJbGlzdF9mcmVl KGluZGV4X29pZHMpOwogCX0KIAotCXJlbGF0aW9uX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVM b2NrKTsKLQogCXJldHVybiBzaXplOwogfQogCkBAIC00MTQsMTYgKzQzMCwzOCBAQCBEYXR1 bQogcGdfdGFibGVfc2l6ZShQR19GVU5DVElPTl9BUkdTKQogewogCU9pZAkJCXJlbE9pZCA9 IFBHX0dFVEFSR19PSUQoMCk7CisJUmVsYXRpb24JcmVsOworCWludDY0CQlzaXplOworCisJ cmVsID0gdHJ5X3JlbGF0aW9uX29wZW4ocmVsT2lkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJ aWYgKHJlbCA9PSBOVUxMKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCi0JUEdfUkVUVVJOX0lO VDY0KGNhbGN1bGF0ZV90YWJsZV9zaXplKHJlbE9pZCkpOworCXNpemUgPSBjYWxjdWxhdGVf dGFibGVfc2l6ZShyZWwpOworCisJcmVsYXRpb25fY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxv Y2spOworCisJUEdfUkVUVVJOX0lOVDY0KHNpemUpOwogfQogCiBEYXR1bQogcGdfaW5kZXhl c19zaXplKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJT2lkCQkJcmVsT2lkID0gUEdfR0VUQVJH X09JRCgwKTsKKwlSZWxhdGlvbglyZWw7CisJaW50NjQJCXNpemU7CiAKLQlQR19SRVRVUk5f SU5UNjQoY2FsY3VsYXRlX2luZGV4ZXNfc2l6ZShyZWxPaWQpKTsKKwlyZWwgPSB0cnlfcmVs YXRpb25fb3BlbihyZWxPaWQsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlpZiAocmVsID09IE5V TEwpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlzaXplID0gY2FsY3VsYXRlX2luZGV4ZXNf c2l6ZShyZWwpOworCisJcmVsYXRpb25fY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwor CisJUEdfUkVUVVJOX0lOVDY0KHNpemUpOwogfQogCiAvKgpAQCAtNDMxLDcgKzQ2OSw3IEBA IHBnX2luZGV4ZXNfc2l6ZShQR19GVU5DVElPTl9BUkdTKQogICoJaW5jbHVkaW5nIGhlYXAg ZGF0YSwgaW5kZXggZGF0YSwgdG9hc3QgZGF0YSwgRlNNLCBWTS4KICAqLwogc3RhdGljIGlu dDY0Ci1jYWxjdWxhdGVfdG90YWxfcmVsYXRpb25fc2l6ZShPaWQgUmVsaWQpCitjYWxjdWxh dGVfdG90YWxfcmVsYXRpb25fc2l6ZShSZWxhdGlvbiByZWwpCiB7CiAJaW50NjQJCXNpemU7 CiAKQEAgLTQzOSwxMiArNDc3LDEyIEBAIGNhbGN1bGF0ZV90b3RhbF9yZWxhdGlvbl9zaXpl KE9pZCBSZWxpZCkKIAkgKiBBZ2dyZWdhdGUgdGhlIHRhYmxlIHNpemUsIHRoaXMgaW5jbHVk ZXMgc2l6ZSBvZiB0aGUgaGVhcCwgdG9hc3QgYW5kCiAJICogdG9hc3QgaW5kZXggd2l0aCBm cmVlIHNwYWNlIGFuZCB2aXNpYmlsaXR5IG1hcAogCSAqLwotCXNpemUgPSBjYWxjdWxhdGVf dGFibGVfc2l6ZShSZWxpZCk7CisJc2l6ZSA9IGNhbGN1bGF0ZV90YWJsZV9zaXplKHJlbCk7 CiAKIAkvKgogCSAqIEFkZCBzaXplIG9mIGFsbCBhdHRhY2hlZCBpbmRleGVzIGFzIHdlbGwK IAkgKi8KLQlzaXplICs9IGNhbGN1bGF0ZV9pbmRleGVzX3NpemUoUmVsaWQpOworCXNpemUg Kz0gY2FsY3VsYXRlX2luZGV4ZXNfc2l6ZShyZWwpOwogCiAJcmV0dXJuIHNpemU7CiB9CkBA IC00NTIsOSArNDkwLDIwIEBAIGNhbGN1bGF0ZV90b3RhbF9yZWxhdGlvbl9zaXplKE9pZCBS ZWxpZCkKIERhdHVtCiBwZ190b3RhbF9yZWxhdGlvbl9zaXplKFBHX0ZVTkNUSU9OX0FSR1Mp CiB7Ci0JT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOworCU9pZAkJCXJlbE9pZCA9 IFBHX0dFVEFSR19PSUQoMCk7CisJUmVsYXRpb24JcmVsOworCWludDY0CQlzaXplOworCisJ cmVsID0gdHJ5X3JlbGF0aW9uX29wZW4ocmVsT2lkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJ aWYgKHJlbCA9PSBOVUxMKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCi0JUEdfUkVUVVJOX0lO VDY0KGNhbGN1bGF0ZV90b3RhbF9yZWxhdGlvbl9zaXplKHJlbGlkKSk7CisJc2l6ZSA9IGNh bGN1bGF0ZV90b3RhbF9yZWxhdGlvbl9zaXplKHJlbCk7CisKKwlyZWxhdGlvbl9jbG9zZShy ZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlQR19SRVRVUk5fSU5UNjQoc2l6ZSk7CiB9CiAK IC8qCgpjb21taXQgNmY2YjQ2YzljMGNhM2Q5NmFjYmViYzU0OTljMzJlZTYzNjllMWVlYwpB dXRob3I6IFBldGVyIEVpc2VudHJhdXQgPHBldGVyX2VAZ214Lm5ldD4KRGF0ZTogICBXZWQg SmFuIDE4IDIxOjAyOjA5IDIwMTIgKzAyMDAKCiAgICBQTC9QeXRob246IFVwZGF0ZSBleGFt cGxlCiAgICAKICAgIENoYW5nZSB0aGUgdXNlc2F2ZWRwbGFuKCkgZXhhbXBsZSB0byB1c2Ug YSBtb3JlIG1vZGVybiBQeXRob24gc3R5bGUKICAgIHVzaW5nIHRoZSAuc2V0ZGVmYXVsdCgp IGZ1bmN0aW9uLgoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wbHB5dGhvbi5zZ21sIGIv ZG9jL3NyYy9zZ21sL3BscHl0aG9uLnNnbWwKaW5kZXggNjE4ZjhkMC4uNWEzYzhjYSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscHl0aG9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3BscHl0aG9uLnNnbWwKQEAgLTk1NSwxMSArOTU1LDcgQEAgcnYgPSBwbHB5LmV4ZWN1dGUo cGxhbiwgWyAibmFtZSIgXSwgNSkKICAgIDx4cmVmIGxpbmtlbmQ9InBscHl0aG9uLXNoYXJp bmciPikuIEZvciBleGFtcGxlOgogPHByb2dyYW1saXN0aW5nPgogQ1JFQVRFIEZVTkNUSU9O IHVzZXNhdmVkcGxhbigpIFJFVFVSTlMgdHJpZ2dlciBBUyAkJAotICAgIGlmIFNELmhhc19r ZXkoInBsYW4iKToKLSAgICAgICAgcGxhbiA9IFNEWyJwbGFuIl0KLSAgICBlbHNlOgotICAg ICAgICBwbGFuID0gcGxweS5wcmVwYXJlKCJTRUxFQ1QgMSIpCi0gICAgICAgIFNEWyJwbGFu Il0gPSBwbGFuCisgICAgcGxhbiA9IFNELnNldGRlZmF1bHQoInBsYW4iLCBwbHB5LnByZXBh cmUoIlNFTEVDVCAxIikpCiAgICAgIyByZXN0IG9mIGZ1bmN0aW9uCiAkJCBMQU5HVUFHRSBw bHB5dGhvbnU7CiA8L3Byb2dyYW1saXN0aW5nPgoKY29tbWl0IDMyNmI5MjJlOGIyZDY1MjU3 YTYzNWI1ZjgwZTVkZTBmMTVkZmZkM2EKQXV0aG9yOiBIZWlra2kgTGlubmFrYW5nYXMgPGhl aWtraS5saW5uYWthbmdhc0Bpa2kuZmk+CkRhdGU6ICAgV2VkIEphbiAxOCAxNzowOTo0NCAy MDEyICswMjAwCgogICAgRml4IGNvcm5lciBjYXNlIGluIGNsZWFudXAgb2YgdHJhbnNhY3Rp b25zIHVzaW5nIFNTSS4KICAgIAogICAgV2hlbiB0aGUgb25seSByZW1haW5pbmcgYWN0aXZl IHRyYW5zYWN0aW9ucyBhcmUgUkVBRCBPTkxZLCB3ZSBkbyBhICJwYXJ0aWFsCiAgICBjbGVh bnVwIiBvZiBjb21taXR0ZWQgdHJhbnNhY3Rpb25zIGJlY2F1c2UgY2VydGFpbiB0eXBlcyBv ZiBjb25mbGljdHMKICAgIGFyZW4ndCBwb3NzaWJsZSBhbnltb3JlLiBGb3IgY29tbWl0dGVk IHIvdyB0cmFuc2FjdGlvbnMsIHdlIHJlbGVhc2UgdGhlCiAgICBTSVJFQUQgbG9ja3MgYnV0 IGtlZXAgdGhlIFNFUklBTElaQUJMRVhBQ1QuIEhvd2V2ZXIsIGZvciBjb21taXR0ZWQgci9v CiAgICB0cmFuc2FjdGlvbnMsIHdlIGNhbiBnbyBmdXJ0aGVyIGFuZCByZWxlYXNlIHRoZSBT RVJJQUxJWkFCTEVYQUNUIHRvby4gVGhlCiAgICBwcm9ibGVtIHdhcyB3aXRoIHRoZSBsYXR0 ZXIgY2FzZTogd2Ugd2VyZSByZXR1cm5pbmcgdGhlIFNFUklBTElaQUJMRVhBQ1QgdG8KICAg IHRoZSBmcmVlIGxpc3Qgd2l0aG91dCByZW1vdmluZyBpdCBmcm9tIHRoZSBmaW5pc2hlZCBs aXN0LgogICAgCiAgICBUaGUgb25seSByZWFsIGNoYW5nZSBpbiB0aGUgcGF0Y2ggaXMgdGhl IFNITVF1ZXVlRGVsZXRlIGxpbmUsIGJ1dCBJIGFsc28KICAgIHJld29ya2VkIHNvbWUgb2Yg dGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gbWFrZSBpdCBvYnZpb3VzIHRoYXQgci9vIGFuZCBy L3cKICAgIHRyYW5zYWN0aW9ucyBhcmUgaGFuZGxlZCBkaWZmZXJlbnRseSAtLSB0aGUgZXhp c3RpbmcgY29kZSBmZWx0IGEgYml0IHRvbwogICAgY2xldmVyLgogICAgCiAgICBEYW4gUG9y dHMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMg Yi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMKaW5kZXggODIxMzI4Yi4u OWU5MjdmOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0 ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYwpAQCAtMzUy OCwxMCArMzUyOCwyOSBAQCBDbGVhck9sZFByZWRpY2F0ZUxvY2tzKHZvaWQpCiAJCWVsc2Ug aWYgKGZpbmlzaGVkU3hhY3QtPmNvbW1pdFNlcU5vID4gUHJlZFhhY3QtPkhhdmVQYXJ0aWFs Q2xlYXJlZFRocm91Z2gKIAkJICAgJiYgZmluaXNoZWRTeGFjdC0+Y29tbWl0U2VxTm8gPD0g UHJlZFhhY3QtPkNhblBhcnRpYWxDbGVhclRocm91Z2gpCiAJCXsKKwkJCS8qCisJCQkgKiBB bnkgYWN0aXZlIHRyYW5zYWN0aW9ucyB0aGF0IHRvb2sgdGhlaXIgc25hcHNob3QgYmVmb3Jl IHRoaXMKKwkJCSAqIHRyYW5zYWN0aW9uIGNvbW1pdHRlZCBhcmUgcmVhZC1vbmx5LCBzbyB3 ZSBjYW4gY2xlYXIgcGFydCBvZgorCQkJICogaXRzIHN0YXRlLgorCQkJICovCiAJCQlMV0xv Y2tSZWxlYXNlKFNlcmlhbGl6YWJsZVhhY3RIYXNoTG9jayk7Ci0JCQlSZWxlYXNlT25lU2Vy aWFsaXphYmxlWGFjdChmaW5pc2hlZFN4YWN0LAotCQkJCQkJCQkJICAgIVN4YWN0SXNSZWFk T25seShmaW5pc2hlZFN4YWN0KSwKLQkJCQkJCQkJCSAgIGZhbHNlKTsKKworCQkJaWYgKFN4 YWN0SXNSZWFkT25seShmaW5pc2hlZFN4YWN0KSkKKwkJCXsKKwkJCQkvKiBBIHJlYWQtb25s eSB0cmFuc2FjdGlvbiBjYW4gYmUgcmVtb3ZlZCBlbnRpcmVseSAqLworCQkJCVNITVF1ZXVl RGVsZXRlKCYoZmluaXNoZWRTeGFjdC0+ZmluaXNoZWRMaW5rKSk7CisJCQkJUmVsZWFzZU9u ZVNlcmlhbGl6YWJsZVhhY3QoZmluaXNoZWRTeGFjdCwgZmFsc2UsIGZhbHNlKTsKKwkJCX0K KwkJCWVsc2UKKwkJCXsKKwkJCQkvKgorCQkJCSAqIEEgcmVhZC13cml0ZSB0cmFuc2FjdGlv biBjYW4gb25seSBiZSBwYXJ0aWFsbHkKKwkJCQkgKiBjbGVhcmVkLiBXZSBuZWVkIHRvIGtl ZXAgdGhlIFNFUklBTElaQUJMRVhBQ1QgYnV0CisJCQkJICogY2FuIHJlbGVhc2UgdGhlIFNJ UkVBRCBsb2NrcyBhbmQgY29uZmxpY3RzIGluLgorCQkJCSAqLworCQkJCVJlbGVhc2VPbmVT ZXJpYWxpemFibGVYYWN0KGZpbmlzaGVkU3hhY3QsIHRydWUsIGZhbHNlKTsKKwkJCX0KKwog CQkJUHJlZFhhY3QtPkhhdmVQYXJ0aWFsQ2xlYXJlZFRocm91Z2ggPSBmaW5pc2hlZFN4YWN0 LT5jb21taXRTZXFObzsKIAkJCUxXTG9ja0FjcXVpcmUoU2VyaWFsaXphYmxlWGFjdEhhc2hM b2NrLCBMV19TSEFSRUQpOwogCQl9CkBAIC0zNjM3LDYgKzM2NTYsNyBAQCBSZWxlYXNlT25l U2VyaWFsaXphYmxlWGFjdChTRVJJQUxJWkFCTEVYQUNUICpzeGFjdCwgYm9vbCBwYXJ0aWFs LAogCiAJQXNzZXJ0KHN4YWN0ICE9IE5VTEwpOwogCUFzc2VydChTeGFjdElzUm9sbGVkQmFj ayhzeGFjdCkgfHwgU3hhY3RJc0NvbW1pdHRlZChzeGFjdCkpOworCUFzc2VydChwYXJ0aWFs IHx8ICFTeGFjdElzT25GaW5pc2hlZExpc3Qoc3hhY3QpKTsKIAlBc3NlcnQoTFdMb2NrSGVs ZEJ5TWUoU2VyaWFsaXphYmxlRmluaXNoZWRMaXN0TG9jaykpOwogCiAJLyoKCmNvbW1pdCAy MTA2YzU1YWM4ZGFjYzUyYmY2NDgzOTI1NTI5ZmQzYWI5OWI5NGM0CkF1dGhvcjogTWFnbnVz IEhhZ2FuZGVyIDxtYWdudXNAaGFnYW5kZXIubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTggMTA6 MzI6NTQgMjAxMiArMDEwMAoKICAgIFNob3cgcHNxbCB0aW1pbmcgb3V0cHV0IGZvciBmYWls ZWQgcXVlcmllcyBhcyB3ZWxsIGFzIHN1Y2Nlc3NmdWwgb25lcwogICAgCiAgICBUaGlzIGlz IHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIGEgbG9uZy1ydW5pbmcgc3RhdGVtZW50IHN1Y2gg YXMgQ1JFQVRFCiAgICBJTkRFWCBmYWlscyBhZnRlciBhIGxvbmcgdGltZS4KCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvY29tbW9uLmMgYi9zcmMvYmluL3BzcWwvY29tbW9uLmMKaW5k ZXggODg5YzE1Ny4uMjkzODlkMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1vbi5j CisrKyBiL3NyYy9iaW4vcHNxbC9jb21tb24uYwpAQCAtOTQyLDcgKzk0Miw3IEBAIFNlbmRR dWVyeShjb25zdCBjaGFyICpxdWVyeSkKIAlQUWNsZWFyKHJlc3VsdHMpOwogCiAJLyogUG9z c2libGUgbWljcm90aW1pbmcgb3V0cHV0ICovCi0JaWYgKE9LICYmIHBzZXQudGltaW5nKQor CWlmIChwc2V0LnRpbWluZykKIAkJcHJpbnRmKF8oIlRpbWU6ICUuM2YgbXNcbiIpLCBlbGFw c2VkX21zZWMpOwogCiAJLyogY2hlY2sgZm9yIGV2ZW50cyB0aGF0IG1heSBvY2N1ciBkdXJp bmcgcXVlcnkgZXhlY3V0aW9uICovCgpjb21taXQgYWUxMzdiY2FhYjdkZDBiMWVlNTgwMjBk OTNjZThmMDdlMzZkNGQ0OQpBdXRob3I6IE1hZ251cyBIYWdhbmRlciA8bWFnbnVzQGhhZ2Fu ZGVyLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDEwOjIyOjU0IDIwMTIgKzAxMDAKCiAgICBG aXggd2FybmluZyBhYm91dCB1bnVzZWQgdmFyaWFibGUKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy92aWV3LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKaW5k ZXggYzM1MjBhZS4uZjg5NTQ4OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmlldy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwpAQCAtMTAyLDcgKzEw Miw2IEBAIERlZmluZVZpcnR1YWxSZWxhdGlvbihSYW5nZVZhciAqcmVsYXRpb24sIExpc3Qg KnRsaXN0LCBib29sIHJlcGxhY2UsCiAJCQkJCSAgTGlzdCAqb3B0aW9ucykKIHsKIAlPaWQJ CQl2aWV3T2lkOwotCU9pZAkJCW5hbWVzcGFjZUlkOwogCUxPQ0tNT0RFCWxvY2ttb2RlOwog CUNyZWF0ZVN0bXQgKmNyZWF0ZVN0bXQgPSBtYWtlTm9kZShDcmVhdGVTdG10KTsKIAlMaXN0 CSAgICphdHRyTGlzdDsKQEAgLTE2Nyw4ICsxNjYsNyBAQCBEZWZpbmVWaXJ0dWFsUmVsYXRp b24oUmFuZ2VWYXIgKnJlbGF0aW9uLCBMaXN0ICp0bGlzdCwgYm9vbCByZXBsYWNlLAogCSAq IG5hbWVzcGFjZSBpcyB0ZW1wb3JhcnkuCiAJICovCiAJbG9ja21vZGUgPSByZXBsYWNlID8g QWNjZXNzRXhjbHVzaXZlTG9jayA6IE5vTG9jazsKLQluYW1lc3BhY2VJZCA9Ci0JCVJhbmdl VmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShyZWxhdGlvbiwgbG9ja21vZGUsICZ2 aWV3T2lkKTsKKwkodm9pZCkgUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNl KHJlbGF0aW9uLCBsb2NrbW9kZSwgJnZpZXdPaWQpOwogCiAJaWYgKE9pZElzVmFsaWQodmll d09pZCkgJiYgcmVwbGFjZSkKIAl7Cgpjb21taXQgNTA0ZjBjNWQ1ZDI5NTVjMDU0NThlMWE4 ZDVmNGZiYmE0Y2FjMDdjZApBdXRob3I6IFJvYmVydCBIYWFzIDxyaGFhc0Bwb3N0Z3Jlc3Fs Lm9yZz4KRGF0ZTogICBUdWUgSmFuIDE3IDIyOjA3OjI0IDIwMTIgLTA1MDAKCiAgICBSZWdy ZXNzaW9uIHRlc3RzIGZvciBzZWN1cml0eV9iYXJyaWVyIHZpZXdzLgogICAgCiAgICBLYWlH YWkgS29oZWkKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVj dF92aWV3cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVjdF92aWV3cy5v dXQKaW5kZXggNmNkMzE3Yy4uODlkZmNiMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZWxlY3Rfdmlld3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2VsZWN0X3ZpZXdzLm91dApAQCAtMTI0NywzICsxMjQ3LDI1OCBAQCBTRUxFQ1Qg KiBGUk9NIHRveWVtcCBXSEVSRSBuYW1lID0gJ3NoYXJvbic7CiAgc2hhcm9uIHwgIDI1IHwg KDE1LDEyKSAgfCAgICAgMTIwMDAKICgxIHJvdykKIAorLS0KKy0tIFRlc3QgZm9yIExlYWt5 IHZpZXcgc2NlbmFyaW8KKy0tCitDUkVBVEUgVVNFUiBhbGljZTsKK0NSRUFURSBGVU5DVElP TiBmX2xlYWsgKHRleHQpCisgICAgICAgUkVUVVJOUyBib29sIExBTkdVQUdFICdwbHBnc3Fs JyBDT1NUIDAuMDAwMDAwMQorICAgICAgIEFTICdCRUdJTiBSQUlTRSBOT1RJQ0UgJydmX2xl YWsgPT4gJScnLCAkMTsgUkVUVVJOIHRydWU7IEVORCc7CitDUkVBVEUgVEFCTEUgY3VzdG9t ZXIgKAorICAgICAgIGNpZCAgICAgIGludCBwcmltYXJ5IGtleSwKKyAgICAgICBuYW1lICAg ICB0ZXh0IG5vdCBudWxsLAorICAgICAgIHRlbCAgICAgIHRleHQsCisgICAgICAgcGFzc3dk CXRleHQKKyk7CitOT1RJQ0U6ICBDUkVBVEUgVEFCTEUgLyBQUklNQVJZIEtFWSB3aWxsIGNy ZWF0ZSBpbXBsaWNpdCBpbmRleCAiY3VzdG9tZXJfcGtleSIgZm9yIHRhYmxlICJjdXN0b21l ciIKK0NSRUFURSBUQUJMRSBjcmVkaXRfY2FyZCAoCisgICAgICAgY2lkICAgICAgaW50IHJl ZmVyZW5jZXMgY3VzdG9tZXIoY2lkKSwKKyAgICAgICBjbnVtICAgICB0ZXh0LAorICAgICAg IGNsaW1pdCAgIGludAorKTsKK0NSRUFURSBUQUJMRSBjcmVkaXRfdXNhZ2UgKAorICAgICAg IGNpZCAgICAgIGludCByZWZlcmVuY2VzIGN1c3RvbWVyKGNpZCksCisgICAgICAgeW1kICAg ICAgZGF0ZSwKKyAgICAgICB1c2FnZSAgICBpbnQKKyk7CitJTlNFUlQgSU5UTyBjdXN0b21l cgorICAgICAgIFZBTFVFUyAoMTAxLCAnYWxpY2UnLCAnKzgxLTEyLTM0NTYtNzg5MCcsICdw YXNzd2QxMjMnKSwKKyAgICAgICAgICAgICAgKDEwMiwgJ2JvYicsICAgJyswMS0yMzQtNTY3 LTg5MDEnLCAnYmVhZnN0ZWFrJyksCisgICAgICAgICAgICAgICgxMDMsICdldmUnLCAgICcr NDktODc2NS00MzIxMCcsICAgJ2hhbWJ1cmdlcicpOworSU5TRVJUIElOVE8gY3JlZGl0X2Nh cmQKKyAgICAgICBWQUxVRVMgKDEwMSwgJzExMTEtMjIyMi0zMzMzLTQ0NDQnLCA0MDAwKSwK KyAgICAgICAgICAgICAgKDEwMiwgJzU1NTUtNjY2Ni03Nzc3LTg4ODgnLCAzMDAwKSwKKyAg ICAgICAgICAgICAgKDEwMywgJzk4MDEtMjM0NS02Nzg5LTAxMjMnLCAyMDAwKTsKK0lOU0VS VCBJTlRPIGNyZWRpdF91c2FnZQorICAgICAgIFZBTFVFUyAoMTAxLCAnMjAxMS0wOS0xNScs IDEyMCksCisgICAgICAgCSAgICAgICgxMDEsICcyMDExLTEwLTA1JywgIDkwKSwKKwkgICAg ICAoMTAxLCAnMjAxMS0xMC0xOCcsIDExMCksCisJICAgICAgKDEwMSwgJzIwMTEtMTAtMjEn LCAyMDApLAorCSAgICAgICgxMDEsICcyMDExLTExLTEwJywgIDgwKSwKKwkgICAgICAoMTAy LCAnMjAxMS0wOS0yMicsIDMwMCksCisJICAgICAgKDEwMiwgJzIwMTEtMTAtMTInLCAxMjAp LAorCSAgICAgICgxMDIsICcyMDExLTEwLTI4JywgMjAwKSwKKwkgICAgICAoMTAzLCAnMjAx MS0xMC0xNScsIDQ4MCk7CitDUkVBVEUgVklFVyBteV9wcm9wZXJ0eV9ub3JtYWwgQVMKKyAg ICAgICBTRUxFQ1QgKiBGUk9NIGN1c3RvbWVyIFdIRVJFIG5hbWUgPSBjdXJyZW50X3VzZXI7 CitDUkVBVEUgVklFVyBteV9wcm9wZXJ0eV9zZWN1cmUgV0lUSCAoc2VjdXJpdHlfYmFycmll cikgQVMKKyAgICAgICBTRUxFQ1QgKiBGUk9NIGN1c3RvbWVyIFdIRVJFIG5hbWUgPSBjdXJy ZW50X3VzZXI7CitDUkVBVEUgVklFVyBteV9jcmVkaXRfY2FyZF9ub3JtYWwgQVMKKyAgICAg ICBTRUxFQ1QgKiBGUk9NIGN1c3RvbWVyIGwgTkFUVVJBTCBKT0lOIGNyZWRpdF9jYXJkIHIK KyAgICAgICBXSEVSRSBsLm5hbWUgPSBjdXJyZW50X3VzZXI7CitDUkVBVEUgVklFVyBteV9j cmVkaXRfY2FyZF9zZWN1cmUgV0lUSCAoc2VjdXJpdHlfYmFycmllcikgQVMKKyAgICAgICBT RUxFQ1QgKiBGUk9NIGN1c3RvbWVyIGwgTkFUVVJBTCBKT0lOIGNyZWRpdF9jYXJkIHIKKyAg ICAgICBXSEVSRSBsLm5hbWUgPSBjdXJyZW50X3VzZXI7CitDUkVBVEUgVklFVyBteV9jcmVk aXRfY2FyZF91c2FnZV9ub3JtYWwgQVMKKyAgICAgICBTRUxFQ1QgKiBGUk9NIG15X2NyZWRp dF9jYXJkX3NlY3VyZSBsIE5BVFVSQUwgSk9JTiBjcmVkaXRfdXNhZ2UgcjsKK0NSRUFURSBW SUVXIG15X2NyZWRpdF9jYXJkX3VzYWdlX3NlY3VyZSBXSVRIIChzZWN1cml0eV9iYXJyaWVy KSBBUworICAgICAgIFNFTEVDVCAqIEZST00gbXlfY3JlZGl0X2NhcmRfc2VjdXJlIGwgTkFU VVJBTCBKT0lOIGNyZWRpdF91c2FnZSByOworR1JBTlQgU0VMRUNUIE9OIG15X3Byb3BlcnR5 X25vcm1hbCBUTyBwdWJsaWM7CitHUkFOVCBTRUxFQ1QgT04gbXlfcHJvcGVydHlfc2VjdXJl IFRPIHB1YmxpYzsKK0dSQU5UIFNFTEVDVCBPTiBteV9jcmVkaXRfY2FyZF9ub3JtYWwgVE8g cHVibGljOworR1JBTlQgU0VMRUNUIE9OIG15X2NyZWRpdF9jYXJkX3NlY3VyZSBUTyBwdWJs aWM7CitHUkFOVCBTRUxFQ1QgT04gbXlfY3JlZGl0X2NhcmRfdXNhZ2Vfbm9ybWFsIFRPIHB1 YmxpYzsKK0dSQU5UIFNFTEVDVCBPTiBteV9jcmVkaXRfY2FyZF91c2FnZV9zZWN1cmUgVE8g cHVibGljOworLS0KKy0tIFJ1biBsZWFreSB2aWV3IHNjZW5hcmlvcworLS0KK1NFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gYWxpY2U7CistLQorLS0gc2NlbmFyaW86IGlmIGEgcXVhbGlm aWVyIHdpdGggdGlueS1jb3N0IGlzIGdpdmVuLCBpdCBzaGFsbCBiZSBsYXVuY2hlZAorLS0g ICAgICAgICAgIHByaW9yIHRvIHRoZSBzZWN1cml0eSBwb2xpY3kgb2YgdGhlIHZpZXcuCist LQorU0VMRUNUICogRlJPTSBteV9wcm9wZXJ0eV9ub3JtYWwgV0hFUkUgZl9sZWFrKHBhc3N3 ZCk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gcGFzc3dkMTIzCitOT1RJQ0U6ICBmX2xlYWsgPT4g YmVhZnN0ZWFrCitOT1RJQ0U6ICBmX2xlYWsgPT4gaGFtYnVyZ2VyCisgY2lkIHwgbmFtZSAg fCAgICAgICB0ZWwgICAgICAgIHwgIHBhc3N3ZCAgIAorLS0tLS0rLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAxMDEgfCBhbGljZSB8ICs4MS0xMi0zNDU2LTc4 OTAgfCBwYXNzd2QxMjMKKygxIHJvdykKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIG15X3Byb3BlcnR5X25vcm1hbCBXSEVSRSBmX2xlYWsocGFzc3dkKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gY3VzdG9tZXIKKyAgIEZpbHRl cjogKGZfbGVhayhwYXNzd2QpIEFORCAobmFtZSA9ICgiY3VycmVudF91c2VyIigpKTo6dGV4 dCkpCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIG15X3Byb3BlcnR5X3NlY3VyZSBXSEVS RSBmX2xlYWsocGFzc3dkKTsKK05PVElDRTogIGZfbGVhayA9PiBwYXNzd2QxMjMKKyBjaWQg fCBuYW1lICB8ICAgICAgIHRlbCAgICAgICAgfCAgcGFzc3dkICAgCistLS0tLSstLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIDEwMSB8IGFsaWNlIHwgKzgxLTEy LTM0NTYtNzg5MCB8IHBhc3N3ZDEyMworKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYp IFNFTEVDVCAqIEZST00gbXlfcHJvcGVydHlfc2VjdXJlIFdIRVJFIGZfbGVhayhwYXNzd2Qp OworICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBTdWJxdWVyeSBTY2FuIG9uIG15X3Byb3BlcnR5X3NlY3VyZQorICAgRmlsdGVyOiBmX2xl YWsobXlfcHJvcGVydHlfc2VjdXJlLnBhc3N3ZCkKKyAgIC0+ICBTZXEgU2NhbiBvbiBjdXN0 b21lcgorICAgICAgICAgRmlsdGVyOiAobmFtZSA9ICgiY3VycmVudF91c2VyIigpKTo6dGV4 dCkKKyg0IHJvd3MpCisKKy0tCistLSBzY2VuYXJpbzogaWYgYSBxdWFsaWZpZXIgcmVmZXJl bmNlcyBvbmx5IG9uZS1zaWRlIG9mIGEgcGFydGljdWxhciBqb2luLQorLS0gICAgICAgICAg IHRyZWUsIGl0IHNoYWxsIGJlIGRpc3RyaWJ1dGVkIHRvIHRoZSBtb3N0IGRlZXAgc2NhbiBw bGFuIGFzCistLSAgICAgICAgICAgcG9zc2libGUgYXMgd2UgY2FuLgorLS0KK1NFTEVDVCAq IEZST00gbXlfY3JlZGl0X2NhcmRfbm9ybWFsIFdIRVJFIGZfbGVhayhjbnVtKTsKK05PVElD RTogIGZfbGVhayA9PiAxMTExLTIyMjItMzMzMy00NDQ0CitOT1RJQ0U6ICBmX2xlYWsgPT4g NTU1NS02NjY2LTc3NzctODg4OAorTk9USUNFOiAgZl9sZWFrID0+IDk4MDEtMjM0NS02Nzg5 LTAxMjMKKyBjaWQgfCBuYW1lICB8ICAgICAgIHRlbCAgICAgICAgfCAgcGFzc3dkICAgfCAg ICAgICAgY251bSAgICAgICAgIHwgY2xpbWl0IAorLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCisg MTAxIHwgYWxpY2UgfCArODEtMTItMzQ1Ni03ODkwIHwgcGFzc3dkMTIzIHwgMTExMS0yMjIy LTMzMzMtNDQ0NCB8ICAgNDAwMAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gbXlfY3JlZGl0X2NhcmRfbm9ybWFsIFdIRVJFIGZfbGVhayhjbnVtKTsK KyAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgSGFzaCBKb2luCisgICBIYXNoIENvbmQ6IChyLmNpZCA9IGwuY2lkKQor ICAgLT4gIFNlcSBTY2FuIG9uIGNyZWRpdF9jYXJkIHIKKyAgICAgICAgIEZpbHRlcjogZl9s ZWFrKGNudW0pCisgICAtPiAgSGFzaAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGN1c3Rv bWVyIGwKKyAgICAgICAgICAgICAgIEZpbHRlcjogKG5hbWUgPSAoImN1cnJlbnRfdXNlciIo KSk6OnRleHQpCisoNyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIG15X2NyZWRpdF9jYXJkX3Nl Y3VyZSBXSEVSRSBmX2xlYWsoY251bSk7CitOT1RJQ0U6ICBmX2xlYWsgPT4gMTExMS0yMjIy LTMzMzMtNDQ0NAorIGNpZCB8IG5hbWUgIHwgICAgICAgdGVsICAgICAgICB8ICBwYXNzd2Qg ICB8ICAgICAgICBjbnVtICAgICAgICAgfCBjbGltaXQgCistLS0tLSstLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0KKyAxMDEgfCBhbGljZSB8ICs4MS0xMi0zNDU2LTc4OTAgfCBwYXNzd2QxMjMgfCAxMTEx LTIyMjItMzMzMy00NDQ0IHwgICA0MDAwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUICogRlJPTSBteV9jcmVkaXRfY2FyZF9zZWN1cmUgV0hFUkUgZl9sZWFrKGNu dW0pOworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTdWJxdWVyeSBTY2FuIG9uIG15X2NyZWRp dF9jYXJkX3NlY3VyZQorICAgRmlsdGVyOiBmX2xlYWsobXlfY3JlZGl0X2NhcmRfc2VjdXJl LmNudW0pCisgICAtPiAgSGFzaCBKb2luCisgICAgICAgICBIYXNoIENvbmQ6IChyLmNpZCA9 IGwuY2lkKQorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGNyZWRpdF9jYXJkIHIKKyAgICAg ICAgIC0+ICBIYXNoCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gY3VzdG9tZXIg bAorICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAobmFtZSA9ICgiY3VycmVudF91c2Vy IigpKTo6dGV4dCkKKyg4IHJvd3MpCisKKy0tCistLSBzY2VuYXJpbzogYW4gZXh0ZXJuYWwg cXVhbGlmaWVyIGNhbiBiZSBwdXNoZWQtZG93biBieSBpbi1mcm9udC1vZiB0aGUKKy0tICAg ICAgICAgICB2aWV3cyB3aXRoICJzZWN1cml0eV9iYXJyaWVyIiBhdHRyaWJ1dGUKKy0tCitT RUxFQ1QgKiBGUk9NIG15X2NyZWRpdF9jYXJkX3VzYWdlX25vcm1hbAorICAgICAgIFdIRVJF IGZfbGVhayhjbnVtKSBBTkQgeW1kID49ICcyMDExLTEwLTAxJyBBTkQgeW1kIDwgJzIwMTEt MTEtMDEnOworTk9USUNFOiAgZl9sZWFrID0+IDExMTEtMjIyMi0zMzMzLTQ0NDQKKyBjaWQg fCBuYW1lICB8ICAgICAgIHRlbCAgICAgICAgfCAgcGFzc3dkICAgfCAgICAgICAgY251bSAg ICAgICAgIHwgY2xpbWl0IHwgICAgeW1kICAgICB8IHVzYWdlIAorLS0tLS0rLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisgMTAxIHwgYWxpY2UgfCArODEtMTItMzQ1 Ni03ODkwIHwgcGFzc3dkMTIzIHwgMTExMS0yMjIyLTMzMzMtNDQ0NCB8ICAgNDAwMCB8IDEw LTA1LTIwMTEgfCAgICA5MAorIDEwMSB8IGFsaWNlIHwgKzgxLTEyLTM0NTYtNzg5MCB8IHBh c3N3ZDEyMyB8IDExMTEtMjIyMi0zMzMzLTQ0NDQgfCAgIDQwMDAgfCAxMC0xOC0yMDExIHwg ICAxMTAKKyAxMDEgfCBhbGljZSB8ICs4MS0xMi0zNDU2LTc4OTAgfCBwYXNzd2QxMjMgfCAx MTExLTIyMjItMzMzMy00NDQ0IHwgICA0MDAwIHwgMTAtMjEtMjAxMSB8ICAgMjAwCisoMyBy b3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gbXlfY3JlZGl0X2Nh cmRfdXNhZ2Vfbm9ybWFsCisgICAgICAgV0hFUkUgZl9sZWFrKGNudW0pIEFORCB5bWQgPj0g JzIwMTEtMTAtMDEnIEFORCB5bWQgPCAnMjAxMS0xMS0wMSc7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29wCisgICBK b2luIEZpbHRlcjogKGwuY2lkID0gci5jaWQpCisgICAtPiAgU2VxIFNjYW4gb24gY3JlZGl0 X3VzYWdlIHIKKyAgICAgICAgIEZpbHRlcjogKCh5bWQgPj0gJzEwLTAxLTIwMTEnOjpkYXRl KSBBTkQgKHltZCA8ICcxMS0wMS0yMDExJzo6ZGF0ZSkpCisgICAtPiAgTWF0ZXJpYWxpemUK KyAgICAgICAgIC0+ICBTdWJxdWVyeSBTY2FuIG9uIGwKKyAgICAgICAgICAgICAgIEZpbHRl cjogZl9sZWFrKGwuY251bSkKKyAgICAgICAgICAgICAgIC0+ICBIYXNoIEpvaW4KKyAgICAg ICAgICAgICAgICAgICAgIEhhc2ggQ29uZDogKHIuY2lkID0gbC5jaWQpCisgICAgICAgICAg ICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gY3JlZGl0X2NhcmQgcgorICAgICAgICAgICAg ICAgICAgICAgLT4gIEhhc2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBjdXN0b21lciBsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG aWx0ZXI6IChuYW1lID0gKCJjdXJyZW50X3VzZXIiKCkpOjp0ZXh0KQorKDEzIHJvd3MpCisK K1NFTEVDVCAqIEZST00gbXlfY3JlZGl0X2NhcmRfdXNhZ2Vfc2VjdXJlCisgICAgICAgV0hF UkUgZl9sZWFrKGNudW0pIEFORCB5bWQgPj0gJzIwMTEtMTAtMDEnIEFORCB5bWQgPCAnMjAx MS0xMS0wMSc7CitOT1RJQ0U6ICBmX2xlYWsgPT4gMTExMS0yMjIyLTMzMzMtNDQ0NAorTk9U SUNFOiAgZl9sZWFrID0+IDExMTEtMjIyMi0zMzMzLTQ0NDQKK05PVElDRTogIGZfbGVhayA9 PiAxMTExLTIyMjItMzMzMy00NDQ0CitOT1RJQ0U6ICBmX2xlYWsgPT4gMTExMS0yMjIyLTMz MzMtNDQ0NAorTk9USUNFOiAgZl9sZWFrID0+IDExMTEtMjIyMi0zMzMzLTQ0NDQKKyBjaWQg fCBuYW1lICB8ICAgICAgIHRlbCAgICAgICAgfCAgcGFzc3dkICAgfCAgICAgICAgY251bSAg ICAgICAgIHwgY2xpbWl0IHwgICAgeW1kICAgICB8IHVzYWdlIAorLS0tLS0rLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisgMTAxIHwgYWxpY2UgfCArODEtMTItMzQ1 Ni03ODkwIHwgcGFzc3dkMTIzIHwgMTExMS0yMjIyLTMzMzMtNDQ0NCB8ICAgNDAwMCB8IDEw LTA1LTIwMTEgfCAgICA5MAorIDEwMSB8IGFsaWNlIHwgKzgxLTEyLTM0NTYtNzg5MCB8IHBh c3N3ZDEyMyB8IDExMTEtMjIyMi0zMzMzLTQ0NDQgfCAgIDQwMDAgfCAxMC0xOC0yMDExIHwg ICAxMTAKKyAxMDEgfCBhbGljZSB8ICs4MS0xMi0zNDU2LTc4OTAgfCBwYXNzd2QxMjMgfCAx MTExLTIyMjItMzMzMy00NDQ0IHwgICA0MDAwIHwgMTAtMjEtMjAxMSB8ICAgMjAwCisoMyBy b3dzKQorCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gbXlfY3JlZGl0X2Nh cmRfdXNhZ2Vfc2VjdXJlCisgICAgICAgV0hFUkUgZl9sZWFrKGNudW0pIEFORCB5bWQgPj0g JzIwMTEtMTAtMDEnIEFORCB5bWQgPCAnMjAxMS0xMS0wMSc7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBTdWJxdWVyeSBTY2FuIG9uIG15X2NyZWRpdF9jYXJkX3VzYWdlX3NlY3Vy ZQorICAgRmlsdGVyOiAoZl9sZWFrKG15X2NyZWRpdF9jYXJkX3VzYWdlX3NlY3VyZS5jbnVt KSBBTkQgKG15X2NyZWRpdF9jYXJkX3VzYWdlX3NlY3VyZS55bWQgPj0gJzEwLTAxLTIwMTEn OjpkYXRlKSBBTkQgKG15X2NyZWRpdF9jYXJkX3VzYWdlX3NlY3VyZS55bWQgPCAnMTEtMDEt MjAxMSc6OmRhdGUpKQorICAgLT4gIEhhc2ggSm9pbgorICAgICAgICAgSGFzaCBDb25kOiAo ci5jaWQgPSBsLmNpZCkKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBjcmVkaXRfdXNhZ2Ug cgorICAgICAgICAgLT4gIEhhc2gKKyAgICAgICAgICAgICAgIC0+ICBIYXNoIEpvaW4KKyAg ICAgICAgICAgICAgICAgICAgIEhhc2ggQ29uZDogKHIuY2lkID0gbC5jaWQpCisgICAgICAg ICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gY3JlZGl0X2NhcmQgcgorICAgICAgICAg ICAgICAgICAgICAgLT4gIEhhc2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBjdXN0b21lciBsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGaWx0ZXI6IChuYW1lID0gKCJjdXJyZW50X3VzZXIiKCkpOjp0ZXh0KQorKDEyIHJvd3Mp CisKKy0tCistLSBUZXN0IGZvciB0aGUgY2FzZSB3aGVuIHNlY3VyaXR5X2JhcnJpZXIgZ2V0 cyBjaGFuZ2VkIGJldHdlZW4gcmV3cml0ZXIKKy0tIGFuZCBwbGFubmVyIHN0YWdlLgorLS0K K1BSRVBBUkUgcDEgQVMgU0VMRUNUICogRlJPTSBteV9wcm9wZXJ0eV9ub3JtYWwgV0hFUkUg Zl9sZWFrKHBhc3N3ZCk7CitQUkVQQVJFIHAyIEFTIFNFTEVDVCAqIEZST00gbXlfcHJvcGVy dHlfc2VjdXJlIFdIRVJFIGZfbGVhayhwYXNzd2QpOworRVhFQ1VURSBwMTsKK05PVElDRTog IGZfbGVhayA9PiBwYXNzd2QxMjMKK05PVElDRTogIGZfbGVhayA9PiBiZWFmc3RlYWsKK05P VElDRTogIGZfbGVhayA9PiBoYW1idXJnZXIKKyBjaWQgfCBuYW1lICB8ICAgICAgIHRlbCAg ICAgICAgfCAgcGFzc3dkICAgCistLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIDEwMSB8IGFsaWNlIHwgKzgxLTEyLTM0NTYtNzg5MCB8IHBhc3N3ZDEy MworKDEgcm93KQorCitFWEVDVVRFIHAyOworTk9USUNFOiAgZl9sZWFrID0+IHBhc3N3ZDEy MworIGNpZCB8IG5hbWUgIHwgICAgICAgdGVsICAgICAgICB8ICBwYXNzd2QgICAKKy0tLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgMTAxIHwgYWxpY2Ug fCArODEtMTItMzQ1Ni03ODkwIHwgcGFzc3dkMTIzCisoMSByb3cpCisKK1JFU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIFZJRVcgbXlfcHJvcGVydHlfbm9ybWFsIFNFVCAo c2VjdXJpdHlfYmFycmllcj10cnVlKTsKK0FMVEVSIFZJRVcgbXlfcHJvcGVydHlfc2VjdXJl IFNFVCAoc2VjdXJpdHlfYmFycmllcj1mYWxzZSk7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIGFsaWNlOworRVhFQ1VURSBwMTsJCS0tIFRvIGJlIHBlcmZvcm0gYXMgYSB2aWV3IHdp dGggc2VjdXJpdHktYmFycmllcgorTk9USUNFOiAgZl9sZWFrID0+IHBhc3N3ZDEyMworIGNp ZCB8IG5hbWUgIHwgICAgICAgdGVsICAgICAgICB8ICBwYXNzd2QgICAKKy0tLS0tKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgMTAxIHwgYWxpY2UgfCArODEt MTItMzQ1Ni03ODkwIHwgcGFzc3dkMTIzCisoMSByb3cpCisKK0VYRUNVVEUgcDI7CQktLSBU byBiZSBwZXJmb3JtIGFzIGEgdmlldyB3aXRob3V0IHNlY3VyaXR5LWJhcnJpZXIKK05PVElD RTogIGZfbGVhayA9PiBwYXNzd2QxMjMKK05PVElDRTogIGZfbGVhayA9PiBiZWFmc3RlYWsK K05PVElDRTogIGZfbGVhayA9PiBoYW1idXJnZXIKKyBjaWQgfCBuYW1lICB8ICAgICAgIHRl bCAgICAgICAgfCAgcGFzc3dkICAgCistLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIDEwMSB8IGFsaWNlIHwgKzgxLTEyLTM0NTYtNzg5MCB8IHBhc3N3 ZDEyMworKDEgcm93KQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3NlbGVjdF92aWV3c18xLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0 X3ZpZXdzXzEub3V0CmluZGV4IDlhOTcyY2YuLmM2Zjc1YWYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0X3ZpZXdzXzEub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0X3ZpZXdzXzEub3V0CkBAIC0xMjQ3LDMgKzEyNDcs MjU4IEBAIFNFTEVDVCAqIEZST00gdG95ZW1wIFdIRVJFIG5hbWUgPSAnc2hhcm9uJzsKICBz aGFyb24gfCAgMjUgfCAoMTUsMTIpICB8ICAgICAxMjAwMAogKDEgcm93KQogCistLQorLS0g VGVzdCBmb3IgTGVha3kgdmlldyBzY2VuYXJpbworLS0KK0NSRUFURSBVU0VSIGFsaWNlOwor Q1JFQVRFIEZVTkNUSU9OIGZfbGVhayAodGV4dCkKKyAgICAgICBSRVRVUk5TIGJvb2wgTEFO R1VBR0UgJ3BscGdzcWwnIENPU1QgMC4wMDAwMDAxCisgICAgICAgQVMgJ0JFR0lOIFJBSVNF IE5PVElDRSAnJ2ZfbGVhayA9PiAlJycsICQxOyBSRVRVUk4gdHJ1ZTsgRU5EJzsKK0NSRUFU RSBUQUJMRSBjdXN0b21lciAoCisgICAgICAgY2lkICAgICAgaW50IHByaW1hcnkga2V5LAor ICAgICAgIG5hbWUgICAgIHRleHQgbm90IG51bGwsCisgICAgICAgdGVsICAgICAgdGV4dCwK KyAgICAgICBwYXNzd2QJdGV4dAorKTsKK05PVElDRTogIENSRUFURSBUQUJMRSAvIFBSSU1B UlkgS0VZIHdpbGwgY3JlYXRlIGltcGxpY2l0IGluZGV4ICJjdXN0b21lcl9wa2V5IiBmb3Ig dGFibGUgImN1c3RvbWVyIgorQ1JFQVRFIFRBQkxFIGNyZWRpdF9jYXJkICgKKyAgICAgICBj aWQgICAgICBpbnQgcmVmZXJlbmNlcyBjdXN0b21lcihjaWQpLAorICAgICAgIGNudW0gICAg IHRleHQsCisgICAgICAgY2xpbWl0ICAgaW50CispOworQ1JFQVRFIFRBQkxFIGNyZWRpdF91 c2FnZSAoCisgICAgICAgY2lkICAgICAgaW50IHJlZmVyZW5jZXMgY3VzdG9tZXIoY2lkKSwK KyAgICAgICB5bWQgICAgICBkYXRlLAorICAgICAgIHVzYWdlICAgIGludAorKTsKK0lOU0VS VCBJTlRPIGN1c3RvbWVyCisgICAgICAgVkFMVUVTICgxMDEsICdhbGljZScsICcrODEtMTIt MzQ1Ni03ODkwJywgJ3Bhc3N3ZDEyMycpLAorICAgICAgICAgICAgICAoMTAyLCAnYm9iJywg ICAnKzAxLTIzNC01NjctODkwMScsICdiZWFmc3RlYWsnKSwKKyAgICAgICAgICAgICAgKDEw MywgJ2V2ZScsICAgJys0OS04NzY1LTQzMjEwJywgICAnaGFtYnVyZ2VyJyk7CitJTlNFUlQg SU5UTyBjcmVkaXRfY2FyZAorICAgICAgIFZBTFVFUyAoMTAxLCAnMTExMS0yMjIyLTMzMzMt NDQ0NCcsIDQwMDApLAorICAgICAgICAgICAgICAoMTAyLCAnNTU1NS02NjY2LTc3NzctODg4 OCcsIDMwMDApLAorICAgICAgICAgICAgICAoMTAzLCAnOTgwMS0yMzQ1LTY3ODktMDEyMycs IDIwMDApOworSU5TRVJUIElOVE8gY3JlZGl0X3VzYWdlCisgICAgICAgVkFMVUVTICgxMDEs ICcyMDExLTA5LTE1JywgMTIwKSwKKyAgICAgICAJICAgICAgKDEwMSwgJzIwMTEtMTAtMDUn LCAgOTApLAorCSAgICAgICgxMDEsICcyMDExLTEwLTE4JywgMTEwKSwKKwkgICAgICAoMTAx LCAnMjAxMS0xMC0yMScsIDIwMCksCisJICAgICAgKDEwMSwgJzIwMTEtMTEtMTAnLCAgODAp LAorCSAgICAgICgxMDIsICcyMDExLTA5LTIyJywgMzAwKSwKKwkgICAgICAoMTAyLCAnMjAx MS0xMC0xMicsIDEyMCksCisJICAgICAgKDEwMiwgJzIwMTEtMTAtMjgnLCAyMDApLAorCSAg ICAgICgxMDMsICcyMDExLTEwLTE1JywgNDgwKTsKK0NSRUFURSBWSUVXIG15X3Byb3BlcnR5 X25vcm1hbCBBUworICAgICAgIFNFTEVDVCAqIEZST00gY3VzdG9tZXIgV0hFUkUgbmFtZSA9 IGN1cnJlbnRfdXNlcjsKK0NSRUFURSBWSUVXIG15X3Byb3BlcnR5X3NlY3VyZSBXSVRIIChz ZWN1cml0eV9iYXJyaWVyKSBBUworICAgICAgIFNFTEVDVCAqIEZST00gY3VzdG9tZXIgV0hF UkUgbmFtZSA9IGN1cnJlbnRfdXNlcjsKK0NSRUFURSBWSUVXIG15X2NyZWRpdF9jYXJkX25v cm1hbCBBUworICAgICAgIFNFTEVDVCAqIEZST00gY3VzdG9tZXIgbCBOQVRVUkFMIEpPSU4g Y3JlZGl0X2NhcmQgcgorICAgICAgIFdIRVJFIGwubmFtZSA9IGN1cnJlbnRfdXNlcjsKK0NS RUFURSBWSUVXIG15X2NyZWRpdF9jYXJkX3NlY3VyZSBXSVRIIChzZWN1cml0eV9iYXJyaWVy KSBBUworICAgICAgIFNFTEVDVCAqIEZST00gY3VzdG9tZXIgbCBOQVRVUkFMIEpPSU4gY3Jl ZGl0X2NhcmQgcgorICAgICAgIFdIRVJFIGwubmFtZSA9IGN1cnJlbnRfdXNlcjsKK0NSRUFU RSBWSUVXIG15X2NyZWRpdF9jYXJkX3VzYWdlX25vcm1hbCBBUworICAgICAgIFNFTEVDVCAq IEZST00gbXlfY3JlZGl0X2NhcmRfc2VjdXJlIGwgTkFUVVJBTCBKT0lOIGNyZWRpdF91c2Fn ZSByOworQ1JFQVRFIFZJRVcgbXlfY3JlZGl0X2NhcmRfdXNhZ2Vfc2VjdXJlIFdJVEggKHNl Y3VyaXR5X2JhcnJpZXIpIEFTCisgICAgICAgU0VMRUNUICogRlJPTSBteV9jcmVkaXRfY2Fy ZF9zZWN1cmUgbCBOQVRVUkFMIEpPSU4gY3JlZGl0X3VzYWdlIHI7CitHUkFOVCBTRUxFQ1Qg T04gbXlfcHJvcGVydHlfbm9ybWFsIFRPIHB1YmxpYzsKK0dSQU5UIFNFTEVDVCBPTiBteV9w cm9wZXJ0eV9zZWN1cmUgVE8gcHVibGljOworR1JBTlQgU0VMRUNUIE9OIG15X2NyZWRpdF9j YXJkX25vcm1hbCBUTyBwdWJsaWM7CitHUkFOVCBTRUxFQ1QgT04gbXlfY3JlZGl0X2NhcmRf c2VjdXJlIFRPIHB1YmxpYzsKK0dSQU5UIFNFTEVDVCBPTiBteV9jcmVkaXRfY2FyZF91c2Fn ZV9ub3JtYWwgVE8gcHVibGljOworR1JBTlQgU0VMRUNUIE9OIG15X2NyZWRpdF9jYXJkX3Vz YWdlX3NlY3VyZSBUTyBwdWJsaWM7CistLQorLS0gUnVuIGxlYWt5IHZpZXcgc2NlbmFyaW9z CistLQorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBhbGljZTsKKy0tCistLSBzY2VuYXJp bzogaWYgYSBxdWFsaWZpZXIgd2l0aCB0aW55LWNvc3QgaXMgZ2l2ZW4sIGl0IHNoYWxsIGJl IGxhdW5jaGVkCistLSAgICAgICAgICAgcHJpb3IgdG8gdGhlIHNlY3VyaXR5IHBvbGljeSBv ZiB0aGUgdmlldy4KKy0tCitTRUxFQ1QgKiBGUk9NIG15X3Byb3BlcnR5X25vcm1hbCBXSEVS RSBmX2xlYWsocGFzc3dkKTsKK05PVElDRTogIGZfbGVhayA9PiBwYXNzd2QxMjMKK05PVElD RTogIGZfbGVhayA9PiBiZWFmc3RlYWsKK05PVElDRTogIGZfbGVhayA9PiBoYW1idXJnZXIK KyBjaWQgfCBuYW1lICB8ICAgICAgIHRlbCAgICAgICAgfCAgcGFzc3dkICAgCistLS0tLSst LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIDEwMSB8IGFsaWNlIHwg KzgxLTEyLTM0NTYtNzg5MCB8IHBhc3N3ZDEyMworKDEgcm93KQorCitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gbXlfcHJvcGVydHlfbm9ybWFsIFdIRVJFIGZfbGVhayhw YXNzd2QpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBjdXN0 b21lcgorICAgRmlsdGVyOiAoZl9sZWFrKHBhc3N3ZCkgQU5EIChuYW1lID0gKCJjdXJyZW50 X3VzZXIiKCkpOjp0ZXh0KSkKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gbXlfcHJvcGVy dHlfc2VjdXJlIFdIRVJFIGZfbGVhayhwYXNzd2QpOworTk9USUNFOiAgZl9sZWFrID0+IHBh c3N3ZDEyMworIGNpZCB8IG5hbWUgIHwgICAgICAgdGVsICAgICAgICB8ICBwYXNzd2QgICAK Ky0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgMTAxIHwg YWxpY2UgfCArODEtMTItMzQ1Ni03ODkwIHwgcGFzc3dkMTIzCisoMSByb3cpCisKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBteV9wcm9wZXJ0eV9zZWN1cmUgV0hFUkUg Zl9sZWFrKHBhc3N3ZCk7CisgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFN1YnF1ZXJ5IFNjYW4gb24gbXlfcHJvcGVydHlfc2VjdXJlCisg ICBGaWx0ZXI6IGZfbGVhayhteV9wcm9wZXJ0eV9zZWN1cmUucGFzc3dkKQorICAgLT4gIFNl cSBTY2FuIG9uIGN1c3RvbWVyCisgICAgICAgICBGaWx0ZXI6IChuYW1lID0gKCJjdXJyZW50 X3VzZXIiKCkpOjp0ZXh0KQorKDQgcm93cykKKworLS0KKy0tIHNjZW5hcmlvOiBpZiBhIHF1 YWxpZmllciByZWZlcmVuY2VzIG9ubHkgb25lLXNpZGUgb2YgYSBwYXJ0aWN1bGFyIGpvaW4t CistLSAgICAgICAgICAgdHJlZSwgaXQgc2hhbGwgYmUgZGlzdHJpYnV0ZWQgdG8gdGhlIG1v c3QgZGVlcCBzY2FuIHBsYW4gYXMKKy0tICAgICAgICAgICBwb3NzaWJsZSBhcyB3ZSBjYW4u CistLQorU0VMRUNUICogRlJPTSBteV9jcmVkaXRfY2FyZF9ub3JtYWwgV0hFUkUgZl9sZWFr KGNudW0pOworTk9USUNFOiAgZl9sZWFrID0+IDExMTEtMjIyMi0zMzMzLTQ0NDQKK05PVElD RTogIGZfbGVhayA9PiA1NTU1LTY2NjYtNzc3Ny04ODg4CitOT1RJQ0U6ICBmX2xlYWsgPT4g OTgwMS0yMzQ1LTY3ODktMDEyMworIGNpZCB8IG5hbWUgIHwgICAgICAgdGVsICAgICAgICB8 ICBwYXNzd2QgICB8ICAgICAgICBjbnVtICAgICAgICAgfCBjbGltaXQgCistLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0KKyAxMDEgfCBhbGljZSB8ICs4MS0xMi0zNDU2LTc4OTAgfCBwYXNzd2Qx MjMgfCAxMTExLTIyMjItMzMzMy00NDQ0IHwgICA0MDAwCisoMSByb3cpCisKK0VYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBteV9jcmVkaXRfY2FyZF9ub3JtYWwgV0hFUkUg Zl9sZWFrKGNudW0pOworICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBIYXNoIEpvaW4KKyAgIEhhc2ggQ29uZDogKHIu Y2lkID0gbC5jaWQpCisgICAtPiAgU2VxIFNjYW4gb24gY3JlZGl0X2NhcmQgcgorICAgICAg ICAgRmlsdGVyOiBmX2xlYWsoY251bSkKKyAgIC0+ICBIYXNoCisgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gY3VzdG9tZXIgbAorICAgICAgICAgICAgICAgRmlsdGVyOiAobmFtZSA9ICgi Y3VycmVudF91c2VyIigpKTo6dGV4dCkKKyg3IHJvd3MpCisKK1NFTEVDVCAqIEZST00gbXlf Y3JlZGl0X2NhcmRfc2VjdXJlIFdIRVJFIGZfbGVhayhjbnVtKTsKK05PVElDRTogIGZfbGVh ayA9PiAxMTExLTIyMjItMzMzMy00NDQ0CisgY2lkIHwgbmFtZSAgfCAgICAgICB0ZWwgICAg ICAgIHwgIHBhc3N3ZCAgIHwgICAgICAgIGNudW0gICAgICAgICB8IGNsaW1pdCAKKy0tLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLQorIDEwMSB8IGFsaWNlIHwgKzgxLTEyLTM0NTYtNzg5MCB8IHBh c3N3ZDEyMyB8IDExMTEtMjIyMi0zMzMzLTQ0NDQgfCAgIDQwMDAKKygxIHJvdykKKworRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIG15X2NyZWRpdF9jYXJkX3NlY3VyZSBX SEVSRSBmX2xlYWsoY251bSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1YnF1ZXJ5IFNj YW4gb24gbXlfY3JlZGl0X2NhcmRfc2VjdXJlCisgICBGaWx0ZXI6IGZfbGVhayhteV9jcmVk aXRfY2FyZF9zZWN1cmUuY251bSkKKyAgIC0+ICBIYXNoIEpvaW4KKyAgICAgICAgIEhhc2gg Q29uZDogKHIuY2lkID0gbC5jaWQpCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gY3JlZGl0 X2NhcmQgcgorICAgICAgICAgLT4gIEhhc2gKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBjdXN0b21lciBsCisgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6IChuYW1lID0g KCJjdXJyZW50X3VzZXIiKCkpOjp0ZXh0KQorKDggcm93cykKKworLS0KKy0tIHNjZW5hcmlv OiBhbiBleHRlcm5hbCBxdWFsaWZpZXIgY2FuIGJlIHB1c2hlZC1kb3duIGJ5IGluLWZyb250 LW9mIHRoZQorLS0gICAgICAgICAgIHZpZXdzIHdpdGggInNlY3VyaXR5X2JhcnJpZXIiIGF0 dHJpYnV0ZQorLS0KK1NFTEVDVCAqIEZST00gbXlfY3JlZGl0X2NhcmRfdXNhZ2Vfbm9ybWFs CisgICAgICAgV0hFUkUgZl9sZWFrKGNudW0pIEFORCB5bWQgPj0gJzIwMTEtMTAtMDEnIEFO RCB5bWQgPCAnMjAxMS0xMS0wMSc7CitOT1RJQ0U6ICBmX2xlYWsgPT4gMTExMS0yMjIyLTMz MzMtNDQ0NAorIGNpZCB8IG5hbWUgIHwgICAgICAgdGVsICAgICAgICB8ICBwYXNzd2QgICB8 ICAgICAgICBjbnVtICAgICAgICAgfCBjbGltaXQgfCAgICB5bWQgICAgIHwgdXNhZ2UgCist LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyAxMDEgfCBhbGlj ZSB8ICs4MS0xMi0zNDU2LTc4OTAgfCBwYXNzd2QxMjMgfCAxMTExLTIyMjItMzMzMy00NDQ0 IHwgICA0MDAwIHwgMTAtMDUtMjAxMSB8ICAgIDkwCisgMTAxIHwgYWxpY2UgfCArODEtMTIt MzQ1Ni03ODkwIHwgcGFzc3dkMTIzIHwgMTExMS0yMjIyLTMzMzMtNDQ0NCB8ICAgNDAwMCB8 IDEwLTE4LTIwMTEgfCAgIDExMAorIDEwMSB8IGFsaWNlIHwgKzgxLTEyLTM0NTYtNzg5MCB8 IHBhc3N3ZDEyMyB8IDExMTEtMjIyMi0zMzMzLTQ0NDQgfCAgIDQwMDAgfCAxMC0yMS0yMDEx IHwgICAyMDAKKygzIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBteV9jcmVkaXRfY2FyZF91c2FnZV9ub3JtYWwKKyAgICAgICBXSEVSRSBmX2xlYWsoY251 bSkgQU5EIHltZCA+PSAnMjAxMS0xMC0wMScgQU5EIHltZCA8ICcyMDExLTExLTAxJzsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTmVz dGVkIExvb3AKKyAgIEpvaW4gRmlsdGVyOiAobC5jaWQgPSByLmNpZCkKKyAgIC0+ICBTZXEg U2NhbiBvbiBjcmVkaXRfdXNhZ2UgcgorICAgICAgICAgRmlsdGVyOiAoKHltZCA+PSAnMTAt MDEtMjAxMSc6OmRhdGUpIEFORCAoeW1kIDwgJzExLTAxLTIwMTEnOjpkYXRlKSkKKyAgIC0+ ICBNYXRlcmlhbGl6ZQorICAgICAgICAgLT4gIFN1YnF1ZXJ5IFNjYW4gb24gbAorICAgICAg ICAgICAgICAgRmlsdGVyOiBmX2xlYWsobC5jbnVtKQorICAgICAgICAgICAgICAgLT4gIEhh c2ggSm9pbgorICAgICAgICAgICAgICAgICAgICAgSGFzaCBDb25kOiAoci5jaWQgPSBsLmNp ZCkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBjcmVkaXRfY2FyZCBy CisgICAgICAgICAgICAgICAgICAgICAtPiAgSGFzaAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIGN1c3RvbWVyIGwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEZpbHRlcjogKG5hbWUgPSAoImN1cnJlbnRfdXNlciIoKSk6OnRleHQp CisoMTMgcm93cykKKworU0VMRUNUICogRlJPTSBteV9jcmVkaXRfY2FyZF91c2FnZV9zZWN1 cmUKKyAgICAgICBXSEVSRSBmX2xlYWsoY251bSkgQU5EIHltZCA+PSAnMjAxMS0xMC0wMScg QU5EIHltZCA8ICcyMDExLTExLTAxJzsKK05PVElDRTogIGZfbGVhayA9PiAxMTExLTIyMjIt MzMzMy00NDQ0CitOT1RJQ0U6ICBmX2xlYWsgPT4gMTExMS0yMjIyLTMzMzMtNDQ0NAorTk9U SUNFOiAgZl9sZWFrID0+IDExMTEtMjIyMi0zMzMzLTQ0NDQKK05PVElDRTogIGZfbGVhayA9 PiAxMTExLTIyMjItMzMzMy00NDQ0CitOT1RJQ0U6ICBmX2xlYWsgPT4gMTExMS0yMjIyLTMz MzMtNDQ0NAorIGNpZCB8IG5hbWUgIHwgICAgICAgdGVsICAgICAgICB8ICBwYXNzd2QgICB8 ICAgICAgICBjbnVtICAgICAgICAgfCBjbGltaXQgfCAgICB5bWQgICAgIHwgdXNhZ2UgCist LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyAxMDEgfCBhbGlj ZSB8ICs4MS0xMi0zNDU2LTc4OTAgfCBwYXNzd2QxMjMgfCAxMTExLTIyMjItMzMzMy00NDQ0 IHwgICA0MDAwIHwgMTAtMDUtMjAxMSB8ICAgIDkwCisgMTAxIHwgYWxpY2UgfCArODEtMTIt MzQ1Ni03ODkwIHwgcGFzc3dkMTIzIHwgMTExMS0yMjIyLTMzMzMtNDQ0NCB8ICAgNDAwMCB8 IDEwLTE4LTIwMTEgfCAgIDExMAorIDEwMSB8IGFsaWNlIHwgKzgxLTEyLTM0NTYtNzg5MCB8 IHBhc3N3ZDEyMyB8IDExMTEtMjIyMi0zMzMzLTQ0NDQgfCAgIDQwMDAgfCAxMC0yMS0yMDEx IHwgICAyMDAKKygzIHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBteV9jcmVkaXRfY2FyZF91c2FnZV9zZWN1cmUKKyAgICAgICBXSEVSRSBmX2xlYWsoY251 bSkgQU5EIHltZCA+PSAnMjAxMS0xMC0wMScgQU5EIHltZCA8ICcyMDExLTExLTAxJzsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFN1YnF1ZXJ5IFNjYW4gb24gbXlfY3JlZGl0X2Nh cmRfdXNhZ2Vfc2VjdXJlCisgICBGaWx0ZXI6IChmX2xlYWsobXlfY3JlZGl0X2NhcmRfdXNh Z2Vfc2VjdXJlLmNudW0pIEFORCAobXlfY3JlZGl0X2NhcmRfdXNhZ2Vfc2VjdXJlLnltZCA+ PSAnMTAtMDEtMjAxMSc6OmRhdGUpIEFORCAobXlfY3JlZGl0X2NhcmRfdXNhZ2Vfc2VjdXJl LnltZCA8ICcxMS0wMS0yMDExJzo6ZGF0ZSkpCisgICAtPiAgSGFzaCBKb2luCisgICAgICAg ICBIYXNoIENvbmQ6IChyLmNpZCA9IGwuY2lkKQorICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IGNyZWRpdF91c2FnZSByCisgICAgICAgICAtPiAgSGFzaAorICAgICAgICAgICAgICAgLT4g IEhhc2ggSm9pbgorICAgICAgICAgICAgICAgICAgICAgSGFzaCBDb25kOiAoci5jaWQgPSBs LmNpZCkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBjcmVkaXRfY2Fy ZCByCisgICAgICAgICAgICAgICAgICAgICAtPiAgSGFzaAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGN1c3RvbWVyIGwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZpbHRlcjogKG5hbWUgPSAoImN1cnJlbnRfdXNlciIoKSk6OnRl eHQpCisoMTIgcm93cykKKworLS0KKy0tIFRlc3QgZm9yIHRoZSBjYXNlIHdoZW4gc2VjdXJp dHlfYmFycmllciBnZXRzIGNoYW5nZWQgYmV0d2VlbiByZXdyaXRlcgorLS0gYW5kIHBsYW5u ZXIgc3RhZ2UuCistLQorUFJFUEFSRSBwMSBBUyBTRUxFQ1QgKiBGUk9NIG15X3Byb3BlcnR5 X25vcm1hbCBXSEVSRSBmX2xlYWsocGFzc3dkKTsKK1BSRVBBUkUgcDIgQVMgU0VMRUNUICog RlJPTSBteV9wcm9wZXJ0eV9zZWN1cmUgV0hFUkUgZl9sZWFrKHBhc3N3ZCk7CitFWEVDVVRF IHAxOworTk9USUNFOiAgZl9sZWFrID0+IHBhc3N3ZDEyMworTk9USUNFOiAgZl9sZWFrID0+ IGJlYWZzdGVhaworTk9USUNFOiAgZl9sZWFrID0+IGhhbWJ1cmdlcgorIGNpZCB8IG5hbWUg IHwgICAgICAgdGVsICAgICAgICB8ICBwYXNzd2QgICAKKy0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgMTAxIHwgYWxpY2UgfCArODEtMTItMzQ1Ni03 ODkwIHwgcGFzc3dkMTIzCisoMSByb3cpCisKK0VYRUNVVEUgcDI7CitOT1RJQ0U6ICBmX2xl YWsgPT4gcGFzc3dkMTIzCisgY2lkIHwgbmFtZSAgfCAgICAgICB0ZWwgICAgICAgIHwgIHBh c3N3ZCAgIAorLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyAxMDEgfCBhbGljZSB8ICs4MS0xMi0zNDU2LTc4OTAgfCBwYXNzd2QxMjMKKygxIHJvdykK KworUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOworQUxURVIgVklFVyBteV9wcm9wZXJ0 eV9ub3JtYWwgU0VUIChzZWN1cml0eV9iYXJyaWVyPXRydWUpOworQUxURVIgVklFVyBteV9w cm9wZXJ0eV9zZWN1cmUgU0VUIChzZWN1cml0eV9iYXJyaWVyPWZhbHNlKTsKK1NFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gYWxpY2U7CitFWEVDVVRFIHAxOwkJLS0gVG8gYmUgcGVyZm9y bSBhcyBhIHZpZXcgd2l0aCBzZWN1cml0eS1iYXJyaWVyCitOT1RJQ0U6ICBmX2xlYWsgPT4g cGFzc3dkMTIzCisgY2lkIHwgbmFtZSAgfCAgICAgICB0ZWwgICAgICAgIHwgIHBhc3N3ZCAg IAorLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAxMDEg fCBhbGljZSB8ICs4MS0xMi0zNDU2LTc4OTAgfCBwYXNzd2QxMjMKKygxIHJvdykKKworRVhF Q1VURSBwMjsJCS0tIFRvIGJlIHBlcmZvcm0gYXMgYSB2aWV3IHdpdGhvdXQgc2VjdXJpdHkt YmFycmllcgorTk9USUNFOiAgZl9sZWFrID0+IHBhc3N3ZDEyMworTk9USUNFOiAgZl9sZWFr ID0+IGJlYWZzdGVhaworTk9USUNFOiAgZl9sZWFrID0+IGhhbWJ1cmdlcgorIGNpZCB8IG5h bWUgIHwgICAgICAgdGVsICAgICAgICB8ICBwYXNzd2QgICAKKy0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgMTAxIHwgYWxpY2UgfCArODEtMTItMzQ1 Ni03ODkwIHwgcGFzc3dkMTIzCisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3NlbGVjdF92aWV3cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZWxl Y3Rfdmlld3Muc3FsCmluZGV4IDE0ZjFiZTguLjRiMmRhYzkgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3NlbGVjdF92aWV3cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvc2VsZWN0X3ZpZXdzLnNxbApAQCAtOCwzICs4LDEyOSBAQCBTRUxFQ1QgKiBGUk9N IHN0cmVldDsKIFNFTEVDVCBuYW1lLCAjdGhlcGF0aCBGUk9NIGlleGl0IE9SREVSIEJZIDEs IDI7CiAKIFNFTEVDVCAqIEZST00gdG95ZW1wIFdIRVJFIG5hbWUgPSAnc2hhcm9uJzsKKwor LS0KKy0tIFRlc3QgZm9yIExlYWt5IHZpZXcgc2NlbmFyaW8KKy0tCitDUkVBVEUgVVNFUiBh bGljZTsKKworQ1JFQVRFIEZVTkNUSU9OIGZfbGVhayAodGV4dCkKKyAgICAgICBSRVRVUk5T IGJvb2wgTEFOR1VBR0UgJ3BscGdzcWwnIENPU1QgMC4wMDAwMDAxCisgICAgICAgQVMgJ0JF R0lOIFJBSVNFIE5PVElDRSAnJ2ZfbGVhayA9PiAlJycsICQxOyBSRVRVUk4gdHJ1ZTsgRU5E JzsKKworQ1JFQVRFIFRBQkxFIGN1c3RvbWVyICgKKyAgICAgICBjaWQgICAgICBpbnQgcHJp bWFyeSBrZXksCisgICAgICAgbmFtZSAgICAgdGV4dCBub3QgbnVsbCwKKyAgICAgICB0ZWwg ICAgICB0ZXh0LAorICAgICAgIHBhc3N3ZAl0ZXh0CispOworCitDUkVBVEUgVEFCTEUgY3Jl ZGl0X2NhcmQgKAorICAgICAgIGNpZCAgICAgIGludCByZWZlcmVuY2VzIGN1c3RvbWVyKGNp ZCksCisgICAgICAgY251bSAgICAgdGV4dCwKKyAgICAgICBjbGltaXQgICBpbnQKKyk7CisK K0NSRUFURSBUQUJMRSBjcmVkaXRfdXNhZ2UgKAorICAgICAgIGNpZCAgICAgIGludCByZWZl cmVuY2VzIGN1c3RvbWVyKGNpZCksCisgICAgICAgeW1kICAgICAgZGF0ZSwKKyAgICAgICB1 c2FnZSAgICBpbnQKKyk7CisKK0lOU0VSVCBJTlRPIGN1c3RvbWVyCisgICAgICAgVkFMVUVT ICgxMDEsICdhbGljZScsICcrODEtMTItMzQ1Ni03ODkwJywgJ3Bhc3N3ZDEyMycpLAorICAg ICAgICAgICAgICAoMTAyLCAnYm9iJywgICAnKzAxLTIzNC01NjctODkwMScsICdiZWFmc3Rl YWsnKSwKKyAgICAgICAgICAgICAgKDEwMywgJ2V2ZScsICAgJys0OS04NzY1LTQzMjEwJywg ICAnaGFtYnVyZ2VyJyk7CitJTlNFUlQgSU5UTyBjcmVkaXRfY2FyZAorICAgICAgIFZBTFVF UyAoMTAxLCAnMTExMS0yMjIyLTMzMzMtNDQ0NCcsIDQwMDApLAorICAgICAgICAgICAgICAo MTAyLCAnNTU1NS02NjY2LTc3NzctODg4OCcsIDMwMDApLAorICAgICAgICAgICAgICAoMTAz LCAnOTgwMS0yMzQ1LTY3ODktMDEyMycsIDIwMDApOworSU5TRVJUIElOVE8gY3JlZGl0X3Vz YWdlCisgICAgICAgVkFMVUVTICgxMDEsICcyMDExLTA5LTE1JywgMTIwKSwKKyAgICAgICAJ ICAgICAgKDEwMSwgJzIwMTEtMTAtMDUnLCAgOTApLAorCSAgICAgICgxMDEsICcyMDExLTEw LTE4JywgMTEwKSwKKwkgICAgICAoMTAxLCAnMjAxMS0xMC0yMScsIDIwMCksCisJICAgICAg KDEwMSwgJzIwMTEtMTEtMTAnLCAgODApLAorCSAgICAgICgxMDIsICcyMDExLTA5LTIyJywg MzAwKSwKKwkgICAgICAoMTAyLCAnMjAxMS0xMC0xMicsIDEyMCksCisJICAgICAgKDEwMiwg JzIwMTEtMTAtMjgnLCAyMDApLAorCSAgICAgICgxMDMsICcyMDExLTEwLTE1JywgNDgwKTsK KworQ1JFQVRFIFZJRVcgbXlfcHJvcGVydHlfbm9ybWFsIEFTCisgICAgICAgU0VMRUNUICog RlJPTSBjdXN0b21lciBXSEVSRSBuYW1lID0gY3VycmVudF91c2VyOworQ1JFQVRFIFZJRVcg bXlfcHJvcGVydHlfc2VjdXJlIFdJVEggKHNlY3VyaXR5X2JhcnJpZXIpIEFTCisgICAgICAg U0VMRUNUICogRlJPTSBjdXN0b21lciBXSEVSRSBuYW1lID0gY3VycmVudF91c2VyOworCitD UkVBVEUgVklFVyBteV9jcmVkaXRfY2FyZF9ub3JtYWwgQVMKKyAgICAgICBTRUxFQ1QgKiBG Uk9NIGN1c3RvbWVyIGwgTkFUVVJBTCBKT0lOIGNyZWRpdF9jYXJkIHIKKyAgICAgICBXSEVS RSBsLm5hbWUgPSBjdXJyZW50X3VzZXI7CitDUkVBVEUgVklFVyBteV9jcmVkaXRfY2FyZF9z ZWN1cmUgV0lUSCAoc2VjdXJpdHlfYmFycmllcikgQVMKKyAgICAgICBTRUxFQ1QgKiBGUk9N IGN1c3RvbWVyIGwgTkFUVVJBTCBKT0lOIGNyZWRpdF9jYXJkIHIKKyAgICAgICBXSEVSRSBs Lm5hbWUgPSBjdXJyZW50X3VzZXI7CisKK0NSRUFURSBWSUVXIG15X2NyZWRpdF9jYXJkX3Vz YWdlX25vcm1hbCBBUworICAgICAgIFNFTEVDVCAqIEZST00gbXlfY3JlZGl0X2NhcmRfc2Vj dXJlIGwgTkFUVVJBTCBKT0lOIGNyZWRpdF91c2FnZSByOworQ1JFQVRFIFZJRVcgbXlfY3Jl ZGl0X2NhcmRfdXNhZ2Vfc2VjdXJlIFdJVEggKHNlY3VyaXR5X2JhcnJpZXIpIEFTCisgICAg ICAgU0VMRUNUICogRlJPTSBteV9jcmVkaXRfY2FyZF9zZWN1cmUgbCBOQVRVUkFMIEpPSU4g Y3JlZGl0X3VzYWdlIHI7CisKK0dSQU5UIFNFTEVDVCBPTiBteV9wcm9wZXJ0eV9ub3JtYWwg VE8gcHVibGljOworR1JBTlQgU0VMRUNUIE9OIG15X3Byb3BlcnR5X3NlY3VyZSBUTyBwdWJs aWM7CitHUkFOVCBTRUxFQ1QgT04gbXlfY3JlZGl0X2NhcmRfbm9ybWFsIFRPIHB1YmxpYzsK K0dSQU5UIFNFTEVDVCBPTiBteV9jcmVkaXRfY2FyZF9zZWN1cmUgVE8gcHVibGljOworR1JB TlQgU0VMRUNUIE9OIG15X2NyZWRpdF9jYXJkX3VzYWdlX25vcm1hbCBUTyBwdWJsaWM7CitH UkFOVCBTRUxFQ1QgT04gbXlfY3JlZGl0X2NhcmRfdXNhZ2Vfc2VjdXJlIFRPIHB1YmxpYzsK KworLS0KKy0tIFJ1biBsZWFreSB2aWV3IHNjZW5hcmlvcworLS0KK1NFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gYWxpY2U7CisKKy0tCistLSBzY2VuYXJpbzogaWYgYSBxdWFsaWZpZXIg d2l0aCB0aW55LWNvc3QgaXMgZ2l2ZW4sIGl0IHNoYWxsIGJlIGxhdW5jaGVkCistLSAgICAg ICAgICAgcHJpb3IgdG8gdGhlIHNlY3VyaXR5IHBvbGljeSBvZiB0aGUgdmlldy4KKy0tCitT RUxFQ1QgKiBGUk9NIG15X3Byb3BlcnR5X25vcm1hbCBXSEVSRSBmX2xlYWsocGFzc3dkKTsK K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBteV9wcm9wZXJ0eV9ub3JtYWwg V0hFUkUgZl9sZWFrKHBhc3N3ZCk7CisKK1NFTEVDVCAqIEZST00gbXlfcHJvcGVydHlfc2Vj dXJlIFdIRVJFIGZfbGVhayhwYXNzd2QpOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIG15X3Byb3BlcnR5X3NlY3VyZSBXSEVSRSBmX2xlYWsocGFzc3dkKTsKKworLS0K Ky0tIHNjZW5hcmlvOiBpZiBhIHF1YWxpZmllciByZWZlcmVuY2VzIG9ubHkgb25lLXNpZGUg b2YgYSBwYXJ0aWN1bGFyIGpvaW4tCistLSAgICAgICAgICAgdHJlZSwgaXQgc2hhbGwgYmUg ZGlzdHJpYnV0ZWQgdG8gdGhlIG1vc3QgZGVlcCBzY2FuIHBsYW4gYXMKKy0tICAgICAgICAg ICBwb3NzaWJsZSBhcyB3ZSBjYW4uCistLQorU0VMRUNUICogRlJPTSBteV9jcmVkaXRfY2Fy ZF9ub3JtYWwgV0hFUkUgZl9sZWFrKGNudW0pOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIG15X2NyZWRpdF9jYXJkX25vcm1hbCBXSEVSRSBmX2xlYWsoY251bSk7CisK K1NFTEVDVCAqIEZST00gbXlfY3JlZGl0X2NhcmRfc2VjdXJlIFdIRVJFIGZfbGVhayhjbnVt KTsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBteV9jcmVkaXRfY2FyZF9z ZWN1cmUgV0hFUkUgZl9sZWFrKGNudW0pOworCistLQorLS0gc2NlbmFyaW86IGFuIGV4dGVy bmFsIHF1YWxpZmllciBjYW4gYmUgcHVzaGVkLWRvd24gYnkgaW4tZnJvbnQtb2YgdGhlCist LSAgICAgICAgICAgdmlld3Mgd2l0aCAic2VjdXJpdHlfYmFycmllciIgYXR0cmlidXRlCist LQorU0VMRUNUICogRlJPTSBteV9jcmVkaXRfY2FyZF91c2FnZV9ub3JtYWwKKyAgICAgICBX SEVSRSBmX2xlYWsoY251bSkgQU5EIHltZCA+PSAnMjAxMS0xMC0wMScgQU5EIHltZCA8ICcy MDExLTExLTAxJzsKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBteV9jcmVk aXRfY2FyZF91c2FnZV9ub3JtYWwKKyAgICAgICBXSEVSRSBmX2xlYWsoY251bSkgQU5EIHlt ZCA+PSAnMjAxMS0xMC0wMScgQU5EIHltZCA8ICcyMDExLTExLTAxJzsKKworU0VMRUNUICog RlJPTSBteV9jcmVkaXRfY2FyZF91c2FnZV9zZWN1cmUKKyAgICAgICBXSEVSRSBmX2xlYWso Y251bSkgQU5EIHltZCA+PSAnMjAxMS0xMC0wMScgQU5EIHltZCA8ICcyMDExLTExLTAxJzsK K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBteV9jcmVkaXRfY2FyZF91c2Fn ZV9zZWN1cmUKKyAgICAgICBXSEVSRSBmX2xlYWsoY251bSkgQU5EIHltZCA+PSAnMjAxMS0x MC0wMScgQU5EIHltZCA8ICcyMDExLTExLTAxJzsKKworLS0KKy0tIFRlc3QgZm9yIHRoZSBj YXNlIHdoZW4gc2VjdXJpdHlfYmFycmllciBnZXRzIGNoYW5nZWQgYmV0d2VlbiByZXdyaXRl cgorLS0gYW5kIHBsYW5uZXIgc3RhZ2UuCistLQorUFJFUEFSRSBwMSBBUyBTRUxFQ1QgKiBG Uk9NIG15X3Byb3BlcnR5X25vcm1hbCBXSEVSRSBmX2xlYWsocGFzc3dkKTsKK1BSRVBBUkUg cDIgQVMgU0VMRUNUICogRlJPTSBteV9wcm9wZXJ0eV9zZWN1cmUgV0hFUkUgZl9sZWFrKHBh c3N3ZCk7CitFWEVDVVRFIHAxOworRVhFQ1VURSBwMjsKK1JFU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTjsKK0FMVEVSIFZJRVcgbXlfcHJvcGVydHlfbm9ybWFsIFNFVCAoc2VjdXJpdHlf YmFycmllcj10cnVlKTsKK0FMVEVSIFZJRVcgbXlfcHJvcGVydHlfc2VjdXJlIFNFVCAoc2Vj dXJpdHlfYmFycmllcj1mYWxzZSk7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIGFsaWNl OworRVhFQ1VURSBwMTsJCS0tIFRvIGJlIHBlcmZvcm0gYXMgYSB2aWV3IHdpdGggc2VjdXJp dHktYmFycmllcgorRVhFQ1VURSBwMjsJCS0tIFRvIGJlIHBlcmZvcm0gYXMgYSB2aWV3IHdp dGhvdXQgc2VjdXJpdHktYmFycmllcgoKY29tbWl0IDRiNDk2YTM1ODNlY2IzZjcwYmI0ZDEz ZjgyNzVkYmI3ZTViMjYxMDAKQXV0aG9yOiBSb2JlcnQgSGFhcyA8cmhhYXNAcG9zdGdyZXNx bC5vcmc+CkRhdGU6ICAgVHVlIEphbiAxNyAyMDo1MTozOCAyMDEyIC0wNTAwCgogICAgQ2F0 Y2ggZmF0YWwgZmxleCBlcnJvcnMgaW4gdGhlIEdVQyBmaWxlIGxleGVyLgogICAgCiAgICBU aGlzIHByZXZlbnRzIHRoZSBwb3N0bWFzdGVyIGZyb20gdW5leHBlY3RlZGx5IGNyb2FraW5n IGlmIHBvc3RncmVzcWwuY29uZgogICAgY29udGFpbnMgc29tZXRoaW5nIGxpa2U6CiAgICAK ICAgIGluY2x1ZGUgJ2ludmFsaWRfZGlyZWN0b3J5X25hbWUnCiAgICAKICAgIE5vYWggTWlz Y2guIFJldmlld2VkIGJ5IFRvbSBMYW5lIGFuZCBteXNlbGYuCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMtZmlsZS5sIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWMtZmlsZS5sCmluZGV4IDZmYzIxNjUuLmM2YzE1NTggMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjLWZpbGUubAorKysgYi9zcmMvYmFja2VuZC91dGlscy9t aXNjL2d1Yy1maWxlLmwKQEAgLTIwLDkgKzIwLDE0IEBACiAjaW5jbHVkZSAidXRpbHMvZ3Vj LmgiCiAKIAotLyogQXZvaWQgZXhpdCgpIG9uIGZhdGFsIHNjYW5uZXIgZXJyb3JzIChhIGJp dCB1Z2x5IC0tIHNlZSB5eV9mYXRhbF9lcnJvcikgKi8KKy8qCisgKiBmbGV4IGVtaXRzIGEg eXlfZmF0YWxfZXJyb3IoKSBmdW5jdGlvbiB0aGF0IGl0IGNhbGxzIGluIHJlc3BvbnNlIHRv CisgKiBjcml0aWNhbCBlcnJvcnMgbGlrZSBtYWxsb2MgZmFpbHVyZSwgZmlsZSBJL08gZXJy b3JzLCBhbmQgZGV0ZWN0aW9uIG9mCisgKiBpbnRlcm5hbCBpbmNvbnNpc3RlbmN5LiAgVGhh dCBmdW5jdGlvbiBwcmludHMgYSBtZXNzYWdlIGFuZCBjYWxscyBleGl0KCkuCisgKiBNdXRh dGUgaXQgdG8gaW5zdGVhZCBjYWxsIG91ciBoYW5kbGVyLCB3aGljaCBqdW1wcyBvdXQgb2Yg dGhlIHBhcnNlci4KKyAqLwogI3VuZGVmIGZwcmludGYKLSNkZWZpbmUgZnByaW50ZihmaWxl LCBmbXQsIG1zZykgIGVyZXBvcnQoRVJST1IsIChlcnJtc2dfaW50ZXJuYWwoIiVzIiwgbXNn KSkpCisjZGVmaW5lIGZwcmludGYoZmlsZSwgZm10LCBtc2cpIEdVQ19mbGV4X2ZhdGFsKG1z ZykKIAogZW51bSB7CiAJR1VDX0lEID0gMSwKQEAgLTM3LDEwICs0MiwxMyBAQCBlbnVtIHsK IH07CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgQ29uZmlnRmlsZUxpbmVubzsKK3N0YXRpYyBj b25zdCBjaGFyICpHVUNfZmxleF9mYXRhbF9lcnJtc2c7CitzdGF0aWMgc2lnam1wX2J1ZiAq R1VDX2ZsZXhfZmF0YWxfam1wOwogCiAvKiBmbGV4IGZhaWxzIHRvIHN1cHBseSBhIHByb3Rv dHlwZSBmb3IgeXlsZXgsIHNvIHByb3ZpZGUgb25lICovCiBpbnQgR1VDX3l5bGV4KHZvaWQp OwogCitzdGF0aWMgaW50IEdVQ19mbGV4X2ZhdGFsKGNvbnN0IGNoYXIgKm1zZyk7CiBzdGF0 aWMgY2hhciAqR1VDX3NjYW5zdHIoY29uc3QgY2hhciAqcyk7CiAKICV9CkBAIC00MzcsNiAr NDQ1LDIyIEBAIFBhcnNlQ29uZmlnRmlsZShjb25zdCBjaGFyICpjb25maWdfZmlsZSwgY29u c3QgY2hhciAqY2FsbGluZ19maWxlLCBib29sIHN0cmljdCwKIH0KIAogLyoKKyAqIEZsZXgg ZmF0YWwgZXJyb3JzIGJyaW5nIHVzIGhlcmUuICBTdGFzaCB0aGUgZXJyb3IgbWVzc2FnZSBh bmQganVtcCBiYWNrIHRvCisgKiBQYXJzZUNvbmZpZ0ZwKCkuICBBc3N1bWUgYWxsIG1zZyBh cmd1bWVudHMgcG9pbnQgdG8gc3RyaW5nIGNvbnN0YW50czsgdGhpcworICogaG9sZHMgZm9y IGZsZXggMi41LjMxIChlYXJsaWVzdCB3ZSBzdXBwb3J0KSBhbmQgZmxleCAyLjUuMzUgKGxh dGVzdCBhcyBvZgorICogdGhpcyB3cml0aW5nKS4gIE90aGVyd2lzZSwgd2Ugd291bGQgbmVl ZCB0byBjb3B5IHRoZSBtZXNzYWdlLgorICoKKyAqIFdlIHJldHVybiAiaW50IiBzaW5jZSB0 aGlzIHRha2VzIHRoZSBwbGFjZSBvZiBjYWxscyB0byBmcHJpbnRmKCkuCisqLworc3RhdGlj IGludAorR1VDX2ZsZXhfZmF0YWwoY29uc3QgY2hhciAqbXNnKQoreworCUdVQ19mbGV4X2Zh dGFsX2Vycm1zZyA9IG1zZzsKKwlzaWdsb25nam1wKCpHVUNfZmxleF9mYXRhbF9qbXAsIDEp OworCXJldHVybiAwOwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCit9CisKKy8qCiAgKiBS ZWFkIGFuZCBwYXJzZSBhIHNpbmdsZSBjb25maWd1cmF0aW9uIGZpbGUuICBUaGlzIGZ1bmN0 aW9uIHJlY3Vyc2VzCiAgKiB0byBoYW5kbGUgImluY2x1ZGUiIGRpcmVjdGl2ZXMuCiAgKgpA QCAtNDY0LDE5ICs0ODgsMzggQEAgUGFyc2VDb25maWdGcChGSUxFICpmcCwgY29uc3QgY2hh ciAqY29uZmlnX2ZpbGUsIGludCBkZXB0aCwgaW50IGVsZXZlbCwKIAkJCSAgQ29uZmlnVmFy aWFibGUgKipoZWFkX3AsIENvbmZpZ1ZhcmlhYmxlICoqdGFpbF9wKQogewogCWJvb2wJCU9L ID0gdHJ1ZTsKLQlZWV9CVUZGRVJfU1RBVEUgbGV4X2J1ZmZlcjsKKwl1bnNpZ25lZCBpbnQg c2F2ZV9Db25maWdGaWxlTGluZW5vID0gQ29uZmlnRmlsZUxpbmVubzsKKwlzaWdqbXBfYnVm ICpzYXZlX0dVQ19mbGV4X2ZhdGFsX2ptcCA9IEdVQ19mbGV4X2ZhdGFsX2ptcDsKKwlzaWdq bXBfYnVmCWZsZXhfZmF0YWxfam1wOworCXZvbGF0aWxlIFlZX0JVRkZFUl9TVEFURSBsZXhf YnVmZmVyID0gTlVMTDsKIAlpbnQJCQllcnJvcmNvdW50OwogCWludAkJCXRva2VuOwogCisJ aWYgKHNpZ3NldGptcChmbGV4X2ZhdGFsX2ptcCwgMSkgPT0gMCkKKwkJR1VDX2ZsZXhfZmF0 YWxfam1wID0gJmZsZXhfZmF0YWxfam1wOworCWVsc2UKKwl7CisJCS8qCisJCSAqIFJlZ2Fp biBjb250cm9sIGFmdGVyIGEgZmF0YWwsIGludGVybmFsIGZsZXggZXJyb3IuICBJdCBtYXkg aGF2ZQorCQkgKiBjb3JydXB0ZWQgcGFyc2VyIHN0YXRlLiAgQ29uc2VxdWVudGx5LCBhYmFu ZG9uIHRoZSBmaWxlLCBidXQgdHJ1c3QKKwkJICogdGhhdCB0aGUgc3RhdGUgcmVtYWlucyBz YW5lIGVub3VnaCBmb3IgeXlfZGVsZXRlX2J1ZmZlcigpLgorCQkgKi8KKwkJZWxvZyhlbGV2 ZWwsICIlcyBhdCBmaWxlIFwiJXNcIiBsaW5lICV1IiwKKwkJCSBHVUNfZmxleF9mYXRhbF9l cnJtc2csIGNvbmZpZ19maWxlLCBDb25maWdGaWxlTGluZW5vKTsKKworCQlPSyA9IGZhbHNl OworCQlnb3RvIGNsZWFudXA7CisJfQorCiAJLyoKIAkgKiBQYXJzZQogCSAqLwotCWxleF9i dWZmZXIgPSB5eV9jcmVhdGVfYnVmZmVyKGZwLCBZWV9CVUZfU0laRSk7Ci0JeXlfc3dpdGNo X3RvX2J1ZmZlcihsZXhfYnVmZmVyKTsKLQogCUNvbmZpZ0ZpbGVMaW5lbm8gPSAxOwogCWVy cm9yY291bnQgPSAwOwogCisJbGV4X2J1ZmZlciA9IHl5X2NyZWF0ZV9idWZmZXIoZnAsIFlZ X0JVRl9TSVpFKTsKKwl5eV9zd2l0Y2hfdG9fYnVmZmVyKGxleF9idWZmZXIpOworCiAJLyog VGhpcyBsb29wIGl0ZXJhdGVzIG9uY2UgcGVyIGxvZ2ljYWwgbGluZSAqLwogCXdoaWxlICgo dG9rZW4gPSB5eWxleCgpKSkKIAl7CkBAIC01MjYsMTQgKzU2OSwxMSBAQCBQYXJzZUNvbmZp Z0ZwKEZJTEUgKmZwLCBjb25zdCBjaGFyICpjb25maWdfZmlsZSwgaW50IGRlcHRoLCBpbnQg ZWxldmVsLAogCQkJICogQW4gaW5jbHVkZV9pZl9leGlzdHMgZGlyZWN0aXZlIGlzbid0IGEg dmFyaWFibGUgYW5kIHNob3VsZCBiZQogCQkJICogcHJvY2Vzc2VkIGltbWVkaWF0ZWx5Lgog CQkJICovCi0JCQl1bnNpZ25lZCBpbnQgc2F2ZV9Db25maWdGaWxlTGluZW5vID0gQ29uZmln RmlsZUxpbmVubzsKLQogCQkJaWYgKCFQYXJzZUNvbmZpZ0ZpbGUob3B0X3ZhbHVlLCBjb25m aWdfZmlsZSwgZmFsc2UsCiAJCQkJCQkJCSBkZXB0aCArIDEsIGVsZXZlbCwKIAkJCQkJCQkJ IGhlYWRfcCwgdGFpbF9wKSkKIAkJCQlPSyA9IGZhbHNlOwogCQkJeXlfc3dpdGNoX3RvX2J1 ZmZlcihsZXhfYnVmZmVyKTsKLQkJCUNvbmZpZ0ZpbGVMaW5lbm8gPSBzYXZlX0NvbmZpZ0Zp bGVMaW5lbm87CiAJCQlwZnJlZShvcHRfbmFtZSk7CiAJCQlwZnJlZShvcHRfdmFsdWUpOwog CQl9CkBAIC01NDMsMTQgKzU4MywxMSBAQCBQYXJzZUNvbmZpZ0ZwKEZJTEUgKmZwLCBjb25z dCBjaGFyICpjb25maWdfZmlsZSwgaW50IGRlcHRoLCBpbnQgZWxldmVsLAogCQkJICogQW4g aW5jbHVkZSBkaXJlY3RpdmUgaXNuJ3QgYSB2YXJpYWJsZSBhbmQgc2hvdWxkIGJlIHByb2Nl c3NlZAogCQkJICogaW1tZWRpYXRlbHkuCiAJCQkgKi8KLQkJCXVuc2lnbmVkIGludCBzYXZl X0NvbmZpZ0ZpbGVMaW5lbm8gPSBDb25maWdGaWxlTGluZW5vOwotCiAJCQlpZiAoIVBhcnNl Q29uZmlnRmlsZShvcHRfdmFsdWUsIGNvbmZpZ19maWxlLCB0cnVlLAogCQkJCQkJCQkgZGVw dGggKyAxLCBlbGV2ZWwsCiAJCQkJCQkJCSBoZWFkX3AsIHRhaWxfcCkpCiAJCQkJT0sgPSBm YWxzZTsKIAkJCXl5X3N3aXRjaF90b19idWZmZXIobGV4X2J1ZmZlcik7Ci0JCQlDb25maWdG aWxlTGluZW5vID0gc2F2ZV9Db25maWdGaWxlTGluZW5vOwogCQkJcGZyZWUob3B0X25hbWUp OwogCQkJcGZyZWUob3B0X3ZhbHVlKTsKIAkJfQpAQCAtNjIwLDcgKzY1NywxMSBAQCBQYXJz ZUNvbmZpZ0ZwKEZJTEUgKmZwLCBjb25zdCBjaGFyICpjb25maWdfZmlsZSwgaW50IGRlcHRo LCBpbnQgZWxldmVsLAogCQkJYnJlYWs7CiAJfQogCitjbGVhbnVwOgogCXl5X2RlbGV0ZV9i dWZmZXIobGV4X2J1ZmZlcik7CisJLyogRWFjaCByZWN1cnNpb24gbGV2ZWwgbXVzdCBzYXZl IGFuZCByZXN0b3JlIHRoZXNlIHN0YXRpYyB2YXJpYWJsZXMuICovCisJQ29uZmlnRmlsZUxp bmVubyA9IHNhdmVfQ29uZmlnRmlsZUxpbmVubzsKKwlHVUNfZmxleF9mYXRhbF9qbXAgPSBz YXZlX0dVQ19mbGV4X2ZhdGFsX2ptcDsKIAlyZXR1cm4gT0s7CiB9CiAKCmNvbW1pdCA3NTRi ODE0MGExYTVjZWIxMjM0M2ZkODk0MjNkYTVjYzg2Y2U1MzI4CkF1dGhvcjogUm9iZXJ0IEhh YXMgPHJoYWFzQHBvc3RncmVzcWwub3JnPgpEYXRlOiAgIE1vbiBKYW4gMTYgMjA6Mzc6MDEg MjAxMiAtMDUwMAoKICAgIGZhc3RnZXRhdHRyIGlzIGluIGFjY2Vzcy9odHVwLmgsIG5vdCBh Y2Nlc3MvaGVhcGFtLmgKICAgIAogICAgTm90ZWQgYnkgUGV0ZXIgR2VvZ2hlZ2FuCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCA1ZjZhYzJlLi45OWE0MzFhIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtODMzLDcgKzgzMyw3IEBAIGhlYXBnZXR0dXBf cGFnZW1vZGUoSGVhcFNjYW5EZXNjIHNjYW4sCiAjaWYgZGVmaW5lZChESVNBQkxFX0NPTVBM RVhfTUFDUk8pCiAvKgogICogVGhpcyBpcyBmb3JtYXR0ZWQgc28gb2RkbHkgc28gdGhhdCB0 aGUgY29ycmVzcG9uZGVuY2UgdG8gdGhlIG1hY3JvCi0gKiBkZWZpbml0aW9uIGluIGFjY2Vz cy9oZWFwYW0uaCBpcyBtYWludGFpbmVkLgorICogZGVmaW5pdGlvbiBpbiBhY2Nlc3MvaHR1 cC5oIGlzIG1haW50YWluZWQuCiAgKi8KIERhdHVtCiBmYXN0Z2V0YXR0cihIZWFwVHVwbGUg dHVwLCBpbnQgYXR0bnVtLCBUdXBsZURlc2MgdHVwbGVEZXNjLAoKY29tbWl0IDNiMTEyNDdh YWRmODU3YmJjYmZjNzY1MTkxMjczOTczZDljYTlkZDcKQXV0aG9yOiBBbHZhcm8gSGVycmVy YSA8YWx2aGVycmVAYWx2aC5uby1pcC5vcmc+CkRhdGU6ICAgTW9uIEphbiAxNiAxOToxOTo0 MiAyMDEyIC0wMzAwCgogICAgRGlzYWxsb3cgbWVyZ2luZyBPTkxZIGNvbnN0cmFpbnRzIGlu IGNoaWxkcmVuIHRhYmxlcwogICAgCiAgICBXaGVuIGNyZWF0aW5nIGEgY2hpbGQgdGFibGUs IG9yIHdoZW4gYXR0YWNoaW5nIGFuIGV4aXN0aW5nIHRhYmxlIGFzCiAgICBjaGlsZCBvZiBh bm90aGVyLCB3ZSBtdXN0IG5vdCBhbGxvdyBpbmhlcml0YWJsZSBjb25zdHJhaW50cyB0byBi ZQogICAgbWVyZ2VkIHdpdGggbm9uLWluaGVyaXRhYmxlIG9uZXMsIGJlY2F1c2UgdGhlbiBn cmFuZGNoaWxkcmVuIHdvdWxkIG5vdAogICAgcHJvcGVybHkgZ2V0IHRoZSBjb25zdHJhaW50 LiAgVGhpcyB3b3VsZCB2aW9sYXRlIHRoZSBncmFuZHBhcmVudCdzCiAgICBleHBlY3RhdGlv bnMuCiAgICAKICAgIEJ1Z3Mgbm90ZWQgYnkgUm9iZXJ0IEhhYXMuCiAgICAKICAgIEF1dGhv cjogTmlraGlsIFNvbnRha2tlCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCmluZGV4 IDE5NzZmNmQuLjZmMTkxN2YgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf dGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKQEAg LTQ4Miw3ICs0ODIsMTEgQEAgQUxURVIgVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJB TUVURVIiPm5hbWU8L3JlcGxhY2VhYmxlPgogCiAgICAgIDxwYXJhPgogICAgICAgVGhlcmUg bXVzdCBhbHNvIGJlIG1hdGNoaW5nIGNoaWxkLXRhYmxlIGNvbnN0cmFpbnRzIGZvciBhbGwK LSAgICAgIDxsaXRlcmFsPkNIRUNLPC9saXRlcmFsPiBjb25zdHJhaW50cyBvZiB0aGUgcGFy ZW50LiBDdXJyZW50bHkKKyAgICAgIDxsaXRlcmFsPkNIRUNLPC9saXRlcmFsPiBjb25zdHJh aW50cyBvZiB0aGUgcGFyZW50LCBleGNlcHQgdGhvc2UKKyAgICAgIG1hcmtlZCBub24taW5o ZXJpdGFibGUgKHRoYXQgaXMsIGNyZWF0ZWQgd2l0aCA8bGl0ZXJhbD5BTFRFUiBUQUJMRSBP TkxZPC9saXRlcmFsPikKKyAgICAgIGluIHRoZSBwYXJlbnQsIHdoaWNoIGFyZSBpZ25vcmVk OyBhbGwgY2hpbGQtdGFibGUgY29uc3RyYWludHMgbWF0Y2hlZAorICAgICAgbXVzdCBub3Qg YmUgbWFya2VkIG5vbi1pbmhlcml0YWJsZS4KKyAgICAgIEN1cnJlbnRseQogICAgICAgPGxp dGVyYWw+VU5JUVVFPC9saXRlcmFsPiwgPGxpdGVyYWw+UFJJTUFSWSBLRVk8L2xpdGVyYWw+ LCBhbmQKICAgICAgIDxsaXRlcmFsPkZPUkVJR04gS0VZPC9saXRlcmFsPiBjb25zdHJhaW50 cyBhcmUgbm90IGNvbnNpZGVyZWQsIGJ1dAogICAgICAgdGhpcyBtaWdodCBjaGFuZ2UgaW4g dGhlIGZ1dHVyZS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5kZXggZGM4MDFhZS4uMjA0MjM2ZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9oZWFwLmMKQEAgLTIyNTEsNiArMjI1MSw4IEBAIEFkZFJlbGF0aW9uTmV3Q29u c3RyYWludHMoUmVsYXRpb24gcmVsLAogICoKICAqIFJldHVybnMgVFJVRSBpZiBtZXJnZWQg KGNvbnN0cmFpbnQgaXMgYSBkdXBsaWNhdGUpLCBvciBGQUxTRSBpZiBpdCdzCiAgKiBnb3Qg YSBzby1mYXItdW5pcXVlIG5hbWUsIG9yIHRocm93cyBlcnJvciBpZiBjb25mbGljdC4KKyAq CisgKiBYWFggU2VlIE1lcmdlQ29uc3RyYWludHNJbnRvRXhpc3RpbmcgdG9vIGlmIHlvdSBj aGFuZ2UgdGhpcyBjb2RlLgogICovCiBzdGF0aWMgYm9vbAogTWVyZ2VXaXRoRXhpc3RpbmdD b25zdHJhaW50KFJlbGF0aW9uIHJlbCwgY2hhciAqY2NuYW1lLCBOb2RlICpleHByLApAQCAt MjMwNywxMiArMjMwOSwxNyBAQCBNZXJnZVdpdGhFeGlzdGluZ0NvbnN0cmFpbnQoUmVsYXRp b24gcmVsLCBjaGFyICpjY25hbWUsIE5vZGUgKmV4cHIsCiAJCQkJCQkoZXJyY29kZShFUlJD T0RFX0RVUExJQ0FURV9PQkpFQ1QpLAogCQkJCWVycm1zZygiY29uc3RyYWludCBcIiVzXCIg Zm9yIHJlbGF0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsCiAJCQkJCSAgIGNjbmFtZSwg UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKLQkJCS8qIE9LIHRvIHVwZGF0ZSB0 aGUgdHVwbGUgKi8KLQkJCWVyZXBvcnQoTk9USUNFLAotCQkJICAgKGVycm1zZygibWVyZ2lu ZyBjb25zdHJhaW50IFwiJXNcIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uIiwKLQkJCQkJ ICAgY2NuYW1lKSkpOworCiAJCQl0dXAgPSBoZWFwX2NvcHl0dXBsZSh0dXApOwogCQkJY29u ID0gKEZvcm1fcGdfY29uc3RyYWludCkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCS8qIElmIHRo ZSBjb25zdHJhaW50IGlzICJvbmx5IiB0aGVuIGNhbm5vdCBtZXJnZSAqLworCQkJaWYgKGNv bi0+Y29uaXNvbmx5KQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJIGVycm1zZygiY29uc3Ry YWludCBcIiVzXCIgY29uZmxpY3RzIHdpdGggbm9uLWluaGVyaXRlZCBjb25zdHJhaW50IG9u IHJlbGF0aW9uIFwiJXNcIiIsCisJCQkJCQkJCWNjbmFtZSwgUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVsKSkpKTsKKwogCQkJaWYgKGlzX2xvY2FsKQogCQkJCWNvbi0+Y29uaXNsb2Nh bCA9IHRydWU7CiAJCQllbHNlCkBAIC0yMzIyLDYgKzIzMjksMTAgQEAgTWVyZ2VXaXRoRXhp c3RpbmdDb25zdHJhaW50KFJlbGF0aW9uIHJlbCwgY2hhciAqY2NuYW1lLCBOb2RlICpleHBy LAogCQkJCUFzc2VydChpc19sb2NhbCk7CiAJCQkJY29uLT5jb25pc29ubHkgPSB0cnVlOwog CQkJfQorCQkJLyogT0sgdG8gdXBkYXRlIHRoZSB0dXBsZSAqLworCQkJZXJlcG9ydChOT1RJ Q0UsCisJCQkJCShlcnJtc2coIm1lcmdpbmcgY29uc3RyYWludCBcIiVzXCIgd2l0aCBpbmhl cml0ZWQgZGVmaW5pdGlvbiIsCisJCQkJCQkJY2NuYW1lKSkpOwogCQkJc2ltcGxlX2hlYXBf dXBkYXRlKGNvbkRlc2MsICZ0dXAtPnRfc2VsZiwgdHVwKTsKIAkJCUNhdGFsb2dVcGRhdGVJ bmRleGVzKGNvbkRlc2MsIHR1cCk7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKaW5kZXggZDA4NDNiMi4uY2MyMTBmMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKQEAgLTg4MTgsMTggKzg4MTgsMTggQEAgTWVyZ2VBdHRyaWJ1dGVzSW50b0V4aXN0 aW5nKFJlbGF0aW9uIGNoaWxkX3JlbCwgUmVsYXRpb24gcGFyZW50X3JlbCkKICAqIENoZWNr IGNvbnN0cmFpbnRzIGluIGNoaWxkIHRhYmxlIG1hdGNoIHVwIHdpdGggY29uc3RyYWludHMg aW4gcGFyZW50LAogICogYW5kIGluY3JlbWVudCB0aGVpciBjb25pbmhjb3VudC4KICAqCisg KiBDb25zdHJhaW50cyB0aGF0IGFyZSBtYXJrZWQgT05MWSBpbiB0aGUgcGFyZW50IGFyZSBp Z25vcmVkLgorICoKICAqIENhbGxlZCBieSBBVEV4ZWNBZGRJbmhlcml0CiAgKgogICogQ3Vy cmVudGx5IGFsbCBjb25zdHJhaW50cyBpbiBwYXJlbnQgbXVzdCBiZSBwcmVzZW50IGluIHRo ZSBjaGlsZC4gT25lIGRheSB3ZQotICogbWF5IGNvbnNpZGVyIGFkZGluZyBuZXcgY29uc3Ry YWludHMgbGlrZSBDUkVBVEUgVEFCTEUgZG9lcy4gV2UgbWF5IGFsc28gd2FudAotICogdG8g YWxsb3cgYW4gb3B0aW9uYWwgZmxhZyBvbiBwYXJlbnQgdGFibGUgY29uc3RyYWludHMgaW5k aWNhdGluZyB0aGV5IGFyZQotICogaW50ZW5kZWQgdG8gT05MWSBhcHBseSB0byB0aGUgbWFz dGVyIHRhYmxlLCBub3QgdG8gdGhlIGNoaWxkcmVuLiBUaGF0IHdvdWxkCi0gKiBtYWtlIGl0 IHBvc3NpYmxlIHRvIGVuc3VyZSBubyByZWNvcmRzIGFyZSBtaXN0YWtlbmx5IGluc2VydGVk IGludG8gdGhlCi0gKiBtYXN0ZXIgaW4gcGFydGl0aW9uZWQgdGFibGVzIHJhdGhlciB0aGFu IHRoZSBhcHByb3ByaWF0ZSBjaGlsZC4KKyAqIG1heSBjb25zaWRlciBhZGRpbmcgbmV3IGNv bnN0cmFpbnRzIGxpa2UgQ1JFQVRFIFRBQkxFIGRvZXMuCiAgKgogICogWFhYIFRoaXMgaXMg TyhOXjIpIHdoaWNoIG1heSBiZSBhbiBpc3N1ZSB3aXRoIHRhYmxlcyB3aXRoIGh1bmRyZWRz IG9mCiAgKiBjb25zdHJhaW50cy4gQXMgbG9uZyBhcyB0YWJsZXMgaGF2ZSBtb3JlIGxpa2Ug MTAgY29uc3RyYWludHMgaXQgc2hvdWxkbid0IGJlCiAgKiBhIHByb2JsZW0gdGhvdWdoLiBF dmVuIDEwMCBjb25zdHJhaW50cyBvdWdodCBub3QgYmUgdGhlIGVuZCBvZiB0aGUgd29ybGQu CisgKgorICogWFhYIFNlZSBNZXJnZVdpdGhFeGlzdGluZ0NvbnN0cmFpbnQgdG9vIGlmIHlv dSBjaGFuZ2UgdGhpcyBjb2RlLgogICovCiBzdGF0aWMgdm9pZAogTWVyZ2VDb25zdHJhaW50 c0ludG9FeGlzdGluZyhSZWxhdGlvbiBjaGlsZF9yZWwsIFJlbGF0aW9uIHBhcmVudF9yZWwp CkBAIC04ODYyLDYgKzg4NjIsMTAgQEAgTWVyZ2VDb25zdHJhaW50c0ludG9FeGlzdGluZyhS ZWxhdGlvbiBjaGlsZF9yZWwsIFJlbGF0aW9uIHBhcmVudF9yZWwpCiAJCWlmIChwYXJlbnRf Y29uLT5jb250eXBlICE9IENPTlNUUkFJTlRfQ0hFQ0spCiAJCQljb250aW51ZTsKIAorCQkv KiBpZiB0aGUgcGFyZW50J3MgY29uc3RyYWludCBpcyBtYXJrZWQgT05MWSwgaXQncyBub3Qg aW5oZXJpdGVkICovCisJCWlmIChwYXJlbnRfY29uLT5jb25pc29ubHkpCisJCQljb250aW51 ZTsKKwogCQkvKiBTZWFyY2ggZm9yIGEgY2hpbGQgY29uc3RyYWludCBtYXRjaGluZyB0aGlz IG9uZSAqLwogCQlTY2FuS2V5SW5pdCgmY2hpbGRfa2V5LAogCQkJCQlBbnVtX3BnX2NvbnN0 cmFpbnRfY29ucmVsaWQsCkBAIC04ODg5LDYgKzg4OTMsMTQgQEAgTWVyZ2VDb25zdHJhaW50 c0ludG9FeGlzdGluZyhSZWxhdGlvbiBjaGlsZF9yZWwsIFJlbGF0aW9uIHBhcmVudF9yZWwp CiAJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGNoaWxkX3JlbCksCiAJCQkJCQkJ CU5hbWVTdHIocGFyZW50X2Nvbi0+Y29ubmFtZSkpKSk7CiAKKwkJCS8qIElmIHRoZSBjb25z dHJhaW50IGlzICJvbmx5IiB0aGVuIGNhbm5vdCBtZXJnZSAqLworCQkJaWYgKGNoaWxkX2Nv bi0+Y29uaXNvbmx5KQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQkJIGVycm1zZygiY29uc3Ry YWludCBcIiVzXCIgY29uZmxpY3RzIHdpdGggbm9uLWluaGVyaXRlZCBjb25zdHJhaW50IG9u IGNoaWxkIHRhYmxlIFwiJXNcIiIsCisJCQkJCQkJCU5hbWVTdHIoY2hpbGRfY29uLT5jb25u YW1lKSwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoY2hpbGRfcmVsKSkpKTsK KwogCQkJLyoKIAkJCSAqIE9LLCBidW1wIHRoZSBjaGlsZCBjb25zdHJhaW50J3MgaW5oZXJp dGFuY2UgY291bnQuICAoSWYgd2UgZmFpbAogCQkJICogbGF0ZXIgb24sIHRoaXMgY2hhbmdl IHdpbGwganVzdCByb2xsIGJhY2suKQoKY29tbWl0IDFiOWY3NzQwOTBkNThhOTUwZWYwNTM1 YjUxYmMzNzdhYjYyYjc5NWMKQXV0aG9yOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlcl9lQGdt eC5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAyMDowODozMyAyMDEyICswMjAwCgogICAgcHNx bDogRml4IG1lbW9yeSBsZWFrCiAgICAKICAgIFRoZSBjb21tYW5kCiAgICAKICAgIFxwYXNz d29yZCB1c2VybmFtZQogICAgCiAgICBsZWFrZWQgbWVtb3J5LgoKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDY5 ZmFjODMuLjZjM2YwYWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKKysr IGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwpAQCAtOTUzLDYgKzk1Myw5IEBAIGV4ZWNfY29t bWFuZChjb25zdCBjaGFyICpjbWQsCiAJCQkJCVBRY2xlYXIocmVzKTsKIAkJCQlQUWZyZWVt ZW0oZW5jcnlwdGVkX3Bhc3N3b3JkKTsKIAkJCX0KKworCQkJaWYgKG9wdDApCisJCQkJZnJl ZShvcHQwKTsKIAkJfQogCiAJCWZyZWUocHcxKTsKCmNvbW1pdCAxNTc1ZmJjYjc5NWZjMzMx ZjQ2NTg4YjQ1MjBjNGJjYTdlODU0ZDVjCkF1dGhvcjogUm9iZXJ0IEhhYXMgPHJoYWFzQHBv c3RncmVzcWwub3JnPgpEYXRlOiAgIE1vbiBKYW4gMTYgMDk6MzQ6MjEgMjAxMiAtMDUwMAoK ICAgIFByZXZlbnQgYWRkaW5nIHJlbGF0aW9ucyB0byBhIGNvbmN1cnJlbnRseSBkcm9wcGVk IHNjaGVtYS4KICAgIAogICAgSW4gdGhlIHByZXZpb3VzIGNvZGluZywgaXQgd2FzIHBvc3Np YmxlIGZvciBhIHJlbGF0aW9uIHRvIGJlIGNyZWF0ZWQKICAgIHZpYSBDUkVBVEUgVEFCTEUs IENSRUFURSBWSUVXLCBDUkVBVEUgU0VRVUVOQ0UsIENSRUFURSBGT1JFSUdOIFRBQkxFLAog ICAgZXRjLiAgaW4gYSBzY2hlbWEgd2hpbGUgdGhhdCBzY2hlbWEgd2FzIG1lYW53aGlsZSBi ZWluZyBjb25jdXJyZW50bHkKICAgIGRyb3BwZWQuICBUaGlzIGxlZCB0byBhIHBnX2NsYXNz IGVudHJ5IHdpdGggYW4gaW52YWxpZCByZWxuYW1lc3BhY2UKICAgIHZhbHVlLiAgVGhlIHNh bWUgcHJvYmxlbSBjb3VsZCBvY2N1ciBpZiBhIHJlbGF0aW9uIHdhcyBtb3ZlZCB1c2luZwog ICAgQUxURVIgLi4gU0VUIFNDSEVNQSB3aGlsZSB0aGUgdGFyZ2V0IHNjaGVtYSB3YXMgYmVp bmcgY29uY3VycmVudGx5CiAgICBkcm9wcGVkLiAgVGhpcyBwYXRjaCBwcmV2ZW50cyBib3Ro IG9mIHRob3NlIHNjZW5hcmlvcyBieSBsb2NraW5nIHRoZQogICAgc2NoZW1hIHRvIHdoaWNo IHRoZSByZWxhdGlvbiBpcyBiZWluZyBhZGRlZCB1c2luZyBBY2Nlc3NTaGFyZUxvY2ssCiAg ICB3aGljaCBjb25mbGljdHMgd2l0aCB0aGUgQWNjZXNzRXhjbHVzaXZlTG9jayB0YWtlbiBi eSBEUk9QLgogICAgCiAgICBBcyBhIGRlc2lyYWJsZSBzaWRlIGVmZmVjdCwgdGhpcyBhbHNv IHByZXZlbnRzIHRoZSB1c2Ugb2YgQ1JFQVRFIE9SCiAgICBSRVBMQUNFIFZJRVcgdG8gcXVl dWUgZm9yIGFuIEFjY2Vzc0V4Y2x1c2l2ZUxvY2sgb24gYSByZWxhdGlvbiBvbiB3aGljaAog ICAgeW91IGhhdmUgbm8gcmlnaHRzOiB0aGF0IHdpbGwgbm93IGZhaWwgaW1tZWRpYXRlbHkg d2l0aCBhIHBlcm1pc3Npb25zCiAgICBlcnJvciwgYmVmb3JlIHRyeWluZyB0byBvYnRhaW4g YSBsb2NrLgogICAgCiAgICBXZSBuZWVkIHNpbWlsYXIgcHJvdGVjdGlvbiBmb3IgYWxsIG90 aGVyIG9iamVjdCB0eXBlcywgYnV0IGFzIGV2ZXJ5dGhpbmcKICAgIG90aGVyIHRoYW4gcmVs YXRpb25zIHVzZXMgYSBzbGlnaHRseSBkaWZmZXJlbnQgc2V0IG9mIGNvZGUgcGF0aHMsIEkn bQogICAgbGVhdmluZyB0aGF0IGZvciBhIHNlcGFyYXRlIGNvbW1pdC4KICAgIAogICAgT3Jp Z2luYWwgY29tcGxhaW50IChhcyBmYXIgYXMgSSBjb3VsZCBmaW5kKSBhYm91dCBDUkVBVEUg YnkgTmlraGlsCiAgICBTb250YWtrZTsgcmlzayBmb3IgQUxURVIgLi4gU0VUIFNDSEVNQSBw b2ludGVkIG91dCBieSBUb20gTGFuZTsKICAgIGZ1cnRoZXIgZGV0YWlscyBieSBEYW4gRmFy aW5hOyBwYXRjaCBieSBtZTsgcmV2aWV3IGJ5IEhpdG9zaGkgSGFyYWRhLgoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRh bG9nL25hbWVzcGFjZS5jCmluZGV4IGE5YTY0ZmUuLjgwZDZmYzcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9uYW1lc3BhY2UuYwpAQCAtNDgwLDMxICs0ODAsMTMxIEBAIFJhbmdlVmFyR2V0Q3JlYXRp b25OYW1lc3BhY2UoY29uc3QgUmFuZ2VWYXIgKm5ld1JlbGF0aW9uKQogCiAvKgogICogUmFu Z2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlCi0gKgkJQXMgUmFuZ2VWYXJHZXRD cmVhdGlvbk5hbWVzcGFjZSwgYnV0IHdpdGggYSBwZXJtaXNzaW9ucyBjaGVjay4KKyAqCisg KiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIGluIHdo aWNoIGEgbmV3IHJlbGF0aW9uCisgKiB3aXRoIGEgZ2l2ZW4gbmFtZSBzaG91bGQgYmUgY3Jl YXRlZC4gIElmIHRoZSB1c2VyIGRvZXMgbm90IGhhdmUgQ1JFQVRFCisgKiBwZXJtaXNzaW9u IG9uIHRoZSB0YXJnZXQgbmFtZXNwYWNlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgaW5zdGVhZCBz aWduYWwKKyAqIGFuIEVSUk9SLgorICoKKyAqIElmIG5vbi1OVUxMLCAqZXhpc3Rpbmdfb2lk IGlzIHNldCB0byB0aGUgT0lEIG9mIGFueSBleGlzdGluZyByZWxhdGlvbiB3aXRoCisgKiB0 aGUgc2FtZSBuYW1lIHdoaWNoIGFscmVhZHkgZXhpc3RzIGluIHRoYXQgbmFtZXNwYWNlLCBv ciB0byBJbnZhbGlkT2lkIGlmCisgKiBubyBzdWNoIHJlbGF0aW9uIGV4aXN0cy4KKyAqCisg KiBJZiBsb2NrbW9kZSAhPSBOb0xvY2ssIHRoZSBzcGVjaWZpZWQgbG9jayBtb2RlIGlzIGFj cXVpcmUgb24gdGhlIGV4aXN0aW5nCisgKiByZWxhdGlvbiwgaWYgYW55LCBwcm92aWRlZCB0 aGF0IHRoZSBjdXJyZW50IHVzZXIgb3ducyB0aGUgdGFyZ2V0IHJlbGF0aW9uLgorICogSG93 ZXZlciwgaWYgbG9ja21vZGUgIT0gTm9Mb2NrIGFuZCB0aGUgdXNlciBkb2VzIG5vdCBvd24g dGhlIHRhcmdldAorICogcmVsYXRpb24sIHdlIHRocm93IGFuIEVSUk9SLCBhcyB3ZSBtdXN0 IG5vdCB0cnkgdG8gbG9jayByZWxhdGlvbnMgdGhlCisgKiB1c2VyIGRvZXMgbm90IGhhdmUg cGVybWlzc2lvbnMgb24uCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlv biBhY3F1aXJlcyBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHRhcmdldAorICogbmFtZXNwYWNl LiAgV2l0aG91dCB0aGlzLCB0aGUgbmFtZXNwYWNlIGNvdWxkIGJlIGRyb3BwZWQgYmVmb3Jl IG91cgorICogdHJhbnNhY3Rpb24gY29tbWl0cywgbGVhdmluZyBiZWhpbmQgcmVsYXRpb25z IHdpdGggcmVsbmFtZXNwYWNlIHBvaW50aW5nCisgKiB0byBhIG5vLWxvbmdlci1leHN0YW50 IG5hbWVzcGFjZS4KKyAqCisgKiBBcyBhIGZ1cnRoZXIgc2lkZS1lZmZlY3QsIGlmIHRoZSBz ZWxlY3QgbmFtZXNwYWNlIGlzIGEgdGVtcG9yYXJ5IG5hbWVzcGFjZSwKKyAqIHdlIG1hcmsg dGhlIFJhbmdlVmFyIGFzIFJFTFBFUlNJU1RFTkNFX1RFTVAuCiAgKi8KIE9pZAotUmFuZ2VW YXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IFJhbmdlVmFyICpuZXdSZWxh dGlvbikKK1JhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShSYW5nZVZhciAq cmVsYXRpb24sCisJCQkJCQkJCQkgTE9DS01PREUgbG9ja21vZGUsCisJCQkJCQkJCQkgT2lk ICpleGlzdGluZ19yZWxhdGlvbl9pZCkKIHsKLQlPaWQJCQluYW1lc3BhY2VJZDsKKwl1aW50 NjQJCWludmFsX2NvdW50OworCU9pZAkJCXJlbGlkOworCU9pZAkJCW9sZHJlbGlkID0gSW52 YWxpZE9pZDsKKwlPaWQJCQluc3BpZDsKKwlPaWQJCQlvbGRuc3BpZCA9IEludmFsaWRPaWQ7 CisJYm9vbAkJcmV0cnkgPSBmYWxzZTsKIAotCW5hbWVzcGFjZUlkID0gUmFuZ2VWYXJHZXRD cmVhdGlvbk5hbWVzcGFjZShuZXdSZWxhdGlvbik7CisJLyoKKwkgKiBXZSBjaGVjayB0aGUg Y2F0YWxvZyBuYW1lIGFuZCB0aGVuIGlnbm9yZSBpdC4KKwkgKi8KKwlpZiAocmVsYXRpb24t PmNhdGFsb2duYW1lKQorCXsKKwkJaWYgKHN0cmNtcChyZWxhdGlvbi0+Y2F0YWxvZ25hbWUs IGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1l bnRlZDogXCIlcy4lcy4lc1wiIiwKKwkJCQkJCQlyZWxhdGlvbi0+Y2F0YWxvZ25hbWUsIHJl bGF0aW9uLT5zY2hlbWFuYW1lLAorCQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSkpOworCX0K IAogCS8qCi0JICogQ2hlY2sgd2UgaGF2ZSBwZXJtaXNzaW9uIHRvIGNyZWF0ZSB0aGVyZS4g U2tpcCBjaGVjayBpZiBib290c3RyYXBwaW5nLAotCSAqIHNpbmNlIHBlcm1pc3Npb25zIG1h Y2hpbmVyeSBtYXkgbm90IGJlIHdvcmtpbmcgeWV0LgorCSAqIEFzIGluIFJhbmdlVmFyR2V0 UmVsaWRFeHRlbmRlZCgpLCB3ZSBndWFyZCBhZ2FpbnN0IGNvbmN1cnJlbnQgRERMCisJICog b3BlcmF0aW9ucyBieSB0cmFja2luZyB3aGV0aGVyIGFueSBpbnZhbGlkYXRpb24gbWVzc2Fn ZXMgYXJlIHByb2Nlc3NlZAorCSAqIHdoaWxlIHdlJ3JlIGRvaW5nIHRoZSBuYW1lIGxvb2t1 cHMgYW5kIGFjcXVpcmluZyBsb2Nrcy4gIFNlZSBjb21tZW50cworCSAqIGluIHRoYXQgZnVu Y3Rpb24gZm9yIGEgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbiBvZiB0aGlzIGxvZ2ljLgog CSAqLwotCWlmICghSXNCb290c3RyYXBQcm9jZXNzaW5nTW9kZSgpKQorCWZvciAoOzspCiAJ ewogCQlBY2xSZXN1bHQJYWNscmVzdWx0OwogCi0JCWFjbHJlc3VsdCA9IHBnX25hbWVzcGFj ZV9hY2xjaGVjayhuYW1lc3BhY2VJZCwgR2V0VXNlcklkKCksCi0JCQkJCQkJCQkJICBBQ0xf Q1JFQVRFKTsKKwkJaW52YWxfY291bnQgPSBTaGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXI7 CisKKwkJLyogTG9vayB1cCBjcmVhdGlvbiBuYW1lc3BhY2UgYW5kIGNoZWNrIGZvciBleGlz dGluZyByZWxhdGlvbi4gKi8KKwkJbnNwaWQgPSBSYW5nZVZhckdldENyZWF0aW9uTmFtZXNw YWNlKHJlbGF0aW9uKTsKKwkJQXNzZXJ0KE9pZElzVmFsaWQobnNwaWQpKTsKKwkJaWYgKGV4 aXN0aW5nX3JlbGF0aW9uX2lkICE9IE5VTEwpCisJCQlyZWxpZCA9IGdldF9yZWxuYW1lX3Jl bGlkKHJlbGF0aW9uLT5yZWxuYW1lLCBuc3BpZCk7CisJCWVsc2UKKwkJCXJlbGlkID0gSW52 YWxpZE9pZDsKKworCQkvKgorCQkgKiBJbiBib290c3RyYXAgcHJvY2Vzc2luZyBtb2RlLCB3 ZSBkb24ndCBib3RoZXIgd2l0aCBwZXJtaXNzaW9ucworCQkgKiBvciBsb2NraW5nLiAgUGVy bWlzc2lvbnMgbWlnaHQgbm90IGJlIHdvcmtpbmcgeWV0LCBhbmQgbG9ja2luZyBpcworCQkg KiB1bm5lY2Vzc2FyeS4KKwkJICovCisJCWlmIChJc0Jvb3RzdHJhcFByb2Nlc3NpbmdNb2Rl KCkpCisJCQlicmVhazsKKworCQkvKiBDaGVjayBuYW1lc3BhY2UgcGVybWlzc2lvbnMuICov CisJCWFjbHJlc3VsdCA9IHBnX25hbWVzcGFjZV9hY2xjaGVjayhuc3BpZCwgR2V0VXNlcklk KCksIEFDTF9DUkVBVEUpOwogCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQogCQkJ YWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBBQ0xfS0lORF9OQU1FU1BBQ0UsCi0JCQkJCQkg ICBnZXRfbmFtZXNwYWNlX25hbWUobmFtZXNwYWNlSWQpKTsKKwkJCQkJCSAgIGdldF9uYW1l c3BhY2VfbmFtZShuc3BpZCkpOworCisJCWlmIChyZXRyeSkKKwkJeworCQkJLyogSWYgbm90 aGluZyBjaGFuZ2VkLCB3ZSdyZSBkb25lLiAqLworCQkJaWYgKHJlbGlkID09IG9sZHJlbGlk ICYmIG5zcGlkID09IG9sZG5zcGlkKQorCQkJCWJyZWFrOworCQkJLyogSWYgY3JlYXRpb24g bmFtZXNwYWNlIGhhcyBjaGFuZ2VkLCBnaXZlIHVwIG9sZCBsb2NrLiAqLworCQkJaWYgKG5z cGlkICE9IG9sZG5zcGlkKQorCQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KE5hbWVzcGFjZVJl bGF0aW9uSWQsIG9sZG5zcGlkLCAwLAorCQkJCQkJCQkJIEFjY2Vzc1NoYXJlTG9jayk7CisJ CQkvKiBJZiBuYW1lIHBvaW50cyB0byBzb21ldGhpbmcgZGlmZmVyZW50LCBnaXZlIHVwIG9s ZCBsb2NrLiAqLworCQkJaWYgKHJlbGlkICE9IG9sZHJlbGlkICYmIE9pZElzVmFsaWQob2xk cmVsaWQpICYmIGxvY2ttb2RlICE9IE5vTG9jaykKKwkJCQlVbmxvY2tSZWxhdGlvbk9pZChv bGRyZWxpZCwgbG9ja21vZGUpOworCQl9CisKKwkJLyogTG9jayBuYW1lc3BhY2UuICovCisJ CWlmIChuc3BpZCAhPSBvbGRuc3BpZCkKKwkJCUxvY2tEYXRhYmFzZU9iamVjdChOYW1lc3Bh Y2VSZWxhdGlvbklkLCBuc3BpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCQkvKiBMb2Nr IHJlbGF0aW9uLCBpZiByZXF1aXJlZCBpZiBhbmQgd2UgaGF2ZSBwZXJtaXNzaW9uLiAqLwor CQlpZiAobG9ja21vZGUgIT0gTm9Mb2NrICYmIE9pZElzVmFsaWQocmVsaWQpKQorCQl7CisJ CQlpZiAoIXBnX2NsYXNzX293bmVyY2hlY2socmVsaWQsIEdldFVzZXJJZCgpKSkKKwkJCQlh Y2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIEFDTF9LSU5EX0NMQVNTLAorCQkJ CQkJCSAgIHJlbGF0aW9uLT5yZWxuYW1lKTsKKwkJCWlmIChyZWxpZCAhPSBvbGRyZWxpZCkK KwkJCQlMb2NrUmVsYXRpb25PaWQocmVsaWQsIGxvY2ttb2RlKTsKKwkJfQorCisJCS8qIElm IG5vIGludmFsaWRhdGlvbiBtZXNzYWdlIHdlcmUgcHJvY2Vzc2VkLCB3ZSdyZSBkb25lISAq LworCQlpZiAoaW52YWxfY291bnQgPT0gU2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyKQor CQkJYnJlYWs7CisKKwkJLyogU29tZXRoaW5nIG1heSBoYXZlIGNoYW5nZWQsIHNvIHJlY2hl Y2sgb3VyIHdvcmsuICovCisJCXJldHJ5ID0gdHJ1ZTsKKwkJb2xkcmVsaWQgPSByZWxpZDsK KwkJb2xkbnNwaWQgPSBuc3BpZDsKIAl9CiAKLQlyZXR1cm4gbmFtZXNwYWNlSWQ7CisJUmFu Z2VWYXJBZGp1c3RSZWxhdGlvblBlcnNpc3RlbmNlKHJlbGF0aW9uLCBuc3BpZCk7CisJaWYg KGV4aXN0aW5nX3JlbGF0aW9uX2lkICE9IE5VTEwpCisJCSpleGlzdGluZ19yZWxhdGlvbl9p ZCA9IHJlbGlkOworCXJldHVybiBuc3BpZDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKaW5kZXggYzM3MzAxNi4uZDA4NDNiMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKQEAgLTQ1MSwxMCArNDUxLDEyIEBAIERlZmluZVJlbGF0aW9uKENyZWF0ZVN0 bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQpCiAKIAkvKgogCSAqIExvb2sg dXAgdGhlIG5hbWVzcGFjZSBpbiB3aGljaCB3ZSBhcmUgc3VwcG9zZWQgdG8gY3JlYXRlIHRo ZSByZWxhdGlvbiwKLQkgKiBhbmQgY2hlY2sgd2UgaGF2ZSBwZXJtaXNzaW9uIHRvIGNyZWF0 ZSB0aGVyZS4KKwkgKiBjaGVjayB3ZSBoYXZlIHBlcm1pc3Npb24gdG8gY3JlYXRlIHRoZXJl LCBsb2NrIGl0IGFnYWluc3QgY29uY3VycmVudAorCSAqIGRyb3AsIGFuZCBtYXJrIHN0bXQt PnJlbGF0aW9uIGFzIFJFTFBFUlNJU1RFTkNFX1RFTVAgaWYgYSB0ZW1wb3JhcnkKKwkgKiBu YW1lc3BhY2UgaXMgc2VsZWN0ZWQuCiAJICovCi0JbmFtZXNwYWNlSWQgPSBSYW5nZVZhckdl dEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uoc3RtdC0+cmVsYXRpb24pOwotCVJhbmdlVmFy QWRqdXN0UmVsYXRpb25QZXJzaXN0ZW5jZShzdG10LT5yZWxhdGlvbiwgbmFtZXNwYWNlSWQp OworCW5hbWVzcGFjZUlkID0KKwkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNw YWNlKHN0bXQtPnJlbGF0aW9uLCBOb0xvY2ssIE5VTEwpOwogCiAJLyoKIAkgKiBTZWN1cml0 eSBjaGVjazogZGlzYWxsb3cgY3JlYXRpbmcgdGVtcCB0YWJsZXMgZnJvbSBzZWN1cml0eS1y ZXN0cmljdGVkCkBAIC05NDE3LDYgKzk0MTksNyBAQCBBbHRlclRhYmxlTmFtZXNwYWNlKEFs dGVyT2JqZWN0U2NoZW1hU3RtdCAqc3RtdCkKIAlPaWQJCQlvbGROc3BPaWQ7CiAJT2lkCQkJ bnNwT2lkOwogCVJlbGF0aW9uCWNsYXNzUmVsOworCVJhbmdlVmFyICAgKm5ld3J2OwogCiAJ cmVsaWQgPSBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoc3RtdC0+cmVsYXRpb24sIEFjY2Vz c0V4Y2x1c2l2ZUxvY2ssCiAJCQkJCQkJCQkgZmFsc2UsIGZhbHNlLApAQCAtOTQ0MSw4ICs5 NDQ0LDkgQEAgQWx0ZXJUYWJsZU5hbWVzcGFjZShBbHRlck9iamVjdFNjaGVtYVN0bXQgKnN0 bXQpCiAJCQkJCQlnZXRfcmVsX25hbWUodGFibGVJZCkpKSk7CiAJfQogCi0JLyogZ2V0IHNj aGVtYSBPSUQgYW5kIGNoZWNrIGl0cyBwZXJtaXNzaW9ucyAqLwotCW5zcE9pZCA9IExvb2t1 cENyZWF0aW9uTmFtZXNwYWNlKHN0bXQtPm5ld3NjaGVtYSk7CisJLyogR2V0IGFuZCBsb2Nr IHNjaGVtYSBPSUQgYW5kIGNoZWNrIGl0cyBwZXJtaXNzaW9ucy4gKi8KKwluZXdydiA9IG1h a2VSYW5nZVZhcihzdG10LT5uZXdzY2hlbWEsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJl bCksIC0xKTsKKwluc3BPaWQgPSBSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25OYW1lc3Bh Y2UobmV3cnYsIE5vTG9jaywgTlVMTCk7CiAKIAkvKiBjb21tb24gY2hlY2tzIG9uIHN3aXRj aGluZyBuYW1lc3BhY2VzICovCiAJQ2hlY2tTZXROYW1lc3BhY2Uob2xkTnNwT2lkLCBuc3BP aWQsIFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdHlwZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRz LmMKaW5kZXggMGY4YWYzMS4uMDA0M2JmMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5j CkBAIC0yMDA1LDcgKzIwMDUsOCBAQCBEZWZpbmVDb21wb3NpdGVUeXBlKGNvbnN0IFJhbmdl VmFyICp0eXBldmFyLCBMaXN0ICpjb2xkZWZsaXN0KQogCSAqIGNoZWNrIGlzIGhlcmUgbWFp bmx5IHRvIGdldCBhIGJldHRlciBlcnJvciBtZXNzYWdlIGFib3V0IGEgInR5cGUiCiAJICog aW5zdGVhZCBvZiBiZWxvdyBhYm91dCBhICJyZWxhdGlvbiIuCiAJICovCi0JdHlwZU5hbWVz cGFjZSA9IFJhbmdlVmFyR2V0Q3JlYXRpb25OYW1lc3BhY2UoY3JlYXRlU3RtdC0+cmVsYXRp b24pOworCXR5cGVOYW1lc3BhY2UgPSBSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25OYW1l c3BhY2UoY3JlYXRlU3RtdC0+cmVsYXRpb24sCisJCQkJCQkJCQkJCQkJCSBOb0xvY2ssIE5V TEwpOwogCVJhbmdlVmFyQWRqdXN0UmVsYXRpb25QZXJzaXN0ZW5jZShjcmVhdGVTdG10LT5y ZWxhdGlvbiwgdHlwZU5hbWVzcGFjZSk7CiAJb2xkX3R5cGVfb2lkID0KIAkJR2V0U3lzQ2Fj aGVPaWQyKFRZUEVOQU1FTlNQLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmlldy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCmluZGV4IGZmOWM0NDkuLmMz NTIwYWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKQEAgLTk4LDEwICs5OCwxMiBAQCBpc1ZpZXdP blRlbXBUYWJsZV93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKICAqLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgKi8KIHN0YXRpYyBPaWQKLURlZmluZVZpcnR1YWxSZWxhdGlvbihjb25z dCBSYW5nZVZhciAqcmVsYXRpb24sIExpc3QgKnRsaXN0LCBib29sIHJlcGxhY2UsCi0JCQkJ CSAgT2lkIG5hbWVzcGFjZUlkLCBMaXN0ICpvcHRpb25zKQorRGVmaW5lVmlydHVhbFJlbGF0 aW9uKFJhbmdlVmFyICpyZWxhdGlvbiwgTGlzdCAqdGxpc3QsIGJvb2wgcmVwbGFjZSwKKwkJ CQkJICBMaXN0ICpvcHRpb25zKQogewogCU9pZAkJCXZpZXdPaWQ7CisJT2lkCQkJbmFtZXNw YWNlSWQ7CisJTE9DS01PREUJbG9ja21vZGU7CiAJQ3JlYXRlU3RtdCAqY3JlYXRlU3RtdCA9 IG1ha2VOb2RlKENyZWF0ZVN0bXQpOwogCUxpc3QJICAgKmF0dHJMaXN0OwogCUxpc3RDZWxs ICAgKnQ7CkBAIC0xNTksOSArMTYxLDE0IEBAIERlZmluZVZpcnR1YWxSZWxhdGlvbihjb25z dCBSYW5nZVZhciAqcmVsYXRpb24sIExpc3QgKnRsaXN0LCBib29sIHJlcGxhY2UsCiAJCQkJ IGVycm1zZygidmlldyBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGNvbHVtbiIpKSk7CiAKIAkv KgotCSAqIENoZWNrIHRvIHNlZSBpZiB3ZSB3YW50IHRvIHJlcGxhY2UgYW4gZXhpc3Rpbmcg dmlldy4KKwkgKiBMb29rIHVwLCBjaGVjayBwZXJtaXNzaW9ucyBvbiwgYW5kIGxvY2sgdGhl IGNyZWF0aW9uIG5hbWVzcGFjZTsgYWxzbworCSAqIGNoZWNrIGZvciBhIHByZWV4aXN0aW5n IHZpZXcgd2l0aCB0aGUgc2FtZSBuYW1lLiAgVGhpcyB3aWxsIGFsc28gc2V0CisJICogcmVs YXRpb24tPnJlbHBlcnNpc3RlbmNlIHRvIFJFTFBFUlNJU1RFTkNFX1RFTVAgaWYgdGhlIHNl bGVjdGVkCisJICogbmFtZXNwYWNlIGlzIHRlbXBvcmFyeS4KIAkgKi8KLQl2aWV3T2lkID0g Z2V0X3JlbG5hbWVfcmVsaWQocmVsYXRpb24tPnJlbG5hbWUsIG5hbWVzcGFjZUlkKTsKKwls b2NrbW9kZSA9IHJlcGxhY2UgPyBBY2Nlc3NFeGNsdXNpdmVMb2NrIDogTm9Mb2NrOworCW5h bWVzcGFjZUlkID0KKwkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKHJl bGF0aW9uLCBsb2NrbW9kZSwgJnZpZXdPaWQpOwogCiAJaWYgKE9pZElzVmFsaWQodmlld09p ZCkgJiYgcmVwbGFjZSkKIAl7CkBAIC0xNzAsMjQgKzE3NywxNiBAQCBEZWZpbmVWaXJ0dWFs UmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBMaXN0ICp0bGlzdCwgYm9vbCBy ZXBsYWNlLAogCQlMaXN0CSAgICphdGNtZHMgPSBOSUw7CiAJCUFsdGVyVGFibGVDbWQgKmF0 Y21kOwogCi0JCS8qCi0JCSAqIFllcy4gIEdldCBleGNsdXNpdmUgbG9jayBvbiB0aGUgZXhp c3RpbmcgdmlldyAuLi4KLQkJICovCi0JCXJlbCA9IHJlbGF0aW9uX29wZW4odmlld09pZCwg QWNjZXNzRXhjbHVzaXZlTG9jayk7CisJCS8qIFJlbGF0aW9uIGlzIGFscmVhZHkgbG9ja2Vk LCBidXQgd2UgbXVzdCBidWlsZCBhIHJlbGNhY2hlIGVudHJ5LiAqLworCQlyZWwgPSByZWxh dGlvbl9vcGVuKHZpZXdPaWQsIE5vTG9jayk7CiAKLQkJLyoKLQkJICogTWFrZSBzdXJlIGl0 ICppcyogYSB2aWV3LCBhbmQgZG8gcGVybWlzc2lvbnMgY2hlY2tzLgotCQkgKi8KKwkJLyog TWFrZSBzdXJlIGl0ICppcyogYSB2aWV3LiAqLwogCQlpZiAocmVsLT5yZF9yZWwtPnJlbGtp bmQgIT0gUkVMS0lORF9WSUVXKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUo RVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCiAJCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBu b3QgYSB2aWV3IiwKIAkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwog Ci0JCWlmICghcGdfY2xhc3Nfb3duZXJjaGVjayh2aWV3T2lkLCBHZXRVc2VySWQoKSkpCi0J CQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIEFDTF9LSU5EX0NMQVNTLAot CQkJCQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7Ci0KIAkJLyogQWxzbyBj aGVjayBpdCdzIG5vdCBpbiB1c2UgYWxyZWFkeSAqLwogCQlDaGVja1RhYmxlTm90SW5Vc2Uo cmVsLCAiQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyIpOwogCkBAIC00MjgsNyArNDI3LDYgQEAg RGVmaW5lVmlldyhWaWV3U3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcpCiB7 CiAJUXVlcnkJICAgKnZpZXdQYXJzZTsKIAlPaWQJCQl2aWV3T2lkOwotCU9pZAkJCW5hbWVz cGFjZUlkOwogCVJhbmdlVmFyICAgKnZpZXc7CiAKIAkvKgpAQCAtNTE0LDEwICs1MTIsNiBA QCBEZWZpbmVWaWV3KFZpZXdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZykK IAkJCQkJCXZpZXctPnJlbG5hbWUpKSk7CiAJfQogCi0JLyogTWlnaHQgYWxzbyBuZWVkIHRv IG1ha2UgaXQgdGVtcG9yYXJ5IGlmIHBsYWNlZCBpbiB0ZW1wIHNjaGVtYS4gKi8KLQluYW1l c3BhY2VJZCA9IFJhbmdlVmFyR2V0Q3JlYXRpb25OYW1lc3BhY2Uodmlldyk7Ci0JUmFuZ2VW YXJBZGp1c3RSZWxhdGlvblBlcnNpc3RlbmNlKHZpZXcsIG5hbWVzcGFjZUlkKTsKLQogCS8q CiAJICogQ3JlYXRlIHRoZSB2aWV3IHJlbGF0aW9uCiAJICoKQEAgLTUyNSw3ICs1MTksNyBA QCBEZWZpbmVWaWV3KFZpZXdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZykK IAkgKiBhYm9ydGVkLgogCSAqLwogCXZpZXdPaWQgPSBEZWZpbmVWaXJ0dWFsUmVsYXRpb24o dmlldywgdmlld1BhcnNlLT50YXJnZXRMaXN0LAotCQkJCQkJCQkJc3RtdC0+cmVwbGFjZSwg bmFtZXNwYWNlSWQsIHN0bXQtPm9wdGlvbnMpOworCQkJCQkJCQkJc3RtdC0+cmVwbGFjZSwg c3RtdC0+b3B0aW9ucyk7CiAKIAkvKgogCSAqIFRoZSByZWxhdGlvbiB3ZSBoYXZlIGp1c3Qg Y3JlYXRlZCBpcyBub3QgdmlzaWJsZSB0byBhbnkgb3RoZXIgY29tbWFuZHMKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjTWFpbi5jCmluZGV4IDU2OWQwYmEuLjQyMmY3MzcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY01haW4uYwpAQCAtMjUzMiwxMSArMjUzMiwxMyBAQCBPcGVuSW50b1JlbChRdWVy eURlc2MgKnF1ZXJ5RGVzYykKIAl9CiAKIAkvKgotCSAqIEZpbmQgbmFtZXNwYWNlIHRvIGNy ZWF0ZSBpbiwgY2hlY2sgaXRzIHBlcm1pc3Npb25zCisJICogRmluZCBuYW1lc3BhY2UgdG8g Y3JlYXRlIGluLCBjaGVjayBpdHMgcGVybWlzc2lvbnMsIGxvY2sgaXQgYWdhaW5zdAorCSAq IGNvbmN1cnJlbnQgZHJvcCwgYW5kIG1hcmsgaW50by0+cmVsIGFzIFJFTFBFUlNJU1RFTkNF X1RFTVAgaWYgdGhlCisJICogc2VsZWN0ZWQgbmFtZXNwYWNlIGlzIHRlbXBvcmFyeS4KIAkg Ki8KIAlpbnRvTmFtZSA9IGludG8tPnJlbC0+cmVsbmFtZTsKLQluYW1lc3BhY2VJZCA9IFJh bmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShpbnRvLT5yZWwpOwotCVJhbmdl VmFyQWRqdXN0UmVsYXRpb25QZXJzaXN0ZW5jZShpbnRvLT5yZWwsIG5hbWVzcGFjZUlkKTsK KwluYW1lc3BhY2VJZCA9IFJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShp bnRvLT5yZWwsIE5vTG9jaywKKwkJCQkJCQkJCQkJCQkgICBOVUxMKTsKIAogCS8qCiAJICog U2VjdXJpdHkgY2hlY2s6IGRpc2FsbG93IGNyZWF0aW5nIHRlbXAgdGFibGVzIGZyb20gc2Vj dXJpdHktcmVzdHJpY3RlZApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKaW5kZXgg MzM1YmRjNi4uOTkxNTdjNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBA IC0xNDYsNiArMTQ2LDcgQEAgdHJhbnNmb3JtQ3JlYXRlU3RtdChDcmVhdGVTdG10ICpzdG10 LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZykKIAlMaXN0CSAgICpzYXZlX2FsaXN0OwogCUxp c3RDZWxsICAgKmVsZW1lbnRzOwogCU9pZAkJCW5hbWVzcGFjZWlkOworCU9pZAkJCWV4aXN0 aW5nX3JlbGlkOwogCiAJLyoKIAkgKiBXZSBtdXN0IG5vdCBzY3JpYmJsZSBvbiB0aGUgcGFz c2VkLWluIENyZWF0ZVN0bXQsIHNvIGNvcHkgaXQuICAoVGhpcyBpcwpAQCAtMTU1LDMwICsx NTYsMjUgQEAgdHJhbnNmb3JtQ3JlYXRlU3RtdChDcmVhdGVTdG10ICpzdG10LCBjb25zdCBj aGFyICpxdWVyeVN0cmluZykKIAogCS8qCiAJICogTG9vayB1cCB0aGUgY3JlYXRpb24gbmFt ZXNwYWNlLglUaGlzIGFsc28gY2hlY2tzIHBlcm1pc3Npb25zIG9uIHRoZQotCSAqIHRhcmdl dCBuYW1lc3BhY2UsIHNvIHRoYXQgd2UgdGhyb3cgYW55IHBlcm1pc3Npb25zIGVycm9yIGFz IGVhcmx5IGFzCi0JICogcG9zc2libGUuCisJICogdGFyZ2V0IG5hbWVzcGFjZSwgbG9ja3Mg aXQgYWdhaW5zdCBjb25jdXJyZW50IGRyb3BzLCBjaGVja3MgZm9yIGEKKwkgKiBwcmVleGlz dGluZyByZWxhdGlvbiBpbiB0aGF0IG5hbWVzcGFjZSB3aXRoIHRoZSBzYW1lIG5hbWUsIGFu ZCB1cGRhdGVzCisJICogc3RtdC0+cmVsYXRpb24tPnJlbHBlcnNpc3RlbmNlIGlmIHRoZSBz ZWxlY3QgbmFtZXNwYWNlIGlzIHRlbXBvcmFyeS4KIAkgKi8KLQluYW1lc3BhY2VpZCA9IFJh bmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShzdG10LT5yZWxhdGlvbik7Ci0J UmFuZ2VWYXJBZGp1c3RSZWxhdGlvblBlcnNpc3RlbmNlKHN0bXQtPnJlbGF0aW9uLCBuYW1l c3BhY2VpZCk7CisJbmFtZXNwYWNlaWQgPQorCQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRp b25OYW1lc3BhY2Uoc3RtdC0+cmVsYXRpb24sIE5vTG9jaywKKwkJCQkJCQkJCQkJICZleGlz dGluZ19yZWxpZCk7CiAKIAkvKgogCSAqIElmIHRoZSByZWxhdGlvbiBhbHJlYWR5IGV4aXN0 cyBhbmQgdGhlIHVzZXIgc3BlY2lmaWVkICJJRiBOT1QgRVhJU1RTIiwKIAkgKiBiYWlsIG91 dCB3aXRoIGEgTk9USUNFLgogCSAqLwotCWlmIChzdG10LT5pZl9ub3RfZXhpc3RzKQorCWlm IChzdG10LT5pZl9ub3RfZXhpc3RzICYmIE9pZElzVmFsaWQoZXhpc3RpbmdfcmVsaWQpKQog CXsKLQkJT2lkCQkJZXhpc3RpbmdfcmVsaWQ7Ci0KLQkJZXhpc3RpbmdfcmVsaWQgPSBnZXRf cmVsbmFtZV9yZWxpZChzdG10LT5yZWxhdGlvbi0+cmVsbmFtZSwKLQkJCQkJCQkJCQkgICBu YW1lc3BhY2VpZCk7Ci0JCWlmIChleGlzdGluZ19yZWxpZCAhPSBJbnZhbGlkT2lkKQotCQl7 Ci0JCQllcmVwb3J0KE5PVElDRSwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVf VEFCTEUpLAotCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMs IHNraXBwaW5nIiwKLQkJCQkJCQlzdG10LT5yZWxhdGlvbi0+cmVsbmFtZSkpKTsKLQkJCXJl dHVybiBOSUw7Ci0JCX0KKwkJZXJlcG9ydChOT1RJQ0UsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9EVVBMSUNBVEVfVEFCTEUpLAorCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBhbHJl YWR5IGV4aXN0cywgc2tpcHBpbmciLAorCQkJCQkJc3RtdC0+cmVsYXRpb24tPnJlbG5hbWUp KSk7CisJCXJldHVybiBOSUw7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5o CmluZGV4IDM3YjI1OWQuLmZhM2JhNWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaApA QCAtNTgsNyArNTgsOSBAQCBleHRlcm4gT2lkCVJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChj b25zdCBSYW5nZVZhciAqcmVsYXRpb24sCiAJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxi YWNrIGNhbGxiYWNrLAogCQkJCQkJIHZvaWQgKmNhbGxiYWNrX2FyZyk7CiBleHRlcm4gT2lk CVJhbmdlVmFyR2V0Q3JlYXRpb25OYW1lc3BhY2UoY29uc3QgUmFuZ2VWYXIgKm5ld1JlbGF0 aW9uKTsKLWV4dGVybiBPaWQJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNl KGNvbnN0IFJhbmdlVmFyICpuZXdSZWxhdGlvbik7CitleHRlcm4gT2lkCVJhbmdlVmFyR2V0 QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShSYW5nZVZhciAqbmV3UmVsYXRpb24sCisJCQkJ CQkJCQkgTE9DS01PREUgbG9ja21vZGUsCisJCQkJCQkJCQkgT2lkICpleGlzdGluZ19yZWxh dGlvbl9pZCk7CiBleHRlcm4gdm9pZCBSYW5nZVZhckFkanVzdFJlbGF0aW9uUGVyc2lzdGVu Y2UoUmFuZ2VWYXIgKm5ld1JlbGF0aW9uLCBPaWQgbnNwaWQpOwogZXh0ZXJuIE9pZAlSZWxu YW1lR2V0UmVsaWQoY29uc3QgY2hhciAqcmVsbmFtZSk7CiBleHRlcm4gYm9vbCBSZWxhdGlv bklzVmlzaWJsZShPaWQgcmVsaWQpOwoKY29tbWl0IDAxZDgzZmZkY2FlOTJmNzVkYmZkNDFk ZTBiNDIxM2QyNDFlZGQzOTQKQXV0aG9yOiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1bnNs YW5lLm5ldD4KRGF0ZTogICBTdW4gSmFuIDE1IDE2OjE1OjA0IDIwMTIgLTA1MDAKCiAgICBJ bXByb3ZlIGVmZmljaWVuY3kgb2YgcmVjZW50IGNoYW5nZXMgdG8gcGxwZXJsJ3Mgc3YyY3N0 cigpLgogICAgCiAgICBBbG9uZyB0aGUgd2F5LCBhZGQgYSBtaXNzaW5nIGRlcGVuZGVuY3kg aW4gdGhlIEdOVW1ha2VmaWxlLgogICAgCiAgICBBbGV4IEh1bnNha2VyLCB3aXRoIGEgc2xp Z2h0IGFkanVzdG1lbnQgYnkgbWUuCgpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGVybC9HTlVt YWtlZmlsZSBiL3NyYy9wbC9wbHBlcmwvR05VbWFrZWZpbGUKaW5kZXggMGYzYmQ5OS4uMTg4 ZDdkMiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGVybC9HTlVtYWtlZmlsZQorKysgYi9zcmMv cGwvcGxwZXJsL0dOVW1ha2VmaWxlCkBAIC03MiwxMSArNzIsMTEgQEAgcGVybGNodW5rcy5o OiAkKFBFUkxDSFVOS1MpCiAKIGFsbDogYWxsLWxpYgogCi1TUEkuYzogU1BJLnhzCitTUEku YzogU1BJLnhzIHBscGVybF9oZWxwZXJzLmgKIAlAaWYgWyB4IiQocGVybF9wcml2bGliZXhw KSIgPSB4IiIgXTsgdGhlbiBlY2hvICJjb25maWd1cmUgc3dpdGNoIC0td2l0aC1wZXJsIHdh cyBub3Qgc3BlY2lmaWVkLiI7IGV4aXQgMTsgZmkKIAkkKFBFUkwpICQoWFNVQlBQRElSKS9F eHRVdGlscy94c3VicHAgLXR5cGVtYXAgJChwZXJsX3ByaXZsaWJleHApL0V4dFV0aWxzL3R5 cGVtYXAgJDwgPiRACiAKLVV0aWwuYzogVXRpbC54cworVXRpbC5jOiBVdGlsLnhzIHBscGVy bF9oZWxwZXJzLmgKIAlAaWYgWyB4IiQocGVybF9wcml2bGliZXhwKSIgPSB4IiIgXTsgdGhl biBlY2hvICJjb25maWd1cmUgc3dpdGNoIC0td2l0aC1wZXJsIHdhcyBub3Qgc3BlY2lmaWVk LiI7IGV4aXQgMTsgZmkKIAkkKFBFUkwpICQoWFNVQlBQRElSKS9FeHRVdGlscy94c3VicHAg LXR5cGVtYXAgJChwZXJsX3ByaXZsaWJleHApL0V4dFV0aWxzL3R5cGVtYXAgJDwgPiRACiAK ZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBlcmwvZXhwZWN0ZWQvcGxwZXJsX2Vsb2cub3V0IGIv c3JjL3BsL3BscGVybC9leHBlY3RlZC9wbHBlcmxfZWxvZy5vdXQKaW5kZXggMDI0OTdkOS4u NjBlYWRlOCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGVybC9leHBlY3RlZC9wbHBlcmxfZWxv Zy5vdXQKKysrIGIvc3JjL3BsL3BscGVybC9leHBlY3RlZC9wbHBlcmxfZWxvZy5vdXQKQEAg LTU4LDMgKzU4LDcgQEAgc2VsZWN0IHVzZXNfZ2xvYmFsKCk7CiAgdXNlc19nbG9iYWwgd29y a2VkCiAoMSByb3cpCiAKKy0tIG1ha2Ugc3VyZSB3ZSBkb24ndCBjaG9rZSBvbiByZWFkb25s eSB2YWx1ZXMKK2RvIGxhbmd1YWdlIHBscGVybCAkJCBlbG9nKE5PVElDRSwgJHteVEFJTlR9 KTsgJCQ7CitOT1RJQ0U6ICAwCitDT05URVhUOiAgUEwvUGVybCBhbm9ueW1vdXMgY29kZSBi bG9jawpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGVybC9wbHBlcmxfaGVscGVycy5oIGIvc3Jj L3BsL3BscGVybC9wbHBlcmxfaGVscGVycy5oCmluZGV4IDgwMGE0MDguLjM1ZTEyNTcgMTAw NjQ0Ci0tLSBhL3NyYy9wbC9wbHBlcmwvcGxwZXJsX2hlbHBlcnMuaAorKysgYi9zcmMvcGwv cGxwZXJsL3BscGVybF9oZWxwZXJzLmgKQEAgLTQ3LDI4ICs0NywzNSBAQCBzdjJjc3RyKFNW ICpzdikKIHsKIAljaGFyCSAgICp2YWwsICpyZXM7CiAJU1RSTEVOCQlsZW47Ci0JU1YgICAg ICAgICAqbnN2OwogCiAJLyoKIAkgKiBnZXQgYSB1dGY4IGVuY29kZWQgY2hhciAqIG91dCBv ZiBwZXJsLiAqbm90ZSogaXQgbWF5IG5vdCBiZSB2YWxpZCB1dGY4IQogCSAqCiAJICogU3ZQ VnV0ZjgoKSBjcm9ha3MgbmFzdGlseSBvbiBjZXJ0YWluIHRoaW5ncywgbGlrZSB0eXBlZ2xv YnMgYW5kCiAJICogcmVhZG9ubHkgb2JqZWN0cyBzdWNoIGFzICReVi4gVGhhdCdzIGEgcGVy bCBidWcgLSBpdCdzIG5vdCBzdXBwb3NlZCB0bwotCSAqIGhhcHBlbi4gVG8gYXZvaWQgY3Jh c2hpbmcgdGhlIGJhY2tlbmQsIHdlIG1ha2UgYSBjb3B5IG9mIHRoZQotCSAqIHN2IGJlZm9y ZSBwYXNzaW5nIGl0IHRvIFN2UFZ1dGY4KCkuIFRoZSBjb3B5IGlzIGdhcmJhZ2UgY29sbGVj dGVkIAorCSAqIGhhcHBlbi4gVG8gYXZvaWQgY3Jhc2hpbmcgdGhlIGJhY2tlbmQsIHdlIG1h a2UgYSBjb3B5IG9mIHRoZSBzdiBiZWZvcmUKKwkgKiBwYXNzaW5nIGl0IHRvIFN2UFZ1dGY4 KCkuIFRoZSBjb3B5IGlzIGdhcmJhZ2UgY29sbGVjdGVkIAogCSAqIHdoZW4gd2UncmUgZG9u ZSB3aXRoIGl0LgogCSAqLwotCW5zdiA9IG5ld1NWc3Yoc3YpOwotCXZhbCA9IFN2UFZ1dGY4 KG5zdiwgbGVuKTsKKwlpZiAoU3ZSRUFET05MWShzdikgfHwKKwkJaXNHVl93aXRoX0dQKHN2 KSB8fAorCQkoU3ZUWVBFKHN2KSA+IFNWdF9QVkxWICYmIFN2VFlQRShzdikgIT0gU1Z0X1BW Rk0pKQorCQlzdiA9IG5ld1NWc3Yoc3YpOworCWVsc2UKKwkJLyogaW5jcmVhc2UgdGhlIHJl ZmVyZW5jZSBjb3VudCBzbyB3ZSBjYW50IGp1c3QgU3ZSRUZDTlRfZGVjKCkgaXQgd2hlbgor CQkgKiB3ZSBhcmUgZG9uZSAqLworCQlTdlJFRkNOVF9pbmMoc3YpOworCisJdmFsID0gU3ZQ VnV0Zjgoc3YsIGxlbik7CiAKIAkvKgogCSAqIHdlIHVzZSBwZXJsJ3MgbGVuZ3RoIGluIHRo ZSBldmVudCB3ZSBoYWQgYW4gZW1iZWRkZWQgbnVsbCBieXRlIHRvIGVuc3VyZQogCSAqIHdl IGVycm9yIG91dCBwcm9wZXJseQogCSAqLwotCXJlcyA9ICB1dGZfdTJlKHZhbCwgbGVuKTsK KwlyZXMgPSB1dGZfdTJlKHZhbCwgbGVuKTsKIAogCS8qIHNhZmUgbm93IHRvIGdhcmJhZ2Ug Y29sbGVjdCB0aGUgbmV3IFNWICovCi0JU3ZSRUZDTlRfZGVjKG5zdik7CisJU3ZSRUZDTlRf ZGVjKHN2KTsKIAogCXJldHVybiByZXM7CiB9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZXJs L3NxbC9wbHBlcmxfZWxvZy5zcWwgYi9zcmMvcGwvcGxwZXJsL3NxbC9wbHBlcmxfZWxvZy5z cWwKaW5kZXggNGYxYzAxNC4uNDA4OTZhNCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGVybC9z cWwvcGxwZXJsX2Vsb2cuc3FsCisrKyBiL3NyYy9wbC9wbHBlcmwvc3FsL3BscGVybF9lbG9n LnNxbApAQCAtNDMsMyArNDMsNiBAQCBjcmVhdGUgb3IgcmVwbGFjZSBmdW5jdGlvbiB1c2Vz X2dsb2JhbCgpIHJldHVybnMgdGV4dCBsYW5ndWFnZSBwbHBlcmwgYXMgJCQKICQkOwogCiBz ZWxlY3QgdXNlc19nbG9iYWwoKTsKKworLS0gbWFrZSBzdXJlIHdlIGRvbid0IGNob2tlIG9u IHJlYWRvbmx5IHZhbHVlcworZG8gbGFuZ3VhZ2UgcGxwZXJsICQkIGVsb2coTk9USUNFLCAk e15UQUlOVH0pOyAkJDsKCmNvbW1pdCBiMmI0YWY1MzVlYjczM2JhMGMyZWE2ZWViMmIxNGNh YzdmMWNhNGJlCkF1dGhvcjogSGVpa2tpIExpbm5ha2FuZ2FzIDxoZWlra2kubGlubmFrYW5n YXNAaWtpLmZpPgpEYXRlOiAgIFN1biBKYW4gMTUgMjI6MDM6MDkgMjAxMiArMDIwMAoKICAg IEZpeCBwb2xsKCkgaW1wbGVtZW50YXRpb24gb2YgV2FpdExhdGNoT3JTb2NrZXQgdG8gbm90 aWNlIHBvc3RtYXN0ZXIgZGVhdGguCiAgICAKICAgIFdoZW4gdGhlIHJlbW90ZSBlbmQgb2Yg dGhlIHBpcGUgaXMgY2xvc2VkLCBzZWxlY3QoKSByZXBvcnRzIHRoZSBmZCBhcwogICAgcmVh ZGFibGUsIGJ1dCBwb2xsKCkgaGFzIGEgc2VwYXJhdGUgUE9MTEhVUCByZXR1cm4gY29kZSBm b3IgdGhhdC4KICAgIAogICAgU3BvdHRlZCBieSBQZXRlciBHZW9naGVnYW4uCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcG9ydC91bml4X2xhdGNoLmMgYi9zcmMvYmFja2VuZC9wb3J0 L3VuaXhfbGF0Y2guYwppbmRleCBmYzFhNTc5Li4xMGJmMmRiIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wb3J0L3VuaXhfbGF0Y2guYworKysgYi9zcmMvYmFja2VuZC9wb3J0L3VuaXhf bGF0Y2guYwpAQCAtMzEwLDggKzMxMCwxMyBAQCBXYWl0TGF0Y2hPclNvY2tldCh2b2xhdGls ZSBMYXRjaCAqbGF0Y2gsIGludCB3YWtlRXZlbnRzLCBwZ3NvY2tldCBzb2NrLAogCQl7CiAJ CQlyZXN1bHQgfD0gV0xfU09DS0VUX1dSSVRFQUJMRTsKIAkJfQorCQkvKgorCQkgKiBXZSBl eHBlY3QgYSBQT0xMSFVQIHdoZW4gdGhlIHJlbW90ZSBlbmQgaXMgY2xvc2VkLCBidXQgYmVj YXVzZSB3ZQorCQkgKiBkb24ndCBleHBlY3QgdGhlIHBpcGUgdG8gYmVjb21lIHJlYWRhYmxl IG9yIHRvIGhhdmUgYW55IGVycm9ycworCQkgKiBlaXRoZXIsIHRyZWF0IHRob3NlIGFzIHBv c3RtYXN0ZXIgZGVhdGgsIHRvby4KKwkJICovCiAJCWlmICgod2FrZUV2ZW50cyAmIFdMX1BP U1RNQVNURVJfREVBVEgpICYmCi0JCQkocGZkc1tuZmRzIC0gMV0ucmV2ZW50cyAmIFBPTExJ TikpCisJCQkocGZkc1tuZmRzIC0gMV0ucmV2ZW50cyAmIChQT0xMSFVQIHwgUE9MTElOIHwg UE9MTEVSUiB8IFBPTExOVkFMKSkpCiAJCXsKIAkJCXJlc3VsdCB8PSBXTF9QT1NUTUFTVEVS X0RFQVRIOwogCQl9Cgpjb21taXQgMDQ5NWFhYWQ4YjMzNzY0MjgzMGE0ZDRlODJmOGI4YzAy YjI3YjFiZQpBdXRob3I6IE1hZ251cyBIYWdhbmRlciA8bWFnbnVzQGhhZ2FuZGVyLm5ldD4K RGF0ZTogICBTdW4gSmFuIDE1IDE1OjM0OjQwIDIwMTIgKzAxMDAKCiAgICBBbGxvdyBhIHVz ZXIgdG8ga2lsbCBoaXMgb3duIHF1ZXJpZXMgdXNpbmcgcGdfY2FuY2VsX2JhY2tlbmQoKQog ICAgCiAgICBBbGxvd3MgYSB1c2VyIHRvIHVzZSBwZ19jYW5jZWxfcXVlcmllcygpIHRvIGNh bmNlbCBxdWVyaWVzIGluCiAgICBvdGhlciBiYWNrZW5kcyBpZiB0aGV5IGFyZSBydW5uaW5n IHVuZGVyIHRoZSBzYW1lIHJvbGUuCiAgICBwZ190ZXJtaW5hdGVfYmFja2VuZCgpIHN0aWxs IHJlcXVpcmVzIHN1cGVydXNlciBwZXJtaXNzb2lucy4KICAgIAogICAgU2hvcnQgcGF0Y2gs IG1hbnkgYXV0aG9ycyB3b3JraW5nIG9uIHRoZSBiaWtlc2hlZDogTWFnbnVzIEhhZ2FuZGVy LAogICAgSm9zaCBLdXBlcnNobWlkdCwgRWR3YXJkIE11bGxlciwgR3JlZyBTbWl0aC4KCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMu c2dtbAppbmRleCAyZTA2MzQ2Li43ZDdhYmE3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv ZnVuYy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKQEAgLTE0MjYyLDggKzE0 MjYyLDggQEAgU0VMRUNUIHNldF9jb25maWcoJ2xvZ19zdGF0ZW1lbnRfc3RhdHMnLCAnb2Zm JywgZmFsc2UpOwogICAgPHBhcmE+CiAgICAgVGhlIGZ1bmN0aW9ucyBzaG93biBpbiA8eHJl ZgogICAgIGxpbmtlbmQ9ImZ1bmN0aW9ucy1hZG1pbi1zaWduYWwtdGFibGUiPiBzZW5kIGNv bnRyb2wgc2lnbmFscyB0bwotICAgIG90aGVyIHNlcnZlciBwcm9jZXNzZXMuICBVc2Ugb2Yg dGhlc2UgZnVuY3Rpb25zIGlzIHJlc3RyaWN0ZWQKLSAgICB0byBzdXBlcnVzZXJzLgorICAg IG90aGVyIHNlcnZlciBwcm9jZXNzZXMuICBVc2Ugb2YgdGhlc2UgZnVuY3Rpb25zIGlzIHVz dWFsbHkgcmVzdHJpY3RlZAorICAgIHRvIHN1cGVydXNlcnMsIHdpdGggbm90ZWQgZXhjZXB0 aW9ucy4KICAgIDwvcGFyYT4KIAogICAgPHRhYmxlIGlkPSJmdW5jdGlvbnMtYWRtaW4tc2ln bmFsLXRhYmxlIj4KQEAgLTE0MjgwLDcgKzE0MjgwLDEwIEBAIFNFTEVDVCBzZXRfY29uZmln KCdsb2dfc3RhdGVtZW50X3N0YXRzJywgJ29mZicsIGZhbHNlKTsKICAgICAgICAgPGxpdGVy YWw+PGZ1bmN0aW9uPnBnX2NhbmNlbF9iYWNrZW5kKDxwYXJhbWV0ZXI+cGlkPC9wYXJhbWV0 ZXI+IDx0eXBlPmludDwvPik8L2Z1bmN0aW9uPjwvbGl0ZXJhbD4KICAgICAgICAgPC9lbnRy eT4KICAgICAgICA8ZW50cnk+PHR5cGU+Ym9vbGVhbjwvdHlwZT48L2VudHJ5PgotICAgICAg IDxlbnRyeT5DYW5jZWwgYSBiYWNrZW5kJ3MgY3VycmVudCBxdWVyeTwvZW50cnk+CisgICAg ICAgPGVudHJ5PkNhbmNlbCBhIGJhY2tlbmQncyBjdXJyZW50IHF1ZXJ5LiAgWW91IGNhbiBl eGVjdXRlIHRoaXMgYWdhaW5zdAorICAgICAgICBhbm90aGVyIGJhY2tlbmQgdGhhdCBoYXMg ZXhhY3RseSB0aGUgc2FtZSByb2xlIGFzIHRoZSB1c2VyIGNhbGxpbmcgdGhlCisgICAgICAg IGZ1bmN0aW9uLiAgSW4gYWxsIG90aGVyIGNhc2VzLCB5b3UgbXVzdCBiZSBhIHN1cGVydXNl ci4KKyAgICAgICAgPC9lbnRyeT4KICAgICAgIDwvcm93PgogICAgICAgPHJvdz4KICAgICAg ICA8ZW50cnk+CkBAIC0xNDMyMiw2ICsxNDMyNSwxMCBAQCBTRUxFQ1Qgc2V0X2NvbmZpZygn bG9nX3N0YXRlbWVudF9zdGF0cycsICdvZmYnLCBmYWxzZSk7CiAgICAgPGNvbW1hbmQ+cG9z dGdyZXM8L2NvbW1hbmQ+IHByb2Nlc3NlcyBvbiB0aGUgc2VydmVyICh1c2luZwogICAgIDxh cHBsaWNhdGlvbj5wczwvPiBvbiBVbml4IG9yIHRoZSA8YXBwbGljYXRpb24+VGFzawogICAg IE1hbmFnZXI8Lz4gb24gPHByb2R1Y3RuYW1lPldpbmRvd3M8Lz4pLgorICAgIEZvciB0aGUg bGVzcyByZXN0cmljdGl2ZSA8ZnVuY3Rpb24+cGdfY2FuY2VsX2JhY2tlbmQ8Lz4sIHRoZSBy b2xlIG9mIGFuCisgICAgYWN0aXZlIGJhY2tlbmQgY2FuIGJlIGZvdW5kIGZyb20KKyAgICB0 aGUgPHN0cnVjdGZpZWxkPnVzZW5hbWU8L3N0cnVjdGZpZWxkPiBjb2x1bW4gb2YgdGhlCisg ICAgPHN0cnVjdG5hbWU+cGdfc3RhdF9hY3Rpdml0eTwvc3RydWN0bmFtZT4gdmlldy4KICAg IDwvcGFyYT4KIAogICAgPHBhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvbWlzYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21pc2MuYwppbmRleCA5NzE1YmRk Li4zZGU2YTVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbWlzYy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9taXNjLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNp bmNsdWRlICJwb3N0bWFzdGVyL3N5c2xvZ2dlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQu aCIKICNpbmNsdWRlICJzdG9yYWdlL3Btc2lnbmFsLmgiCisjaW5jbHVkZSAic3RvcmFnZS9w cm9jLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRlICJ0Y29w L3Rjb3Bwcm90LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKQEAgLTcwLDE1ICs3 MSw0MiBAQCBjdXJyZW50X3F1ZXJ5KFBHX0ZVTkNUSU9OX0FSR1MpCiB9CiAKIC8qCi0gKiBG dW5jdGlvbnMgdG8gc2VuZCBzaWduYWxzIHRvIG90aGVyIGJhY2tlbmRzLgorICogU2VuZCBh IHNpZ25hbCB0byBhbm90aGVyIGJhY2tlbmQuCisgKiBUaGUgc2lnbmFsIGlzIGRlbGl2ZXJl ZCBpZiB0aGUgdXNlciBpcyBlaXRoZXIgYSBzdXBlcnVzZXIgb3IgdGhlIHNhbWUKKyAqIHJv bGUgYXMgdGhlIGJhY2tlbmQgYmVpbmcgc2lnbmFsZWQuIEZvciAiZGFuZ2Vyb3VzIiBzaWdu YWxzLCBhbiBleHBsaWNpdAorICogY2hlY2sgZm9yIHN1cGVydXNlciBuZWVkcyB0byBiZSBk b25lIHByaW9yIHRvIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBSZXR1cm5zIDAg b24gc3VjY2VzcywgMSBvbiBnZW5lcmFsIGZhaWx1cmUsIGFuZCAyIG9uIHBlcm1pc3Npb24g ZXJyb3IuCisgKiBJbiB0aGUgZXZlbnQgb2YgYSBnZW5lcmFsIGZhaWx1cmUgKHJldHVybmNv ZGUgMSksIGEgd2FybmluZyBtZXNzYWdlIHdpbGwKKyAqIGJlIGVtaXR0ZWQuIEZvciBwZXJt aXNzaW9uIGVycm9ycywgZG9pbmcgdGhhdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YKKyAq IHRoZSBjYWxsZXIuCiAgKi8KLXN0YXRpYyBib29sCisjZGVmaW5lIFNJR05BTF9CQUNLRU5E X1NVQ0NFU1MgMAorI2RlZmluZSBTSUdOQUxfQkFDS0VORF9FUlJPUiAxCisjZGVmaW5lIFNJ R05BTF9CQUNLRU5EX05PUEVSTUlTU0lPTiAyCitzdGF0aWMgaW50CiBwZ19zaWduYWxfYmFj a2VuZChpbnQgcGlkLCBpbnQgc2lnKQogeworCVBHUFJPQwkgICAqcHJvYzsKKwogCWlmICgh c3VwZXJ1c2VyKCkpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9J TlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCShlcnJtc2coIm11c3QgYmUgc3VwZXJ1c2Vy IHRvIHNpZ25hbCBvdGhlciBzZXJ2ZXIgcHJvY2Vzc2VzIikpKSk7CisJeworCQkvKgorCQkg KiBTaW5jZSB0aGUgdXNlciBpcyBub3Qgc3VwZXJ1c2VyLCBjaGVjayBmb3IgbWF0Y2hpbmcg cm9sZXMuIFRydXN0CisJCSAqIHRoYXQgQmFja2VuZFBpZEdldFByb2Mgd2lsbCByZXR1cm4g TlVMTCBpZiB0aGUgcGlkIGlzbid0IHZhbGlkLAorCQkgKiBldmVuIHRob3VnaCB0aGUgY2hl Y2sgZm9yIHdoZXRoZXIgaXQncyBhIGJhY2tlbmQgcHJvY2VzcyBpcyBiZWxvdy4KKwkJICog VGhlIElzQmFja2VuZFBpZCBjaGVjayBjYW4ndCBiZSByZWxpZWQgb24gYXMgZGVmaW5pdGl2 ZSBldmVuIGlmIGl0CisJCSAqIHdhcyBmaXJzdC4gVGhlIHByb2Nlc3MgbWlnaHQgZW5kIGJl dHdlZW4gc3VjY2Vzc2l2ZSBjaGVja3MKKwkJICogcmVnYXJkbGVzcyBvZiB0aGVpciBvcmRl ci4gVGhlcmUncyBubyB3YXkgdG8gYWNxdWlyZSBhIGxvY2sgb24gYW4KKwkJICogYXJiaXRy YXJ5IHByb2Nlc3MgdG8gcHJldmVudCB0aGF0LiBCdXQgc2luY2Ugc28gZmFyIGFsbCB0aGUg Y2FsbGVycworCQkgKiBvZiB0aGlzIG1lY2hhbmlzbSBpbnZvbHZlIHNvbWUgcmVxdWVzdCBm b3IgZW5kaW5nIHRoZSBwcm9jZXNzCisJCSAqIGFueXdheSwgdGhhdCBpdCBtaWdodCBlbmQg b24gaXRzIG93biBmaXJzdCBpcyBub3QgYSBwcm9ibGVtLgorCQkgKi8KKwkJcHJvYyA9IEJh Y2tlbmRQaWRHZXRQcm9jKHBpZCk7CisKKwkJaWYgKHByb2MgPT0gTlVMTCB8fCBwcm9jLT5y b2xlSWQgIT0gR2V0VXNlcklkKCkpCisJCQlyZXR1cm4gU0lHTkFMX0JBQ0tFTkRfTk9QRVJN SVNTSU9OOworCX0KIAogCWlmICghSXNCYWNrZW5kUGlkKHBpZCkpCiAJewpAQCAtODgsOSAr MTE2LDE4IEBAIHBnX3NpZ25hbF9iYWNrZW5kKGludCBwaWQsIGludCBzaWcpCiAJCSAqLwog CQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJKGVycm1zZygiUElEICVkIGlzIG5vdCBhIFBvc3Rn cmVTUUwgc2VydmVyIHByb2Nlc3MiLCBwaWQpKSk7Ci0JCXJldHVybiBmYWxzZTsKKwkJcmV0 dXJuIFNJR05BTF9CQUNLRU5EX0VSUk9SOwogCX0KIAorCS8qCisJICogQ2FuIHRoZSBwcm9j ZXNzIHdlIGp1c3QgdmFsaWRhdGVkIGFib3ZlIGVuZCwgZm9sbG93ZWQgYnkgdGhlIHBpZCBi ZWluZworCSAqIHJlY3ljbGVkIGZvciBhIG5ldyBwcm9jZXNzLCBiZWZvcmUgcmVhY2hpbmcg aGVyZT8gIFRoZW4gd2UnZCBiZSB0cnlpbmcKKwkgKiB0byBraWxsIHRoZSB3cm9uZyB0aGlu Zy4gIFNlZW1zIG5lYXIgaW1wb3NzaWJsZSB3aGVuIHNlcXVlbnRpYWwgcGlkCisJICogYXNz aWdubWVudCBhbmQgd3JhcGFyb3VuZCBpcyB1c2VkLiAgUGVyaGFwcyBpdCBjb3VsZCBoYXBw ZW4gb24gYSBzeXN0ZW0KKwkgKiB3aGVyZSBwaWQgcmUtdXNlIGlzIHJhbmRvbWl6ZWQuCVRo YXQgcmFjZSBjb25kaXRpb24gcG9zc2liaWxpdHkgc2VlbXMKKwkgKiB0b28gdW5saWtlbHkg dG8gd29ycnkgYWJvdXQuCisJICovCisKIAkvKiBJZiB3ZSBoYXZlIHNldHNpZCgpLCBzaWdu YWwgdGhlIGJhY2tlbmQncyB3aG9sZSBwcm9jZXNzIGdyb3VwICovCiAjaWZkZWYgSEFWRV9T RVRTSUQKIAlpZiAoa2lsbCgtcGlkLCBzaWcpKQpAQCAtMTAxLDIzICsxMzgsNDYgQEAgcGdf c2lnbmFsX2JhY2tlbmQoaW50IHBpZCwgaW50IHNpZykKIAkJLyogQWdhaW4sIGp1c3QgYSB3 YXJuaW5nIHRvIGFsbG93IGxvb3BzICovCiAJCWVyZXBvcnQoV0FSTklORywKIAkJCQkoZXJy bXNnKCJjb3VsZCBub3Qgc2VuZCBzaWduYWwgdG8gcHJvY2VzcyAlZDogJW0iLCBwaWQpKSk7 Ci0JCXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIFNJR05BTF9CQUNLRU5EX0VSUk9SOwogCX0K LQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gU0lHTkFMX0JBQ0tFTkRfU1VDQ0VTUzsKIH0KIAor LyoKKyAqIFNpZ25hbCB0byBjYW5jZWwgYSBiYWNrZW5kIHByb2Nlc3MuCVRoaXMgaXMgYWxs b3dlZCBpZiB5b3UgYXJlIHN1cGVydXNlciBvcgorICogaGF2ZSB0aGUgc2FtZSByb2xlIGFz IHRoZSBwcm9jZXNzIGJlaW5nIGNhbmNlbGVkLgorICovCiBEYXR1bQogcGdfY2FuY2VsX2Jh Y2tlbmQoUEdfRlVOQ1RJT05fQVJHUykKIHsKLQlQR19SRVRVUk5fQk9PTChwZ19zaWduYWxf YmFja2VuZChQR19HRVRBUkdfSU5UMzIoMCksIFNJR0lOVCkpOworCWludAkJCXIgPSBwZ19z aWduYWxfYmFja2VuZChQR19HRVRBUkdfSU5UMzIoMCksIFNJR0lOVCk7CisKKwlpZiAociA9 PSBTSUdOQUxfQkFDS0VORF9OT1BFUk1JU1NJT04pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgKGVycm1z ZygibXVzdCBiZSBzdXBlcnVzZXIgb3IgaGF2ZSB0aGUgc2FtZSByb2xlIHRvIGNhbmNlbCBx dWVyaWVzIHJ1bm5pbmcgaW4gb3RoZXIgc2VydmVyIHByb2Nlc3NlcyIpKSkpOworCisJUEdf UkVUVVJOX0JPT0wociA9PSBTSUdOQUxfQkFDS0VORF9TVUNDRVNTKTsKIH0KIAorLyoKKyAq IFNpZ25hbCB0byB0ZXJtaW5hdGUgYSBiYWNrZW5kIHByb2Nlc3MuICBPbmx5IGFsbG93ZWQg Ynkgc3VwZXJ1c2VyLgorICovCiBEYXR1bQogcGdfdGVybWluYXRlX2JhY2tlbmQoUEdfRlVO Q1RJT05fQVJHUykKIHsKLQlQR19SRVRVUk5fQk9PTChwZ19zaWduYWxfYmFja2VuZChQR19H RVRBUkdfSU5UMzIoMCksIFNJR1RFUk0pKTsKKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVH RSksCisJCQkgZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byB0ZXJtaW5hdGUgb3RoZXIg c2VydmVyIHByb2Nlc3NlcyIpLAorCQkJCSBlcnJoaW50KCJZb3UgY2FuIGNhbmNlbCB5b3Vy IG93biBwcm9jZXNzZXMgd2l0aCBwZ19jYW5jZWxfYmFja2VuZCgpLiIpKSk7CisKKwlQR19S RVRVUk5fQk9PTChwZ19zaWduYWxfYmFja2VuZChQR19HRVRBUkdfSU5UMzIoMCksIFNJR1RF Uk0pID09IFNJR05BTF9CQUNLRU5EX1NVQ0NFU1MpOwogfQogCisvKgorICogU2lnbmFsIHRv IHJlbG9hZCB0aGUgZGF0YWJhc2UgY29uZmlndXJhdGlvbgorICovCiBEYXR1bQogcGdfcmVs b2FkX2NvbmYoUEdfRlVOQ1RJT05fQVJHUykKIHsKCmNvbW1pdCA2NTIzMDBmNTM5MmYyZDk1 MWIzNjhjMzhmMWNmMTIzMDAzZTVlMjFlCkF1dGhvcjogUGV0ZXIgRWlzZW50cmF1dCA8cGV0 ZXJfZUBnbXgubmV0PgpEYXRlOiAgIFN1biBKYW4gMTUgMTQ6MDA6NTIgMjAxMiArMDIwMAoK ICAgIHBnY3J5cHRvOiBSZW1vdmUgaW5hcHByb3ByaWF0ZSBjb25zdCBxdWFsaWZpZXIKICAg IAogICAgVGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uIGRvZXMgbm90IGluIGZhY3QgZW5zdXJl IHRoYXQgdGhlIHBhc3NlZAogICAgYXJndW1lbnQgaXMgbm90IGNoYW5nZWQsIGFuZCB0aGUg Y2FsbGVycyBkb24ndCBjYXJlIG11Y2ggZWl0aGVyLgoKZGlmZiAtLWdpdCBhL2NvbnRyaWIv cGdjcnlwdG8vbWJ1Zi5jIGIvY29udHJpYi9wZ2NyeXB0by9tYnVmLmMKaW5kZXggNjI0Njkw MC4uYTJjNTI5MyAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ2NyeXB0by9tYnVmLmMKKysrIGIv Y29udHJpYi9wZ2NyeXB0by9tYnVmLmMKQEAgLTEzNiw3ICsxMzYsNyBAQCBtYnVmX2NyZWF0 ZShpbnQgbGVuKQogfQogCiBNQnVmICoKLW1idWZfY3JlYXRlX2Zyb21fZGF0YShjb25zdCB1 aW50OCAqZGF0YSwgaW50IGxlbikKK21idWZfY3JlYXRlX2Zyb21fZGF0YSh1aW50OCAqZGF0 YSwgaW50IGxlbikKIHsKIAlNQnVmCSAgICptYnVmOwogCmRpZmYgLS1naXQgYS9jb250cmli L3BnY3J5cHRvL21idWYuaCBiL2NvbnRyaWIvcGdjcnlwdG8vbWJ1Zi5oCmluZGV4IDM3ZDJk YjUuLmRhMDE2YzAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdjcnlwdG8vbWJ1Zi5oCisrKyBi L2NvbnRyaWIvcGdjcnlwdG8vbWJ1Zi5oCkBAIC03Nyw3ICs3Nyw3IEBAIHN0cnVjdCBQdWxs RmlsdGVyT3BzCiAgKiBNZW1vcnkgYnVmZmVyCiAgKi8KIE1CdWYJICAgKm1idWZfY3JlYXRl KGludCBsZW4pOwotTUJ1ZgkgICAqbWJ1Zl9jcmVhdGVfZnJvbV9kYXRhKGNvbnN0IHVpbnQ4 ICpkYXRhLCBpbnQgbGVuKTsKK01CdWYJICAgKm1idWZfY3JlYXRlX2Zyb21fZGF0YSh1aW50 OCAqZGF0YSwgaW50IGxlbik7CiBpbnQJCQltYnVmX3RlbGwoTUJ1ZiAqbWJ1Zik7CiBpbnQJ CQltYnVmX2F2YWlsKE1CdWYgKm1idWYpOwogaW50CQkJbWJ1Zl9zaXplKE1CdWYgKm1idWYp OwoKY29tbWl0IDcwNjRmZDA2NDg5ZTA2OWQzOGE5ZDY3YzUzMjIyNjVjYjhmN2NlZWMKQXV0 aG9yOiBBbHZhcm8gSGVycmVyYSA8YWx2aGVycmVAYWx2aC5uby1pcC5vcmc+CkRhdGU6ICAg U2F0IEphbiAxNCAxOTozNjozOSAyMDEyIC0wMzAwCgogICAgRGV0ZWN0IGludmFsaWQgcGVy bXV0YXRpb25zIGluIGlzb2xhdGlvbnRlc3RlcgogICAgCiAgICBpc29sYXRpb250ZXN0ZXIg aXMgbm93IGFibGUgdG8gY29udGludWUgcnVubmluZyBvdGhlciBwZXJtdXRhdGlvbnMgd2hl bgogICAgaXQgZGV0ZWN0cyB0aGF0IG9uZSBvZiB0aGVtIGlzIGludmFsaWQsIHdoaWNoIGlz IHVzZWZ1bCBkdXJpbmcgaW5pdGlhbAogICAgZGV2ZWxvcG1lbnQgb2Ygc3BlYyBmaWxlcy4K ICAgIAogICAgQXV0aG9yOiBBbGV4YW5kZXIgU2h1bGdpbgoKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L2lzb2xhdGlvbi9pc29sYXRpb250ZXN0ZXIuYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9p c29sYXRpb250ZXN0ZXIuYwppbmRleCBiMzVlNTMzLi5hYjFlZjAzIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9udGVzdGVyLmMKKysrIGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2lzb2xhdGlvbnRlc3Rlci5jCkBAIC01NTAsOCArNTUwLDUzIEBAIHJ1bl9wZXJt dXRhdGlvbihUZXN0U3BlYyAqIHRlc3RzcGVjLCBpbnQgbnN0ZXBzLCBTdGVwICoqIHN0ZXBz KQogCWZvciAoaSA9IDA7IGkgPCBuc3RlcHM7IGkrKykKIAl7CiAJCVN0ZXAgKnN0ZXAgPSBz dGVwc1tpXTsKKwkJUEdjb25uICpjb25uID0gY29ubnNbMSArIHN0ZXAtPnNlc3Npb25dOwog Ci0JCWlmICghUFFzZW5kUXVlcnkoY29ubnNbMSArIHN0ZXAtPnNlc3Npb25dLCBzdGVwLT5z cWwpKQorCQlpZiAod2FpdGluZyAhPSBOVUxMICYmIHN0ZXAtPnNlc3Npb24gPT0gd2FpdGlu Zy0+c2Vzc2lvbikKKwkJeworCQkJUEdjYW5jZWwgKmNhbmNlbDsKKwkJCVBHcmVzdWx0ICpy ZXM7CisJCQlpbnQgajsKKworCQkJLyoKKwkJCSAqIFRoaXMgcGVybXV0YXRpb24gaXMgaW52 YWxpZDogaXQgY2FuIG5ldmVyIGhhcHBlbiBpbiByZWFsIGxpZmUuCisJCQkgKgorCQkJICog QSBzZXNzaW9uIGlzIGJsb2NrZWQgb24gYW4gZWFybGllciBzdGVwICh3YWl0aW5nKSBhbmQg bm8gZnVydGhlcgorCQkJICogc3RlcHMgZnJvbSB0aGlzIHNlc3Npb24gY2FuIHJ1biB1bnRp bCBpdCBpcyB1bmJsb2NrZWQsIGJ1dCBpdAorCQkJICogY2FuIG9ubHkgYmUgdW5ibG9ja2Vk IGJ5IHJ1bm5pbmcgc3RlcHMgZnJvbSBvdGhlciBzZXNzaW9ucy4KKwkJCSAqLworCQkJZnBy aW50ZihzdGRlcnIsICJpbnZhbGlkIHBlcm11dGF0aW9uIGRldGVjdGVkXG4iKTsKKworCQkJ LyogQ2FuY2VsIHRoZSB3YWl0aW5nIHN0YXRlbWVudCBmcm9tIHRoaXMgc2Vzc2lvbi4gKi8K KwkJCWNhbmNlbCA9IFBRZ2V0Q2FuY2VsKGNvbm4pOworCQkJaWYgKGNhbmNlbCAhPSBOVUxM KQorCQkJeworCQkJCWNoYXIgYnVmWzI1Nl07CisKKwkJCQlQUWNhbmNlbChjYW5jZWwsIGJ1 Ziwgc2l6ZW9mKGJ1ZikpOworCisJCQkJLyogQmUgc3VyZSB0byBjb25zdW1lIHRoZSBlcnJv ciBtZXNzYWdlLiAqLworCQkJCXdoaWxlICgocmVzID0gUFFnZXRSZXN1bHQoY29ubikpICE9 IE5VTEwpCisJCQkJCVBRY2xlYXIocmVzKTsKKworCQkJCVBRZnJlZUNhbmNlbChjYW5jZWwp OworCQkJfQorCisJCQkvKgorCQkJICogTm93IHdlIHJlYWxseSBoYXZlIHRvIGNvbXBsZXRl IGFsbCB0aGUgcnVubmluZyB0cmFuc2FjdGlvbnMgdG8KKwkJCSAqIG1ha2Ugc3VyZSB0ZWFy ZG93biBkb2Vzbid0IGJsb2NrLgorCQkJICovCisJCQlmb3IgKGogPSAxOyBqIDwgbmNvbm5z OyBqKyspCisJCQl7CisJCQkJcmVzID0gUFFleGVjKGNvbm5zW2pdLCAiUk9MTEJBQ0siKTsK KwkJCQlpZiAocmVzICE9IE5VTEwpCisJCQkJCVBRY2xlYXIocmVzKTsKKwkJCX0KKworCQkJ Z290byB0ZWFyZG93bjsKKwkJfQorCisJCWlmICghUFFzZW5kUXVlcnkoY29ubiwgc3RlcC0+ c3FsKSkKIAkJewogCQkJZnByaW50ZihzdGRvdXQsICJmYWlsZWQgdG8gc2VuZCBxdWVyeSBm b3Igc3RlcCAlczogJXNcbiIsCiAJCQkJCXN0ZXAtPm5hbWUsIFBRZXJyb3JNZXNzYWdlKGNv bm5zWzEgKyBzdGVwLT5zZXNzaW9uXSkpOwpAQCAtNTkwLDYgKzYzNSw3IEBAIHJ1bl9wZXJt dXRhdGlvbihUZXN0U3BlYyAqIHRlc3RzcGVjLCBpbnQgbnN0ZXBzLCBTdGVwICoqIHN0ZXBz KQogCQlyZXBvcnRfZXJyb3JfbWVzc2FnZSh3YWl0aW5nKTsKIAl9CiAKK3RlYXJkb3duOgog CS8qIFBlcmZvcm0gcGVyLXNlc3Npb24gdGVhcmRvd24gKi8KIAlmb3IgKGkgPSAwOyBpIDwg dGVzdHNwZWMtPm5zZXNzaW9uczsgaSsrKQogCXsKCmNvbW1pdCBkMmE3NTgzN2NjYWEzYjBk YTk5Njk2OTY3NGI2MzFkYzNmNzc4ODM4CkF1dGhvcjogQWx2YXJvIEhlcnJlcmEgPGFsdmhl cnJlQGFsdmgubm8taXAub3JnPgpEYXRlOiAgIFNhdCBKYW4gMTQgMTg6NTg6NDkgMjAxMiAt MDMwMAoKICAgIEF2b2lkIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiBpc29sYXRpb250 ZXN0ZXIKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9udGVzdGVy LmMgYi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9udGVzdGVyLmMKaW5kZXggMWQzMzll OS4uYjM1ZTUzMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbnRl c3Rlci5jCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb250ZXN0ZXIuYwpAQCAt NDA2LDE0ICs0MDYsMTYgQEAgcnVuX25hbWVkX3Blcm11dGF0aW9ucyhUZXN0U3BlYyAqIHRl c3RzcGVjKQogCQkvKiBGaW5kIGFsbCB0aGUgbmFtZWQgc3RlcHMgZnJvbSB0aGUgbG9va3Vw IHRhYmxlICovCiAJCWZvciAoaiA9IDA7IGogPCBwLT5uc3RlcHM7IGorKykKIAkJewotCQkJ c3RlcHNbal0gPSAqKChTdGVwICoqKSBic2VhcmNoKHAtPnN0ZXBuYW1lc1tqXSwgYWxsc3Rl cHMsIG5hbGxzdGVwcywKLQkJCQkJCQkJCQkgc2l6ZW9mKFN0ZXAgKiksICZzdGVwX2JzZWFy Y2hfY21wKSk7Ci0JCQlpZiAoc3RlcHNbal0gPT0gTlVMTCkKKwkJCVN0ZXAJKip0aGlzID0g KFN0ZXAgKiopIGJzZWFyY2gocC0+c3RlcG5hbWVzW2pdLCBhbGxzdGVwcywKKwkJCQkJCQkJ CQkJICAgbmFsbHN0ZXBzLCBzaXplb2YoU3RlcCAqKSwKKwkJCQkJCQkJCQkJICAgJnN0ZXBf YnNlYXJjaF9jbXApOworCQkJaWYgKHRoaXMgPT0gTlVMTCkKIAkJCXsKIAkJCQlmcHJpbnRm KHN0ZGVyciwgInVuZGVmaW5lZCBzdGVwIFwiJXNcIiBzcGVjaWZpZWQgaW4gcGVybXV0YXRp b25cbiIsCiAJCQkJCQlwLT5zdGVwbmFtZXNbal0pOwogCQkJCWV4aXRfbmljZWx5KCk7CiAJ CQl9CisJCQlzdGVwc1tqXSA9ICp0aGlzOwogCQl9CiAKIAkJcnVuX3Blcm11dGF0aW9uKHRl c3RzcGVjLCBwLT5uc3RlcHMsIHN0ZXBzKTsKCmNvbW1pdCAwMGM1ZjU1MDYxZGY1MmNjZmQ4 MmVhZTE2ZjA1NGUwODgxOGFkMGZmCkF1dGhvcjogSGVpa2tpIExpbm5ha2FuZ2FzIDxoZWlr a2kubGlubmFrYW5nYXNAaWtpLmZpPgpEYXRlOiAgIFNhdCBKYW4gMTQgMTg6MjI6MTYgMjAx MiArMDIwMAoKICAgIE1ha2Ugc3VwZXJ1c2VyIGltcGx5IHJlcGxpY2F0aW9uIHByaXZpbGVn ZS4gVGhlIGlkZWEgb2YgYSBwcml2aWxlZ2UgdGhhdAogICAgc3VwZXJ1c2VyIGRvZXNuJ3Qg aGF2ZSBkb2Vzbid0IG1ha2UgbXVjaCBzZW5zZSwgYXMgYSBzdXBlcnVzZXIgY2FuIGRvCiAg ICB3aGF0ZXZlciBoZSB3YW50cyB0aHJvdWdoIG90aGVyIG1lYW5zLCBhbnl3YXkuIFNvIGlu c3RlYWQgb2YgZ3JhbnRpbmcKICAgIHJlcGxpY2F0aW9uIHByaXZpbGVnZSB0byBzdXBlcnVz ZXJzIGluIENSRUFURSBVU0VSIHRpbWUgYnkgZGVmYXVsdCwgYWxsb3cKICAgIHJlcGxpY2F0 aW9uIGNvbm5lY3Rpb24gZnJvbSBzdXBlcnVzZXJzIHdoZXRoZXIgb3Igbm90IHRoZXkgaGF2 ZSB0aGUKICAgIHJlcGxpY2F0aW9uIHByaXZpbGVnZS4KICAgIAogICAgUGF0Y2ggYnkgTm9h aCBNaXNjaCwgcGVyIGRpc2N1c3Npb24gb24gYnVnIHJlcG9ydCAjNjI2NAoKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sIGIvZG9jL3NyYy9zZ21s L2hpZ2gtYXZhaWxhYmlsaXR5LnNnbWwKaW5kZXggODZjMjcyOS4uYzVkYjZlZiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2hpZ2gtYXZhaWxhYmlsaXR5LnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2hpZ2gtYXZhaWxhYmlsaXR5LnNnbWwKQEAgLTc5NywyMyArNzk3LDE0IEBAIGFy Y2hpdmVfY2xlYW51cF9jb21tYW5kID0gJ3BnX2FyY2hpdmVjbGVhbnVwIC9wYXRoL3RvL2Fy Y2hpdmUgJXInCiAgICAgIEl0IGlzIHZlcnkgaW1wb3J0YW50IHRoYXQgdGhlIGFjY2VzcyBw cml2aWxlZ2VzIGZvciByZXBsaWNhdGlvbiBiZSBzZXQgdXAKICAgICAgc28gdGhhdCBvbmx5 IHRydXN0ZWQgdXNlcnMgY2FuIHJlYWQgdGhlIFdBTCBzdHJlYW0sIGJlY2F1c2UgaXQgaXMK ICAgICAgZWFzeSB0byBleHRyYWN0IHByaXZpbGVnZWQgaW5mb3JtYXRpb24gZnJvbSBpdC4g IFN0YW5kYnkgc2VydmVycyBtdXN0Ci0gICAgIGF1dGhlbnRpY2F0ZSB0byB0aGUgcHJpbWFy eSBhcyBhbiBhY2NvdW50IHRoYXQgaGFzIHRoZQotICAgICA8bGl0ZXJhbD5SRVBMSUNBVElP TjwvPiBwcml2aWxlZ2UuIFNvIGEgcm9sZSB3aXRoIHRoZQotICAgICA8bGl0ZXJhbD5SRVBM SUNBVElPTjwvPiBhbmQgPGxpdGVyYWw+TE9HSU48Lz4gcHJpdmlsZWdlcyBuZWVkcyB0byBi ZQotICAgICBjcmVhdGVkIG9uIHRoZSBwcmltYXJ5LgorICAgICBhdXRoZW50aWNhdGUgdG8g dGhlIHByaW1hcnkgYXMgYSBzdXBlcnVzZXIgb3IgYW4gYWNjb3VudCB0aGF0IGhhcyB0aGUK KyAgICAgPGxpdGVyYWw+UkVQTElDQVRJT048Lz4gcHJpdmlsZWdlLiBJdCBpcyByZWNvbW1l bmRlZCB0byBjcmVhdGUgYQorICAgICBkZWRpY2F0ZWQgdXNlciBhY2NvdW50IHdpdGggPGxp dGVyYWw+UkVQTElDQVRJT048Lz4gYW5kIDxsaXRlcmFsPkxPR0lOPC8+CisgICAgIHByaXZp bGVnZXMgZm9yIHJlcGxpY2F0aW9uLiBXaGlsZSA8bGl0ZXJhbD5SRVBMSUNBVElPTjwvPiBw cml2aWxlZ2UgZ2l2ZXMKKyAgICAgdmVyeSBoaWdoIHBlcm1pc3Npb25zLCBpdCBkb2VzIG5v dCBhbGxvdyB0aGUgdXNlciB0byBtb2RpZnkgYW55IGRhdGEgb24KKyAgICAgdGhlIHByaW1h cnkgc3lzdGVtLCB3aGljaCB0aGUgPGxpdGVyYWw+U1VQRVJVU0VSPC8+IHByaXZpbGVnZSBk b2VzLgogICAgIDwvcGFyYT4KIAotICAgIDxub3RlPgotICAgICA8cGFyYT4KLSAgICAgIEl0 IGlzIHJlY29tbWVuZGVkIHRoYXQgYSBkZWRpY2F0ZWQgdXNlciBhY2NvdW50IGlzIHVzZWQg Zm9yIHJlcGxpY2F0aW9uLgotICAgICAgV2hpbGUgdGhlIDxsaXRlcmFsPlJFUExJQ0FUSU9O PC8+IHByaXZpbGVnZSBpcyBncmFudGVkIHRvIHN1cGVydXNlcgotICAgICAgYWNjb3VudHMg YnkgZGVmYXVsdCwgaXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHVzZSBzdXBlcnVzZXIgYWNj b3VudHMKLSAgICAgIGZvciByZXBsaWNhdGlvbi4gV2hpbGUgPGxpdGVyYWw+UkVQTElDQVRJ T048Lz4gcHJpdmlsZWdlIGdpdmVzIHZlcnkgaGlnaAotICAgICAgcGVybWlzc2lvbnMsIGl0 IGRvZXMgbm90IGFsbG93IHRoZSB1c2VyIHRvIG1vZGlmeSBhbnkgZGF0YSBvbiB0aGUKLSAg ICAgIHByaW1hcnkgc3lzdGVtLCB3aGljaCB0aGUgPGxpdGVyYWw+U1VQRVJVU0VSPC8+IHBy aXZpbGVnZSBkb2VzLgotICAgICA8L3BhcmE+Ci0gICAgPC9ub3RlPgotCiAgICAgPHBhcmE+ CiAgICAgIENsaWVudCBhdXRoZW50aWNhdGlvbiBmb3IgcmVwbGljYXRpb24gaXMgY29udHJv bGxlZCBieSBhCiAgICAgIDxmaWxlbmFtZT5wZ19oYmEuY29uZjwvPiByZWNvcmQgc3BlY2lm eWluZyA8bGl0ZXJhbD5yZXBsaWNhdGlvbjwvPiBpbiB0aGUKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWNvdmVyeS1jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWNvdmVyeS1j b25maWcuc2dtbAppbmRleCA4NjQ3MDI0Li43ZTM5YzBkIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVjb3ZlcnktY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlY292ZXJ5 LWNvbmZpZy5zZ21sCkBAIC0zMjUsOSArMzI1LDggQEAgcmVzdG9yZV9jb21tYW5kID0gJ2Nv cHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAiJyAgIyBXaW5kb3dzCiAgICAg ICAgICAgVGhlIGNvbm5lY3Rpb24gc3RyaW5nIHNob3VsZCBzcGVjaWZ5IHRoZSBob3N0IG5h bWUgKG9yIGFkZHJlc3MpCiAgICAgICAgICAgb2YgdGhlIHByaW1hcnkgc2VydmVyLCBhcyB3 ZWxsIGFzIHRoZSBwb3J0IG51bWJlciBpZiBpdCBpcyBub3QKICAgICAgICAgICB0aGUgc2Ft ZSBhcyB0aGUgc3RhbmRieSBzZXJ2ZXIncyBkZWZhdWx0LgotICAgICAgICAgIEFsc28gc3Bl Y2lmeSBhIHVzZXIgbmFtZSBjb3JyZXNwb25kaW5nIHRvIGEgcm9sZSB0aGF0IGhhcyB0aGUK LSAgICAgICAgICA8bGl0ZXJhbD5SRVBMSUNBVElPTjwvPiBhbmQgPGxpdGVyYWw+TE9HSU48 Lz4gcHJpdmlsZWdlcyBvbiB0aGUKLSAgICAgICAgICBwcmltYXJ5IChzZWUKKyAgICAgICAg ICBBbHNvIHNwZWNpZnkgYSB1c2VyIG5hbWUgY29ycmVzcG9uZGluZyB0byBhIHN1aXRhYmx5 LXByaXZpbGVnZWQgcm9sZQorICAgICAgICAgIG9uIHRoZSBwcmltYXJ5IChzZWUKICAgICAg ICAgICA8eHJlZiBsaW5rZW5kPSJzdHJlYW1pbmctcmVwbGljYXRpb24tYXV0aGVudGljYXRp b24iPikuCiAgICAgICAgICAgQSBwYXNzd29yZCBuZWVkcyB0byBiZSBwcm92aWRlZCB0b28s IGlmIHRoZSBwcmltYXJ5IGRlbWFuZHMgcGFzc3dvcmQKICAgICAgICAgICBhdXRoZW50aWNh dGlvbi4gIEl0IGNhbiBiZSBwcm92aWRlZCBpbiB0aGUKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3JvbGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Jv bGUuc2dtbAppbmRleCA0OTUzZGY2Li43ZWM0ZDBhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9yb2xlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf cm9sZS5zZ21sCkBAIC0xODUsOCArMTg1LDcgQEAgQ1JFQVRFIFJPTEUgPHJlcGxhY2VhYmxl IGNsYXNzPSJQQVJBTUVURVIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIFsgV0lUSCBdIDxyZXBs YWMKICAgICAgICAgQSByb2xlIGhhdmluZyB0aGUgPGxpdGVyYWw+UkVQTElDQVRJT048Lz4g YXR0cmlidXRlIGlzIGEgdmVyeQogICAgICAgICBoaWdobHkgcHJpdmlsZWdlZCByb2xlLCBh bmQgc2hvdWxkIG9ubHkgYmUgdXNlZCBvbiByb2xlcyBhY3R1YWxseQogICAgICAgICB1c2Vk IGZvciByZXBsaWNhdGlvbi4gSWYgbm90IHNwZWNpZmllZCwKLSAgICAgICAgPGxpdGVyYWw+ Tk9SRVBMSUNBVElPTjwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1bHQgZm9yIGFsbCByb2xlcyBl eGNlcHQKLSAgICAgICAgc3VwZXJ1c2Vycy4KKyAgICAgICAgPGxpdGVyYWw+Tk9SRVBMSUNB VElPTjwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1bHQuCiAgICAgICAgPC9wYXJhPgogICAgICAg PC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL3BnX2Jhc2ViYWNrdXAuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfYmFz ZWJhY2t1cC5zZ21sCmluZGV4IDhjOGM3OGYuLjA1ZDViZWQgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvcGdfYmFzZWJhY2t1cC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv cGdfYmFzZWJhY2t1cC5zZ21sCkBAIC01MCwxMiArNTAsMTMgQEAgUG9zdGdyZVNRTCBkb2N1 bWVudGF0aW9uCiAKICAgPHBhcmE+CiAgICBUaGUgYmFja3VwIGlzIG1hZGUgb3ZlciBhIHJl Z3VsYXIgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgotICAgY29ubmVj dGlvbiwgYW5kIHVzZXMgdGhlIHJlcGxpY2F0aW9uIHByb3RvY29sLiBUaGUgY29ubmVjdGlv biBtdXN0IGJlCi0gICBtYWRlIHdpdGggYSB1c2VyIGhhdmluZyA8bGl0ZXJhbD5SRVBMSUNB VElPTjwvbGl0ZXJhbD4gcGVybWlzc2lvbnMgKHNlZQotICAgPHhyZWYgbGlua2VuZD0icm9s ZS1hdHRyaWJ1dGVzIj4pLCBhbmQgdGhlIHVzZXIgbXVzdCBiZSBncmFudGVkIGV4cGxpY2l0 Ci0gICBwZXJtaXNzaW9ucyBpbiA8ZmlsZW5hbWU+cGdfaGJhLmNvbmY8L2ZpbGVuYW1lPi4g VGhlIHNlcnZlciBtdXN0IGFsc28KLSAgIGJlIGNvbmZpZ3VyZWQgd2l0aCA8eHJlZiBsaW5r ZW5kPSJndWMtbWF4LXdhbC1zZW5kZXJzIj4gc2V0IGhpZ2ggZW5vdWdoCi0gICB0byBsZWF2 ZSBhdCBsZWFzdCBvbmUgc2Vzc2lvbiBhdmFpbGFibGUgZm9yIHRoZSBiYWNrdXAuCisgICBj b25uZWN0aW9uLCBhbmQgdXNlcyB0aGUgcmVwbGljYXRpb24gcHJvdG9jb2wuIFRoZSBjb25u ZWN0aW9uIG11c3QgYmUgbWFkZQorICAgd2l0aCBhIHN1cGVydXNlciBvciBhIHVzZXIgaGF2 aW5nIDxsaXRlcmFsPlJFUExJQ0FUSU9OPC9saXRlcmFsPgorICAgcGVybWlzc2lvbnMgKHNl ZSA8eHJlZiBsaW5rZW5kPSJyb2xlLWF0dHJpYnV0ZXMiPiksCisgICBhbmQgPGZpbGVuYW1l PnBnX2hiYS5jb25mPC9maWxlbmFtZT4gbXVzdCBleHBsaWNpdGx5IHBlcm1pdCB0aGUgcmVw bGljYXRpb24KKyAgIGNvbm5lY3Rpb24uIFRoZSBzZXJ2ZXIgbXVzdCBhbHNvIGJlIGNvbmZp Z3VyZWQKKyAgIHdpdGggPHhyZWYgbGlua2VuZD0iZ3VjLW1heC13YWwtc2VuZGVycyI+IHNl dCBoaWdoIGVub3VnaCB0byBsZWF2ZSBhdCBsZWFzdAorICAgb25lIHNlc3Npb24gYXZhaWxh YmxlIGZvciB0aGUgYmFja3VwLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3JlY2VpdmV4bG9nLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL3BnX3JlY2VpdmV4bG9nLnNnbWwKaW5kZXggOWEyYTI0Yi4uZmFkNzQ3MCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZWNlaXZleGxvZy5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvcGdfcmVjZWl2ZXhsb2cuc2dtbApAQCAtNTAsMTMgKzUwLDEzIEBAIFBv c3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgIDxwYXJhPgogICAgVGhlIHRyYW5zYWN0aW9u IGxvZyBpcyBzdHJlYW1lZCBvdmVyIGEgcmVndWxhcgotICAgPHByb2R1Y3RuYW1lPlBvc3Rn cmVTUUw8L3Byb2R1Y3RuYW1lPiBjb25uZWN0aW9uLCBhbmQgdXNlcyB0aGUKLSAgIHJlcGxp Y2F0aW9uIHByb3RvY29sLiBUaGUgY29ubmVjdGlvbiBtdXN0IGJlCi0gICBtYWRlIHdpdGgg YSB1c2VyIGhhdmluZyA8bGl0ZXJhbD5SRVBMSUNBVElPTjwvbGl0ZXJhbD4gcGVybWlzc2lv bnMgKHNlZQotICAgPHhyZWYgbGlua2VuZD0icm9sZS1hdHRyaWJ1dGVzIj4pLCBhbmQgdGhl IHVzZXIgbXVzdCBiZSBncmFudGVkIGV4cGxpY2l0Ci0gICBwZXJtaXNzaW9ucyBpbiA8Zmls ZW5hbWU+cGdfaGJhLmNvbmY8L2ZpbGVuYW1lPi4gVGhlIHNlcnZlciBtdXN0IGFsc28KLSAg IGJlIGNvbmZpZ3VyZWQgd2l0aCA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXdhbC1zZW5kZXJz Ij4gc2V0IGhpZ2ggZW5vdWdoCi0gICB0byBsZWF2ZSBhdCBsZWFzdCBvbmUgc2Vzc2lvbiBh dmFpbGFibGUgZm9yIHRoZSBzdHJlYW0uCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwv cHJvZHVjdG5hbWU+IGNvbm5lY3Rpb24sIGFuZCB1c2VzIHRoZSByZXBsaWNhdGlvbgorICAg cHJvdG9jb2wuIFRoZSBjb25uZWN0aW9uIG11c3QgYmUgbWFkZSB3aXRoIGEgc3VwZXJ1c2Vy IG9yIGEgdXNlcgorICAgaGF2aW5nIDxsaXRlcmFsPlJFUExJQ0FUSU9OPC9saXRlcmFsPiBw ZXJtaXNzaW9ucyAoc2VlCisgICA8eHJlZiBsaW5rZW5kPSJyb2xlLWF0dHJpYnV0ZXMiPiks IGFuZCA8ZmlsZW5hbWU+cGdfaGJhLmNvbmY8L2ZpbGVuYW1lPgorICAgbXVzdCBleHBsaWNp dGx5IHBlcm1pdCB0aGUgcmVwbGljYXRpb24gY29ubmVjdGlvbi4gVGhlIHNlcnZlciBtdXN0 IGFsc28gYmUKKyAgIGNvbmZpZ3VyZWQgd2l0aCA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXdh bC1zZW5kZXJzIj4gc2V0IGhpZ2ggZW5vdWdoIHRvCisgICBsZWF2ZSBhdCBsZWFzdCBvbmUg c2Vzc2lvbiBhdmFpbGFibGUgZm9yIHRoZSBzdHJlYW0uCiAgIDwvcGFyYT4KICA8L3JlZnNl Y3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvdXNlci1tYW5hZy5zZ21sIGIvZG9j L3NyYy9zZ21sL3VzZXItbWFuYWcuc2dtbAppbmRleCAwYTRmODJkLi4xNzdhYzdhIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvdXNlci1tYW5hZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC91c2VyLW1hbmFnLnNnbWwKQEAgLTE2OSwxNiArMTY5LDExIEBAIENSRUFURSBVU0VSIDxy ZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT47CiAgICAgICA8bGlzdGl0ZW0+CiAgICAg ICAgPHBhcmE+CiAgICAgICAgIEEgZGF0YWJhc2Ugc3VwZXJ1c2VyIGJ5cGFzc2VzIGFsbCBw ZXJtaXNzaW9uIGNoZWNrcywgZXhjZXB0IHRoZSByaWdodAotICAgICAgICB0byBsb2cgaW4g b3IgdGhlIHJpZ2h0IHRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLiAgVGhpcyBpcyBhCi0gICAg ICAgIGRhbmdlcm91cyBwcml2aWxlZ2UgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBjYXJlbGVz c2x5OyBpdCBpcyBiZXN0Ci0gICAgICAgIHRvIGRvIG1vc3Qgb2YgeW91ciB3b3JrIGFzIGEg cm9sZSB0aGF0IGlzIG5vdCBhIHN1cGVydXNlci4KLSAgICAgICAgVG8gY3JlYXRlIGEgbmV3 IGRhdGFiYXNlIHN1cGVydXNlciwgdXNlIDxsaXRlcmFsPkNSRUFURSBST0xFCi0gICAgICAg IDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gU1VQRVJVU0VSPC9saXRlcmFsPi4g IFlvdSBtdXN0IGRvCi0gICAgICAgIHRoaXMgYXMgYSByb2xlIHRoYXQgaXMgYWxyZWFkeSBh IHN1cGVydXNlci4gQ3JlYXRpbmcgYSBzdXBlcnVzZXIKLSAgICAgICAgd2lsbCBieSBkZWZh dWx0IGFsc28gZ3JhbnQgcGVybWlzc2lvbnMgdG8gaW5pdGlhdGUgc3RyZWFtaW5nCi0gICAg ICAgIHJlcGxpY2F0aW9uLiBGb3IgaW5jcmVhc2VkIHNlY3VyaXR5IHRoaXMgY2FuIGJlIGRp c2FsbG93ZWQgdXNpbmcKLSAgICAgICAgPGxpdGVyYWw+Q1JFQVRFIFJPTEUgPHJlcGxhY2Vh YmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBTVVBFUlVTRVIKLSAgICAgICAgTk9SRVBMSUNBVElP TjwvbGl0ZXJhbD4uCisgICAgICAgIHRvIGxvZyBpbi4gIFRoaXMgaXMgYSBkYW5nZXJvdXMg cHJpdmlsZWdlIGFuZCBzaG91bGQgbm90IGJlIHVzZWQKKyAgICAgICAgY2FyZWxlc3NseTsg aXQgaXMgYmVzdCB0byBkbyBtb3N0IG9mIHlvdXIgd29yayBhcyBhIHJvbGUgdGhhdCBpcyBu b3QgYQorICAgICAgICBzdXBlcnVzZXIuICBUbyBjcmVhdGUgYSBuZXcgZGF0YWJhc2Ugc3Vw ZXJ1c2VyLCB1c2UgPGxpdGVyYWw+Q1JFQVRFCisgICAgICAgIFJPTEUgPHJlcGxhY2VhYmxl Pm5hbWU8L3JlcGxhY2VhYmxlPiBTVVBFUlVTRVI8L2xpdGVyYWw+LiAgWW91IG11c3QgZG8K KyAgICAgICAgdGhpcyBhcyBhIHJvbGUgdGhhdCBpcyBhbHJlYWR5IGEgc3VwZXJ1c2VyLgog ICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5 PgpAQCAtMjE3LDcgKzIxMiw4IEBAIENSRUFURSBVU0VSIDxyZXBsYWNlYWJsZT5uYW1lPC9y ZXBsYWNlYWJsZT47CiAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAg IEEgcm9sZSBtdXN0IGV4cGxpY2l0bHkgYmUgZ2l2ZW4gcGVybWlzc2lvbiB0byBpbml0aWF0 ZSBzdHJlYW1pbmcKLSAgICAgICAgcmVwbGljYXRpb24uIEEgcm9sZSB1c2VkIGZvciBzdHJl YW1pbmcgcmVwbGljYXRpb24gbXVzdCBhbHdheXMKKyAgICAgICAgcmVwbGljYXRpb24gKGV4 Y2VwdCBmb3Igc3VwZXJ1c2Vycywgc2luY2UgdGhvc2UgYnlwYXNzIGFsbCBwZXJtaXNzaW9u CisgICAgICAgIGNoZWNrcykuIEEgcm9sZSB1c2VkIGZvciBzdHJlYW1pbmcgcmVwbGljYXRp b24gbXVzdCBhbHdheXMKICAgICAgICAgaGF2ZSA8bGl0ZXJhbD5MT0dJTjwvPiBwZXJtaXNz aW9uIGFzIHdlbGwuIFRvIGNyZWF0ZSBzdWNoIGEgcm9sZSwgdXNlCiAgICAgICAgIDxsaXRl cmFsPkNSRUFURSBST0xFIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gUkVQTElD QVRJT04KICAgICAgICAgTE9HSU48L2xpdGVyYWw+LgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdXNlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdXNlci5jCmluZGV4 IGE5MGYwYjEuLjlhODhjOTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Vz ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy91c2VyLmMKQEAgLTIzOSwxNiArMjM5 LDcgQEAgQ3JlYXRlUm9sZShDcmVhdGVSb2xlU3RtdCAqc3RtdCkKIAlpZiAoZHBhc3N3b3Jk ICYmIGRwYXNzd29yZC0+YXJnKQogCQlwYXNzd29yZCA9IHN0clZhbChkcGFzc3dvcmQtPmFy Zyk7CiAJaWYgKGRpc3N1cGVyKQotCXsKIAkJaXNzdXBlciA9IGludFZhbChkaXNzdXBlci0+ YXJnKSAhPSAwOwotCi0JCS8qCi0JCSAqIFN1cGVydXNlcnMgZ2V0IHJlcGxpY2F0aW9uIGJ5 IGRlZmF1bHQsIGJ1dCBvbmx5IGlmIE5PUkVQTElDQVRJT04KLQkJICogd2Fzbid0IGV4cGxp Y2l0bHkgbWVudGlvbmVkCi0JCSAqLwotCQlpZiAoaXNzdXBlciAmJiAhKGRpc3JlcGxpY2F0 aW9uICYmIGludFZhbChkaXNyZXBsaWNhdGlvbi0+YXJnKSA9PSAwKSkKLQkJCWlzcmVwbGlj YXRpb24gPSAxOwotCX0KIAlpZiAoZGluaGVyaXQpCiAJCWluaGVyaXQgPSBpbnRWYWwoZGlu aGVyaXQtPmFyZykgIT0gMDsKIAlpZiAoZGNyZWF0ZXJvbGUpCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMgYi9zcmMvYmFja2VuZC91dGlscy9pbml0 L3Bvc3Rpbml0LmMKaW5kZXggZjllNGRiYy4uMWJhYTY3ZCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2lu aXQvcG9zdGluaXQuYwpAQCAtNjU5LDExICs2NTksMTAgQEAgSW5pdFBvc3RncmVzKGNvbnN0 IGNoYXIgKmluX2RibmFtZSwgT2lkIGRib2lkLCBjb25zdCBjaGFyICp1c2VybmFtZSwKIAl7 CiAJCUFzc2VydCghYm9vdHN0cmFwKTsKIAotCQkvKiBtdXN0IGhhdmUgYXV0aGVudGljYXRl ZCBhcyBhIHJlcGxpY2F0aW9uIHJvbGUgKi8KLQkJaWYgKCFpc19hdXRoZW50aWNhdGVkX3Vz ZXJfcmVwbGljYXRpb25fcm9sZSgpKQorCQlpZiAoIXN1cGVydXNlcigpICYmICFpc19hdXRo ZW50aWNhdGVkX3VzZXJfcmVwbGljYXRpb25fcm9sZSgpKQogCQkJZXJlcG9ydChGQVRBTCwK IAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCQkJ IGVycm1zZygibXVzdCBiZSByZXBsaWNhdGlvbiByb2xlIHRvIHN0YXJ0IHdhbHNlbmRlciIp KSk7CisJCQkJCSBlcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIG9yIHJlcGxpY2F0aW9uIHJv bGUgdG8gc3RhcnQgd2Fsc2VuZGVyIikpKTsKIAogCQkvKiBwcm9jZXNzIGFueSBvcHRpb25z IHBhc3NlZCBpbiB0aGUgc3RhcnR1cCBwYWNrZXQgKi8KIAkJaWYgKE15UHJvY1BvcnQgIT0g TlVMTCkKCmNvbW1pdCBlYTAzOGQ2NWMyNDYwNDA4Mjk2YTU3MDhkYThiYjBiZDhmM2QwMGJj CkF1dGhvcjogUGV0ZXIgRWlzZW50cmF1dCA8cGV0ZXJfZUBnbXgubmV0PgpEYXRlOiAgIFNh dCBKYW4gMTQgMTU6MDE6MjQgMjAxMiArMDIwMAoKICAgIGluaXRkYjogUmVtb3ZlIHN1cHBv cnQgZm9yIGNyeXB0IGF1dGhlbnRpY2F0aW9uIG1ldGhvZAogICAgCiAgICBUaGlzIHdhcyBy ZW1vdmVkIGZyb20gdGhlIGJhY2tlbmQgYSBsb25nIHRpbWUgYWdvLCBidXQgaW5pdGRiIHN0 aWxsCiAgICB0aG91Z2h0IHRoYXQgaXQgd2FzIE9LIHRvIHVzZSBpbiB0aGUgLUEgb3B0aW9u LgoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jIGIvc3JjL2Jpbi9pbml0 ZGIvaW5pdGRiLmMKaW5kZXggZTA0NzRmNy4uOWRmMjY1NiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9pbml0ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKQEAgLTI2 NzUsNyArMjY3NSw2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJc3RyY21w KGF1dGhtZXRob2QsICJwYW0iKSAhPSAwICYmCiAJCXN0cm5jbXAoYXV0aG1ldGhvZCwgInBh bSAiLCA0KSAhPSAwICYmCQkvKiBwYW0gd2l0aCBzcGFjZSA9IHBhcmFtICovCiAjZW5kaWYK LQkJc3RyY21wKGF1dGhtZXRob2QsICJjcnlwdCIpICE9IDAgJiYKIAkJc3RyY21wKGF1dGht ZXRob2QsICJwYXNzd29yZCIpICE9IDAKIAkJKQogCkBAIC0yNjkwLDcgKzI2ODksNiBAQCBt YWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJfQogCiAJaWYgKChzdHJjbXAoYXV0aG1l dGhvZCwgIm1kNSIpID09IDAgfHwKLQkJIHN0cmNtcChhdXRobWV0aG9kLCAiY3J5cHQiKSA9 PSAwIHx8CiAJCSBzdHJjbXAoYXV0aG1ldGhvZCwgInBhc3N3b3JkIikgPT0gMCkgJiYKIAkJ IShwd3Byb21wdCB8fCBwd2ZpbGVuYW1lKSkKIAl7Cgpjb21taXQgZDBkY2IzMTVkYjAwNDNm MTAwNzNhOWEyNDRjZWExMzhlOWU2MGVkZApBdXRob3I6IFJvYmVydCBIYWFzIDxyaGFhc0Bw b3N0Z3Jlc3FsLm9yZz4KRGF0ZTogICBGcmkgSmFuIDEzIDA4OjIyOjMxIDIwMTIgLTA1MDAK CiAgICBGaXggYnJva2VuIGxvZ2ljIGluIGxhenlfdmFjdXVtX2hlYXAuCiAgICAKICAgIEFz IG5vdGVkIGJ5IFRvbSBMYW5lLCB0aGUgcHJldmlvdXMgY29kaW5nIGluIHRoaXMgYXJlYSwg d2hpY2ggSQogICAgaW50cm9kdWNlZCBpbiBjb21taXQgYmJiNmU1NTljNGVhMGZiNGMzNDZi ZWRhNzY3MzY0NTFkYzI0ZWI0ZSwgd2FzCiAgICBwb29ybHkgdGVzdGVkIGFuZCBjYXVzZWQg dGhlIHZhY3V1bSdzIHNlY29uZCBoZWFwIHRvIGdvIGludG8gd2hhdCB3b3VsZAogICAgaGF2 ZSBiZWVuIGFuIGluZmluaXRlIGxvb3AgYnV0IGZvciB0aGUgZmFjdCB0aGF0IGl0IGV2ZW50 dWFsbHkgY2F1c2VkIGEKICAgIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUuICBUaGlzIHZl cnNpb24gc2VlbXMgdG8gd29yayBiZXR0ZXIuCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtbGF6 eS5jCmluZGV4IDg0NmQzMDUuLjJmYzc0OWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1s YXp5LmMKQEAgLTk5MSw3ICs5OTEsMTEgQEAgbGF6eV92YWN1dW1faGVhcChSZWxhdGlvbiBv bmVyZWwsIExWUmVsU3RhdHMgKnZhY3JlbHN0YXRzKQogCQlidWYgPSBSZWFkQnVmZmVyRXh0 ZW5kZWQob25lcmVsLCBNQUlOX0ZPUktOVU0sIHRibGssIFJCTV9OT1JNQUwsCiAJCQkJCQkJ CSB2YWNfc3RyYXRlZ3kpOwogCQlpZiAoIUNvbmRpdGlvbmFsTG9ja0J1ZmZlckZvckNsZWFu dXAoYnVmKSkKKwkJeworCQkJUmVsZWFzZUJ1ZmZlcihidWYpOworCQkJKyt0dXBpbmRleDsK IAkJCWNvbnRpbnVlOworCQl9CiAJCXR1cGluZGV4ID0gbGF6eV92YWN1dW1fcGFnZShvbmVy ZWwsIHRibGssIGJ1ZiwgdHVwaW5kZXgsIHZhY3JlbHN0YXRzKTsKIAogCQkvKiBOb3cgdGhh dCB3ZSd2ZSBjb21wYWN0ZWQgdGhlIHBhZ2UsIHJlY29yZCBpdHMgYXZhaWxhYmxlIHNwYWNl ICovCgpjb21taXQgNGQwYjExYTBjYTM0N2U1YjAzMDQwMDQ2MjViN2ViNjc1MmUzMmVlNwpB dXRob3I6IFJvYmVydCBIYWFzIDxyaGFhc0Bwb3N0Z3Jlc3FsLm9yZz4KRGF0ZTogICBGcmkg SmFuIDEzIDA4OjIxOjQ1IDIwMTIgLTA1MDAKCiAgICBUeXBvIGZpeC4KCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYwppbmRleCBlZThiYTVlLi5kNjNmZjI5IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKQEAgLTc1MCw3ICs3NTAsNyBA QCBQcm9jZXNzV2FsU25kck1lc3NhZ2UoWExvZ1JlY1B0ciB3YWxFbmQsIFRpbWVzdGFtcFR6 IHNlbmRUaW1lKQogCXdhbHJjdi0+bGFzdE1zZ1JlY2VpcHRUaW1lID0gbGFzdE1zZ1JlY2Vp cHRUaW1lOwogCVNwaW5Mb2NrUmVsZWFzZSgmd2FscmN2LT5tdXRleCk7CiAKLQlpZiAobG9n X21pbl9tZXNhZ2VzIDw9IERFQlVHMikKKwlpZiAobG9nX21pbl9tZXNzYWdlcyA8PSBERUJV RzIpCiAJCWVsb2coREVCVUcyLCAic2VuZHRpbWUgJXMgcmVjZWlwdHRpbWUgJXMgcmVwbGlj YXRpb24gYXBwbHkgZGVsYXkgJWQgbXMgdHJhbnNmZXIgbGF0ZW5jeSAlZCBtcyIsCiAJCQkJ CXRpbWVzdGFtcHR6X3RvX3N0cihzZW5kVGltZSksCiAJCQkJCXRpbWVzdGFtcHR6X3RvX3N0 cihsYXN0TXNnUmVjZWlwdFRpbWUpLAoKY29tbWl0IDU1MzA2MjNkMDMyNmU5NmU0MGI4ZDU0 Mjc1ZGEyNTZjYTBmYjY4NTYKQXV0aG9yOiBTaW1vbiBSaWdncyA8c2ltb25AMm5kUXVhZHJh bnQuY29tPgpEYXRlOiAgIEZyaSBKYW4gMTMgMTM6MDI6NDQgMjAxMiArMDAwMAoKICAgIENv cnJlY3RseSBpbml0aWFsaXNlIHNoYXJlZCByZWNvdmVyeUxhc3RSZWNQdHIgaW4gcmVjb3Zl cnkuCiAgICBQcmV2aW91c2x5IHdlIHVzZWQgUmVhZFJlY1B0ciByYXRoZXIgdGhhbiBFbmRS ZWNQdHIsIHdoaWNoIHdhcwogICAgbm90IGEgc2VyaW91cyBlcnJvciBidXQgY2F1c2VkIHBn X3N0YXRfcmVwbGljYXRpb24gdG8gcmVwb3J0CiAgICBpbmNvcnJlY3QgcmVwbGF5X2xvY2F0 aW9uIHVudGlsIGF0IGxlYXN0IG9uZSBXQUwgcmVjb3JkIGlzIHJlcGxheWVkLgogICAgCiAg ICBGdWppaSBNYXNhbwoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCAxOWVm NjZiLi5jZTY1OWVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94 bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC02NDA3 LDcgKzY0MDcsNyBAQCBTdGFydHVwWExPRyh2b2lkKQogCQkgKi8KIAkJU3BpbkxvY2tBY3F1 aXJlKCZ4bG9nY3RsLT5pbmZvX2xjayk7CiAJCXhsb2djdGwtPnJlcGxheUVuZFJlY1B0ciA9 IFJlYWRSZWNQdHI7Ci0JCXhsb2djdGwtPnJlY292ZXJ5TGFzdFJlY1B0ciA9IFJlYWRSZWNQ dHI7CisJCXhsb2djdGwtPnJlY292ZXJ5TGFzdFJlY1B0ciA9IEVuZFJlY1B0cjsKIAkJeGxv Z2N0bC0+cmVjb3ZlcnlMYXN0WFRpbWUgPSAwOwogCQl4bG9nY3RsLT5jdXJyZW50Q2h1bmtT dGFydFRpbWUgPSAwOwogCQl4bG9nY3RsLT5yZWNvdmVyeVBhdXNlID0gZmFsc2U7Cgpjb21t aXQgM2YxNzg3YzI1Mzk2NzYxN2EwZTM0ZmE0YmZiN2IyYWIxODRhZDQ4NApBdXRob3I6IFNp bW9uIFJpZ2dzIDxzaW1vbkAybmRRdWFkcmFudC5jb20+CkRhdGU6ICAgRnJpIEphbiAxMyAx Mjo1OTowOCAyMDEyICswMDAwCgogICAgTWlub3IgYnV0IG5lY2Vzc2FyeSBpbXByb3ZlbWVu dHMgdG8gV0FMIGtlZXBhbGl2ZXMKICAgIAogICAgRnVqaWkgTWFzYW8KCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYwppbmRleCBlZTU5NTcxLi5lZThiYTVlIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKQEAgLTc1MCw3ICs3NTAsOCBA QCBQcm9jZXNzV2FsU25kck1lc3NhZ2UoWExvZ1JlY1B0ciB3YWxFbmQsIFRpbWVzdGFtcFR6 IHNlbmRUaW1lKQogCXdhbHJjdi0+bGFzdE1zZ1JlY2VpcHRUaW1lID0gbGFzdE1zZ1JlY2Vp cHRUaW1lOwogCVNwaW5Mb2NrUmVsZWFzZSgmd2FscmN2LT5tdXRleCk7CiAKLQllbG9nKERF QlVHMiwgInNlbmR0aW1lICVzIHJlY2VpcHR0aW1lICVzIHJlcGxpY2F0aW9uIGFwcGx5IGRl bGF5ICVkIHRyYW5zZmVyIGxhdGVuY3kgJWQiLAorCWlmIChsb2dfbWluX21lc2FnZXMgPD0g REVCVUcyKQorCQllbG9nKERFQlVHMiwgInNlbmR0aW1lICVzIHJlY2VpcHR0aW1lICVzIHJl cGxpY2F0aW9uIGFwcGx5IGRlbGF5ICVkIG1zIHRyYW5zZmVyIGxhdGVuY3kgJWQgbXMiLAog CQkJCQl0aW1lc3RhbXB0el90b19zdHIoc2VuZFRpbWUpLAogCQkJCQl0aW1lc3RhbXB0el90 b19zdHIobGFzdE1zZ1JlY2VpcHRUaW1lKSwKIAkJCQkJR2V0UmVwbGljYXRpb25BcHBseURl bGF5KCksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIu YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IDM1OThlNTYu LjM2MTE3MTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRl ci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC04MzQs NyArODM0LDEyIEBAIFdhbFNuZExvb3Aodm9pZCkKIAkJCWlmIChwcV9pc19zZW5kX3BlbmRp bmcoKSkKIAkJCQl3YWtlRXZlbnRzIHw9IFdMX1NPQ0tFVF9XUklURUFCTEU7CiAJCQllbHNl CisJCQl7CiAJCQkJV2FsU25kS2VlcGFsaXZlKG91dHB1dF9tZXNzYWdlKTsKKwkJCQkvKiBU cnkgdG8gZmx1c2ggcGVuZGluZyBvdXRwdXQgdG8gdGhlIGNsaWVudCAqLworCQkJCWlmIChw cV9mbHVzaF9pZl93cml0YWJsZSgpICE9IDApCisJCQkJCWJyZWFrOworCQkJfQogCiAJCQkv KiBEZXRlcm1pbmUgdGltZSB1bnRpbCByZXBsaWNhdGlvbiB0aW1lb3V0ICovCiAJCQlpZiAo cmVwbGljYXRpb25fdGltZW91dCA+IDApCgpjb21taXQgMjFiNDQ2ZGQwOTI3ZjhmMmExODdk OTQ2MWEwZDNmMTFkYjgzNmY3NwpBdXRob3I6IFRvbSBMYW5lIDx0Z2xAc3NzLnBnaC5wYS51 cz4KRGF0ZTogICBUaHUgSmFuIDEyIDE2OjQwOjE0IDIwMTIgLTA1MDAKCiAgICBGaXggQ0xV U1RFUi9WQUNVVU0gRlVMTCBmb3IgdG9hc3QgdmFsdWVzIG93bmVkIGJ5IHJlY2VudGx5LXVw ZGF0ZWQgcm93cy4KICAgIAogICAgSW4gY29tbWl0IDdiMGQwZTkzNTY5NjNkNWMzZTRkMzI5 YTkxN2Y1ZmJiODJhMmVmMDUsIEkgbWFkZSBDTFVTVEVSIGFuZAogICAgVkFDVVVNIEZVTEwg dHJ5IHRvIHByZXNlcnZlIHRvYXN0IHZhbHVlIE9JRHMgZnJvbSB0aGUgb3JpZ2luYWwgdG9h c3QgdGFibGUKICAgIHRvIHRoZSBuZXcgb25lLiAgSG93ZXZlciwgaWYgd2UgaGF2ZSB0byBj b3B5IGJvdGggbGl2ZSBhbmQgcmVjZW50bHktZGVhZAogICAgdmVyc2lvbnMgb2YgYSByb3cg dGhhdCBoYXMgYSB0b2FzdGVkIGNvbHVtbiwgdGhvc2UgdmVyc2lvbnMgbWF5IHdlbGwKICAg IHJlZmVyZW5jZSB0aGUgc2FtZSB0b2FzdCB2YWx1ZSB3aXRoIHRoZSBzYW1lIE9JRC4gIFRo ZSBwYXRjaCB0aGVuIGxlZCB0bwogICAgZHVwbGljYXRlLWtleSBmYWlsdXJlcyBhcyB3ZSB0 cmllZCB0byBpbnNlcnQgdGhlIHRvYXN0IHZhbHVlIHR3aWNlIHdpdGggdGhlCiAgICBzYW1l IE9JRC4gIChUaGUgcHJldmlvdXMgYmVoYXZpb3Igd2FzIG5vdCB2ZXJ5IGRlc2lyYWJsZSBl aXRoZXIsIHNpbmNlIGl0CiAgICB3b3VsZCBoYXZlIHNpbGVudGx5IGluc2VydGVkIHRoZSBz YW1lIHZhbHVlIHR3aWNlIHdpdGggZGlmZmVyZW50IE9JRHMuCiAgICBUaGF0IHdhc3RlcyBz cGFjZSwgYnV0IHdoYXQncyB3b3JzZSBpcyB0aGF0IHRoZSB0b2FzdCB2YWx1ZXMgaW5zZXJ0 ZWQgZm9yCiAgICBhbHJlYWR5LWRlYWQgaGVhcCByb3dzIHdvdWxkIG5vdCBiZSByZWNsYWlt ZWQgYnkgc3Vic2VxdWVudCBvcmRpbmFyeQogICAgVkFDVVVNcywgc2luY2UgdGhleSBnbyBp bnRvIHRoZSBuZXcgdG9hc3QgdGFibGUgbWFya2VkIGxpdmUgbm90IGRlbGV0ZWQuKQogICAg CiAgICBUbyBmaXgsIGNoZWNrIGlmIHRoZSBjb3BpZWQgT0lEIGFscmVhZHkgZXhpc3RzIGlu IHRoZSBuZXcgdG9hc3QgdGFibGUsIGFuZAogICAgaWYgc28sIGFzc3VtZSB0aGF0IGl0IHN0 b3JlcyB0aGUgZGVzaXJlZCB2YWx1ZS4gIFRoaXMgaXMgcmVhc29uYWJseSBzYWZlCiAgICBz aW5jZSB0aGUgb25seSBjYXNlIHdoZXJlIHdlIHdpbGwgY29weSBhbiBPSUQgZnJvbSBhIHBy ZXZpb3VzIHRvYXN0IHBvaW50ZXIKICAgIGlzIHdoZW4gdG9hc3RfaW5zZXJ0X29yX3VwZGF0 ZSB3YXMgZ2l2ZW4gdGhhdCB0b2FzdCBwb2ludGVyIGFuZCBzbyB3ZSBqdXN0CiAgICBwdWxs ZWQgdGhlIGRhdGEgZnJvbSB0aGUgb2xkIHRhYmxlOyBpZiB3ZSBnb3QgdHdvIGRpZmZlcmVu dCB2YWx1ZXMgdGhhdCB3YXkKICAgIHRoZW4gd2UgaGF2ZSBiaWcgcHJvYmxlbXMgYW55d2F5 LiAgV2UgZG8gaGF2ZSB0byBhc3N1bWUgdGhhdCBubyBvdGhlcgogICAgYmFja2VuZCBpcyBp bnNlcnRpbmcgaXRlbXMgaW50byB0aGUgbmV3IHRvYXN0IHRhYmxlIGNvbmN1cnJlbnRseSwg YnV0CiAgICB0aGF0J3Mgc3VyZWx5IHNhZmUgZm9yIENMVVNURVIgYW5kIFZBQ1VVTSBGVUxM LgogICAgCiAgICBQZXIgYnVnICM2MzkzIGZyb20gTWF4aW0gQm9ndWsuICBCYWNrLXBhdGNo IHRvIDkuMCwgc2FtZSBhcyB0aGUgcHJldmlvdXMKICAgIHBhdGNoLgoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3R1cHRvYXN0ZXIuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3R1cHRvYXN0ZXIuYwppbmRleCAzYmEzN2Y2Li4yOGI1YTIwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC90dXB0b2FzdGVyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdHVwdG9hc3Rlci5jCkBAIC03Niw3ICs3Niw4IEBAIGRvIHsg XAogc3RhdGljIHZvaWQgdG9hc3RfZGVsZXRlX2RhdHVtKFJlbGF0aW9uIHJlbCwgRGF0dW0g dmFsdWUpOwogc3RhdGljIERhdHVtIHRvYXN0X3NhdmVfZGF0dW0oUmVsYXRpb24gcmVsLCBE YXR1bSB2YWx1ZSwKIAkJCQkgc3RydWN0IHZhcmxlbmEgKm9sZGV4dGVybmFsLCBpbnQgb3B0 aW9ucyk7Ci1zdGF0aWMgYm9vbCB0b2FzdF92YWx1ZWlkX2V4aXN0cyhPaWQgdG9hc3RyZWxp ZCwgT2lkIHZhbHVlaWQpOworc3RhdGljIGJvb2wgdG9hc3RyZWxfdmFsdWVpZF9leGlzdHMo UmVsYXRpb24gdG9hc3RyZWwsIE9pZCB2YWx1ZWlkKTsKK3N0YXRpYyBib29sIHRvYXN0aWRf dmFsdWVpZF9leGlzdHMoT2lkIHRvYXN0cmVsaWQsIE9pZCB2YWx1ZWlkKTsKIHN0YXRpYyBz dHJ1Y3QgdmFybGVuYSAqdG9hc3RfZmV0Y2hfZGF0dW0oc3RydWN0IHZhcmxlbmEgKiBhdHRy KTsKIHN0YXRpYyBzdHJ1Y3QgdmFybGVuYSAqdG9hc3RfZmV0Y2hfZGF0dW1fc2xpY2Uoc3Ry dWN0IHZhcmxlbmEgKiBhdHRyLAogCQkJCQkJaW50MzIgc2xpY2VvZmZzZXQsIGludDMyIGxl bmd0aCk7CkBAIC0xMzQyLDcgKzEzNDMsMzQgQEAgdG9hc3Rfc2F2ZV9kYXR1bShSZWxhdGlv biByZWwsIERhdHVtIHZhbHVlLAogCQkJLyogTXVzdCBjb3B5IHRvIGFjY2VzcyBhbGlnbmVk IGZpZWxkcyAqLwogCQkJVkFSQVRUX0VYVEVSTkFMX0dFVF9QT0lOVEVSKG9sZF90b2FzdF9w b2ludGVyLCBvbGRleHRlcm5hbCk7CiAJCQlpZiAob2xkX3RvYXN0X3BvaW50ZXIudmFfdG9h c3RyZWxpZCA9PSByZWwtPnJkX3RvYXN0b2lkKQorCQkJeworCQkJCS8qIFRoaXMgdmFsdWUg Y2FtZSBmcm9tIHRoZSBvbGQgdG9hc3QgdGFibGU7IHJldXNlIGl0cyBPSUQgKi8KIAkJCQl0 b2FzdF9wb2ludGVyLnZhX3ZhbHVlaWQgPSBvbGRfdG9hc3RfcG9pbnRlci52YV92YWx1ZWlk OworCisJCQkJLyoKKwkJCQkgKiBUaGVyZSBpcyBhIGNvcm5lciBjYXNlIGhlcmU6IHRoZSB0 YWJsZSByZXdyaXRlIG1pZ2h0IGhhdmUKKwkJCQkgKiB0byBjb3B5IGJvdGggbGl2ZSBhbmQg cmVjZW50bHktZGVhZCB2ZXJzaW9ucyBvZiBhIHJvdywgYW5kCisJCQkJICogdGhvc2UgdmVy c2lvbnMgY291bGQgZWFzaWx5IHJlZmVyZW5jZSB0aGUgc2FtZSB0b2FzdCB2YWx1ZS4KKwkJ CQkgKiBXaGVuIHdlIGNvcHkgdGhlIHNlY29uZCBvciBsYXRlciB2ZXJzaW9uIG9mIHN1Y2gg YSByb3csCisJCQkJICogcmV1c2luZyB0aGUgT0lEIHdpbGwgbWVhbiB3ZSBzZWxlY3QgYW4g T0lEIHRoYXQncyBhbHJlYWR5CisJCQkJICogaW4gdGhlIG5ldyB0b2FzdCB0YWJsZS4gIENo ZWNrIGZvciB0aGF0LCBhbmQgaWYgc28sIGp1c3QKKwkJCQkgKiBmYWxsIHRocm91Z2ggd2l0 aG91dCB3cml0aW5nIHRoZSBkYXRhIGFnYWluLgorCQkJCSAqCisJCQkJICogV2hpbGUgYW5u b3lpbmcgYW5kIHVnbHktbG9va2luZywgdGhpcyBpcyBhIGdvb2QgdGhpbmcKKwkJCQkgKiBi ZWNhdXNlIGl0IGVuc3VyZXMgdGhhdCB3ZSB3aW5kIHVwIHdpdGggb25seSBvbmUgY29weSBv ZgorCQkJCSAqIHRoZSB0b2FzdCB2YWx1ZSB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIGNvcHkg aW4gdGhlIG9sZAorCQkJCSAqIHRvYXN0IHRhYmxlLiAgQmVmb3JlIHdlIGRldGVjdGVkIHRo aXMgY2FzZSwgd2UnZCBoYXZlIG1hZGUKKwkJCQkgKiBtdWx0aXBsZSBjb3BpZXMsIHdhc3Rp bmcgc3BhY2U7IGFuZCB3aGF0J3Mgd29yc2UsIHRoZQorCQkJCSAqIGNvcGllcyBiZWxvbmdp bmcgdG8gYWxyZWFkeS1kZWxldGVkIGhlYXAgdHVwbGVzIHdvdWxkIG5vdAorCQkJCSAqIGJl IHJlY2xhaW1lZCBieSBWQUNVVU0uCisJCQkJICovCisJCQkJaWYgKHRvYXN0cmVsX3ZhbHVl aWRfZXhpc3RzKHRvYXN0cmVsLAorCQkJCQkJCQkJCQl0b2FzdF9wb2ludGVyLnZhX3ZhbHVl aWQpKQorCQkJCXsKKwkJCQkJLyogTWF0Y2gsIHNvIHNob3J0LWNpcmN1aXQgdGhlIGRhdGEg c3RvcmFnZSBsb29wIGJlbG93ICovCisJCQkJCWRhdGFfdG9kbyA9IDA7CisJCQkJfQorCQkJ fQogCQl9CiAJCWlmICh0b2FzdF9wb2ludGVyLnZhX3ZhbHVlaWQgPT0gSW52YWxpZE9pZCkK IAkJewpAQCAtMTM1Niw4ICsxMzg0LDggQEAgdG9hc3Rfc2F2ZV9kYXR1bShSZWxhdGlvbiBy ZWwsIERhdHVtIHZhbHVlLAogCQkJCQlHZXROZXdPaWRXaXRoSW5kZXgodG9hc3RyZWwsCiAJ CQkJCQkJCQkgICBSZWxhdGlvbkdldFJlbGlkKHRvYXN0aWR4KSwKIAkJCQkJCQkJCSAgIChB dHRyTnVtYmVyKSAxKTsKLQkJCX0gd2hpbGUgKHRvYXN0X3ZhbHVlaWRfZXhpc3RzKHJlbC0+ cmRfdG9hc3RvaWQsCi0JCQkJCQkJCQkJICB0b2FzdF9wb2ludGVyLnZhX3ZhbHVlaWQpKTsK KwkJCX0gd2hpbGUgKHRvYXN0aWRfdmFsdWVpZF9leGlzdHMocmVsLT5yZF90b2FzdG9pZCwK KwkJCQkJCQkJCQkJdG9hc3RfcG9pbnRlci52YV92YWx1ZWlkKSk7CiAJCX0KIAl9CiAKQEAg LTE0OTUsMjUgKzE1MjMsMTkgQEAgdG9hc3RfZGVsZXRlX2RhdHVtKFJlbGF0aW9uIHJlbCwg RGF0dW0gdmFsdWUpCiAKIAogLyogLS0tLS0tLS0tLQotICogdG9hc3RfdmFsdWVpZF9leGlz dHMgLQorICogdG9hc3RyZWxfdmFsdWVpZF9leGlzdHMgLQogICoKICAqCVRlc3Qgd2hldGhl ciBhIHRvYXN0IHZhbHVlIHdpdGggdGhlIGdpdmVuIElEIGV4aXN0cyBpbiB0aGUgdG9hc3Qg cmVsYXRpb24KICAqIC0tLS0tLS0tLS0KICAqLwogc3RhdGljIGJvb2wKLXRvYXN0X3ZhbHVl aWRfZXhpc3RzKE9pZCB0b2FzdHJlbGlkLCBPaWQgdmFsdWVpZCkKK3RvYXN0cmVsX3ZhbHVl aWRfZXhpc3RzKFJlbGF0aW9uIHRvYXN0cmVsLCBPaWQgdmFsdWVpZCkKIHsKIAlib29sCQly ZXN1bHQgPSBmYWxzZTsKLQlSZWxhdGlvbgl0b2FzdHJlbDsKIAlTY2FuS2V5RGF0YSB0b2Fz dGtleTsKIAlTeXNTY2FuRGVzYyB0b2FzdHNjYW47CiAKIAkvKgotCSAqIE9wZW4gdGhlIHRv YXN0IHJlbGF0aW9uCi0JICovCi0JdG9hc3RyZWwgPSBoZWFwX29wZW4odG9hc3RyZWxpZCwg QWNjZXNzU2hhcmVMb2NrKTsKLQotCS8qCiAJICogU2V0dXAgYSBzY2FuIGtleSB0byBmaW5k IGNodW5rcyB3aXRoIG1hdGNoaW5nIHZhX3ZhbHVlaWQKIAkgKi8KIAlTY2FuS2V5SW5pdCgm dG9hc3RrZXksCkBAIC0xNTMwLDEwICsxNTUyLDI3IEBAIHRvYXN0X3ZhbHVlaWRfZXhpc3Rz KE9pZCB0b2FzdHJlbGlkLCBPaWQgdmFsdWVpZCkKIAlpZiAoc3lzdGFibGVfZ2V0bmV4dCh0 b2FzdHNjYW4pICE9IE5VTEwpCiAJCXJlc3VsdCA9IHRydWU7CiAKLQkvKgotCSAqIEVuZCBz Y2FuIGFuZCBjbG9zZSByZWxhdGlvbnMKLQkgKi8KIAlzeXN0YWJsZV9lbmRzY2FuKHRvYXN0 c2Nhbik7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKiAtLS0tLS0tLS0tCisgKiB0b2Fz dGlkX3ZhbHVlaWRfZXhpc3RzIC0KKyAqCisgKglBcyBhYm92ZSwgYnV0IHdvcmsgZnJvbSB0 b2FzdCByZWwncyBPSUQgbm90IGFuIG9wZW4gcmVsYXRpb24KKyAqIC0tLS0tLS0tLS0KKyAq Lworc3RhdGljIGJvb2wKK3RvYXN0aWRfdmFsdWVpZF9leGlzdHMoT2lkIHRvYXN0cmVsaWQs IE9pZCB2YWx1ZWlkKQoreworCWJvb2wJCXJlc3VsdDsKKwlSZWxhdGlvbgl0b2FzdHJlbDsK KworCXRvYXN0cmVsID0gaGVhcF9vcGVuKHRvYXN0cmVsaWQsIEFjY2Vzc1NoYXJlTG9jayk7 CisKKwlyZXN1bHQgPSB0b2FzdHJlbF92YWx1ZWlkX2V4aXN0cyh0b2FzdHJlbCwgdmFsdWVp ZCk7CisKIAloZWFwX2Nsb3NlKHRvYXN0cmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCiAJcmV0 dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIuYwppbmRleCA5OTc0NDllLi45NDA4 ZjI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvY2x1c3Rlci5jCkBAIC03ODcsMTYgKzc4NywxOSBAQCBj b3B5X2hlYXBfZGF0YShPaWQgT0lETmV3SGVhcCwgT2lkIE9JRE9sZEhlYXAsIE9pZCBPSURP bGRJbmRleCwKIAkJICogV2hlbiBkb2luZyBzd2FwIGJ5IGNvbnRlbnQsIGFueSB0b2FzdCBw b2ludGVycyB3cml0dGVuIGludG8gTmV3SGVhcAogCQkgKiBtdXN0IHVzZSB0aGUgb2xkIHRv YXN0IHRhYmxlJ3MgT0lELCBiZWNhdXNlIHRoYXQncyB3aGVyZSB0aGUgdG9hc3QKIAkJICog ZGF0YSB3aWxsIGV2ZW50dWFsbHkgYmUgZm91bmQuICBTZXQgdGhpcyB1cCBieSBzZXR0aW5n IHJkX3RvYXN0b2lkLgotCQkgKiBUaGlzIGFsc28gdGVsbHMgdHVwdG9hc3Rlci5jIHRvIHBy ZXNlcnZlIHRoZSB0b2FzdCB2YWx1ZSBPSURzLAotCQkgKiB3aGljaCB3ZSB3YW50IHNvIGFz IG5vdCB0byBpbnZhbGlkYXRlIHRvYXN0IHBvaW50ZXJzIGluIHN5c3RlbQotCQkgKiBjYXRh bG9nIGNhY2hlcy4KKwkJICogVGhpcyBhbHNvIHRlbGxzIHRvYXN0X3NhdmVfZGF0dW0oKSB0 byBwcmVzZXJ2ZSB0aGUgdG9hc3QgdmFsdWUKKwkJICogT0lEcywgd2hpY2ggd2Ugd2FudCBz byBhcyBub3QgdG8gaW52YWxpZGF0ZSB0b2FzdCBwb2ludGVycyBpbgorCQkgKiBzeXN0ZW0g Y2F0YWxvZyBjYWNoZXMsIGFuZCB0byBhdm9pZCBtYWtpbmcgbXVsdGlwbGUgY29waWVzIG9m IGEKKwkJICogc2luZ2xlIHRvYXN0IHZhbHVlLgogCQkgKgogCQkgKiBOb3RlIHRoYXQgd2Ug bXVzdCBob2xkIE5ld0hlYXAgb3BlbiB1bnRpbCB3ZSBhcmUgZG9uZSB3cml0aW5nIGRhdGEs CiAJCSAqIHNpbmNlIHRoZSByZWxjYWNoZSB3aWxsIG5vdCBndWFyYW50ZWUgdG8gcmVtZW1i ZXIgdGhpcyBzZXR0aW5nIG9uY2UKIAkJICogdGhlIHJlbGF0aW9uIGlzIGNsb3NlZC4JQWxz bywgdGhpcyB0ZWNobmlxdWUgZGVwZW5kcyBvbiB0aGUgZmFjdAogCQkgKiB0aGF0IG5vIG9u ZSB3aWxsIHRyeSB0byByZWFkIGZyb20gdGhlIE5ld0hlYXAgdW50aWwgYWZ0ZXIgd2UndmUK IAkJICogZmluaXNoZWQgd3JpdGluZyBpdCBhbmQgc3dhcHBpbmcgdGhlIHJlbHMgLS0tIG90 aGVyd2lzZSB0aGV5IGNvdWxkCi0JCSAqIGZvbGxvdyB0aGUgdG9hc3QgcG9pbnRlcnMgdG8g dGhlIHdyb25nIHBsYWNlLgorCQkgKiBmb2xsb3cgdGhlIHRvYXN0IHBvaW50ZXJzIHRvIHRo ZSB3cm9uZyBwbGFjZS4gIChJdCB3b3VsZCBhY3R1YWxseQorCQkgKiB3b3JrIGZvciB2YWx1 ZXMgY29waWVkIG92ZXIgZnJvbSB0aGUgb2xkIHRvYXN0IHRhYmxlLCBidXQgbm90IGZvcgor CQkgKiBhbnkgdmFsdWVzIHRoYXQgd2UgdG9hc3Qgd2hpY2ggd2VyZSBwcmV2aW91c2x5IG5v dCB0b2FzdGVkLikKIAkJICovCiAJCU5ld0hlYXAtPnJkX3RvYXN0b2lkID0gT2xkSGVhcC0+ cmRfcmVsLT5yZWx0b2FzdHJlbGlkOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0 aWxzL3JlbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKaW5kZXggMGU2Mjg2Yi4uZDQw NGMyYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvcmVsLmgKQEAgLTE1OSw3ICsxNTksOCBAQCB0eXBlZGVmIHN0cnVjdCBS ZWxhdGlvbkRhdGEKIAkgKiBoYXZlIHRoZSBleGlzdGluZyB0b2FzdCB0YWJsZSdzIE9JRCwg bm90IHRoZSBPSUQgb2YgdGhlIHRyYW5zaWVudCB0b2FzdAogCSAqIHRhYmxlLiAgSWYgcmRf dG9hc3RvaWQgaXNuJ3QgSW52YWxpZE9pZCwgaXQgaXMgdGhlIE9JRCB0byBwbGFjZSBpbgog CSAqIHRvYXN0IHBvaW50ZXJzIGluc2VydGVkIGludG8gdGhpcyByZWwuICAoTm90ZSBpdCdz IHNldCBvbiB0aGUgbmV3Ci0JICogdmVyc2lvbiBvZiB0aGUgbWFpbiBoZWFwLCBub3QgdGhl IHRvYXN0IHRhYmxlIGl0c2VsZi4pCisJICogdmVyc2lvbiBvZiB0aGUgbWFpbiBoZWFwLCBu b3QgdGhlIHRvYXN0IHRhYmxlIGl0c2VsZi4pICBUaGlzIGFsc28KKwkgKiBjYXVzZXMgdG9h c3Rfc2F2ZV9kYXR1bSgpIHRvIHRyeSB0byBwcmVzZXJ2ZSB0b2FzdCB2YWx1ZSBPSURzLgog CSAqLwogCU9pZAkJCXJkX3RvYXN0b2lkOwkvKiBSZWFsIFRPQVNUIHRhYmxlJ3MgT0lELCBv ciBJbnZhbGlkT2lkICovCiAKCmNvbW1pdCBkZTVhMDhjNTlkZTM5ZGYwNzU5OTcyM2NiMjEy YWU4Mjk3OTAzZjQ4CkF1dGhvcjogVG9tIExhbmUgPHRnbEBzc3MucGdoLnBhLnVzPgpEYXRl OiAgIFRodSBKYW4gMTIgMTQ6MTg6MDggMjAxMiAtMDUwMAoKICAgIFR3ZWFrIGR1cGxpY2F0 ZS1pbmRleC1jb2x1bW4gcmVncmVzc2lvbiB0ZXN0IHRvIGF2b2lkIGxvY2FsZSBzZW5zaXRp dml0eS4KICAgIAogICAgVGhlIG9yaWdpbmFsbHktY2hvc2VuIHRlc3QgY2FzZSBnaXZlcyBk aWZmZXJlbnQgcmVzdWx0cyBpbiBlc19FQyBsb2NhbGUKICAgIGJlY2F1c2Ugb2YgdW51c3Vh bCBydWxlIGZvciBzb3J0aW5nIHN0cmluZ3MgYmVnaW5uaW5nIHdpdGggIkxMIi4gIEFkanVz dAogICAgdGhlIGNvbXBhcmlzb24gdmFsdWUgdG8gYXZvaWQgdGhhdCwgd2hpbGUgaG9wZWZ1 bGx5IG5vdCBpbnRyb2R1Y2luZyBuZXcKICAgIGxvY2FsZSBkZXBlbmRlbmNpZXMgZWxzZXdo ZXJlLiAgUGVyIHJlcG9ydCBmcm9tIEphaW1lIENhc2Fub3ZhLgoKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2luZGV4Lm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2luZGV4Lm91dAppbmRleCAzYmUyMDE2Li5iMWZjYWRh IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgub3V0CkBA IC0yNDY4LDE4ICsyNDY4LDE4IEBAIENSRUFURSBJTkRFWCBkdXBpbmRleGNvbHNfaSBPTiBk dXBpbmRleGNvbHMgKGYxLCBpZCwgZjEgdGV4dF9wYXR0ZXJuX29wcyk7CiBWQUNVVU0gQU5B TFlaRSBkdXBpbmRleGNvbHM7CiBFWFBMQUlOIChDT1NUUyBPRkYpCiAgIFNFTEVDVCBjb3Vu dCgqKSBGUk9NIGR1cGluZGV4Y29scwotICAgIFdIRVJFIGYxID4gJ0xYJyBhbmQgaWQgPCAx MDAwIGFuZCBmMSB+PH4gJ1lYJzsKKyAgICBXSEVSRSBmMSA+ICdNQScgYW5kIGlkIDwgMTAw MCBhbmQgZjEgfjx+ICdZWCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFnZ3JlZ2F0ZQogICAgLT4gIEluZGV4IE9ubHkg U2NhbiB1c2luZyBkdXBpbmRleGNvbHNfaSBvbiBkdXBpbmRleGNvbHMKLSAgICAgICAgIElu ZGV4IENvbmQ6ICgoZjEgPiAnTFgnOjp0ZXh0KSBBTkQgKGlkIDwgMTAwMCkgQU5EIChmMSB+ PH4gJ1lYJzo6dGV4dCkpCisgICAgICAgICBJbmRleCBDb25kOiAoKGYxID4gJ01BJzo6dGV4 dCkgQU5EIChpZCA8IDEwMDApIEFORCAoZjEgfjx+ICdZWCc6OnRleHQpKQogKDMgcm93cykK IAogU0VMRUNUIGNvdW50KCopIEZST00gZHVwaW5kZXhjb2xzCi0gIFdIRVJFIGYxID4gJ0xY JyBhbmQgaWQgPCAxMDAwIGFuZCBmMSB+PH4gJ1lYJzsKKyAgV0hFUkUgZjEgPiAnTUEnIGFu ZCBpZCA8IDEwMDAgYW5kIGYxIH48fiAnWVgnOwogIGNvdW50IAogLS0tLS0tLQotICAgNTAw CisgICA0OTcKICgxIHJvdykKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv Y3JlYXRlX2luZGV4LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5z cWwKaW5kZXggNmQyNWZmOS4uNWU1ZmMyMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvY3JlYXRlX2luZGV4LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVh dGVfaW5kZXguc3FsCkBAIC04MTYsNiArODE2LDYgQEAgVkFDVVVNIEFOQUxZWkUgZHVwaW5k ZXhjb2xzOwogCiBFWFBMQUlOIChDT1NUUyBPRkYpCiAgIFNFTEVDVCBjb3VudCgqKSBGUk9N IGR1cGluZGV4Y29scwotICAgIFdIRVJFIGYxID4gJ0xYJyBhbmQgaWQgPCAxMDAwIGFuZCBm MSB+PH4gJ1lYJzsKKyAgICBXSEVSRSBmMSA+ICdNQScgYW5kIGlkIDwgMTAwMCBhbmQgZjEg fjx+ICdZWCc7CiBTRUxFQ1QgY291bnQoKikgRlJPTSBkdXBpbmRleGNvbHMKLSAgV0hFUkUg ZjEgPiAnTFgnIGFuZCBpZCA8IDEwMDAgYW5kIGYxIH48fiAnWVgnOworICBXSEVSRSBmMSA+ ICdNQScgYW5kIGlkIDwgMTAwMCBhbmQgZjEgfjx+ICdZWCc7Cgpjb21taXQgNTAzNjNjOGY4 NmY4OWZlNjExYmE0MTc1NzUyMTg5Nzg5MTdmMWFjMApBdXRob3I6IEFsdmFybyBIZXJyZXJh IDxhbHZoZXJyZUBhbHZoLm5vLWlwLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDE4OjQ2OjE4 IDIwMTIgLTAzMDAKCiAgICBWYWxpZGF0ZSBudW1iZXIgb2Ygc3RlcHMgc3BlY2lmaWVkIGlu IHBlcm11dGF0aW9uCiAgICAKICAgIEEgcGVybXV0YXRpb24gdGhhdCBzcGVjaWZpZXMgbW9y ZSBzdGVwcyB0aGFuIGRlZmluZWQgY2F1c2VzCiAgICBpc29sYXRpb250ZXN0ZXIgdG8gY3Jh c2gsIHNvIGF2b2lkIHRoYXQuICBVc2luZyBsZXNzIHN0ZXBzIHRoYW4gZGVmaW5lZAogICAg c2hvdWxkIHByb2JhYmx5IG5vdCBiZSBhIHByb2JsZW0sIGJ1dCBubyBzcGVjIGN1cnJlbnRs eSBkb2VzIHRoYXQuCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlv bnRlc3Rlci5jIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbnRlc3Rlci5jCmluZGV4 IDM4ZjFlNzguLjFkMzM5ZTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29s YXRpb250ZXN0ZXIuYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9udGVzdGVy LmMKQEAgLTM5NSw2ICszOTUsMTIgQEAgcnVuX25hbWVkX3Blcm11dGF0aW9ucyhUZXN0U3Bl YyAqIHRlc3RzcGVjKQogCQlQZXJtdXRhdGlvbiAqcCA9IHRlc3RzcGVjLT5wZXJtdXRhdGlv bnNbaV07CiAJCVN0ZXAJICAqKnN0ZXBzOwogCisJCWlmIChwLT5uc3RlcHMgIT0gbmFsbHN0 ZXBzKQorCQl7CisJCQlmcHJpbnRmKHN0ZGVyciwgImludmFsaWQgbnVtYmVyIG9mIHN0ZXBz IGluIHBlcm11dGF0aW9uICVkXG4iLCBpICsgMSk7CisJCQlleGl0X25pY2VseSgpOworCQl9 CisKIAkJc3RlcHMgPSBtYWxsb2MocC0+bnN0ZXBzICogc2l6ZW9mKFN0ZXAgKikpOwogCiAJ CS8qIEZpbmQgYWxsIHRoZSBuYW1lZCBzdGVwcyBmcm9tIHRoZSBsb29rdXAgdGFibGUgKi8K QEAgLTQwNCw3ICs0MTAsOCBAQCBydW5fbmFtZWRfcGVybXV0YXRpb25zKFRlc3RTcGVjICog dGVzdHNwZWMpCiAJCQkJCQkJCQkJIHNpemVvZihTdGVwICopLCAmc3RlcF9ic2VhcmNoX2Nt cCkpOwogCQkJaWYgKHN0ZXBzW2pdID09IE5VTEwpCiAJCQl7Ci0JCQkJZnByaW50ZihzdGRl cnIsICJ1bmRlZmluZWQgc3RlcCBcIiVzXCIgc3BlY2lmaWVkIGluIHBlcm11dGF0aW9uXG4i LCBwLT5zdGVwbmFtZXNbal0pOworCQkJCWZwcmludGYoc3RkZXJyLCAidW5kZWZpbmVkIHN0 ZXAgXCIlc1wiIHNwZWNpZmllZCBpbiBwZXJtdXRhdGlvblxuIiwKKwkJCQkJCXAtPnN0ZXBu YW1lc1tqXSk7CiAJCQkJZXhpdF9uaWNlbHkoKTsKIAkJCX0KIAkJfQoKY29tbWl0IDFiOWRl YTA0YjVjZDhiMWIyZjgwNDFlNGFlY2U5ZDU3M2YwMDdlYjEKQXV0aG9yOiBIZWlra2kgTGlu bmFrYW5nYXMgPGhlaWtraS5saW5uYWthbmdhc0Bpa2kuZmk+CkRhdGU6ICAgV2VkIEphbiAx MSAxMTowMDo1MyAyMDEyICswMjAwCgogICAgUmVtb3ZlIHVzZWxlc3MgJ25lZWRsb2NrJyBh cmd1bWVudCBmcm9tIEdldFhMb2dJbnNlcnRSZWNQdHIuIEl0IHdhcyBhbHdheXMKICAgIHBh c3NlZCBhcyAndHJ1ZScuCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IGRi N2Q5OTMuLjE5ZWY2NmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTk0 MTEsMTYgKzk0MTEsMTQgQEAgR2V0U3RhbmRieUZsdXNoUmVjUHRyKHZvaWQpCiAgKiBHZXQg bGF0ZXN0IFdBTCBpbnNlcnQgcG9pbnRlcgogICovCiBYTG9nUmVjUHRyCi1HZXRYTG9nSW5z ZXJ0UmVjUHRyKGJvb2wgbmVlZGxvY2spCitHZXRYTG9nSW5zZXJ0UmVjUHRyKHZvaWQpCiB7 CiAJWExvZ0N0bEluc2VydCAqSW5zZXJ0ID0gJlhMb2dDdGwtPkluc2VydDsKIAlYTG9nUmVj UHRyCWN1cnJlbnRfcmVjcHRyOwogCi0JaWYgKG5lZWRsb2NrKQotCQlMV0xvY2tBY3F1aXJl KFdBTEluc2VydExvY2ssIExXX1NIQVJFRCk7CisJTFdMb2NrQWNxdWlyZShXQUxJbnNlcnRM b2NrLCBMV19TSEFSRUQpOwogCUlOU0VSVF9SRUNQVFIoY3VycmVudF9yZWNwdHIsIEluc2Vy dCwgSW5zZXJ0LT5jdXJyaWR4KTsKLQlpZiAobmVlZGxvY2spCi0JCUxXTG9ja1JlbGVhc2Uo V0FMSW5zZXJ0TG9jayk7CisJTFdMb2NrUmVsZWFzZShXQUxJbnNlcnRMb2NrKTsKIAogCXJl dHVybiBjdXJyZW50X3JlY3B0cjsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2dmdW5jcy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Z2Z1bmNzLmMKaW5kZXggMWNhMjc5ZC4uMmUxMGQ0ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZ2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZ2Z1bmNzLmMKQEAgLTIwMCw3ICsyMDAsNyBAQCBwZ19jdXJyZW50X3hs b2dfaW5zZXJ0X2xvY2F0aW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJIGVycm1zZygicmVj b3ZlcnkgaXMgaW4gcHJvZ3Jlc3MiKSwKIAkJCQkgZXJyaGludCgiV0FMIGNvbnRyb2wgZnVu Y3Rpb25zIGNhbm5vdCBiZSBleGVjdXRlZCBkdXJpbmcgcmVjb3ZlcnkuIikpKTsKIAotCWN1 cnJlbnRfcmVjcHRyID0gR2V0WExvZ0luc2VydFJlY1B0cih0cnVlKTsKKwljdXJyZW50X3Jl Y3B0ciA9IEdldFhMb2dJbnNlcnRSZWNQdHIoKTsKIAogCXNucHJpbnRmKGxvY2F0aW9uLCBz aXplb2YobG9jYXRpb24pLCAiJVgvJVgiLAogCQkJIGN1cnJlbnRfcmVjcHRyLnhsb2dpZCwg Y3VycmVudF9yZWNwdHIueHJlY29mZik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3MveGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAppbmRleCA5MzYyMmM0Li4x ZGRmNGJmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCisrKyBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKQEAgLTI4OCw3ICsyODgsNyBAQCBleHRlcm4gYm9v bCBYTG9nSW5zZXJ0QWxsb3dlZCh2b2lkKTsKIGV4dGVybiB2b2lkIEdldFhMb2dSZWNlaXB0 VGltZShUaW1lc3RhbXBUeiAqcnRpbWUsIGJvb2wgKmZyb21TdHJlYW0pOwogZXh0ZXJuIFhM b2dSZWNQdHIgR2V0WExvZ1JlcGxheVJlY1B0cihYTG9nUmVjUHRyICpyZXN0b3JlTGFzdFJl Y1B0cik7CiBleHRlcm4gWExvZ1JlY1B0ciBHZXRTdGFuZGJ5Rmx1c2hSZWNQdHIodm9pZCk7 Ci1leHRlcm4gWExvZ1JlY1B0ciBHZXRYTG9nSW5zZXJ0UmVjUHRyKGJvb2wgbmVlZGxvY2sp OworZXh0ZXJuIFhMb2dSZWNQdHIgR2V0WExvZ0luc2VydFJlY1B0cih2b2lkKTsKIGV4dGVy biBYTG9nUmVjUHRyIEdldFhMb2dXcml0ZVJlY1B0cih2b2lkKTsKIGV4dGVybiBib29sIFJl Y292ZXJ5SXNQYXVzZWQodm9pZCk7CiBleHRlcm4gdm9pZCBTZXRSZWNvdmVyeVBhdXNlKGJv b2wgcmVjb3ZlcnlQYXVzZSk7Cgpjb21taXQgOWM4MDhmODljMjg0MWRkODQ3NTU1ODk4YThk YjQ1ZmNkNjllOTEzYgpBdXRob3I6IEhlaWtraSBMaW5uYWthbmdhcyA8aGVpa2tpLmxpbm5h a2FuZ2FzQGlraS5maT4KRGF0ZTogICBXZWQgSmFuIDExIDA5OjQ2OjE4IDIwMTIgKzAyMDAK CiAgICBSZWZhY3RvciBYTG9nSW5zZXJ0IGEgYml0LiBUaGUgcmRhdGEgZW50cmllcyBmb3Ig YmFja3VwIGJsb2NrcyBhcmUgbm93CiAgICBjb25zdHJ1Y3RlZCBiZWZvcmUgYWNxdWlyaW5n IFdBTEluc2VydExvY2ssIHdoaWNoIHNsaWdodGx5IHJlZHVjZXMgdGhlIHRpbWUKICAgIHRo ZSBsb2NrIGlzIGhlbGQuIEFsdGhvdWdoIEkgY291bGQgbm90IG1lYXN1cmUgYW55IGJlbmVm aXQgaW4gYmVuY2htYXJrcywKICAgIHRoZSBjb2RlIGlzIG1vcmUgcmVhZGFibGUgdGhpcyB3 YXkuCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IDhlNjU5NjIuLmRiN2Q5 OTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTY5NCw2ICs2OTQsNyBA QCBYTG9nSW5zZXJ0KFJtZ3JJZCBybWlkLCB1aW50OCBpbmZvLCBYTG9nUmVjRGF0YSAqcmRh dGEpCiAJdWludDMyCQlmcmVlc3BhY2U7CiAJaW50CQkJY3VycmlkeDsKIAlYTG9nUmVjRGF0 YSAqcmR0OworCVhMb2dSZWNEYXRhICpyZHRfbGFzdG5vcm1hbDsKIAlCdWZmZXIJCWR0YnVm W1hMUl9NQVhfQktQX0JMT0NLU107CiAJYm9vbAkJZHRidWZfYmtwW1hMUl9NQVhfQktQX0JM T0NLU107CiAJQmtwQmxvY2sJZHRidWZfeGxnW1hMUl9NQVhfQktQX0JMT0NLU107CkBAIC03 MDgsNiArNzA5LDcgQEAgWExvZ0luc2VydChSbWdySWQgcm1pZCwgdWludDggaW5mbywgWExv Z1JlY0RhdGEgKnJkYXRhKQogCWJvb2wJCXVwZHJxc3Q7CiAJYm9vbAkJZG9QYWdlV3JpdGVz OwogCWJvb2wJCWlzTG9nU3dpdGNoID0gKHJtaWQgPT0gUk1fWExPR19JRCAmJiBpbmZvID09 IFhMT0dfU1dJVENIKTsKKwl1aW50OAkJaW5mb19vcmlnID0gaW5mbzsKIAogCS8qIGNyb3Nz LWNoZWNrIG9uIHdoZXRoZXIgd2Ugc2hvdWxkIGJlIGhlcmUgb3Igbm90ICovCiAJaWYgKCFY TG9nSW5zZXJ0QWxsb3dlZCgpKQpAQCAtNzMxLDIzICs3MzMsMTggQEAgWExvZ0luc2VydChS bWdySWQgcm1pZCwgdWludDggaW5mbywgWExvZ1JlY0RhdGEgKnJkYXRhKQogCX0KIAogCS8q Ci0JICogSGVyZSB3ZSBzY2FuIHRoZSByZGF0YSBjaGFpbiwgZGV0ZXJtaW5lIHdoaWNoIGJ1 ZmZlcnMgbXVzdCBiZSBiYWNrZWQKLQkgKiB1cCwgYW5kIGNvbXB1dGUgdGhlIENSQyB2YWx1 ZXMgZm9yIHRoZSBkYXRhLiAgTm90ZSB0aGF0IHRoZSByZWNvcmQKLQkgKiBoZWFkZXIgaXNu J3QgYWRkZWQgaW50byB0aGUgQ1JDIGluaXRpYWxseSBzaW5jZSB3ZSBkb24ndCBrbm93IHRo ZSBmaW5hbAotCSAqIGxlbmd0aCBvciBpbmZvIGJpdHMgcXVpdGUgeWV0LiAgVGh1cywgdGhl IENSQyB3aWxsIHJlcHJlc2VudCB0aGUgQ1JDIG9mCi0JICogdGhlIHdob2xlIHJlY29yZCBp biB0aGUgb3JkZXIgInJkYXRhLCB0aGVuIGJhY2t1cCBibG9ja3MsIHRoZW4gcmVjb3JkCi0J ICogaGVhZGVyIi4KKwkgKiBIZXJlIHdlIHNjYW4gdGhlIHJkYXRhIGNoYWluLCB0byBkZXRl cm1pbmUgd2hpY2ggYnVmZmVycyBtdXN0IGJlIGJhY2tlZAorCSAqIHVwLgogCSAqCiAJICog V2UgbWF5IGhhdmUgdG8gbG9vcCBiYWNrIHRvIGhlcmUgaWYgYSByYWNlIGNvbmRpdGlvbiBp cyBkZXRlY3RlZCBiZWxvdy4KIAkgKiBXZSBjb3VsZCBwcmV2ZW50IHRoZSByYWNlIGJ5IGRv aW5nIGFsbCB0aGlzIHdvcmsgd2hpbGUgaG9sZGluZyB0aGUKIAkgKiBpbnNlcnQgbG9jaywg YnV0IGl0IHNlZW1zIGJldHRlciB0byBhdm9pZCBkb2luZyBDUkMgY2FsY3VsYXRpb25zIHdo aWxlCi0JICogaG9sZGluZyB0aGUgbG9jay4gIFRoaXMgbWVhbnMgd2UgaGF2ZSB0byBiZSBj YXJlZnVsIGFib3V0IG1vZGlmeWluZyB0aGUKLQkgKiByZGF0YSBjaGFpbiB1bnRpbCB3ZSBr bm93IHdlIGFyZW4ndCBnb2luZyB0byBsb29wIGJhY2sgYWdhaW4uICBUaGUgb25seQotCSAq IGNoYW5nZSB3ZSBhbGxvdyBvdXJzZWx2ZXMgdG8gbWFrZSBlYXJsaWVyIGlzIHRvIHNldCBy ZHQtPmRhdGEgPSBOVUxMIGluCi0JICogY2hhaW4gaXRlbXMgd2UgaGF2ZSBkZWNpZGVkIHdl IHdpbGwgaGF2ZSB0byBiYWNrIHVwIHRoZSB3aG9sZSBidWZmZXIKLQkgKiBmb3IuICBUaGlz IGlzIE9LIGJlY2F1c2Ugd2Ugd2lsbCBjZXJ0YWlubHkgZGVjaWRlIHRoZSBzYW1lIHRoaW5n IGFnYWluCi0JICogZm9yIHRob3NlIGl0ZW1zIGlmIHdlIGRvIGl0IG92ZXI7IGRvaW5nIGl0 IGhlcmUgc2F2ZXMgYW4gZXh0cmEgcGFzcwotCSAqIG92ZXIgdGhlIGNoYWluIGxhdGVyLgor CSAqIGhvbGRpbmcgdGhlIGxvY2suCisJICoKKwkgKiBXZSBhZGQgZW50cmllcyBmb3IgYmFj a3VwIGJsb2NrcyB0byB0aGUgY2hhaW4sIHNvIHRoYXQgdGhleSBkb24ndAorCSAqIG5lZWQg YW55IHNwZWNpYWwgdHJlYXRtZW50IGluIHRoZSBjcml0aWNhbCBzZWN0aW9uIHdoZXJlIHRo ZSBjaHVua3MgYXJlCisJICogY29waWVkIGludG8gdGhlIFdBTCBidWZmZXJzLiBUaG9zZSBl bnRyaWVzIGhhdmUgdG8gYmUgdW5saW5rZWQgZnJvbSB0aGUKKwkgKiBjaGFpbiBpZiB3ZSBo YXZlIHRvIGxvb3AgYmFjayBoZXJlLgogCSAqLwogYmVnaW46OwogCWZvciAoaSA9IDA7IGkg PCBYTFJfTUFYX0JLUF9CTE9DS1M7IGkrKykKQEAgLTc2NCw3ICs3NjEsNiBAQCBiZWdpbjo7 CiAJICovCiAJZG9QYWdlV3JpdGVzID0gZnVsbFBhZ2VXcml0ZXMgfHwgSW5zZXJ0LT5mb3Jj ZVBhZ2VXcml0ZXM7CiAKLQlJTklUX0NSQzMyKHJkYXRhX2NyYyk7CiAJbGVuID0gMDsKIAlm b3IgKHJkdCA9IHJkYXRhOzspCiAJewpAQCAtNzcyLDcgKzc2OCw2IEBAIGJlZ2luOjsKIAkJ ewogCQkJLyogU2ltcGxlIGRhdGEsIGp1c3QgaW5jbHVkZSBpdCAqLwogCQkJbGVuICs9IHJk dC0+bGVuOwotCQkJQ09NUF9DUkMzMihyZGF0YV9jcmMsIHJkdC0+ZGF0YSwgcmR0LT5sZW4p OwogCQl9CiAJCWVsc2UKIAkJewpAQCAtNzgzLDEyICs3NzgsMTIgQEAgYmVnaW46OwogCQkJ CXsKIAkJCQkJLyogQnVmZmVyIGFscmVhZHkgcmVmZXJlbmNlZCBieSBlYXJsaWVyIGNoYWlu IGl0ZW0gKi8KIAkJCQkJaWYgKGR0YnVmX2JrcFtpXSkKKwkJCQkJewogCQkJCQkJcmR0LT5k YXRhID0gTlVMTDsKKwkJCQkJCXJkdC0+bGVuID0gMDsKKwkJCQkJfQogCQkJCQllbHNlIGlm IChyZHQtPmRhdGEpCi0JCQkJCXsKIAkJCQkJCWxlbiArPSByZHQtPmxlbjsKLQkJCQkJCUNP TVBfQ1JDMzIocmRhdGFfY3JjLCByZHQtPmRhdGEsIHJkdC0+bGVuKTsKLQkJCQkJfQogCQkJ CQlicmVhazsKIAkJCQl9CiAJCQkJaWYgKGR0YnVmW2ldID09IEludmFsaWRCdWZmZXIpCkBA IC04MDAsMTIgKzc5NSwxMCBAQCBiZWdpbjo7CiAJCQkJCXsKIAkJCQkJCWR0YnVmX2JrcFtp XSA9IHRydWU7CiAJCQkJCQlyZHQtPmRhdGEgPSBOVUxMOworCQkJCQkJcmR0LT5sZW4gPSAw OwogCQkJCQl9CiAJCQkJCWVsc2UgaWYgKHJkdC0+ZGF0YSkKLQkJCQkJewogCQkJCQkJbGVu ICs9IHJkdC0+bGVuOwotCQkJCQkJQ09NUF9DUkMzMihyZGF0YV9jcmMsIHJkdC0+ZGF0YSwg cmR0LT5sZW4pOwotCQkJCQl9CiAJCQkJCWJyZWFrOwogCQkJCX0KIAkJCX0KQEAgLTgyMCwz OSArODEzLDYgQEAgYmVnaW46OwogCX0KIAogCS8qCi0JICogTm93IGFkZCB0aGUgYmFja3Vw IGJsb2NrIGhlYWRlcnMgYW5kIGRhdGEgaW50byB0aGUgQ1JDCi0JICovCi0JZm9yIChpID0g MDsgaSA8IFhMUl9NQVhfQktQX0JMT0NLUzsgaSsrKQotCXsKLQkJaWYgKGR0YnVmX2JrcFtp XSkKLQkJewotCQkJQmtwQmxvY2sgICAqYmtwYiA9ICYoZHRidWZfeGxnW2ldKTsKLQkJCWNo YXIJICAgKnBhZ2U7Ci0KLQkJCUNPTVBfQ1JDMzIocmRhdGFfY3JjLAotCQkJCQkgICAoY2hh ciAqKSBia3BiLAotCQkJCQkgICBzaXplb2YoQmtwQmxvY2spKTsKLQkJCXBhZ2UgPSAoY2hh ciAqKSBCdWZmZXJHZXRCbG9jayhkdGJ1ZltpXSk7Ci0JCQlpZiAoYmtwYi0+aG9sZV9sZW5n dGggPT0gMCkKLQkJCXsKLQkJCQlDT01QX0NSQzMyKHJkYXRhX2NyYywKLQkJCQkJCSAgIHBh Z2UsCi0JCQkJCQkgICBCTENLU1opOwotCQkJfQotCQkJZWxzZQotCQkJewotCQkJCS8qIG11 c3Qgc2tpcCB0aGUgaG9sZSAqLwotCQkJCUNPTVBfQ1JDMzIocmRhdGFfY3JjLAotCQkJCQkJ ICAgcGFnZSwKLQkJCQkJCSAgIGJrcGItPmhvbGVfb2Zmc2V0KTsKLQkJCQlDT01QX0NSQzMy KHJkYXRhX2NyYywKLQkJCQkJCSAgIHBhZ2UgKyAoYmtwYi0+aG9sZV9vZmZzZXQgKyBia3Bi LT5ob2xlX2xlbmd0aCksCi0JCQkJCQkgICBCTENLU1ogLSAoYmtwYi0+aG9sZV9vZmZzZXQg KyBia3BiLT5ob2xlX2xlbmd0aCkpOwotCQkJfQotCQl9Ci0JfQotCi0JLyoKIAkgKiBOT1RF OiBXZSBkaXNhbGxvdyBsZW4gPT0gMCBiZWNhdXNlIGl0IHByb3ZpZGVzIGEgdXNlZnVsIGJp dCBvZiBleHRyYQogCSAqIGVycm9yIGNoZWNraW5nIGluIFJlYWRSZWNvcmQuICBUaGlzIG1l YW5zIHRoYXQgYWxsIGNhbGxlcnMgb2YKIAkgKiBYTG9nSW5zZXJ0IG11c3Qgc3VwcGx5IGF0 IGxlYXN0IHNvbWUgbm90LWluLWEtYnVmZmVyIGRhdGEuICBIb3dldmVyLCB3ZQpAQCAtODYy LDcwICs4MjIsMjAgQEAgYmVnaW46OwogCWlmIChsZW4gPT0gMCAmJiAhaXNMb2dTd2l0Y2gp CiAJCWVsb2coUEFOSUMsICJpbnZhbGlkIHhsb2cgcmVjb3JkIGxlbmd0aCAldSIsIGxlbik7 CiAKLQlTVEFSVF9DUklUX1NFQ1RJT04oKTsKLQotCS8qIE5vdyB3YWl0IHRvIGdldCBpbnNl cnQgbG9jayAqLwotCUxXTG9ja0FjcXVpcmUoV0FMSW5zZXJ0TG9jaywgTFdfRVhDTFVTSVZF KTsKLQotCS8qCi0JICogQ2hlY2sgdG8gc2VlIGlmIG15IFJlZG9SZWNQdHIgaXMgb3V0IG9m IGRhdGUuICBJZiBzbywgbWF5IGhhdmUgdG8gZ28KLQkgKiBiYWNrIGFuZCByZWNvbXB1dGUg ZXZlcnl0aGluZy4gIFRoaXMgY2FuIG9ubHkgaGFwcGVuIGp1c3QgYWZ0ZXIgYQotCSAqIGNo ZWNrcG9pbnQsIHNvIGl0J3MgYmV0dGVyIHRvIGJlIHNsb3cgaW4gdGhpcyBjYXNlIGFuZCBm YXN0IG90aGVyd2lzZS4KLQkgKgotCSAqIElmIHdlIGFyZW4ndCBkb2luZyBmdWxsLXBhZ2Ug d3JpdGVzIHRoZW4gUmVkb1JlY1B0ciBkb2Vzbid0IGFjdHVhbGx5Ci0JICogYWZmZWN0IHRo ZSBjb250ZW50cyBvZiB0aGUgWExPRyByZWNvcmQsIHNvIHdlJ2xsIHVwZGF0ZSBvdXIgbG9j YWwgY29weQotCSAqIGJ1dCBub3QgZm9yY2UgYSByZWNvbXB1dGF0aW9uLgotCSAqLwotCWlm ICghWExCeXRlRVEoUmVkb1JlY1B0ciwgSW5zZXJ0LT5SZWRvUmVjUHRyKSkKLQl7Ci0JCUFz c2VydChYTEJ5dGVMVChSZWRvUmVjUHRyLCBJbnNlcnQtPlJlZG9SZWNQdHIpKTsKLQkJUmVk b1JlY1B0ciA9IEluc2VydC0+UmVkb1JlY1B0cjsKLQotCQlpZiAoZG9QYWdlV3JpdGVzKQot CQl7Ci0JCQlmb3IgKGkgPSAwOyBpIDwgWExSX01BWF9CS1BfQkxPQ0tTOyBpKyspCi0JCQl7 Ci0JCQkJaWYgKGR0YnVmW2ldID09IEludmFsaWRCdWZmZXIpCi0JCQkJCWNvbnRpbnVlOwot CQkJCWlmIChkdGJ1Zl9ia3BbaV0gPT0gZmFsc2UgJiYKLQkJCQkJWExCeXRlTEUoZHRidWZf bHNuW2ldLCBSZWRvUmVjUHRyKSkKLQkJCQl7Ci0JCQkJCS8qCi0JCQkJCSAqIE9vcHMsIHRo aXMgYnVmZmVyIG5vdyBuZWVkcyB0byBiZSBiYWNrZWQgdXAsIGJ1dCB3ZQotCQkJCQkgKiBk aWRuJ3QgdGhpbmsgc28gYWJvdmUuICBTdGFydCBvdmVyLgotCQkJCQkgKi8KLQkJCQkJTFdM b2NrUmVsZWFzZShXQUxJbnNlcnRMb2NrKTsKLQkJCQkJRU5EX0NSSVRfU0VDVElPTigpOwot CQkJCQlnb3RvIGJlZ2luOwotCQkJCX0KLQkJCX0KLQkJfQotCX0KLQotCS8qCi0JICogQWxz byBjaGVjayB0byBzZWUgaWYgZm9yY2VQYWdlV3JpdGVzIHdhcyBqdXN0IHR1cm5lZCBvbjsg aWYgd2Ugd2VyZW4ndAotCSAqIGFscmVhZHkgZG9pbmcgZnVsbC1wYWdlIHdyaXRlcyB0aGVu IGdvIGJhY2sgYW5kIHJlY29tcHV0ZS4gKElmIGl0IHdhcwotCSAqIGp1c3QgdHVybmVkIG9m Ziwgd2UgY291bGQgcmVjb21wdXRlIHRoZSByZWNvcmQgd2l0aG91dCBmdWxsIHBhZ2VzLCBi dXQKLQkgKiB3ZSBjaG9vc2Ugbm90IHRvIGJvdGhlci4pCi0JICovCi0JaWYgKEluc2VydC0+ Zm9yY2VQYWdlV3JpdGVzICYmICFkb1BhZ2VXcml0ZXMpCi0JewotCQkvKiBPb3BzLCBtdXN0 IHJlZG8gaXQgd2l0aCBmdWxsLXBhZ2UgZGF0YSAqLwotCQlMV0xvY2tSZWxlYXNlKFdBTElu c2VydExvY2spOwotCQlFTkRfQ1JJVF9TRUNUSU9OKCk7Ci0JCWdvdG8gYmVnaW47Ci0JfQot CiAJLyoKIAkgKiBNYWtlIGFkZGl0aW9uYWwgcmRhdGEgY2hhaW4gZW50cmllcyBmb3IgdGhl IGJhY2t1cCBibG9ja3MsIHNvIHRoYXQgd2UKLQkgKiBkb24ndCBuZWVkIHRvIHNwZWNpYWwt Y2FzZSB0aGVtIGluIHRoZSB3cml0ZSBsb29wLiAgTm90ZSB0aGF0IHdlIGhhdmUKLQkgKiBu b3cgaXJyZXZvY2FibHkgY2hhbmdlZCB0aGUgaW5wdXQgcmRhdGEgY2hhaW4uICBBdCB0aGUg ZXhpdCBvZiB0aGlzCi0JICogbG9vcCwgd3JpdGVfbGVuIGluY2x1ZGVzIHRoZSBiYWNrdXAg YmxvY2sgZGF0YS4KKwkgKiBkb24ndCBuZWVkIHRvIHNwZWNpYWwtY2FzZSB0aGVtIGluIHRo ZSB3cml0ZSBsb29wLiAgVGhpcyBtb2RpZmllcyB0aGUKKwkgKiBvcmlnaW5hbCByZGF0YSBj aGFpbiwgYnV0IHdlIGtlZXAgYSBwb2ludGVyIHRvIHRoZSBsYXN0IHJlZ3VsYXIgZW50cnks CisJICogcmR0X2xhc3Rub3JtYWwsIHNvIHRoYXQgd2UgY2FuIHVuZG8gdGhpcyBpZiB3ZSBo YXZlIHRvIGxvb3AgYmFjayB0byB0aGUKKwkgKiBiZWdpbm5pbmcuCisJICoKKwkgKiBBdCB0 aGUgZXhpdCBvZiB0aGlzIGxvb3AsIHdyaXRlX2xlbiBpbmNsdWRlcyB0aGUgYmFja3VwIGJs b2NrIGRhdGEuCiAJICoKIAkgKiBBbHNvIHNldCB0aGUgYXBwcm9wcmlhdGUgaW5mbyBiaXRz IHRvIHNob3cgd2hpY2ggYnVmZmVycyB3ZXJlIGJhY2tlZAogCSAqIHVwLiBUaGUgaSd0aCBY TFJfU0VUX0JLUF9CTE9DSyBiaXQgY29ycmVzcG9uZHMgdG8gdGhlIGkndGggZGlzdGluY3QK IAkgKiBidWZmZXIgdmFsdWUgKGlnbm9yaW5nIEludmFsaWRCdWZmZXIpIGFwcGVhcmluZyBp biB0aGUgcmRhdGEgY2hhaW4uCiAJICovCisJcmR0X2xhc3Rub3JtYWwgPSByZHQ7CiAJd3Jp dGVfbGVuID0gbGVuOwogCWZvciAoaSA9IDA7IGkgPCBYTFJfTUFYX0JLUF9CTE9DS1M7IGkr KykKIAl7CkBAIC05NzUsNiArODg1LDc2IEBAIGJlZ2luOjsKIAl9CiAKIAkvKgorCSAqIENh bGN1bGF0ZSBDUkMgb2YgdGhlIGRhdGEsIGluY2x1ZGluZyBhbGwgdGhlIGJhY2t1cCBibG9j a3MKKwkgKgorCSAqIE5vdGUgdGhhdCB0aGUgcmVjb3JkIGhlYWRlciBpc24ndCBhZGRlZCBp bnRvIHRoZSBDUkMgaW5pdGlhbGx5IHNpbmNlCisJICogd2UgZG9uJ3Qga25vdyB0aGUgcHJl di1saW5rIHlldC4gIFRodXMsIHRoZSBDUkMgd2lsbCByZXByZXNlbnQgdGhlIENSQworCSAq IG9mIHRoZSB3aG9sZSByZWNvcmQgaW4gdGhlIG9yZGVyOiByZGF0YSwgdGhlbiBiYWNrdXAg YmxvY2tzLCB0aGVuCisJICogcmVjb3JkIGhlYWRlci4KKwkgKi8KKwlJTklUX0NSQzMyKHJk YXRhX2NyYyk7CisJZm9yIChyZHQgPSByZGF0YTsgcmR0ICE9IE5VTEw7IHJkdCA9IHJkdC0+ bmV4dCkKKwkJQ09NUF9DUkMzMihyZGF0YV9jcmMsIHJkdC0+ZGF0YSwgcmR0LT5sZW4pOwor CisJU1RBUlRfQ1JJVF9TRUNUSU9OKCk7CisKKwkvKiBOb3cgd2FpdCB0byBnZXQgaW5zZXJ0 IGxvY2sgKi8KKwlMV0xvY2tBY3F1aXJlKFdBTEluc2VydExvY2ssIExXX0VYQ0xVU0lWRSk7 CisKKwkvKgorCSAqIENoZWNrIHRvIHNlZSBpZiBteSBSZWRvUmVjUHRyIGlzIG91dCBvZiBk YXRlLiAgSWYgc28sIG1heSBoYXZlIHRvIGdvCisJICogYmFjayBhbmQgcmVjb21wdXRlIGV2 ZXJ5dGhpbmcuICBUaGlzIGNhbiBvbmx5IGhhcHBlbiBqdXN0IGFmdGVyIGEKKwkgKiBjaGVj a3BvaW50LCBzbyBpdCdzIGJldHRlciB0byBiZSBzbG93IGluIHRoaXMgY2FzZSBhbmQgZmFz dCBvdGhlcndpc2UuCisJICoKKwkgKiBJZiB3ZSBhcmVuJ3QgZG9pbmcgZnVsbC1wYWdlIHdy aXRlcyB0aGVuIFJlZG9SZWNQdHIgZG9lc24ndCBhY3R1YWxseQorCSAqIGFmZmVjdCB0aGUg Y29udGVudHMgb2YgdGhlIFhMT0cgcmVjb3JkLCBzbyB3ZSdsbCB1cGRhdGUgb3VyIGxvY2Fs IGNvcHkKKwkgKiBidXQgbm90IGZvcmNlIGEgcmVjb21wdXRhdGlvbi4KKwkgKi8KKwlpZiAo IVhMQnl0ZUVRKFJlZG9SZWNQdHIsIEluc2VydC0+UmVkb1JlY1B0cikpCisJeworCQlBc3Nl cnQoWExCeXRlTFQoUmVkb1JlY1B0ciwgSW5zZXJ0LT5SZWRvUmVjUHRyKSk7CisJCVJlZG9S ZWNQdHIgPSBJbnNlcnQtPlJlZG9SZWNQdHI7CisKKwkJaWYgKGRvUGFnZVdyaXRlcykKKwkJ eworCQkJZm9yIChpID0gMDsgaSA8IFhMUl9NQVhfQktQX0JMT0NLUzsgaSsrKQorCQkJewor CQkJCWlmIChkdGJ1ZltpXSA9PSBJbnZhbGlkQnVmZmVyKQorCQkJCQljb250aW51ZTsKKwkJ CQlpZiAoZHRidWZfYmtwW2ldID09IGZhbHNlICYmCisJCQkJCVhMQnl0ZUxFKGR0YnVmX2xz bltpXSwgUmVkb1JlY1B0cikpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBPb3BzLCB0aGlz IGJ1ZmZlciBub3cgbmVlZHMgdG8gYmUgYmFja2VkIHVwLCBidXQgd2UKKwkJCQkJICogZGlk bid0IHRoaW5rIHNvIGFib3ZlLiAgU3RhcnQgb3Zlci4KKwkJCQkJICovCisJCQkJCUxXTG9j a1JlbGVhc2UoV0FMSW5zZXJ0TG9jayk7CisJCQkJCUVORF9DUklUX1NFQ1RJT04oKTsKKwkJ CQkJcmR0X2xhc3Rub3JtYWwtPm5leHQgPSBOVUxMOworCQkJCQlpbmZvID0gaW5mb19vcmln OworCQkJCQlnb3RvIGJlZ2luOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKworCS8qCisJICog QWxzbyBjaGVjayB0byBzZWUgaWYgZm9yY2VQYWdlV3JpdGVzIHdhcyBqdXN0IHR1cm5lZCBv bjsgaWYgd2Ugd2VyZW4ndAorCSAqIGFscmVhZHkgZG9pbmcgZnVsbC1wYWdlIHdyaXRlcyB0 aGVuIGdvIGJhY2sgYW5kIHJlY29tcHV0ZS4gKElmIGl0IHdhcworCSAqIGp1c3QgdHVybmVk IG9mZiwgd2UgY291bGQgcmVjb21wdXRlIHRoZSByZWNvcmQgd2l0aG91dCBmdWxsIHBhZ2Vz LCBidXQKKwkgKiB3ZSBjaG9vc2Ugbm90IHRvIGJvdGhlci4pCisJICovCisJaWYgKEluc2Vy dC0+Zm9yY2VQYWdlV3JpdGVzICYmICFkb1BhZ2VXcml0ZXMpCisJeworCQkvKiBPb3BzLCBt dXN0IHJlZG8gaXQgd2l0aCBmdWxsLXBhZ2UgZGF0YS4gKi8KKwkJTFdMb2NrUmVsZWFzZShX QUxJbnNlcnRMb2NrKTsKKwkJRU5EX0NSSVRfU0VDVElPTigpOworCQlyZHRfbGFzdG5vcm1h bC0+bmV4dCA9IE5VTEw7CisJCWluZm8gPSBpbmZvX29yaWc7CisJCWdvdG8gYmVnaW47CisJ fQorCisJLyoKIAkgKiBJZiB0aGVyZSBpc24ndCBlbm91Z2ggc3BhY2Ugb24gdGhlIGN1cnJl bnQgWExPRyBwYWdlIGZvciBhIHJlY29yZAogCSAqIGhlYWRlciwgYWR2YW5jZSB0byB0aGUg bmV4dCBwYWdlIChsZWF2aW5nIHRoZSB1bnVzZWQgc3BhY2UgYXMgemVyb2VzKS4KIAkgKi8K CmNvbW1pdCAyNmU4OWU3ZjIzMTk0ZTM5MGVjNDMyNmNkMDE5OGExOTkyYzJhZGYwCkF1dGhv cjogUGV0ZXIgRWlzZW50cmF1dCA8cGV0ZXJfZUBnbXgubmV0PgpEYXRlOiAgIFR1ZSBKYW4g MTAgMjI6NDk6MTcgMjAxMiArMDIwMAoKICAgIEZpeCB0eXBvcwoKZGlmZiAtLWdpdCBhL3Ny Yy9wbC9wbHB5dGhvbi9wbHB5X2N1cnNvcm9iamVjdC5jIGIvc3JjL3BsL3BscHl0aG9uL3Bs cHlfY3Vyc29yb2JqZWN0LmMKaW5kZXggYjFlZjdkNy4uNDIyNmRjNyAxMDA2NDQKLS0tIGEv c3JjL3BsL3BscHl0aG9uL3BscHlfY3Vyc29yb2JqZWN0LmMKKysrIGIvc3JjL3BsL3BscHl0 aG9uL3BscHlfY3Vyc29yb2JqZWN0LmMKQEAgLTEzNCw3ICsxMzQsNyBAQCBQTHlfY3Vyc29y X3F1ZXJ5KGNvbnN0IGNoYXIgKnF1ZXJ5KQogCQlTUElfZnJlZXBsYW4ocGxhbik7CiAKIAkJ aWYgKHBvcnRhbCA9PSBOVUxMKQotCQkJZWxvZyhFUlJPUiwgIlNQSV9jdXJzb3Jfb3Blbigp IGZhaWxlZDolcyIsCisJCQllbG9nKEVSUk9SLCAiU1BJX2N1cnNvcl9vcGVuKCkgZmFpbGVk OiAlcyIsCiAJCQkJIFNQSV9yZXN1bHRfY29kZV9zdHJpbmcoU1BJX3Jlc3VsdCkpOwogCiAJ CWN1cnNvci0+cG9ydGFsbmFtZSA9IFBMeV9zdHJkdXAocG9ydGFsLT5uYW1lKTsKQEAgLTI1 NSw3ICsyNTUsNyBAQCBQTHlfY3Vyc29yX3BsYW4oUHlPYmplY3QgKm9iLCBQeU9iamVjdCAq YXJncykKIAkJcG9ydGFsID0gU1BJX2N1cnNvcl9vcGVuKE5VTEwsIHBsYW4tPnBsYW4sIHBs YW4tPnZhbHVlcywgbnVsbHMsCiAJCQkJCQkJCSBQTHlfY3Vycl9wcm9jZWR1cmUtPmZuX3Jl YWRvbmx5KTsKIAkJaWYgKHBvcnRhbCA9PSBOVUxMKQotCQkJZWxvZyhFUlJPUiwgIlNQSV9j dXJzb3Jfb3BlbigpIGZhaWxlZDolcyIsCisJCQllbG9nKEVSUk9SLCAiU1BJX2N1cnNvcl9v cGVuKCkgZmFpbGVkOiAlcyIsCiAJCQkJIFNQSV9yZXN1bHRfY29kZV9zdHJpbmcoU1BJX3Jl c3VsdCkpOwogCiAJCWN1cnNvci0+cG9ydGFsbmFtZSA9IFBMeV9zdHJkdXAocG9ydGFsLT5u YW1lKTsKCmNvbW1pdCBhOWYyZTMxY2Y2NTNiYWQ3MmRlYmFlNjE2NTIxMTMwMDY1ZTU1MDc3 CkF1dGhvcjogUGV0ZXIgRWlzZW50cmF1dCA8cGV0ZXJfZUBnbXgubmV0PgpEYXRlOiAgIFR1 ZSBKYW4gMTAgMjE6NDY6MjkgMjAxMiArMDIwMAoKICAgIFN1cHBvcnQgQ1JFQVRFIFRBQkxF IChMSUtFIC4uLikgd2l0aCBmb3JlaWduIHRhYmxlcyBhbmQgdmlld3MKICAgIAogICAgQ29t cG9zaXRlIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZCwgYmVjYXVzZSBwYXJzZXJPcGVu VGFibGUoKQogICAgcmVqZWN0cyB0aGVtLgoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5z Z21sCmluZGV4IDk3OTY4YmIuLmY1NWEwMDEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFi bGUuc2dtbApAQCAtMzY4LDYgKzM2OCwxMSBAQCBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FM IF0geyBURU1QT1JBUlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVY SQogICAgICAgSWYgdGhlIHNhbWUgbmFtZSBpcyBzcGVjaWZpZWQgZXhwbGljaXRseSBvciBp biBhbm90aGVyCiAgICAgICA8bGl0ZXJhbD5MSUtFPC9saXRlcmFsPiBjbGF1c2UsIGFuIGVy cm9yIGlzIHNpZ25hbGxlZC4KICAgICAgPC9wYXJhPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZSA8bGl0ZXJhbD5MSUtFPC9saXRlcmFsPiBjbGF1c2UgY2FuIGFsc28gYmUgdXNlZCB0byBj b3B5IGNvbHVtbnMgZnJvbQorICAgICAgdmlld3Mgb3IgZm9yZWlnbiB0YWJsZXMuICBJbmFw cGxpY2FibGUgb3B0aW9ucyAoZS5nLiwgPGxpdGVyYWw+SU5DTFVESU5HCisgICAgICBJTkRF WEVTPC9saXRlcmFsPiBmcm9tIGEgdmlldykgYXJlIGlnbm9yZWQuCisgICAgIDwvcGFyYT4K ICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdXRpbGNtZC5jCmluZGV4IGUxNGFlMDkuLjMzNWJkYzYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtNjQ0LDEwICs2NDQsMTIgQEAgdHJhbnNmb3JtVGFi bGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAq dGFibGVfbGlrZV9jbGEKIAlyZWxhdGlvbiA9IHBhcnNlck9wZW5UYWJsZShjeHQtPnBzdGF0 ZSwgdGFibGVfbGlrZV9jbGF1c2UtPnJlbGF0aW9uLAogCQkJCQkJCSAgIEFjY2Vzc1NoYXJl TG9jayk7CiAKLQlpZiAocmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1JF TEFUSU9OKQorCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUkVM QVRJT04KKwkJJiYgcmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1ZJRVcK KwkJJiYgcmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX0ZPUkVJR05fVEFC TEUpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpF Q1RfVFlQRSksCi0JCQkJIGVycm1zZygiTElLRSBzb3VyY2UgcmVsYXRpb24gXCIlc1wiIGlz IG5vdCBhIHRhYmxlIiwKKwkJCQkgZXJybXNnKCJMSUtFIHNvdXJjZSByZWxhdGlvbiBcIiVz XCIgaXMgbm90IGEgdGFibGUsIHZpZXcsIG9yIGZvcmVpZ24gdGFibGUiLAogCQkJCQkJdGFi bGVfbGlrZV9jbGF1c2UtPnJlbGF0aW9uLT5yZWxuYW1lKSkpOwogCiAJLyoKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKaW5kZXgg OWZmNjMyZS4uNDBiNjc2NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKQEAgLTIyMCwzICsyMjAsMjIgQEAgRVJST1I6ICBj b2x1bW4gImEiIGhhcyBhIHN0b3JhZ2UgcGFyYW1ldGVyIGNvbmZsaWN0CiBERVRBSUw6ICBN QUlOIHZlcnN1cyBFWFRFTkRFRAogRFJPUCBUQUJMRSBjdGx0MSwgY3RsdDIsIGN0bHQzLCBj dGx0NCwgY3RsdDEyX3N0b3JhZ2UsIGN0bHQxMl9jb21tZW50cywgY3RsdDFfaW5oLCBjdGx0 MTNfaW5oLCBjdGx0MTNfbGlrZSwgY3RsdF9hbGwsIGN0bGEsIGN0bGIgQ0FTQ0FERTsKIE5P VElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgaW5oZQorLyogTElLRSB3aXRoIG90aGVy IHJlbGF0aW9uIGtpbmRzICovCitDUkVBVEUgVEFCTEUgY3RsdDQgKGEgaW50LCBiIHRleHQp OworQ1JFQVRFIFNFUVVFTkNFIGN0bHNlcTE7CitDUkVBVEUgVEFCTEUgY3RsdDEwIChMSUtF IGN0bHNlcTEpOyAgLS0gZmFpbAorRVJST1I6ICBMSUtFIHNvdXJjZSByZWxhdGlvbiAiY3Rs c2VxMSIgaXMgbm90IGEgdGFibGUsIHZpZXcsIG9yIGZvcmVpZ24gdGFibGUKK0NSRUFURSBW SUVXIGN0bHYxIEFTIFNFTEVDVCAqIEZST00gY3RsdDQ7CitDUkVBVEUgVEFCTEUgY3RsdDEx IChMSUtFIGN0bHYxKTsKK0NSRUFURSBUQUJMRSBjdGx0MTFhIChMSUtFIGN0bHYxIElOQ0xV RElORyBBTEwpOworQ1JFQVRFIFRZUEUgY3RsdHkxIEFTIChhIGludCwgYiB0ZXh0KTsKK0NS RUFURSBUQUJMRSBjdGx0MTIgKExJS0UgY3RsdHkxKTsgIC0tIGN1cnJlbnRseSBmYWlscwor RVJST1I6ICAiY3RsdHkxIiBpcyBhIGNvbXBvc2l0ZSB0eXBlCitMSU5FIDE6IENSRUFURSBU QUJMRSBjdGx0MTIgKExJS0UgY3RsdHkxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCitEUk9QIFNFUVVFTkNFIGN0bHNlcTE7CitEUk9QIFRZUEUgY3RsdHkxOwor RFJPUCBWSUVXIGN0bHYxOworRFJPUCBUQUJMRSBJRiBFWElTVFMgY3RsdDQsIGN0bHQxMCwg Y3RsdDExLCBjdGx0MTFhLCBjdGx0MTI7CitOT1RJQ0U6ICB0YWJsZSAiY3RsdDEwIiBkb2Vz IG5vdCBleGlzdCwgc2tpcHBpbmcKK05PVElDRTogIHRhYmxlICJjdGx0MTIiIGRvZXMgbm90 IGV4aXN0LCBza2lwcGluZwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3Jl YXRlX3RhYmxlX2xpa2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxl X2xpa2Uuc3FsCmluZGV4IDU4Y2VhNDQuLmRiNjZlNDggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwKQEAgLTk3LDMgKzk3LDIzIEBAIENSRUFU RSBUQUJMRSBpbmhfZXJyb3IxICgpIElOSEVSSVRTIChjdGx0MSwgY3RsdDQpOwogQ1JFQVRF IFRBQkxFIGluaF9lcnJvcjIgKExJS0UgY3RsdDQgSU5DTFVESU5HIFNUT1JBR0UpIElOSEVS SVRTIChjdGx0MSk7CiAKIERST1AgVEFCTEUgY3RsdDEsIGN0bHQyLCBjdGx0MywgY3RsdDQs IGN0bHQxMl9zdG9yYWdlLCBjdGx0MTJfY29tbWVudHMsIGN0bHQxX2luaCwgY3RsdDEzX2lu aCwgY3RsdDEzX2xpa2UsIGN0bHRfYWxsLCBjdGxhLCBjdGxiIENBU0NBREU7CisKKworLyog TElLRSB3aXRoIG90aGVyIHJlbGF0aW9uIGtpbmRzICovCisKK0NSRUFURSBUQUJMRSBjdGx0 NCAoYSBpbnQsIGIgdGV4dCk7CisKK0NSRUFURSBTRVFVRU5DRSBjdGxzZXExOworQ1JFQVRF IFRBQkxFIGN0bHQxMCAoTElLRSBjdGxzZXExKTsgIC0tIGZhaWwKKworQ1JFQVRFIFZJRVcg Y3RsdjEgQVMgU0VMRUNUICogRlJPTSBjdGx0NDsKK0NSRUFURSBUQUJMRSBjdGx0MTEgKExJ S0UgY3RsdjEpOworQ1JFQVRFIFRBQkxFIGN0bHQxMWEgKExJS0UgY3RsdjEgSU5DTFVESU5H IEFMTCk7CisKK0NSRUFURSBUWVBFIGN0bHR5MSBBUyAoYSBpbnQsIGIgdGV4dCk7CitDUkVB VEUgVEFCTEUgY3RsdDEyIChMSUtFIGN0bHR5MSk7ICAtLSBjdXJyZW50bHkgZmFpbHMKKwor RFJPUCBTRVFVRU5DRSBjdGxzZXExOworRFJPUCBUWVBFIGN0bHR5MTsKK0RST1AgVklFVyBj dGx2MTsKK0RST1AgVEFCTEUgSUYgRVhJU1RTIGN0bHQ0LCBjdGx0MTAsIGN0bHQxMSwgY3Rs dDExYSwgY3RsdDEyOwoKY29tbWl0IDA3MTIzZGZmNzc4Mzg5MzgyZjA4ZDIxNTI3NDJiYjA2 MWQzNTFjMjEKQXV0aG9yOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlcl9lQGdteC5uZXQ+CkRh dGU6ICAgVHVlIEphbiAxMCAyMDo1ODoxNiAyMDEyICswMjAwCgogICAgcGdfZHVtcDogRHVt cCBmb3JlaWduIG9wdGlvbnMgaW4gc29ydGVkIG9yZGVyCgpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXgg ZDE1OThlYS4uMTNmYzY2NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01NzMzLDcgKzU3MzMsOCBA QCBnZXRUYWJsZUF0dHJzKFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAkJ CQkJCQkgICJwZ19jYXRhbG9nLmFycmF5X3RvX3N0cmluZyhBUlJBWSgiCiAJCQkJCQkJICAi U0VMRUNUIHBnX2NhdGFsb2cucXVvdGVfaWRlbnQob3B0aW9uX25hbWUpIHx8ICIKIAkJCQkJ CQkgICInICcgfHwgcGdfY2F0YWxvZy5xdW90ZV9saXRlcmFsKG9wdGlvbl92YWx1ZSkgIgot CQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19vcHRpb25zX3RvX3RhYmxlKGF0dGZkd29w dGlvbnMpIgorCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19vcHRpb25zX3RvX3RhYmxl KGF0dGZkd29wdGlvbnMpICIKKwkJCQkJCQkgICJPUkRFUiBCWSBvcHRpb25fbmFtZSIKIAkJ CQkJCQkgICIpLCBFJyxcbiAgICAnKSBBUyBhdHRmZHdvcHRpb25zICIKIAkJCSAiRlJPTSBw Z19jYXRhbG9nLnBnX2F0dHJpYnV0ZSBhIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3R5cGUg dCAiCiAJCQkJCQkJICAiT04gYS5hdHR0eXBpZCA9IHQub2lkICIKQEAgLTY1NjQsNyArNjU2 NSw4IEBAIGdldEZvcmVpZ25EYXRhV3JhcHBlcnMoaW50ICpudW1Gb3JlaWduRGF0YVdyYXBw ZXJzKQogCQkJCQkJICAiYXJyYXlfdG9fc3RyaW5nKEFSUkFZKCIKIAkJCQkJCSAgIlNFTEVD VCBxdW90ZV9pZGVudChvcHRpb25fbmFtZSkgfHwgJyAnIHx8ICIKIAkJCQkJCSAgInF1b3Rl X2xpdGVyYWwob3B0aW9uX3ZhbHVlKSAiCi0JCQkJCQkgICJGUk9NIHBnX29wdGlvbnNfdG9f dGFibGUoZmR3b3B0aW9ucykiCisJCQkJCQkgICJGUk9NIHBnX29wdGlvbnNfdG9fdGFibGUo ZmR3b3B0aW9ucykgIgorCQkJCQkJICAiT1JERVIgQlkgb3B0aW9uX25hbWUiCiAJCQkJCQkg ICIpLCBFJyxcbiAgICAnKSBBUyBmZHdvcHRpb25zICIKIAkJCQkJCSAgIkZST00gcGdfZm9y ZWlnbl9kYXRhX3dyYXBwZXIiLAogCQkJCQkJICB1c2VybmFtZV9zdWJxdWVyeSk7CkBAIC02 NTc4LDcgKzY1ODAsOCBAQCBnZXRGb3JlaWduRGF0YVdyYXBwZXJzKGludCAqbnVtRm9yZWln bkRhdGFXcmFwcGVycykKIAkJCQkJCSAgImFycmF5X3RvX3N0cmluZyhBUlJBWSgiCiAJCQkJ CQkgICJTRUxFQ1QgcXVvdGVfaWRlbnQob3B0aW9uX25hbWUpIHx8ICcgJyB8fCAiCiAJCQkJ CQkgICJxdW90ZV9saXRlcmFsKG9wdGlvbl92YWx1ZSkgIgotCQkJCQkJICAiRlJPTSBwZ19v cHRpb25zX3RvX3RhYmxlKGZkd29wdGlvbnMpIgorCQkJCQkJICAiRlJPTSBwZ19vcHRpb25z X3RvX3RhYmxlKGZkd29wdGlvbnMpICIKKwkJCQkJCSAgIk9SREVSIEJZIG9wdGlvbl9uYW1l IgogCQkJCQkJICAiKSwgRScsXG4gICAgJykgQVMgZmR3b3B0aW9ucyAiCiAJCQkJCQkgICJG Uk9NIHBnX2ZvcmVpZ25fZGF0YV93cmFwcGVyIiwKIAkJCQkJCSAgdXNlcm5hbWVfc3VicXVl cnkpOwpAQCAtNjY2Nyw3ICs2NjcwLDggQEAgZ2V0Rm9yZWlnblNlcnZlcnMoaW50ICpudW1G b3JlaWduU2VydmVycykKIAkJCQkJICAiYXJyYXlfdG9fc3RyaW5nKEFSUkFZKCIKIAkJCQkJ ICAiU0VMRUNUIHF1b3RlX2lkZW50KG9wdGlvbl9uYW1lKSB8fCAnICcgfHwgIgogCQkJCQkg ICJxdW90ZV9saXRlcmFsKG9wdGlvbl92YWx1ZSkgIgotCQkJCQkgICJGUk9NIHBnX29wdGlv bnNfdG9fdGFibGUoc3J2b3B0aW9ucykiCisJCQkJCSAgIkZST00gcGdfb3B0aW9uc190b190 YWJsZShzcnZvcHRpb25zKSAiCisJCQkJCSAgIk9SREVSIEJZIG9wdGlvbl9uYW1lIgogCQkJ CQkgICIpLCBFJyxcbiAgICAnKSBBUyBzcnZvcHRpb25zICIKIAkJCQkJICAiRlJPTSBwZ19m b3JlaWduX3NlcnZlciIsCiAJCQkJCSAgdXNlcm5hbWVfc3VicXVlcnkpOwpAQCAtMTE3Nzcs NyArMTE3ODEsOCBAQCBkdW1wVXNlck1hcHBpbmdzKEFyY2hpdmUgKmZvdXQsCiAJCQkJCSAg ImFycmF5X3RvX3N0cmluZyhBUlJBWSgiCiAJCQkJCSAgIlNFTEVDVCBxdW90ZV9pZGVudChv cHRpb25fbmFtZSkgfHwgJyAnIHx8ICIKIAkJCQkJICAicXVvdGVfbGl0ZXJhbChvcHRpb25f dmFsdWUpICIKLQkJCQkJICAiRlJPTSBwZ19vcHRpb25zX3RvX3RhYmxlKHVtb3B0aW9ucyki CisJCQkJCSAgIkZST00gcGdfb3B0aW9uc190b190YWJsZSh1bW9wdGlvbnMpICIKKwkJCQkJ ICAiT1JERVIgQlkgb3B0aW9uX25hbWUiCiAJCQkJCSAgIiksIEUnLFxuICAgICcpIEFTIHVt b3B0aW9ucyAiCiAJCQkJCSAgIkZST00gcGdfdXNlcl9tYXBwaW5ncyAiCiAJCQkJCSAgIldI RVJFIHNydmlkID0gJyV1JyAiCkBAIC0xMjQzOCw3ICsxMjQ0Myw4IEBAIGR1bXBUYWJsZVNj aGVtYShBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQkJCQkgICJwZ19j YXRhbG9nLmFycmF5X3RvX3N0cmluZyhBUlJBWSgiCiAJCQkJCQkJICAiU0VMRUNUIHBnX2Nh dGFsb2cucXVvdGVfaWRlbnQob3B0aW9uX25hbWUpIHx8ICIKIAkJCQkJCQkgICInICcgfHwg cGdfY2F0YWxvZy5xdW90ZV9saXRlcmFsKG9wdGlvbl92YWx1ZSkgIgotCQkJCQkJCSAgIkZS T00gcGdfY2F0YWxvZy5wZ19vcHRpb25zX3RvX3RhYmxlKGZ0b3B0aW9ucykiCisJCQkJCQkJ ICAiRlJPTSBwZ19jYXRhbG9nLnBnX29wdGlvbnNfdG9fdGFibGUoZnRvcHRpb25zKSAiCisJ CQkJCQkJICAiT1JERVIgQlkgb3B0aW9uX25hbWUiCiAJCQkJCQkJICAiKSwgRScsXG4gICAg JykgQVMgZnRvcHRpb25zICIKIAkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfZm9yZWln bl90YWJsZSBmdCAiCiAJCQkJCQkJICAiSk9JTiBwZ19jYXRhbG9nLnBnX2ZvcmVpZ25fc2Vy dmVyIGZzICIKCmNvbW1pdCA4OWIzYzZjYzhiNTYwZjdmNDZhNmEyNWIyNzBhZWQ1MzMwYzA5 YTBlCkF1dGhvcjogVG9tIExhbmUgPHRnbEBzc3MucGdoLnBhLnVzPgpEYXRlOiAgIE1vbiBK YW4gOSAxOTo1NjoyNyAyMDEyIC0wNTAwCgogICAgRml4IG9uZS1ieXRlIGJ1ZmZlciBvdmVy cnVuIGluIGNvbnRyaWIvdGVzdF9wYXJzZXIuCiAgICAKICAgIFRoZSBvcmlnaW5hbCBjb2Rp bmcgZXhhbWluZWQgdGhlIG5leHQgY2hhcmFjdGVyIGJlZm9yZSB2ZXJpZnlpbmcgdGhhdAog ICAgdGhlcmUgKmlzKiBhIG5leHQgY2hhcmFjdGVyLiAgSW4gdGhlIHdvcnN0IGNhc2Ugd2l0 aCB0aGUgaW5wdXQgYnVmZmVyCiAgICByaWdodCB1cCBhZ2FpbnN0IHRoZSBlbmQgb2YgbWVt b3J5LCB0aGlzIHdvdWxkIHJlc3VsdCBpbiBhIHNlZ2ZhdWx0LgogICAgCiAgICBQcm9ibGVt IHNwb3R0ZWQgYnkgUGF1bCBHdXlvdDsgdGhpcyBjb21taXQgZXh0ZW5kcyBoaXMgcGF0Y2gg dG8gZml4IGFuCiAgICBhZGRpdGlvbmFsIGNhc2UuICBJbiBhZGRpdGlvbiwgbWFrZSB0aGUg Y29kZSBhIHRhZCBtb3JlIHJlYWRhYmxlIGJ5IG5vdAogICAgb3ZlcmxvYWRpbmcgdGhlIHVz YWdlIG9mICp0bGVuLgoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9wYXJzZXIvdGVzdF9w YXJzZXIuYyBiL2NvbnRyaWIvdGVzdF9wYXJzZXIvdGVzdF9wYXJzZXIuYwppbmRleCBjMjdk N2QzLi5kYTdmMDRjIDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfcGFyc2VyL3Rlc3RfcGFy c2VyLmMKKysrIGIvY29udHJpYi90ZXN0X3BhcnNlci90ZXN0X3BhcnNlci5jCkBAIC03Mywz MSArNzMsMzIgQEAgdGVzdHByc19nZXRsZXhlbWUoUEdfRlVOQ1RJT05fQVJHUykKIAlQYXJz ZXJTdGF0ZSAqcHN0ID0gKFBhcnNlclN0YXRlICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwog CWNoYXIJICAqKnQgPSAoY2hhciAqKikgUEdfR0VUQVJHX1BPSU5URVIoMSk7CiAJaW50CQkg ICAqdGxlbiA9IChpbnQgKikgUEdfR0VUQVJHX1BPSU5URVIoMik7CisJaW50CQkJc3RhcnRw b3MgPSBwc3QtPnBvczsKIAlpbnQJCQl0eXBlOwogCi0JKnRsZW4gPSBwc3QtPnBvczsKIAkq dCA9IHBzdC0+YnVmZmVyICsgcHN0LT5wb3M7CiAKLQlpZiAoKHBzdC0+YnVmZmVyKVtwc3Qt PnBvc10gPT0gJyAnKQorCWlmIChwc3QtPnBvcyA8IHBzdC0+bGVuICYmCisJCShwc3QtPmJ1 ZmZlcilbcHN0LT5wb3NdID09ICcgJykKIAl7CiAJCS8qIGJsYW5rIHR5cGUgKi8KIAkJdHlw ZSA9IDEyOwotCQkvKiBnbyB0byB0aGUgbmV4dCBub24td2hpdGUtc3BhY2UgY2hhcmFjdGVy ICovCi0JCXdoaWxlICgocHN0LT5idWZmZXIpW3BzdC0+cG9zXSA9PSAnICcgJiYKLQkJCSAg IHBzdC0+cG9zIDwgcHN0LT5sZW4pCisJCS8qIGdvIHRvIHRoZSBuZXh0IG5vbi1zcGFjZSBj aGFyYWN0ZXIgKi8KKwkJd2hpbGUgKHBzdC0+cG9zIDwgcHN0LT5sZW4gJiYKKwkJCSAgIChw c3QtPmJ1ZmZlcilbcHN0LT5wb3NdID09ICcgJykKIAkJCShwc3QtPnBvcykrKzsKIAl9CiAJ ZWxzZQogCXsKIAkJLyogd29yZCB0eXBlICovCiAJCXR5cGUgPSAzOwotCQkvKiBnbyB0byB0 aGUgbmV4dCB3aGl0ZS1zcGFjZSBjaGFyYWN0ZXIgKi8KLQkJd2hpbGUgKChwc3QtPmJ1ZmZl cilbcHN0LT5wb3NdICE9ICcgJyAmJgotCQkJICAgcHN0LT5wb3MgPCBwc3QtPmxlbikKKwkJ LyogZ28gdG8gdGhlIG5leHQgc3BhY2UgY2hhcmFjdGVyICovCisJCXdoaWxlIChwc3QtPnBv cyA8IHBzdC0+bGVuICYmCisJCQkgICAocHN0LT5idWZmZXIpW3BzdC0+cG9zXSAhPSAnICcp CiAJCQkocHN0LT5wb3MpKys7CiAJfQogCi0JKnRsZW4gPSBwc3QtPnBvcyAtICp0bGVuOwor CSp0bGVuID0gcHN0LT5wb3MgLSBzdGFydHBvczsKIAogCS8qIHdlIGFyZSBmaW5pc2hlZCBp ZiAoKnRsZW4gPT0gMCkgKi8KIAlpZiAoKnRsZW4gPT0gMCkKCmNvbW1pdCA3NDNlZDA4MmFj Y2JjNTQyMjk0YTQ0MDhlMmU0NWE2ZmZiOGVjOTY2CkF1dGhvcjogUGV0ZXIgRWlzZW50cmF1 dCA8cGV0ZXJfZUBnbXgubmV0PgpEYXRlOiAgIE1vbiBKYW4gOSAyMToxMDo1MCAyMDEyICsw MjAwCgogICAgQWRkIGNvbXBhdGliaWxpdHkgbm90ZSBhYm91dCBncmFudCBvcHRpb25zIG9u IEdSQU5UIHJlZmVyZW5jZSBwYWdlCiAgICAKICAgIFBvaW50IG91dCBpbiB0aGUgY29tcGF0 aWJpbGl0eSBzZWN0aW9uIHRoYXQgZ3JhbnRpbmcgZ3JhbnQgb3B0aW9ucyB0bwogICAgUFVC TElDIGlzIG5vdCBzdXBwb3J0ZWQgYnkgUG9zdGdyZVNRTC4gIFRoaXMgaXMgYWxyZWFkeSBt ZW50aW9uZWQKICAgIGVhcmxpZXIsIGJ1dCBzaW5jZSBpdCBjb25jZXJucyB0aGUgaW5mb3Jt YXRpb24gc2NoZW1hLCBpdCBtaWdodCBiZQogICAgd29ydGggcG9pbnRpbmcgb3V0IGV4cGxp Y2l0bHkgYXMgYSBjb21wYXRpYmlsaXR5IGlzc3VlLgoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvZ3JhbnQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAppbmRl eCA1MWRkMmUwLi5jNWVkYWVkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50 LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCkBAIC02MzEsNiArNjMx LDEyIEBAIEdSQU5UIGFkbWlucyBUTyBqb2U7CiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgor ICAgIEFjY29yZGluZyB0byB0aGUgU1FMIHN0YW5kYXJkLCBncmFudCBvcHRpb25zIGNhbiBi ZSBncmFudGVkIHRvCisgICAgPGxpdGVyYWw+UFVCTElDPC9saXRlcmFsPjsgUG9zdGdyZVNR TCBvbmx5IHN1cHBvcnRzIGdyYW50aW5nIGdyYW50IG9wdGlvbnMKKyAgICB0byByb2xlcy4K KyAgIDwvcGFyYT4KKworICAgPHBhcmE+CiAgICAgVGhlIFNRTCBzdGFuZGFyZCBwcm92aWRl cyBmb3IgYSA8bGl0ZXJhbD5VU0FHRTwvbGl0ZXJhbD4gcHJpdmlsZWdlCiAgICAgb24gb3Ro ZXIga2luZHMgb2Ygb2JqZWN0czogY2hhcmFjdGVyIHNldHMsIGNvbGxhdGlvbnMsCiAgICAg dHJhbnNsYXRpb25zLgoKY29tbWl0IGRjM2YzM2Y2YmUwYmUzZjdjZTI1NTExZDQ0ODU1MDZl YzQzZTIwYWEKQXV0aG9yOiBSb2JlcnQgSGFhcyA8cmhhYXNAcG9zdGdyZXNxbC5vcmc+CkRh dGU6ICAgTW9uIEphbiA5IDEzOjMxOjU4IDIwMTIgLTA1MDAKCiAgICBGaXggcGF0aG5hbWUg aW4gcGdpbmRlbnQgUkVBRE1FLgogICAgCiAgICBLZXZpbiBHcml0dG5lcgoKZGlmZiAtLWdp dCBhL3NyYy90b29scy9wZ2luZGVudC9SRUFETUUgYi9zcmMvdG9vbHMvcGdpbmRlbnQvUkVB RE1FCmluZGV4IGQ4OGMyMDEuLmE0N2I4MDkgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2lu ZGVudC9SRUFETUUKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L1JFQURNRQpAQCAtMjIsNyAr MjIsNyBAQCBUaGlzIGNhbiBmb3JtYXQgYWxsIFBvc3RncmVTUUwgKi5jIGFuZCAqLmggZmls ZXMsIGJ1dCBleGNsdWRlcyAqLnksIGFuZAogCiAJZmluZCAuIC1uYW1lICcqLltjaF0nIC10 eXBlIGYgLXByaW50IHwgXAogCWVncmVwIC12IC1mIHNyYy90b29scy9wZ2luZGVudC9leGNs dWRlX2ZpbGVfcGF0dGVybnMgfCBcCi0JeGFyZ3MgLW4xMDAgcGdpbmRlbnQgc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKwl4YXJncyAtbjEwMCBzcmMvdG9vbHMvcGdpbmRl bnQvcGdpbmRlbnQgc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKIAogNikgUmVt b3ZlIGFueSBmaWxlcyB0aGF0IGdlbmVyYXRlIGVycm9ycyBhbmQgcmVzdG9yZSB0aGVpciBv cmlnaW5hbAogICAgdmVyc2lvbnMuCgpjb21taXQgODIyMTI4OTQ3ZWI3MDc4MzBhZDFiNzc1 YzIxNjUxN2MzYTU0YmVmYwpBdXRob3I6IE1hZ251cyBIYWdhbmRlciA8bWFnbnVzQGhhZ2Fu ZGVyLm5ldD4KRGF0ZTogICBNb24gSmFuIDkgMTg6MTg6MjUgMjAxMiArMDEwMAoKICAgIEFk ZCAuZ2l0aWdub3JlIGZpbGUgZm9yIGVudGFiCiAgICAKICAgIEtldmluIEdyaXR0bmVyCgpk aWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL2VudGFiLy5naXRpZ25vcmUgYi9zcmMvdG9vbHMvZW50 YWIvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGRi ODQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rvb2xzL2VudGFiLy5naXRpZ25vcmUKQEAg LTAsMCArMSBAQAorL2VudGFiCgpjb21taXQgNGVjZDM1OWM0MjAyMDMwODI0ODllMmI1ZGRk ZDA5OGUzNGExYjcwYwpBdXRob3I6IE1hZ251cyBIYWdhbmRlciA8bWFnbnVzQGhhZ2FuZGVy Lm5ldD4KRGF0ZTogICBNb24gSmFuIDkgMTg6MTY6NTEgMjAxMiArMDEwMAoKICAgIEZpeCBj b21tZW50IGxhbmd1YWdlCiAgICAKICAgIFBlciBjb21tZW50IGZyb20gSGVpa2tpCgpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3JlY2VpdmVsb2cuYyBiL3NyYy9iaW4v cGdfYmFzZWJhY2t1cC9yZWNlaXZlbG9nLmMKaW5kZXggZTNhMGU5Mi4uYzM5MGNiZiAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3JlY2VpdmVsb2cuYworKysgYi9zcmMv YmluL3BnX2Jhc2ViYWNrdXAvcmVjZWl2ZWxvZy5jCkBAIC0zNzksOCArMzc5LDggQEAgUmVj ZWl2ZVhsb2dTdHJlYW0oUEdjb25uICpjb25uLCBYTG9nUmVjUHRyIHN0YXJ0cG9zLCB1aW50 MzIgdGltZWxpbmUsIGNoYXIgKnN5c2kKIAkJewogCQkJLyoKIAkJCSAqIGtlZXBhbGl2ZSBt ZXNzYWdlLCBzZW50IGluIDkuMiBhbmQgbmV3ZXIuIFdlIGp1c3QgaWdub3JlCi0JCQkgKiB0 aGlzIG1lc3NhZ2UgY29tcGxldGVseSwgYnV0IG5lZWQgdG8gZm9yd2FyZCBwYXN0IGl0Ci0J CQkgKiBpbiBvdXIgcmVhZGluZy4KKwkJCSAqIHRoaXMgbWVzc2FnZSBjb21wbGV0ZWx5LCBi dXQgbmVlZCB0byBza2lwIHBhc3QgaXQgaW4gdGhlCisJCQkgKiBzdHJlYW0uCiAJCQkgKi8K IAkJCWlmIChyICE9IFNUUkVBTUlOR19LRUVQQUxJVkVfU0laRSkKIAkJCXsKCmNvbW1pdCA2 YjAyMGQyMjhiOTc2ODIxMTgxYWM2NzM5NjRmMzAyYjJjMzJmMTJkCkF1dGhvcjogTWFnbnVz IEhhZ2FuZGVyIDxtYWdudXNAaGFnYW5kZXIubmV0PgpEYXRlOiAgIE1vbiBKYW4gOSAxMTo1 MzozOCAyMDEyICswMTAwCgogICAgRml4IHBnX2Jhc2ViYWNrdXAgZm9yIGtlZXBhbGl2ZSBt ZXNzYWdlcwogICAgCiAgICBUZWFjaCBwZ19iYXNlYmFja3VwIGluIHN0cmVhbWluZyBtb2Rl IHRvIGRlYWwgd2l0aCBrZWVwYWxpdmUgbWVzc2FnZXMuCiAgICBBbHNvIGNoYW5nZSB0aGUg b3JkZXIgb2YgY2hlY2tzIHRvIGNvbXBsYWluIGF0IHRoZSBtZXNzYWdlIHJhdGhlciB0aGFu CiAgICBibG9jayBzaXplIHdoZW4gYSBuZXcgbWVzc2FnZSBpcyBpbnRyb2R1Y2VkLgogICAg CiAgICBJbiBwYXNzaW5nLCBzd2l0Y2ggdG8gdXNpbmcgc2l6ZW9mKCkgaW5zdGVhZCBvZiBo YXJkY29kZWQgc2l6ZXMgZm9yCiAgICBXQUwgcHJvdG9jb2wgc3RydWN0cy4KCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcmVjZWl2ZWxvZy5jIGIvc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3JlY2VpdmVsb2cuYwppbmRleCBjMThkYjRmLi5lM2EwZTkyIDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcmVjZWl2ZWxvZy5jCisrKyBiL3NyYy9iaW4v cGdfYmFzZWJhY2t1cC9yZWNlaXZlbG9nLmMKQEAgLTMzLDggKzMzLDkgQEAKICNpbmNsdWRl IDx1bmlzdGQuaD4KIAogCi0vKiBTaXplIG9mIHRoZSBzdHJlYW1pbmcgcmVwbGljYXRpb24g cHJvdG9jb2wgaGVhZGVyICovCi0jZGVmaW5lIFNUUkVBTUlOR19IRUFERVJfU0laRSAoMSs4 KzgrOCkKKy8qIFNpemUgb2YgdGhlIHN0cmVhbWluZyByZXBsaWNhdGlvbiBwcm90b2NvbCBo ZWFkZXJzICovCisjZGVmaW5lIFNUUkVBTUlOR19IRUFERVJfU0laRSAoMStzaXplb2YoV2Fs RGF0YU1lc3NhZ2VIZWFkZXIpKQorI2RlZmluZSBTVFJFQU1JTkdfS0VFUEFMSVZFX1NJWkUg KDErc2l6ZW9mKFByaW1hcnlLZWVwYWxpdmVNZXNzYWdlKSkKIAogY29uc3QgWExvZ1JlY1B0 ciBJbnZhbGlkWExvZ1JlY1B0ciA9IHswLCAwfTsKIApAQCAtMzc0LDE4ICszNzUsMzMgQEAg UmVjZWl2ZVhsb2dTdHJlYW0oUEdjb25uICpjb25uLCBYTG9nUmVjUHRyIHN0YXJ0cG9zLCB1 aW50MzIgdGltZWxpbmUsIGNoYXIgKnN5c2kKIAkJCQkJcHJvZ25hbWUsIFBRZXJyb3JNZXNz YWdlKGNvbm4pKTsKIAkJCXJldHVybiBmYWxzZTsKIAkJfQotCQlpZiAociA8IFNUUkVBTUlO R19IRUFERVJfU0laRSArIDEpCisJCWlmIChjb3B5YnVmWzBdID09ICdrJykKIAkJewotCQkJ ZnByaW50ZihzdGRlcnIsIF8oIiVzOiBzdHJlYW1pbmcgaGVhZGVyIHRvbyBzbWFsbDogJWlc biIpLAotCQkJCQlwcm9nbmFtZSwgcik7Ci0JCQlyZXR1cm4gZmFsc2U7CisJCQkvKgorCQkJ ICoga2VlcGFsaXZlIG1lc3NhZ2UsIHNlbnQgaW4gOS4yIGFuZCBuZXdlci4gV2UganVzdCBp Z25vcmUKKwkJCSAqIHRoaXMgbWVzc2FnZSBjb21wbGV0ZWx5LCBidXQgbmVlZCB0byBmb3J3 YXJkIHBhc3QgaXQKKwkJCSAqIGluIG91ciByZWFkaW5nLgorCQkJICovCisJCQlpZiAociAh PSBTVFJFQU1JTkdfS0VFUEFMSVZFX1NJWkUpCisJCQl7CisJCQkJZnByaW50ZihzdGRlcnIs IF8oIiVzOiBrZWVwYWxpdmUgbWVzc2FnZSBpcyBpbmNvcnJlY3Qgc2l6ZTogJWlcbiIpLAor CQkJCQkJcHJvZ25hbWUsIHIpOworCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKwkJCWNvbnRp bnVlOwogCQl9Ci0JCWlmIChjb3B5YnVmWzBdICE9ICd3JykKKwkJZWxzZSBpZiAoY29weWJ1 ZlswXSAhPSAndycpCiAJCXsKIAkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogdW5yZWNvZ25p emVkIHN0cmVhbWluZyBoZWFkZXI6IFwiJWNcIlxuIiksCiAJCQkJCXByb2duYW1lLCBjb3B5 YnVmWzBdKTsKIAkJCXJldHVybiBmYWxzZTsKIAkJfQorCQlpZiAociA8IFNUUkVBTUlOR19I RUFERVJfU0laRSArIDEpCisJCXsKKwkJCWZwcmludGYoc3RkZXJyLCBfKCIlczogc3RyZWFt aW5nIGhlYWRlciB0b28gc21hbGw6ICVpXG4iKSwKKwkJCQkJcHJvZ25hbWUsIHIpOworCQkJ cmV0dXJuIGZhbHNlOworCQl9CiAKIAkJLyogRXh0cmFjdCBXQUwgbG9jYXRpb24gZm9yIHRo aXMgYmxvY2sgKi8KIAkJbWVtY3B5KCZibG9ja3BvcywgY29weWJ1ZiArIDEsIDgpOwoKY29t bWl0IGRiNDk1MTdjNjI3NTAzMjJmYjJhMzdmZjYzMjRlY2MwMDk2NWU2NDEKQXV0aG9yOiBQ ZXRlciBFaXNlbnRyYXV0IDxwZXRlcl9lQGdteC5uZXQ+CkRhdGU6ICAgU2F0IEphbiA3IDE0 OjU4OjEzIDIwMTIgKzAyMDAKCiAgICBSZW5hbWUgdGhlIGludGVybmFsIHN0cnVjdHVyZXMg b2YgdGhlIENSRUFURSBUQUJMRSAoTElLRSAuLi4pIGZhY2lsaXR5CiAgICAKICAgIFRoZSBv cmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVycHJldGVkIGl0IGFzIGEga2lu ZCBvZgogICAgImluaGVyaXRhbmNlIiBmYWNpbGl0eSBhbmQgbmFtZWQgYWxsIHRoZSBpbnRl cm5hbCBzdHJ1Y3R1cmVzCiAgICBhY2NvcmRpbmdseS4gIFRoaXMgdHVybmVkIG91dCB0byBi ZSB2ZXJ5IGNvbmZ1c2luZywgYmVjYXVzZSBpdCBoYXMKICAgIG5vdGhpbmcgdG8gZG8gd2l0 aCB0aGUgSU5IRVJJVFMgZmVhdHVyZS4gIFNvIHJlbmFtZSBhbGwgdGhlIGludGVybmFsCiAg ICBwYXJzZXIgaW5mcmFzdHJ1Y3R1cmUsIHVwZGF0ZSB0aGUgY29tbWVudHMsIGFkanVzdCB0 aGUgZXJyb3IgbWVzc2FnZXMsCiAgICBhbmQgc3BsaXQgdXAgdGhlIHJlZ3Jlc3Npb24gdGVz dHMuCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggMzBlNDE1NC4uOTc5 NjhiYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0yNCw3ICsyNCw3 IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NB TCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBF WElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+dGFibGVfbmFtZTwvcmVw bGFjZWFibGU+ICggWwogICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5jb2x1 bW5fbmFtZTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5k YXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlv bjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+Y29s dW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KICAgICB8IDxyZXBsYWNl YWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4KLSAgICB8IExJS0UgPHJlcGxh Y2VhYmxlPnBhcmVudF90YWJsZTwvcmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxlPmxpa2Vf b3B0aW9uPC9yZXBsYWNlYWJsZT4gLi4uIF0gfQorICAgIHwgTElLRSA8cmVwbGFjZWFibGU+ c291cmNlX3RhYmxlPC9yZXBsYWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+bGlrZV9vcHRpb248 L3JlcGxhY2VhYmxlPiAuLi4gXSB9CiAgICAgWywgLi4uIF0KIF0gKQogWyBJTkhFUklUUyAo IDxyZXBsYWNlYWJsZT5wYXJlbnRfdGFibGU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0K QEAgLTMxMiw3ICszMTIsNyBAQCBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1Q T1JBUlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSQogICAgPC92 YXJsaXN0ZW50cnk+CiAKICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgPHRlcm0+PGxpdGVyYWw+ TElLRSA8cmVwbGFjZWFibGU+cGFyZW50X3RhYmxlPC9yZXBsYWNlYWJsZT4gWyA8cmVwbGFj ZWFibGU+bGlrZV9vcHRpb248L3JlcGxhY2VhYmxlPiAuLi4gXTwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgPHRlcm0+PGxpdGVyYWw+TElLRSA8cmVwbGFjZWFibGU+c291cmNlX3RhYmxlPC9y ZXBsYWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+bGlrZV9vcHRpb248L3JlcGxhY2VhYmxlPiAu Li4gXTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAg ICAgIFRoZSA8bGl0ZXJhbD5MSUtFPC9saXRlcmFsPiBjbGF1c2Ugc3BlY2lmaWVzIGEgdGFi bGUgZnJvbSB3aGljaApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNz LmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYwppbmRleCA3NTZlM2E2Li43MWRh MGQ4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYworKysgYi9z cmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYwpAQCAtMjcyNywxMCArMjcyNywxMCBAQCBf Y29weUNyZWF0ZVN0bXQoY29uc3QgQ3JlYXRlU3RtdCAqZnJvbSkKIAlyZXR1cm4gbmV3bm9k ZTsKIH0KIAotc3RhdGljIEluaFJlbGF0aW9uICoKLV9jb3B5SW5oUmVsYXRpb24oY29uc3Qg SW5oUmVsYXRpb24gKmZyb20pCitzdGF0aWMgVGFibGVMaWtlQ2xhdXNlICoKK19jb3B5VGFi bGVMaWtlQ2xhdXNlKGNvbnN0IFRhYmxlTGlrZUNsYXVzZSAqZnJvbSkKIHsKLQlJbmhSZWxh dGlvbiAqbmV3bm9kZSA9IG1ha2VOb2RlKEluaFJlbGF0aW9uKTsKKwlUYWJsZUxpa2VDbGF1 c2UgKm5ld25vZGUgPSBtYWtlTm9kZShUYWJsZUxpa2VDbGF1c2UpOwogCiAJQ09QWV9OT0RF X0ZJRUxEKHJlbGF0aW9uKTsKIAlDT1BZX1NDQUxBUl9GSUVMRChvcHRpb25zKTsKQEAgLTQx MzQsOCArNDEzNCw4IEBAIGNvcHlPYmplY3QoY29uc3Qgdm9pZCAqZnJvbSkKIAkJY2FzZSBU X0NyZWF0ZVN0bXQ6CiAJCQlyZXR2YWwgPSBfY29weUNyZWF0ZVN0bXQoZnJvbSk7CiAJCQli cmVhazsKLQkJY2FzZSBUX0luaFJlbGF0aW9uOgotCQkJcmV0dmFsID0gX2NvcHlJbmhSZWxh dGlvbihmcm9tKTsKKwkJY2FzZSBUX1RhYmxlTGlrZUNsYXVzZToKKwkJCXJldHZhbCA9IF9j b3B5VGFibGVMaWtlQ2xhdXNlKGZyb20pOwogCQkJYnJlYWs7CiAJCWNhc2UgVF9EZWZpbmVT dG10OgogCQkJcmV0dmFsID0gX2NvcHlEZWZpbmVTdG10KGZyb20pOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvbm9kZXMvZXF1YWxmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvZXF1 YWxmdW5jcy5jCmluZGV4IDllZmY0MmYuLmJhOTQ5ZGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL25vZGVzL2VxdWFsZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1 bmNzLmMKQEAgLTExNjAsNyArMTE2MCw3IEBAIF9lcXVhbENyZWF0ZVN0bXQoY29uc3QgQ3Jl YXRlU3RtdCAqYSwgY29uc3QgQ3JlYXRlU3RtdCAqYikKIH0KIAogc3RhdGljIGJvb2wKLV9l cXVhbEluaFJlbGF0aW9uKGNvbnN0IEluaFJlbGF0aW9uICphLCBjb25zdCBJbmhSZWxhdGlv biAqYikKK19lcXVhbFRhYmxlTGlrZUNsYXVzZShjb25zdCBUYWJsZUxpa2VDbGF1c2UgKmEs IGNvbnN0IFRhYmxlTGlrZUNsYXVzZSAqYikKIHsKIAlDT01QQVJFX05PREVfRklFTEQocmVs YXRpb24pOwogCUNPTVBBUkVfU0NBTEFSX0ZJRUxEKG9wdGlvbnMpOwpAQCAtMjY3Nyw4ICsy Njc3LDggQEAgZXF1YWwoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIAkJY2FzZSBU X0NyZWF0ZVN0bXQ6CiAJCQlyZXR2YWwgPSBfZXF1YWxDcmVhdGVTdG10KGEsIGIpOwogCQkJ YnJlYWs7Ci0JCWNhc2UgVF9JbmhSZWxhdGlvbjoKLQkJCXJldHZhbCA9IF9lcXVhbEluaFJl bGF0aW9uKGEsIGIpOworCQljYXNlIFRfVGFibGVMaWtlQ2xhdXNlOgorCQkJcmV0dmFsID0g X2VxdWFsVGFibGVMaWtlQ2xhdXNlKGEsIGIpOwogCQkJYnJlYWs7CiAJCWNhc2UgVF9EZWZp bmVTdG10OgogCQkJcmV0dmFsID0gX2VxdWFsRGVmaW5lU3RtdChhLCBiKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9v dXRmdW5jcy5jCmluZGV4IGNiOTQ2MTQuLjhiYzE5NDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL25vZGVzL291dGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3Mu YwpAQCAtMjA2Niw5ICsyMDY2LDkgQEAgX291dERlZkVsZW0oU3RyaW5nSW5mbyBzdHIsIGNv bnN0IERlZkVsZW0gKm5vZGUpCiB9CiAKIHN0YXRpYyB2b2lkCi1fb3V0SW5oUmVsYXRpb24o U3RyaW5nSW5mbyBzdHIsIGNvbnN0IEluaFJlbGF0aW9uICpub2RlKQorX291dFRhYmxlTGlr ZUNsYXVzZShTdHJpbmdJbmZvIHN0ciwgY29uc3QgVGFibGVMaWtlQ2xhdXNlICpub2RlKQog ewotCVdSSVRFX05PREVfVFlQRSgiSU5IUkVMQVRJT04iKTsKKwlXUklURV9OT0RFX1RZUEUo IlRBQkxFTElLRUNMQVVTRSIpOwogCiAJV1JJVEVfTk9ERV9GSUVMRChyZWxhdGlvbik7CiAJ V1JJVEVfVUlOVF9GSUVMRChvcHRpb25zKTsKQEAgLTMxNDIsOCArMzE0Miw4IEBAIF9vdXRO b2RlKFN0cmluZ0luZm8gc3RyLCBjb25zdCB2b2lkICpvYmopCiAJCQljYXNlIFRfRGVmRWxl bToKIAkJCQlfb3V0RGVmRWxlbShzdHIsIG9iaik7CiAJCQkJYnJlYWs7Ci0JCQljYXNlIFRf SW5oUmVsYXRpb246Ci0JCQkJX291dEluaFJlbGF0aW9uKHN0ciwgb2JqKTsKKwkJCWNhc2Ug VF9UYWJsZUxpa2VDbGF1c2U6CisJCQkJX291dFRhYmxlTGlrZUNsYXVzZShzdHIsIG9iaik7 CiAJCQkJYnJlYWs7CiAJCQljYXNlIFRfTG9ja2luZ0NsYXVzZToKIAkJCQlfb3V0TG9ja2lu Z0NsYXVzZShzdHIsIG9iaik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA4N2Q3MzA1Li4wZWMwMzli IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKQEAgLTI3MTgsMTggKzI3MTgsMTAgQEAgQ29uc3RyYWludEF0 dHI6CiAJCTsKIAogCi0vKgotICogU1FMOTkgc3VwcG9ydHMgd2hvbGVzYWxlIGJvcnJvd2lu ZyBvZiBhIHRhYmxlIGRlZmluaXRpb24gdmlhIHRoZSBMSUtFIGNsYXVzZS4KLSAqIFRoaXMg c2VlbXMgdG8gYmUgYSBwb29yIG1hbidzIGluaGVyaXRhbmNlIGNhcGFiaWxpdHksIHdpdGgg dGhlIHJlc3VsdGluZwotICogdGFibGVzIGNvbXBsZXRlbHkgZGVjb3VwbGVkIGV4Y2VwdCBm b3IgdGhlIG9yaWdpbmFsIGNvbW1vbmFsaXR5IGluIGRlZmluaXRpb25zLgotICoKLSAqIFRo aXMgaXMgdmVyeSBzaW1pbGFyIHRvIENSRUFURSBUQUJMRSBBUyBleGNlcHQgZm9yIHRoZSBJ TkNMVURJTkcgREVGQVVMVFMgZXh0ZW5zaW9uCi0gKiB3aGljaCBpcyBhIHBhcnQgb2YgU1FM OjIwMDMuCi0gKi8KIFRhYmxlTGlrZUNsYXVzZToKIAkJCUxJS0UgcXVhbGlmaWVkX25hbWUg VGFibGVMaWtlT3B0aW9uTGlzdAogCQkJCXsKLQkJCQkJSW5oUmVsYXRpb24gKm4gPSBtYWtl Tm9kZShJbmhSZWxhdGlvbik7CisJCQkJCVRhYmxlTGlrZUNsYXVzZSAqbiA9IG1ha2VOb2Rl KFRhYmxlTGlrZUNsYXVzZSk7CiAJCQkJCW4tPnJlbGF0aW9uID0gJDI7CiAJCQkJCW4tPm9w dGlvbnMgPSAkMzsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYwppbmRleCAxOWNjZjk5Li5lMTRhZTA5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMKQEAgLTEwMiw4ICsxMDIsOCBAQCBzdGF0aWMgdm9pZCB0cmFuc2Zv cm1Db2x1bW5EZWZpbml0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCiAJCQkJCQkgIENv bHVtbkRlZiAqY29sdW1uKTsKIHN0YXRpYyB2b2lkIHRyYW5zZm9ybVRhYmxlQ29uc3RyYWlu dChDcmVhdGVTdG10Q29udGV4dCAqY3h0LAogCQkJCQkJIENvbnN0cmFpbnQgKmNvbnN0cmFp bnQpOwotc3RhdGljIHZvaWQgdHJhbnNmb3JtSW5oUmVsYXRpb24oQ3JlYXRlU3RtdENvbnRl eHQgKmN4dCwKLQkJCQkJIEluaFJlbGF0aW9uICppbmhyZWxhdGlvbik7CitzdGF0aWMgdm9p ZCB0cmFuc2Zvcm1UYWJsZUxpa2VDbGF1c2UoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwKKwkJ CQkJIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGF1c2UpOwogc3RhdGljIHZvaWQg dHJhbnNmb3JtT2ZUeXBlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCiAJCQkJVHlwZU5hbWUg Km9mVHlwZW5hbWUpOwogc3RhdGljIGNoYXIgKmNob29zZUluZGV4TmFtZShjb25zdCBSYW5n ZVZhciAqcmVsYXRpb24sIEluZGV4U3RtdCAqaW5kZXhfc3RtdCk7CkBAIC0yMzgsOCArMjM4 LDggQEAgdHJhbnNmb3JtQ3JlYXRlU3RtdChDcmVhdGVTdG10ICpzdG10LCBjb25zdCBjaGFy ICpxdWVyeVN0cmluZykKIAkJCQl0cmFuc2Zvcm1UYWJsZUNvbnN0cmFpbnQoJmN4dCwgKENv bnN0cmFpbnQgKikgZWxlbWVudCk7CiAJCQkJYnJlYWs7CiAKLQkJCWNhc2UgVF9JbmhSZWxh dGlvbjoKLQkJCQl0cmFuc2Zvcm1JbmhSZWxhdGlvbigmY3h0LCAoSW5oUmVsYXRpb24gKikg ZWxlbWVudCk7CisJCQljYXNlIFRfVGFibGVMaWtlQ2xhdXNlOgorCQkJCXRyYW5zZm9ybVRh YmxlTGlrZUNsYXVzZSgmY3h0LCAoVGFibGVMaWtlQ2xhdXNlICopIGVsZW1lbnQpOwogCQkJ CWJyZWFrOwogCiAJCQlkZWZhdWx0OgpAQCAtNjI1LDE0ICs2MjUsMTQgQEAgdHJhbnNmb3Jt VGFibGVDb25zdHJhaW50KENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbnN0cmFpbnQgKmNv bnN0cmFpbnQpCiB9CiAKIC8qCi0gKiB0cmFuc2Zvcm1JbmhSZWxhdGlvbgorICogdHJhbnNm b3JtVGFibGVMaWtlQ2xhdXNlCiAgKgotICogQ2hhbmdlIHRoZSBMSUtFIDxzdWJ0YWJsZT4g cG9ydGlvbiBvZiBhIENSRUFURSBUQUJMRSBzdGF0ZW1lbnQgaW50bworICogQ2hhbmdlIHRo ZSBMSUtFIDxzcmN0YWJsZT4gcG9ydGlvbiBvZiBhIENSRUFURSBUQUJMRSBzdGF0ZW1lbnQg aW50bwogICogY29sdW1uIGRlZmluaXRpb25zIHdoaWNoIHJlY3JlYXRlIHRoZSB1c2VyIGRl ZmluZWQgY29sdW1uIHBvcnRpb25zIG9mCi0gKiA8c3VidGFibGU+LgorICogPHNyY3RhYmxl Pi4KICAqLwogc3RhdGljIHZvaWQKLXRyYW5zZm9ybUluaFJlbGF0aW9uKENyZWF0ZVN0bXRD b250ZXh0ICpjeHQsIEluaFJlbGF0aW9uICppbmhSZWxhdGlvbikKK3RyYW5zZm9ybVRhYmxl TGlrZUNsYXVzZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBUYWJsZUxpa2VDbGF1c2UgKnRh YmxlX2xpa2VfY2xhdXNlKQogewogCUF0dHJOdW1iZXIJcGFyZW50X2F0dG5vOwogCVJlbGF0 aW9uCXJlbGF0aW9uOwpAQCAtNjQxLDE3ICs2NDEsMTcgQEAgdHJhbnNmb3JtSW5oUmVsYXRp b24oQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgSW5oUmVsYXRpb24gKmluaFJlbGF0aW9uKQog CUFjbFJlc3VsdAlhY2xyZXN1bHQ7CiAJY2hhcgkgICAqY29tbWVudDsKIAotCXJlbGF0aW9u ID0gcGFyc2VyT3BlblRhYmxlKGN4dC0+cHN0YXRlLCBpbmhSZWxhdGlvbi0+cmVsYXRpb24s CisJcmVsYXRpb24gPSBwYXJzZXJPcGVuVGFibGUoY3h0LT5wc3RhdGUsIHRhYmxlX2xpa2Vf Y2xhdXNlLT5yZWxhdGlvbiwKIAkJCQkJCQkgICBBY2Nlc3NTaGFyZUxvY2spOwogCiAJaWYg KHJlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTikKIAkJZXJl cG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwK LQkJCQkgZXJybXNnKCJpbmhlcml0ZWQgcmVsYXRpb24gXCIlc1wiIGlzIG5vdCBhIHRhYmxl IiwKLQkJCQkJCWluaFJlbGF0aW9uLT5yZWxhdGlvbi0+cmVsbmFtZSkpKTsKKwkJCQkgZXJy bXNnKCJMSUtFIHNvdXJjZSByZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgdGFibGUiLAorCQkJ CQkJdGFibGVfbGlrZV9jbGF1c2UtPnJlbGF0aW9uLT5yZWxuYW1lKSkpOwogCiAJLyoKLQkg KiBDaGVjayBmb3IgU0VMRUNUIHByaXZpbGFnZXMKKwkgKiBDaGVjayBmb3IgU0VMRUNUIHBy aXZpbGVnZXMKIAkgKi8KIAlhY2xyZXN1bHQgPSBwZ19jbGFzc19hY2xjaGVjayhSZWxhdGlv bkdldFJlbGlkKHJlbGF0aW9uKSwgR2V0VXNlcklkKCksCiAJCQkJCQkJCSAgQUNMX1NFTEVD VCk7CkBAIC03MDgsNyArNzA4LDcgQEAgdHJhbnNmb3JtSW5oUmVsYXRpb24oQ3JlYXRlU3Rt dENvbnRleHQgKmN4dCwgSW5oUmVsYXRpb24gKmluaFJlbGF0aW9uKQogCQkgKiBDb3B5IGRl ZmF1bHQsIGlmIHByZXNlbnQgYW5kIHRoZSBkZWZhdWx0IGhhcyBiZWVuIHJlcXVlc3RlZAog CQkgKi8KIAkJaWYgKGF0dHJpYnV0ZS0+YXR0aGFzZGVmICYmCi0JCQkoaW5oUmVsYXRpb24t Pm9wdGlvbnMgJiBDUkVBVEVfVEFCTEVfTElLRV9ERUZBVUxUUykpCisJCQkodGFibGVfbGlr ZV9jbGF1c2UtPm9wdGlvbnMgJiBDUkVBVEVfVEFCTEVfTElLRV9ERUZBVUxUUykpCiAJCXsK IAkJCU5vZGUJICAgKnRoaXNfZGVmYXVsdCA9IE5VTEw7CiAJCQlBdHRyRGVmYXVsdCAqYXR0 cmRlZjsKQEAgLTczNiwxMyArNzM2LDEzIEBAIHRyYW5zZm9ybUluaFJlbGF0aW9uKENyZWF0 ZVN0bXRDb250ZXh0ICpjeHQsIEluaFJlbGF0aW9uICppbmhSZWxhdGlvbikKIAkJfQogCiAJ CS8qIExpa2V3aXNlLCBjb3B5IHN0b3JhZ2UgaWYgcmVxdWVzdGVkICovCi0JCWlmIChpbmhS ZWxhdGlvbi0+b3B0aW9ucyAmIENSRUFURV9UQUJMRV9MSUtFX1NUT1JBR0UpCisJCWlmICh0 YWJsZV9saWtlX2NsYXVzZS0+b3B0aW9ucyAmIENSRUFURV9UQUJMRV9MSUtFX1NUT1JBR0Up CiAJCQlkZWYtPnN0b3JhZ2UgPSBhdHRyaWJ1dGUtPmF0dHN0b3JhZ2U7CiAJCWVsc2UKIAkJ CWRlZi0+c3RvcmFnZSA9IDA7CiAKIAkJLyogTGlrZXdpc2UsIGNvcHkgY29tbWVudCBpZiBy ZXF1ZXN0ZWQgKi8KLQkJaWYgKChpbmhSZWxhdGlvbi0+b3B0aW9ucyAmIENSRUFURV9UQUJM RV9MSUtFX0NPTU1FTlRTKSAmJgorCQlpZiAoKHRhYmxlX2xpa2VfY2xhdXNlLT5vcHRpb25z ICYgQ1JFQVRFX1RBQkxFX0xJS0VfQ09NTUVOVFMpICYmCiAJCQkoY29tbWVudCA9IEdldENv bW1lbnQoYXR0cmlidXRlLT5hdHRyZWxpZCwKIAkJCQkJCQkJICBSZWxhdGlvblJlbGF0aW9u SWQsCiAJCQkJCQkJCSAgYXR0cmlidXRlLT5hdHRudW0pKSAhPSBOVUxMKQpAQCAtNzY0LDcg Kzc2NCw3IEBAIHRyYW5zZm9ybUluaFJlbGF0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQs IEluaFJlbGF0aW9uICppbmhSZWxhdGlvbikKIAkgKiBDb3B5IENIRUNLIGNvbnN0cmFpbnRz IGlmIHJlcXVlc3RlZCwgYmVpbmcgY2FyZWZ1bCB0byBhZGp1c3QgYXR0cmlidXRlCiAJICog bnVtYmVycwogCSAqLwotCWlmICgoaW5oUmVsYXRpb24tPm9wdGlvbnMgJiBDUkVBVEVfVEFC TEVfTElLRV9DT05TVFJBSU5UUykgJiYKKwlpZiAoKHRhYmxlX2xpa2VfY2xhdXNlLT5vcHRp b25zICYgQ1JFQVRFX1RBQkxFX0xJS0VfQ09OU1RSQUlOVFMpICYmCiAJCXR1cGxlRGVzYy0+ Y29uc3RyKQogCXsKIAkJQXR0ck51bWJlciAqYXR0bWFwID0gdmFyYXR0bm9zX21hcF9zY2hl bWEodHVwbGVEZXNjLCBjeHQtPmNvbHVtbnMpOwpAQCAtNzg3LDcgKzc4Nyw3IEBAIHRyYW5z Zm9ybUluaFJlbGF0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIEluaFJlbGF0aW9uICpp bmhSZWxhdGlvbikKIAkJCWN4dC0+Y2tjb25zdHJhaW50cyA9IGxhcHBlbmQoY3h0LT5ja2Nv bnN0cmFpbnRzLCBuKTsKIAogCQkJLyogQ29weSBjb21tZW50IG9uIGNvbnN0cmFpbnQgKi8K LQkJCWlmICgoaW5oUmVsYXRpb24tPm9wdGlvbnMgJiBDUkVBVEVfVEFCTEVfTElLRV9DT01N RU5UUykgJiYKKwkJCWlmICgodGFibGVfbGlrZV9jbGF1c2UtPm9wdGlvbnMgJiBDUkVBVEVf VEFCTEVfTElLRV9DT01NRU5UUykgJiYKIAkJCQkoY29tbWVudCA9IEdldENvbW1lbnQoZ2V0 X2NvbnN0cmFpbnRfb2lkKFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pLAogCQkJCQkJCQkJ CQkJCQkgbi0+Y29ubmFtZSwgZmFsc2UpLAogCQkJCQkJCQkJICBDb25zdHJhaW50UmVsYXRp b25JZCwKQEAgLTgxMCw3ICs4MTAsNyBAQCB0cmFuc2Zvcm1JbmhSZWxhdGlvbihDcmVhdGVT dG10Q29udGV4dCAqY3h0LCBJbmhSZWxhdGlvbiAqaW5oUmVsYXRpb24pCiAJLyoKIAkgKiBM aWtld2lzZSwgY29weSBpbmRleGVzIGlmIHJlcXVlc3RlZAogCSAqLwotCWlmICgoaW5oUmVs YXRpb24tPm9wdGlvbnMgJiBDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVTKSAmJgorCWlmICgo dGFibGVfbGlrZV9jbGF1c2UtPm9wdGlvbnMgJiBDUkVBVEVfVEFCTEVfTElLRV9JTkRFWEVT KSAmJgogCQlyZWxhdGlvbi0+cmRfcmVsLT5yZWxoYXNpbmRleCkKIAl7CiAJCUF0dHJOdW1i ZXIgKmF0dG1hcCA9IHZhcmF0dG5vc19tYXBfc2NoZW1hKHR1cGxlRGVzYywgY3h0LT5jb2x1 bW5zKTsKQEAgLTgzMSw3ICs4MzEsNyBAQCB0cmFuc2Zvcm1JbmhSZWxhdGlvbihDcmVhdGVT dG10Q29udGV4dCAqY3h0LCBJbmhSZWxhdGlvbiAqaW5oUmVsYXRpb24pCiAJCQlpbmRleF9z dG10ID0gZ2VuZXJhdGVDbG9uZWRJbmRleFN0bXQoY3h0LCBwYXJlbnRfaW5kZXgsIGF0dG1h cCk7CiAKIAkJCS8qIENvcHkgY29tbWVudCBvbiBpbmRleCAqLwotCQkJaWYgKGluaFJlbGF0 aW9uLT5vcHRpb25zICYgQ1JFQVRFX1RBQkxFX0xJS0VfQ09NTUVOVFMpCisJCQlpZiAodGFi bGVfbGlrZV9jbGF1c2UtPm9wdGlvbnMgJiBDUkVBVEVfVEFCTEVfTElLRV9DT01NRU5UUykK IAkJCXsKIAkJCQljb21tZW50ID0gR2V0Q29tbWVudChwYXJlbnRfaW5kZXhfb2lkLCBSZWxh dGlvblJlbGF0aW9uSWQsIDApOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9u b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvbm9kZXMuaAppbmRleCBiZjM5ZGNjLi5iMTE2 ODA4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL25vZGVzLmgKQEAgLTM4OSw3ICszODksNyBAQCB0eXBlZGVmIGVudW0g Tm9kZVRhZwogCVRfRnVuY1dpdGhBcmdzLAogCVRfQWNjZXNzUHJpdiwKIAlUX0NyZWF0ZU9w Q2xhc3NJdGVtLAotCVRfSW5oUmVsYXRpb24sCisJVF9UYWJsZUxpa2VDbGF1c2UsCiAJVF9G dW5jdGlvblBhcmFtZXRlciwKIAlUX0xvY2tpbmdDbGF1c2UsCiAJVF9Sb3dNYXJrQ2xhdXNl LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDBiZTNmYjEuLmRjZTBlNzIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTUwNCwxNiArNTA0LDE2IEBAIHR5cGVkZWYgc3Ry dWN0IENvbHVtbkRlZgogfSBDb2x1bW5EZWY7CiAKIC8qCi0gKiBpbmhSZWxhdGlvbiAtIFJl bGF0aW9uIGEgQ1JFQVRFIFRBQkxFIGlzIHRvIGluaGVyaXQgYXR0cmlidXRlcyBvZgorICog VGFibGVMaWtlQ2xhdXNlIC0gQ1JFQVRFIFRBQkxFICggLi4uIExJS0UgLi4uICkgY2xhdXNl CiAgKi8KLXR5cGVkZWYgc3RydWN0IEluaFJlbGF0aW9uCit0eXBlZGVmIHN0cnVjdCBUYWJs ZUxpa2VDbGF1c2UKIHsKIAlOb2RlVGFnCQl0eXBlOwogCVJhbmdlVmFyICAgKnJlbGF0aW9u OwotCWJpdHMzMgkJb3B0aW9uczsJCS8qIE9SIG9mIENyZWF0ZVN0bXRMaWtlT3B0aW9uIGZs YWdzICovCi19IEluaFJlbGF0aW9uOworCWJpdHMzMgkJb3B0aW9uczsJCS8qIE9SIG9mIFRh YmxlTGlrZU9wdGlvbiBmbGFncyAqLworfSBUYWJsZUxpa2VDbGF1c2U7CiAKLXR5cGVkZWYg ZW51bSBDcmVhdGVTdG10TGlrZU9wdGlvbgordHlwZWRlZiBlbnVtIFRhYmxlTGlrZU9wdGlv bgogewogCUNSRUFURV9UQUJMRV9MSUtFX0RFRkFVTFRTID0gMSA8PCAwLAogCUNSRUFURV9U QUJMRV9MSUtFX0NPTlNUUkFJTlRTID0gMSA8PCAxLApAQCAtNTIxLDcgKzUyMSw3IEBAIHR5 cGVkZWYgZW51bSBDcmVhdGVTdG10TGlrZU9wdGlvbgogCUNSRUFURV9UQUJMRV9MSUtFX1NU T1JBR0UgPSAxIDw8IDMsCiAJQ1JFQVRFX1RBQkxFX0xJS0VfQ09NTUVOVFMgPSAxIDw8IDQs CiAJQ1JFQVRFX1RBQkxFX0xJS0VfQUxMID0gMHg3RkZGRkZGRgotfSBDcmVhdGVTdG10TGlr ZU9wdGlvbjsKK30gVGFibGVMaWtlT3B0aW9uOwogCiAvKgogICogSW5kZXhFbGVtIC0gaW5k ZXggcGFyYW1ldGVycyAodXNlZCBpbiBDUkVBVEUgSU5ERVgpCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmZjYzMmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dApAQCAtMCwwICsx LDIyMiBAQAorLyogVGVzdCBpbmhlcml0YW5jZSBvZiBzdHJ1Y3R1cmUgKExJS0UpICovCitD UkVBVEUgVEFCTEUgaW5oeCAoeHggdGV4dCBERUZBVUxUICd0ZXh0Jyk7CisvKgorICogVGVz dCBkb3VibGUgaW5oZXJpdGFuY2UKKyAqCisgKiBFbnN1cmUgdGhhdCBkZWZhdWx0cyBhcmUg Tk9UIGluY2x1ZGVkIHVubGVzcworICogSU5DTFVESU5HIERFRkFVTFRTIGlzIHNwZWNpZmll ZAorICovCitDUkVBVEUgVEFCTEUgY3RsYSAoYWEgVEVYVCk7CitDUkVBVEUgVEFCTEUgY3Rs YiAoYmIgVEVYVCkgSU5IRVJJVFMgKGN0bGEpOworQ1JFQVRFIFRBQkxFIGluaGUgKGVlIHRl eHQsIExJS0UgaW5oeCkgaW5oZXJpdHMgKGN0bGIpOworSU5TRVJUIElOVE8gaW5oZSBWQUxV RVMgKCdlZS1jb2wxJywgJ2VlLWNvbDInLCBERUZBVUxULCAnZWUtY29sNCcpOworU0VMRUNU ICogRlJPTSBpbmhlOyAvKiBDb2x1bW5zIGFhLCBiYiwgeHggdmFsdWUgTlVMTCwgZWUgKi8K KyAgIGFhICAgIHwgICBiYiAgICB8IGVlIHwgICB4eCAgICAKKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLSstLS0tLS0tLS0KKyBlZS1jb2wxIHwgZWUtY29sMiB8ICAgIHwgZWUtY29sNAor KDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIGluaHg7IC8qIEVtcHR5IHNldCBzaW5jZSBMSUtF IGluaGVyaXRzIHN0cnVjdHVyZSBvbmx5ICovCisgeHggCistLS0tCisoMCByb3dzKQorCitT RUxFQ1QgKiBGUk9NIGN0bGI7IC8qIEhhcyBlZSBlbnRyeSAqLworICAgYWEgICAgfCAgIGJi ICAgIAorLS0tLS0tLS0tKy0tLS0tLS0tLQorIGVlLWNvbDEgfCBlZS1jb2wyCisoMSByb3cp CisKK1NFTEVDVCAqIEZST00gY3RsYTsgLyogSGFzIGVlIGVudHJ5ICovCisgICBhYSAgICAK Ky0tLS0tLS0tLQorIGVlLWNvbDEKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIGluaGYgKExJ S0UgaW5oeCwgTElLRSBpbmh4KTsgLyogVGhyb3cgZXJyb3IgKi8KK0VSUk9SOiAgY29sdW1u ICJ4eCIgc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlCitDUkVBVEUgVEFCTEUgaW5oZiAoTElL RSBpbmh4IElOQ0xVRElORyBERUZBVUxUUyBJTkNMVURJTkcgQ09OU1RSQUlOVFMpOworSU5T RVJUIElOVE8gaW5oZiBERUZBVUxUIFZBTFVFUzsKK1NFTEVDVCAqIEZST00gaW5oZjsgLyog U2luZ2xlIGVudHJ5IHdpdGggdmFsdWUgJ3RleHQnICovCisgIHh4ICAKKy0tLS0tLQorIHRl eHQKKygxIHJvdykKKworQUxURVIgVEFCTEUgaW5oeCBhZGQgY29uc3RyYWludCBmb28gQ0hF Q0sgKHh4ID0gJ3RleHQnKTsKK0FMVEVSIFRBQkxFIGluaHggQUREIFBSSU1BUlkgS0VZICh4 eCk7CitOT1RJQ0U6ICBBTFRFUiBUQUJMRSAvIEFERCBQUklNQVJZIEtFWSB3aWxsIGNyZWF0 ZSBpbXBsaWNpdCBpbmRleCAiaW5oeF9wa2V5IiBmb3IgdGFibGUgImluaHgiCitDUkVBVEUg VEFCTEUgaW5oZyAoTElLRSBpbmh4KTsgLyogRG9lc24ndCBjb3B5IGNvbnN0cmFpbnQgKi8K K0lOU0VSVCBJTlRPIGluaGcgVkFMVUVTICgnZm9vJyk7CitEUk9QIFRBQkxFIGluaGc7CitD UkVBVEUgVEFCTEUgaW5oZyAoeCB0ZXh0LCBMSUtFIGluaHggSU5DTFVESU5HIENPTlNUUkFJ TlRTLCB5IHRleHQpOyAvKiBDb3BpZXMgY29uc3RyYWludHMgKi8KK0lOU0VSVCBJTlRPIGlu aGcgVkFMVUVTICgneCcsICd0ZXh0JywgJ3knKTsgLyogU3VjY2VlZHMgKi8KK0lOU0VSVCBJ TlRPIGluaGcgVkFMVUVTICgneCcsICd0ZXh0JywgJ3knKTsgLyogU3VjY2VlZHMgLS0gVW5p cXVlIGNvbnN0cmFpbnRzIG5vdCBjb3BpZWQgKi8KK0lOU0VSVCBJTlRPIGluaGcgVkFMVUVT ICgneCcsICdmb28nLCAgJ3knKTsgIC8qIGZhaWxzIGR1ZSB0byBjb25zdHJhaW50ICovCitF UlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJpbmhnIiB2aW9sYXRlcyBjaGVjayBjb25z dHJhaW50ICJmb28iCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoeCwgZm9vLCB5 KS4KK1NFTEVDVCAqIEZST00gaW5oZzsgLyogVHdvIHJlY29yZHMgd2l0aCB0aHJlZSBjb2x1 bW5zIGluIG9yZGVyIHg9eCwgeHg9dGV4dCwgeT15ICovCisgeCB8ICB4eCAgfCB5IAorLS0t Ky0tLS0tLSstLS0KKyB4IHwgdGV4dCB8IHkKKyB4IHwgdGV4dCB8IHkKKygyIHJvd3MpCisK K0RST1AgVEFCTEUgaW5oZzsKK0NSRUFURSBUQUJMRSBpbmhnICh4IHRleHQsIExJS0UgaW5o eCBJTkNMVURJTkcgSU5ERVhFUywgeSB0ZXh0KTsgLyogY29waWVzIGluZGV4ZXMgKi8KK05P VElDRTogIENSRUFURSBUQUJMRSAvIFBSSU1BUlkgS0VZIHdpbGwgY3JlYXRlIGltcGxpY2l0 IGluZGV4ICJpbmhnX3BrZXkiIGZvciB0YWJsZSAiaW5oZyIKK0lOU0VSVCBJTlRPIGluaGcg VkFMVUVTICg1LCAxMCk7CitJTlNFUlQgSU5UTyBpbmhnIFZBTFVFUyAoMjAsIDEwKTsgLS0g c2hvdWxkIGZhaWwKK0VSUk9SOiAgZHVwbGljYXRlIGtleSB2YWx1ZSB2aW9sYXRlcyB1bmlx dWUgY29uc3RyYWludCAiaW5oZ19wa2V5IgorREVUQUlMOiAgS2V5ICh4eCk9KDEwKSBhbHJl YWR5IGV4aXN0cy4KK0RST1AgVEFCTEUgaW5oZzsKKy8qIE11bHRpcGxlIHByaW1hcnkga2V5 cyBjcmVhdGlvbiBzaG91bGQgZmFpbCAqLworQ1JFQVRFIFRBQkxFIGluaGcgKHggdGV4dCwg TElLRSBpbmh4IElOQ0xVRElORyBJTkRFWEVTLCBQUklNQVJZIEtFWSh4KSk7IC8qIGZhaWxz ICovCitFUlJPUjogIG11bHRpcGxlIHByaW1hcnkga2V5cyBmb3IgdGFibGUgImluaGciIGFy ZSBub3QgYWxsb3dlZAorQ1JFQVRFIFRBQkxFIGluaHogKHh4IHRleHQgREVGQVVMVCAndGV4 dCcsIHl5IGludCBVTklRVUUpOworTk9USUNFOiAgQ1JFQVRFIFRBQkxFIC8gVU5JUVVFIHdp bGwgY3JlYXRlIGltcGxpY2l0IGluZGV4ICJpbmh6X3l5X2tleSIgZm9yIHRhYmxlICJpbmh6 IgorQ1JFQVRFIFVOSVFVRSBJTkRFWCBpbmh6X3h4X2lkeCBvbiBpbmh6ICh4eCkgV0hFUkUg eHggPD4gJ3Rlc3QnOworLyogT2sgdG8gY3JlYXRlIG11bHRpcGxlIHVuaXF1ZSBpbmRleGVz ICovCitDUkVBVEUgVEFCTEUgaW5oZyAoeCB0ZXh0IFVOSVFVRSwgTElLRSBpbmh6IElOQ0xV RElORyBJTkRFWEVTKTsKK05PVElDRTogIENSRUFURSBUQUJMRSAvIFVOSVFVRSB3aWxsIGNy ZWF0ZSBpbXBsaWNpdCBpbmRleCAiaW5oZ194X2tleSIgZm9yIHRhYmxlICJpbmhnIgorTk9U SUNFOiAgQ1JFQVRFIFRBQkxFIC8gVU5JUVVFIHdpbGwgY3JlYXRlIGltcGxpY2l0IGluZGV4 ICJpbmhnX3l5X2tleSIgZm9yIHRhYmxlICJpbmhnIgorSU5TRVJUIElOVE8gaW5oZyAoeHgs IHl5LCB4KSBWQUxVRVMgKCd0ZXN0JywgNSwgMTApOworSU5TRVJUIElOVE8gaW5oZyAoeHgs IHl5LCB4KSBWQUxVRVMgKCd0ZXN0JywgMTAsIDE1KTsKK0lOU0VSVCBJTlRPIGluaGcgKHh4 LCB5eSwgeCkgVkFMVUVTICgnZm9vJywgMTAsIDE1KTsgLS0gc2hvdWxkIGZhaWwKK0VSUk9S OiAgZHVwbGljYXRlIGtleSB2YWx1ZSB2aW9sYXRlcyB1bmlxdWUgY29uc3RyYWludCAiaW5o Z194X2tleSIKK0RFVEFJTDogIEtleSAoeCk9KDE1KSBhbHJlYWR5IGV4aXN0cy4KK0RST1Ag VEFCTEUgaW5oZzsKK0RST1AgVEFCTEUgaW5oejsKKy0tIGluY2x1ZGluZyBzdG9yYWdlIGFu ZCBjb21tZW50cworQ1JFQVRFIFRBQkxFIGN0bHQxIChhIHRleHQgQ0hFQ0sgKGxlbmd0aChh KSA+IDIpIFBSSU1BUlkgS0VZLCBiIHRleHQpOworTk9USUNFOiAgQ1JFQVRFIFRBQkxFIC8g UFJJTUFSWSBLRVkgd2lsbCBjcmVhdGUgaW1wbGljaXQgaW5kZXggImN0bHQxX3BrZXkiIGZv ciB0YWJsZSAiY3RsdDEiCitDUkVBVEUgSU5ERVggY3RsdDFfYl9rZXkgT04gY3RsdDEgKGIp OworQ1JFQVRFIElOREVYIGN0bHQxX2ZuaWR4IE9OIGN0bHQxICgoYSB8fCBiKSk7CitDT01N RU5UIE9OIENPTFVNTiBjdGx0MS5hIElTICdBJzsKK0NPTU1FTlQgT04gQ09MVU1OIGN0bHQx LmIgSVMgJ0InOworQ09NTUVOVCBPTiBDT05TVFJBSU5UIGN0bHQxX2FfY2hlY2sgT04gY3Rs dDEgSVMgJ3QxX2FfY2hlY2snOworQ09NTUVOVCBPTiBJTkRFWCBjdGx0MV9wa2V5IElTICdp bmRleCBwa2V5JzsKK0NPTU1FTlQgT04gSU5ERVggY3RsdDFfYl9rZXkgSVMgJ2luZGV4IGJf a2V5JzsKK0FMVEVSIFRBQkxFIGN0bHQxIEFMVEVSIENPTFVNTiBhIFNFVCBTVE9SQUdFIE1B SU47CitDUkVBVEUgVEFCTEUgY3RsdDIgKGMgdGV4dCk7CitBTFRFUiBUQUJMRSBjdGx0MiBB TFRFUiBDT0xVTU4gYyBTRVQgU1RPUkFHRSBFWFRFUk5BTDsKK0NPTU1FTlQgT04gQ09MVU1O IGN0bHQyLmMgSVMgJ0MnOworQ1JFQVRFIFRBQkxFIGN0bHQzIChhIHRleHQgQ0hFQ0sgKGxl bmd0aChhKSA8IDUpLCBjIHRleHQpOworQUxURVIgVEFCTEUgY3RsdDMgQUxURVIgQ09MVU1O IGMgU0VUIFNUT1JBR0UgRVhURVJOQUw7CitBTFRFUiBUQUJMRSBjdGx0MyBBTFRFUiBDT0xV TU4gYSBTRVQgU1RPUkFHRSBNQUlOOworQ09NTUVOVCBPTiBDT0xVTU4gY3RsdDMuYSBJUyAn QTMnOworQ09NTUVOVCBPTiBDT0xVTU4gY3RsdDMuYyBJUyAnQyc7CitDT01NRU5UIE9OIENP TlNUUkFJTlQgY3RsdDNfYV9jaGVjayBPTiBjdGx0MyBJUyAndDNfYV9jaGVjayc7CitDUkVB VEUgVEFCTEUgY3RsdDQgKGEgdGV4dCwgYyB0ZXh0KTsKK0FMVEVSIFRBQkxFIGN0bHQ0IEFM VEVSIENPTFVNTiBjIFNFVCBTVE9SQUdFIEVYVEVSTkFMOworQ1JFQVRFIFRBQkxFIGN0bHQx Ml9zdG9yYWdlIChMSUtFIGN0bHQxIElOQ0xVRElORyBTVE9SQUdFLCBMSUtFIGN0bHQyIElO Q0xVRElORyBTVE9SQUdFKTsKK1xkKyBjdGx0MTJfc3RvcmFnZQorICAgICAgICAgICAgICAg ICAgIFRhYmxlICJwdWJsaWMuY3RsdDEyX3N0b3JhZ2UiCisgQ29sdW1uIHwgVHlwZSB8IE1v ZGlmaWVycyB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tCisgYSAgICAgIHwgdGV4dCB8IG5vdCBudWxsICB8IG1haW4gICAgIHwgICAg ICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCB8ICAgICAgICAgICB8IGV4dGVuZGVkIHwg ICAgICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCB8ICAgICAgICAgICB8IGV4dGVybmFs IHwgICAgICAgICAgICAgIHwgCitIYXMgT0lEczogbm8KKworQ1JFQVRFIFRBQkxFIGN0bHQx Ml9jb21tZW50cyAoTElLRSBjdGx0MSBJTkNMVURJTkcgQ09NTUVOVFMsIExJS0UgY3RsdDIg SU5DTFVESU5HIENPTU1FTlRTKTsKK1xkKyBjdGx0MTJfY29tbWVudHMKKyAgICAgICAgICAg ICAgICAgIFRhYmxlICJwdWJsaWMuY3RsdDEyX2NvbW1lbnRzIgorIENvbHVtbiB8IFR5cGUg fCBNb2RpZmllcnMgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAor LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQorIGEgICAgICB8IHRleHQgfCBub3QgbnVsbCAgfCBleHRlbmRlZCB8 ICAgICAgICAgICAgICB8IEEKKyBiICAgICAgfCB0ZXh0IHwgICAgICAgICAgIHwgZXh0ZW5k ZWQgfCAgICAgICAgICAgICAgfCBCCisgYyAgICAgIHwgdGV4dCB8ICAgICAgICAgICB8IGV4 dGVuZGVkIHwgICAgICAgICAgICAgIHwgQworSGFzIE9JRHM6IG5vCisKK0NSRUFURSBUQUJM RSBjdGx0MV9pbmggKExJS0UgY3RsdDEgSU5DTFVESU5HIENPTlNUUkFJTlRTIElOQ0xVRElO RyBDT01NRU5UUykgSU5IRVJJVFMgKGN0bHQxKTsKK05PVElDRTogIG1lcmdpbmcgY29sdW1u ICJhIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCitOT1RJQ0U6ICBtZXJnaW5nIGNvbHVt biAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgorTk9USUNFOiAgbWVyZ2luZyBjb25z dHJhaW50ICJjdGx0MV9hX2NoZWNrIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCitcZCsg Y3RsdDFfaW5oCisgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmN0bHQxX2lu aCIKKyBDb2x1bW4gfCBUeXBlIHwgTW9kaWZpZXJzIHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJn ZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCB0ZXh0IHwgbm90 IG51bGwgIHwgbWFpbiAgICAgfCAgICAgICAgICAgICAgfCBBCisgYiAgICAgIHwgdGV4dCB8 ICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgQgorQ2hlY2sgY29uc3Ry YWludHM6CisgICAgImN0bHQxX2FfY2hlY2siIENIRUNLIChsZW5ndGgoYSkgPiAyKQorSW5o ZXJpdHM6IGN0bHQxCitIYXMgT0lEczogbm8KKworU0VMRUNUIGRlc2NyaXB0aW9uIEZST00g cGdfZGVzY3JpcHRpb24sIHBnX2NvbnN0cmFpbnQgYyBXSEVSRSBjbGFzc29pZCA9ICdwZ19j b25zdHJhaW50Jzo6cmVnY2xhc3MgQU5EIG9iam9pZCA9IGMub2lkIEFORCBjLmNvbnJlbGlk ID0gJ2N0bHQxX2luaCc6OnJlZ2NsYXNzOworIGRlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0t LQorIHQxX2FfY2hlY2sKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIGN0bHQxM19pbmggKCkg SU5IRVJJVFMgKGN0bHQxLCBjdGx0Myk7CitOT1RJQ0U6ICBtZXJnaW5nIG11bHRpcGxlIGlu aGVyaXRlZCBkZWZpbml0aW9ucyBvZiBjb2x1bW4gImEiCitcZCsgY3RsdDEzX2luaAorICAg ICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5jdGx0MTNfaW5oIgorIENvbHVtbiB8 IFR5cGUgfCBNb2RpZmllcnMgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0 aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IHRleHQgfCBub3QgbnVsbCAgfCBtYWlu ICAgICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgfCAgICAgICAgICAgfCBl eHRlbmRlZCB8ICAgICAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgfCAgICAgICAgICAg fCBleHRlcm5hbCB8ICAgICAgICAgICAgICB8IAorQ2hlY2sgY29uc3RyYWludHM6CisgICAg ImN0bHQxX2FfY2hlY2siIENIRUNLIChsZW5ndGgoYSkgPiAyKQorICAgICJjdGx0M19hX2No ZWNrIiBDSEVDSyAobGVuZ3RoKGEpIDwgNSkKK0luaGVyaXRzOiBjdGx0MSwKKyAgICAgICAg ICBjdGx0MworSGFzIE9JRHM6IG5vCisKK0NSRUFURSBUQUJMRSBjdGx0MTNfbGlrZSAoTElL RSBjdGx0MyBJTkNMVURJTkcgQ09OU1RSQUlOVFMgSU5DTFVESU5HIENPTU1FTlRTIElOQ0xV RElORyBTVE9SQUdFKSBJTkhFUklUUyAoY3RsdDEpOworTk9USUNFOiAgbWVyZ2luZyBjb2x1 bW4gImEiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KK1xkKyBjdGx0MTNfbGlrZQorICAg ICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmN0bHQxM19saWtlIgorIENvbHVtbiB8 IFR5cGUgfCBNb2RpZmllcnMgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0 aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IHRleHQgfCBub3QgbnVsbCAgfCBtYWlu ICAgICB8ICAgICAgICAgICAgICB8IEEzCisgYiAgICAgIHwgdGV4dCB8ICAgICAgICAgICB8 IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCB8ICAgICAgICAg ICB8IGV4dGVybmFsIHwgICAgICAgICAgICAgIHwgQworQ2hlY2sgY29uc3RyYWludHM6Cisg ICAgImN0bHQxX2FfY2hlY2siIENIRUNLIChsZW5ndGgoYSkgPiAyKQorICAgICJjdGx0M19h X2NoZWNrIiBDSEVDSyAobGVuZ3RoKGEpIDwgNSkKK0luaGVyaXRzOiBjdGx0MQorSGFzIE9J RHM6IG5vCisKK1NFTEVDVCBkZXNjcmlwdGlvbiBGUk9NIHBnX2Rlc2NyaXB0aW9uLCBwZ19j b25zdHJhaW50IGMgV0hFUkUgY2xhc3NvaWQgPSAncGdfY29uc3RyYWludCc6OnJlZ2NsYXNz IEFORCBvYmpvaWQgPSBjLm9pZCBBTkQgYy5jb25yZWxpZCA9ICdjdGx0MTNfbGlrZSc6OnJl Z2NsYXNzOworIGRlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLQorIHQzX2FfY2hlY2sKKygx IHJvdykKKworQ1JFQVRFIFRBQkxFIGN0bHRfYWxsIChMSUtFIGN0bHQxIElOQ0xVRElORyBB TEwpOworTk9USUNFOiAgQ1JFQVRFIFRBQkxFIC8gUFJJTUFSWSBLRVkgd2lsbCBjcmVhdGUg aW1wbGljaXQgaW5kZXggImN0bHRfYWxsX3BrZXkiIGZvciB0YWJsZSAiY3RsdF9hbGwiCitc ZCsgY3RsdF9hbGwKKyAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLmN0bHRf YWxsIgorIENvbHVtbiB8IFR5cGUgfCBNb2RpZmllcnMgfCBTdG9yYWdlICB8IFN0YXRzIHRh cmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IHRleHQgfCBu b3QgbnVsbCAgfCBtYWluICAgICB8ICAgICAgICAgICAgICB8IEEKKyBiICAgICAgfCB0ZXh0 IHwgICAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgICAgfCBCCitJbmRleGVzOgor ICAgICJjdGx0X2FsbF9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGEpCisgICAgImN0bHRf YWxsX2JfaWR4IiBidHJlZSAoYikKKyAgICAiY3RsdF9hbGxfZXhwcl9pZHgiIGJ0cmVlICgo YSB8fCBiKSkKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJjdGx0MV9hX2NoZWNrIiBDSEVD SyAobGVuZ3RoKGEpID4gMikKK0hhcyBPSURzOiBubworCitTRUxFQ1QgYy5yZWxuYW1lLCBv YmpzdWJpZCwgZGVzY3JpcHRpb24gRlJPTSBwZ19kZXNjcmlwdGlvbiwgcGdfaW5kZXggaSwg cGdfY2xhc3MgYyBXSEVSRSBjbGFzc29pZCA9ICdwZ19jbGFzcyc6OnJlZ2NsYXNzIEFORCBv YmpvaWQgPSBpLmluZGV4cmVsaWQgQU5EIGMub2lkID0gaS5pbmRleHJlbGlkIEFORCBpLmlu ZHJlbGlkID0gJ2N0bHRfYWxsJzo6cmVnY2xhc3MgT1JERVIgQlkgYy5yZWxuYW1lLCBvYmpz dWJpZDsKKyAgICByZWxuYW1lICAgICB8IG9ianN1YmlkIHwgZGVzY3JpcHRpb24gCistLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGN0bHRfYWxsX2JfaWR4 IHwgICAgICAgIDAgfCBpbmRleCBiX2tleQorIGN0bHRfYWxsX3BrZXkgIHwgICAgICAgIDAg fCBpbmRleCBwa2V5CisoMiByb3dzKQorCitDUkVBVEUgVEFCTEUgaW5oX2Vycm9yMSAoKSBJ TkhFUklUUyAoY3RsdDEsIGN0bHQ0KTsKK05PVElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5o ZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYSIKK0VSUk9SOiAgaW5oZXJpdGVkIGNv bHVtbiAiYSIgaGFzIGEgc3RvcmFnZSBwYXJhbWV0ZXIgY29uZmxpY3QKK0RFVEFJTDogIE1B SU4gdmVyc3VzIEVYVEVOREVECitDUkVBVEUgVEFCTEUgaW5oX2Vycm9yMiAoTElLRSBjdGx0 NCBJTkNMVURJTkcgU1RPUkFHRSkgSU5IRVJJVFMgKGN0bHQxKTsKK05PVElDRTogIG1lcmdp bmcgY29sdW1uICJhIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCitFUlJPUjogIGNvbHVt biAiYSIgaGFzIGEgc3RvcmFnZSBwYXJhbWV0ZXIgY29uZmxpY3QKK0RFVEFJTDogIE1BSU4g dmVyc3VzIEVYVEVOREVECitEUk9QIFRBQkxFIGN0bHQxLCBjdGx0MiwgY3RsdDMsIGN0bHQ0 LCBjdGx0MTJfc3RvcmFnZSwgY3RsdDEyX2NvbW1lbnRzLCBjdGx0MV9pbmgsIGN0bHQxM19p bmgsIGN0bHQxM19saWtlLCBjdGx0X2FsbCwgY3RsYSwgY3RsYiBDQVNDQURFOworTk9USUNF OiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBpbmhlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2luaGVyaXQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9pbmhlcml0Lm91dAppbmRleCAzMDljMWRiLi43ZThmNTcyIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luaGVyaXQub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvaW5oZXJpdC5vdXQKQEAgLTU4Nyw5MyArNTg3LDYgQEAgQ1JFQVRFIFRB QkxFIG90aGVyY2hpbGQgKHRvbW9ycm93IGRhdGUgZGVmYXVsdCBub3coKSkKIE5PVElDRTog IG1lcmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAidG9t b3Jyb3ciCiBOT1RJQ0U6ICBtZXJnaW5nIGNvbHVtbiAidG9tb3Jyb3ciIHdpdGggaW5oZXJp dGVkIGRlZmluaXRpb24KIERST1AgVEFCTEUgZmlyc3RwYXJlbnQsIHNlY29uZHBhcmVudCwg am9pbnRjaGlsZCwgdGhpcmRwYXJlbnQsIG90aGVyY2hpbGQ7Ci0vKiBUZXN0IGluaGVyaXRh bmNlIG9mIHN0cnVjdHVyZSAoTElLRSkgKi8KLUNSRUFURSBUQUJMRSBpbmh4ICh4eCB0ZXh0 IERFRkFVTFQgJ3RleHQnKTsKLS8qCi0gKiBUZXN0IGRvdWJsZSBpbmhlcml0YW5jZQotICoK LSAqIEVuc3VyZSB0aGF0IGRlZmF1bHRzIGFyZSBOT1QgaW5jbHVkZWQgdW5sZXNzCi0gKiBJ TkNMVURJTkcgREVGQVVMVFMgaXMgc3BlY2lmaWVkCi0gKi8KLUNSRUFURSBUQUJMRSBpbmhl IChlZSB0ZXh0LCBMSUtFIGluaHgpIGluaGVyaXRzIChiKTsKLUlOU0VSVCBJTlRPIGluaGUg VkFMVUVTICgnZWUtY29sMScsICdlZS1jb2wyJywgREVGQVVMVCwgJ2VlLWNvbDQnKTsKLVNF TEVDVCAqIEZST00gaW5oZTsgLyogQ29sdW1ucyBhYSwgYmIsIHh4IHZhbHVlIE5VTEwsIGVl ICovCi0gICBhYSAgICB8ICAgYmIgICAgfCBlZSB8ICAgeHggICAgCi0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0rLS0tLS0tLS0tCi0gZWUtY29sMSB8IGVlLWNvbDIgfCAgICB8IGVlLWNv bDQKLSgxIHJvdykKLQotU0VMRUNUICogRlJPTSBpbmh4OyAvKiBFbXB0eSBzZXQgc2luY2Ug TElLRSBpbmhlcml0cyBzdHJ1Y3R1cmUgb25seSAqLwotIHh4IAotLS0tLQotKDAgcm93cykK LQotU0VMRUNUICogRlJPTSBiOyAvKiBIYXMgZWUgZW50cnkgKi8KLSAgIGFhICAgIHwgICBi YiAgICAKLS0tLS0tLS0tLSstLS0tLS0tLS0KLSBlZS1jb2wxIHwgZWUtY29sMgotKDEgcm93 KQotCi1TRUxFQ1QgKiBGUk9NIGE7IC8qIEhhcyBlZSBlbnRyeSAqLwotICAgYWEgICAgCi0t LS0tLS0tLS0KLSBlZS1jb2wxCi0oMSByb3cpCi0KLUNSRUFURSBUQUJMRSBpbmhmIChMSUtF IGluaHgsIExJS0UgaW5oeCk7IC8qIFRocm93IGVycm9yICovCi1FUlJPUjogIGNvbHVtbiAi eHgiIHNwZWNpZmllZCBtb3JlIHRoYW4gb25jZQotQ1JFQVRFIFRBQkxFIGluaGYgKExJS0Ug aW5oeCBJTkNMVURJTkcgREVGQVVMVFMgSU5DTFVESU5HIENPTlNUUkFJTlRTKTsKLUlOU0VS VCBJTlRPIGluaGYgREVGQVVMVCBWQUxVRVM7Ci1TRUxFQ1QgKiBGUk9NIGluaGY7IC8qIFNp bmdsZSBlbnRyeSB3aXRoIHZhbHVlICd0ZXh0JyAqLwotICB4eCAgCi0tLS0tLS0KLSB0ZXh0 Ci0oMSByb3cpCi0KLUFMVEVSIFRBQkxFIGluaHggYWRkIGNvbnN0cmFpbnQgZm9vIENIRUNL ICh4eCA9ICd0ZXh0Jyk7Ci1BTFRFUiBUQUJMRSBpbmh4IEFERCBQUklNQVJZIEtFWSAoeHgp OwotTk9USUNFOiAgQUxURVIgVEFCTEUgLyBBREQgUFJJTUFSWSBLRVkgd2lsbCBjcmVhdGUg aW1wbGljaXQgaW5kZXggImluaHhfcGtleSIgZm9yIHRhYmxlICJpbmh4IgotQ1JFQVRFIFRB QkxFIGluaGcgKExJS0UgaW5oeCk7IC8qIERvZXNuJ3QgY29weSBjb25zdHJhaW50ICovCi1J TlNFUlQgSU5UTyBpbmhnIFZBTFVFUyAoJ2ZvbycpOwotRFJPUCBUQUJMRSBpbmhnOwotQ1JF QVRFIFRBQkxFIGluaGcgKHggdGV4dCwgTElLRSBpbmh4IElOQ0xVRElORyBDT05TVFJBSU5U UywgeSB0ZXh0KTsgLyogQ29waWVzIGNvbnN0cmFpbnRzICovCi1JTlNFUlQgSU5UTyBpbmhn IFZBTFVFUyAoJ3gnLCAndGV4dCcsICd5Jyk7IC8qIFN1Y2NlZWRzICovCi1JTlNFUlQgSU5U TyBpbmhnIFZBTFVFUyAoJ3gnLCAndGV4dCcsICd5Jyk7IC8qIFN1Y2NlZWRzIC0tIFVuaXF1 ZSBjb25zdHJhaW50cyBub3QgY29waWVkICovCi1JTlNFUlQgSU5UTyBpbmhnIFZBTFVFUyAo J3gnLCAnZm9vJywgICd5Jyk7ICAvKiBmYWlscyBkdWUgdG8gY29uc3RyYWludCAqLwotRVJS T1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAiaW5oZyIgdmlvbGF0ZXMgY2hlY2sgY29uc3Ry YWludCAiZm9vIgotREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKHgsIGZvbywgeSku Ci1TRUxFQ1QgKiBGUk9NIGluaGc7IC8qIFR3byByZWNvcmRzIHdpdGggdGhyZWUgY29sdW1u cyBpbiBvcmRlciB4PXgsIHh4PXRleHQsIHk9eSAqLwotIHggfCAgeHggIHwgeSAKLS0tLSst LS0tLS0rLS0tCi0geCB8IHRleHQgfCB5Ci0geCB8IHRleHQgfCB5Ci0oMiByb3dzKQotCi1E Uk9QIFRBQkxFIGluaGc7Ci1DUkVBVEUgVEFCTEUgaW5oZyAoeCB0ZXh0LCBMSUtFIGluaHgg SU5DTFVESU5HIElOREVYRVMsIHkgdGV4dCk7IC8qIGNvcGllcyBpbmRleGVzICovCi1OT1RJ Q0U6ICBDUkVBVEUgVEFCTEUgLyBQUklNQVJZIEtFWSB3aWxsIGNyZWF0ZSBpbXBsaWNpdCBp bmRleCAiaW5oZ19wa2V5IiBmb3IgdGFibGUgImluaGciCi1JTlNFUlQgSU5UTyBpbmhnIFZB TFVFUyAoNSwgMTApOwotSU5TRVJUIElOVE8gaW5oZyBWQUxVRVMgKDIwLCAxMCk7IC0tIHNo b3VsZCBmYWlsCi1FUlJPUjogIGR1cGxpY2F0ZSBrZXkgdmFsdWUgdmlvbGF0ZXMgdW5pcXVl IGNvbnN0cmFpbnQgImluaGdfcGtleSIKLURFVEFJTDogIEtleSAoeHgpPSgxMCkgYWxyZWFk eSBleGlzdHMuCi1EUk9QIFRBQkxFIGluaGc7Ci0vKiBNdWx0aXBsZSBwcmltYXJ5IGtleXMg Y3JlYXRpb24gc2hvdWxkIGZhaWwgKi8KLUNSRUFURSBUQUJMRSBpbmhnICh4IHRleHQsIExJ S0UgaW5oeCBJTkNMVURJTkcgSU5ERVhFUywgUFJJTUFSWSBLRVkoeCkpOyAvKiBmYWlscyAq LwotRVJST1I6ICBtdWx0aXBsZSBwcmltYXJ5IGtleXMgZm9yIHRhYmxlICJpbmhnIiBhcmUg bm90IGFsbG93ZWQKLUNSRUFURSBUQUJMRSBpbmh6ICh4eCB0ZXh0IERFRkFVTFQgJ3RleHQn LCB5eSBpbnQgVU5JUVVFKTsKLU5PVElDRTogIENSRUFURSBUQUJMRSAvIFVOSVFVRSB3aWxs IGNyZWF0ZSBpbXBsaWNpdCBpbmRleCAiaW5oel95eV9rZXkiIGZvciB0YWJsZSAiaW5oeiIK LUNSRUFURSBVTklRVUUgSU5ERVggaW5oel94eF9pZHggb24gaW5oeiAoeHgpIFdIRVJFIHh4 IDw+ICd0ZXN0JzsKLS8qIE9rIHRvIGNyZWF0ZSBtdWx0aXBsZSB1bmlxdWUgaW5kZXhlcyAq LwotQ1JFQVRFIFRBQkxFIGluaGcgKHggdGV4dCBVTklRVUUsIExJS0UgaW5oeiBJTkNMVURJ TkcgSU5ERVhFUyk7Ci1OT1RJQ0U6ICBDUkVBVEUgVEFCTEUgLyBVTklRVUUgd2lsbCBjcmVh dGUgaW1wbGljaXQgaW5kZXggImluaGdfeF9rZXkiIGZvciB0YWJsZSAiaW5oZyIKLU5PVElD RTogIENSRUFURSBUQUJMRSAvIFVOSVFVRSB3aWxsIGNyZWF0ZSBpbXBsaWNpdCBpbmRleCAi aW5oZ195eV9rZXkiIGZvciB0YWJsZSAiaW5oZyIKLUlOU0VSVCBJTlRPIGluaGcgKHh4LCB5 eSwgeCkgVkFMVUVTICgndGVzdCcsIDUsIDEwKTsKLUlOU0VSVCBJTlRPIGluaGcgKHh4LCB5 eSwgeCkgVkFMVUVTICgndGVzdCcsIDEwLCAxNSk7Ci1JTlNFUlQgSU5UTyBpbmhnICh4eCwg eXksIHgpIFZBTFVFUyAoJ2ZvbycsIDEwLCAxNSk7IC0tIHNob3VsZCBmYWlsCi1FUlJPUjog IGR1cGxpY2F0ZSBrZXkgdmFsdWUgdmlvbGF0ZXMgdW5pcXVlIGNvbnN0cmFpbnQgImluaGdf eF9rZXkiCi1ERVRBSUw6ICBLZXkgKHgpPSgxNSkgYWxyZWFkeSBleGlzdHMuCi1EUk9QIFRB QkxFIGluaGc7Ci1EUk9QIFRBQkxFIGluaHo7CiAtLSBUZXN0IGNoYW5naW5nIHRoZSB0eXBl IG9mIGluaGVyaXRlZCBjb2x1bW5zCiBpbnNlcnQgaW50byBkIHZhbHVlcygndGVzdCcsJ29u ZScsJ3R3bycsJ3RocmVlJyk7CiBhbHRlciB0YWJsZSBhIGFsdGVyIGNvbHVtbiBhYSB0eXBl IGludGVnZXIgdXNpbmcgYml0X2xlbmd0aChhYSk7CkBAIC05NjMsMTcxICs4NzYsMzkgQEAg ZHJvcCB0YWJsZSBwcDEgY2FzY2FkZTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMiBv dGhlciBvYmplY3RzCiBERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGNjMQogZHJv cCBjYXNjYWRlcyB0byB0YWJsZSBjYzIKLS0tIGluY2x1ZGluZyBzdG9yYWdlIGFuZCBjb21t ZW50cwotQ1JFQVRFIFRBQkxFIHQxIChhIHRleHQgQ0hFQ0sgKGxlbmd0aChhKSA+IDIpIFBS SU1BUlkgS0VZLCBiIHRleHQpOwotTk9USUNFOiAgQ1JFQVRFIFRBQkxFIC8gUFJJTUFSWSBL RVkgd2lsbCBjcmVhdGUgaW1wbGljaXQgaW5kZXggInQxX3BrZXkiIGZvciB0YWJsZSAidDEi Ci1DUkVBVEUgSU5ERVggdDFfYl9rZXkgT04gdDEgKGIpOwotQ1JFQVRFIElOREVYIHQxX2Zu aWR4IE9OIHQxICgoYSB8fCBiKSk7Ci1DT01NRU5UIE9OIENPTFVNTiB0MS5hIElTICdBJzsK LUNPTU1FTlQgT04gQ09MVU1OIHQxLmIgSVMgJ0InOwotQ09NTUVOVCBPTiBDT05TVFJBSU5U IHQxX2FfY2hlY2sgT04gdDEgSVMgJ3QxX2FfY2hlY2snOwotQ09NTUVOVCBPTiBJTkRFWCB0 MV9wa2V5IElTICdpbmRleCBwa2V5JzsKLUNPTU1FTlQgT04gSU5ERVggdDFfYl9rZXkgSVMg J2luZGV4IGJfa2V5JzsKLUFMVEVSIFRBQkxFIHQxIEFMVEVSIENPTFVNTiBhIFNFVCBTVE9S QUdFIE1BSU47Ci1DUkVBVEUgVEFCTEUgdDIgKGMgdGV4dCk7Ci1BTFRFUiBUQUJMRSB0MiBB TFRFUiBDT0xVTU4gYyBTRVQgU1RPUkFHRSBFWFRFUk5BTDsKLUNPTU1FTlQgT04gQ09MVU1O IHQyLmMgSVMgJ0MnOwotQ1JFQVRFIFRBQkxFIHQzIChhIHRleHQgQ0hFQ0sgKGxlbmd0aChh KSA8IDUpLCBjIHRleHQpOwotQUxURVIgVEFCTEUgdDMgQUxURVIgQ09MVU1OIGMgU0VUIFNU T1JBR0UgRVhURVJOQUw7Ci1BTFRFUiBUQUJMRSB0MyBBTFRFUiBDT0xVTU4gYSBTRVQgU1RP UkFHRSBNQUlOOwotQ09NTUVOVCBPTiBDT0xVTU4gdDMuYSBJUyAnQTMnOwotQ09NTUVOVCBP TiBDT0xVTU4gdDMuYyBJUyAnQyc7Ci1DT01NRU5UIE9OIENPTlNUUkFJTlQgdDNfYV9jaGVj ayBPTiB0MyBJUyAndDNfYV9jaGVjayc7Ci1DUkVBVEUgVEFCTEUgdDQgKGEgdGV4dCwgYyB0 ZXh0KTsKLUFMVEVSIFRBQkxFIHQ0IEFMVEVSIENPTFVNTiBjIFNFVCBTVE9SQUdFIEVYVEVS TkFMOwotQ1JFQVRFIFRBQkxFIHQxMl9zdG9yYWdlIChMSUtFIHQxIElOQ0xVRElORyBTVE9S QUdFLCBMSUtFIHQyIElOQ0xVRElORyBTVE9SQUdFKTsKLVxkKyB0MTJfc3RvcmFnZQotICAg ICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnQxMl9zdG9yYWdlIgotIENvbHVtbiB8 IFR5cGUgfCBNb2RpZmllcnMgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0 aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQotIGEgICAgICB8IHRleHQgfCBub3QgbnVsbCAgfCBtYWlu ICAgICB8ICAgICAgICAgICAgICB8IAotIGIgICAgICB8IHRleHQgfCAgICAgICAgICAgfCBl eHRlbmRlZCB8ICAgICAgICAgICAgICB8IAotIGMgICAgICB8IHRleHQgfCAgICAgICAgICAg fCBleHRlcm5hbCB8ICAgICAgICAgICAgICB8IAotSGFzIE9JRHM6IG5vCi0KLUNSRUFURSBU QUJMRSB0MTJfY29tbWVudHMgKExJS0UgdDEgSU5DTFVESU5HIENPTU1FTlRTLCBMSUtFIHQy IElOQ0xVRElORyBDT01NRU5UUyk7Ci1cZCsgdDEyX2NvbW1lbnRzCi0gICAgICAgICAgICAg ICAgICAgIFRhYmxlICJwdWJsaWMudDEyX2NvbW1lbnRzIgotIENvbHVtbiB8IFR5cGUgfCBN b2RpZmllcnMgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAotLS0t LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLQotIGEgICAgICB8IHRleHQgfCBub3QgbnVsbCAgfCBleHRlbmRlZCB8ICAg ICAgICAgICAgICB8IEEKLSBiICAgICAgfCB0ZXh0IHwgICAgICAgICAgIHwgZXh0ZW5kZWQg fCAgICAgICAgICAgICAgfCBCCi0gYyAgICAgIHwgdGV4dCB8ICAgICAgICAgICB8IGV4dGVu ZGVkIHwgICAgICAgICAgICAgIHwgQwotSGFzIE9JRHM6IG5vCi0KLUNSRUFURSBUQUJMRSB0 MV9pbmggKExJS0UgdDEgSU5DTFVESU5HIENPTlNUUkFJTlRTIElOQ0xVRElORyBDT01NRU5U UykgSU5IRVJJVFMgKHQxKTsKLU5PVElDRTogIG1lcmdpbmcgY29sdW1uICJhIiB3aXRoIGlu aGVyaXRlZCBkZWZpbml0aW9uCi1OT1RJQ0U6ICBtZXJnaW5nIGNvbHVtbiAiYiIgd2l0aCBp bmhlcml0ZWQgZGVmaW5pdGlvbgotTk9USUNFOiAgbWVyZ2luZyBjb25zdHJhaW50ICJ0MV9h X2NoZWNrIiB3aXRoIGluaGVyaXRlZCBkZWZpbml0aW9uCi1cZCsgdDFfaW5oCi0gICAgICAg ICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudDFfaW5oIgotIENvbHVtbiB8IFR5cGUg fCBNb2RpZmllcnMgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAot LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQotIGEgICAgICB8IHRleHQgfCBub3QgbnVsbCAgfCBtYWluICAgICB8 ICAgICAgICAgICAgICB8IEEKLSBiICAgICAgfCB0ZXh0IHwgICAgICAgICAgIHwgZXh0ZW5k ZWQgfCAgICAgICAgICAgICAgfCBCCi1DaGVjayBjb25zdHJhaW50czoKLSAgICAidDFfYV9j aGVjayIgQ0hFQ0sgKGxlbmd0aChhKSA+IDIpCi1Jbmhlcml0czogdDEKLUhhcyBPSURzOiBu bwotCi1TRUxFQ1QgZGVzY3JpcHRpb24gRlJPTSBwZ19kZXNjcmlwdGlvbiwgcGdfY29uc3Ry YWludCBjIFdIRVJFIGNsYXNzb2lkID0gJ3BnX2NvbnN0cmFpbnQnOjpyZWdjbGFzcyBBTkQg b2Jqb2lkID0gYy5vaWQgQU5EIGMuY29ucmVsaWQgPSAndDFfaW5oJzo6cmVnY2xhc3M7Ci0g ZGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tLS0tCi0gdDFfYV9jaGVjawotKDEgcm93KQotCi1D UkVBVEUgVEFCTEUgdDEzX2luaCAoKSBJTkhFUklUUyAodDEsIHQzKTsKLU5PVElDRTogIG1l cmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYSIKLVxk KyB0MTNfaW5oCi0gICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50MTNfaW5o IgotIENvbHVtbiB8IFR5cGUgfCBNb2RpZmllcnMgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdl dCB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIGEgICAgICB8IHRleHQgfCBub3Qg bnVsbCAgfCBtYWluICAgICB8ICAgICAgICAgICAgICB8IAotIGIgICAgICB8IHRleHQgfCAg ICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAotIGMgICAgICB8IHRleHQg fCAgICAgICAgICAgfCBleHRlcm5hbCB8ICAgICAgICAgICAgICB8IAotQ2hlY2sgY29uc3Ry YWludHM6Ci0gICAgInQxX2FfY2hlY2siIENIRUNLIChsZW5ndGgoYSkgPiAyKQotICAgICJ0 M19hX2NoZWNrIiBDSEVDSyAobGVuZ3RoKGEpIDwgNSkKLUluaGVyaXRzOiB0MSwKLSAgICAg ICAgICB0MwotSGFzIE9JRHM6IG5vCi0KLUNSRUFURSBUQUJMRSB0MTNfbGlrZSAoTElLRSB0 MyBJTkNMVURJTkcgQ09OU1RSQUlOVFMgSU5DTFVESU5HIENPTU1FTlRTIElOQ0xVRElORyBT VE9SQUdFKSBJTkhFUklUUyAodDEpOwotTk9USUNFOiAgbWVyZ2luZyBjb2x1bW4gImEiIHdp dGggaW5oZXJpdGVkIGRlZmluaXRpb24KLVxkKyB0MTNfbGlrZQotICAgICAgICAgICAgICAg ICAgICAgIFRhYmxlICJwdWJsaWMudDEzX2xpa2UiCi0gQ29sdW1uIHwgVHlwZSB8IE1vZGlm aWVycyB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCi0tLS0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCi0gYSAgICAgIHwgdGV4dCB8IG5vdCBudWxsICB8IG1haW4gICAgIHwgICAgICAg ICAgICAgIHwgQTMKLSBiICAgICAgfCB0ZXh0IHwgICAgICAgICAgIHwgZXh0ZW5kZWQgfCAg ICAgICAgICAgICAgfCAKLSBjICAgICAgfCB0ZXh0IHwgICAgICAgICAgIHwgZXh0ZXJuYWwg fCAgICAgICAgICAgICAgfCBDCi1DaGVjayBjb25zdHJhaW50czoKLSAgICAidDFfYV9jaGVj ayIgQ0hFQ0sgKGxlbmd0aChhKSA+IDIpCi0gICAgInQzX2FfY2hlY2siIENIRUNLIChsZW5n dGgoYSkgPCA1KQotSW5oZXJpdHM6IHQxCi1IYXMgT0lEczogbm8KLQotU0VMRUNUIGRlc2Ny aXB0aW9uIEZST00gcGdfZGVzY3JpcHRpb24sIHBnX2NvbnN0cmFpbnQgYyBXSEVSRSBjbGFz c29pZCA9ICdwZ19jb25zdHJhaW50Jzo6cmVnY2xhc3MgQU5EIG9iam9pZCA9IGMub2lkIEFO RCBjLmNvbnJlbGlkID0gJ3QxM19saWtlJzo6cmVnY2xhc3M7Ci0gZGVzY3JpcHRpb24gCi0t LS0tLS0tLS0tLS0tCi0gdDNfYV9jaGVjawotKDEgcm93KQotCi1DUkVBVEUgVEFCTEUgdF9h bGwgKExJS0UgdDEgSU5DTFVESU5HIEFMTCk7Ci1OT1RJQ0U6ICBDUkVBVEUgVEFCTEUgLyBQ UklNQVJZIEtFWSB3aWxsIGNyZWF0ZSBpbXBsaWNpdCBpbmRleCAidF9hbGxfcGtleSIgZm9y IHRhYmxlICJ0X2FsbCIKLVxkKyB0X2FsbAotICAgICAgICAgICAgICAgICAgICAgICBUYWJs ZSAicHVibGljLnRfYWxsIgotIENvbHVtbiB8IFR5cGUgfCBNb2RpZmllcnMgfCBTdG9yYWdl ICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIGEgICAg ICB8IHRleHQgfCBub3QgbnVsbCAgfCBtYWluICAgICB8ICAgICAgICAgICAgICB8IEEKLSBi ICAgICAgfCB0ZXh0IHwgICAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgICAgfCBC Ci1JbmRleGVzOgotICAgICJ0X2FsbF9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGEpCi0g ICAgInRfYWxsX2JfaWR4IiBidHJlZSAoYikKLSAgICAidF9hbGxfZXhwcl9pZHgiIGJ0cmVl ICgoYSB8fCBiKSkKLUNoZWNrIGNvbnN0cmFpbnRzOgotICAgICJ0MV9hX2NoZWNrIiBDSEVD SyAobGVuZ3RoKGEpID4gMikKLUhhcyBPSURzOiBubwotCi1TRUxFQ1QgYy5yZWxuYW1lLCBv YmpzdWJpZCwgZGVzY3JpcHRpb24gRlJPTSBwZ19kZXNjcmlwdGlvbiwgcGdfaW5kZXggaSwg cGdfY2xhc3MgYyBXSEVSRSBjbGFzc29pZCA9ICdwZ19jbGFzcyc6OnJlZ2NsYXNzIEFORCBv YmpvaWQgPSBpLmluZGV4cmVsaWQgQU5EIGMub2lkID0gaS5pbmRleHJlbGlkIEFORCBpLmlu ZHJlbGlkID0gJ3RfYWxsJzo6cmVnY2xhc3MgT1JERVIgQlkgYy5yZWxuYW1lLCBvYmpzdWJp ZDsKLSAgIHJlbG5hbWUgICB8IG9ianN1YmlkIHwgZGVzY3JpcHRpb24gCi0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHRfYWxsX2JfaWR4IHwgICAgICAgIDAg fCBpbmRleCBiX2tleQotIHRfYWxsX3BrZXkgIHwgICAgICAgIDAgfCBpbmRleCBwa2V5Ci0o MiByb3dzKQotCi1DUkVBVEUgVEFCTEUgaW5oX2Vycm9yMSAoKSBJTkhFUklUUyAodDEsIHQ0 KTsKLU5PVElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9m IGNvbHVtbiAiYSIKLUVSUk9SOiAgaW5oZXJpdGVkIGNvbHVtbiAiYSIgaGFzIGEgc3RvcmFn ZSBwYXJhbWV0ZXIgY29uZmxpY3QKLURFVEFJTDogIE1BSU4gdmVyc3VzIEVYVEVOREVECi1D UkVBVEUgVEFCTEUgaW5oX2Vycm9yMiAoTElLRSB0NCBJTkNMVURJTkcgU1RPUkFHRSkgSU5I RVJJVFMgKHQxKTsKLU5PVElDRTogIG1lcmdpbmcgY29sdW1uICJhIiB3aXRoIGluaGVyaXRl ZCBkZWZpbml0aW9uCi1FUlJPUjogIGNvbHVtbiAiYSIgaGFzIGEgc3RvcmFnZSBwYXJhbWV0 ZXIgY29uZmxpY3QKLURFVEFJTDogIE1BSU4gdmVyc3VzIEVYVEVOREVECi1EUk9QIFRBQkxF IHQxLCB0MiwgdDMsIHQ0LCB0MTJfc3RvcmFnZSwgdDEyX2NvbW1lbnRzLCB0MV9pbmgsIHQx M19pbmgsIHQxM19saWtlLCB0X2FsbDsKIC0tIFRlc3QgZm9yIHJlbmFtaW5nIGluIHNpbXBs ZSBtdWx0aXBsZSBpbmhlcml0YW5jZQotQ1JFQVRFIFRBQkxFIHQxIChhIGludCwgYiBpbnQp OwotQ1JFQVRFIFRBQkxFIHMxIChiIGludCwgYyBpbnQpOwotQ1JFQVRFIFRBQkxFIHRzIChk IGludCkgSU5IRVJJVFMgKHQxLCBzMSk7CitDUkVBVEUgVEFCTEUgaW5odDEgKGEgaW50LCBi IGludCk7CitDUkVBVEUgVEFCTEUgaW5oczEgKGIgaW50LCBjIGludCk7CitDUkVBVEUgVEFC TEUgaW5odHMgKGQgaW50KSBJTkhFUklUUyAoaW5odDEsIGluaHMxKTsKIE5PVElDRTogIG1l cmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYiIKLUFM VEVSIFRBQkxFIHQxIFJFTkFNRSBhIFRPIGFhOwotQUxURVIgVEFCTEUgdDEgUkVOQU1FIGIg VE8gYmI7ICAgICAgICAgICAgICAgIC0tIHRvIGJlIGZhaWxlZAorQUxURVIgVEFCTEUgaW5o dDEgUkVOQU1FIGEgVE8gYWE7CitBTFRFUiBUQUJMRSBpbmh0MSBSRU5BTUUgYiBUTyBiYjsg ICAgICAgICAgICAgICAgLS0gdG8gYmUgZmFpbGVkCiBFUlJPUjogIGNhbm5vdCByZW5hbWUg aW5oZXJpdGVkIGNvbHVtbiAiYiIKLUFMVEVSIFRBQkxFIHRzIFJFTkFNRSBhYSBUTyBhYWE7 ICAgICAgLS0gdG8gYmUgZmFpbGVkCitBTFRFUiBUQUJMRSBpbmh0cyBSRU5BTUUgYWEgVE8g YWFhOyAgICAgIC0tIHRvIGJlIGZhaWxlZAogRVJST1I6ICBjYW5ub3QgcmVuYW1lIGluaGVy aXRlZCBjb2x1bW4gImFhIgotQUxURVIgVEFCTEUgdHMgUkVOQU1FIGQgVE8gZGQ7Ci1cZCsg dHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50cyIKK0FMVEVS IFRBQkxFIGluaHRzIFJFTkFNRSBkIFRPIGRkOworXGQrIGluaHRzCisgICAgICAgICAgICAg ICAgICAgICAgICBUYWJsZSAicHVibGljLmluaHRzIgogIENvbHVtbiB8ICBUeXBlICAgfCBN b2RpZmllcnMgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCiAtLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KICBhYSAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcGxhaW4gICB8 ICAgICAgICAgICAgICB8IAogIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBwbGFp biAgIHwgICAgICAgICAgICAgIHwgCiAgYyAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKICBkZCAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAotSW5oZXJpdHM6IHQxLAotICAgICAg ICAgIHMxCitJbmhlcml0czogaW5odDEsCisgICAgICAgICAgaW5oczEKIEhhcyBPSURzOiBu bwogCi1EUk9QIFRBQkxFIHRzOworRFJPUCBUQUJMRSBpbmh0czsKIC0tIFRlc3QgZm9yIHJl bmFtaW5nIGluIGRpYW1vbmQgaW5oZXJpdGFuY2UKLUNSRUFURSBUQUJMRSB0MiAoeCBpbnQp IElOSEVSSVRTICh0MSk7Ci1DUkVBVEUgVEFCTEUgdDMgKHkgaW50KSBJTkhFUklUUyAodDEp OwotQ1JFQVRFIFRBQkxFIHQ0ICh6IGludCkgSU5IRVJJVFMgKHQyLCB0Myk7CitDUkVBVEUg VEFCTEUgaW5odDIgKHggaW50KSBJTkhFUklUUyAoaW5odDEpOworQ1JFQVRFIFRBQkxFIGlu aHQzICh5IGludCkgSU5IRVJJVFMgKGluaHQxKTsKK0NSRUFURSBUQUJMRSBpbmh0NCAoeiBp bnQpIElOSEVSSVRTIChpbmh0MiwgaW5odDMpOwogTk9USUNFOiAgbWVyZ2luZyBtdWx0aXBs ZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2YgY29sdW1uICJhYSIKIE5PVElDRTogIG1lcmdp bmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYiIKLUFMVEVS IFRBQkxFIHQxIFJFTkFNRSBhYSBUTyBhYWE7Ci1cZCsgdDQKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgVGFibGUgInB1YmxpYy50NCIKK0FMVEVSIFRBQkxFIGluaHQxIFJFTkFNRSBh YSBUTyBhYWE7CitcZCsgaW5odDQKKyAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJw dWJsaWMuaW5odDQiCiAgQ29sdW1uIHwgIFR5cGUgICB8IE1vZGlmaWVycyB8IFN0b3JhZ2Ug fCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogIGFhYSAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCkBA IC0xMTM1LDE3ICs5MTYsMTcgQEAgQUxURVIgVEFCTEUgdDEgUkVOQU1FIGFhIFRPIGFhYTsK ICB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAg ICB8IAogIHkgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAg ICAgICAgIHwgCiAgeiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHBsYWluICAgfCAg ICAgICAgICAgICAgfCAKLUluaGVyaXRzOiB0MiwKLSAgICAgICAgICB0MworSW5oZXJpdHM6 IGluaHQyLAorICAgICAgICAgIGluaHQzCiBIYXMgT0lEczogbm8KIAotQ1JFQVRFIFRBQkxF IHRzIChkIGludCkgSU5IRVJJVFMgKHQyLCBzMSk7CitDUkVBVEUgVEFCTEUgaW5odHMgKGQg aW50KSBJTkhFUklUUyAoaW5odDIsIGluaHMxKTsKIE5PVElDRTogIG1lcmdpbmcgbXVsdGlw bGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYiIKLUFMVEVSIFRBQkxFIHQx IFJFTkFNRSBhYWEgVE8gYWFhYTsKLUFMVEVSIFRBQkxFIHQxIFJFTkFNRSBiIFRPIGJiOyAg ICAgICAgICAgICAgICAtLSB0byBiZSBmYWlsZWQKK0FMVEVSIFRBQkxFIGluaHQxIFJFTkFN RSBhYWEgVE8gYWFhYTsKK0FMVEVSIFRBQkxFIGluaHQxIFJFTkFNRSBiIFRPIGJiOyAgICAg ICAgICAgICAgICAtLSB0byBiZSBmYWlsZWQKIEVSUk9SOiAgY2Fubm90IHJlbmFtZSBpbmhl cml0ZWQgY29sdW1uICJiIgotXGQrIHRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFRh YmxlICJwdWJsaWMudHMiCitcZCsgaW5odHMKKyAgICAgICAgICAgICAgICAgICAgICAgIFRh YmxlICJwdWJsaWMuaW5odHMiCiAgQ29sdW1uIHwgIFR5cGUgICB8IE1vZGlmaWVycyB8IFN0 b3JhZ2UgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKIC0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQog IGFhYWEgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAg IHwgCkBAIC0xMTUzLDEyICs5MzQsMTIgQEAgRVJST1I6ICBjYW5ub3QgcmVuYW1lIGluaGVy aXRlZCBjb2x1bW4gImIiCiAgeCAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHBsYWlu ICAgfCAgICAgICAgICAgICAgfCAKICBjICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg cGxhaW4gICB8ICAgICAgICAgICAgICB8IAogIGQgICAgICB8IGludGVnZXIgfCAgICAgICAg ICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCi1Jbmhlcml0czogdDIsCi0gICAgICAg ICAgczEKK0luaGVyaXRzOiBpbmh0MiwKKyAgICAgICAgICBpbmhzMQogSGFzIE9JRHM6IG5v CiAKIFdJVEggUkVDVVJTSVZFIHIgQVMgKAotICBTRUxFQ1QgJ3QxJzo6cmVnY2xhc3MgQVMg aW5ocmVsaWQKKyAgU0VMRUNUICdpbmh0MSc6OnJlZ2NsYXNzIEFTIGluaHJlbGlkCiBVTklP TiBBTEwKICAgU0VMRUNUIGMuaW5ocmVsaWQgRlJPTSBwZ19pbmhlcml0cyBjLCByIFdIRVJF IHIuaW5ocmVsaWQgPSBjLmluaHBhcmVudAogKQpAQCAtMTE2OSwyNiArOTUwLDI2IEBAIFNF TEVDVCBhLmF0dHJlbGlkOjpyZWdjbGFzcywgYS5hdHRuYW1lLCBhLmF0dGluaGNvdW50LCBl LmV4cGVjdGVkCiAgIE9SREVSIEJZIGEuYXR0cmVsaWQ6OnJlZ2NsYXNzOjpuYW1lLCBhLmF0 dG51bTsKICBhdHRyZWxpZCB8IGF0dG5hbWUgfCBhdHRpbmhjb3VudCB8IGV4cGVjdGVkIAog LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gdDIgICAg ICAgfCBhYWFhICAgIHwgICAgICAgICAgIDEgfCAgICAgICAgMQotIHQyICAgICAgIHwgYiAg ICAgICB8ICAgICAgICAgICAxIHwgICAgICAgIDEKLSB0MyAgICAgICB8IGFhYWEgICAgfCAg ICAgICAgICAgMSB8ICAgICAgICAxCi0gdDMgICAgICAgfCBiICAgICAgIHwgICAgICAgICAg IDEgfCAgICAgICAgMQotIHQ0ICAgICAgIHwgYWFhYSAgICB8ICAgICAgICAgICAyIHwgICAg ICAgIDIKLSB0NCAgICAgICB8IGIgICAgICAgfCAgICAgICAgICAgMiB8ICAgICAgICAyCi0g dDQgICAgICAgfCB4ICAgICAgIHwgICAgICAgICAgIDEgfCAgICAgICAgMgotIHQ0ICAgICAg IHwgeSAgICAgICB8ICAgICAgICAgICAxIHwgICAgICAgIDIKLSB0cyAgICAgICB8IGFhYWEg ICAgfCAgICAgICAgICAgMSB8ICAgICAgICAxCi0gdHMgICAgICAgfCBiICAgICAgIHwgICAg ICAgICAgIDIgfCAgICAgICAgMQotIHRzICAgICAgIHwgeCAgICAgICB8ICAgICAgICAgICAx IHwgICAgICAgIDEKLSB0cyAgICAgICB8IGMgICAgICAgfCAgICAgICAgICAgMSB8ICAgICAg ICAxCisgaW5odDIgICAgfCBhYWFhICAgIHwgICAgICAgICAgIDEgfCAgICAgICAgMQorIGlu aHQyICAgIHwgYiAgICAgICB8ICAgICAgICAgICAxIHwgICAgICAgIDEKKyBpbmh0MyAgICB8 IGFhYWEgICAgfCAgICAgICAgICAgMSB8ICAgICAgICAxCisgaW5odDMgICAgfCBiICAgICAg IHwgICAgICAgICAgIDEgfCAgICAgICAgMQorIGluaHQ0ICAgIHwgYWFhYSAgICB8ICAgICAg ICAgICAyIHwgICAgICAgIDIKKyBpbmh0NCAgICB8IGIgICAgICAgfCAgICAgICAgICAgMiB8 ICAgICAgICAyCisgaW5odDQgICAgfCB4ICAgICAgIHwgICAgICAgICAgIDEgfCAgICAgICAg MgorIGluaHQ0ICAgIHwgeSAgICAgICB8ICAgICAgICAgICAxIHwgICAgICAgIDIKKyBpbmh0 cyAgICB8IGFhYWEgICAgfCAgICAgICAgICAgMSB8ICAgICAgICAxCisgaW5odHMgICAgfCBi ICAgICAgIHwgICAgICAgICAgIDIgfCAgICAgICAgMQorIGluaHRzICAgIHwgeCAgICAgICB8 ICAgICAgICAgICAxIHwgICAgICAgIDEKKyBpbmh0cyAgICB8IGMgICAgICAgfCAgICAgICAg ICAgMSB8ICAgICAgICAxCiAoMTIgcm93cykKIAotRFJPUCBUQUJMRSB0MSwgczEgQ0FTQ0FE RTsKK0RST1AgVEFCTEUgaW5odDEsIGluaHMxIENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNh c2NhZGVzIHRvIDQgb3RoZXIgb2JqZWN0cwotREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0 YWJsZSB0MgotZHJvcCBjYXNjYWRlcyB0byB0YWJsZSB0cwotZHJvcCBjYXNjYWRlcyB0byB0 YWJsZSB0MwotZHJvcCBjYXNjYWRlcyB0byB0YWJsZSB0NAorREVUQUlMOiAgZHJvcCBjYXNj YWRlcyB0byB0YWJsZSBpbmh0MgorZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBpbmh0cworZHJv cCBjYXNjYWRlcyB0byB0YWJsZSBpbmh0MworZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBpbmh0 NAogLS0KIC0tIFRlc3QgbWVyZ2UtYXBwZW5kIHBsYW5zIGZvciBpbmhlcml0YW5jZSB0cmVl cwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2FuaXR5X2No ZWNrLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2FuaXR5X2NoZWNrLm91dApp bmRleCAwNWFjMTFjLi43ZjU2MGQyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nhbml0eV9jaGVjay5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zYW5pdHlfY2hlY2sub3V0CkBAIC01NSw3ICs1NSw2IEBAIFNFTEVDVCByZWxuYW1lLCBy ZWxoYXNpbmRleAogIGhvYmJpZXNfciAgICAgICAgICAgICAgIHwgZgogIGloaWdod2F5ICAg ICAgICAgICAgICAgIHwgdAogIGluZXRfdGJsICAgICAgICAgICAgICAgIHwgZgotIGluaGUg ICAgICAgICAgICAgICAgICAgIHwgZgogIGluaGYgICAgICAgICAgICAgICAgICAgIHwgZgog IGluaHggICAgICAgICAgICAgICAgICAgIHwgdAogIGluc2VydF90YmwgICAgICAgICAgICAg IHwgZgpAQCAtMTY1LDcgKzE2NCw3IEBAIFNFTEVDVCByZWxuYW1lLCByZWxoYXNpbmRleAog IHRpbWV0el90YmwgICAgICAgICAgICAgIHwgZgogIHRpbnRlcnZhbF90YmwgICAgICAgICAg IHwgZgogIHZhcmNoYXJfdGJsICAgICAgICAgICAgIHwgZgotKDE1NCByb3dzKQorKDE1MyBy b3dzKQogCiAtLQogLS0gYW5vdGhlciBzYW5pdHkgY2hlY2s6IGV2ZXJ5IHN5c3RlbSBjYXRh bG9nIHRoYXQgaGFzIE9JRHMgc2hvdWxkIGhhdmUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvb3V0cHV0L21pc2Muc291cmNlIGIvc3JjL3Rlc3QvcmVncmVzcy9vdXRwdXQvbWlz Yy5zb3VyY2UKaW5kZXggMDNhYTEwZC4uMmY0ZDQ4MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9vdXRwdXQvbWlzYy5zb3VyY2UKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9vdXRw dXQvbWlzYy5zb3VyY2UKQEAgLTYyNyw3ICs2MjcsNiBAQCBTRUxFQ1QgdXNlcl9yZWxucygp IEFTIHVzZXJfcmVsbnMKICBpZXhpdAogIGloaWdod2F5CiAgaW5ldF90YmwKLSBpbmhlCiAg aW5oZgogIGluaHgKICBpbnNlcnRfc2VxCkBAIC02ODYsNyArNjg1LDcgQEAgU0VMRUNUIHVz ZXJfcmVsbnMoKSBBUyB1c2VyX3JlbG5zCiAgdG95ZW1wCiAgdmFyY2hhcl90YmwKICB4YWN0 dGVzdAotKDEwOCByb3dzKQorKDEwNyByb3dzKQogCiBTRUxFQ1QgbmFtZShlcXVpcG1lbnQo aG9iYnlfY29uc3RydWN0KHRleHQgJ3NreXdhbGtpbmcnLCB0ZXh0ICdtZXInKSkpOwogIG5h bWUgCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIv c3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCBiNDdiMDhiLi4zYmVk YWQwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTU5LDcgKzU5LDcg QEAgdGVzdDogY3JlYXRlX2luZGV4IGNyZWF0ZV92aWV3CiAjIC0tLS0tLS0tLS0KICMgQW5v dGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBjcmVh dGVfYWdncmVnYXRlIGNyZWF0ZV9jYXN0IGNvbnN0cmFpbnRzIHRyaWdnZXJzIGluaGVyaXQg dHlwZWRfdGFibGUgdmFjdXVtIGRyb3BfaWZfZXhpc3RzCit0ZXN0OiBjcmVhdGVfYWdncmVn YXRlIGNyZWF0ZV9jYXN0IGNvbnN0cmFpbnRzIHRyaWdnZXJzIGluaGVyaXQgY3JlYXRlX3Rh YmxlX2xpa2UgdHlwZWRfdGFibGUgdmFjdXVtIGRyb3BfaWZfZXhpc3RzCiAKICMgLS0tLS0t LS0tLQogIyBzYW5pdHlfY2hlY2sgZG9lcyBhIHZhY3V1bSwgYWZmZWN0aW5nIHRoZSBzb3J0 IG9yZGVyIG9mIFNFTEVDVCAqCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nlcmlh bF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc2VyaWFsX3NjaGVkdWxlCmluZGV4IDU3 ODA2YjUuLjBiNjQ1NjkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc2VyaWFsX3Nj aGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc2VyaWFsX3NjaGVkdWxlCkBAIC02MSw2 ICs2MSw3IEBAIHRlc3Q6IGNyZWF0ZV9jYXN0CiB0ZXN0OiBjb25zdHJhaW50cwogdGVzdDog dHJpZ2dlcnMKIHRlc3Q6IGluaGVyaXQKK3Rlc3Q6IGNyZWF0ZV90YWJsZV9saWtlCiB0ZXN0 OiB0eXBlZF90YWJsZQogdGVzdDogdmFjdXVtCiB0ZXN0OiBkcm9wX2lmX2V4aXN0cwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uuc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3RhYmxlX2xpa2Uuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4Y2VhNDQKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfdGFibGVfbGlrZS5zcWwKQEAgLTAsMCArMSw5 OSBAQAorLyogVGVzdCBpbmhlcml0YW5jZSBvZiBzdHJ1Y3R1cmUgKExJS0UpICovCitDUkVB VEUgVEFCTEUgaW5oeCAoeHggdGV4dCBERUZBVUxUICd0ZXh0Jyk7CisKKy8qCisgKiBUZXN0 IGRvdWJsZSBpbmhlcml0YW5jZQorICoKKyAqIEVuc3VyZSB0aGF0IGRlZmF1bHRzIGFyZSBO T1QgaW5jbHVkZWQgdW5sZXNzCisgKiBJTkNMVURJTkcgREVGQVVMVFMgaXMgc3BlY2lmaWVk CisgKi8KK0NSRUFURSBUQUJMRSBjdGxhIChhYSBURVhUKTsKK0NSRUFURSBUQUJMRSBjdGxi IChiYiBURVhUKSBJTkhFUklUUyAoY3RsYSk7CisKK0NSRUFURSBUQUJMRSBpbmhlIChlZSB0 ZXh0LCBMSUtFIGluaHgpIGluaGVyaXRzIChjdGxiKTsKK0lOU0VSVCBJTlRPIGluaGUgVkFM VUVTICgnZWUtY29sMScsICdlZS1jb2wyJywgREVGQVVMVCwgJ2VlLWNvbDQnKTsKK1NFTEVD VCAqIEZST00gaW5oZTsgLyogQ29sdW1ucyBhYSwgYmIsIHh4IHZhbHVlIE5VTEwsIGVlICov CitTRUxFQ1QgKiBGUk9NIGluaHg7IC8qIEVtcHR5IHNldCBzaW5jZSBMSUtFIGluaGVyaXRz IHN0cnVjdHVyZSBvbmx5ICovCitTRUxFQ1QgKiBGUk9NIGN0bGI7IC8qIEhhcyBlZSBlbnRy eSAqLworU0VMRUNUICogRlJPTSBjdGxhOyAvKiBIYXMgZWUgZW50cnkgKi8KKworQ1JFQVRF IFRBQkxFIGluaGYgKExJS0UgaW5oeCwgTElLRSBpbmh4KTsgLyogVGhyb3cgZXJyb3IgKi8K KworQ1JFQVRFIFRBQkxFIGluaGYgKExJS0UgaW5oeCBJTkNMVURJTkcgREVGQVVMVFMgSU5D TFVESU5HIENPTlNUUkFJTlRTKTsKK0lOU0VSVCBJTlRPIGluaGYgREVGQVVMVCBWQUxVRVM7 CitTRUxFQ1QgKiBGUk9NIGluaGY7IC8qIFNpbmdsZSBlbnRyeSB3aXRoIHZhbHVlICd0ZXh0 JyAqLworCitBTFRFUiBUQUJMRSBpbmh4IGFkZCBjb25zdHJhaW50IGZvbyBDSEVDSyAoeHgg PSAndGV4dCcpOworQUxURVIgVEFCTEUgaW5oeCBBREQgUFJJTUFSWSBLRVkgKHh4KTsKK0NS RUFURSBUQUJMRSBpbmhnIChMSUtFIGluaHgpOyAvKiBEb2Vzbid0IGNvcHkgY29uc3RyYWlu dCAqLworSU5TRVJUIElOVE8gaW5oZyBWQUxVRVMgKCdmb28nKTsKK0RST1AgVEFCTEUgaW5o ZzsKK0NSRUFURSBUQUJMRSBpbmhnICh4IHRleHQsIExJS0UgaW5oeCBJTkNMVURJTkcgQ09O U1RSQUlOVFMsIHkgdGV4dCk7IC8qIENvcGllcyBjb25zdHJhaW50cyAqLworSU5TRVJUIElO VE8gaW5oZyBWQUxVRVMgKCd4JywgJ3RleHQnLCAneScpOyAvKiBTdWNjZWVkcyAqLworSU5T RVJUIElOVE8gaW5oZyBWQUxVRVMgKCd4JywgJ3RleHQnLCAneScpOyAvKiBTdWNjZWVkcyAt LSBVbmlxdWUgY29uc3RyYWludHMgbm90IGNvcGllZCAqLworSU5TRVJUIElOVE8gaW5oZyBW QUxVRVMgKCd4JywgJ2ZvbycsICAneScpOyAgLyogZmFpbHMgZHVlIHRvIGNvbnN0cmFpbnQg Ki8KK1NFTEVDVCAqIEZST00gaW5oZzsgLyogVHdvIHJlY29yZHMgd2l0aCB0aHJlZSBjb2x1 bW5zIGluIG9yZGVyIHg9eCwgeHg9dGV4dCwgeT15ICovCitEUk9QIFRBQkxFIGluaGc7CisK K0NSRUFURSBUQUJMRSBpbmhnICh4IHRleHQsIExJS0UgaW5oeCBJTkNMVURJTkcgSU5ERVhF UywgeSB0ZXh0KTsgLyogY29waWVzIGluZGV4ZXMgKi8KK0lOU0VSVCBJTlRPIGluaGcgVkFM VUVTICg1LCAxMCk7CitJTlNFUlQgSU5UTyBpbmhnIFZBTFVFUyAoMjAsIDEwKTsgLS0gc2hv dWxkIGZhaWwKK0RST1AgVEFCTEUgaW5oZzsKKy8qIE11bHRpcGxlIHByaW1hcnkga2V5cyBj cmVhdGlvbiBzaG91bGQgZmFpbCAqLworQ1JFQVRFIFRBQkxFIGluaGcgKHggdGV4dCwgTElL RSBpbmh4IElOQ0xVRElORyBJTkRFWEVTLCBQUklNQVJZIEtFWSh4KSk7IC8qIGZhaWxzICov CitDUkVBVEUgVEFCTEUgaW5oeiAoeHggdGV4dCBERUZBVUxUICd0ZXh0JywgeXkgaW50IFVO SVFVRSk7CitDUkVBVEUgVU5JUVVFIElOREVYIGluaHpfeHhfaWR4IG9uIGluaHogKHh4KSBX SEVSRSB4eCA8PiAndGVzdCc7CisvKiBPayB0byBjcmVhdGUgbXVsdGlwbGUgdW5pcXVlIGlu ZGV4ZXMgKi8KK0NSRUFURSBUQUJMRSBpbmhnICh4IHRleHQgVU5JUVVFLCBMSUtFIGluaHog SU5DTFVESU5HIElOREVYRVMpOworSU5TRVJUIElOVE8gaW5oZyAoeHgsIHl5LCB4KSBWQUxV RVMgKCd0ZXN0JywgNSwgMTApOworSU5TRVJUIElOVE8gaW5oZyAoeHgsIHl5LCB4KSBWQUxV RVMgKCd0ZXN0JywgMTAsIDE1KTsKK0lOU0VSVCBJTlRPIGluaGcgKHh4LCB5eSwgeCkgVkFM VUVTICgnZm9vJywgMTAsIDE1KTsgLS0gc2hvdWxkIGZhaWwKK0RST1AgVEFCTEUgaW5oZzsK K0RST1AgVEFCTEUgaW5oejsKKworLS0gaW5jbHVkaW5nIHN0b3JhZ2UgYW5kIGNvbW1lbnRz CitDUkVBVEUgVEFCTEUgY3RsdDEgKGEgdGV4dCBDSEVDSyAobGVuZ3RoKGEpID4gMikgUFJJ TUFSWSBLRVksIGIgdGV4dCk7CitDUkVBVEUgSU5ERVggY3RsdDFfYl9rZXkgT04gY3RsdDEg KGIpOworQ1JFQVRFIElOREVYIGN0bHQxX2ZuaWR4IE9OIGN0bHQxICgoYSB8fCBiKSk7CitD T01NRU5UIE9OIENPTFVNTiBjdGx0MS5hIElTICdBJzsKK0NPTU1FTlQgT04gQ09MVU1OIGN0 bHQxLmIgSVMgJ0InOworQ09NTUVOVCBPTiBDT05TVFJBSU5UIGN0bHQxX2FfY2hlY2sgT04g Y3RsdDEgSVMgJ3QxX2FfY2hlY2snOworQ09NTUVOVCBPTiBJTkRFWCBjdGx0MV9wa2V5IElT ICdpbmRleCBwa2V5JzsKK0NPTU1FTlQgT04gSU5ERVggY3RsdDFfYl9rZXkgSVMgJ2luZGV4 IGJfa2V5JzsKK0FMVEVSIFRBQkxFIGN0bHQxIEFMVEVSIENPTFVNTiBhIFNFVCBTVE9SQUdF IE1BSU47CisKK0NSRUFURSBUQUJMRSBjdGx0MiAoYyB0ZXh0KTsKK0FMVEVSIFRBQkxFIGN0 bHQyIEFMVEVSIENPTFVNTiBjIFNFVCBTVE9SQUdFIEVYVEVSTkFMOworQ09NTUVOVCBPTiBD T0xVTU4gY3RsdDIuYyBJUyAnQyc7CisKK0NSRUFURSBUQUJMRSBjdGx0MyAoYSB0ZXh0IENI RUNLIChsZW5ndGgoYSkgPCA1KSwgYyB0ZXh0KTsKK0FMVEVSIFRBQkxFIGN0bHQzIEFMVEVS IENPTFVNTiBjIFNFVCBTVE9SQUdFIEVYVEVSTkFMOworQUxURVIgVEFCTEUgY3RsdDMgQUxU RVIgQ09MVU1OIGEgU0VUIFNUT1JBR0UgTUFJTjsKK0NPTU1FTlQgT04gQ09MVU1OIGN0bHQz LmEgSVMgJ0EzJzsKK0NPTU1FTlQgT04gQ09MVU1OIGN0bHQzLmMgSVMgJ0MnOworQ09NTUVO VCBPTiBDT05TVFJBSU5UIGN0bHQzX2FfY2hlY2sgT04gY3RsdDMgSVMgJ3QzX2FfY2hlY2sn OworCitDUkVBVEUgVEFCTEUgY3RsdDQgKGEgdGV4dCwgYyB0ZXh0KTsKK0FMVEVSIFRBQkxF IGN0bHQ0IEFMVEVSIENPTFVNTiBjIFNFVCBTVE9SQUdFIEVYVEVSTkFMOworCitDUkVBVEUg VEFCTEUgY3RsdDEyX3N0b3JhZ2UgKExJS0UgY3RsdDEgSU5DTFVESU5HIFNUT1JBR0UsIExJ S0UgY3RsdDIgSU5DTFVESU5HIFNUT1JBR0UpOworXGQrIGN0bHQxMl9zdG9yYWdlCitDUkVB VEUgVEFCTEUgY3RsdDEyX2NvbW1lbnRzIChMSUtFIGN0bHQxIElOQ0xVRElORyBDT01NRU5U UywgTElLRSBjdGx0MiBJTkNMVURJTkcgQ09NTUVOVFMpOworXGQrIGN0bHQxMl9jb21tZW50 cworQ1JFQVRFIFRBQkxFIGN0bHQxX2luaCAoTElLRSBjdGx0MSBJTkNMVURJTkcgQ09OU1RS QUlOVFMgSU5DTFVESU5HIENPTU1FTlRTKSBJTkhFUklUUyAoY3RsdDEpOworXGQrIGN0bHQx X2luaAorU0VMRUNUIGRlc2NyaXB0aW9uIEZST00gcGdfZGVzY3JpcHRpb24sIHBnX2NvbnN0 cmFpbnQgYyBXSEVSRSBjbGFzc29pZCA9ICdwZ19jb25zdHJhaW50Jzo6cmVnY2xhc3MgQU5E IG9iam9pZCA9IGMub2lkIEFORCBjLmNvbnJlbGlkID0gJ2N0bHQxX2luaCc6OnJlZ2NsYXNz OworQ1JFQVRFIFRBQkxFIGN0bHQxM19pbmggKCkgSU5IRVJJVFMgKGN0bHQxLCBjdGx0Myk7 CitcZCsgY3RsdDEzX2luaAorQ1JFQVRFIFRBQkxFIGN0bHQxM19saWtlIChMSUtFIGN0bHQz IElOQ0xVRElORyBDT05TVFJBSU5UUyBJTkNMVURJTkcgQ09NTUVOVFMgSU5DTFVESU5HIFNU T1JBR0UpIElOSEVSSVRTIChjdGx0MSk7CitcZCsgY3RsdDEzX2xpa2UKK1NFTEVDVCBkZXNj cmlwdGlvbiBGUk9NIHBnX2Rlc2NyaXB0aW9uLCBwZ19jb25zdHJhaW50IGMgV0hFUkUgY2xh c3NvaWQgPSAncGdfY29uc3RyYWludCc6OnJlZ2NsYXNzIEFORCBvYmpvaWQgPSBjLm9pZCBB TkQgYy5jb25yZWxpZCA9ICdjdGx0MTNfbGlrZSc6OnJlZ2NsYXNzOworCitDUkVBVEUgVEFC TEUgY3RsdF9hbGwgKExJS0UgY3RsdDEgSU5DTFVESU5HIEFMTCk7CitcZCsgY3RsdF9hbGwK K1NFTEVDVCBjLnJlbG5hbWUsIG9ianN1YmlkLCBkZXNjcmlwdGlvbiBGUk9NIHBnX2Rlc2Ny aXB0aW9uLCBwZ19pbmRleCBpLCBwZ19jbGFzcyBjIFdIRVJFIGNsYXNzb2lkID0gJ3BnX2Ns YXNzJzo6cmVnY2xhc3MgQU5EIG9iam9pZCA9IGkuaW5kZXhyZWxpZCBBTkQgYy5vaWQgPSBp LmluZGV4cmVsaWQgQU5EIGkuaW5kcmVsaWQgPSAnY3RsdF9hbGwnOjpyZWdjbGFzcyBPUkRF UiBCWSBjLnJlbG5hbWUsIG9ianN1YmlkOworCitDUkVBVEUgVEFCTEUgaW5oX2Vycm9yMSAo KSBJTkhFUklUUyAoY3RsdDEsIGN0bHQ0KTsKK0NSRUFURSBUQUJMRSBpbmhfZXJyb3IyIChM SUtFIGN0bHQ0IElOQ0xVRElORyBTVE9SQUdFKSBJTkhFUklUUyAoY3RsdDEpOworCitEUk9Q IFRBQkxFIGN0bHQxLCBjdGx0MiwgY3RsdDMsIGN0bHQ0LCBjdGx0MTJfc3RvcmFnZSwgY3Rs dDEyX2NvbW1lbnRzLCBjdGx0MV9pbmgsIGN0bHQxM19pbmgsIGN0bHQxM19saWtlLCBjdGx0 X2FsbCwgY3RsYSwgY3RsYiBDQVNDQURFOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvaW5oZXJpdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmhlcml0LnNxbApp bmRleCA2OTE0NDA0Li40ZGZiYzA3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9pbmhlcml0LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmhlcml0LnNxbApA QCAtMTMzLDU2ICsxMzMsNiBAQCBDUkVBVEUgVEFCTEUgb3RoZXJjaGlsZCAodG9tb3Jyb3cg ZGF0ZSBkZWZhdWx0IG5vdygpKQogCiBEUk9QIFRBQkxFIGZpcnN0cGFyZW50LCBzZWNvbmRw YXJlbnQsIGpvaW50Y2hpbGQsIHRoaXJkcGFyZW50LCBvdGhlcmNoaWxkOwogCi0vKiBUZXN0 IGluaGVyaXRhbmNlIG9mIHN0cnVjdHVyZSAoTElLRSkgKi8KLUNSRUFURSBUQUJMRSBpbmh4 ICh4eCB0ZXh0IERFRkFVTFQgJ3RleHQnKTsKLQotLyoKLSAqIFRlc3QgZG91YmxlIGluaGVy aXRhbmNlCi0gKgotICogRW5zdXJlIHRoYXQgZGVmYXVsdHMgYXJlIE5PVCBpbmNsdWRlZCB1 bmxlc3MKLSAqIElOQ0xVRElORyBERUZBVUxUUyBpcyBzcGVjaWZpZWQKLSAqLwotQ1JFQVRF IFRBQkxFIGluaGUgKGVlIHRleHQsIExJS0UgaW5oeCkgaW5oZXJpdHMgKGIpOwotSU5TRVJU IElOVE8gaW5oZSBWQUxVRVMgKCdlZS1jb2wxJywgJ2VlLWNvbDInLCBERUZBVUxULCAnZWUt Y29sNCcpOwotU0VMRUNUICogRlJPTSBpbmhlOyAvKiBDb2x1bW5zIGFhLCBiYiwgeHggdmFs dWUgTlVMTCwgZWUgKi8KLVNFTEVDVCAqIEZST00gaW5oeDsgLyogRW1wdHkgc2V0IHNpbmNl IExJS0UgaW5oZXJpdHMgc3RydWN0dXJlIG9ubHkgKi8KLVNFTEVDVCAqIEZST00gYjsgLyog SGFzIGVlIGVudHJ5ICovCi1TRUxFQ1QgKiBGUk9NIGE7IC8qIEhhcyBlZSBlbnRyeSAqLwot Ci1DUkVBVEUgVEFCTEUgaW5oZiAoTElLRSBpbmh4LCBMSUtFIGluaHgpOyAvKiBUaHJvdyBl cnJvciAqLwotCi1DUkVBVEUgVEFCTEUgaW5oZiAoTElLRSBpbmh4IElOQ0xVRElORyBERUZB VUxUUyBJTkNMVURJTkcgQ09OU1RSQUlOVFMpOwotSU5TRVJUIElOVE8gaW5oZiBERUZBVUxU IFZBTFVFUzsKLVNFTEVDVCAqIEZST00gaW5oZjsgLyogU2luZ2xlIGVudHJ5IHdpdGggdmFs dWUgJ3RleHQnICovCi0KLUFMVEVSIFRBQkxFIGluaHggYWRkIGNvbnN0cmFpbnQgZm9vIENI RUNLICh4eCA9ICd0ZXh0Jyk7Ci1BTFRFUiBUQUJMRSBpbmh4IEFERCBQUklNQVJZIEtFWSAo eHgpOwotQ1JFQVRFIFRBQkxFIGluaGcgKExJS0UgaW5oeCk7IC8qIERvZXNuJ3QgY29weSBj b25zdHJhaW50ICovCi1JTlNFUlQgSU5UTyBpbmhnIFZBTFVFUyAoJ2ZvbycpOwotRFJPUCBU QUJMRSBpbmhnOwotQ1JFQVRFIFRBQkxFIGluaGcgKHggdGV4dCwgTElLRSBpbmh4IElOQ0xV RElORyBDT05TVFJBSU5UUywgeSB0ZXh0KTsgLyogQ29waWVzIGNvbnN0cmFpbnRzICovCi1J TlNFUlQgSU5UTyBpbmhnIFZBTFVFUyAoJ3gnLCAndGV4dCcsICd5Jyk7IC8qIFN1Y2NlZWRz ICovCi1JTlNFUlQgSU5UTyBpbmhnIFZBTFVFUyAoJ3gnLCAndGV4dCcsICd5Jyk7IC8qIFN1 Y2NlZWRzIC0tIFVuaXF1ZSBjb25zdHJhaW50cyBub3QgY29waWVkICovCi1JTlNFUlQgSU5U TyBpbmhnIFZBTFVFUyAoJ3gnLCAnZm9vJywgICd5Jyk7ICAvKiBmYWlscyBkdWUgdG8gY29u c3RyYWludCAqLwotU0VMRUNUICogRlJPTSBpbmhnOyAvKiBUd28gcmVjb3JkcyB3aXRoIHRo cmVlIGNvbHVtbnMgaW4gb3JkZXIgeD14LCB4eD10ZXh0LCB5PXkgKi8KLURST1AgVEFCTEUg aW5oZzsKLQotQ1JFQVRFIFRBQkxFIGluaGcgKHggdGV4dCwgTElLRSBpbmh4IElOQ0xVRElO RyBJTkRFWEVTLCB5IHRleHQpOyAvKiBjb3BpZXMgaW5kZXhlcyAqLwotSU5TRVJUIElOVE8g aW5oZyBWQUxVRVMgKDUsIDEwKTsKLUlOU0VSVCBJTlRPIGluaGcgVkFMVUVTICgyMCwgMTAp OyAtLSBzaG91bGQgZmFpbAotRFJPUCBUQUJMRSBpbmhnOwotLyogTXVsdGlwbGUgcHJpbWFy eSBrZXlzIGNyZWF0aW9uIHNob3VsZCBmYWlsICovCi1DUkVBVEUgVEFCTEUgaW5oZyAoeCB0 ZXh0LCBMSUtFIGluaHggSU5DTFVESU5HIElOREVYRVMsIFBSSU1BUlkgS0VZKHgpKTsgLyog ZmFpbHMgKi8KLUNSRUFURSBUQUJMRSBpbmh6ICh4eCB0ZXh0IERFRkFVTFQgJ3RleHQnLCB5 eSBpbnQgVU5JUVVFKTsKLUNSRUFURSBVTklRVUUgSU5ERVggaW5oel94eF9pZHggb24gaW5o eiAoeHgpIFdIRVJFIHh4IDw+ICd0ZXN0JzsKLS8qIE9rIHRvIGNyZWF0ZSBtdWx0aXBsZSB1 bmlxdWUgaW5kZXhlcyAqLwotQ1JFQVRFIFRBQkxFIGluaGcgKHggdGV4dCBVTklRVUUsIExJ S0UgaW5oeiBJTkNMVURJTkcgSU5ERVhFUyk7Ci1JTlNFUlQgSU5UTyBpbmhnICh4eCwgeXks IHgpIFZBTFVFUyAoJ3Rlc3QnLCA1LCAxMCk7Ci1JTlNFUlQgSU5UTyBpbmhnICh4eCwgeXks IHgpIFZBTFVFUyAoJ3Rlc3QnLCAxMCwgMTUpOwotSU5TRVJUIElOVE8gaW5oZyAoeHgsIHl5 LCB4KSBWQUxVRVMgKCdmb28nLCAxMCwgMTUpOyAtLSBzaG91bGQgZmFpbAotRFJPUCBUQUJM RSBpbmhnOwotRFJPUCBUQUJMRSBpbmh6OwotCiAtLSBUZXN0IGNoYW5naW5nIHRoZSB0eXBl IG9mIGluaGVyaXRlZCBjb2x1bW5zCiBpbnNlcnQgaW50byBkIHZhbHVlcygndGVzdCcsJ29u ZScsJ3R3bycsJ3RocmVlJyk7CiBhbHRlciB0YWJsZSBhIGFsdGVyIGNvbHVtbiBhYSB0eXBl IGludGVnZXIgdXNpbmcgYml0X2xlbmd0aChhYSk7CkBAIC0zMDIsODEgKzI1MiwzNCBAQCBh bHRlciB0YWJsZSBwcDEgYWRkIGNvbHVtbiBhMiBpbnQgY2hlY2sgKGEyID4gMCk7CiBcZCBj YzIKIGRyb3AgdGFibGUgcHAxIGNhc2NhZGU7CiAKLS0tIGluY2x1ZGluZyBzdG9yYWdlIGFu ZCBjb21tZW50cwotQ1JFQVRFIFRBQkxFIHQxIChhIHRleHQgQ0hFQ0sgKGxlbmd0aChhKSA+ IDIpIFBSSU1BUlkgS0VZLCBiIHRleHQpOwotQ1JFQVRFIElOREVYIHQxX2Jfa2V5IE9OIHQx IChiKTsKLUNSRUFURSBJTkRFWCB0MV9mbmlkeCBPTiB0MSAoKGEgfHwgYikpOwotQ09NTUVO VCBPTiBDT0xVTU4gdDEuYSBJUyAnQSc7Ci1DT01NRU5UIE9OIENPTFVNTiB0MS5iIElTICdC JzsKLUNPTU1FTlQgT04gQ09OU1RSQUlOVCB0MV9hX2NoZWNrIE9OIHQxIElTICd0MV9hX2No ZWNrJzsKLUNPTU1FTlQgT04gSU5ERVggdDFfcGtleSBJUyAnaW5kZXggcGtleSc7Ci1DT01N RU5UIE9OIElOREVYIHQxX2Jfa2V5IElTICdpbmRleCBiX2tleSc7Ci1BTFRFUiBUQUJMRSB0 MSBBTFRFUiBDT0xVTU4gYSBTRVQgU1RPUkFHRSBNQUlOOwotCi1DUkVBVEUgVEFCTEUgdDIg KGMgdGV4dCk7Ci1BTFRFUiBUQUJMRSB0MiBBTFRFUiBDT0xVTU4gYyBTRVQgU1RPUkFHRSBF WFRFUk5BTDsKLUNPTU1FTlQgT04gQ09MVU1OIHQyLmMgSVMgJ0MnOwotCi1DUkVBVEUgVEFC TEUgdDMgKGEgdGV4dCBDSEVDSyAobGVuZ3RoKGEpIDwgNSksIGMgdGV4dCk7Ci1BTFRFUiBU QUJMRSB0MyBBTFRFUiBDT0xVTU4gYyBTRVQgU1RPUkFHRSBFWFRFUk5BTDsKLUFMVEVSIFRB QkxFIHQzIEFMVEVSIENPTFVNTiBhIFNFVCBTVE9SQUdFIE1BSU47Ci1DT01NRU5UIE9OIENP TFVNTiB0My5hIElTICdBMyc7Ci1DT01NRU5UIE9OIENPTFVNTiB0My5jIElTICdDJzsKLUNP TU1FTlQgT04gQ09OU1RSQUlOVCB0M19hX2NoZWNrIE9OIHQzIElTICd0M19hX2NoZWNrJzsK LQotQ1JFQVRFIFRBQkxFIHQ0IChhIHRleHQsIGMgdGV4dCk7Ci1BTFRFUiBUQUJMRSB0NCBB TFRFUiBDT0xVTU4gYyBTRVQgU1RPUkFHRSBFWFRFUk5BTDsKLQotQ1JFQVRFIFRBQkxFIHQx Ml9zdG9yYWdlIChMSUtFIHQxIElOQ0xVRElORyBTVE9SQUdFLCBMSUtFIHQyIElOQ0xVRElO RyBTVE9SQUdFKTsKLVxkKyB0MTJfc3RvcmFnZQotQ1JFQVRFIFRBQkxFIHQxMl9jb21tZW50 cyAoTElLRSB0MSBJTkNMVURJTkcgQ09NTUVOVFMsIExJS0UgdDIgSU5DTFVESU5HIENPTU1F TlRTKTsKLVxkKyB0MTJfY29tbWVudHMKLUNSRUFURSBUQUJMRSB0MV9pbmggKExJS0UgdDEg SU5DTFVESU5HIENPTlNUUkFJTlRTIElOQ0xVRElORyBDT01NRU5UUykgSU5IRVJJVFMgKHQx KTsKLVxkKyB0MV9pbmgKLVNFTEVDVCBkZXNjcmlwdGlvbiBGUk9NIHBnX2Rlc2NyaXB0aW9u LCBwZ19jb25zdHJhaW50IGMgV0hFUkUgY2xhc3NvaWQgPSAncGdfY29uc3RyYWludCc6OnJl Z2NsYXNzIEFORCBvYmpvaWQgPSBjLm9pZCBBTkQgYy5jb25yZWxpZCA9ICd0MV9pbmgnOjpy ZWdjbGFzczsKLUNSRUFURSBUQUJMRSB0MTNfaW5oICgpIElOSEVSSVRTICh0MSwgdDMpOwot XGQrIHQxM19pbmgKLUNSRUFURSBUQUJMRSB0MTNfbGlrZSAoTElLRSB0MyBJTkNMVURJTkcg Q09OU1RSQUlOVFMgSU5DTFVESU5HIENPTU1FTlRTIElOQ0xVRElORyBTVE9SQUdFKSBJTkhF UklUUyAodDEpOwotXGQrIHQxM19saWtlCi1TRUxFQ1QgZGVzY3JpcHRpb24gRlJPTSBwZ19k ZXNjcmlwdGlvbiwgcGdfY29uc3RyYWludCBjIFdIRVJFIGNsYXNzb2lkID0gJ3BnX2NvbnN0 cmFpbnQnOjpyZWdjbGFzcyBBTkQgb2Jqb2lkID0gYy5vaWQgQU5EIGMuY29ucmVsaWQgPSAn dDEzX2xpa2UnOjpyZWdjbGFzczsKLQotQ1JFQVRFIFRBQkxFIHRfYWxsIChMSUtFIHQxIElO Q0xVRElORyBBTEwpOwotXGQrIHRfYWxsCi1TRUxFQ1QgYy5yZWxuYW1lLCBvYmpzdWJpZCwg ZGVzY3JpcHRpb24gRlJPTSBwZ19kZXNjcmlwdGlvbiwgcGdfaW5kZXggaSwgcGdfY2xhc3Mg YyBXSEVSRSBjbGFzc29pZCA9ICdwZ19jbGFzcyc6OnJlZ2NsYXNzIEFORCBvYmpvaWQgPSBp LmluZGV4cmVsaWQgQU5EIGMub2lkID0gaS5pbmRleHJlbGlkIEFORCBpLmluZHJlbGlkID0g J3RfYWxsJzo6cmVnY2xhc3MgT1JERVIgQlkgYy5yZWxuYW1lLCBvYmpzdWJpZDsKLQotQ1JF QVRFIFRBQkxFIGluaF9lcnJvcjEgKCkgSU5IRVJJVFMgKHQxLCB0NCk7Ci1DUkVBVEUgVEFC TEUgaW5oX2Vycm9yMiAoTElLRSB0NCBJTkNMVURJTkcgU1RPUkFHRSkgSU5IRVJJVFMgKHQx KTsKLQotRFJPUCBUQUJMRSB0MSwgdDIsIHQzLCB0NCwgdDEyX3N0b3JhZ2UsIHQxMl9jb21t ZW50cywgdDFfaW5oLCB0MTNfaW5oLCB0MTNfbGlrZSwgdF9hbGw7Ci0KIC0tIFRlc3QgZm9y IHJlbmFtaW5nIGluIHNpbXBsZSBtdWx0aXBsZSBpbmhlcml0YW5jZQotQ1JFQVRFIFRBQkxF IHQxIChhIGludCwgYiBpbnQpOwotQ1JFQVRFIFRBQkxFIHMxIChiIGludCwgYyBpbnQpOwot Q1JFQVRFIFRBQkxFIHRzIChkIGludCkgSU5IRVJJVFMgKHQxLCBzMSk7CitDUkVBVEUgVEFC TEUgaW5odDEgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVEFCTEUgaW5oczEgKGIgaW50LCBj IGludCk7CitDUkVBVEUgVEFCTEUgaW5odHMgKGQgaW50KSBJTkhFUklUUyAoaW5odDEsIGlu aHMxKTsKIAotQUxURVIgVEFCTEUgdDEgUkVOQU1FIGEgVE8gYWE7Ci1BTFRFUiBUQUJMRSB0 MSBSRU5BTUUgYiBUTyBiYjsgICAgICAgICAgICAgICAgLS0gdG8gYmUgZmFpbGVkCi1BTFRF UiBUQUJMRSB0cyBSRU5BTUUgYWEgVE8gYWFhOyAgICAgIC0tIHRvIGJlIGZhaWxlZAotQUxU RVIgVEFCTEUgdHMgUkVOQU1FIGQgVE8gZGQ7Ci1cZCsgdHMKK0FMVEVSIFRBQkxFIGluaHQx IFJFTkFNRSBhIFRPIGFhOworQUxURVIgVEFCTEUgaW5odDEgUkVOQU1FIGIgVE8gYmI7ICAg ICAgICAgICAgICAgIC0tIHRvIGJlIGZhaWxlZAorQUxURVIgVEFCTEUgaW5odHMgUkVOQU1F IGFhIFRPIGFhYTsgICAgICAtLSB0byBiZSBmYWlsZWQKK0FMVEVSIFRBQkxFIGluaHRzIFJF TkFNRSBkIFRPIGRkOworXGQrIGluaHRzCiAKLURST1AgVEFCTEUgdHM7CitEUk9QIFRBQkxF IGluaHRzOwogCiAtLSBUZXN0IGZvciByZW5hbWluZyBpbiBkaWFtb25kIGluaGVyaXRhbmNl Ci1DUkVBVEUgVEFCTEUgdDIgKHggaW50KSBJTkhFUklUUyAodDEpOwotQ1JFQVRFIFRBQkxF IHQzICh5IGludCkgSU5IRVJJVFMgKHQxKTsKLUNSRUFURSBUQUJMRSB0NCAoeiBpbnQpIElO SEVSSVRTICh0MiwgdDMpOworQ1JFQVRFIFRBQkxFIGluaHQyICh4IGludCkgSU5IRVJJVFMg KGluaHQxKTsKK0NSRUFURSBUQUJMRSBpbmh0MyAoeSBpbnQpIElOSEVSSVRTIChpbmh0MSk7 CitDUkVBVEUgVEFCTEUgaW5odDQgKHogaW50KSBJTkhFUklUUyAoaW5odDIsIGluaHQzKTsK IAotQUxURVIgVEFCTEUgdDEgUkVOQU1FIGFhIFRPIGFhYTsKLVxkKyB0NAorQUxURVIgVEFC TEUgaW5odDEgUkVOQU1FIGFhIFRPIGFhYTsKK1xkKyBpbmh0NAogCi1DUkVBVEUgVEFCTEUg dHMgKGQgaW50KSBJTkhFUklUUyAodDIsIHMxKTsKLUFMVEVSIFRBQkxFIHQxIFJFTkFNRSBh YWEgVE8gYWFhYTsKLUFMVEVSIFRBQkxFIHQxIFJFTkFNRSBiIFRPIGJiOyAgICAgICAgICAg ICAgICAtLSB0byBiZSBmYWlsZWQKLVxkKyB0cworQ1JFQVRFIFRBQkxFIGluaHRzIChkIGlu dCkgSU5IRVJJVFMgKGluaHQyLCBpbmhzMSk7CitBTFRFUiBUQUJMRSBpbmh0MSBSRU5BTUUg YWFhIFRPIGFhYWE7CitBTFRFUiBUQUJMRSBpbmh0MSBSRU5BTUUgYiBUTyBiYjsgICAgICAg ICAgICAgICAgLS0gdG8gYmUgZmFpbGVkCitcZCsgaW5odHMKIAogV0lUSCBSRUNVUlNJVkUg ciBBUyAoCi0gIFNFTEVDVCAndDEnOjpyZWdjbGFzcyBBUyBpbmhyZWxpZAorICBTRUxFQ1Qg J2luaHQxJzo6cmVnY2xhc3MgQVMgaW5ocmVsaWQKIFVOSU9OIEFMTAogICBTRUxFQ1QgYy5p bmhyZWxpZCBGUk9NIHBnX2luaGVyaXRzIGMsIHIgV0hFUkUgci5pbmhyZWxpZCA9IGMuaW5o cGFyZW50CiApCkBAIC0zODYsNyArMjg5LDcgQEAgU0VMRUNUIGEuYXR0cmVsaWQ6OnJlZ2Ns YXNzLCBhLmF0dG5hbWUsIGEuYXR0aW5oY291bnQsIGUuZXhwZWN0ZWQKICAgSk9JTiBwZ19h dHRyaWJ1dGUgYSBPTiBlLmluaHJlbGlkID0gYS5hdHRyZWxpZCBXSEVSRSBOT1QgYXR0aXNs b2NhbAogICBPUkRFUiBCWSBhLmF0dHJlbGlkOjpyZWdjbGFzczo6bmFtZSwgYS5hdHRudW07 CiAKLURST1AgVEFCTEUgdDEsIHMxIENBU0NBREU7CitEUk9QIFRBQkxFIGluaHQxLCBpbmhz MSBDQVNDQURFOwogCiAtLQogLS0gVGVzdCBtZXJnZS1hcHBlbmQgcGxhbnMgZm9yIGluaGVy aXRhbmNlIHRyZWVzCgpjb21taXQgMGE0MWU4NjU4NDViZmE1ZDdhYWZjYzVmZTAwMGRhZmEy NjU3M2ZlZgpBdXRob3I6IFRvbSBMYW5lIDx0Z2xAc3NzLnBnaC5wYS51cz4KRGF0ZTogICBT YXQgSmFuIDcgMTU6Mzg6NTIgMjAxMiAtMDUwMAoKICAgIFVzZSBfX3N5bmNfbG9ja190ZXN0 X2FuZF9zZXQoKSBmb3Igc3BpbmxvY2tzIG9uIEFSTSwgaWYgYXZhaWxhYmxlLgogICAgCiAg ICBIaXN0b3JpY2FsbHkgd2UndmUgdXNlZCB0aGUgU1dQQiBpbnN0cnVjdGlvbiBmb3IgVEFT KCkgb24gQVJNLCBidXQgdGhpcwogICAgaXMgZGVwcmVjYXRlZCBhbmQgbm90IGF2YWlsYWJs ZSBvbiBBUk12NiBhbmQgbGF0ZXIuICBJbnN0ZWFkLCBtYWtlIHVzZQogICAgb2YgYSBHQ0Mg YnVpbHRpbiBpZiBhdmFpbGFibGUuICBXZSdsbCBzdGlsbCBmYWxsIGJhY2sgdG8gU1dQQiBp ZiBub3QsCiAgICBzbyBhcyBub3QgdG8gYnJlYWsgZXhpc3RpbmcgcG9ydHMgdXNpbmcgb2xk ZXIgR0NDIHZlcnNpb25zLgogICAgCiAgICBFdmVudHVhbGx5IHdlIG1pZ2h0IHdhbnQgdG8g dHJ5IHVzaW5nIF9fc3luY19sb2NrX3Rlc3RfYW5kX3NldCgpIG9uIHNvbWUKICAgIG90aGVy IGFyY2hpdGVjdHVyZXMgdG9vLCBidXQgZm9yIG5vdyB0aGF0IHNlZW1zIHRvIHByZXNlbnQg b25seSByaXNrIGFuZAogICAgbm90IHJld2FyZC4KICAgIAogICAgQmFjay1wYXRjaCB0byBh bGwgc3VwcG9ydGVkIHZlcnNpb25zLCBzaW5jZSBwZW9wbGUgbWlnaHQgd2FudCB0byB1c2Ug YW55CiAgICBvZiB0aGVtIG9uIG1vcmUgcmVjZW50IEFSTSBjaGlwcy4KICAgIAogICAgTWFy dGluIFBpdHQKCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggNWNi M2Q5Yi4uYWY0ZjlhMyAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpA QCAtMjI1OTYsNiArMjI1OTYsNzEgQEAgZmkKIGRvbmUKIAogCit7ICRhc19lY2hvICIkYXNf bWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGJ1aWx0aW4gbG9ja2luZyBmdW5jdGlvbnMiID4m NQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGJ1aWx0aW4gbG9ja2luZyBmdW5jdGlvbnMu Li4gIiA+JjY7IH0KK2lmIHRlc3QgIiR7cGdhY19jdl9nY2NfaW50X2F0b21pY3Mrc2V0fSIg PSBzZXQ7IHRoZW4KKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2F0 ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VP RgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4k YWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAo KQoreworaW50IGxvY2sgPSAwOworICAgX19zeW5jX2xvY2tfdGVzdF9hbmRfc2V0KCZsb2Nr LCAxKTsKKyAgIF9fc3luY19sb2NrX3JlbGVhc2UoJmxvY2spOworICA7CisgIHJldHVybiAw OworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4 ZWV4dAoraWYgeyAoYWNfdHJ5PSIkYWNfbGluayIKK2Nhc2UgIigoJGFjX3RyeSIgaW4KKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CisgICopIGFjX3Ry eV9lY2hvPSRhY190cnk7OworZXNhYworZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRM SU5FTk86ICRhY190cnlfZWNob1wiIgorJGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQor ICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAg Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29u ZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgICRhc19lY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9 ICYmIHsKKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8CisJIHRlc3QgISAtcyBj b25mdGVzdC5lcnIKKyAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0ICYm IHsKKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKKwkgJGFzX3Rlc3RfeCBj b25mdGVzdCRhY19leGVleHQKKyAgICAgICB9OyB0aGVuCisgIHBnYWNfY3ZfZ2NjX2ludF9h dG9taWNzPSJ5ZXMiCitlbHNlCisgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFt IHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCisJcGdh Y19jdl9nY2NfaW50X2F0b21pY3M9Im5vIgorZmkKKworcm0gLXJmIGNvbmZ0ZXN0LmRTWU0K K3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Rf aXBhOF9jb25mdGVzdC5vbyBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAorZmkKK3sgJGFzX2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRwZ2Fj X2N2X2djY19pbnRfYXRvbWljcyIgPiY1CiskYXNfZWNobyAiJHBnYWNfY3ZfZ2NjX2ludF9h dG9taWNzIiA+JjY7IH0KK2lmIHRlc3QgeCIkcGdhY19jdl9nY2NfaW50X2F0b21pY3MiID0g eCJ5ZXMiOyB0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIEhB VkVfR0NDX0lOVF9BVE9NSUNTIDEKK19BQ0VPRgorCitmaQorCiAKICMKICMgUHRocmVhZHMK ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgppbmRleCAzZjE5NWE2 Li45Y2FkNDM2IDEwMDY0NAotLS0gYS9jb25maWd1cmUuaW4KKysrIGIvY29uZmlndXJlLmlu CkBAIC0xNDU0LDYgKzE0NTQsMTcgQEAgZmkKIEFDX0NIRUNLX0ZVTkNTKFtzdHJ0b2xsIHN0 cnRvcV0sIFticmVha10pCiBBQ19DSEVDS19GVU5DUyhbc3RydG91bGwgc3RydG91cV0sIFti cmVha10pCiAKK0FDX0NBQ0hFX0NIRUNLKFtmb3IgYnVpbHRpbiBsb2NraW5nIGZ1bmN0aW9u c10sIHBnYWNfY3ZfZ2NjX2ludF9hdG9taWNzLAorW0FDX1RSWV9MSU5LKFtdLAorICBbaW50 IGxvY2sgPSAwOworICAgX19zeW5jX2xvY2tfdGVzdF9hbmRfc2V0KCZsb2NrLCAxKTsKKyAg IF9fc3luY19sb2NrX3JlbGVhc2UoJmxvY2spO10sCisgIFtwZ2FjX2N2X2djY19pbnRfYXRv bWljcz0ieWVzIl0sCisgIFtwZ2FjX2N2X2djY19pbnRfYXRvbWljcz0ibm8iXSldKQoraWYg dGVzdCB4IiRwZ2FjX2N2X2djY19pbnRfYXRvbWljcyIgPSB4InllcyI7IHRoZW4KKyAgQUNf REVGSU5FKEhBVkVfR0NDX0lOVF9BVE9NSUNTLCAxLCBbRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgX19zeW5jX2xvY2tfdGVzdF9hbmRfc2V0KGludCAqKSBhbmQgZnJpZW5kcy5dKQorZmkK KwogCiAjCiAjIFB0aHJlYWRzCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ19jb25maWcu aC5pbiBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCmluZGV4IGUxYjdmZWEuLmRiODRm NDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCisrKyBiL3NyYy9p bmNsdWRlL3BnX2NvbmZpZy5oLmluCkBAIC0xNzksNiArMTc5LDkgQEAKIC8qIERlZmluZSB0 byAxIGlmIHlvdXIgY29tcGlsZXIgdW5kZXJzdGFuZHMgX19GVU5DVElPTl9fLiAqLwogI3Vu ZGVmIEhBVkVfRlVOQ05BTUVfX0ZVTkNUSU9OCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIF9fc3luY19sb2NrX3Rlc3RfYW5kX3NldChpbnQgKikgYW5kIGZyaWVuZHMuICovCisj dW5kZWYgSEFWRV9HQ0NfSU5UX0FUT01JQ1MKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIGBnZXRhZGRyaW5mbycgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9HRVRBRERS SU5GTwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oIGIvc3Jj L2luY2x1ZGUvc3RvcmFnZS9zX2xvY2suaAppbmRleCA5YjAyZDFmLi4wNzQ4MzhlIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oCisrKyBiL3NyYy9pbmNsdWRl L3N0b3JhZ2Uvc19sb2NrLmgKQEAgLTI3NSwxMyArMjc1LDMzIEBAIHRhcyh2b2xhdGlsZSBz bG9ja190ICpsb2NrKQogI2VuZGlmCSAvKiBfX2lhNjRfXyB8fCBfX2lhNjQgKi8KIAogCisv KgorICogT24gQVJNLCB3ZSB1c2UgX19zeW5jX2xvY2tfdGVzdF9hbmRfc2V0KGludCAqLCBp bnQpIGlmIGF2YWlsYWJsZSwgYW5kIGlmCisgKiBub3QgZmFsbCBiYWNrIG9uIHRoZSBTV1BC IGluc3RydWN0aW9uLiAgU1dQQiBkb2VzIG5vdCB3b3JrIG9uIEFSTXY2IG9yCisgKiBsYXRl ciwgc28gdGhlIGNvbXBpbGVyIGJ1aWx0aW4gaXMgcHJlZmVycmVkIGlmIGF2YWlsYWJsZS4g IE5vdGUgYWxzbyB0aGF0CisgKiB0aGUgaW50LXdpZHRoIHZhcmlhbnQgb2YgdGhlIGJ1aWx0 aW4gd29ya3Mgb24gbW9yZSBjaGlwcyB0aGFuIG90aGVyIHdpZHRocy4KKyAqLwogI2lmIGRl ZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FybSkKICNkZWZpbmUgSEFTX1RFU1RfQU5E X1NFVAogCi10eXBlZGVmIHVuc2lnbmVkIGNoYXIgc2xvY2tfdDsKLQogI2RlZmluZSBUQVMo bG9jaykgdGFzKGxvY2spCiAKKyNpZmRlZiBIQVZFX0dDQ19JTlRfQVRPTUlDUworCit0eXBl ZGVmIGludCBzbG9ja190OworCitzdGF0aWMgX19pbmxpbmVfXyBpbnQKK3Rhcyh2b2xhdGls ZSBzbG9ja190ICpsb2NrKQoreworCXJldHVybiBfX3N5bmNfbG9ja190ZXN0X2FuZF9zZXQo bG9jaywgMSk7Cit9CisKKyNkZWZpbmUgU19VTkxPQ0sobG9jaykgX19zeW5jX2xvY2tfcmVs ZWFzZShsb2NrKQorCisjZWxzZSAvKiAhSEFWRV9HQ0NfSU5UX0FUT01JQ1MgKi8KKwordHlw ZWRlZiB1bnNpZ25lZCBjaGFyIHNsb2NrX3Q7CisKIHN0YXRpYyBfX2lubGluZV9fIGludAog dGFzKHZvbGF0aWxlIHNsb2NrX3QgKmxvY2spCiB7CkBAIC0yOTUsNiArMzE1LDcgQEAgdGFz KHZvbGF0aWxlIHNsb2NrX3QgKmxvY2spCiAJcmV0dXJuIChpbnQpIF9yZXM7CiB9CiAKKyNl bmRpZgkgLyogSEFWRV9HQ0NfSU5UX0FUT01JQ1MgKi8KICNlbmRpZgkgLyogX19hcm1fXyAq LwogCiAKCmNvbW1pdCAxZmMzZDE4ZmFhOGY0NDc2OTQ0YmM2ODU0YmUwZjdmNmFkZjRhZWM4 CkF1dGhvcjogUm9iZXJ0IEhhYXMgPHJoYWFzQHBvc3RncmVzcWwub3JnPgpEYXRlOiAgIEZy aSBKYW4gNiAyMjo1NjowMCAyMDEyIC0wNTAwCgogICAgU2xpZ2h0bHkgcmVvcmdhbml6ZSBz dHJ1Y3QgU25hcHNob3REYXRhLgogICAgCiAgICBUaGlzIHNxdWVlemVzIG91dCBhIGJ1bmNo IG9mIGFsaWdubWVudCBwYWRkaW5nLCByZWR1Y2luZyB0aGUgc2l6ZQogICAgZnJvbSA3MiB0 byA1NiBieXRlcyBvbiBteSBtYWNoaW5lLiAgQXQgbGVhc3QgaW4gbXkgdGVzdGluZywgdGhp cwogICAgZGlkbid0IHByb2R1Y2UgYW55IG1lYXN1cmFibGUgcGVyZm9ybWFuY2UgaW1wcm92 ZW1lbnQsIGJ1dCB0aGUgc3BhY2UKICAgIHNhdmluZ3Mgc2VlbSBsaWtlIGVub3VnaCBqdXN0 aWZpY2F0aW9uLgogICAgCiAgICBBbmRyZXMgRnJldW5kCgpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvdXRpbHMvc25hcHNob3QuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3NuYXBzaG90LmgK aW5kZXggOTNjMDJmYS4uOTAwMjcyZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMv c25hcHNob3QuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9zbmFwc2hvdC5oCkBAIC00Niwx MyArNDYsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgU25hcHNob3REYXRhCiAJICovCiAJVHJhbnNh Y3Rpb25JZCB4bWluOwkJCS8qIGFsbCBYSUQgPCB4bWluIGFyZSB2aXNpYmxlIHRvIG1lICov CiAJVHJhbnNhY3Rpb25JZCB4bWF4OwkJCS8qIGFsbCBYSUQgPj0geG1heCBhcmUgaW52aXNp YmxlIHRvIG1lICovCi0JdWludDMyCQl4Y250OwkJCS8qICMgb2YgeGFjdCBpZHMgaW4geGlw W10gKi8KIAlUcmFuc2FjdGlvbklkICp4aXA7CQkJLyogYXJyYXkgb2YgeGFjdCBJRHMgaW4g cHJvZ3Jlc3MgKi8KKwl1aW50MzIJCXhjbnQ7CQkJLyogIyBvZiB4YWN0IGlkcyBpbiB4aXBb XSAqLwogCS8qIG5vdGU6IGFsbCBpZHMgaW4geGlwW10gc2F0aXNmeSB4bWluIDw9IHhpcFtp XSA8IHhtYXggKi8KIAlpbnQzMgkJc3VieGNudDsJCS8qICMgb2YgeGFjdCBpZHMgaW4gc3Vi eGlwW10gKi8KIAlUcmFuc2FjdGlvbklkICpzdWJ4aXA7CQkvKiBhcnJheSBvZiBzdWJ4YWN0 IElEcyBpbiBwcm9ncmVzcyAqLwogCWJvb2wJCXN1Ym92ZXJmbG93ZWQ7CS8qIGhhcyB0aGUg c3VieGlwIGFycmF5IG92ZXJmbG93ZWQ/ICovCiAJYm9vbAkJdGFrZW5EdXJpbmdSZWNvdmVy eTsJLyogcmVjb3Zlcnktc2hhcGVkIHNuYXBzaG90PyAqLworCWJvb2wJCWNvcGllZDsJCQkv KiBmYWxzZSBpZiBpdCdzIGEgc3RhdGljIHNuYXBzaG90ICovCiAKIAkvKgogCSAqIG5vdGU6 IGFsbCBpZHMgaW4gc3VieGlwW10gYXJlID49IHhtaW4sIGJ1dCB3ZSBkb24ndCBib3RoZXIg ZmlsdGVyaW5nCkBAIC02MSw3ICs2Miw2IEBAIHR5cGVkZWYgc3RydWN0IFNuYXBzaG90RGF0 YQogCUNvbW1hbmRJZAljdXJjaWQ7CQkJLyogaW4gbXkgeGFjdCwgQ0lEIDwgY3VyY2lkIGFy ZSB2aXNpYmxlICovCiAJdWludDMyCQlhY3RpdmVfY291bnQ7CS8qIHJlZmNvdW50IG9uIEFj dGl2ZVNuYXBzaG90IHN0YWNrICovCiAJdWludDMyCQlyZWdkX2NvdW50OwkJLyogcmVmY291 bnQgb24gUmVnaXN0ZXJlZFNuYXBzaG90TGlzdCAqLwotCWJvb2wJCWNvcGllZDsJCQkvKiBm YWxzZSBpZiBpdCdzIGEgc3RhdGljIHNuYXBzaG90ICovCiB9IFNuYXBzaG90RGF0YTsKIAog LyoKCmNvbW1pdCBkZjk3MGEwYWM4ZmI0MTZiMTc5ODI1YTEzNWMxOGFkMzI5MzA3NmFmCkF1 dGhvcjogUm9iZXJ0IEhhYXMgPHJoYWFzQHBvc3RncmVzcWwub3JnPgpEYXRlOiAgIEZyaSBK YW4gNiAyMjo1NDo0MyAyMDEyIC0wNTAwCgogICAgRml4IGJhY2t3YXJkcyBsb2dpYyBpbiBw cmV2aW91cyBjb21taXQuCiAgICAKICAgIEkgd3JvdGUgdGhpcyBjb2RlIGJlZm9yZSBjb21t aXR0aW5nIGl0LCBidXQgbWFuYWdlZCBub3QgdG8gaW5jbHVkZSBpdCBpbgogICAgdGhlIGFj dHVhbCBjb21taXQuCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAwY2QyNzNl Li5jMzczMDE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtOTk0NywxMSAr OTk0Nyw2IEBAIFJhbmdlVmFyQ2FsbGJhY2tGb3JBbHRlclJlbGF0aW9uKGNvbnN0IFJhbmdl VmFyICpydiwgT2lkIHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9XUk9OR19PQkpFQ1RfVFlQRSksCiAJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIGNv bXBvc2l0ZSB0eXBlIiwgcnYtPnJlbG5hbWUpKSk7CiAKLQlpZiAocmVsdHlwZSA9PSBPQkpF Q1RfRk9SRUlHTl9UQUJMRSAmJiByZWxraW5kICE9IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkK LQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9U WVBFKSwKLQkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgZm9yZWlnbiB0YWJsZSIsIHJ2 LT5yZWxuYW1lKSkpOwotCiAJaWYgKHJlbHR5cGUgPT0gT0JKRUNUX0lOREVYICYmIHJlbGtp bmQgIT0gUkVMS0lORF9JTkRFWAogCQkmJiAhSXNBKHN0bXQsIFJlbmFtZVN0bXQpKQogCQll cmVwb3J0KEVSUk9SLApAQCAtOTk2OCw2ICs5OTYzLDEyIEBAIFJhbmdlVmFyQ2FsbGJhY2tG b3JBbHRlclJlbGF0aW9uKGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJlbGlkLCBPaWQgb2xk cmVsaWQsCiAJCQkJIGVycm1zZygiXCIlc1wiIGlzIGEgY29tcG9zaXRlIHR5cGUiLCBydi0+ cmVsbmFtZSksCiAJCQkJIGVycmhpbnQoIlVzZSBBTFRFUiBUWVBFIGluc3RlYWQuIikpKTsK IAorCWlmIChyZWx0eXBlICE9IE9CSkVDVF9GT1JFSUdOX1RBQkxFICYmIHJlbGtpbmQgPT0g UkVMS0lORF9GT1JFSUdOX1RBQkxFKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBh IGZvcmVpZ24gdGFibGUiLCBydi0+cmVsbmFtZSksCisJCQkJIGVycmhpbnQoIlVzZSBBTFRF UiBGT1JFSUdOIFRBQkxFIGluc3RlYWQuIikpKTsKKwogCS8qCiAJICogRG9uJ3QgYWxsb3cg QUxURVIgVEFCTEUgLi4gU0VUIFNDSEVNQSBvbiByZWxhdGlvbnMgdGhhdCBjYW4ndCBiZQog CSAqIG1vdmVkIHRvIGEgZGlmZmVyZW50IHNjaGVtYSwgc3VjaCBhcyBpbmRleGVzIGFuZCBU T0FTVCB0YWJsZXMuCgpjb21taXQgMTQ4OWUyZjI2YTRjMDMxODkzOGIzMDg1ZjUwOTc2NTEy ZjMyMWQ4NApBdXRob3I6IFJvYmVydCBIYWFzIDxyaGFhc0Bwb3N0Z3Jlc3FsLm9yZz4KRGF0 ZTogICBGcmkgSmFuIDYgMjI6NDI6MjYgMjAxMiAtMDUwMAoKICAgIEltcHJvdmUgYmVoYXZp b3Igb2YgY29uY3VycmVudCBBTFRFUiBUQUJMRSwgYW5kIGRvIHNvbWUgcmVmYWN0b3Jpbmcu CiAgICAKICAgIEFMVEVSIFRBQkxFIChhbmQgQUxURVIgVklFVywgQUxURVIgU0VRVUVOQ0Us IGV0Yy4pIG5vdyB1c2UgYQogICAgUmFuZ2VWYXJHZXRSZWxpZCBjYWxsYmFjayB0byBjaGVj ayBwZXJtaXNzaW9ucyBiZWZvcmUgYWNxdWlyaW5nIGEgdGFibGUKICAgIGxvY2suICBXZSBh bHNvIG5vdyB1c2UgdGhlIHNhbWUgY2FsbGJhY2sgZm9yIGFsbCBmb3JtcyBvZiBBTFRFUiBU QUJMRSwKICAgIHJhdGhlciB0aGFuIGhhdmluZyBzZXBhcmF0ZSwgYWxtb3N0LWlkZW50aWNh bCBjYWxsYmFja3MgZm9yIEFMVEVSIFRBQkxFCiAgICAuLiBTRVQgU0NIRU1BIGFuZCBBTFRF UiBUQUJMRSAuLiBSRU5BTUUsIGFuZCBubyBjYWxsYmFjayBhdCBhbGwgZm9yCiAgICBldmVy eXRoaW5nIGVsc2UuCiAgICAKICAgIEkgd2VudCBhaGVhZCBhbmQgY2hhbmdlZCB0aGUgY29k ZSBzbyB0aGF0IG5vIGZvcm0gb2YgQUxURVIgVEFCTEUgd29ya3MKICAgIG9uIGZvcmVpZ24g dGFibGVzOyB5b3UgbXVzdCB1c2UgQUxURVIgRk9SRUlHTiBUQUJMRSBpbnN0ZWFkLiAgSW4g OS4xLAogICAgaXQgd2FzIHBvc3NpYmxlIHRvIHVzZSBBTFRFUiBUQUJMRSAuLiBTRVQgU0NI RU1BIG9yIEFMVEVSIFRBQkxFIC4uCiAgICBSRU5BTUUgb24gYSBmb3JlaWduIHRhYmxlLCBi dXQgbm90IGFueSBvdGhlciBmb3JtIG9mIEFMVEVSIFRBQkxFLCB3aGljaAogICAgZGlkIG5v dCBzZWVtIHRlcnJpYmx5IHVzZWZ1bCBvciBjb25zaXN0ZW50LgogICAgCiAgICBQYXRjaCBi eSBtZTsgcmV2aWV3IGJ5IE5vYWggTWlzY2guCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvYWx0ZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKaW5kZXgg YzQxYzcwYy4uN2M2NThjMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0 ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCkBAIC0xOTIsOCArMTky LDcgQEAgRXhlY0FsdGVyT2JqZWN0U2NoZW1hU3RtdChBbHRlck9iamVjdFNjaGVtYVN0bXQg KnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RBQkxFOgogCQljYXNlIE9CSkVDVF9WSUVXOgogCQlj YXNlIE9CSkVDVF9GT1JFSUdOX1RBQkxFOgotCQkJQWx0ZXJUYWJsZU5hbWVzcGFjZShzdG10 LT5yZWxhdGlvbiwgc3RtdC0+bmV3c2NoZW1hLAotCQkJCQkJCQlzdG10LT5vYmplY3RUeXBl LCBBY2Nlc3NFeGNsdXNpdmVMb2NrKTsKKwkJCUFsdGVyVGFibGVOYW1lc3BhY2Uoc3RtdCk7 CiAJCQlicmVhazsKIAogCQljYXNlIE9CSkVDVF9UU1BBUlNFUjoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMKaW5kZXggM2I1MjQxNS4uMGNkMjczZSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMKQEAgLTM4Nyw2ICszODcsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqc3Rv cmFnZV9uYW1lKGNoYXIgYyk7CiAKIHN0YXRpYyB2b2lkIFJhbmdlVmFyQ2FsbGJhY2tGb3JE cm9wUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJlbCwgT2lkIHJlbE9pZCwKIAkJCQkJCQkJ T2lkIG9sZFJlbE9pZCwgdm9pZCAqYXJnKTsKK3N0YXRpYyB2b2lkIFJhbmdlVmFyQ2FsbGJh Y2tGb3JBbHRlclJlbGF0aW9uKGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJlbGlkLAorCQkJ CQkJCQkgT2lkIG9sZHJlbGlkLCB2b2lkICphcmcpOwogCiAKIC8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAg LTIzMTksODEgKzIzMjEsNiBAQCByZW5hbWVhdHQoUmVuYW1lU3RtdCAqc3RtdCkKIH0KIAog LyoKLSAqIFBlcmZvcm0gcGVybWlzc2lvbnMgYW5kIGludGVncml0eSBjaGVja3MgYmVmb3Jl IGFjcXVpcmluZyBhIHJlbGF0aW9uIGxvY2suCi0gKi8KLXN0YXRpYyB2b2lkCi1SYW5nZVZh ckNhbGxiYWNrRm9yUmVuYW1lUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVs aWQsIE9pZCBvbGRyZWxpZCwKLQkJCQkJCQkJICB2b2lkICphcmcpCi17Ci0JUmVuYW1lU3Rt dAkgICAqc3RtdCA9IChSZW5hbWVTdG10ICopIGFyZzsKLQlPYmplY3RUeXBlCQlyZWx0eXBl OwotCUhlYXBUdXBsZQkJdHVwbGU7Ci0JRm9ybV9wZ19jbGFzcwljbGFzc2Zvcm07Ci0JQWNs UmVzdWx0ICAgCWFjbHJlc3VsdDsKLQljaGFyCQkJcmVsa2luZDsKLQotCXR1cGxlID0gU2Vh cmNoU3lzQ2FjaGUxKFJFTE9JRCwgT2JqZWN0SWRHZXREYXR1bShyZWxpZCkpOwotCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCi0JCXJldHVybjsJCQkJCQkJLyogY29uY3VycmVu dGx5IGRyb3BwZWQgKi8KLQljbGFzc2Zvcm0gPSAoRm9ybV9wZ19jbGFzcykgR0VUU1RSVUNU KHR1cGxlKTsKLQlyZWxraW5kID0gY2xhc3Nmb3JtLT5yZWxraW5kOwotCi0JLyogTXVzdCBv d24gdGFibGUuICovCi0JaWYgKCFwZ19jbGFzc19vd25lcmNoZWNrKHJlbGlkLCBHZXRVc2Vy SWQoKSkpCi0JCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgQUNMX0tJTkRf Q0xBU1MsCi0JCQkJCSAgIE5hbWVTdHIoY2xhc3Nmb3JtLT5yZWxuYW1lKSk7Ci0KLQkvKiBO byBzeXN0ZW0gdGFibGUgbW9kaWZpY2F0aW9ucyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2Vk LiAqLwotCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhjbGFz c2Zvcm0pKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZG SUNJRU5UX1BSSVZJTEVHRSksCi0JCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwi JXNcIiBpcyBhIHN5c3RlbSBjYXRhbG9nIiwKLQkJCQkJCU5hbWVTdHIoY2xhc3Nmb3JtLT5y ZWxuYW1lKSkpKTsKLQotCS8qIE11c3QgKHN0aWxsKSBoYXZlIENSRUFURSByaWdodHMgb24g Y29udGFpbmluZyBuYW1lc3BhY2UuICovCi0gCWFjbHJlc3VsdCA9IHBnX25hbWVzcGFjZV9h Y2xjaGVjayhjbGFzc2Zvcm0tPnJlbG5hbWVzcGFjZSwgR2V0VXNlcklkKCksCi0JCQkJCQkJ CQkgIEFDTF9DUkVBVEUpOwotCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCi0JCWFj bGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgQUNMX0tJTkRfTkFNRVNQQUNFLAotCQkJCQkgICBn ZXRfbmFtZXNwYWNlX25hbWUoY2xhc3Nmb3JtLT5yZWxuYW1lc3BhY2UpKTsKLQotCS8qCi0J ICogRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBwcmlvciByZWxlYXNlcywgd2UgZG9uJ3QgY29t cGxhaW4gaWYgQUxURVIgVEFCTEUKLQkgKiBvciBBTFRFUiBJTkRFWCBpcyB1c2VkIHRvIHJl bmFtZSBzb21lIG90aGVyIHR5cGUgb2YgcmVsYXRpb24uICBCdXQKLQkgKiBBTFRFUiBTRVFV RU5DRS9WSUVXL0ZPUkVJR04gVEFCTEUgYXJlIG9ubHkgdG8gYmUgdXNlZCB3aXRoIHJlbGF0 aW9ucyBvZgotCSAqIHRoYXQgdHlwZS4KLQkgKi8KLQlyZWx0eXBlID0gc3RtdC0+cmVuYW1l VHlwZTsKLQlpZiAocmVsdHlwZSA9PSBPQkpFQ1RfU0VRVUVOQ0UgJiYgcmVsa2luZCAhPSBS RUxLSU5EX1NFUVVFTkNFKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNP REVfV1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSBz ZXF1ZW5jZSIsIHJ2LT5yZWxuYW1lKSkpOwotCi0JaWYgKHJlbHR5cGUgPT0gT0JKRUNUX1ZJ RVcgJiYgcmVsa2luZCAhPSBSRUxLSU5EX1ZJRVcpCi0JCWVyZXBvcnQoRVJST1IsCi0JCQkJ KGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVycm1zZygiXCIl c1wiIGlzIG5vdCBhIHZpZXciLCBydi0+cmVsbmFtZSkpKTsKLQotCWlmIChyZWx0eXBlID09 IE9CSkVDVF9GT1JFSUdOX1RBQkxFICYmIHJlbGtpbmQgIT0gUkVMS0lORF9GT1JFSUdOX1RB QkxFKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JK RUNUX1RZUEUpLAotCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSBmb3JlaWduIHRhYmxl IiwgcnYtPnJlbG5hbWUpKSk7Ci0KLQkvKgotCSAqIERvbid0IGFsbG93IEFMVEVSIFRBQkxF IG9uIGNvbXBvc2l0ZSB0eXBlcy4gV2Ugd2FudCBwZW9wbGUgdG8gdXNlIEFMVEVSCi0JICog VFlQRSBmb3IgdGhhdC4KLQkgKi8KLQlpZiAocmVsa2luZCA9PSBSRUxLSU5EX0NPTVBPU0lU RV9UWVBFKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdf T0JKRUNUX1RZUEUpLAotCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBhIGNvbXBvc2l0ZSB0eXBl IiwgcnYtPnJlbG5hbWUpLAotCQkJCSBlcnJoaW50KCJVc2UgQUxURVIgVFlQRSBpbnN0ZWFk LiIpKSk7Ci0KLQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwotfQotCi0KLS8qCiAgKiBFeGVj dXRlIEFMVEVSIFRBQkxFL0lOREVYL1NFUVVFTkNFL1ZJRVcvRk9SRUlHTiBUQUJMRSBSRU5B TUUKICAqLwogdm9pZApAQCAtMjQxMCw3ICsyMzM3LDcgQEAgUmVuYW1lUmVsYXRpb24oUmVu YW1lU3RtdCAqc3RtdCkKIAkgKi8KIAlyZWxpZCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRl ZChzdG10LT5yZWxhdGlvbiwgQWNjZXNzRXhjbHVzaXZlTG9jaywKIAkJCQkJCQkJCSBmYWxz ZSwgZmFsc2UsCi0JCQkJCQkJCQkgUmFuZ2VWYXJDYWxsYmFja0ZvclJlbmFtZVJlbGF0aW9u LAorCQkJCQkJCQkJIFJhbmdlVmFyQ2FsbGJhY2tGb3JBbHRlclJlbGF0aW9uLAogCQkJCQkJ CQkJICh2b2lkICopIHN0bXQpOwogCiAJLyogRG8gdGhlIHdvcmsgKi8KQEAgLTI1NDYsNiAr MjQ3MywxOSBAQCBDaGVja1RhYmxlTm90SW5Vc2UoUmVsYXRpb24gcmVsLCBjb25zdCBjaGFy ICpzdG10KQogfQogCiAvKgorICogQWx0ZXJUYWJsZUxvb2t1cFJlbGF0aW9uCisgKgkJTG9v ayB1cCwgYW5kIGxvY2ssIHRoZSBPSUQgZm9yIHRoZSByZWxhdGlvbiBuYW1lZCBieSBhbiBh bHRlciB0YWJsZQorICoJCXN0YXRlbWVudC4KKyAqLworT2lkCitBbHRlclRhYmxlTG9va3Vw UmVsYXRpb24oQWx0ZXJUYWJsZVN0bXQgKnN0bXQsIExPQ0tNT0RFIGxvY2ttb2RlKQorewor CXJldHVybiBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoc3RtdC0+cmVsYXRpb24sIGxvY2tt b2RlLCBmYWxzZSwgZmFsc2UsCisJCQkJCQkJCQlSYW5nZVZhckNhbGxiYWNrRm9yQWx0ZXJS ZWxhdGlvbiwKKwkJCQkJCQkJCSh2b2lkICopIHN0bXQpOworfQorCisvKgogICogQWx0ZXJU YWJsZQogICoJCUV4ZWN1dGUgQUxURVIgVEFCTEUsIHdoaWNoIGNhbiBiZSBhIGxpc3Qgb2Yg c3ViY29tbWFuZHMKICAqCkBAIC0yNTc5LDkwICsyNTE5LDI2IEBAIENoZWNrVGFibGVOb3RJ blVzZShSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnN0bXQpCiAgKiBUaGFua3MgdG8gdGhl IG1hZ2ljIG9mIE1WQ0MsIGFuIGVycm9yIGFueXdoZXJlIGFsb25nIHRoZSB3YXkgcm9sbHMg YmFjawogICogdGhlIHdob2xlIG9wZXJhdGlvbjsgd2UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0 aGluZyBzcGVjaWFsIHRvIGNsZWFuIHVwLgogICoKLSAqIFdlIGxvY2sgdGhlIHRhYmxlIGFz IHRoZSBmaXJzdCBhY3Rpb24sIHdpdGggYW4gYXBwcm9wcmlhdGUgbG9jayBsZXZlbAorICog VGhlIGNhbGxlciBtdXN0IGxvY2sgdGhlIHJlbGF0aW9uLCB3aXRoIGFuIGFwcHJvcHJpYXRl IGxvY2sgbGV2ZWwgCiAgKiBmb3IgdGhlIHN1YmNvbW1hbmRzIHJlcXVlc3RlZC4gQW55IHN1 YmNvbW1hbmQgdGhhdCBuZWVkcyB0byByZXdyaXRlCiAgKiB0dXBsZXMgaW4gdGhlIHRhYmxl IGZvcmNlcyB0aGUgd2hvbGUgY29tbWFuZCB0byBiZSBleGVjdXRlZCB3aXRoCi0gKiBBY2Nl c3NFeGNsdXNpdmVMb2NrLiBJZiBhbGwgc3ViY29tbWFuZHMgZG8gbm90IHJlcXVpcmUgcmV3 cml0ZSB0YWJsZQotICogdGhlbiB3ZSBtYXkgYmUgYWJsZSB0byB1c2UgbG93ZXIgbG9jayBs ZXZlbHMuIFdlIHBhc3MgdGhlIGxvY2sgbGV2ZWwgZG93bgorICogQWNjZXNzRXhjbHVzaXZl TG9jayAoYWN0dWFsbHksIHRoYXQgaXMgY3VycmVudGx5IHJlcXVpcmVkIGFsd2F5cywgYnV0 CisgKiB3ZSBob3BlIHRvIHJlbGF4IGl0IGF0IHNvbWUgcG9pbnQpLiAgV2UgcGFzcyB0aGUg bG9jayBsZXZlbCBkb3duCiAgKiBzbyB0aGF0IHdlIGNhbiBhcHBseSBpdCByZWN1cnNpdmVs eSB0byBpbmhlcml0ZWQgdGFibGVzLiBOb3RlIHRoYXQgdGhlCi0gKiBsb2NrIGxldmVsIHdl IHdhbnQgYXMgd2UgcmVjdXJzZSBtYXkgd2VsbCBiZSBoaWdoZXIgdGhhbiByZXF1aXJlZCBm b3IKKyAqIGxvY2sgbGV2ZWwgd2Ugd2FudCBhcyB3ZSByZWN1cnNlIG1pZ2h0IHdlbGwgYmUg aGlnaGVyIHRoYW4gcmVxdWlyZWQgZm9yCiAgKiB0aGF0IHNwZWNpZmljIHN1YmNvbW1hbmQu IFNvIHdlIHBhc3MgZG93biB0aGUgb3ZlcmFsbCBsb2NrIHJlcXVpcmVtZW50LAogICogcmF0 aGVyIHRoYW4gcmVhc3Nlc3MgaXQgYXQgbG93ZXIgbGV2ZWxzLgogICovCiB2b2lkCi1BbHRl clRhYmxlKEFsdGVyVGFibGVTdG10ICpzdG10KQorQWx0ZXJUYWJsZShPaWQgcmVsaWQsIExP Q0tNT0RFIGxvY2ttb2RlLCBBbHRlclRhYmxlU3RtdCAqc3RtdCkKIHsKIAlSZWxhdGlvbgly ZWw7Ci0JTE9DS01PREUJbG9ja21vZGUgPSBBbHRlclRhYmxlR2V0TG9ja0xldmVsKHN0bXQt PmNtZHMpOwogCi0JLyoKLQkgKiBBY3F1aXJlIHNhbWUgbGV2ZWwgb2YgbG9jayBhcyBhbHJl YWR5IGFjcXVpcmVkIGR1cmluZyBwYXJzaW5nLgotCSAqLwotCXJlbCA9IHJlbGF0aW9uX29w ZW5ydihzdG10LT5yZWxhdGlvbiwgbG9ja21vZGUpOworCS8qIENhbGxlciBpcyByZXF1aXJl ZCB0byBwcm92aWRlIGFuIGFkZXF1YXRlIGxvY2suICovCisJcmVsID0gcmVsYXRpb25fb3Bl bihyZWxpZCwgTm9Mb2NrKTsKIAogCUNoZWNrVGFibGVOb3RJblVzZShyZWwsICJBTFRFUiBU QUJMRSIpOwogCi0JLyogQ2hlY2sgcmVsYXRpb24gdHlwZSBhZ2FpbnN0IHR5cGUgc3BlY2lm aWVkIGluIHRoZSBBTFRFUiBjb21tYW5kICovCi0Jc3dpdGNoIChzdG10LT5yZWxraW5kKQot CXsKLQkJY2FzZSBPQkpFQ1RfVEFCTEU6Ci0KLQkJCS8qCi0JCQkgKiBGb3IgbW9zdGx5LWhp c3RvcmljYWwgcmVhc29ucywgd2UgYWxsb3cgQUxURVIgVEFCTEUgdG8gYXBwbHkgdG8KLQkJ CSAqIGFsbW9zdCBhbGwgcmVsYXRpb24gdHlwZXMuCi0JCQkgKi8KLQkJCWlmIChyZWwtPnJk X3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBFCi0JCQkJfHwgcmVsLT5y ZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9GT1JFSUdOX1RBQkxFKQotCQkJCWVyZXBvcnQo RVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJ CQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSB0YWJsZSIsCi0JCQkJCQkJCVJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7Ci0JCQlicmVhazsKLQotCQljYXNlIE9CSkVDVF9J TkRFWDoKLQkJCWlmIChyZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX0lOREVYKQot CQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVD VF9UWVBFKSwKLQkJCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYW4gaW5kZXgiLAotCQkJ CQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwotCQkJYnJlYWs7Ci0KLQkJ Y2FzZSBPQkpFQ1RfU0VRVUVOQ0U6Ci0JCQlpZiAocmVsLT5yZF9yZWwtPnJlbGtpbmQgIT0g UkVMS0lORF9TRVFVRU5DRSkKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJCQkgZXJybXNnKCJcIiVzXCIgaXMg bm90IGEgc2VxdWVuY2UiLAotCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp KSkpOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBPQkpFQ1RfVFlQRToKLQkJCWlmIChyZWwtPnJk X3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX0NPTVBPU0lURV9UWVBFKQotCQkJCWVyZXBvcnQo RVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJ CQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCi0JCQkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7Ci0JCQlicmVhazsKLQotCQljYXNl IE9CSkVDVF9WSUVXOgotCQkJaWYgKHJlbC0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRf VklFVykKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9O R19PQkpFQ1RfVFlQRSksCi0JCQkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgdmlldyIs Ci0JCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7Ci0JCQlicmVhazsK LQotCQljYXNlIE9CSkVDVF9GT1JFSUdOX1RBQkxFOgotCQkJaWYgKHJlbC0+cmRfcmVsLT5y ZWxraW5kICE9IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKLQkJCQllcmVwb3J0KEVSUk9SLAot CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJCQkgZXJy bXNnKCJcIiVzXCIgaXMgbm90IGEgZm9yZWlnbiB0YWJsZSIsCi0JCQkJCQkJCVJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7Ci0JCQlicmVhazsKLQotCQlkZWZhdWx0OgotCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCAoaW50KSBzdG10 LT5yZWxraW5kKTsKLQl9Ci0KIAlBVENvbnRyb2xsZXIocmVsLCBzdG10LT5jbWRzLCBpbnRl cnByZXRJbmhPcHRpb24oc3RtdC0+cmVsYXRpb24tPmluaE9wdCksCiAJCQkJIGxvY2ttb2Rl KTsKIH0KQEAgLTk1MzEsMTAzICs5NDA3LDEwIEBAIEFURXhlY0dlbmVyaWNPcHRpb25zKFJl bGF0aW9uIHJlbCwgTGlzdCAqb3B0aW9ucykKIH0KIAogLyoKLSAqIFBlcmZvcm0gcGVybWlz c2lvbnMgYW5kIGludGVncml0eSBjaGVja3MgYmVmb3JlIGFjcXVpcmluZyBhIHJlbGF0aW9u IGxvY2suCi0gKi8KLXN0YXRpYyB2b2lkCi1SYW5nZVZhckNhbGxiYWNrRm9yQWx0ZXJUYWJs ZU5hbWVzcGFjZShjb25zdCBSYW5nZVZhciAqcnYsIE9pZCByZWxpZCwKLQkJCQkJCQkJCSAg IE9pZCBvbGRyZWxpZCwgdm9pZCAqYXJnKQotewotCUhlYXBUdXBsZQkJdHVwbGU7Ci0JRm9y bV9wZ19jbGFzcwlmb3JtOwotCU9iamVjdFR5cGUJCXN0bXR0eXBlOwotCi0JdHVwbGUgPSBT ZWFyY2hTeXNDYWNoZTEoUkVMT0lELCBPYmplY3RJZEdldERhdHVtKHJlbGlkKSk7Ci0JaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKLQkJcmV0dXJuOwkJCQkJCQkvKiBjb25jdXJy ZW50bHkgZHJvcHBlZCAqLwotCWZvcm0gPSAoRm9ybV9wZ19jbGFzcykgR0VUU1RSVUNUKHR1 cGxlKTsKLQotCS8qIE11c3Qgb3duIHRhYmxlLiAqLwotCWlmICghcGdfY2xhc3Nfb3duZXJj aGVjayhyZWxpZCwgR2V0VXNlcklkKCkpKQotCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19O T1RfT1dORVIsIEFDTF9LSU5EX0NMQVNTLCBydi0+cmVsbmFtZSk7Ci0KLQkvKiBObyBzeXN0 ZW0gdGFibGUgbW9kaWZpY2F0aW9ucyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkLiAqLwot CWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhmb3JtKSkKLQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklW SUxFR0UpLAotCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVzXCIgaXMgYSBz eXN0ZW0gY2F0YWxvZyIsCi0JCQkJCQlydi0+cmVsbmFtZSkpKTsKLQotCS8qIENoZWNrIHJl bGF0aW9uIHR5cGUgYWdhaW5zdCB0eXBlIHNwZWNpZmllZCBpbiB0aGUgQUxURVIgY29tbWFu ZCAqLwotCXN0bXR0eXBlID0gKiAoT2JqZWN0VHlwZSAqKSBhcmc7Ci0Jc3dpdGNoIChzdG10 dHlwZSkKLQl7Ci0JCWNhc2UgT0JKRUNUX1RBQkxFOgotCi0JCQkvKgotCQkJICogRm9yIG1v c3RseS1oaXN0b3JpY2FsIHJlYXNvbnMsIHdlIGFsbG93IEFMVEVSIFRBQkxFIHRvIGFwcGx5 IHRvCi0JCQkgKiBhbGwgcmVsYXRpb24gdHlwZXMuCi0JCQkgKi8KLQkJCWJyZWFrOwotCi0J CWNhc2UgT0JKRUNUX1NFUVVFTkNFOgotCQkJaWYgKGZvcm0tPnJlbGtpbmQgIT0gUkVMS0lO RF9TRVFVRU5DRSkKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEg c2VxdWVuY2UiLCBydi0+cmVsbmFtZSkpKTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgT0JKRUNU X1ZJRVc6Ci0JCQlpZiAoZm9ybS0+cmVsa2luZCAhPSBSRUxLSU5EX1ZJRVcpCi0JCQkJZXJl cG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUp LAotCQkJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHZpZXciLCBydi0+cmVsbmFtZSkp KTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgT0JKRUNUX0ZPUkVJR05fVEFCTEU6Ci0JCQlpZiAo Zm9ybS0+cmVsa2luZCAhPSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCi0JCQkJZXJlcG9ydChF UlJPUiwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJ CQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIGZvcmVpZ24gdGFibGUiLCBydi0+cmVsbmFt ZSkpKTsKLQkJCWJyZWFrOwotCi0JCWRlZmF1bHQ6Ci0JCQllbG9nKEVSUk9SLCAidW5yZWNv Z25pemVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIHN0bXR0eXBlKTsKLQl9Ci0KLQkvKiBD YW4gd2UgY2hhbmdlIHRoZSBzY2hlbWEgb2YgdGhpcyB0dXBsZT8gKi8KLQlzd2l0Y2ggKGZv cm0tPnJlbGtpbmQpCi0JewotCQljYXNlIFJFTEtJTkRfUkVMQVRJT046Ci0JCWNhc2UgUkVM S0lORF9WSUVXOgotCQljYXNlIFJFTEtJTkRfU0VRVUVOQ0U6Ci0JCWNhc2UgUkVMS0lORF9G T1JFSUdOX1RBQkxFOgotCQkJLyogb2sgdG8gY2hhbmdlIHNjaGVtYSAqLwotCQkJYnJlYWs7 Ci0JCWNhc2UgUkVMS0lORF9DT01QT1NJVEVfVFlQRToKLQkJCWVyZXBvcnQoRVJST1IsCi0J CQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJCQkgZXJybXNn KCJcIiVzXCIgaXMgYSBjb21wb3NpdGUgdHlwZSIsIHJ2LT5yZWxuYW1lKSwKLQkJCQkJIGVy cmhpbnQoIlVzZSBBTFRFUiBUWVBFIGluc3RlYWQuIikpKTsKLQkJCWJyZWFrOwotCQljYXNl IFJFTEtJTkRfSU5ERVg6Ci0JCWNhc2UgUkVMS0lORF9UT0FTVFZBTFVFOgotCQkJLyogRkFM TCBUSFJVICovCi0JCWRlZmF1bHQ6Ci0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29k ZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCWVycm1zZygiXCIlc1wiIGlzIG5v dCBhIHRhYmxlLCB2aWV3LCBzZXF1ZW5jZSwgb3IgZm9yZWlnbiB0YWJsZSIsCi0JCQkJICAg cnYtPnJlbG5hbWUpKSk7Ci0JfQotCi0JUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKLX0KLQot LyoKICAqIEV4ZWN1dGUgQUxURVIgVEFCTEUgU0VUIFNDSEVNQQogICovCiB2b2lkCi1BbHRl clRhYmxlTmFtZXNwYWNlKFJhbmdlVmFyICpyZWxhdGlvbiwgY29uc3QgY2hhciAqbmV3c2No ZW1hLAotCQkJCQlPYmplY3RUeXBlIHN0bXR0eXBlLCBMT0NLTU9ERSBsb2NrbW9kZSkKK0Fs dGVyVGFibGVOYW1lc3BhY2UoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10KQogewogCVJl bGF0aW9uCXJlbDsKIAlPaWQJCQlyZWxpZDsKQEAgLTk2MzUsOSArOTQxOCwxMCBAQCBBbHRl clRhYmxlTmFtZXNwYWNlKFJhbmdlVmFyICpyZWxhdGlvbiwgY29uc3QgY2hhciAqbmV3c2No ZW1hLAogCU9pZAkJCW5zcE9pZDsKIAlSZWxhdGlvbgljbGFzc1JlbDsKIAotCXJlbGlkID0g UmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKHJlbGF0aW9uLCBsb2NrbW9kZSwgZmFsc2UsIGZh bHNlLAotCQkJCQkJCQkJIFJhbmdlVmFyQ2FsbGJhY2tGb3JBbHRlclRhYmxlTmFtZXNwYWNl LAotCQkJCQkJCQkJICh2b2lkICopICZzdG10dHlwZSk7CisJcmVsaWQgPSBSYW5nZVZhckdl dFJlbGlkRXh0ZW5kZWQoc3RtdC0+cmVsYXRpb24sIEFjY2Vzc0V4Y2x1c2l2ZUxvY2ssCisJ CQkJCQkJCQkgZmFsc2UsIGZhbHNlLAorCQkJCQkJCQkJIFJhbmdlVmFyQ2FsbGJhY2tGb3JB bHRlclJlbGF0aW9uLAorCQkJCQkJCQkJICh2b2lkICopIHN0bXQpOwogCXJlbCA9IHJlbGF0 aW9uX29wZW4ocmVsaWQsIE5vTG9jayk7CiAKIAlvbGROc3BPaWQgPSBSZWxhdGlvbkdldE5h bWVzcGFjZShyZWwpOwpAQCAtOTY1OCw3ICs5NDQyLDcgQEAgQWx0ZXJUYWJsZU5hbWVzcGFj ZShSYW5nZVZhciAqcmVsYXRpb24sIGNvbnN0IGNoYXIgKm5ld3NjaGVtYSwKIAl9CiAKIAkv KiBnZXQgc2NoZW1hIE9JRCBhbmQgY2hlY2sgaXRzIHBlcm1pc3Npb25zICovCi0JbnNwT2lk ID0gTG9va3VwQ3JlYXRpb25OYW1lc3BhY2UobmV3c2NoZW1hKTsKKwluc3BPaWQgPSBMb29r dXBDcmVhdGlvbk5hbWVzcGFjZShzdG10LT5uZXdzY2hlbWEpOwogCiAJLyogY29tbW9uIGNo ZWNrcyBvbiBzd2l0Y2hpbmcgbmFtZXNwYWNlcyAqLwogCUNoZWNrU2V0TmFtZXNwYWNlKG9s ZE5zcE9pZCwgbnNwT2lkLCBSZWxhdGlvblJlbGF0aW9uSWQsIHJlbGlkKTsKQEAgLTk2NzUs NyArOTQ1OSw4IEBAIEFsdGVyVGFibGVOYW1lc3BhY2UoUmFuZ2VWYXIgKnJlbGF0aW9uLCBj b25zdCBjaGFyICpuZXdzY2hlbWEsCiAJaWYgKHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJF TEtJTkRfUkVMQVRJT04pCiAJewogCQlBbHRlckluZGV4TmFtZXNwYWNlcyhjbGFzc1JlbCwg cmVsLCBvbGROc3BPaWQsIG5zcE9pZCk7Ci0JCUFsdGVyU2VxTmFtZXNwYWNlcyhjbGFzc1Jl bCwgcmVsLCBvbGROc3BPaWQsIG5zcE9pZCwgbmV3c2NoZW1hLCBsb2NrbW9kZSk7CisJCUFs dGVyU2VxTmFtZXNwYWNlcyhjbGFzc1JlbCwgcmVsLCBvbGROc3BPaWQsIG5zcE9pZCwgc3Rt dC0+bmV3c2NoZW1hLAorCQkJCQkJICAgQWNjZXNzRXhjbHVzaXZlTG9jayk7CiAJCUFsdGVy Q29uc3RyYWludE5hbWVzcGFjZXMocmVsaWQsIG9sZE5zcE9pZCwgbnNwT2lkLCBmYWxzZSk7 CiAJfQogCkBAIC0xMDA3NywzICs5ODYyLDEyMyBAQCBSYW5nZVZhckNhbGxiYWNrT3duc1Rh YmxlKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwKIAlpZiAoIXBnX2NsYXNzX293bmVyY2hl Y2socmVsSWQsIEdldFVzZXJJZCgpKSkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9U X09XTkVSLCBBQ0xfS0lORF9DTEFTUywgcmVsYXRpb24tPnJlbG5hbWUpOwogfQorCisvKgor ICogQ29tbW9uIFJhbmdlVmFyR2V0UmVsaWQgY2FsbGJhY2sgZm9yIHJlbmFtZSwgc2V0IHNj aGVtYSwgYW5kIGFsdGVyIHRhYmxlCisgKiBwcm9jZXNzaW5nLgorICovCitzdGF0aWMgdm9p ZAorUmFuZ2VWYXJDYWxsYmFja0ZvckFsdGVyUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJ2 LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKKwkJCQkJCQkJIHZvaWQgKmFyZykKK3sKKwlO b2RlCQkgICAqc3RtdCA9IChOb2RlICopIGFyZzsKKwlPYmplY3RUeXBlCQlyZWx0eXBlOwor CUhlYXBUdXBsZQkJdHVwbGU7CisJRm9ybV9wZ19jbGFzcwljbGFzc2Zvcm07CisJQWNsUmVz dWx0ICAgCWFjbHJlc3VsdDsKKwljaGFyCQkJcmVsa2luZDsKKworCXR1cGxlID0gU2VhcmNo U3lzQ2FjaGUxKFJFTE9JRCwgT2JqZWN0SWRHZXREYXR1bShyZWxpZCkpOworCWlmICghSGVh cFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCXJldHVybjsJCQkJCQkJLyogY29uY3VycmVudGx5 IGRyb3BwZWQgKi8KKwljbGFzc2Zvcm0gPSAoRm9ybV9wZ19jbGFzcykgR0VUU1RSVUNUKHR1 cGxlKTsKKwlyZWxraW5kID0gY2xhc3Nmb3JtLT5yZWxraW5kOworCisJLyogTXVzdCBvd24g cmVsYXRpb24uICovCisJaWYgKCFwZ19jbGFzc19vd25lcmNoZWNrKHJlbGlkLCBHZXRVc2Vy SWQoKSkpCisJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgQUNMX0tJTkRf Q0xBU1MsIHJ2LT5yZWxuYW1lKTsKKworCS8qIE5vIHN5c3RlbSB0YWJsZSBtb2RpZmljYXRp b25zIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQuICovCisJaWYgKCFhbGxvd1N5c3RlbVRh YmxlTW9kcyAmJiBJc1N5c3RlbUNsYXNzKGNsYXNzZm9ybSkpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkg ZXJybXNnKCJwZXJtaXNzaW9uIGRlbmllZDogXCIlc1wiIGlzIGEgc3lzdGVtIGNhdGFsb2ci LAorCQkJCQkJcnYtPnJlbG5hbWUpKSk7CisKKwkvKgorCSAqIEV4dHJhY3QgdGhlIHNwZWNp ZmllZCByZWxhdGlvbiB0eXBlIGZyb20gdGhlIHN0YXRlbWVudCBwYXJzZSB0cmVlLgorCSAq CisJICogQWxzbywgZm9yIEFMVEVSIC4uIFJFTkFNRSwgY2hlY2sgcGVybWlzc2lvbnM6IHRo ZSB1c2VyIG11c3QgKHN0aWxsKQorCSAqIGhhdmUgQ1JFQVRFIHJpZ2h0cyBvbiB0aGUgY29u dGFpbmluZyBuYW1lc3BhY2UuCisJICovCisJaWYgKElzQShzdG10LCBSZW5hbWVTdG10KSkK Kwl7CisJIAlhY2xyZXN1bHQgPSBwZ19uYW1lc3BhY2VfYWNsY2hlY2soY2xhc3Nmb3JtLT5y ZWxuYW1lc3BhY2UsCisJCQkJCQkJCQkJICBHZXRVc2VySWQoKSwgQUNMX0NSRUFURSk7CisJ CWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQlhY2xjaGVja19lcnJvcihhY2xy ZXN1bHQsIEFDTF9LSU5EX05BTUVTUEFDRSwKKwkJCQkJCSAgIGdldF9uYW1lc3BhY2VfbmFt ZShjbGFzc2Zvcm0tPnJlbG5hbWVzcGFjZSkpOworCQlyZWx0eXBlID0gKChSZW5hbWVTdG10 ICopIHN0bXQpLT5yZW5hbWVUeXBlOworCX0KKwllbHNlIGlmIChJc0Eoc3RtdCwgQWx0ZXJP YmplY3RTY2hlbWFTdG10KSkKKwkJcmVsdHlwZSA9ICgoQWx0ZXJPYmplY3RTY2hlbWFTdG10 ICopIHN0bXQpLT5vYmplY3RUeXBlOworCWVsc2UgaWYgKElzQShzdG10LCBBbHRlclRhYmxl U3RtdCkpCisJCXJlbHR5cGUgPSAoKEFsdGVyVGFibGVTdG10ICopIHN0bXQpLT5yZWxraW5k OworCWVsc2UKKwl7CisJCXJlbHR5cGUgPSBPQkpFQ1RfVEFCTEU7CQkJLyogcGxhY2F0ZSBj b21waWxlciAqLworCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQi LCAoaW50KSBub2RlVGFnKHN0bXQpKTsKKwl9CisKKwkvKgorCSAqIEZvciBjb21wYXRpYmls aXR5IHdpdGggcHJpb3IgcmVsZWFzZXMsIHdlIGFsbG93IEFMVEVSIFRBQkxFIHRvIGJlCisJ ICogdXNlZCB3aXRoIG1vc3Qgb3RoZXIgdHlwZXMgb2YgcmVsYXRpb25zIChidXQgbm90IGNv bXBvc2l0ZSB0eXBlcykuCisJICogV2UgYWxsb3cgc2ltaWxhciBmbGV4aWJpbGl0eSBmb3Ig QUxURVIgSU5ERVggaW4gdGhlIGNhc2Ugb2YgUkVOQU1FLAorCSAqIGJ1dCBub3Qgb3RoZXJ3 aXNlLiAgT3RoZXJ3aXNlLCB0aGUgdXNlciBtdXN0IHNlbGVjdCB0aGUgY29ycmVjdCBmb3Jt CisJICogb2YgdGhlIGNvbW1hbmQgZm9yIHRoZSByZWxhdGlvbiBhdCBpc3N1ZS4KKwkgKi8K KwlpZiAocmVsdHlwZSA9PSBPQkpFQ1RfU0VRVUVOQ0UgJiYgcmVsa2luZCAhPSBSRUxLSU5E X1NFUVVFTkNFKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JP TkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSBzZXF1ZW5j ZSIsIHJ2LT5yZWxuYW1lKSkpOworCisJaWYgKHJlbHR5cGUgPT0gT0JKRUNUX1ZJRVcgJiYg cmVsa2luZCAhPSBSRUxLSU5EX1ZJRVcpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiXCIlc1wiIGlz IG5vdCBhIHZpZXciLCBydi0+cmVsbmFtZSkpKTsKKworCWlmIChyZWx0eXBlID09IE9CSkVD VF9GT1JFSUdOX1RBQkxFICYmIHJlbGtpbmQgIT0gUkVMS0lORF9GT1JFSUdOX1RBQkxFKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZ UEUpLAorCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSBmb3JlaWduIHRhYmxlIiwgcnYt PnJlbG5hbWUpKSk7CisKKwlpZiAocmVsdHlwZSA9PSBPQkpFQ1RfVFlQRSAmJiByZWxraW5k ICE9IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiXCIlc1wi IGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwgcnYtPnJlbG5hbWUpKSk7CisKKwlpZiAocmVs dHlwZSA9PSBPQkpFQ1RfRk9SRUlHTl9UQUJMRSAmJiByZWxraW5kICE9IFJFTEtJTkRfRk9S RUlHTl9UQUJMRSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dS T05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgZm9yZWln biB0YWJsZSIsIHJ2LT5yZWxuYW1lKSkpOworCisJaWYgKHJlbHR5cGUgPT0gT0JKRUNUX0lO REVYICYmIHJlbGtpbmQgIT0gUkVMS0lORF9JTkRFWAorCQkmJiAhSXNBKHN0bXQsIFJlbmFt ZVN0bXQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdf T0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYW4gaW5kZXgiLCBy di0+cmVsbmFtZSkpKTsKKworCS8qCisJICogRG9uJ3QgYWxsb3cgQUxURVIgVEFCTEUgb24g Y29tcG9zaXRlIHR5cGVzLiBXZSB3YW50IHBlb3BsZSB0byB1c2UgQUxURVIKKwkgKiBUWVBF IGZvciB0aGF0LgorCSAqLworCWlmIChyZWx0eXBlICE9IE9CSkVDVF9UWVBFICYmIHJlbGtp bmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJcIiVz XCIgaXMgYSBjb21wb3NpdGUgdHlwZSIsIHJ2LT5yZWxuYW1lKSwKKwkJCQkgZXJyaGludCgi VXNlIEFMVEVSIFRZUEUgaW5zdGVhZC4iKSkpOworCisJLyoKKwkgKiBEb24ndCBhbGxvdyBB TFRFUiBUQUJMRSAuLiBTRVQgU0NIRU1BIG9uIHJlbGF0aW9ucyB0aGF0IGNhbid0IGJlCisJ ICogbW92ZWQgdG8gYSBkaWZmZXJlbnQgc2NoZW1hLCBzdWNoIGFzIGluZGV4ZXMgYW5kIFRP QVNUIHRhYmxlcy4KKwkgKi8KKwlpZiAoSXNBKHN0bXQsIEFsdGVyT2JqZWN0U2NoZW1hU3Rt dCkgJiYgcmVsa2luZCAhPSBSRUxLSU5EX1JFTEFUSU9OCisJCSYmIHJlbGtpbmQgIT0gUkVM S0lORF9WSUVXICYmIHJlbGtpbmQgIT0gUkVMS0lORF9TRVFVRU5DRQorCQkmJiByZWxraW5k ICE9IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCWVycm1zZygiXCIlc1wiIGlz IG5vdCBhIHRhYmxlLCB2aWV3LCBzZXF1ZW5jZSwgb3IgZm9yZWlnbiB0YWJsZSIsCisJCQkJ ICAgcnYtPnJlbG5hbWUpKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYwppbmRleCA3MDRiYmU5Li5kZTE2YTYxIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpA QCAtNjk5LDEyICs2OTksMjMgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkoTm9kZSAqcGFy c2V0cmVlLAogCiAJCWNhc2UgVF9BbHRlclRhYmxlU3RtdDoKIAkJCXsKKwkJCQlBbHRlclRh YmxlU3RtdCAqYXRzdG10ID0gKEFsdGVyVGFibGVTdG10ICopIHBhcnNldHJlZTsKKwkJCQlP aWQJCQlyZWxpZDsKIAkJCQlMaXN0CSAgICpzdG10czsKIAkJCQlMaXN0Q2VsbCAgICpsOwor CQkJCUxPQ0tNT0RFCWxvY2ttb2RlOworCisJCQkJLyoKKwkJCQkgKiBGaWd1cmUgb3V0IGxv Y2sgbW9kZSwgYW5kIGFjcXVpcmUgbG9jay4gIFRoaXMgYWxzbyBkb2VzCisJCQkJICogYmFz aWMgcGVybWlzc2lvbnMgY2hlY2tzLCBzbyB0aGF0IHdlIHdvbid0IHdhaXQgZm9yIGEgbG9j aworCQkJCSAqIG9uIChmb3IgZXhhbXBsZSkgYSByZWxhdGlvbiBvbiB3aGljaCB3ZSBoYXZl IG5vCisJCQkJICogcGVybWlzc2lvbnMuCisJCQkJICovCisJCQkJbG9ja21vZGUgPSBBbHRl clRhYmxlR2V0TG9ja0xldmVsKGF0c3RtdC0+Y21kcyk7CisJCQkJcmVsaWQgPSBBbHRlclRh YmxlTG9va3VwUmVsYXRpb24oYXRzdG10LCBsb2NrbW9kZSk7CiAKIAkJCQkvKiBSdW4gcGFy c2UgYW5hbHlzaXMgLi4uICovCi0JCQkJc3RtdHMgPSB0cmFuc2Zvcm1BbHRlclRhYmxlU3Rt dCgoQWx0ZXJUYWJsZVN0bXQgKikgcGFyc2V0cmVlLAotCQkJCQkJCQkJCQkJcXVlcnlTdHJp bmcpOworCQkJCXN0bXRzID0gdHJhbnNmb3JtQWx0ZXJUYWJsZVN0bXQoYXRzdG10LCBxdWVy eVN0cmluZyk7CiAKIAkJCQkvKiAuLi4gYW5kIGRvIGl0ICovCiAJCQkJZm9yZWFjaChsLCBz dG10cykKQEAgLTcxNCw3ICs3MjUsNyBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShOb2Rl ICpwYXJzZXRyZWUsCiAJCQkJCWlmIChJc0Eoc3RtdCwgQWx0ZXJUYWJsZVN0bXQpKQogCQkJ CQl7CiAJCQkJCQkvKiBEbyB0aGUgdGFibGUgYWx0ZXJhdGlvbiBwcm9wZXIgKi8KLQkJCQkJ CUFsdGVyVGFibGUoKEFsdGVyVGFibGVTdG10ICopIHN0bXQpOworCQkJCQkJQWx0ZXJUYWJs ZShyZWxpZCwgbG9ja21vZGUsIChBbHRlclRhYmxlU3RtdCAqKSBzdG10KTsKIAkJCQkJfQog CQkJCQllbHNlCiAJCQkJCXsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Rh YmxlY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKaW5kZXggZTcz MzE1ZS4uMDNmMzk3ZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVj bWRzLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKQEAgLTI0LDcg KzI0LDkgQEAgZXh0ZXJuIE9pZAlEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10ICpzdG10LCBj aGFyIHJlbGtpbmQsIE9pZCBvd25lcklkKTsKIAogZXh0ZXJuIHZvaWQgUmVtb3ZlUmVsYXRp b25zKERyb3BTdG10ICpkcm9wKTsKIAotZXh0ZXJuIHZvaWQgQWx0ZXJUYWJsZShBbHRlclRh YmxlU3RtdCAqc3RtdCk7CitleHRlcm4gT2lkCUFsdGVyVGFibGVMb29rdXBSZWxhdGlvbihB bHRlclRhYmxlU3RtdCAqc3RtdCwgTE9DS01PREUgbG9ja21vZGUpOworCitleHRlcm4gdm9p ZCBBbHRlclRhYmxlKE9pZCByZWxpZCwgTE9DS01PREUgbG9ja21vZGUsIEFsdGVyVGFibGVT dG10ICpzdG10KTsKIAogZXh0ZXJuIExPQ0tNT0RFIEFsdGVyVGFibGVHZXRMb2NrTGV2ZWwo TGlzdCAqY21kcyk7CiAKQEAgLTMyLDggKzM0LDcgQEAgZXh0ZXJuIHZvaWQgQVRFeGVjQ2hh bmdlT3duZXIoT2lkIHJlbGF0aW9uT2lkLCBPaWQgbmV3T3duZXJJZCwgYm9vbCByZWN1cnNp bmcsIEwKIAogZXh0ZXJuIHZvaWQgQWx0ZXJUYWJsZUludGVybmFsKE9pZCByZWxpZCwgTGlz dCAqY21kcywgYm9vbCByZWN1cnNlKTsKIAotZXh0ZXJuIHZvaWQgQWx0ZXJUYWJsZU5hbWVz cGFjZShSYW5nZVZhciAqcmVsYXRpb24sIGNvbnN0IGNoYXIgKm5ld3NjaGVtYSwKLQkJCQkJ T2JqZWN0VHlwZSBzdG10dHlwZSwgTE9DS01PREUgbG9ja21vZGUpOworZXh0ZXJuIHZvaWQg QWx0ZXJUYWJsZU5hbWVzcGFjZShBbHRlck9iamVjdFNjaGVtYVN0bXQgKnN0bXQpOwogCiBl eHRlcm4gdm9pZCBBbHRlclJlbGF0aW9uTmFtZXNwYWNlSW50ZXJuYWwoUmVsYXRpb24gY2xh c3NSZWwsIE9pZCByZWxPaWQsCiAJCQkJCQkJICAgT2lkIG9sZE5zcE9pZCwgT2lkIG5ld05z cE9pZCwKCmNvbW1pdCAzM2FhYTEzOWU2MzAyZTgxYjRmYmYyNTcwYmUyMDE4OGJiOTc0YzRm CkF1dGhvcjogUm9iZXJ0IEhhYXMgPHJoYWFzQHBvc3RncmVzcWwub3JnPgpEYXRlOiAgIEZy aSBKYW4gNiAxNDozMDoyMyAyMDEyIC0wNTAwCgogICAgTWFrZSB0aGUgbnVtYmVyIG9mIENM T0cgYnVmZmVycyBhZGFwdGl2ZSwgYmFzZWQgb24gc2hhcmVkX2J1ZmZlcnMuCiAgICAKICAg IFByZXZpb3VzbHksIHRoaXMgd2FzIGhhcmRjb2RlZDogd2UgYWx3YXlzIGhhZCA4LiAgUGVy Zm9ybWFuY2UgdGVzdGluZwogICAgc2hvd3MgdGhhdCBpc24ndCBlbm91Z2gsIGVzcGVjaWFs bHkgb24gYmlnIFNNUCBzeXN0ZW1zLCBzbyB3ZSBhbGxvdyBpdAogICAgdG8gc2NhbGUgdXAg YXMgaGlnaCBhcyAzMiB3aGVuIHRoZXJlJ3MgYWRlcXVhdGUgbWVtb3J5LiAgT24gdGhlIGZs aXAKICAgIHNpZGUsIHdoZW4gc2hhcmVkX2J1ZmZlcnMgaXMgdmVyeSBzbWFsbCwgZHJvcCB0 aGUgbnVtYmVyIG9mIENMT0cgYnVmZmVycwogICAgZG93biB0byBhcyBsaXR0bGUgYXMgNCwg c28gdGhhdCB3ZSBjYW4gc3RhcnQgdGhlIHBvc3RtYXN0ZXIgZXZlbgogICAgd2hlbiB2ZXJ5 IGxpdHRsZSBzaGFyZWQgbWVtb3J5IGlzIGF2YWlsYWJsZS4KICAgIAogICAgUGVyIGV4dGVu c2l2ZSBkaXNjdXNzaW9uIHdpdGggU2ltb24gUmlnZ3MsIFRvbSBMYW5lLCBhbmQgb3RoZXJz IG9uCiAgICBwZ3NxbC1oYWNrZXJzLgoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL2Nsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYwpp bmRleCA0MDYwZTYwLi42OWI2ZWYzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS9jbG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5j CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL2Nsb2cuaCIKICNpbmNsdWRl ICJhY2Nlc3Mvc2xydS5oIgogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCisjaW5jbHVk ZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGdfdHJhY2UuaCIKIAogLyoKQEAgLTQwOSw2 ICs0MTAsMzQgQEAgVHJhbnNhY3Rpb25JZEdldFN0YXR1cyhUcmFuc2FjdGlvbklkIHhpZCwg WExvZ1JlY1B0ciAqbHNuKQogCXJldHVybiBzdGF0dXM7CiB9CiAKKy8qCisgKiBOdW1iZXIg b2Ygc2hhcmVkIENMT0cgYnVmZmVycy4KKyAqCisgKiBUZXN0aW5nIGR1cmluZyB0aGUgUG9z dGdyZVNRTCA5LjIgZGV2ZWxvcG1lbnQgY3ljbGUgcmV2ZWFsZWQgdGhhdCBvbiBhCisgKiBs YXJnZSBtdWx0aS1wcm9jZXNzb3Igc3lzdGVtLCBpdCB3YXMgcG9zc2libGUgdG8gaGF2ZSBt b3JlIENMT0cgcGFnZQorICogcmVxdWVzdHMgaW4gZmxpZ2h0IGF0IG9uZSB0aW1lIHRoYW4g dGhlIG51bWViciBvZiBDTE9HIGJ1ZmZlcnMgd2hpY2ggZXhpc3RlZAorICogYXQgdGhhdCB0 aW1lLCB3aGljaCB3YXMgaGFyZGNvZGVkIHRvIDguICBGdXJ0aGVyIHRlc3RpbmcgcmV2ZWFs ZWQgdGhhdAorICogcGVyZm9ybWFuY2UgZHJvcHBlZCBvZmYgd2l0aCBtb3JlIHRoYW4gMzIg Q0xPRyBidWZmZXJzLCBwb3NzaWJseSBiZWNhdXNlCisgKiB0aGUgbGluZWFyIGJ1ZmZlciBz ZWFyY2ggYWxnb3JpdGhtIGRvZXNuJ3Qgc2NhbGUgd2VsbC4KKyAqCisgKiBVbmNvbmRpdGlv bmFsbHkgaW5jcmVhc2luZyB0aGUgbnVtYmVyIG9mIENMT0cgYnVmZmVycyB0byAzMiBkaWQg bm90IHNlZW0KKyAqIGxpa2UgYSBnb29kIGlkZWEsIGJlY2F1c2UgaXQgd291bGQgaW5jcmVh c2UgdGhlIG1pbmltdW0gYW1vdW50IG9mIHNoYXJlZAorICogbWVtb3J5IHJlcXVpcmVkIHRv IHN0YXJ0LCB3aGljaCBjb3VsZCBiZSBhIHByb2JsZW0gZm9yIHBlb3BsZSBydW5uaW5nIHZl cnkKKyAqIHNtYWxsIGNvbmZpZ3VyYXRpb25zLiAgVGhlIGZvbGxvd2luZyBmb3JtdWxhIHNl ZW1zIHRvIHJlcHJlc2VudCBhIHJlYXNvbmFibGUKKyAqIGNvbXByb21pc2U6IHBlb3BsZSB3 aXRoIHZlcnkgbG93IHZhbHVlcyBmb3Igc2hhcmVkX2J1ZmZlcnMgd2lsbCBnZXQgZmV3ZXIK KyAqIENMT0cgYnVmZmVycyBhcyB3ZWxsLCBhbmQgZXZlcnlvbmUgZWxzZSB3aWxsIGdldCAz Mi4KKyAqCisgKiBJdCBpcyBsaWtlbHkgdGhhdCBzb21lIGZ1cnRoZXIgd29yayB3aWxsIGJl IG5lZWRlZCBoZXJlIGluIGZ1dHVyZSByZWxlYXNlczsKKyAqIGZvciBleGFtcGxlLCBvbiBh IDY0LWNvcmUgc2VydmVyLCB0aGUgbWF4aW11bSBudW1iZXIgb2YgQ0xPRyByZXF1ZXN0cyB0 aGF0CisgKiBjYW4gYmUgc2ltdWx0YW5lb3VzbHkgaW4gZmxpZ2h0IHdpbGwgYmUgZXZlbiBs YXJnZXIuICBCdXQgdGhhdCB3aWxsCisgKiBhcHBhcmVudGx5IHJlcXVpcmUgbW9yZSB0aGFu IGp1c3QgY2hhbmdpbmcgdGhlIGZvcm11bGEsIHNvIGZvciBub3cgd2UgdGFrZQorICogdGhl IGVhc3kgd2F5IG91dC4KKyAqLworU2l6ZQorQ0xPR1NobWVtQnVmZmVycyh2b2lkKQorewor CXJldHVybiBNaW4oMzIsIE1heCg0LCBOQnVmZmVycyAvIDUxMikpOworfQogCiAvKgogICog SW5pdGlhbGl6YXRpb24gb2Ygc2hhcmVkIG1lbW9yeSBmb3IgQ0xPRwpAQCAtNDE2LDE0ICs0 NDUsMTQgQEAgVHJhbnNhY3Rpb25JZEdldFN0YXR1cyhUcmFuc2FjdGlvbklkIHhpZCwgWExv Z1JlY1B0ciAqbHNuKQogU2l6ZQogQ0xPR1NobWVtU2l6ZSh2b2lkKQogewotCXJldHVybiBT aW1wbGVMcnVTaG1lbVNpemUoTlVNX0NMT0dfQlVGRkVSUywgQ0xPR19MU05TX1BFUl9QQUdF KTsKKwlyZXR1cm4gU2ltcGxlTHJ1U2htZW1TaXplKENMT0dTaG1lbUJ1ZmZlcnMoKSwgQ0xP R19MU05TX1BFUl9QQUdFKTsKIH0KIAogdm9pZAogQ0xPR1NobWVtSW5pdCh2b2lkKQogewog CUNsb2dDdGwtPlBhZ2VQcmVjZWRlcyA9IENMT0dQYWdlUHJlY2VkZXM7Ci0JU2ltcGxlTHJ1 SW5pdChDbG9nQ3RsLCAiQ0xPRyBDdGwiLCBOVU1fQ0xPR19CVUZGRVJTLCBDTE9HX0xTTlNf UEVSX1BBR0UsCisJU2ltcGxlTHJ1SW5pdChDbG9nQ3RsLCAiQ0xPRyBDdGwiLCBDTE9HU2ht ZW1CdWZmZXJzKCksIENMT0dfTFNOU19QRVJfUEFHRSwKIAkJCQkgIENMb2dDb250cm9sTG9j aywgInBnX2Nsb2ciKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9s bWdyL2x3bG9jay5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2x3bG9jay5jCmluZGV4 IDk2ZjBkMzguLmNjNDE1NjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1n ci9sd2xvY2suYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbHdsb2NrLmMKQEAg LTE3MSw3ICsxNzEsNyBAQCBOdW1MV0xvY2tzKHZvaWQpCiAJbnVtTG9ja3MgKz0gTWF4QmFj a2VuZHMgKyBOVU1fQVVYSUxJQVJZX1BST0NTOwogCiAJLyogY2xvZy5jIG5lZWRzIG9uZSBw ZXIgQ0xPRyBidWZmZXIgKi8KLQludW1Mb2NrcyArPSBOVU1fQ0xPR19CVUZGRVJTOworCW51 bUxvY2tzICs9IENMT0dTaG1lbUJ1ZmZlcnMoKTsKIAogCS8qIHN1YnRyYW5zLmMgbmVlZHMg b25lIHBlciBTdWJUcmFucyBidWZmZXIgKi8KIAludW1Mb2NrcyArPSBOVU1fU1VCVFJBTlNf QlVGRkVSUzsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9jbG9nLmggYi9zcmMv aW5jbHVkZS9hY2Nlc3MvY2xvZy5oCmluZGV4IDljZjU0YTQuLmJlZDNiOGMgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9jbG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNz L2Nsb2cuaApAQCAtMjgsMTQgKzI4LDExIEBAIHR5cGVkZWYgaW50IFhpZFN0YXR1czsKICNk ZWZpbmUgVFJBTlNBQ1RJT05fU1RBVFVTX1NVQl9DT01NSVRURUQJMHgwMwogCiAKLS8qIE51 bWJlciBvZiBTTFJVIGJ1ZmZlcnMgdG8gdXNlIGZvciBjbG9nICovCi0jZGVmaW5lIE5VTV9D TE9HX0JVRkZFUlMJOAotCi0KIGV4dGVybiB2b2lkIFRyYW5zYWN0aW9uSWRTZXRUcmVlU3Rh dHVzKFRyYW5zYWN0aW9uSWQgeGlkLCBpbnQgbnN1YnhpZHMsCiAJCQkJICAgVHJhbnNhY3Rp b25JZCAqc3VieGlkcywgWGlkU3RhdHVzIHN0YXR1cywgWExvZ1JlY1B0ciBsc24pOwogZXh0 ZXJuIFhpZFN0YXR1cyBUcmFuc2FjdGlvbklkR2V0U3RhdHVzKFRyYW5zYWN0aW9uSWQgeGlk LCBYTG9nUmVjUHRyICpsc24pOwogCitleHRlcm4gU2l6ZSBDTE9HU2htZW1CdWZmZXJzKHZv aWQpOwogZXh0ZXJuIFNpemUgQ0xPR1NobWVtU2l6ZSh2b2lkKTsKIGV4dGVybiB2b2lkIENM T0dTaG1lbUluaXQodm9pZCk7CiBleHRlcm4gdm9pZCBCb290U3RyYXBDTE9HKHZvaWQpOwoK Y29tbWl0IDdhNzJlZmRhNzJhODVlZWYxNTEzZjJhMDI0NDllMjRkYzRiZGZjNzQKQXV0aG9y OiBUb20gTGFuZSA8dGdsQHNzcy5wZ2gucGEudXM+CkRhdGU6ICAgRnJpIEphbiA2IDEzOjMx OjM3IDIwMTIgLTA1MDAKCiAgICBGaXggdHlwbywgcGdfdHlwZXNfZGF0ZS5oID0+IHBndHlw ZXNfZGF0ZS5oLgogICAgCiAgICBTcG90dGVkIGJ5IEtvaXp1bWkgU2F0b3J1LgoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9lY3BnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZWNwZy5zZ21s CmluZGV4IDY4ODMzY2EuLmRlZGQ4ODYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9lY3Bn LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2VjcGcuc2dtbApAQCAtMTA0Myw3ICsxMDQzLDcg QEAgdHMgPSAyMDEwLTA2LTI3IDE4OjAzOjU2Ljk0OTM0MwogCiAgICAgIDxwYXJhPgogICAg ICAgSW4gYWRkaXRpb24sIHRoZSBEQVRFIHR5cGUgY2FuIGJlIGhhbmRsZWQgaW4gdGhlIHNh bWUgd2F5LiBUaGUKLSAgICAgIHByb2dyYW0gaGFzIHRvIGluY2x1ZGUgPGZpbGVuYW1lPnBn X3R5cGVzX2RhdGUuaDwvZmlsZW5hbWU+LCBkZWNsYXJlIGEgaG9zdCB2YXJpYWJsZQorICAg ICAgcHJvZ3JhbSBoYXMgdG8gaW5jbHVkZSA8ZmlsZW5hbWU+cGd0eXBlc19kYXRlLmg8L2Zp bGVuYW1lPiwgZGVjbGFyZSBhIGhvc3QgdmFyaWFibGUKICAgICAgIGFzIHRoZSBkYXRlIHR5 cGUgYW5kIGNvbnZlcnQgYSBEQVRFIHZhbHVlIGludG8gYSB0ZXh0IGZvcm0gdXNpbmcKICAg ICAgIDxmdW5jdGlvbj5QR1RZUEVTZGF0ZV90b19hc2MoKTwvZnVuY3Rpb24+IGZ1bmN0aW9u LiBGb3IgbW9yZSBkZXRhaWxzIGFib3V0IHRoZQogICAgICAgcGd0eXBlcyBsaWJyYXJ5IGZ1 bmN0aW9ucywgc2VlIDx4cmVmIGxpbmtlbmQ9ImVjcGctcGd0eXBlcyI+LgoKY29tbWl0IGYz MzE2YTA1YjVkZGVlNjE5YmEwNjE3NzE2YTRmZWYzY2ViMjlkZWQKQXV0aG9yOiBUb20gTGFu ZSA8dGdsQHNzcy5wZ2gucGEudXM+CkRhdGU6ICAgRnJpIEphbiA2IDEzOjA0OjA5IDIwMTIg LTA1MDAKCiAgICBGaXggcGdfcmVzdG9yZSdzIGRpcmVjdC10by1kYXRhYmFzZSBtb2RlIGZv ciBJTlNFUlQtc3R5bGUgdGFibGUgZGF0YS4KICAgIAogICAgSW4gY29tbWl0IDY1NDVhOTAx YWFmODRjYjA1MjEyYmI2YTc2NzQwNTk5MDhmNTI3YzMsIEkgcmVtb3ZlZCB0aGUgbWluaSBT UUwKICAgIGxleGVyIHRoYXQgd2FzIGluIHBnX2JhY2t1cF9kYi5jLCB0aGlua2luZyB0aGF0 IGl0IGhhZCBubyByZWFsIHB1cnBvc2UKICAgIGJleW9uZCBzZXBhcmF0aW5nIENPUFkgZGF0 YSBmcm9tIFNRTCBjb21tYW5kcywgd2hpY2ggcHVycG9zZSBoYWQgYmVlbgogICAgb2Jzb2xl dGVkIGJ5IGxvbmctYWdvIGZpeGVzIGluIHBnX2R1bXAncyBhcmNoaXZlIGZpbGUgZm9ybWF0 LgogICAgVW5mb3J0dW5hdGVseSB0aGlzIHdhcyBpbiBlcnJvcjogdGhhdCBjb2RlIHdhcyBh bHNvIHVzZWQgdG8gaWRlbnRpZnkKICAgIGNvbW1hbmQgYm91bmRhcmllcyBpbiBJTlNFUlQt c3R5bGUgdGFibGUgZGF0YSwgd2hpY2ggaXMgcnVuIHRvZ2V0aGVyIGFzIGEKICAgIHNpbmds ZSBzdHJpbmcgaW4gdGhlIGFyY2hpdmUgZmlsZSBmb3IgYmV0dGVyIGNvbXByZXNzaWJpbGl0 eS4gIEFzIGEgcmVzdWx0LAogICAgZGlyZWN0LXRvLWRhdGFiYXNlIHJlc3RvcmVzIGZyb20g YXJjaGl2ZSBmaWxlcyBtYWRlIHdpdGggLS1pbnNlcnRzIG9yCiAgICAtLWNvbHVtbi1pbnNl cnRzIGZhaWwgaW4gb3VyIGxhdGVzdCByZWxlYXNlcywgYXMgcmVwb3J0ZWQgYnkgRGljayBW aXNzZXIuCiAgICAKICAgIFRvIGZpeCwgcmVzdG9yZSB0aGUgbWluaSBTUUwgbGV4ZXIsIGJ1 dCBzaW1wbGlmeSBpdCBieSBhZGp1c3RpbmcgdGhlCiAgICBjYWxsaW5nIGxvZ2ljIHNvIHRo YXQgaXQncyBvbmx5IHJlcXVpcmVkIHRvIGNvcGUgd2l0aCBJTlNFUlQtc3R5bGUgdGFibGUK ICAgIGRhdGEsIG5vdCBhcmJpdHJhcnkgU1FMIGNvbW1hbmRzLiAgVGhpcyBhbGxvd3MgdXMg dG8gbm90IGhhdmUgdG8gZGVhbCB3aXRoCiAgICBTUUwgY29tbWVudHMsIEUnJyBzdHJpbmdz LCBvciBkb2xsYXItcXVvdGVkIHN0cmluZ3MsIG5vbmUgb2Ygd2hpY2ggaGF2ZQogICAgZXZl ciBiZWVuIGVtaXR0ZWQgYnkgZHVtcFRhYmxlRGF0YV9pbnNlcnQuCiAgICAKICAgIEFsc28s IGZpeCB0aGUgbGV4ZXIgdG8gY29wZSB3aXRoIHN0YW5kYXJkLWNvbmZvcm1pbmcgc3RyaW5n cywgd2hpY2ggd2FzIHRoZQogICAgYWN0dWFsIGJ1ZyB0aGF0IHRoZSBwcmV2aW91cyBwYXRj aCB3YXMgbWVhbnQgdG8gc29sdmUuCiAgICAKICAgIEJhY2stcGF0Y2ggdG8gYWxsIHN1cHBv cnRlZCBicmFuY2hlcy4gIFRoZSBwcmV2aW91cyBwYXRjaCB3ZW50IGJhY2sgdG8gOC4yLAog ICAgd2hpY2ggdW5mb3J0dW5hdGVseSBtZWFucyB0aGF0IHRoZSBFT0wgcmVsZWFzZSBvZiA4 LjIgY29udGFpbnMgdGhpcyBidWcsCiAgICBidXQgSSBkb24ndCB0aGluayB3ZSdyZSBkb2lu ZyBhbm90aGVyIDguMiByZWxlYXNlIGp1c3QgYmVjYXVzZSBvZiB0aGF0LgoKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCBkOWVkZWJiLi4yMzRlNTBmIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBAIC02MjAsMjAgKzYyMCwyMCBA QCByZXN0b3JlX3RvY19lbnRyeShBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlLAog CQkJCQlpZiAodGUtPmNvcHlTdG10ICYmIHN0cmxlbih0ZS0+Y29weVN0bXQpID4gMCkKIAkJ CQkJewogCQkJCQkJYWhwcmludGYoQUgsICIlcyIsIHRlLT5jb3B5U3RtdCk7Ci0JCQkJCQlB SC0+d3JpdGluZ0NvcHlEYXRhID0gdHJ1ZTsKKwkJCQkJCUFILT5vdXRwdXRLaW5kID0gT1VU UFVUX0NPUFlEQVRBOwogCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJCUFILT5vdXRwdXRLaW5k ID0gT1VUUFVUX09USEVSREFUQTsKIAogCQkJCQkoKkFILT5QcmludFRvY0RhdGFQdHIpIChB SCwgdGUsIHJvcHQpOwogCiAJCQkJCS8qCiAJCQkJCSAqIFRlcm1pbmF0ZSBDT1BZIGlmIG5l ZWRlZC4KIAkJCQkJICovCi0JCQkJCWlmIChBSC0+d3JpdGluZ0NvcHlEYXRhKQotCQkJCQl7 Ci0JCQkJCQlpZiAoUmVzdG9yaW5nVG9EQihBSCkpCi0JCQkJCQkJRW5kREJDb3B5TW9kZShB SCwgdGUpOwotCQkJCQkJQUgtPndyaXRpbmdDb3B5RGF0YSA9IGZhbHNlOwotCQkJCQl9CisJ CQkJCWlmIChBSC0+b3V0cHV0S2luZCA9PSBPVVRQVVRfQ09QWURBVEEgJiYKKwkJCQkJCVJl c3RvcmluZ1RvREIoQUgpKQorCQkJCQkJRW5kREJDb3B5TW9kZShBSCwgdGUpOworCQkJCQlB SC0+b3V0cHV0S2luZCA9IE9VVFBVVF9TUUxDTURTOwogCiAJCQkJCS8qIGNsb3NlIG91dCB0 aGUgdHJhbnNhY3Rpb24gc3RhcnRlZCBhYm92ZSAqLwogCQkJCQlpZiAoaXNfcGFyYWxsZWwg JiYgdGUtPmNyZWF0ZWQpCkBAIC0xOTc1LDYgKzE5NzUsOCBAQCBfYWxsb2NBSChjb25zdCBj aGFyICpGaWxlU3BlYywgY29uc3QgQXJjaGl2ZUZvcm1hdCBmbXQsCiAJQUgtPm1vZGUgPSBt b2RlOwogCUFILT5jb21wcmVzc2lvbiA9IGNvbXByZXNzaW9uOwogCisJbWVtc2V0KCYoQUgt PnNxbHBhcnNlKSwgMCwgc2l6ZW9mKEFILT5zcWxwYXJzZSkpOworCiAJLyogT3BlbiBzdGRv dXQgd2l0aCBubyBjb21wcmVzc2lvbiBmb3IgQUggb3V0cHV0IGhhbmRsZSAqLwogCUFILT5n ek91dCA9IDA7CiAJQUgtPk9GID0gc3Rkb3V0OwpAQCAtNDE5NCw3ICs0MTk2LDggQEAgQ2xv bmVBcmNoaXZlKEFyY2hpdmVIYW5kbGUgKkFIKQogCWNsb25lID0gKEFyY2hpdmVIYW5kbGUg KikgcGdfbWFsbG9jKHNpemVvZihBcmNoaXZlSGFuZGxlKSk7CiAJbWVtY3B5KGNsb25lLCBB SCwgc2l6ZW9mKEFyY2hpdmVIYW5kbGUpKTsKIAotCS8qIEhhbmRsZSBmb3JtYXQtaW5kZXBl bmRlbnQgZmllbGRzIC4uLiBub25lIGF0IHRoZSBtb21lbnQgKi8KKwkvKiBIYW5kbGUgZm9y bWF0LWluZGVwZW5kZW50IGZpZWxkcyAqLworCW1lbXNldCgmKGNsb25lLT5zcWxwYXJzZSks IDAsIHNpemVvZihjbG9uZS0+c3FscGFyc2UpKTsKIAogCS8qIFRoZSBjbG9uZSB3aWxsIGhh dmUgaXRzIG93biBjb25uZWN0aW9uLCBzbyBkaXNyZWdhcmQgY29ubmVjdGlvbiBzdGF0ZSAq LwogCWNsb25lLT5jb25uZWN0aW9uID0gTlVMTDsKQEAgLTQyMjcsNyArNDIzMCw5IEBAIERl Q2xvbmVBcmNoaXZlKEFyY2hpdmVIYW5kbGUgKkFIKQogCS8qIENsZWFyIGZvcm1hdC1zcGVj aWZpYyBzdGF0ZSAqLwogCShBSC0+RGVDbG9uZVB0cikgKEFIKTsKIAotCS8qIENsZWFyIHN0 YXRlIGFsbG9jYXRlZCBieSBDbG9uZUFyY2hpdmUgLi4uIG5vbmUgYXQgdGhlIG1vbWVudCAq LworCS8qIENsZWFyIHN0YXRlIGFsbG9jYXRlZCBieSBDbG9uZUFyY2hpdmUgKi8KKwlpZiAo QUgtPnNxbHBhcnNlLmN1ckNtZCkKKwkJZGVzdHJveVBRRXhwQnVmZmVyKEFILT5zcWxwYXJz ZS5jdXJDbWQpOwogCiAJLyogQ2xlYXIgYW55IGNvbm5lY3Rpb24tbG9jYWwgc3RhdGUgKi8K IAlpZiAoQUgtPmN1cnJVc2VyKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2Jh Y2t1cF9hcmNoaXZlci5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5o CmluZGV4IDdhNGZkMzYuLjZkZDUxNTggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9w Z19iYWNrdXBfYXJjaGl2ZXIuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Fy Y2hpdmVyLmgKQEAgLTEzNCw2ICsxMzQsMjAgQEAgdHlwZWRlZiBzaXplX3QgKCpDdXN0b21P dXRQdHIpIChzdHJ1Y3QgX2FyY2hpdmVIYW5kbGUgKiBBSCwgY29uc3Qgdm9pZCAqYnVmLCBz aXoKIAogdHlwZWRlZiBlbnVtCiB7CisJU1FMX1NDQU4gPSAwLAkJCQkvKiBub3JtYWwgKi8K KwlTUUxfSU5fU0lOR0xFX1FVT1RFLAkJLyogJy4uLicgbGl0ZXJhbCAqLworCVNRTF9JTl9E T1VCTEVfUVVPVEUJCQkvKiAiLi4uIiBpZGVudGlmaWVyICovCit9IHNxbHBhcnNlU3RhdGU7 CisKK3R5cGVkZWYgc3RydWN0Cit7CisJc3FscGFyc2VTdGF0ZSBzdGF0ZTsJCS8qIHNlZSBh Ym92ZSAqLworCWJvb2wJCWJhY2tTbGFzaDsJCS8qIG5leHQgY2hhciBpcyBiYWNrc2xhc2gg cXVvdGVkPyAqLworCVBRRXhwQnVmZmVyIGN1ckNtZDsJCQkvKiBpbmNvbXBsZXRlIGxpbmUg KE5VTEwgaWYgbm90IGNyZWF0ZWQpICovCit9IHNxbHBhcnNlSW5mbzsKKwordHlwZWRlZiBl bnVtCit7CiAJU1RBR0VfTk9ORSA9IDAsCiAJU1RBR0VfSU5JVElBTElaSU5HLAogCVNUQUdF X1BST0NFU1NJTkcsCkBAIC0xNDIsNiArMTU2LDEzIEBAIHR5cGVkZWYgZW51bQogCiB0eXBl ZGVmIGVudW0KIHsKKwlPVVRQVVRfU1FMQ01EUyA9IDAsCQkJLyogZW1pdHRpbmcgZ2VuZXJh bCBTUUwgY29tbWFuZHMgKi8KKwlPVVRQVVRfQ09QWURBVEEsCQkJLyogd3JpdGluZyBDT1BZ IGRhdGEgKi8KKwlPVVRQVVRfT1RIRVJEQVRBCQkJLyogd3JpdGluZyBkYXRhIGFzIElOU0VS VCBjb21tYW5kcyAqLworfSBBcmNoaXZlck91dHB1dDsKKwordHlwZWRlZiBlbnVtCit7CiAJ UkVRX1NDSEVNQSA9IDEsCiAJUkVRX0RBVEEgPSAyLAogCVJFUV9BTEwgPSBSRVFfU0NIRU1B ICsgUkVRX0RBVEEKQEAgLTE2Nyw2ICsxODgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfYXJjaGl2 ZUhhbmRsZQogCQkJCQkJCQkgKiBBZGRlZCBWMS43ICovCiAJQXJjaGl2ZUZvcm1hdCBmb3Jt YXQ7CQkvKiBBcmNoaXZlIGZvcm1hdCAqLwogCisJc3FscGFyc2VJbmZvIHNxbHBhcnNlOwkJ Lyogc3RhdGUgZm9yIHBhcnNpbmcgSU5TRVJUIGRhdGEgKi8KKwogCXRpbWVfdAkJY3JlYXRl RGF0ZTsJCS8qIERhdGUgYXJjaGl2ZSBjcmVhdGVkICovCiAKIAkvKgpAQCAtMjE3LDcgKzI0 MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9hcmNoaXZlSGFuZGxlCiAJUEdjb25uCSAgICpjb25u ZWN0aW9uOwogCWludAkJCWNvbm5lY3RUb0RCOwkvKiBGbGFnIHRvIGluZGljYXRlIGlmIGRp cmVjdCBEQiBjb25uZWN0aW9uIGlzCiAJCQkJCQkJCSAqIHJlcXVpcmVkICovCi0JYm9vbAkJ d3JpdGluZ0NvcHlEYXRhOwkvKiBUcnVlIHdoZW4gd2UgYXJlIHNlbmRpbmcgQ09QWSBkYXRh ICovCisJQXJjaGl2ZXJPdXRwdXQgb3V0cHV0S2luZDsJLyogRmxhZyBmb3Igd2hhdCB3ZSdy ZSBjdXJyZW50bHkgd3JpdGluZyAqLwogCWJvb2wJCXBnQ29weUluOwkJLyogQ3VycmVudGx5 IGluIGxpYnBxICdDT1BZIElOJyBtb2RlLiAqLwogCiAJaW50CQkJbG9GZDsJCQkvKiBCTE9C IGZkICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2RiLmMgYi9z cmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2RiLmMKaW5kZXggYmQxYjhlZi4uNjJjOGIzMyAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kYi5jCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXBfZGIuYwpAQCAtMzY1LDE0ICszNjUsOTIgQEAgRXhlY3V0 ZVNxbENvbW1hbmQoQXJjaGl2ZUhhbmRsZSAqQUgsIGNvbnN0IGNoYXIgKnFyeSwgY29uc3Qg Y2hhciAqZGVzYykKIAogCiAvKgorICogUHJvY2VzcyBub24tQ09QWSB0YWJsZSBkYXRhICh0 aGF0IGlzLCBJTlNFUlQgY29tbWFuZHMpLgorICoKKyAqIFRoZSBjb21tYW5kcyBoYXZlIGJl ZW4gcnVuIHRvZ2V0aGVyIGFzIG9uZSBsb25nIHN0cmluZyBmb3IgY29tcHJlc3NpYmlsaXR5 LAorICogYW5kIHdlIGFyZSByZWNlaXZpbmcgdGhlbSBpbiBidWZmZXJsb2FkcyB3aXRoIGFy Yml0cmFyeSBib3VuZGFyaWVzLCBzbyB3ZQorICogaGF2ZSB0byBsb2NhdGUgY29tbWFuZCBi b3VuZGFyaWVzIGFuZCBzYXZlIHBhcnRpYWwgY29tbWFuZHMgYWNyb3NzIGNhbGxzLgorICog QWxsIHN0YXRlIG11c3QgYmUga2VwdCBpbiBBSC0+c3FscGFyc2UsIG5vdCBpbiBsb2NhbCB2 YXJpYWJsZXMgb2YgdGhpcworICogcm91dGluZS4gIFdlIGFzc3VtZSB0aGF0IEFILT5zcWxw YXJzZSB3YXMgZmlsbGVkIHdpdGggemVyb2VzIHdoZW4gY3JlYXRlZC4KKyAqCisgKiBXZSBo YXZlIHRvIGxleCB0aGUgZGF0YSB0byB0aGUgZXh0ZW50IG9mIGlkZW50aWZ5aW5nIGxpdGVy YWxzIGFuZCBxdW90ZWQKKyAqIGlkZW50aWZpZXJzLCBzbyB0aGF0IHdlIGNhbiByZWNvZ25p emUgc3RhdGVtZW50LXRlcm1pbmF0aW5nIHNlbWljb2xvbnMuCisgKiBXZSBhc3N1bWUgdGhh dCBJTlNFUlQgZGF0YSB3aWxsIG5vdCBjb250YWluIFNRTCBjb21tZW50cywgRScnIGxpdGVy YWxzLAorICogb3IgZG9sbGFyLXF1b3RlZCBzdHJpbmdzLCBzbyB0aGlzIGlzIG11Y2ggc2lt cGxlciB0aGFuIGEgZnVsbCBTUUwgbGV4ZXIuCisgKi8KK3N0YXRpYyB2b2lkCitFeGVjdXRl SW5zZXJ0Q29tbWFuZHMoQXJjaGl2ZUhhbmRsZSAqQUgsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6 ZV90IGJ1ZkxlbikKK3sKKwljb25zdCBjaGFyICpxcnkgPSBidWY7CisJY29uc3QgY2hhciAq ZW9zID0gYnVmICsgYnVmTGVuOworCisJLyogaW5pdGlhbGl6ZSBjb21tYW5kIGJ1ZmZlciBp ZiBmaXJzdCB0aW1lIHRocm91Z2ggKi8KKwlpZiAoQUgtPnNxbHBhcnNlLmN1ckNtZCA9PSBO VUxMKQorCQlBSC0+c3FscGFyc2UuY3VyQ21kID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwor CWZvciAoOyBxcnkgPCBlb3M7IHFyeSsrKQorCXsKKwkJY2hhcgljaCA9ICpxcnk7CisKKwkJ LyogRm9yIG5lYXRuZXNzLCB3ZSBza2lwIGFueSBuZXdsaW5lcyBiZXR3ZWVuIGNvbW1hbmRz ICovCisJCWlmICghKGNoID09ICdcbicgJiYgQUgtPnNxbHBhcnNlLmN1ckNtZC0+bGVuID09 IDApKQorCQkJYXBwZW5kUFFFeHBCdWZmZXJDaGFyKEFILT5zcWxwYXJzZS5jdXJDbWQsIGNo KTsKKworCQlzd2l0Y2ggKEFILT5zcWxwYXJzZS5zdGF0ZSkKKwkJeworCQkJY2FzZSBTUUxf U0NBTjoJCS8qIERlZmF1bHQgc3RhdGUgPT0gMCwgc2V0IGluIF9hbGxvY0FIICovCisJCQkJ aWYgKGNoID09ICc7JykKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIFdlJ3ZlIGZvdW5kIHRo ZSBlbmQgb2YgYSBzdGF0ZW1lbnQuIFNlbmQgaXQgYW5kIHJlc2V0CisJCQkJCSAqIHRoZSBi dWZmZXIuCisJCQkJCSAqLworCQkJCQlFeGVjdXRlU3FsQ29tbWFuZChBSCwgQUgtPnNxbHBh cnNlLmN1ckNtZC0+ZGF0YSwKKwkJCQkJCQkJCSAgImNvdWxkIG5vdCBleGVjdXRlIHF1ZXJ5 Iik7CisJCQkJCXJlc2V0UFFFeHBCdWZmZXIoQUgtPnNxbHBhcnNlLmN1ckNtZCk7CisJCQkJ fQorCQkJCWVsc2UgaWYgKGNoID09ICdcJycpCisJCQkJeworCQkJCQlBSC0+c3FscGFyc2Uu c3RhdGUgPSBTUUxfSU5fU0lOR0xFX1FVT1RFOworCQkJCQlBSC0+c3FscGFyc2UuYmFja1Ns YXNoID0gZmFsc2U7CisJCQkJfQorCQkJCWVsc2UgaWYgKGNoID09ICciJykKKwkJCQl7CisJ CQkJCUFILT5zcWxwYXJzZS5zdGF0ZSA9IFNRTF9JTl9ET1VCTEVfUVVPVEU7CisJCQkJfQor CQkJCWJyZWFrOworCisJCQljYXNlIFNRTF9JTl9TSU5HTEVfUVVPVEU6CisJCQkJLyogV2Ug bmVlZG4ndCBoYW5kbGUgJycgc3BlY2lhbGx5ICovCisJCQkJaWYgKGNoID09ICdcJycgJiYg IUFILT5zcWxwYXJzZS5iYWNrU2xhc2gpCisJCQkJCUFILT5zcWxwYXJzZS5zdGF0ZSA9IFNR TF9TQ0FOOworCQkJCWVsc2UgaWYgKGNoID09ICdcXCcgJiYgIUFILT5wdWJsaWMuc3RkX3N0 cmluZ3MpCisJCQkJCUFILT5zcWxwYXJzZS5iYWNrU2xhc2ggPSAhQUgtPnNxbHBhcnNlLmJh Y2tTbGFzaDsKKwkJCQllbHNlCisJCQkJCUFILT5zcWxwYXJzZS5iYWNrU2xhc2ggPSBmYWxz ZTsKKwkJCQlicmVhazsKKworCQkJY2FzZSBTUUxfSU5fRE9VQkxFX1FVT1RFOgorCQkJCS8q IFdlIG5lZWRuJ3QgaGFuZGxlICIiIHNwZWNpYWxseSAqLworCQkJCWlmIChjaCA9PSAnIicp CisJCQkJCUFILT5zcWxwYXJzZS5zdGF0ZSA9IFNRTF9TQ0FOOworCQkJCWJyZWFrOworCQl9 CisJfQorfQorCisKKy8qCiAgKiBJbXBsZW1lbnQgYWh3cml0ZSgpIGZvciBkaXJlY3QtdG8t REIgcmVzdG9yZQogICovCiBpbnQKIEV4ZWN1dGVTcWxDb21tYW5kQnVmKEFyY2hpdmVIYW5k bGUgKkFILCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBidWZMZW4pCiB7Ci0JaWYgKEFILT53 cml0aW5nQ29weURhdGEpCisJaWYgKEFILT5vdXRwdXRLaW5kID09IE9VVFBVVF9DT1BZREFU QSkKIAl7CiAJCS8qCisJCSAqIENPUFkgZGF0YS4KKwkJICoKIAkJICogV2UgZHJvcCB0aGUg ZGF0YSBvbiB0aGUgZmxvb3IgaWYgbGlicHEgaGFzIGZhaWxlZCB0byBlbnRlciBDT1BZCiAJ CSAqIG1vZGU7IHRoaXMgYWxsb3dzIHVzIHRvIGJlaGF2ZSByZWFzb25hYmx5IHdoZW4gdHJ5 aW5nIHRvIGNvbnRpbnVlCiAJCSAqIGFmdGVyIGFuIGVycm9yIGluIGEgQ09QWSBjb21tYW5k LgpAQCAtMzgyLDkgKzQ2MCwxOSBAQCBFeGVjdXRlU3FsQ29tbWFuZEJ1ZihBcmNoaXZlSGFu ZGxlICpBSCwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgYnVmTGVuKQogCQkJZGllX2hvcnJp Ymx5KEFILCBtb2R1bGVuYW1lLCAiZXJyb3IgcmV0dXJuZWQgYnkgUFFwdXRDb3B5RGF0YTog JXMiLAogCQkJCQkJIFBRZXJyb3JNZXNzYWdlKEFILT5jb25uZWN0aW9uKSk7CiAJfQorCWVs c2UgaWYgKEFILT5vdXRwdXRLaW5kID09IE9VVFBVVF9PVEhFUkRBVEEpCisJeworCQkvKgor CQkgKiBUYWJsZSBkYXRhIGV4cHJlc3NlZCBhcyBJTlNFUlQgY29tbWFuZHMuCisJCSAqLwor CQlFeGVjdXRlSW5zZXJ0Q29tbWFuZHMoQUgsIGJ1ZiwgYnVmTGVuKTsKKwl9CiAJZWxzZQog CXsKIAkJLyoKKwkJICogR2VuZXJhbCBTUUwgY29tbWFuZHM7IHdlIGFzc3VtZSB0aGF0IGNv bW1hbmRzIHdpbGwgbm90IGJlIHNwbGl0CisJCSAqIGFjcm9zcyBjYWxscy4KKwkJICoKIAkJ ICogSW4gbW9zdCBjYXNlcyB0aGUgZGF0YSBwYXNzZWQgdG8gdXMgd2lsbCBiZSBhIG51bGwt dGVybWluYXRlZAogCQkgKiBzdHJpbmcsIGJ1dCBpZiBpdCdzIG5vdCwgd2UgaGF2ZSB0byBh ZGQgYSB0cmFpbGluZyBudWxsLgogCQkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDhkYjQwNzEu LmQxNTk4ZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMTM5OSw2ICsxMzk5LDE0IEBAIGR1bXBU YWJsZURhdGFfY29weShBcmNoaXZlICpmb3V0LCB2b2lkICpkY29udGV4dCkKIAlyZXR1cm4g MTsKIH0KIAorLyoKKyAqIER1bXAgdGFibGUgZGF0YSB1c2luZyBJTlNFUlQgY29tbWFuZHMu CisgKgorICogQ2F1dGlvbjogd2hlbiB3ZSByZXN0b3JlIGZyb20gYW4gYXJjaGl2ZSBmaWxl IGRpcmVjdCB0byBkYXRhYmFzZSwgdGhlCisgKiBJTlNFUlQgY29tbWFuZHMgZW1pdHRlZCBi eSB0aGlzIGZ1bmN0aW9uIGhhdmUgdG8gYmUgcGFyc2VkIGJ5CisgKiBwZ19iYWNrdXBfZGIu YydzIEV4ZWN1dGVJbnNlcnRDb21tYW5kcygpLCB3aGljaCB3aWxsIG5vdCBoYW5kbGUgY29t bWVudHMsCisgKiBFJycgc3RyaW5ncywgb3IgZG9sbGFyLXF1b3RlZCBzdHJpbmdzLiAgU28g ZG9uJ3QgZW1pdCBhbnl0aGluZyBsaWtlIHRoYXQuCisgKi8KIHN0YXRpYyBpbnQKIGR1bXBU YWJsZURhdGFfaW5zZXJ0KEFyY2hpdmUgKmZvdXQsIHZvaWQgKmRjb250ZXh0KQogewoKY29t bWl0IDdlNDkxMWIyYWUzM2FjZmY3Yjg1MjM0YjkxMzcyMTMzZWM2ZGY5ZDQKQXV0aG9yOiBS b2JlcnQgSGFhcyA8cmhhYXNAcG9zdGdyZXNxbC5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDA4 OjMyOjMyIDIwMTIgLTA1MDAKCiAgICBGaXggdmFyaWFibGUgY29uZnVzaW9uIGluIEJ1ZmZl clN5bmMoKS4KICAgIAogICAgQXMgbm90ZWQgYnkgSGVpa2tpIExpbm5ha2FuZ2FzLCB0aGUg cHJldmlvdXMgY29kaW5nIGNvbmZ1c2VkIHRoZSAiZmxhZ3MiCiAgICB2YXJpYWJsZSB3aXRo IHRoZSAibWFzayIgdmFyaWFibGUuICBUaGUgYWZmZWN0IG9mIHRoaXMgYXBwZWFycyB0byBi ZSB0aGF0CiAgICB1bmxvZ2dlZCBidWZmZXJzIHdvdWxkIGdldCB3cml0dGVuIG91dCBhdCBl dmVyeSBjaGVja3BvaW50IHJhdGhlciB0aGFuCiAgICBvbmx5IGF0IHNodXRkb3duIHRpbWUu ICBBbHRob3VnaCB0aGF0J3MgYXJndWFibHkgYW4gYWNjZXB0YWJsZSBmYWlsdXJlCiAgICBt b2RlLCBJJ20gYmFjay1wYXRjaGluZyB0aGlzIGNoYW5nZSwgc2luY2UgaXQgc2VlbXMgbGlr ZSBhIHBvb3IgaWRlYSB0bwogICAgcmVseSBvbiB0aGlzIGhhcHBlbmluZyB0byB3b3JrLgoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jIGIvc3Jj L2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKaW5kZXggOTFjYzAwMS4uOGY2OGJj YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKKysr IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKQEAgLTExOTEsNyArMTE5 MSw3IEBAIEJ1ZmZlclN5bmMoaW50IGZsYWdzKQogCSAqIGJ1ZmZlcnMuICBCdXQgYXQgc2h1 dGRvd24gdGltZSwgd2Ugd3JpdGUgYWxsIGRpcnR5IGJ1ZmZlcnMuCiAJICovCiAJaWYgKCEo ZmxhZ3MgJiBDSEVDS1BPSU5UX0lTX1NIVVRET1dOKSkKLQkJZmxhZ3MgfD0gQk1fUEVSTUFO RU5UOworCQltYXNrIHw9IEJNX1BFUk1BTkVOVDsKIAogCS8qCiAJICogTG9vcCBvdmVyIGFs bCBidWZmZXJzLCBhbmQgbWFyayB0aGUgb25lcyB0aGF0IG5lZWQgdG8gYmUgd3JpdHRlbiB3 aXRoCgpjb21taXQgYmQwZTc0YTljZTk4YzY1Yzk0NTY1ZmI2MDNkY2M3YjcxMGNkNDIyNwpB dXRob3I6IEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpEYXRlOiAgIFRo dSBKYW4gNSAxNzo1OToxOSAyMDEyIC0wNTAwCgogICAgRml4IGJyZWFrYWdlIGZyb20gZWFy bGllciBwbHBlcmwgZml4LgogICAgCiAgICBBcHBhcmVudGx5IHRoZSBwZXJsIGdhcmJhZ2Ug Y29sbGVjdG9yIHdhcyBhIGJpdCB0b28gZWFnZXIsIHNvIGhlcmUKICAgIHdlIGNvbnRyb2wg d2hlbiB0aGUgbmV3IFNWIGlzIGdhcmJhZ2UgY29sbGVjdGVkLgoKZGlmZiAtLWdpdCBhL3Ny Yy9wbC9wbHBlcmwvcGxwZXJsX2hlbHBlcnMuaCBiL3NyYy9wbC9wbHBlcmwvcGxwZXJsX2hl bHBlcnMuaAppbmRleCBjNjcxODIwLi44MDBhNDA4IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxw ZXJsL3BscGVybF9oZWxwZXJzLmgKKysrIGIvc3JjL3BsL3BscGVybC9wbHBlcmxfaGVscGVy cy5oCkBAIC00NSwyNSArNDUsMzIgQEAgdXRmX2UydShjb25zdCBjaGFyICpzdHIpCiBzdGF0 aWMgaW5saW5lIGNoYXIgKgogc3YyY3N0cihTViAqc3YpCiB7Ci0JY2hhcgkgICAqdmFsOwor CWNoYXIJICAgKnZhbCwgKnJlczsKIAlTVFJMRU4JCWxlbjsKKwlTViAgICAgICAgICpuc3Y7 CiAKIAkvKgogCSAqIGdldCBhIHV0ZjggZW5jb2RlZCBjaGFyICogb3V0IG9mIHBlcmwuICpu b3RlKiBpdCBtYXkgbm90IGJlIHZhbGlkIHV0ZjghCiAJICoKIAkgKiBTdlBWdXRmOCgpIGNy b2FrcyBuYXN0aWx5IG9uIGNlcnRhaW4gdGhpbmdzLCBsaWtlIHR5cGVnbG9icyBhbmQKLQkg KiByZWFkb25seSBvYmplY3Qgc3VjaCBhcyAkXlYuIFRoYXQncyBhIHBlcmwgYnVnIC0gaXQn cyBub3Qgc3VwcG9zZWQgdG8KLQkgKiBoYXBwZW4uIFRvIGF2b2lkIGNyYXNoaW5nIHRoZSBi YWNrZW5kLCB3ZSBtYWtlIGEgbW9ydGFsIGNvcHkgb2YgdGhlCi0JICogc3YgYmVmb3JlIHBh c3NpbmcgaXQgdG8gU3ZQVnV0ZjgoKS4gVGhlIGNvcHkgd2lsbCBiZSBnYXJiYWdlIGNvbGxl Y3RlZAotCSAqIHZlcnkgc29vbiAoc2VlIHBlcmxkb2MgcGVybGd1dHMpLgorCSAqIHJlYWRv bmx5IG9iamVjdHMgc3VjaCBhcyAkXlYuIFRoYXQncyBhIHBlcmwgYnVnIC0gaXQncyBub3Qg c3VwcG9zZWQgdG8KKwkgKiBoYXBwZW4uIFRvIGF2b2lkIGNyYXNoaW5nIHRoZSBiYWNrZW5k LCB3ZSBtYWtlIGEgY29weSBvZiB0aGUKKwkgKiBzdiBiZWZvcmUgcGFzc2luZyBpdCB0byBT dlBWdXRmOCgpLiBUaGUgY29weSBpcyBnYXJiYWdlIGNvbGxlY3RlZCAKKwkgKiB3aGVuIHdl J3JlIGRvbmUgd2l0aCBpdC4KIAkgKi8KLQl2YWwgPSBTdlBWdXRmOChzdl9tb3J0YWxjb3B5 KHN2KSwgbGVuKTsKKwluc3YgPSBuZXdTVnN2KHN2KTsKKwl2YWwgPSBTdlBWdXRmOChuc3Ys IGxlbik7CiAKIAkvKgotCSAqIHdlIHVzZSBwZXJscyBsZW5ndGggaW4gdGhlIGV2ZW50IHdl IGhhZCBhbiBlbWJlZGRlZCBudWxsIGJ5dGUgdG8gZW5zdXJlCisJICogd2UgdXNlIHBlcmwn cyBsZW5ndGggaW4gdGhlIGV2ZW50IHdlIGhhZCBhbiBlbWJlZGRlZCBudWxsIGJ5dGUgdG8g ZW5zdXJlCiAJICogd2UgZXJyb3Igb3V0IHByb3Blcmx5CiAJICovCi0JcmV0dXJuIHV0Zl91 MmUodmFsLCBsZW4pOworCXJlcyA9ICB1dGZfdTJlKHZhbCwgbGVuKTsKKworCS8qIHNhZmUg bm93IHRvIGdhcmJhZ2UgY29sbGVjdCB0aGUgbmV3IFNWICovCisJU3ZSRUZDTlRfZGVjKG5z dik7CisKKwlyZXR1cm4gcmVzOwogfQogCiAvKgoKY29tbWl0IDdlNTM1MTU0ODA4NTM2MDRh YWM4MjViZDNlNTNlN2Y5NzE2NjMyYjQKQXV0aG9yOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRl cl9lQGdteC5uZXQ+CkRhdGU6ICAgVGh1IEphbiA1IDIxOjEzOjE0IDIwMTIgKzAyMDAKCiAg ICBwZ19kdW1wOiBEdW1wIGZvcmVpZ24gb3B0aW9ucyBpbiBwcmV0dGllciBmb3JtYXQKICAg IAogICAgRHVtcCB0aGVtIHVzaW5nIGxpbmUgYnJlYWtzIGFuZCBpbmRlbnRhdGlvbiBpbnN0 ZWFkIG9mIGV2ZXJ5dGhpbmcgb24KICAgIG9uZSBsaW5lLgoKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4 IGFmNDU4ODYuLjhkYjQwNzEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTcyNiw3ICs1NzI2LDcg QEAgZ2V0VGFibGVBdHRycyhUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJ CQkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cucXVvdGVfaWRlbnQob3B0aW9uX25hbWUpIHx8 ICIKIAkJCQkJCQkgICInICcgfHwgcGdfY2F0YWxvZy5xdW90ZV9saXRlcmFsKG9wdGlvbl92 YWx1ZSkgIgogCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19vcHRpb25zX3RvX3RhYmxl KGF0dGZkd29wdGlvbnMpIgotCQkJCQkJCSAgIiksICcsICcpIEFTIGF0dGZkd29wdGlvbnMg IgorCQkJCQkJCSAgIiksIEUnLFxuICAgICcpIEFTIGF0dGZkd29wdGlvbnMgIgogCQkJICJG Uk9NIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIGEgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdf dHlwZSB0ICIKIAkJCQkJCQkgICJPTiBhLmF0dHR5cGlkID0gdC5vaWQgIgogCQkJCQkJCSAg IldIRVJFIGEuYXR0cmVsaWQgPSAnJXUnOjpwZ19jYXRhbG9nLm9pZCAiCkBAIC02NTU3LDcg KzY1NTcsNyBAQCBnZXRGb3JlaWduRGF0YVdyYXBwZXJzKGludCAqbnVtRm9yZWlnbkRhdGFX cmFwcGVycykKIAkJCQkJCSAgIlNFTEVDVCBxdW90ZV9pZGVudChvcHRpb25fbmFtZSkgfHwg JyAnIHx8ICIKIAkJCQkJCSAgInF1b3RlX2xpdGVyYWwob3B0aW9uX3ZhbHVlKSAiCiAJCQkJ CQkgICJGUk9NIHBnX29wdGlvbnNfdG9fdGFibGUoZmR3b3B0aW9ucykiCi0JCQkJCQkgICIp LCAnLCAnKSBBUyBmZHdvcHRpb25zICIKKwkJCQkJCSAgIiksIEUnLFxuICAgICcpIEFTIGZk d29wdGlvbnMgIgogCQkJCQkJICAiRlJPTSBwZ19mb3JlaWduX2RhdGFfd3JhcHBlciIsCiAJ CQkJCQkgIHVzZXJuYW1lX3N1YnF1ZXJ5KTsKIAl9CkBAIC02NTcxLDcgKzY1NzEsNyBAQCBn ZXRGb3JlaWduRGF0YVdyYXBwZXJzKGludCAqbnVtRm9yZWlnbkRhdGFXcmFwcGVycykKIAkJ CQkJCSAgIlNFTEVDVCBxdW90ZV9pZGVudChvcHRpb25fbmFtZSkgfHwgJyAnIHx8ICIKIAkJ CQkJCSAgInF1b3RlX2xpdGVyYWwob3B0aW9uX3ZhbHVlKSAiCiAJCQkJCQkgICJGUk9NIHBn X29wdGlvbnNfdG9fdGFibGUoZmR3b3B0aW9ucykiCi0JCQkJCQkgICIpLCAnLCAnKSBBUyBm ZHdvcHRpb25zICIKKwkJCQkJCSAgIiksIEUnLFxuICAgICcpIEFTIGZkd29wdGlvbnMgIgog CQkJCQkJICAiRlJPTSBwZ19mb3JlaWduX2RhdGFfd3JhcHBlciIsCiAJCQkJCQkgIHVzZXJu YW1lX3N1YnF1ZXJ5KTsKIAl9CkBAIC02NjYwLDcgKzY2NjAsNyBAQCBnZXRGb3JlaWduU2Vy dmVycyhpbnQgKm51bUZvcmVpZ25TZXJ2ZXJzKQogCQkJCQkgICJTRUxFQ1QgcXVvdGVfaWRl bnQob3B0aW9uX25hbWUpIHx8ICcgJyB8fCAiCiAJCQkJCSAgInF1b3RlX2xpdGVyYWwob3B0 aW9uX3ZhbHVlKSAiCiAJCQkJCSAgIkZST00gcGdfb3B0aW9uc190b190YWJsZShzcnZvcHRp b25zKSIKLQkJCQkJICAiKSwgJywgJykgQVMgc3J2b3B0aW9ucyAiCisJCQkJCSAgIiksIEUn LFxuICAgICcpIEFTIHNydm9wdGlvbnMgIgogCQkJCQkgICJGUk9NIHBnX2ZvcmVpZ25fc2Vy dmVyIiwKIAkJCQkJICB1c2VybmFtZV9zdWJxdWVyeSk7CiAKQEAgLTExNTc1LDcgKzExNTc1 LDcgQEAgZHVtcEZvcmVpZ25EYXRhV3JhcHBlcihBcmNoaXZlICpmb3V0LCBGZHdJbmZvICpm ZHdpbmZvKQogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiIFZBTElEQVRPUiAlcyIsIGZkd2lu Zm8tPmZkd3ZhbGlkYXRvcik7CiAKIAlpZiAoc3RybGVuKGZkd2luZm8tPmZkd29wdGlvbnMp ID4gMCkKLQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiBPUFRJT05TICglcykiLCBmZHdpbmZv LT5mZHdvcHRpb25zKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiBPUFRJT05TIChcbiAg ICAlc1xuKSIsIGZkd2luZm8tPmZkd29wdGlvbnMpOwogCiAJYXBwZW5kUFFFeHBCdWZmZXIo cSwgIjtcbiIpOwogCkBAIC0xMTY3OSw3ICsxMTY3OSw3IEBAIGR1bXBGb3JlaWduU2VydmVy KEFyY2hpdmUgKmZvdXQsIEZvcmVpZ25TZXJ2ZXJJbmZvICpzcnZpbmZvKQogCWFwcGVuZFBR RXhwQnVmZmVyKHEsICIlcyIsIGZtdElkKGZkd25hbWUpKTsKIAogCWlmIChzcnZpbmZvLT5z cnZvcHRpb25zICYmIHN0cmxlbihzcnZpbmZvLT5zcnZvcHRpb25zKSA+IDApCi0JCWFwcGVu ZFBRRXhwQnVmZmVyKHEsICIgT1BUSU9OUyAoJXMpIiwgc3J2aW5mby0+c3J2b3B0aW9ucyk7 CisJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICIgT1BUSU9OUyAoXG4gICAgJXNcbikiLCBzcnZp bmZvLT5zcnZvcHRpb25zKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKHEsICI7XG4iKTsKIApA QCAtMTE3NzAsNyArMTE3NzAsNyBAQCBkdW1wVXNlck1hcHBpbmdzKEFyY2hpdmUgKmZvdXQs CiAJCQkJCSAgIlNFTEVDVCBxdW90ZV9pZGVudChvcHRpb25fbmFtZSkgfHwgJyAnIHx8ICIK IAkJCQkJICAicXVvdGVfbGl0ZXJhbChvcHRpb25fdmFsdWUpICIKIAkJCQkJICAiRlJPTSBw Z19vcHRpb25zX3RvX3RhYmxlKHVtb3B0aW9ucykiCi0JCQkJCSAgIiksICcsICcpIEFTIHVt b3B0aW9ucyAiCisJCQkJCSAgIiksIEUnLFxuICAgICcpIEFTIHVtb3B0aW9ucyAiCiAJCQkJ CSAgIkZST00gcGdfdXNlcl9tYXBwaW5ncyAiCiAJCQkJCSAgIldIRVJFIHNydmlkID0gJyV1 JyAiCiAJCQkJCSAgIk9SREVSIEJZIHVzZW5hbWUiLApAQCAtMTE3OTYsNyArMTE3OTYsNyBA QCBkdW1wVXNlck1hcHBpbmdzKEFyY2hpdmUgKmZvdXQsCiAJCWFwcGVuZFBRRXhwQnVmZmVy KHEsICIgU0VSVkVSICVzIiwgZm10SWQoc2VydmVybmFtZSkpOwogCiAJCWlmICh1bW9wdGlv bnMgJiYgc3RybGVuKHVtb3B0aW9ucykgPiAwKQotCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwg IiBPUFRJT05TICglcykiLCB1bW9wdGlvbnMpOworCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwg IiBPUFRJT05TIChcbiAgICAlc1xuKSIsIHVtb3B0aW9ucyk7CiAKIAkJYXBwZW5kUFFFeHBC dWZmZXIocSwgIjtcbiIpOwogCkBAIC0xMjQzMSw3ICsxMjQzMSw3IEBAIGR1bXBUYWJsZVNj aGVtYShBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQkJCQkgICJTRUxF Q1QgcGdfY2F0YWxvZy5xdW90ZV9pZGVudChvcHRpb25fbmFtZSkgfHwgIgogCQkJCQkJCSAg IicgJyB8fCBwZ19jYXRhbG9nLnF1b3RlX2xpdGVyYWwob3B0aW9uX3ZhbHVlKSAiCiAJCQkJ CQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX29wdGlvbnNfdG9fdGFibGUoZnRvcHRpb25zKSIK LQkJCQkJCQkgICIpLCAnLCAnKSBBUyBmdG9wdGlvbnMgIgorCQkJCQkJCSAgIiksIEUnLFxu ICAgICcpIEFTIGZ0b3B0aW9ucyAiCiAJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2Zv cmVpZ25fdGFibGUgZnQgIgogCQkJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ19mb3JlaWdu X3NlcnZlciBmcyAiCiAJCQkJCQkJICAiT04gKGZzLm9pZCA9IGZ0LmZ0c2VydmVyKSAiCkBA IC0xMjY2MCw3ICsxMjY2MCw3IEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gKnRiaW5mbykKIAogCQkvKiBEdW1wIGdlbmVyaWMgb3B0aW9ucyBpZiBhbnkg Ki8KIAkJaWYgKGZ0b3B0aW9ucyAmJiBmdG9wdGlvbnNbMF0pCi0JCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxLCAiXG5PUFRJT05TICglcykiLCBmdG9wdGlvbnMpOworCQkJYXBwZW5kUFFFeHBC dWZmZXIocSwgIlxuT1BUSU9OUyAoXG4gICAgJXNcbikiLCBmdG9wdGlvbnMpOwogCiAJCWFw cGVuZFBRRXhwQnVmZmVyKHEsICI7XG4iKTsKIApAQCAtMTI4NjAsNyArMTI4NjAsNyBAQCBk dW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmluZm8pCiAJCQkJ CQkJCSAgZm10SWQodGJpbmZvLT5kb2JqLm5hbWUpKTsKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZl cihxLCAiQUxURVIgQ09MVU1OICVzICIsCiAJCQkJCQkJCSAgZm10SWQodGJpbmZvLT5hdHRu YW1lc1tqXSkpOwotCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICJPUFRJT05TICglcyk7XG4i LAorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICJPUFRJT05TIChcbiAgICAlc1xuKTtcbiIs CiAJCQkJCQkJCSAgdGJpbmZvLT5hdHRmZHdvcHRpb25zW2pdKTsKIAkJCX0KIAkJfQoKY29t bWl0IDE1ZGYwMzc4NDVkOWQzZDk5ZTllMmI0MzcwMjU2YjEzNmIwMGM2NmEKQXV0aG9yOiBQ ZXRlciBFaXNlbnRyYXV0IDxwZXRlcl9lQGdteC5uZXQ+CkRhdGU6ICAgVGh1IEphbiA1IDIw OjM0OjA3IDIwMTIgKzAyMDAKCiAgICBwZ19kdW1wOiBEdW1wIG9wZXJhdG9ycyB3aXRoIHRo ZSBzYW1lIG5hbWUgb3JkZXJlZCBieSBhcml0eQogICAgCiAgICBwZ19kdW1wIHNvcnRzIG9w ZXJhdG9ycyBieSBuYW1lLCBidXQgb3BlcmF0b3JzIHdpdGggdGhlIHNhbWUgbmFtZSBjb21l CiAgICBvdXQgaW4gcmFuZG9tIG9yZGVyLiAgTm93IG9wZXJhdG9ycyB3aXRoIHRoZSBzYW1l IG5hbWUgYXJlIGR1bXBlZCBpbgogICAgdGhlIG9yZGVyIHByZWZpeCwgcG9zdGZpeCwgaW5m aXguICAoVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggZnVuY3Rpb25zLAogICAgd2hpY2ggYXJl IGR1bXBlZCBpbiBpbmNyZWFzaW5nIG51bWJlciBvZiBhcmd1bWVudCBvcmRlci4pCgpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKaW5kZXggMTk4NWM3ZC4uYWY0NTg4NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0z MTM4LDYgKzMxMzgsNyBAQCBnZXRPcGVyYXRvcnMoaW50ICpudW1PcHJzKQogCWludAkJCWlf b3BybmFtZTsKIAlpbnQJCQlpX29wcm5hbWVzcGFjZTsKIAlpbnQJCQlpX3JvbG5hbWU7CisJ aW50CQkJaV9vcHJraW5kOwogCWludAkJCWlfb3ByY29kZTsKIAogCS8qCkBAIC0zMTUzLDYg KzMxNTQsNyBAQCBnZXRPcGVyYXRvcnMoaW50ICpudW1PcHJzKQogCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBvcHJuYW1lLCAiCiAJCQkJCQkg ICJvcHJuYW1lc3BhY2UsICIKIAkJCQkJCSAgIiglcyBvcHJvd25lcikgQVMgcm9sbmFtZSwg IgorCQkJCQkJICAib3Bya2luZCwgIgogCQkJCQkJICAib3ByY29kZTo6b2lkIEFTIG9wcmNv ZGUgIgogCQkJCQkJICAiRlJPTSBwZ19vcGVyYXRvciIsCiAJCQkJCQkgIHVzZXJuYW1lX3N1 YnF1ZXJ5KTsKQEAgLTMxNjIsNiArMzE2NCw3IEBAIGdldE9wZXJhdG9ycyhpbnQgKm51bU9w cnMpCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiU0VMRUNUIHRhYmxlb2lkLCBvaWQs IG9wcm5hbWUsICIKIAkJCQkJCSAgIjA6Om9pZCBBUyBvcHJuYW1lc3BhY2UsICIKIAkJCQkJ CSAgIiglcyBvcHJvd25lcikgQVMgcm9sbmFtZSwgIgorCQkJCQkJICAib3Bya2luZCwgIgog CQkJCQkJICAib3ByY29kZTo6b2lkIEFTIG9wcmNvZGUgIgogCQkJCQkJICAiRlJPTSBwZ19v cGVyYXRvciIsCiAJCQkJCQkgIHVzZXJuYW1lX3N1YnF1ZXJ5KTsKQEAgLTMxNzMsNiArMzE3 Niw3IEBAIGdldE9wZXJhdG9ycyhpbnQgKm51bU9wcnMpCiAJCQkJCQkgICJvaWQsIG9wcm5h bWUsICIKIAkJCQkJCSAgIjA6Om9pZCBBUyBvcHJuYW1lc3BhY2UsICIKIAkJCQkJCSAgIigl cyBvcHJvd25lcikgQVMgcm9sbmFtZSwgIgorCQkJCQkJICAib3Bya2luZCwgIgogCQkJCQkJ ICAib3ByY29kZTo6b2lkIEFTIG9wcmNvZGUgIgogCQkJCQkJICAiRlJPTSBwZ19vcGVyYXRv ciIsCiAJCQkJCQkgIHVzZXJuYW1lX3N1YnF1ZXJ5KTsKQEAgLTMxOTEsNiArMzE5NSw3IEBA IGdldE9wZXJhdG9ycyhpbnQgKm51bU9wcnMpCiAJaV9vcHJuYW1lID0gUFFmbnVtYmVyKHJl cywgIm9wcm5hbWUiKTsKIAlpX29wcm5hbWVzcGFjZSA9IFBRZm51bWJlcihyZXMsICJvcHJu YW1lc3BhY2UiKTsKIAlpX3JvbG5hbWUgPSBQUWZudW1iZXIocmVzLCAicm9sbmFtZSIpOwor CWlfb3Bya2luZCA9IFBRZm51bWJlcihyZXMsICJvcHJraW5kIik7CiAJaV9vcHJjb2RlID0g UFFmbnVtYmVyKHJlcywgIm9wcmNvZGUiKTsKIAogCWZvciAoaSA9IDA7IGkgPCBudHVwczsg aSsrKQpAQCAtMzIwMyw2ICszMjA4LDcgQEAgZ2V0T3BlcmF0b3JzKGludCAqbnVtT3BycykK IAkJb3ByaW5mb1tpXS5kb2JqLm5hbWVzcGFjZSA9IGZpbmROYW1lc3BhY2UoYXRvb2lkKFBR Z2V0dmFsdWUocmVzLCBpLCBpX29wcm5hbWVzcGFjZSkpLAogCQkJCQkJCQkJCQkJICBvcHJp bmZvW2ldLmRvYmouY2F0SWQub2lkKTsKIAkJb3ByaW5mb1tpXS5yb2xuYW1lID0gcGdfc3Ry ZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JvbG5hbWUpKTsKKwkJb3ByaW5mb1tpXS5vcHJr aW5kID0gKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29wcmtpbmQpKVswXTsKIAkJb3ByaW5mb1tp XS5vcHJjb2RlID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29wcmNvZGUpKTsKIAog CQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o CmluZGV4IDkxM2QxMDIuLjExYzRkMzcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtMjA0LDYgKzIw NCw3IEBAIHR5cGVkZWYgc3RydWN0IF9vcHJJbmZvCiB7CiAJRHVtcGFibGVPYmplY3QgZG9i ajsKIAljaGFyCSAgICpyb2xuYW1lOworCWNoYXIJCW9wcmtpbmQ7CiAJT2lkCQkJb3ByY29k ZTsKIH0gT3BySW5mbzsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBf c29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IGM2MDVhM2Iu LjRkMWFlOTQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwor KysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTE3OCw2ICsxNzgsMTYg QEAgRE9UeXBlTmFtZUNvbXBhcmUoY29uc3Qgdm9pZCAqcDEsIGNvbnN0IHZvaWQgKnAyKQog CQlpZiAoY21wdmFsICE9IDApCiAJCQlyZXR1cm4gY21wdmFsOwogCX0KKwllbHNlIGlmIChv YmoxLT5vYmpUeXBlID09IERPX09QRVJBVE9SKQorCXsKKwkJT3BySW5mbwkqb29iajEgPSAq KE9wckluZm8gKiBjb25zdCAqKSBwMTsKKwkJT3BySW5mbyAqb29iajIgPSAqKE9wckluZm8g KiBjb25zdCAqKSBwMjsKKworCQkvKiBvcHJraW5kIGlzICdsJywgJ3InLCBvciAnYic7IHRo aXMgc29ydHMgcHJlZml4LCBwb3N0Zml4LCBpbmZpeCAqLworCQljbXB2YWwgPSAob29iajIt Pm9wcmtpbmQgLSBvb2JqMS0+b3Bya2luZCk7CisJCWlmIChjbXB2YWwgIT0gMCkKKwkJCXJl dHVybiBjbXB2YWw7CisJfQogCiAJLyogVXN1YWxseSBzaG91bGRuJ3QgZ2V0IGhlcmUsIGJ1 dCBpZiB3ZSBkbywgc29ydCBieSBPSUQgKi8KIAlyZXR1cm4gb2lkY21wKG9iajEtPmNhdElk Lm9pZCwgb2JqMi0+Y2F0SWQub2lkKTsKCmNvbW1pdCAxMDRlN2RhYzI4YzU2ZGNhZjliNzc4 ZGZmNjBhNWRhZWZjM2EwNjYxCkF1dGhvcjogUGV0ZXIgRWlzZW50cmF1dCA8cGV0ZXJfZUBn bXgubmV0PgpEYXRlOiAgIFRodSBKYW4gNSAxOTo0ODo1NSAyMDEyICswMjAwCgogICAgSW1w cm92ZSBBTFRFUiBET01BSU4gLyBEUk9QIENPTlNUUkFJTlQgd2l0aCBub25leGlzdGVudCBj b25zdHJhaW50CiAgICAKICAgIEFMVEVSIERPTUFJTiAvIERST1AgQ09OU1RSQUlOVCBvbiBh IG5vbmV4aXN0ZW50IGNvbnN0cmFpbnQgbmFtZSBkaWQKICAgIG5vdCByZXBvcnQgYW55IGVy cm9yLiAgTm93IGl0IHJlcG9ydHMgYW4gZXJyb3IuICBUaGUgSUYgRVhJU1RTIG9wdGlvbgog ICAgd2FzIGFkZGVkIHRvIGdldCB0aGUgdXN1YWwgYmVoYXZpb3Igb2YgaWdub3Jpbmcgbm9u ZXhpc3RlbnQgb2JqZWN0cyB0bwogICAgZHJvcC4KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX2RvbWFpbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kb21h aW4uc2dtbAppbmRleCAyOTUwNGNjLi4yNTExYTEyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX2RvbWFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf ZG9tYWluLnNnbWwKQEAgLTMwLDcgKzMwLDcgQEAgQUxURVIgRE9NQUlOIDxyZXBsYWNlYWJs ZSBjbGFzcz0iUEFSQU1FVEVSIj5uYW1lPC9yZXBsYWNlYWJsZT4KIEFMVEVSIERPTUFJTiA8 cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAg QUREIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5kb21haW5fY29uc3RyYWludDwv cmVwbGFjZWFibGU+IFsgTk9UIFZBTElEIF0KIEFMVEVSIERPTUFJTiA8cmVwbGFjZWFibGUg Y2xhc3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+Ci0gICAgRFJPUCBDT05TVFJB SU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5jb25zdHJhaW50X25hbWU8L3Jl cGxhY2VhYmxlPiBbIFJFU1RSSUNUIHwgQ0FTQ0FERSBdCisgICAgRFJPUCBDT05TVFJBSU5U IFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJQQVJBTUVURVIiPmNvbnN0cmFp bnRfbmFtZTwvcmVwbGFjZWFibGU+IFsgUkVTVFJJQ1QgfCBDQVNDQURFIF0KIEFMVEVSIERP TUFJTiA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+ CiAgICAgVkFMSURBVEUgQ09OU1RSQUlOVCA8cmVwbGFjZWFibGUgY2xhc3M9IlBBUkFNRVRF UiI+Y29uc3RyYWludF9uYW1lPC9yZXBsYWNlYWJsZT4KIEFMVEVSIERPTUFJTiA8cmVwbGFj ZWFibGUgY2xhc3M9IlBBUkFNRVRFUiI+bmFtZTwvcmVwbGFjZWFibGU+CkBAIC05MiwxMCAr OTIsMTIgQEAgQUxURVIgRE9NQUlOIDxyZXBsYWNlYWJsZSBjbGFzcz0iUEFSQU1FVEVSIj5u YW1lPC9yZXBsYWNlYWJsZT4KICAgIDwvdmFybGlzdGVudHJ5PgogCiAgICA8dmFybGlzdGVu dHJ5PgotICAgIDx0ZXJtPkRST1AgQ09OU1RSQUlOVDwvdGVybT4KKyAgICA8dGVybT5EUk9Q IENPTlNUUkFJTlQgWyBJRiBFWElTVFMgXTwvdGVybT4KICAgICA8bGlzdGl0ZW0+CiAgICAg IDxwYXJhPgogICAgICAgVGhpcyBmb3JtIGRyb3BzIGNvbnN0cmFpbnRzIG9uIGEgZG9tYWlu LgorICAgICAgSWYgPGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQg YW5kIHRoZSBjb25zdHJhaW50CisgICAgICBkb2VzIG5vdCBleGlzdCwgbm8gZXJyb3IgaXMg dGhyb3duLiBJbiB0aGlzIGNhc2UgYSBub3RpY2UgaXMgaXNzdWVkIGluc3RlYWQuCiAgICAg IDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHlwZWNtZHMuYwppbmRleCA0YmJiYWYzLi4wZjhhZjMxIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3R5cGVjbWRzLmMKQEAgLTIyNjQsNyArMjI2NCw3IEBAIEFsdGVyRG9tYWluTm90TnVs bChMaXN0ICpuYW1lcywgYm9vbCBub3ROdWxsKQogICovCiB2b2lkCiBBbHRlckRvbWFpbkRy b3BDb25zdHJhaW50KExpc3QgKm5hbWVzLCBjb25zdCBjaGFyICpjb25zdHJOYW1lLAotCQkJ CQkJICBEcm9wQmVoYXZpb3IgYmVoYXZpb3IpCisJCQkJCQkgIERyb3BCZWhhdmlvciBiZWhh dmlvciwgYm9vbCBtaXNzaW5nX29rKQogewogCVR5cGVOYW1lICAgKnR5cGVuYW1lOwogCU9p ZAkJCWRvbWFpbm9pZDsKQEAgLTIyNzQsNiArMjI3NCw3IEBAIEFsdGVyRG9tYWluRHJvcENv bnN0cmFpbnQoTGlzdCAqbmFtZXMsIGNvbnN0IGNoYXIgKmNvbnN0ck5hbWUsCiAJU3lzU2Nh bkRlc2MgY29uc2NhbjsKIAlTY2FuS2V5RGF0YSBrZXlbMV07CiAJSGVhcFR1cGxlCWNvbnR1 cDsKKwlib29sCQlmb3VuZCA9IGZhbHNlOwogCiAJLyogTWFrZSBhIFR5cGVOYW1lIHNvIHdl IGNhbiB1c2Ugc3RhbmRhcmQgdHlwZSBsb29rdXAgbWFjaGluZXJ5ICovCiAJdHlwZW5hbWUg PSBtYWtlVHlwZU5hbWVGcm9tTmFtZUxpc3QobmFtZXMpOwpAQCAtMjMxNyw2ICsyMzE4LDcg QEAgQWx0ZXJEb21haW5Ecm9wQ29uc3RyYWludChMaXN0ICpuYW1lcywgY29uc3QgY2hhciAq Y29uc3RyTmFtZSwKIAkJCWNvbm9iai5vYmplY3RTdWJJZCA9IDA7CiAKIAkJCXBlcmZvcm1E ZWxldGlvbigmY29ub2JqLCBiZWhhdmlvcik7CisJCQlmb3VuZCA9IHRydWU7CiAJCX0KIAl9 CiAJLyogQ2xlYW4gdXAgYWZ0ZXIgdGhlIHNjYW4gKi8KQEAgLTIzMjQsNiArMjMyNiwxOSBA QCBBbHRlckRvbWFpbkRyb3BDb25zdHJhaW50KExpc3QgKm5hbWVzLCBjb25zdCBjaGFyICpj b25zdHJOYW1lLAogCWhlYXBfY2xvc2UoY29ucmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAog CWhlYXBfY2xvc2UocmVsLCBOb0xvY2spOworCisJaWYgKCFmb3VuZCkKKwl7CisJCWlmICgh bWlzc2luZ19vaykKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2coImNvbnN0cmFpbnQgXCIlc1wiIG9m IGRvbWFpbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkgICBjb25zdHJOYW1lLCBU eXBlTmFtZVRvU3RyaW5nKHR5cGVuYW1lKSkpKTsKKwkJZWxzZQorCQkJZXJlcG9ydChOT1RJ Q0UsCisJCQkJCShlcnJtc2coImNvbnN0cmFpbnQgXCIlc1wiIG9mIGRvbWFpbiBcIiVzXCIg ZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIiwKKwkJCQkJCQljb25zdHJOYW1lLCBUeXBlTmFt ZVRvU3RyaW5nKHR5cGVuYW1lKSkpKTsKKwl9CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL2NvcHlmdW5j cy5jCmluZGV4IGM5ZDNlMmUuLjc1NmUzYTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25v ZGVzL2NvcHlmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL2NvcHlmdW5jcy5jCkBA IC0yNTY4LDYgKzI1NjgsNyBAQCBfY29weUFsdGVyRG9tYWluU3RtdChjb25zdCBBbHRlckRv bWFpblN0bXQgKmZyb20pCiAJQ09QWV9TVFJJTkdfRklFTEQobmFtZSk7CiAJQ09QWV9OT0RF X0ZJRUxEKGRlZik7CiAJQ09QWV9TQ0FMQVJfRklFTEQoYmVoYXZpb3IpOworCUNPUFlfU0NB TEFSX0ZJRUxEKG1pc3Npbmdfb2spOwogCiAJcmV0dXJuIG5ld25vZGU7CiB9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rl cy9lcXVhbGZ1bmNzLmMKaW5kZXggZWZlMmM5Ni4uOWVmZjQyZiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvbm9kZXMvZXF1YWxmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL2Vx dWFsZnVuY3MuYwpAQCAtMTAzNCw2ICsxMDM0LDcgQEAgX2VxdWFsQWx0ZXJEb21haW5TdG10 KGNvbnN0IEFsdGVyRG9tYWluU3RtdCAqYSwgY29uc3QgQWx0ZXJEb21haW5TdG10ICpiKQog CUNPTVBBUkVfU1RSSU5HX0ZJRUxEKG5hbWUpOwogCUNPTVBBUkVfTk9ERV9GSUVMRChkZWYp OwogCUNPTVBBUkVfU0NBTEFSX0ZJRUxEKGJlaGF2aW9yKTsKKwlDT01QQVJFX1NDQUxBUl9G SUVMRChtaXNzaW5nX29rKTsKIAogCXJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5k ZXggMjlkZjBjMS4uODdkNzMwNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC03NjE2LDYgKzc2MTYs MTggQEAgQWx0ZXJEb21haW5TdG10OgogCQkJCQluLT50eXBlTmFtZSA9ICQzOwogCQkJCQlu LT5uYW1lID0gJDY7CiAJCQkJCW4tPmJlaGF2aW9yID0gJDc7CisJCQkJCW4tPm1pc3Npbmdf b2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJLyogQUxURVIg RE9NQUlOIDxkb21haW4+IERST1AgQ09OU1RSQUlOVCBJRiBFWElTVFMgPG5hbWU+IFtSRVNU UklDVHxDQVNDQURFXSAqLworCQkJfCBBTFRFUiBET01BSU5fUCBhbnlfbmFtZSBEUk9QIENP TlNUUkFJTlQgSUZfUCBFWElTVFMgbmFtZSBvcHRfZHJvcF9iZWhhdmlvcgorCQkJCXsKKwkJ CQkJQWx0ZXJEb21haW5TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJEb21haW5TdG10KTsKKwkJ CQkJbi0+c3VidHlwZSA9ICdYJzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkMzsKKwkJCQkJbi0+ bmFtZSA9ICQ4OworCQkJCQluLT5iZWhhdmlvciA9ICQ5OworCQkJCQluLT5taXNzaW5nX29r ID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJLyogQUxURVIgRE9N QUlOIDxkb21haW4+IFZBTElEQVRFIENPTlNUUkFJTlQgPG5hbWU+ICovCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0 eS5jCmluZGV4IDkyM2RhNmEuLjcwNGJiZTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rj b3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC03Njgs NyArNzY4LDggQEAgc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkoTm9kZSAqcGFyc2V0cmVlLAog CQkJCQljYXNlICdYJzoJLyogRFJPUCBDT05TVFJBSU5UICovCiAJCQkJCQlBbHRlckRvbWFp bkRyb3BDb25zdHJhaW50KHN0bXQtPnR5cGVOYW1lLAogCQkJCQkJCQkJCQkJICBzdG10LT5u YW1lLAotCQkJCQkJCQkJCQkJICBzdG10LT5iZWhhdmlvcik7CisJCQkJCQkJCQkJCQkgIHN0 bXQtPmJlaGF2aW9yLAorCQkJCQkJCQkJCQkJICBzdG10LT5taXNzaW5nX29rKTsKIAkJCQkJ CWJyZWFrOwogCQkJCQljYXNlICdWJzoJLyogVkFMSURBVEUgQ09OU1RSQUlOVCAqLwogCQkJ CQkJQWx0ZXJEb21haW5WYWxpZGF0ZUNvbnN0cmFpbnQoc3RtdC0+dHlwZU5hbWUsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90eXBlY21kcy5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvdHlwZWNtZHMuaAppbmRleCAxMWQwNWI4Li4zNzQ4YmQ1IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jb21tYW5kcy90eXBlY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL3R5cGVjbWRzLmgKQEAgLTMzLDcgKzMzLDcgQEAgZXh0ZXJuIHZvaWQgQWx0ZXJE b21haW5Ob3ROdWxsKExpc3QgKm5hbWVzLCBib29sIG5vdE51bGwpOwogZXh0ZXJuIHZvaWQg QWx0ZXJEb21haW5BZGRDb25zdHJhaW50KExpc3QgKm5hbWVzLCBOb2RlICpjb25zdHIpOwog ZXh0ZXJuIHZvaWQgQWx0ZXJEb21haW5WYWxpZGF0ZUNvbnN0cmFpbnQoTGlzdCAqbmFtZXMs IGNoYXIgKmNvbnN0ck5hbWUpOwogZXh0ZXJuIHZvaWQgQWx0ZXJEb21haW5Ecm9wQ29uc3Ry YWludChMaXN0ICpuYW1lcywgY29uc3QgY2hhciAqY29uc3RyTmFtZSwKLQkJCQkJCSAgRHJv cEJlaGF2aW9yIGJlaGF2aW9yKTsKKwkJCQkJCQkJCSAgRHJvcEJlaGF2aW9yIGJlaGF2aW9y LCBib29sIG1pc3Npbmdfb2spOwogCiBleHRlcm4gTGlzdCAqR2V0RG9tYWluQ29uc3RyYWlu dHMoT2lkIHR5cGVPaWQpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYmVlMGUx OC4uMGJlM2ZiMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTI2NCw2ICsxMjY0 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJEb21haW5TdG10CiAJY2hhcgkgICAqbmFtZTsJ CQkvKiBjb2x1bW4gb3IgY29uc3RyYWludCBuYW1lIHRvIGFjdCBvbiAqLwogCU5vZGUJICAg KmRlZjsJCQkvKiBkZWZpbml0aW9uIG9mIGRlZmF1bHQgb3IgY29uc3RyYWludCAqLwogCURy b3BCZWhhdmlvciBiZWhhdmlvcjsJCS8qIFJFU1RSSUNUIG9yIENBU0NBREUgZm9yIERST1Ag Y2FzZXMgKi8KKwlib29sCQltaXNzaW5nX29rOwkJLyogc2tpcCBlcnJvciBpZiBtaXNzaW5n PyAqLwogfSBBbHRlckRvbWFpblN0bXQ7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9kb21haW4ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9k b21haW4ub3V0CmluZGV4IDNlNDRlM2IuLjRmNDczNzQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZG9tYWluLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2RvbWFpbi5vdXQKQEAgLTM1OCw2ICszNTgsMTAgQEAgYWx0ZXIgZG9tYWluIGNv biBkcm9wIGNvbnN0cmFpbnQgdDsKIGluc2VydCBpbnRvIGRvbWNvbnRlc3QgdmFsdWVzICgt NSk7IC0tZmFpbHMKIEVSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBjb24gdmlvbGF0ZXMgY2hl Y2sgY29uc3RyYWludCAiY29uX2NoZWNrIgogaW5zZXJ0IGludG8gZG9tY29udGVzdCB2YWx1 ZXMgKDQyKTsKK2FsdGVyIGRvbWFpbiBjb24gZHJvcCBjb25zdHJhaW50IG5vbmV4aXN0ZW50 OworRVJST1I6ICBjb25zdHJhaW50ICJub25leGlzdGVudCIgb2YgZG9tYWluICJjb24iIGRv ZXMgbm90IGV4aXN0CithbHRlciBkb21haW4gY29uIGRyb3AgY29uc3RyYWludCBpZiBleGlz dHMgbm9uZXhpc3RlbnQ7CitOT1RJQ0U6ICBjb25zdHJhaW50ICJub25leGlzdGVudCIgb2Yg ZG9tYWluICJjb24iIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZwogLS0gVGVzdCBBTFRFUiBE T01BSU4gLi4gQ09OU1RSQUlOVCAuLiBOT1QgVkFMSUQKIGNyZWF0ZSBkb21haW4gdGhpbmdz IEFTIElOVDsKIENSRUFURSBUQUJMRSB0aGV0aGluZ3MgKHN0dWZmIHRoaW5ncyk7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kb21haW4uc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZG9tYWluLnNxbAppbmRleCAxZmQzOTAwLi5hZDA0OWI3IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kb21haW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2RvbWFpbi5zcWwKQEAgLTI1OSw2ICsyNTksOSBAQCBhbHRlciBkb21haW4gY29u IGRyb3AgY29uc3RyYWludCB0OwogaW5zZXJ0IGludG8gZG9tY29udGVzdCB2YWx1ZXMgKC01 KTsgLS1mYWlscwogaW5zZXJ0IGludG8gZG9tY29udGVzdCB2YWx1ZXMgKDQyKTsKIAorYWx0 ZXIgZG9tYWluIGNvbiBkcm9wIGNvbnN0cmFpbnQgbm9uZXhpc3RlbnQ7CithbHRlciBkb21h aW4gY29uIGRyb3AgY29uc3RyYWludCBpZiBleGlzdHMgbm9uZXhpc3RlbnQ7CisKIC0tIFRl c3QgQUxURVIgRE9NQUlOIC4uIENPTlNUUkFJTlQgLi4gTk9UIFZBTElECiBjcmVhdGUgZG9t YWluIHRoaW5ncyBBUyBJTlQ7CiBDUkVBVEUgVEFCTEUgdGhldGhpbmdzIChzdHVmZiB0aGlu Z3MpOwoKY29tbWl0IDJhYmVmZDlhOTJmM2MwMmFkNGY2MDMwYWMxNTc4YmJmMzE0ZGIzNjgK QXV0aG9yOiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1bnNsYW5lLm5ldD4KRGF0ZTogICBU aHUgSmFuIDUgMTI6MDE6MTggMjAxMiAtMDUwMAoKICAgIFdvcmsgYXJvdW5kIHBlcmwgYnVn IGluIFN2UFZ1dGY4KCkuCiAgICAKICAgIENlcnRhaW4gdGhpbmdzIGxpa2UgdHlwZWdsb2Jz IG9yIHJlYWRvbmx5IHRoaW5ncyBsaWtlICReViBjYXVzZQogICAgcGVybCdzIFN2UFZ1dGY4 KCkgdG8gZGllIG5hc3RpbHkgYW5kIGNyYXNoIHRoZSBiYWNrZW5kLiBUbyBhdm9pZAogICAg dGhhdCBidWcgd2UgbWFrZSBhIGNvcHkgb2YgdGhlIG9iamVjdCwgd2hpY2ggd2lsbCBzdWJz ZXF1ZW50bHkgYmUKICAgIGdhcmJhZ2UgY29sbGVjdGVkLgogICAgCiAgICBCYWNrIHBhdGNo ZWQgdG8gOS4xIHdoZXJlIHdlIGZpcnN0IHN0YXJ0ZWQgdXNpbmcgU3ZQVnV0ZjgoKS4KICAg IAogICAgUGVyIC1oYWNrZXJzIGRpc2N1c3Npb24uIE9yaWdpbmFsIHByb2JsZW0gcmVwb3J0 ZWQgYnkgRGF2aWQgV2hlZWxlci4KCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZXJsL3BscGVy bF9oZWxwZXJzLmggYi9zcmMvcGwvcGxwZXJsL3BscGVybF9oZWxwZXJzLmgKaW5kZXggYWMw YTk3ZC4uYzY3MTgyMCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGVybC9wbHBlcmxfaGVscGVy cy5oCisrKyBiL3NyYy9wbC9wbHBlcmwvcGxwZXJsX2hlbHBlcnMuaApAQCAtNTAsOCArNTAs MTQgQEAgc3YyY3N0cihTViAqc3YpCiAKIAkvKgogCSAqIGdldCBhIHV0ZjggZW5jb2RlZCBj aGFyICogb3V0IG9mIHBlcmwuICpub3RlKiBpdCBtYXkgbm90IGJlIHZhbGlkIHV0ZjghCisJ ICoKKwkgKiBTdlBWdXRmOCgpIGNyb2FrcyBuYXN0aWx5IG9uIGNlcnRhaW4gdGhpbmdzLCBs aWtlIHR5cGVnbG9icyBhbmQKKwkgKiByZWFkb25seSBvYmplY3Qgc3VjaCBhcyAkXlYuIFRo YXQncyBhIHBlcmwgYnVnIC0gaXQncyBub3Qgc3VwcG9zZWQgdG8KKwkgKiBoYXBwZW4uIFRv IGF2b2lkIGNyYXNoaW5nIHRoZSBiYWNrZW5kLCB3ZSBtYWtlIGEgbW9ydGFsIGNvcHkgb2Yg dGhlCisJICogc3YgYmVmb3JlIHBhc3NpbmcgaXQgdG8gU3ZQVnV0ZjgoKS4gVGhlIGNvcHkg d2lsbCBiZSBnYXJiYWdlIGNvbGxlY3RlZAorCSAqIHZlcnkgc29vbiAoc2VlIHBlcmxkb2Mg cGVybGd1dHMpLgogCSAqLwotCXZhbCA9IFN2UFZ1dGY4KHN2LCBsZW4pOworCXZhbCA9IFN2 UFZ1dGY4KHN2X21vcnRhbGNvcHkoc3YpLCBsZW4pOwogCiAJLyoKIAkgKiB3ZSB1c2UgcGVy bHMgbGVuZ3RoIGluIHRoZSBldmVudCB3ZSBoYWQgYW4gZW1iZWRkZWQgbnVsbCBieXRlIHRv IGVuc3VyZQoKY29tbWl0IDhjZjgyYWM1M2U5YTNkNWRkODZmMTYxMDZlMzM5ODA2M2E1MjY4 MTcKQXV0aG9yOiBNaWNoYWVsIE1lc2tlcyA8bWVza2VzQHBvc3RncmVzcWwub3JnPgpEYXRl OiAgIFRodSBKYW4gNSAxNDowODo0NSAyMDEyICswMTAwCgogICAgRWNwZ2xpYiBzdG9yZXMg dmFyaWFibGVzIHRoYXQgYXJlIHVzZWQgaW4gREVDTEFSRSBzdGF0ZW1lbnRzIGluIGEgZ2xv YmFsIGxpc3QuCiAgICBUaGlzIGxpc3QgaXMgbm93IGZyZWVkIHdoZW4gdGhlIGxhc3QgY29u bmVjdGlvbiBoYXMgYmVlbiBjbG9zZWQuCiAgICAKICAgIENsb3NlczogIzYzNjYKCmRpZmYg LS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvY29ubmVjdC5jIGIvc3JjL2lu dGVyZmFjZXMvZWNwZy9lY3BnbGliL2Nvbm5lY3QuYwppbmRleCA5OTcwNDZiLi45MDliYTcw IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvY29ubmVjdC5jCisr KyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9jb25uZWN0LmMKQEAgLTE0OSw2ICsx NDksMTMgQEAgZWNwZ19maW5pc2goc3RydWN0IGNvbm5lY3Rpb24gKiBhY3QpCiAJCWZvciAo Y2FjaGUgPSBhY3QtPmNhY2hlX2hlYWQ7IGNhY2hlOyBwdHIgPSBjYWNoZSwgY2FjaGUgPSBj YWNoZS0+bmV4dCwgZWNwZ19mcmVlKHB0cikpOwogCQllY3BnX2ZyZWUoYWN0LT5uYW1lKTsK IAkJZWNwZ19mcmVlKGFjdCk7CisJCS8qIGRlbGV0ZSBjdXJzb3IgdmFyaWFibGVzIHdoZW4g bGFzdCBjb25uZWN0aW9uIGdldHMgY2xvc2VkICovCisJCWlmIChhbGxfY29ubmVjdGlvbnMg PT0gTlVMTCkKKwkJeworCQkJc3RydWN0IHZhcl9saXN0ICppdl9wdHI7CisKKwkJCWZvciAo OyBpdmxpc3Q7IGl2X3B0ciA9IGl2bGlzdCwgaXZsaXN0ID0gaXZsaXN0LT5uZXh0LCBlY3Bn X2ZyZWUoaXZfcHRyKSk7CisJCX0KIAl9CiAJZWxzZQogCQllY3BnX2xvZygiZWNwZ19maW5p c2g6IGNhbGxlZCBhbiBleHRyYSB0aW1lXG4iKTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2VjcGcvZWNwZ2xpYi9leHRlcm4uaCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xp Yi9leHRlcm4uaAppbmRleCA5NmQ0OWE0Li5iZDFmZmIwIDEwMDY0NAotLS0gYS9zcmMvaW50 ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZXh0ZXJuLmgKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNw Zy9lY3BnbGliL2V4dGVybi5oCkBAIC0xMjEsNiArMTIxLDE1IEBAIHN0cnVjdCB2YXJpYWJs ZQogCXN0cnVjdCB2YXJpYWJsZSAqbmV4dDsKIH07CiAKK3N0cnVjdCB2YXJfbGlzdAorewor CWludAludW1iZXI7CisJdm9pZCAgICpwb2ludGVyOworCXN0cnVjdCB2YXJfbGlzdCAqbmV4 dDsKK307CisKK2V4dGVybiBzdHJ1Y3QgdmFyX2xpc3QgKml2bGlzdDsKKwogLyogSGVyZSBh cmUgc29tZSBtZXRob2RzIHVzZWQgYnkgdGhlIGxpYi4gKi8KIAogLyogUmV0dXJucyBhIHBv aW50ZXIgdG8gYSBzdHJpbmcgY29udGFpbmluZyBhIHNpbXBsZSB0eXBlIG5hbWUuICovCmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvbWlzYy5jIGIvc3JjL2lu dGVyZmFjZXMvZWNwZy9lY3BnbGliL21pc2MuYwppbmRleCA5OGUwNTk3Li5mMjQ0NzgyIDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvbWlzYy5jCisrKyBiL3Ny Yy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9taXNjLmMKQEAgLTUwMSwxMiArNTAxLDcgQEAg ZWNwZ19nZXR0ZXh0KGNvbnN0IGNoYXIgKm1zZ2lkKQogfQogI2VuZGlmICAgLyogRU5BQkxF X05MUyAqLwogCi1zdGF0aWMgc3RydWN0IHZhcl9saXN0Ci17Ci0JaW50CQkJbnVtYmVyOwot CXZvaWQJICAgKnBvaW50ZXI7Ci0Jc3RydWN0IHZhcl9saXN0ICpuZXh0OwotfQkqaXZsaXN0 ID0gTlVMTDsKK3N0cnVjdCB2YXJfbGlzdCAqaXZsaXN0ID0gTlVMTDsKIAogdm9pZAogRUNQ R3NldF92YXIoaW50IG51bWJlciwgdm9pZCAqcG9pbnRlciwgaW50IGxpbmVubykKCmNvbW1p dCBkZmQyNmY5YzVmMzcxNDM3ZjI0MzI0OTAyNTg2M2VhOTkxMWFhY2FhCkF1dGhvcjogVG9t IExhbmUgPHRnbEBzc3MucGdoLnBhLnVzPgpEYXRlOiAgIFdlZCBKYW4gNCAxODozMDo1NSAy MDEyIC0wNTAwCgogICAgTWFrZSBleGVjdXRvcidzIFNFTEVDVCBJTlRPIGNvZGUgc2F2ZSBh bmQgcmVzdG9yZSBvcmlnaW5hbCB0dXBsZSByZWNlaXZlci4KICAgIAogICAgQXMgcHJldmlv dXNseSBjb2RlZCwgdGhlIFF1ZXJ5RGVzYydzIGRlc3QgcG9pbnRlciB3YXMgbGVmdCBkYW5n bGluZwogICAgKHBvaW50aW5nIGF0IGFuIGFscmVhZHktZnJlZWQgcmVjZWl2ZXIgb2JqZWN0 KSBhZnRlciBFeGVjdXRvckVuZC4gIEl0J3MgYQogICAgYml0IGFzdG9uaXNoaW5nIHRoYXQg aXQgdG9vayB1cyB0aGlzIGxvbmcgdG8gbm90aWNlLCBhbmQgSSdtIG5vdCBzdXJlIHRoYXQK ICAgIHRoZSBrbm93biBwcm9ibGVtIGNhc2Ugd2l0aCBTUUwgZnVuY3Rpb25zIGlzIHRoZSBv bmx5IG9uZS4gIEZpeCBpdCBieQogICAgc2F2aW5nIGFuZCByZXN0b3JpbmcgdGhlIG9yaWdp bmFsIHJlY2VpdmVyIHBvaW50ZXIsIHdoaWNoIHNlZW1zIHRoZSBtb3N0CiAgICBidWxsZXRw cm9vZiB3YXkgb2YgZW5zdXJpbmcgYW55IHJlbGF0ZWQgYnVncyBhcmUgYWxzbyBjb3ZlcmVk LgogICAgCiAgICBQZXIgYnVnICM2Mzc5IGZyb20gUGF1bCBSYW1zZXkuICBCYWNrLXBhdGNo IHRvIDguNCB3aGVyZSB0aGUgY3VycmVudAogICAgaGFuZGxpbmcgb2YgU0VMRUNUIElOVE8g d2FzIGludHJvZHVjZWQuCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggNTRkZjE4 ZC4uNTY5ZDBiYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0yNDQ1LDYgKzI0 NDUsNyBAQCB0eXBlZGVmIHN0cnVjdAogewogCURlc3RSZWNlaXZlciBwdWI7CQkJLyogcHVi bGljbHkta25vd24gZnVuY3Rpb24gcG9pbnRlcnMgKi8KIAlFU3RhdGUJICAgKmVzdGF0ZTsJ CQkvKiBFU3RhdGUgd2UgYXJlIHdvcmtpbmcgd2l0aCAqLworCURlc3RSZWNlaXZlciAqb3Jp Z2Rlc3Q7CQkvKiBRdWVyeURlc2MncyBvcmlnaW5hbCByZWNlaXZlciAqLwogCVJlbGF0aW9u CXJlbDsJCQkvKiBSZWxhdGlvbiB0byB3cml0ZSB0byAqLwogCWludAkJCWhpX29wdGlvbnM7 CQkvKiBoZWFwX2luc2VydCBwZXJmb3JtYW5jZSBvcHRpb25zICovCiAJQnVsa0luc2VydFN0 YXRlIGJpc3RhdGU7CS8qIGJ1bGsgaW5zZXJ0IHN0YXRlICovCkBAIC0yNjUxLDEyICsyNjUy LDE0IEBAIE9wZW5JbnRvUmVsKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKQogCS8qCiAJICogTm93 IHJlcGxhY2UgdGhlIHF1ZXJ5J3MgRGVzdFJlY2VpdmVyIHdpdGggb25lIGZvciBTRUxFQ1Qg SU5UTwogCSAqLwotCXF1ZXJ5RGVzYy0+ZGVzdCA9IENyZWF0ZURlc3RSZWNlaXZlcihEZXN0 SW50b1JlbCk7Ci0JbXlTdGF0ZSA9IChEUl9pbnRvcmVsICopIHF1ZXJ5RGVzYy0+ZGVzdDsK KwlteVN0YXRlID0gKERSX2ludG9yZWwgKikgQ3JlYXRlRGVzdFJlY2VpdmVyKERlc3RJbnRv UmVsKTsKIAlBc3NlcnQobXlTdGF0ZS0+cHViLm15ZGVzdCA9PSBEZXN0SW50b1JlbCk7CiAJ bXlTdGF0ZS0+ZXN0YXRlID0gZXN0YXRlOworCW15U3RhdGUtPm9yaWdkZXN0ID0gcXVlcnlE ZXNjLT5kZXN0OwogCW15U3RhdGUtPnJlbCA9IGludG9SZWxhdGlvbkRlc2M7CiAKKwlxdWVy eURlc2MtPmRlc3QgPSAoRGVzdFJlY2VpdmVyICopIG15U3RhdGU7CisKIAkvKgogCSAqIFdl IGNhbiBza2lwIFdBTC1sb2dnaW5nIHRoZSBpbnNlcnRpb25zLCB1bmxlc3MgUElUUiBvciBz dHJlYW1pbmcKIAkgKiByZXBsaWNhdGlvbiBpcyBpbiB1c2UuIFdlIGNhbiBza2lwIHRoZSBG U00gaW4gYW55IGNhc2UuCkBAIC0yNjc3LDggKzI2ODAsMTEgQEAgQ2xvc2VJbnRvUmVsKFF1 ZXJ5RGVzYyAqcXVlcnlEZXNjKQogewogCURSX2ludG9yZWwgKm15U3RhdGUgPSAoRFJfaW50 b3JlbCAqKSBxdWVyeURlc2MtPmRlc3Q7CiAKLQkvKiBPcGVuSW50b1JlbCBtaWdodCBuZXZl ciBoYXZlIGdvdHRlbiBjYWxsZWQgKi8KLQlpZiAobXlTdGF0ZSAmJiBteVN0YXRlLT5wdWIu bXlkZXN0ID09IERlc3RJbnRvUmVsICYmIG15U3RhdGUtPnJlbCkKKwkvKgorCSAqIE9wZW5J bnRvUmVsIG1pZ2h0IG5ldmVyIGhhdmUgZ290dGVuIGNhbGxlZCwgYW5kIHdlIGFsc28gd2Fu dCB0byBndWFyZAorCSAqIGFnYWluc3QgZG91YmxlIGRlc3RydWN0aW9uLgorCSAqLworCWlm IChteVN0YXRlICYmIG15U3RhdGUtPnB1Yi5teWRlc3QgPT0gRGVzdEludG9SZWwpCiAJewog CQlGcmVlQnVsa0luc2VydFN0YXRlKG15U3RhdGUtPmJpc3RhdGUpOwogCkBAIC0yNjg5LDcg KzI2OTUsMTEgQEAgQ2xvc2VJbnRvUmVsKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjKQogCQkvKiBj bG9zZSByZWwsIGJ1dCBrZWVwIGxvY2sgdW50aWwgY29tbWl0ICovCiAJCWhlYXBfY2xvc2Uo bXlTdGF0ZS0+cmVsLCBOb0xvY2spOwogCi0JCW15U3RhdGUtPnJlbCA9IE5VTEw7CisJCS8q IHJlc3RvcmUgdGhlIHJlY2VpdmVyIGJlbG9uZ2luZyB0byBleGVjdXRvcidzIGNhbGxlciAq LworCQlxdWVyeURlc2MtPmRlc3QgPSBteVN0YXRlLT5vcmlnZGVzdDsKKworCQkvKiBtaWdo dCBhcyB3ZWxsIGludm9rZSBteSBkZXN0cnVjdG9yICovCisJCWludG9yZWxfZGVzdHJveSgo RGVzdFJlY2VpdmVyICopIG15U3RhdGUpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZWxlY3RfaW50by5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3NlbGVjdF9pbnRvLm91dAppbmRleCA5ZWQ0MjI5Li5jODMyN2Y2IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVjdF9pbnRvLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlbGVjdF9pbnRvLm91dApAQCAtNTAsMyAr NTAsMjggQEAgREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBzZWxpbnRvX3NjaGVt YS50bXAxCiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHNlbGludG9fc2NoZW1hLnRtcDIKIGRy b3AgY2FzY2FkZXMgdG8gdGFibGUgc2VsaW50b19zY2hlbWEudG1wMwogRFJPUCBVU0VSIHNl bGludG9fdXNlcjsKKy0tCistLSBDUkVBVEUgVEFCTEUgQVMvU0VMRUNUIElOVE8gYXMgbGFz dCBjb21tYW5kIGluIGEgU1FMIGZ1bmN0aW9uCistLSBoYXZlIGJlZW4ga25vd24gdG8gY2F1 c2UgcHJvYmxlbXMKKy0tCitDUkVBVEUgRlVOQ1RJT04gbWFrZV90YWJsZSgpIFJFVFVSTlMg Vk9JRAorQVMgJCQKKyAgQ1JFQVRFIFRBQkxFIGNyZWF0ZWRfdGFibGUgQVMgU0VMRUNUICog RlJPTSBpbnQ4X3RibDsKKyQkIExBTkdVQUdFIFNRTDsKK1NFTEVDVCBtYWtlX3RhYmxlKCk7 CisgbWFrZV90YWJsZSAKKy0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgKiBG Uk9NIGNyZWF0ZWRfdGFibGU7CisgICAgICAgIHExICAgICAgICB8ICAgICAgICBxMiAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgMTIzIHwgICAgICAgICAgICAgICA0NTYKKyAgICAgICAgICAgICAgMTIzIHwgIDQ1 Njc4OTAxMjM0NTY3ODkKKyA0NTY3ODkwMTIzNDU2Nzg5IHwgICAgICAgICAgICAgICAxMjMK KyA0NTY3ODkwMTIzNDU2Nzg5IHwgIDQ1Njc4OTAxMjM0NTY3ODkKKyA0NTY3ODkwMTIzNDU2 Nzg5IHwgLTQ1Njc4OTAxMjM0NTY3ODkKKyg1IHJvd3MpCisKK0RST1AgVEFCTEUgY3JlYXRl ZF90YWJsZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3NlbGVjdF9pbnRv LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3NlbGVjdF9pbnRvLnNxbAppbmRleCAwMzlk MzVjLi4wOWQyMTBiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZWxlY3Rf aW50by5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2VsZWN0X2ludG8uc3FsCkBA IC01MiwzICs1MiwxOCBAQCBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiAKIERST1Ag U0NIRU1BIHNlbGludG9fc2NoZW1hIENBU0NBREU7CiBEUk9QIFVTRVIgc2VsaW50b191c2Vy OworCistLQorLS0gQ1JFQVRFIFRBQkxFIEFTL1NFTEVDVCBJTlRPIGFzIGxhc3QgY29tbWFu ZCBpbiBhIFNRTCBmdW5jdGlvbgorLS0gaGF2ZSBiZWVuIGtub3duIHRvIGNhdXNlIHByb2Js ZW1zCistLQorQ1JFQVRFIEZVTkNUSU9OIG1ha2VfdGFibGUoKSBSRVRVUk5TIFZPSUQKK0FT ICQkCisgIENSRUFURSBUQUJMRSBjcmVhdGVkX3RhYmxlIEFTIFNFTEVDVCAqIEZST00gaW50 OF90Ymw7CiskJCBMQU5HVUFHRSBTUUw7CisKK1NFTEVDVCBtYWtlX3RhYmxlKCk7CisKK1NF TEVDVCAqIEZST00gY3JlYXRlZF90YWJsZTsKKworRFJPUCBUQUJMRSBjcmVhdGVkX3RhYmxl OwoKY29tbWl0IDEwZWNjMGQ1ODY3YjhkZDM5Y2Y1MDZiOGJiMDIwNTNlZGUwNWZiNjAKQXV0 aG9yOiBNaWNoYWVsIE1lc2tlcyA8bWVza2VzQHBvc3RncmVzcWwub3JnPgpEYXRlOiAgIFdl ZCBKYW4gNCAxMDowMToxNCAyMDEyICswMTAwCgogICAgTWFkZSBjb2RlIGluIGVjcGcgYmV0 dGVyIHJlYWRhYmxlLgoKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJv Yy9lY3BnLmhlYWRlciBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9lY3BnLmhlYWRl cgppbmRleCA5NGM0NWM4Li44OGQ5Y2Y1IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9l Y3BnL3ByZXByb2MvZWNwZy5oZWFkZXIKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVw cm9jL2VjcGcuaGVhZGVyCkBAIC0yMjQsMTYgKzIyNCwxNiBAQCBhZGp1c3Rfb3V0b2ZzY29w ZV9jdXJzb3JfdmFycyhzdHJ1Y3QgY3Vyc29yICpjdXIpCiB7CiAJLyogSW5mb3JtaXggYWNj ZXB0cyBERUNMQVJFIHdpdGggdmFyaWFibGVzIHRoYXQgYXJlIG91dCBvZiBzY29wZSB3aGVu IE9QRU4gaXMgY2FsbGVkLgogCSAqIEZvciBpbnN0YW5jZSB5b3UgY2FuIERFQ0xBUkUgYSBj dXJzb3IgaW4gb25lIGZ1bmN0aW9uLCBhbmQgT1BFTi9GRVRDSC9DTE9TRQotCSAqIGl0IGlu IG90aGVyIGZ1bmN0aW9ucy4gVGhpcyBpcyB2ZXJ5IHVzZWZ1bCBmb3IgZS5nLiBldmVudC1k cml2ZXIgcHJvZ3JhbW1pbmcsCisJICogaXQgaW4gYW5vdGhlciBmdW5jdGlvbnMuIFRoaXMg aXMgdmVyeSB1c2VmdWwgZm9yIGUuZy4gZXZlbnQtZHJpdmVyIHByb2dyYW1taW5nLAogCSAq IGJ1dCBtYXkgYWxzbyBsZWFkIHRvIGRhbmdlcm91cyBwcm9ncmFtbWluZy4gVGhlIGxpbWl0 YXRpb24gd2hlbiB0aGlzIGlzIGFsbG93ZWQKLQkgKiBhbmQgZG9lc24ncyBjYXVzZSBwcm9i bGVtcyBoYXZlIHRvIGJlIGRvY3VtZW50ZWQsIGxpa2UgdGhlIGFsbG9jYXRlZCB2YXJpYWJs ZXMKKwkgKiBhbmQgZG9lc24ndCBjYXVzZSBwcm9ibGVtcyBoYXZlIHRvIGJlIGRvY3VtZW50 ZWQsIGxpa2UgdGhlIGFsbG9jYXRlZCB2YXJpYWJsZXMKIAkgKiBtdXN0IG5vdCBiZSByZWFs bG9jKCknZWQuCiAJICoKIAkgKiBXZSBoYXZlIHRvIGNoYW5nZSB0aGUgdmFyaWFibGVzIHRv IG91ciBvd24gc3RydWN0IGFuZCBqdXN0IHN0b3JlIHRoZSBwb2ludGVyCiAJICogaW5zdGVh ZCBvZiB0aGUgdmFyaWFibGUuIERvIGl0IG9ubHkgZm9yIGxvY2FsIHZhcmlhYmxlcywgbm90 IGZvciBnbG9iYWxzLgogCSAqLwogCi0JY2hhciAqcmVzdWx0ID0gbW1fc3RyZHVwKCIiKTsK KwljaGFyICpyZXN1bHQgPSBFTVBUWTsKIAlpbnQgaW5zZXJ0OwogCiAJZm9yIChpbnNlcnQg PSAxOyBpbnNlcnQgPj0gMDsgaW5zZXJ0LS0pCkBAIC0yNDcsMTMgKzI0NywxNCBAQCBhZGp1 c3Rfb3V0b2ZzY29wZV9jdXJzb3JfdmFycyhzdHJ1Y3QgY3Vyc29yICpjdXIpCiAKIAkJZm9y IChwdHIgPSBsaXN0OyBwdHIgIT0gTlVMTDsgcHRyID0gcHRyLT5uZXh0KQogCQl7Ci0JCQlj aGFyIHRlbXBbMjBdOworCQkJY2hhciB2YXJfdGV4dFsyMF07CiAJCQljaGFyICpvcmlnaW5h bF92YXI7CiAJCQlib29sIHNraXBfc2V0X3ZhciA9IGZhbHNlOworCQkJYm9vbCB2YXJfcHRy ID0gZmFsc2U7CiAKIAkJCS8qIGNoYW5nZSB2YXJpYWJsZSBuYW1lIHRvICJFQ1BHZ2V0X3Zh cig8Y291bnRlcj4pIiAqLwogCQkJb3JpZ2luYWxfdmFyID0gcHRyLT52YXJpYWJsZS0+bmFt ZTsKLQkJCXNwcmludGYodGVtcCwgIiVkKSkiLCBlY3BnX2ludGVybmFsX3Zhcik7CisJCQlz cHJpbnRmKHZhcl90ZXh0LCAiJWQpKSIsIGVjcGdfaW50ZXJuYWxfdmFyKTsKIAogCQkJLyog RG9uJ3QgZW1pdCBFQ1BHc2V0X3ZhcigpIGNhbGxzIGZvciBnbG9iYWwgdmFyaWFibGVzICov CiAJCQlpZiAocHRyLT52YXJpYWJsZS0+YnJhY2VfbGV2ZWwgPT0gMCkKQEAgLTI3NiwxMyAr Mjc3LDEyIEBAIGFkanVzdF9vdXRvZnNjb3BlX2N1cnNvcl92YXJzKHN0cnVjdCBjdXJzb3Ig KmN1cikKIAkJCQluZXd2YXIgPSBuZXdfdmFyaWFibGUoY2F0X3N0cig0LCBtbV9zdHJkdXAo IigiKSwKIAkJCQkJCQkJCQkJICBtbV9zdHJkdXAoZWNwZ190eXBlX25hbWUocHRyLT52YXJp YWJsZS0+dHlwZS0+dS5lbGVtZW50LT50eXBlKSksCiAJCQkJCQkJCQkJCSAgbW1fc3RyZHVw KCIgKikoRUNQR2dldF92YXIoIiksCi0JCQkJCQkJCQkJCSAgbW1fc3RyZHVwKHRlbXApKSwK KwkJCQkJCQkJCQkJICBtbV9zdHJkdXAodmFyX3RleHQpKSwKIAkJCQkJCQkJCSAgRUNQR21h a2VfYXJyYXlfdHlwZShFQ1BHbWFrZV9zaW1wbGVfdHlwZShwdHItPnZhcmlhYmxlLT50eXBl LT51LmVsZW1lbnQtPnR5cGUsCiAJCQkJCQkJCQkJCQkJCQkJCQkJICAgbW1fc3RyZHVwKCIx IiksCiAJCQkJCQkJCQkJCQkJCQkJCQkJICAgcHRyLT52YXJpYWJsZS0+dHlwZS0+dS5lbGVt ZW50LT5jb3VudGVyKSwKIAkJCQkJCQkJCQkJCQkJICBwdHItPnZhcmlhYmxlLT50eXBlLT5z aXplKSwKIAkJCQkJCQkJCSAgMCk7Ci0JCQkJc3ByaW50Zih0ZW1wLCAiJWQsICgiLCBlY3Bn X2ludGVybmFsX3ZhcisrKTsKIAkJCX0KIAkJCWVsc2UgaWYgKChwdHItPnZhcmlhYmxlLT50 eXBlLT50eXBlID09IEVDUEd0X3ZhcmNoYXIKIAkJCQkJICB8fCBwdHItPnZhcmlhYmxlLT50 eXBlLT50eXBlID09IEVDUEd0X2NoYXIKQEAgLTI5Myw1OSArMjkzLDU3IEBAIGFkanVzdF9v dXRvZnNjb3BlX2N1cnNvcl92YXJzKHN0cnVjdCBjdXJzb3IgKmN1cikKIAkJCQluZXd2YXIg PSBuZXdfdmFyaWFibGUoY2F0X3N0cig0LCBtbV9zdHJkdXAoIigiKSwKIAkJCQkJCQkJCQkJ ICBtbV9zdHJkdXAoZWNwZ190eXBlX25hbWUocHRyLT52YXJpYWJsZS0+dHlwZS0+dHlwZSkp LAogCQkJCQkJCQkJCQkgIG1tX3N0cmR1cCgiICopKEVDUEdnZXRfdmFyKCIpLAotCQkJCQkJ CQkJCQkgIG1tX3N0cmR1cCh0ZW1wKSksCisJCQkJCQkJCQkJCSAgbW1fc3RyZHVwKHZhcl90 ZXh0KSksCiAJCQkJCQkJCQkgIEVDUEdtYWtlX3NpbXBsZV90eXBlKHB0ci0+dmFyaWFibGUt PnR5cGUtPnR5cGUsCiAJCQkJCQkJCQkJCQkJCSAgIHB0ci0+dmFyaWFibGUtPnR5cGUtPnNp emUsCiAJCQkJCQkJCQkJCQkJCSAgIHB0ci0+dmFyaWFibGUtPnR5cGUtPmNvdW50ZXIpLAog CQkJCQkJCQkJICAwKTsKIAkJCQlpZiAocHRyLT52YXJpYWJsZS0+dHlwZS0+dHlwZSA9PSBF Q1BHdF92YXJjaGFyKQotCQkJCQlzcHJpbnRmKHRlbXAsICIlZCwgJigiLCBlY3BnX2ludGVy bmFsX3ZhcisrKTsKLQkJCQllbHNlCi0JCQkJCXNwcmludGYodGVtcCwgIiVkLCAoIiwgZWNw Z19pbnRlcm5hbF92YXIrKyk7CisJCQkJCXZhcl9wdHIgPSB0cnVlOwogCQkJfQogCQkJZWxz ZSBpZiAocHRyLT52YXJpYWJsZS0+dHlwZS0+dHlwZSA9PSBFQ1BHdF9zdHJ1Y3QKIAkJCQkJ IHx8IHB0ci0+dmFyaWFibGUtPnR5cGUtPnR5cGUgPT0gRUNQR3RfdW5pb24pCiAJCQl7Ci0J CQkJc3ByaW50Zih0ZW1wLCAiJWQpKSkiLCBlY3BnX2ludGVybmFsX3Zhcik7Ci0JCQkJbmV3 dmFyID0gbmV3X3ZhcmlhYmxlKGNhdF9zdHIoNCwgbW1fc3RyZHVwKCIoKigiKSwKKwkJCQlu ZXd2YXIgPSBuZXdfdmFyaWFibGUoY2F0X3N0cig1LCBtbV9zdHJkdXAoIigqKCIpLAogCQkJ CQkJCQkJCQkgIG1tX3N0cmR1cChwdHItPnZhcmlhYmxlLT50eXBlLT50eXBlX25hbWUpLAog CQkJCQkJCQkJCQkgIG1tX3N0cmR1cCgiICopKEVDUEdnZXRfdmFyKCIpLAotCQkJCQkJCQkJ CQkgIG1tX3N0cmR1cCh0ZW1wKSksCisJCQkJCQkJCQkJCSAgbW1fc3RyZHVwKHZhcl90ZXh0 KSwKKwkJCQkJCQkJCQkJICBtbV9zdHJkdXAoIikiKSksCiAJCQkJCQkJCQkgIEVDUEdtYWtl X3N0cnVjdF90eXBlKHB0ci0+dmFyaWFibGUtPnR5cGUtPnUubWVtYmVycywKIAkJCQkJCQkJ CQkJCQkJICAgcHRyLT52YXJpYWJsZS0+dHlwZS0+dHlwZSwKIAkJCQkJCQkJCQkJCQkJICAg cHRyLT52YXJpYWJsZS0+dHlwZS0+dHlwZV9uYW1lLAogCQkJCQkJCQkJCQkJCQkgICBwdHIt PnZhcmlhYmxlLT50eXBlLT5zdHJ1Y3Rfc2l6ZW9mKSwKIAkJCQkJCQkJCSAgMCk7Ci0JCQkJ c3ByaW50Zih0ZW1wLCAiJWQsICYoIiwgZWNwZ19pbnRlcm5hbF92YXIrKyk7CisJCQkJdmFy X3B0ciA9IHRydWU7CiAJCQl9CiAJCQllbHNlIGlmIChwdHItPnZhcmlhYmxlLT50eXBlLT50 eXBlID09IEVDUEd0X2FycmF5KQogCQkJewogCQkJCWlmIChwdHItPnZhcmlhYmxlLT50eXBl LT51LmVsZW1lbnQtPnR5cGUgPT0gRUNQR3Rfc3RydWN0CiAJCQkJCXx8IHB0ci0+dmFyaWFi bGUtPnR5cGUtPnUuZWxlbWVudC0+dHlwZSA9PSBFQ1BHdF91bmlvbikKIAkJCQl7Ci0JCQkJ CXNwcmludGYodGVtcCwgIiVkKSkpIiwgZWNwZ19pbnRlcm5hbF92YXIpOwotCQkJCQluZXd2 YXIgPSBuZXdfdmFyaWFibGUoY2F0X3N0cig0LCBtbV9zdHJkdXAoIigqKCIpLAotCQkJCQkJ CQkJCQkJICBtbV9zdHJkdXAocHRyLT52YXJpYWJsZS0+dHlwZS0+dS5lbGVtZW50LT50eXBl X25hbWUpLAotCQkJCQkJCQkJCQkJICBtbV9zdHJkdXAoIiAqKShFQ1BHZ2V0X3ZhcigiKSwg bW1fc3RyZHVwKHRlbXApKSwKKwkJCQkJbmV3dmFyID0gbmV3X3ZhcmlhYmxlKGNhdF9zdHIo NSwgbW1fc3RyZHVwKCIoKigiKSwKKwkJCQkJCQkJCQkJICBtbV9zdHJkdXAocHRyLT52YXJp YWJsZS0+dHlwZS0+dS5lbGVtZW50LT50eXBlX25hbWUpLAorCQkJCQkJCQkJCQkgIG1tX3N0 cmR1cCgiICopKEVDUEdnZXRfdmFyKCIpLAorCQkJCQkJCQkJCQkgIG1tX3N0cmR1cCh2YXJf dGV4dCksCisJCQkJCQkJCQkJCSAgbW1fc3RyZHVwKCIpIikpLAogCQkJCQkJCQkJCSAgRUNQ R21ha2Vfc3RydWN0X3R5cGUocHRyLT52YXJpYWJsZS0+dHlwZS0+dS5lbGVtZW50LT51Lm1l bWJlcnMsCiAJCQkJCQkJCQkJCQkJCQkgICBwdHItPnZhcmlhYmxlLT50eXBlLT51LmVsZW1l bnQtPnR5cGUsCiAJCQkJCQkJCQkJCQkJCQkgICBwdHItPnZhcmlhYmxlLT50eXBlLT51LmVs ZW1lbnQtPnR5cGVfbmFtZSwKIAkJCQkJCQkJCQkJCQkJCSAgIHB0ci0+dmFyaWFibGUtPnR5 cGUtPnUuZWxlbWVudC0+c3RydWN0X3NpemVvZiksCiAJCQkJCQkJCQkJICAwKTsKLQkJCQkJ c3ByaW50Zih0ZW1wLCAiJWQsICgiLCBlY3BnX2ludGVybmFsX3ZhcisrKTsKIAkJCQl9CiAJ CQkJZWxzZQogCQkJCXsKIAkJCQkJbmV3dmFyID0gbmV3X3ZhcmlhYmxlKGNhdF9zdHIoNCwg bW1fc3RyZHVwKCIoIiksCiAJCQkJCQkJCQkJCQkgIG1tX3N0cmR1cChlY3BnX3R5cGVfbmFt ZShwdHItPnZhcmlhYmxlLT50eXBlLT50eXBlKSksCiAJCQkJCQkJCQkJCQkgIG1tX3N0cmR1 cCgiICopKEVDUEdnZXRfdmFyKCIpLAotCQkJCQkJCQkJCQkJICBtbV9zdHJkdXAodGVtcCkp LAorCQkJCQkJCQkJCQkJICBtbV9zdHJkdXAodmFyX3RleHQpKSwKIAkJCQkJCQkJCQkgIEVD UEdtYWtlX2FycmF5X3R5cGUoRUNQR21ha2Vfc2ltcGxlX3R5cGUocHRyLT52YXJpYWJsZS0+ dHlwZS0+dS5lbGVtZW50LT50eXBlLAogCQkJCQkJCQkJCQkJCQkJCQkJCQkgICBwdHItPnZh cmlhYmxlLT50eXBlLT51LmVsZW1lbnQtPnNpemUsCiAJCQkJCQkJCQkJCQkJCQkJCQkJCSAg IHB0ci0+dmFyaWFibGUtPnR5cGUtPnUuZWxlbWVudC0+Y291bnRlciksCiAJCQkJCQkJCQkJ CQkJCQkgIHB0ci0+dmFyaWFibGUtPnR5cGUtPnNpemUpLAogCQkJCQkJCQkJCSAgMCk7Ci0J CQkJCXNwcmludGYodGVtcCwgIiVkLCAmKCIsIGVjcGdfaW50ZXJuYWxfdmFyKyspOworCQkJ CQl2YXJfcHRyID0gdHJ1ZTsKIAkJCQl9CiAJCQl9CiAJCQllbHNlCkBAIC0zNTMsMTkgKzM1 MSwyMiBAQCBhZGp1c3Rfb3V0b2ZzY29wZV9jdXJzb3JfdmFycyhzdHJ1Y3QgY3Vyc29yICpj dXIpCiAJCQkJbmV3dmFyID0gbmV3X3ZhcmlhYmxlKGNhdF9zdHIoNCwgbW1fc3RyZHVwKCIq KCIpLAogCQkJCQkJCQkJCQkgIG1tX3N0cmR1cChlY3BnX3R5cGVfbmFtZShwdHItPnZhcmlh YmxlLT50eXBlLT50eXBlKSksCiAJCQkJCQkJCQkJCSAgbW1fc3RyZHVwKCIgKikoRUNQR2dl dF92YXIoIiksCi0JCQkJCQkJCQkJCSAgbW1fc3RyZHVwKHRlbXApKSwKKwkJCQkJCQkJCQkJ ICBtbV9zdHJkdXAodmFyX3RleHQpKSwKIAkJCQkJCQkJCSAgRUNQR21ha2Vfc2ltcGxlX3R5 cGUocHRyLT52YXJpYWJsZS0+dHlwZS0+dHlwZSwKIAkJCQkJCQkJCQkJCQkJICAgcHRyLT52 YXJpYWJsZS0+dHlwZS0+c2l6ZSwKIAkJCQkJCQkJCQkJCQkJICAgcHRyLT52YXJpYWJsZS0+ dHlwZS0+Y291bnRlciksCiAJCQkJCQkJCQkgIDApOwotCQkJCXNwcmludGYodGVtcCwgIiVk LCAmKCIsIGVjcGdfaW50ZXJuYWxfdmFyKyspOworCQkJCXZhcl9wdHIgPSB0cnVlOwogCQkJ fQogCi0JCQkvKiBjcmVhdGUgY2FsbCB0byAiRUNQR3NldF92YXIoPGNvdW50ZXI+LCA8cG9p bnRlcj4uIDxsaW5lIG51bWJlcj4pIiAqLworCQkJLyogY3JlYXRlIGNhbGwgdG8gIkVDUEdz ZXRfdmFyKDxjb3VudGVyPiwgPGNvbm5lY3Rpb24+LCA8cG9pbnRlcj4uIDxsaW5lIG51bWJl cj4pIiAqLwogCQkJaWYgKCFza2lwX3NldF92YXIpCisJCQl7CisJCQkJc3ByaW50Zih2YXJf dGV4dCwgIiVkLCAlcyIsIGVjcGdfaW50ZXJuYWxfdmFyKyssIHZhcl9wdHIgPyAiJigiIDog IigiKTsKIAkJCQlyZXN1bHQgPSBjYXRfc3RyKDUsIHJlc3VsdCwgbW1fc3RyZHVwKCJFQ1BH c2V0X3ZhcigiKSwKLQkJCQkJCQkJIG1tX3N0cmR1cCh0ZW1wKSwgbW1fc3RyZHVwKG9yaWdp bmFsX3ZhciksCisJCQkJCQkJCSBtbV9zdHJkdXAodmFyX3RleHQpLCBtbV9zdHJkdXAob3Jp Z2luYWxfdmFyKSwKIAkJCQkJCQkJIG1tX3N0cmR1cCgiKSwgX19MSU5FX18pO1xuIikpOwor CQkJfQogCiAJCQkvKiBub3cgdGhlIGluZGljYXRvciBpZiB0aGVyZSBpcyBvbmUgYW5kIGl0 J3Mgbm90IGEgZ2xvYmFsIHZhcmlhYmxlICovCiAJCQlpZiAoKHB0ci0+aW5kaWNhdG9yLT50 eXBlLT50eXBlID09IEVDUEd0X05PX0lORElDQVRPUikgfHwgKHB0ci0+aW5kaWNhdG9yLT5i cmFjZV9sZXZlbCA9PSAwKSkKQEAgLTM3Niw1MCArMzc3LDUxIEBAIGFkanVzdF9vdXRvZnNj b3BlX2N1cnNvcl92YXJzKHN0cnVjdCBjdXJzb3IgKmN1cikKIAkJCXsKIAkJCQkvKiBjaGFu Z2UgdmFyaWFibGUgbmFtZSB0byAiRUNQR2dldF92YXIoPGNvdW50ZXI+KSIgKi8KIAkJCQlv cmlnaW5hbF92YXIgPSBwdHItPmluZGljYXRvci0+bmFtZTsKLQkJCQlzcHJpbnRmKHRlbXAs ICIlZCkpIiwgZWNwZ19pbnRlcm5hbF92YXIpOworCQkJCXNwcmludGYodmFyX3RleHQsICIl ZCkpIiwgZWNwZ19pbnRlcm5hbF92YXIpOworCQkJCXZhcl9wdHIgPSBmYWxzZTsKIAogCQkJ CWlmIChwdHItPmluZGljYXRvci0+dHlwZS0+dHlwZSA9PSBFQ1BHdF9zdHJ1Y3QKIAkJCQkJ fHwgcHRyLT5pbmRpY2F0b3ItPnR5cGUtPnR5cGUgPT0gRUNQR3RfdW5pb24pCiAJCQkJewot CQkJCQlzcHJpbnRmKHRlbXAsICIlZCkpKSIsIGVjcGdfaW50ZXJuYWxfdmFyKTsKLQkJCQkJ bmV3aW5kID0gbmV3X3ZhcmlhYmxlKGNhdF9zdHIoNCwgbW1fc3RyZHVwKCIoKigiKSwKLQkJ CQkJCQkJCQkJCSAgbW1fc3RyZHVwKHB0ci0+aW5kaWNhdG9yLT50eXBlLT50eXBlX25hbWUp LAotCQkJCQkJCQkJCQkJICBtbV9zdHJkdXAoIiAqKShFQ1BHZ2V0X3ZhcigiKSwKLQkJCQkJ CQkJCQkJCSAgbW1fc3RyZHVwKHRlbXApKSwKKwkJCQkJbmV3aW5kID0gbmV3X3ZhcmlhYmxl KGNhdF9zdHIoNSwgbW1fc3RyZHVwKCIoKigiKSwKKwkJCQkJCQkJCQkJICBtbV9zdHJkdXAo cHRyLT5pbmRpY2F0b3ItPnR5cGUtPnR5cGVfbmFtZSksCisJCQkJCQkJCQkJCSAgbW1fc3Ry ZHVwKCIgKikoRUNQR2dldF92YXIoIiksCisJCQkJCQkJCQkJCSAgbW1fc3RyZHVwKHZhcl90 ZXh0KSwKKwkJCQkJCQkJCQkJICBtbV9zdHJkdXAoIikiKSksCiAJCQkJCQkJCQkJICBFQ1BH bWFrZV9zdHJ1Y3RfdHlwZShwdHItPmluZGljYXRvci0+dHlwZS0+dS5tZW1iZXJzLAogCQkJ CQkJCQkJCQkJCQkJICAgcHRyLT5pbmRpY2F0b3ItPnR5cGUtPnR5cGUsCiAJCQkJCQkJCQkJ CQkJCQkgICBwdHItPmluZGljYXRvci0+dHlwZS0+dHlwZV9uYW1lLAogCQkJCQkJCQkJCQkJ CQkJICAgcHRyLT5pbmRpY2F0b3ItPnR5cGUtPnN0cnVjdF9zaXplb2YpLAogCQkJCQkJCQkJ CSAgMCk7Ci0JCQkJCXNwcmludGYodGVtcCwgIiVkLCAmKCIsIGVjcGdfaW50ZXJuYWxfdmFy KyspOworCQkJCQl2YXJfcHRyID0gdHJ1ZTsKIAkJCQl9CiAJCQkJZWxzZSBpZiAocHRyLT5p bmRpY2F0b3ItPnR5cGUtPnR5cGUgPT0gRUNQR3RfYXJyYXkpCiAJCQkJewogCQkJCQlpZiAo cHRyLT5pbmRpY2F0b3ItPnR5cGUtPnUuZWxlbWVudC0+dHlwZSA9PSBFQ1BHdF9zdHJ1Y3QK IAkJCQkJCXx8IHB0ci0+aW5kaWNhdG9yLT50eXBlLT51LmVsZW1lbnQtPnR5cGUgPT0gRUNQ R3RfdW5pb24pCiAJCQkJCXsKLQkJCQkJCXNwcmludGYodGVtcCwgIiVkKSkpIiwgZWNwZ19p bnRlcm5hbF92YXIpOwotCQkJCQkJbmV3aW5kID0gbmV3X3ZhcmlhYmxlKGNhdF9zdHIoNCwg bW1fc3RyZHVwKCIoKigiKSwKLQkJCQkJCQkJCQkJCQkgIG1tX3N0cmR1cChwdHItPmluZGlj YXRvci0+dHlwZS0+dS5lbGVtZW50LT50eXBlX25hbWUpLAotCQkJCQkJCQkJCQkJCSAgbW1f c3RyZHVwKCIgKikoRUNQR2dldF92YXIoIiksIG1tX3N0cmR1cCh0ZW1wKSksCisJCQkJCQlu ZXdpbmQgPSBuZXdfdmFyaWFibGUoY2F0X3N0cig1LCBtbV9zdHJkdXAoIigqKCIpLAorCQkJ CQkJCQkJCQkgIG1tX3N0cmR1cChwdHItPmluZGljYXRvci0+dHlwZS0+dS5lbGVtZW50LT50 eXBlX25hbWUpLAorCQkJCQkJCQkJCQkgIG1tX3N0cmR1cCgiICopKEVDUEdnZXRfdmFyKCIp LAorCQkJCQkJCQkJCQkgIG1tX3N0cmR1cCh2YXJfdGV4dCksCisJCQkJCQkJCQkJCSAgbW1f c3RyZHVwKCIpIikpLAogCQkJCQkJCQkJCQkgIEVDUEdtYWtlX3N0cnVjdF90eXBlKHB0ci0+ aW5kaWNhdG9yLT50eXBlLT51LmVsZW1lbnQtPnUubWVtYmVycywKIAkJCQkJCQkJCQkJCQkJ CQkgICBwdHItPmluZGljYXRvci0+dHlwZS0+dS5lbGVtZW50LT50eXBlLAogCQkJCQkJCQkJ CQkJCQkJCSAgIHB0ci0+aW5kaWNhdG9yLT50eXBlLT51LmVsZW1lbnQtPnR5cGVfbmFtZSwK IAkJCQkJCQkJCQkJCQkJCQkgICBwdHItPmluZGljYXRvci0+dHlwZS0+dS5lbGVtZW50LT5z dHJ1Y3Rfc2l6ZW9mKSwKIAkJCQkJCQkJCQkJICAwKTsKLQkJCQkJCXNwcmludGYodGVtcCwg IiVkLCAoIiwgZWNwZ19pbnRlcm5hbF92YXIrKyk7CiAJCQkJCX0KIAkJCQkJZWxzZQogCQkJ CQl7CiAJCQkJCQluZXdpbmQgPSBuZXdfdmFyaWFibGUoY2F0X3N0cig0LCBtbV9zdHJkdXAo IigiKSwKIAkJCQkJCQkJCQkJCQkgIG1tX3N0cmR1cChlY3BnX3R5cGVfbmFtZShwdHItPmlu ZGljYXRvci0+dHlwZS0+dS5lbGVtZW50LT50eXBlKSksCi0JCQkJCQkJCQkJCQkJICBtbV9z dHJkdXAoIiAqKShFQ1BHZ2V0X3ZhcigiKSwgbW1fc3RyZHVwKHRlbXApKSwKKwkJCQkJCQkJ CQkJCQkgIG1tX3N0cmR1cCgiICopKEVDUEdnZXRfdmFyKCIpLCBtbV9zdHJkdXAodmFyX3Rl eHQpKSwKIAkJCQkJCQkJCQkJICBFQ1BHbWFrZV9hcnJheV90eXBlKEVDUEdtYWtlX3NpbXBs ZV90eXBlKHB0ci0+aW5kaWNhdG9yLT50eXBlLT51LmVsZW1lbnQtPnR5cGUsCiAJCQkJCQkJ CQkJCQkJCQkJCQkJCQkgICBwdHItPmluZGljYXRvci0+dHlwZS0+dS5lbGVtZW50LT5zaXpl LAogCQkJCQkJCQkJCQkJCQkJCQkJCQkJICAgcHRyLT5pbmRpY2F0b3ItPnR5cGUtPnUuZWxl bWVudC0+Y291bnRlciksCiAJCQkJCQkJCQkJCQkJCQkJICBwdHItPmluZGljYXRvci0+dHlw ZS0+c2l6ZSksCiAJCQkJCQkJCQkJCSAgMCk7Ci0JCQkJCQlzcHJpbnRmKHRlbXAsICIlZCwg JigiLCBlY3BnX2ludGVybmFsX3ZhcisrKTsKKwkJCQkJCXZhcl9wdHIgPSB0cnVlOwogCQkJ CQl9CiAJCQkJfQogCQkJCWVsc2UgaWYgKGF0b2kocHRyLT5pbmRpY2F0b3ItPnR5cGUtPnNp emUpID4gMSkKQEAgLTQyNywyOSArNDI5LDI5IEBAIGFkanVzdF9vdXRvZnNjb3BlX2N1cnNv cl92YXJzKHN0cnVjdCBjdXJzb3IgKmN1cikKIAkJCQkJbmV3aW5kID0gbmV3X3ZhcmlhYmxl KGNhdF9zdHIoNCwgbW1fc3RyZHVwKCIoIiksCiAJCQkJCQkJCQkJCQkgIG1tX3N0cmR1cChl Y3BnX3R5cGVfbmFtZShwdHItPmluZGljYXRvci0+dHlwZS0+dHlwZSkpLAogCQkJCQkJCQkJ CQkJICBtbV9zdHJkdXAoIiAqKShFQ1BHZ2V0X3ZhcigiKSwKLQkJCQkJCQkJCQkJCSAgbW1f c3RyZHVwKHRlbXApKSwKKwkJCQkJCQkJCQkJCSAgbW1fc3RyZHVwKHZhcl90ZXh0KSksCiAJ CQkJCQkJCQkJICBFQ1BHbWFrZV9zaW1wbGVfdHlwZShwdHItPmluZGljYXRvci0+dHlwZS0+ dHlwZSwKIAkJCQkJCQkJCQkJCQkJCSAgIHB0ci0+aW5kaWNhdG9yLT50eXBlLT5zaXplLAog CQkJCQkJCQkJCQkJCQkJICAgcHRyLT52YXJpYWJsZS0+dHlwZS0+Y291bnRlciksCiAJCQkJ CQkJCQkJICAwKTsKLQkJCQkJc3ByaW50Zih0ZW1wLCAiJWQsICgiLCBlY3BnX2ludGVybmFs X3ZhcisrKTsKIAkJCQl9CiAJCQkJZWxzZQogCQkJCXsKIAkJCQkJbmV3aW5kID0gbmV3X3Zh cmlhYmxlKGNhdF9zdHIoNCwgbW1fc3RyZHVwKCIqKCIpLAogCQkJCQkJCQkJCQkJICBtbV9z dHJkdXAoZWNwZ190eXBlX25hbWUocHRyLT5pbmRpY2F0b3ItPnR5cGUtPnR5cGUpKSwKIAkJ CQkJCQkJCQkJCSAgbW1fc3RyZHVwKCIgKikoRUNQR2dldF92YXIoIiksCi0JCQkJCQkJCQkJ CQkgIG1tX3N0cmR1cCh0ZW1wKSksCisJCQkJCQkJCQkJCQkgIG1tX3N0cmR1cCh2YXJfdGV4 dCkpLAogCQkJCQkJCQkJCSAgRUNQR21ha2Vfc2ltcGxlX3R5cGUocHRyLT5pbmRpY2F0b3It PnR5cGUtPnR5cGUsCiAJCQkJCQkJCQkJCQkJCQkgICBwdHItPmluZGljYXRvci0+dHlwZS0+ c2l6ZSwKIAkJCQkJCQkJCQkJCQkJCSAgIHB0ci0+dmFyaWFibGUtPnR5cGUtPmNvdW50ZXIp LAogCQkJCQkJCQkJCSAgMCk7Ci0JCQkJCXNwcmludGYodGVtcCwgIiVkLCAmKCIsIGVjcGdf aW50ZXJuYWxfdmFyKyspOworCQkJCQl2YXJfcHRyID0gdHJ1ZTsKIAkJCQl9CiAKIAkJCQkv KiBjcmVhdGUgY2FsbCB0byAiRUNQR3NldF92YXIoPGNvdW50ZXI+LCA8cG9pbnRlcj4uIDxs aW5lIG51bWJlcj4pIiAqLworCQkJCXNwcmludGYodmFyX3RleHQsICIlZCwgJXMiLCBlY3Bn X2ludGVybmFsX3ZhcisrLCB2YXJfcHRyID8gIiYoIiA6ICIoIik7CiAJCQkJcmVzdWx0ID0g Y2F0X3N0cig1LCByZXN1bHQsIG1tX3N0cmR1cCgiRUNQR3NldF92YXIoIiksCi0JCQkJCQkJ CSBtbV9zdHJkdXAodGVtcCksIG1tX3N0cmR1cChvcmlnaW5hbF92YXIpLAorCQkJCQkJCQkg bW1fc3RyZHVwKHZhcl90ZXh0KSwgbW1fc3RyZHVwKG9yaWdpbmFsX3ZhciksCiAJCQkJCQkJ CSBtbV9zdHJkdXAoIiksIF9fTElORV9fKTtcbiIpKTsKIAkJCX0KIApkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3ByZXByb2Mtb3V0b2ZzY29wZS5j IGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3ByZXByb2Mtb3V0b2ZzY29w ZS5jCmluZGV4IGEzMGI3MjEuLjEyNWQ3ZDggMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2Vz L2VjcGcvdGVzdC9leHBlY3RlZC9wcmVwcm9jLW91dG9mc2NvcGUuYworKysgYi9zcmMvaW50 ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvcHJlcHJvYy1vdXRvZnNjb3BlLmMKQEAgLTIw MiwxNiArMjAyLDE2IEBAIHN0YXRpYyB2b2lkCiBvcGVuX2N1cjEodm9pZCkKIHsKIAl7IEVD UEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgImRlY2xhcmUg bXljdXIgY3Vyc29yIGZvciBzZWxlY3QgKiBmcm9tIGExIiwgRUNQR3RfRU9JVCwgCi0JRUNQ R3RfaW50LCYoKCooIE1ZVFlQRSAgKikoRUNQR2dldF92YXIoIDApKSkuaWQpLChsb25nKTEs KGxvbmcpMSxzaXplb2YoaW50KSwgCi0JRUNQR3RfaW50LCYoKCooIE1ZTlVMTFRZUEUgICop KEVDUEdnZXRfdmFyKCAxKSkpLmlkKSwobG9uZykxLChsb25nKTEsc2l6ZW9mKGludCksIAot CUVDUEd0X2NoYXIsJigoKiggTVlUWVBFICAqKShFQ1BHZ2V0X3ZhciggMCkpKS50KSwobG9u Zyk2NCwobG9uZykxLCg2NCkqc2l6ZW9mKGNoYXIpLCAKLQlFQ1BHdF9pbnQsJigoKiggTVlO VUxMVFlQRSAgKikoRUNQR2dldF92YXIoIDEpKSkudCksKGxvbmcpMSwobG9uZykxLHNpemVv ZihpbnQpLCAKLQlFQ1BHdF9kb3VibGUsJigoKiggTVlUWVBFICAqKShFQ1BHZ2V0X3Zhcigg MCkpKS5kMSksKGxvbmcpMSwobG9uZykxLHNpemVvZihkb3VibGUpLCAKLQlFQ1BHdF9pbnQs JigoKiggTVlOVUxMVFlQRSAgKikoRUNQR2dldF92YXIoIDEpKSkuZDEpLChsb25nKTEsKGxv bmcpMSxzaXplb2YoaW50KSwgCi0JRUNQR3RfZG91YmxlLCYoKCooIE1ZVFlQRSAgKikoRUNQ R2dldF92YXIoIDApKSkuZDIpLChsb25nKTEsKGxvbmcpMSxzaXplb2YoZG91YmxlKSwgCi0J RUNQR3RfaW50LCYoKCooIE1ZTlVMTFRZUEUgICopKEVDUEdnZXRfdmFyKCAxKSkpLmQyKSwo bG9uZykxLChsb25nKTEsc2l6ZW9mKGludCksIAotCUVDUEd0X2NoYXIsJigoKiggTVlUWVBF ICAqKShFQ1BHZ2V0X3ZhciggMCkpKS5jKSwobG9uZykzMCwobG9uZykxLCgzMCkqc2l6ZW9m KGNoYXIpLCAKLQlFQ1BHdF9pbnQsJigoKiggTVlOVUxMVFlQRSAgKikoRUNQR2dldF92YXIo IDEpKSkuYyksKGxvbmcpMSwobG9uZykxLHNpemVvZihpbnQpLCBFQ1BHdF9FT1JUKTsKKwlF Q1BHdF9pbnQsJigoKiggTVlUWVBFICAqKShFQ1BHZ2V0X3ZhciggMCkpICkuaWQpLChsb25n KTEsKGxvbmcpMSxzaXplb2YoaW50KSwgCisJRUNQR3RfaW50LCYoKCooIE1ZTlVMTFRZUEUg ICopKEVDUEdnZXRfdmFyKCAxKSkgKS5pZCksKGxvbmcpMSwobG9uZykxLHNpemVvZihpbnQp LCAKKwlFQ1BHdF9jaGFyLCYoKCooIE1ZVFlQRSAgKikoRUNQR2dldF92YXIoIDApKSApLnQp LChsb25nKTY0LChsb25nKTEsKDY0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X2ludCwmKCgq KCBNWU5VTExUWVBFICAqKShFQ1BHZ2V0X3ZhciggMSkpICkudCksKGxvbmcpMSwobG9uZykx LHNpemVvZihpbnQpLCAKKwlFQ1BHdF9kb3VibGUsJigoKiggTVlUWVBFICAqKShFQ1BHZ2V0 X3ZhciggMCkpICkuZDEpLChsb25nKTEsKGxvbmcpMSxzaXplb2YoZG91YmxlKSwgCisJRUNQ R3RfaW50LCYoKCooIE1ZTlVMTFRZUEUgICopKEVDUEdnZXRfdmFyKCAxKSkgKS5kMSksKGxv bmcpMSwobG9uZykxLHNpemVvZihpbnQpLCAKKwlFQ1BHdF9kb3VibGUsJigoKiggTVlUWVBF ICAqKShFQ1BHZ2V0X3ZhciggMCkpICkuZDIpLChsb25nKTEsKGxvbmcpMSxzaXplb2YoZG91 YmxlKSwgCisJRUNQR3RfaW50LCYoKCooIE1ZTlVMTFRZUEUgICopKEVDUEdnZXRfdmFyKCAx KSkgKS5kMiksKGxvbmcpMSwobG9uZykxLHNpemVvZihpbnQpLCAKKwlFQ1BHdF9jaGFyLCYo KCooIE1ZVFlQRSAgKikoRUNQR2dldF92YXIoIDApKSApLmMpLChsb25nKTMwLChsb25nKTEs KDMwKSpzaXplb2YoY2hhciksIAorCUVDUEd0X2ludCwmKCgqKCBNWU5VTExUWVBFICAqKShF Q1BHZ2V0X3ZhciggMSkpICkuYyksKGxvbmcpMSwobG9uZykxLHNpemVvZihpbnQpLCBFQ1BH dF9FT1JUKTsKICNsaW5lIDQwICJvdXRvZnNjb3BlLnBnYyIKIAogaWYgKHNxbGNhLnNxbGNv ZGUgPCAwKSBleGl0ICgxKTt9CkBAIC0yMjYsMTYgKzIyNiwxNiBAQCBzdGF0aWMgdm9pZAog Z2V0X3JlY29yZDEodm9pZCkKIHsKIAl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwg MCwgRUNQR3N0X25vcm1hbCwgImZldGNoIG15Y3VyIiwgRUNQR3RfRU9JVCwgCi0JRUNQR3Rf aW50LCYoKCooIE1ZVFlQRSAgKikoRUNQR2dldF92YXIoIDApKSkuaWQpLChsb25nKTEsKGxv bmcpMSxzaXplb2YoaW50KSwgCi0JRUNQR3RfaW50LCYoKCooIE1ZTlVMTFRZUEUgICopKEVD UEdnZXRfdmFyKCAxKSkpLmlkKSwobG9uZykxLChsb25nKTEsc2l6ZW9mKGludCksIAotCUVD UEd0X2NoYXIsJigoKiggTVlUWVBFICAqKShFQ1BHZ2V0X3ZhciggMCkpKS50KSwobG9uZyk2 NCwobG9uZykxLCg2NCkqc2l6ZW9mKGNoYXIpLCAKLQlFQ1BHdF9pbnQsJigoKiggTVlOVUxM VFlQRSAgKikoRUNQR2dldF92YXIoIDEpKSkudCksKGxvbmcpMSwobG9uZykxLHNpemVvZihp bnQpLCAKLQlFQ1BHdF9kb3VibGUsJigoKiggTVlUWVBFICAqKShFQ1BHZ2V0X3ZhciggMCkp KS5kMSksKGxvbmcpMSwobG9uZykxLHNpemVvZihkb3VibGUpLCAKLQlFQ1BHdF9pbnQsJigo KiggTVlOVUxMVFlQRSAgKikoRUNQR2dldF92YXIoIDEpKSkuZDEpLChsb25nKTEsKGxvbmcp MSxzaXplb2YoaW50KSwgCi0JRUNQR3RfZG91YmxlLCYoKCooIE1ZVFlQRSAgKikoRUNQR2dl dF92YXIoIDApKSkuZDIpLChsb25nKTEsKGxvbmcpMSxzaXplb2YoZG91YmxlKSwgCi0JRUNQ R3RfaW50LCYoKCooIE1ZTlVMTFRZUEUgICopKEVDUEdnZXRfdmFyKCAxKSkpLmQyKSwobG9u ZykxLChsb25nKTEsc2l6ZW9mKGludCksIAotCUVDUEd0X2NoYXIsJigoKiggTVlUWVBFICAq KShFQ1BHZ2V0X3ZhciggMCkpKS5jKSwobG9uZykzMCwobG9uZykxLCgzMCkqc2l6ZW9mKGNo YXIpLCAKLQlFQ1BHdF9pbnQsJigoKiggTVlOVUxMVFlQRSAgKikoRUNQR2dldF92YXIoIDEp KSkuYyksKGxvbmcpMSwobG9uZykxLHNpemVvZihpbnQpLCBFQ1BHdF9FT1JUKTsKKwlFQ1BH dF9pbnQsJigoKiggTVlUWVBFICAqKShFQ1BHZ2V0X3ZhciggMCkpICkuaWQpLChsb25nKTEs KGxvbmcpMSxzaXplb2YoaW50KSwgCisJRUNQR3RfaW50LCYoKCooIE1ZTlVMTFRZUEUgICop KEVDUEdnZXRfdmFyKCAxKSkgKS5pZCksKGxvbmcpMSwobG9uZykxLHNpemVvZihpbnQpLCAK KwlFQ1BHdF9jaGFyLCYoKCooIE1ZVFlQRSAgKikoRUNQR2dldF92YXIoIDApKSApLnQpLChs b25nKTY0LChsb25nKTEsKDY0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X2ludCwmKCgqKCBN WU5VTExUWVBFICAqKShFQ1BHZ2V0X3ZhciggMSkpICkudCksKGxvbmcpMSwobG9uZykxLHNp emVvZihpbnQpLCAKKwlFQ1BHdF9kb3VibGUsJigoKiggTVlUWVBFICAqKShFQ1BHZ2V0X3Zh ciggMCkpICkuZDEpLChsb25nKTEsKGxvbmcpMSxzaXplb2YoZG91YmxlKSwgCisJRUNQR3Rf aW50LCYoKCooIE1ZTlVMTFRZUEUgICopKEVDUEdnZXRfdmFyKCAxKSkgKS5kMSksKGxvbmcp MSwobG9uZykxLHNpemVvZihpbnQpLCAKKwlFQ1BHdF9kb3VibGUsJigoKiggTVlUWVBFICAq KShFQ1BHZ2V0X3ZhciggMCkpICkuZDIpLChsb25nKTEsKGxvbmcpMSxzaXplb2YoZG91Ymxl KSwgCisJRUNQR3RfaW50LCYoKCooIE1ZTlVMTFRZUEUgICopKEVDUEdnZXRfdmFyKCAxKSkg KS5kMiksKGxvbmcpMSwobG9uZykxLHNpemVvZihpbnQpLCAKKwlFQ1BHdF9jaGFyLCYoKCoo IE1ZVFlQRSAgKikoRUNQR2dldF92YXIoIDApKSApLmMpLChsb25nKTMwLChsb25nKTEsKDMw KSpzaXplb2YoY2hhciksIAorCUVDUEd0X2ludCwmKCgqKCBNWU5VTExUWVBFICAqKShFQ1BH Z2V0X3ZhciggMSkpICkuYyksKGxvbmcpMSwobG9uZykxLHNpemVvZihpbnQpLCBFQ1BHdF9F T1JUKTsKICNsaW5lIDQ5ICJvdXRvZnNjb3BlLnBnYyIKIAogaWYgKHNxbGNhLnNxbGNvZGUg PCAwKSBleGl0ICgxKTt9Cgpjb21taXQgNTRhNjIyY2FkZjFmYjZkMjA0N2JmOTlmYmVlNzNi NjQxOGQyYTIzZgpBdXRob3I6IEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0 PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNjowMjo0OSAyMDEyIC0wNTAwCgogICAgU3VnZ2VzdCB1 c2Ugb2YgcHNxbCB3aGVuIHBnX3Jlc3RvcmUgZ2V0cyBhIHRleHQgZHVtcC4KCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKaW5kZXggN2Q4OTVjNC4uZDllZGViYiAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtNzcsNiArNzcsOSBAQCB0 eXBlZGVmIHN0cnVjdCBfcGFyYWxsZWxfc2xvdAogCiAjZGVmaW5lIE5PX1NMT1QgKC0xKQog CisjZGVmaW5lIFRFWFRfRFVNUF9IRUFERVIgIi0tXG4tLSBQb3N0Z3JlU1FMIGRhdGFiYXNl IGR1bXBcbi0tXG5cbiIKKyNkZWZpbmUgVEVYVF9EVU1QQUxMX0hFQURFUiAiLS1cbi0tIFBv c3RncmVTUUwgZGF0YWJhc2UgY2x1c3RlciBkdW1wXG4tLVxuXG4iCisKIC8qIHN0YXRlIG5l ZWRlZCB0byBzYXZlL3Jlc3RvcmUgYW4gYXJjaGl2ZSdzIG91dHB1dCB0YXJnZXQgKi8KIHR5 cGVkZWYgc3RydWN0IF9vdXRwdXRDb250ZXh0CiB7CkBAIC0xODYyLDEyICsxODY1LDIwIEBA IF9kaXNjb3ZlckFyY2hpdmVGb3JtYXQoQXJjaGl2ZUhhbmRsZSAqQUgpCiAJZWxzZQogCXsK IAkJLyoKLQkJICogKk1heWJlKiB3ZSBoYXZlIGEgdGFyIGFyY2hpdmUgZm9ybWF0IGZpbGUu Li4gU28sIHJlYWQgZmlyc3QgNTEyCi0JCSAqIGJ5dGUgaGVhZGVyLi4uCisJCSAqICpNYXli ZSogd2UgaGF2ZSBhIHRhciBhcmNoaXZlIGZvcm1hdCBmaWxlIG9yIGEgdGV4dCBkdW1wIC4u LiAKKwkJICogU28sIHJlYWQgZmlyc3QgNTEyIGJ5dGUgaGVhZGVyLi4uCiAJCSAqLwogCQlj bnQgPSBmcmVhZCgmQUgtPmxvb2thaGVhZFtBSC0+bG9va2FoZWFkTGVuXSwgMSwgNTEyIC0g QUgtPmxvb2thaGVhZExlbiwgZmgpOwogCQlBSC0+bG9va2FoZWFkTGVuICs9IGNudDsKIAor CQlpZiAoQUgtPmxvb2thaGVhZExlbiA+PSBzdHJsZW4oVEVYVF9EVU1QQUxMX0hFQURFUikg JiYKKwkJCShzdHJuY21wKEFILT5sb29rYWhlYWQsIFRFWFRfRFVNUF9IRUFERVIsIHN0cmxl bihURVhUX0RVTVBfSEVBREVSKSkgPT0gMCB8fAorCQkJIHN0cm5jbXAoQUgtPmxvb2thaGVh ZCwgVEVYVF9EVU1QQUxMX0hFQURFUiwgc3RybGVuKFRFWFRfRFVNUEFMTF9IRUFERVIpKSA9 PSAwKSkKKwkJeworCQkJLyogbG9va3MgbGlrZSBpdCdzIHByb2JhYmx5IGEgdGV4dCBmb3Jt YXQgZHVtcC4gc28gc3VnZ2VzdCB0aGV5IHRyeSBwc3FsICovCisJCQlkaWVfaG9ycmlibHko QUgsIG1vZHVsZW5hbWUsICJpbnB1dCBmaWxlIGFwcGVhcnMgdG8gYmUgYSB0ZXh0IGZvcm1h dCBkdW1wLiBQbGVhc2UgdXNlIHBzcWwuXG4iKTsKKwkJfQorCiAJCWlmIChBSC0+bG9va2Fo ZWFkTGVuICE9IDUxMikKIAkJCWRpZV9ob3JyaWJseShBSCwgbW9kdWxlbmFtZSwgImlucHV0 IGZpbGUgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgYXJjaGl2ZSAodG9vIHNob3J0 PylcbiIpOwogCgpjb21taXQgYmMyYTA1MGQ0MDk3NjQ0MWNkYjk2M2FkODI5MzE2YzIzZThk ZjBhYQpBdXRob3I6IFRvbSBMYW5lIDx0Z2xAc3NzLnBnaC5wYS51cz4KRGF0ZTogICBUdWUg SmFuIDMgMTY6MDA6MDYgMjAxMiAtMDUwMAoKICAgIFVzZSBhIG5vbi1sb2NraW5nIGluaXRp YWwgdGVzdCBpbiBUQVNfU1BJTiBvbiBQUEMuCiAgICAKICAgIEZ1cnRoZXIgdGVzdGluZyBj b252aW5jZXMgbWUgdGhhdCB0aGlzIGlzIGhlbHBmdWwgYXQgc3VmZmljaWVudGx5IGhpZ2gK ICAgIGNvbnRlbnRpb24gbGV2ZWxzLCB0aG91Z2ggaXQncyBzdGlsbCB3b3JyaXNvbWUgdGhh dCBpdCBsb3NlcyBzbGlnaHRseQogICAgYXQgbG93ZXIgY29udGVudGlvbiBsZXZlbHMuCiAg ICAKICAgIFBlciBNYW5hYnUgT3JpLgoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3Jh Z2Uvc19sb2NrLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oCmluZGV4IGZmN2Vi MTQuLjliMDJkMWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc19sb2NrLmgK KysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zX2xvY2suaApAQCAtMzU4LDYgKzM1OCw5IEBA IHR5cGVkZWYgdW5zaWduZWQgaW50IHNsb2NrX3Q7CiAKICNkZWZpbmUgVEFTKGxvY2spIHRh cyhsb2NrKQogCisvKiBPbiBQUEMsIGl0J3MgYSB3aW4gdG8gdXNlIGEgbm9uLWxvY2tpbmcg dGVzdCBiZWZvcmUgdGhlIGx3YXJ4ICovCisjZGVmaW5lIFRBU19TUElOKGxvY2spCSgqKGxv Y2spID8gMSA6IFRBUyhsb2NrKSkKKwogLyoKICAqIE5PVEU6IHBlciB0aGUgRW5oYW5jZWQg UG93ZXJQQyBBcmNoaXRlY3R1cmUgbWFudWFsLCB2MS4wIGRhdGVkIDctTWF5LTIwMDIsCiAg KiBhbiBpc3luYyBpcyBhIHN1ZmZpY2llbnQgc3luY2hyb25pemF0aW9uIGJhcnJpZXIgYWZ0 ZXIgYSBsd2FyeC9zdHdjeCBsb29wLgoKY29tbWl0IDYzODc2ZDNiYWM1YTc0NzFhNzk4N2Rh MjVhOTNjMTNhMjUzNGE2NDQKQXV0aG9yOiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1bnNs YW5lLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMDg6NDQ6MjYgMjAxMiAtMDUwMAoKICAgIFN1 cHBvcnQgZm9yIGJ1aWxkaW5nIHdpdGggTVMgVmlzdWFsIFN0dWRpbyAyMDEwLgogICAgCiAg ICBCcmFyIFBpZW5pbmcsIHJldmlld2VkIGJ5IENyYWlnIFJpbmdlci4KCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvaW5zdGFsbC13aW5kb3dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvaW5z dGFsbC13aW5kb3dzLnNnbWwKaW5kZXggZjk2YjE3NC4uYjZlYTBhYiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2luc3RhbGwtd2luZG93cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9p bnN0YWxsLXdpbmRvd3Muc2dtbApAQCAtMjAsMTAgKzIwLDEwIEBACiAgIFRoZXJlIGFyZSBz ZXZlcmFsIGRpZmZlcmVudCB3YXlzIG9mIGJ1aWxkaW5nIFBvc3RncmVTUUwgb24KICAgPHBy b2R1Y3RuYW1lPldpbmRvd3M8L3Byb2R1Y3RuYW1lPi4gVGhlIHNpbXBsZXN0IHdheSB0byBi dWlsZCB3aXRoCiAgIE1pY3Jvc29mdCB0b29scyBpcyB0byBpbnN0YWxsIGEgc3VwcG9ydGVk IHZlcnNpb24gb2YgdGhlCi0gIDxwcm9kdWN0bmFtZT5NaWNyb3NvZnQgUGxhdGZvcm0gU0RL PC9wcm9kdWN0bmFtZT4gYW5kIHVzZSB0aGUgaW5jbHVkZWQKKyAgPHByb2R1Y3RuYW1lPk1p Y3Jvc29mdCBXaW5kb3dzIFNESzwvcHJvZHVjdG5hbWU+IGFuZCB1c2UgdGhlIGluY2x1ZGVk CiAgIGNvbXBpbGVyLiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGJ1aWxkIHdpdGggdGhlIGZ1 bGwKLSAgPHByb2R1Y3RuYW1lPk1pY3Jvc29mdCBWaXN1YWwgQysrIDIwMDUgb3IgMjAwODwv cHJvZHVjdG5hbWU+LiBJbiBzb21lIGNhc2VzCi0gIHRoYXQgcmVxdWlyZXMgdGhlIGluc3Rh bGxhdGlvbiBvZiB0aGUgPHByb2R1Y3RuYW1lPlBsYXRmb3JtIFNESzwvcHJvZHVjdG5hbWU+ CisgIDxwcm9kdWN0bmFtZT5NaWNyb3NvZnQgVmlzdWFsIEMrKyAyMDA1LCAyMDA4IG9yIDIw MTA8L3Byb2R1Y3RuYW1lPi4gSW4gc29tZSBjYXNlcworICB0aGF0IHJlcXVpcmVzIHRoZSBp bnN0YWxsYXRpb24gb2YgdGhlIDxwcm9kdWN0bmFtZT5XaW5kb3dzIFNESzwvcHJvZHVjdG5h bWU+CiAgIGluIGFkZGl0aW9uIHRvIHRoZSBjb21waWxlci4KICA8L3BhcmE+CiAKQEAgLTY5 LDMyICs2OSwyNiBAQAogCiAgPHNlY3QxIGlkPSJpbnN0YWxsLXdpbmRvd3MtZnVsbCI+CiAg IDx0aXRsZT5CdWlsZGluZyB3aXRoIDxwcm9kdWN0bmFtZT5WaXN1YWwgQysrPC9wcm9kdWN0 bmFtZT4gb3IgdGhlCi0gIDxwcm9kdWN0bmFtZT5QbGF0Zm9ybSBTREs8L3Byb2R1Y3RuYW1l PjwvdGl0bGU+CisgIDxwcm9kdWN0bmFtZT5NaWNyb3NvZnQgV2luZG93cyBTREs8L3Byb2R1 Y3RuYW1lPjwvdGl0bGU+CiAKICA8cGFyYT4KICAgUG9zdGdyZVNRTCBjYW4gYmUgYnVpbHQg dXNpbmcgdGhlIFZpc3VhbCBDKysgY29tcGlsZXIgc3VpdGUgZnJvbSBNaWNyb3NvZnQuCiAg IFRoZXNlIGNvbXBpbGVycyBjYW4gYmUgZWl0aGVyIGZyb20gPHByb2R1Y3RuYW1lPlZpc3Vh bCBTdHVkaW88L3Byb2R1Y3RuYW1lPiwKICAgPHByb2R1Y3RuYW1lPlZpc3VhbCBTdHVkaW8g RXhwcmVzczwvcHJvZHVjdG5hbWU+IG9yIHNvbWUgdmVyc2lvbnMgb2YgdGhlCi0gIDxwcm9k dWN0bmFtZT5QbGF0Zm9ybSBTREs8L3Byb2R1Y3RuYW1lPi4gSWYgeW91IGRvIG5vdCBhbHJl YWR5IGhhdmUgYQorICA8cHJvZHVjdG5hbWU+TWljcm9zb2Z0IFdpbmRvd3MgU0RLPC9wcm9k dWN0bmFtZT4uIElmIHlvdSBkbyBub3QgYWxyZWFkeSBoYXZlIGEKICAgPHByb2R1Y3RuYW1l PlZpc3VhbCBTdHVkaW88L3Byb2R1Y3RuYW1lPiBlbnZpcm9ubWVudCBzZXQgdXAsIHRoZSBl YXNpZXN0Ci0gIHdheSB1cyB0byB1c2UgdGhlIGNvbXBpbGVycyBpbiB0aGUgPHByb2R1Y3Ru YW1lPlBsYXRmb3JtIFNESzwvcHJvZHVjdG5hbWU+LAorICB3YXkgaXMgdG8gdXNlIHRoZSBj b21waWxlcnMgaW4gdGhlIDxwcm9kdWN0bmFtZT5XaW5kb3dzIFNESzwvcHJvZHVjdG5hbWU+ LAogICB3aGljaCBpcyBhIGZyZWUgZG93bmxvYWQgZnJvbSBNaWNyb3NvZnQuCiAgPC9wYXJh PgogCiAgPHBhcmE+Ci0gIFBvc3RncmVTUUwgc3VwcG9ydHMgdGhlIGNvbXBpbGVycyBmcm9t Ci0gIDxwcm9kdWN0bmFtZT5WaXN1YWwgU3R1ZGlvIDIwMDU8L3Byb2R1Y3RuYW1lPiBhbmQK LSAgPHByb2R1Y3RuYW1lPlZpc3VhbCBTdHVkaW8gMjAwODwvcHJvZHVjdG5hbWU+LiBXaGVu IHVzaW5nIHRoZSBQbGF0Zm9ybSBTREsKLSAgb25seSwgb3Igd2hlbiBidWlsZGluZyBmb3Ig NjQtYml0IFdpbmRvd3MsIG9ubHkKLSAgPHByb2R1Y3RuYW1lPlZpc3VhbCBTdHVkaW8gMjAw ODwvcHJvZHVjdG5hbWU+IGlzIHN1cHBvcnRlZC4KLSAgPHByb2R1Y3RuYW1lPlZpc3VhbCBT dHVkaW8gMjAxMDwvcHJvZHVjdG5hbWU+IGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgotIDwvcGFy YT4KLQotIDxwYXJhPgotICBXaGVuIGJ1aWxkaW5nIHVzaW5nIHRoZSA8cHJvZHVjdG5hbWU+ UGxhdGZvcm0gU0RLPC9wcm9kdWN0bmFtZT4sIHZlcnNpb25zCi0gIDYuMCB0byA3LjAgb2Yg dGhlIFNESyBhcmUgc3VwcG9ydGVkLiBPbGRlciBvciBuZXdlciB2ZXJzaW9ucyB3aWxsIG5v dCB3b3JrLgotICBJbiBwYXJ0aWN1bGFyLCB2ZXJzaW9ucyBmcm9tIDcuMGEgYW5kIGxhdGVy IHdpbGwgbm90IHdvcmssIHNpbmNlCi0gIHRoZXkgaW5jbHVkZSBjb21waWxlcnMgZnJvbSA8 cHJvZHVjdG5hbWU+VmlzdWFsIFN0dWRpbyAyMDEwPC9wcm9kdWN0bmFtZT4uCisgIFBvc3Rn cmVTUUwgaXMga25vd24gdG8gc3VwcG9ydCBjb21waWxhdGlvbiB1c2luZyB0aGUgY29tcGls ZXJzIHNoaXBwZWQgd2l0aAorICA8cHJvZHVjdG5hbWU+VmlzdWFsIFN0dWRpbyAyMDA1PC9w cm9kdWN0bmFtZT4gdG8KKyAgPHByb2R1Y3RuYW1lPlZpc3VhbCBTdHVkaW8gMjAxMDwvcHJv ZHVjdG5hbWU+IChpbmNsdWRpbmcgRXhwcmVzcyBlZGl0aW9ucyksCisgIGFzIHdlbGwgYXMg c3RhbmRhbG9uZSBXaW5kb3dzIFNESyByZWxlYXNlcyA2LjAgdG8gNy4xLgorICA2NC1iaXQg UG9zdGdyZVNRTCBidWlsZHMgYXJlIG9ubHkgc3VwcG9ydGVkIHdpdGgKKyAgPHByb2R1Y3Ru YW1lPk1pY3Jvc29mdCBXaW5kb3dzIFNESzwvcHJvZHVjdG5hbWU+IHZlcnNpb24gNi4wYSBh bmQgYWJvdmUgb3IKKyAgPHByb2R1Y3RuYW1lPlZpc3VhbCBTdHVkaW8gMjAwODwvcHJvZHVj dG5hbWU+IGFuZCBhYm92ZS4KICA8L3BhcmE+CiAKICA8cGFyYT4KQEAgLTEwNCwxMSArOTgs MTMgQEAKICAgPHByb2R1Y3RuYW1lPkN5Z3dpbjwvcHJvZHVjdG5hbWU+IHByZXNlbnQgaW4g eW91ciBzeXN0ZW0gUEFUSC4gQWxzbywgbWFrZQogICBzdXJlIHlvdSBoYXZlIGFsbCB0aGUg cmVxdWlyZWQgVmlzdWFsIEMrKyB0b29scyBhdmFpbGFibGUgaW4gdGhlIFBBVEguIEluCiAg IDxwcm9kdWN0bmFtZT5WaXN1YWwgU3R1ZGlvPC9wcm9kdWN0bmFtZT4sIHN0YXJ0IHRoZQot ICA8YXBwbGljYXRpb24+VmlzdWFsIFN0dWRpbyBDb21tYW5kIFByb21wdDwvYXBwbGljYXRp b24+LiBJbiB0aGUKLSAgPHByb2R1Y3RuYW1lPlBsYXRmb3JtIFNESzwvcHJvZHVjdG5hbWU+ LCBzdGFydCB0aGUKLSAgPGFwcGxpY2F0aW9uPkNNRCBzaGVsbDwvYXBwbGljYXRpb24+IGxp c3RlZCB1bmRlciB0aGUgU0RLIG9uIHRoZSBTdGFydCBNZW51LgorICA8YXBwbGljYXRpb24+ VmlzdWFsIFN0dWRpbyBDb21tYW5kIFByb21wdDwvYXBwbGljYXRpb24+LgogICBJZiB5b3Ug d2lzaCB0byBidWlsZCBhIDY0LWJpdCB2ZXJzaW9uLCB5b3UgbXVzdCB1c2UgdGhlIDY0LWJp dCB2ZXJzaW9uIG9mCiAgIHRoZSBjb21tYW5kLCBhbmQgdmljZSB2ZXJzYS4KKyAgSW4gdGhl IDxwcm9kdWN0bmFtZT5NaWNyb3NvZnQgV2luZG93cyBTREs8L3Byb2R1Y3RuYW1lPiwgc3Rh cnQgdGhlCisgIDxhcHBsaWNhdGlvbj5DTUQgc2hlbGw8L2FwcGxpY2F0aW9uPiBsaXN0ZWQg dW5kZXIgdGhlIFNESyBvbiB0aGUgU3RhcnQgTWVudS4KKyAgSW4gcmVjZW50IFNESyB2ZXJz aW9ucyB5b3UgY2FuIGNoYW5nZSB0aGUgdGFyZ2V0ZWQgQ1BVIGFyY2hpdGVjdHVyZSBieSB1 c2luZworICB0aGUgPGNvbW1hbmQ+c2V0ZW52PC9jb21tYW5kPiBjb21tYW5kLgogICBBbGwg Y29tbWFuZHMgc2hvdWxkIGJlIHJ1biBmcm9tIHRoZSA8ZmlsZW5hbWU+c3JjXHRvb2xzXG1z dmM8L2ZpbGVuYW1lPgogICBkaXJlY3RvcnkuCiAgPC9wYXJhPgpAQCAtMTQ4LDE3ICsxNDQs MTcgQEAgJEVOVntQQVRIfT0kRU5We1BBVEh9IC4gJztjOlxzb21lXHdoZXJlXGJpc29uXGJp bic7CiAKICAgIDx2YXJpYWJsZWxpc3Q+CiAgICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRl cm0+PHByb2R1Y3RuYW1lPk1pY3Jvc29mdCBQbGF0Zm9ybSBTREs8L3Byb2R1Y3RuYW1lPjwv dGVybT4KKyAgICAgPHRlcm0+PHByb2R1Y3RuYW1lPk1pY3Jvc29mdCBXaW5kb3dzIFNESzwv cHJvZHVjdG5hbWU+PC90ZXJtPgogICAgICA8bGlzdGl0ZW0+PHBhcmE+CiAgICAgICBJdCBp cyByZWNvbW1lbmRlZCB0aGF0IHlvdSB1cGdyYWRlIHRvIHRoZSBsYXRlc3Qgc3VwcG9ydGVk IHZlcnNpb24KLSAgICAgIG9mIHRoZSA8cHJvZHVjdG5hbWU+TWljcm9zb2Z0IFBsYXRmb3Jt IFNESzwvcHJvZHVjdG5hbWU+IChjdXJyZW50bHkKLSAgICAgIHZlcnNpb24gNy4wKSwgYXZh aWxhYmxlIGZvciBkb3dubG9hZCBmcm9tCisgICAgICBvZiB0aGUgPHByb2R1Y3RuYW1lPk1p Y3Jvc29mdCBXaW5kb3dzIFNESzwvcHJvZHVjdG5hbWU+IChjdXJyZW50bHkKKyAgICAgIHZl cnNpb24gNy4xKSwgYXZhaWxhYmxlIGZvciBkb3dubG9hZCBmcm9tCiAgICAgICA8dWxpbmsg dXJsPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vZG93bmxvYWRzLyI+PC8+LgogICAgICA8 L3BhcmE+CiAgICAgIDxwYXJhPgogICAgICAgWW91IG11c3QgYWx3YXlzIGluY2x1ZGUgdGhl CiAgICAgICA8YXBwbGljYXRpb24+V2luZG93cyBIZWFkZXJzIGFuZCBMaWJyYXJpZXM8L2Fw cGxpY2F0aW9uPiBwYXJ0IG9mIHRoZSBTREsuCi0gICAgICBJZiB5b3UgaW5zdGFsbCB0aGUg PHByb2R1Y3RuYW1lPlBsYXRmb3JtIFNESzwvcHJvZHVjdG5hbWU+CisgICAgICBJZiB5b3Ug aW5zdGFsbCB0aGUgPHByb2R1Y3RuYW1lPldpbmRvd3MgU0RLPC9wcm9kdWN0bmFtZT4KICAg ICAgIGluY2x1ZGluZyB0aGUgPGFwcGxpY2F0aW9uPlZpc3VhbCBDKysgQ29tcGlsZXJzPC9h cHBsaWNhdGlvbj4sCiAgICAgICB5b3UgZG9uJ3QgbmVlZCA8cHJvZHVjdG5hbWU+VmlzdWFs IFN0dWRpbzwvcHJvZHVjdG5hbWU+IHRvIGJ1aWxkLgogICAgICA8L3BhcmE+PC9saXN0aXRl bT4KQEAgLTIwMiw2ICsxOTgsMTAgQEAgJEVOVntQQVRIfT0kRU5We1BBVEh9IC4gJztjOlxz b21lXHdoZXJlXGJpc29uXGJpbic7CiAgICAgICBCaXNvbiBjYW4gYmUgZG93bmxvYWRlZCBm cm9tIDx1bGluayB1cmw9Imh0dHA6Ly9nbnV3aW4zMi5zb3VyY2Vmb3JnZS5uZXQiPjwvPi4K ICAgICAgIEZsZXggY2FuIGJlIGRvd25sb2FkZWQgZnJvbQogICAgICAgPHVsaW5rIHVybD0i aHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9mdHAvbWlzYy93aW5mbGV4LyI+PC8+LgorICAg ICAgSWYgeW91IGFyZSB1c2luZyA8cHJvZHVjdG5hbWU+bXN5c0dpdDwvcHJvZHVjdG5hbWU+ IGZvciBhY2Nlc3NpbmcgdGhlCisgICAgICBQb3N0Z3JlU1FMIDxwcm9kdWN0bmFtZT5HaXQ8 L3Byb2R1Y3RuYW1lPiByZXBvc2l0b3J5IHlvdSBwcm9iYWJseSBhbHJlYWR5CisgICAgICBo YXZlIHJlY2VudCB2ZXJzaW9ucyBvZiBiaXNvbiBhbmQgZmxleCBpbiB5b3VyIDxwcm9kdWN0 bmFtZT5HaXQ8L3Byb2R1Y3RuYW1lPgorICAgICAgYmluYXJ5IGRpcmVjdG9yeS4KICAgICAg PC9wYXJhPgogCiAgICAgIDxub3RlPgpAQCAtNDc5LDcgKzQ3OSw3IEBAICRFTlZ7RE9DUk9P VH09J2M6XGRvY2Jvb2snOwogICBzdGF0aWMgbGlicmFyeSB0byBsaW5rIGludG8gYW4gYXBw bGljYXRpb24uIEZvciBub3JtYWwgdXNlIHRoZQogICA8cHJvZHVjdG5hbWU+TWluR1c8L3By b2R1Y3RuYW1lPiBvcgogICA8cHJvZHVjdG5hbWU+VmlzdWFsIFN0dWRpbzwvcHJvZHVjdG5h bWU+IG9yCi0gIDxwcm9kdWN0bmFtZT5QbGF0Zm9ybSBTREs8L3Byb2R1Y3RuYW1lPiBtZXRo b2QgaXMgcmVjb21tZW5kZWQuCisgIDxwcm9kdWN0bmFtZT5XaW5kb3dzIFNESzwvcHJvZHVj dG5hbWU+IG1ldGhvZCBpcyByZWNvbW1lbmRlZC4KICA8L3BhcmE+CiAKICA8cGFyYT4KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BvcnQvd2luMzIuaCBiL3NyYy9pbmNsdWRlL3BvcnQv d2luMzIuaAppbmRleCBhZmM5NjI4Li5lMmRkMjNiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9wb3J0L3dpbjMyLmgKKysrIGIvc3JjL2luY2x1ZGUvcG9ydC93aW4zMi5oCkBAIC0xMDMs NyArMTAzLDkgQEAKICNkZWZpbmUgSVBDX1NUQVQgNDA5NgogCiAjZGVmaW5lIEVBQ0NFU1Mg MjA0OAorI2lmbmRlZiBFSURSTQogI2RlZmluZSBFSURSTSA0MDk2CisjZW5kaWYKIAogI2Rl ZmluZSBTRVRBTEwgODE5MgogI2RlZmluZSBHRVROQ05UIDE2Mzg0CkBAIC0zMDAsNiArMzAy LDI2IEBAIHR5cGVkZWYgaW50IHBpZF90OwogI2VuZGlmCiAKIC8qCisgKiBGb3IgTWljcm9z b2Z0IFZpc3VhbCBTdHVkaW8gMjAxMCBhbmQgYWJvdmUgd2UgaW50ZW50aW9uYWxseSByZWRl ZmluZQorICogdGhlIHJlZ3VsYXIgQmVya2VsZXkgZXJyb3IgY29uc3RhbnRzIGFuZCBzZXQg dGhlbSB0byB0aGUgV1NBIGNvbnN0YW50cy4KKyAqIE5vdGUgdGhhdCB0aGlzIHdpbGwgYnJl YWsgaWYgdGhvc2UgY29uc3RhbnRzIGFyZSB1c2VkIGZvciBhbnl0aGluZyBlbHNlCisgKiB0 aGFuIFdpbmRvd3MgU29ja2V0cyBlcnJvcnMuCisgKi8KKyNpZiBfTVNDX1ZFUiA+PSAxNjAw CisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MDA1KQorI2RlZmluZSBFTVNHU0laRSBXU0FF TVNHU0laRQorI2RlZmluZSBFQUZOT1NVUFBPUlQgV1NBRUFGTk9TVVBQT1JUCisjZGVmaW5l IEVXT1VMREJMT0NLIFdTQUVXT1VMREJMT0NLCisjZGVmaW5lIEVQUk9UT05PU1VQUE9SVCBX U0FFUFJPVE9OT1NVUFBPUlQKKyNkZWZpbmUgRUNPTk5SRVNFVCBXU0FFQ09OTlJFU0VUCisj ZGVmaW5lIEVJTlBST0dSRVNTIFdTQUVJTlBST0dSRVNTCisjZGVmaW5lIEVOT0JVRlMgV1NB RU5PQlVGUworI2RlZmluZSBFQ09OTlJFRlVTRUQgV1NBRUNPTk5SRUZVU0VECisjZGVmaW5l IEVPUE5PVFNVUFAgV1NBRU9QTk9UU1VQUAorI3ByYWdtYSB3YXJuaW5nKGRlZmF1bHQ6NDAw NSkKKyNlbmRpZiAKKworLyoKICAqIEV4dGVuZGVkIGxvY2FsZSBmdW5jdGlvbnMgd2l0aCBn cmF0dWl0b3VzIHVuZGVyc2NvcmUgcHJlZml4ZXMuCiAgKiAoVGhlc2UgQVBJcyBhcmUgbmV2 ZXJ0aGVsZXNzIGZ1bGx5IGRvY3VtZW50ZWQgYnkgTWljcm9zb2Z0LikKICAqLwpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL21zdmMvSW5zdGFsbC5wbSBiL3NyYy90b29scy9tc3ZjL0luc3Rh bGwucG0KaW5kZXggYTc3MjBhMC4uNjE3Njc0MyAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL21z dmMvSW5zdGFsbC5wbQorKysgYi9zcmMvdG9vbHMvbXN2Yy9JbnN0YWxsLnBtCkBAIC01Niwx MSArNTYsOCBAQCBzdWIgSW5zdGFsbAogICAgIG15ICRtYWpvcnZlciA9IERldGVybWluZU1h am9yVmVyc2lvbigpOwogICAgIHByaW50ICJJbnN0YWxsaW5nIHZlcnNpb24gJG1ham9ydmVy IGZvciAkY29uZiBpbiAkdGFyZ2V0XG4iOwogCi0gICAgRW5zdXJlRGlyZWN0b3JpZXMoCi0g ICAgICAgICR0YXJnZXQsICdiaW4nLCAnbGliJywgJ3NoYXJlJywKLSAgICAgICAgJ3NoYXJl L3RpbWV6b25lc2V0cycsJ3NoYXJlL2V4dGVuc2lvbicsICdzaGFyZS9jb250cmliJywnZG9j JywKLSAgICAgICAgJ2RvYy9leHRlbnNpb24nLCAnZG9jL2NvbnRyaWInLCdzeW1ib2xzJywg J3NoYXJlL3RzZWFyY2hfZGF0YScKLSAgICApOworICAgIEVuc3VyZURpcmVjdG9yaWVzKCR0 YXJnZXQsICdiaW4nLCAnbGliJywgJ3NoYXJlJywnc2hhcmUvdGltZXpvbmVzZXRzJywnc2hh cmUvZXh0ZW5zaW9uJywKKyAgICAgICAgJ3NoYXJlL2NvbnRyaWInLCdkb2MnLCdkb2MvZXh0 ZW5zaW9uJywgJ2RvYy9jb250cmliJywnc3ltYm9scycsICdzaGFyZS90c2VhcmNoX2RhdGEn KTsKIAogICAgIENvcHlTb2x1dGlvbk91dHB1dCgkY29uZiwgJHRhcmdldCk7CiAgICAgbGNv cHkoJHRhcmdldCAuICcvbGliL2xpYnBxLmRsbCcsICR0YXJnZXQgLiAnL2Jpbi9saWJwcS5k bGwnKTsKQEAgLTE4Niw2ICsxODMsMTMgQEAgc3ViIENvcHlTb2x1dGlvbk91dHB1dAogICAg IG15ICRyZW0gPSBxcntQcm9qZWN0XCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBD OTFCQzk0Mn0iXCkgPSAiKFteIl0rKSJ9OwogCiAgICAgbXkgJHNsbiA9IHJlYWRfZmlsZSgi cGdzcWwuc2xuIikgfHwgY3JvYWsgIkNvdWxkIG5vdCBvcGVuIHBnc3FsLnNsblxuIjsKKwor ICAgIG15ICR2Y3Byb2ogPSAndmNwcm9qJzsKKyAgICBpZiAoJHNsbiA9fiAvTWljcm9zb2Z0 IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gKFxkKylcLlxk Ky8gJiYgJDEgPj0gMTEpCisgICAgeworICAgICAgICAkdmNwcm9qID0gJ3ZjeHByb2onOwor ICAgIH0KKwogICAgIHByaW50ICJDb3B5aW5nIGJ1aWxkIG91dHB1dCBmaWxlcy4uLiI7CiAg ICAgd2hpbGUgKCRzbG4gPX4gJHJlbSkKICAgICB7CkBAIC0xOTUsMjYgKzE5OSw0OCBAQCBz dWIgQ29weVNvbHV0aW9uT3V0cHV0CiAKICAgICAgICAgJHNsbiA9fiBzLyRyZW0vLzsKIAot ICAgICAgICBteSAkcHJvaiA9IHJlYWRfZmlsZSgiJHBmLnZjcHJvaiIpIHx8IGNyb2FrICJD b3VsZCBub3Qgb3BlbiAkcGYudmNwcm9qXG4iOwotICAgICAgICBpZiAoJHByb2ogIX4gcXJ7 Q29uZmlndXJhdGlvblR5cGU9IihbXiJdKykifSkKKyAgICAgICAgbXkgJHByb2ogPSByZWFk X2ZpbGUoIiRwZi4kdmNwcm9qIikgfHwgY3JvYWsgIkNvdWxkIG5vdCBvcGVuICRwZi4kdmNw cm9qXG4iOworICAgICAgICBpZiAoJHZjcHJvaiBlcSAndmNwcm9qJyAmJiAkcHJvaiA9fiBx cntDb25maWd1cmF0aW9uVHlwZT0iKFteIl0rKSJ9KQogICAgICAgICB7Ci0gICAgICAgICAg ICBjcm9hayAiQ291bGQgbm90IHBhcnNlICRwZi52Y3Byb2pcbiI7Ci0gICAgICAgIH0KLSAg ICAgICAgaWYgKCQxID09IDEpCi0gICAgICAgIHsKLSAgICAgICAgICAgICRkaXIgPSAiYmlu IjsKLSAgICAgICAgICAgICRleHQgPSAiZXhlIjsKKyAgICAgICAgICAgIGlmICgkMSA9PSAx KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICRkaXIgPSAiYmluIjsKKyAgICAg ICAgICAgICAgICAkZXh0ID0gImV4ZSI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBl bHNpZiAoJDEgPT0gMikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAkZGlyID0g ImxpYiI7CisgICAgICAgICAgICAgICAgJGV4dCA9ICJkbGwiOworICAgICAgICAgICAgfQor ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworCisgICAgICAgICAgICAgICAgIyBT dGF0aWMgbGliLCBzdWNoIGFzIGxpYnBncG9ydCwgb25seSB1c2VkIGludGVybmFsbHkgZHVy aW5nIGJ1aWxkLCBkb24ndCBpbnN0YWxsCisgICAgICAgICAgICAgICAgbmV4dDsKKyAgICAg ICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBlbHNpZiAoJDEgPT0gMikKKyAgICAgICAg ZWxzaWYgKCR2Y3Byb2ogZXEgJ3ZjeHByb2onICYmICRwcm9qID1+IHFyezxDb25maWd1cmF0 aW9uVHlwZT4oXHcrKTwvQ29uZmlndXJhdGlvblR5cGU+fSkKICAgICAgICAgewotICAgICAg ICAgICAgJGRpciA9ICJsaWIiOwotICAgICAgICAgICAgJGV4dCA9ICJkbGwiOworICAgICAg ICAgICAgaWYgKCQxIGVxICdBcHBsaWNhdGlvbicpCisgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgJGRpciA9ICJiaW4iOworICAgICAgICAgICAgICAgICRleHQgPSAiZXhlIjsK KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2lmICgkMSBlcSAnRHluYW1pY0xpYnJh cnknKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICRkaXIgPSAibGliIjsKKyAg ICAgICAgICAgICAgICAkZXh0ID0gImRsbCI7CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBlbHNlICMgJ1N0YXRpY0xpYnJhcnknCisgICAgICAgICAgICB7CisKKyAgICAgICAgICAg ICAgICAjIFN0YXRpYyBsaWIsIHN1Y2ggYXMgbGlicGdwb3J0LCBvbmx5IHVzZWQgaW50ZXJu YWxseSBkdXJpbmcgYnVpbGQsIGRvbid0IGluc3RhbGwKKyAgICAgICAgICAgICAgICBuZXh0 OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewot Ci0gICAgICAgICAgICAjIFN0YXRpYyBsaWIsIHN1Y2ggYXMgbGlicGdwb3J0LCBvbmx5IHVz ZWQgaW50ZXJuYWxseSBkdXJpbmcgYnVpbGQsIGRvbid0IGluc3RhbGwKLSAgICAgICAgICAg IG5leHQ7CisgICAgICAgICAgICBjcm9hayAiQ291bGQgbm90IHBhcnNlICRwZi4kdmNwcm9q XG4iOwogICAgICAgICB9CiAgICAgICAgIGxjb3B5KCIkY29uZlxcJHBmXFwkcGYuJGV4dCIs IiR0YXJnZXRcXCRkaXJcXCRwZi4kZXh0IikKICAgICAgICAgICB8fCBjcm9hayAiQ291bGQg bm90IGNvcHkgJHBmLiRleHRcbiI7CkBAIC00NzAsOCArNDk2LDcgQEAgc3ViIENvcHlJbmNs dWRlRmlsZXMKICAgICAgICAgJHRhcmdldCAuICcvaW5jbHVkZS9zZXJ2ZXIvJywKICAgICAg ICAgJ3NyYy9pbmNsdWRlLycsICdwZ19jb25maWcuaCcsICdwZ19jb25maWdfb3MuaCcKICAg ICApOwotICAgIENvcHlGaWxlcygnR3JhbW1hciBoZWFkZXInLCAkdGFyZ2V0IC4gJy9pbmNs dWRlL3NlcnZlci9wYXJzZXIvJywnc3JjL2JhY2tlbmQvcGFyc2VyLycsCi0gICAgICAgICdn cmFtLmgnKTsKKyAgICBDb3B5RmlsZXMoJ0dyYW1tYXIgaGVhZGVyJywgJHRhcmdldCAuICcv aW5jbHVkZS9zZXJ2ZXIvcGFyc2VyLycsJ3NyYy9iYWNrZW5kL3BhcnNlci8nLCdncmFtLmgn KTsKICAgICBDb3B5U2V0T2ZGaWxlcygnJyxbIGdsb2IoInNyY1xcaW5jbHVkZVxcKi5oIikg XSwkdGFyZ2V0IC4gJy9pbmNsdWRlL3NlcnZlci8nKTsKICAgICBteSAkRDsKICAgICBvcGVu ZGlyKCRELCAnc3JjL2luY2x1ZGUnKSB8fCBjcm9hayAiQ291bGQgbm90IG9wZW5kaXIgb24g c3JjL2luY2x1ZGUhXG4iOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL21zdmMvTVNCdWlsZFBy b2plY3QucG0gYi9zcmMvdG9vbHMvbXN2Yy9NU0J1aWxkUHJvamVjdC5wbQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2NlOWViCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rvb2xzL21zdmMvTVNCdWlsZFByb2plY3QucG0KQEAgLTAsMCArMSwzODggQEAKK3Bh Y2thZ2UgTVNCdWlsZFByb2plY3Q7CisKKyMKKyMgUGFja2FnZSB0aGF0IGVuY2Fwc3VsYXRl cyBhIE1TQnVpbGQgKFZpc3VhbCBDKysgMjAxMCkgcHJvamVjdCBmaWxlCisjCisjIHNyYy90 b29scy9tc3ZjL01TQnVpbGRQcm9qZWN0LnBtCisjCisKK3VzZSBDYXJwOwordXNlIHN0cmlj dDsKK3VzZSB3YXJuaW5nczsKK3VzZSBiYXNlIHF3KFByb2plY3QpOworCitzdWIgX25ldwor eworICAgIG15ICRjbGFzc25hbWUgPSBzaGlmdDsKKyAgICBteSAkc2VsZiA9ICRjbGFzc25h bWUtPlNVUEVSOjpfbmV3KEBfKTsKKyAgICBibGVzcygkc2VsZiwgJGNsYXNzbmFtZSk7CisK KyAgICAkc2VsZi0+e2ZpbGVuYW1lRXh0ZW5zaW9ufSA9ICcudmN4cHJvaic7CisKKyAgICBy ZXR1cm4gJHNlbGY7Cit9CisKK3N1YiBXcml0ZUhlYWRlcgoreworICAgIG15ICgkc2VsZiwg JGYpID0gQF87CisKKyAgICBwcmludCAkZiA8PEVPRjsKKzw/eG1sIHZlcnNpb249IjEuMCIg ZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1 aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m dC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlBy b2plY3RDb25maWd1cmF0aW9ucyI+CitFT0YKKyAgICAkc2VsZi0+V3JpdGVDb25maWd1cmF0 aW9uSGVhZGVyKCRmLCAnRGVidWcnKTsKKyAgICAkc2VsZi0+V3JpdGVDb25maWd1cmF0aW9u SGVhZGVyKCRmLCAnUmVsZWFzZScpOworICAgIHByaW50ICRmIDw8RU9GOworICA8L0l0ZW1H cm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0 R3VpZD4kc2VsZi0+e2d1aWR9PC9Qcm9qZWN0R3VpZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgor ICA8SW1wb3J0IFByb2plY3Q9IlwkKFZDVGFyZ2V0c1BhdGgpXFxNaWNyb3NvZnQuQ3BwLkRl ZmF1bHQucHJvcHMiIC8+CitFT0YKKyAgICAkc2VsZi0+V3JpdGVDb25maWd1cmF0aW9uUHJv cGVydHlHcm91cCgkZiwgJ1JlbGVhc2UnLHsgd2hvbGVvcHQ9PidmYWxzZScgfSk7CisgICAg JHNlbGYtPldyaXRlQ29uZmlndXJhdGlvblByb3BlcnR5R3JvdXAoJGYsICdEZWJ1ZycseyB3 aG9sZW9wdD0+J2ZhbHNlJyB9KTsKKyAgICBwcmludCAkZiA8PEVPRjsKKyAgPEltcG9ydCBQ cm9qZWN0PSJcJChWQ1RhcmdldHNQYXRoKVxcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAg PEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3Jv dXA+CitFT0YKKyAgICAkc2VsZi0+V3JpdGVQcm9wZXJ0eVNoZWV0c1Byb3BlcnR5R3JvdXAo JGYsICdSZWxlYXNlJyk7CisgICAgJHNlbGYtPldyaXRlUHJvcGVydHlTaGVldHNQcm9wZXJ0 eUdyb3VwKCRmLCAnRGVidWcnKTsKKyAgICBwcmludCAkZiA8PEVPRjsKKyAgPFByb3BlcnR5 R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxf UHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4K K0VPRgorICAgICRzZWxmLT5Xcml0ZUFkZGl0aW9uYWxQcm9wZXJ0aWVzKCRmLCAnRGVidWcn KTsKKyAgICAkc2VsZi0+V3JpdGVBZGRpdGlvbmFsUHJvcGVydGllcygkZiwgJ1JlbGVhc2Un KTsKKyAgICBwcmludCAkZiA8PEVPRjsKKyAgPC9Qcm9wZXJ0eUdyb3VwPgorRU9GCisgICAg JHNlbGYtPldyaXRlSXRlbURlZmluaXRpb25Hcm91cCgKKyAgICAgICAgJGYsICdEZWJ1Zycs CisgICAgICAgIHsKKyAgICAgICAgICAgIGRlZnM9PidfREVCVUc7REVCVUc9MTsnLAorICAg ICAgICAgICAgb3B0PT4nRGlzYWJsZWQnLAorICAgICAgICAgICAgc3RycG9vbD0+J2ZhbHNl JywKKyAgICAgICAgICAgIHJ1bnRpbWU9PidNdWx0aVRocmVhZGVkRGVidWdETEwnCisgICAg ICAgIH0KKyAgICApOworICAgICRzZWxmLT5Xcml0ZUl0ZW1EZWZpbml0aW9uR3JvdXAoJGYs ICdSZWxlYXNlJywKKyAgICAgICAgeyBkZWZzPT4nJywgb3B0PT4nRnVsbCcsIHN0cnBvb2w9 Pid0cnVlJywgcnVudGltZT0+J011bHRpVGhyZWFkZWRETEwnIH0pOworfQorCitzdWIgQWRk RGVmaW5lCit7CisgICAgbXkgKCRzZWxmLCAkZGVmKSA9IEBfOworCisgICAgJHNlbGYtPntk ZWZpbmVzfSAuPSAkZGVmIC4gJzsnOworfQorCitzdWIgV3JpdGVSZWZlcmVuY2VzCit7Cisg ICAgbXkgKCRzZWxmLCAkZikgPSBAXzsKKworICAgIG15IEByZWZlcmVuY2VzID0gQHskc2Vs Zi0+e3JlZmVyZW5jZXN9fTsKKworICAgIGlmIChzY2FsYXIoQHJlZmVyZW5jZXMpKQorICAg IHsKKyAgICAgICAgcHJpbnQgJGYgPDxFT0Y7CisgIDxJdGVtR3JvdXA+CitFT0YKKyAgICAg ICAgZm9yZWFjaCBteSAkcmVmIChAcmVmZXJlbmNlcykKKyAgICAgICAgeworICAgICAgICAg ICAgcHJpbnQgJGYgPDxFT0Y7CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iJHJl Zi0+e25hbWV9JHJlZi0+e2ZpbGVuYW1lRXh0ZW5zaW9ufSI+CisgICAgICA8UHJvamVjdD4k cmVmLT57Z3VpZH08L1Byb2plY3Q+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorRU9GCisg ICAgICAgIH0KKyAgICAgICAgcHJpbnQgJGYgPDxFT0Y7CisgIDwvSXRlbUdyb3VwPgorRU9G CisgICAgfQorfQorCitzdWIgV3JpdGVGaWxlcworeworICAgIG15ICgkc2VsZiwgJGYpID0g QF87CisgICAgcHJpbnQgJGYgPDxFT0Y7CisgIDxJdGVtR3JvdXA+CitFT0YKKyAgICBteSBA Z3JhbW1hckZpbGVzID0gKCk7CisgICAgbXkgQHJlc291cmNlRmlsZXMgPSAoKTsKKyAgICBt eSAldW5pcXVlZmlsZXM7CisgICAgZm9yZWFjaCBteSAkZmlsZU5hbWVXaXRoUGF0aCAoc29y dCBrZXlzICV7ICRzZWxmLT57ZmlsZXN9IH0pCisgICAgeworICAgICAgICBjb25mZXNzICJC YWQgZm9ybWF0IGZpbGVuYW1lICckZmlsZU5hbWVXaXRoUGF0aCdcbiIKKyAgICAgICAgICB1 bmxlc3MgKCRmaWxlTmFtZVdpdGhQYXRoID1+IC9eKC4qKVxcKFteXFxdKylcLltyXT9bY3ls XSQvKTsKKyAgICAgICAgbXkgJGRpciA9ICQxOworICAgICAgICBteSAkZmlsZU5hbWUgPSAk MjsKKyAgICAgICAgaWYgKCRmaWxlTmFtZVdpdGhQYXRoID1+IC9cLnkkLyBvciAkZmlsZU5h bWVXaXRoUGF0aCA9fiAvXC5sJC8pCisgICAgICAgIHsKKyAgICAgICAgICAgIHB1c2ggQGdy YW1tYXJGaWxlcywgJGZpbGVOYW1lV2l0aFBhdGg7CisgICAgICAgIH0KKyAgICAgICAgZWxz aWYgKCRmaWxlTmFtZVdpdGhQYXRoID1+IC9cLnJjJC8pCisgICAgICAgIHsKKyAgICAgICAg ICAgIHB1c2ggQHJlc291cmNlRmlsZXMsICRmaWxlTmFtZVdpdGhQYXRoOworICAgICAgICB9 CisgICAgICAgIGVsc2lmIChkZWZpbmVkKCR1bmlxdWVmaWxlc3skZmlsZU5hbWV9KSkKKyAg ICAgICAgeworCisgICAgICAgICAgICAjIEZpbGUgYWxyZWFkeSBleGlzdHMsIHNvIGZha2Ug YSBuZXcgbmFtZQorICAgICAgICAgICAgbXkgJG9iaiA9ICRkaXI7CisgICAgICAgICAgICAk b2JqID1+IHMvXFwvXy9nOworCisgICAgICAgICAgICBwcmludCAkZiA8PEVPRjsKKyAgICA8 Q2xDb21waWxlIEluY2x1ZGU9IiRmaWxlTmFtZVdpdGhQYXRoIj4KKyAgICAgIDxPYmplY3RG aWxlTmFtZSBDb25kaXRpb249IidcJChDb25maWd1cmF0aW9uKXxcJChQbGF0Zm9ybSknPT0n RGVidWd8JHNlbGYtPntwbGF0Zm9ybX0nIj4uXFxkZWJ1Z1xcJHNlbGYtPntuYW1lfVxcJHtv Ymp9XyRmaWxlTmFtZS5vYmo8L09iamVjdEZpbGVOYW1lPgorICAgICAgPE9iamVjdEZpbGVO YW1lIENvbmRpdGlvbj0iJ1wkKENvbmZpZ3VyYXRpb24pfFwkKFBsYXRmb3JtKSc9PSdSZWxl YXNlfCRzZWxmLT57cGxhdGZvcm19JyI+LlxccmVsZWFzZVxcJHNlbGYtPntuYW1lfVxcJHtv Ymp9XyRmaWxlTmFtZS5vYmo8L09iamVjdEZpbGVOYW1lPgorICAgIDwvQ2xDb21waWxlPgor RU9GCisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAk dW5pcXVlZmlsZXN7JGZpbGVOYW1lfSA9IDE7CisgICAgICAgICAgICBwcmludCAkZiA8PEVP RjsKKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiRmaWxlTmFtZVdpdGhQYXRoIiAvPgorRU9G CisgICAgICAgIH0KKworICAgIH0KKyAgICBwcmludCAkZiA8PEVPRjsKKyAgPC9JdGVtR3Jv dXA+CitFT0YKKyAgICBpZiAoc2NhbGFyKEBncmFtbWFyRmlsZXMpKQorICAgIHsKKyAgICAg ICAgcHJpbnQgJGYgPDxFT0Y7CisgIDxJdGVtR3JvdXA+CitFT0YKKyAgICAgICAgZm9yZWFj aCBteSAkZ3JhbW1hckZpbGUgKEBncmFtbWFyRmlsZXMpCisgICAgICAgIHsKKyAgICAgICAg ICAgIChteSAkb3V0cHV0RmlsZSA9ICRncmFtbWFyRmlsZSkgPX4gcy9cLih5fGwpJC8uYy87 CisgICAgICAgICAgICBpZiAoJGdyYW1tYXJGaWxlID1+IC9cLnkkLykKKyAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAkb3V0cHV0RmlsZSA9fiBze15zcmNcXHBsXFxwbHBnc3Fs XFxzcmNcXGdyYW0uYyR9e3NyY1xccGxcXHBscGdzcWxcXHNyY1xccGxfZ3JhbS5jfTsKKyAg ICAgICAgICAgICAgICBwcmludCAkZiA8PEVPRjsKKyAgICA8Q3VzdG9tQnVpbGQgSW5jbHVk ZT0iJGdyYW1tYXJGaWxlIj4KKyAgICAgIDxNZXNzYWdlIENvbmRpdGlvbj0iJ1wkKENvbmZp Z3VyYXRpb24pfFwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3wkc2VsZi0+e3BsYXRmb3JtfSciPlJ1 bm5pbmcgYmlzb24gb24gJGdyYW1tYXJGaWxlPC9NZXNzYWdlPgorICAgICAgPENvbW1hbmQg Q29uZGl0aW9uPSInXCQoQ29uZmlndXJhdGlvbil8XCQoUGxhdGZvcm0pJz09J0RlYnVnfCRz ZWxmLT57cGxhdGZvcm19JyI+cGVybCAic3JjXFx0b29sc1xcbXN2Y1xccGdiaXNvbi5wbCIg IiRncmFtbWFyRmlsZSI8L0NvbW1hbmQ+CisgICAgICA8QWRkaXRpb25hbElucHV0cyBDb25k aXRpb249IidcJChDb25maWd1cmF0aW9uKXxcJChQbGF0Zm9ybSknPT0nRGVidWd8JHNlbGYt PntwbGF0Zm9ybX0nIj4lKEFkZGl0aW9uYWxJbnB1dHMpPC9BZGRpdGlvbmFsSW5wdXRzPgor ICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInXCQoQ29uZmlndXJhdGlvbil8XCQoUGxhdGZv cm0pJz09J0RlYnVnfCRzZWxmLT57cGxhdGZvcm19JyI+JG91dHB1dEZpbGU7JShPdXRwdXRz KTwvT3V0cHV0cz4KKyAgICAgIDxNZXNzYWdlIENvbmRpdGlvbj0iJ1wkKENvbmZpZ3VyYXRp b24pfFwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfCRzZWxmLT57cGxhdGZvcm19JyI+UnVubmlu ZyBiaXNvbiBvbiAkZ3JhbW1hckZpbGU8L01lc3NhZ2U+CisgICAgICA8Q29tbWFuZCBDb25k aXRpb249IidcJChDb25maWd1cmF0aW9uKXxcJChQbGF0Zm9ybSknPT0nUmVsZWFzZXwkc2Vs Zi0+e3BsYXRmb3JtfSciPnBlcmwgInNyY1xcdG9vbHNcXG1zdmNcXHBnYmlzb24ucGwiICIk Z3JhbW1hckZpbGUiPC9Db21tYW5kPgorICAgICAgPEFkZGl0aW9uYWxJbnB1dHMgQ29uZGl0 aW9uPSInXCQoQ29uZmlndXJhdGlvbil8XCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8JHNlbGYt PntwbGF0Zm9ybX0nIj4lKEFkZGl0aW9uYWxJbnB1dHMpPC9BZGRpdGlvbmFsSW5wdXRzPgor ICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInXCQoQ29uZmlndXJhdGlvbil8XCQoUGxhdGZv cm0pJz09J1JlbGVhc2V8JHNlbGYtPntwbGF0Zm9ybX0nIj4kb3V0cHV0RmlsZTslKE91dHB1 dHMpPC9PdXRwdXRzPgorICAgIDwvQ3VzdG9tQnVpbGQ+CitFT0YKKyAgICAgICAgICAgIH0K KyAgICAgICAgICAgIGVsc2UgI2lmICgkZ3JhbW1hckZpbGUgPX4gL1wubCQvKQorICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgIHByaW50ICRmIDw8RU9GOworICAgIDxDdXN0b21C dWlsZCBJbmNsdWRlPSIkZ3JhbW1hckZpbGUiPgorICAgICAgPE1lc3NhZ2UgQ29uZGl0aW9u PSInXCQoQ29uZmlndXJhdGlvbil8XCQoUGxhdGZvcm0pJz09J0RlYnVnfCRzZWxmLT57cGxh dGZvcm19JyI+UnVubmluZyBmbGV4IG9uICRncmFtbWFyRmlsZTwvTWVzc2FnZT4KKyAgICAg IDxDb21tYW5kIENvbmRpdGlvbj0iJ1wkKENvbmZpZ3VyYXRpb24pfFwkKFBsYXRmb3JtKSc9 PSdEZWJ1Z3wkc2VsZi0+e3BsYXRmb3JtfSciPnBlcmwgInNyY1xcdG9vbHNcXG1zdmNcXHBn ZmxleC5wbCIgIiRncmFtbWFyRmlsZSI8L0NvbW1hbmQ+CisgICAgICA8QWRkaXRpb25hbElu cHV0cyBDb25kaXRpb249IidcJChDb25maWd1cmF0aW9uKXxcJChQbGF0Zm9ybSknPT0nRGVi dWd8JHNlbGYtPntwbGF0Zm9ybX0nIj4lKEFkZGl0aW9uYWxJbnB1dHMpPC9BZGRpdGlvbmFs SW5wdXRzPgorICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInXCQoQ29uZmlndXJhdGlvbil8 XCQoUGxhdGZvcm0pJz09J0RlYnVnfCRzZWxmLT57cGxhdGZvcm19JyI+JG91dHB1dEZpbGU7 JShPdXRwdXRzKTwvT3V0cHV0cz4KKyAgICAgIDxNZXNzYWdlIENvbmRpdGlvbj0iJ1wkKENv bmZpZ3VyYXRpb24pfFwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfCRzZWxmLT57cGxhdGZvcm19 JyI+UnVubmluZyBmbGV4IG9uICRncmFtbWFyRmlsZTwvTWVzc2FnZT4KKyAgICAgIDxDb21t YW5kIENvbmRpdGlvbj0iJ1wkKENvbmZpZ3VyYXRpb24pfFwkKFBsYXRmb3JtKSc9PSdSZWxl YXNlfCRzZWxmLT57cGxhdGZvcm19JyI+cGVybCAic3JjXFx0b29sc1xcbXN2Y1xccGdmbGV4 LnBsIiAiJGdyYW1tYXJGaWxlIjwvQ29tbWFuZD4KKyAgICAgIDxBZGRpdGlvbmFsSW5wdXRz IENvbmRpdGlvbj0iJ1wkKENvbmZpZ3VyYXRpb24pfFwkKFBsYXRmb3JtKSc9PSdSZWxlYXNl fCRzZWxmLT57cGxhdGZvcm19JyI+JShBZGRpdGlvbmFsSW5wdXRzKTwvQWRkaXRpb25hbElu cHV0cz4KKyAgICAgIDxPdXRwdXRzIENvbmRpdGlvbj0iJ1wkKENvbmZpZ3VyYXRpb24pfFwk KFBsYXRmb3JtKSc9PSdSZWxlYXNlfCRzZWxmLT57cGxhdGZvcm19JyI+JG91dHB1dEZpbGU7 JShPdXRwdXRzKTwvT3V0cHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxkPgorRU9GCisgICAgICAg ICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgJGYgPDxFT0Y7CisgIDwvSXRlbUdy b3VwPgorRU9GCisgICAgfQorICAgIGlmIChzY2FsYXIoQHJlc291cmNlRmlsZXMpKQorICAg IHsKKyAgICAgICAgcHJpbnQgJGYgPDxFT0Y7CisgIDxJdGVtR3JvdXA+CitFT0YKKyAgICAg ICAgZm9yZWFjaCBteSAkcmNGaWxlIChAcmVzb3VyY2VGaWxlcykKKyAgICAgICAgeworICAg ICAgICAgICAgcHJpbnQgJGYgPDxFT0Y7CisgICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRl PSIkcmNGaWxlIiAvPgorRU9GCisgICAgICAgIH0KKyAgICAgICAgcHJpbnQgJGYgPDxFT0Y7 CisgIDwvSXRlbUdyb3VwPgorRU9GCisgICAgfQorfQorCitzdWIgV3JpdGVDb25maWd1cmF0 aW9uSGVhZGVyCit7CisgICAgbXkgKCRzZWxmLCAkZiwgJGNmZ25hbWUpID0gQF87CisgICAg cHJpbnQgJGYgPDxFT0Y7CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IiRj ZmduYW1lfCRzZWxmLT57cGxhdGZvcm19Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPiRjZmdu YW1lPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPiRzZWxmLT57cGxhdGZvcm19 PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorRU9GCit9CisKK3N1 YiBXcml0ZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eUdyb3VwCit7CisgICAgbXkgKCRzZWxmLCAk ZiwgJGNmZ25hbWUsICRwKSA9IEBfOworICAgIG15ICRjZmd0eXBlID0KKyAgICAgICgkc2Vs Zi0+e3R5cGV9IGVxICJleGUiKQorICAgICAgPydBcHBsaWNhdGlvbicKKyAgICAgIDooJHNl bGYtPnt0eXBlfSBlcSAiZGxsIj8nRHluYW1pY0xpYnJhcnknOidTdGF0aWNMaWJyYXJ5Jyk7 CisKKyAgICBwcmludCAkZiA8PEVPRjsKKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIn XCQoQ29uZmlndXJhdGlvbil8XCQoUGxhdGZvcm0pJz09JyRjZmduYW1lfCRzZWxmLT57cGxh dGZvcm19JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlw ZT4kY2ZndHlwZTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9V c2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0Pgor ICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+JHAtPnt3aG9sZW9wdH08L1dob2xlUHJv Z3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorRU9GCit9CisKK3N1YiBX cml0ZVByb3BlcnR5U2hlZXRzUHJvcGVydHlHcm91cAoreworICAgIG15ICgkc2VsZiwgJGYs ICRjZmduYW1lKSA9IEBfOworICAgIHByaW50ICRmIDw8RU9GOworICA8SW1wb3J0R3JvdXAg Q29uZGl0aW9uPSInXCQoQ29uZmlndXJhdGlvbil8XCQoUGxhdGZvcm0pJz09JyRjZmduYW1l fCRzZWxmLT57cGxhdGZvcm19JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1w b3J0IFByb2plY3Q9IlwkKFVzZXJSb290RGlyKVxcTWljcm9zb2Z0LkNwcC5cJChQbGF0Zm9y bSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJ1wkKFVzZXJSb290RGlyKVxcTWlj cm9zb2Z0LkNwcC5cJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBE YXRhUGxhdGZvcm0iIC8+CisgIDwvSW1wb3J0R3JvdXA+CitFT0YKK30KKworc3ViIFdyaXRl QWRkaXRpb25hbFByb3BlcnRpZXMKK3sKKyAgICBteSAoJHNlbGYsICRmLCAkY2ZnbmFtZSkg PSBAXzsKKyAgICBwcmludCAkZiA8PEVPRjsKKyAgICA8T3V0RGlyIENvbmRpdGlvbj0iJ1wk KENvbmZpZ3VyYXRpb24pfFwkKFBsYXRmb3JtKSc9PSckY2ZnbmFtZXwkc2VsZi0+e3BsYXRm b3JtfSciPi5cXCRjZmduYW1lXFwkc2VsZi0+e25hbWV9XFw8L091dERpcj4KKyAgICA8SW50 RGlyIENvbmRpdGlvbj0iJ1wkKENvbmZpZ3VyYXRpb24pfFwkKFBsYXRmb3JtKSc9PSckY2Zn bmFtZXwkc2VsZi0+e3BsYXRmb3JtfSciPi5cXCRjZmduYW1lXFwkc2VsZi0+e25hbWV9XFw8 L0ludERpcj4KKyAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJ1wkKENvbmZpZ3Vy YXRpb24pfFwkKFBsYXRmb3JtKSc9PSckY2ZnbmFtZXwkc2VsZi0+e3BsYXRmb3JtfSciPmZh bHNlPC9MaW5rSW5jcmVtZW50YWw+CitFT0YKK30KKworc3ViIFdyaXRlSXRlbURlZmluaXRp b25Hcm91cAoreworICAgIG15ICgkc2VsZiwgJGYsICRjZmduYW1lLCAkcCkgPSBAXzsKKyAg ICBteSAkY2ZndHlwZSA9CisgICAgICAoJHNlbGYtPnt0eXBlfSBlcSAiZXhlIikKKyAgICAg ID8nQXBwbGljYXRpb24nCisgICAgICA6KCRzZWxmLT57dHlwZX0gZXEgImRsbCI/J0R5bmFt aWNMaWJyYXJ5JzonU3RhdGljTGlicmFyeScpOworICAgIG15ICRsaWJzID0gJHNlbGYtPkdl dEFkZGl0aW9uYWxMaW5rZXJEZXBlbmRlbmNpZXMoJGNmZ25hbWUsICc7Jyk7CisKKyAgICBt eSAkdGFyZ2V0bWFjaGluZSA9ICRzZWxmLT57cGxhdGZvcm19IGVxICdXaW4zMicgPyAnTWFj aGluZVg4NicgOiAnTWFjaGluZVg2NCc7CisKKyAgICBteSAkaW5jbHVkZXMgPSAkc2VsZi0+ e2luY2x1ZGVzfTsKKyAgICB1bmxlc3MgKCRpbmNsdWRlcyBlcSAnJyBvciAkaW5jbHVkZXMg PX4gLzskLykKKyAgICB7CisgICAgICAgICRpbmNsdWRlcyAuPSAnOyc7CisgICAgfQorICAg IHByaW50ICRmIDw8RU9GOworICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249Iidc JChDb25maWd1cmF0aW9uKXxcJChQbGF0Zm9ybSknPT0nJGNmZ25hbWV8JHNlbGYtPntwbGF0 Zm9ybX0nIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj4kcC0+e29w dH08L09wdGltaXphdGlvbj4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVz PiRzZWxmLT57cHJlZml4aW5jbHVkZXN9c3JjL2luY2x1ZGU7c3JjL2luY2x1ZGUvcG9ydC93 aW4zMjtzcmMvaW5jbHVkZS9wb3J0L3dpbjMyX21zdmM7JGluY2x1ZGVzXCUoQWRkaXRpb25h bEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Cisg ICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X1dJTkRPV1M7X19XSU5ET1dT X187X19XSU4zMl9fO0VYRUNfQkFDS0VORDtXSU4zMl9TVEFDS19STElNSVQ9NDE5NDMwNDtf Q1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURSRzZWxm LT57ZGVmaW5lc30kcC0+e2RlZnN9XCUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVw cm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxTdHJpbmdQb29saW5nPiRwLT57c3RycG9v bH08L1N0cmluZ1Bvb2xpbmc+CisgICAgICA8UnVudGltZUxpYnJhcnk+JHAtPntydW50aW1l fTwvUnVudGltZUxpYnJhcnk+CisgICAgICA8RGlzYWJsZVNwZWNpZmljV2FybmluZ3M+JHNl bGYtPntkaXNhYmxld2FybmluZ3N9O1wlKERpc2FibGVTcGVjaWZpY1dhcm5pbmdzKTwvRGlz YWJsZVNwZWNpZmljV2FybmluZ3M+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+L01QIFwl KEFkZGl0aW9uYWxPcHRpb25zKTwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8QXNzZW1i bGVyT3V0cHV0PgorICAgICAgPC9Bc3NlbWJsZXJPdXRwdXQ+CisgICAgICA8QXNzZW1ibGVy TGlzdGluZ0xvY2F0aW9uPi5cXCRjZmduYW1lXFwkc2VsZi0+e25hbWV9XFw8L0Fzc2VtYmxl ckxpc3RpbmdMb2NhdGlvbj4KKyAgICAgIDxPYmplY3RGaWxlTmFtZT4uXFwkY2ZnbmFtZVxc JHNlbGYtPntuYW1lfVxcPC9PYmplY3RGaWxlTmFtZT4KKyAgICAgIDxQcm9ncmFtRGF0YUJh c2VGaWxlTmFtZT4uXFwkY2ZnbmFtZVxcJHNlbGYtPntuYW1lfVxcPC9Qcm9ncmFtRGF0YUJh c2VGaWxlTmFtZT4KKyAgICAgIDxCcm93c2VJbmZvcm1hdGlvbj5mYWxzZTwvQnJvd3NlSW5m b3JtYXRpb24+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgor ICAgICAgPFN1cHByZXNzU3RhcnR1cEJhbm5lcj50cnVlPC9TdXBwcmVzc1N0YXJ0dXBCYW5u ZXI+CisgICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0Rl YnVnSW5mb3JtYXRpb25Gb3JtYXQ+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBp bGVBcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxPdXRwdXRGaWxl Pi5cXCRjZmduYW1lXFwkc2VsZi0+e25hbWV9XFwkc2VsZi0+e25hbWV9LiRzZWxmLT57dHlw ZX08L091dHB1dEZpbGU+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kbGlicztc JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAg ICAgIDxTdXBwcmVzc1N0YXJ0dXBCYW5uZXI+dHJ1ZTwvU3VwcHJlc3NTdGFydHVwQmFubmVy PgorICAgICAgPEFkZGl0aW9uYWxMaWJyYXJ5RGlyZWN0b3JpZXM+XCUoQWRkaXRpb25hbExp YnJhcnlEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxMaWJyYXJ5RGlyZWN0b3JpZXM+CisgICAg ICA8SWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPmxpYmM7XCUoSWdub3JlU3BlY2lm aWNEZWZhdWx0TGlicmFyaWVzKTwvSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPgor ICAgICAgPFN0YWNrUmVzZXJ2ZVNpemU+NDE5NDMwNDwvU3RhY2tSZXNlcnZlU2l6ZT4KKyAg ICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9y bWF0aW9uPgorICAgICAgPFByb2dyYW1EYXRhYmFzZUZpbGU+LlxcJGNmZ25hbWVcXCRzZWxm LT57bmFtZX1cXCRzZWxmLT57bmFtZX0ucGRiPC9Qcm9ncmFtRGF0YWJhc2VGaWxlPgorICAg ICAgPEdlbmVyYXRlTWFwRmlsZT5mYWxzZTwvR2VuZXJhdGVNYXBGaWxlPgorICAgICAgPE1h cEZpbGVOYW1lPi5cXCRjZmduYW1lXFwkc2VsZi0+e25hbWV9XFwkc2VsZi0+e25hbWV9Lm1h cDwvTWFwRmlsZU5hbWU+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4K KyAgICAgIDxUYXJnZXRNYWNoaW5lPiR0YXJnZXRtYWNoaW5lPC9UYXJnZXRNYWNoaW5lPgor RU9GCisgICAgaWYgKCRzZWxmLT57ZGlzYWJsZWxpbmtlcndhcm5pbmdzfSkKKyAgICB7Cisg ICAgICAgIHByaW50ICRmCisiICAgICAgPEFkZGl0aW9uYWxPcHRpb25zPi9pZ25vcmU6JHNl bGYtPntkaXNhYmxlbGlua2Vyd2FybmluZ3N9IFwlKEFkZGl0aW9uYWxPcHRpb25zKTwvQWRk aXRpb25hbE9wdGlvbnM+XG4iOworICAgIH0KKyAgICBpZiAoJHNlbGYtPntpbXBsaWJ9KQor ICAgIHsKKyAgICAgICAgbXkgJGwgPSAkc2VsZi0+e2ltcGxpYn07CisgICAgICAgICRsID1+ IHMvX19DRkdOQU1FX18vJGNmZ25hbWUvZzsKKyAgICAgICAgcHJpbnQgJGYgIiAgICAgIDxJ bXBvcnRMaWJyYXJ5PiRsPC9JbXBvcnRMaWJyYXJ5PlxuIjsKKyAgICB9CisgICAgaWYgKCRz ZWxmLT57ZGVmfSkKKyAgICB7CisgICAgICAgIG15ICRkID0gJHNlbGYtPntkZWZ9OworICAg ICAgICAkZCA9fiBzL19fQ0ZHTkFNRV9fLyRjZmduYW1lL2c7CisgICAgICAgIHByaW50ICRm ICIgICAgICA8TW9kdWxlRGVmaW5pdGlvbkZpbGU+JGQ8L01vZHVsZURlZmluaXRpb25GaWxl PlxuIjsKKyAgICB9CisgICAgcHJpbnQgJGYgPDxFT0Y7CisgICAgPC9MaW5rPgorICAgIDxS ZXNvdXJjZUNvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz5z cmNcXGluY2x1ZGU7XCUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9u YWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CitFT0YKKyAg ICBpZiAoJHNlbGYtPntidWlsZGRlZn0pCisgICAgeworICAgICAgICBwcmludCAkZiA8PEVP RjsKKyAgICA8UHJlTGlua0V2ZW50PgorICAgICAgPE1lc3NhZ2U+R2VuZXJhdGUgREVGIGZp bGU8L01lc3NhZ2U+CisgICAgICA8Q29tbWFuZD5wZXJsIHNyY1xcdG9vbHNcXG1zdmNcXGdl bmRlZi5wbCAkY2ZnbmFtZVxcJHNlbGYtPntuYW1lfSAkc2VsZi0+e3BsYXRmb3JtfTwvQ29t bWFuZD4KKyAgICA8L1ByZUxpbmtFdmVudD4KK0VPRgorICAgIH0KKyAgICBwcmludCAkZiA8 PEVPRjsKKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorRU9GCit9CisKK3N1YiBGb290ZXIK K3sKKyAgICBteSAoJHNlbGYsICRmKSA9IEBfOworICAgICRzZWxmLT5Xcml0ZVJlZmVyZW5j ZXMoJGYpOworCisgICAgcHJpbnQgJGYgPDxFT0Y7CisgIDxJbXBvcnQgUHJvamVjdD0iXCQo VkNUYXJnZXRzUGF0aClcXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdy b3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJv amVjdD4KK0VPRgorfQorCitwYWNrYWdlIFZDMjAxMFByb2plY3Q7CisKKyMKKyMgUGFja2Fn ZSB0aGF0IGVuY2Fwc3VsYXRlcyBhIFZpc3VhbCBDKysgMjAxMCBwcm9qZWN0IGZpbGUKKyMK KwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBiYXNlIHF3KE1TQnVpbGRQcm9q ZWN0KTsKKworc3ViIG5ldworeworICAgIG15ICRjbGFzc25hbWUgPSBzaGlmdDsKKyAgICBt eSAkc2VsZiA9ICRjbGFzc25hbWUtPlNVUEVSOjpfbmV3KEBfKTsKKyAgICBibGVzcygkc2Vs ZiwgJGNsYXNzbmFtZSk7CisKKyAgICAkc2VsZi0+e3ZjdmVyfSA9ICcxMC4wMCc7CisKKyAg ICByZXR1cm4gJHNlbGY7Cit9CisKKzE7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvbXN2Yy9N a3ZjYnVpbGQucG0gYi9zcmMvdG9vbHMvbXN2Yy9Na3ZjYnVpbGQucG0KaW5kZXggZmI4MzIy NC4uNzg4MWM2NiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL21zdmMvTWt2Y2J1aWxkLnBtCisr KyBiL3NyYy90b29scy9tc3ZjL01rdmNidWlsZC5wbQpAQCAtMTQsNiArMTQsNyBAQCB1c2Ug U29sdXRpb247CiB1c2UgQ3dkOwogdXNlIEZpbGU6OkNvcHk7CiB1c2UgQ29uZmlnOwordXNl IFZTT2JqZWN0RmFjdG9yeTsKIHVzZSBMaXN0OjpVdGlsIHF3KGZpcnN0KTsKIAogdXNlIEV4 cG9ydGVyOwpAQCAtNDcsNyArNDgsOSBAQCBzdWIgbWt2Y2J1aWxkCiAgICAgY2hkaXIoJy4u XC4uXC4uJykgaWYgKC1kICcuLlxtc3ZjJyAmJiAtZCAnLi5cLi5cLi5cc3JjJyk7CiAgICAg ZGllICdNdXN0IHJ1biBmcm9tIHJvb3Qgb3IgbXN2YyBkaXJlY3RvcnknIHVubGVzcyAoLWQg J3NyY1x0b29sc1xtc3ZjJyAmJiAtZCAnc3JjJyk7CiAKLSAgICAkc29sdXRpb24gPSBuZXcg U29sdXRpb24oJGNvbmZpZyk7CisgICAgbXkgJHZzVmVyc2lvbiA9IERldGVybWluZVZpc3Vh bFN0dWRpb1ZlcnNpb24oKTsKKworICAgICRzb2x1dGlvbiA9IENyZWF0ZVNvbHV0aW9uKCR2 c1ZlcnNpb24sICRjb25maWcpOwogCiAgICAgb3VyIEBwZ3BvcnRmaWxlcyA9IHF3KAogICAg ICAgY2hrbG9jYWxlLmMgY3J5cHQuYyBmc2Vla28uYyBnZXRydXNhZ2UuYyBpbmV0X2F0b24u YyByYW5kb20uYyBzcmFuZG9tLmMKQEAgLTM0NCwxMiArMzQ3LDEzIEBAIHN1YiBta3ZjYnVp bGQKICAgICAkcGdkdW1wLT5BZGRGaWxlKCdzcmNcYmFja2VuZFxwYXJzZXJca3dsb29rdXAu YycpOwogCiAgICAgbXkgJHBnZHVtcGFsbCA9IEFkZFNpbXBsZUZyb250ZW5kKCdwZ19kdW1w JywgMSk7Ci0JIyBwZ19kdW1wYWxsIGRvZXNuJ3QgdXNlIHRoZSBmaWxlcyBpbiB0aGUgTWFr ZWZpbGUncyAkKE9CSlMpLCB1bmxpa2UKLQkjIHBnX2R1bXAgYW5kIHBnX3Jlc3RvcmUuCi0J IyBTbyByZW1vdmUgdGhlaXIgc291cmNlcyBmcm9tIHRoZSBvYmplY3QsIGtlZXBpbmcgdGhl IG90aGVyIHNldHVwIHRoYXQgCi0JIyBBZGRTaW1wbGVGcm9udGVuZCgpIGhhcyBkb25lLgot ICAgIG15IEBub2R1bXBhbGwgPSBncmVwICB7IG0vc3JjXFxiaW5cXHBnX2R1bXBcXC4qXC5j JC8gfSAKLQlrZXlzICV7JHBnZHVtcGFsbC0+e2ZpbGVzfX07CisKKyAgICAjIHBnX2R1bXBh bGwgZG9lc24ndCB1c2UgdGhlIGZpbGVzIGluIHRoZSBNYWtlZmlsZSdzICQoT0JKUyksIHVu bGlrZQorICAgICMgcGdfZHVtcCBhbmQgcGdfcmVzdG9yZS4KKyAgICAjIFNvIHJlbW92ZSB0 aGVpciBzb3VyY2VzIGZyb20gdGhlIG9iamVjdCwga2VlcGluZyB0aGUgb3RoZXIgc2V0dXAg dGhhdAorICAgICMgQWRkU2ltcGxlRnJvbnRlbmQoKSBoYXMgZG9uZS4KKyAgICBteSBAbm9k dW1wYWxsID0gZ3JlcCAgeyBtL3NyY1xcYmluXFxwZ19kdW1wXFwuKlwuYyQvIH0KKyAgICAg IGtleXMgJXskcGdkdW1wYWxsLT57ZmlsZXN9fTsKICAgICBkZWxldGUgQHskcGdkdW1wYWxs LT57ZmlsZXN9fXtAbm9kdW1wYWxsfTsKICAgICAkcGdkdW1wYWxsLT57bmFtZX0gPSAncGdf ZHVtcGFsbCc7CiAgICAgJHBnZHVtcGFsbC0+QWRkSW5jbHVkZURpcignc3JjXGJhY2tlbmQn KTsKQEAgLTUwOCw2ICs1MTIsNyBAQCBzdWIgbWt2Y2J1aWxkCiAgICAgJHBncmVncmVzcy0+ QWRkUmVmZXJlbmNlKCRsaWJwZ3BvcnQpOwogCiAgICAgJHNvbHV0aW9uLT5TYXZlKCk7Cisg ICAgcmV0dXJuICRzb2x1dGlvbi0+e3ZjdmVyfTsKIH0KIAogIyMjIyMjIyMjIyMjIyMjIyMj IyMjCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvbXN2Yy9Qcm9qZWN0LnBtIGIvc3JjL3Rvb2xz L21zdmMvUHJvamVjdC5wbQppbmRleCA2Njc1MmY5Li45ZGI2NjRhIDEwMDY0NAotLS0gYS9z cmMvdG9vbHMvbXN2Yy9Qcm9qZWN0LnBtCisrKyBiL3NyYy90b29scy9tc3ZjL1Byb2plY3Qu cG0KQEAgLTEwLDkgKzEwLDkgQEAgdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5nczsKIHVzZSBG aWxlOjpCYXNlbmFtZTsKIAotc3ViIG5ldworc3ViIF9uZXcKIHsKLSAgICBteSAoJGp1bmss ICRuYW1lLCAkdHlwZSwgJHNvbHV0aW9uKSA9IEBfOworICAgIG15ICgkY2xhc3NuYW1lLCAk bmFtZSwgJHR5cGUsICRzb2x1dGlvbikgPSBAXzsKICAgICBteSAkZ29vZF90eXBlcyA9IHsK ICAgICAgICAgbGliID0+IDEsCiAgICAgICAgIGV4ZSA9PiAxLApAQCAtMjAsMjQgKzIwLDIz IEBAIHN1YiBuZXcKICAgICB9OwogICAgIGNvbmZlc3MoIkJhZCBwcm9qZWN0IHR5cGU6ICR0 eXBlXG4iKSB1bmxlc3MgZXhpc3RzICRnb29kX3R5cGVzLT57JHR5cGV9OwogICAgIG15ICRz ZWxmID0gewotICAgICAgICBuYW1lICAgICAgICAgICAgPT4gJG5hbWUsCi0gICAgICAgIHR5 cGUgICAgICAgICAgICA9PiAkdHlwZSwKLSAgICAgICAgZ3VpZCAgICAgICAgICAgID0+IFdp bjMyOjpHdWlkR2VuKCksCi0gICAgICAgIGZpbGVzICAgICAgICAgICA9PiB7fSwKLSAgICAg ICAgcmVmZXJlbmNlcyAgICAgID0+IFtdLAotICAgICAgICBsaWJyYXJpZXMgICAgICAgPT4g W10sCi0gICAgICAgIHN1ZmZpeGxpYiAgICAgICA9PiBbXSwKLSAgICAgICAgaW5jbHVkZXMg ICAgICAgID0+ICcnLAotICAgICAgICBwcmVmaXhpbmNsdWRlcyAgPT4gJycsCi0gICAgICAg IGRlZmluZXMgICAgICAgICA9PiAnOycsCi0gICAgICAgIHNvbHV0aW9uICAgICAgICA9PiAk c29sdXRpb24sCi0gICAgICAgIGRpc2FibGV3YXJuaW5ncyA9PiAnNDAxODs0MjQ0OzQyNzM7 NDEwMjs0MDkwOzQyNjcnLAorICAgICAgICBuYW1lICAgICAgICAgICAgICAgICAgPT4gJG5h bWUsCisgICAgICAgIHR5cGUgICAgICAgICAgICAgICAgICA9PiAkdHlwZSwKKyAgICAgICAg Z3VpZCAgICAgICAgICAgICAgICAgID0+IFdpbjMyOjpHdWlkR2VuKCksCisgICAgICAgIGZp bGVzICAgICAgICAgICAgICAgICA9PiB7fSwKKyAgICAgICAgcmVmZXJlbmNlcyAgICAgICAg ICAgID0+IFtdLAorICAgICAgICBsaWJyYXJpZXMgICAgICAgICAgICAgPT4gW10sCisgICAg ICAgIHN1ZmZpeGxpYiAgICAgICAgICAgICA9PiBbXSwKKyAgICAgICAgaW5jbHVkZXMgICAg ICAgICAgICAgID0+ICcnLAorICAgICAgICBwcmVmaXhpbmNsdWRlcyAgICAgICAgPT4gJycs CisgICAgICAgIGRlZmluZXMgICAgICAgICAgICAgICA9PiAnOycsCisgICAgICAgIHNvbHV0 aW9uICAgICAgICAgICAgICA9PiAkc29sdXRpb24sCisgICAgICAgIGRpc2FibGV3YXJuaW5n cyAgICAgICA9PiAnNDAxODs0MjQ0OzQyNzM7NDEwMjs0MDkwOzQyNjcnLAogICAgICAgICBk aXNhYmxlbGlua2Vyd2FybmluZ3MgPT4gJycsCi0gICAgICAgIHZjdmVyICAgICAgICAgICA9 PiAkc29sdXRpb24tPnt2Y3Zlcn0sCi0gICAgICAgIHBsYXRmb3JtICAgICAgICA9PiAkc29s dXRpb24tPntwbGF0Zm9ybX0sCisgICAgICAgIHBsYXRmb3JtICAgICAgICAgICAgICA9PiAk c29sdXRpb24tPntwbGF0Zm9ybX0sCiAgICAgfTsKIAotICAgIGJsZXNzICRzZWxmOworICAg IGJsZXNzKCRzZWxmLCAkY2xhc3NuYW1lKTsKICAgICByZXR1cm4gJHNlbGY7CiB9CiAKQEAg LTM1NSwxMzUgKzM1NCwxNyBAQCBzdWIgU2F2ZQogICAgICRzZWxmLT5EaXNhYmxlTGlua2Vy V2FybmluZ3MoJzQxOTcnKSBpZiAoJHNlbGYtPntwbGF0Zm9ybX0gZXEgJ3g2NCcpOwogCiAg ICAgIyBEdW1wIHRoZSBwcm9qZWN0Ci0gICAgb3BlbihGLCAiPiRzZWxmLT57bmFtZX0udmNw cm9qIikgfHwgY3JvYWsoIkNvdWxkIG5vdCB3cml0ZSB0byAkc2VsZi0+e25hbWV9LnZjcHJv alxuIik7CisgICAgb3BlbihGLCAiPiRzZWxmLT57bmFtZX0kc2VsZi0+e2ZpbGVuYW1lRXh0 ZW5zaW9ufSIpCisgICAgICB8fCBjcm9haygiQ291bGQgbm90IHdyaXRlIHRvICRzZWxmLT57 bmFtZX0kc2VsZi0+e2ZpbGVuYW1lRXh0ZW5zaW9ufVxuIik7CiAgICAgJHNlbGYtPldyaXRl SGVhZGVyKCpGKTsKLSAgICAkc2VsZi0+V3JpdGVSZWZlcmVuY2VzKCpGKTsKLSAgICBwcmlu dCBGIDw8RU9GOwotIDxGaWxlcz4KLUVPRgotICAgIG15IEBkaXJzdGFjayA9ICgpOwotICAg IG15ICV1bmlxdWVmaWxlczsKLSAgICBmb3JlYWNoIG15ICRmIChzb3J0IGtleXMgJXsgJHNl bGYtPntmaWxlc30gfSkKLSAgICB7Ci0gICAgICAgIGNvbmZlc3MgIkJhZCBmb3JtYXQgZmls ZW5hbWUgJyRmJ1xuIiB1bmxlc3MgKCRmID1+IC9eKC4qKVxcKFteXFxdKylcLltyXT9bY3ls XSQvKTsKLSAgICAgICAgbXkgJGRpciA9ICQxOwotICAgICAgICBteSAkZmlsZSA9ICQyOwot Ci0gICAgICAgICMgV2FsayBiYWNrd2FyZHMgZG93biB0aGUgZGlyZWN0b3J5IHN0YWNrIGFu ZCBjbG9zZSBhbnkgZGlycyB3ZSdyZSBkb25lIHdpdGgKLSAgICAgICAgd2hpbGUgKCQjZGly c3RhY2sgPj0gMCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGpvaW4oJ1xcJyxAZGly c3RhY2spIGVxIHN1YnN0cigkZGlyLCAwLCBsZW5ndGgoam9pbignXFwnLEBkaXJzdGFjaykp KSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsYXN0IGlmIChsZW5ndGgoJGRp cikgPT0gbGVuZ3RoKGpvaW4oJ1xcJyxAZGlyc3RhY2spKSk7Ci0gICAgICAgICAgICAgICAg bGFzdCBpZiAoc3Vic3RyKCRkaXIsIGxlbmd0aChqb2luKCdcXCcsQGRpcnN0YWNrKSksMSkg ZXEgJ1xcJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcmludCBGICcgJyB4ICQj ZGlyc3RhY2sgLiAiICA8L0ZpbHRlcj5cbiI7Ci0gICAgICAgICAgICBwb3AgQGRpcnN0YWNr OwotICAgICAgICB9Ci0KLSAgICAgICAgIyBOb3cgd2FsayBmb3J3YXJkcyBhbmQgY3JlYXRl IHdoYXRldmVyIGRpcmVjdG9yaWVzIGFyZSBuZWVkZWQKLSAgICAgICAgd2hpbGUgKGpvaW4o J1xcJyxAZGlyc3RhY2spIG5lICRkaXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG15ICRs ZWZ0ID0gc3Vic3RyKCRkaXIsIGxlbmd0aChqb2luKCdcXCcsQGRpcnN0YWNrKSkpOwotICAg ICAgICAgICAgJGxlZnQgPX4gcy9eXFwvLzsKLSAgICAgICAgICAgIG15IEBwaWVjZXMgPSBz cGxpdCAvXFwvLCAkbGVmdDsKLSAgICAgICAgICAgIHB1c2ggQGRpcnN0YWNrLCAkcGllY2Vz WzBdOwotICAgICAgICAgICAgcHJpbnQgRiAnICcgeCAkI2RpcnN0YWNrIC4gIiAgPEZpbHRl ciBOYW1lPVwiJHBpZWNlc1swXVwiIEZpbHRlcj1cIlwiPlxuIjsKLSAgICAgICAgfQotCi0g ICAgICAgIHByaW50IEYgJyAnIHggJCNkaXJzdGFjayAuICIgICA8RmlsZSBSZWxhdGl2ZVBh dGg9XCIkZlwiIjsKLSAgICAgICAgaWYgKCRmID1+IC9cLnkkLykKLSAgICAgICAgewotICAg ICAgICAgICAgbXkgJG9mID0gJGY7Ci0gICAgICAgICAgICAkb2YgPX4gcy9cLnkkLy5jLzsK LSAgICAgICAgICAgICRvZiA9fiBze15zcmNcXHBsXFxwbHBnc3FsXFxzcmNcXGdyYW0uYyR9 e3NyY1xccGxcXHBscGdzcWxcXHNyY1xccGxfZ3JhbS5jfTsKLSAgICAgICAgICAgIHByaW50 IEYgJz4nCi0gICAgICAgICAgICAgIC4gJHNlbGYtPkdlbmVyYXRlQ3VzdG9tVG9vbCgnUnVu bmluZyBiaXNvbiBvbiAnIC4gJGYsCi0gICAgICAgICAgICAgICAgJ2NtZCAvVjpPTiAvYyBz cmNcdG9vbHNcbXN2Y1xwZ2Jpc29uLmJhdCAnIC4gJGYsICRvZikKLSAgICAgICAgICAgICAg LiAnPC9GaWxlPicgLiAiXG4iOwotICAgICAgICB9Ci0gICAgICAgIGVsc2lmICgkZiA9fiAv XC5sJC8pCi0gICAgICAgIHsKLSAgICAgICAgICAgIG15ICRvZiA9ICRmOwotICAgICAgICAg ICAgJG9mID1+IHMvXC5sJC8uYy87Ci0gICAgICAgICAgICBwcmludCBGICc+JwotICAgICAg ICAgICAgICAuICRzZWxmLT5HZW5lcmF0ZUN1c3RvbVRvb2woJ1J1bm5pbmcgZmxleCBvbiAn IC4gJGYsCi0gICAgICAgICAgICAgICAgJ3NyY1x0b29sc1xtc3ZjXHBnZmxleC5iYXQgJyAu ICRmLCRvZikKLSAgICAgICAgICAgICAgLiAnPC9GaWxlPicgLiAiXG4iOwotICAgICAgICB9 Ci0gICAgICAgIGVsc2lmIChkZWZpbmVkKCR1bmlxdWVmaWxlc3skZmlsZX0pKQotICAgICAg ICB7Ci0KLSAgICAgICAgICAgICMgRmlsZSBhbHJlYWR5IGV4aXN0cywgc28gZmFrZSBhIG5l dyBuYW1lCi0gICAgICAgICAgICBteSAkb2JqID0gJGRpcjsKLSAgICAgICAgICAgICRvYmog PX4gcy9cXC9fL2c7Ci0gICAgICAgICAgICBwcmludCBGCi0iPjxGaWxlQ29uZmlndXJhdGlv biBOYW1lPVwiRGVidWd8JHNlbGYtPntwbGF0Zm9ybX1cIj48VG9vbCBOYW1lPVwiVkNDTENv bXBpbGVyVG9vbFwiIE9iamVjdEZpbGU9XCIuXFxkZWJ1Z1xcJHNlbGYtPntuYW1lfVxcJG9i aiIKLSAgICAgICAgICAgICAgLiAiXyRmaWxlLm9ialwiIC8+PC9GaWxlQ29uZmlndXJhdGlv bj48RmlsZUNvbmZpZ3VyYXRpb24gTmFtZT1cIlJlbGVhc2V8JHNlbGYtPntwbGF0Zm9ybX1c Ij48VG9vbCBOYW1lPVwiVkNDTENvbXBpbGVyVG9vbFwiIE9iamVjdEZpbGU9XCIuXFxyZWxl YXNlXFwkc2VsZi0+e25hbWV9XFwkb2JqIgotICAgICAgICAgICAgICAuICJfJGZpbGUub2Jq XCIgLz48L0ZpbGVDb25maWd1cmF0aW9uPjwvRmlsZT5cbiI7Ci0gICAgICAgIH0KLSAgICAg ICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICAgICAkdW5pcXVlZmlsZXN7JGZpbGV9ID0g MTsKLSAgICAgICAgICAgIHByaW50IEYgIiAvPlxuIjsKLSAgICAgICAgfQotICAgIH0KLSAg ICB3aGlsZSAoJCNkaXJzdGFjayA+PSAwKQotICAgIHsKLSAgICAgICAgcHJpbnQgRiAnICcg eCAkI2RpcnN0YWNrIC4gIiAgPC9GaWx0ZXI+XG4iOwotICAgICAgICBwb3AgQGRpcnN0YWNr OwotICAgIH0KKyAgICAkc2VsZi0+V3JpdGVGaWxlcygqRik7CiAgICAgJHNlbGYtPkZvb3Rl cigqRik7CiAgICAgY2xvc2UoRik7CiB9CiAKLXN1YiBHZW5lcmF0ZUN1c3RvbVRvb2wKK3N1 YiBHZXRBZGRpdGlvbmFsTGlua2VyRGVwZW5kZW5jaWVzCiB7Ci0gICAgbXkgKCRzZWxmLCAk ZGVzYywgJHRvb2wsICRvdXRwdXQsICRjZmcpID0gQF87Ci0gICAgaWYgKCFkZWZpbmVkKCRj ZmcpKQotICAgIHsKLSAgICAgICAgcmV0dXJuICRzZWxmLT5HZW5lcmF0ZUN1c3RvbVRvb2wo JGRlc2MsICR0b29sLCAkb3V0cHV0LCAnRGVidWcnKQotICAgICAgICAgIC4kc2VsZi0+R2Vu ZXJhdGVDdXN0b21Ub29sKCRkZXNjLCAkdG9vbCwgJG91dHB1dCwgJ1JlbGVhc2UnKTsKLSAg ICB9Ci0gICAgcmV0dXJuCi0iPEZpbGVDb25maWd1cmF0aW9uIE5hbWU9XCIkY2ZnfCRzZWxm LT57cGxhdGZvcm19XCI+PFRvb2wgTmFtZT1cIlZDQ3VzdG9tQnVpbGRUb29sXCIgRGVzY3Jp cHRpb249XCIkZGVzY1wiIENvbW1hbmRMaW5lPVwiJHRvb2xcIiBBZGRpdGlvbmFsRGVwZW5k ZW5jaWVzPVwiXCIgT3V0cHV0cz1cIiRvdXRwdXRcIiAvPjwvRmlsZUNvbmZpZ3VyYXRpb24+ IjsKLX0KLQotc3ViIFdyaXRlUmVmZXJlbmNlcwotewotICAgIG15ICgkc2VsZiwgJGYpID0g QF87Ci0gICAgcHJpbnQgJGYgIiA8UmVmZXJlbmNlcz5cbiI7Ci0gICAgZm9yZWFjaCBteSAk cmVmIChAeyRzZWxmLT57cmVmZXJlbmNlc319KQotICAgIHsKLSAgICAgICAgcHJpbnQgJGYK LSIgIDxQcm9qZWN0UmVmZXJlbmNlIFJlZmVyZW5jZWRQcm9qZWN0SWRlbnRpZmllcj1cIiRy ZWYtPntndWlkfVwiIE5hbWU9XCIkcmVmLT57bmFtZX1cIiAvPlxuIjsKLSAgICB9Ci0gICAg cHJpbnQgJGYgIiA8L1JlZmVyZW5jZXM+XG4iOwotfQotCi1zdWIgV3JpdGVIZWFkZXIKLXsK LSAgICBteSAoJHNlbGYsICRmKSA9IEBfOwotCi0gICAgcHJpbnQgJGYgPDxFT0Y7Ci08P3ht bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4KLTxWaXN1YWxTdHVk aW9Qcm9qZWN0IFByb2plY3RUeXBlPSJWaXN1YWwgQysrIiBWZXJzaW9uPSIkc2VsZi0+e3Zj dmVyfSIgTmFtZT0iJHNlbGYtPntuYW1lfSIgUHJvamVjdEdVSUQ9IiRzZWxmLT57Z3VpZH0i PgotIDxQbGF0Zm9ybXM+PFBsYXRmb3JtIE5hbWU9IiRzZWxmLT57cGxhdGZvcm19Ii8+PC9Q bGF0Zm9ybXM+Ci0gPENvbmZpZ3VyYXRpb25zPgotRU9GCi0gICAgJHNlbGYtPldyaXRlQ29u ZmlndXJhdGlvbigkZiwgJ0RlYnVnJywKLSAgICAgICAgeyBkZWZzPT4nX0RFQlVHO0RFQlVH PTE7Jywgd2hvbGVvcHQ9PjAsIG9wdD0+MCwgc3RycG9vbD0+J2ZhbHNlJywgcnVudGltZT0+ MyB9KTsKLSAgICAkc2VsZi0+V3JpdGVDb25maWd1cmF0aW9uKCRmLCAnUmVsZWFzZScsCi0g ICAgICAgIHsgZGVmcz0+JycsIHdob2xlb3B0PT4wLCBvcHQ9PjMsIHN0cnBvb2w9Pid0cnVl JywgcnVudGltZT0+MiB9KTsKLSAgICBwcmludCAkZiA8PEVPRjsKLSA8L0NvbmZpZ3VyYXRp b25zPgotRU9GCi19Ci0KLXN1YiBXcml0ZUNvbmZpZ3VyYXRpb24KLXsKLSAgICBteSAoJHNl bGYsICRmLCAkY2ZnbmFtZSwgJHApID0gQF87Ci0gICAgbXkgJGNmZ3R5cGUgPSAoJHNlbGYt Pnt0eXBlfSBlcSAiZXhlIik/MTooJHNlbGYtPnt0eXBlfSBlcSAiZGxsIj8yOjQpOworICAg IG15ICgkc2VsZiwgJGNmZ25hbWUsICRzZXBlcmF0b3IpID0gQF87CiAgICAgbXkgJGxpYmNm ZyA9ICh1YyAkY2ZnbmFtZSBlcSAiUkVMRUFTRSIpPyJNRCI6Ik1EZCI7CiAgICAgbXkgJGxp YnMgPSAnJzsKICAgICBmb3JlYWNoIG15ICRsaWIgKEB7JHNlbGYtPntsaWJyYXJpZXN9fSkK QEAgLTQ5Nyw3NiArMzc4LDExIEBAIHN1YiBXcml0ZUNvbmZpZ3VyYXRpb24KICAgICAgICAg ICAgICAgICBsYXN0OwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgICRsaWJz IC49ICR4bGliIC4gIiAiOworICAgICAgICAkbGlicyAuPSAkeGxpYiAuICRzZXBlcmF0b3I7 CiAgICAgfQotICAgICRsaWJzID1+IHMvICQvLzsKKyAgICAkbGlicyA9fiBzLy4kLy87CiAg ICAgJGxpYnMgPX4gcy9fX0NGR05BTUVfXy8kY2ZnbmFtZS9nOwotCi0gICAgbXkgJHRhcmdl dG1hY2hpbmUgPSAkc2VsZi0+e3BsYXRmb3JtfSBlcSAnV2luMzInID8gMSA6IDE3OwotCi0g ICAgcHJpbnQgJGYgPDxFT0Y7Ci0gIDxDb25maWd1cmF0aW9uIE5hbWU9IiRjZmduYW1lfCRz ZWxmLT57cGxhdGZvcm19IiBPdXRwdXREaXJlY3Rvcnk9Ii5cXCRjZmduYW1lXFwkc2VsZi0+ e25hbWV9IiBJbnRlcm1lZGlhdGVEaXJlY3Rvcnk9Ii5cXCRjZmduYW1lXFwkc2VsZi0+e25h bWV9IgotCUNvbmZpZ3VyYXRpb25UeXBlPSIkY2ZndHlwZSIgVXNlT2ZNRkM9IjAiIEFUTE1p bmltaXplc0NSdW5UaW1lTGlicmFyeVVzYWdlPSJGQUxTRSIgQ2hhcmFjdGVyU2V0PSIyIiBX aG9sZVByb2dyYW1PcHRpbWl6YXRpb249IiRwLT57d2hvbGVvcHR9Ij4KLQk8VG9vbCBOYW1l PSJWQ0NMQ29tcGlsZXJUb29sIiBPcHRpbWl6YXRpb249IiRwLT57b3B0fSIKLQkJQWRkaXRp b25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJHNlbGYtPntwcmVmaXhpbmNsdWRlc31zcmMvaW5j bHVkZTtzcmMvaW5jbHVkZS9wb3J0L3dpbjMyO3NyYy9pbmNsdWRlL3BvcnQvd2luMzJfbXN2 Yzskc2VsZi0+e2luY2x1ZGVzfSIKLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMy O19XSU5ET1dTO19fV0lORE9XU19fO19fV0lOMzJfXztFWEVDX0JBQ0tFTkQ7V0lOMzJfU1RB Q0tfUkxJTUlUPTQxOTQzMDQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1RE Q19OT19ERVBSRUNBVEUkc2VsZi0+e2RlZmluZXN9JHAtPntkZWZzfSIKLQkJU3RyaW5nUG9v bGluZz0iJHAtPntzdHJwb29sfSIKLQkJUnVudGltZUxpYnJhcnk9IiRwLT57cnVudGltZX0i IERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSIkc2VsZi0+e2Rpc2FibGV3YXJuaW5nc30iCi0J CUFkZGl0aW9uYWxPcHRpb25zPSIvTVAiCi1FT0YKLSAgICBwcmludCAkZiA8PEVPRjsKLQkJ QXNzZW1ibGVyT3V0cHV0PSIwIiBBc3NlbWJsZXJMaXN0aW5nTG9jYXRpb249Ii5cXCRjZmdu YW1lXFwkc2VsZi0+e25hbWV9XFwiIE9iamVjdEZpbGU9Ii5cXCRjZmduYW1lXFwkc2VsZi0+ e25hbWV9XFwiCi0JCVByb2dyYW1EYXRhQmFzZUZpbGVOYW1lPSIuXFwkY2ZnbmFtZVxcJHNl bGYtPntuYW1lfVxcIiBCcm93c2VJbmZvcm1hdGlvbj0iMCIKLQkJV2FybmluZ0xldmVsPSIz IiBTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiIERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ9 IjMiIENvbXBpbGVBcz0iMCIvPgotCTxUb29sIE5hbWU9IlZDTGlua2VyVG9vbCIgT3V0cHV0 RmlsZT0iLlxcJGNmZ25hbWVcXCRzZWxmLT57bmFtZX1cXCRzZWxmLT57bmFtZX0uJHNlbGYt Pnt0eXBlfSIKLQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iJGxpYnMiCi0JCUxpbmtJbmNy ZW1lbnRhbD0iMCIgU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIiBBZGRpdGlvbmFsTGli cmFyeURpcmVjdG9yaWVzPSIiIElnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9ImxpYmMiCi0J CVN0YWNrUmVzZXJ2ZVNpemU9IjQxOTQzMDQiIERpc2FibGVTcGVjaWZpY1dhcm5pbmdzPSIk c2VsZi0+e2Rpc2FibGV3YXJuaW5nc30iCi0JCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0i VFJVRSIgUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlxcJGNmZ25hbWVcXCRzZWxmLT57bmFtZX1c XCRzZWxmLT57bmFtZX0ucGRiIgotCQlHZW5lcmF0ZU1hcEZpbGU9IkZBTFNFIiBNYXBGaWxl TmFtZT0iLlxcJGNmZ25hbWVcXCRzZWxmLT57bmFtZX1cXCRzZWxmLT57bmFtZX0ubWFwIgot CQlTdWJTeXN0ZW09IjEiIFRhcmdldE1hY2hpbmU9IiR0YXJnZXRtYWNoaW5lIgotRU9GCi0g ICAgaWYgKCRzZWxmLT57ZGlzYWJsZWxpbmtlcndhcm5pbmdzfSkKLSAgICB7Ci0gICAgICAg IHByaW50ICRmICJcdFx0QWRkaXRpb25hbE9wdGlvbnM9XCIvaWdub3JlOiRzZWxmLT57ZGlz YWJsZWxpbmtlcndhcm5pbmdzfVwiXG4iOwotICAgIH0KLSAgICBpZiAoJHNlbGYtPntpbXBs aWJ9KQotICAgIHsKLSAgICAgICAgbXkgJGwgPSAkc2VsZi0+e2ltcGxpYn07Ci0gICAgICAg ICRsID1+IHMvX19DRkdOQU1FX18vJGNmZ25hbWUvZzsKLSAgICAgICAgcHJpbnQgJGYgIlx0 XHRJbXBvcnRMaWJyYXJ5PVwiJGxcIlxuIjsKLSAgICB9Ci0gICAgaWYgKCRzZWxmLT57ZGVm fSkKLSAgICB7Ci0gICAgICAgIG15ICRkID0gJHNlbGYtPntkZWZ9OwotICAgICAgICAkZCA9 fiBzL19fQ0ZHTkFNRV9fLyRjZmduYW1lL2c7Ci0gICAgICAgIHByaW50ICRmICJcdFx0TW9k dWxlRGVmaW5pdGlvbkZpbGU9XCIkZFwiXG4iOwotICAgIH0KLQotICAgIHByaW50ICRmICJc dC8+XG4iOwotICAgIHByaW50ICRmCi0iXHQ8VG9vbCBOYW1lPVwiVkNMaWJyYXJpYW5Ub29s XCIgT3V0cHV0RmlsZT1cIi5cXCRjZmduYW1lXFwkc2VsZi0+e25hbWV9XFwkc2VsZi0+e25h bWV9LmxpYlwiIElnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9XCJsaWJjXCIgLz5cbiI7Ci0g ICAgcHJpbnQgJGYKLSAgICAgICJcdDxUb29sIE5hbWU9XCJWQ1Jlc291cmNlQ29tcGlsZXJU b29sXCIgQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz1cInNyY1xcaW5jbHVkZVwiIC8+ XG4iOwotICAgIGlmICgkc2VsZi0+e2J1aWxkZGVmfSkKLSAgICB7Ci0gICAgICAgIHByaW50 ICRmCi0iXHQ8VG9vbCBOYW1lPVwiVkNQcmVMaW5rRXZlbnRUb29sXCIgRGVzY3JpcHRpb249 XCJHZW5lcmF0ZSBERUYgZmlsZVwiIENvbW1hbmRMaW5lPVwicGVybCBzcmNcXHRvb2xzXFxt c3ZjXFxnZW5kZWYucGwgJGNmZ25hbWVcXCRzZWxmLT57bmFtZX0gJHNlbGYtPntwbGF0Zm9y bX1cIiAvPlxuIjsKLSAgICB9Ci0gICAgcHJpbnQgJGYgPDxFT0Y7Ci0gIDwvQ29uZmlndXJh dGlvbj4KLUVPRgotfQotCi1zdWIgRm9vdGVyCi17Ci0gICAgbXkgKCRzZWxmLCAkZikgPSBA XzsKLQotICAgIHByaW50ICRmIDw8RU9GOwotIDwvRmlsZXM+Ci0gPEdsb2JhbHMvPgotPC9W aXN1YWxTdHVkaW9Qcm9qZWN0PgotRU9GCisgICAgcmV0dXJuICRsaWJzOwogfQogCiAjIFV0 aWxpdHkgZnVuY3Rpb24gdGhhdCBsb2FkcyBhIGNvbXBsZXRlIGZpbGUKZGlmZiAtLWdpdCBh L3NyYy90b29scy9tc3ZjL1JFQURNRSBiL3NyYy90b29scy9tc3ZjL1JFQURNRQppbmRleCBi OGRkNDg4Li5hZDBlY2EzIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvbXN2Yy9SRUFETUUKKysr IGIvc3JjL3Rvb2xzL21zdmMvUkVBRE1FCkBAIC00LDE5ICs0LDE5IEBAIE1TVkMgYnVpbGQK ID09PT09PT09PT0KIAogVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgdGhlIHRvb2xzIHJlcXVp cmVkIHRvIGJ1aWxkIFBvc3RncmVTUUwgdXNpbmcKLU1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlv IDIwMDUuIFRoaXMgYnVpbGRzIHRoZSB3aG9sZSBiYWNrZW5kLCBub3QganVzdAorTWljcm9z b2Z0IFZpc3VhbCBTdHVkaW8gMjAwNSAtIDIwMTEuIFRoaXMgYnVpbGRzIHRoZSB3aG9sZSBi YWNrZW5kLCBub3QganVzdAogdGhlIGxpYnBxIGZyb250ZW5kIGxpYnJhcnkuIEZvciBtb3Jl IGluZm9ybWF0aW9uLCBzZWUgdGhlIGRvY3VtZW50YXRpb24KLWNoYXB0ZXIgIkluc3RhbGxh dGlvbiBvbiBXaW5kb3dzIi4KK2NoYXB0ZXIgIkluc3RhbGxhdGlvbiBvbiBXaW5kb3dzIiBh bmQgdGhlIGRlc2NyaXB0aW9uIGJlbG93LgogCiAKIE5vdGVzIGFib3V0IFZpc3VhbCBTdHVk aW8gRXhwcmVzcwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1UbyBidWls ZCBQb3N0Z3JlU1FMIHVzaW5nIFZpc3VhbCBTdHVkaW8gRXhwcmVzcywgdGhlIFBsYXRmb3Jt IFNESworVG8gYnVpbGQgUG9zdGdyZVNRTCB1c2luZyBWaXN1YWwgU3R1ZGlvIEV4cHJlc3Ms IHRoZSBNaWNyb3NvZnQgV2luZG93cyBTREsKIGhhcyB0byBiZSBpbnN0YWxsZWQuIFNpbmNl IHRoaXMgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBwcm9kdWN0CiBvcmlnaW5hbGx5LCBleHRy YSBzdGVwcyBhcmUgbmVlZGVkIHRvIG1ha2UgaXQgd29yay4KIAotRmlyc3QsIGRvd25sb2Fk IGFuZCBpbnN0YWxsIHRoZSBsYXRlc3QgUGxhdGZvcm0gU0RLIGZyb20KLXd3dy5taWNyb3Nv ZnQuY29tLgorRmlyc3QsIGRvd25sb2FkIGFuZCBpbnN0YWxsIGEgc3VwcG9ydGVkIHZlcnNp b24gb2YgdGhlIE1pY3Jvc29mdCBXaW5kb3dzIFNESworZnJvbSB3d3cubWljcm9zb2Z0LmNv bSAodjYuMCBvciBncmVhdGVyKS4KIAogTG9jYXRlIHRoZSBmaWxlcyB2Y3Byb2plY3Rlbmdp bmUuZGxsLmV4cHJlc3MuY29uZmlnIGFuZAogdmNwcm9qZWN0ZW5naW5lLmRsbC5jb25maWcg aW4gdGhlIHZjXHZjcGFja2FnZXMgZGlyZWN0b3J5IG9mCkBAIC0yNiwzICsyNiw3NyBAQCB0 byBhZGQgdGhlbSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0LgogCiBUaGlzIHNob3Vs ZCB3b3JrIGZvciBib3RoIEdVSSBhbmQgY29tbWFuZGxpbmUgYnVpbGRzLCBidXQgYSByZXN0 YXJ0CiBtYXkgYmUgbmVjZXNzYXJ5LgorCitJZiB5b3UgYXJlIHVzaW5nIGEgcmVjZW50IHZl cnNpb24gb2YgdGhlIE1pY3Jvc29mdCBXaW5kb3dzIFNESyB0aGF0IGluY2x1ZGVzCit0aGUg Y29tcGlsZXJzIGFuZCBidWlsZCB0b29scyB5b3UgcHJvYmFibHkgZG9uJ3QgZXZlbiBuZWVk IFZpc3VhbCBTdHVkaW8KK0V4cHJlc3MgdG8gYnVpbGQgUG9zdGdyZVNRTC4KKworCitTdHJ1 Y3R1cmUgb2YgdGhlIGJ1aWxkIHRvb2xzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CitUaGUgdG9vbHMgZm9yIGJ1aWxkaW5nIFBvc3RncmVTUUwgdXNpbmcgTWljcm9zb2Z0IFZp c3VhbCBTdHVkaW8gY3VycmVudGx5Citjb25zaXN0IG9mIHRoZSBmb2xsb3dpbmcgZmlsZXM6 CisKKy0gQ29uZmlndXJhdGlvbiBmaWxlcyAtCitjb25maWdfZGVmYXVsdC5wbCAgICAgIGRl ZmF1bHQgY29uZmlndXJhdGlvbiBhcmd1bWVudHMKKworQSB0eXBpY2FsIGJ1aWxkIGVudmly b25tZW50IGhhcyB0d28gbW9yZSBmaWxlcywgYnVpbGRlbnYucGwgYW5kIGNvbmZpZy5wbAor dGhhdCBjb250YWluIHRoZSB1c2VyJ3MgYnVpbGQgZW52aXJvbm1lbnQgc2V0dGluZ3MgYW5k IGNvbmZpZ3VyYXRpb24KK2FyZ3VtZW50cy4KKworCistIFVzZXIgdG9vbHMgLQorYnVpbGQu cGwgICAgICAgICAgICAgICB0b29sIHRvIGJ1aWxkIHRoZSBiaW5hcmllcworYnVpbGRkb2Mu cGwgICAgICAgICAgICB0b29sIHRvIGJ1aWxkIHRoZSBkb2NzCitjbGVhbi5iYXQgICAgICAg ICAgICAgIGJhdGNoIGZpbGUgZm9yIGNsZWFuaW5nIHVwIGdlbmVyYXRlZCBmaWxlcworaW5z dGFsbC5wbCAgICAgICAgICAgICB0b29sIHRvIGluc3RhbGwgdGhlIGdlbmVyYXRlZCBmaWxl cworbWt2Y2J1aWxkLnBsICAgICAgICAgICB0b29sIHRvIGdlbmVyYXRlIHRoZSBWaXN1YWwg U3R1ZGlvIGJ1aWxkIGZpbGVzCit2Y3JlZ3Jlc3MucGwgICAgICAgICAgIHRvb2wgdG8gcnVu IHRoZSByZWdyZXNzaW9uIHRlc3RzCisKKworLSBJbnRlcm5hbCB0b29scyAtCitnZW5kZWYu cGwgICAgICAgICAgICAgIGludGVybmFsIHRvb2wgdG8gZ2VuZXJhdGUgLkRFRiBmaWxlcwor cGdiaXNvbi5wbCAgICAgICAgICAgICBpbnRlcm5hbCB0b29sIHRvIHByb2Nlc3MgLnkgZmls ZXMgdXNpbmcgYmlzb24KK3BnZmxleC5wbCAgICAgICAgICAgICAgaW50ZXJuYWwgdG9vbCB0 byBwcm9jZXNzIC5sIGZpbGVzIHVzaW5nIGZsZXgKKworTWFueSBvZiB0aG9zZSAucGwgZmls ZXMgYWxzbyBoYXZlIGEgY29ycmVzcG9uZGluZyAuYmF0LXdyYXBwZXIgdGhhdCBkb2Vzbid0 Citjb250YWluIGFueSBhZGRpdGlvbmFsIGxvZ2ljLgorCisKKy0gSW50ZXJuYWwgbW9kdWxl cyAtCitJbnN0YWxsLnBtICAgICAgICAgICAgIG1vZHVsZSBjb250YWluaW5nIHRoZSBpbnN0 YWxsIGxvZ2ljCitNa3ZjYnVpbGQucG0gICAgICAgICAgIG1vZHVsZSBjb250YWluaW5nIHRo ZSBjb2RlIHRvIGdlbmVyYXRlIHRoZSBWaXN1YWwKKyAgICAgICAgICAgICAgICAgICAgICAg U3R1ZGlvIGJ1aWxkIChwcm9qZWN0L3NvbHV0aW9uKSBmaWxlcworTVNCdWlsZFByb2plY3Qu cG0gICAgICBtb2R1bGUgY29udGFpbmluZyB0aGUgY29kZSB0byBnZW5lcmF0ZSBNU0J1aWxk IGJhc2VkCisgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3QgZmlsZXMgKFZpc3VhbCBT dHVkaW8gMjAxMCBvciBncmVhdGVyKQorUHJvamVjdC5wbSAgICAgICAgICAgICBtb2R1bGUg Y29udGFpbmluZyB0aGUgY29tbW9uIGNvZGUgdG8gZ2VuZXJhdGUgdGhlCisgICAgICAgICAg ICAgICAgICAgICAgIFZpc3VhbCBTdHVkaW8gcHJvamVjdCBmaWxlcy4gQWxzbyBwcm92aWRl cyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uIGludGVyZmFjZSBvZiBhbGwg cHJvamVjdCBmaWxlIGdlbmVyYXRvcnMKK1NvbHV0aW9uLnBtICAgICAgICAgICAgbW9kdWxl IGNvbnRhaW5pbmcgdGhlIGNvZGUgdG8gZ2VuZXJhdGUgdGhlIFZpc3VhbAorICAgICAgICAg ICAgICAgICAgICAgICBTdHVkaW8gc29sdXRpb24gZmlsZXMuCitWQ0J1aWxkUHJvamVjdC5w bSAgICAgIG1vZHVsZSBjb250YWluaW5nIHRoZSBjb2RlIHRvIGdlbmVyYXRlIFZDQnVpbGQg YmFzZWQKKyAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdCBmaWxlcyAoVmlzdWFsIFN0 dWRpbyAyMDA1LzIwMDgpCitWU09iamVjdEZhY3RvcnkucG0gICAgIGZhY3RvcnkgbW9kdWxl IHByb3ZpZGluZyB0aGUgY29kZSB0byBjcmVhdGUgdGhlIAorICAgICAgICAgICAgICAgICAg ICAgICBhcHByb3ByaWF0ZSBwcm9qZWN0L3NvbHV0aW9uIGZpbGVzIGZvciB0aGUgY3VycmVu dAorICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudAorCisKK0Rlc2NyaXB0aW9u IG9mIHRoZSBpbnRlcm5hbHMgb2YgdGhlIFZpc3VhbCBTdHVkaW8gYnVpbGQgcHJvY2Vzcwor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCitCeSB0eXBpbmcgJ2J1aWxkJyB0aGUgdXNlciBzdGFydHMgdGhlIGJ1aWxk LmJhdCB3cmFwcGVyIHdoaWNoIHNpbXBseSBwYXNzZXMKK2l0J3MgYXJndW1lbnRzIHRvIGJ1 aWxkLnBsLgorSW4gYnVpbGQucGwgdGhlIHVzZXIncyBidWlsZGVudi5wbCBpcyB1c2VkIHRv IHNldCB1cCB0aGUgYnVpbGQgZW52aXJvbm1lbnQKKyhpLiBlLiBwYXRoIHRvIGJpc29uIGFu ZCBmbGV4KS4gSW4gYWRkdGlvbiBoaXMgY29uZmlnLnBsIGZpbGUgaXMgbWVyZ2VkIGludG8K K2NvbmZpZ19kZWZhdWx0LnBsIHRvIGNyZWF0ZSB0aGUgY29uZmlndXJhdGlvbiBhcmd1bWVu dHMuCitUaGVzZSBjb25maWd1cmF0aW9uIGFyZ3VtZW50cyBhcmUgcGFzc2VkIG92ZXIgdG8g TWt2Y2J1aWxkOjpta3ZjYnVpbGQKKyhNa3ZjYnVpbGQucG0pIHdoaWNoIGNyZWF0ZXMgdGhl IFZpc3VhbCBTdHVkaW8gcHJvamVjdCBhbmQgc29sdXRpb24gZmlsZXMuCitJdCBkb2VzIHRo aXMgYnkgdXNpbmcgVlNPYmplY3RGYWN0b3J5OjpDcmVhdGVTb2x1dGlvbiB0byBjcmVhdGUg YW4gb2JqZWN0CitpbXBsZW1lbnRpbmcgdGhlIFNvbHV0aW9uIGludGVyZmFjZSAodGhpcyBj b3VsZCBiZSBlaXRoZXIgYSBWUzIwMDVTb2x1dGlvbiwKK2EgVlMyMDA4U29sdXRpb24gb3Ig YSBWUzIwMTBTb2x1dGlvbiwgYWxsIGluIFNvbHV0aW9uLnBtLCBkZXBlbmRpbmcgb24gdGhl Cit1c2VyJ3MgYnVpbGQgZW52aXJvbm1lbnQpIGFuZCBhZGRpbmcgb2JqZWN0cyBpbXBsZW1l bnRpbmcgdGhlIGNvcnJlc3BvbmRpbmcKK1Byb2plY3QgaW50ZXJmYWNlIChWQzIwMDVQcm9q ZWN0IG9yIFZDMjAwOFByb2plY3QgZnJvbSBWQ0J1aWxkUHJvamVjdC5wbSBvcgorVkMyMDEw UHJvamVjdCBmcm9tIE1TQnVpbGRQcm9qZWN0LnBtKSB0byBpdC4KK1doZW4gU29sdXRpb246 OlNhdmUgaXMgY2FsbGVkLCB0aGUgaW1wbGVtZW50YXRpb25zIG9mIFNvbHV0aW9uIGFuZCBQ cm9qZWN0CitzYXZlIHRoZWlyIGNvbnRlbnQgaW4gdGhlIGFwcHJvcHJpYXRlIGZvcm1hdC4K K1RoZSBmaW5hbCBzdGVwIG9mIHN0YXJ0aW5nIHRoZSBhcHByb3ByaWF0ZSBidWlsZCBwcm9n cmFtIChtc2J1aWxkIG9yIHZjYnVpbGQpCitpcyBwZXJmb3JtZWQgaW4gYnVpbGQucGwgYWdh aW4uCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvbXN2Yy9Tb2x1dGlvbi5wbSBiL3NyYy90b29s cy9tc3ZjL1NvbHV0aW9uLnBtCmluZGV4IDM2ZmQ0YjcuLjE3MjVmYmIgMTAwNjQ0Ci0tLSBh L3NyYy90b29scy9tc3ZjL1NvbHV0aW9uLnBtCisrKyBiL3NyYy90b29scy9tc3ZjL1NvbHV0 aW9uLnBtCkBAIC04LDEwICs4LDExIEBAIHBhY2thZ2UgU29sdXRpb247CiB1c2UgQ2FycDsK IHVzZSBzdHJpY3Q7CiB1c2Ugd2FybmluZ3M7Cit1c2UgVlNPYmplY3RGYWN0b3J5OwogCi1z dWIgbmV3CitzdWIgX25ldwogewotICAgIG15ICRqdW5rID0gc2hpZnQ7CisgICAgbXkgJGNs YXNzbmFtZSA9IHNoaWZ0OwogICAgIG15ICRvcHRpb25zID0gc2hpZnQ7CiAgICAgbXkgJHNl bGYgPSB7CiAgICAgICAgIHByb2plY3RzID0+IHt9LApAQCAtMjEsNyArMjIsNyBAQCBzdWIg bmV3CiAgICAgICAgIHZjdmVyICAgID0+IHVuZGVmLAogICAgICAgICBwbGF0Zm9ybSA9PiB1 bmRlZiwKICAgICB9OwotICAgIGJsZXNzICRzZWxmOworICAgIGJsZXNzKCRzZWxmLCAkY2xh c3NuYW1lKTsKIAogICAgICMgaW50ZWdlcl9kYXRldGltZXMgaXMgbm93IHRoZSBkZWZhdWx0 CiAgICAgJG9wdGlvbnMtPntpbnRlZ2VyX2RhdGV0aW1lc30gPSAxCkBAIC01MywyOCArNTQs MTUgQEAgc3ViIG5ldwogICAgIGRpZSAiQmFkIHdhbF9zZWdzaXplICRvcHRpb25zLT57d2Fs X3NlZ3NpemV9IgogICAgICAgdW5sZXNzIGdyZXAgeyRfID09ICRvcHRpb25zLT57d2FsX3Nl Z3NpemV9fSAoMSwyLDQsOCwxNiwzMiw2NCk7CiAKLSAgICAkc2VsZi0+RGV0ZXJtaW5lVG9v bFZlcnNpb25zKCk7CisgICAgJHNlbGYtPkRldGVybWluZVBsYXRmb3JtKCk7CiAKICAgICBy ZXR1cm4gJHNlbGY7CiB9CiAKLXN1YiBEZXRlcm1pbmVUb29sVmVyc2lvbnMKK3N1YiBEZXRl cm1pbmVQbGF0Zm9ybQogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CiAKLSAgICAjIERldGVy bWluZSB2ZXJzaW9uIG9mIHZjYnVpbGQgY29tbWFuZCwgdG8gc2V0IHByb3BlciB2ZXJpc29u IG9mIHZpc3VhbCBzdHVkaW8KLSAgICBvcGVuKFAsInZjYnVpbGQgLz8gfCIpIHx8IGRpZSAi dmNidWlsZCBjb21tYW5kIG5vdCBmb3VuZCI7Ci0gICAgbXkgJGxpbmUgPSA8UD47Ci0gICAg Y2xvc2UoUCk7Ci0gICAgaWYgKCRsaW5lICF+IC9eTWljcm9zb2Z0XHMqXChSXCkgVmlzdWFs IENcK1wrIFteLV0rIC0gXEQrKFxkKylcLjAwXC5cZCsvKQotICAgIHsKLSAgICAgICAgZGll ICJVbmFibGUgdG8gZGV0ZXJtaW5lIHZjYnVpbGQgdmVyc2lvbiBmcm9tIGZpcnN0IGxpbmUg b2Ygb3V0cHV0ISI7Ci0gICAgfQotICAgIGlmICgkMSA9PSA4KSB7ICRzZWxmLT57dmN2ZXJ9 ID0gJzguMDAnIH0KLSAgICBlbHNpZiAoJDEgPT0gOSkgeyAkc2VsZi0+e3ZjdmVyfSA9ICc5 LjAwJyB9Ci0gICAgZWxzZSB7IGRpZSAiVW5zdXBwb3J0ZWQgdmVyc2lvbiBvZiBWaXN1YWwg U3R1ZGlvOiAkMSIgfQotICAgIHByaW50ICJEZXRlY3RlZCBWaXN1YWwgU3R1ZGlvIHZlcnNp b24gJHNlbGYtPnt2Y3Zlcn1cbiI7Ci0KICAgICAjIERldGVybWluZSBpZiB3ZSBhcmUgaW4g MzIgb3IgNjQtYml0IG1vZGUuIERvIHRoaXMgYnkgc2VlaW5nIGlmIENMIGhhcwogICAgICMg NjQtYml0IG9ubHkgcGFyYW1ldGVycy4KICAgICAkc2VsZi0+e3BsYXRmb3JtfSA9ICdXaW4z Mic7CkBAIC00MjgsNyArNDE2LDcgQEAgc3ViIEFkZFByb2plY3QKIHsKICAgICBteSAoJHNl bGYsICRuYW1lLCAkdHlwZSwgJGZvbGRlciwgJGluaXRpYWxkaXIpID0gQF87CiAKLSAgICBt eSAkcHJvaiA9IG5ldyBQcm9qZWN0KCRuYW1lLCAkdHlwZSwgJHNlbGYpOworICAgIG15ICRw cm9qID0gVlNPYmplY3RGYWN0b3J5OjpDcmVhdGVQcm9qZWN0KCRzZWxmLT57dmN2ZXJ9LCAk bmFtZSwgJHR5cGUsICRzZWxmKTsKICAgICBwdXNoIEB7JHNlbGYtPntwcm9qZWN0c30tPnsk Zm9sZGVyfX0sICRwcm9qOwogICAgICRwcm9qLT5BZGREaXIoJGluaXRpYWxkaXIpIGlmICgk aW5pdGlhbGRpcik7CiAgICAgaWYgKCRzZWxmLT57b3B0aW9uc30tPnt6bGlifSkKQEAgLTQ4 OCw4ICs0NzYsOCBAQCBzdWIgU2F2ZQogCiAgICAgb3BlbihTTE4sIj5wZ3NxbC5zbG4iKSB8 fCBjcm9hayAiQ291bGQgbm90IHdyaXRlIHRvIHBnc3FsLnNsblxuIjsKICAgICBwcmludCBT TE4gPDxFT0Y7Ci1NaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3Jt YXQgVmVyc2lvbiA5LjAwCi0jIFZpc3VhbCBTdHVkaW8gMjAwNQorTWljcm9zb2Z0IFZpc3Vh bCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gJHNlbGYtPntzb2x1dGlv bkZpbGVWZXJzaW9ufQorIyAkc2VsZi0+e3Zpc3VhbFN0dWRpb05hbWV9CiBFT0YKIAogICAg IGZvcmVhY2ggbXkgJGZsZCAoa2V5cyAleyRzZWxmLT57cHJvamVjdHN9fSkKQEAgLTQ5Nyw3 ICs0ODUsNyBAQCBFT0YKICAgICAgICAgZm9yZWFjaCBteSAkcHJvaiAoQHskc2VsZi0+e3By b2plY3RzfS0+eyRmbGR9fSkKICAgICAgICAgewogICAgICAgICAgICAgcHJpbnQgU0xOIDw8 RU9GOwotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0i KSA9ICIkcHJvai0+e25hbWV9IiwgIiRwcm9qLT57bmFtZX0udmNwcm9qIiwgIiRwcm9qLT57 Z3VpZH0iCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQy fSIpID0gIiRwcm9qLT57bmFtZX0iLCAiJHByb2otPntuYW1lfSRwcm9qLT57ZmlsZW5hbWVF eHRlbnNpb259IiwgIiRwcm9qLT57Z3VpZH0iCiBFbmRQcm9qZWN0CiBFT0YKICAgICAgICAg fQpAQCAtNTc5LDQgKzU2Nyw3NCBAQCBzdWIgR2V0RmFrZUNvbmZpZ3VyZQogICAgIHJldHVy biAkY2ZnOwogfQogCitwYWNrYWdlIFZTMjAwNVNvbHV0aW9uOworCisjCisjIFBhY2thZ2Ug dGhhdCBlbmNhcHN1bGF0ZXMgYSBWaXN1YWwgU3R1ZGlvIDIwMDUgc29sdXRpb24gZmlsZQor IworCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIGJhc2UgcXcoU29sdXRpb24p OworCitzdWIgbmV3Cit7CisgICAgbXkgJGNsYXNzbmFtZSA9IHNoaWZ0OworICAgIG15ICRz ZWxmID0gJGNsYXNzbmFtZS0+U1VQRVI6Ol9uZXcoQF8pOworICAgIGJsZXNzKCRzZWxmLCAk Y2xhc3NuYW1lKTsKKworICAgICRzZWxmLT57c29sdXRpb25GaWxlVmVyc2lvbn0gPSAnOS4w MCc7CisgICAgJHNlbGYtPnt2Y3Zlcn0gPSAnOC4wMCc7CisgICAgJHNlbGYtPnt2aXN1YWxT dHVkaW9OYW1lfSA9ICdWaXN1YWwgU3R1ZGlvIDIwMDUnOworCisgICAgcmV0dXJuICRzZWxm OworfQorCitwYWNrYWdlIFZTMjAwOFNvbHV0aW9uOworCisjCisjIFBhY2thZ2UgdGhhdCBl bmNhcHN1bGF0ZXMgYSBWaXN1YWwgU3R1ZGlvIDIwMDggc29sdXRpb24gZmlsZQorIworCit1 c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIGJhc2UgcXcoU29sdXRpb24pOworCitz dWIgbmV3Cit7CisgICAgbXkgJGNsYXNzbmFtZSA9IHNoaWZ0OworICAgIG15ICRzZWxmID0g JGNsYXNzbmFtZS0+U1VQRVI6Ol9uZXcoQF8pOworICAgIGJsZXNzKCRzZWxmLCAkY2xhc3Nu YW1lKTsKKworICAgICRzZWxmLT57c29sdXRpb25GaWxlVmVyc2lvbn0gPSAnMTAuMDAnOwor ICAgICRzZWxmLT57dmN2ZXJ9ID0gJzkuMDAnOworICAgICRzZWxmLT57dmlzdWFsU3R1ZGlv TmFtZX0gPSAnVmlzdWFsIFN0dWRpbyAyMDA4JzsKKworICAgIHJldHVybiAkc2VsZjsKK30K KworcGFja2FnZSBWUzIwMTBTb2x1dGlvbjsKKworIworIyBQYWNrYWdlIHRoYXQgZW5jYXBz dWxhdGVzIGEgVmlzdWFsIFN0dWRpbyAyMDEwIHNvbHV0aW9uIGZpbGUKKyMKKwordXNlIENh cnA7Cit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIGJhc2UgcXcoU29sdXRpb24p OworCitzdWIgbmV3Cit7CisgICAgbXkgJGNsYXNzbmFtZSA9IHNoaWZ0OworICAgIG15ICRz ZWxmID0gJGNsYXNzbmFtZS0+U1VQRVI6Ol9uZXcoQF8pOworICAgIGJsZXNzKCRzZWxmLCAk Y2xhc3NuYW1lKTsKKworICAgICRzZWxmLT57c29sdXRpb25GaWxlVmVyc2lvbn0gPSAnMTEu MDAnOworICAgICRzZWxmLT57dmN2ZXJ9ID0gJzEwLjAwJzsKKyAgICAkc2VsZi0+e3Zpc3Vh bFN0dWRpb05hbWV9ID0gJ1Zpc3VhbCBTdHVkaW8gMjAxMCc7CisKKyAgICByZXR1cm4gJHNl bGY7Cit9CisKIDE7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvbXN2Yy9WQ0J1aWxkUHJvamVj dC5wbSBiL3NyYy90b29scy9tc3ZjL1ZDQnVpbGRQcm9qZWN0LnBtCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3NDM5ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dG9vbHMvbXN2Yy9WQ0J1aWxkUHJvamVjdC5wbQpAQCAtMCwwICsxLDI2NyBAQAorcGFja2Fn ZSBWQ0J1aWxkUHJvamVjdDsKKworIworIyBQYWNrYWdlIHRoYXQgZW5jYXBzdWxhdGVzIGEg VkNCdWlsZCAoVmlzdWFsIEMrKyAyMDA1LzIwMDgpIHByb2plY3QgZmlsZQorIworIyBzcmMv dG9vbHMvbXN2Yy9WQ0J1aWxkUHJvamVjdC5wbQorIworCit1c2UgQ2FycDsKK3VzZSBzdHJp Y3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgYmFzZSBxdyhQcm9qZWN0KTsKKworc3ViIF9uZXcK K3sKKyAgICBteSAkY2xhc3NuYW1lID0gc2hpZnQ7CisgICAgbXkgJHNlbGYgPSAkY2xhc3Nu YW1lLT5TVVBFUjo6X25ldyhAXyk7CisgICAgYmxlc3MoJHNlbGYsICRjbGFzc25hbWUpOwor CisgICAgJHNlbGYtPntmaWxlbmFtZUV4dGVuc2lvbn0gPSAnLnZjcHJvaic7CisKKyAgICBy ZXR1cm4gJHNlbGY7Cit9CisKK3N1YiBXcml0ZUhlYWRlcgoreworICAgIG15ICgkc2VsZiwg JGYpID0gQF87CisKKyAgICBwcmludCAkZiA8PEVPRjsKKzw/eG1sIHZlcnNpb249IjEuMCIg ZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/PgorPFZpc3VhbFN0dWRpb1Byb2plY3QgUHJvamVj dFR5cGU9IlZpc3VhbCBDKysiIFZlcnNpb249IiRzZWxmLT57dmN2ZXJ9IiBOYW1lPSIkc2Vs Zi0+e25hbWV9IiBQcm9qZWN0R1VJRD0iJHNlbGYtPntndWlkfSI+CisgPFBsYXRmb3Jtcz48 UGxhdGZvcm0gTmFtZT0iJHNlbGYtPntwbGF0Zm9ybX0iLz48L1BsYXRmb3Jtcz4KKyA8Q29u ZmlndXJhdGlvbnM+CitFT0YKKyAgICAkc2VsZi0+V3JpdGVDb25maWd1cmF0aW9uKCRmLCAn RGVidWcnLAorICAgICAgICB7IGRlZnM9PidfREVCVUc7REVCVUc9MTsnLCB3aG9sZW9wdD0+ MCwgb3B0PT4wLCBzdHJwb29sPT4nZmFsc2UnLCBydW50aW1lPT4zIH0pOworICAgICRzZWxm LT5Xcml0ZUNvbmZpZ3VyYXRpb24oJGYsICdSZWxlYXNlJywKKyAgICAgICAgeyBkZWZzPT4n Jywgd2hvbGVvcHQ9PjAsIG9wdD0+Mywgc3RycG9vbD0+J3RydWUnLCBydW50aW1lPT4yIH0p OworICAgIHByaW50ICRmIDw8RU9GOworIDwvQ29uZmlndXJhdGlvbnM+CitFT0YKKyAgICAk c2VsZi0+V3JpdGVSZWZlcmVuY2VzKCRmKTsKK30KKworc3ViIFdyaXRlRmlsZXMKK3sKKyAg ICBteSAoJHNlbGYsICRmKSA9IEBfOworICAgIHByaW50ICRmIDw8RU9GOworIDxGaWxlcz4K K0VPRgorICAgIG15IEBkaXJzdGFjayA9ICgpOworICAgIG15ICV1bmlxdWVmaWxlczsKKyAg ICBmb3JlYWNoIG15ICRmaWxlTmFtZVdpdGhQYXRoIChzb3J0IGtleXMgJXsgJHNlbGYtPntm aWxlc30gfSkKKyAgICB7CisgICAgICAgIGNvbmZlc3MgIkJhZCBmb3JtYXQgZmlsZW5hbWUg JyRmaWxlTmFtZVdpdGhQYXRoJ1xuIgorICAgICAgICAgIHVubGVzcyAoJGZpbGVOYW1lV2l0 aFBhdGggPX4gL14oLiopXFwoW15cXF0rKVwuW3JdP1tjeWxdJC8pOworICAgICAgICBteSAk ZGlyID0gJDE7CisgICAgICAgIG15ICRmaWxlID0gJDI7CisKKyAgICAgICAgIyBXYWxrIGJh Y2t3YXJkcyBkb3duIHRoZSBkaXJlY3Rvcnkgc3RhY2sgYW5kIGNsb3NlIGFueSBkaXJzIHdl J3JlIGRvbmUgd2l0aAorICAgICAgICB3aGlsZSAoJCNkaXJzdGFjayA+PSAwKQorICAgICAg ICB7CisgICAgICAgICAgICBpZiAoam9pbignXFwnLEBkaXJzdGFjaykgZXEgc3Vic3RyKCRk aXIsIDAsIGxlbmd0aChqb2luKCdcXCcsQGRpcnN0YWNrKSkpKQorICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgIGxhc3QgaWYgKGxlbmd0aCgkZGlyKSA9PSBsZW5ndGgoam9pbign XFwnLEBkaXJzdGFjaykpKTsKKyAgICAgICAgICAgICAgICBsYXN0IGlmIChzdWJzdHIoJGRp ciwgbGVuZ3RoKGpvaW4oJ1xcJyxAZGlyc3RhY2spKSwxKSBlcSAnXFwnKTsKKyAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIHByaW50ICRmICcgJyB4ICQjZGlyc3RhY2sgLiAiICA8L0Zp bHRlcj5cbiI7CisgICAgICAgICAgICBwb3AgQGRpcnN0YWNrOworICAgICAgICB9CisKKyAg ICAgICAgIyBOb3cgd2FsayBmb3J3YXJkcyBhbmQgY3JlYXRlIHdoYXRldmVyIGRpcmVjdG9y aWVzIGFyZSBuZWVkZWQKKyAgICAgICAgd2hpbGUgKGpvaW4oJ1xcJyxAZGlyc3RhY2spIG5l ICRkaXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIG15ICRsZWZ0ID0gc3Vic3RyKCRkaXIs IGxlbmd0aChqb2luKCdcXCcsQGRpcnN0YWNrKSkpOworICAgICAgICAgICAgJGxlZnQgPX4g cy9eXFwvLzsKKyAgICAgICAgICAgIG15IEBwaWVjZXMgPSBzcGxpdCAvXFwvLCAkbGVmdDsK KyAgICAgICAgICAgIHB1c2ggQGRpcnN0YWNrLCAkcGllY2VzWzBdOworICAgICAgICAgICAg cHJpbnQgJGYgJyAnIHggJCNkaXJzdGFjayAuICIgIDxGaWx0ZXIgTmFtZT1cIiRwaWVjZXNb MF1cIiBGaWx0ZXI9XCJcIj5cbiI7CisgICAgICAgIH0KKworICAgICAgICBwcmludCAkZiAn ICcgeCAkI2RpcnN0YWNrIC4gIiAgIDxGaWxlIFJlbGF0aXZlUGF0aD1cIiRmaWxlTmFtZVdp dGhQYXRoXCIiOworICAgICAgICBpZiAoJGZpbGVOYW1lV2l0aFBhdGggPX4gL1wueSQvKQor ICAgICAgICB7CisgICAgICAgICAgICBteSAkb2YgPSAkZmlsZU5hbWVXaXRoUGF0aDsKKyAg ICAgICAgICAgICRvZiA9fiBzL1wueSQvLmMvOworICAgICAgICAgICAgJG9mID1+IHN7XnNy Y1xccGxcXHBscGdzcWxcXHNyY1xcZ3JhbS5jJH17c3JjXFxwbFxccGxwZ3NxbFxcc3JjXFxw bF9ncmFtLmN9OworICAgICAgICAgICAgcHJpbnQgJGYgJz4nCisgICAgICAgICAgICAgIC4g JHNlbGYtPkdlbmVyYXRlQ3VzdG9tVG9vbCgnUnVubmluZyBiaXNvbiBvbiAnIC4gJGZpbGVO YW1lV2l0aFBhdGgsCisgICAgICAgICAgICAgICAgInBlcmwgc3JjXFx0b29sc1xcbXN2Y1xc cGdiaXNvbi5wbCAkZmlsZU5hbWVXaXRoUGF0aCIsICRvZikKKyAgICAgICAgICAgICAgLiAn PC9GaWxlPicgLiAiXG4iOworICAgICAgICB9CisgICAgICAgIGVsc2lmICgkZmlsZU5hbWVX aXRoUGF0aCA9fiAvXC5sJC8pCisgICAgICAgIHsKKyAgICAgICAgICAgIG15ICRvZiA9ICRm aWxlTmFtZVdpdGhQYXRoOworICAgICAgICAgICAgJG9mID1+IHMvXC5sJC8uYy87CisgICAg ICAgICAgICBwcmludCAkZiAnPicKKyAgICAgICAgICAgICAgLiAkc2VsZi0+R2VuZXJhdGVD dXN0b21Ub29sKCdSdW5uaW5nIGZsZXggb24gJyAuICRmaWxlTmFtZVdpdGhQYXRoLAorICAg ICAgICAgICAgICAgICJwZXJsIHNyY1xcdG9vbHNcXG1zdmNcXHBnZmxleC5wbCAkZmlsZU5h bWVXaXRoUGF0aCIsICRvZikKKyAgICAgICAgICAgICAgLiAnPC9GaWxlPicgLiAiXG4iOwor ICAgICAgICB9CisgICAgICAgIGVsc2lmIChkZWZpbmVkKCR1bmlxdWVmaWxlc3skZmlsZX0p KQorICAgICAgICB7CisKKyAgICAgICAgICAgICMgRmlsZSBhbHJlYWR5IGV4aXN0cywgc28g ZmFrZSBhIG5ldyBuYW1lCisgICAgICAgICAgICBteSAkb2JqID0gJGRpcjsKKyAgICAgICAg ICAgICRvYmogPX4gcy9cXC9fL2c7CisgICAgICAgICAgICBwcmludCAkZgorIj48RmlsZUNv bmZpZ3VyYXRpb24gTmFtZT1cIkRlYnVnfCRzZWxmLT57cGxhdGZvcm19XCI+PFRvb2wgTmFt ZT1cIlZDQ0xDb21waWxlclRvb2xcIiBPYmplY3RGaWxlPVwiLlxcZGVidWdcXCRzZWxmLT57 bmFtZX1cXCRvYmoiCisgICAgICAgICAgICAgIC4gIl8kZmlsZS5vYmpcIiAvPjwvRmlsZUNv bmZpZ3VyYXRpb24+PEZpbGVDb25maWd1cmF0aW9uIE5hbWU9XCJSZWxlYXNlfCRzZWxmLT57 cGxhdGZvcm19XCI+PFRvb2wgTmFtZT1cIlZDQ0xDb21waWxlclRvb2xcIiBPYmplY3RGaWxl PVwiLlxccmVsZWFzZVxcJHNlbGYtPntuYW1lfVxcJG9iaiIKKyAgICAgICAgICAgICAgLiAi XyRmaWxlLm9ialwiIC8+PC9GaWxlQ29uZmlndXJhdGlvbj48L0ZpbGU+XG4iOworICAgICAg ICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgJHVuaXF1ZWZpbGVz eyRmaWxlfSA9IDE7CisgICAgICAgICAgICBwcmludCAkZiAiIC8+XG4iOworICAgICAgICB9 CisgICAgfQorICAgIHdoaWxlICgkI2RpcnN0YWNrID49IDApCisgICAgeworICAgICAgICBw cmludCAkZiAnICcgeCAkI2RpcnN0YWNrIC4gIiAgPC9GaWx0ZXI+XG4iOworICAgICAgICBw b3AgQGRpcnN0YWNrOworICAgIH0KKyAgICBwcmludCAkZiA8PEVPRjsKKyA8L0ZpbGVzPgor RU9GCit9CisKK3N1YiBGb290ZXIKK3sKKyAgICBteSAoJHNlbGYsICRmKSA9IEBfOworCisg ICAgcHJpbnQgJGYgPDxFT0Y7CisgPEdsb2JhbHMvPgorPC9WaXN1YWxTdHVkaW9Qcm9qZWN0 PgorRU9GCit9CisKK3N1YiBXcml0ZUNvbmZpZ3VyYXRpb24KK3sKKyAgICBteSAoJHNlbGYs ICRmLCAkY2ZnbmFtZSwgJHApID0gQF87CisgICAgbXkgJGNmZ3R5cGUgPSAoJHNlbGYtPnt0 eXBlfSBlcSAiZXhlIik/MTooJHNlbGYtPnt0eXBlfSBlcSAiZGxsIj8yOjQpOworICAgIG15 ICRsaWJzID0gJHNlbGYtPkdldEFkZGl0aW9uYWxMaW5rZXJEZXBlbmRlbmNpZXMoJGNmZ25h bWUsICcgJyk7CisKKyAgICBteSAkdGFyZ2V0bWFjaGluZSA9ICRzZWxmLT57cGxhdGZvcm19 IGVxICdXaW4zMicgPyAxIDogMTc7CisKKyAgICBwcmludCAkZiA8PEVPRjsKKyAgPENvbmZp Z3VyYXRpb24gTmFtZT0iJGNmZ25hbWV8JHNlbGYtPntwbGF0Zm9ybX0iIE91dHB1dERpcmVj dG9yeT0iLlxcJGNmZ25hbWVcXCRzZWxmLT57bmFtZX0iIEludGVybWVkaWF0ZURpcmVjdG9y eT0iLlxcJGNmZ25hbWVcXCRzZWxmLT57bmFtZX0iCisJQ29uZmlndXJhdGlvblR5cGU9IiRj Zmd0eXBlIiBVc2VPZk1GQz0iMCIgQVRMTWluaW1pemVzQ1J1blRpbWVMaWJyYXJ5VXNhZ2U9 IkZBTFNFIiBDaGFyYWN0ZXJTZXQ9IjIiIFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iJHAt Pnt3aG9sZW9wdH0iPgorCTxUb29sIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiIE9wdGltaXph dGlvbj0iJHAtPntvcHR9IgorCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkc2Vs Zi0+e3ByZWZpeGluY2x1ZGVzfXNyYy9pbmNsdWRlO3NyYy9pbmNsdWRlL3BvcnQvd2luMzI7 c3JjL2luY2x1ZGUvcG9ydC93aW4zMl9tc3ZjOyRzZWxmLT57aW5jbHVkZXN9IgorCQlQcmVw cm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7X1dJTkRPV1M7X19XSU5ET1dTX187X19XSU4z Ml9fO0VYRUNfQkFDS0VORDtXSU4zMl9TVEFDS19STElNSVQ9NDE5NDMwNDtfQ1JUX1NFQ1VS RV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURSRzZWxmLT57ZGVmaW5l c30kcC0+e2RlZnN9IgorCQlTdHJpbmdQb29saW5nPSIkcC0+e3N0cnBvb2x9IgorCQlSdW50 aW1lTGlicmFyeT0iJHAtPntydW50aW1lfSIgRGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IiRz ZWxmLT57ZGlzYWJsZXdhcm5pbmdzfSIKKwkJQWRkaXRpb25hbE9wdGlvbnM9Ii9NUCIKK0VP RgorICAgIHByaW50ICRmIDw8RU9GOworCQlBc3NlbWJsZXJPdXRwdXQ9IjAiIEFzc2VtYmxl ckxpc3RpbmdMb2NhdGlvbj0iLlxcJGNmZ25hbWVcXCRzZWxmLT57bmFtZX1cXCIgT2JqZWN0 RmlsZT0iLlxcJGNmZ25hbWVcXCRzZWxmLT57bmFtZX1cXCIKKwkJUHJvZ3JhbURhdGFCYXNl RmlsZU5hbWU9Ii5cXCRjZmduYW1lXFwkc2VsZi0+e25hbWV9XFwiIEJyb3dzZUluZm9ybWF0 aW9uPSIwIgorCQlXYXJuaW5nTGV2ZWw9IjMiIFN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJV RSIgRGVidWdJbmZvcm1hdGlvbkZvcm1hdD0iMyIgQ29tcGlsZUFzPSIwIi8+CisJPFRvb2wg TmFtZT0iVkNMaW5rZXJUb29sIiBPdXRwdXRGaWxlPSIuXFwkY2ZnbmFtZVxcJHNlbGYtPntu YW1lfVxcJHNlbGYtPntuYW1lfS4kc2VsZi0+e3R5cGV9IgorCQlBZGRpdGlvbmFsRGVwZW5k ZW5jaWVzPSIkbGlicyIKKwkJTGlua0luY3JlbWVudGFsPSIwIiBTdXBwcmVzc1N0YXJ0dXBC YW5uZXI9IlRSVUUiIEFkZGl0aW9uYWxMaWJyYXJ5RGlyZWN0b3JpZXM9IiIgSWdub3JlRGVm YXVsdExpYnJhcnlOYW1lcz0ibGliYyIKKwkJU3RhY2tSZXNlcnZlU2l6ZT0iNDE5NDMwNCIg RGlzYWJsZVNwZWNpZmljV2FybmluZ3M9IiRzZWxmLT57ZGlzYWJsZXdhcm5pbmdzfSIKKwkJ R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIiBQcm9ncmFtRGF0YWJhc2VGaWxlPSIu XFwkY2ZnbmFtZVxcJHNlbGYtPntuYW1lfVxcJHNlbGYtPntuYW1lfS5wZGIiCisJCUdlbmVy YXRlTWFwRmlsZT0iRkFMU0UiIE1hcEZpbGVOYW1lPSIuXFwkY2ZnbmFtZVxcJHNlbGYtPntu YW1lfVxcJHNlbGYtPntuYW1lfS5tYXAiCisJCVN1YlN5c3RlbT0iMSIgVGFyZ2V0TWFjaGlu ZT0iJHRhcmdldG1hY2hpbmUiCitFT0YKKyAgICBpZiAoJHNlbGYtPntkaXNhYmxlbGlua2Vy d2FybmluZ3N9KQorICAgIHsKKyAgICAgICAgcHJpbnQgJGYgIlx0XHRBZGRpdGlvbmFsT3B0 aW9ucz1cIi9pZ25vcmU6JHNlbGYtPntkaXNhYmxlbGlua2Vyd2FybmluZ3N9XCJcbiI7Cisg ICAgfQorICAgIGlmICgkc2VsZi0+e2ltcGxpYn0pCisgICAgeworICAgICAgICBteSAkbCA9 ICRzZWxmLT57aW1wbGlifTsKKyAgICAgICAgJGwgPX4gcy9fX0NGR05BTUVfXy8kY2ZnbmFt ZS9nOworICAgICAgICBwcmludCAkZiAiXHRcdEltcG9ydExpYnJhcnk9XCIkbFwiXG4iOwor ICAgIH0KKyAgICBpZiAoJHNlbGYtPntkZWZ9KQorICAgIHsKKyAgICAgICAgbXkgJGQgPSAk c2VsZi0+e2RlZn07CisgICAgICAgICRkID1+IHMvX19DRkdOQU1FX18vJGNmZ25hbWUvZzsK KyAgICAgICAgcHJpbnQgJGYgIlx0XHRNb2R1bGVEZWZpbml0aW9uRmlsZT1cIiRkXCJcbiI7 CisgICAgfQorCisgICAgcHJpbnQgJGYgIlx0Lz5cbiI7CisgICAgcHJpbnQgJGYKKyJcdDxU b29sIE5hbWU9XCJWQ0xpYnJhcmlhblRvb2xcIiBPdXRwdXRGaWxlPVwiLlxcJGNmZ25hbWVc XCRzZWxmLT57bmFtZX1cXCRzZWxmLT57bmFtZX0ubGliXCIgSWdub3JlRGVmYXVsdExpYnJh cnlOYW1lcz1cImxpYmNcIiAvPlxuIjsKKyAgICBwcmludCAkZgorICAgICAgIlx0PFRvb2wg TmFtZT1cIlZDUmVzb3VyY2VDb21waWxlclRvb2xcIiBBZGRpdGlvbmFsSW5jbHVkZURpcmVj dG9yaWVzPVwic3JjXFxpbmNsdWRlXCIgLz5cbiI7CisgICAgaWYgKCRzZWxmLT57YnVpbGRk ZWZ9KQorICAgIHsKKyAgICAgICAgcHJpbnQgJGYKKyJcdDxUb29sIE5hbWU9XCJWQ1ByZUxp bmtFdmVudFRvb2xcIiBEZXNjcmlwdGlvbj1cIkdlbmVyYXRlIERFRiBmaWxlXCIgQ29tbWFu ZExpbmU9XCJwZXJsIHNyY1xcdG9vbHNcXG1zdmNcXGdlbmRlZi5wbCAkY2ZnbmFtZVxcJHNl bGYtPntuYW1lfSAkc2VsZi0+e3BsYXRmb3JtfVwiIC8+XG4iOworICAgIH0KKyAgICBwcmlu dCAkZiA8PEVPRjsKKyAgPC9Db25maWd1cmF0aW9uPgorRU9GCit9CisKK3N1YiBXcml0ZVJl ZmVyZW5jZXMKK3sKKyAgICBteSAoJHNlbGYsICRmKSA9IEBfOworICAgIHByaW50ICRmICIg PFJlZmVyZW5jZXM+XG4iOworICAgIGZvcmVhY2ggbXkgJHJlZiAoQHskc2VsZi0+e3JlZmVy ZW5jZXN9fSkKKyAgICB7CisgICAgICAgIHByaW50ICRmCisiICA8UHJvamVjdFJlZmVyZW5j ZSBSZWZlcmVuY2VkUHJvamVjdElkZW50aWZpZXI9XCIkcmVmLT57Z3VpZH1cIiBOYW1lPVwi JHJlZi0+e25hbWV9XCIgLz5cbiI7CisgICAgfQorICAgIHByaW50ICRmICIgPC9SZWZlcmVu Y2VzPlxuIjsKK30KKworc3ViIEdlbmVyYXRlQ3VzdG9tVG9vbAoreworICAgIG15ICgkc2Vs ZiwgJGRlc2MsICR0b29sLCAkb3V0cHV0LCAkY2ZnKSA9IEBfOworICAgIGlmICghZGVmaW5l ZCgkY2ZnKSkKKyAgICB7CisgICAgICAgIHJldHVybiAkc2VsZi0+R2VuZXJhdGVDdXN0b21U b29sKCRkZXNjLCAkdG9vbCwgJG91dHB1dCwgJ0RlYnVnJykKKyAgICAgICAgICAuJHNlbGYt PkdlbmVyYXRlQ3VzdG9tVG9vbCgkZGVzYywgJHRvb2wsICRvdXRwdXQsICdSZWxlYXNlJyk7 CisgICAgfQorICAgIHJldHVybgorIjxGaWxlQ29uZmlndXJhdGlvbiBOYW1lPVwiJGNmZ3wk c2VsZi0+e3BsYXRmb3JtfVwiPjxUb29sIE5hbWU9XCJWQ0N1c3RvbUJ1aWxkVG9vbFwiIERl c2NyaXB0aW9uPVwiJGRlc2NcIiBDb21tYW5kTGluZT1cIiR0b29sXCIgQWRkaXRpb25hbERl cGVuZGVuY2llcz1cIlwiIE91dHB1dHM9XCIkb3V0cHV0XCIgLz48L0ZpbGVDb25maWd1cmF0 aW9uPiI7Cit9CisKK3BhY2thZ2UgVkMyMDA1UHJvamVjdDsKKworIworIyBQYWNrYWdlIHRo YXQgZW5jYXBzdWxhdGVzIGEgVmlzdWFsIEMrKyAyMDA1IHByb2plY3QgZmlsZQorIworCit1 c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIGJhc2UgcXcoVkNCdWlsZFByb2plY3Qp OworCitzdWIgbmV3Cit7CisgICAgbXkgJGNsYXNzbmFtZSA9IHNoaWZ0OworICAgIG15ICRz ZWxmID0gJGNsYXNzbmFtZS0+U1VQRVI6Ol9uZXcoQF8pOworICAgIGJsZXNzKCRzZWxmLCAk Y2xhc3NuYW1lKTsKKworICAgICRzZWxmLT57dmN2ZXJ9ID0gJzguMDAnOworCisgICAgcmV0 dXJuICRzZWxmOworfQorCitwYWNrYWdlIFZDMjAwOFByb2plY3Q7CisKKyMKKyMgUGFja2Fn ZSB0aGF0IGVuY2Fwc3VsYXRlcyBhIFZpc3VhbCBDKysgMjAwOCBwcm9qZWN0IGZpbGUKKyMK KwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBiYXNlIHF3KFZDQnVpbGRQcm9q ZWN0KTsKKworc3ViIG5ldworeworICAgIG15ICRjbGFzc25hbWUgPSBzaGlmdDsKKyAgICBt eSAkc2VsZiA9ICRjbGFzc25hbWUtPlNVUEVSOjpfbmV3KEBfKTsKKyAgICBibGVzcygkc2Vs ZiwgJGNsYXNzbmFtZSk7CisKKyAgICAkc2VsZi0+e3ZjdmVyfSA9ICc5LjAwJzsKKworICAg IHJldHVybiAkc2VsZjsKK30KKworMTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9tc3ZjL1ZT T2JqZWN0RmFjdG9yeS5wbSBiL3NyYy90b29scy9tc3ZjL1ZTT2JqZWN0RmFjdG9yeS5wbQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGRiMWY2Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rvb2xzL21zdmMvVlNPYmplY3RGYWN0b3J5LnBtCkBAIC0wLDAgKzEs MTIyIEBACitwYWNrYWdlIFZTT2JqZWN0RmFjdG9yeTsKKworIworIyBQYWNrYWdlIHRoYXQg Y3JlYXRlcyBWaXN1YWwgU3R1ZGlvIHdyYXBwZXIgb2JqZWN0cyBmb3IgbXN2YyBidWlsZAor IworIyBzcmMvdG9vbHMvbXN2Yy9WU09iamVjdEZhY3RvcnkucG0KKyMKKwordXNlIENhcnA7 Cit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCit1c2UgRXhwb3J0ZXI7Cit1c2UgUHJv amVjdDsKK3VzZSBTb2x1dGlvbjsKK3VzZSBWQ0J1aWxkUHJvamVjdDsKK3VzZSBNU0J1aWxk UHJvamVjdDsKKworb3VyIChASVNBLCBARVhQT1JUKTsKK0BJU0EgPSBxdyhFeHBvcnRlcik7 CitARVhQT1JUID0gcXcoQ3JlYXRlU29sdXRpb24gQ3JlYXRlUHJvamVjdCBEZXRlcm1pbmVW aXN1YWxTdHVkaW9WZXJzaW9uKTsKKworc3ViIENyZWF0ZVNvbHV0aW9uCit7CisgICAgbXkg JHZpc3VhbFN0dWRpb1ZlcnNpb24gPSBzaGlmdDsKKworICAgIGlmICghZGVmaW5lZCgkdmlz dWFsU3R1ZGlvVmVyc2lvbikpCisgICAgeworICAgICAgICAkdmlzdWFsU3R1ZGlvVmVyc2lv biA9IERldGVybWluZVZpc3VhbFN0dWRpb1ZlcnNpb24oKTsKKyAgICB9CisKKyAgICBpZiAo JHZpc3VhbFN0dWRpb1ZlcnNpb24gZXEgJzguMDAnKQorICAgIHsKKyAgICAgICAgcmV0dXJu IG5ldyBWUzIwMDVTb2x1dGlvbihAXyk7CisgICAgfQorICAgIGVsc2lmICgkdmlzdWFsU3R1 ZGlvVmVyc2lvbiBlcSAnOS4wMCcpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFZTMjAw OFNvbHV0aW9uKEBfKTsKKyAgICB9CisgICAgZWxzaWYgKCR2aXN1YWxTdHVkaW9WZXJzaW9u IGVxICcxMC4wMCcpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFZTMjAxMFNvbHV0aW9u KEBfKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgY3JvYWsgIlRoZSByZXF1 ZXN0ZWQgVmlzdWFsIFN0dWRpbyB2ZXJzaW9uIGlzIG5vdCBzdXBwb3J0ZWQuIjsKKyAgICB9 Cit9CisKK3N1YiBDcmVhdGVQcm9qZWN0Cit7CisgICAgbXkgJHZpc3VhbFN0dWRpb1ZlcnNp b24gPSBzaGlmdDsKKworICAgIGlmICghZGVmaW5lZCgkdmlzdWFsU3R1ZGlvVmVyc2lvbikp CisgICAgeworICAgICAgICAkdmlzdWFsU3R1ZGlvVmVyc2lvbiA9IERldGVybWluZVZpc3Vh bFN0dWRpb1ZlcnNpb24oKTsKKyAgICB9CisKKyAgICBpZiAoJHZpc3VhbFN0dWRpb1ZlcnNp b24gZXEgJzguMDAnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBWQzIwMDVQcm9qZWN0 KEBfKTsKKyAgICB9CisgICAgZWxzaWYgKCR2aXN1YWxTdHVkaW9WZXJzaW9uIGVxICc5LjAw JykKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgVkMyMDA4UHJvamVjdChAXyk7CisgICAg fQorICAgIGVsc2lmICgkdmlzdWFsU3R1ZGlvVmVyc2lvbiBlcSAnMTAuMDAnKQorICAgIHsK KyAgICAgICAgcmV0dXJuIG5ldyBWQzIwMTBQcm9qZWN0KEBfKTsKKyAgICB9CisgICAgZWxz ZQorICAgIHsKKyAgICAgICAgY3JvYWsgIlRoZSByZXF1ZXN0ZWQgVmlzdWFsIFN0dWRpbyB2 ZXJzaW9uIGlzIG5vdCBzdXBwb3J0ZWQuIjsKKyAgICB9Cit9CisKK3N1YiBEZXRlcm1pbmVW aXN1YWxTdHVkaW9WZXJzaW9uCit7CisgICAgbXkgJG5tYWtlVmVyc2lvbiA9IHNoaWZ0Owor CisgICAgaWYgKCFkZWZpbmVkKCRubWFrZVZlcnNpb24pKQorICAgIHsKKworICAgICAgICAj IERldGVybWluZSB2ZXJzaW9uIG9mIG5tYWtlIGNvbW1hbmQsIHRvIHNldCBwcm9wZXIgdmVy aXNvbiBvZiB2aXN1YWwgc3R1ZGlvCisgICAgICAgICMgd2UgdXNlIG5tYWtlIGFzIGl0IGhh cyBleGlzdGVkIGZvciBhIGxvbmcgdGltZSBhbmQgc3RpbGwgZXhpc3RzIGluIHZpc3VhbCBz dHVkaW8gMjAxMAorICAgICAgICBvcGVuKFAsIm5tYWtlIC8/IDI+JjEgfCIpCisgICAgICAg ICAgfHwgY3JvYWsgIlVuYWJsZSB0byBkZXRlcm1pbmUgVmlzdWFsIFN0dWRpbyB2ZXJzaW9u OiBUaGUgbm1ha2UgY29tbWFuZCB3YXNuJ3QgZm91bmQuIjsKKyAgICAgICAgd2hpbGUoPFA+ KQorICAgICAgICB7CisgICAgICAgICAgICBjaG9tcDsKKyAgICAgICAgICAgIGlmICgvKFxk KylcLihcZCspXC5cZCsoXC5cZCspPyQvKQorICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgIHJldHVybiBfR2V0VmlzdWFsU3R1ZGlvVmVyc2lvbigkMSwgJDIpOworICAgICAgICAg ICAgfQorICAgICAgICB9CisgICAgICAgIGNsb3NlKFApOworICAgIH0KKyAgICBlbHNpZigk bm1ha2VWZXJzaW9uID1+IC8oXGQrKVwuKFxkKylcLlxkKyhcLlxkKyk/JC8pCisgICAgewor ICAgICAgICByZXR1cm4gX0dldFZpc3VhbFN0dWRpb1ZlcnNpb24oJDEsICQyKTsKKyAgICB9 CisgICAgY3JvYWsgIlVuYWJsZSB0byBkZXRlcm1pbmUgVmlzdWFsIFN0dWRpbyB2ZXJzaW9u OiBUaGUgbm1ha2UgdmVyc2lvbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZC4iOworfQorCitz dWIgX0dldFZpc3VhbFN0dWRpb1ZlcnNpb24KK3sKKyAgICBteSgkbWFqb3IsICRtaW5vcikg PSBAXzsKKyAgICBpZiAoJG1ham9yID4gMTApCisgICAgeworICAgICAgICBjYXJwCisiVGhl IGRldGVybWluZWQgdmVyc2lvbiBvZiBWaXN1YWwgU3R1ZGlvIGlzIG5ld2VyIHRoYW4gdGhl IGxhdGVzdCBzdXBwb3J0ZWQgdmVyc2lvbi4gUmV0dXJuaW5nIHRoZSBsYXRlc3Qgc3VwcG9y dGVkIHZlcnNpb24gaW5zdGVhZC4iOworICAgICAgICByZXR1cm4gJzEwLjAwJzsKKyAgICB9 CisgICAgZWxzaWYgKCRtYWpvciA8IDYpCisgICAgeworICAgICAgICBjcm9haworIlVuYWJs ZSB0byBkZXRlcm1pbmUgVmlzdWFsIFN0dWRpbyB2ZXJzaW9uOiBWaXN1YWwgU3R1ZGlvIHZl cnNpb25zIGJlZm9yZSA2LjAgYXJlbid0IHN1cHBvcnRlZC4iOworICAgIH0KKyAgICByZXR1 cm4gIiRtYWpvci4kbWlub3IiOworfQorCisxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL21z dmMvYnVpbGQucGwgYi9zcmMvdG9vbHMvbXN2Yy9idWlsZC5wbAppbmRleCA2NmI1YzRjLi4x NTE4NDliIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvbXN2Yy9idWlsZC5wbAorKysgYi9zcmMv dG9vbHMvbXN2Yy9idWlsZC5wbApAQCAtMzMsNyArMzMsNyBAQCBvdXIgJGNvbmZpZzsKIHJl cXVpcmUgImNvbmZpZ19kZWZhdWx0LnBsIjsKIHJlcXVpcmUgImNvbmZpZy5wbCIgaWYgKC1m ICJzcmMvdG9vbHMvbXN2Yy9jb25maWcucGwiKTsKIAotTWt2Y2J1aWxkOjpta3ZjYnVpbGQo JGNvbmZpZyk7CitteSAkdmN2ZXIgPSBNa3ZjYnVpbGQ6Om1rdmNidWlsZCgkY29uZmlnKTsK IAogIyBjaGVjayB3aGF0IHNvcnQgb2YgYnVpbGQgd2UgYXJlIGRvaW5nCiAKQEAgLTUwLDcg KzUwLDExIEBAIGVsc2lmICgkQVJHVlswXSBuZSAiUkVMRUFTRSIpCiAKICMgLi4uIGFuZCBk byBpdAogCi1pZiAoJGJ1aWxkd2hhdCkKK2lmICgkYnVpbGR3aGF0IGFuZCAkdmN2ZXIgZXEg JzEwLjAwJykKK3sKKyAgICBzeXN0ZW0oIm1zYnVpbGQgJGJ1aWxkd2hhdC52Y3hwcm9qIC92 ZXJib3NpdHk6ZGV0YWlsZWQgL3A6Q29uZmlndXJhdGlvbj0kYmNvbmYiKTsKK30KK2Vsc2lm ICgkYnVpbGR3aGF0KQogewogICAgIHN5c3RlbSgidmNidWlsZCAkYnVpbGR3aGF0LnZjcHJv aiAkYmNvbmYiKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy90b29scy9tc3ZjL2J1aWxkZG9jLnBs IGIvc3JjL3Rvb2xzL21zdmMvYnVpbGRkb2MucGwKaW5kZXggNjUzMWU5OC4uOGQ4ZDhhMyAx MDA2NDQKLS0tIGEvc3JjL3Rvb2xzL21zdmMvYnVpbGRkb2MucGwKKysrIGIvc3JjL3Rvb2xz L21zdmMvYnVpbGRkb2MucGwKQEAgLTY5LDggKzY5LDggQEAgJGNtZCA9CiAgIC4ifCBmaW5k c3RyIC9WIFwiRFREREVDTCBjYXRhbG9nIGVudHJpZXMgYXJlIG5vdCBzdXBwb3J0ZWRcIiAi Owogc3lzdGVtKCRjbWQpOyAjIGRpZSAib3BlbmphZGUiIGlmICQ/OwogcHJpbnQgIlJ1bm5p bmcgY29sbGF0ZWluZGV4Li4uXG4iOwotJGNtZCA9InBlcmwgXCIkZG9jcm9vdC8kZHNzc2wv YmluL2NvbGxhdGVpbmRleC5wbFwiIC1mIC1nIC1pIGJvb2tpbmRleCAiCi0gIC4iLW8gYm9v a2luZGV4LnNnbWwgSFRNTC5pbmRleCI7CiskY21kID0KKyAgInBlcmwgXCIkZG9jcm9vdC8k ZHNzc2wvYmluL2NvbGxhdGVpbmRleC5wbFwiIC1mIC1nIC1pIGJvb2tpbmRleCAiLiItbyBi b29raW5kZXguc2dtbCBIVE1MLmluZGV4IjsKIHN5c3RlbSgkY21kKTsKIGRpZSAiY29sbGF0 ZWluZGV4IiBpZiAkPzsKIG1rZGlyICJodG1sIjsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9t c3ZjL2NsZWFuLmJhdCBiL3NyYy90b29scy9tc3ZjL2NsZWFuLmJhdAppbmRleCBhNTliYmU1 Li5hYzMxMDM4IDEwMDc1NQotLS0gYS9zcmMvdG9vbHMvbXN2Yy9jbGVhbi5iYXQKKysrIGIv c3JjL3Rvb2xzL21zdmMvY2xlYW4uYmF0CkBAIC0xMCw4ICsxMCwxMiBAQCBpZiBleGlzdCAu Llxtc3ZjIGlmIGV4aXN0IC4uXC4uXC4uXHNyYyBjZCAuLlwuLlwuLgogaWYgZXhpc3QgZGVi dWcgcmQgL3MgL3EgZGVidWcKIGlmIGV4aXN0IHJlbGVhc2UgcmQgL3MgL3EgcmVsZWFzZQog Zm9yICUlZiBpbiAoKi52Y3Byb2opIGRvIGRlbCAlJWYKK2ZvciAlJWYgaW4gKCoudmN4cHJv aikgZG8gZGVsICUlZgorZm9yICUlZiBpbiAoKi52Y3hwcm9qLnVzZXIpIGRvIGRlbCAlJWYK IGlmIGV4aXN0IHBnc3FsLnNsbiBkZWwgL3EgcGdzcWwuc2xuCiBpZiBleGlzdCBwZ3NxbC5z bG4uY2FjaGUgZGVsIC9xIHBnc3FsLnNsbi5jYWNoZQoraWYgZXhpc3QgcGdzcWwuc2RmIGRl bCAvcSBwZ3NxbC5zZGYKK2lmIGV4aXN0IHBnc3FsLnN1byBkZWwgL3EgL2E6SCBwZ3NxbC5z dW8KIGRlbCAvcyAvcSBzcmNcYmluXHdpbjMydmVyLnJjIDI+IE5VTAogZGVsIC9zIC9xIHNy Y1xpbnRlcmZhY2VzXHdpbjMydmVyLnJjIDI+IE5VTAogaWYgZXhpc3Qgc3JjXGJhY2tlbmRc d2luMzJ2ZXIucmMgZGVsIC9xIHNyY1xiYWNrZW5kXHdpbjMydmVyLnJjCgpjb21taXQgZjEz MjgyNGMyNGM0NmQyZWZhYjQ5YjRjZGRkMTA4ODc4MWJmNDk5ZQpBdXRob3I6IFBldGVyIEVp c2VudHJhdXQgPHBldGVyX2VAZ214Lm5ldD4KRGF0ZTogICBNb24gSmFuIDIgMjM6Mjk6MTYg MjAxMiArMDIwMAoKICAgIEFub3RoZXIgZml4IGZvciBwZ19yZWdyZXNzOiBSZXBsYWNlIGV4 aXRfbmljZWx5KCkgd2l0aCBleGl0KCkgcGx1cwogICAgYXRleGl0KCkgaG9vawoKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fbWFpbi5jIGIvc3JjL3Rlc3Qv aXNvbGF0aW9uL2lzb2xhdGlvbl9tYWluLmMKaW5kZXggZmFiMGEwMS4uMTM1YmM1MSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9tYWluLmMKKysrIGIvc3Jj L3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9tYWluLmMKQEAgLTY5LDcgKzY5LDcgQEAgaXNv bGF0aW9uX3N0YXJ0X3Rlc3QoY29uc3QgY2hhciAqdGVzdG5hbWUsCiAJewogCQlmcHJpbnRm KHN0ZGVyciwgXygiY291bGQgbm90IHN0YXJ0IHByb2Nlc3MgZm9yIHRlc3QgJXNcbiIpLAog CQkJCXRlc3RuYW1lKTsKLQkJZXhpdF9uaWNlbHkoMik7CisJCWV4aXQoMik7CiAJfQogCiAJ cmV0dXJuIHBpZDsKCmNvbW1pdCBiZDA5MTExZjFmNTJlMzczOWEyNGI4OGE0NjcxZjdhNGIw ZWQ0YzFkCkF1dGhvcjogUGV0ZXIgRWlzZW50cmF1dCA8cGV0ZXJfZUBnbXgubmV0PgpEYXRl OiAgIE1vbiBKYW4gMiAyMjowODowNCAyMDEyICswMjAwCgogICAgcGdfcmVncmVzczogUmVw bGFjZSBleGl0X25pY2VseSgpIHdpdGggZXhpdCgpIHBsdXMgYXRleGl0KCkgaG9vawoKZGlm ZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9wZ19yZWdyZXNzX2VjcGcuYyBi L3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9wZ19yZWdyZXNzX2VjcGcuYwppbmRleCAyNjkw YzU3Li4yYjA5MjQyIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvcGdf cmVncmVzc19lY3BnLmMKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3BnX3JlZ3Jl c3NfZWNwZy5jCkBAIC0zNCwxMyArMzQsMTMgQEAgZWNwZ19maWx0ZXIoY29uc3QgY2hhciAq c291cmNlZmlsZSwgY29uc3QgY2hhciAqb3V0ZmlsZSkKIAlpZiAoIXMpCiAJewogCQlmcHJp bnRmKHN0ZGVyciwgIkNvdWxkIG5vdCBvcGVuIGZpbGUgJXMgZm9yIHJlYWRpbmdcbiIsIHNv dXJjZWZpbGUpOwotCQlleGl0X25pY2VseSgyKTsKKwkJZXhpdCgyKTsKIAl9CiAJdCA9IGZv cGVuKG91dGZpbGUsICJ3Iik7CiAJaWYgKCF0KQogCXsKIAkJZnByaW50ZihzdGRlcnIsICJD b3VsZCBub3Qgb3BlbiBmaWxlICVzIGZvciB3cml0aW5nXG4iLCBvdXRmaWxlKTsKLQkJZXhp dF9uaWNlbHkoMik7CisJCWV4aXQoMik7CiAJfQogCiAJd2hpbGUgKGZnZXRzKGxpbmVidWYs IExJTkVCVUZTSVpFLCBzKSkKQEAgLTE0OCw3ICsxNDgsNyBAQCBlY3BnX3N0YXJ0X3Rlc3Qo Y29uc3QgY2hhciAqdGVzdG5hbWUsCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygiY291bGQg bm90IHN0YXJ0IHByb2Nlc3MgZm9yIHRlc3QgJXNcbiIpLAogCQkJCXRlc3RuYW1lKTsKLQkJ ZXhpdF9uaWNlbHkoMik7CisJCWV4aXQoMik7CiAJfQogCiAJZnJlZShvdXRmaWxlX3N0ZG91 dCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MuYyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcy5jCmluZGV4IGNiZjNiNzcuLjJmNmIzN2IgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcy5jCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvcGdfcmVncmVzcy5jCkBAIC0zMDAsNyArMzAwLDcgQEAgc3RvcF9wb3N0bWFzdGVy KHZvaWQpCiAJCXsKIAkJCWZwcmludGYoc3RkZXJyLCBfKCJcbiVzOiBjb3VsZCBub3Qgc3Rv cCBwb3N0bWFzdGVyOiBleGl0IGNvZGUgd2FzICVkXG4iKSwKIAkJCQkJcHJvZ25hbWUsIHIp OwotCQkJZXhpdCgyKTsJCQkvKiBub3QgZXhpdF9uaWNlbHkoKSwgdGhhdCB3b3VsZCBiZSBy ZWN1cnNpdmUgKi8KKwkJCV9leGl0KDIpOwkJCS8qIG5vdCBleGl0KCksIHRoYXQgY291bGQg YmUgcmVjdXJzaXZlICovCiAJCX0KIAogCQlwb3N0bWFzdGVyX3J1bm5pbmcgPSBmYWxzZTsK QEAgLTMwOCwxNyArMzA4LDYgQEAgc3RvcF9wb3N0bWFzdGVyKHZvaWQpCiB9CiAKIC8qCi0g KiBBbHdheXMgZXhpdCB0aHJvdWdoIGhlcmUsIG5vdCB0aHJvdWdoIHBsYWluIGV4aXQoKSwg dG8gZW5zdXJlIHdlIG1ha2UKLSAqIGFuIGVmZm9ydCB0byBzaHV0IGRvd24gYSB0ZW1wIHBv c3RtYXN0ZXIKLSAqLwotdm9pZAotZXhpdF9uaWNlbHkoaW50IGNvZGUpCi17Ci0Jc3RvcF9w b3N0bWFzdGVyKCk7Ci0JZXhpdChjb2RlKTsKLX0KLQotLyoKICAqIENoZWNrIHdoZXRoZXIg c3RyaW5nIG1hdGNoZXMgcGF0dGVybgogICoKICAqIEluIHRoZSBvcmlnaW5hbCBzaGVsbCBz Y3JpcHQsIHRoaXMgZnVuY3Rpb24gd2FzIGltcGxlbWVudGVkIHVzaW5nIGV4cHIoMSksCkBA IC00NDQsNyArNDMzLDcgQEAgY29udmVydF9zb3VyY2VmaWxlc19pbihjaGFyICpzb3VyY2Vf c3ViZGlyLCBjaGFyICpkZXN0X3N1YmRpciwgY2hhciAqc3VmZml4KQogCW5hbWVzID0gcGdm bmFtZXMoaW5kaXIpOwogCWlmICghbmFtZXMpCiAJCS8qIEVycm9yIGxvZ2dlZCBpbiBwZ2Zu YW1lcyAqLwotCQlleGl0X25pY2VseSgyKTsKKwkJZXhpdCgyKTsKIAogCXNucHJpbnRmKHRl c3R0YWJsZXNwYWNlLCBNQVhQR1BBVEgsICIlcy90ZXN0dGFibGVzcGFjZSIsIG91dHB1dGRp cik7CiAKQEAgLTQ5MywxNCArNDgyLDE0IEBAIGNvbnZlcnRfc291cmNlZmlsZXNfaW4oY2hh ciAqc291cmNlX3N1YmRpciwgY2hhciAqZGVzdF9zdWJkaXIsIGNoYXIgKnN1ZmZpeCkKIAkJ ewogCQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNc IiBmb3IgcmVhZGluZzogJXNcbiIpLAogCQkJCQlwcm9nbmFtZSwgc3JjZmlsZSwgc3RyZXJy b3IoZXJybm8pKTsKLQkJCWV4aXRfbmljZWx5KDIpOworCQkJZXhpdCgyKTsKIAkJfQogCQlv dXRmaWxlID0gZm9wZW4oZGVzdGZpbGUsICJ3Iik7CiAJCWlmICghb3V0ZmlsZSkKIAkJewog CQkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIiBm b3Igd3JpdGluZzogJXNcbiIpLAogCQkJCQlwcm9nbmFtZSwgZGVzdGZpbGUsIHN0cmVycm9y KGVycm5vKSk7Ci0JCQlleGl0X25pY2VseSgyKTsKKwkJCWV4aXQoMik7CiAJCX0KIAkJd2hp bGUgKGZnZXRzKGxpbmUsIHNpemVvZihsaW5lKSwgaW5maWxlKSkKIAkJewpAQCAtNTIzLDcg KzUxMiw3IEBAIGNvbnZlcnRfc291cmNlZmlsZXNfaW4oY2hhciAqc291cmNlX3N1YmRpciwg Y2hhciAqZGVzdF9zdWJkaXIsIGNoYXIgKnN1ZmZpeCkKIAl7CiAJCWZwcmludGYoc3RkZXJy LCBfKCIlczogbm8gKi5zb3VyY2UgZmlsZXMgZm91bmQgaW4gXCIlc1wiXG4iKSwKIAkJCQlw cm9nbmFtZSwgaW5kaXIpOwotCQlleGl0X25pY2VseSgyKTsKKwkJZXhpdCgyKTsKIAl9CiAK IAlwZ2ZuYW1lc19jbGVhbnVwKG5hbWVzKTsKQEAgLTU2Niw3ICs1NTUsNyBAQCBsb2FkX3Jl c3VsdG1hcCh2b2lkKQogCQkJcmV0dXJuOwogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNv dWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIGZvciByZWFkaW5nOiAlc1xuIiksCiAJCQkJcHJv Z25hbWUsIGJ1Ziwgc3RyZXJyb3IoZXJybm8pKTsKLQkJZXhpdF9uaWNlbHkoMik7CisJCWV4 aXQoMik7CiAJfQogCiAJd2hpbGUgKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGYpKQpAQCAt NTg3LDcgKzU3Niw3IEBAIGxvYWRfcmVzdWx0bWFwKHZvaWQpCiAJCXsKIAkJCWZwcmludGYo c3RkZXJyLCBfKCJpbmNvcnJlY3RseSBmb3JtYXR0ZWQgcmVzdWx0bWFwIGVudHJ5OiAlc1xu IiksCiAJCQkJCWJ1Zik7Ci0JCQlleGl0X25pY2VseSgyKTsKKwkJCWV4aXQoMik7CiAJCX0K IAkJKmZpbGVfdHlwZSsrID0gJ1wwJzsKIApAQCAtNTk2LDcgKzU4NSw3IEBAIGxvYWRfcmVz dWx0bWFwKHZvaWQpCiAJCXsKIAkJCWZwcmludGYoc3RkZXJyLCBfKCJpbmNvcnJlY3RseSBm b3JtYXR0ZWQgcmVzdWx0bWFwIGVudHJ5OiAlc1xuIiksCiAJCQkJCWJ1Zik7Ci0JCQlleGl0 X25pY2VseSgyKTsKKwkJCWV4aXQoMik7CiAJCX0KIAkJKnBsYXRmb3JtKysgPSAnXDAnOwog CQlleHBlY3RlZCA9IHN0cmNocihwbGF0Zm9ybSwgJz0nKTsKQEAgLTYwNCw3ICs1OTMsNyBA QCBsb2FkX3Jlc3VsdG1hcCh2b2lkKQogCQl7CiAJCQlmcHJpbnRmKHN0ZGVyciwgXygiaW5j b3JyZWN0bHkgZm9ybWF0dGVkIHJlc3VsdG1hcCBlbnRyeTogJXNcbiIpLAogCQkJCQlidWYp OwotCQkJZXhpdF9uaWNlbHkoMik7CisJCQlleGl0KDIpOwogCQl9CiAJCSpleHBlY3RlZCsr ID0gJ1wwJzsKIApAQCAtOTE2LDcgKzkwNSw3IEBAIHBzcWxfY29tbWFuZChjb25zdCBjaGFy ICpkYXRhYmFzZSwgY29uc3QgY2hhciAqcXVlcnksLi4uKQogCXsKIAkJLyogcHNxbCBwcm9i YWJseSBhbHJlYWR5IHJlcG9ydGVkIHRoZSBlcnJvciAqLwogCQlmcHJpbnRmKHN0ZGVyciwg XygiY29tbWFuZCBmYWlsZWQ6ICVzXG4iKSwgcHNxbF9jbWQpOwotCQlleGl0X25pY2VseSgy KTsKKwkJZXhpdCgyKTsKIAl9CiB9CiAKQEAgLTk0NSw3ICs5MzQsNyBAQCBzcGF3bl9wcm9j ZXNzKGNvbnN0IGNoYXIgKmNtZGxpbmUpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6 IGNvdWxkIG5vdCBmb3JrOiAlc1xuIiksCiAJCQkJcHJvZ25hbWUsIHN0cmVycm9yKGVycm5v KSk7Ci0JCWV4aXRfbmljZWx5KDIpOworCQlleGl0KDIpOwogCX0KIAlpZiAocGlkID09IDAp CiAJewpAQCAtOTYyLDcgKzk1MSw3IEBAIHNwYXduX3Byb2Nlc3MoY29uc3QgY2hhciAqY21k bGluZSkKIAkJZXhlY2woc2hlbGxwcm9nLCBzaGVsbHByb2csICItYyIsIGNtZGxpbmUyLCAo Y2hhciAqKSBOVUxMKTsKIAkJZnByaW50ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3QgZXhl YyBcIiVzXCI6ICVzXG4iKSwKIAkJCQlwcm9nbmFtZSwgc2hlbGxwcm9nLCBzdHJlcnJvcihl cnJubykpOwotCQlleGl0KDEpOwkJCQkvKiBub3QgZXhpdF9uaWNlbHkgaGVyZS4uLiAqLwor CQlfZXhpdCgxKTsJCQkJLyogbm90IGV4aXQoKSBoZXJlLi4uICovCiAJfQogCS8qIGluIHBh cmVudCAqLwogCXJldHVybiBwaWQ7CkBAIC05OTMsNyArOTgyLDcgQEAgc3Bhd25fcHJvY2Vz cyhjb25zdCBjaGFyICpjbWRsaW5lKQogCQkJRnJlZUxpYnJhcnkoQWR2YXBpMzJIYW5kbGUp OwogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNhbm5vdCBjcmVhdGUgcmVzdHJpY3RlZCB0 b2tlbnMgb24gdGhpcyBwbGF0Zm9ybVxuIiksCiAJCQkJcHJvZ25hbWUpOwotCQlleGl0X25p Y2VseSgyKTsKKwkJZXhpdCgyKTsKIAl9CiAKIAkvKiBPcGVuIHRoZSBjdXJyZW50IHRva2Vu IHRvIHVzZSBhcyBiYXNlIGZvciB0aGUgcmVzdHJpY3RlZCBvbmUgKi8KQEAgLTEwMDEsNyAr OTkwLDcgQEAgc3Bhd25fcHJvY2Vzcyhjb25zdCBjaGFyICpjbWRsaW5lKQogCXsKIAkJZnBy aW50ZihzdGRlcnIsIF8oImNvdWxkIG5vdCBvcGVuIHByb2Nlc3MgdG9rZW46IGVycm9yIGNv ZGUgJWx1XG4iKSwKIAkJCQlHZXRMYXN0RXJyb3IoKSk7Ci0JCWV4aXRfbmljZWx5KDIpOwor CQlleGl0KDIpOwogCX0KIAogCS8qIEFsbG9jYXRlIGxpc3Qgb2YgU0lEcyB0byByZW1vdmUg Ki8KQEAgLTEwMTIsNyArMTAwMSw3IEBAIHNwYXduX3Byb2Nlc3MoY29uc3QgY2hhciAqY21k bGluZSkKIAkJCQkJCQkJICBTRUNVUklUWV9CVUlMVElOX0RPTUFJTl9SSUQsIERPTUFJTl9B TElBU19SSURfUE9XRVJfVVNFUlMsIDAsIDAsIDAsIDAsIDAsIDAsICZkcm9wU2lkc1sxXS5T aWQpKQogCXsKIAkJZnByaW50ZihzdGRlcnIsIF8oImNvdWxkIG5vdCBhbGxvY2F0ZSBTSURz OiBlcnJvciBjb2RlICVsdVxuIiksIEdldExhc3RFcnJvcigpKTsKLQkJZXhpdF9uaWNlbHko Mik7CisJCWV4aXQoMik7CiAJfQogCiAJYiA9IF9DcmVhdGVSZXN0cmljdGVkVG9rZW4ob3Jp Z1Rva2VuLApAQCAtMTAzMiw3ICsxMDIxLDcgQEAgc3Bhd25fcHJvY2Vzcyhjb25zdCBjaGFy ICpjbWRsaW5lKQogCXsKIAkJZnByaW50ZihzdGRlcnIsIF8oImNvdWxkIG5vdCBjcmVhdGUg cmVzdHJpY3RlZCB0b2tlbjogZXJyb3IgY29kZSAlbHVcbiIpLAogCQkJCUdldExhc3RFcnJv cigpKTsKLQkJZXhpdF9uaWNlbHkoMik7CisJCWV4aXQoMik7CiAJfQogCiAJY21kbGluZTIg PSBtYWxsb2Moc3RybGVuKGNtZGxpbmUpICsgOCk7CkBAIC0xMDU2LDcgKzEwNDUsNyBAQCBz cGF3bl9wcm9jZXNzKGNvbnN0IGNoYXIgKmNtZGxpbmUpCiAJewogCQlmcHJpbnRmKHN0ZGVy ciwgXygiY291bGQgbm90IHN0YXJ0IHByb2Nlc3MgZm9yIFwiJXNcIjogZXJyb3IgY29kZSAl bHVcbiIpLAogCQkJCWNtZGxpbmUyLCBHZXRMYXN0RXJyb3IoKSk7Ci0JCWV4aXRfbmljZWx5 KDIpOworCQlleGl0KDIpOwogCX0KIAogCWZyZWUoY21kbGluZTIpOwpAQCAtMTE0NCw3ICsx MTMzLDcgQEAgbWFrZV9kaXJlY3RvcnkoY29uc3QgY2hhciAqZGlyKQogCXsKIAkJZnByaW50 ZihzdGRlcnIsIF8oIiVzOiBjb3VsZCBub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiVzXCI6ICVz XG4iKSwKIAkJCQlwcm9nbmFtZSwgZGlyLCBzdHJlcnJvcihlcnJubykpOwotCQlleGl0X25p Y2VseSgyKTsKKwkJZXhpdCgyKTsKIAl9CiB9CiAKQEAgLTExODUsNyArMTE3NCw3IEBAIHJ1 bl9kaWZmKGNvbnN0IGNoYXIgKmNtZCwgY29uc3QgY2hhciAqZmlsZW5hbWUpCiAJaWYgKCFX SUZFWElURUQocikgfHwgV0VYSVRTVEFUVVMocikgPiAxKQogCXsKIAkJZnByaW50ZihzdGRl cnIsIF8oImRpZmYgY29tbWFuZCBmYWlsZWQgd2l0aCBzdGF0dXMgJWQ6ICVzXG4iKSwgciwg Y21kKTsKLQkJZXhpdF9uaWNlbHkoMik7CisJCWV4aXQoMik7CiAJfQogI2lmZGVmIFdJTjMy CiAKQEAgLTExOTYsNyArMTE4NSw3IEBAIHJ1bl9kaWZmKGNvbnN0IGNoYXIgKmNtZCwgY29u c3QgY2hhciAqZmlsZW5hbWUpCiAJaWYgKFdFWElUU1RBVFVTKHIpID09IDEgJiYgZmlsZV9z aXplKGZpbGVuYW1lKSA8PSAwKQogCXsKIAkJZnByaW50ZihzdGRlcnIsIF8oImRpZmYgY29t bWFuZCBub3QgZm91bmQ6ICVzXG4iKSwgY21kKTsKLQkJZXhpdF9uaWNlbHkoMik7CisJCWV4 aXQoMik7CiAJfQogI2VuZGlmCiAKQEAgLTEzNzEsNyArMTM2MCw3IEBAIHdhaXRfZm9yX3Rl c3RzKFBJRF9UWVBFICogcGlkcywgaW50ICpzdGF0dXNlcywgY2hhciAqKm5hbWVzLCBpbnQg bnVtX3Rlc3RzKQogCQl7CiAJCQlmcHJpbnRmKHN0ZGVyciwgXygiZmFpbGVkIHRvIHdhaXQg Zm9yIHN1YnByb2Nlc3NlczogJXNcbiIpLAogCQkJCQlzdHJlcnJvcihlcnJubykpOwotCQkJ ZXhpdF9uaWNlbHkoMik7CisJCQlleGl0KDIpOwogCQl9CiAjZWxzZQogCQlEV09SRAkJZXhp dF9zdGF0dXM7CkBAIC0xMzgyLDcgKzEzNzEsNyBAQCB3YWl0X2Zvcl90ZXN0cyhQSURfVFlQ RSAqIHBpZHMsIGludCAqc3RhdHVzZXMsIGNoYXIgKipuYW1lcywgaW50IG51bV90ZXN0cykK IAkJewogCQkJZnByaW50ZihzdGRlcnIsIF8oImZhaWxlZCB0byB3YWl0IGZvciBzdWJwcm9j ZXNzZXM6IGVycm9yIGNvZGUgJWx1XG4iKSwKIAkJCQkJR2V0TGFzdEVycm9yKCkpOwotCQkJ ZXhpdF9uaWNlbHkoMik7CisJCQlleGl0KDIpOwogCQl9CiAJCXAgPSBhY3RpdmVfcGlkc1ty IC0gV0FJVF9PQkpFQ1RfMF07CiAJCS8qIGNvbXBhY3QgdGhlIGFjdGl2ZV9waWRzIGFycmF5 ICovCkBAIC0xNDY4LDcgKzE0NTcsNyBAQCBydW5fc2NoZWR1bGUoY29uc3QgY2hhciAqc2No ZWR1bGUsIHRlc3RfZnVuY3Rpb24gdGZ1bmMpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygi JXM6IGNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIGZvciByZWFkaW5nOiAlc1xuIiksCiAJ CQkJcHJvZ25hbWUsIHNjaGVkdWxlLCBzdHJlcnJvcihlcnJubykpOwotCQlleGl0X25pY2Vs eSgyKTsKKwkJZXhpdCgyKTsKIAl9CiAKIAl3aGlsZSAoZmdldHMoc2NidWYsIHNpemVvZihz Y2J1ZiksIHNjZikpCkBAIC0xNTE3LDcgKzE1MDYsNyBAQCBydW5fc2NoZWR1bGUoY29uc3Qg Y2hhciAqc2NoZWR1bGUsIHRlc3RfZnVuY3Rpb24gdGZ1bmMpCiAJCXsKIAkJCWZwcmludGYo c3RkZXJyLCBfKCJzeW50YXggZXJyb3IgaW4gc2NoZWR1bGUgZmlsZSBcIiVzXCIgbGluZSAl ZDogJXNcbiIpLAogCQkJCQlzY2hlZHVsZSwgbGluZV9udW0sIHNjYnVmKTsKLQkJCWV4aXRf bmljZWx5KDIpOworCQkJZXhpdCgyKTsKIAkJfQogCiAJCW51bV90ZXN0cyA9IDA7CkBAIC0x NTM2LDcgKzE1MjUsNyBAQCBydW5fc2NoZWR1bGUoY29uc3QgY2hhciAqc2NoZWR1bGUsIHRl c3RfZnVuY3Rpb24gdGZ1bmMpCiAJCQkJCS8qIGNhbid0IHByaW50IHNjYnVmIGhlcmUsIGl0 J3MgYWxyZWFkeSBiZWVuIHRyYXNoZWQgKi8KIAkJCQkJZnByaW50ZihzdGRlcnIsIF8oInRv byBtYW55IHBhcmFsbGVsIHRlc3RzIGluIHNjaGVkdWxlIGZpbGUgXCIlc1wiLCBsaW5lICVk XG4iKSwKIAkJCQkJCQlzY2hlZHVsZSwgbGluZV9udW0pOwotCQkJCQlleGl0X25pY2VseSgy KTsKKwkJCQkJZXhpdCgyKTsKIAkJCQl9CiAJCQkJdGVzdHNbbnVtX3Rlc3RzXSA9IGM7CiAJ CQkJbnVtX3Rlc3RzKys7CkBAIC0xNTQ4LDcgKzE1MzcsNyBAQCBydW5fc2NoZWR1bGUoY29u c3QgY2hhciAqc2NoZWR1bGUsIHRlc3RfZnVuY3Rpb24gdGZ1bmMpCiAJCXsKIAkJCWZwcmlu dGYoc3RkZXJyLCBfKCJzeW50YXggZXJyb3IgaW4gc2NoZWR1bGUgZmlsZSBcIiVzXCIgbGlu ZSAlZDogJXNcbiIpLAogCQkJCQlzY2hlZHVsZSwgbGluZV9udW0sIHNjYnVmKTsKLQkJCWV4 aXRfbmljZWx5KDIpOworCQkJZXhpdCgyKTsKIAkJfQogCiAJCWlmIChudW1fdGVzdHMgPT0g MSkKQEAgLTE3NDQsNyArMTczMyw3IEBAIG9wZW5fcmVzdWx0X2ZpbGVzKHZvaWQpCiAJewog CQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6IGNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIGZv ciB3cml0aW5nOiAlc1xuIiksCiAJCQkJcHJvZ25hbWUsIGxvZ2ZpbGVuYW1lLCBzdHJlcnJv cihlcnJubykpOwotCQlleGl0X25pY2VseSgyKTsKKwkJZXhpdCgyKTsKIAl9CiAKIAkvKiBj cmVhdGUgdGhlIGRpZmZzIGZpbGUgYXMgZW1wdHkgKi8KQEAgLTE3NTUsNyArMTc0NCw3IEBA IG9wZW5fcmVzdWx0X2ZpbGVzKHZvaWQpCiAJewogCQlmcHJpbnRmKHN0ZGVyciwgXygiJXM6 IGNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiIGZvciB3cml0aW5nOiAlc1xuIiksCiAJCQkJ cHJvZ25hbWUsIGRpZmZmaWxlbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKLQkJZXhpdF9uaWNl bHkoMik7CisJCWV4aXQoMik7CiAJfQogCS8qIHdlIGRvbid0IGtlZXAgdGhlIGRpZmZzIGZp bGUgb3BlbiBjb250aW51b3VzbHkgKi8KIAlmY2xvc2UoZGlmZmZpbGUpOwpAQCAtMTg1Myw3 ICsxODQyLDcgQEAgbWFrZV9hYnNvbHV0ZV9wYXRoKGNvbnN0IGNoYXIgKmluKQogCQkJaWYg KCFnZXRjd2QoY3dkYnVmLCBzaXplb2YoY3dkYnVmKSkpCiAJCQl7CiAJCQkJZnByaW50Zihz dGRlcnIsIF8oImNvdWxkIG5vdCBnZXQgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeTogJXNc biIpLCBzdHJlcnJvcihlcnJubykpOwotCQkJCWV4aXRfbmljZWx5KDIpOworCQkJCWV4aXQo Mik7CiAJCQl9CiAJCX0KIApAQCAtMTk1Miw2ICsxOTQxLDggQEAgcmVncmVzc2lvbl9tYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10sIGluaXRfZnVuY3Rpb24gaWZ1bmMsIHRlc3RfZnVu Y3Rpb24gdGZ1bmMKIAlwcm9nbmFtZSA9IGdldF9wcm9nbmFtZShhcmd2WzBdKTsKIAlzZXRf cGdsb2NhbGVfcGdzZXJ2aWNlKGFyZ3ZbMF0sIFBHX1RFWFRET01BSU4oInBnX3JlZ3Jlc3Mi KSk7CiAKKwlhdGV4aXQoc3RvcF9wb3N0bWFzdGVyKTsKKwogI2lmbmRlZiBIQVZFX1VOSVhf U09DS0VUUwogCS8qIG5vIHVuaXggZG9tYWluIHNvY2tldHMgYXZhaWxhYmxlLCBzbyBjaGFu Z2UgZGVmYXVsdCAqLwogCWhvc3RuYW1lID0gImxvY2FsaG9zdCI7CkBAIC0xOTY5LDEwICsx OTYwLDEwIEBAIHJlZ3Jlc3Npb25fbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLCBpbml0 X2Z1bmN0aW9uIGlmdW5jLCB0ZXN0X2Z1bmN0aW9uIHRmdW5jCiAJCXsKIAkJCWNhc2UgJ2gn OgogCQkJCWhlbHAoKTsKLQkJCQlleGl0X25pY2VseSgwKTsKKwkJCQlleGl0KDApOwogCQkJ Y2FzZSAnVic6CiAJCQkJcHV0cygicGdfcmVncmVzcyAoUG9zdGdyZVNRTCkgIiBQR19WRVJT SU9OKTsKLQkJCQlleGl0X25pY2VseSgwKTsKKwkJCQlleGl0KDApOwogCQkJY2FzZSAxOgog CiAJCQkJLyoKQEAgLTIwNTIsNyArMjA0Myw3IEBAIHJlZ3Jlc3Npb25fbWFpbihpbnQgYXJn YywgY2hhciAqYXJndltdLCBpbml0X2Z1bmN0aW9uIGlmdW5jLCB0ZXN0X2Z1bmN0aW9uIHRm dW5jCiAJCQkJLyogZ2V0b3B0X2xvbmcgYWxyZWFkeSBlbWl0dGVkIGEgY29tcGxhaW50ICov CiAJCQkJZnByaW50ZihzdGRlcnIsIF8oIlxuVHJ5IFwiJXMgLWhcIiBmb3IgbW9yZSBpbmZv cm1hdGlvbi5cbiIpLAogCQkJCQkJcHJvZ25hbWUpOwotCQkJCWV4aXRfbmljZWx5KDIpOwor CQkJCWV4aXQoMik7CiAJCX0KIAl9CiAKQEAgLTIxMDAsNyArMjA5MSw3IEBAIHJlZ3Jlc3Np b25fbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLCBpbml0X2Z1bmN0aW9uIGlmdW5jLCB0 ZXN0X2Z1bmN0aW9uIHRmdW5jCiAJCWlmICghdG9wX2J1aWxkZGlyKQogCQl7CiAJCQlmcHJp bnRmKHN0ZGVyciwgXygiLS10b3AtYnVpbGRkaXIgbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiB1 c2luZyAtLXRlbXAtaW5zdGFsbFxuIikpOwotCQkJZXhpdF9uaWNlbHkoMik7CisJCQlleGl0 KDIpOwogCQl9CiAKIAkJaWYgKGRpcmVjdG9yeV9leGlzdHModGVtcF9pbnN0YWxsKSkKQEAg LTIxMzIsNyArMjEyMyw3IEBAIHJlZ3Jlc3Npb25fbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdLCBpbml0X2Z1bmN0aW9uIGlmdW5jLCB0ZXN0X2Z1bmN0aW9uIHRmdW5jCiAJCWlmIChz eXN0ZW0oYnVmKSkKIAkJewogCQkJZnByaW50ZihzdGRlcnIsIF8oIlxuJXM6IGluc3RhbGxh dGlvbiBmYWlsZWRcbkV4YW1pbmUgJXMvbG9nL2luc3RhbGwubG9nIGZvciB0aGUgcmVhc29u LlxuQ29tbWFuZCB3YXM6ICVzXG4iKSwgcHJvZ25hbWUsIG91dHB1dGRpciwgYnVmKTsKLQkJ CWV4aXRfbmljZWx5KDIpOworCQkJZXhpdCgyKTsKIAkJfQogCiAJCWZvciAoc2wgPSBleHRy YV9pbnN0YWxsOyBzbCAhPSBOVUxMOyBzbCA9IHNsLT5uZXh0KQpAQCAtMjE0MywxMyArMjEz NCwxMyBAQCByZWdyZXNzaW9uX21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgaW5pdF9m dW5jdGlvbiBpZnVuYywgdGVzdF9mdW5jdGlvbiB0ZnVuYwogCQkJCSAgIG1ha2Vwcm9nLCB0 b3BfYnVpbGRkaXIsIHNsLT5zdHIsIHRlbXBfaW5zdGFsbCwgb3V0cHV0ZGlyKTsKICNlbHNl CiAJCQlmcHJpbnRmKHN0ZGVyciwgXygiXG4lczogLS1leHRyYS1pbnN0YWxsIG9wdGlvbiBu b3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm1cbiIpLCBwcm9nbmFtZSk7Ci0JCQlleGl0 X25pY2VseSgyKTsKKwkJCWV4aXQoMik7CiAjZW5kaWYKIAogCQkJaWYgKHN5c3RlbShidWYp KQogCQkJewogCQkJCWZwcmludGYoc3RkZXJyLCBfKCJcbiVzOiBpbnN0YWxsYXRpb24gZmFp bGVkXG5FeGFtaW5lICVzL2xvZy9pbnN0YWxsLmxvZyBmb3IgdGhlIHJlYXNvbi5cbkNvbW1h bmQgd2FzOiAlc1xuIiksIHByb2duYW1lLCBvdXRwdXRkaXIsIGJ1Zik7Ci0JCQkJZXhpdF9u aWNlbHkoMik7CisJCQkJZXhpdCgyKTsKIAkJCX0KIAkJfQogCkBAIC0yMTY0LDcgKzIxNTUs NyBAQCByZWdyZXNzaW9uX21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgaW5pdF9mdW5j dGlvbiBpZnVuYywgdGVzdF9mdW5jdGlvbiB0ZnVuYwogCQlpZiAoc3lzdGVtKGJ1ZikpCiAJ CXsKIAkJCWZwcmludGYoc3RkZXJyLCBfKCJcbiVzOiBpbml0ZGIgZmFpbGVkXG5FeGFtaW5l ICVzL2xvZy9pbml0ZGIubG9nIGZvciB0aGUgcmVhc29uLlxuQ29tbWFuZCB3YXM6ICVzXG4i KSwgcHJvZ25hbWUsIG91dHB1dGRpciwgYnVmKTsKLQkJCWV4aXRfbmljZWx5KDIpOworCQkJ ZXhpdCgyKTsKIAkJfQogCiAJCS8qCkBAIC0yMTgwLDcgKzIxNzEsNyBAQCByZWdyZXNzaW9u X21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgaW5pdF9mdW5jdGlvbiBpZnVuYywgdGVz dF9mdW5jdGlvbiB0ZnVuYwogCQlpZiAocGdfY29uZiA9PSBOVUxMKQogCQl7CiAJCQlmcHJp bnRmKHN0ZGVyciwgXygiXG4lczogY291bGQgbm90IG9wZW4gXCIlc1wiIGZvciBhZGRpbmcg ZXh0cmEgY29uZmlnOiAlc1xuIiksIHByb2duYW1lLCBidWYsIHN0cmVycm9yKGVycm5vKSk7 Ci0JCQlleGl0X25pY2VseSgyKTsKKwkJCWV4aXQoMik7CiAJCX0KIAkJZnB1dHMoIlxuIyBD b25maWd1cmF0aW9uIGFkZGVkIGJ5IHBnX3JlZ3Jlc3NcblxuIiwgcGdfY29uZik7CiAJCWZw dXRzKCJtYXhfcHJlcGFyZWRfdHJhbnNhY3Rpb25zID0gMlxuIiwgcGdfY29uZik7CkBAIC0y MTk0LDcgKzIxODUsNyBAQCByZWdyZXNzaW9uX21haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSwgaW5pdF9mdW5jdGlvbiBpZnVuYywgdGVzdF9mdW5jdGlvbiB0ZnVuYwogCQkJaWYgKGV4 dHJhX2NvbmYgPT0gTlVMTCkKIAkJCXsKIAkJCQlmcHJpbnRmKHN0ZGVyciwgXygiXG4lczog Y291bGQgbm90IG9wZW4gXCIlc1wiIHRvIHJlYWQgZXh0cmEgY29uZmlnOiAlc1xuIiksIHBy b2duYW1lLCB0ZW1wX2NvbmZpZywgc3RyZXJyb3IoZXJybm8pKTsKLQkJCQlleGl0X25pY2Vs eSgyKTsKKwkJCQlleGl0KDIpOwogCQkJfQogCQkJd2hpbGUgKGZnZXRzKGxpbmVfYnVmLCBz aXplb2YobGluZV9idWYpLCBleHRyYV9jb25mKSAhPSBOVUxMKQogCQkJCWZwdXRzKGxpbmVf YnVmLCBwZ19jb25mKTsKQEAgLTIyMjIsNyArMjIxMyw3IEBAIHJlZ3Jlc3Npb25fbWFpbihp bnQgYXJnYywgY2hhciAqYXJndltdLCBpbml0X2Z1bmN0aW9uIGlmdW5jLCB0ZXN0X2Z1bmN0 aW9uIHRmdW5jCiAJCQkJCWlmICghcG9ydF9zcGVjaWZpZWRfYnlfdXNlcikKIAkJCQkJCWZw cmludGYoc3RkZXJyLCBfKCIlczogY291bGQgbm90IGRldGVybWluZSBhbiBhdmFpbGFibGUg cG9ydFxuIiksIHByb2duYW1lKTsKIAkJCQkJZnByaW50ZihzdGRlcnIsIF8oIlNwZWNpZnkg YW4gdW51c2VkIHBvcnQgdXNpbmcgdGhlIC0tcG9ydCBvcHRpb24gb3Igc2h1dCBkb3duIGFu eSBjb25mbGljdGluZyBQb3N0Z3JlU1FMIHNlcnZlcnMuXG4iKSk7Ci0JCQkJCWV4aXRfbmlj ZWx5KDIpOworCQkJCQlleGl0KDIpOwogCQkJCX0KIAogCQkJCWZwcmludGYoc3RkZXJyLCBf KCJwb3J0ICVkIGFwcGFyZW50bHkgaW4gdXNlLCB0cnlpbmcgJWRcbiIpLCBwb3J0LCBwb3J0 ICsgMSk7CkBAIC0yMjQ5LDcgKzIyNDAsNyBAQCByZWdyZXNzaW9uX21haW4oaW50IGFyZ2Ms IGNoYXIgKmFyZ3ZbXSwgaW5pdF9mdW5jdGlvbiBpZnVuYywgdGVzdF9mdW5jdGlvbiB0ZnVu YwogCQl7CiAJCQlmcHJpbnRmKHN0ZGVyciwgXygiXG4lczogY291bGQgbm90IHNwYXduIHBv c3RtYXN0ZXI6ICVzXG4iKSwKIAkJCQkJcHJvZ25hbWUsIHN0cmVycm9yKGVycm5vKSk7Ci0J CQlleGl0X25pY2VseSgyKTsKKwkJCWV4aXQoMik7CiAJCX0KIAogCQkvKgpAQCAtMjI3Myw3 ICsyMjY0LDcgQEAgcmVncmVzc2lvbl9tYWluKGludCBhcmdjLCBjaGFyICphcmd2W10sIGlu aXRfZnVuY3Rpb24gaWZ1bmMsIHRlc3RfZnVuY3Rpb24gdGZ1bmMKICNlbmRpZgogCQkJewog CQkJCWZwcmludGYoc3RkZXJyLCBfKCJcbiVzOiBwb3N0bWFzdGVyIGZhaWxlZFxuRXhhbWlu ZSAlcy9sb2cvcG9zdG1hc3Rlci5sb2cgZm9yIHRoZSByZWFzb25cbiIpLCBwcm9nbmFtZSwg b3V0cHV0ZGlyKTsKLQkJCQlleGl0X25pY2VseSgyKTsKKwkJCQlleGl0KDIpOwogCQkJfQog CiAJCQlwZ191c2xlZXAoMTAwMDAwMEwpOwpAQCAtMjI5OSw3ICsyMjkwLDcgQEAgcmVncmVz c2lvbl9tYWluKGludCBhcmdjLCBjaGFyICphcmd2W10sIGluaXRfZnVuY3Rpb24gaWZ1bmMs IHRlc3RfZnVuY3Rpb24gdGZ1bmMKIAkJCQkJCXByb2duYW1lLCBHZXRMYXN0RXJyb3IoKSk7 CiAjZW5kaWYKIAotCQkJZXhpdF9uaWNlbHkoMik7CisJCQlleGl0KDIpOwogCQl9CiAKIAkJ cG9zdG1hc3Rlcl9ydW5uaW5nID0gdHJ1ZTsKQEAgLTI0MTQsNyArMjQwNSw3IEBAIHJlZ3Jl c3Npb25fbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLCBpbml0X2Z1bmN0aW9uIGlmdW5j LCB0ZXN0X2Z1bmN0aW9uIHRmdW5jCiAJfQogCiAJaWYgKGZhaWxfY291bnQgIT0gMCkKLQkJ ZXhpdF9uaWNlbHkoMSk7CisJCWV4aXQoMSk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcy5oIGIvc3JjL3Rlc3QvcmVncmVzcy9w Z19yZWdyZXNzLmgKaW5kZXggODAyMzE5My4uOGUwOTZmMiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9wZ19yZWdyZXNzLmgKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdy ZXNzLmgKQEAgLTU2LDYgKzU2LDUgQEAgaW50IHJlZ3Jlc3Npb25fbWFpbihpbnQgYXJnYywg Y2hhciAqYXJndltdLAogCQkJCWluaXRfZnVuY3Rpb24gaWZ1bmMsIHRlc3RfZnVuY3Rpb24g dGZ1bmMpOwogdm9pZAkJYWRkX3N0cmluZ2xpc3RfaXRlbShfc3RyaW5nbGlzdCAqKiBsaXN0 aGVhZCwgY29uc3QgY2hhciAqc3RyKTsKIFBJRF9UWVBFCXNwYXduX3Byb2Nlc3MoY29uc3Qg Y2hhciAqY21kbGluZSk7Ci12b2lkCQlleGl0X25pY2VseShpbnQgY29kZSk7CiB2b2lkCQly ZXBsYWNlX3N0cmluZyhjaGFyICpzdHJpbmcsIGNoYXIgKnJlcGxhY2UsIGNoYXIgKnJlcGxh Y2VtZW50KTsKIGJvb2wJCWZpbGVfZXhpc3RzKGNvbnN0IGNoYXIgKmZpbGUpOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvcGdfcmVncmVzc19tYWluLmMKaW5kZXggODczMDlhYi4uZjhlMTkyMSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYworKysgYi9zcmMvdGVz dC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jCkBAIC03Nyw3ICs3Nyw3IEBAIHBzcWxfc3Rh cnRfdGVzdChjb25zdCBjaGFyICp0ZXN0bmFtZSwKIAl7CiAJCWZwcmludGYoc3RkZXJyLCBf KCJjb3VsZCBub3Qgc3RhcnQgcHJvY2VzcyBmb3IgdGVzdCAlc1xuIiksCiAJCQkJdGVzdG5h bWUpOwotCQlleGl0X25pY2VseSgyKTsKKwkJZXhpdCgyKTsKIAl9CiAKIAlyZXR1cm4gcGlk OwoKY29tbWl0IGFjN2E1YTNmMjU3MDhjMDMyNDJlZGMzMDFhZDAwODIzNmZjMzZjN2UKQXV0 aG9yOiBUb20gTGFuZSA8dGdsQHNzcy5wZ2gucGEudXM+CkRhdGU6ICAgTW9uIEphbiAyIDE0 OjQzOjQ1IDIwMTIgLTA1MDAKCiAgICBGaXggY29lcmNlX3RvX3RhcmdldF90eXBlIGZvciBj b2VyY2VfdHlwZSdzIGtsdWd5IGhhbmRsaW5nIG9mIENPTExBVEUuCiAgICAKICAgIEJlY2F1 c2UgY29lcmNlX3R5cGUgcmVjdXJzZXMgaW50byB0aGUgYXJndW1lbnQgb2YgYSBDb2xsYXRl RXhwciwKICAgIGNvZXJjZV90b190YXJnZXRfdHlwZSdzIGxvbmdzdGFuZGluZyBjb2RlIGZv ciBkZXRlY3Rpbmcgd2hldGhlciBjb2VyY2VfdHlwZQogICAgaGFkIGFjdHVhbGx5IGRvbmUg YW55dGhpbmcgKHRvIHdpdCwgcmV0dXJuZWQgYSBkaWZmZXJlbnQgbm9kZSB0aGFuIGl0CiAg ICBwYXNzZWQgaW4pIHdhcyBicm9rZW4gaW4gOS4xLiAgVGhpcyByZXN1bHRlZCBpbiB1bmV4 cGVjdGVkIGZhaWx1cmVzIGluCiAgICBoaWRlX2NvZXJjaW9uX25vZGU7IHdoaWNoIHdhcyBu b3QgdGhlIGxhdHRlcidzIGZhdWx0LCBzaW5jZSBpdCdzIGNyaXRpY2FsCiAgICB0aGF0IHdl IG5ldmVyIGNhbGwgaXQgb24gYW55dGhpbmcgdGhhdCB3YXNuJ3QgaW5zZXJ0ZWQgYnkgY29l cmNlX3R5cGUuCiAgICAoRWxzZSB3ZSBtaWdodCBkZWNpZGUgdG8gImhpZGUiIGEgdXNlci13 cml0dGVuIGZ1bmN0aW9uIGNhbGwuKQogICAgCiAgICBGaXggYnkgcmVtb3ZpbmcgYW5kIHJl cGxhY2luZyB0aGUgQ29sbGF0ZUV4cHIgaW4gY29lcmNlX3RvX3RhcmdldF90eXBlCiAgICBp dHNlbGYuICBUaGlzIGlzIGFsbCBwcmV0dHkgdWdseSBidXQgSSBkb24ndCBpbW1lZGlhdGVs eSBzZWUgYSB3YXkgdG8gbWFrZQogICAgaXQgbmljZXIuCiAgICAKICAgIFBlciByZXBvcnQg ZnJvbSBKZWFuLVl2ZXMgRi4gQmFyYmllci4KCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfY29lcmNlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNl LmMKaW5kZXggZTcyNzgzNy4uNjY2MWEzZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2NvZXJjZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2Vy Y2UuYwpAQCAtNzksMTAgKzc5LDI0IEBAIGNvZXJjZV90b190YXJnZXRfdHlwZShQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIE9pZCBleHBydHlwZSwKIAkJCQkJICBpbnQgbG9j YXRpb24pCiB7CiAJTm9kZQkgICAqcmVzdWx0OworCU5vZGUJICAgKm9yaWdleHByOwogCiAJ aWYgKCFjYW5fY29lcmNlX3R5cGUoMSwgJmV4cHJ0eXBlLCAmdGFyZ2V0dHlwZSwgY2NvbnRl eHQpKQogCQlyZXR1cm4gTlVMTDsKIAorCS8qCisJICogSWYgdGhlIGlucHV0IGhhcyBhIENv bGxhdGVFeHByIGF0IHRoZSB0b3AsIHN0cmlwIGl0IG9mZiwgcGVyZm9ybSB0aGUKKwkgKiBj b2VyY2lvbiwgYW5kIHB1dCBhIG5ldyBvbmUgYmFjayBvbi4gIFRoaXMgaXMgYW5ub3lpbmcg c2luY2UgaXQKKwkgKiBkdXBsaWNhdGVzIGxvZ2ljIGluIGNvZXJjZV90eXBlLCBidXQgaWYg d2UgZG9uJ3QgZG8gdGhpcyB0aGVuIGl0J3MgdG9vCisJICogaGFyZCB0byB0ZWxsIHdoZXRo ZXIgY29lcmNlX3R5cGUgYWN0dWFsbHkgY2hhbmdlZCBhbnl0aGluZywgYW5kIHdlCisJICog Km11c3QqIGtub3cgdGhhdCB0byBhdm9pZCBwb3NzaWJseSBjYWxsaW5nIGhpZGVfY29lcmNp b25fbm9kZSBvbgorCSAqIHNvbWV0aGluZyB0aGF0IHdhc24ndCBnZW5lcmF0ZWQgYnkgY29l cmNlX3R5cGUuICBOb3RlIHRoYXQgaWYgdGhlcmUgYXJlCisJICogbXVsdGlwbGUgc3RhY2tl ZCBDb2xsYXRlRXhwcnMsIHdlIGp1c3QgZGlzY2FyZCBhbGwgYnV0IHRoZSB0b3Btb3N0Lgor CSAqLworCW9yaWdleHByID0gZXhwcjsKKwl3aGlsZSAoZXhwciAmJiBJc0EoZXhwciwgQ29s bGF0ZUV4cHIpKQorCQlleHByID0gKE5vZGUgKikgKChDb2xsYXRlRXhwciAqKSBleHByKS0+ YXJnOworCiAJcmVzdWx0ID0gY29lcmNlX3R5cGUocHN0YXRlLCBleHByLCBleHBydHlwZSwK IAkJCQkJCSB0YXJnZXR0eXBlLCB0YXJnZXR0eXBtb2QsCiAJCQkJCQkgY2NvbnRleHQsIGNm b3JtYXQsIGxvY2F0aW9uKTsKQEAgLTk4LDYgKzExMiwxOCBAQCBjb2VyY2VfdG9fdGFyZ2V0 X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBPaWQgZXhwcnR5cGUsCiAJ CQkJCQkJCShjZm9ybWF0ICE9IENPRVJDRV9JTVBMSUNJVF9DQVNUKSwKIAkJCQkJCQkJKHJl c3VsdCAhPSBleHByICYmICFJc0EocmVzdWx0LCBDb25zdCkpKTsKIAorCWlmIChleHByICE9 IG9yaWdleHByKQorCXsKKwkJLyogUmVpbnN0YWxsIHRvcCBDb2xsYXRlRXhwciAqLworCQlD b2xsYXRlRXhwciAqY29sbCA9IChDb2xsYXRlRXhwciAqKSBvcmlnZXhwcjsKKwkJQ29sbGF0 ZUV4cHIgKm5ld2NvbGwgPSBtYWtlTm9kZShDb2xsYXRlRXhwcik7CisKKwkJbmV3Y29sbC0+ YXJnID0gKEV4cHIgKikgcmVzdWx0OworCQluZXdjb2xsLT5jb2xsT2lkID0gY29sbC0+Y29s bE9pZDsKKwkJbmV3Y29sbC0+bG9jYXRpb24gPSBjb2xsLT5sb2NhdGlvbjsKKwkJcmVzdWx0 ID0gKE5vZGUgKikgbmV3Y29sbDsKKwl9CisKIAlyZXR1cm4gcmVzdWx0OwogfQogCkBAIC0z MTgsNyArMzQ0LDcgQEAgY29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpu b2RlLAogCQkgKiBJZiB3ZSBoYXZlIGEgQ09MTEFURSBjbGF1c2UsIHdlIGhhdmUgdG8gcHVz aCB0aGUgY29lcmNpb24KIAkJICogdW5kZXJuZWF0aCB0aGUgQ09MTEFURS4JVGhpcyBpcyBy ZWFsbHkgdWdseSwgYnV0IHRoZXJlIGlzIGxpdHRsZQogCQkgKiBjaG9pY2UgYmVjYXVzZSB0 aGUgYWJvdmUgaGFja3Mgb24gQ29uc3RzIGFuZCBQYXJhbXMgd291bGRuJ3QgaGFwcGVuCi0J CSAqIG90aGVyd2lzZS4KKwkJICogb3RoZXJ3aXNlLiAgVGhpcyBrbHVnZSBoYXMgY29uc2Vx dWVuY2VzIGluIGNvZXJjZV90b190YXJnZXRfdHlwZS4KIAkJICovCiAJCUNvbGxhdGVFeHBy ICpjb2xsID0gKENvbGxhdGVFeHByICopIG5vZGU7CiAJCUNvbGxhdGVFeHByICpuZXdjb2xs ID0gbWFrZU5vZGUoQ29sbGF0ZUV4cHIpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jb2xsYXRlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29s bGF0ZS5vdXQKaW5kZXggZGMxN2ZlYS4uYTE1ZTY5MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NvbGxhdGUub3V0CkBAIC01NzQsNiArNTc0LDkgQEAgQUxURVIgVEFCTEUgY29s bGF0ZV90ZXN0MjIgQUREIEZPUkVJR04gS0VZIChmMikgUkVGRVJFTkNFUyBjb2xsYXRlX3Rl c3QyMDsKIFJFU0VUIGVuYWJsZV9zZXFzY2FuOwogUkVTRVQgZW5hYmxlX2hhc2hqb2luOwog UkVTRVQgZW5hYmxlX25lc3Rsb29wOworLS0gOS4xIGJ1ZyB3aXRoIHVzZWxlc3MgQ09MTEFU RSBpbiBhbiBleHByZXNzaW9uIHN1YmplY3QgdG8gbGVuZ3RoIGNvZXJjaW9uCitDUkVBVEUg VEVNUCBUQUJMRSB2Y3RhYmxlIChmMSB2YXJjaGFyKDI1KSk7CitJTlNFUlQgSU5UTyB2Y3Rh YmxlIFZBTFVFUyAoJ2ZvbycgQ09MTEFURSAiQyIpOwogLS0KIC0tIENsZWFuIHVwLiAgTWFu eSBvZiB0aGVzZSB0YWJsZSBuYW1lcyB3aWxsIGJlIHJlLXVzZWQgaWYgdGhlIHVzZXIgaXMK IC0tIHRyeWluZyB0byBydW4gYW55IHBsYXRmb3JtLXNwZWNpZmljIGNvbGxhdGlvbiB0ZXN0 cyBsYXRlciwgc28gd2UKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxh dGUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5zcWwKaW5kZXggNTJkODMw ZC4uZjcyZjNlZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5zcWwKQEAgLTIxNCw2ICsy MTQsMTEgQEAgUkVTRVQgZW5hYmxlX3NlcXNjYW47CiBSRVNFVCBlbmFibGVfaGFzaGpvaW47 CiBSRVNFVCBlbmFibGVfbmVzdGxvb3A7CiAKKy0tIDkuMSBidWcgd2l0aCB1c2VsZXNzIENP TExBVEUgaW4gYW4gZXhwcmVzc2lvbiBzdWJqZWN0IHRvIGxlbmd0aCBjb2VyY2lvbgorCitD UkVBVEUgVEVNUCBUQUJMRSB2Y3RhYmxlIChmMSB2YXJjaGFyKDI1KSk7CitJTlNFUlQgSU5U TyB2Y3RhYmxlIFZBTFVFUyAoJ2ZvbycgQ09MTEFURSAiQyIpOworCiAtLQogLS0gQ2xlYW4g dXAuICBNYW55IG9mIHRoZXNlIHRhYmxlIG5hbWVzIHdpbGwgYmUgcmUtdXNlZCBpZiB0aGUg dXNlciBpcwogLS0gdHJ5aW5nIHRvIHJ1biBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgY29sbGF0 aW9uIHRlc3RzIGxhdGVyLCBzbyB3ZQoKY29tbWl0IGE4YWI4ZDBlYWE5NmRiYWViYjY0Njk3 MWY4OTg4YTNlZGMyOGU1MmMKQXV0aG9yOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFu LnVzPgpEYXRlOiAgIE1vbiBKYW4gMiAwODo0ODo1OSAyMDEyIC0wNTAwCgogICAgQWRkIGNv bW1lbnQgYWJvdXQgc2tpcHBpbmcgYmluYXJ5IGZpbGVzIGZvciBjb3B5cmlnaHQgY2hhbmdl cy4KCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvY29weXJpZ2h0LnBsIGIvc3JjL3Rvb2xzL2Nv cHlyaWdodC5wbAppbmRleCA3MzlmMTgyLi5kYjVhMmYwIDEwMDc1NQotLS0gYS9zcmMvdG9v bHMvY29weXJpZ2h0LnBsCisrKyBiL3NyYy90b29scy9jb3B5cmlnaHQucGwKQEAgLTMxLDYg KzMxLDggQEAgc3ViIHdhbnRlZCB7CiAgICAgfQogCiAgICAgcmV0dXJuIGlmICEgLWYgJEZp bGU6OkZpbmQ6Om5hbWUgfHwgLWwgJEZpbGU6OkZpbmQ6Om5hbWU7CisgICAgIyBza2lwIGZp bGUgbmFtZXMgd2l0aCBiaW5hcnkgZXh0ZW5zaW9ucworICAgICMgSG93IGFyZSB0aGVzZSB1 cGRhdGVkPyAgYmptIDIwMTItMDEtMDIKICAgICByZXR1cm4gaWYgKCRfID1+IG0vXC4oaWNv fGJpbikkKTsKIAogICAgIG15IEBsaW5lczsKCmNvbW1pdCA2MzFiZWVhYzM1OThhNzNkZWUy YzJhZmEzOGZhMmU3MzQxNDgwMzFiCkF1dGhvcjogVG9tIExhbmUgPHRnbEBzc3MucGdoLnBh LnVzPgpEYXRlOiAgIE1vbiBKYW4gMiAwMDowMTozMyAyMDEyIC0wNTAwCgogICAgVXNlIExX U1lOQyBpbiBwbGFjZSBvZiBTWU5DL0lTWU5DIGluIFBQQyBzcGlubG9ja3MsIHdoZXJlIHBv c3NpYmxlLgogICAgCiAgICBUaGlzIGlzIGFsbGVnZWRseSBhIHdpbiwgYXQgbGVhc3Qgb24g c29tZSBQUEMgaW1wbGVtZW50YXRpb25zLCBhY2NvcmRpbmcKICAgIHRvIHRoZSBQUEMgSVNB IGRvY3VtZW50cy4gIEhvd2V2ZXIsIGFzIHdpdGggTFdBUlggaGludHMsIHNvbWUgUFBDCiAg ICBwbGF0Zm9ybXMgZ2l2ZSBhbiBpbGxlZ2FsLWluc3RydWN0aW9uIGZhaWx1cmUuICBVc2Ug dGhlIHNhbWUgdHJpY2sgYXMKICAgIGJlZm9yZSBvZiBhc3N1bWluZyB0aGF0IFBQQzY0IHBs YXRmb3JtcyB3aWxsIGFjY2VwdCBpdDsgd2UgbWlnaHQgbmVlZCB0bwogICAgcmVmaW5lIHRo YXQgYmFzZWQgb24gZXhwZXJpZW5jZSwgYnV0IHRoZXJlIGFyZSBvdGhlciBwcm9qZWN0cyBk b2luZwogICAgbGlrZXdpc2UgYWNjb3JkaW5nIHRvIGdvb2dsZS4KICAgIAogICAgSSBkaWQg bm90IGFkZCBhbiBhc3NlbWJsZXIgY29tcGF0aWJpbGl0eSB0ZXN0IGJlY2F1c2UgTFdTWU5D IGhhcyBiZWVuCiAgICBhcm91bmQgbXVjaCBsb25nZXIgdGhhbiBoaW50IGJpdHMsIGFuZCBp dCBzZWVtcyB1bmxpa2VseSB0aGF0IGFueQogICAgdG9vbGNoYWlucyBjdXJyZW50bHkgaW4g dXNlIGRvbid0IHJlY29nbml6ZSBpdC4KCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ19j b25maWdfbWFudWFsLmggYi9zcmMvaW5jbHVkZS9wZ19jb25maWdfbWFudWFsLmgKaW5kZXgg ODEwYmUyNy4uYWM0NWVlNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnX21h bnVhbC5oCisrKyBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZ19tYW51YWwuaApAQCAtMTg5LDYg KzE4OSwxNyBAQAogI2VuZGlmCiAKIC8qCisgKiBPbiBQUEMgbWFjaGluZXMsIGRlY2lkZSB3 aGV0aGVyIHRvIHVzZSBMV1NZTkMgaW5zdHJ1Y3Rpb25zIGluIHBsYWNlIG9mCisgKiBJU1lO QyBhbmQgU1lOQy4gIFRoaXMgcHJvdmlkZXMgc2xpZ2h0bHkgYmV0dGVyIHBlcmZvcm1hbmNl LCBidXQgd2lsbAorICogcmVzdWx0IGluIGlsbGVnYWwtaW5zdHJ1Y3Rpb24gZmFpbHVyZXMg b24gc29tZSBwcmUtUE9XRVI0IG1hY2hpbmVzLgorICogQnkgZGVmYXVsdCB3ZSB1c2UgTFdT WU5DIHdoZW4gYnVpbGRpbmcgZm9yIDY0LWJpdCBQUEMsIHdoaWNoIHNob3VsZCBiZQorICog c2FmZSBpbiBuZWFybHkgYWxsIGNhc2VzLgorICovCisjaWYgZGVmaW5lZChfX3BwYzY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyNkZWZpbmUgVVNFX1BQQ19MV1NZTkMKKyNl bmRpZgorCisvKgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFRoZSBmb2xsb3dpbmcgc3lt Ym9scyBhcmUgZm9yIGVuYWJsaW5nIGRlYnVnZ2luZyBjb2RlLCBub3QgZm9yCiAgKiBjb250 cm9sbGluZyB1c2VyLXZpc2libGUgZmVhdHVyZXMgb3IgcmVzb3VyY2UgbGltaXRzLgpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9zX2xvY2suaCBiL3NyYy9pbmNsdWRlL3N0 b3JhZ2Uvc19sb2NrLmgKaW5kZXggMmU1MTYzZS4uZmY3ZWIxNCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvc3RvcmFnZS9zX2xvY2suaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Nf bG9jay5oCkBAIC0zNjEsNiArMzYxLDcgQEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2xvY2tf dDsKIC8qCiAgKiBOT1RFOiBwZXIgdGhlIEVuaGFuY2VkIFBvd2VyUEMgQXJjaGl0ZWN0dXJl IG1hbnVhbCwgdjEuMCBkYXRlZCA3LU1heS0yMDAyLAogICogYW4gaXN5bmMgaXMgYSBzdWZm aWNpZW50IHN5bmNocm9uaXphdGlvbiBiYXJyaWVyIGFmdGVyIGEgbHdhcngvc3R3Y3ggbG9v cC4KKyAqIE9uIG5ld2VyIG1hY2hpbmVzLCB3ZSBjYW4gdXNlIGx3c3luYyBpbnN0ZWFkIGZv ciBiZXR0ZXIgcGVyZm9ybWFuY2UuCiAgKi8KIHN0YXRpYyBfX2lubGluZV9fIGludAogdGFz KHZvbGF0aWxlIHNsb2NrX3QgKmxvY2spCkBAIC0zODIsNyArMzgzLDExIEBAIHRhcyh2b2xh dGlsZSBzbG9ja190ICpsb2NrKQogIjE6CWxpICAgICAgJTEsMQkJXG4iCiAiCWIJCTNmCQkJ XG4iCiAiMjoJCQkJCQlcbiIKKyNpZmRlZiBVU0VfUFBDX0xXU1lOQworIglsd3N5bmMJCQkJ XG4iCisjZWxzZQogIglpc3luYwkJCQlcbiIKKyNlbmRpZgogIglsaSAgICAgICUxLDAJCVxu IgogIjM6CQkJCQkJXG4iCiAKQEAgLTM5MiwxMyArMzk3LDI1IEBAIHRhcyh2b2xhdGlsZSBz bG9ja190ICpsb2NrKQogCXJldHVybiBfcmVzOwogfQogCi0vKiBQb3dlclBDIFNfVU5MT0NL IGlzIGFsbW9zdCBzdGFuZGFyZCBidXQgcmVxdWlyZXMgYSAic3luYyIgaW5zdHJ1Y3Rpb24g Ki8KKy8qCisgKiBQb3dlclBDIFNfVU5MT0NLIGlzIGFsbW9zdCBzdGFuZGFyZCBidXQgcmVx dWlyZXMgYSAic3luYyIgaW5zdHJ1Y3Rpb24uCisgKiBPbiBuZXdlciBtYWNoaW5lcywgd2Ug Y2FuIHVzZSBsd3N5bmMgaW5zdGVhZCBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLgorICovCisj aWZkZWYgVVNFX1BQQ19MV1NZTkMKKyNkZWZpbmUgU19VTkxPQ0sobG9jaykJXAorZG8gXAor eyBcCisJX19hc21fXyBfX3ZvbGF0aWxlX18gKCIJbHdzeW5jIFxuIik7IFwKKwkqKCh2b2xh dGlsZSBzbG9ja190ICopIChsb2NrKSkgPSAwOyBcCit9IHdoaWxlICgwKQorI2Vsc2UKICNk ZWZpbmUgU19VTkxPQ0sobG9jaykJXAogZG8gXAogeyBcCiAJX19hc21fXyBfX3ZvbGF0aWxl X18gKCIJc3luYyBcbiIpOyBcCiAJKigodm9sYXRpbGUgc2xvY2tfdCAqKSAobG9jaykpID0g MDsgXAogfSB3aGlsZSAoMCkKKyNlbmRpZiAvKiBVU0VfUFBDX0xXU1lOQyAqLwogCiAjZW5k aWYgLyogcG93ZXJwYyAqLwogCgpjb21taXQgODQ5NmM2Y2Q3N2UyZjVmMTA1ZmM0NzMxNTY4 MDE3NDE1N2Q2NjY0NwpBdXRob3I6IFRvbSBMYW5lIDx0Z2xAc3NzLnBnaC5wYS51cz4KRGF0 ZTogICBTdW4gSmFuIDEgMjI6NDQ6MDEgMjAxMiAtMDUwMAoKICAgIFVzZSA0LWJ5dGUgc2xv Y2tfdCBvbiBib3RoIFBQQyBhbmQgUFBDNjQuCiAgICAKICAgIFByZXZpb3VzbHkgd2UgZGVm aW5lZCBzbG9ja190IGFzIDggYnl0ZXMgb24gUFBDNjQsIGJ1dCB0aGUgVEFTIGFzc2VtYmx5 CiAgICBjb2RlIHVzZXMgd29yZC13aWRlIG9wZXJhdGlvbnMgcmVnYXJkbGVzcywgc28gdGhh dCB0aGUgc2Vjb25kIHdvcmQgd2FzCiAgICBqdXN0IHdhc3RlZCBzcGFjZS4gIFRoZXJlIGRv ZXNuJ3QgYXBwZWFyIHRvIGJlIGFueSBwZXJmb3JtYW5jZSBiZW5lZml0CiAgICBpbiBhZGRp bmcgdGhlIHNlY29uZCB3b3JkLCBzbyBnZXQgcmlkIG9mIGl0IHRvIHNpbXBsaWZ5IHRoZSBj b2RlLgoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc19sb2NrLmggYi9zcmMv aW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oCmluZGV4IGNjNjdiZTguLjJlNTE2M2UgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc19sb2NrLmgKKysrIGIvc3JjL2luY2x1ZGUv c3RvcmFnZS9zX2xvY2suaApAQCAtMzU0LDEzICszNTQsMTAgQEAgdGFzKHZvbGF0aWxlIHNs b2NrX3QgKmxvY2spCiAjaWYgZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcG93ZXJw Y19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQog I2RlZmluZSBIQVNfVEVTVF9BTkRfU0VUCiAKLSNpZiBkZWZpbmVkKF9fcHBjNjRfXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotdHlwZWRlZiB1bnNpZ25lZCBsb25nIHNsb2NrX3Q7 Ci0jZWxzZQogdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2xvY2tfdDsKLSNlbmRpZgogCiAjZGVm aW5lIFRBUyhsb2NrKSB0YXMobG9jaykKKwogLyoKICAqIE5PVEU6IHBlciB0aGUgRW5oYW5j ZWQgUG93ZXJQQyBBcmNoaXRlY3R1cmUgbWFudWFsLCB2MS4wIGRhdGVkIDctTWF5LTIwMDIs CiAgKiBhbiBpc3luYyBpcyBhIHN1ZmZpY2llbnQgc3luY2hyb25pemF0aW9uIGJhcnJpZXIg YWZ0ZXIgYSBsd2FyeC9zdHdjeCBsb29wLgoKY29tbWl0IDVjZmE4ZGQzMDA3ZDdlOTUzYzZh MDNiMGZhMjIxNWQ5N2M1ODFiMGMKQXV0aG9yOiBUb20gTGFuZSA8dGdsQHNzcy5wZ2gucGEu dXM+CkRhdGU6ICAgU3VuIEphbiAxIDIyOjM5OjU5IDIwMTIgLTA1MDAKCiAgICBVc2UgbXV0 ZXggaGludCBiaXQgaW4gUFBDIExXQVJYIGluc3RydWN0aW9ucywgd2hlcmUgcG9zc2libGUu CiAgICAKICAgIFRoZSBoaW50IGJpdCBtYWtlcyBmb3IgYSBzbWFsbCBidXQgbWVhc3VyYWJs ZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudAogICAgaW4gYWNjZXNzIHRvIGNvbnRlbmRlZCBz cGlubG9ja3MuCiAgICAKICAgIE9uIHRoZSBvdGhlciBoYW5kLCBzb21lIFBQQyBjaGlwcyBn aXZlIGFuIGlsbGVnYWwtaW5zdHJ1Y3Rpb24gZmFpbHVyZS4KICAgIFRoZXJlIGRvZXNuJ3Qg c2VlbSB0byBiZSBhIGNvbXBsZXRlbHkgYnVsbGV0cHJvb2Ygd2F5IHRvIHRlbGwgd2hldGhl ciB0aGUKICAgIGhpbnQgYml0IHdpbGwgY2F1c2UgYW4gaWxsZWdhbC1pbnN0cnVjdGlvbiBm YWlsdXJlIG90aGVyIHRoYW4gYnkgdHJ5aW5nCiAgICBpdDsgYnV0IG1vc3QgaWYgbm90IGFs bCA2NC1iaXQgUFBDIG1hY2hpbmVzIHNob3VsZCBhY2NlcHQgaXQsIHNvIGZvbGxvdwogICAg dGhlIExpbnV4IGtlcm5lbCdzIGxlYWQgYW5kIGFzc3VtZSBpdCdzIG9rYXkgdG8gdXNlIGl0 IGluIDY0LWJpdCBidWlsZHMuCiAgICBPZiBjb3Vyc2Ugd2UgbXVzdCBhbHNvIGNoZWNrIHdo ZXRoZXIgdGhlIGFzc2VtYmxlciBhY2NlcHRzIHRoZSBjb21tYW5kLAogICAgc2luY2UgZXZl biB3aXRoIGEgcmVjZW50IENQVSB0aGUgdG9vbGNoYWluIGNvdWxkIGJlIG9sZC4KICAgIAog ICAgUGF0Y2ggYnkgTWFuYWJ1IE9yaSwgc2lnbmlmaWNhbnRseSBtb2RpZmllZCBieSBtZS4K CmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggYmFhMWI5Ny4uNWNi M2Q5YiAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAtMTYzNSw3 ICsxNjM1LDcgQEAgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAogVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZy ZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KIGdpdmVzIHVubGlt aXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KIAot Q29weXJpZ2h0IChjKSAxOTk2LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50 IEdyb3VwCitDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKIF9BQ0VPRgogICBleGl0CiBmaQpAQCAtMTgyMDcsNiArMTgyMDcs NjYgQEAgcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vIFwKICAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25m dGVzdC4kYWNfZXh0CiBmaQogCisjIE9uIFBQQywgY2hlY2sgaWYgYXNzZW1ibGVyIHN1cHBv cnRzIExXQVJYIGluc3RydWN0aW9uJ3MgbXV0ZXggaGludCBiaXQKK2Nhc2UgJGhvc3RfY3B1 IGluCisgIHBwYyp8cG93ZXJwYyopCisgICAgeyAkYXNfZWNobyAiJGFzX21lOiRMSU5FTk86 IGNoZWNraW5nIHdoZXRoZXIgYXNzZW1ibGVyIHN1cHBvcnRzIGx3YXJ4IGhpbnQgYml0IiA+ JjUKKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgYXNzZW1ibGVyIHN1cHBvcnRzIGx3 YXJ4IGhpbnQgYml0Li4uICIgPiY2OyB9CisgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBl bmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworaW50IGEgPSAwOyBpbnQg KnAgPSAmYTsgaW50IHI7CisJIF9fYXNtX18gX192b2xhdGlsZV9fICgiIGx3YXJ4ICUwLDAs JTEsMVxuIiA6ICI9JnIiKHIpIDogInIiKHApKTsKKyAgOworICByZXR1cm4gMDsKK30KK19B Q0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoYWNfdHJ5PSIkYWNfY29t cGlsZSIKK2Nhc2UgIigoJGFjX3RyeSIgaW4KKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190 cnlfZWNobz1cJGFjX3RyeTs7CisgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OworZXNhYwor ZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiRMSU5FTk86ICRhY190cnlfZWNob1wiIgor JGFzX2VjaG8gIiRhY190cnlfZWNobyIpID4mNQorICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAy PmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRl c3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25m dGVzdC5lcnIgPiY1CisgICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsKKwkgdGVzdCAteiAiJGFj X2Nfd2Vycm9yX2ZsYWciIHx8CisJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKKyAgICAgICB9 ICYmIHRlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dDsgdGhlbgorICBwZ2FjX2N2X2hhdmVf cHBjX211dGV4X2hpbnQ9eWVzCitlbHNlCisgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBw cm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQor CisJcGdhY19jdl9oYXZlX3BwY19tdXRleF9oaW50PW5vCitmaQorCitybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKyAgICB7 ICRhc19lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkcGdhY19jdl9oYXZlX3BwY19t dXRleF9oaW50IiA+JjUKKyRhc19lY2hvICIkcGdhY19jdl9oYXZlX3BwY19tdXRleF9oaW50 IiA+JjY7IH0KKyAgICBpZiB0ZXN0IHgiJHBnYWNfY3ZfaGF2ZV9wcGNfbXV0ZXhfaGludCIg PSB4eWVzIDsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBI QVZFX1BQQ19MV0FSWF9NVVRFWF9ISU5UIDEKK19BQ0VPRgorCisgICAgZmkKKyAgOzsKK2Vz YWMKKwogIyBDaGVjayBsYXJnZWZpbGUgc3VwcG9ydC4gIFlvdSBtaWdodCB0aGluayB0aGlz IGlzIGEgc3lzdGVtIHNlcnZpY2Ugbm90IGEKICMgY29tcGlsZXIgY2hhcmFjdGVyaXN0aWMs IGJ1dCB5b3UnZCBiZSB3cm9uZy4gIFdlIG11c3QgY2hlY2sgdGhpcyBiZWZvcmUKICMgcHJv YmluZyBleGlzdGVuY2Ugb2YgcmVsYXRlZCBmdW5jdGlvbnMgc3VjaCBhcyBmc2Vla28sIHNp bmNlIHRoZSBsYXJnZWZpbGUKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3Vy ZS5pbgppbmRleCA0OGRiNWMzLi4zZjE5NWE2IDEwMDY0NAotLS0gYS9jb25maWd1cmUuaW4K KysrIGIvY29uZmlndXJlLmluCkBAIC0xMTcwLDExICsxMTcwLDI3IEBAIGlmIHRlc3QgIiR3 aXRoX2tyYjUiID0geWVzOyB0aGVuCiAgIEFDX01TR19DSEVDS0lORyhmb3Iga3JiNV9mcmVl X3VucGFyc2VkX25hbWUpCiAgIEFDX1RSWV9MSU5LKFsjaW5jbHVkZSA8a3JiNS5oPl0sCiAg ICAgICAgICAgICAgIFtrcmI1X2ZyZWVfdW5wYXJzZWRfbmFtZShOVUxMLE5VTEwpO10sCi0g ICAgICAgICAgICAgIFtBQ19ERUZJTkUoSEFWRV9LUkI1X0ZSRUVfVU5QQVJTRURfTkFNRSwg MSwgW0RlZmluZSB0byAxIGlmIHlvdSBoYXZlIGtyYjVfZnJlZV91bnBhcnNlZF9uYW1lXSkK KyAgICAgICAgICAgICAgW0FDX0RFRklORShIQVZFX0tSQjVfRlJFRV9VTlBBUlNFRF9OQU1F LCAxLCBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUga3JiNV9mcmVlX3VucGFyc2VkX25hbWUu XSkKIEFDX01TR19SRVNVTFQoeWVzKV0sCiAgICAgICAgICAgICAgIFtBQ19NU0dfUkVTVUxU KG5vKV0pCiBmaQogCisjIE9uIFBQQywgY2hlY2sgaWYgYXNzZW1ibGVyIHN1cHBvcnRzIExX QVJYIGluc3RydWN0aW9uJ3MgbXV0ZXggaGludCBiaXQKK2Nhc2UgJGhvc3RfY3B1IGluCisg IHBwYyp8cG93ZXJwYyopCisgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIGFzc2VtYmxl ciBzdXBwb3J0cyBsd2FyeCBoaW50IGJpdF0pCisgICAgQUNfVFJZX0NPTVBJTEUoW10sCisJ W2ludCBhID0gMDsgaW50ICpwID0gJmE7IGludCByOworCSBfX2FzbV9fIF9fdm9sYXRpbGVf XyAoIiBsd2FyeCAlMCwwLCUxLDFcbiIgOiAiPSZyIihyKSA6ICJyIihwKSk7XSwKKwlbcGdh Y19jdl9oYXZlX3BwY19tdXRleF9oaW50PXllc10sCisJW3BnYWNfY3ZfaGF2ZV9wcGNfbXV0 ZXhfaGludD1ub10pCisgICAgQUNfTVNHX1JFU1VMVChbJHBnYWNfY3ZfaGF2ZV9wcGNfbXV0 ZXhfaGludF0pCisgICAgaWYgdGVzdCB4IiRwZ2FjX2N2X2hhdmVfcHBjX211dGV4X2hpbnQi ID0geHllcyA7IHRoZW4KKwlBQ19ERUZJTkUoSEFWRV9QUENfTFdBUlhfTVVURVhfSElOVCwg MSwgW0RlZmluZSB0byAxIGlmIHRoZSBhc3NlbWJsZXIgc3VwcG9ydHMgUFBDJ3MgTFdBUlgg bXV0ZXggaGludCBiaXQuXSkKKyAgICBmaQorICA7OworZXNhYworCiAjIENoZWNrIGxhcmdl ZmlsZSBzdXBwb3J0LiAgWW91IG1pZ2h0IHRoaW5rIHRoaXMgaXMgYSBzeXN0ZW0gc2Vydmlj ZSBub3QgYQogIyBjb21waWxlciBjaGFyYWN0ZXJpc3RpYywgYnV0IHlvdSdkIGJlIHdyb25n LiAgV2UgbXVzdCBjaGVjayB0aGlzIGJlZm9yZQogIyBwcm9iaW5nIGV4aXN0ZW5jZSBvZiBy ZWxhdGVkIGZ1bmN0aW9ucyBzdWNoIGFzIGZzZWVrbywgc2luY2UgdGhlIGxhcmdlZmlsZQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4gYi9zcmMvaW5jbHVkZS9w Z19jb25maWcuaC5pbgppbmRleCBlZjQ2N2I3Li5lMWI3ZmVhIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wZ19jb25maWcuaC5pbgorKysgYi9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5p bgpAQCAtMjc1LDcgKzI3NSw3IEBACiAvKiBEZWZpbmUgdG8gMSBpZiBgdGV4dC5kYXRhJyBp cyBtZW1iZXIgb2YgYGtyYjVfZXJyb3InLiAqLwogI3VuZGVmIEhBVkVfS1JCNV9FUlJPUl9U RVhUX0RBVEEKIAotLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUga3JiNV9mcmVlX3VucGFy c2VkX25hbWUgKi8KKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIGtyYjVfZnJlZV91bnBh cnNlZF9uYW1lLiAqLwogI3VuZGVmIEhBVkVfS1JCNV9GUkVFX1VOUEFSU0VEX05BTUUKIAog LyogRGVmaW5lIHRvIDEgaWYgYGNsaWVudCcgaXMgbWVtYmVyIG9mIGBrcmI1X3RpY2tldCcu ICovCkBAIC0zODQsNiArMzg0LDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSBQT1NJWCBzaWduYWwgaW50ZXJmYWNlLiAqLwogI3VuZGVmIEhBVkVfUE9TSVhfU0lHTkFM UwogCisvKiBEZWZpbmUgdG8gMSBpZiB0aGUgYXNzZW1ibGVyIHN1cHBvcnRzIFBQQydzIExX QVJYIG11dGV4IGhpbnQgYml0LiAqLworI3VuZGVmIEhBVkVfUFBDX0xXQVJYX01VVEVYX0hJ TlQKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwc3RhdCcgZnVuY3Rpb24u ICovCiAjdW5kZWYgSEFWRV9QU1RBVAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ19j b25maWdfbWFudWFsLmggYi9zcmMvaW5jbHVkZS9wZ19jb25maWdfbWFudWFsLmgKaW5kZXgg YWM0MzRmYS4uODEwYmUyNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnX21h bnVhbC5oCisrKyBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZ19tYW51YWwuaApAQCAtNiw2ICs2 LDkgQEAKICAqIGZvciBkZXZlbG9wZXJzLglJZiB5b3UgZWRpdCBhbnkgb2YgdGhlc2UsIGJl IHN1cmUgdG8gZG8gYSAqZnVsbCoKICAqIHJlYnVpbGQgKGFuZCBhbiBpbml0ZGIgaWYgbm90 ZWQpLgogICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDEyLCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCiAg KiBzcmMvaW5jbHVkZS9wZ19jb25maWdfbWFudWFsLmgKICAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgKi8KQEAgLTE3MSw2ICsxNzQsMjEgQEAKICNlbmRpZgogCiAvKgorICogT24gUFBDIG1h Y2hpbmVzLCBkZWNpZGUgd2hldGhlciB0byB1c2UgdGhlIG11dGV4IGhpbnQgYml0IGluIExX QVJYCisgKiBpbnN0cnVjdGlvbnMuICBTZXR0aW5nIHRoZSBoaW50IGJpdCB3aWxsIHNsaWdo dGx5IGltcHJvdmUgc3BpbmxvY2sKKyAqIHBlcmZvcm1hbmNlIG9uIFBPV0VSNiBhbmQgbGF0 ZXIgbWFjaGluZXMsIGJ1dCBkb2VzIG5vdGhpbmcgYmVmb3JlIHRoYXQsCisgKiBhbmQgd2ls bCByZXN1bHQgaW4gaWxsZWdhbC1pbnN0cnVjdGlvbiBmYWlsdXJlcyBvbiBzb21lIHByZS1Q T1dFUjQKKyAqIG1hY2hpbmVzLiAgQnkgZGVmYXVsdCB3ZSB1c2UgdGhlIGhpbnQgYml0IHdo ZW4gYnVpbGRpbmcgZm9yIDY0LWJpdCBQUEMsCisgKiB3aGljaCBzaG91bGQgYmUgc2FmZSBp biBuZWFybHkgYWxsIGNhc2VzLiAgWW91IG1pZ2h0IHdhbnQgdG8gb3ZlcnJpZGUKKyAqIHRo aXMgaWYgeW91IGFyZSBidWlsZGluZyAzMi1iaXQgY29kZSBmb3IgYSBrbm93bi1yZWNlbnQg UFBDIG1hY2hpbmUuCisgKi8KKyNpZmRlZiBIQVZFX1BQQ19MV0FSWF9NVVRFWF9ISU5UIC8q IG11c3QgaGF2ZSBhc3NlbWJsZXIgc3VwcG9ydCBpbiBhbnkgY2FzZSAqLworI2lmIGRlZmlu ZWQoX19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisjZGVmaW5lIFVTRV9Q UENfTFdBUlhfTVVURVhfSElOVAorI2VuZGlmCisjZW5kaWYKKworLyoKICAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgKiBUaGUgZm9sbG93aW5nIHN5bWJvbHMgYXJlIGZvciBlbmFibGluZyBk ZWJ1Z2dpbmcgY29kZSwgbm90IGZvcgogICogY29udHJvbGxpbmcgdXNlci12aXNpYmxlIGZl YXR1cmVzIG9yIHJlc291cmNlIGxpbWl0cy4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0 b3JhZ2Uvc19sb2NrLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oCmluZGV4IDk4 YzEyZGIuLmNjNjdiZTggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc19sb2Nr LmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zX2xvY2suaApAQCAtMzcyLDcgKzM3Miwx MSBAQCB0YXModm9sYXRpbGUgc2xvY2tfdCAqbG9jaykKIAlpbnQgX3JlczsKIAogCV9fYXNt X18gX192b2xhdGlsZV9fKAorI2lmZGVmIFVTRV9QUENfTFdBUlhfTVVURVhfSElOVAorIgls d2FyeCAgICUwLDAsJTMsMQlcbiIKKyNlbHNlCiAiCWx3YXJ4ICAgJTAsMCwlMwkJXG4iCisj ZW5kaWYKICIJY21wd2kgICAlMCwwCQlcbiIKICIJYm5lICAgICAxZgkJCVxuIgogIglhZGRp ICAgICUwLCUwLDEJCVxuIgoKY29tbWl0IDZiNjEzN2U0ZWZlYmNkNzY3YTM0OTA5OWIzZTA0 OGZiYzc3NTVjY2EKQXV0aG9yOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpE YXRlOiAgIFN1biBKYW4gMSAyMjoyNzoyNyAyMDEyIC0wNTAwCgogICAgVXBkYXRlIGNvcHly aWdodCBnaXQgc2tpcCBjb21tZW50LgoKZGlmZiAtLWdpdCBhL3NyYy90b29scy9jb3B5cmln aHQucGwgYi9zcmMvdG9vbHMvY29weXJpZ2h0LnBsCmluZGV4IGQ1MmE2N2UuLjczOWYxODIg MTAwNzU1Ci0tLSBhL3NyYy90b29scy9jb3B5cmlnaHQucGwKKysrIGIvc3JjL3Rvb2xzL2Nv cHlyaWdodC5wbApAQCAtMjMsNyArMjMsNyBAQCBwcmludCAiVXNpbmcgY3VycmVudCB5ZWFy OiAgJHllYXJcbiI7CiBmaW5kKHt3YW50ZWQgPT4gXCZ3YW50ZWQsIG5vX2NoZGlyID0+IDF9 LCAnLicpOwogCiBzdWIgd2FudGVkIHsKLSAgICAjIHByZXZlbnQgY29ycnVwdGlvbiBvZiBn aXQgaW5kZXhlcywgLi8uZ2l0CisgICAgIyBwcmV2ZW50IGNvcnJ1cHRpb24gb2YgZ2l0IGlu ZGV4ZXMgYnkgaWdub3JpbmcgYW55IC5naXQvCiAgICAgaWYgKCRfIGVxICcuZ2l0JykKICAg ICB7CiAgICAgICAgICRGaWxlOjpGaW5kOjpwcnVuZSA9IDE7Cgpjb21taXQgYmVkNzYyYzgx ZTZhN2Y2MjY5NWQ2YzhhY2I3OGYxNWM4ZTg1MzQyZQpBdXRob3I6IEJydWNlIE1vbWppYW4g PGJydWNlQG1vbWppYW4udXM+CkRhdGU6ICAgU3VuIEphbiAxIDE5OjQ3OjI0IDIwMTIgLTA1 MDAKCiAgICBTa2lwIGFueSAuZ2l0IGRpcmVjdG9yeSBmb3IgY29weXJpZ2h0IGNoYW5nZXMs IG5vdCBqdXN0IHRvcC1sZXZlbCAuZ2l0CiAgICBkaXJlY3Rvcmllcy4gIFBlciBzdWdnZXN0 aW9uIGZyb20gQW5kcmV3IER1bnN0YW4uCgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL2NvcHly aWdodC5wbCBiL3NyYy90b29scy9jb3B5cmlnaHQucGwKaW5kZXggNzk0NThiNS4uZDUyYTY3 ZSAxMDA3NTUKLS0tIGEvc3JjL3Rvb2xzL2NvcHlyaWdodC5wbAorKysgYi9zcmMvdG9vbHMv Y29weXJpZ2h0LnBsCkBAIC0yNCw3ICsyNCw3IEBAIGZpbmQoe3dhbnRlZCA9PiBcJndhbnRl ZCwgbm9fY2hkaXIgPT4gMX0sICcuJyk7CiAKIHN1YiB3YW50ZWQgewogICAgICMgcHJldmVu dCBjb3JydXB0aW9uIG9mIGdpdCBpbmRleGVzLCAuLy5naXQKLSAgICBpZiAoJEZpbGU6OkZp bmQ6Om5hbWUgPX4gbXteXC4vXC5naXQkfSkKKyAgICBpZiAoJF8gZXEgJy5naXQnKQogICAg IHsKICAgICAgICAgJEZpbGU6OkZpbmQ6OnBydW5lID0gMTsKICAgICAgICAgcmV0dXJuOwoK Y29tbWl0IGI1ZWIwNmEyMmE1YTgxMWNiZGQwNjVhYzUyNTgwYmJjYzU5NDY5YTAKQXV0aG9y OiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRlOiAgIFN1biBKYW4gMSAx OTo0MjowNyAyMDEyIC0wNTAwCgogICAgUmV2ZXJ0IGJpbmFyeSBjaGFuZ2UgaW4gY29weXJp Z2h0IHllYXIgYWRqdXN0bWVudC4KCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnZXZlbnQvTVNH MDAwMDEuYmluIGIvc3JjL2Jpbi9wZ2V2ZW50L01TRzAwMDAxLmJpbgppbmRleCAwNWM0NTJi Li42YWMwOGU1IDEwMDY0NApCaW5hcnkgZmlsZXMgYS9zcmMvYmluL3BnZXZlbnQvTVNHMDAw MDEuYmluIGFuZCBiL3NyYy9iaW4vcGdldmVudC9NU0cwMDAwMS5iaW4gZGlmZmVyCgpjb21t aXQgMTM1ODgwMWI3YTdhZmVkODQwYjc4MGQ3YzUyZTIwOTIxYTQ4M2VkMQpBdXRob3I6IEJy dWNlIE1vbWppYW4gPGJydWNlQG1vbWppYW4udXM+CkRhdGU6ICAgU3VuIEphbiAxIDE5OjQw OjEzIDIwMTIgLTA1MDAKCiAgICBSZXZlcnQgYmluYXJ5IGNoYW5nZSBpbiBjb3B5cmlnaHQg eWVhciBhZGp1c3RtZW50LgoKZGlmZiAtLWdpdCBhL3NyYy9wb3J0L3dpbjMyLmljbyBiL3Ny Yy9wb3J0L3dpbjMyLmljbwppbmRleCBmOTQ4Zjk5Li5hNThlZTQzIDEwMDY0NApCaW5hcnkg ZmlsZXMgYS9zcmMvcG9ydC93aW4zMi5pY28gYW5kIGIvc3JjL3BvcnQvd2luMzIuaWNvIGRp ZmZlcgoKY29tbWl0IGY0Y2Q3NDdhNGQ3NjA2MDBlYzk3OTFhOTU5NTdlOTkzYzMyMGJhNjMK QXV0aG9yOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRlOiAgIFN1biBK YW4gMSAxOTozNjoxMCAyMDEyIC0wNTAwCgogICAgU2tpcCAnaWNvJyBhbmQgJ2JpbicgZXh0 ZW5zaW9ucyBpbiBjb3B5cmlnaHQgY2hhbmdlcy4KCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMv Y29weXJpZ2h0LnBsIGIvc3JjL3Rvb2xzL2NvcHlyaWdodC5wbAppbmRleCA3MDVlZGFmLi43 OTQ1OGI1IDEwMDc1NQotLS0gYS9zcmMvdG9vbHMvY29weXJpZ2h0LnBsCisrKyBiL3NyYy90 b29scy9jb3B5cmlnaHQucGwKQEAgLTMxLDYgKzMxLDcgQEAgc3ViIHdhbnRlZCB7CiAgICAg fQogCiAgICAgcmV0dXJuIGlmICEgLWYgJEZpbGU6OkZpbmQ6Om5hbWUgfHwgLWwgJEZpbGU6 OkZpbmQ6Om5hbWU7CisgICAgcmV0dXJuIGlmICgkXyA9fiBtL1wuKGljb3xiaW4pJCk7CiAK ICAgICBteSBAbGluZXM7CiAgICAgdGllIEBsaW5lcywgIlRpZTo6RmlsZSIsICRGaWxlOjpG aW5kOjpuYW1lOwoKY29tbWl0IGUxMjY5NThjMmVmZGZjMmQ2MGI5NzhkMWZjN2E3ODBmZjY0 N2U4YWQKQXV0aG9yOiBCcnVjZSBNb21qaWFuIDxicnVjZUBtb21qaWFuLnVzPgpEYXRlOiAg IFN1biBKYW4gMSAxODowMTo1OCAyMDEyIC0wNTAwCgogICAgVXBkYXRlIGNvcHlyaWdodCBu b3RpY2VzIGZvciB5ZWFyIDIwMTIuCgpkaWZmIC0tZ2l0IGEvQ09QWVJJR0hUIGIvQ09QWVJJ R0hUCmluZGV4IDRiYWJiZjMuLmQ1NTEyZDEgMTAwNjQ0Ci0tLSBhL0NPUFlSSUdIVAorKysg Yi9DT1BZUklHSFQKQEAgLTEsNyArMSw3IEBACiBQb3N0Z3JlU1FMIERhdGFiYXNlIE1hbmFn ZW1lbnQgU3lzdGVtCiAoZm9ybWVybHkga25vd24gYXMgUG9zdGdyZXMsIHRoZW4gYXMgUG9z dGdyZXM5NSkKIAotUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTEsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCitQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTYtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKIAogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk0LCBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBv ZiBDYWxpZm9ybmlhCiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRl eCBiZmM3YTFmLi5iYWExYjk3IDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmln dXJlCkBAIC05LDcgKzksNyBAQAogIyBUaGlzIGNvbmZpZ3VyZSBzY3JpcHQgaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCiAjCi0j IENvcHlyaWdodCAoYykgMTk5Ni0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorIyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKICMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwogIyMgTTRz aCBJbml0aWFsaXphdGlvbi4gICMjCiAjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKZGlm ZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgppbmRleCA1NGNhODIwLi40 OGRiNWMzIDEwMDY0NAotLS0gYS9jb25maWd1cmUuaW4KKysrIGIvY29uZmlndXJlLmluCkBA IC0yMyw3ICsyMyw3IEBAIG00X2lmKG00X2RlZm4oW200X1BBQ0tBR0VfVkVSU0lPTl0pLCBb Mi42M10sIFtdLCBbbTRfZmF0YWwoW0F1dG9jb25mIHZlcnNpb24gMi42CiBVbnRlc3RlZCBj b21iaW5hdGlvbnMgb2YgJ2F1dG9jb25mJyBhbmQgUG9zdGdyZVNRTCB2ZXJzaW9ucyBhcmUg bm90CiByZWNvbW1lbmRlZC4gIFlvdSBjYW4gcmVtb3ZlIHRoZSBjaGVjayBmcm9tICdjb25m aWd1cmUuaW4nIGJ1dCBpdCBpcyB0aGVuCiB5b3VyIHJlc3BvbnNpYmlsaXR5IHdoZXRoZXIg dGhlIHJlc3VsdCB3b3JrcyBvciBub3QuXSldKQotQUNfQ09QWVJJR0hUKFtDb3B5cmlnaHQg KGMpIDE5OTYtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXBdKQor QUNfQ09QWVJJR0hUKFtDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdyZVNRTCBHbG9i YWwgRGV2ZWxvcG1lbnQgR3JvdXBdKQogQUNfQ09ORklHX1NSQ0RJUihbc3JjL2JhY2tlbmQv YWNjZXNzL2NvbW1vbi9oZWFwdHVwbGUuY10pCiBBQ19DT05GSUdfQVVYX0RJUihjb25maWcp CiBBQ19QUkVGSVhfREVGQVVMVCgvdXNyL2xvY2FsL3Bnc3FsKQpkaWZmIC0tZ2l0IGEvY29u dHJpYi9hZG1pbnBhY2svYWRtaW5wYWNrLmMgYi9jb250cmliL2FkbWlucGFjay9hZG1pbnBh Y2suYwppbmRleCA5OWZhMDJlLi40MzFhNjc1IDEwMDY0NAotLS0gYS9jb250cmliL2FkbWlu cGFjay9hZG1pbnBhY2suYworKysgYi9jb250cmliL2FkbWlucGFjay9hZG1pbnBhY2suYwpA QCAtMyw3ICszLDcgQEAKICAqIGFkbWlucGFjay5jCiAgKgogICoKLSAqIENvcHlyaWdodCAo YykgMjAwMi0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICog Q29weXJpZ2h0IChjKSAyMDAyLTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50 IEdyb3VwCiAgKgogICogQXV0aG9yOiBBbmRyZWFzIFBmbHVnIDxwZ2FkbWluQHBzZS1jb25z dWx0aW5nLmRlPgogICoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXV0b19leHBsYWluL2F1dG9f ZXhwbGFpbi5jIGIvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWluLmMKaW5kZXgg YjMyMDY5OC4uNjFkYTZhMiAxMDA2NDQKLS0tIGEvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0 b19leHBsYWluLmMKKysrIGIvY29udHJpYi9hdXRvX2V4cGxhaW4vYXV0b19leHBsYWluLmMK QEAgLTMsNyArMyw3IEBACiAgKiBhdXRvX2V4cGxhaW4uYwogICoKICAqCi0gKiBDb3B5cmln aHQgKGMpIDIwMDgtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAK KyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAogICoKICAqIElERU5USUZJQ0FUSU9OCiAgKgkgIGNvbnRyaWIvYXV0b19l eHBsYWluL2F1dG9fZXhwbGFpbi5jCmRpZmYgLS1naXQgYS9jb250cmliL2RibGluay9kYmxp bmsuYyBiL2NvbnRyaWIvZGJsaW5rL2RibGluay5jCmluZGV4IDYyYzgxMGEuLjM2YThlM2Ug MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZGJsaW5rL2RibGluay5jCisrKyBiL2NvbnRyaWIvZGJs aW5rL2RibGluay5jCkBAIC05LDcgKzksNyBAQAogICogU2hyaWRoYXIgRGFpdGhhbmthciA8 c2hyaWRoYXJfZGFpdGhhbmthckBwZXJzaXN0ZW50LmNvLmluPgogICoKICAqIGNvbnRyaWIv ZGJsaW5rL2RibGluay5jCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAxMSwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDEy LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICogQUxMIFJJR0hUUyBS RVNFUlZFRDsKICAqCiAgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQg ZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKZGlmZiAtLWdpdCBhL2NvbnRyaWIv ZGJsaW5rL2RibGluay5oIGIvY29udHJpYi9kYmxpbmsvZGJsaW5rLmgKaW5kZXggNDBkZTgz Zi4uOTM1ZDI4MyAxMDA2NDQKLS0tIGEvY29udHJpYi9kYmxpbmsvZGJsaW5rLmgKKysrIGIv Y29udHJpYi9kYmxpbmsvZGJsaW5rLmgKQEAgLTksNyArOSw3IEBACiAgKiBTaHJpZGhhciBE YWl0aGFua2FyIDxzaHJpZGhhcl9kYWl0aGFua2FyQHBlcnNpc3RlbnQuY28uaW4+CiAgKgog ICogY29udHJpYi9kYmxpbmsvZGJsaW5rLmgKLSAqIENvcHlyaWdodCAoYykgMjAwMS0yMDEx LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogQ29weXJpZ2h0IChj KSAyMDAxLTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBB TEwgUklHSFRTIFJFU0VSVkVEOwogICoKICAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBt b2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgYW5kIGl0cwpkaWZmIC0tZ2l0 IGEvY29udHJpYi9kaWN0X2ludC9kaWN0X2ludC5jIGIvY29udHJpYi9kaWN0X2ludC9kaWN0 X2ludC5jCmluZGV4IDY4OTY0NTQuLjRiZWFmOTIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvZGlj dF9pbnQvZGljdF9pbnQuYworKysgYi9jb250cmliL2RpY3RfaW50L2RpY3RfaW50LmMKQEAg LTMsNyArMyw3IEBACiAgKiBkaWN0X2ludC5jCiAgKgkgIFRleHQgc2VhcmNoIGRpY3Rpb25h cnkgZm9yIGludGVnZXJzCiAgKgotICogQ29weXJpZ2h0IChjKSAyMDA3LTIwMTEsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBDb3B5cmlnaHQgKGMpIDIwMDct MjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqCiAgKiBJREVO VElGSUNBVElPTgogICoJICBjb250cmliL2RpY3RfaW50L2RpY3RfaW50LmMKZGlmZiAtLWdp dCBhL2NvbnRyaWIvZGljdF94c3luL2RpY3RfeHN5bi5jIGIvY29udHJpYi9kaWN0X3hzeW4v ZGljdF94c3luLmMKaW5kZXggZDQ3MzE1Yi4uNTlmOTc3ZSAxMDA2NDQKLS0tIGEvY29udHJp Yi9kaWN0X3hzeW4vZGljdF94c3luLmMKKysrIGIvY29udHJpYi9kaWN0X3hzeW4vZGljdF94 c3luLmMKQEAgLTMsNyArMyw3IEBACiAgKiBkaWN0X3hzeW4uYwogICoJICBFeHRlbmRlZCBz eW5vbnltIGRpY3Rpb25hcnkKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMSwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIENvcHlyaWdodCAoYykgMjAw Ny0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICoKICAqIElE RU5USUZJQ0FUSU9OCiAgKgkgIGNvbnRyaWIvZGljdF94c3luL2RpY3RfeHN5bi5jCmRpZmYg LS1naXQgYS9jb250cmliL2R1bW15X3NlY2xhYmVsL2R1bW15X3NlY2xhYmVsLmMgYi9jb250 cmliL2R1bW15X3NlY2xhYmVsL2R1bW15X3NlY2xhYmVsLmMKaW5kZXggMjk3OWZlYy4uNzVl NGY4YyAxMDA2NDQKLS0tIGEvY29udHJpYi9kdW1teV9zZWNsYWJlbC9kdW1teV9zZWNsYWJl bC5jCisrKyBiL2NvbnRyaWIvZHVtbXlfc2VjbGFiZWwvZHVtbXlfc2VjbGFiZWwuYwpAQCAt Nyw3ICs3LDcgQEAKICAqIHBlcnNwZWN0aXZlLCBidXQgYWxsb3dzIHJlZ3Jlc3Npb24gdGVz dGluZyBpbmRlcGVuZGVudCBvZiBwbGF0Zm9ybS1zcGVjaWZpYwogICogZmVhdHVyZXMgbGlr ZSBTRUxpbnV4LgogICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDExLCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk2LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZl cnNpdHkgb2YgQ2FsaWZvcm5pYQogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKZGlmZiAt LWdpdCBhL2NvbnRyaWIvZmlsZV9mZHcvZmlsZV9mZHcuYyBiL2NvbnRyaWIvZmlsZV9mZHcv ZmlsZV9mZHcuYwppbmRleCAxY2YzYjNjLi40NjM5NGE4IDEwMDY0NAotLS0gYS9jb250cmli L2ZpbGVfZmR3L2ZpbGVfZmR3LmMKKysrIGIvY29udHJpYi9maWxlX2Zkdy9maWxlX2Zkdy5j CkBAIC0zLDcgKzMsNyBAQAogICogZmlsZV9mZHcuYwogICoJCSAgZm9yZWlnbi1kYXRhIHdy YXBwZXIgZm9yIHNlcnZlci1zaWRlIGZsYXQgZmlsZXMuCiAgKgotICogQ29weXJpZ2h0IChj KSAyMDEwLTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBD b3B5cmlnaHQgKGMpIDIwMTAtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKICAqCiAgKiBJREVOVElGSUNBVElPTgogICoJCSAgY29udHJpYi9maWxlX2Zkdy9m aWxlX2Zkdy5jCmRpZmYgLS1naXQgYS9jb250cmliL2Z1enp5c3RybWF0Y2gvZnV6enlzdHJt YXRjaC5jIGIvY29udHJpYi9mdXp6eXN0cm1hdGNoL2Z1enp5c3RybWF0Y2guYwppbmRleCA5 OGI5NWJmLi5iOWMyMTY1IDEwMDY0NAotLS0gYS9jb250cmliL2Z1enp5c3RybWF0Y2gvZnV6 enlzdHJtYXRjaC5jCisrKyBiL2NvbnRyaWIvZnV6enlzdHJtYXRjaC9mdXp6eXN0cm1hdGNo LmMKQEAgLTYsNyArNiw3IEBACiAgKiBKb2UgQ29ud2F5IDxtYWlsQGpvZWNvbndheS5jb20+ CiAgKgogICogY29udHJpYi9mdXp6eXN0cm1hdGNoL2Z1enp5c3RybWF0Y2guYwotICogQ29w eXJpZ2h0IChjKSAyMDAxLTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKICAqIEFMTCBSSUdIVFMgUkVTRVJWRUQ7CiAgKgogICogbWV0YXBo b25lKCkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZnV6enlzdHJtYXRjaC9sZXZlbnNodGVpbi5j IGIvY29udHJpYi9mdXp6eXN0cm1hdGNoL2xldmVuc2h0ZWluLmMKaW5kZXggYTg0YzQ2YS4u NDAwMzVjYSAxMDA2NDQKLS0tIGEvY29udHJpYi9mdXp6eXN0cm1hdGNoL2xldmVuc2h0ZWlu LmMKKysrIGIvY29udHJpYi9mdXp6eXN0cm1hdGNoL2xldmVuc2h0ZWluLmMKQEAgLTUsNyAr NSw3IEBACiAgKgogICogSm9lIENvbndheSA8bWFpbEBqb2Vjb253YXkuY29tPgogICoKLSAq IENvcHlyaWdodCAoYykgMjAwMS0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMTIsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCiAgKiBBTEwgUklHSFRTIFJFU0VSVkVEOwogICoKICAqIGxl dmVuc2h0ZWluKCkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaXNuL2lzbi5jIGIvY29udHJpYi9p c24vaXNuLmMKaW5kZXggYWM1ZjIxYy4uMTgxYmJkNCAxMDA2NDQKLS0tIGEvY29udHJpYi9p c24vaXNuLmMKKysrIGIvY29udHJpYi9pc24vaXNuLmMKQEAgLTQsNyArNCw3IEBACiAgKgkg IFBvc3RncmVTUUwgdHlwZSBkZWZpbml0aW9ucyBmb3IgSVNOcyAoSVNCTiwgSVNNTiwgSVNT TiwgRUFOMTMsIFVQQykKICAqCiAgKiBBdXRob3I6CUdlcm1hbiBNZW5kZXogQnJhdm8gKEty b251eikKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDExLCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKgogICog SURFTlRJRklDQVRJT04KICAqCSAgY29udHJpYi9pc24vaXNuLmMKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvaXNuL2lzbi5oIGIvY29udHJpYi9pc24vaXNuLmgKaW5kZXggM2Y0NzhiNS4uN2E0 YjNjYSAxMDA2NDQKLS0tIGEvY29udHJpYi9pc24vaXNuLmgKKysrIGIvY29udHJpYi9pc24v aXNuLmgKQEAgLTQsNyArNCw3IEBACiAgKgkgIFBvc3RncmVTUUwgdHlwZSBkZWZpbml0aW9u cyBmb3IgSVNOcyAoSVNCTiwgSVNNTiwgSVNTTiwgRUFOMTMsIFVQQykKICAqCiAgKiBBdXRo b3I6CUdlcm1hbiBNZW5kZXogQnJhdm8gKEtyb251eikKLSAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5Ni0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAor ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCiAgKgogICogSURFTlRJRklDQVRJT04KICAqCSAgY29udHJp Yi9pc24vaXNuLmgKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGFnZWluc3BlY3QvZnNtZnVuY3Mu YyBiL2NvbnRyaWIvcGFnZWluc3BlY3QvZnNtZnVuY3MuYwppbmRleCAwZDZiYzE0Li5jOTZk NGJlIDEwMDY0NAotLS0gYS9jb250cmliL3BhZ2VpbnNwZWN0L2ZzbWZ1bmNzLmMKKysrIGIv Y29udHJpYi9wYWdlaW5zcGVjdC9mc21mdW5jcy5jCkBAIC05LDcgKzksNyBAQAogICogdGhl cmUncyBoYXJkbHkgYW55IHVzZSBjYXNlIGZvciB1c2luZyB0aGVzZSB3aXRob3V0IHN1cGVy dXNlci1yaWdodHMKICAqIGFueXdheS4KICAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDctMjAx MSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIENvcHlyaWdodCAo YykgMjAwNy0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICoK ICAqIElERU5USUZJQ0FUSU9OCiAgKgkgIGNvbnRyaWIvcGFnZWluc3BlY3QvZnNtZnVuY3Mu YwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wYWdlaW5zcGVjdC9oZWFwZnVuY3MuYyBiL2NvbnRy aWIvcGFnZWluc3BlY3QvaGVhcGZ1bmNzLmMKaW5kZXggZmE1MDY1NS4uMjYwY2NmZiAxMDA2 NDQKLS0tIGEvY29udHJpYi9wYWdlaW5zcGVjdC9oZWFwZnVuY3MuYworKysgYi9jb250cmli L3BhZ2VpbnNwZWN0L2hlYXBmdW5jcy5jCkBAIC0xNSw3ICsxNSw3IEBACiAgKiB0aGVyZSdz IGhhcmRseSBhbnkgdXNlIGNhc2UgZm9yIHVzaW5nIHRoZXNlIHdpdGhvdXQgc3VwZXJ1c2Vy LXJpZ2h0cwogICogYW55d2F5LgogICoKLSAqIENvcHlyaWdodCAoYykgMjAwNy0yMDExLCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogQ29weXJpZ2h0IChjKSAy MDA3LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKgogICog SURFTlRJRklDQVRJT04KICAqCSAgY29udHJpYi9wYWdlaW5zcGVjdC9oZWFwZnVuY3MuYwpk aWZmIC0tZ2l0IGEvY29udHJpYi9wYWdlaW5zcGVjdC9yYXdwYWdlLmMgYi9jb250cmliL3Bh Z2VpbnNwZWN0L3Jhd3BhZ2UuYwppbmRleCAzNjJhZDg0Li5mNTFhNGUzIDEwMDY0NAotLS0g YS9jb250cmliL3BhZ2VpbnNwZWN0L3Jhd3BhZ2UuYworKysgYi9jb250cmliL3BhZ2VpbnNw ZWN0L3Jhd3BhZ2UuYwpAQCAtNSw3ICs1LDcgQEAKICAqCiAgKiBBY2Nlc3MtbWV0aG9kIHNw ZWNpZmljIGluc3BlY3Rpb24gZnVuY3Rpb25zIGFyZSBpbiBzZXBhcmF0ZSBmaWxlcy4KICAq Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKKyAqIENvcHlyaWdodCAoYykgMjAwNy0yMDEyLCBQb3N0Z3JlU1FMIEds b2JhbCBEZXZlbG9wbWVudCBHcm91cAogICoKICAqIElERU5USUZJQ0FUSU9OCiAgKgkgIGNv bnRyaWIvcGFnZWluc3BlY3QvcmF3cGFnZS5jCmRpZmYgLS1naXQgYS9jb250cmliL3Bhc3N3 b3JkY2hlY2svcGFzc3dvcmRjaGVjay5jIGIvY29udHJpYi9wYXNzd29yZGNoZWNrL3Bhc3N3 b3JkY2hlY2suYwppbmRleCA3MTFlYzlmLi44ZDZkZWEyIDEwMDY0NAotLS0gYS9jb250cmli L3Bhc3N3b3JkY2hlY2svcGFzc3dvcmRjaGVjay5jCisrKyBiL2NvbnRyaWIvcGFzc3dvcmRj aGVjay9wYXNzd29yZGNoZWNrLmMKQEAgLTMsNyArMyw3IEBACiAgKiBwYXNzd29yZGNoZWNr LmMKICAqCiAgKgotICogQ29weXJpZ2h0IChjKSAyMDA5LTIwMTEsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBDb3B5cmlnaHQgKGMpIDIwMDktMjAxMiwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqCiAgKiBBdXRob3I6IExhdXJl bnogQWxiZSA8bGF1cmVuei5hbGJlQHdpZW4uZ3YuYXQ+CiAgKgpkaWZmIC0tZ2l0IGEvY29u dHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMgYi9jb250cmli L3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwppbmRleCA4ZGMzMDU0 Li40MzRhYTcxIDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19z dGF0X3N0YXRlbWVudHMuYworKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19z dGF0X3N0YXRlbWVudHMuYwpAQCAtMTEsNyArMTEsNyBAQAogICogZGlzYXBwZWFyISkgYW5k IGFsc28gdGFrZSB0aGUgZW50cnkncyBtdXRleCBzcGlubG9jay4KICAqCiAgKgotICogQ29w eXJpZ2h0IChjKSAyMDA4LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKICAqCiAgKiBJREVOVElGSUNBVElPTgogICoJICBjb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9wZ191cGdyYWRlL2NoZWNrLmMgYi9jb250cmliL3BnX3VwZ3JhZGUvY2hlY2suYwpp bmRleCA3MTg1ZjEzLi44NTk0ZDI2IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3VwZ3JhZGUv Y2hlY2suYworKysgYi9jb250cmliL3BnX3VwZ3JhZGUvY2hlY2suYwpAQCAtMyw3ICszLDcg QEAKICAqCiAgKglzZXJ2ZXIgY2hlY2tzIGFuZCBvdXRwdXQgcm91dGluZXMKICAqCi0gKglD b3B5cmlnaHQgKGMpIDIwMTAtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKKyAqCUNvcHlyaWdodCAoYykgMjAxMC0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAogICoJY29udHJpYi9wZ191cGdyYWRlL2NoZWNrLmMKICAqLwog CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3VwZ3JhZGUvY29udHJvbGRhdGEuYyBiL2NvbnRy aWIvcGdfdXBncmFkZS9jb250cm9sZGF0YS5jCmluZGV4IDExMjBkNzkuLjg1NjBkODggMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdXBncmFkZS9jb250cm9sZGF0YS5jCisrKyBiL2NvbnRy aWIvcGdfdXBncmFkZS9jb250cm9sZGF0YS5jCkBAIC0zLDcgKzMsNyBAQAogICoKICAqCWNv bnRyb2xkYXRhIGZ1bmN0aW9ucwogICoKLSAqCUNvcHlyaWdodCAoYykgMjAxMC0yMDExLCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoJQ29weXJpZ2h0IChjKSAy MDEwLTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKgljb250 cmliL3BnX3VwZ3JhZGUvY29udHJvbGRhdGEuYwogICovCiAKZGlmZiAtLWdpdCBhL2NvbnRy aWIvcGdfdXBncmFkZS9kdW1wLmMgYi9jb250cmliL3BnX3VwZ3JhZGUvZHVtcC5jCmluZGV4 IDJhZjUwYmMuLjc3MmNhMzcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdXBncmFkZS9kdW1w LmMKKysrIGIvY29udHJpYi9wZ191cGdyYWRlL2R1bXAuYwpAQCAtMyw3ICszLDcgQEAKICAq CiAgKglkdW1wIGZ1bmN0aW9ucwogICoKLSAqCUNvcHlyaWdodCAoYykgMjAxMC0yMDExLCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoJQ29weXJpZ2h0IChjKSAy MDEwLTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKgljb250 cmliL3BnX3VwZ3JhZGUvZHVtcC5jCiAgKi8KIApkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ191 cGdyYWRlL2V4ZWMuYyBiL2NvbnRyaWIvcGdfdXBncmFkZS9leGVjLmMKaW5kZXggZmY5YjMx Ny4uYjg3MGRlZCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ191cGdyYWRlL2V4ZWMuYworKysg Yi9jb250cmliL3BnX3VwZ3JhZGUvZXhlYy5jCkBAIC0zLDcgKzMsNyBAQAogICoKICAqCWV4 ZWN1dGlvbiBmdW5jdGlvbnMKICAqCi0gKglDb3B5cmlnaHQgKGMpIDIwMTAtMjAxMSwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCUNvcHlyaWdodCAoYykgMjAx MC0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICoJY29udHJp Yi9wZ191cGdyYWRlL2V4ZWMuYwogICovCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdXBn cmFkZS9maWxlLmMgYi9jb250cmliL3BnX3VwZ3JhZGUvZmlsZS5jCmluZGV4IDBlYTI2OWYu LmZjZjFjNDQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdXBncmFkZS9maWxlLmMKKysrIGIv Y29udHJpYi9wZ191cGdyYWRlL2ZpbGUuYwpAQCAtMyw3ICszLDcgQEAKICAqCiAgKglmaWxl IHN5c3RlbSBvcGVyYXRpb25zCiAgKgotICoJQ29weXJpZ2h0IChjKSAyMDEwLTIwMTEsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKglDb3B5cmlnaHQgKGMpIDIw MTAtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqCWNvbnRy aWIvcGdfdXBncmFkZS9maWxlLmMKICAqLwogCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Vw Z3JhZGUvZnVuY3Rpb24uYyBiL2NvbnRyaWIvcGdfdXBncmFkZS9mdW5jdGlvbi5jCmluZGV4 IGIxNTRmMDMuLjU0ZjEzOWEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdXBncmFkZS9mdW5j dGlvbi5jCisrKyBiL2NvbnRyaWIvcGdfdXBncmFkZS9mdW5jdGlvbi5jCkBAIC0zLDcgKzMs NyBAQAogICoKICAqCXNlcnZlci1zaWRlIGZ1bmN0aW9uIHN1cHBvcnQKICAqCi0gKglDb3B5 cmlnaHQgKGMpIDIwMTAtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKyAqCUNvcHlyaWdodCAoYykgMjAxMC0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAogICoJY29udHJpYi9wZ191cGdyYWRlL2Z1bmN0aW9uLmMKICAqLwog CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3VwZ3JhZGUvaW5mby5jIGIvY29udHJpYi9wZ191 cGdyYWRlL2luZm8uYwppbmRleCBjMzNlMTNhLi5lODM2MWNlIDEwMDY0NAotLS0gYS9jb250 cmliL3BnX3VwZ3JhZGUvaW5mby5jCisrKyBiL2NvbnRyaWIvcGdfdXBncmFkZS9pbmZvLmMK QEAgLTMsNyArMyw3IEBACiAgKgogICoJaW5mb3JtYXRpb24gc3VwcG9ydCBmdW5jdGlvbnMK ICAqCi0gKglDb3B5cmlnaHQgKGMpIDIwMTAtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKyAqCUNvcHlyaWdodCAoYykgMjAxMC0yMDEyLCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICoJY29udHJpYi9wZ191cGdyYWRlL2luZm8u YwogICovCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdXBncmFkZS9vcHRpb24uYyBiL2Nv bnRyaWIvcGdfdXBncmFkZS9vcHRpb24uYwppbmRleCAwMjZmNzFlLi44MmM4OGFmIDEwMDY0 NAotLS0gYS9jb250cmliL3BnX3VwZ3JhZGUvb3B0aW9uLmMKKysrIGIvY29udHJpYi9wZ191 cGdyYWRlL29wdGlvbi5jCkBAIC0zLDcgKzMsNyBAQAogICoKICAqCW9wdGlvbnMgZnVuY3Rp b25zCiAgKgotICoJQ29weXJpZ2h0IChjKSAyMDEwLTIwMTEsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCisgKglDb3B5cmlnaHQgKGMpIDIwMTAtMjAxMiwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqCWNvbnRyaWIvcGdfdXBncmFkZS9v cHRpb24uYwogICovCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdXBncmFkZS9wYWdlLmMg Yi9jb250cmliL3BnX3VwZ3JhZGUvcGFnZS5jCmluZGV4IGM4ZjU3NzQuLmE3OTBmNGUgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdXBncmFkZS9wYWdlLmMKKysrIGIvY29udHJpYi9wZ191 cGdyYWRlL3BhZ2UuYwpAQCAtMyw3ICszLDcgQEAKICAqCiAgKglwZXItcGFnZSBjb252ZXJz aW9uIG9wZXJhdGlvbnMKICAqCi0gKglDb3B5cmlnaHQgKGMpIDIwMTAtMjAxMSwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCUNvcHlyaWdodCAoYykgMjAxMC0y MDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICoJY29udHJpYi9w Z191cGdyYWRlL3BhZ2UuYwogICovCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfdXBncmFk ZS9wZ191cGdyYWRlLmMgYi9jb250cmliL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCmluZGV4 IDEyZGY0NjMuLjE1YjMwZmMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdXBncmFkZS9wZ191 cGdyYWRlLmMKKysrIGIvY29udHJpYi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwpAQCAtMyw3 ICszLDcgQEAKICAqCiAgKgltYWluIHNvdXJjZSBmaWxlCiAgKgotICoJQ29weXJpZ2h0IChj KSAyMDEwLTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKglD b3B5cmlnaHQgKGMpIDIwMTAtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKICAqCWNvbnRyaWIvcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKICAqLwogCmRpZmYg LS1naXQgYS9jb250cmliL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oIGIvY29udHJpYi9wZ191 cGdyYWRlL3BnX3VwZ3JhZGUuaAppbmRleCA3ZDQ4ZTljLi41OGQ1MjAxIDEwMDY0NAotLS0g YS9jb250cmliL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCisrKyBiL2NvbnRyaWIvcGdfdXBn cmFkZS9wZ191cGdyYWRlLmgKQEAgLTEsNyArMSw3IEBACiAvKgogICoJcGdfdXBncmFkZS5o CiAgKgotICoJQ29weXJpZ2h0IChjKSAyMDEwLTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisgKglDb3B5cmlnaHQgKGMpIDIwMTAtMjAxMiwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqCWNvbnRyaWIvcGdfdXBncmFkZS9wZ191 cGdyYWRlLmgKICAqLwogCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3VwZ3JhZGUvcmVsZmls ZW5vZGUuYyBiL2NvbnRyaWIvcGdfdXBncmFkZS9yZWxmaWxlbm9kZS5jCmluZGV4IDc0ZDE2 MjEuLjU0ZWU1ZjAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdXBncmFkZS9yZWxmaWxlbm9k ZS5jCisrKyBiL2NvbnRyaWIvcGdfdXBncmFkZS9yZWxmaWxlbm9kZS5jCkBAIC0zLDcgKzMs NyBAQAogICoKICAqCXJlbGZpbGVub2RlIGZ1bmN0aW9ucwogICoKLSAqCUNvcHlyaWdodCAo YykgMjAxMC0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoJ Q29weXJpZ2h0IChjKSAyMDEwLTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50 IEdyb3VwCiAgKgljb250cmliL3BnX3VwZ3JhZGUvcmVsZmlsZW5vZGUuYwogICovCiAKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvcGdfdXBncmFkZS9zZXJ2ZXIuYyBiL2NvbnRyaWIvcGdfdXBn cmFkZS9zZXJ2ZXIuYwppbmRleCBlNDVmNzJiLi45ODlhZjYzIDEwMDY0NAotLS0gYS9jb250 cmliL3BnX3VwZ3JhZGUvc2VydmVyLmMKKysrIGIvY29udHJpYi9wZ191cGdyYWRlL3NlcnZl ci5jCkBAIC0zLDcgKzMsNyBAQAogICoKICAqCWRhdGFiYXNlIHNlcnZlciBmdW5jdGlvbnMK ICAqCi0gKglDb3B5cmlnaHQgKGMpIDIwMTAtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKyAqCUNvcHlyaWdodCAoYykgMjAxMC0yMDEyLCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICoJY29udHJpYi9wZ191cGdyYWRlL3NlcnZl ci5jCiAgKi8KIApkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ191cGdyYWRlL3RhYmxlc3BhY2Uu YyBiL2NvbnRyaWIvcGdfdXBncmFkZS90YWJsZXNwYWNlLmMKaW5kZXggZGYyMjg1Zi4uMTFm ZDlkMCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ191cGdyYWRlL3RhYmxlc3BhY2UuYworKysg Yi9jb250cmliL3BnX3VwZ3JhZGUvdGFibGVzcGFjZS5jCkBAIC0zLDcgKzMsNyBAQAogICoK ICAqCXRhYmxlc3BhY2UgZnVuY3Rpb25zCiAgKgotICoJQ29weXJpZ2h0IChjKSAyMDEwLTIw MTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKglDb3B5cmlnaHQg KGMpIDIwMTAtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAq CWNvbnRyaWIvcGdfdXBncmFkZS90YWJsZXNwYWNlLmMKICAqLwogCmRpZmYgLS1naXQgYS9j b250cmliL3BnX3VwZ3JhZGUvdGVzdC5zaCBiL2NvbnRyaWIvcGdfdXBncmFkZS90ZXN0LnNo CmluZGV4IDlhZWJlZTkuLjI5OWI3YTUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdXBncmFk ZS90ZXN0LnNoCisrKyBiL2NvbnRyaWIvcGdfdXBncmFkZS90ZXN0LnNoCkBAIC02LDcgKzYs NyBAQAogIyBydW5zIHRoZSByZWdyZXNzaW9uIHRlc3RzICh0byBwdXQgaW4gc29tZSBkYXRh KSwgcnVucyBwZ19kdW1wYWxsLAogIyBydW5zIHBnX3VwZ3JhZGUsIHJ1bnMgcGdfZHVtcGFs bCBhZ2FpbiwgY29tcGFyZXMgdGhlIGR1bXBzLgogIwotIyBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTYtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyMg UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCiAjIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAKIHNldCAtZQpkaWZmIC0tZ2l0 IGEvY29udHJpYi9wZ191cGdyYWRlL3V0aWwuYyBiL2NvbnRyaWIvcGdfdXBncmFkZS91dGls LmMKaW5kZXggYjcxMzZiZS4uOTRlYWExOCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ191cGdy YWRlL3V0aWwuYworKysgYi9jb250cmliL3BnX3VwZ3JhZGUvdXRpbC5jCkBAIC0zLDcgKzMs NyBAQAogICoKICAqCXV0aWxpdHkgZnVuY3Rpb25zCiAgKgotICoJQ29weXJpZ2h0IChjKSAy MDEwLTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKglDb3B5 cmlnaHQgKGMpIDIwMTAtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKICAqCWNvbnRyaWIvcGdfdXBncmFkZS91dGlsLmMKICAqLwogCmRpZmYgLS1naXQgYS9j b250cmliL3BnX3VwZ3JhZGUvdmVyc2lvbi5jIGIvY29udHJpYi9wZ191cGdyYWRlL3ZlcnNp b24uYwppbmRleCAyZDY3NzhmLi5lODc5OWE0IDEwMDY0NAotLS0gYS9jb250cmliL3BnX3Vw Z3JhZGUvdmVyc2lvbi5jCisrKyBiL2NvbnRyaWIvcGdfdXBncmFkZS92ZXJzaW9uLmMKQEAg LTMsNyArMyw3IEBACiAgKgogICoJUG9zdGdyZXMtdmVyc2lvbi1zcGVjaWZpYyByb3V0aW5l cwogICoKLSAqCUNvcHlyaWdodCAoYykgMjAxMC0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAorICoJQ29weXJpZ2h0IChjKSAyMDEwLTIwMTIsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKgljb250cmliL3BnX3VwZ3JhZGUvdmVy c2lvbi5jCiAgKi8KIApkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ191cGdyYWRlL3ZlcnNpb25f b2xkXzhfMy5jIGIvY29udHJpYi9wZ191cGdyYWRlL3ZlcnNpb25fb2xkXzhfMy5jCmluZGV4 IDYyNWY0YWQuLmE4NjQxMDcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdXBncmFkZS92ZXJz aW9uX29sZF84XzMuYworKysgYi9jb250cmliL3BnX3VwZ3JhZGUvdmVyc2lvbl9vbGRfOF8z LmMKQEAgLTMsNyArMyw3IEBACiAgKgogICoJUG9zdGdyZXMtdmVyc2lvbi1zcGVjaWZpYyBy b3V0aW5lcwogICoKLSAqCUNvcHlyaWdodCAoYykgMjAxMC0yMDExLCBQb3N0Z3JlU1FMIEds b2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoJQ29weXJpZ2h0IChjKSAyMDEwLTIwMTIsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKgljb250cmliL3BnX3VwZ3Jh ZGUvdmVyc2lvbl9vbGRfOF8zLmMKICAqLwogCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Vw Z3JhZGVfc3VwcG9ydC9wZ191cGdyYWRlX3N1cHBvcnQuYyBiL2NvbnRyaWIvcGdfdXBncmFk ZV9zdXBwb3J0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCmluZGV4IDQ3ZDY1ODAuLjQ3MmYxNTIg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdXBncmFkZV9zdXBwb3J0L3BnX3VwZ3JhZGVfc3Vw cG9ydC5jCisrKyBiL2NvbnRyaWIvcGdfdXBncmFkZV9zdXBwb3J0L3BnX3VwZ3JhZGVfc3Vw cG9ydC5jCkBAIC01LDcgKzUsNyBAQAogICoJdG8gY29udHJvbCBvaWQgYW5kIHJlbGZpbGVu b2RlIGFzc2lnbm1lbnQsIGFuZCBkbyBvdGhlciBzcGVjaWFsCiAgKgloYWNrcyBuZWVkZWQg Zm9yIHBnX3VwZ3JhZGUuCiAgKgotICoJQ29weXJpZ2h0IChjKSAyMDEwLTIwMTEsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKglDb3B5cmlnaHQgKGMpIDIwMTAt MjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqCWNvbnRyaWIv cGdfdXBncmFkZV9zdXBwb3J0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCiAgKi8KIApkaWZmIC0t Z2l0IGEvY29udHJpYi9wZ2JlbmNoL3BnYmVuY2guYyBiL2NvbnRyaWIvcGdiZW5jaC9wZ2Jl bmNoLmMKaW5kZXggOTFkODZkYS4uOTA4MWYwOSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ2Jl bmNoL3BnYmVuY2guYworKysgYi9jb250cmliL3BnYmVuY2gvcGdiZW5jaC5jCkBAIC01LDcg KzUsNyBAQAogICogT3JpZ2luYWxseSB3cml0dGVuIGJ5IFRhdHN1byBJc2hpaSBhbmQgZW5o YW5jZWQgYnkgbWFueSBjb250cmlidXRvcnMuCiAgKgogICogY29udHJpYi9wZ2JlbmNoL3Bn YmVuY2guYwotICogQ29weXJpZ2h0IChjKSAyMDAwLTIwMTEsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCisgKiBDb3B5cmlnaHQgKGMpIDIwMDAtMjAxMiwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqIEFMTCBSSUdIVFMgUkVTRVJWRUQ7 CiAgKgogICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1 dGUgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzCmRpZmYgLS1naXQgYS9jb250cmliL3NlcGdzcWwv ZGF0YWJhc2UuYyBiL2NvbnRyaWIvc2VwZ3NxbC9kYXRhYmFzZS5jCmluZGV4IDNmYWVmNjMu LmJlM2E3YmUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvc2VwZ3NxbC9kYXRhYmFzZS5jCisrKyBi L2NvbnRyaWIvc2VwZ3NxbC9kYXRhYmFzZS5jCkBAIC00LDcgKzQsNyBAQAogICoKICAqIFJv dXRpbmVzIGNvcnJlc3BvbmRpbmcgdG8gZGF0YWJhc2Ugb2JqZWN0cwogICoKLSAqIENvcHly aWdodCAoYykgMjAxMC0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91 cAorICogQ29weXJpZ2h0IChjKSAyMDEwLTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCiAgKgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCmRpZmYgLS1n aXQgYS9jb250cmliL3NlcGdzcWwvZG1sLmMgYi9jb250cmliL3NlcGdzcWwvZG1sLmMKaW5k ZXggMzE5OTMzNy4uMTdhYTQxYyAxMDA2NDQKLS0tIGEvY29udHJpYi9zZXBnc3FsL2RtbC5j CisrKyBiL2NvbnRyaWIvc2VwZ3NxbC9kbWwuYwpAQCAtNCw3ICs0LDcgQEAKICAqCiAgKiBS b3V0aW5lcyB0byBoYW5kbGUgRE1MIHBlcm1pc3Npb24gY2hlY2tzCiAgKgotICogQ29weXJp Z2h0IChjKSAyMDEwLTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CisgKiBDb3B5cmlnaHQgKGMpIDIwMTAtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKICAqCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KZGlmZiAtLWdp dCBhL2NvbnRyaWIvc2VwZ3NxbC9ob29rcy5jIGIvY29udHJpYi9zZXBnc3FsL2hvb2tzLmMK aW5kZXggODIzMjk3MS4uNDc0MzdiYSAxMDA2NDQKLS0tIGEvY29udHJpYi9zZXBnc3FsL2hv b2tzLmMKKysrIGIvY29udHJpYi9zZXBnc3FsL2hvb2tzLmMKQEAgLTQsNyArNCw3IEBACiAg KgogICogRW50cnlwb2ludHMgb2YgdGhlIGhvb2tzIGluIFBvc3RncmVTUUwsIGFuZCBkaXNw YXRjaGVzIHRoZSBjYWxsYmFja3MuCiAgKgotICogQ29weXJpZ2h0IChjKSAyMDEwLTIwMTEs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBDb3B5cmlnaHQgKGMp IDIwMTAtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqCiAg KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvc2VwZ3Nx bC9sYWJlbC5jIGIvY29udHJpYi9zZXBnc3FsL2xhYmVsLmMKaW5kZXggYTJiZjU3MS4uMmFi N2E2ZiAxMDA2NDQKLS0tIGEvY29udHJpYi9zZXBnc3FsL2xhYmVsLmMKKysrIGIvY29udHJp Yi9zZXBnc3FsL2xhYmVsLmMKQEAgLTQsNyArNCw3IEBACiAgKgogICogUm91dGluZXMgdG8g c3VwcG9ydCBTRUxpbnV4IGxhYmVscyAoc2VjdXJpdHkgY29udGV4dCkKICAqCi0gKiBDb3B5 cmlnaHQgKGMpIDIwMTAtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKyAqIENvcHlyaWdodCAoYykgMjAxMC0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAogICoKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwpkaWZmIC0t Z2l0IGEvY29udHJpYi9zZXBnc3FsL2xhdW5jaGVyIGIvY29udHJpYi9zZXBnc3FsL2xhdW5j aGVyCmluZGV4IDllNWVjZGMuLjAzOGVmNzEgMTAwNzU1Ci0tLSBhL2NvbnRyaWIvc2VwZ3Nx bC9sYXVuY2hlcgorKysgYi9jb250cmliL3NlcGdzcWwvbGF1bmNoZXIKQEAgLTIsNyArMiw3 IEBACiAjCiAjIEEgd3JhcHBlciBzY3JpcHQgdG8gbGF1bmNoIHBzcWwgY29tbWFuZCBpbiBy ZWdyZXNzaW9uIHRlc3QKICMKLSMgQ29weXJpZ2h0IChjKSAyMDEwLTIwMTEsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisjIENvcHlyaWdodCAoYykgMjAxMC0yMDEy LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogIwogIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMgYi9jb250 cmliL3NlcGdzcWwvcHJvYy5jCmluZGV4IDE0MjMxYzQuLmI5MDI3OTcgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMKKysrIGIvY29udHJpYi9zZXBnc3FsL3Byb2MuYwpA QCAtNCw3ICs0LDcgQEAKICAqCiAgKiBSb3V0aW5lcyBjb3JyZXNwb25kaW5nIHRvIHByb2Nl ZHVyZSBvYmplY3RzCiAgKgotICogQ29weXJpZ2h0IChjKSAyMDEwLTIwMTEsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAtMjAx MiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqCiAgKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvc2VwZ3NxbC9yZWxhdGlv bi5jIGIvY29udHJpYi9zZXBnc3FsL3JlbGF0aW9uLmMKaW5kZXggYjRhYmM4ZS4uZWZjZTkx NCAxMDA2NDQKLS0tIGEvY29udHJpYi9zZXBnc3FsL3JlbGF0aW9uLmMKKysrIGIvY29udHJp Yi9zZXBnc3FsL3JlbGF0aW9uLmMKQEAgLTQsNyArNCw3IEBACiAgKgogICogUm91dGluZXMg Y29ycmVzcG9uZGluZyB0byByZWxhdGlvbi9hdHRyaWJ1dGUgb2JqZWN0cwogICoKLSAqIENv cHlyaWdodCAoYykgMjAxMC0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogQ29weXJpZ2h0IChjKSAyMDEwLTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCiAgKgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCmRpZmYg LS1naXQgYS9jb250cmliL3NlcGdzcWwvc2NoZW1hLmMgYi9jb250cmliL3NlcGdzcWwvc2No ZW1hLmMKaW5kZXggYzhiYjhjOS4uOTBkY2ExZCAxMDA2NDQKLS0tIGEvY29udHJpYi9zZXBn c3FsL3NjaGVtYS5jCisrKyBiL2NvbnRyaWIvc2VwZ3NxbC9zY2hlbWEuYwpAQCAtNCw3ICs0 LDcgQEAKICAqCiAgKiBSb3V0aW5lcyBjb3JyZXNwb25kaW5nIHRvIHNjaGVtYSBvYmplY3Rz CiAgKgotICogQ29weXJpZ2h0IChjKSAyMDEwLTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAtMjAxMiwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvc2VwZ3NxbC9zZWxpbnV4LmMgYi9jb250cmli L3NlcGdzcWwvc2VsaW51eC5jCmluZGV4IGQ2OTNkNjMuLjg4MTliOGMgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvc2VwZ3NxbC9zZWxpbnV4LmMKKysrIGIvY29udHJpYi9zZXBnc3FsL3NlbGlu dXguYwpAQCAtNSw3ICs1LDcgQEAKICAqIEludGVyYWN0aW9ucyBiZXR3ZWVuIHVzZXJzcGFj ZSBhbmQgc2VsaW51eCBpbiBrZXJuZWxzcGFjZSwKICAqIHVzaW5nIGxpYnNlbGludXggYXBp LgogICoKLSAqIENvcHlyaWdodCAoYykgMjAxMC0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAorICogQ29weXJpZ2h0IChjKSAyMDEwLTIwMTIsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKgogICogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICovCmRpZmYgLS1naXQgYS9jb250cmliL3NlcGdzcWwvc2VwZ3NxbC5oIGIvY29udHJp Yi9zZXBnc3FsL3NlcGdzcWwuaAppbmRleCAzM2IyMTlmLi5jOTNkYTdhIDEwMDY0NAotLS0g YS9jb250cmliL3NlcGdzcWwvc2VwZ3NxbC5oCisrKyBiL2NvbnRyaWIvc2VwZ3NxbC9zZXBn c3FsLmgKQEAgLTQsNyArNCw3IEBACiAgKgogICogRGVmaW5pdGlvbnMgY29ycmVzcG9uZGlu ZyB0byBTRS1Qb3N0Z3JlU1FMCiAgKgotICogQ29weXJpZ2h0IChjKSAyMDEwLTIwMTEsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBDb3B5cmlnaHQgKGMpIDIw MTAtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqCiAgKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvc2VwZ3NxbC91 YXZjLmMgYi9jb250cmliL3NlcGdzcWwvdWF2Yy5jCmluZGV4IGFmZmUwYTIuLjkwNWY4N2Qg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvc2VwZ3NxbC91YXZjLmMKKysrIGIvY29udHJpYi9zZXBn c3FsL3VhdmMuYwpAQCAtNiw3ICs2LDcgQEAKICAqIGFjY2VzcyBjb250cm9sIGRlY2lzaW9u cyByZWNlbnRseSB1c2VkLCBhbmQgcmVkdWNlIG51bWJlciBvZiBrZXJuZWwKICAqIGludm9j YXRpb25zIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHBlcmZvcm1hbmNlIGhpdC4KICAqCi0gKiBD b3B5cmlnaHQgKGMpIDIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CisgKiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKICAqCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KZGlmZiAtLWdp dCBhL2NvbnRyaWIvdGFibGVmdW5jL3RhYmxlZnVuYy5jIGIvY29udHJpYi90YWJsZWZ1bmMv dGFibGVmdW5jLmMKaW5kZXggNGZkNjhjZC4uNjVhNDcwMTEgMTAwNjQ0Ci0tLSBhL2NvbnRy aWIvdGFibGVmdW5jL3RhYmxlZnVuYy5jCisrKyBiL2NvbnRyaWIvdGFibGVmdW5jL3RhYmxl ZnVuYy5jCkBAIC0xMCw3ICsxMCw3IEBACiAgKiBBbmQgY29udHJpYnV0b3JzOgogICogTmFi aWwgU2F5ZWdoIDxwb3N0Z3Jlc3FsQGUtdHJvbGxleS5kZT4KICAqCi0gKiBDb3B5cmlnaHQg KGMpIDIwMDItMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAq IENvcHlyaWdodCAoYykgMjAwMi0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAogICoKICAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBk aXN0cmlidXRlIHRoaXMgc29mdHdhcmUgYW5kIGl0cwogICogZG9jdW1lbnRhdGlvbiBmb3Ig YW55IHB1cnBvc2UsIHdpdGhvdXQgZmVlLCBhbmQgd2l0aG91dCBhIHdyaXR0ZW4gYWdyZWVt ZW50CmRpZmYgLS1naXQgYS9jb250cmliL3RhYmxlZnVuYy90YWJsZWZ1bmMuaCBiL2NvbnRy aWIvdGFibGVmdW5jL3RhYmxlZnVuYy5oCmluZGV4IGEwZTAzZTIuLmQ5NjcwZjUgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvdGFibGVmdW5jL3RhYmxlZnVuYy5oCisrKyBiL2NvbnRyaWIvdGFi bGVmdW5jL3RhYmxlZnVuYy5oCkBAIC0xMCw3ICsxMCw3IEBACiAgKiBBbmQgY29udHJpYnV0 b3JzOgogICogTmFiaWwgU2F5ZWdoIDxwb3N0Z3Jlc3FsQGUtdHJvbGxleS5kZT4KICAqCi0g KiBDb3B5cmlnaHQgKGMpIDIwMDItMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqIENvcHlyaWdodCAoYykgMjAwMi0yMDEyLCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAogICoKICAqIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBt b2RpZnksIGFuZCBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgYW5kIGl0cwogICogZG9jdW1l bnRhdGlvbiBmb3IgYW55IHB1cnBvc2UsIHdpdGhvdXQgZmVlLCBhbmQgd2l0aG91dCBhIHdy aXR0ZW4gYWdyZWVtZW50CmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfcGFyc2VyL3Rlc3Rf cGFyc2VyLmMgYi9jb250cmliL3Rlc3RfcGFyc2VyL3Rlc3RfcGFyc2VyLmMKaW5kZXggOGU0 YzdhMy4uYzI3ZDdkMyAxMDA2NDQKLS0tIGEvY29udHJpYi90ZXN0X3BhcnNlci90ZXN0X3Bh cnNlci5jCisrKyBiL2NvbnRyaWIvdGVzdF9wYXJzZXIvdGVzdF9wYXJzZXIuYwpAQCAtMyw3 ICszLDcgQEAKICAqIHRlc3RfcGFyc2VyLmMKICAqCSAgU2ltcGxlIGV4YW1wbGUgb2YgYSB0 ZXh0IHNlYXJjaCBwYXJzZXIKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMSwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIENvcHlyaWdodCAoYykgMjAw Ny0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICoKICAqIElE RU5USUZJQ0FUSU9OCiAgKgkgIGNvbnRyaWIvdGVzdF9wYXJzZXIvdGVzdF9wYXJzZXIuYwpk aWZmIC0tZ2l0IGEvY29udHJpYi90c2VhcmNoMi90c2VhcmNoMi5jIGIvY29udHJpYi90c2Vh cmNoMi90c2VhcmNoMi5jCmluZGV4IGU0YTJhYzYuLjk2OGJkODAgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvdHNlYXJjaDIvdHNlYXJjaDIuYworKysgYi9jb250cmliL3RzZWFyY2gyL3RzZWFy Y2gyLmMKQEAgLTMsNyArMyw3IEBACiAgKiB0c2VhcmNoMi5jCiAgKgkJQmFja3dhcmRzLWNv bXBhdGliaWxpdHkgcGFja2FnZSBmb3Igb2xkIGNvbnRyaWIvdHNlYXJjaDIgQVBJCiAgKgot ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAx MiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqCiAgKgogICogSURF TlRJRklDQVRJT04KZGlmZiAtLWdpdCBhL2NvbnRyaWIvdW5hY2NlbnQvdW5hY2NlbnQuYyBi L2NvbnRyaWIvdW5hY2NlbnQvdW5hY2NlbnQuYwppbmRleCBkMjJmNWM3Li5hMzkyODVlIDEw MDY0NAotLS0gYS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMKKysrIGIvY29udHJpYi91 bmFjY2VudC91bmFjY2VudC5jCkBAIC0zLDcgKzMsNyBAQAogICogdW5hY2NlbnQuYwogICoJ ICBUZXh0IHNlYXJjaCB1bmFjY2VudCBkaWN0aW9uYXJ5CiAgKgotICogQ29weXJpZ2h0IChj KSAyMDA5LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBD b3B5cmlnaHQgKGMpIDIwMDktMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKICAqCiAgKiBJREVOVElGSUNBVElPTgogICoJICBjb250cmliL3VuYWNjZW50L3Vu YWNjZW50LmMKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdXVpZC1vc3NwL3V1aWQtb3NzcC5jIGIv Y29udHJpYi91dWlkLW9zc3AvdXVpZC1vc3NwLmMKaW5kZXggMmJlMjc4ZC4uZDRmYzYyYiAx MDA2NDQKLS0tIGEvY29udHJpYi91dWlkLW9zc3AvdXVpZC1vc3NwLmMKKysrIGIvY29udHJp Yi91dWlkLW9zc3AvdXVpZC1vc3NwLmMKQEAgLTIsNyArMiw3IEBACiAgKgogICogVVVJRCBn ZW5lcmF0aW9uIGZ1bmN0aW9ucyB1c2luZyB0aGUgT1NTUCBVVUlEIGxpYnJhcnkKICAqCi0g KiBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqIENvcHlyaWdodCAoYykgMjAwNy0yMDEyLCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAogICoKICAqIGNvbnRyaWIvdXVpZC1vc3NwL3V1aWQtb3Nz cC5jCiAgKgpkaWZmIC0tZ2l0IGEvY29udHJpYi92YWN1dW1sby92YWN1dW1sby5jIGIvY29u dHJpYi92YWN1dW1sby92YWN1dW1sby5jCmluZGV4IDIxYjZkYmYuLjk3NDE3MmUgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvdmFjdXVtbG8vdmFjdXVtbG8uYworKysgYi9jb250cmliL3ZhY3V1 bWxvL3ZhY3V1bWxvLmMKQEAgLTMsNyArMyw3IEBACiAgKiB2YWN1dW1sby5jCiAgKgkgIFRo aXMgcmVtb3ZlcyBvcnBoYW5lZCBsYXJnZSBvYmplY3RzIGZyb20gYSBkYXRhYmFzZS4KICAq Ci0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMSwgUG9zdGdyZVNRTCBHbG9i YWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0y MDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICogUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlm b3JuaWEKICAqCiAgKgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dlbmVyYXRlLWVycmNv ZGVzLXRhYmxlLnBsIGIvZG9jL3NyYy9zZ21sL2dlbmVyYXRlLWVycmNvZGVzLXRhYmxlLnBs CmluZGV4IDBhYzAyMGUuLmUyOTQ1NzQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nZW5l cmF0ZS1lcnJjb2Rlcy10YWJsZS5wbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2VuZXJhdGUtZXJy Y29kZXMtdGFibGUucGwKQEAgLTEsNyArMSw3IEBACiAjIS91c3IvYmluL3BlcmwKICMKICMg R2VuZXJhdGUgdGhlIGVycmNvZGVzLXRhYmxlLnNnbWwgZmlsZSBmcm9tIGVycmNvZGVzLnR4 dAotIyBDb3B5cmlnaHQgKGMpIDIwMDAtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKKyMgQ29weXJpZ2h0IChjKSAyMDAwLTIwMTIsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCiAKIHVzZSB3YXJuaW5nczsKIHVzZSBzdHJpY3Q7CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbGVnYWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9sZWdh bC5zZ21sCmluZGV4IDQ1MzE2ODYuLmNjZjUwZDYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9sZWdhbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sZWdhbC5zZ21sCkBAIC0xLDcgKzEs NyBAQAogPCEtLSBkb2Mvc3JjL3NnbWwvbGVnYWwuc2dtbCAtLT4KIAogPGNvcHlyaWdodD4K LSA8eWVhcj4xOTk2LTIwMTE8L3llYXI+CisgPHllYXI+MTk5Ni0yMDEyPC95ZWFyPgogIDxo b2xkZXI+VGhlIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwPC9ob2xkZXI+ CiA8L2NvcHlyaWdodD4KIApAQCAtOSw3ICs5LDcgQEAKICA8dGl0bGU+TGVnYWwgTm90aWNl PC90aXRsZT4KIAogIDxwYXJhPgotICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVj dG5hbWU+IGlzIENvcHlyaWdodCAmY29weTsgMTk5Ni0yMDExCisgIDxwcm9kdWN0bmFtZT5Q b3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gaXMgQ29weXJpZ2h0ICZjb3B5OyAxOTk2LTIwMTIK ICAgYnkgdGhlIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwIGFuZCBpcyBk aXN0cmlidXRlZCB1bmRlcgogICB0aGUgdGVybXMgb2YgdGhlIGxpY2Vuc2Ugb2YgdGhlIFVu aXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSBiZWxvdy4KICA8L3BhcmE+CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL01ha2VmaWxlCmluZGV4IGVjODJk OGQuLjBjNzYzZGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL01ha2VmaWxlCisrKyBiL3Ny Yy9iYWNrZW5kL01ha2VmaWxlCkBAIC0yLDcgKzIsNyBAQAogIwogIyBNYWtlZmlsZSBmb3Ig dGhlIHBvc3RncmVzIGJhY2tlbmQKICMKLSMgUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2 LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisjIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAogIyBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhl IFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogIwogIyBzcmMvYmFja2VuZC9NYWtlZmlsZQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9oZWFwdHVwbGUuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vaGVhcHR1cGxlLmMKaW5kZXggMzZiM2FmOC4uMDhk MmIyMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9oZWFwdHVwbGUu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2hlYXB0dXBsZS5jCkBAIC00NSw3 ICs0NSw3IEBACiAgKiBhbmQgd2UnZCBsaWtlIHRvIHN0aWxsIHJlZmVyIHRvIHRoZW0gdmlh IEMgc3RydWN0IG9mZnNldHMuCiAgKgogICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5Ni0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKICAqCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2luZGV4dHVwbGUuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9jb21tb24vaW5kZXh0dXBsZS5jCmluZGV4IDg1YzQzMTkuLjc2Yzc2ZTkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vaW5kZXh0dXBsZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vaW5kZXh0dXBsZS5jCkBAIC00LDcgKzQsNyBAQAog ICoJICAgVGhpcyBmaWxlIGNvbnRhaW5zIGluZGV4IHR1cGxlIGFjY2Vzc29yIGFuZCBtdXRh dG9yIHJvdXRpbmVzLAogICoJICAgYXMgd2VsbCBhcyB2YXJpb3VzIHR1cGxlIHV0aWxpdGll cy4KICAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMSwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5Ni0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m IENhbGlmb3JuaWEKICAqCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2Nv bW1vbi9wcmludHR1cC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHR1cC5j CmluZGV4IGFmY2U2ZDUuLjQ2MTYxMDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9jb21tb24vcHJpbnR0dXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3By aW50dHVwLmMKQEAgLTUsNyArNSw3IEBACiAgKgkgIGNsaWVudHMgYW5kIHN0YW5kYWxvbmUg YmFja2VuZHMgYXJlIHN1cHBvcnRlZCBoZXJlKS4KICAqCiAgKgotICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk2LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAgKgogICogSURF TlRJRklDQVRJT04KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVs b3B0aW9ucy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKaW5k ZXggNzIyMGUwZS4uMDlhN2I2ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2Nv bW1vbi9yZWxvcHRpb25zLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxv cHRpb25zLmMKQEAgLTMsNyArMyw3IEBACiAgKiByZWxvcHRpb25zLmMKICAqCSAgQ29yZSBz dXBwb3J0IGZvciByZWxhdGlvbiBvcHRpb25zIChwZ19jbGFzcy5yZWxvcHRpb25zKQogICoK LSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDExLCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIw MTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZv cm5pYQogICoKICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3Nj YW5rZXkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vc2NhbmtleS5jCmluZGV4IGM4 NzliOGEuLjM3ZDc3ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v c2NhbmtleS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vc2NhbmtleS5jCkBA IC0zLDcgKzMsNyBAQAogICogc2NhbmtleS5jCiAgKgkgIHNjYW4ga2V5IHN1cHBvcnQgY29k ZQogICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDExLCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2Yg Q2FsaWZvcm5pYQogICoKICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29t bW9uL3R1cGNvbnZlcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwY29udmVy dC5jCmluZGV4IDM0ZTVmMTEuLmY1YTQzZDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9jb21tb24vdHVwY29udmVydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21t b24vdHVwY29udmVydC5jCkBAIC05LDcgKzksNyBAQAogICogZXhlY3V0b3IncyAianVua2Zp bHRlciIgcm91dGluZXMsIGJ1dCB0aGVzZSBmdW5jdGlvbnMgd29yayBvbiBiYXJlCiAgKiBI ZWFwVHVwbGVzIHJhdGhlciB0aGFuIFR1cGxlVGFibGVTbG90cy4KICAqCi0gKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDEyLCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKICAqCiAg KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi90dXBkZXNjLmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYwppbmRleCBlZTQwNDg2Li4xZjQw YjdjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYwpAQCAtMyw3ICszLDcg QEAKICAqIHR1cGRlc2MuYwogICoJICBQT1NUR1JFUyB0dXBsZSBkZXNjcmlwdG9yIHN1cHBv cnQgY29kZQogICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDExLCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk2LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNp dHkgb2YgQ2FsaWZvcm5pYQogICoKICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvZ2luL2dpbmFycmF5cHJvYy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5hcnJh eXByb2MuYwppbmRleCAyZGU1ODYwLi5mMWY5MzQzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2luL2dpbmFycmF5cHJvYy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aW4vZ2luYXJyYXlwcm9jLmMKQEAgLTQsNyArNCw3IEBACiAgKgkgIHN1cHBvcnQgZnVuY3Rp b25zIGZvciBHSU4ncyBpbmRleGluZyBvZiBhbnkgYXJyYXkKICAqCiAgKgotICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAgKgog ICogSURFTlRJRklDQVRJT04KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4v Z2luYnRyZWUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luYnRyZWUuYwppbmRleCBl ZWZiZDEwLi5iMTYwNTUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dp bmJ0cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5idHJlZS5jCkBAIC00 LDcgKzQsNyBAQAogICoJICBwYWdlIHV0aWxpdGllcyByb3V0aW5lcyBmb3IgdGhlIHBvc3Rn cmVzIGludmVydGVkIGluZGV4IGFjY2VzcyBtZXRob2QuCiAgKgogICoKLSAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTIsIFBvc3RncmVT UUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKICAq IElERU5USUZJQ0FUSU9OCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dp bmJ1bGsuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luYnVsay5jCmluZGV4IDllNWJh YjEuLmRkYWU4NjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luYnVs ay5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luYnVsay5jCkBAIC00LDcgKzQs NyBAQAogICoJICByb3V0aW5lcyBmb3IgZmFzdCBidWlsZCBvZiBpbnZlcnRlZCBpbmRleAog ICoKICAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMSwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5Ni0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m IENhbGlmb3JuaWEKICAqCiAgKiBJREVOVElGSUNBVElPTgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpbi9naW5kYXRhcGFnZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dp bi9naW5kYXRhcGFnZS5jCmluZGV4IDc5MDYwOTguLjEzNjAxNDYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luZGF0YXBhZ2UuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2luL2dpbmRhdGFwYWdlLmMKQEAgLTQsNyArNCw3IEBACiAgKgkgIHBhZ2UgdXRp bGl0aWVzIHJvdXRpbmVzIGZvciB0aGUgcG9zdGdyZXMgaW52ZXJ0ZWQgaW5kZXggYWNjZXNz IG1ldGhvZC4KICAqCiAgKgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTEs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5p dmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAgKgogICogSURFTlRJRklDQVRJT04KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luZW50cnlwYWdlLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2luL2dpbmVudHJ5cGFnZS5jCmluZGV4IGQ0ZGU5MWYuLmE5NDgyZGEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luZW50cnlwYWdlLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5lbnRyeXBhZ2UuYwpAQCAtNCw3ICs0LDcgQEAK ICAqCSAgcGFnZSB1dGlsaXRpZXMgcm91dGluZXMgZm9yIHRoZSBwb3N0Z3JlcyBpbnZlcnRl ZCBpbmRleCBhY2Nlc3MgbWV0aG9kLgogICoKICAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTYtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKICAqCiAgKiBJREVOVElGSUNB VElPTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5mYXN0LmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmZhc3QuYwppbmRleCA4YWUwOWMzLi5kMjAxYzY4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmZhc3QuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmZhc3QuYwpAQCAtNyw3ICs3LDcgQEAKICAqCSAg dHJhbnNmZXIgcGVuZGluZyBlbnRyaWVzIGludG8gdGhlIHJlZ3VsYXIgaW5kZXggc3RydWN0 dXJlLiAgVGhpcwogICoJICB3aW5zIGJlY2F1c2UgYnVsayBpbnNlcnRpb24gaXMgbXVjaCBt b3JlIGVmZmljaWVudCB0aGFuIHJldGFpbC4KICAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTYtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdl bnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKICAqCiAgKiBJREVOVElGSUNB VElPTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5nZXQuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luZ2V0LmMKaW5kZXggYTY1MDRjOS4uMDIyYmQyNyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5nZXQuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2luL2dpbmdldC5jCkBAIC00LDcgKzQsNyBAQAogICoJICBmZXRj aCB0dXBsZXMgZnJvbSBhIEdJTiBzY2FuLgogICoKICAqCi0gKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTYtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAK KyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDEyLCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBS ZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKICAqCiAgKiBJREVOVElG SUNBVElPTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKaW5kZXggYmVhNWY2OC4u ZmUwNmJkYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCkBAIC00LDcgKzQs NyBAQAogICoJICBpbnNlcnQgcm91dGluZXMgZm9yIHRoZSBwb3N0Z3JlcyBpbnZlcnRlZCBp bmRleCBhY2Nlc3MgbWV0aG9kLgogICoKICAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRz IG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKICAqCiAgKiBJREVOVElGSUNBVElP TgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5zY2FuLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2luL2dpbnNjYW4uYwppbmRleCA3M2Y3MmYyLi4zY2Q5NjgzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnNjYW4uYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2luL2dpbnNjYW4uYwpAQCAtNCw3ICs0LDcgQEAKICAqCSAgcm91 dGluZXMgdG8gbWFuYWdlIHNjYW5zIG9mIGludmVydGVkIGluZGV4IHJlbGF0aW9ucwogICoK ICAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMSwgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 Ni0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKICAqCiAgKiBJREVOVElGSUNBVElPTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2dpbi9naW51dGlsLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnV0 aWwuYwppbmRleCBmMThiMzY5Li5lNDdhYmVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2luL2dpbnV0aWwuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnV0 aWwuYwpAQCAtNCw3ICs0LDcgQEAKICAqCSAgdXRpbGl0aWVzIHJvdXRpbmVzIGZvciB0aGUg cG9zdGdyZXMgaW52ZXJ0ZWQgaW5kZXggYWNjZXNzIG1ldGhvZC4KICAqCiAgKgotICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAg KgogICogSURFTlRJRklDQVRJT04KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aW4vZ2ludmFjdXVtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnZhY3V1bS5jCmlu ZGV4IGU1ZDYxYjUuLjU0MThmYTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aW4vZ2ludmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52YWN1dW0u YwpAQCAtNCw3ICs0LDcgQEAKICAqCSAgZGVsZXRlICYgdmFjdXVtIHJvdXRpbmVzIGZvciB0 aGUgcG9zdGdyZXMgR0lOCiAgKgogICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 Ni0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2Yg dGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKICAqIElERU5USUZJQ0FUSU9OCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnhsb2cuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naW4vZ2lueGxvZy5jCmluZGV4IGU2N2EwYWEuLjk0MDUxYWEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2lueGxvZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naW4vZ2lueGxvZy5jCkBAIC00LDcgKzQsNyBAQAogICoJICBXQUwgcmVw bGF5IGxvZ2ljIGZvciBpbnZlcnRlZCBpbmRleC4KICAqCiAgKgotICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk2LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAgKgogICogSURF TlRJRklDQVRJT04KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3Qu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYwppbmRleCAwY2U1NmI4Li5hZTYz MDlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCkBAIC00LDcgKzQsNyBAQAogICoJICBp bnRlcmZhY2Ugcm91dGluZXMgZm9yIHRoZSBwb3N0Z3JlcyBHaVNUIGluZGV4IGFjY2VzcyBt ZXRob2QuCiAgKgogICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDExLCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk2LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZl cnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKICAqIElERU5USUZJQ0FUSU9OCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3RidWlsZC5jCmluZGV4IGJlMWIyMDIuLjAyMWE4ZGMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jCkBAIC00LDcgKzQsNyBAQAogICoJICBidWls ZCBhbGdvcml0aG0gZm9yIEdpU1QgaW5kZXhlcyBpbXBsZW1lbnRhdGlvbi4KICAqCiAgKgot ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAx MiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhCiAgKgogICogSURFTlRJRklDQVRJT04KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3RidWlsZGJ1ZmZlcnMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0 L2dpc3RidWlsZGJ1ZmZlcnMuYwppbmRleCAxYzExZmIzLi4yYTVmN2IzNCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkYnVmZmVycy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RidWlsZGJ1ZmZlcnMuYwpAQCAtNCw3ICs0LDcg QEAKICAqCSAgbm9kZSBidWZmZXIgbWFuYWdlbWVudCBmdW5jdGlvbnMgZm9yIEdpU1QgYnVm ZmVyaW5nIGJ1aWxkIGFsZ29yaXRobS4KICAqCiAgKgotICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk2LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVn ZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAgKgogICogSURFTlRJRklD QVRJT04KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RnZXQuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RnZXQuYwppbmRleCBiNTY1ZDA5Li43MzU1 MWVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0Z2V0LmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGdldC5jCkBAIC00LDcgKzQsNyBAQAog ICoJICBmZXRjaCB0dXBsZXMgZnJvbSBhIEdpU1Qgc2Nhbi4KICAqCiAgKgotICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAgKgog ICogSURFTlRJRklDQVRJT04KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0 L2dpc3Rwcm9jLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0cHJvYy5jCmluZGV4 IDJiNjhlMjEuLjcyMjBiMzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0 L2dpc3Rwcm9jLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHByb2MuYwpA QCAtNiw3ICs2LDcgQEAKICAqIFRoaXMgZ2l2ZXMgUi10cmVlIGJlaGF2aW9yLCB3aXRoIEd1 dHRtYW4ncyBwb2x5LXRpbWUgc3BsaXQgYWxnb3JpdGhtLgogICoKICAqCi0gKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDEyLCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAogICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKICAqCiAg KiBJREVOVElGSUNBVElPTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdHNjYW4uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RzY2FuLmMKaW5kZXgg ZTYxNDBhMS4uYmYxMzlkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0c2Nhbi5jCkBA IC00LDcgKzQsNyBAQAogICoJICByb3V0aW5lcyB0byBtYW5hZ2Ugc2NhbnMgb24gR2lTVCBp bmRleCByZWxhdGlvbnMKICAqCiAgKgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2 LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0 aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAgKgogICogSURFTlRJRklDQVRJT04KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3RzcGxpdC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHNwbGl0LmMKaW5kZXggYmQ4NDZjZS4uMzNiMDcxZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHNwbGl0LmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHNwbGl0LmMKQEAgLTQsNyArNCw3IEBACiAg KgkgIFNwbGl0IHBhZ2UgYWxnb3JpdGhtCiAgKgogICoKLSAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5Ni0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAor ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFs IERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJl Z2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKICAqIElERU5USUZJ Q0FUSU9OCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwuYwppbmRleCA4ZTU3ZDkwLi5h ZDI3YjYzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMKQEAgLTQsNyArNCw3 IEBACiAgKgkgIHV0aWxpdGllcyByb3V0aW5lcyBmb3IgdGhlIHBvc3RncmVzIEdpU1QgaW5k ZXggYWNjZXNzIG1ldGhvZC4KICAqCiAgKgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBv ZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAgKgogICogSURFTlRJRklDQVRJT04K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWN1dW0uYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWN1dW0uYwppbmRleCBkNjUwNjQ1Li4yY2Q0 ZWZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFjdXVtLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhY3V1bS5jCkBAIC00LDcgKzQs NyBAQAogICoJICB2YWN1dW1pbmcgcm91dGluZXMgZm9yIHRoZSBwb3N0Z3JlcyBHaVNUIGlu ZGV4IGFjY2VzcyBtZXRob2QuCiAgKgogICoKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5Ni0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKICAqIElERU5USUZJQ0FUSU9O CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwppbmRleCA4YzMyNjQ2Li43NjAyOWQ5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTQsNyArNCw3IEBACiAg KgkgIFdBTCByZXBsYXkgbG9naWMgZm9yIEdpU1QuCiAgKgogICoKLSAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5Ni0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTIsIFBvc3RncmVTUUwg R2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKICAqIElE RU5USUZJQ0FUSU9OCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNo LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoLmMKaW5kZXggNzcwYjNlZi4uODgw MjY2OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaC5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2guYwpAQCAtMyw3ICszLDcgQEAKICAqIGhh c2guYwogICoJICBJbXBsZW1lbnRhdGlvbiBvZiBNYXJnbyBTZWx0emVyJ3MgSGFzaGluZyBw YWNrYWdlIGZvciBwb3N0Z3Jlcy4KICAqCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTYtMjAxMSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDEyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9m IHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKICAqCiAgKgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGZ1bmMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o YXNoL2hhc2hmdW5jLmMKaW5kZXggODk3YmY5Yy4uMGU0Y2Y4ZSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGZ1bmMuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGFzaC9oYXNoZnVuYy5jCkBAIC0zLDcgKzMsNyBAQAogICogaGFzaGZ1bmMuYwogICoJ ICBTdXBwb3J0IGZ1bmN0aW9ucyBmb3IgaGFzaCBhY2Nlc3MgbWV0aG9kLgogICoKLSAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDExLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMTIsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQog ICoKICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0 LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMKaW5kZXggNTQxNThm NC4uNjYwODRmNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGlu c2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYwpAQCAt Myw3ICszLDcgQEAKICAqIGhhc2hpbnNlcnQuYwogICoJICBJdGVtIGluc2VydGlvbiBpbiBo YXNoIHRhYmxlcyBmb3IgUG9zdGdyZXMuCiAgKgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMTEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAxMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCiAgKgogICoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hvdmZsLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGFzaC9oYXNob3ZmbC5jCmluZGV4IGEyYTViYjcuLjEzMGMyOTYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hvdmZsLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hhc2gvaGFzaG92ZmwuYwpAQCAtMyw3ICszLDcgQEAKICAqIGhhc2hvdmZsLmMK ICAqCSAgT3ZlcmZsb3cgcGFnZSBtYW5hZ2VtZW50IGNvZGUgZm9yIHRoZSBQbw== --------------030402070506030906030907--