Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uta9u-00APQ4-Ms for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Sep 2025 23:11:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uta9s-005ykN-56 for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Sep 2025 23:11:24 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uta9r-005ykD-Gm for pgsql-hackers@lists.postgresql.org; Tue, 02 Sep 2025 23:11:24 +0000 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uta9j-000FTN-31 for pgsql-hackers@lists.postgresql.org; Tue, 02 Sep 2025 23:11:23 +0000 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-61e930b27bcso3784004a12.0 for ; Tue, 02 Sep 2025 16:11:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756854674; x=1757459474; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=KKH4KIMsh18p6/oJeHEp4ALdT2/vaPsKgjMnIcsYQLE=; b=YkAQS5pPKDFqb1c9GSb2L32YuDTNyMXmpO2pd/4NZYAOyS9iHaJpUkfTR9UgOJQFKE G/GVbuydy280IlqlaC1o4/lF7TPZ7c20LHwgmoHTDR/ZyaV0ogzMwyraHmMasd7dZoNF 0F6qPWcLU2oq/G6tL3Zw1liTNBl7/BNN8mr6fFfKjVwFP2Zyrs/JMYpFHN/FrMpbz4JV 9OgSpiWRkJl1Bzlp9k3qpdcZclKROa1EGXe6Ol0HEgG5+fwk3E+fei+ljx8Qqe/U/uGw lW7V5TCbbS7IYRMivtR1G/g3aMnmgnMJ933+UgBtzxnoLYJVfes9cdqoRDzAuOZRGbMi l78g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756854674; x=1757459474; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=KKH4KIMsh18p6/oJeHEp4ALdT2/vaPsKgjMnIcsYQLE=; b=IEbhUCtRzqwRL09Qe743y83QkynoMz/BTdVRhRt7TTpnU0IF1cjTrHgrv7ZwJu5G/d ecdxG5jWWVlUHyn4JL9JcvxZWmtvOAkAOYADi+zDZtqAih4pBOemGL//ugoyrrVUd6ES zjkzK+zEFH/+JXXCggg20h9r/mG7C5NoqPItnyesuk9zS0GJCSbBNX45lIZbdBb/DUKq pq/ja5oDxMfL7INDs/v0GJ0qUtSS2mde88oppOuxaCytu/9hbl9GYpgHQxrdPQX7YkF4 eqL/FA/vktZYKD2gdm0bKh9UDv7Og/uECs1MD5IVJdHqJiUjppiKhg9CHQ2CY5n9pjfC 3qIQ== X-Forwarded-Encrypted: i=1; AJvYcCX4pmL9+LztNunI/BUZBFqsbEUL1eDX9gfH8XL54IoQvFkh8pCPqUblhhJjwfkAQc2eMIZ5KVlVdD/G1YDu@lists.postgresql.org X-Gm-Message-State: AOJu0YxBzIJPO/D8DQe9OxmhcHW/BSimHneP6LC5emr1GetZD1Wwjesd BoPZSwszQ6bi1vhLvw3XHfAnOc3r5teyDw4z/Ll33vOK2CVKTRTaJ3HLYeizwbZAPntJ2c6RMvZ pRrO2NPE0CKgY2fNtnefcbvhMEqFCIRs= X-Gm-Gg: ASbGnctXclOkfqw7ALUL6QfHmsG3a1CMzat6hgkJmLT6+PNlgkHlrbObbBf7ICzEuxr wluowNTHTuxlF3KpbIsHqaGfX/PEJml9vfkxDhg5uLantFjA5pEXwkpX//KEKT6TvUfr/MyrCC0 0cSkMIPP5DD2YjPUSO1/0MphYcawMpMD8ByOluohW2L/FQvUoAKv5EQ2w648400Y74WJscGUiKM 11sKhA= X-Google-Smtp-Source: AGHT+IEJQsb+AYFBNvT/LQX8sJVRKSmriI4dEyfnfWjfV4DLveaji/mkZNiEESi14nET0SEp0LMBE7SeIMm/oIFeqa0= X-Received: by 2002:a05:6402:3510:b0:61c:5cac:2961 with SMTP id 4fb4d7f45d1cf-61d2699455emr11028980a12.14.1756854673822; Tue, 02 Sep 2025 16:11:13 -0700 (PDT) MIME-Version: 1.0 References: <87DD95AA-274F-4F4F-BAD9-7738E5B1F905@yandex-team.ru> In-Reply-To: From: Melanie Plageman Date: Tue, 2 Sep 2025 19:11:01 -0400 X-Gm-Features: Ac12FXwaKFUHE1_dzuvlVCO3ZhsAQnzq33rloo7MI_Px9cQqkfQeWsJLkzAMFKE Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Kirill Reshke Cc: Andrey Borodin , PostgreSQL Hackers , Andres Freund , Robert Haas , Heikki Linnakangas Content-Type: multipart/mixed; boundary="000000000000c1be41063dd99a24" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c1be41063dd99a24 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Sep 2, 2025 at 5:52=E2=80=AFPM Melanie Plageman wrote: > > On Thu, Aug 28, 2025 at 5:12=E2=80=AFAM Kirill Reshke wrote: > > > > I did micro git-blame research here. I spotted only one related change > > [0]. Looks like before this change pin was indeed needed. > > But not after this change, so this visibilitymap_pin is just an oversig= ht? > > Related thread is [1]. I quickly checked the discussion in this > > thread, and it looks like no one was bothered about these lines or VM > > logging changes (in this exact pin buffer aspect). The discussion was > > of other aspects of this commit. > > Wow, thanks so much for doing that research. Looking at it myself, it > does indeed seem like just an oversight. It isn't harmful since it > won't take another pin, but it is confusing, so I think we should at > least remove it in master. I'm not as sure about back branches. I've updated the commit message in the patch set to reflect the research you did in attached v8. - Melanie --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0002-Add-assert-and-log-message-to-visibilitymap_set.patch" Content-Disposition: attachment; filename="v8-0002-Add-assert-and-log-message-to-visibilitymap_set.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7az1 RnJvbSA3YzVjYjNlZGY4OTczNWVhYThiZWU5Y2E0NjExMWJkNmM1NTQ3MjBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI3IEF1ZyAyMDI1IDEwOjA3OjI5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAwMi8yMl0gQWRkIGFzc2VydCBhbmQgbG9nIG1lc3NhZ2UgdG8gdmlzaWJpbGl0eW1h cF9zZXQKCkFkZCBhbiBhc3NlcnQgdG8gdmlzaWJpbGl0eW1hcF9zZXQoKSB0aGF0IHRoZSBwcm92 aWRlZCBoZWFwIGJ1ZmZlciBpcwpleGNsdXNpdmVseSBsb2NrZWQsIHdoaWNoIGlzIGV4cGVjdGVk LgoKQWxzbywgZW5oYW5jZSB0aGUgZGVidWcgbG9nZ2luZyBtZXNzYWdlIHRvIHNwZWNpZnkgd2hp Y2ggVk0gZmxhZ3Mgd2VyZQpzZXQuCgpCYXNlZCBvbiBhIHJlbGF0ZWQgc3VnZ2VzdGlvbiBieSBL aXJpbGwgUmVzaGtlIG9uIGFuIGluLXByb2dyZXNzCnBhdGNoc2V0LgoKRGlzY3Vzc2lvbjogaHR0 cHM6Ly9wb3N0Z3IuZXMvbS9DQUxkU1NQaEFVNTZnMWdHVlQwJTJCd0c4UnJTV0U2cVc4VE9mTkpT MUhOQVdYNndQZ2JGQSU0MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmlzaWJpbGl0eW1hcC5jIHwgNSArKysrLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3Zpc2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAu YwppbmRleCA5NTNhZDRhNDg0My4uNzMwNmMxNmYwNWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92aXNpYmlsaXR5bWFwLmMKQEAgLTI1NSw3ICsyNTUsOCBAQCB2aXNpYmlsaXR5bWFwX3NldChS ZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAogCXVpbnQ4 CQlzdGF0dXM7CiAKICNpZmRlZiBUUkFDRV9WSVNJQklMSVRZTUFQCi0JZWxvZyhERUJVRzEsICJ2 bV9zZXQgJXMgJWQiLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLCBoZWFwQmxrKTsKKwll bG9nKERFQlVHMSwgInZtX3NldCBmbGFncyAweCUwMlggZm9yICVzICVkIiwKKwkJIGZsYWdzLCBS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLCBoZWFwQmxrKTsKICNlbmRpZgogCiAJQXNzZXJ0 KEluUmVjb3ZlcnkgfHwgWExvZ1JlY1B0cklzSW52YWxpZChyZWNwdHIpKTsKQEAgLTI2OSw2ICsy NzAsOCBAQCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBC bGssIEJ1ZmZlciBoZWFwQnVmLAogCWlmIChCdWZmZXJJc1ZhbGlkKGhlYXBCdWYpICYmIEJ1ZmZl ckdldEJsb2NrTnVtYmVyKGhlYXBCdWYpICE9IGhlYXBCbGspCiAJCWVsb2coRVJST1IsICJ3cm9u ZyBoZWFwIGJ1ZmZlciBwYXNzZWQgdG8gdmlzaWJpbGl0eW1hcF9zZXQiKTsKIAorCUFzc2VydCgh QnVmZmVySXNWYWxpZChoZWFwQnVmKSB8fCBCdWZmZXJJc0V4Y2x1c2l2ZUxvY2tlZChoZWFwQnVm KSk7CisKIAkvKiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IFZNIHBhZ2UgcGlubmVkICov CiAJaWYgKCFCdWZmZXJJc1ZhbGlkKHZtQnVmKSB8fCBCdWZmZXJHZXRCbG9ja051bWJlcih2bUJ1 ZikgIT0gbWFwQmxvY2spCiAJCWVsb2coRVJST1IsICJ3cm9uZyBWTSBidWZmZXIgcGFzc2VkIHRv IHZpc2liaWxpdHltYXBfc2V0Iik7Ci0tIAoyLjQzLjAKCg== --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0001-Remove-unneeded-VM-pin-from-VM-replay.patch" Content-Disposition: attachment; filename="v8-0001-Remove-unneeded-VM-pin-from-VM-replay.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7aq0 RnJvbSBkZDk4MTc3Mjk0MDExZWU5M2NhYzEyMjQwNTUxNmFiZDg5ZjRlMzkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI3IEF1ZyAyMDI1IDA4OjUwOjE1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAwMS8yMl0gUmVtb3ZlIHVubmVlZGVkIFZNIHBpbiBmcm9tIFZNIHJlcGxheQoKUHJl dmlvdXNseSwgaGVhcF94bG9nX3Zpc2libGUoKSBjYWxsZWQgdmlzaWJpbGl0eW1hcF9waW4oKSBl dmVuIGFmdGVyCmdldHRpbmcgYSBidWZmZXIgZnJvbSBYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRl bmRlZCgpIC0tIHdoaWNoIHJldHVybnMgYQpwaW5uZWQgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIHNw ZWNpZmllZCBibG9jayBvZiB0aGUgdmlzaWJpbGl0eSBtYXAuCgpUaGlzIHdvdWxkIGp1c3QgaGF2 ZSByZXN1bHRlZCBpbiB2aXNpYmlsaXR5bWFwX3BpbigpIHJldHVybmluZyBlYXJseQpzaW5jZSB0 aGUgc3BlY2lmaWVkIHBhZ2Ugd2FzIGFscmVhZHkgcHJlc2VudCBhbmQgcGlubmVkLCBidXQgaXQg d2FzCmNvbmZ1c2luZyBleHRyYW5lb3VzIGNvZGUsIHNvIHJlbW92ZSBpdC4KCkl0IGFwcGVhcnMg dG8gYmUgYW4gb3ZlcnNpZ2h0IGluIDJjMDMyMTYuCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4g PG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJlcG9ydGVkLWJ5OiBNZWxhbmllIFBsYWdlbWFu IDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXBvcnRlZC1ieTogS2lyaWxsIFJlc2hrZSA8 cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20v Q0FMZFNTUGh1N1daZCUyQkVmUURoYTFueiUzRERDOTNPdFkxJTNEVUZFZFd3U1pzQVNrYV8yZVJR JTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxv Zy5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKaW5kZXggNWQ0OGYwNzFmNTMuLjY5 ZTIwMDNhNzZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxv Zy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKQEAgLTI5NSw4 ICsyOTUsOCBAQCBoZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJ TG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsKIAogCQlyZWxuID0gQ3Jl YXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3IpOwotCQl2aXNpYmlsaXR5bWFwX3BpbihyZWxu LCBibGtubywgJnZtYnVmZmVyKTsKIAorCQlBc3NlcnQodmlzaWJpbGl0eW1hcF9waW5fb2soYmxr bm8sIHZtYnVmZmVyKSk7CiAJCXZpc2liaWxpdHltYXBfc2V0KHJlbG4sIGJsa25vLCBJbnZhbGlk QnVmZmVyLCBsc24sIHZtYnVmZmVyLAogCQkJCQkJICB4bHJlYy0+c25hcHNob3RDb25mbGljdEhv cml6b24sIHZtYml0cyk7CiAKLS0gCjIuNDMuMAoK --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0005-Eliminate-xl_heap_visible-from-vacuum-phase-III.patch" Content-Disposition: attachment; filename="v8-0005-Eliminate-xl_heap_visible-from-vacuum-phase-III.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7b84 RnJvbSBkYzMxODM1ODU3MmY2MWVmYmQwZTA1YWFlMmI5YTA3N2I0MjJiY2Y1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjQyOjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAwNS8yMl0gRWxpbWluYXRlIHhsX2hlYXBfdmlzaWJsZSBmcm9tIHZhY3V1bSBwaGFz ZSBJSUkKCkluc3RlYWQgb2YgZW1pdHRpbmcgYSBzZXBhcmF0ZSB4bF9oZWFwX3Zpc2libGUgcmVj b3JkIGZvciBlYWNoIHBhZ2UgdGhhdAppcyByZW5kZXJlZCBhbGwtdmlzaWJsZSBieSB2YWN1dW0n cyB0aGlyZCBwaGFzZSwgaW5jbHVkZSB0aGUgdXBkYXRlcyB0bwp0aGUgVk0gaW4gdGhlIGFscmVh ZHkgZW1pdHRlZCB4bF9oZWFwX3BydW5lIHJlY29yZC4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1h biA8bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2Ug PHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20v ZmxhdC9DQUFLUnVfWk13Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhwOC1WN1NPTHhkSzkt ZyU0MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hs b2cuYyAgfCAxNDMgKysrKysrKysrKysrKysrKysrKysrLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYyAgICB8ICA0OCArKysrKysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jICAgfCAxNDkgKysrKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMgfCAgMTMgKystCiBzcmMvaW5jbHVkZS9h Y2Nlc3MvaGVhcGFtLmggICAgICAgICAgICB8ICAgOSArKwogc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbV94bG9nLmggICAgICAgfCAgIDcgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMzAwIGluc2VydGlv bnMoKyksIDY5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5j CmluZGV4IDBjOTAyYzg3NjgyLi5lNjhlNjFmZWFkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1feGxvZy5jCkBAIC0zNSw3ICszNSw4IEBAIGhlYXBfeGxvZ19wcnVuZV9mcmVlemUoWExv Z1JlYWRlclN0YXRlICpyZWNvcmQpCiAJQnVmZmVyCQlidWZmZXI7CiAJUmVsRmlsZUxvY2F0b3Ig cmxvY2F0b3I7CiAJQmxvY2tOdW1iZXIgYmxrbm87Ci0JWExvZ1JlZG9BY3Rpb24gYWN0aW9uOwor CUJ1ZmZlcgkJdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOworCXVpbnQ4CQl2bWZsYWdzID0gMDsK IAogCVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVMTCwgJmJsa25v KTsKIAltZW1jcHkoJnhscmVjLCBtYWluZGF0YXB0ciwgU2l6ZU9mSGVhcFBydW5lKTsKQEAgLTUx LDEwICs1MiwxNSBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVj b3JkKQogCQkgICAoeGxyZWMuZmxhZ3MgJiAoWExIUF9IQVNfUkVESVJFQ1RJT05TIHwgWExIUF9I QVNfREVBRF9JVEVNUykpID09IDApOwogCiAJLyoKLQkgKiBXZSBhcmUgYWJvdXQgdG8gcmVtb3Zl IGFuZC9vciBmcmVlemUgdHVwbGVzLiAgSW4gSG90IFN0YW5kYnkgbW9kZSwKLQkgKiBlbnN1cmUg dGhhdCB0aGVyZSBhcmUgbm8gcXVlcmllcyBydW5uaW5nIGZvciB3aGljaCB0aGUgcmVtb3ZlZCB0 dXBsZXMKLQkgKiBhcmUgc3RpbGwgdmlzaWJsZSBvciB3aGljaCBzdGlsbCBjb25zaWRlciB0aGUg ZnJvemVuIHhpZHMgYXMgcnVubmluZy4KLQkgKiBUaGUgY29uZmxpY3QgaG9yaXpvbiBYSUQgY29t ZXMgYWZ0ZXIgeGxfaGVhcF9wcnVuZS4KKwkgKiBBZnRlciB4bF9oZWFwX3BydW5lIGlzIHRoZSBv cHRpb25hbCBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uLgorCSAqCisJICogSW4gSG90IFN0YW5k YnkgbW9kZSwgd2UgbXVzdCBlbnN1cmUgdGhhdCB0aGVyZSBhcmUgbm8gcnVubmluZyBxdWVyaWVz CisJICogd2hpY2ggd291bGQgY29uZmxpY3Qgd2l0aCB0aGUgY2hhbmdlcyBpbiB0aGlzIHJlY29y ZC4gSWYgcHJ1bmluZywgdGhhdAorCSAqIG1lYW5zIHdlIGNhbm5vdCByZW1vdmUgdHVwbGVzIHN0 aWxsIHZpc2libGUgdG8gdHJhbnNhY3Rpb25zIG9uIHRoZQorCSAqIHN0YW5kYnkuIElmIGZyZWV6 aW5nLCB0aGF0IG1lYW5zIHdlIGNhbm5vdCBmcmVlemUgdHVwbGVzIHdpdGggeGlkcyB0aGF0CisJ ICogYXJlIHN0aWxsIGNvbnNpZGVyZWQgcnVubmluZyBvbiB0aGUgc3RhbmRieS4gQW5kIGZvciBz ZXR0aW5nIHRoZSBWTSwgd2UKKwkgKiBjYW5ub3QgZG8gc28gaWYgdGhlIHBhZ2UgaXNuJ3QgYWxs LXZpc2libGUgdG8gYWxsIHRyYW5zYWN0aW9ucyBvbiB0aGUKKwkgKiBzdGFuZGJ5LgogCSAqLwog CWlmICgoeGxyZWMuZmxhZ3MgJiBYTEhQX0hBU19DT05GTElDVF9IT1JJWk9OKSAhPSAwKQogCXsK QEAgLTcwLDEzICs3NiwyOSBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKQogCQkJCQkJCQkJCQkJcmxvY2F0b3IpOwogCX0KIAorCS8qIE5leHQgYXJlIHRo ZSBvcHRpb25hbGx5IGluY2x1ZGVkIHZtZmxhZ3MuIENvcHkgdGhlbSBvdXQgZm9yIGxhdGVyIHVz ZS4gKi8KKwlpZiAoKHhscmVjLmZsYWdzICYgWExIUF9IQVNfVk1GTEFHUykgIT0gMCkKKwl7CisJ CS8qIG1lbWNweSBiZWNhdXNlIHZtZmxhZ3MgaXMgc3RvcmVkIHVuYWxpZ25lZCAqLworCQltZW1j cHkoJnZtZmxhZ3MsIG1haW5kYXRhcHRyLCBzaXplb2YodWludDgpKTsKKwkJbWFpbmRhdGFwdHIg Kz0gc2l6ZW9mKHVpbnQ4KTsKKworCQkvKgorCQkgKiBXZSBkb24ndCBzZXQgVklTSUJJTElUWU1B UF9YTE9HX0NBVEFMT0dfUkVMIGluIHRoZSBjb21iaW5lZCByZWNvcmQKKwkJICogYmVjYXVzZSB3 ZSBhbHJlYWR5IGhhdmUgWExIUF9JU19DQVRBTE9HX1JFTC4KKwkJICovCisJCUFzc2VydCgodm1m bGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgPT0gdm1mbGFncyk7CisJCS8qIE11c3Qg bmV2ZXIgc2V0IGFsbF9mcm96ZW4gYml0IHdpdGhvdXQgYWxzbyBzZXR0aW5nIGFsbF92aXNpYmxl IGJpdCAqLworCQlBc3NlcnQodm1mbGFncyAhPSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOwor CX0KKwogCS8qCi0JICogSWYgd2UgaGF2ZSBhIGZ1bGwtcGFnZSBpbWFnZSwgcmVzdG9yZSBpdCBh bmQgd2UncmUgZG9uZS4KKwkgKiBJZiB3ZSBoYXZlIGEgZnVsbC1wYWdlIGltYWdlIG9mIHRoZSBo ZWFwIGJsb2NrLCByZXN0b3JlIGl0IGFuZCB3ZSdyZQorCSAqIGRvbmUgd2l0aCB0aGUgaGVhcCBi bG9jay4KIAkgKi8KLQlhY3Rpb24gPSBYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZChyZWNv cmQsIDAsIFJCTV9OT1JNQUwsCi0JCQkJCQkJCQkJICAgKHhscmVjLmZsYWdzICYgWExIUF9DTEVB TlVQX0xPQ0spICE9IDAsCi0JCQkJCQkJCQkJICAgJmJ1ZmZlcik7Ci0JaWYgKGFjdGlvbiA9PSBC TEtfTkVFRFNfUkVETykKKwlpZiAoWExvZ1JlYWRCdWZmZXJGb3JSZWRvRXh0ZW5kZWQocmVjb3Jk LCAwLCBSQk1fTk9STUFMLAorCQkJCQkJCQkJICAoeGxyZWMuZmxhZ3MgJiBYTEhQX0NMRUFOVVBf TE9DSykgIT0gMCwKKwkJCQkJCQkJCSAgJmJ1ZmZlcikgPT0gQkxLX05FRURTX1JFRE8pCiAJewog CQlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOwogCQlPZmZzZXROdW1iZXIgKnJl ZGlyZWN0ZWQ7CkBAIC04OSw2ICsxMTEsOSBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dS ZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlTaXplCQlkYXRhbGVuOwogCQl4bGhwX2ZyZWV6ZV9wbGFu ICpwbGFuczsKIAkJT2Zmc2V0TnVtYmVyICpmcnpfb2Zmc2V0czsKKwkJYm9vbAkJZG9fcHJ1bmU7 CisJCWJvb2wJCW1hcmtfYnVmZmVyX2RpcnR5OworCQlib29sCQlzZXRfaGVhcF9sc247CiAJCWNo YXIJICAgKmRhdGFwdHIgPSBYTG9nUmVjR2V0QmxvY2tEYXRhKHJlY29yZCwgMCwgJmRhdGFsZW4p OwogCiAJCWhlYXBfeGxvZ19kZXNlcmlhbGl6ZV9wcnVuZV9hbmRfZnJlZXplKGRhdGFwdHIsIHhs cmVjLmZsYWdzLApAQCAtOTcsMTEgKzEyMiwxOCBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhM b2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJCQkJCQkJCQkgICAmbmRlYWQsICZub3dkZWFkLAog CQkJCQkJCQkJCQkgICAmbnVudXNlZCwgJm5vd3VudXNlZCk7CiAKKwkJZG9fcHJ1bmUgPSBucmVk aXJlY3RlZCA+IDAgfHwgbmRlYWQgPiAwIHx8IG51bnVzZWQgPiAwOworCQlzZXRfaGVhcF9sc24g PSBtYXJrX2J1ZmZlcl9kaXJ0eSA9IGRvX3BydW5lIHx8IG5wbGFucyA+IDA7CisKKwkJLyogRW5z dXJlIHRoZSByZWNvcmQgZG9lcyBzb21ldGhpbmcgKi8KKwkJQXNzZXJ0KGRvX3BydW5lIHx8IG5w bGFucyA+IDAgfHwKKwkJCSAgIHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwor CiAJCS8qCiAJCSAqIFVwZGF0ZSBhbGwgbGluZSBwb2ludGVycyBwZXIgdGhlIHJlY29yZCwgYW5k IHJlcGFpciBmcmFnbWVudGF0aW9uCiAJCSAqIGlmIG5lZWRlZC4KIAkJICovCi0JCWlmIChucmVk aXJlY3RlZCA+IDAgfHwgbmRlYWQgPiAwIHx8IG51bnVzZWQgPiAwKQorCQlpZiAoZG9fcHJ1bmUp CiAJCQloZWFwX3BhZ2VfcHJ1bmVfZXhlY3V0ZShidWZmZXIsCiAJCQkJCQkJCQkoeGxyZWMuZmxh Z3MgJiBYTEhQX0NMRUFOVVBfTE9DSykgPT0gMCwKIAkJCQkJCQkJCXJlZGlyZWN0ZWQsIG5yZWRp cmVjdGVkLApAQCAtMTM4LDI2ICsxNzAsNzIgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9n UmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJLyogVGhlcmUgc2hvdWxkIGJlIG5vIG1vcmUgZGF0YSAq LwogCQlBc3NlcnQoKGNoYXIgKikgZnJ6X29mZnNldHMgPT0gZGF0YXB0ciArIGRhdGFsZW4pOwog CisJCUFzc2VydChCdWZmZXJJc1ZhbGlkKGJ1ZmZlcikgJiYKKwkJCSAgIEJ1ZmZlckdldEJsb2Nr TnVtYmVyKGJ1ZmZlcikgPT0gYmxrbm8pOworCisJCS8qCisJCSAqIE5vdyBzZXQgUERfQUxMX1ZJ U0lCTEUsIGlmIHJlcXVpcmVkLiBXZSdsbCBvbmx5IGRvIHRoaXMgaWYgd2UgYXJlCisJCSAqIGFs c28gZ29pbmcgdG8gc2V0IGJpdHMgaW4gdGhlIFZNIGxhdGVyLgorCQkgKgorCQkgKiBXZSBtdXN0 IG5ldmVyIGVuZCB1cCB3aXRoIHRoZSBWTSBiaXQgc2V0IGFuZCB0aGUgcGFnZS1sZXZlbAorCQkg KiBQRF9BTExfVklTSUJMRSBiaXQgY2xlYXIuIElmIHRoYXQgd2VyZSB0byBvY2N1ciwgYSBzdWJz ZXF1ZW50IHBhZ2UKKwkJICogbW9kaWZpY2F0aW9uIHdvdWxkIGZhaWwgdG8gY2xlYXIgdGhlIFZN IGJpdC4KKwkJICovCisJCWlmICgodm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykg JiYgIVBhZ2VJc0FsbFZpc2libGUocGFnZSkpCisJCXsKKwkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBh Z2UpOworCisJCQkvKgorCQkJICogSWYgdGhlIG9ubHkgY2hhbmdlIHRvIHRoZSBoZWFwIHBhZ2Ug aXMgc2V0dGluZyBQRF9BTExfVklTSUJMRSwKKwkJCSAqIHdlIGNhbiBhdm9pZCBzZXR0aW5nIHRo ZSBwYWdlIExTTiB1bmxlc3MgY2hlY2tzdW1zIG9yCisJCQkgKiB3YWxfbG9nX2hpbnRzIGFyZSBl bmFibGVkLgorCQkJICovCisJCQlzZXRfaGVhcF9sc24gPSBYTG9nSGludEJpdElzTmVlZGVkKCkg PyB0cnVlIDogc2V0X2hlYXBfbHNuOworCQkJbWFya19idWZmZXJfZGlydHkgPSB0cnVlOworCQl9 CisKIAkJLyoKIAkJICogTm90ZTogd2UgZG9uJ3Qgd29ycnkgYWJvdXQgdXBkYXRpbmcgdGhlIHBh Z2UncyBwcnVuYWJpbGl0eSBoaW50cy4KIAkJICogQXQgd29yc3QgdGhpcyB3aWxsIGNhdXNlIGFu IGV4dHJhIHBydW5lIGN5Y2xlIHRvIG9jY3VyIHNvb24uCiAJCSAqLwogCi0JCVBhZ2VTZXRMU04o cGFnZSwgbHNuKTsKLQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CisJCWlmIChtYXJrX2J1ZmZl cl9kaXJ0eSkKKwkJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOworCQlpZiAoc2V0X2hlYXBfbHNu KQorCQkJUGFnZVNldExTTihwYWdlLCBsc24pOwogCX0KIAogCS8qCi0JICogSWYgd2UgcmVsZWFz ZWQgYW55IHNwYWNlIG9yIGxpbmUgcG9pbnRlcnMsIHVwZGF0ZSB0aGUgZnJlZSBzcGFjZSBtYXAu CisJICogSWYgd2UgcmVsZWFzZWQgYW55IHNwYWNlIG9yIGxpbmUgcG9pbnRlcnMgb3Igd2lsbCBi ZSBzZXR0aW5nIGEgcGFnZSBpbgorCSAqIHRoZSB2aXNpYmlsaXR5IG1hcCwgdXBkYXRlIHRoZSBm cmVlIHNwYWNlIG1hcC4KKwkgKgorCSAqIEV2ZW4gaWYgd2UgYXJlIGp1c3QgdXBkYXRpbmcgdGhl IFZNIChhbmQgdGh1cyBub3QgZnJlZWluZyB1cCBhbnkKKwkgKiBzcGFjZSksIHdlJ2xsIHN0aWxs IHVwZGF0ZSB0aGUgRlNNIGZvciB0aGlzIHBhZ2UuIFNpbmNlIEZTTSBpcyBub3QKKwkgKiBXQUwt bG9nZ2VkIGFuZCBvbmx5IHVwZGF0ZWQgaGV1cmlzdGljYWxseSwgaXQgZWFzaWx5IGJlY29tZXMg c3RhbGUgaW4KKwkgKiBzdGFuZGJ5cy4gIElmIHRoZSBzdGFuZGJ5IGlzIGxhdGVyIHByb21vdGVk IGFuZCBydW5zIFZBQ1VVTSwgaXQgd2lsbAorCSAqIHNraXAgdXBkYXRpbmcgaW5kaXZpZHVhbCBm cmVlIHNwYWNlIGZpZ3VyZXMgZm9yIHBhZ2VzIHRoYXQgYmVjYW1lCisJICogYWxsLXZpc2libGUg KG9yIGFsbC1mcm96ZW4sIGRlcGVuZGluZyBvbiB0aGUgdmFjdXVtIG1vZGUsKSB3aGljaCBpcwor CSAqIHRyb3VibGVzb21lIHdoZW4gRnJlZVNwYWNlTWFwVmFjdXVtIHByb3BhZ2F0ZXMgdG9vIG9w dGltaXN0aWMgZnJlZQorCSAqIHNwYWNlIHZhbHVlcyB0byB1cHBlciBGU00gbGF5ZXJzOyBsYXRl ciBpbnNlcnRlcnMgdHJ5IHRvIHVzZSBzdWNoIHBhZ2VzCisJICogb25seSB0byBmaW5kIG91dCB0 aGF0IHRoZXkgYXJlIHVudXNhYmxlLiAgVGhpcyBjYW4gY2F1c2UgbG9uZyBzdGFsbHMKKwkgKiB3 aGVuIHRoZXJlIGFyZSBtYW55IHN1Y2ggcGFnZXMuCisJICoKKwkgKiBGb3Jlc3RhbGwgdGhvc2Ug cHJvYmxlbXMgYnkgdXBkYXRpbmcgRlNNJ3MgaWRlYSBhYm91dCBhIHBhZ2UgdGhhdCBpcworCSAq IGJlY29taW5nIGFsbC12aXNpYmxlIG9yIGFsbC1mcm96ZW4uCiAJICoKIAkgKiBEbyB0aGlzIHJl Z2FyZGxlc3Mgb2YgYSBmdWxsLXBhZ2UgaW1hZ2UgYmVpbmcgYXBwbGllZCwgc2luY2UgdGhlIEZT TQogCSAqIGRhdGEgaXMgbm90IGluIHRoZSBwYWdlIGFueXdheS4KKwkgKgorCSAqIFdlIHdhbnQg dG8gYXZvaWQgaG9sZGluZyBhbiBleGNsdXNpdmUgbG9jayBvbiB0aGUgaGVhcCBidWZmZXIgd2hp bGUKKwkgKiBkb2luZyBJTyAoZWl0aGVyIG9mIHRoZSBGU00gb3IgdGhlIFZNKSwgc28gd2UnbGwg cmVsZWFzZSB0aGUgbG9jayBvbgorCSAqIHRoZSBoZWFwIGJ1ZmZlciBiZWZvcmUgZG9pbmcgZWl0 aGVyLgogCSAqLwogCWlmIChCdWZmZXJJc1ZhbGlkKGJ1ZmZlcikpCiAJewotCQlpZiAoeGxyZWMu ZmxhZ3MgJiAoWExIUF9IQVNfUkVESVJFQ1RJT05TIHwKLQkJCQkJCSAgIFhMSFBfSEFTX0RFQURf SVRFTVMgfAotCQkJCQkJICAgWExIUF9IQVNfTk9XX1VOVVNFRF9JVEVNUykpCisJCWlmICgoeGxy ZWMuZmxhZ3MgJiAoWExIUF9IQVNfUkVESVJFQ1RJT05TIHwKKwkJCQkJCQlYTEhQX0hBU19ERUFE X0lURU1TIHwKKwkJCQkJCQlYTEhQX0hBU19OT1dfVU5VU0VEX0lURU1TKSkgfHwKKwkJCXZtZmxh Z3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpCiAJCXsKIAkJCVNpemUJCWZyZWVzcGFjZSA9 IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSk7CiAKQEAgLTE2OCw2 ICsyNDYsMzcgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29y ZCkKIAkJZWxzZQogCQkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZmZXIpOwogCX0KKworCS8qCisJ ICogUmVhZCBhbmQgdXBkYXRlIHRoZSBWTSBibG9jay4gRXZlbiBpZiB3ZSBza2lwcGVkIHVwZGF0 aW5nIHRoZSBoZWFwIHBhZ2UKKwkgKiBkdWUgdG8gdGhlIGZpbGUgYmVpbmcgZHJvcHBlZCBvciB0 cnVuY2F0ZWQgbGF0ZXIgaW4gcmVjb3ZlcnksIGl0J3MKKwkgKiBzdGlsbCBzYWZlIHRvIHVwZGF0 ZSB0aGUgdmlzaWJpbGl0eSBtYXAuICBBbnkgV0FMIHJlY29yZCB0aGF0IGNsZWFycworCSAqIHRo ZSB2aXNpYmlsaXR5IG1hcCBiaXQgZG9lcyBzbyBiZWZvcmUgY2hlY2tpbmcgdGhlIHBhZ2UgTFNO LCBzbyBhbnkKKwkgKiBiaXRzIHRoYXQgbmVlZCB0byBiZSBjbGVhcmVkIHdpbGwgc3RpbGwgYmUg Y2xlYXJlZC4KKwkgKgorCSAqIE5vdGUgdGhhdCBpdCBpcyAqb25seSogb2theSB0aGF0IHdlIGRv IG5vdCBob2xkIGEgbG9jayBvbiB0aGUgaGVhcCBwYWdlCisJICogYmVjYXVzZSB3ZSBhcmUgaW4g cmVjb3ZlcnkgYW5kIGNhbiBleHBlY3Qgbm8gb3RoZXIgd3JpdGVycyB0byBjbGVhcgorCSAqIFBE X0FMTF9WSVNJQkxFIGJlZm9yZSB3ZSBhcmUgYWJsZSB0byB1cGRhdGUgdGhlIFZNLgorCSAqLwor CWlmICh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTICYmCisJCVhMb2dSZWFkQnVm ZmVyRm9yUmVkb0V4dGVuZGVkKHJlY29yZCwgMSwKKwkJCQkJCQkJCSAgUkJNX1pFUk9fT05fRVJS T1IsCisJCQkJCQkJCQkgIGZhbHNlLAorCQkJCQkJCQkJICAmdm1idWZmZXIpID09IEJMS19ORUVE U19SRURPKQorCXsKKwkJdWludDgJCW9sZF92bWJpdHMgPSAwOworCQlSZWxhdGlvbglyZWxuID0g Q3JlYXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3IpOworCisJCXZpc2liaWxpdHltYXBfcGlu KHJlbG4sIGJsa25vLCAmdm1idWZmZXIpOworCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9z ZXRfdm1ieXRlKHJlbG4sIGJsa25vLCB2bWJ1ZmZlciwgdm1mbGFncyk7CisJCS8qIE9ubHkgc2V0 IFZNIHBhZ2UgTFNOIGlmIHdlIG1vZGlmaWVkIHRoZSBwYWdlICovCisJCWlmIChvbGRfdm1iaXRz ICE9IHZtZmxhZ3MpCisJCQlQYWdlU2V0TFNOKEJ1ZmZlckdldFBhZ2Uodm1idWZmZXIpLCBsc24p OworCQlGcmVlRmFrZVJlbGNhY2hlRW50cnkocmVsbik7CisJfQorCisJaWYgKEJ1ZmZlcklzVmFs aWQodm1idWZmZXIpKQorCQlVbmxvY2tSZWxlYXNlQnVmZmVyKHZtYnVmZmVyKTsKIH0KIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggN2ViZDIyZjAwYTMuLmYxYThmOTM4 ZTllIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMjEsNiArMjEsNyBAQAog I2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2cuaCIKICNp bmNsdWRlICJhY2Nlc3MveGxvZ2luc2VydC5oIgorI2luY2x1ZGUgImFjY2Vzcy92aXNpYmlsaXR5 bWFwZGVmcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ZhY3V1bS5oIgogI2luY2x1ZGUgImV4ZWN1 dG9yL2luc3RydW1lbnQuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKQEAgLTgzNSw2ICs4MzYs NyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVy IGJ1ZmZlciwKIAkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3ZlZDsK IAogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShyZWxhdGlvbiwgYnVmZmVyLAorCQkJCQkJ CQkJICBJbnZhbGlkQnVmZmVyLCAwLCBmYWxzZSwKIAkJCQkJCQkJCSAgY29uZmxpY3RfeGlkLAog CQkJCQkJCQkJICB0cnVlLCByZWFzb24sCiAJCQkJCQkJCQkgIHByc3RhdGUuZnJvemVuLCBwcnN0 YXRlLm5mcm96ZW4sCkBAIC0yMDQ1LDEyICsyMDQ3LDIzIEBAIGhlYXBfbG9nX2ZyZWV6ZV9wbGFu KEhlYXBUdXBsZUZyZWV6ZSAqdHVwbGVzLCBpbnQgbnR1cGxlcywKICAqIHJlcGxheWluZyAndW51 c2VkJyBpdGVtcyBkZXBlbmRzIG9uIHdoZXRoZXIgdGhleSB3ZXJlIGFsbCBwcmV2aW91c2x5IG1h cmtlZAogICogYXMgZGVhZC4KICAqCisgKiBJZiB0aGUgVk0gaXMgYmVpbmcgdXBkYXRlZCwgdm1m bGFncyB3aWxsIGNvbnRhaW4gdGhlIGJpdHMgdG8gc2V0LiBJbiB0aGlzCisgKiBjYXNlLCB2bWJ1 ZmZlciBzaG91bGQgYWxyZWFkeSBoYXZlIGJlZW4gdXBkYXRlZCBhbmQgbWFya2VkIGRpcnR5IGFu ZCBzaG91bGQKKyAqIHN0aWxsIGJlIHBpbm5lZCBhbmQgbG9ja2VkLgorICoKKyAqIHNldF9wZF9h bGxfdmlzIGluZGljYXRlcyB0aGF0IHdlIHNldCBQRF9BTExfVklTSUJMRSBhbmQgdGh1cyBzaG91 bGQgdXBkYXRlCisgKiB0aGUgcGFnZSBMU04gd2hlbiBjaGVja3N1bXMvd2FsX2xvZ19oaW50cyBh cmUgZW5hYmxlZCBldmVuIGlmIHdlIGRpZCBub3QKKyAqIHBydW5lIG9yIGZyZWV6ZSB0dXBsZXMg b24gdGhlIHBhZ2UuCisgKgogICogTm90ZTogVGhpcyBmdW5jdGlvbiBzY3JpYmJsZXMgb24gdGhl ICdmcm96ZW4nIGFycmF5LgogICoKICAqIE5vdGU6IFRoaXMgaXMgY2FsbGVkIGluIGEgY3JpdGlj YWwgc2VjdGlvbiwgc28gY2FyZWZ1bCB3aGF0IHlvdSBkbyBoZXJlLgogICovCiB2b2lkCiBsb2df aGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAor CQkJCQkJICBCdWZmZXIgdm1idWZmZXIsCisJCQkJCQkgIHVpbnQ4IHZtZmxhZ3MsCisJCQkJCQkg IGJvb2wgc2V0X3BkX2FsbF92aXMsCiAJCQkJCQkgIFRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlk LAogCQkJCQkJICBib29sIGNsZWFudXBfbG9jaywKIAkJCQkJCSAgUHJ1bmVSZWFzb24gcmVhc29u LApAQCAtMjA2Miw2ICsyMDc1LDcgQEAgbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlv biByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAl4bF9oZWFwX3BydW5lIHhscmVjOwogCVhMb2dS ZWNQdHIJcmVjcHRyOwogCXVpbnQ4CQlpbmZvOworCXVpbnQ4CQlyZWdidWZfZmxhZ3M7CiAKIAkv KiBUaGUgZm9sbG93aW5nIGxvY2FsIHZhcmlhYmxlcyBob2xkIGRhdGEgcmVnaXN0ZXJlZCBpbiB0 aGUgV0FMIHJlY29yZDogKi8KIAl4bGhwX2ZyZWV6ZV9wbGFuIHBsYW5zW01heEhlYXBUdXBsZXNQ ZXJQYWdlXTsKQEAgLTIwNzAsOCArMjA4NCwxOSBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXpl KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCXhsaHBfcHJ1bmVfaXRlbXMgZGVh ZF9pdGVtczsKIAl4bGhwX3BydW5lX2l0ZW1zIHVudXNlZF9pdGVtczsKIAlPZmZzZXROdW1iZXIg ZnJ6X29mZnNldHNbTWF4SGVhcFR1cGxlc1BlclBhZ2VdOworCWJvb2wJCWRvX3BydW5lID0gbnJl ZGlyZWN0ZWQgPiAwIHx8IG5kZWFkID4gMCB8fCBudW51c2VkID4gMDsKIAogCXhscmVjLmZsYWdz ID0gMDsKKwlyZWdidWZfZmxhZ3MgPSBSRUdCVUZfU1RBTkRBUkQ7CisKKwkvKgorCSAqIFdlIGNh biBhdm9pZCBhbiBGUEkgaWYgdGhlIG9ubHkgbW9kaWZpY2F0aW9uIHdlIGFyZSBtYWtpbmcgdG8g dGhlIGhlYXAKKwkgKiBwYWdlIGlzIHRvIHNldCBQRF9BTExfVklTSUJMRSBhbmQgY2hlY2tzdW1z L3dhbF9sb2dfaGludHMgYXJlIGRpc2FibGVkLgorCSAqLworCWlmICghZG9fcHJ1bmUgJiYKKwkJ bmZyb3plbiA9PSAwICYmCisJCSghc2V0X3BkX2FsbF92aXMgfHwgIVhMb2dIaW50Qml0SXNOZWVk ZWQoKSkpCisJCXJlZ2J1Zl9mbGFncyB8PSBSRUdCVUZfTk9fSU1BR0U7CiAKIAkvKgogCSAqIFBy ZXBhcmUgZGF0YSBmb3IgdGhlIGJ1ZmZlci4gIFRoZSBhcnJheXMgYXJlIG5vdCBhY3R1YWxseSBp biB0aGUKQEAgLTIwNzksNyArMjEwNCwxMSBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIHBhZ2UgaW1hZ2UsIHRoZSBhcnJh eXMgY2FuIGJlIG9taXR0ZWQuCiAJICovCiAJWExvZ0JlZ2luSW5zZXJ0KCk7Ci0JWExvZ1JlZ2lz dGVyQnVmZmVyKDAsIGJ1ZmZlciwgUkVHQlVGX1NUQU5EQVJEKTsKKwlYTG9nUmVnaXN0ZXJCdWZm ZXIoMCwgYnVmZmVyLCByZWdidWZfZmxhZ3MpOworCisJaWYgKHZtZmxhZ3MgJiBWSVNJQklMSVRZ TUFQX1ZBTElEX0JJVFMpCisJCVhMb2dSZWdpc3RlckJ1ZmZlcigxLCB2bWJ1ZmZlciwgMCk7CisK IAlpZiAobmZyb3plbiA+IDApCiAJewogCQlpbnQJCQlucGxhbnM7CkBAIC0yMTM2LDYgKzIxNjUs OCBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIg YnVmZmVyLAogCSAqIFByZXBhcmUgdGhlIG1haW4geGxfaGVhcF9wcnVuZSByZWNvcmQuICBXZSBh bHJlYWR5IHNldCB0aGUgWExIUF9IQVNfKgogCSAqIGZsYWcgYWJvdmUuCiAJICovCisJaWYgKHZt ZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpCisJCXhscmVjLmZsYWdzIHw9IFhMSFBf SEFTX1ZNRkxBR1M7CiAJaWYgKFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rpbmco cmVsYXRpb24pKQogCQl4bHJlYy5mbGFncyB8PSBYTEhQX0lTX0NBVEFMT0dfUkVMOwogCWlmIChU cmFuc2FjdGlvbklkSXNWYWxpZChjb25mbGljdF94aWQpKQpAQCAtMjE1MCw2ICsyMTgxLDggQEAg bG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZl ciwKIAlYTG9nUmVnaXN0ZXJEYXRhKCZ4bHJlYywgU2l6ZU9mSGVhcFBydW5lKTsKIAlpZiAoVHJh bnNhY3Rpb25JZElzVmFsaWQoY29uZmxpY3RfeGlkKSkKIAkJWExvZ1JlZ2lzdGVyRGF0YSgmY29u ZmxpY3RfeGlkLCBzaXplb2YoVHJhbnNhY3Rpb25JZCkpOworCWlmICh2bWZsYWdzICYgVklTSUJJ TElUWU1BUF9WQUxJRF9CSVRTKQorCQlYTG9nUmVnaXN0ZXJEYXRhKCZ2bWZsYWdzLCBzaXplb2Yo dWludDgpKTsKIAogCXN3aXRjaCAocmVhc29uKQogCXsKQEAgLTIxNjgsNSArMjIwMSwxNiBAQCBs b2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVy LAogCX0KIAlyZWNwdHIgPSBYTG9nSW5zZXJ0KFJNX0hFQVAyX0lELCBpbmZvKTsKIAotCVBhZ2VT ZXRMU04oQnVmZmVyR2V0UGFnZShidWZmZXIpLCByZWNwdHIpOworCWlmICh2bWZsYWdzICYgVklT SUJJTElUWU1BUF9WQUxJRF9CSVRTKQorCQlQYWdlU2V0TFNOKEJ1ZmZlckdldFBhZ2Uodm1idWZm ZXIpLCByZWNwdHIpOworCisJLyoKKwkgKiBJZiBwcnVuaW5nIG9yIGZyZWV6aW5nIHR1cGxlcyBv ciBzZXR0aW5nIHRoZSBwYWdlIGFsbC12aXNpYmxlIHdoZW4KKwkgKiBjaGVja3N1bXMgb3Igd2Fs X2hpbnRfYml0cyBhcmUgZW5hYmxlZCwgd2UgbXVzdCBidW1wIHRoZSBMU04uIFRvcm4KKwkgKiBw YWdlcyBhcmUgcG9zc2libGUgaWYgd2UgdXBkYXRlIFBEX0FMTF9WSVNJQkxFIHdpdGhvdXQgYnVt cGluZyB0aGUgTFNOLAorCSAqIGJ1dCB0aGlzIGlzIGRlZW1lZCBva2F5IGZvciBwYWdlIGhpbnQg dXBkYXRlcy4KKwkgKi8KKwlpZiAoZG9fcHJ1bmUgfHwgbmZyb3plbiA+IDAgfHwKKwkJKHNldF9w ZF9hbGxfdmlzICYmIFhMb2dIaW50Qml0SXNOZWVkZWQoKSkpCisJCVBhZ2VTZXRMU04oQnVmZmVy R2V0UGFnZShidWZmZXIpLCByZWNwdHIpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jCmluZGV4IGY0ZTI5YWVjZjQ2Li4xZDNmZWFiNGRlZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYwpAQCAtNDYzLDExICs0NjMsMTMgQEAgc3RhdGljIHZvaWQgZGVhZF9pdGVt c19hZGQoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgT2Zmc2V0TnVtYmVy ICoKIAkJCQkJCSAgIGludCBudW1fb2Zmc2V0cyk7CiBzdGF0aWMgdm9pZCBkZWFkX2l0ZW1zX3Jl c2V0KExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgdm9pZCBkZWFkX2l0ZW1zX2NsZWFudXAo TFZSZWxTdGF0ZSAqdmFjcmVsKTsKLXN0YXRpYyBib29sIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJs ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJCQkgVHJhbnNhY3Rpb25JZCBPbGRl c3RYbWluLAotCQkJCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCi0JCQkJCQkJCQkgVHJhbnNhY3Rp b25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJCQkJCQkJIE9mZnNldE51bWJlciAqbG9n Z2luZ19vZmZudW0pOworc3RhdGljIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlX2V4Y2Vw dF9scGRlYWQoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAorCQkJCQkJCQkJCQkJICAgVHJhbnNh Y3Rpb25JZCBPbGRlc3RYbWluLAorCQkJCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpkZWFkb2Zm c2V0cywKKwkJCQkJCQkJCQkJCSAgIGludCBhbGxvd2VkX251bV9vZmZzZXRzLAorCQkJCQkJCQkJ CQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKKwkJCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKnZp c2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqbG9nZ2lu Z19vZmZudW0pOwogc3RhdGljIHZvaWQgdXBkYXRlX3JlbHN0YXRzX2FsbF9pbmRleGVzKExWUmVs U3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgdm9pZCB2YWN1dW1fZXJyb3JfY2FsbGJhY2sodm9pZCAq YXJnKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV92YWN1dW1fZXJyb3JfaW5mbyhMVlJlbFN0YXRlICp2 YWNyZWwsCkBAIC0yODQ2LDggKzI4NDgsMTEgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVs U3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJT2Zmc2V0 TnVtYmVyIHVudXNlZFtNYXhIZWFwVHVwbGVzUGVyUGFnZV07CiAJaW50CQkJbnVudXNlZCA9IDA7 CiAJVHJhbnNhY3Rpb25JZCB2aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJVHJhbnNhY3Rpb25JZCBj b25mbGljdF94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAlib29sCQlhbGxfZnJvemVuOwog CUxWU2F2ZWRFcnJJbmZvIHNhdmVkX2Vycl9pbmZvOworCXVpbnQ4CQl2bWZsYWdzID0gMDsKKwli b29sCQlzZXRfcGRfYWxsX3ZpcyA9IGZhbHNlOwogCiAJQXNzZXJ0KHZhY3JlbC0+ZG9faW5kZXhf dmFjdXVtaW5nKTsKIApAQCAtMjg1OCw2ICsyODYzLDIwIEBAIGxhenlfdmFjdXVtX2hlYXBfcGFn ZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAog CQkJCQkJCSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFDVVVNX0hFQVAsIGJsa25vLAogCQkJCQkJCSBJ bnZhbGlkT2Zmc2V0TnVtYmVyKTsKIAorCWlmIChoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGVfZXhj ZXB0X2xwZGVhZCh2YWNyZWwtPnJlbCwgYnVmZmVyLAorCQkJCQkJCQkJCQkgICB2YWNyZWwtPmN1 dG9mZnMuT2xkZXN0WG1pbiwKKwkJCQkJCQkJCQkJICAgZGVhZG9mZnNldHMsIG51bV9vZmZzZXRz LAorCQkJCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJ CQkJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtKSkKKwl7CisJCXZtZmxhZ3MgfD0gVklTSUJJTElU WU1BUF9BTExfVklTSUJMRTsKKwkJaWYgKGFsbF9mcm96ZW4pCisJCXsKKwkJCXZtZmxhZ3MgfD0g VklTSUJJTElUWU1BUF9BTExfRlJPWkVOOworCQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxp ZCh2aXNpYmlsaXR5X2N1dG9mZl94aWQpKTsKKwkJfQorCX0KKwogCVNUQVJUX0NSSVRfU0VDVElP TigpOwogCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fb2Zmc2V0czsgaSsrKQpAQCAtMjg3Nyw2 ICsyODk2LDE4IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJs b2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCS8qIEF0dGVtcHQgdG8gdHJ1bmNhdGUg bGluZSBwb2ludGVyIGFycmF5IG5vdyAqLwogCVBhZ2VUcnVuY2F0ZUxpbmVQb2ludGVyQXJyYXko cGFnZSk7CiAKKwlpZiAoKHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpICE9IDAp CisJeworCQlBc3NlcnQoIVBhZ2VJc0FsbFZpc2libGUocGFnZSkpOworCQlzZXRfcGRfYWxsX3Zp cyA9IHRydWU7CisJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSk7 CisJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOworCQl2aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUo dmFjcmVsLT5yZWwsCisJCQkJCQkJCSBibGtubywKKwkJCQkJCQkJIHZtYnVmZmVyLCB2bWZsYWdz KTsKKwkJY29uZmxpY3RfeGlkID0gdmlzaWJpbGl0eV9jdXRvZmZfeGlkOworCX0KKwogCS8qCiAJ ICogTWFyayBidWZmZXIgZGlydHkgYmVmb3JlIHdlIHdyaXRlIFdBTC4KIAkgKi8KQEAgLTI4ODYs NyArMjkxNywxMCBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBC bG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAlpZiAoUmVsYXRpb25OZWVkc1dBTCh2 YWNyZWwtPnJlbCkpCiAJewogCQlsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKHZhY3JlbC0+cmVs LCBidWZmZXIsCi0JCQkJCQkJCSAgSW52YWxpZFRyYW5zYWN0aW9uSWQsCisJCQkJCQkJCSAgdm1i dWZmZXIsCisJCQkJCQkJCSAgdm1mbGFncywKKwkJCQkJCQkJICBzZXRfcGRfYWxsX3ZpcywKKwkJ CQkJCQkJICBjb25mbGljdF94aWQsCiAJCQkJCQkJCSAgZmFsc2UsCS8qIG5vIGNsZWFudXAgbG9j ayByZXF1aXJlZCAqLwogCQkJCQkJCQkgIFBSVU5FX1ZBQ1VVTV9DTEVBTlVQLAogCQkJCQkJCQkg IE5VTEwsIDAsCS8qIGZyb3plbiAqLwpAQCAtMjg5NSwzOSArMjkyOSwxMiBAQCBsYXp5X3ZhY3V1 bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVy IGJ1ZmZlciwKIAkJCQkJCQkJICB1bnVzZWQsIG51bnVzZWQpOwogCX0KIAotCS8qCi0JICogRW5k IGNyaXRpY2FsIHNlY3Rpb24sIHNvIHdlIHNhZmVseSBjYW4gZG8gdmlzaWJpbGl0eSB0ZXN0cyAo d2hpY2gKLQkgKiBwb3NzaWJseSBuZWVkIHRvIHBlcmZvcm0gSU8gYW5kIGFsbG9jYXRlIG1lbW9y eSEpLiBJZiB3ZSBjcmFzaCBub3cgdGhlCi0JICogcGFnZSAoaW5jbHVkaW5nIHRoZSBjb3JyZXNw b25kaW5nIHZtIGJpdCkgbWlnaHQgbm90IGJlIG1hcmtlZCBhbGwKLQkgKiB2aXNpYmxlLCBidXQg dGhhdCdzIGZpbmUuIEEgbGF0ZXIgdmFjdXVtIHdpbGwgZml4IHRoYXQuCi0JICovCiAJRU5EX0NS SVRfU0VDVElPTigpOwogCi0JLyoKLQkgKiBOb3cgdGhhdCB3ZSBoYXZlIHJlbW92ZWQgdGhlIExQ X0RFQUQgaXRlbXMgZnJvbSB0aGUgcGFnZSwgb25jZSBhZ2FpbgotCSAqIGNoZWNrIGlmIHRoZSBw YWdlIGhhcyBiZWNvbWUgYWxsLXZpc2libGUuICBUaGUgcGFnZSBpcyBhbHJlYWR5IG1hcmtlZAot CSAqIGRpcnR5LCBleGNsdXNpdmVseSBsb2NrZWQsIGFuZCwgaWYgbmVlZGVkLCBhIGZ1bGwgcGFn ZSBpbWFnZSBoYXMgYmVlbgotCSAqIGVtaXR0ZWQuCi0JICovCi0JQXNzZXJ0KCFQYWdlSXNBbGxW aXNpYmxlKHBhZ2UpKTsKLQlpZiAoaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVs LCBidWZmZXIsIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWluLAotCQkJCQkJCQkgJmFsbF9mcm96 ZW4sICZ2aXNpYmlsaXR5X2N1dG9mZl94aWQsICZ2YWNyZWwtPm9mZm51bSkpCisJaWYgKCh2bWZs YWdzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkgIT0gMCkKIAl7Ci0JCXVpbnQ4CQlmbGFn cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7Ci0KLQkJaWYgKGFsbF9mcm96ZW4pCi0JCXsK LQkJCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQodmlzaWJpbGl0eV9jdXRvZmZfeGlkKSk7 Ci0JCQlmbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU47Ci0JCX0KLQotCQlQYWdlU2V0 QWxsVmlzaWJsZShwYWdlKTsKLQkJdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVsLT5yZWwsIGJsa25v LCBidWZmZXIsCi0JCQkJCQkgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJICB2bWJ1ZmZlciwg dmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJCQkJICBmbGFncyk7Ci0KIAkJLyogQ291bnQgdGhl IG5ld2x5IHNldCBWTSBwYWdlIGZvciBsb2dnaW5nICovCisJCUxvY2tCdWZmZXIodm1idWZmZXIs IEJVRkZFUl9MT0NLX1VOTE9DSyk7CiAJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfcGFnZXMrKzsK IAkJaWYgKGFsbF9mcm96ZW4pCiAJCQl2YWNyZWwtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdl cysrOwpAQCAtMzU5Myw2ICszNjAwLDI1IEBAIGRlYWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRl ICp2YWNyZWwpCiAJdmFjcmVsLT5wdnMgPSBOVUxMOwogfQogCisvKgorICogV3JhcHBlciBmb3Ig aGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlX2V4Y2VwdF9scGRlYWQoKSB3aGljaCBjYW4gYmUgdXNl ZCBmb3IKKyAqIGNhbGxlcnMgdGhhdCBleHBlY3Qgbm8gTFBfREVBRCBvbiB0aGUgcGFnZS4KKyAq LworYm9vbAoraGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1 ZiwKKwkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkgYm9vbCAqYWxsX2Zy b3plbiwKKwkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJ CQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkKK3sKKworCXJldHVybiBoZWFwX3BhZ2Vf aXNfYWxsX3Zpc2libGVfZXhjZXB0X2xwZGVhZChyZWwsIGJ1ZiwgT2xkZXN0WG1pbiwKKwkJCQkJ CQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkJCSAgYWxsX2Zyb3plbiwKKwkJCQkJCQkJCQkJ CSAgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJCQkJCQkJCQkJICBsb2dnaW5nX29mZm51bSk7 Cit9CisKIC8qCiAgKiBDaGVjayBpZiBldmVyeSB0dXBsZSBpbiB0aGUgZ2l2ZW4gcGFnZSBpcyB2 aXNpYmxlIHRvIGFsbCBjdXJyZW50IGFuZCBmdXR1cmUKICAqIHRyYW5zYWN0aW9ucy4KQEAgLTM2 MDYsMjMgKzM2MzIsMzUgQEAgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCkK ICAqIHZpc2libGUgdHVwbGVzLiBTZXRzICphbGxfZnJvemVuIHRvIHRydWUgaWYgZXZlcnkgdHVw bGUgb24gdGhpcyBwYWdlIGlzCiAgKiBmcm96ZW4uCiAgKgotICogVGhpcyBpcyBhIHN0cmlwcGVk IGRvd24gdmVyc2lvbiBvZiBsYXp5X3NjYW5fcHJ1bmUoKS4gIElmIHlvdSBjaGFuZ2UKLSAqIGFu eXRoaW5nIGhlcmUsIG1ha2Ugc3VyZSB0aGF0IGV2ZXJ5dGhpbmcgc3RheXMgaW4gc3luYy4gIE5v dGUgdGhhdCBhbgotICogYXNzZXJ0aW9uIGNhbGxzIHVzIHRvIHZlcmlmeSB0aGF0IGV2ZXJ5Ym9k eSBzdGlsbCBhZ3JlZXMuICBCZSBzdXJlIHRvIGF2b2lkCi0gKiBpbnRyb2R1Y2luZyBuZXcgc2lk ZS1lZmZlY3RzIGhlcmUuCisgKiBkZWFkb2Zmc2V0cyBhcmUgdGhlIG9mZnNldHMgd2Uga25vdyBh Ym91dCBhbmQgYXJlIGFib3V0IHRvIHNldCBMUF9VTlVTRUQuCisgKiBhbGxvd2VkX251bV9vZmZz ZXRzIGlzIHRoZSBudW1iZXIgb2YgdGhvc2UuIEFzIGxvbmcgYXMgdGhlIExQX0RFQUQgaXRlbXMg d2UKKyAqIGVuY291bnRlciBvbiB0aGUgcGFnZSBtYXRjaCB0aG9zZSBleGFjdGx5LCB3ZSBjYW4g c2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlCisgKiBpbiB0aGUgVk0uCisgKgorICogQ2FsbGVycyBs b29raW5nIHRvIHZlcmlmeSB0aGF0IHRoZSBwYWdlIGlzIGFsbC12aXNpYmxlIGNhbiBjYWxsCisg KiBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKS4KKyAqCisgKiBUaGlzIGlzIHNpbWlsYXIgbG9n aWMgdG8gdGhhdCBpbiBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKCkgSWYK KyAqIHlvdSBjaGFuZ2UgYW55dGhpbmcgaGVyZSwgbWFrZSBzdXJlIHRoYXQgZXZlcnl0aGluZyBz dGF5cyBpbiBzeW5jLiAgTm90ZQorICogdGhhdCBhbiBhc3NlcnRpb24gY2FsbHMgdXMgdG8gdmVy aWZ5IHRoYXQgZXZlcnlib2R5IHN0aWxsIGFncmVlcy4gIEJlIHN1cmUKKyAqIHRvIGF2b2lkIGlu dHJvZHVjaW5nIG5ldyBzaWRlLWVmZmVjdHMgaGVyZS4KICAqLwogc3RhdGljIGJvb2wKLWhlYXBf cGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkgVHJh bnNhY3Rpb25JZCBPbGRlc3RYbWluLAotCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCi0JCQkJCQkg VHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJCQkJIE9mZnNldE51bWJl ciAqbG9nZ2luZ19vZmZudW0pCitoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGVfZXhjZXB0X2xwZGVh ZChSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCisJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIE9s ZGVzdFhtaW4sCisJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAorCQkJCQkJ CQkJICAgaW50IGFsbG93ZWRfbnVtX29mZnNldHMsCisJCQkJCQkJCQkgICBib29sICphbGxfZnJv emVuLAorCQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAor CQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkKIHsKIAlQYWdlCQlwYWdl ID0gQnVmZmVyR2V0UGFnZShidWYpOwogCUJsb2NrTnVtYmVyIGJsb2Nrbm8gPSBCdWZmZXJHZXRC bG9ja051bWJlcihidWYpOwogCU9mZnNldE51bWJlciBvZmZudW0sCiAJCQkJbWF4b2ZmOwogCWJv b2wJCWFsbF92aXNpYmxlID0gdHJ1ZTsKKwlPZmZzZXROdW1iZXIgY3VycmVudF9kZWFkX29mZnNl dHNbTWF4SGVhcFR1cGxlc1BlclBhZ2VdOworCXNpemVfdAkJY3VycmVudF9udW1fb2Zmc2V0cyA9 IDA7CiAKIAkqdmlzaWJpbGl0eV9jdXRvZmZfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJ KmFsbF9mcm96ZW4gPSB0cnVlOwpAQCAtMzY1NCw5ICszNjkyLDggQEAgaGVhcF9wYWdlX2lzX2Fs bF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJICovCiAJCWlmIChJdGVtSWRJ c0RlYWQoaXRlbWlkKSkKIAkJewotCQkJYWxsX3Zpc2libGUgPSBmYWxzZTsKLQkJCSphbGxfZnJv emVuID0gZmFsc2U7Ci0JCQlicmVhazsKKwkJCWN1cnJlbnRfZGVhZF9vZmZzZXRzW2N1cnJlbnRf bnVtX29mZnNldHMrK10gPSBvZmZudW07CisJCQljb250aW51ZTsKIAkJfQogCiAJCUFzc2VydChJ dGVtSWRJc05vcm1hbChpdGVtaWQpKTsKQEAgLTM3MjMsNyArMzc2MCwyMyBAQCBoZWFwX3BhZ2Vf aXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCS8qIENsZWFyIHRoZSBv ZmZzZXQgaW5mb3JtYXRpb24gb25jZSB3ZSBoYXZlIHByb2Nlc3NlZCB0aGUgZ2l2ZW4gcGFnZS4g Ki8KIAkqbG9nZ2luZ19vZmZudW0gPSBJbnZhbGlkT2Zmc2V0TnVtYmVyOwogCi0JcmV0dXJuIGFs bF92aXNpYmxlOworCS8qIElmIHdlIGFscmVhZHkga25vdyBpdCdzIG5vdCBhbGwtdmlzaWJsZSwg cmV0dXJuIGZhbHNlICovCisJaWYgKCFhbGxfdmlzaWJsZSkKKwkJcmV0dXJuIGZhbHNlOworCisJ LyogSWYgd2Ugd2VyZW4ndCBhbGxvd2VkIGFueSBkZWFkIG9mZnNldHMsIHdlJ3JlIGRvbmUgKi8K KwlpZiAoYWxsb3dlZF9udW1fb2Zmc2V0cyA9PSAwKQorCQlyZXR1cm4gY3VycmVudF9udW1fb2Zm c2V0cyA9PSAwOworCisJLyogSWYgdGhlIG51bWJlciBvZiBkZWFkIG9mZnNldHMgaGFzIGNoYW5n ZWQsIHRoYXQncyB3cm9uZyAqLworCWlmIChjdXJyZW50X251bV9vZmZzZXRzICE9IGFsbG93ZWRf bnVtX29mZnNldHMpCisJCXJldHVybiBmYWxzZTsKKworCUFzc2VydChkZWFkb2Zmc2V0cyk7CisK KwkvKiBUaGUgZGVhZCBvZmZzZXRzIG11c3QgYmUgdGhlIHNhbWUgZGVhZCBvZmZzZXRzICovCisJ cmV0dXJuIG1lbWNtcChjdXJyZW50X2RlYWRfb2Zmc2V0cywgZGVhZG9mZnNldHMsCisJCQkJICBh bGxvd2VkX251bV9vZmZzZXRzICogc2l6ZW9mKE9mZnNldE51bWJlcikpID09IDA7CiB9CiAKIC8q CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCmluZGV4IGI0OGQ3ZGMxZDI0Li5k NmM4NmNjYWMyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBk ZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKQEAgLTI2 Niw2ICsyNjYsNyBAQCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCkKIHsKIAljaGFyCSAgICpyZWMgPSBYTG9nUmVjR2V0RGF0YShyZWNvcmQpOwogCXVp bnQ4CQlpbmZvID0gWExvZ1JlY0dldEluZm8ocmVjb3JkKSAmIH5YTFJfSU5GT19NQVNLOworCWNo YXIJICAgKm1haW5kYXRhcHRyID0gcmVjICsgU2l6ZU9mSGVhcFBydW5lOwogCiAJaW5mbyAmPSBY TE9HX0hFQVBfT1BNQVNLOwogCWlmIChpbmZvID09IFhMT0dfSEVBUDJfUFJVTkVfT05fQUNDRVNT IHx8CkBAIC0yNzgsNyArMjc5LDggQEAgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJCXsKIAkJCVRyYW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkOwog Ci0JCQltZW1jcHkoJmNvbmZsaWN0X3hpZCwgcmVjICsgU2l6ZU9mSGVhcFBydW5lLCBzaXplb2Yo VHJhbnNhY3Rpb25JZCkpOworCQkJbWVtY3B5KCZjb25mbGljdF94aWQsIG1haW5kYXRhcHRyLCBz aXplb2YoVHJhbnNhY3Rpb25JZCkpOworCQkJbWFpbmRhdGFwdHIgKz0gc2l6ZW9mKFRyYW5zYWN0 aW9uSWQpOwogCiAJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInNuYXBzaG90Q29uZmxpY3RIb3Jp em9uOiAldSIsCiAJCQkJCQkJIGNvbmZsaWN0X3hpZCk7CkBAIC0yODcsNiArMjg5LDE1IEBAIGhl YXAyX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlhcHBl bmRTdHJpbmdJbmZvKGJ1ZiwgIiwgaXNDYXRhbG9nUmVsOiAlYyIsCiAJCQkJCQkgeGxyZWMtPmZs YWdzICYgWExIUF9JU19DQVRBTE9HX1JFTCA/ICdUJyA6ICdGJyk7CiAKKwkJaWYgKHhscmVjLT5m bGFncyAmIFhMSFBfSEFTX1ZNRkxBR1MpCisJCXsKKwkJCXVpbnQ4CQl2bWZsYWdzOworCisJCQlt ZW1jcHkoJnZtZmxhZ3MsIG1haW5kYXRhcHRyLCBzaXplb2YodWludDgpKTsKKwkJCW1haW5kYXRh cHRyICs9IHNpemVvZih1aW50OCk7CisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiwgdm1fZmxh Z3M6IDB4JTAyWCIsIHZtZmxhZ3MpOworCQl9CisKIAkJaWYgKFhMb2dSZWNIYXNCbG9ja0RhdGEo cmVjb3JkLCAwKSkKIAkJewogCQkJU2l6ZQkJZGF0YWxlbjsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCBh MmJkNWE4OTdmOC4uOGI0NzI5NWVmYTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9o ZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTM0NCw2ICszNDQs MTIgQEAgZXh0ZXJuIHZvaWQgaGVhcF9pbnBsYWNlX3VwZGF0ZV9hbmRfdW5sb2NrKFJlbGF0aW9u IHJlbGF0aW9uLAogCQkJCQkJCQkJCSAgIEJ1ZmZlciBidWZmZXIpOwogZXh0ZXJuIHZvaWQgaGVh cF9pbnBsYWNlX3VubG9jayhSZWxhdGlvbiByZWxhdGlvbiwKIAkJCQkJCQkJSGVhcFR1cGxlIG9s ZHR1cCwgQnVmZmVyIGJ1ZmZlcik7CisKK2V4dGVybiBib29sIGhlYXBfcGFnZV9pc19hbGxfdmlz aWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCisJCQkJCQkJCQkgVHJhbnNhY3Rpb25JZCBP bGRlc3RYbWluLAorCQkJCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCisJCQkJCQkJCQkgVHJhbnNh Y3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJCQkJCQkJIE9mZnNldE51bWJlciAq bG9nZ2luZ19vZmZudW0pOwogZXh0ZXJuIGJvb2wgaGVhcF9wcmVwYXJlX2ZyZWV6ZV90dXBsZShI ZWFwVHVwbGVIZWFkZXIgdHVwbGUsCiAJCQkJCQkJCQkgIGNvbnN0IHN0cnVjdCBWYWN1dW1DdXRv ZmZzICpjdXRvZmZzLAogCQkJCQkJCQkJICBIZWFwUGFnZUZyZWV6ZSAqcGFnZWZyeiwKQEAgLTM4 OCw2ICszOTQsOSBAQCBleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfZXhlY3V0ZShCdWZmZXIg YnVmZmVyLCBib29sIGxwX3RydW5jYXRlX29ubHksCiAJCQkJCQkJCQlPZmZzZXROdW1iZXIgKm5v d3VudXNlZCwgaW50IG51bnVzZWQpOwogZXh0ZXJuIHZvaWQgaGVhcF9nZXRfcm9vdF90dXBsZXMo UGFnZSBwYWdlLCBPZmZzZXROdW1iZXIgKnJvb3Rfb2Zmc2V0cyk7CiBleHRlcm4gdm9pZCBsb2df aGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAor CQkJCQkJCQkJICBCdWZmZXIgdm1idWZmZXIsCisJCQkJCQkJCQkgIHVpbnQ4IHZtZmxhZ3MsCisJ CQkJCQkJCQkgIGJvb2wgdm1fbW9kaWZpZWRfaGVhcF9wYWdlLAogCQkJCQkJCQkJICBUcmFuc2Fj dGlvbklkIGNvbmZsaWN0X3hpZCwKIAkJCQkJCQkJCSAgYm9vbCBjbGVhbnVwX2xvY2ssCiAJCQkJ CQkJCQkgIFBydW5lUmVhc29uIHJlYXNvbiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW1feGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXgg Mjc3ZGY2YjNjZjAuLmQ2YTQ3OWY2OTg0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv aGVhcGFtX3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaApAQCAt Mjg5LDEyICsyODksMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9wcnVuZQogCiAJLyoKIAkg KiBJZiBYTEhQX0hBU19DT05GTElDVF9IT1JJWk9OIGlzIHNldCwgdGhlIGNvbmZsaWN0IGhvcml6 b24gWElEIGZvbGxvd3MsCi0JICogdW5hbGlnbmVkCisJICogdW5hbGlnbmVkLgorCSAqCisJICog VGhlbiwgaWYgWExIUF9IQVNfVk1GTEFHUyBpcyBzZXQsIHRoZSBWTSBmbGFncyBmb2xsb3csIHVu YWxpZ25lZC4KIAkgKi8KIH0geGxfaGVhcF9wcnVuZTsKIAogI2RlZmluZSBTaXplT2ZIZWFwUHJ1 bmUgKG9mZnNldG9mKHhsX2hlYXBfcHJ1bmUsIGZsYWdzKSArIHNpemVvZih1aW50OCkpCiAKKy8q IElmIHRoZSByZWNvcmQgc2hvdWxkIHVwZGF0ZSB0aGUgVk0sIGl0IGNvbnRhaW5zIHRoZWlyIG5l dyB2YWx1ZSAqLworI2RlZmluZQkJWExIUF9IQVNfVk1GTEFHUwkJCSgxIDw8IDApCisKIC8qIHRv IGhhbmRsZSByZWNvdmVyeSBjb25mbGljdCBkdXJpbmcgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFu ZGJ5ICovCiAjZGVmaW5lCQlYTEhQX0lTX0NBVEFMT0dfUkVMCQkJKDEgPDwgMSkKIAotLSAKMi40 My4wCgo= --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0004-Make-heap_page_is_all_visible-independent-of-LVRe.patch" Content-Disposition: attachment; filename="v8-0004-Make-heap_page_is_all_visible-independent-of-LVRe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7b53 RnJvbSAwYTMxYmMwYmMxMDEyZGUzYmEzY2UxMTk0ZDVjZTU3OGYzNzUwMjVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDE1OjQ4OjUxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAwNC8yMl0gTWFrZSBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUgaW5kZXBlbmRlbnQg b2YKIExWUmVsU3RhdGUKCkZ1dHVyZSBjb21taXRzIHdpbGwgdXNlIHRoaXMgZnVuY3Rpb24gaW5z aWRlIG9mIHBydW5laGVhcC5jIHdoZXJlIHdlIGRvCm5vdCBoYXZlIGFjY2VzcyB0byB0aGUgTFZS ZWxTdGF0ZS4gV2Ugb25seSBuZWVkIHR3byBwYXJhbWV0ZXJzIGZyb20gdGhlCkxWUmVsU3RhdGUs IHNvIGp1c3QgcGFzcyB0aG9zZSBpbiBleHBsaWNpdGx5LgoKQXV0aG9yOiBNZWxhbmllIFBsYWdl bWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogS2lyaWxsIFJlc2hr ZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9mbGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NNT014MURoM1ZNaHA4LVY3U09MeGRL OS1nJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMgfCA0NSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MjkgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jCmluZGV4IDkzMjcwMWQ4NDIwLi5mNGUyOWFlY2Y0NiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNDYzLDggKzQ2MywxMSBAQCBzdGF0aWMgdm9pZCBkZWFk X2l0ZW1zX2FkZChMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBPZmZzZXRO dW1iZXIgKgogCQkJCQkJICAgaW50IG51bV9vZmZzZXRzKTsKIHN0YXRpYyB2b2lkIGRlYWRfaXRl bXNfcmVzZXQoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfY2xl YW51cChMVlJlbFN0YXRlICp2YWNyZWwpOwotc3RhdGljIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92 aXNpYmxlKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKLQkJCQkJCQkJCSBUcmFuc2Fj dGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsIGJvb2wgKmFsbF9mcm96ZW4pOworc3RhdGlj IGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK KwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJCQkgYm9vbCAqYWxs X2Zyb3plbiwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQs CisJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CiBzdGF0aWMgdm9pZCB1 cGRhdGVfcmVsc3RhdHNfYWxsX2luZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2 b2lkIHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpOwogc3RhdGljIHZvaWQgdXBkYXRl X3ZhY3V1bV9lcnJvcl9pbmZvKExWUmVsU3RhdGUgKnZhY3JlbCwKQEAgLTIwMDksOCArMjAxMiw5 IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAKIAkJQXNzZXJ0KHByZXN1 bHQubHBkZWFkX2l0ZW1zID09IDApOwogCi0JCWlmICghaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxl KHZhY3JlbCwgYnVmLAotCQkJCQkJCQkJICAmZGVidWdfY3V0b2ZmLCAmZGVidWdfYWxsX2Zyb3pl bikpCisJCWlmICghaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWYsCisJ CQkJCQkJCQkgIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWluLCAmZGVidWdfYWxsX2Zyb3plbiwK KwkJCQkJCQkJCSAgJmRlYnVnX2N1dG9mZiwgJnZhY3JlbC0+b2ZmbnVtKSkKIAkJCUFzc2VydChm YWxzZSk7CiAKIAkJQXNzZXJ0KHByZXN1bHQuYWxsX2Zyb3plbiA9PSBkZWJ1Z19hbGxfZnJvemVu KTsKQEAgLTI5MDYsOCArMjkxMCw4IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRl ICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCSAqIGVtaXR0ZWQu CiAJICovCiAJQXNzZXJ0KCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKTsKLQlpZiAoaGVhcF9wYWdl X2lzX2FsbF92aXNpYmxlKHZhY3JlbCwgYnVmZmVyLCAmdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAot CQkJCQkJCQkgJmFsbF9mcm96ZW4pKQorCWlmIChoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUodmFj cmVsLT5yZWwsIGJ1ZmZlciwgdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sCisJCQkJCQkJCSAm YWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwgJnZhY3JlbC0+b2ZmbnVtKSkKIAl7 CiAJCXVpbnQ4CQlmbGFncyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CiAKQEAgLTM1OTEs OSArMzU5NSwxNiBAQCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCiAv KgogICogQ2hlY2sgaWYgZXZlcnkgdHVwbGUgaW4gdGhlIGdpdmVuIHBhZ2UgaXMgdmlzaWJsZSB0 byBhbGwgY3VycmVudCBhbmQgZnV0dXJlCi0gKiB0cmFuc2FjdGlvbnMuIEFsc28gcmV0dXJuIHRo ZSB2aXNpYmlsaXR5X2N1dG9mZl94aWQgd2hpY2ggaXMgdGhlIGhpZ2hlc3QKLSAqIHhtaW4gYW1v bmdzdCB0aGUgdmlzaWJsZSB0dXBsZXMuICBTZXQgKmFsbF9mcm96ZW4gdG8gdHJ1ZSBpZiBldmVy eSB0dXBsZQotICogb24gdGhpcyBwYWdlIGlzIGZyb3plbi4KKyAqIHRyYW5zYWN0aW9ucy4KKyAq CisgKiBPbGRlc3RYbWluIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2liaWxpdHkuCisgKgorICog KmxvZ2dpbmdfb2ZmbnVtIHdpbGwgaGF2ZSB0aGUgT2Zmc2V0TnVtYmVyIG9mIHRoZSBjdXJyZW50 IHR1cGxlIGJlaW5nCisgKiBwcm9jZXNzZWQgZm9yIHZhY3V1bSdzIGVycm9yIGNhbGxiYWNrIHN5 c3RlbS4KKyAqCisgKiBSZXR1cm4gdGhlIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCB3aGljaCBpcyB0 aGUgaGlnaGVzdCB4bWluIGFtb25nc3QgdGhlCisgKiB2aXNpYmxlIHR1cGxlcy4gU2V0cyAqYWxs X2Zyb3plbiB0byB0cnVlIGlmIGV2ZXJ5IHR1cGxlIG9uIHRoaXMgcGFnZSBpcworICogZnJvemVu LgogICoKICAqIFRoaXMgaXMgYSBzdHJpcHBlZCBkb3duIHZlcnNpb24gb2YgbGF6eV9zY2FuX3By dW5lKCkuICBJZiB5b3UgY2hhbmdlCiAgKiBhbnl0aGluZyBoZXJlLCBtYWtlIHN1cmUgdGhhdCBl dmVyeXRoaW5nIHN0YXlzIGluIHN5bmMuICBOb3RlIHRoYXQgYW4KQEAgLTM2MDEsOSArMzYxMiwx MSBAQCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICogaW50cm9kdWNp bmcgbmV3IHNpZGUtZWZmZWN0cyBoZXJlLgogICovCiBzdGF0aWMgYm9vbAotaGVhcF9wYWdlX2lz X2FsbF92aXNpYmxlKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKK2hlYXBfcGFnZV9p c19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCisJCQkJCQkgVHJhbnNhY3Rp b25JZCBPbGRlc3RYbWluLAorCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCiAJCQkJCQkgVHJhbnNh Y3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4p CisJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkKIHsKIAlQYWdlCQlwYWdlID0g QnVmZmVyR2V0UGFnZShidWYpOwogCUJsb2NrTnVtYmVyIGJsb2Nrbm8gPSBCdWZmZXJHZXRCbG9j a051bWJlcihidWYpOwpAQCAtMzYyNiw3ICszNjM5LDcgQEAgaGVhcF9wYWdlX2lzX2FsbF92aXNp YmxlKExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1ZiwKIAkJICogU2V0IHRoZSBvZmZzZXQg bnVtYmVyIHNvIHRoYXQgd2UgY2FuIGRpc3BsYXkgaXQgYWxvbmcgd2l0aCBhbnkKIAkJICogZXJy b3IgdGhhdCBvY2N1cnJlZCB3aGlsZSBwcm9jZXNzaW5nIHRoaXMgdHVwbGUuCiAJCSAqLwotCQl2 YWNyZWwtPm9mZm51bSA9IG9mZm51bTsKKwkJKmxvZ2dpbmdfb2ZmbnVtID0gb2ZmbnVtOwogCQlp dGVtaWQgPSBQYWdlR2V0SXRlbUlkKHBhZ2UsIG9mZm51bSk7CiAKIAkJLyogVW51c2VkIG9yIHJl ZGlyZWN0IGxpbmUgcG9pbnRlcnMgYXJlIG9mIG5vIGludGVyZXN0ICovCkBAIC0zNjUwLDkgKzM2 NjMsOSBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZm ZXIgYnVmLAogCiAJCXR1cGxlLnRfZGF0YSA9IChIZWFwVHVwbGVIZWFkZXIpIFBhZ2VHZXRJdGVt KHBhZ2UsIGl0ZW1pZCk7CiAJCXR1cGxlLnRfbGVuID0gSXRlbUlkR2V0TGVuZ3RoKGl0ZW1pZCk7 Ci0JCXR1cGxlLnRfdGFibGVPaWQgPSBSZWxhdGlvbkdldFJlbGlkKHZhY3JlbC0+cmVsKTsKKwkJ dHVwbGUudF90YWJsZU9pZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsKTsKIAotCQlzd2l0Y2ggKEhl YXBUdXBsZVNhdGlzZmllc1ZhY3V1bSgmdHVwbGUsIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWlu LAorCQlzd2l0Y2ggKEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bSgmdHVwbGUsIE9sZGVzdFhtaW4s CiAJCQkJCQkJCQkJIGJ1ZikpCiAJCXsKIAkJCWNhc2UgSEVBUFRVUExFX0xJVkU6CkBAIC0zNjcz LDcgKzM2ODYsNyBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVs LCBCdWZmZXIgYnVmLAogCQkJCQkgKi8KIAkJCQkJeG1pbiA9IEhlYXBUdXBsZUhlYWRlckdldFht aW4odHVwbGUudF9kYXRhKTsKIAkJCQkJaWYgKCFUcmFuc2FjdGlvbklkUHJlY2VkZXMoeG1pbiwK LQkJCQkJCQkJCQkJICAgdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4pKQorCQkJCQkJCQkJCQkg ICBPbGRlc3RYbWluKSkKIAkJCQkJewogCQkJCQkJYWxsX3Zpc2libGUgPSBmYWxzZTsKIAkJCQkJ CSphbGxfZnJvemVuID0gZmFsc2U7CkBAIC0zNzA4LDcgKzM3MjEsNyBAQCBoZWFwX3BhZ2VfaXNf YWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCX0JCQkJCQkJLyog c2NhbiBhbG9uZyBwYWdlICovCiAKIAkvKiBDbGVhciB0aGUgb2Zmc2V0IGluZm9ybWF0aW9uIG9u Y2Ugd2UgaGF2ZSBwcm9jZXNzZWQgdGhlIGdpdmVuIHBhZ2UuICovCi0JdmFjcmVsLT5vZmZudW0g PSBJbnZhbGlkT2Zmc2V0TnVtYmVyOworCSpsb2dnaW5nX29mZm51bSA9IEludmFsaWRPZmZzZXRO dW1iZXI7CiAKIAlyZXR1cm4gYWxsX3Zpc2libGU7CiB9Ci0tIAoyLjQzLjAKCg== --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0008-Combine-vacuum-phase-I-VM-update-cases.patch" Content-Disposition: attachment; filename="v8-0008-Combine-vacuum-phase-I-VM-update-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7bf7 RnJvbSBlNWQwZjFjNzZiODA1ZGU5ZGU4MWQzMWUyOWM3MDZmZDVjODkwNWU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDE2OjM1OjM2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAwOC8yMl0gQ29tYmluZSB2YWN1dW0gcGhhc2UgSSBWTSB1cGRhdGUgY2FzZXMKCldl IHVwZGF0ZSB0aGUgVk0gYWZ0ZXIgcGhhc2UgSSBvZiB2YWN1dW0gLS0gZWl0aGVyIHNldHRpbmcg Ym90aCB0aGUgVk0KYml0cyB3aGVuIGFsbCBiaXRzIGFyZSBjdXJyZW50bHkgdW5zZXQgb3Igc2V0 dGluZyBqdXN0IHRoZSBmcm96ZW4gYml0CndoZW4gdGhlIGFsbC12aXNpYmxlIGJpdCBpcyBhbHJl YWR5IHNldC4KClRob3NlIHR3byBjYXNlcyBzaGFyZWQgbXVjaCBvZiB0aGUgc2FtZSBjb2RlIC0t IGxlYWRpbmcgdG8gdW5uZWNlc3NhcnkKZHVwbGljYXRpb24uIFRoaXMgY29tbWl0IGNvbWJpbmVz IHRoZW0sIHdoaWNoIGlzIHNpbXBsZXIgYW5kIGVhc2llciB0bwp1bmRlcnN0YW5kLgoKVGhlIGNv bWJpbmVkIGNhc2UgYWxzbyBoYXBwZW5zIHRvIGZpeCBhIGxvbmdzdGFuZGluZyBidWcgd2hlcmUg aWYgd2UgYXJlCm9ubHkgc2V0dGluZyBhbiBhbGwtdmlzaWJsZSBwYWdlIGFsbC1mcm96ZW4gYW5k IGNoZWNrc3Vtcy93YWxfbG9nX2hpbnRzCmFyZSBlbmFibGVkLCB3ZSB3b3VsZCBmYWlsIHRvIHNl dCB0aGUgYnVmZmVyIGRpcnR5IGJlZm9yZSBzZXR0aW5nIHRoZQpwYWdlIExTTiBpbiB2aXNpYmls aXR5bWFwX3NldCgpLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8 IDEwMSArKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNl cnRpb25zKCspLCA2OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKaW5kZXggNDA2YzMwZTZlY2QuLjRkNDdhNmIzOTRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jCkBAIC0yMTUxLDExICsyMTUxLDI2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJl bFN0YXRlICp2YWNyZWwsCiAJewogCQkvKiBEb24ndCB1cGRhdGUgdGhlIFZNIGlmIHdlIGp1c3Qg Y2xlYXJlZCBjb3JydXB0aW9uIGluIGl0ICovCiAJfQotCWVsc2UgaWYgKCFhbGxfdmlzaWJsZV9h Y2NvcmRpbmdfdG9fdm0gJiYgcHJlc3VsdC5hbGxfdmlzaWJsZSkKKworCS8qCisJICogSWYgdGhl IHBhZ2UgaXNuJ3QgeWV0IG1hcmtlZCBhbGwtdmlzaWJsZSBpbiB0aGUgVk0gb3IgaXQgaXMgYW5k IG5lZWRzCisJICogdG8gbWUgbWFya2VkIGFsbC1mcm96ZW4sIHVwZGF0ZSB0aGUgVk0gTm90ZSB0 aGF0IGFsbF9mcm96ZW4gaXMgb25seQorCSAqIHZhbGlkIGlmIGFsbF92aXNpYmxlIGlzIHRydWUs IHNvIHdlIG11c3QgY2hlY2sgYm90aCBhbGxfdmlzaWJsZSBhbmQKKwkgKiBhbGxfZnJvemVuLgor CSAqLworCWVsc2UgaWYgKHByZXN1bHQuYWxsX3Zpc2libGUgJiYKKwkJCSAoIWFsbF92aXNpYmxl X2FjY29yZGluZ190b192bSB8fAorCQkJICAocHJlc3VsdC5hbGxfZnJvemVuICYmICFWTV9BTExf RlJPWkVOKHZhY3JlbC0+cmVsLCBibGtubywgJnZtYnVmZmVyKSkpKQogCXsKIAkJdWludDgJCW9s ZF92bWJpdHM7CiAJCXVpbnQ4CQlmbGFncyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CiAK KwkJLyoKKwkJICogSWYgdGhlIHBhZ2UgaXMgYWxsLWZyb3plbiwgd2UgY2FuIHBhc3MgSW52YWxp ZFRyYW5zYWN0aW9uSWQgYXMgb3VyCisJCSAqIGN1dG9mZl94aWQsIHNpbmNlIGEgc25hcHNob3RD b25mbGljdEhvcml6b24gc3VmZmljaWVudCB0byBtYWtlCisJCSAqIGV2ZXJ5dGhpbmcgc2FmZSBm b3IgUkVETyB3YXMgbG9nZ2VkIHdoZW4gdGhlIHBhZ2UncyB0dXBsZXMgd2VyZQorCQkgKiBmcm96 ZW4uCisJCSAqLwogCQlpZiAocHJlc3VsdC5hbGxfZnJvemVuKQogCQl7CiAJCQlBc3NlcnQoIVRy YW5zYWN0aW9uSWRJc1ZhbGlkKHByZXN1bHQudm1fY29uZmxpY3RfaG9yaXpvbikpOwpAQCAtMjE2 OCwyMSArMjE4MywyOSBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkg KiBjaGVja3N1bXMgYXJlIG5vdCBlbmFibGVkKS4gIFJlZ2FyZGxlc3MsIHNldCBib3RoIGJpdHMg c28gdGhhdCB3ZQogCQkgKiBnZXQgYmFjayBpbiBzeW5jLgogCQkgKgotCQkgKiBOQjogSWYgdGhl IGhlYXAgcGFnZSBpcyBhbGwtdmlzaWJsZSBidXQgdGhlIFZNIGJpdCBpcyBub3Qgc2V0LCB3ZQot CQkgKiBkb24ndCBuZWVkIHRvIGRpcnR5IHRoZSBoZWFwIHBhZ2UuICBIb3dldmVyLCBpZiBjaGVj a3N1bXMgYXJlCi0JCSAqIGVuYWJsZWQsIHdlIGRvIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhl IGhlYXAgcGFnZSBpcyBkaXJ0aWVkCi0JCSAqIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHZpc2liaWxp dHltYXBfc2V0KCksIGJlY2F1c2UgaXQgbWF5IGJlIGxvZ2dlZC4KLQkJICogR2l2ZW4gdGhhdCB0 aGlzIHNpdHVhdGlvbiBzaG91bGQgb25seSBoYXBwZW4gaW4gcmFyZSBjYXNlcyBhZnRlciBhCi0J CSAqIGNyYXNoLCBpdCBpcyBub3Qgd29ydGggb3B0aW1pemluZy4KKwkJICogSWYgdGhlIGhlYXAg cGFnZSBpcyBhbGwtdmlzaWJsZSBidXQgdGhlIFZNIGJpdCBpcyBub3Qgc2V0LCB3ZSBkb24ndAor CQkgKiBuZWVkIHRvIGRpcnR5IHRoZSBoZWFwIHBhZ2UuICBIb3dldmVyLCBpZiBjaGVja3N1bXMg YXJlIGVuYWJsZWQsIHdlCisJCSAqIGRvIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGhlYXAg cGFnZSBpcyBkaXJ0aWVkIGJlZm9yZSBwYXNzaW5nCisJCSAqIGl0IHRvIHZpc2liaWxpdHltYXBf c2V0KCksIGJlY2F1c2UgaXQgbWF5IGJlIGxvZ2dlZC4KIAkJICovCi0JCVBhZ2VTZXRBbGxWaXNp YmxlKHBhZ2UpOwotCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKKwkJaWYgKCFQYWdlSXNBbGxWaXNp YmxlKHBhZ2UpIHx8IFhMb2dIaW50Qml0SXNOZWVkZWQoKSkKKwkJeworCQkJUGFnZVNldEFsbFZp c2libGUocGFnZSk7CisJCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKKwkJfQorCiAJCW9sZF92bWJp dHMgPSB2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sIGJ1ZiwKIAkJCQkJCQkJ CSAgIEludmFsaWRYTG9nUmVjUHRyLAogCQkJCQkJCQkJICAgdm1idWZmZXIsIHByZXN1bHQudm1f Y29uZmxpY3RfaG9yaXpvbiwKIAkJCQkJCQkJCSAgIGZsYWdzKTsKIAogCQkvKgorCQkgKiBFdmVu IGlmIHdlIGFyZSBvbmx5IHNldHRpbmcgdGhlIGFsbC1mcm96ZW4gYml0LCB0aGVyZSBpcyBhIHNt YWxsCisJCSAqIGNoYW5jZSB0aGF0IHRoZSBWTSB3YXMgbW9kaWZpZWQgc29tZXRpbWUgYmV0d2Vl biBzZXR0aW5nCisJCSAqIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSBhbmQgY2hlY2tpbmcg dGhlIHZpc2liaWxpdHkgZHVyaW5nCisJCSAqIHBydW5pbmcuIENoZWNrIHRoZSByZXR1cm4gdmFs dWUgb2Ygb2xkX3ZtYml0cyB0byBlbnN1cmUgdGhlCisJCSAqIHZpc2liaWxpdHkgbWFwIGNvdW50 ZXJzIHVzZWQgZm9yIGxvZ2dpbmcgYXJlIGFjY3VyYXRlLgorCQkgKgogCQkgKiBJZiB0aGUgcGFn ZSB3YXNuJ3QgYWxyZWFkeSBzZXQgYWxsLXZpc2libGUgYW5kL29yIGFsbC1mcm96ZW4gaW4gdGhl CiAJCSAqIFZNLCBjb3VudCBpdCBhcyBuZXdseSBzZXQgZm9yIGxvZ2dpbmcuCiAJCSAqLwpAQCAt MjIwMyw2NiArMjIyNiw2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJ CX0KIAl9CiAKLQkvKgotCSAqIElmIHRoZSBhbGwtdmlzaWJsZSBwYWdlIGlzIGFsbC1mcm96ZW4g YnV0IG5vdCBtYXJrZWQgYXMgc3VjaCB5ZXQsIG1hcmsKLQkgKiBpdCBhcyBhbGwtZnJvemVuLiAg Tm90ZSB0aGF0IGFsbF9mcm96ZW4gaXMgb25seSB2YWxpZCBpZiBhbGxfdmlzaWJsZSBpcwotCSAq IHRydWUsIHNvIHdlIG11c3QgY2hlY2sgYm90aCBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbi4K LQkgKi8KLQllbHNlIGlmIChhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gJiYgcHJlc3VsdC5h bGxfdmlzaWJsZSAmJgotCQkJIHByZXN1bHQuYWxsX2Zyb3plbiAmJiAhVk1fQUxMX0ZST1pFTih2 YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcikpCi0JewotCQl1aW50OAkJb2xkX3ZtYml0czsK LQotCQkvKgotCQkgKiBBdm9pZCByZWx5aW5nIG9uIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192 bSBhcyBhIHByb3h5IGZvciB0aGUKLQkJICogcGFnZS1sZXZlbCBQRF9BTExfVklTSUJMRSBiaXQg YmVpbmcgc2V0LCBzaW5jZSBpdCBtaWdodCBoYXZlIGJlY29tZQotCQkgKiBzdGFsZSAtLSBldmVu IHdoZW4gYWxsX3Zpc2libGUgaXMgc2V0Ci0JCSAqLwotCQlpZiAoIVBhZ2VJc0FsbFZpc2libGUo cGFnZSkpCi0JCXsKLQkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwotCQkJTWFya0J1ZmZlckRp cnR5KGJ1Zik7Ci0JCX0KLQotCQkvKgotCQkgKiBTZXQgdGhlIHBhZ2UgYWxsLWZyb3plbiAoYW5k IGFsbC12aXNpYmxlKSBpbiB0aGUgVk0uCi0JCSAqCi0JCSAqIFdlIGNhbiBwYXNzIEludmFsaWRU cmFuc2FjdGlvbklkIGFzIG91ciBjdXRvZmZfeGlkLCBzaW5jZSBhCi0JCSAqIHNuYXBzaG90Q29u ZmxpY3RIb3Jpem9uIHN1ZmZpY2llbnQgdG8gbWFrZSBldmVyeXRoaW5nIHNhZmUgZm9yIFJFRE8K LQkJICogd2FzIGxvZ2dlZCB3aGVuIHRoZSBwYWdlJ3MgdHVwbGVzIHdlcmUgZnJvemVuLgotCQkg Ki8KLQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChwcmVzdWx0LnZtX2NvbmZsaWN0X2hv cml6b24pKTsKLQkJb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfc2V0KHZhY3JlbC0+cmVsLCBi bGtubywgYnVmLAotCQkJCQkJCQkJICAgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJCQkJCQkgICB2 bWJ1ZmZlciwgSW52YWxpZFRyYW5zYWN0aW9uSWQsCi0JCQkJCQkJCQkgICBWSVNJQklMSVRZTUFQ X0FMTF9WSVNJQkxFIHwKLQkJCQkJCQkJCSAgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7Ci0K LQkJLyoKLQkJICogVGhlIHBhZ2Ugd2FzIGxpa2VseSBhbHJlYWR5IHNldCBhbGwtdmlzaWJsZSBp biB0aGUgVk0uIEhvd2V2ZXIsCi0JCSAqIHRoZXJlIGlzIGEgc21hbGwgY2hhbmNlIHRoYXQgaXQg d2FzIG1vZGlmaWVkIHNvbWV0aW1lIGJldHdlZW4KLQkJICogc2V0dGluZyBhbGxfdmlzaWJsZV9h Y2NvcmRpbmdfdG9fdm0gYW5kIGNoZWNraW5nIHRoZSB2aXNpYmlsaXR5Ci0JCSAqIGR1cmluZyBw cnVuaW5nLiBDaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIG9sZF92bWJpdHMgYW55d2F5IHRvCi0J CSAqIGVuc3VyZSB0aGUgdmlzaWJpbGl0eSBtYXAgY291bnRlcnMgdXNlZCBmb3IgbG9nZ2luZyBh cmUgYWNjdXJhdGUuCi0JCSAqLwotCQlpZiAoKG9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FM TF9WSVNJQkxFKSA9PSAwKQotCQl7Ci0JCQl2YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzKys7 Ci0JCQl2YWNyZWwtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcysrOwotCQkJKnZtX3BhZ2Vf ZnJvemVuID0gdHJ1ZTsKLQkJfQotCi0JCS8qCi0JCSAqIFdlIGFscmVhZHkgY2hlY2tlZCB0aGF0 IHRoZSBwYWdlIHdhcyBub3Qgc2V0IGFsbC1mcm96ZW4gaW4gdGhlIFZNCi0JCSAqIGFib3ZlLCBz byB3ZSBkb24ndCBuZWVkIHRvIHRlc3QgdGhlIHZhbHVlIG9mIG9sZF92bWJpdHMuCi0JCSAqLwot CQllbHNlCi0JCXsKLQkJCXZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlcysrOwotCQkJKnZtX3Bh Z2VfZnJvemVuID0gdHJ1ZTsKLQkJfQotCX0KLQogCXJldHVybiBwcmVzdWx0Lm5kZWxldGVkOwog fQogCi0tIAoyLjQzLjAKCg== --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0006-Use-xl_heap_prune-record-for-setting-empty-pages-.patch" Content-Disposition: attachment; filename="v8-0006-Use-xl_heap_prune-record-for-setting-empty-pages-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7ba5 RnJvbSAwZDhkM2E2YjEyNGYyNDQ5MzNkYmRjNTBmY2E5MDM0MDcxNWJmZmQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjQyOjE5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAwNi8yMl0gVXNlIHhsX2hlYXBfcHJ1bmUgcmVjb3JkIGZvciBzZXR0aW5nIGVtcHR5 IHBhZ2VzCiBhbGwtdmlzaWJsZQoKQXMgcGFydCBvZiBhIHByb2plY3QgdG8gZWxpbWluYXRlIHhs X2hlYXBfdmlzaWJsZSByZWNvcmRzLCBlbGltaW5hdGUKdGhlaXIgdXNhZ2UgaW4gcGhhc2UgSSB2 YWN1dW0gb2YgZW1wdHkgcGFnZXMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMgIHwgMTQgKysrKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j IHwgNTUgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbS5oICAgICAgICAgIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCsp LCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IGYx YThmOTM4ZTllLi45NTZjYWViNjlkYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMK QEAgLTgzNiw2ICs4MzYsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiBy ZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmxhdGVz dF94aWRfcmVtb3ZlZDsKIAogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShyZWxhdGlvbiwg YnVmZmVyLAorCQkJCQkJCQkJICBmYWxzZSwKIAkJCQkJCQkJCSAgSW52YWxpZEJ1ZmZlciwgMCwg ZmFsc2UsCiAJCQkJCQkJCQkgIGNvbmZsaWN0X3hpZCwKIAkJCQkJCQkJCSAgdHJ1ZSwgcmVhc29u LApAQCAtMjA1MSw2ICsyMDUyLDkgQEAgaGVhcF9sb2dfZnJlZXplX3BsYW4oSGVhcFR1cGxlRnJl ZXplICp0dXBsZXMsIGludCBudHVwbGVzLAogICogY2FzZSwgdm1idWZmZXIgc2hvdWxkIGFscmVh ZHkgaGF2ZSBiZWVuIHVwZGF0ZWQgYW5kIG1hcmtlZCBkaXJ0eSBhbmQgc2hvdWxkCiAgKiBzdGls bCBiZSBwaW5uZWQgYW5kIGxvY2tlZC4KICAqCisgKiBmb3JjZV9oZWFwX2ZwaSBpbmRpY2F0ZXMg dGhhdCBhIGZ1bGwgcGFnZSBpbWFnZSBvZiB0aGUgaGVhcCBibG9jayBzaG91bGQgYmUKKyAqIGZv cmNlZC4KKyAqCiAgKiBzZXRfcGRfYWxsX3ZpcyBpbmRpY2F0ZXMgdGhhdCB3ZSBzZXQgUERfQUxM X1ZJU0lCTEUgYW5kIHRodXMgc2hvdWxkIHVwZGF0ZQogICogdGhlIHBhZ2UgTFNOIHdoZW4gY2hl Y2tzdW1zL3dhbF9sb2dfaGludHMgYXJlIGVuYWJsZWQgZXZlbiBpZiB3ZSBkaWQgbm90CiAgKiBw cnVuZSBvciBmcmVlemUgdHVwbGVzIG9uIHRoZSBwYWdlLgpAQCAtMjA2MSw2ICsyMDY1LDcgQEAg aGVhcF9sb2dfZnJlZXplX3BsYW4oSGVhcFR1cGxlRnJlZXplICp0dXBsZXMsIGludCBudHVwbGVz LAogICovCiB2b2lkCiBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9u LCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJICBib29sIGZvcmNlX2hlYXBfZnBpLAogCQkJCQkJICBC dWZmZXIgdm1idWZmZXIsCiAJCQkJCQkgIHVpbnQ4IHZtZmxhZ3MsCiAJCQkJCQkgIGJvb2wgc2V0 X3BkX2FsbF92aXMsCkBAIC0yMDg5LDEzICsyMDk0LDE2IEBAIGxvZ19oZWFwX3BydW5lX2FuZF9m cmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJeGxyZWMuZmxhZ3MgPSAw OwogCXJlZ2J1Zl9mbGFncyA9IFJFR0JVRl9TVEFOREFSRDsKIAorCWlmIChmb3JjZV9oZWFwX2Zw aSkKKwkJcmVnYnVmX2ZsYWdzIHw9IFJFR0JVRl9GT1JDRV9JTUFHRTsKKwogCS8qCiAJICogV2Ug Y2FuIGF2b2lkIGFuIEZQSSBpZiB0aGUgb25seSBtb2RpZmljYXRpb24gd2UgYXJlIG1ha2luZyB0 byB0aGUgaGVhcAogCSAqIHBhZ2UgaXMgdG8gc2V0IFBEX0FMTF9WSVNJQkxFIGFuZCBjaGVja3N1 bXMvd2FsX2xvZ19oaW50cyBhcmUgZGlzYWJsZWQuCiAJICovCi0JaWYgKCFkb19wcnVuZSAmJgot CQluZnJvemVuID09IDAgJiYKLQkJKCFzZXRfcGRfYWxsX3ZpcyB8fCAhWExvZ0hpbnRCaXRJc05l ZWRlZCgpKSkKKwllbHNlIGlmICghZG9fcHJ1bmUgJiYKKwkJCSBuZnJvemVuID09IDAgJiYKKwkJ CSAoIXNldF9wZF9hbGxfdmlzIHx8ICFYTG9nSGludEJpdElzTmVlZGVkKCkpKQogCQlyZWdidWZf ZmxhZ3MgfD0gUkVHQlVGX05PX0lNQUdFOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYwppbmRleCAxZDNmZWFiNGRlZC4uNDljNDZkMzU0ODYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKQEAgLTE4NzcsMzMgKzE4NzcsNDcgQEAgbGF6eV9zY2FuX25ld19v cl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25v LAogCQkgKi8KIAkJaWYgKCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKQogCQl7CisJCQl1aW50OAkJ bmV3X3ZtYml0cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCVZJU0lCSUxJVFlN QVBfQUxMX0ZST1pFTjsKKwogCQkJU1RBUlRfQ1JJVF9TRUNUSU9OKCk7CiAKLQkJCS8qIG1hcmsg YnVmZmVyIGRpcnR5IGJlZm9yZSB3cml0aW5nIGEgV0FMIHJlY29yZCAqLworCQkJUGFnZVNldEFs bFZpc2libGUocGFnZSk7CiAJCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKIAotCQkJLyoKLQkJCSAq IEl0J3MgcG9zc2libGUgdGhhdCBhbm90aGVyIGJhY2tlbmQgaGFzIGV4dGVuZGVkIHRoZSBoZWFw LAotCQkJICogaW5pdGlhbGl6ZWQgdGhlIHBhZ2UsIGFuZCB0aGVuIGZhaWxlZCB0byBXQUwtbG9n IHRoZSBwYWdlIGR1ZQotCQkJICogdG8gYW4gRVJST1IuICBTaW5jZSBoZWFwIGV4dGVuc2lvbiBp cyBub3QgV0FMLWxvZ2dlZCwgcmVjb3ZlcnkKLQkJCSAqIG1pZ2h0IHRyeSB0byByZXBsYXkgb3Vy IHJlY29yZCBzZXR0aW5nIHRoZSBwYWdlIGFsbC12aXNpYmxlIGFuZAotCQkJICogZmluZCB0aGF0 IHRoZSBwYWdlIGlzbid0IGluaXRpYWxpemVkLCB3aGljaCB3aWxsIGNhdXNlIGEgUEFOSUMuCi0J CQkgKiBUbyBwcmV2ZW50IHRoYXQsIGNoZWNrIHdoZXRoZXIgdGhlIHBhZ2UgaGFzIGJlZW4gcHJl dmlvdXNseQotCQkJICogV0FMLWxvZ2dlZCwgYW5kIGlmIG5vdCwgZG8gdGhhdCBub3cuCi0JCQkg Ki8KLQkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHZhY3JlbC0+cmVsKSAmJgotCQkJCVBhZ2VHZXRM U04ocGFnZSkgPT0gSW52YWxpZFhMb2dSZWNQdHIpCi0JCQkJbG9nX25ld3BhZ2VfYnVmZmVyKGJ1 ZiwgdHJ1ZSk7CisJCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUp OworCQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1ieXRlKHZhY3JlbC0+cmVsLCBibGtubywKKwkJCQkJ CQkJCSB2bWJ1ZmZlciwgbmV3X3ZtYml0cyk7CisKKwkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHZh Y3JlbC0+cmVsKSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIEl0J3MgcG9zc2libGUgdGhhdCBhbm90 aGVyIGJhY2tlbmQgaGFzIGV4dGVuZGVkIHRoZSBoZWFwLAorCQkJCSAqIGluaXRpYWxpemVkIHRo ZSBwYWdlLCBhbmQgdGhlbiBmYWlsZWQgdG8gV0FMLWxvZyB0aGUgcGFnZQorCQkJCSAqIGR1ZSB0 byBhbiBFUlJPUi4gIFNpbmNlIGhlYXAgZXh0ZW5zaW9uIGlzIG5vdCBXQUwtbG9nZ2VkLAorCQkJ CSAqIHJlY292ZXJ5IG1pZ2h0IHRyeSB0byByZXBsYXkgb3VyIHJlY29yZCBzZXR0aW5nIHRoZSBw YWdlCisJCQkJICogYWxsLXZpc2libGUgYW5kIGZpbmQgdGhhdCB0aGUgcGFnZSBpc24ndCBpbml0 aWFsaXplZCwgd2hpY2gKKwkJCQkgKiB3aWxsIGNhdXNlIGEgUEFOSUMuIFRvIHByZXZlbnQgdGhh dCwgaWYgdGhlIHBhZ2UgaGFzbid0CisJCQkJICogYmVlbiBwcmV2aW91c2x5IFdBTC1sb2dnZWQs IGZvcmNlIGEgaGVhcCBGUEkuCisJCQkJICovCisJCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6 ZSh2YWNyZWwtPnJlbCwgYnVmLAorCQkJCQkJCQkJCSAgUGFnZUdldExTTihwYWdlKSA9PSBJbnZh bGlkWExvZ1JlY1B0ciwKKwkJCQkJCQkJCQkgIHZtYnVmZmVyLAorCQkJCQkJCQkJCSAgbmV3X3Zt Yml0cywKKwkJCQkJCQkJCQkgIHRydWUsCisJCQkJCQkJCQkJICBJbnZhbGlkVHJhbnNhY3Rpb25J ZCwKKwkJCQkJCQkJCQkgIGZhbHNlLCBQUlVORV9WQUNVVU1fU0NBTiwKKwkJCQkJCQkJCQkgIE5V TEwsIDAsCisJCQkJCQkJCQkJICBOVUxMLCAwLAorCQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJ CQkJCQkgIE5VTEwsIDApOworCQkJfQogCi0JCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQkJ CXZpc2liaWxpdHltYXBfc2V0KHZhY3JlbC0+cmVsLCBibGtubywgYnVmLAotCQkJCQkJCSAgSW52 YWxpZFhMb2dSZWNQdHIsCi0JCQkJCQkJICB2bWJ1ZmZlciwgSW52YWxpZFRyYW5zYWN0aW9uSWQs Ci0JCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKLQkJCQkJCQkgIFZJU0lCSUxJ VFlNQVBfQUxMX0ZST1pFTik7CiAJCQlFTkRfQ1JJVF9TRUNUSU9OKCk7CiAKLQkJCS8qIENvdW50 IHRoZSBuZXdseSBhbGwtZnJvemVuIHBhZ2VzIGZvciBsb2dnaW5nICovCisJCQlMb2NrQnVmZmVy KHZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCisJCQkvKiBDb3VudCB0aGUgbmV3bHkg YWxsLWZyb3plbiBwYWdlcyBmb3IgbG9nZ2luZy4gKi8KIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2li bGVfcGFnZXMrKzsKIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzKys7CiAJ CX0KQEAgLTI5MTcsNiArMjkzMSw3IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRl ICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCWlmIChSZWxhdGlv bk5lZWRzV0FMKHZhY3JlbC0+cmVsKSkKIAl7CiAJCWxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUo dmFjcmVsLT5yZWwsIGJ1ZmZlciwKKwkJCQkJCQkJICBmYWxzZSwKIAkJCQkJCQkJICB2bWJ1ZmZl ciwKIAkJCQkJCQkJICB2bWZsYWdzLAogCQkJCQkJCQkgIHNldF9wZF9hbGxfdmlzLApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbS5oCmluZGV4IDhiNDcyOTVlZmEyLi5lNzEyOWE2NDRhMSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApA QCAtMzk0LDYgKzM5NCw3IEBAIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9leGVjdXRlKEJ1 ZmZlciBidWZmZXIsIGJvb2wgbHBfdHJ1bmNhdGVfb25seSwKIAkJCQkJCQkJCU9mZnNldE51bWJl ciAqbm93dW51c2VkLCBpbnQgbnVudXNlZCk7CiBleHRlcm4gdm9pZCBoZWFwX2dldF9yb290X3R1 cGxlcyhQYWdlIHBhZ2UsIE9mZnNldE51bWJlciAqcm9vdF9vZmZzZXRzKTsKIGV4dGVybiB2b2lk IGxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZm ZXIsCisJCQkJCQkJCQkgIGJvb2wgZm9yY2VfaGVhcF9mcGksCiAJCQkJCQkJCQkgIEJ1ZmZlciB2 bWJ1ZmZlciwKIAkJCQkJCQkJCSAgdWludDggdm1mbGFncywKIAkJCQkJCQkJCSAgYm9vbCB2bV9t b2RpZmllZF9oZWFwX3BhZ2UsCi0tIAoyLjQzLjAKCg== --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0009-Find-and-fix-VM-corruption-in-heap_page_prune_and.patch" Content-Disposition: attachment; filename="v8-0009-Find-and-fix-VM-corruption-in-heap_page_prune_and.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7bi8 RnJvbSA3NmVmNTZkMDE0ODMzMDhjNjM1OTE1ZjhiNDNlNjc3NDE4NzYyMjVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDE2OjQ1OjU5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAwOS8yMl0gRmluZCBhbmQgZml4IFZNIGNvcnJ1cHRpb24gaW4KIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplCgpGdXR1cmUgY29tbWl0cyB3aWxsIHVwZGF0ZSB0aGUgVk0gaW4gdGhl IHNhbWUgY3JpdGljYWwgc2VjdGlvbiBhbmQgV0FMCnJlY29yZCBhcyBwcnVuaW5nIGFuZCBmcmVl emluZy4gRm9yIGVhc2Ugb2YgcmV2aWV3LCB0aGlzIGNvbW1pdCBtYWtlcwpvbmUgc3RlcCB0b3dh cmQgZG9pbmcgdGhpcy4gSXQgbW92ZXMgdGhlIFZNIGNvcnJ1cHRpb24gaGFuZGxpbmcgY2FzZSB0 bwpoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8IDc3ICsrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgIHwgIDQgKysKIDMgZmls ZXMgY2hhbmdlZCwgOTYgaW5zZXJ0aW9ucygrKSwgNzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA5NTZjYWViNjlkYy4uNzIyMTYxMjY5NDUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0yMSw3ICsyMSw3IEBACiAjaW5jbHVkZSAi YWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgogI2luY2x1ZGUgImFj Y2Vzcy94bG9naW5zZXJ0LmgiCi0jaW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgi CisjaW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXAuaCIKICNpbmNsdWRlICJjb21tYW5kcy92 YWN1dW0uaCIKICNpbmNsdWRlICJleGVjdXRvci9pbnN0cnVtZW50LmgiCiAjaW5jbHVkZSAibWlz Y2FkbWluLmgiCkBAIC0xNzcsNiArMTc3LDEzIEBAIHN0YXRpYyB2b2lkIGhlYXBfcHJ1bmVfcmVj b3JkX3VuY2hhbmdlZF9scF9yZWRpcmVjdChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROCiAK IHN0YXRpYyB2b2lkIHBhZ2VfdmVyaWZ5X3JlZGlyZWN0cyhQYWdlIHBhZ2UpOwogCitzdGF0aWMg Ym9vbCBpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24oUmVsYXRpb24gcmVsYXRpb24sCisJ CQkJCQkJCQkJICAgQmxvY2tOdW1iZXIgaGVhcF9ibGssCisJCQkJCQkJCQkJICAgQnVmZmVyIGhl YXBfYnVmZmVyLCBQYWdlIGhlYXBfcGFnZSwKKwkJCQkJCQkJCQkgICBib29sIGhlYXBfYmxrX2tu b3duX2F2LAorCQkJCQkJCQkJCSAgIGludDY0IG5scGRlYWRfaXRlbXMsCisJCQkJCQkJCQkJICAg QnVmZmVyIHZtYnVmZmVyKTsKKwogCiAvKgogICogT3B0aW9uYWxseSBwcnVuZSBhbmQgcmVwYWly IGZyYWdtZW50YXRpb24gaW4gdGhlIHNwZWNpZmllZCBwYWdlLgpAQCAtMjYxLDcgKzI2OCw5IEBA IGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIpCiAJ CQkgKiBub3QgdGhlIHJlbGF0aW9uIGhhcyBpbmRleGVzLCBzaW5jZSB3ZSBjYW5ub3Qgc2FmZWx5 IGRldGVybWluZQogCQkJICogdGhhdCBkdXJpbmcgb24tYWNjZXNzIHBydW5pbmcgd2l0aCB0aGUg Y3VycmVudCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAqLwotCQkJaGVhcF9wYWdlX3BydW5lX2FuZF9m cmVlemUocmVsYXRpb24sIGJ1ZmZlciwgdmlzdGVzdCwgMCwKKwkJCWhlYXBfcGFnZV9wcnVuZV9h bmRfZnJlZXplKHJlbGF0aW9uLCBidWZmZXIsIGZhbHNlLAorCQkJCQkJCQkJICAgSW52YWxpZEJ1 ZmZlciwKKwkJCQkJCQkJCSAgIHZpc3Rlc3QsIDAsCiAJCQkJCQkJCQkgICBOVUxMLCAmcHJlc3Vs dCwgUFJVTkVfT05fQUNDRVNTLCAmZHVtbXlfb2ZmX2xvYywgTlVMTCwgTlVMTCk7CiAKIAkJCS8q CkBAIC0yOTQsNiArMzAzLDY0IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIpCiAJfQogfQogCisvKgorICogV2hlbiB1cGRhdGluZyB0aGUgdmlz aWJpbGl0eSBtYXAgYWZ0ZXIgcGhhc2UgSSBoZWFwIHZhY3V1bWluZywgd2UgdGFrZSB0aGUKKyAq IG9wcG9ydHVuaXR5IHRvIGlkZW50aWZ5IGFuZCBmaXggYW55IFZNIGNvcnJ1cHRpb24uCisgKgor ICogaGVhcF9ibGtfa25vd25fYXYgaXMgdGhlIHZpc2liaWxpdHkgc3RhdHVzIG9mIHRoZSBoZWFw IHBhZ2UgY29sbGVjdGVkCisgKiB3aGlsZSBmaW5kaW5nIHRoZSBuZXh0IHVuc2tpcHBhYmxlIGJs b2NrIGluIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpLgorICovCitzdGF0aWMgYm9vbAoraWRl bnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbGF0aW9uLAorCQkJCQkJCSAg IEJsb2NrTnVtYmVyIGhlYXBfYmxrLAorCQkJCQkJCSAgIEJ1ZmZlciBoZWFwX2J1ZmZlciwgUGFn ZSBoZWFwX3BhZ2UsCisJCQkJCQkJICAgYm9vbCBoZWFwX2Jsa19rbm93bl9hdiwKKwkJCQkJCQkg ICBpbnQ2NCBubHBkZWFkX2l0ZW1zLAorCQkJCQkJCSAgIEJ1ZmZlciB2bWJ1ZmZlcikKK3sKKwkv KgorCSAqIEFzIG9mIFBvc3RncmVTUUwgOS4yLCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IHNob3Vs ZCBuZXZlciBiZSBzZXQgaWYgdGhlCisJICogcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIuICBIb3dl dmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJpdCBnb3QKKwkgKiBjbGVhcmVkIGFmdGVyIGhl YXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIHdhcyBjYWxsZWQsIHNvIHdlIG11c3QgcmVjaGVjawor CSAqIHdpdGggYnVmZmVyIGxvY2sgYmVmb3JlIGNvbmNsdWRpbmcgdGhhdCB0aGUgVk0gaXMgY29y cnVwdC4KKwkgKi8KKwlpZiAoaGVhcF9ibGtfa25vd25fYXYgJiYgIVBhZ2VJc0FsbFZpc2libGUo aGVhcF9wYWdlKSAmJgorCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocmVsYXRpb24sIGhlYXBf YmxrLCAmdm1idWZmZXIpICE9IDApCisJeworCQllbG9nKFdBUk5JTkcsICJwYWdlIGlzIG5vdCBt YXJrZWQgYWxsLXZpc2libGUgYnV0IHZpc2liaWxpdHkgbWFwIGJpdCBpcyBzZXQgaW4gcmVsYXRp b24gXCIlc1wiIHBhZ2UgJXUiLAorCQkJIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbGF0aW9u KSwgaGVhcF9ibGspOworCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbGF0aW9uLCBoZWFwX2Jsaywg dm1idWZmZXIsCisJCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKTsKKwkJcmV0dXJuIHRy dWU7CisJfQorCisJLyoKKwkgKiBJdCdzIHBvc3NpYmxlIGZvciB0aGUgdmFsdWUgcmV0dXJuZWQg YnkKKwkgKiBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlvbklkKCkgdG8gbW92ZSBiYWNr d2FyZHMsIHNvIGl0J3Mgbm90CisJICogd3JvbmcgZm9yIHVzIHRvIHNlZSB0dXBsZXMgdGhhdCBh cHBlYXIgdG8gbm90IGJlIHZpc2libGUgdG8gZXZlcnlvbmUKKwkgKiB5ZXQsIHdoaWxlIFBEX0FM TF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LiBUaGUgcmVhbCBzYWZlIHhtaW4gdmFsdWUKKwkgKiBu ZXZlciBtb3ZlcyBiYWNrd2FyZHMsIGJ1dCBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlv bklkKCkgaXMKKwkgKiBjb25zZXJ2YXRpdmUgYW5kIHNvbWV0aW1lcyByZXR1cm5zIGEgdmFsdWUg dGhhdCdzIHVubmVjZXNzYXJpbHkgc21hbGwsCisJICogc28gaWYgd2Ugc2VlIHRoYXQgY29udHJh ZGljdGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQgdGhlIHR1cGxlcyB0aGF0IHdlCisJICogdGhpbmsg YXJlIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lIHlldCBhY3R1YWxseSBhcmUsIGFuZCB0aGUKKwkg KiBQRF9BTExfVklTSUJMRSBmbGFnIGlzIGNvcnJlY3QuCisJICoKKwkgKiBUaGVyZSBzaG91bGQg bmV2ZXIgYmUgTFBfREVBRCBpdGVtcyBvbiBhIHBhZ2Ugd2l0aCBQRF9BTExfVklTSUJMRSBzZXQs CisJICogaG93ZXZlci4KKwkgKi8KKwlpZiAobmxwZGVhZF9pdGVtcyA+IDAgJiYgUGFnZUlzQWxs VmlzaWJsZShoZWFwX3BhZ2UpKQorCXsKKwkJZWxvZyhXQVJOSU5HLCAicGFnZSBjb250YWluaW5n IExQX0RFQUQgaXRlbXMgaXMgbWFya2VkIGFzIGFsbC12aXNpYmxlIGluIHJlbGF0aW9uIFwiJXNc IiBwYWdlICV1IiwKKwkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbiksIGhlYXBf YmxrKTsKKwkJUGFnZUNsZWFyQWxsVmlzaWJsZShoZWFwX3BhZ2UpOworCQlNYXJrQnVmZmVyRGly dHkoaGVhcF9idWZmZXIpOworCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbGF0aW9uLCBoZWFwX2Js aywgdm1idWZmZXIsCisJCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKTsKKwkJcmV0dXJu IHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQogCiAvKgogICogUHJ1bmUgYW5kIHJlcGFp ciBmcmFnbWVudGF0aW9uIGFuZCBwb3RlbnRpYWxseSBmcmVlemUgdHVwbGVzIG9uIHRoZQpAQCAt MzE0LDYgKzM4MSwxMCBAQCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBC dWZmZXIgYnVmZmVyKQogICogSEVBUF9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIG5vdCBzZXQsIGJl Y2F1c2UgYXQgdGhlIG1vbWVudCBvbmx5IGNhbGxlcnMKICAqIHRoYXQgYWxzbyBmcmVlemUgbmVl ZCB0aGF0IGluZm9ybWF0aW9uLgogICoKKyAqIGJsa19rbm93bl9hdiBpcyB0aGUgdmlzaWJpbGl0 eSBzdGF0dXMgb2YgdGhlIGhlYXAgYmxvY2sgYXMgb2YgdGhlIGxhc3QgY2FsbAorICogdG8gZmlu ZF9uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrKCkuIHZtYnVmZmVyIGlzIHRoZSBidWZmZXIgdGhhdCBt YXkgYWxyZWFkeQorICogY29udGFpbiB0aGUgcmVxdWlyZWQgYmxvY2sgb2YgdGhlIHZpc2liaWxp dHkgbWFwLgorICoKICAqIHZpc3Rlc3QgaXMgdXNlZCB0byBkaXN0aW5ndWlzaCB3aGV0aGVyIHR1 cGxlcyBhcmUgREVBRCBvciBSRUNFTlRMWV9ERUFECiAgKiAoc2VlIGhlYXBfcHJ1bmVfc2F0aXNm aWVzX3ZhY3V1bSkuCiAgKgpAQCAtMzQ5LDYgKzQyMCw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIpCiAgKi8KIHZvaWQKIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJ ICAgYm9vbCBibGtfa25vd25fYXYsCisJCQkJCQkgICBCdWZmZXIgdm1idWZmZXIsCiAJCQkJCQkg ICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCSAgIGludCBvcHRpb25zLAogCQkJCQkJ ICAgc3RydWN0IFZhY3V1bUN1dG9mZnMgKmN1dG9mZnMsCkBAIC04OTcsNiArOTcwLDE2IEBAIGhl YXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVy LAogCXByZXN1bHQtPmxwZGVhZF9pdGVtcyA9IHByc3RhdGUubHBkZWFkX2l0ZW1zOwogCS8qIHRo ZSBwcmVzdWx0LT5kZWFkb2Zmc2V0cyBhcnJheSB3YXMgYWxyZWFkeSBmaWxsZWQgaW4gKi8KIAor CS8qCisJICogQ2xlYXIgYW55IFZNIGNvcnJ1cHRpb24uIFRoaXMgZG9lcyBub3QgbmVlZCB0byBi ZSBkb25lIGluIGEgY3JpdGljYWwKKwkgKiBzZWN0aW9uLgorCSAqLworCXByZXN1bHQtPnZtX2Nv cnJ1cHRpb24gPSBmYWxzZTsKKwlpZiAob3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9VUERBVEVf Vk0pCisJCXByZXN1bHQtPnZtX2NvcnJ1cHRpb24gPSBpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1 cHRpb24ocmVsYXRpb24sCisJCQkJCQkJCQkJCQkJCQkJYmxvY2tubywgYnVmZmVyLCBwYWdlLAor CQkJCQkJCQkJCQkJCQkJCWJsa19rbm93bl9hdiwKKwkJCQkJCQkJCQkJCQkJCQlwcnN0YXRlLmxw ZGVhZF9pdGVtcywgdm1idWZmZXIpOwogCWlmIChwcnN0YXRlLmZyZWV6ZSkKIAl7CiAJCWlmIChw cmVzdWx0LT5uZnJvemVuID4gMCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRl eCA0ZDQ3YTZiMzk0YS4uNjRhZTYzZGNiMTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMKQEAgLTQzMCwxMiArNDMwLDYgQEAgc3RhdGljIHZvaWQgZmluZF9uZXh0X3Vuc2tpcHBh YmxlX2Jsb2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgYm9vbCAqc2tpcHNhbGx2aXMpOwogc3RhdGlj IGJvb2wgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBi dWYsCiAJCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGJsa25vLCBQYWdlIHBhZ2UsCiAJCQkJCQkJCSAg IGJvb2wgc2hhcmVsb2NrLCBCdWZmZXIgdm1idWZmZXIpOwotc3RhdGljIGJvb2wgaWRlbnRpZnlf YW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJCSAgIEJs b2NrTnVtYmVyIGhlYXBfYmxrLAotCQkJCQkJCQkJCSAgIEJ1ZmZlciBoZWFwX2J1ZmZlciwgUGFn ZSBoZWFwX3BhZ2UsCi0JCQkJCQkJCQkJICAgYm9vbCBoZWFwX2Jsa19rbm93bl9hdiwKLQkJCQkJ CQkJCQkgICBpbnQ2NCBubHBkZWFkX2l0ZW1zLAotCQkJCQkJCQkJCSAgIEJ1ZmZlciB2bWJ1ZmZl cik7CiBzdGF0aWMgaW50CWxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZl ciBidWYsCiAJCQkJCQkJQmxvY2tOdW1iZXIgYmxrbm8sIFBhZ2UgcGFnZSwKIAkJCQkJCQlCdWZm ZXIgdm1idWZmZXIsIGJvb2wgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLApAQCAtMTkzOCw2 NSArMTkzMiw2IEBAIGxhenlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBC dWZmZXIgYnVmLCBCbG9ja051bWJlciBibGtubywKIAlyZXR1cm4gZmFsc2U7CiB9CiAKLS8qCi0g KiBXaGVuIHVwZGF0aW5nIHRoZSB2aXNpYmlsaXR5IG1hcCBhZnRlciBwaGFzZSBJIGhlYXAgdmFj dXVtaW5nLCB3ZSB0YWtlIHRoZQotICogb3Bwb3J0dW5pdHkgdG8gaWRlbnRpZnkgYW5kIGZpeCBh bnkgVk0gY29ycnVwdGlvbi4KLSAqCi0gKiBoZWFwX2Jsa19rbm93bl9hdiBpcyB0aGUgdmlzaWJp bGl0eSBzdGF0dXMgb2YgdGhlIGhlYXAgcGFnZSBjb2xsZWN0ZWQKLSAqIHdoaWxlIGZpbmRpbmcg dGhlIG5leHQgdW5za2lwcGFibGUgYmxvY2sgaW4gaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCku Ci0gKi8KLXN0YXRpYyBib29sCi1pZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24oUmVsYXRp b24gcmVsYXRpb24sCi0JCQkJCQkJICAgQmxvY2tOdW1iZXIgaGVhcF9ibGssCi0JCQkJCQkJICAg QnVmZmVyIGhlYXBfYnVmZmVyLCBQYWdlIGhlYXBfcGFnZSwKLQkJCQkJCQkgICBib29sIGhlYXBf YmxrX2tub3duX2F2LAotCQkJCQkJCSAgIGludDY0IG5scGRlYWRfaXRlbXMsCi0JCQkJCQkJICAg QnVmZmVyIHZtYnVmZmVyKQotewotCS8qCi0JICogQXMgb2YgUG9zdGdyZVNRTCA5LjIsIHRoZSB2 aXNpYmlsaXR5IG1hcCBiaXQgc2hvdWxkIG5ldmVyIGJlIHNldCBpZiB0aGUKLQkgKiBwYWdlLWxl dmVsIGJpdCBpcyBjbGVhci4gIEhvd2V2ZXIsIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgYml0IGdv dAotCSAqIGNsZWFyZWQgYWZ0ZXIgaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCkgd2FzIGNhbGxl ZCwgc28gd2UgbXVzdCByZWNoZWNrCi0JICogd2l0aCBidWZmZXIgbG9jayBiZWZvcmUgY29uY2x1 ZGluZyB0aGF0IHRoZSBWTSBpcyBjb3JydXB0LgotCSAqLwotCWlmIChoZWFwX2Jsa19rbm93bl9h diAmJiAhUGFnZUlzQWxsVmlzaWJsZShoZWFwX3BhZ2UpICYmCi0JCXZpc2liaWxpdHltYXBfZ2V0 X3N0YXR1cyhyZWxhdGlvbiwgaGVhcF9ibGssICZ2bWJ1ZmZlcikgIT0gMCkKLQl7Ci0JCWVsb2co V0FSTklORywgInBhZ2UgaXMgbm90IG1hcmtlZCBhbGwtdmlzaWJsZSBidXQgdmlzaWJpbGl0eSBt YXAgYml0IGlzIHNldCBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkgUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pLCBoZWFwX2Jsayk7Ci0JCXZpc2liaWxpdHltYXBfY2xl YXIocmVsYXRpb24sIGhlYXBfYmxrLCB2bWJ1ZmZlciwKLQkJCQkJCQlWSVNJQklMSVRZTUFQX1ZB TElEX0JJVFMpOwotCQlyZXR1cm4gdHJ1ZTsKLQl9Ci0KLQkvKgotCSAqIEl0J3MgcG9zc2libGUg Zm9yIHRoZSB2YWx1ZSByZXR1cm5lZCBieQotCSAqIEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5z YWN0aW9uSWQoKSB0byBtb3ZlIGJhY2t3YXJkcywgc28gaXQncyBub3QKLQkgKiB3cm9uZyBmb3Ig dXMgdG8gc2VlIHR1cGxlcyB0aGF0IGFwcGVhciB0byBub3QgYmUgdmlzaWJsZSB0byBldmVyeW9u ZQotCSAqIHlldCwgd2hpbGUgUERfQUxMX1ZJU0lCTEUgaXMgYWxyZWFkeSBzZXQuIFRoZSByZWFs IHNhZmUgeG1pbiB2YWx1ZQotCSAqIG5ldmVyIG1vdmVzIGJhY2t3YXJkcywgYnV0IEdldE9sZGVz dE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSBpcwotCSAqIGNvbnNlcnZhdGl2ZSBhbmQgc29t ZXRpbWVzIHJldHVybnMgYSB2YWx1ZSB0aGF0J3MgdW5uZWNlc3NhcmlseSBzbWFsbCwKLQkgKiBz byBpZiB3ZSBzZWUgdGhhdCBjb250cmFkaWN0aW9uIGl0IGp1c3QgbWVhbnMgdGhhdCB0aGUgdHVw bGVzIHRoYXQgd2UKLQkgKiB0aGluayBhcmUgbm90IHZpc2libGUgdG8gZXZlcnlvbmUgeWV0IGFj dHVhbGx5IGFyZSwgYW5kIHRoZQotCSAqIFBEX0FMTF9WSVNJQkxFIGZsYWcgaXMgY29ycmVjdC4K LQkgKgotCSAqIFRoZXJlIHNob3VsZCBuZXZlciBiZSBMUF9ERUFEIGl0ZW1zIG9uIGEgcGFnZSB3 aXRoIFBEX0FMTF9WSVNJQkxFIHNldCwKLQkgKiBob3dldmVyLgotCSAqLwotCWlmIChubHBkZWFk X2l0ZW1zID4gMCAmJiBQYWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFnZSkpCi0JewotCQllbG9nKFdB Uk5JTkcsICJwYWdlIGNvbnRhaW5pbmcgTFBfREVBRCBpdGVtcyBpcyBtYXJrZWQgYXMgYWxsLXZp c2libGUgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAotCQkJIFJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbGF0aW9uKSwgaGVhcF9ibGspOwotCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKGhlYXBf cGFnZSk7Ci0JCU1hcmtCdWZmZXJEaXJ0eShoZWFwX2J1ZmZlcik7Ci0JCXZpc2liaWxpdHltYXBf Y2xlYXIocmVsYXRpb24sIGhlYXBfYmxrLCB2bWJ1ZmZlciwKLQkJCQkJCQlWSVNJQklMSVRZTUFQ X1ZBTElEX0JJVFMpOwotCQlyZXR1cm4gdHJ1ZTsKLQl9Ci0KLQlyZXR1cm4gZmFsc2U7Ci19Ci0K IAogLyogcXNvcnQgY29tcGFyYXRvciBmb3Igc29ydGluZyBPZmZzZXROdW1iZXJzICovCiBzdGF0 aWMgaW50CkBAIC0yMDU1LDExICsxOTkwLDE0IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRl ICp2YWNyZWwsCiAJICogdHVwbGVzLiBQcnVuaW5nIHdpbGwgaGF2ZSBkZXRlcm1pbmVkIHdoZXRo ZXIgb3Igbm90IHRoZSBwYWdlIGlzCiAJICogYWxsLXZpc2libGUuCiAJICovCi0JcHJ1bmVfb3B0 aW9ucyA9IEhFQVBfUEFHRV9QUlVORV9GUkVFWkU7CisJcHJ1bmVfb3B0aW9ucyA9IEhFQVBfUEFH RV9QUlVORV9GUkVFWkUgfCBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZNOwogCWlmICh2YWNyZWwt Pm5pbmRleGVzID09IDApCiAJCXBydW5lX29wdGlvbnMgfD0gSEVBUF9QQUdFX1BSVU5FX01BUktf VU5VU0VEX05PVzsKIAotCWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKHJlbCwgYnVmLCB2YWNy ZWwtPnZpc3Rlc3QsIHBydW5lX29wdGlvbnMsCisJaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo cmVsLCBidWYsCisJCQkJCQkJICAgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLAorCQkJCQkJ CSAgIHZtYnVmZmVyLAorCQkJCQkJCSAgIHZhY3JlbC0+dmlzdGVzdCwgcHJ1bmVfb3B0aW9ucywK IAkJCQkJCQkgICAmdmFjcmVsLT5jdXRvZmZzLCAmcHJlc3VsdCwgUFJVTkVfVkFDVVVNX1NDQU4s CiAJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtLAogCQkJCQkJCSAgICZ2YWNyZWwtPk5ld1JlbGZy b3plblhpZCwgJnZhY3JlbC0+TmV3UmVsbWluTXhpZCk7CkBAIC0yMTQ0LDEwICsyMDgyLDkgQEAg bGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkvKgogCSAqIEhhbmRsZSBzZXR0 aW5nIHZpc2liaWxpdHkgbWFwIGJpdCBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAo YXMKIAkgKiBvZiBsYXN0IGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIGNhbGwpLCBhbmQgZnJv bSBhbGxfdmlzaWJsZSBhbmQKLQkgKiBhbGxfZnJvemVuIHZhcmlhYmxlcy4gU3RhcnQgYnkgbG9v a2luZyBmb3IgYW55IFZNIGNvcnJ1cHRpb24uCisJICogYWxsX2Zyb3plbiB2YXJpYWJsZXMuCiAJ ICovCi0JaWYgKGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbih2YWNyZWwtPnJlbCwgYmxr bm8sIGJ1ZiwgcGFnZSwKLQkJCQkJCQkJCSAgIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSwg cHJlc3VsdC5scGRlYWRfaXRlbXMsIHZtYnVmZmVyKSkKKwlpZiAocHJlc3VsdC52bV9jb3JydXB0 aW9uKQogCXsKIAkJLyogRG9uJ3QgdXBkYXRlIHRoZSBWTSBpZiB3ZSBqdXN0IGNsZWFyZWQgY29y cnVwdGlvbiBpbiBpdCAqLwogCX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFw YW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCBlNzEyOWE2NDRhMS4uMGM3 ZWI1ZTQ2ZjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTQyLDYgKzQyLDcgQEAKIC8qICJvcHRpb25z IiBmbGFnIGJpdHMgZm9yIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplICovCiAjZGVmaW5lIEhF QVBfUEFHRV9QUlVORV9NQVJLX1VOVVNFRF9OT1cJCSgxIDw8IDApCiAjZGVmaW5lIEhFQVBfUEFH RV9QUlVORV9GUkVFWkUJCQkJKDEgPDwgMSkKKyNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX1VQREFU RV9WTQkJCSgxIDw8IDIpCiAKIHR5cGVkZWYgc3RydWN0IEJ1bGtJbnNlcnRTdGF0ZURhdGEgKkJ1 bGtJbnNlcnRTdGF0ZTsKIHN0cnVjdCBUdXBsZVRhYmxlU2xvdDsKQEAgLTI0Nyw2ICsyNDgsNyBA QCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVJlc3VsdAogCWJvb2wJCWFsbF92aXNpYmxlOwog CWJvb2wJCWFsbF9mcm96ZW47CiAJVHJhbnNhY3Rpb25JZCB2bV9jb25mbGljdF9ob3Jpem9uOwor CWJvb2wJCXZtX2NvcnJ1cHRpb247CiAKIAkvKgogCSAqIFdoZXRoZXIgb3Igbm90IHRoZSBwYWdl IG1ha2VzIHJlbCB0cnVuY2F0aW9uIHVuc2FmZS4gIFRoaXMgaXMgc2V0IHRvCkBAIC0zODAsNiAr MzgyLDggQEAgZXh0ZXJuIFRyYW5zYWN0aW9uSWQgaGVhcF9pbmRleF9kZWxldGVfdHVwbGVzKFJl bGF0aW9uIHJlbCwKIHN0cnVjdCBHbG9iYWxWaXNTdGF0ZTsKIGV4dGVybiB2b2lkIGhlYXBfcGFn ZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIpOwogZXh0ZXJuIHZv aWQgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIsCisJCQkJCQkJCQkgICBib29sIGJsa19rbm93bl9hdiwKKwkJCQkJCQkJCSAgIEJ1ZmZl ciB2bWJ1ZmZlciwKIAkJCQkJCQkJCSAgIHN0cnVjdCBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwK IAkJCQkJCQkJCSAgIGludCBvcHRpb25zLAogCQkJCQkJCQkJICAgc3RydWN0IFZhY3V1bUN1dG9m ZnMgKmN1dG9mZnMsCi0tIAoyLjQzLjAKCg== --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0007-Combine-lazy_scan_prune-VM-corruption-cases.patch" Content-Disposition: attachment; filename="v8-0007-Combine-lazy_scan_prune-VM-corruption-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7bd6 RnJvbSAzOTNiY2U1MTQzNjJjMDViZWQyZWJhNzFmMWJmYWQ2NDk1MDdkMDU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDE2OjA0OjAzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAwNy8yMl0gQ29tYmluZSBsYXp5X3NjYW5fcHJ1bmUgVk0gY29ycnVwdGlvbiBjYXNl cwoKbGF6eV9zY2FuX3BydW5lKCkgdXBkYXRlcyB0aGUgdmlzaWJpbGl0eSBtYXAgYWZ0ZXIgcGhh c2UgSSBvZiBoZWFwCnZhY3V1bWluZy4gSXQgYWxzbyBjaGVja3MgYW5kIGZpeGVzIGNvcnJ1cHRp b24gaW4gdGhlIFZNLiBUaGUgY29ycnVwdGlvbgpjYXNlcyB3aGVyZSBtaXhlZCBpbiB3aXRoIHRo ZSBub3JtYWwgdmlzaWJpbGl0eSBtYXAgdXBkYXRlIGNhc2VzLgoKQ2FyZWZ1bCBzdHVkeSBvZiB0 aGUgb3JkZXJpbmcgb2YgdGhlIGN1cnJlbnQgbG9naWMgcmV2ZWFscyB0aGF0IHRoZQpjb3JydXB0 aW9uIGNhc2VzIGNhbiBiZSByZW9yZGVyZWQgYW5kIGV4dHJhY3RlZCBpbnRvIGEgc2VwYXJhdGUK ZnVuY3Rpb24uIFRoaXMgc2hvdWxkIHJlc3VsdCBpbiBubyBhZGRpdGlvbmFsIG92ZXJoZWFkIHdo ZW4gY29tcGFyZWQgdG8KcHJldmlvdXMgZXhlY3V0aW9uLgoKVGhpcyByZW9yZGVyaW5nIG1ha2Vz IGl0IGNsZWFyIHdoaWNoIGNhc2VzIGFyZSBhYm91dCBjb3JydXB0aW9uIGFuZAp3aGljaCBjYXNl cyBhcmUgbm9ybWFsIFZNIHVwZGF0ZXMuIFNlcGFyYXRpbmcgdGhlbSBhbHNvIG1ha2VzIGl0CnBv c3NpYmxlIHRvIGNvbWJpbmUgdGhlIG5vcm1hbCBjYXNlcyBpbiBhIGZ1dHVyZSBjb21taXQuIFRo aXMgd2lsbCBtYWtlCnRoZSBsb2dpYyBlYXNpZXIgdG8gdW5kZXJzdGFuZCBhbmQgYWxsb3cgZm9y IGZ1cnRoZXIgc2VwYXJhdGlvbiBvZiB0aGUKbG9naWMgdG8gYWxsb3cgdXBkYXRpbmcgdGhlIFZN IGluIHRoZSBzYW1lIHJlY29yZCBhcyBwcnVuaW5nIGFuZApmcmVlemluZyBpbiBwaGFzZSBJLgot LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8IDExNCArKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCA0MSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggNDljNDZk MzU0ODYuLjQwNmMzMGU2ZWNkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBA IC00MzAsNiArNDMwLDEyIEBAIHN0YXRpYyB2b2lkIGZpbmRfbmV4dF91bnNraXBwYWJsZV9ibG9j ayhMVlJlbFN0YXRlICp2YWNyZWwsIGJvb2wgKnNraXBzYWxsdmlzKTsKIHN0YXRpYyBib29sIGxh enlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkJ CQkJCQkgICBCbG9ja051bWJlciBibGtubywgUGFnZSBwYWdlLAogCQkJCQkJCQkgICBib29sIHNo YXJlbG9jaywgQnVmZmVyIHZtYnVmZmVyKTsKK3N0YXRpYyBib29sIGlkZW50aWZ5X2FuZF9maXhf dm1fY29ycnVwdGlvbihSZWxhdGlvbiByZWxhdGlvbiwKKwkJCQkJCQkJCQkgICBCbG9ja051bWJl ciBoZWFwX2JsaywKKwkJCQkJCQkJCQkgICBCdWZmZXIgaGVhcF9idWZmZXIsIFBhZ2UgaGVhcF9w YWdlLAorCQkJCQkJCQkJCSAgIGJvb2wgaGVhcF9ibGtfa25vd25fYXYsCisJCQkJCQkJCQkJICAg aW50NjQgbmxwZGVhZF9pdGVtcywKKwkJCQkJCQkJCQkgICBCdWZmZXIgdm1idWZmZXIpOwogc3Rh dGljIGludAlsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAog CQkJCQkJCUJsb2NrTnVtYmVyIGJsa25vLCBQYWdlIHBhZ2UsCiAJCQkJCQkJQnVmZmVyIHZtYnVm ZmVyLCBib29sIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSwKQEAgLTE5MzIsNiArMTkzOCw2 NiBAQCBsYXp5X3NjYW5fbmV3X29yX2VtcHR5KExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1 ZiwgQmxvY2tOdW1iZXIgYmxrbm8sCiAJcmV0dXJuIGZhbHNlOwogfQogCisvKgorICogV2hlbiB1 cGRhdGluZyB0aGUgdmlzaWJpbGl0eSBtYXAgYWZ0ZXIgcGhhc2UgSSBoZWFwIHZhY3V1bWluZywg d2UgdGFrZSB0aGUKKyAqIG9wcG9ydHVuaXR5IHRvIGlkZW50aWZ5IGFuZCBmaXggYW55IFZNIGNv cnJ1cHRpb24uCisgKgorICogaGVhcF9ibGtfa25vd25fYXYgaXMgdGhlIHZpc2liaWxpdHkgc3Rh dHVzIG9mIHRoZSBoZWFwIHBhZ2UgY29sbGVjdGVkCisgKiB3aGlsZSBmaW5kaW5nIHRoZSBuZXh0 IHVuc2tpcHBhYmxlIGJsb2NrIGluIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpLgorICovCitz dGF0aWMgYm9vbAoraWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbGF0 aW9uLAorCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGhlYXBfYmxrLAorCQkJCQkJCSAgIEJ1ZmZlciBo ZWFwX2J1ZmZlciwgUGFnZSBoZWFwX3BhZ2UsCisJCQkJCQkJICAgYm9vbCBoZWFwX2Jsa19rbm93 bl9hdiwKKwkJCQkJCQkgICBpbnQ2NCBubHBkZWFkX2l0ZW1zLAorCQkJCQkJCSAgIEJ1ZmZlciB2 bWJ1ZmZlcikKK3sKKwkvKgorCSAqIEFzIG9mIFBvc3RncmVTUUwgOS4yLCB0aGUgdmlzaWJpbGl0 eSBtYXAgYml0IHNob3VsZCBuZXZlciBiZSBzZXQgaWYgdGhlCisJICogcGFnZS1sZXZlbCBiaXQg aXMgY2xlYXIuICBIb3dldmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJpdCBnb3QKKwkgKiBj bGVhcmVkIGFmdGVyIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIHdhcyBjYWxsZWQsIHNvIHdl IG11c3QgcmVjaGVjaworCSAqIHdpdGggYnVmZmVyIGxvY2sgYmVmb3JlIGNvbmNsdWRpbmcgdGhh dCB0aGUgVk0gaXMgY29ycnVwdC4KKwkgKi8KKwlpZiAoaGVhcF9ibGtfa25vd25fYXYgJiYgIVBh Z2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSAmJgorCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMo cmVsYXRpb24sIGhlYXBfYmxrLCAmdm1idWZmZXIpICE9IDApCisJeworCQllbG9nKFdBUk5JTkcs ICJwYWdlIGlzIG5vdCBtYXJrZWQgYWxsLXZpc2libGUgYnV0IHZpc2liaWxpdHkgbWFwIGJpdCBp cyBzZXQgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAorCQkJIFJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbGF0aW9uKSwgaGVhcF9ibGspOworCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbGF0 aW9uLCBoZWFwX2Jsaywgdm1idWZmZXIsCisJCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJRF9CSVRT KTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJLyoKKwkgKiBJdCdzIHBvc3NpYmxlIGZvciB0aGUg dmFsdWUgcmV0dXJuZWQgYnkKKwkgKiBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlvbklk KCkgdG8gbW92ZSBiYWNrd2FyZHMsIHNvIGl0J3Mgbm90CisJICogd3JvbmcgZm9yIHVzIHRvIHNl ZSB0dXBsZXMgdGhhdCBhcHBlYXIgdG8gbm90IGJlIHZpc2libGUgdG8gZXZlcnlvbmUKKwkgKiB5 ZXQsIHdoaWxlIFBEX0FMTF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LiBUaGUgcmVhbCBzYWZlIHht aW4gdmFsdWUKKwkgKiBuZXZlciBtb3ZlcyBiYWNrd2FyZHMsIGJ1dCBHZXRPbGRlc3ROb25SZW1v dmFibGVUcmFuc2FjdGlvbklkKCkgaXMKKwkgKiBjb25zZXJ2YXRpdmUgYW5kIHNvbWV0aW1lcyBy ZXR1cm5zIGEgdmFsdWUgdGhhdCdzIHVubmVjZXNzYXJpbHkgc21hbGwsCisJICogc28gaWYgd2Ug c2VlIHRoYXQgY29udHJhZGljdGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQgdGhlIHR1cGxlcyB0aGF0 IHdlCisJICogdGhpbmsgYXJlIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lIHlldCBhY3R1YWxseSBh cmUsIGFuZCB0aGUKKwkgKiBQRF9BTExfVklTSUJMRSBmbGFnIGlzIGNvcnJlY3QuCisJICoKKwkg KiBUaGVyZSBzaG91bGQgbmV2ZXIgYmUgTFBfREVBRCBpdGVtcyBvbiBhIHBhZ2Ugd2l0aCBQRF9B TExfVklTSUJMRSBzZXQsCisJICogaG93ZXZlci4KKwkgKi8KKwlpZiAobmxwZGVhZF9pdGVtcyA+ IDAgJiYgUGFnZUlzQWxsVmlzaWJsZShoZWFwX3BhZ2UpKQorCXsKKwkJZWxvZyhXQVJOSU5HLCAi cGFnZSBjb250YWluaW5nIExQX0RFQUQgaXRlbXMgaXMgbWFya2VkIGFzIGFsbC12aXNpYmxlIGlu IHJlbGF0aW9uIFwiJXNcIiBwYWdlICV1IiwKKwkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShy ZWxhdGlvbiksIGhlYXBfYmxrKTsKKwkJUGFnZUNsZWFyQWxsVmlzaWJsZShoZWFwX3BhZ2UpOwor CQlNYXJrQnVmZmVyRGlydHkoaGVhcF9idWZmZXIpOworCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJl bGF0aW9uLCBoZWFwX2Jsaywgdm1idWZmZXIsCisJCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJRF9C SVRTKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCisKIC8qIHFz b3J0IGNvbXBhcmF0b3IgZm9yIHNvcnRpbmcgT2Zmc2V0TnVtYmVycyAqLwogc3RhdGljIGludAog Y21wT2Zmc2V0TnVtYmVycyhjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQpAQCAtMjA3OCw5 ICsyMTQ0LDE0IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJLyoKIAkg KiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQgYmFzZWQgb24gaW5mb3JtYXRpb24g ZnJvbSB0aGUgVk0gKGFzCiAJICogb2YgbGFzdCBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSBj YWxsKSwgYW5kIGZyb20gYWxsX3Zpc2libGUgYW5kCi0JICogYWxsX2Zyb3plbiB2YXJpYWJsZXMK KwkgKiBhbGxfZnJvemVuIHZhcmlhYmxlcy4gU3RhcnQgYnkgbG9va2luZyBmb3IgYW55IFZNIGNv cnJ1cHRpb24uCiAJICovCi0JaWYgKCFhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gJiYgcHJl c3VsdC5hbGxfdmlzaWJsZSkKKwlpZiAoaWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKHZh Y3JlbC0+cmVsLCBibGtubywgYnVmLCBwYWdlLAorCQkJCQkJCQkJICAgYWxsX3Zpc2libGVfYWNj b3JkaW5nX3RvX3ZtLCBwcmVzdWx0LmxwZGVhZF9pdGVtcywgdm1idWZmZXIpKQorCXsKKwkJLyog RG9uJ3QgdXBkYXRlIHRoZSBWTSBpZiB3ZSBqdXN0IGNsZWFyZWQgY29ycnVwdGlvbiBpbiBpdCAq LworCX0KKwllbHNlIGlmICghYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtICYmIHByZXN1bHQu YWxsX3Zpc2libGUpCiAJewogCQl1aW50OAkJb2xkX3ZtYml0czsKIAkJdWludDgJCWZsYWdzID0g VklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKQEAgLTIxMzIsNDUgKzIyMDMsNiBAQCBsYXp5X3Nj YW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQl9CiAJfQogCi0JLyoKLQkgKiBBcyBvZiBQ b3N0Z3JlU1FMIDkuMiwgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0 IGlmIHRoZQotCSAqIHBhZ2UtbGV2ZWwgYml0IGlzIGNsZWFyLiAgSG93ZXZlciwgaXQncyBwb3Nz aWJsZSB0aGF0IHRoZSBiaXQgZ290Ci0JICogY2xlYXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25l eHRfYmxvY2soKSB3YXMgY2FsbGVkLCBzbyB3ZSBtdXN0IHJlY2hlY2sKLQkgKiB3aXRoIGJ1ZmZl ciBsb2NrIGJlZm9yZSBjb25jbHVkaW5nIHRoYXQgdGhlIFZNIGlzIGNvcnJ1cHQuCi0JICovCi0J ZWxzZSBpZiAoYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtICYmICFQYWdlSXNBbGxWaXNpYmxl KHBhZ2UpICYmCi0JCQkgdmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzKHZhY3JlbC0+cmVsLCBibGtu bywgJnZtYnVmZmVyKSAhPSAwKQotCXsKLQkJZWxvZyhXQVJOSU5HLCAicGFnZSBpcyBub3QgbWFy a2VkIGFsbC12aXNpYmxlIGJ1dCB2aXNpYmlsaXR5IG1hcCBiaXQgaXMgc2V0IGluIHJlbGF0aW9u IFwiJXNcIiBwYWdlICV1IiwKLQkJCSB2YWNyZWwtPnJlbG5hbWUsIGJsa25vKTsKLQkJdmlzaWJp bGl0eW1hcF9jbGVhcih2YWNyZWwtPnJlbCwgYmxrbm8sIHZtYnVmZmVyLAotCQkJCQkJCVZJU0lC SUxJVFlNQVBfVkFMSURfQklUUyk7Ci0JfQotCi0JLyoKLQkgKiBJdCdzIHBvc3NpYmxlIGZvciB0 aGUgdmFsdWUgcmV0dXJuZWQgYnkKLQkgKiBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlv bklkKCkgdG8gbW92ZSBiYWNrd2FyZHMsIHNvIGl0J3Mgbm90Ci0JICogd3JvbmcgZm9yIHVzIHRv IHNlZSB0dXBsZXMgdGhhdCBhcHBlYXIgdG8gbm90IGJlIHZpc2libGUgdG8gZXZlcnlvbmUKLQkg KiB5ZXQsIHdoaWxlIFBEX0FMTF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LiBUaGUgcmVhbCBzYWZl IHhtaW4gdmFsdWUKLQkgKiBuZXZlciBtb3ZlcyBiYWNrd2FyZHMsIGJ1dCBHZXRPbGRlc3ROb25S ZW1vdmFibGVUcmFuc2FjdGlvbklkKCkgaXMKLQkgKiBjb25zZXJ2YXRpdmUgYW5kIHNvbWV0aW1l cyByZXR1cm5zIGEgdmFsdWUgdGhhdCdzIHVubmVjZXNzYXJpbHkgc21hbGwsCi0JICogc28gaWYg d2Ugc2VlIHRoYXQgY29udHJhZGljdGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQgdGhlIHR1cGxlcyB0 aGF0IHdlCi0JICogdGhpbmsgYXJlIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lIHlldCBhY3R1YWxs eSBhcmUsIGFuZCB0aGUKLQkgKiBQRF9BTExfVklTSUJMRSBmbGFnIGlzIGNvcnJlY3QuCi0JICoK LQkgKiBUaGVyZSBzaG91bGQgbmV2ZXIgYmUgTFBfREVBRCBpdGVtcyBvbiBhIHBhZ2Ugd2l0aCBQ RF9BTExfVklTSUJMRSBzZXQsCi0JICogaG93ZXZlci4KLQkgKi8KLQllbHNlIGlmIChwcmVzdWx0 LmxwZGVhZF9pdGVtcyA+IDAgJiYgUGFnZUlzQWxsVmlzaWJsZShwYWdlKSkKLQl7Ci0JCWVsb2co V0FSTklORywgInBhZ2UgY29udGFpbmluZyBMUF9ERUFEIGl0ZW1zIGlzIG1hcmtlZCBhcyBhbGwt dmlzaWJsZSBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkgdmFjcmVsLT5yZWxuYW1l LCBibGtubyk7Ci0JCVBhZ2VDbGVhckFsbFZpc2libGUocGFnZSk7Ci0JCU1hcmtCdWZmZXJEaXJ0 eShidWYpOwotCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHZhY3JlbC0+cmVsLCBibGtubywgdm1idWZm ZXIsCi0JCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKTsKLQl9Ci0KIAkvKgogCSAqIElm IHRoZSBhbGwtdmlzaWJsZSBwYWdlIGlzIGFsbC1mcm96ZW4gYnV0IG5vdCBtYXJrZWQgYXMgc3Vj aCB5ZXQsIG1hcmsKIAkgKiBpdCBhcyBhbGwtZnJvemVuLiAgTm90ZSB0aGF0IGFsbF9mcm96ZW4g aXMgb25seSB2YWxpZCBpZiBhbGxfdmlzaWJsZSBpcwotLSAKMi40My4wCgo= --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0003-Eliminate-xl_heap_visible-in-COPY-FREEZE.patch" Content-Disposition: attachment; filename="v8-0003-Eliminate-xl_heap_visible-in-COPY-FREEZE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7b22 RnJvbSAwN2YzMTA5OTc1NDYzNmVjOWRhYmY2Y2NhMDZjMzNjNGIxOWMyMzBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE3IEp1biAyMDI1IDE3OjIyOjEwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAwMy8yMl0gRWxpbWluYXRlIHhsX2hlYXBfdmlzaWJsZSBpbiBDT1BZIEZSRUVaRQoK SW5zdGVhZCBvZiBlbWl0dGluZyBhIHNlcGFyYXRlIFdBTCByZWNvcmQgZm9yIHNldHRpbmcgdGhl IFZNIGJpdHMgaW4KeGxfaGVhcF92aXNpYmxlLCBzcGVjaWZ5IHRoZSBjaGFuZ2VzIHRvIG1ha2Ug dG8gdGhlIFZNIGJsb2NrIGluIHRoZQp4bF9oZWFwX211bHRpX2luc2VydCByZWNvcmQgaW5zdGVh ZC4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4K UmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+CkRpc2N1 c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxhdC9DQUFLUnVfWk13Nk5wZF9xbTJLTSUyQkZ3 UTNjTU9NeDFEaDNWTWhwOC1WN1NPTHhkSzktZyU0MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgIHwgNDggKysrKysrKysrKy0tLS0tLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICAgfCAzOSArKysrKysrKysr KysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIHwgNjcgKysrKysr KysrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNj LmMgIHwgIDUgKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmggICAgICB8ICAy ICsKIDUgZmlsZXMgY2hhbmdlZCwgMTM4IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggZTNlNzMwN2VmNWYuLjAzNTI4MGRjMzBhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtMjUwNCw5ICsyNTA0LDYgQEAgaGVhcF9tdWx0 aV9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIFR1cGxlVGFibGVTbG90ICoqc2xvdHMsIGludCBu dHVwbGVzLAogCQkvKgogCQkgKiBJZiB0aGUgcGFnZSBpcyBhbGwgdmlzaWJsZSwgbmVlZCB0byBj bGVhciB0aGF0LCB1bmxlc3Mgd2UncmUgb25seQogCQkgKiBnb2luZyB0byBhZGQgZnVydGhlciBm cm96ZW4gcm93cyB0byBpdC4KLQkJICoKLQkJICogSWYgd2UncmUgb25seSBhZGRpbmcgYWxyZWFk eSBmcm96ZW4gcm93cyB0byBhIHByZXZpb3VzbHkgZW1wdHkKLQkJICogcGFnZSwgbWFyayBpdCBh cyBhbGwtdmlzaWJsZS4KIAkJICovCiAJCWlmIChQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpICYmICEo b3B0aW9ucyAmIEhFQVBfSU5TRVJUX0ZST1pFTikpCiAJCXsKQEAgLTI1MTYsOCArMjUxMywyMyBA QCBoZWFwX211bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNsb3QgKipz bG90cywgaW50IG50dXBsZXMsCiAJCQkJCQkJCUJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZlciks CiAJCQkJCQkJCXZtYnVmZmVyLCBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwogCQl9CisKKwkJ LyoKKwkJICogSWYgd2UncmUgb25seSBhZGRpbmcgYWxyZWFkeSBmcm96ZW4gcm93cyB0byBhIHBy ZXZpb3VzbHkgZW1wdHkKKwkJICogcGFnZSwgbWFyayBpdCBhcyBhbGwtZnJvemVuIGFuZCB1cGRh dGUgdGhlIHZpc2liaWxpdHkgbWFwLiBXZSdyZQorCQkgKiBhbHJlYWR5IGhvbGRpbmcgYSBwaW4g b24gdGhlIHZtYnVmZmVyLgorCQkgKi8KIAkJZWxzZSBpZiAoYWxsX2Zyb3plbl9zZXQpCisJCXsK KwkJCUFzc2VydCh2aXNpYmlsaXR5bWFwX3Bpbl9vayhCdWZmZXJHZXRCbG9ja051bWJlcihidWZm ZXIpLCB2bWJ1ZmZlcikpOwogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CisJCQlMb2NrQnVm ZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOworCQkJdmlzaWJpbGl0eW1hcF9z ZXRfdm1ieXRlKHJlbGF0aW9uLAorCQkJCQkJCQkJIEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZl ciksCisJCQkJCQkJCQkgdm1idWZmZXIsCisJCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfVklT SUJMRSB8CisJCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKKwkJfQogCiAJCS8q CiAJCSAqIFhYWCBTaG91bGQgd2Ugc2V0IFBhZ2VTZXRQcnVuYWJsZSBvbiB0aGlzIHBhZ2UgPyBT ZWUgaGVhcF9pbnNlcnQoKQpAQCAtMjU2NSw2ICsyNTc3LDEyIEBAIGhlYXBfbXVsdGlfaW5zZXJ0 KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQgbnR1cGxlcywK IAkJCXhscmVjLT5mbGFncyA9IDA7CiAJCQlpZiAoYWxsX3Zpc2libGVfY2xlYXJlZCkKIAkJCQl4 bHJlYy0+ZmxhZ3MgPSBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQ7CisKKwkJCS8qCisJ CQkgKiBXZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IGluY2x1ZGluZyBhIGNvbmZsaWN0IHhp ZCBpbiB0aGUKKwkJCSAqIFdBTCByZWNvcmQgYXMgSEVBUF9JTlNFUlRfRlJPWkVOIGludGVudGlv bmFsbHkgdmlvbGF0ZXMKKwkJCSAqIHZpc2liaWxpdHkgcnVsZXMuCisJCQkgKi8KIAkJCWlmIChh bGxfZnJvemVuX3NldCkKIAkJCQl4bHJlYy0+ZmxhZ3MgPSBYTEhfSU5TRVJUX0FMTF9GUk9aRU5f U0VUOwogCkBAIC0yNjI3LDcgKzI2NDUsMTAgQEAgaGVhcF9tdWx0aV9pbnNlcnQoUmVsYXRpb24g cmVsYXRpb24sIFR1cGxlVGFibGVTbG90ICoqc2xvdHMsIGludCBudHVwbGVzLAogCiAJCQlYTG9n QmVnaW5JbnNlcnQoKTsKIAkJCVhMb2dSZWdpc3RlckRhdGEoeGxyZWMsIHR1cGxlZGF0YSAtIHNj cmF0Y2guZGF0YSk7CisKIAkJCVhMb2dSZWdpc3RlckJ1ZmZlcigwLCBidWZmZXIsIFJFR0JVRl9T VEFOREFSRCB8IGJ1ZmZsYWdzKTsKKwkJCWlmIChhbGxfZnJvemVuX3NldCkKKwkJCQlYTG9nUmVn aXN0ZXJCdWZmZXIoMSwgdm1idWZmZXIsIDApOwogCiAJCQlYTG9nUmVnaXN0ZXJCdWZEYXRhKDAs IHR1cGxlZGF0YSwgdG90YWxkYXRhbGVuKTsKIApAQCAtMjYzNywyOSArMjY1OCwxNCBAQCBoZWFw X211bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNsb3QgKipzbG90cywg aW50IG50dXBsZXMsCiAJCQlyZWNwdHIgPSBYTG9nSW5zZXJ0KFJNX0hFQVAyX0lELCBpbmZvKTsK IAogCQkJUGFnZVNldExTTihwYWdlLCByZWNwdHIpOworCQkJaWYgKGFsbF9mcm96ZW5fc2V0KQor CQkJCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlciksIHJlY3B0cik7CiAJCX0KIAog CQlFTkRfQ1JJVF9TRUNUSU9OKCk7CiAKLQkJLyoKLQkJICogSWYgd2UndmUgZnJvemVuIGV2ZXJ5 dGhpbmcgb24gdGhlIHBhZ2UsIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eW1hcC4KLQkJICogV2UncmUg YWxyZWFkeSBob2xkaW5nIHBpbiBvbiB0aGUgdm1idWZmZXIuCi0JCSAqLwogCQlpZiAoYWxsX2Zy b3plbl9zZXQpCi0JCXsKLQkJCUFzc2VydChQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKTsKLQkJCUFz c2VydCh2aXNpYmlsaXR5bWFwX3Bpbl9vayhCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpLCB2 bWJ1ZmZlcikpOwotCi0JCQkvKgotCQkJICogSXQncyBmaW5lIHRvIHVzZSBJbnZhbGlkVHJhbnNh Y3Rpb25JZCBoZXJlIC0gdGhpcyBpcyBvbmx5IHVzZWQKLQkJCSAqIHdoZW4gSEVBUF9JTlNFUlRf RlJPWkVOIGlzIHNwZWNpZmllZCwgd2hpY2ggaW50ZW50aW9uYWxseQotCQkJICogdmlvbGF0ZXMg dmlzaWJpbGl0eSBydWxlcy4KLQkJCSAqLwotCQkJdmlzaWJpbGl0eW1hcF9zZXQocmVsYXRpb24s IEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZlciksIGJ1ZmZlciwKLQkJCQkJCQkgIEludmFsaWRY TG9nUmVjUHRyLCB2bWJ1ZmZlciwKLQkJCQkJCQkgIEludmFsaWRUcmFuc2FjdGlvbklkLAotCQkJ CQkJCSAgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pF Tik7Ci0JCX0KKwkJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX1VOTE9DSyk7CiAK IAkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZmZXIpOwogCQluZG9uZSArPSBudGhpc3BhZ2U7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCA2OWUyMDAzYTc2Zi4uMGM5MDJj ODc2ODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNTUyLDYgKzU1 Miw3IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJ aW50CQkJaTsKIAlib29sCQlpc2luaXQgPSAoWExvZ1JlY0dldEluZm8ocmVjb3JkKSAmIFhMT0df SEVBUF9JTklUX1BBR0UpICE9IDA7CiAJWExvZ1JlZG9BY3Rpb24gYWN0aW9uOworCUJ1ZmZlcgkJ dm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOwogCiAJLyoKIAkgKiBJbnNlcnRpb24gZG9lc24ndCBv dmVyd3JpdGUgTVZDQyBkYXRhLCBzbyBubyBjb25mbGljdCBwcm9jZXNzaW5nIGlzCkBAIC01NzIs MTEgKzU3MywxMSBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVj b3JkKQogCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQp CiAJewogCQlSZWxhdGlvbglyZWxuID0gQ3JlYXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3Ip OwotCQlCdWZmZXIJCXZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIAogCQl2aXNpYmlsaXR5bWFw X3BpbihyZWxuLCBibGtubywgJnZtYnVmZmVyKTsKIAkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWxu LCBibGtubywgdm1idWZmZXIsIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CiAJCVJlbGVhc2VC dWZmZXIodm1idWZmZXIpOworCQl2bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CiAJCUZyZWVGYWtl UmVsY2FjaGVFbnRyeShyZWxuKTsKIAl9CiAKQEAgLTY2Myw2ICs2NjQsNDIgQEAgaGVhcF94bG9n X211bHRpX2luc2VydChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAlpZiAoQnVmZmVySXNWYWxp ZChidWZmZXIpKQogCQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7CiAKKwlidWZmZXIgPSBJ bnZhbGlkQnVmZmVyOworCisJLyoKKwkgKiBOb3cgcmVhZCBhbmQgdXBkYXRlIHRoZSBWTSBibG9j ay4gRXZlbiBpZiB3ZSBza2lwcGVkIHVwZGF0aW5nIHRoZSBoZWFwCisJICogcGFnZSBkdWUgdG8g dGhlIGZpbGUgYmVpbmcgZHJvcHBlZCBvciB0cnVuY2F0ZWQgbGF0ZXIgaW4gcmVjb3ZlcnksIGl0 J3MKKwkgKiBzdGlsbCBzYWZlIHRvIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAuICBBbnkgV0FM IHJlY29yZCB0aGF0IGNsZWFycworCSAqIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQgZG9lcyBzbyBi ZWZvcmUgY2hlY2tpbmcgdGhlIHBhZ2UgTFNOLCBzbyBhbnkKKwkgKiBiaXRzIHRoYXQgbmVlZCB0 byBiZSBjbGVhcmVkIHdpbGwgc3RpbGwgYmUgY2xlYXJlZC4KKwkgKgorCSAqIEl0IGlzIG9ubHkg b2theSB0byBzZXQgdGhlIFZNIGJpdHMgd2l0aG91dCBob2xkaW5nIHRoZSBoZWFwIHBhZ2UgbG9j aworCSAqIGJlY2F1c2Ugd2UgY2FuIGV4cGVjdCBubyBvdGhlciB3cml0ZXJzIG9mIHRoaXMgcGFn ZS4KKwkgKi8KKwlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9BTExfRlJPWkVOX1NFVCAm JgorCQlYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZChyZWNvcmQsIDEsIFJCTV9aRVJPX09O X0VSUk9SLCBmYWxzZSwKKwkJCQkJCQkJCSAgJnZtYnVmZmVyKSA9PSBCTEtfTkVFRFNfUkVETykK Kwl7CisJCVJlbGF0aW9uCXJlbG4gPSBDcmVhdGVGYWtlUmVsY2FjaGVFbnRyeShybG9jYXRvcik7 CisKKwkJQXNzZXJ0KHZpc2liaWxpdHltYXBfcGluX29rKGJsa25vLCB2bWJ1ZmZlcikpOworCQl2 aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUocmVsbiwgYmxrbm8sCisJCQkJCQkJCSB2bWJ1ZmZlciwK KwkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJCQkgVklTSUJJTElU WU1BUF9BTExfRlJPWkVOKTsKKworCQkvKgorCQkgKiBJdCBpcyBub3QgcG9zc2libGUgdGhhdCB0 aGUgVk0gd2FzIGFscmVhZHkgc2V0IGZvciB0aGlzIGhlYXAgcGFnZSwKKwkJICogc28gdGhlIHZt YnVmZmVyIG11c3QgaGF2ZSBiZWVuIG1vZGlmaWVkIGFuZCBtYXJrZWQgZGlydHkuCisJCSAqLwor CQlBc3NlcnQoQnVmZmVySXNEaXJ0eSh2bWJ1ZmZlcikpOworCQlQYWdlU2V0TFNOKEJ1ZmZlckdl dFBhZ2Uodm1idWZmZXIpLCBsc24pOworCQlGcmVlRmFrZVJlbGNhY2hlRW50cnkocmVsbik7CisJ fQorCisJaWYgKEJ1ZmZlcklzVmFsaWQodm1idWZmZXIpKQorCQlVbmxvY2tSZWxlYXNlQnVmZmVy KHZtYnVmZmVyKTsKKwogCS8qCiAJICogSWYgdGhlIHBhZ2UgaXMgcnVubmluZyBsb3cgb24gZnJl ZSBzcGFjZSwgdXBkYXRlIHRoZSBGU00gYXMgd2VsbC4KIAkgKiBBcmJpdHJhcmlseSwgb3VyIGRl ZmluaXRpb24gb2YgImxvdyIgaXMgbGVzcyB0aGFuIDIwJS4gV2UgY2FuJ3QgZG8gbXVjaApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4IDczMDZjMTZmMDVjLi42NGRm ZjdhMDAyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1h cC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwpAQCAtMTQs NyArMTQsOCBAQAogICoJCXZpc2liaWxpdHltYXBfY2xlYXIgIC0gY2xlYXIgYml0cyBmb3Igb25l IHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkgbWFwCiAgKgkJdmlzaWJpbGl0eW1hcF9waW4JIC0gcGlu IGEgbWFwIHBhZ2UgZm9yIHNldHRpbmcgYSBiaXQKICAqCQl2aXNpYmlsaXR5bWFwX3Bpbl9vayAt IGNoZWNrIHdoZXRoZXIgY29ycmVjdCBtYXAgcGFnZSBpcyBhbHJlYWR5IHBpbm5lZAotICoJCXZp c2liaWxpdHltYXBfc2V0CSAtIHNldCBhIGJpdCBpbiBhIHByZXZpb3VzbHkgcGlubmVkIHBhZ2UK KyAqCQl2aXNpYmlsaXR5bWFwX3NldAkgLSBzZXQgYSBiaXQgaW4gYSBwcmV2aW91c2x5IHBpbm5l ZCBwYWdlIGFuZCBsb2cKKyAqICAgICAgdmlzaWJpbGl0eW1hcF9zZXRfdm1ieXRlIC0gc2V0IGEg Yml0IGluIGEgcGlubmVkIHBhZ2UKICAqCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMgLSBnZXQg c3RhdHVzIG9mIGJpdHMKICAqCQl2aXNpYmlsaXR5bWFwX2NvdW50ICAtIGNvdW50IG51bWJlciBv ZiBiaXRzIHNldCBpbiB2aXNpYmlsaXR5IG1hcAogICoJCXZpc2liaWxpdHltYXBfcHJlcGFyZV90 cnVuY2F0ZSAtCkBAIC0zMjEsNiArMzIyLDcwIEBAIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9u IHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIGhlYXBCdWYsCiAJcmV0dXJuIHN0YXR1 czsKIH0KIAorLyoKKyAqIFNldCBmbGFncyBpbiB0aGUgVk0gYmxvY2sgY29udGFpbmVkIGluIHRo ZSBwYXNzZWQgaW4gdm1CdWYuCisgKgorICogVGhpcyBmdW5jdGlvbiBpcyBmb3IgY2FsbGVycyB3 aGljaCBpbmNsdWRlIHRoZSBWTSBjaGFuZ2VzIGluIHRoZSBzYW1lIFdBTAorICogcmVjb3JkIGFz IHRoZSBtb2RpZmljYXRpb25zIG9mIHRoZSBoZWFwIHBhZ2Ugd2hpY2ggcmVuZGVyZWQgaXQgYWxs LXZpc2libGUuCisgKiBDYWxsZXJzIHNlcGFyYXRlbHkgbG9nZ2luZyB0aGUgVk0gY2hhbmdlcyBz aG91bGQgaW52b2tlIHZpc2liaWxpdHltYXBfc2V0KCkKKyAqIGluc3RlYWQuCisgKgorICogQ2Fs bGVyIG11c3QgaGF2ZSBwaW5uZWQgYW5kIGV4Y2x1c2l2ZSBsb2NrZWQgdGhlIGNvcnJlY3QgYmxv Y2sgb2YgdGhlIFZNIGluCisgKiB2bUJ1Zi4gVGhpcyBibG9jayBzaG91bGQgY29udGFpbiB0aGUg Vk0gYml0cyBmb3IgdGhlIGdpdmVuIGhlYXBCbGsuCisgKgorICogRHVyaW5nIG5vcm1hbCBvcGVy YXRpb24gKGkuZS4gbm90IHJlY292ZXJ5KSwgdGhpcyBzaG91bGQgYmUgY2FsbGVkIGluIGEKKyAq IGNyaXRpY2FsIHNlY3Rpb24gd2hpY2ggYWxzbyBtYWtlcyBhbnkgbmVjZXNzYXJ5IGNoYW5nZXMg dG8gdGhlIGhlYXAgcGFnZQorICogYW5kLCBpZiByZWxldmFudCwgZW1pdHMgV0FMLgorICoKKyAq IENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgV0FMIGxvZ2dpbmcgdGhlIGNoYW5nZXMgdG8gdGhl IFZNIGJ1ZmZlciBhbmQgZm9yCisgKiBtYWtpbmcgYW55IGNoYW5nZXMgbmVlZGVkIHRvIHRoZSBh c3NvY2lhdGVkIGhlYXAgcGFnZS4gVGhpcyBpbmNsdWRlcworICogbWFpbnRhaW5pbmcgYW55IGlu dmFyaWFudHMgc3VjaCBhcyBlbnN1cmluZyB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgaGVhcEJsawor ICogaXMgcGlubmVkIGFuZCBleGNsdXNpdmUgbG9ja2VkLgorICovCit1aW50OAordmlzaWJpbGl0 eW1hcF9zZXRfdm1ieXRlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywKKwkJCQkJ CSBCdWZmZXIgdm1CdWYsIHVpbnQ4IGZsYWdzKQoreworCUJsb2NrTnVtYmVyIG1hcEJsb2NrID0g SEVBUEJMS19UT19NQVBCTE9DSyhoZWFwQmxrKTsKKwl1aW50MzIJCW1hcEJ5dGUgPSBIRUFQQkxL X1RPX01BUEJZVEUoaGVhcEJsayk7CisJdWludDgJCW1hcE9mZnNldCA9IEhFQVBCTEtfVE9fT0ZG U0VUKGhlYXBCbGspOworCVBhZ2UJCXBhZ2U7CisJdWludDgJICAgKm1hcDsKKwl1aW50OAkJc3Rh dHVzOworCisjaWZkZWYgVFJBQ0VfVklTSUJJTElUWU1BUAorCWVsb2coREVCVUcxLCAidm1fc2V0 IGZsYWdzIDB4JTAyWCBmb3IgJXMgJWQiLAorCQkgZmxhZ3MsIFJlbGF0aW9uR2V0UmVsYXRpb25O YW1lKHJlbCksIGhlYXBCbGspOworI2VuZGlmCisKKwkvKiBDYWxsIGluIHNhbWUgY3JpdGljYWwg c2VjdGlvbiB3aGVyZSBXQUwgaXMgZW1pdHRlZC4gKi8KKwlBc3NlcnQoSW5SZWNvdmVyeSB8fCBD cml0U2VjdGlvbkNvdW50ID4gMCk7CisKKwkvKiBGbGFncyBzaG91bGQgYmUgdmFsaWQuIEFsc28g bmV2ZXIgY2xlYXIgYml0cyB3aXRoIHRoaXMgZnVuY3Rpb24gKi8KKwlBc3NlcnQoKGZsYWdzICYg VklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKSA9PSBmbGFncyk7CisKKwkvKiBNdXN0IG5ldmVyIHNl dCBhbGxfZnJvemVuIGJpdCB3aXRob3V0IGFsc28gc2V0dGluZyBhbGxfdmlzaWJsZSBiaXQgKi8K KwlBc3NlcnQoZmxhZ3MgIT0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKKworCS8qIENoZWNr IHRoYXQgd2UgaGF2ZSB0aGUgcmlnaHQgVk0gcGFnZSBwaW5uZWQgKi8KKwlpZiAoIUJ1ZmZlcklz VmFsaWQodm1CdWYpIHx8IEJ1ZmZlckdldEJsb2NrTnVtYmVyKHZtQnVmKSAhPSBtYXBCbG9jaykK KwkJZWxvZyhFUlJPUiwgIndyb25nIFZNIGJ1ZmZlciBwYXNzZWQgdG8gdmlzaWJpbGl0eW1hcF9z ZXQiKTsKKworCUFzc2VydChCdWZmZXJJc0V4Y2x1c2l2ZUxvY2tlZCh2bUJ1ZikpOworCisJcGFn ZSA9IEJ1ZmZlckdldFBhZ2Uodm1CdWYpOworCW1hcCA9ICh1aW50OCAqKSBQYWdlR2V0Q29udGVu dHMocGFnZSk7CisKKwlzdGF0dXMgPSAobWFwW21hcEJ5dGVdID4+IG1hcE9mZnNldCkgJiBWSVNJ QklMSVRZTUFQX1ZBTElEX0JJVFM7CisJaWYgKGZsYWdzICE9IHN0YXR1cykKKwl7CisJCW1hcFtt YXBCeXRlXSB8PSAoZmxhZ3MgPDwgbWFwT2Zmc2V0KTsKKwkJTWFya0J1ZmZlckRpcnR5KHZtQnVm KTsKKwl9CisKKwlyZXR1cm4gc3RhdHVzOworfQorCiAvKgogICoJdmlzaWJpbGl0eW1hcF9nZXRf c3RhdHVzIC0gZ2V0IHN0YXR1cyBvZiBiaXRzCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mv aGVhcGRlc2MuYwppbmRleCA4MmI2MmM5NWRlNS4uYjQ4ZDdkYzFkMjQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCkBAIC0xNiw2ICsxNiw3IEBACiAKICNpbmNsdWRlICJh Y2Nlc3MvaGVhcGFtX3hsb2cuaCIKICNpbmNsdWRlICJhY2Nlc3Mvcm1ncmRlc2NfdXRpbHMuaCIK KyNpbmNsdWRlICJhY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCIKICNpbmNsdWRlICJzdG9yYWdl L3N0YW5kYnlkZWZzLmgiCiAKIC8qCkBAIC0zNTQsNiArMzU1LDEwIEBAIGhlYXAyX2Rlc2MoU3Ry aW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlhcHBlbmRTdHJpbmdJbmZv KGJ1ZiwgIm50dXBsZXM6ICVkLCBmbGFnczogMHglMDJYIiwgeGxyZWMtPm50dXBsZXMsCiAJCQkJ CQkgeGxyZWMtPmZsYWdzKTsKIAorCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9BTExf RlJPWkVOX1NFVCkKKwkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiLCB2bV9mbGFnczogMHglMDJY IiwKKwkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8IFZJU0lCSUxJVFlNQVBfQUxM X0ZST1pFTik7CisKIAkJaWYgKFhMb2dSZWNIYXNCbG9ja0RhdGEocmVjb3JkLCAwKSAmJiAhaXNp bml0KQogCQl7CiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiwgb2Zmc2V0czoiKTsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmggYi9zcmMvaW5j bHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oCmluZGV4IGJlMjFjNmRkMWEzLi45Nzc1NjZmNmI5 OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oCkBAIC0zNyw2ICszNyw4IEBAIGV4dGVy biB1aW50OCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsCiAJCQkJCQkJICAgQnVmZmVy IHZtQnVmLAogCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwKIAkJCQkJCQkgICB1 aW50OCBmbGFncyk7CitleHRlcm4gdWludDggdmlzaWJpbGl0eW1hcF9zZXRfdm1ieXRlKFJlbGF0 aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywKKwkJCQkJCQkJCSAgQnVmZmVyIHZtQnVmLCB1 aW50OCBmbGFncyk7CiBleHRlcm4gdWludDggdmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzKFJlbGF0 aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyICp2bWJ1Zik7CiBleHRlcm4gdm9p ZCB2aXNpYmlsaXR5bWFwX2NvdW50KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgKmFsbF92aXNp YmxlLCBCbG9ja051bWJlciAqYWxsX2Zyb3plbik7CiBleHRlcm4gQmxvY2tOdW1iZXIgdmlzaWJp bGl0eW1hcF9wcmVwYXJlX3RydW5jYXRlKFJlbGF0aW9uIHJlbCwKLS0gCjIuNDMuMAoK --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0014-Remove-xl_heap_visible-entirely.patch" Content-Disposition: attachment; filename="v8-0014-Remove-xl_heap_visible-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7bv13 RnJvbSA5MWQ2ZTUyNGE0NmM0ZDE5ZGZlODJjMzY4ZWU5OGE5NTA3NTNjZmI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjMwOjQyIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAxNC8yMl0gUmVtb3ZlIHhsX2hlYXBfdmlzaWJsZSBlbnRpcmVseQoKVGhlcmUgYXJl IG5vdyBubyB1c2VycyBvZiB0aGlzLCBzbyBlbGltaW5hdGUgaXQgZW50aXJlbHkuCi0tLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMgICAgICB8ICAgMyArLQogc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgICB8ICA1NCArLS0tLS0tLQogc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYyAgICB8IDE1NCArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICB8ICAxMCArLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jICB8IDEwOSArLS0tLS0tLS0tLS0tLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYyAgIHwgIDEwIC0tCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIHwgICAxIC0KIHNyYy9iYWNrZW5k L3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAgICAgfCAgMTIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW1feGxvZy5oICAgICAgICAgfCAgMjAgLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3Mvdmlz aWJpbGl0eW1hcC5oICAgICAgIHwgIDExICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0 eW1hcGRlZnMuaCAgIHwgICA5IC0tCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAg ICAgICAgIHwgICAxIC0KIDEzIGZpbGVzIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDM2OCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1h c2suYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vYnVmbWFzay5jCmluZGV4IGJiMjYwY2Zm YTY4Li4xZmZmMDEzODNiMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9i dWZtYXNrLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKQEAgLTU2 LDggKzU2LDcgQEAgbWFza19wYWdlX2hpbnRfYml0cyhQYWdlIHBhZ2UpCiAKIAkvKgogCSAqIER1 cmluZyByZXBsYXksIGlmIHRoZSBwYWdlIExTTiBoYXMgYWR2YW5jZWQgcGFzdCBvdXIgWExPRyBy ZWNvcmQncyBMU04sCi0JICogd2UgZG9uJ3QgbWFyayB0aGUgcGFnZSBhbGwtdmlzaWJsZS4gU2Vl IGhlYXBfeGxvZ192aXNpYmxlKCkgZm9yCi0JICogZGV0YWlscy4KKwkgKiB3ZSBkb24ndCBtYXJr IHRoZSBwYWdlIGFsbC12aXNpYmxlLgogCSAqLwogCVBhZ2VDbGVhckFsbFZpc2libGUocGFnZSk7 CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IDAzNTI4MGRjMzBhLi44OGY4ODBjZmQx NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl ICJhY2Nlc3MvdmFsaWQuaCIKICNpbmNsdWRlICJhY2Nlc3MvdmlzaWJpbGl0eW1hcC5oIgogI2lu Y2x1ZGUgImFjY2Vzcy94bG9naW5zZXJ0LmgiCisjaW5jbHVkZSAiYWNjZXNzL3hsb2d1dGlscy5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2RhdGFiYXNlX2QuaCIKICNpbmNsdWRlICJjb21tYW5kcy92YWN1dW0uaCIKQEAgLTI1MjQsMTEg KzI1MjUsMTEgQEAgaGVhcF9tdWx0aV9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIFR1cGxlVGFi bGVTbG90ICoqc2xvdHMsIGludCBudHVwbGVzLAogCQkJQXNzZXJ0KHZpc2liaWxpdHltYXBfcGlu X29rKEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZlciksIHZtYnVmZmVyKSk7CiAJCQlQYWdlU2V0 QWxsVmlzaWJsZShwYWdlKTsKIAkJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX0VY Q0xVU0lWRSk7Ci0JCQl2aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUocmVsYXRpb24sCi0JCQkJCQkJ CQkgQnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVmZmVyKSwKLQkJCQkJCQkJCSB2bWJ1ZmZlciwKLQkJ CQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKLQkJCQkJCQkJCSBWSVNJQklMSVRZ TUFQX0FMTF9GUk9aRU4pOworCQkJdmlzaWJpbGl0eW1hcF9zZXQocmVsYXRpb24sCisJCQkJCQkJ ICBCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpLAorCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJ CQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBf QUxMX0ZST1pFTik7CiAJCX0KIAogCQkvKgpAQCAtODc5Niw0OSArODc5Nyw2IEBAIGJvdHRvbXVw X3NvcnRfYW5kX3NocmluayhUTV9JbmRleERlbGV0ZU9wICpkZWxzdGF0ZSkKIAlyZXR1cm4gbmJs b2Nrc2Zhdm9yYWJsZTsKIH0KIAotLyoKLSAqIFBlcmZvcm0gWExvZ0luc2VydCBmb3IgYSBoZWFw LXZpc2libGUgb3BlcmF0aW9uLiAgJ2Jsb2NrJyBpcyB0aGUgYmxvY2sKLSAqIGJlaW5nIG1hcmtl ZCBhbGwtdmlzaWJsZSwgYW5kIHZtX2J1ZmZlciBpcyB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhl Ci0gKiBjb3JyZXNwb25kaW5nIHZpc2liaWxpdHkgbWFwIGJsb2NrLiAgQm90aCBzaG91bGQgaGF2 ZSBhbHJlYWR5IGJlZW4gbW9kaWZpZWQKLSAqIGFuZCBkaXJ0aWVkLgotICoKLSAqIHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uIGNvbWVzIGZyb20gdGhlIGxhcmdlc3QgeG1pbiBvbiB0aGUgcGFnZSBi ZWluZwotICogbWFya2VkIGFsbC12aXNpYmxlLiAgUkVETyByb3V0aW5lIHVzZXMgaXQgdG8gZ2Vu ZXJhdGUgcmVjb3ZlcnkgY29uZmxpY3RzLgotICoKLSAqIElmIGNoZWNrc3VtcyBvciB3YWxfbG9n X2hpbnRzIGFyZSBlbmFibGVkLCB3ZSBtYXkgYWxzbyBnZW5lcmF0ZSBhIGZ1bGwtcGFnZQotICog aW1hZ2Ugb2YgaGVhcF9idWZmZXIuIE90aGVyd2lzZSwgd2Ugb3B0aW1pemUgYXdheSB0aGUgRlBJ IChieSBzcGVjaWZ5aW5nCi0gKiBSRUdCVUZfTk9fSU1BR0UgZm9yIHRoZSBoZWFwIGJ1ZmZlciks IGluIHdoaWNoIGNhc2UgdGhlIGNhbGxlciBzaG91bGQgKm5vdCoKLSAqIHVwZGF0ZSB0aGUgaGVh cCBwYWdlJ3MgTFNOLgotICovCi1YTG9nUmVjUHRyCi1sb2dfaGVhcF92aXNpYmxlKFJlbGF0aW9u IHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVyLAotCQkJCSBUcmFuc2Fj dGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLCB1aW50OCB2bWZsYWdzKQotewotCXhsX2hl YXBfdmlzaWJsZSB4bHJlYzsKLQlYTG9nUmVjUHRyCXJlY3B0cjsKLQl1aW50OAkJZmxhZ3M7Ci0K LQlBc3NlcnQoQnVmZmVySXNWYWxpZChoZWFwX2J1ZmZlcikpOwotCUFzc2VydChCdWZmZXJJc1Zh bGlkKHZtX2J1ZmZlcikpOwotCi0JeGxyZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBzbmFw c2hvdENvbmZsaWN0SG9yaXpvbjsKLQl4bHJlYy5mbGFncyA9IHZtZmxhZ3M7Ci0JaWYgKFJlbGF0 aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKSkKLQkJeGxyZWMuZmxhZ3MgfD0g VklTSUJJTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVMOwotCVhMb2dCZWdpbkluc2VydCgpOwotCVhM b2dSZWdpc3RlckRhdGEoJnhscmVjLCBTaXplT2ZIZWFwVmlzaWJsZSk7Ci0KLQlYTG9nUmVnaXN0 ZXJCdWZmZXIoMCwgdm1fYnVmZmVyLCAwKTsKLQotCWZsYWdzID0gUkVHQlVGX1NUQU5EQVJEOwot CWlmICghWExvZ0hpbnRCaXRJc05lZWRlZCgpKQotCQlmbGFncyB8PSBSRUdCVUZfTk9fSU1BR0U7 Ci0JWExvZ1JlZ2lzdGVyQnVmZmVyKDEsIGhlYXBfYnVmZmVyLCBmbGFncyk7Ci0KLQlyZWNwdHIg PSBYTG9nSW5zZXJ0KFJNX0hFQVAyX0lELCBYTE9HX0hFQVAyX1ZJU0lCTEUpOwotCi0JcmV0dXJu IHJlY3B0cjsKLX0KIAogLyoKICAqIFBlcmZvcm0gWExvZ0luc2VydCBmb3IgYSBoZWFwLXVwZGF0 ZSBvcGVyYXRpb24uICBDYWxsZXIgbXVzdCBhbHJlYWR5CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtX3hsb2cuYwppbmRleCBlNjhlNjFmZWFkZS4uODNhNWYzZGJjMzQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtODMsMTAgKzgzLDYgQEAgaGVhcF94bG9nX3BydW5l X2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJbWVtY3B5KCZ2bWZsYWdzLCBtYWlu ZGF0YXB0ciwgc2l6ZW9mKHVpbnQ4KSk7CiAJCW1haW5kYXRhcHRyICs9IHNpemVvZih1aW50OCk7 CiAKLQkJLyoKLQkJICogV2UgZG9uJ3Qgc2V0IFZJU0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JF TCBpbiB0aGUgY29tYmluZWQgcmVjb3JkCi0JCSAqIGJlY2F1c2Ugd2UgYWxyZWFkeSBoYXZlIFhM SFBfSVNfQ0FUQUxPR19SRUwuCi0JCSAqLwogCQlBc3NlcnQoKHZtZmxhZ3MgJiBWSVNJQklMSVRZ TUFQX1ZBTElEX0JJVFMpID09IHZtZmxhZ3MpOwogCQkvKiBNdXN0IG5ldmVyIHNldCBhbGxfZnJv emVuIGJpdCB3aXRob3V0IGFsc28gc2V0dGluZyBhbGxfdmlzaWJsZSBiaXQgKi8KIAkJQXNzZXJ0 KHZtZmxhZ3MgIT0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKQEAgLTI2OCw3ICsyNjQsNyBA QCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlSZWxh dGlvbglyZWxuID0gQ3JlYXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3IpOwogCiAJCXZpc2li aWxpdHltYXBfcGluKHJlbG4sIGJsa25vLCAmdm1idWZmZXIpOwotCQlvbGRfdm1iaXRzID0gdmlz aWJpbGl0eW1hcF9zZXRfdm1ieXRlKHJlbG4sIGJsa25vLCB2bWJ1ZmZlciwgdm1mbGFncyk7CisJ CW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldChyZWxuLCBibGtubywgdm1idWZmZXIsIHZt ZmxhZ3MpOwogCQkvKiBPbmx5IHNldCBWTSBwYWdlIExTTiBpZiB3ZSBtb2RpZmllZCB0aGUgcGFn ZSAqLwogCQlpZiAob2xkX3ZtYml0cyAhPSB2bWZsYWdzKQogCQkJUGFnZVNldExTTihCdWZmZXJH ZXRQYWdlKHZtYnVmZmVyKSwgbHNuKTsKQEAgLTI3OSwxNDMgKzI3NSw2IEBAIGhlYXBfeGxvZ19w cnVuZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCVVubG9ja1JlbGVhc2VCdWZm ZXIodm1idWZmZXIpOwogfQogCi0vKgotICogUmVwbGF5IFhMT0dfSEVBUDJfVklTSUJMRSByZWNv cmRzLgotICoKLSAqIFRoZSBjcml0aWNhbCBpbnRlZ3JpdHkgcmVxdWlyZW1lbnQgaGVyZSBpcyB0 aGF0IHdlIG11c3QgbmV2ZXIgZW5kIHVwIHdpdGgKLSAqIGEgc2l0dWF0aW9uIHdoZXJlIHRoZSB2 aXNpYmlsaXR5IG1hcCBiaXQgaXMgc2V0LCBhbmQgdGhlIHBhZ2UtbGV2ZWwKLSAqIFBEX0FMTF9W SVNJQkxFIGJpdCBpcyBjbGVhci4gIElmIHRoYXQgd2VyZSB0byBvY2N1ciwgdGhlbiBhIHN1YnNl cXVlbnQKLSAqIHBhZ2UgbW9kaWZpY2F0aW9uIHdvdWxkIGZhaWwgdG8gY2xlYXIgdGhlIHZpc2li aWxpdHkgbWFwIGJpdC4KLSAqLwotc3RhdGljIHZvaWQKLWhlYXBfeGxvZ192aXNpYmxlKFhMb2dS ZWFkZXJTdGF0ZSAqcmVjb3JkKQotewotCVhMb2dSZWNQdHIJbHNuID0gcmVjb3JkLT5FbmRSZWNQ dHI7Ci0JeGxfaGVhcF92aXNpYmxlICp4bHJlYyA9ICh4bF9oZWFwX3Zpc2libGUgKikgWExvZ1Jl Y0dldERhdGEocmVjb3JkKTsKLQlCdWZmZXIJCXZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKLQlC dWZmZXIJCWJ1ZmZlcjsKLQlQYWdlCQlwYWdlOwotCVJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yOwot CUJsb2NrTnVtYmVyIGJsa25vOwotCVhMb2dSZWRvQWN0aW9uIGFjdGlvbjsKLQotCUFzc2VydCgo eGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9YTE9HX1ZBTElEX0JJVFMpID09IHhscmVjLT5m bGFncyk7Ci0KLQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAxLCAmcmxvY2F0b3IsIE5VTEws ICZibGtubyk7Ci0KLQkvKgotCSAqIElmIHRoZXJlIGFyZSBhbnkgSG90IFN0YW5kYnkgdHJhbnNh Y3Rpb25zIHJ1bm5pbmcgdGhhdCBoYXZlIGFuIHhtaW4KLQkgKiBob3Jpem9uIG9sZCBlbm91Z2gg dGhhdCB0aGlzIHBhZ2UgaXNuJ3QgYWxsLXZpc2libGUgZm9yIHRoZW0sIHRoZXkKLQkgKiBtaWdo dCBpbmNvcnJlY3RseSBkZWNpZGUgdGhhdCBhbiBpbmRleC1vbmx5IHNjYW4gY2FuIHNraXAgYSBo ZWFwIGZldGNoLgotCSAqCi0JICogTkI6IEl0IG1pZ2h0IGJlIGJldHRlciB0byB0aHJvdyBzb21l IGtpbmQgb2YgInNvZnQiIGNvbmZsaWN0IGhlcmUgdGhhdAotCSAqIGZvcmNlcyBhbnkgaW5kZXgt b25seSBzY2FuIHRoYXQgaXMgaW4gZmxpZ2h0IHRvIHBlcmZvcm0gaGVhcCBmZXRjaGVzLAotCSAq IHJhdGhlciB0aGFuIGtpbGxpbmcgdGhlIHRyYW5zYWN0aW9uIG91dHJpZ2h0LgotCSAqLwotCWlm IChJbkhvdFN0YW5kYnkpCi0JCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhs cmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKLQkJCQkJCQkJCQkJeGxyZWMtPmZsYWdzICYg VklTSUJJTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVMLAotCQkJCQkJCQkJCQlybG9jYXRvcik7Ci0K LQkvKgotCSAqIFJlYWQgdGhlIGhlYXAgcGFnZSwgaWYgaXQgc3RpbGwgZXhpc3RzLiBJZiB0aGUg aGVhcCBmaWxlIGhhcyBkcm9wcGVkIG9yCi0JICogdHJ1bmNhdGVkIGxhdGVyIGluIHJlY292ZXJ5 LCB3ZSBkb24ndCBuZWVkIHRvIHVwZGF0ZSB0aGUgcGFnZSwgYnV0IHdlJ2QKLQkgKiBiZXR0ZXIg c3RpbGwgdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcC4KLQkgKi8KLQlhY3Rpb24gPSBYTG9nUmVh ZEJ1ZmZlckZvclJlZG8ocmVjb3JkLCAxLCAmYnVmZmVyKTsKLQlpZiAoYWN0aW9uID09IEJMS19O RUVEU19SRURPKQotCXsKLQkJLyoKLQkJICogV2UgZG9uJ3QgYnVtcCB0aGUgTFNOIG9mIHRoZSBo ZWFwIHBhZ2Ugd2hlbiBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5Ci0JCSAqIG1hcCBiaXQgKHVubGVz cyBjaGVja3N1bXMgb3Igd2FsX2hpbnRfYml0cyBpcyBlbmFibGVkLCBpbiB3aGljaAotCQkgKiBj YXNlIHdlIG11c3QpLiBUaGlzIGV4cG9zZXMgdXMgdG8gdG9ybiBwYWdlIGhhemFyZHMsIGJ1dCBz aW5jZQotCQkgKiB3ZSdyZSBub3QgaW5zcGVjdGluZyB0aGUgZXhpc3RpbmcgcGFnZSBjb250ZW50 cyBpbiBhbnkgd2F5LCB3ZQotCQkgKiBkb24ndCBjYXJlLgotCQkgKi8KLQkJcGFnZSA9IEJ1ZmZl ckdldFBhZ2UoYnVmZmVyKTsKLQotCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQotCQlpZiAo WExvZ0hpbnRCaXRJc05lZWRlZCgpKQotCQkJUGFnZVNldExTTihwYWdlLCBsc24pOwotCi0JCU1h cmtCdWZmZXJEaXJ0eShidWZmZXIpOwotCX0KLQllbHNlIGlmIChhY3Rpb24gPT0gQkxLX1JFU1RP UkVEKQotCXsKLQkJLyoKLQkJICogSWYgaGVhcCBibG9jayB3YXMgYmFja2VkIHVwLCB3ZSBhbHJl YWR5IHJlc3RvcmVkIGl0IGFuZCB0aGVyZSdzCi0JCSAqIG5vdGhpbmcgbW9yZSB0byBkby4gKFRo aXMgY2FuIG9ubHkgaGFwcGVuIHdpdGggY2hlY2tzdW1zIG9yCi0JCSAqIHdhbF9sb2dfaGludHMg ZW5hYmxlZC4pCi0JCSAqLwotCX0KLQotCWlmIChCdWZmZXJJc1ZhbGlkKGJ1ZmZlcikpCi0Jewot CQlTaXplCQlzcGFjZSA9IFBhZ2VHZXRGcmVlU3BhY2UoQnVmZmVyR2V0UGFnZShidWZmZXIpKTsK LQotCQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7Ci0KLQkJLyoKLQkJICogU2luY2UgRlNN IGlzIG5vdCBXQUwtbG9nZ2VkIGFuZCBvbmx5IHVwZGF0ZWQgaGV1cmlzdGljYWxseSwgaXQKLQkJ ICogZWFzaWx5IGJlY29tZXMgc3RhbGUgaW4gc3RhbmRieXMuICBJZiB0aGUgc3RhbmRieSBpcyBs YXRlciBwcm9tb3RlZAotCQkgKiBhbmQgcnVucyBWQUNVVU0sIGl0IHdpbGwgc2tpcCB1cGRhdGlu ZyBpbmRpdmlkdWFsIGZyZWUgc3BhY2UKLQkJICogZmlndXJlcyBmb3IgcGFnZXMgdGhhdCBiZWNh bWUgYWxsLXZpc2libGUgKG9yIGFsbC1mcm96ZW4sIGRlcGVuZGluZwotCQkgKiBvbiB0aGUgdmFj dXVtIG1vZGUsKSB3aGljaCBpcyB0cm91Ymxlc29tZSB3aGVuIEZyZWVTcGFjZU1hcFZhY3V1bQot CQkgKiBwcm9wYWdhdGVzIHRvbyBvcHRpbWlzdGljIGZyZWUgc3BhY2UgdmFsdWVzIHRvIHVwcGVy IEZTTSBsYXllcnM7Ci0JCSAqIGxhdGVyIGluc2VydGVycyB0cnkgdG8gdXNlIHN1Y2ggcGFnZXMg b25seSB0byBmaW5kIG91dCB0aGF0IHRoZXkKLQkJICogYXJlIHVudXNhYmxlLiAgVGhpcyBjYW4g Y2F1c2UgbG9uZyBzdGFsbHMgd2hlbiB0aGVyZSBhcmUgbWFueSBzdWNoCi0JCSAqIHBhZ2VzLgot CQkgKgotCQkgKiBGb3Jlc3RhbGwgdGhvc2UgcHJvYmxlbXMgYnkgdXBkYXRpbmcgRlNNJ3MgaWRl YSBhYm91dCBhIHBhZ2UgdGhhdAotCQkgKiBpcyBiZWNvbWluZyBhbGwtdmlzaWJsZSBvciBhbGwt ZnJvemVuLgotCQkgKgotCQkgKiBEbyB0aGlzIHJlZ2FyZGxlc3Mgb2YgYSBmdWxsLXBhZ2UgaW1h Z2UgYmVpbmcgYXBwbGllZCwgc2luY2UgdGhlCi0JCSAqIEZTTSBkYXRhIGlzIG5vdCBpbiB0aGUg cGFnZSBhbnl3YXkuCi0JCSAqLwotCQlpZiAoeGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9W QUxJRF9CSVRTKQotCQkJWExvZ1JlY29yZFBhZ2VXaXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtu bywgc3BhY2UpOwotCX0KLQotCS8qCi0JICogRXZlbiBpZiB3ZSBza2lwcGVkIHRoZSBoZWFwIHBh Z2UgdXBkYXRlIGR1ZSB0byB0aGUgTFNOIGludGVybG9jaywgaXQncwotCSAqIHN0aWxsIHNhZmUg dG8gdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcC4gIEFueSBXQUwgcmVjb3JkIHRoYXQgY2xlYXJz Ci0JICogdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBkb2VzIHNvIGJlZm9yZSBjaGVja2luZyB0aGUg cGFnZSBMU04sIHNvIGFueQotCSAqIGJpdHMgdGhhdCBuZWVkIHRvIGJlIGNsZWFyZWQgd2lsbCBz dGlsbCBiZSBjbGVhcmVkLgotCSAqLwotCWlmIChYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRl ZChyZWNvcmQsIDAsIFJCTV9aRVJPX09OX0VSUk9SLCBmYWxzZSwKLQkJCQkJCQkJCSAgJnZtYnVm ZmVyKSA9PSBCTEtfTkVFRFNfUkVETykKLQl7Ci0JCVBhZ2UJCXZtcGFnZSA9IEJ1ZmZlckdldFBh Z2Uodm1idWZmZXIpOwotCQlSZWxhdGlvbglyZWxuOwotCQl1aW50OAkJdm1iaXRzOwotCi0JCS8q IGluaXRpYWxpemUgdGhlIHBhZ2UgaWYgaXQgd2FzIHJlYWQgYXMgemVyb3MgKi8KLQkJaWYgKFBh Z2VJc05ldyh2bXBhZ2UpKQotCQkJUGFnZUluaXQodm1wYWdlLCBCTENLU1osIDApOwotCi0JCS8q IHJlbW92ZSBWSVNJQklMSVRZTUFQX1hMT0dfKiAqLwotCQl2bWJpdHMgPSB4bHJlYy0+ZmxhZ3Mg JiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFM7Ci0KLQkJLyoKLQkJICogWExvZ1JlYWRCdWZmZXJG b3JSZWRvRXh0ZW5kZWQgbG9ja2VkIHRoZSBidWZmZXIuIEJ1dAotCQkgKiB2aXNpYmlsaXR5bWFw X3NldCB3aWxsIGhhbmRsZSBsb2NraW5nIGl0c2VsZi4KLQkJICovCi0JCUxvY2tCdWZmZXIodm1i dWZmZXIsIEJVRkZFUl9MT0NLX1VOTE9DSyk7Ci0KLQkJcmVsbiA9IENyZWF0ZUZha2VSZWxjYWNo ZUVudHJ5KHJsb2NhdG9yKTsKLQotCQlBc3NlcnQodmlzaWJpbGl0eW1hcF9waW5fb2soYmxrbm8s IHZtYnVmZmVyKSk7Ci0JCXZpc2liaWxpdHltYXBfc2V0KHJlbG4sIGJsa25vLCBJbnZhbGlkQnVm ZmVyLCBsc24sIHZtYnVmZmVyLAotCQkJCQkJICB4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6 b24sIHZtYml0cyk7Ci0KLQkJUmVsZWFzZUJ1ZmZlcih2bWJ1ZmZlcik7Ci0JCUZyZWVGYWtlUmVs Y2FjaGVFbnRyeShyZWxuKTsKLQl9Ci0JZWxzZSBpZiAoQnVmZmVySXNWYWxpZCh2bWJ1ZmZlcikp Ci0JCVVubG9ja1JlbGVhc2VCdWZmZXIodm1idWZmZXIpOwotfQotCiAvKgogICogR2l2ZW4gYW4g ImluZm9iaXRzIiBmaWVsZCBmcm9tIGFuIFhMb2cgcmVjb3JkLCBzZXQgdGhlIGNvcnJlY3QgYml0 cyBpbiB0aGUKICAqIGdpdmVuIGluZm9tYXNrIGFuZCBpbmZvbWFzazIgZm9yIHRoZSB0dXBsZSB0 b3VjaGVkIGJ5IHRoZSByZWNvcmQuCkBAIC03OTIsMTYgKzY1MSwxNiBAQCBoZWFwX3hsb2dfbXVs dGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlSZWxhdGlvbglyZWxuID0gQ3Jl YXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3IpOwogCiAJCUFzc2VydCh2aXNpYmlsaXR5bWFw X3Bpbl9vayhibGtubywgdm1idWZmZXIpKTsKLQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1ieXRlKHJl bG4sIGJsa25vLAotCQkJCQkJCQkgdm1idWZmZXIsCi0JCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FM TF9WSVNJQkxFIHwKLQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7CiAKIAkJLyoK IAkJICogSXQgaXMgbm90IHBvc3NpYmxlIHRoYXQgdGhlIFZNIHdhcyBhbHJlYWR5IHNldCBmb3Ig dGhpcyBoZWFwIHBhZ2UsCiAJCSAqIHNvIHRoZSB2bWJ1ZmZlciBtdXN0IGhhdmUgYmVlbiBtb2Rp ZmllZCBhbmQgbWFya2VkIGRpcnR5LgogCQkgKi8KIAkJQXNzZXJ0KEJ1ZmZlcklzRGlydHkodm1i dWZmZXIpKTsKKwkJdmlzaWJpbGl0eW1hcF9zZXQocmVsbiwgYmxrbm8sCisJCQkJCQkgIHZtYnVm ZmVyLAorCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJCSAgVklTSUJJ TElUWU1BUF9BTExfRlJPWkVOKTsKIAkJUGFnZVNldExTTihCdWZmZXJHZXRQYWdlKHZtYnVmZmVy KSwgbHNuKTsKIAkJRnJlZUZha2VSZWxjYWNoZUVudHJ5KHJlbG4pOwogCX0KQEAgLTEzODEsOSAr MTI0MCw2IEBAIGhlYXAyX3JlZG8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCWNhc2UgWExP R19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUDoKIAkJCWhlYXBfeGxvZ19wcnVuZV9mcmVlemUo cmVjb3JkKTsKIAkJCWJyZWFrOwotCQljYXNlIFhMT0dfSEVBUDJfVklTSUJMRToKLQkJCWhlYXBf eGxvZ192aXNpYmxlKHJlY29yZCk7Ci0JCQlicmVhazsKIAkJY2FzZSBYTE9HX0hFQVAyX01VTFRJ X0lOU0VSVDoKIAkJCWhlYXBfeGxvZ19tdWx0aV9pbnNlcnQocmVjb3JkKTsKIAkJCWJyZWFrOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCBlZjliYjBjMjczYS4uZGU2NTYwODc5 NDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC05NzksOCArOTc5LDggQEAg aGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZm ZXIsCiAJCWlmIChkb19zZXRfdm0pCiAJCXsKIAkJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZF Ul9MT0NLX0VYQ0xVU0lWRSk7Ci0JCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXRfdm1i eXRlKHJlbGF0aW9uLCBibG9ja25vLAotCQkJCQkJCQkJCQkJICB2bWJ1ZmZlciwgdm1mbGFncyk7 CisJCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXQocmVsYXRpb24sIGJsb2Nrbm8sCisJ CQkJCQkJCQkJICAgdm1idWZmZXIsIHZtZmxhZ3MpOwogCiAJCQlpZiAob2xkX3ZtYml0cyA9PSB2 bWZsYWdzKQogCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDUxMjlj MTNmZWU5Li42NmNlMzBkZGYwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpA QCAtMTg4Niw4ICsxODg2LDggQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2 YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQkJTWFya0J1ZmZlckRpcnR5 KGJ1Zik7CiAKIAkJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSk7 Ci0JCQl2aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUodmFjcmVsLT5yZWwsIGJsa25vLAotCQkJCQkJ CQkJIHZtYnVmZmVyLCBuZXdfdm1iaXRzKTsKKwkJCXZpc2liaWxpdHltYXBfc2V0KHZhY3JlbC0+ cmVsLCBibGtubywKKwkJCQkJCQkgIHZtYnVmZmVyLCBuZXdfdm1iaXRzKTsKIAogCQkJaWYgKFJl bGF0aW9uTmVlZHNXQUwodmFjcmVsLT5yZWwpKQogCQkJewpAQCAtMjc1Myw5ICsyNzUzLDkgQEAg bGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxr bm8sIEJ1ZmZlciBidWZmZXIsCiAJCXNldF9wZF9hbGxfdmlzID0gdHJ1ZTsKIAkJTG9ja0J1ZmZl cih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfRVhDTFVTSVZFKTsKIAkJUGFnZVNldEFsbFZpc2libGUo cGFnZSk7Ci0JCXZpc2liaWxpdHltYXBfc2V0X3ZtYnl0ZSh2YWNyZWwtPnJlbCwKLQkJCQkJCQkJ IGJsa25vLAotCQkJCQkJCQkgdm1idWZmZXIsIHZtZmxhZ3MpOworCQl2aXNpYmlsaXR5bWFwX3Nl dCh2YWNyZWwtPnJlbCwKKwkJCQkJCSAgYmxrbm8sCisJCQkJCQkgIHZtYnVmZmVyLCB2bWZsYWdz KTsKIAkJY29uZmxpY3RfeGlkID0gdmlzaWJpbGl0eV9jdXRvZmZfeGlkOwogCX0KIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4IDY0ZGZmN2EwMDI2Li44MzQyZWMx ZmYyMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwpAQCAtMTQsOCAr MTQsNyBAQAogICoJCXZpc2liaWxpdHltYXBfY2xlYXIgIC0gY2xlYXIgYml0cyBmb3Igb25lIHBh Z2UgaW4gdGhlIHZpc2liaWxpdHkgbWFwCiAgKgkJdmlzaWJpbGl0eW1hcF9waW4JIC0gcGluIGEg bWFwIHBhZ2UgZm9yIHNldHRpbmcgYSBiaXQKICAqCQl2aXNpYmlsaXR5bWFwX3Bpbl9vayAtIGNo ZWNrIHdoZXRoZXIgY29ycmVjdCBtYXAgcGFnZSBpcyBhbHJlYWR5IHBpbm5lZAotICoJCXZpc2li aWxpdHltYXBfc2V0CSAtIHNldCBhIGJpdCBpbiBhIHByZXZpb3VzbHkgcGlubmVkIHBhZ2UgYW5k IGxvZwotICogICAgICB2aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUgLSBzZXQgYSBiaXQgaW4gYSBw aW5uZWQgcGFnZQorICoJCXZpc2liaWxpdHltYXBfc2V0CSAtIHNldCBhIGJpdCBpbiBhIHByZXZp b3VzbHkgcGlubmVkIHBhZ2UKICAqCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMgLSBnZXQgc3Rh dHVzIG9mIGJpdHMKICAqCQl2aXNpYmlsaXR5bWFwX2NvdW50ICAtIGNvdW50IG51bWJlciBvZiBi aXRzIHNldCBpbiB2aXNpYmlsaXR5IG1hcAogICoJCXZpc2liaWxpdHltYXBfcHJlcGFyZV90cnVu Y2F0ZSAtCkBAIC0yMjAsMTA4ICsyMTksNiBAQCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhCbG9ja051 bWJlciBoZWFwQmxrLCBCdWZmZXIgdm1idWYpCiAJcmV0dXJuIEJ1ZmZlcklzVmFsaWQodm1idWYp ICYmIEJ1ZmZlckdldEJsb2NrTnVtYmVyKHZtYnVmKSA9PSBtYXBCbG9jazsKIH0KIAotLyoKLSAq CXZpc2liaWxpdHltYXBfc2V0IC0gc2V0IGJpdChzKSBvbiBhIHByZXZpb3VzbHkgcGlubmVkIHBh Z2UKLSAqCi0gKiByZWNwdHIgaXMgdGhlIExTTiBvZiB0aGUgWExPRyByZWNvcmQgd2UncmUgcmVw bGF5aW5nLCBpZiB3ZSdyZSBpbiByZWNvdmVyeSwKLSAqIG9yIEludmFsaWRYTG9nUmVjUHRyIGlu IG5vcm1hbCBydW5uaW5nLiAgVGhlIFZNIHBhZ2UgTFNOIGlzIGFkdmFuY2VkIHRvIHRoZQotICog b25lIHByb3ZpZGVkOyBpbiBub3JtYWwgcnVubmluZywgd2UgZ2VuZXJhdGUgYSBuZXcgWExPRyBy ZWNvcmQgYW5kIHNldCB0aGUKLSAqIHBhZ2UgTFNOIHRvIHRoYXQgdmFsdWUgKHRob3VnaCB0aGUg aGVhcCBwYWdlJ3MgTFNOIG1heSAqbm90KiBiZSB1cGRhdGVkOwotICogc2VlIGJlbG93KS4gIGN1 dG9mZl94aWQgaXMgdGhlIGxhcmdlc3QgeG1pbiBvbiB0aGUgcGFnZSBiZWluZyBtYXJrZWQKLSAq IGFsbC12aXNpYmxlOyBpdCBpcyBuZWVkZWQgZm9yIEhvdCBTdGFuZGJ5LCBhbmQgY2FuIGJlIElu dmFsaWRUcmFuc2FjdGlvbklkCi0gKiBpZiB0aGUgcGFnZSBjb250YWlucyBubyB0dXBsZXMuICBJ dCBjYW4gYWxzbyBiZSBzZXQgdG8gSW52YWxpZFRyYW5zYWN0aW9uSWQKLSAqIHdoZW4gYSBwYWdl IHRoYXQgaXMgYWxyZWFkeSBhbGwtdmlzaWJsZSBpcyBiZWluZyBtYXJrZWQgYWxsLWZyb3plbi4K LSAqCi0gKiBDYWxsZXIgaXMgZXhwZWN0ZWQgdG8gc2V0IHRoZSBoZWFwIHBhZ2UncyBQRF9BTExf VklTSUJMRSBiaXQgYmVmb3JlIGNhbGxpbmcKLSAqIHRoaXMgZnVuY3Rpb24uIEV4Y2VwdCBpbiBy ZWNvdmVyeSwgY2FsbGVyIHNob3VsZCBhbHNvIHBhc3MgdGhlIGhlYXAKLSAqIGJ1ZmZlci4gV2hl biBjaGVja3N1bXMgYXJlIGVuYWJsZWQgYW5kIHdlJ3JlIG5vdCBpbiByZWNvdmVyeSwgd2UgbXVz dCBhZGQKLSAqIHRoZSBoZWFwIGJ1ZmZlciB0byB0aGUgV0FMIGNoYWluIHRvIHByb3RlY3QgaXQg ZnJvbSBiZWluZyB0b3JuLgotICoKLSAqIFlvdSBtdXN0IHBhc3MgYSBidWZmZXIgY29udGFpbmlu ZyB0aGUgY29ycmVjdCBtYXAgcGFnZSB0byB0aGlzIGZ1bmN0aW9uLgotICogQ2FsbCB2aXNpYmls aXR5bWFwX3BpbiBmaXJzdCB0byBwaW4gdGhlIHJpZ2h0IG9uZS4gVGhpcyBmdW5jdGlvbiBkb2Vz bid0IGRvCi0gKiBhbnkgSS9PLgotICoKLSAqIFJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSBwYWdl J3MgVk0gYml0cyBiZWZvcmUgc2V0dGluZyBmbGFncy4KLSAqLwotdWludDgKLXZpc2liaWxpdHlt YXBfc2V0KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIGhlYXBCdWYs Ci0JCQkJICBYTG9nUmVjUHRyIHJlY3B0ciwgQnVmZmVyIHZtQnVmLCBUcmFuc2FjdGlvbklkIGN1 dG9mZl94aWQsCi0JCQkJICB1aW50OCBmbGFncykKLXsKLQlCbG9ja051bWJlciBtYXBCbG9jayA9 IEhFQVBCTEtfVE9fTUFQQkxPQ0soaGVhcEJsayk7Ci0JdWludDMyCQltYXBCeXRlID0gSEVBUEJM S19UT19NQVBCWVRFKGhlYXBCbGspOwotCXVpbnQ4CQltYXBPZmZzZXQgPSBIRUFQQkxLX1RPX09G RlNFVChoZWFwQmxrKTsKLQlQYWdlCQlwYWdlOwotCXVpbnQ4CSAgICptYXA7Ci0JdWludDgJCXN0 YXR1czsKLQotI2lmZGVmIFRSQUNFX1ZJU0lCSUxJVFlNQVAKLQllbG9nKERFQlVHMSwgInZtX3Nl dCBmbGFncyAweCUwMlggZm9yICVzICVkIiwKLQkJIGZsYWdzLCBSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpLCBoZWFwQmxrKTsKLSNlbmRpZgotCi0JQXNzZXJ0KEluUmVjb3ZlcnkgfHwgWExv Z1JlY1B0cklzSW52YWxpZChyZWNwdHIpKTsKLQlBc3NlcnQoSW5SZWNvdmVyeSB8fCBQYWdlSXNB bGxWaXNpYmxlKEJ1ZmZlckdldFBhZ2UoaGVhcEJ1ZikpKTsKLQlBc3NlcnQoKGZsYWdzICYgVklT SUJJTElUWU1BUF9WQUxJRF9CSVRTKSA9PSBmbGFncyk7Ci0KLQkvKiBNdXN0IG5ldmVyIHNldCBh bGxfZnJvemVuIGJpdCB3aXRob3V0IGFsc28gc2V0dGluZyBhbGxfdmlzaWJsZSBiaXQgKi8KLQlB c3NlcnQoZmxhZ3MgIT0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKLQotCS8qIENoZWNrIHRo YXQgd2UgaGF2ZSB0aGUgcmlnaHQgaGVhcCBwYWdlIHBpbm5lZCwgaWYgcHJlc2VudCAqLwotCWlm IChCdWZmZXJJc1ZhbGlkKGhlYXBCdWYpICYmIEJ1ZmZlckdldEJsb2NrTnVtYmVyKGhlYXBCdWYp ICE9IGhlYXBCbGspCi0JCWVsb2coRVJST1IsICJ3cm9uZyBoZWFwIGJ1ZmZlciBwYXNzZWQgdG8g dmlzaWJpbGl0eW1hcF9zZXQiKTsKLQotCUFzc2VydCghQnVmZmVySXNWYWxpZChoZWFwQnVmKSB8 fCBCdWZmZXJJc0V4Y2x1c2l2ZUxvY2tlZChoZWFwQnVmKSk7Ci0KLQkvKiBDaGVjayB0aGF0IHdl IGhhdmUgdGhlIHJpZ2h0IFZNIHBhZ2UgcGlubmVkICovCi0JaWYgKCFCdWZmZXJJc1ZhbGlkKHZt QnVmKSB8fCBCdWZmZXJHZXRCbG9ja051bWJlcih2bUJ1ZikgIT0gbWFwQmxvY2spCi0JCWVsb2co RVJST1IsICJ3cm9uZyBWTSBidWZmZXIgcGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0Iik7Ci0K LQlwYWdlID0gQnVmZmVyR2V0UGFnZSh2bUJ1Zik7Ci0JbWFwID0gKHVpbnQ4ICopIFBhZ2VHZXRD b250ZW50cyhwYWdlKTsKLQlMb2NrQnVmZmVyKHZtQnVmLCBCVUZGRVJfTE9DS19FWENMVVNJVkUp OwotCi0Jc3RhdHVzID0gKG1hcFttYXBCeXRlXSA+PiBtYXBPZmZzZXQpICYgVklTSUJJTElUWU1B UF9WQUxJRF9CSVRTOwotCWlmIChmbGFncyAhPSBzdGF0dXMpCi0JewotCQlTVEFSVF9DUklUX1NF Q1RJT04oKTsKLQotCQltYXBbbWFwQnl0ZV0gfD0gKGZsYWdzIDw8IG1hcE9mZnNldCk7Ci0JCU1h cmtCdWZmZXJEaXJ0eSh2bUJ1Zik7Ci0KLQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocmVsKSkKLQkJ ewotCQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQocmVjcHRyKSkKLQkJCXsKLQkJCQlBc3NlcnQo IUluUmVjb3ZlcnkpOwotCQkJCXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLCBoZWFwQnVm LCB2bUJ1ZiwgY3V0b2ZmX3hpZCwgZmxhZ3MpOwotCi0JCQkJLyoKLQkJCQkgKiBJZiBkYXRhIGNo ZWNrc3VtcyBhcmUgZW5hYmxlZCAob3Igd2FsX2xvZ19oaW50cz1vbiksIHdlCi0JCQkJICogbmVl ZCB0byBwcm90ZWN0IHRoZSBoZWFwIHBhZ2UgZnJvbSBiZWluZyB0b3JuLgotCQkJCSAqCi0JCQkJ ICogSWYgbm90LCB0aGVuIHdlIG11c3QgKm5vdCogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04u IEluCi0JCQkJICogdGhpcyBjYXNlLCB0aGUgRlBJIGZvciB0aGUgaGVhcCBwYWdlIHdhcyBvbWl0 dGVkIGZyb20gdGhlCi0JCQkJICogV0FMIHJlY29yZCBpbnNlcnRlZCBhYm92ZSwgc28gaXQgd291 bGQgYmUgaW5jb3JyZWN0IHRvCi0JCQkJICogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04uCi0J CQkJICovCi0JCQkJaWYgKFhMb2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJCQl7Ci0JCQkJCVBhZ2UJ CWhlYXBQYWdlID0gQnVmZmVyR2V0UGFnZShoZWFwQnVmKTsKLQotCQkJCQlQYWdlU2V0TFNOKGhl YXBQYWdlLCByZWNwdHIpOwotCQkJCX0KLQkJCX0KLQkJCVBhZ2VTZXRMU04ocGFnZSwgcmVjcHRy KTsKLQkJfQotCi0JCUVORF9DUklUX1NFQ1RJT04oKTsKLQl9Ci0KLQlMb2NrQnVmZmVyKHZtQnVm LCBCVUZGRVJfTE9DS19VTkxPQ0spOwotCXJldHVybiBzdGF0dXM7Ci19Ci0KIC8qCiAgKiBTZXQg ZmxhZ3MgaW4gdGhlIFZNIGJsb2NrIGNvbnRhaW5lZCBpbiB0aGUgcGFzc2VkIGluIHZtQnVmLgog ICoKQEAgLTM0Myw4ICsyNDAsOCBAQCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJs b2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAogICogaXMgcGlubmVkIGFuZCBleGNs dXNpdmUgbG9ja2VkLgogICovCiB1aW50OAotdmlzaWJpbGl0eW1hcF9zZXRfdm1ieXRlKFJlbGF0 aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywKLQkJCQkJCSBCdWZmZXIgdm1CdWYsIHVpbnQ4 IGZsYWdzKQordmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFw QmxrLAorCQkJCSAgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncykKIHsKIAlCbG9ja051bWJlciBt YXBCbG9jayA9IEhFQVBCTEtfVE9fTUFQQkxPQ0soaGVhcEJsayk7CiAJdWludDMyCQltYXBCeXRl ID0gSEVBUEJMS19UT19NQVBCWVRFKGhlYXBCbGspOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2Mv aGVhcGRlc2MuYwppbmRleCBkNmM4NmNjYWMyMC4uZjc4ODBhNGVkODEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCkBAIC0zNTEsMTMgKzM1MSw2IEBAIGhlYXAyX2Rlc2Mo U3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJfQogCQl9CiAJfQot CWVsc2UgaWYgKGluZm8gPT0gWExPR19IRUFQMl9WSVNJQkxFKQotCXsKLQkJeGxfaGVhcF92aXNp YmxlICp4bHJlYyA9ICh4bF9oZWFwX3Zpc2libGUgKikgcmVjOwotCi0JCWFwcGVuZFN0cmluZ0lu Zm8oYnVmLCAic25hcHNob3RDb25mbGljdEhvcml6b246ICV1LCBmbGFnczogMHglMDJYIiwKLQkJ CQkJCSB4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24sIHhscmVjLT5mbGFncyk7Ci0JfQog CWVsc2UgaWYgKGluZm8gPT0gWExPR19IRUFQMl9NVUxUSV9JTlNFUlQpCiAJewogCQl4bF9oZWFw X211bHRpX2luc2VydCAqeGxyZWMgPSAoeGxfaGVhcF9tdWx0aV9pbnNlcnQgKikgcmVjOwpAQCAt NDYyLDkgKzQ1NSw2IEBAIGhlYXAyX2lkZW50aWZ5KHVpbnQ4IGluZm8pCiAJCWNhc2UgWExPR19I RUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUDoKIAkJCWlkID0gIlBSVU5FX1ZBQ1VVTV9DTEVBTlVQ IjsKIAkJCWJyZWFrOwotCQljYXNlIFhMT0dfSEVBUDJfVklTSUJMRToKLQkJCWlkID0gIlZJU0lC TEUiOwotCQkJYnJlYWs7CiAJCWNhc2UgWExPR19IRUFQMl9NVUxUSV9JTlNFUlQ6CiAJCQlpZCA9 ICJNVUxUSV9JTlNFUlQiOwogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9kZWNvZGUuYwppbmRleCBjYzAzZjA3MDZlOS4uMmZkZDRhZjkwYTggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKKysrIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYwpAQCAtNDU0LDcgKzQ1NCw2IEBAIGhlYXAyX2Rl Y29kZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIgKmJ1ZikK IAkJY2FzZSBYTE9HX0hFQVAyX1BSVU5FX09OX0FDQ0VTUzoKIAkJY2FzZSBYTE9HX0hFQVAyX1BS VU5FX1ZBQ1VVTV9TQ0FOOgogCQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX0NMRUFOVVA6 Ci0JCWNhc2UgWExPR19IRUFQMl9WSVNJQkxFOgogCQljYXNlIFhMT0dfSEVBUDJfTE9DS19VUERB VEVEOgogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9zdGFuZGJ5LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKaW5k ZXggNDIyMmJkYWIwNzguLmM2MTk2NDNlMTIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9zdGFuZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5j CkBAIC00NzUsMTIgKzQ3NSwxMiBAQCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hv dChUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAogCSAqIElmIHdlIGdldCBw YXNzZWQgSW52YWxpZFRyYW5zYWN0aW9uSWQgdGhlbiB3ZSBkbyBub3RoaW5nIChubyBjb25mbGlj dCkuCiAJICoKIAkgKiBUaGlzIGNhbiBoYXBwZW4gd2hlbiByZXBsYXlpbmcgYWxyZWFkeS1hcHBs aWVkIFdBTCByZWNvcmRzIGFmdGVyIGEKLQkgKiBzdGFuZGJ5IGNyYXNoIG9yIHJlc3RhcnQsIG9y IHdoZW4gcmVwbGF5aW5nIGFuIFhMT0dfSEVBUDJfVklTSUJMRQotCSAqIHJlY29yZCB0aGF0IG1h cmtzIGFzIGZyb3plbiBhIHBhZ2Ugd2hpY2ggd2FzIGFscmVhZHkgYWxsLXZpc2libGUuICBJdCdz Ci0JICogYWxzbyBxdWl0ZSBjb21tb24gd2l0aCByZWNvcmRzIGdlbmVyYXRlZCBkdXJpbmcgaW5k ZXggZGVsZXRpb24KLQkgKiAob3JpZ2luYWwgZXhlY3V0aW9uIG9mIHRoZSBkZWxldGlvbiBjYW4g cmVhc29uIHRoYXQgYSByZWNvdmVyeSBjb25mbGljdAotCSAqIHdoaWNoIGlzIHN1ZmZpY2llbnQg Zm9yIHRoZSBkZWxldGlvbiBvcGVyYXRpb24gbXVzdCB0YWtlIHBsYWNlIGJlZm9yZQotCSAqIHJl cGxheSBvZiB0aGUgZGVsZXRpb24gcmVjb3JkIGl0c2VsZikuCisJICogc3RhbmRieSBjcmFzaCBv ciByZXN0YXJ0LCBvciB3aGVuIHJlcGxheWluZyBhIHJlY29yZCB0aGF0IG1hcmtzIGFzCisJICog ZnJvemVuIGEgcGFnZSB3aGljaCB3YXMgYWxyZWFkeSBtYXJrZWQgYWxsLXZpc2libGUgaW4gdGhl IHZpc2liaWxpdHkKKwkgKiBtYXAuICBJdCdzIGFsc28gcXVpdGUgY29tbW9uIHdpdGggcmVjb3Jk cyBnZW5lcmF0ZWQgZHVyaW5nIGluZGV4CisJICogZGVsZXRpb24gKG9yaWdpbmFsIGV4ZWN1dGlv biBvZiB0aGUgZGVsZXRpb24gY2FuIHJlYXNvbiB0aGF0IGEgcmVjb3ZlcnkKKwkgKiBjb25mbGlj dCB3aGljaCBpcyBzdWZmaWNpZW50IGZvciB0aGUgZGVsZXRpb24gb3BlcmF0aW9uIG11c3QgdGFr ZSBwbGFjZQorCSAqIGJlZm9yZSByZXBsYXkgb2YgdGhlIGRlbGV0aW9uIHJlY29yZCBpdHNlbGYp LgogCSAqLwogCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQoc25hcHNob3RDb25mbGljdEhvcml6 b24pKQogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hs b2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCmluZGV4IGQ2YTQ3OWY2OTg0 Li4zNDk4OGQ1NjRmZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9n LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKQEAgLTYwLDcgKzYwLDYg QEAKICNkZWZpbmUgWExPR19IRUFQMl9QUlVORV9PTl9BQ0NFU1MJCTB4MTAKICNkZWZpbmUgWExP R19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTgkweDIwCiAjZGVmaW5lIFhMT0dfSEVBUDJfUFJVTkVf VkFDVVVNX0NMRUFOVVAJMHgzMAotI2RlZmluZSBYTE9HX0hFQVAyX1ZJU0lCTEUJCTB4NDAKICNk ZWZpbmUgWExPR19IRUFQMl9NVUxUSV9JTlNFUlQgMHg1MAogI2RlZmluZSBYTE9HX0hFQVAyX0xP Q0tfVVBEQVRFRCAweDYwCiAjZGVmaW5lIFhMT0dfSEVBUDJfTkVXX0NJRAkJMHg3MApAQCAtNDQw LDIwICs0MzksNiBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2lucGxhY2UKIAogI2RlZmluZSBN aW5TaXplT2ZIZWFwSW5wbGFjZQkob2Zmc2V0b2YoeGxfaGVhcF9pbnBsYWNlLCBubXNncykgKyBz aXplb2YoaW50KSkKIAotLyoKLSAqIFRoaXMgaXMgd2hhdCB3ZSBuZWVkIHRvIGtub3cgYWJvdXQg c2V0dGluZyBhIHZpc2liaWxpdHkgbWFwIGJpdAotICoKLSAqIEJhY2t1cCBibGsgMDogdmlzaWJp bGl0eSBtYXAgYnVmZmVyCi0gKiBCYWNrdXAgYmxrIDE6IGhlYXAgYnVmZmVyCi0gKi8KLXR5cGVk ZWYgc3RydWN0IHhsX2hlYXBfdmlzaWJsZQotewotCVRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25m bGljdEhvcml6b247Ci0JdWludDgJCWZsYWdzOwotfSB4bF9oZWFwX3Zpc2libGU7Ci0KLSNkZWZp bmUgU2l6ZU9mSGVhcFZpc2libGUgKG9mZnNldG9mKHhsX2hlYXBfdmlzaWJsZSwgZmxhZ3MpICsg c2l6ZW9mKHVpbnQ4KSkKLQogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9uZXdfY2lkCiB7CiAJLyoK QEAgLTQ5NywxMSArNDgyLDYgQEAgZXh0ZXJuIHZvaWQgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1 ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKmhlYXAyX2lk ZW50aWZ5KHVpbnQ4IGluZm8pOwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2xvZ2ljYWxfcmV3cml0 ZShYTG9nUmVhZGVyU3RhdGUgKnIpOwogCi1leHRlcm4gWExvZ1JlY1B0ciBsb2dfaGVhcF92aXNp YmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLAotCQkJCQkJCQkgICBCdWZmZXIg dm1fYnVmZmVyLAotCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jp em9uLAotCQkJCQkJCQkgICB1aW50OCB2bWZsYWdzKTsKLQogLyogaW4gaGVhcGRlc2MuYywgc28g aXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGZyb250ZW5kL2JhY2tlbmQgY29kZSAqLwogZXh0ZXJu IHZvaWQgaGVhcF94bG9nX2Rlc2VyaWFsaXplX3BydW5lX2FuZF9mcmVlemUoY2hhciAqY3Vyc29y LCB1aW50OCBmbGFncywKIAkJCQkJCQkJCQkJCSAgIGludCAqbnBsYW5zLCB4bGhwX2ZyZWV6ZV9w bGFuICoqcGxhbnMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1h cC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaAppbmRleCA5Nzc1NjZmNmI5 OC4uYzViMWUxZjdhZGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5 bWFwLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaApAQCAtMTUsNyAr MTUsNiBAQAogI2RlZmluZSBWSVNJQklMSVRZTUFQX0gKIAogI2luY2x1ZGUgImFjY2Vzcy92aXNp YmlsaXR5bWFwZGVmcy5oIgotI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgogI2luY2x1ZGUg InN0b3JhZ2UvYmxvY2suaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zi5oIgogI2luY2x1ZGUgInV0 aWxzL3JlbGNhY2hlLmgiCkBAIC0zMSwxNCArMzAsOCBAQCBleHRlcm4gYm9vbCB2aXNpYmlsaXR5 bWFwX2NsZWFyKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywKIGV4dGVybiB2b2lk IHZpc2liaWxpdHltYXBfcGluKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywKIAkJ CQkJCQkgIEJ1ZmZlciAqdm1idWYpOwogZXh0ZXJuIGJvb2wgdmlzaWJpbGl0eW1hcF9waW5fb2so QmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIHZtYnVmKTsKLWV4dGVybiB1aW50OCB2aXNpYmls aXR5bWFwX3NldChSZWxhdGlvbiByZWwsCi0JCQkJCQkJICAgQmxvY2tOdW1iZXIgaGVhcEJsaywg QnVmZmVyIGhlYXBCdWYsCi0JCQkJCQkJICAgWExvZ1JlY1B0ciByZWNwdHIsCi0JCQkJCQkJICAg QnVmZmVyIHZtQnVmLAotCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwKLQkJCQkJ CQkgICB1aW50OCBmbGFncyk7Ci1leHRlcm4gdWludDggdmlzaWJpbGl0eW1hcF9zZXRfdm1ieXRl KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywKLQkJCQkJCQkJCSAgQnVmZmVyIHZt QnVmLCB1aW50OCBmbGFncyk7CitleHRlcm4gdWludDggdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRp b24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAorCQkJCQkJCSAgIEJ1ZmZlciB2bUJ1ZiwgdWlu dDggZmxhZ3MpOwogZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyhSZWxhdGlv biByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciAqdm1idWYpOwogZXh0ZXJuIHZvaWQg dmlzaWJpbGl0eW1hcF9jb3VudChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyICphbGxfdmlzaWJs ZSwgQmxvY2tOdW1iZXIgKmFsbF9mcm96ZW4pOwogZXh0ZXJuIEJsb2NrTnVtYmVyIHZpc2liaWxp dHltYXBfcHJlcGFyZV90cnVuY2F0ZShSZWxhdGlvbiByZWwsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNp YmlsaXR5bWFwZGVmcy5oCmluZGV4IDVhZDVjMDIwODc3Li5lMDFiY2U0Yzk5ZiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKKysrIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKQEAgLTIxLDE0ICsyMSw1IEBACiAjZGVmaW5l IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTgkweDAyCiAjZGVmaW5lIFZJU0lCSUxJVFlNQVBfVkFM SURfQklUUwkweDAzCS8qIE9SIG9mIGFsbCB2YWxpZCB2aXNpYmlsaXR5bWFwCiAJCQkJCQkJCQkJ CSAqIGZsYWdzIGJpdHMgKi8KLS8qCi0gKiBUbyBkZXRlY3QgcmVjb3ZlcnkgY29uZmxpY3RzIGR1 cmluZyBsb2dpY2FsIGRlY29kaW5nIG9uIGEgc3RhbmRieSwgd2UgbmVlZAotICogdG8ga25vdyBp ZiBhIHRhYmxlIGlzIGEgdXNlciBjYXRhbG9nIHRhYmxlLiBGb3IgdGhhdCB3ZSBhZGQgYW4gYWRk aXRpb25hbAotICogYml0IGludG8geGxfaGVhcF92aXNpYmxlLmZsYWdzLCBpbiBhZGRpdGlvbiB0 byB0aGUgYWJvdmUuCi0gKgotICogTkI6IFZJU0lCSUxJVFlNQVBfWExPR18qIG1heSBub3QgYmUg cGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0KCkuCi0gKi8KLSNkZWZpbmUgVklTSUJJTElUWU1B UF9YTE9HX0NBVEFMT0dfUkVMCTB4MDQKLSNkZWZpbmUgVklTSUJJTElUWU1BUF9YTE9HX1ZBTElE X0JJVFMJKFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyB8IFZJU0lCSUxJVFlNQVBfWExPR19DQVRB TE9HX1JFTCkKIAogI2VuZGlmCQkJCQkJCS8qIFZJU0lCSUxJVFlNQVBERUZTX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggYTEzZTgxNjI4OTAuLmI0Yzg4MGMwODNmIDEwMDY0NAot LS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdApAQCAtNDI3Myw3ICs0MjczLDYgQEAgeGxfaGVhcF9wcnVuZQog eGxfaGVhcF9yZXdyaXRlX21hcHBpbmcKIHhsX2hlYXBfdHJ1bmNhdGUKIHhsX2hlYXBfdXBkYXRl Ci14bF9oZWFwX3Zpc2libGUKIHhsX2ludmFsaWRfcGFnZQogeGxfaW52YWxpZF9wYWdlX2tleQog eGxfaW52YWxpZGF0aW9ucwotLSAKMi40My4wCgo= --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0011-Update-VM-in-pruneheap.c.patch" Content-Disposition: attachment; filename="v8-0011-Update-VM-in-pruneheap.c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7bn10 RnJvbSAyNGU3MzhmNTU5ODdmMjY5MGFjYjgwOTBmOWFhNzhiN2Q3NTA3ZDk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMTE6MDQ6MTQgLTA0MDAKU3ViamVjdDogW1BB VENIIHY4IDExLzIyXSBVcGRhdGUgVk0gaW4gcHJ1bmVoZWFwLmMKCkFzIGEgc3RlcCB0b3dhcmQg dXBkYXRpbmcgdGhlIFZNIGluIHRoZSBzYW1lIGNyaXRpY2FsIHNlY3Rpb24gYW5kIFdBTApyZWNv cmQgYXMgcHJ1bmluZyBhbmQgZnJlZXppbmcgKGR1cmluZyBwaGFzZSBJIG9mIHZhY3V1bWluZyks IGZpcnN0IG1vdmUKdGhlIFZNIHVwZGF0ZSAoc3RpbGwgaW4gaXRzIG93biBjcml0aWNhbCBzZWN0 aW9uIGFuZCBXQUwgcmVjb3JkKSBpbnRvCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkuIFRo aXMgbWFrZXMgcmV2aWV3IGVhc2llci4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYyAgfCA5OSArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCA5OSArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgfCAxNSArKystLQogMyBmaWxl cyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgMTA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggYTU2MjU3Mzc2M2EuLmZjZjA1NGQwNGE4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMzYwLDcgKzM2MCw4IEBAIGlkZW50aWZ5 X2FuZF9maXhfdm1fY29ycnVwdGlvbihSZWxhdGlvbiByZWxhdGlvbiwKIAogLyoKICAqIFBydW5l IGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXplIHR1cGxlcyBv biB0aGUKLSAqIHNwZWNpZmllZCBwYWdlLgorICogc3BlY2lmaWVkIHBhZ2UuIElmIHRoZSBwYWdl J3MgdmlzaWJpbGl0eSBzdGF0dXMgaGFzIGNoYW5nZWQsIHVwZGF0ZSBpdCBpbgorICogdGhlIFZN LgogICoKICAqIENhbGxlciBtdXN0IGhhdmUgcGluIGFuZCBidWZmZXIgY2xlYW51cCBsb2NrIG9u IHRoZSBwYWdlLiAgTm90ZSB0aGF0IHdlCiAgKiBkb24ndCB1cGRhdGUgdGhlIEZTTSBpbmZvcm1h dGlvbiBmb3IgcGFnZSBvbiBjYWxsZXIncyBiZWhhbGYuICBDYWxsZXIgbWlnaHQKQEAgLTQzNiw2 ICs0MzcsOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlciwKIAlib29sCQlkb19mcmVlemU7CiAJYm9vbAkJZG9fcHJ1bmU7CiAJYm9v bAkJZG9faGludDsKKwl1aW50OAkJdm1mbGFncyA9IDA7CisJdWludDgJCW9sZF92bWJpdHMgPSAw OwogCWJvb2wJCWhpbnRfYml0X2ZwaTsKIAlpbnQ2NAkJZnBpX2JlZm9yZSA9IHBnV2FsVXNhZ2Uu d2FsX2ZwaTsKIApAQCAtOTM2LDcgKzkzOSw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXpl KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqCiAJICogTm93IHRoYXQgZnJl ZXppbmcgaGFzIGJlZW4gZmluYWxpemVkLCB1bnNldCBhbGxfdmlzaWJsZSBpZiB0aGVyZSBhcmUK IAkgKiBhbnkgTFBfREVBRCBpdGVtcyBvbiB0aGUgcGFnZS4gIEl0IG5lZWRzIHRvIHJlZmxlY3Qg dGhlIHByZXNlbnQgc3RhdGUKLQkgKiBvZiB0aGUgcGFnZSwgYXMgZXhwZWN0ZWQgYnkgb3VyIGNh bGxlci4KKwkgKiBvZiB0aGUgcGFnZSwgYXMgZXhwZWN0ZWQgZm9yIHVwZGF0aW5nIHRoZSB2aXNp YmlsaXR5IG1hcC4KIAkgKi8KIAlpZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSAmJiBwcnN0YXRlLmxw ZGVhZF9pdGVtcyA9PSAwKQogCXsKQEAgLTk1MiwzMSArOTU1LDkxIEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCXByZXN1bHQt Pmhhc3R1cCA9IHByc3RhdGUuaGFzdHVwOwogCiAJLyoKLQkgKiBGb3IgY2FsbGVycyBwbGFubmlu ZyB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwLCB0aGUgY29uZmxpY3QgaG9yaXpvbgotCSAq IGZvciB0aGF0IHJlY29yZCBtdXN0IGJlIHRoZSBuZXdlc3QgeG1pbiBvbiB0aGUgcGFnZS4gIEhv d2V2ZXIsIGlmIHRoZQotCSAqIHBhZ2UgaXMgY29tcGxldGVseSBmcm96ZW4sIHRoZXJlIGNhbiBi ZSBubyBjb25mbGljdCBhbmQgdGhlCi0JICogdm1fY29uZmxpY3RfaG9yaXpvbiBzaG91bGQgcmVt YWluIEludmFsaWRUcmFuc2FjdGlvbklkLiAgVGhpcyBpbmNsdWRlcwotCSAqIHRoZSBjYXNlIHRo YXQgd2UganVzdCBmcm96ZSBhbGwgdGhlIHR1cGxlczsgdGhlIHBydW5lLWZyZWV6ZSByZWNvcmQK LQkgKiBpbmNsdWRlZCB0aGUgY29uZmxpY3QgWElEIGFscmVhZHkgc28gdGhlIGNhbGxlciBkb2Vz bid0IG5lZWQgaXQuCisJICogSWYgdXBkYXRpbmcgdGhlIHZpc2liaWxpdHkgbWFwLCB0aGUgY29u ZmxpY3QgaG9yaXpvbiBmb3IgdGhhdCByZWNvcmQKKwkgKiBtdXN0IGJlIHRoZSBuZXdlc3QgeG1p biBvbiB0aGUgcGFnZS4gIEhvd2V2ZXIsIGlmIHRoZSBwYWdlIGlzCisJICogY29tcGxldGVseSBm cm96ZW4sIHRoZXJlIGNhbiBiZSBubyBjb25mbGljdCBhbmQgdGhlIHZtX2NvbmZsaWN0X2hvcml6 b24KKwkgKiBzaG91bGQgcmVtYWluIEludmFsaWRUcmFuc2FjdGlvbklkLiAgVGhpcyBpbmNsdWRl cyB0aGUgY2FzZSB0aGF0IHdlCisJICoganVzdCBmcm96ZSBhbGwgdGhlIHR1cGxlczsgdGhlIHBy dW5lLWZyZWV6ZSByZWNvcmQgaW5jbHVkZWQgdGhlCisJICogY29uZmxpY3QgWElEIGFscmVhZHkg c28gdGhlIFZNIHVwZGF0ZSByZWNvcmQgZG9lc24ndCBuZWVkIGl0LgogCSAqLwogCWlmIChwcmVz dWx0LT5hbGxfZnJvemVuKQogCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gSW52YWxp ZFRyYW5zYWN0aW9uSWQ7CiAJZWxzZQogCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0g cHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7CiAKLQlwcmVzdWx0LT5scGRlYWRfaXRlbXMg PSBwcnN0YXRlLmxwZGVhZF9pdGVtczsKLQkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJy YXkgd2FzIGFscmVhZHkgZmlsbGVkIGluICovCi0KIAkvKgotCSAqIENsZWFyIGFueSBWTSBjb3Jy dXB0aW9uLiBUaGlzIGRvZXMgbm90IG5lZWQgdG8gYmUgZG9uZSBpbiBhIGNyaXRpY2FsCi0JICog c2VjdGlvbi4KKwkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQgYmFzZWQgb24g aW5mb3JtYXRpb24gZnJvbSB0aGUgVk0gKGFzCisJICogb2YgbGFzdCBoZWFwX3ZhY19zY2FuX25l eHRfYmxvY2soKSBjYWxsKSwgYW5kIGZyb20gYWxsX3Zpc2libGUgYW5kCisJICogYWxsX2Zyb3pl biB2YXJpYWJsZXMuCiAJICovCi0JcHJlc3VsdC0+dm1fY29ycnVwdGlvbiA9IGZhbHNlOwogCWlm IChvcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSkKLQkJcHJlc3VsdC0+dm1fY29y cnVwdGlvbiA9IGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihyZWxhdGlvbiwKLQkJCQkJ CQkJCQkJCQkJCQlibG9ja25vLCBidWZmZXIsIHBhZ2UsCi0JCQkJCQkJCQkJCQkJCQkJYmxrX2tu b3duX2F2LAotCQkJCQkJCQkJCQkJCQkJCXByc3RhdGUubHBkZWFkX2l0ZW1zLCB2bWJ1ZmZlcik7 CisJeworCQlpZiAoaWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKHJlbGF0aW9uLAorCQkJ CQkJCQkJCSAgIGJsb2Nrbm8sIGJ1ZmZlciwgcGFnZSwKKwkJCQkJCQkJCQkgICBibGtfa25vd25f YXYsCisJCQkJCQkJCQkJICAgcHJzdGF0ZS5scGRlYWRfaXRlbXMsIHZtYnVmZmVyKSkKKwkJewor CQkJLyogSWYgd2UgZml4IGNvcnJ1cHRpb24sIGRvbid0IHVwZGF0ZSB0aGUgVk0gZnVydGhlciAq LworCQl9CisKKwkJLyoKKwkJICogSWYgdGhlIHBhZ2UgaXNuJ3QgeWV0IG1hcmtlZCBhbGwtdmlz aWJsZSBpbiB0aGUgVk0gb3IgaXQgaXMgYW5kCisJCSAqIG5lZWRzIHRvIG1lIG1hcmtlZCBhbGwt ZnJvemVuLCB1cGRhdGUgdGhlIFZNIE5vdGUgdGhhdCBhbGxfZnJvemVuCisJCSAqIGlzIG9ubHkg dmFsaWQgaWYgYWxsX3Zpc2libGUgaXMgdHJ1ZSwgc28gd2UgbXVzdCBjaGVjayBib3RoCisJCSAq IGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuLgorCQkgKi8KKwkJZWxzZSBpZiAocHJlc3VsdC0+ YWxsX3Zpc2libGUgJiYKKwkJCQkgKCFibGtfa25vd25fYXYgfHwKKwkJCQkgIChwcmVzdWx0LT5h bGxfZnJvemVuICYmICFWTV9BTExfRlJPWkVOKHJlbGF0aW9uLCBibG9ja25vLCAmdm1idWZmZXIp KSkpCisJCXsKKwkJCUFzc2VydChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKTsKKwkJCXZtZmxh Z3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOworCisJCQkvKgorCQkJICogSWYgdGhlIHBh Z2UgaXMgYWxsLWZyb3plbiwgd2UgY2FuIHBhc3MgSW52YWxpZFRyYW5zYWN0aW9uSWQgYXMKKwkJ CSAqIG91ciBjdXRvZmZfeGlkLCBzaW5jZSBhIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uIHN1ZmZp Y2llbnQgdG8KKwkJCSAqIG1ha2UgZXZlcnl0aGluZyBzYWZlIGZvciBSRURPIHdhcyBsb2dnZWQg d2hlbiB0aGUgcGFnZSdzIHR1cGxlcworCQkJICogd2VyZSBmcm96ZW4uCisJCQkgKi8KKwkJCWlm IChwcmVzdWx0LT5hbGxfZnJvemVuKQorCQkJeworCQkJCUFzc2VydCghVHJhbnNhY3Rpb25JZElz VmFsaWQocHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbikpOworCQkJCXZtZmxhZ3MgfD0gVklT SUJJTElUWU1BUF9BTExfRlJPWkVOOworCQkJfQorCisJCQkvKgorCQkJICogSXQncyBwb3NzaWJs ZSBmb3IgdGhlIFZNIGJpdCB0byBiZSBjbGVhciBhbmQgdGhlIHBhZ2UtbGV2ZWwgYml0CisJCQkg KiB0byBiZSBzZXQgaWYgY2hlY2tzdW1zIGFyZSBub3QgZW5hYmxlZC4KKwkJCSAqCisJCQkgKiBB bmQgZXZlbiBpZiB3ZSBhcmUganVzdCBwbGFubmluZyB0byB1cGRhdGUgdGhlIGZyb3plbiBiaXQg aW4KKwkJCSAqIHRoZSBWTSwgd2Ugc2hvdWxkbid0IHJlbHkgb24gYWxsX3Zpc2libGVfYWNjb3Jk aW5nX3RvX3ZtIGFzIGEKKwkJCSAqIHByb3h5IGZvciB0aGUgcGFnZS1sZXZlbCBQRF9BTExfVklT SUJMRSBiaXQgYmVpbmcgc2V0LCBzaW5jZSBpdAorCQkJICogbWlnaHQgaGF2ZSBiZWNvbWUgc3Rh bGUuCisJCQkgKgorCQkJICogSWYgdGhlIGhlYXAgcGFnZSBpcyBhbGwtdmlzaWJsZSBidXQgdGhl IFZNIGJpdCBpcyBub3Qgc2V0LCB3ZQorCQkJICogZG9uJ3QgbmVlZCB0byBkaXJ0eSB0aGUgaGVh cCBwYWdlLiAgSG93ZXZlciwgaWYgY2hlY2tzdW1zIGFyZQorCQkJICogZW5hYmxlZCwgd2UgZG8g bmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgaGVhcCBwYWdlIGlzIGRpcnRpZWQKKwkJCSAqIGJl Zm9yZSBwYXNzaW5nIGl0IHRvIHZpc2liaWxpdHltYXBfc2V0KCksIGJlY2F1c2UgaXQgbWF5IGJl CisJCQkgKiBsb2dnZWQuCisJCQkgKi8KKwkJCWlmICghUGFnZUlzQWxsVmlzaWJsZShwYWdlKSB8 fCBYTG9nSGludEJpdElzTmVlZGVkKCkpCisJCQl7CisJCQkJUGFnZVNldEFsbFZpc2libGUocGFn ZSk7CisJCQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CisJCQl9CisKKwkJCW9sZF92bWJpdHMg PSB2aXNpYmlsaXR5bWFwX3NldChyZWxhdGlvbiwgYmxvY2tubywgYnVmZmVyLCBJbnZhbGlkWExv Z1JlY1B0ciwKKwkJCQkJCQkJCQkgICB2bWJ1ZmZlciwgcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9y aXpvbiwKKwkJCQkJCQkJCQkgICB2bWZsYWdzKTsKKwkJfQorCX0KKworCXByZXN1bHQtPmxwZGVh ZF9pdGVtcyA9IHByc3RhdGUubHBkZWFkX2l0ZW1zOworCS8qIHRoZSBwcmVzdWx0LT5kZWFkb2Zm c2V0cyBhcnJheSB3YXMgYWxyZWFkeSBmaWxsZWQgaW4gKi8KKworCXByZXN1bHQtPm9sZF92bWJp dHMgPSBvbGRfdm1iaXRzOworCXByZXN1bHQtPm5ld192bWJpdHMgPSB2bWZsYWdzOworCiAJaWYg KHByc3RhdGUuZnJlZXplKQogCXsKIAkJaWYgKHByZXN1bHQtPm5mcm96ZW4gPiAwKQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDY0YWU2M2RjYjEyLi44OTIwODEwMzNjYyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMTkzMiw3ICsxOTMyLDYgQEAg bGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJs b2NrTnVtYmVyIGJsa25vLAogCXJldHVybiBmYWxzZTsKIH0KIAotCiAvKiBxc29ydCBjb21wYXJh dG9yIGZvciBzb3J0aW5nIE9mZnNldE51bWJlcnMgKi8KIHN0YXRpYyBpbnQKIGNtcE9mZnNldE51 bWJlcnMoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKQEAgLTE5NDgsNyArMTk0Nyw4IEBA IGNtcE9mZnNldE51bWJlcnMoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKICAqIHZtYnVm ZmVyIGlzIHRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgVk0gYmxvY2sgd2l0aCB2aXNpYmlsaXR5 IGluZm9ybWF0aW9uCiAgKiBmb3IgdGhlIGhlYXAgYmxvY2ssIGJsa25vLiBhbGxfdmlzaWJsZV9h Y2NvcmRpbmdfdG9fdm0gaXMgdGhlIHNhdmVkCiAgKiB2aXNpYmlsaXR5IHN0YXR1cyBvZiB0aGUg aGVhcCBibG9jayBsb29rZWQgdXAgZWFybGllciBieSB0aGUgY2FsbGVyLiBXZQotICogd29uJ3Qg cmVseSBlbnRpcmVseSBvbiB0aGlzIHN0YXR1cywgYXMgaXQgbWF5IGJlIG91dCBvZiBkYXRlLgor ICogd29uJ3QgcmVseSBlbnRpcmVseSBvbiB0aGlzIHN0YXR1cywgYXMgaXQgbWF5IGJlIG91dCBv ZiBkYXRlLiBUaGVzZSB3aWxsIGJlCisgKiBwYXNzZWQgb24gdG8gaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUoKSB0byB1c2Ugd2hpbGUgc2V0dGluZyB0aGUgVk0uCiAgKgogICogKmhhc19scGRl YWRfaXRlbXMgaXMgc2V0IHRvIHRydWUgb3IgZmFsc2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIsIHVw b24gcmV0dXJuCiAgKiBmcm9tIHRoaXMgZnVuY3Rpb24sIGFueSBMUF9ERUFEIGl0ZW1zIGFyZSBz dGlsbCBwcmVzZW50IG9uIHRoZSBwYWdlLgpAQCAtMTk3Nyw2ICsxOTc3LDcgQEAgbGF6eV9zY2Fu X3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAogCS8qCiAJICogUHJ1bmUgYWxsIEhPVC11cGRh dGUgY2hhaW5zIGFuZCBwb3RlbnRpYWxseSBmcmVlemUgdHVwbGVzIG9uIHRoaXMgcGFnZS4KKwkg KiBUaGVuLCBpZiB0aGUgcGFnZSdzIHZpc2liaWxpdHkgc3RhdHVzIGhhcyBjaGFuZ2VkLCB1cGRh dGUgdGhlIFZNLgogCSAqCiAJICogSWYgdGhlIHJlbGF0aW9uIGhhcyBubyBpbmRleGVzLCB3ZSBj YW4gaW1tZWRpYXRlbHkgbWFyayB3b3VsZC1iZSBkZWFkCiAJICogaXRlbXMgTFBfVU5VU0VELgpA QCAtMTk4NSwxMCArMTk4Niw2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWws CiAJICogcHJlc3VsdC5uZGVsZXRlZC4gIEl0IHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCBw cmVzdWx0LmxwZGVhZF9pdGVtczsKIAkgKiBwcmVzdWx0LmxwZGVhZF9pdGVtcydzIGZpbmFsIHZh bHVlIGNhbiBiZSB0aG91Z2h0IG9mIGFzIHRoZSBudW1iZXIgb2YKIAkgKiB0dXBsZXMgdGhhdCB3 ZXJlIGRlbGV0ZWQgZnJvbSBpbmRleGVzLgotCSAqCi0JICogV2Ugd2lsbCB1cGRhdGUgdGhlIFZN IGFmdGVyIGNvbGxlY3RpbmcgTFBfREVBRCBpdGVtcyBhbmQgZnJlZXppbmcKLQkgKiB0dXBsZXMu IFBydW5pbmcgd2lsbCBoYXZlIGRldGVybWluZWQgd2hldGhlciBvciBub3QgdGhlIHBhZ2UgaXMK LQkgKiBhbGwtdmlzaWJsZS4KIAkgKi8KIAlwcnVuZV9vcHRpb25zID0gSEVBUF9QQUdFX1BSVU5F X0ZSRUVaRSB8IEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVk07CiAJaWYgKHZhY3JlbC0+bmluZGV4 ZXMgPT0gMCkKQEAgLTIwODAsODggKzIwNzcsMjYgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3Rh dGUgKnZhY3JlbCwKIAlBc3NlcnQoIXByZXN1bHQuYWxsX3Zpc2libGUgfHwgISgqaGFzX2xwZGVh ZF9pdGVtcykpOwogCiAJLyoKLQkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQg YmFzZWQgb24gaW5mb3JtYXRpb24gZnJvbSB0aGUgVk0gKGFzCi0JICogb2YgbGFzdCBoZWFwX3Zh Y19zY2FuX25leHRfYmxvY2soKSBjYWxsKSwgYW5kIGZyb20gYWxsX3Zpc2libGUgYW5kCi0JICog YWxsX2Zyb3plbiB2YXJpYWJsZXMuCisJICogRm9yIHRoZSBwdXJwb3NlcyBvZiBsb2dnaW5nLCBj b3VudCB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSB3YXMgbmV3bHkKKwkgKiBzZXQgYWxsLXZpc2li bGUgYW5kLCBwb3RlbnRpYWxseSwgYWxsLWZyb3plbi4KIAkgKi8KLQlpZiAocHJlc3VsdC52bV9j b3JydXB0aW9uKQorCWlmICgocHJlc3VsdC5vbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExf VklTSUJMRSkgPT0gMCAmJgorCQkocHJlc3VsdC5uZXdfdm1iaXRzICYgVklTSUJJTElUWU1BUF9B TExfVklTSUJMRSkgIT0gMCkKIAl7Ci0JCS8qIERvbid0IHVwZGF0ZSB0aGUgVk0gaWYgd2UganVz dCBjbGVhcmVkIGNvcnJ1cHRpb24gaW4gaXQgKi8KLQl9Ci0KLQkvKgotCSAqIElmIHRoZSBwYWdl IGlzbid0IHlldCBtYXJrZWQgYWxsLXZpc2libGUgaW4gdGhlIFZNIG9yIGl0IGlzIGFuZCBuZWVk cwotCSAqIHRvIG1lIG1hcmtlZCBhbGwtZnJvemVuLCB1cGRhdGUgdGhlIFZNIE5vdGUgdGhhdCBh bGxfZnJvemVuIGlzIG9ubHkKLQkgKiB2YWxpZCBpZiBhbGxfdmlzaWJsZSBpcyB0cnVlLCBzbyB3 ZSBtdXN0IGNoZWNrIGJvdGggYWxsX3Zpc2libGUgYW5kCi0JICogYWxsX2Zyb3plbi4KLQkgKi8K LQllbHNlIGlmIChwcmVzdWx0LmFsbF92aXNpYmxlICYmCi0JCQkgKCFhbGxfdmlzaWJsZV9hY2Nv cmRpbmdfdG9fdm0gfHwKLQkJCSAgKHByZXN1bHQuYWxsX2Zyb3plbiAmJiAhVk1fQUxMX0ZST1pF Tih2YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcikpKSkKLQl7Ci0JCXVpbnQ4CQlvbGRfdm1i aXRzOwotCQl1aW50OAkJZmxhZ3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwotCi0JCS8q Ci0JCSAqIElmIHRoZSBwYWdlIGlzIGFsbC1mcm96ZW4sIHdlIGNhbiBwYXNzIEludmFsaWRUcmFu c2FjdGlvbklkIGFzIG91cgotCQkgKiBjdXRvZmZfeGlkLCBzaW5jZSBhIHNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uIHN1ZmZpY2llbnQgdG8gbWFrZQotCQkgKiBldmVyeXRoaW5nIHNhZmUgZm9yIFJF RE8gd2FzIGxvZ2dlZCB3aGVuIHRoZSBwYWdlJ3MgdHVwbGVzIHdlcmUKLQkJICogZnJvemVuLgot CQkgKi8KLQkJaWYgKHByZXN1bHQuYWxsX2Zyb3plbikKLQkJewotCQkJQXNzZXJ0KCFUcmFuc2Fj dGlvbklkSXNWYWxpZChwcmVzdWx0LnZtX2NvbmZsaWN0X2hvcml6b24pKTsKLQkJCWZsYWdzIHw9 IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKLQkJfQotCi0JCS8qCi0JCSAqIEl0IHNob3VsZCBu ZXZlciBiZSB0aGUgY2FzZSB0aGF0IHRoZSB2aXNpYmlsaXR5IG1hcCBwYWdlIGlzIHNldAotCQkg KiB3aGlsZSB0aGUgcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIsIGJ1dCB0aGUgcmV2ZXJzZSBpcyBh bGxvd2VkIChpZgotCQkgKiBjaGVja3N1bXMgYXJlIG5vdCBlbmFibGVkKS4gIFJlZ2FyZGxlc3Ms IHNldCBib3RoIGJpdHMgc28gdGhhdCB3ZQotCQkgKiBnZXQgYmFjayBpbiBzeW5jLgotCQkgKgot CQkgKiBJZiB0aGUgaGVhcCBwYWdlIGlzIGFsbC12aXNpYmxlIGJ1dCB0aGUgVk0gYml0IGlzIG5v dCBzZXQsIHdlIGRvbid0Ci0JCSAqIG5lZWQgdG8gZGlydHkgdGhlIGhlYXAgcGFnZS4gIEhvd2V2 ZXIsIGlmIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCwgd2UKLQkJICogZG8gbmVlZCB0byBtYWtlIHN1 cmUgdGhhdCB0aGUgaGVhcCBwYWdlIGlzIGRpcnRpZWQgYmVmb3JlIHBhc3NpbmcKLQkJICogaXQg dG8gdmlzaWJpbGl0eW1hcF9zZXQoKSwgYmVjYXVzZSBpdCBtYXkgYmUgbG9nZ2VkLgotCQkgKi8K LQkJaWYgKCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpIHx8IFhMb2dIaW50Qml0SXNOZWVkZWQoKSkK LQkJewotCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCQlNYXJrQnVmZmVyRGlydHkoYnVm KTsKLQkJfQotCi0JCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwg Ymxrbm8sIGJ1ZiwKLQkJCQkJCQkJCSAgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJCQkJICAg dm1idWZmZXIsIHByZXN1bHQudm1fY29uZmxpY3RfaG9yaXpvbiwKLQkJCQkJCQkJCSAgIGZsYWdz KTsKLQotCQkvKgotCQkgKiBFdmVuIGlmIHdlIGFyZSBvbmx5IHNldHRpbmcgdGhlIGFsbC1mcm96 ZW4gYml0LCB0aGVyZSBpcyBhIHNtYWxsCi0JCSAqIGNoYW5jZSB0aGF0IHRoZSBWTSB3YXMgbW9k aWZpZWQgc29tZXRpbWUgYmV0d2VlbiBzZXR0aW5nCi0JCSAqIGFsbF92aXNpYmxlX2FjY29yZGlu Z190b192bSBhbmQgY2hlY2tpbmcgdGhlIHZpc2liaWxpdHkgZHVyaW5nCi0JCSAqIHBydW5pbmcu IENoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2Ygb2xkX3ZtYml0cyB0byBlbnN1cmUgdGhlCi0JCSAq IHZpc2liaWxpdHkgbWFwIGNvdW50ZXJzIHVzZWQgZm9yIGxvZ2dpbmcgYXJlIGFjY3VyYXRlLgot CQkgKgotCQkgKiBJZiB0aGUgcGFnZSB3YXNuJ3QgYWxyZWFkeSBzZXQgYWxsLXZpc2libGUgYW5k L29yIGFsbC1mcm96ZW4gaW4gdGhlCi0JCSAqIFZNLCBjb3VudCBpdCBhcyBuZXdseSBzZXQgZm9y IGxvZ2dpbmcuCi0JCSAqLwotCQlpZiAoKG9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9W SVNJQkxFKSA9PSAwKQotCQl7Ci0JCQl2YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzKys7Ci0J CQlpZiAocHJlc3VsdC5hbGxfZnJvemVuKQotCQkJewotCQkJCXZhY3JlbC0+dm1fbmV3X3Zpc2li bGVfZnJvemVuX3BhZ2VzKys7Ci0JCQkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1ZTsKLQkJCX0KLQkJ fQotCQllbHNlIGlmICgob2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikgPT0g MCAmJgotCQkJCSBwcmVzdWx0LmFsbF9mcm96ZW4pCisJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVf cGFnZXMrKzsKKwkJaWYgKChwcmVzdWx0Lm5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9G Uk9aRU4pICE9IDApCiAJCXsKLQkJCXZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlcysrOworCQkJ dmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMrKzsKIAkJCSp2bV9wYWdlX2Zyb3pl biA9IHRydWU7CiAJCX0KIAl9CisJZWxzZSBpZiAoKHByZXN1bHQub2xkX3ZtYml0cyAmIFZJU0lC SUxJVFlNQVBfQUxMX0ZST1pFTikgPT0gMCAmJgorCQkJIChwcmVzdWx0Lm5ld192bWJpdHMgJiBW SVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pICE9IDApCisJeworCQlBc3NlcnQoKHByZXN1bHQubmV3 X3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpICE9IDApOworCQl2YWNyZWwtPnZt X25ld19mcm96ZW5fcGFnZXMrKzsKKwkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1ZTsKKwl9CiAKIAly ZXR1cm4gcHJlc3VsdC5uZGVsZXRlZDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCAwYzdlYjVlNDZm NC4uYjg1NjQ4NDU2ZTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAor KysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTIzNSwyMCArMjM1LDIxIEBAIHR5 cGVkZWYgc3RydWN0IFBydW5lRnJlZXplUmVzdWx0CiAJaW50CQkJcmVjZW50bHlfZGVhZF90dXBs ZXM7CiAKIAkvKgotCSAqIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIGluZGljYXRlIGlmIHRo ZSBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbgotCSAqIGJpdHMgaW4gdGhlIHZpc2liaWxpdHkg bWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSwgYWZ0ZXIgcHJ1bmluZy4KKwkgKiBhbGxfdmlz aWJsZSBhbmQgYWxsX2Zyb3plbiBpbmRpY2F0ZSB0aGUgc3RhdHVzIG9mIHRoZSBwYWdlIGFzIHJl ZmxlY3RlZAorCSAqIGluIHRoZSB2aXNpYmlsaXR5IG1hcCBhZnRlciBwcnVuaW5nLCBmcmVlemlu ZywgYW5kIHNldHRpbmcgYW55IHBhZ2VzCisJICogYWxsLXZpc2libGUgaW4gdGhlIHZpc2liaWxp dHkgbWFwLgogCSAqCi0JICogdm1fY29uZmxpY3RfaG9yaXpvbiBpcyB0aGUgbmV3ZXN0IHhtaW4g b2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuICBUaGUKLQkgKiBjYWxsZXIgY2FuIHVzZSBpdCBh cyB0aGUgY29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZNIGJpdHMuICBJdAotCSAq IGlzIG9ubHkgdmFsaWQgaWYgd2UgZnJvemUgc29tZSB0dXBsZXMgKG5mcm96ZW4gPiAwKSwgYW5k IGFsbF9mcm96ZW4gaXMKLQkgKiB0cnVlLgorCSAqIHZtX2NvbmZsaWN0X2hvcml6b24gaXMgdGhl IG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlCisJICogKG9sZGVyIHRoYW4g T2xkZXN0WG1pbikuICBJdCB3aWxsIG9ubHkgYmUgdmFsaWQgaWYgd2UgZGlkIG5vdCBzZXQgdGhl CisJICogcGFnZSBhbGwtZnJvemVuIGluIHRoZSBWTS4KIAkgKgogCSAqIFRoZXNlIGFyZSBvbmx5 IHNldCBpZiB0aGUgSEVBUF9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHNldC4KIAkgKi8KIAlib29s CQlhbGxfdmlzaWJsZTsKIAlib29sCQlhbGxfZnJvemVuOwogCVRyYW5zYWN0aW9uSWQgdm1fY29u ZmxpY3RfaG9yaXpvbjsKLQlib29sCQl2bV9jb3JydXB0aW9uOworCXVpbnQ4CQlvbGRfdm1iaXRz OworCXVpbnQ4CQluZXdfdm1iaXRzOwogCiAJLyoKIAkgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcGFn ZSBtYWtlcyByZWwgdHJ1bmNhdGlvbiB1bnNhZmUuICBUaGlzIGlzIHNldCB0bwotLSAKMi40My4w Cgo= --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0010-Keep-all_frozen-updated-too-in-heap_page_prune_an.patch" Content-Disposition: attachment; filename="v8-0010-Keep-all_frozen-updated-too-in-heap_page_prune_an.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7bk9 RnJvbSBjZDMzZGE5NTc3Mzc0M2UwNDYyMTlkOGJjOTRkOWM5MjljZDViZTdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDIzIEp1bCAyMDI1IDE2OjAxOjI0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAxMC8yMl0gS2VlcCBhbGxfZnJvemVuIHVwZGF0ZWQgdG9vIGluCiBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZQoKV2UgcHJldmlvdXNseSByZWxpZWQgb24gb25seSB1c2luZyBhbGwt dmlzaWJsZSBhbmQgYWxsLWZyb3plbiB0b2dldGhlcgpidXQgaXQncyBiZXN0IHRvIGtlZXAgdGhl bSBib3RoIHVwZGF0ZWQuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg fCAxNSArKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA3MjIxNjEy Njk0NS4uYTU2MjU3Mzc2M2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0x NDMsMTAgKzE0Myw2IEBAIHR5cGVkZWYgc3RydWN0CiAJICogd2hldGhlciB0byBmcmVlemUgdGhl IHBhZ2Ugb3Igbm90LiAgVGhlIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuCiAJICogdmFsdWVz IHJldHVybmVkIHRvIHRoZSBjYWxsZXIgYXJlIGFkanVzdGVkIHRvIGluY2x1ZGUgTFBfREVBRCBp dGVtcyBhdAogCSAqIHRoZSBlbmQuCi0JICoKLQkgKiBhbGxfZnJvemVuIHNob3VsZCBvbmx5IGJl IGNvbnNpZGVyZWQgdmFsaWQgaWYgYWxsX3Zpc2libGUgaXMgYWxzbyBzZXQ7Ci0JICogd2UgZG9u J3QgYm90aGVyIHRvIGNsZWFyIHRoZSBhbGxfZnJvemVuIGZsYWcgZXZlcnkgdGltZSB3ZSBjbGVh ciB0aGUKLQkgKiBhbGxfdmlzaWJsZSBmbGFnLgogCSAqLwogCWJvb2wJCWFsbF92aXNpYmxlOwog CWJvb2wJCWFsbF9mcm96ZW47CkBAIC04MjQsNiArODIwLDcgQEAgaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCSAqLwogCX0KIAor CUFzc2VydCghcHJzdGF0ZS5hbGxfZnJvemVuIHx8IHByc3RhdGUuYWxsX3Zpc2libGUpOwogCS8q IEFueSBlcnJvciB3aGlsZSBhcHBseWluZyB0aGUgY2hhbmdlcyBpcyBjcml0aWNhbCAqLwogCVNU QVJUX0NSSVRfU0VDVElPTigpOwogCkBAIC0xNDY4LDcgKzE0NjUsNyBAQCBoZWFwX3BydW5lX3Jl Y29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwg T2Zmc2V0TnVtYgogCiAJCQkJaWYgKCFIZWFwVHVwbGVIZWFkZXJYbWluQ29tbWl0dGVkKGh0dXAp KQogCQkJCXsKLQkJCQkJcHJzdGF0ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCQkJcHJzdGF0 ZS0+YWxsX3Zpc2libGUgPSBwcnN0YXRlLT5hbGxfZnJvemVuID0gZmFsc2U7CiAJCQkJCWJyZWFr OwogCQkJCX0KIApAQCAtMTQ5MCw3ICsxNDg3LDcgQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFu Z2VkX2xwX25vcm1hbChQYWdlIHBhZ2UsIFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWIK IAkJCQlBc3NlcnQocHJzdGF0ZS0+Y3V0b2Zmcyk7CiAJCQkJaWYgKCFUcmFuc2FjdGlvbklkUHJl Y2VkZXMoeG1pbiwgcHJzdGF0ZS0+Y3V0b2Zmcy0+T2xkZXN0WG1pbikpCiAJCQkJewotCQkJCQlw cnN0YXRlLT5hbGxfdmlzaWJsZSA9IGZhbHNlOworCQkJCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9 IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKIAkJCQkJYnJlYWs7CiAJCQkJfQogCkBAIC0x NTAzLDcgKzE1MDAsNyBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBh Z2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYgogCiAJCWNhc2UgSEVBUFRV UExFX1JFQ0VOVExZX0RFQUQ6CiAJCQlwcnN0YXRlLT5yZWNlbnRseV9kZWFkX3R1cGxlcysrOwot CQkJcHJzdGF0ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCXByc3RhdGUtPmFsbF92aXNpYmxl ID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJCQkvKgogCQkJICogVGhpcyB0dXBs ZSB3aWxsIHNvb24gYmVjb21lIERFQUQuICBVcGRhdGUgdGhlIGhpbnQgZmllbGQgc28KQEAgLTE1 MjIsNyArMTUxOSw3IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoUGFn ZSBwYWdlLCBQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iCiAJCQkgKiBhc3N1bXB0aW9u IGlzIGEgYml0IHNoYWt5LCBidXQgaXQgaXMgd2hhdCBhY3F1aXJlX3NhbXBsZV9yb3dzKCkKIAkJ CSAqIGRvZXMsIHNvIGJlIGNvbnNpc3RlbnQuCiAJCQkgKi8KLQkJCXByc3RhdGUtPmFsbF92aXNp YmxlID0gZmFsc2U7CisJCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96 ZW4gPSBmYWxzZTsKIAogCQkJLyoKIAkJCSAqIElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSBmb3Ig YWJvcnRzLCB3ZSBtaWdodCBjb25zaWRlciBtYXJraW5nCkBAIC0xNTQwLDcgKzE1MzcsNyBAQCBo ZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYgogCQkJICogd2lsbCBjb21taXQgYW5kIHVwZGF0ZSB0aGUg Y291bnRlcnMgYWZ0ZXIgd2UgcmVwb3J0LgogCQkJICovCiAJCQlwcnN0YXRlLT5saXZlX3R1cGxl cysrOwotCQkJcHJzdGF0ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCXByc3RhdGUtPmFsbF92 aXNpYmxlID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJCQkvKgogCQkJICogVGhp cyB0dXBsZSBtYXkgc29vbiBiZWNvbWUgREVBRC4gIFVwZGF0ZSB0aGUgaGludCBmaWVsZCBzbyB0 aGF0Ci0tIAoyLjQzLjAKCg== --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0012-Eliminate-xl_heap_visible-from-vacuum-phase-I-pru.patch" Content-Disposition: attachment; filename="v8-0012-Eliminate-xl_heap_visible-from-vacuum-phase-I-pru.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7bq11 RnJvbSA0MWViMzVhN2JiZWZmNzE3NjNjMmJlNzlhZTRlY2FlN2YyOWU0ZDZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjQxOjAwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAxMi8yMl0gRWxpbWluYXRlIHhsX2hlYXBfdmlzaWJsZSBmcm9tIHZhY3V1bSBwaGFz ZSBJCiBwcnVuZS9mcmVlemUKCkluc3RlYWQgb2YgZW1pdHRpbmcgYSBzZXBhcmF0ZSBXQUwgcmVj b3JkIGZvciBldmVyeSBibG9jayByZW5kZXJlZAphbGwtdmlzaWJsZS9mcm96ZW4gYnkgdmFjdXVt J3MgcGhhc2UgSSwgaW5jbHVkZSB0aGUgY2hhbmdlcyB0byB0aGUgVk0gaW4KdGhlIHhsX2hlYXBf cHJ1bmUgcmVjb3JkIGFscmVhZHkgZW1pdHRlZC4KClRoaXMgaXMgb25seSBlbmFibGVkIGZvciB2 YWN1dW0ncyBwcnVuZS9mcmVlemUgd29yaywgbm90IGZvciBvbi1hY2Nlc3MKcHJ1bmluZy4KLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgfCA0NTQgKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAg MzAgLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAgICB8ICAxNSArLQogMyBm aWxlcyBjaGFuZ2VkLCAyNzggaW5zZXJ0aW9ucygrKSwgMjIxIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggZmNmMDU0ZDA0YTguLjdjZWYwNWJlNWQwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtNDQsNiArNDQsMTMgQEAgdHlwZWRl ZiBzdHJ1Y3QKIAlib29sCQltYXJrX3VudXNlZF9ub3c7CiAJLyogd2hldGhlciB0byBhdHRlbXB0 IGZyZWV6aW5nIHR1cGxlcyAqLwogCWJvb2wJCWZyZWV6ZTsKKworCS8qCisJICogV2hldGhlciBv ciBub3QgdG8gY29uc2lkZXIgdXBkYXRpbmcgdGhlIFZNLiBUaGVyZSBpcyBzb21lIGJvb2trZWVw aW5nCisJICogdGhhdCBtdXN0IGJlIG1haW50YWluZWQgaWYgd2Ugd291bGQgbGlrZSB0byB1cGRh dGUgdGhlIFZNLgorCSAqLworCWJvb2wJCWNvbnNpZGVyX3VwZGF0ZV92bTsKKwogCXN0cnVjdCBW YWN1dW1DdXRvZmZzICpjdXRvZmZzOwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMDgsOCArMTE1LDkgQEAgdHlwZWRlZiBz dHJ1Y3QKIAkgKgogCSAqIFRoZXNlIGZpZWxkcyBhcmUgbm90IHVzZWQgYnkgcHJ1bmluZyBpdHNl bGYgZm9yIHRoZSBtb3N0IHBhcnQsIGJ1dCBhcmUKIAkgKiB1c2VkIHRvIGNvbGxlY3QgaW5mb3Jt YXRpb24gYWJvdXQgd2hhdCB3YXMgcHJ1bmVkIGFuZCB3aGF0IHN0YXRlIHRoZQotCSAqIHBhZ2Ug aXMgaW4gYWZ0ZXIgcHJ1bmluZywgZm9yIHRoZSBiZW5lZml0IG9mIHRoZSBjYWxsZXIuICBUaGV5 IGFyZQotCSAqIGNvcGllZCB0byB0aGUgY2FsbGVyJ3MgUHJ1bmVGcmVlemVSZXN1bHQgYXQgdGhl IGVuZC4KKwkgKiBwYWdlIGlzIGluIGFmdGVyIHBydW5pbmcgdG8gdXNlIHdoZW4gdXBkYXRpbmcg dGhlIHZpc2liaWxpdHkgbWFwIGFuZAorCSAqIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgY2FsbGVy LiAgVGhleSBhcmUgY29waWVkIHRvIHRoZSBjYWxsZXIncworCSAqIFBydW5lRnJlZXplUmVzdWx0 IGF0IHRoZSBlbmQuCiAJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogCSAqLwogCkBAIC0xMzgsMTEgKzE0NiwxMCBAQCB0eXBlZGVmIHN0 cnVjdAogCSAqIGJpdHMuICBJdCBpcyBvbmx5IHZhbGlkIGlmIHdlIGZyb3plIHNvbWUgdHVwbGVz LCBhbmQgYWxsX2Zyb3plbiBpcwogCSAqIHRydWUuCiAJICoKLQkgKiBOT1RFOiBhbGxfdmlzaWJs ZSBhbmQgYWxsX2Zyb3plbiBkb24ndCBpbmNsdWRlIExQX0RFQUQgaXRlbXMuICBUaGF0J3MKLQkg KiBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLCB0byB1c2UgdGhl bSB0byBkZWNpZGUKLQkgKiB3aGV0aGVyIHRvIGZyZWV6ZSB0aGUgcGFnZSBvciBub3QuICBUaGUg YWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4KLQkgKiB2YWx1ZXMgcmV0dXJuZWQgdG8gdGhlIGNh bGxlciBhcmUgYWRqdXN0ZWQgdG8gaW5jbHVkZSBMUF9ERUFEIGl0ZW1zIGF0Ci0JICogdGhlIGVu ZC4KKwkgKiBOT1RFOiBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBkb24ndCBpbmNsdWRlIExQ X0RFQUQgaXRlbXMgdW50aWwKKwkgKiBkaXJlY3RseSBiZWZvcmUgdXBkYXRpbmcgdGhlIFZNLiBX ZSBpZ25vcmUgTFBfREVBRCBpdGVtcyB3aGVuIGRlY2lkaW5nCisJICogd2hldGhlciBvciBub3Qg dG8gb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplIGFuZCB3aGVuIGRldGVybWluaW5nIHRoZQorCSAq IHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24gcmVxdWlyZWQgd2hlbiBmcmVlemluZyB0dXBsZXMu CiAJICovCiAJYm9vbAkJYWxsX3Zpc2libGU7CiAJYm9vbAkJYWxsX2Zyb3plbjsKQEAgLTM3MSwx MiArMzc4LDE1IEBAIGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihSZWxhdGlvbiByZWxh dGlvbiwKICAqIElmIHRoZSBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0LCB3ZSB3aWxs IGFsc28gZnJlZXplIHR1cGxlcyBpZiBpdCdzCiAgKiByZXF1aXJlZCBpbiBvcmRlciB0byBhZHZh bmNlIHJlbGZyb3plbnhpZCAvIHJlbG1pbm14aWQsIG9yIGlmIGl0J3MKICAqIGNvbnNpZGVyZWQg YWR2YW50YWdlb3VzIGZvciBvdmVyYWxsIHN5c3RlbSBwZXJmb3JtYW5jZSB0byBkbyBzbyBub3cu ICBUaGUKLSAqICdjdXRvZmZzJywgJ3ByZXN1bHQnLCAnbmV3X3JlbGZyb3plbl94aWQnIGFuZCAn bmV3X3JlbG1pbl9teGlkJyBhcmd1bWVudHMKLSAqIGFyZSByZXF1aXJlZCB3aGVuIGZyZWV6aW5n LiAgV2hlbiBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0LCB3ZSBhbHNvCi0gKiBzZXQg cHJlc3VsdC0+YWxsX3Zpc2libGUgYW5kIHByZXN1bHQtPmFsbF9mcm96ZW4gb24gZXhpdCwgdG8g aW5kaWNhdGUgaWYKLSAqIHRoZSBWTSBiaXRzIGNhbiBiZSBzZXQuICBUaGV5IGFyZSBhbHdheXMg c2V0IHRvIGZhbHNlIHdoZW4gdGhlCi0gKiBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgbm90 IHNldCwgYmVjYXVzZSBhdCB0aGUgbW9tZW50IG9ubHkgY2FsbGVycwotICogdGhhdCBhbHNvIGZy ZWV6ZSBuZWVkIHRoYXQgaW5mb3JtYXRpb24uCisgKiAnY3V0b2ZmcycsICduZXdfcmVsZnJvemVu X3hpZCcgYW5kICduZXdfcmVsbWluX214aWQnIGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQKKyAqIHdo ZW4gZnJlZXppbmcuCisgKgorICogSWYgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSBpcyBzZXQg YW5kIHRoZSB2aXNpYmlsaXR5IHN0YXR1cyBvZiB0aGUgcGFnZQorICogaGFzIGNoYW5nZWQsIHdl IHdpbGwgdXBkYXRlIHRoZSBWTSBhdCB0aGUgc2FtZSB0aW1lIGFzIHBydW5pbmcgYW5kIGZyZWV6 aW5nCisgKiB0aGUgaGVhcCBwYWdlLiBXZSB3aWxsIGFsc28gdXBkYXRlIHByZXN1bHQtPm9sZF92 bWJpdHMgYW5kCisgKiBwcmVzdWx0LT5uZXdfdm1iaXRzIHdpdGggdGhlIHN0YXRlIG9mIHRoZSBW TSBiZWZvcmUgYW5kIGFmdGVyIHVwZGF0aW5nIGl0CisgKiBmb3IgdGhlIGNhbGxlciB0byB1c2Ug aW4gYm9va2tlZXBpbmcuIE5vdGUgdGhhdCBuZXcgYW5kIG9sZF92bWJpdHMgd2lsbCBiZQorICog MCBpZiBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZNIGlzIG5vdCBzZXQuCiAgKgogICogYmxrX2tu b3duX2F2IGlzIHRoZSB2aXNpYmlsaXR5IHN0YXR1cyBvZiB0aGUgaGVhcCBibG9jayBhcyBvZiB0 aGUgbGFzdCBjYWxsCiAgKiB0byBmaW5kX25leHRfdW5za2lwcGFibGVfYmxvY2soKS4gdm1idWZm ZXIgaXMgdGhlIGJ1ZmZlciB0aGF0IG1heSBhbHJlYWR5CkBAIC0zOTIsNiArNDAyLDggQEAgaWRl bnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbGF0aW9uLAogICogICBGUkVF WkUgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMsIGFuZCB3aWxsIHJl dHVybgogICogICAnYWxsX3Zpc2libGUnLCAnYWxsX2Zyb3plbicgZmxhZ3MgdG8gdGhlIGNhbGxl ci4KICAqCisgKiAgIFVQREFURV9WTSBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIHNldCB0aGUgcGFn ZSdzIHN0YXR1cyBpbiB0aGUgVk0uCisgKgogICogY3V0b2ZmcyBjb250YWlucyB0aGUgZnJlZXpl IGN1dG9mZnMsIGVzdGFibGlzaGVkIGJ5IFZBQ1VVTSBhdCB0aGUgYmVnaW5uaW5nCiAgKiBvZiB2 YWN1dW1pbmcgdGhlIHJlbGF0aW9uLiAgUmVxdWlyZWQgaWYgSEVBUF9QUlVORV9GUkVFWkUgb3B0 aW9uIGlzIHNldC4KICAqIGN1dG9mZnMtPk9sZGVzdFhtaW4gaXMgYWxzbyB1c2VkIHRvIGRldGVy bWluZSBpZiBkZWFkIHR1cGxlcyBhcmUKQEAgLTQzNiwxOCArNDQ4LDI0IEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCUhlYXBU dXBsZURhdGEgdHVwOwogCWJvb2wJCWRvX2ZyZWV6ZTsKIAlib29sCQlkb19wcnVuZTsKLQlib29s CQlkb19oaW50OworCWJvb2wJCWRvX2hpbnRfZnVsbF9vcl9wcnVuYWJsZTsKKwlib29sCQlkb19z ZXRfdm07CiAJdWludDgJCXZtZmxhZ3MgPSAwOwogCXVpbnQ4CQlvbGRfdm1iaXRzID0gMDsKIAli b29sCQloaW50X2JpdF9mcGk7CiAJaW50NjQJCWZwaV9iZWZvcmUgPSBwZ1dhbFVzYWdlLndhbF9m cGk7CisJYm9vbAkJYWxsX2Zyb3plbl9leGNlcHRfbHBfZGVhZCA9IGZhbHNlOworCWJvb2wJCXNl dF9wZF9hbGxfdmlzaWJsZSA9IGZhbHNlOwogCiAJLyogQ29weSBwYXJhbWV0ZXJzIHRvIHByc3Rh dGUgKi8KIAlwcnN0YXRlLnZpc3Rlc3QgPSB2aXN0ZXN0OwogCXByc3RhdGUubWFya191bnVzZWRf bm93ID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfTUFSS19VTlVTRURfTk9XKSAhPSAwOwog CXByc3RhdGUuZnJlZXplID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFKSAhPSAw OworCXByc3RhdGUuY29uc2lkZXJfdXBkYXRlX3ZtID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJV TkVfVVBEQVRFX1ZNKSAhPSAwOwogCXByc3RhdGUuY3V0b2ZmcyA9IGN1dG9mZnM7CiAKKwlBc3Nl cnQoIXByc3RhdGUuY29uc2lkZXJfdXBkYXRlX3ZtIHx8IHZtYnVmZmVyKTsKKwogCS8qCiAJICog T3VyIHN0cmF0ZWd5IGlzIHRvIHNjYW4gdGhlIHBhZ2UgYW5kIG1ha2UgbGlzdHMgb2YgaXRlbXMg dG8gY2hhbmdlLAogCSAqIHRoZW4gYXBwbHkgdGhlIGNoYW5nZXMgd2l0aGluIGEgY3JpdGljYWwg c2VjdGlvbi4gIFRoaXMga2VlcHMgYXMgbXVjaApAQCAtNDkyLDUwICs1MTAsNTcgQEAgaGVhcF9w YWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJ cHJzdGF0ZS5kZWFkb2Zmc2V0cyA9IHByZXN1bHQtPmRlYWRvZmZzZXRzOwogCiAJLyoKLQkgKiBD YWxsZXIgbWF5IHVwZGF0ZSB0aGUgVk0gYWZ0ZXIgd2UncmUgZG9uZS4gIFdlIGNhbiBrZWVwIHRy YWNrIG9mCi0JICogd2hldGhlciB0aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNpYmxlIGFuZCBhbGwt ZnJvemVuIGFmdGVyIHBydW5pbmcgYW5kCi0JICogZnJlZXppbmcgdG8gaGVscCB0aGUgY2FsbGVy IHRvIGRvIHRoYXQuCisJICogS2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSB3 aWxsIGJlIGFsbC12aXNpYmxlIGFuZAorCSAqIGFsbC1mcm96ZW4gZm9yIHVzZSBpbiBvcHBvcnR1 bmlzdGljIGZyZWV6aW5nIGFuZCB0byB1cGRhdGUgdGhlIFZNIGlmCisJICogdGhlIGNhbGxlciBy ZXF1ZXN0cyBpdC4KKwkgKgorCSAqIEN1cnJlbnRseSwgb25seSBWQUNVVU0gYXR0ZW1wdHMgZnJl ZXppbmcgYW5kIHNldHRpbmcgdGhlIFZNIGJpdHMuIEJ1dAorCSAqIG90aGVyIGNhbGxlcnMgY291 bGQgZG8gZWl0aGVyIG9uZS4gVGhlIHZpc2liaWxpdHkgYm9va2tlZXBpbmcgaXMKKwkgKiByZXF1 aXJlZCBmb3Igb3Bwb3J0dW5pc3RpYyBmcmVlemluZyAoaW4gYWRkaXRpb24gdG8gc2V0dGluZyB0 aGUgVk0KKwkgKiBiaXRzKSBiZWNhdXNlIHdlIG9ubHkgY29uc2lkZXIgb3Bwb3J0dW5pc3RpY2Fs bHkgZnJlZXppbmcgdHVwbGVzIGlmIHRoZQorCSAqIHdob2xlIHBhZ2Ugd291bGQgYmVjb21lIGFs bC1mcm96ZW4gb3IgaWYgdGhlIHdob2xlIHBhZ2Ugd2lsbCBiZSBmcm96ZW4KKwkgKiBleGNlcHQg Zm9yIGRlYWQgdHVwbGVzIHRoYXQgd2lsbCBiZSByZW1vdmVkIGJ5IHZhY3V1bS4KIAkgKgotCSAq IEN1cnJlbnRseSwgb25seSBWQUNVVU0gc2V0cyB0aGUgVk0gYml0cy4gIFRvIHNhdmUgdGhlIGVm Zm9ydCwgb25seSBkbwotCSAqIHRoZSBib29ra2VlcGluZyBpZiB0aGUgY2FsbGVyIG5lZWRzIGl0 LiAgQ3VycmVudGx5LCB0aGF0J3MgdGllZCB0bwotCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUs IGJ1dCBpdCBjb3VsZCBiZSBhIHNlcGFyYXRlIGZsYWcgaWYgeW91IHdhbnRlZAotCSAqIHRvIHVw ZGF0ZSB0aGUgVk0gYml0cyB3aXRob3V0IGFsc28gZnJlZXppbmcgb3IgZnJlZXplIHdpdGhvdXQg YWxzbwotCSAqIHNldHRpbmcgdGhlIFZNIGJpdHMuCisJICogSWYgb25seSB1cGRhdGluZyB0aGUg Vk0sIHdlIG11c3QgaW5pdGlhbGl6ZSBhbGxfZnJvemVuIHRvIGZhbHNlLCBhcworCSAqIGhlYXBf cHJlcGFyZV9mcmVlemVfdHVwbGUoKSB3aWxsIG5vdCBiZSBjYWxsZWQgZm9yIGVhY2ggdHVwbGUg b24gdGhlCisJICogcGFnZSBhbmQgd2Ugd2lsbCBub3QgZW5kIHVwIGNvcnJlY3RseSBzZXR0aW5n IGl0IHRvIGZhbHNlIGxhdGVyLgogCSAqCi0JICogSW4gYWRkaXRpb24gdG8gdGVsbGluZyB0aGUg Y2FsbGVyIHdoZXRoZXIgaXQgY2FuIHNldCB0aGUgVk0gYml0LCB3ZQotCSAqIGFsc28gdXNlICdh bGxfdmlzaWJsZScgYW5kICdhbGxfZnJvemVuJyBmb3Igb3VyIG93biBkZWNpc2lvbi1tYWtpbmcu IElmCi0JICogdGhlIHdob2xlIHBhZ2Ugd291bGQgYmVjb21lIGZyb3plbiwgd2UgY29uc2lkZXIg b3Bwb3J0dW5pc3RpY2FsbHkKLQkgKiBmcmVlemluZyB0dXBsZXMuICBXZSB3aWxsIG5vdCBiZSBh YmxlIHRvIGZyZWV6ZSB0aGUgd2hvbGUgcGFnZSBpZiB0aGVyZQotCSAqIGFyZSB0dXBsZXMgcHJl c2VudCB0aGF0IGFyZSBub3QgdmlzaWJsZSB0byBldmVyeW9uZSBvciBpZiB0aGVyZSBhcmUKLQkg KiBkZWFkIHR1cGxlcyB3aGljaCBhcmUgbm90IHlldCByZW1vdmFibGUuICBIb3dldmVyLCBkZWFk IHR1cGxlcyB3aGljaAotCSAqIHdpbGwgYmUgcmVtb3ZlZCBieSB0aGUgZW5kIG9mIHZhY3V1bWlu ZyBzaG91bGQgbm90IHByZWNsdWRlIHVzIGZyb20KLQkgKiBvcHBvcnR1bmlzdGljYWxseSBmcmVl emluZy4gIEJlY2F1c2Ugb2YgdGhhdCwgd2UgZG8gbm90IGNsZWFyCi0JICogYWxsX3Zpc2libGUg d2hlbiB3ZSBzZWUgTFBfREVBRCBpdGVtcy4gIFdlIGZpeCB0aGF0IGF0IHRoZSBlbmQgb2YgdGhl Ci0JICogZnVuY3Rpb24sIHdoZW4gd2UgcmV0dXJuIHRoZSB2YWx1ZSB0byB0aGUgY2FsbGVyLCBz byB0aGF0IHRoZSBjYWxsZXIKLQkgKiBkb2Vzbid0IHNldCB0aGUgVk0gYml0IGluY29ycmVjdGx5 LgorCSAqIERlYWQgdHVwbGVzIHdoaWNoIHdpbGwgYmUgcmVtb3ZlZCBieSB0aGUgZW5kIG9mIHZh Y3V1bWluZyBzaG91bGQgbm90CisJICogcHJlY2x1ZGUgdXMgZnJvbSBvcHBvcnR1bmlzdGljYWxs eSBmcmVlemluZywgc28gd2UgZG8gbm90IGNsZWFyCisJICogYWxsX3Zpc2libGUgd2hlbiB3ZSBz ZWUgTFBfREVBRCBpdGVtcy4gV2UgZml4IHRoYXQgYWZ0ZXIgZGV0ZXJtaW5pbmcKKwkgKiB3aGV0 aGVyIG9yIG5vdCB0byBmcmVlemUgYnV0IGJlZm9yZSBkZWNpZGluZyB3aGV0aGVyIG9yIG5vdCB0 byB1cGRhdGUKKwkgKiB0aGUgVk0gc28gdGhhdCB3ZSBkb24ndCBzZXQgdGhlIFZNIGJpdCBpbmNv cnJlY3RseS4KKwkgKgorCSAqIElmIG5vdCBmcmVlemluZyBvciB1cGRhdGluZyB0aGUgVk0sIHdl IG90aGVyd2lzZSBhdm9pZCB0aGUgZXh0cmEKKwkgKiBib29ra2VlcGluZy4gSW5pdGlhbGl6aW5n IGFsbF92aXNpYmxlIHRvIGZhbHNlIGFsbG93cyBza2lwcGluZyB0aGUgd29yaworCSAqIHRvIHVw ZGF0ZSB0aGVtIGluIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoKS4KIAkg Ki8KIAlpZiAocHJzdGF0ZS5mcmVlemUpCiAJewogCQlwcnN0YXRlLmFsbF92aXNpYmxlID0gdHJ1 ZTsKIAkJcHJzdGF0ZS5hbGxfZnJvemVuID0gdHJ1ZTsKIAl9CisJZWxzZSBpZiAocHJzdGF0ZS5j b25zaWRlcl91cGRhdGVfdm0pCisJeworCQlwcnN0YXRlLmFsbF92aXNpYmxlID0gdHJ1ZTsKKwkJ cHJzdGF0ZS5hbGxfZnJvemVuID0gZmFsc2U7CisJfQogCWVsc2UKIAl7Ci0JCS8qCi0JCSAqIElu aXRpYWxpemluZyB0byBmYWxzZSBhbGxvd3Mgc2tpcHBpbmcgdGhlIHdvcmsgdG8gdXBkYXRlIHRo ZW0gaW4KLQkJICogaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbCgpLgotCQkg Ki8KIAkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IGZhbHNlOwogCQlwcnN0YXRlLmFsbF9mcm96ZW4g PSBmYWxzZTsKIAl9CiAKIAkvKgotCSAqIFRoZSB2aXNpYmlsaXR5IGN1dG9mZiB4aWQgaXMgdGhl IG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZQotCSAqIHBhZ2UuICBJbiB0aGUgY29t bW9uIGNhc2UsIHRoaXMgd2lsbCBiZSBzZXQgYXMgdGhlIGNvbmZsaWN0IGhvcml6b24gdGhlCi0J ICogY2FsbGVyIGNhbiB1c2UgZm9yIHVwZGF0aW5nIHRoZSBWTS4gIElmLCBhdCB0aGUgZW5kIG9m IGZyZWV6aW5nIGFuZAotCSAqIHBydW5pbmcsIHRoZSBwYWdlIGlzIGFsbC1mcm96ZW4sIHRoZXJl IGlzIG5vIHBvc3NpYmlsaXR5IHRoYXQgYW55Ci0JICogcnVubmluZyB0cmFuc2FjdGlvbiBvbiB0 aGUgc3RhbmRieSBkb2VzIG5vdCBzZWUgdHVwbGVzIG9uIHRoZSBwYWdlIGFzCi0JICogYWxsLXZp c2libGUsIHNvIHRoZSBjb25mbGljdCBob3Jpem9uIHJlbWFpbnMgSW52YWxpZFRyYW5zYWN0aW9u SWQuCisJICogVGhlIHZpc2liaWxpdHkgY3V0b2ZmIHhpZCBpcyB0aGUgbmV3ZXN0IHhtaW4gb2Yg bGl2ZSwgY29tbWl0dGVkIHR1cGxlcworCSAqIG9sZGVyIHRoYW4gT2xkZXN0WG1pbiBvbiB0aGUg cGFnZS4gVGhpcyBmaWVsZCBpcyBvbmx5IGtlcHQgdXAtdG8tZGF0ZQorCSAqIGlmIHRoZSBwYWdl IGlzIGFsbC12aXNpYmxlLiBBcyBzb29uIGFzIGEgdHVwbGUgaXMgZW5jb3VudGVyZWQgdGhhdCBp cworCSAqIG5vdCB2aXNpYmxlIHRvIGFsbCwgdGhpcyBmaWVsZCBpcyB1bm1haW50YWluZWQuIEFz IGxvbmcgYXMgaXQgaXMKKwkgKiBtYWludGFpbmVkLCBpdCBjYW4gYmUgdXNlZCB0byBjYWxjdWxh dGUgdGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24uCisJICogVGhpcyBpcyBtb3N0IGxpa2Vs eSB0byBoYXBwZW4gd2hlbiB1cGRhdGluZyB0aGUgVk0gYW5kL29yIGZyZWV6aW5nIGFsbAorCSAq IGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLiBJdCBpcyB1cGRhdGVkIGJlZm9yZSByZXR1cm5pbmcg dG8gdGhlIGNhbGxlcgorCSAqIGJlY2F1c2UgdmFjdXVtIGRvZXMgYXNzZXJ0LWJ1aWxkIG9ubHkg dmFsaWRhdGlvbiBvbiB0aGUgcGFnZSB1c2luZyB0aGlzCisJICogZmllbGQuCiAJICovCiAJcHJz dGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIApAQCAt NzMzLDEwICs3NTgsMTEgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVs YXRpb24sIEJ1ZmZlciBidWZmZXIsCiAKIAkvKgogCSAqIEV2ZW4gaWYgd2UgZG9uJ3QgcHJ1bmUg YW55dGhpbmcsIGlmIHdlIGZvdW5kIGEgbmV3IHZhbHVlIGZvciB0aGUKLQkgKiBwZF9wcnVuZV94 aWQgZmllbGQgb3IgdGhlIHBhZ2Ugd2FzIG1hcmtlZCBmdWxsLCB3ZSB3aWxsIHVwZGF0ZSB0aGUg aGludAotCSAqIGJpdC4KKwkgKiBwZF9wcnVuZV94aWQgZmllbGQgb3IgdGhlIHBhZ2Ugd2FzIG1h cmtlZCBmdWxsLCB3ZSB3aWxsIHVwZGF0ZSB0aG9zZQorCSAqIGhpbnQgYml0cy4KIAkgKi8KLQlk b19oaW50ID0gKChQYWdlSGVhZGVyKSBwYWdlKS0+cGRfcHJ1bmVfeGlkICE9IHByc3RhdGUubmV3 X3BydW5lX3hpZCB8fAorCWRvX2hpbnRfZnVsbF9vcl9wcnVuYWJsZSA9CisJCSgoUGFnZUhlYWRl cikgcGFnZSktPnBkX3BydW5lX3hpZCAhPSBwcnN0YXRlLm5ld19wcnVuZV94aWQgfHwKIAkJUGFn ZUlzRnVsbChwYWdlKTsKIAogCS8qCkBAIC03ODQsNyArODEwLDcgQEAgaGVhcF9wYWdlX3BydW5l X2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkJCQlpZiAo WExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAoYnVmZmVyKSkKIAkJCQkJCQlkb19mcmVlemUgPSB0 cnVlOwogCQkJCQl9Ci0JCQkJCWVsc2UgaWYgKGRvX2hpbnQpCisJCQkJCWVsc2UgaWYgKGRvX2hp bnRfZnVsbF9vcl9wcnVuYWJsZSkKIAkJCQkJewogCQkJCQkJaWYgKFhMb2dIaW50Qml0SXNOZWVk ZWQoKSAmJiBYTG9nQ2hlY2tCdWZmZXJOZWVkc0JhY2t1cChidWZmZXIpKQogCQkJCQkJCWRvX2Zy ZWV6ZSA9IHRydWU7CkBAIC04MjMsMTEgKzg0OSw4NCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2Zy ZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJICovCiAJfQogCisJLyoK KwkgKiBJdCB3YXMgY29udmVuaWVudCB0byBpZ25vcmUgTFBfREVBRCBpdGVtcyBpbiBhbGxfdmlz aWJsZSBlYXJsaWVyIG9uIHRvCisJICogbWFrZSB0aGUgY2hvaWNlIG9mIHdoZXRoZXIgb3Igbm90 IHRvIGZyZWV6ZSB0aGUgcGFnZSB1bmFmZmVjdGVkIGJ5IHRoZQorCSAqIHNob3J0LXRlcm0gcHJl c2VuY2Ugb2YgTFBfREVBRCBpdGVtcy4gIFRoZXNlIExQX0RFQUQgaXRlbXMgd2VyZQorCSAqIGVm ZmVjdGl2ZWx5IGFzc3VtZWQgdG8gYmUgTFBfVU5VU0VEIGl0ZW1zIGluIHRoZSBtYWtpbmcuICBJ dCBkb2Vzbid0CisJICogbWF0dGVyIHdoaWNoIHZhY3V1bSBoZWFwIHBhc3MgKGluaXRpYWwgcGFz cyBvciBmaW5hbCBwYXNzKSBlbmRzIHVwCisJICogc2V0dGluZyB0aGUgcGFnZSBhbGwtZnJvemVu LCBhcyBsb25nIGFzIHRoZSBvbmdvaW5nIFZBQ1VVTSBkb2VzIGl0LgorCSAqCisJICogTm93IHRo YXQgZnJlZXppbmcgaGFzIGJlZW4gZmluYWxpemVkLCB1bnNldCBhbGxfdmlzaWJsZSBpZiB0aGVy ZSBhcmUKKwkgKiBhbnkgTFBfREVBRCBpdGVtcyBvbiB0aGUgcGFnZS4gSXQgbmVlZHMgdG8gcmVm bGVjdCB0aGUgcHJlc2VudCBzdGF0ZSBvZgorCSAqIHRoZSBwYWdlIHdoZW4gdXNpbmcgaXQgdG8g ZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRvIHVwZGF0ZSB0aGUgVk0uCisJICoKKwkgKiBLZWVw IHRyYWNrIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIHdhcyBhbGwtZnJvemVuIGV4Y2VwdCBM UF9ERUFECisJICogaXRlbXMgZm9yIHRoZSBwdXJwb3NlcyBvZiBjYWxjdWxhdGluZyB0aGUgc25h cHNob3QgY29uZmxpY3QgaG9yaXpvbiwKKwkgKiB0aG91Z2guCisJICovCisJYWxsX2Zyb3plbl9l eGNlcHRfbHBfZGVhZCA9IHByc3RhdGUuYWxsX2Zyb3plbjsKKwlpZiAocHJzdGF0ZS5scGRlYWRf aXRlbXMgPiAwKQorCXsKKwkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IGZhbHNlOworCQlwcnN0YXRl LmFsbF9mcm96ZW4gPSBmYWxzZTsKKwl9CisKIAlBc3NlcnQoIXByc3RhdGUuYWxsX2Zyb3plbiB8 fCBwcnN0YXRlLmFsbF92aXNpYmxlKTsKKworCS8qCisJICogSGFuZGxlIHNldHRpbmcgdmlzaWJp bGl0eSBtYXAgYml0IGJhc2VkIG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIChhcworCSAqIG9m IGxhc3QgaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCkgY2FsbCksIGFuZCBmcm9tIGFsbF92aXNp YmxlIGFuZAorCSAqIGFsbF9mcm96ZW4gdmFyaWFibGVzLgorCSAqLworCWlmIChwcnN0YXRlLmNv bnNpZGVyX3VwZGF0ZV92bSkKKwl7CisJCS8qCisJCSAqIENsZWFyIGFueSBWTSBjb3JydXB0aW9u LiBUaGlzIGRvZXMgbm90IG5lZWQgdG8gYmUgaW4gYSBjcml0aWNhbAorCQkgKiBzZWN0aW9uLCBz byB3ZSBkbyBpdCBmaXJzdC4gSWYgUERfQUxMX1ZJU0lCTEUgaXMgaW5jb3JyZWN0bHkgc2V0LAor CQkgKiB3ZSBtYXkgbWFyayB0aGUgaGVhcCBwYWdlIGJ1ZmZlciBkaXJ0eSBoZXJlIGFuZCBjb3Vs ZCBlbmQgdXAgZG9pbmcKKwkJICogc28gYWdhaW4gbGF0ZXIuIFRoaXMgaXMgbm90IGEgY29ycmVj dG5lc3MgaXNzdWUgYW5kIGlzIGluIHRoZSBwYXRoCisJCSAqIG9mIFZNIGNvcnJ1cHRpb24sIHNv IHdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhlIGV4dHJhCisJCSAqIHBlcmZvcm1hbmNl IG92ZXJoZWFkLgorCQkgKi8KKwkJaWYgKGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihy ZWxhdGlvbiwKKwkJCQkJCQkJCQkgICBibG9ja25vLCBidWZmZXIsIHBhZ2UsCisJCQkJCQkJCQkJ ICAgYmxrX2tub3duX2F2LCBwcnN0YXRlLmxwZGVhZF9pdGVtcywgdm1idWZmZXIpKQorCQl7CisJ CQkvKiBJZiB3ZSBmaXggY29ycnVwdGlvbiwgZG9uJ3QgdXBkYXRlIHRoZSBWTSBmdXJ0aGVyICov CisJCX0KKworCQkvKiBEZXRlcm1pbmUgaWYgd2UgYWN0dWFsbHkgbmVlZCB0byBzZXQgdGhlIFZN IGFuZCB3aGljaCBiaXRzIHRvIHNldC4gKi8KKwkJZWxzZSBpZiAocHJzdGF0ZS5hbGxfdmlzaWJs ZSAmJgorCQkJCSAoIWJsa19rbm93bl9hdiB8fAorCQkJCSAgKHByc3RhdGUuYWxsX2Zyb3plbiAm JiAhVk1fQUxMX0ZST1pFTihyZWxhdGlvbiwgYmxvY2tubywgJnZtYnVmZmVyKSkpKQorCQl7CisJ CQl2bWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CisJCQlpZiAocHJzdGF0ZS5h bGxfZnJvemVuKQorCQkJCXZtZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOworCQl9 CisJfQorCisJZG9fc2V0X3ZtID0gdm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsK KworCS8qCisJICogRG9uJ3Qgc2V0IFBEX0FMTF9WSVNJQkxFIHVubGVzcyB3ZSBhbHNvIHBsYW4g dG8gc2V0IHRoZSBWTS4gV2hpbGUgaXQgaXMKKwkgKiBjb3JyZWN0IGZvciBhIGhlYXAgcGFnZSB0 byBoYXZlIFBEX0FMTF9WSVNJQkxFIGV2ZW4gaWYgdGhlIFZNIGlzIG5vdAorCSAqIHNldCwgd2Ug c3Ryb25nbHkgcHJlZmVyIHRvIGtlZXAgdGhlbSBpbiBzeW5jLgorCSAqCisJICogUHJpb3IgdG8g UG9zdGdyZXMgMTksIGl0IHdhcyBwb3NzaWJsZSBmb3IgdGhlIHBhZ2UtbGV2ZWwgYml0IHRvIGJl IHNldAorCSAqIGFuZCB0aGUgVk0gYml0IHRvIGJlIGNsZWFyLiBUaGlzIGNvdWxkIGhhcHBlbiBp ZiB3ZSBjcmFzaGVkIGFmdGVyCisJICogc2V0dGluZyBQRF9BTExfVklTSUJMRSBidXQgYmVmb3Jl IHNldHRpbmcgYml0cyBpbiB0aGUgVk0uCisJICovCisJc2V0X3BkX2FsbF92aXNpYmxlID0gZG9f c2V0X3ZtICYmICFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpOworCisJLyogU2F2ZSB0aGVzZSBmb3Ig dGhlIGNhbGxlciBpbiBjYXNlIHdlIGxhdGVyIHplcm8gb3V0IHZtZmxhZ3MgKi8KKwlwcmVzdWx0 LT5uZXdfdm1iaXRzID0gdm1mbGFnczsKKwogCS8qIEFueSBlcnJvciB3aGlsZSBhcHBseWluZyB0 aGUgY2hhbmdlcyBpcyBjcml0aWNhbCAqLwogCVNUQVJUX0NSSVRfU0VDVElPTigpOwogCi0JaWYg KGRvX2hpbnQpCisJaWYgKGRvX2hpbnRfZnVsbF9vcl9wcnVuYWJsZSkKIAl7CiAJCS8qCiAJCSAq IFVwZGF0ZSB0aGUgcGFnZSdzIHBkX3BydW5lX3hpZCBmaWVsZCB0byBlaXRoZXIgemVybywgb3Ig dGhlIGxvd2VzdApAQCAtODQzLDE1ICs5NDIsMTYgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCVBhZ2VDbGVhckZ1bGwocGFn ZSk7CiAKIAkJLyoKLQkJICogSWYgdGhhdCdzIGFsbCB3ZSBoYWQgdG8gZG8gdG8gdGhlIHBhZ2Us IHRoaXMgaXMgYSBub24tV0FMLWxvZ2dlZAotCQkgKiBoaW50LiAgSWYgd2UgYXJlIGdvaW5nIHRv IGZyZWV6ZSBvciBwcnVuZSB0aGUgcGFnZSwgd2Ugd2lsbCBtYXJrCi0JCSAqIHRoZSBidWZmZXIg ZGlydHkgYmVsb3cuCisJCSAqIElmIHdlIGFyZSBfb25seV8gc2V0dGluZyB0aGUgcHJ1bmVfeGlk IG9yIFBEX1BBR0VfRlVMTCBoaW50LCB0aGVuCisJCSAqIHRoaXMgaXMgYSBub24tV0FMLWxvZ2dl ZCBoaW50LiAgSWYgd2UgYXJlIGdvaW5nIHRvIGZyZWV6ZSBvciBwcnVuZQorCQkgKiB0dXBsZXMg b24gdGhlIHBhZ2Ugb3Igc2V0IFBEX0FMTF9WSVNJQkxFLCB3ZSB3aWxsIG1hcmsgdGhlIGJ1ZmZl cgorCQkgKiBkaXJ0eSBhbmQgZW1pdCBXQUwgYmVsb3cuCiAJCSAqLwotCQlpZiAoIWRvX2ZyZWV6 ZSAmJiAhZG9fcHJ1bmUpCisJCWlmICghZG9fcHJ1bmUgJiYgIWRvX2ZyZWV6ZSAmJiAhc2V0X3Bk X2FsbF92aXNpYmxlKQogCQkJTWFya0J1ZmZlckRpcnR5SGludChidWZmZXIsIHRydWUpOwogCX0K IAotCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUpCisJaWYgKGRvX3BydW5lIHx8IGRvX2ZyZWV6 ZSB8fCBkb19zZXRfdm0pCiAJewogCQkvKiBBcHBseSB0aGUgcGxhbm5lZCBpdGVtIGNoYW5nZXMg YW5kIHJlcGFpciBwYWdlIGZyYWdtZW50YXRpb24uICovCiAJCWlmIChkb19wcnVuZSkKQEAgLTg2 NSwxMiArOTY1LDQ3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0 aW9uLCBCdWZmZXIgYnVmZmVyLAogCQlpZiAoZG9fZnJlZXplKQogCQkJaGVhcF9mcmVlemVfcHJl cGFyZWRfdHVwbGVzKGJ1ZmZlciwgcHJzdGF0ZS5mcm96ZW4sIHByc3RhdGUubmZyb3plbik7CiAK LQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CisJCWlmIChzZXRfcGRfYWxsX3Zpc2libGUpCisJ CQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKIAogCQkvKgotCQkgKiBFbWl0IGEgV0FMIFhMT0df SEVBUDJfUFJVTkVfRlJFRVpFIHJlY29yZCBzaG93aW5nIHdoYXQgd2UgZGlkCisJCSAqIFdlIG9u bHkgc2V0IFBEX0FMTF9WSVNJQkxFIGlmIHdlIGFsc28gc2V0IHRoZSBWTSwgYW5kIHNpbmNlIHNl dHRpbmcKKwkJICogdGhlIFZNIHJlcXVpcmVzIGVtaXR0aW5nIFdBTCwgTWFya0J1ZmZlckRpcnR5 SGludCgpIGlzbid0CisJCSAqIGFwcHJvcHJpYXRlIGhlcmUuCiAJCSAqLwotCQlpZiAoUmVsYXRp b25OZWVkc1dBTChyZWxhdGlvbikpCisJCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUgfHwgc2V0 X3BkX2FsbF92aXNpYmxlKQorCQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CisKKwkJaWYgKGRv X3NldF92bSkKKwkJeworCQkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfRVhDTFVT SVZFKTsKKwkJCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUocmVsYXRpb24s IGJsb2Nrbm8sCisJCQkJCQkJCQkJCQkgIHZtYnVmZmVyLCB2bWZsYWdzKTsKKworCQkJaWYgKG9s ZF92bWJpdHMgPT0gdm1mbGFncykKKwkJCXsKKwkJCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZG RVJfTE9DS19VTkxPQ0spOworCQkJCWRvX3NldF92bSA9IGZhbHNlOworCQkJCS8qIDAgb3V0IHZt ZmxhZ3Mgc28gd2UgZG9uJ3QgZW1pdCBXQUwgdG8gdXBkYXRlIHRoZSBWTSAqLworCQkJCXZtZmxh Z3MgPSAwOworCQkJfQorCQl9CisKKwkJLyoKKwkJICogSXQgc2hvdWxkIG5ldmVyIGJlIHRoZSBj YXNlIHRoYXQgUERfQUxMX1ZJU0lCTEUgaXMgbm90IHNldCBhbmQgdGhlCisJCSAqIFZNIGlzIHNl dC4gT3IsIGlmIGl0IHdlcmUsIHdlIHNob3VsZCBoYXZlIGNhdWdodCBpdCBlYXJsaWVyIHdoZW4K KwkJICogZmluZGluZyBhbmQgZml4aW5nIFZNIGNvcnJ1cHRpb24uIFNvLCBpZiB3ZSBmb3VuZCBv dXQgdGhlIFZNIHdhcworCQkgKiBhbHJlYWR5IHNldCBhYm92ZSwgd2Ugc2hvdWxkIGhhdmUgZm91 bmQgUERfQUxMX1ZJU0lCTEUgc2V0IGVhcmxpZXIuCisJCSAqLworCQlBc3NlcnQoIXNldF9wZF9h bGxfdmlzaWJsZSB8fCBkb19zZXRfdm0pOworCisJCS8qCisJCSAqIEVtaXQgYSBXQUwgWExPR19I RUFQMl9QUlVORV9GUkVFWkUgcmVjb3JkIHNob3dpbmcgd2hhdCB3ZSBkaWQuIElmCisJCSAqIHdl IHdlcmUgb25seSB1cGRhdGluZyB0aGUgVk0gYW5kIGl0IHR1cm5zIG91dCBpdCB3YXMgYWxyZWFk eSBzZXQsCisJCSAqIHdlIHdpbGwgaGF2ZSB1bnNldCBkb19zZXRfdm0gZWFybGllci4gQXMgc3Vj aCwgY2hlY2sgaXQgYWdhaW4KKwkJICogYmVmb3JlIGVtaXR0aW5nIHRoZSByZWNvcmQuCisJCSAq LworCQlpZiAoUmVsYXRpb25OZWVkc1dBTChyZWxhdGlvbikgJiYgKGRvX3NldF92bSB8fCBkb19w cnVuZSB8fCBkb19mcmVlemUpKQogCQl7CiAJCQkvKgogCQkJICogVGhlIHNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uIGZvciB0aGUgd2hvbGUgcmVjb3JkIHNob3VsZCBiZSB0aGUKQEAgLTg4MiwzNSAr MTAxNyw1NiBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlciwKIAkJCSAqIG9uIHRoZSBzdGFuZGJ5IHdpdGggeGlkcyBvbGRlciB0aGFu IHRoZSB5b3VuZ2VzdCB0dXBsZSB0aGlzCiAJCQkgKiByZWNvcmQgd2lsbCBmcmVlemUgd2lsbCBj b25mbGljdC4KIAkJCSAqLwotCQkJVHJhbnNhY3Rpb25JZCBmcnpfY29uZmxpY3RfaG9yaXpvbiA9 IEludmFsaWRUcmFuc2FjdGlvbklkOwotCQkJVHJhbnNhY3Rpb25JZCBjb25mbGljdF94aWQ7CisJ CQlUcmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCiAJ CQkvKgotCQkJICogV2UgY2FuIHVzZSB0aGUgdmlzaWJpbGl0eV9jdXRvZmZfeGlkIGFzIG91ciBj dXRvZmYgZm9yCi0JCQkgKiBjb25mbGljdHMgd2hlbiB0aGUgd2hvbGUgcGFnZSBpcyBlbGlnaWJs ZSB0byBiZWNvbWUgYWxsLWZyb3plbgotCQkJICogaW4gdGhlIFZNIG9uY2Ugd2UncmUgZG9uZSB3 aXRoIGl0LiAgT3RoZXJ3aXNlIHdlIGdlbmVyYXRlIGEKLQkJCSAqIGNvbnNlcnZhdGl2ZSBjdXRv ZmYgYnkgc3RlcHBpbmcgYmFjayBmcm9tIE9sZGVzdFhtaW4uCisJCQkgKiBJZiB3ZSBhcmUgdXBk YXRpbmcgdGhlIFZNLCB0aGUgY29uZmxpY3QgaG9yaXpvbiBpcyBhbG1vc3QKKwkJCSAqIGFsd2F5 cyB0aGUgdmlzaWJpbGl0eSBjdXRvZmYgWElELgorCQkJICoKKwkJCSAqIFNlcGFyYXRlbHksIGlm IHdlIGFyZSBmcmVlemluZyBhbnkgdHVwbGVzLCBhcyBhbiBvcHRpbWl6YXRpb24sCisJCQkgKiB3 ZSBjYW4gdXNlIHRoZSB2aXNpYmlsaXR5X2N1dG9mZl94aWQgYXMgdGhlIGNvbmZsaWN0IGhvcml6 b24gaWYKKwkJCSAqIHRoZSBwYWdlIHdpbGwgYmUgYWxsLWZyb3plbi4gVGhpcyBpcyB0cnVlIGV2 ZW4gaWYgdGhlcmUgYXJlCisJCQkgKiBMUF9ERUFEIGxpbmUgcG9pbnRlcnMgYmVjYXVzZSB3ZSBp Z25vcmVkIHRob3NlIHdoZW4gbWFpbnRhaW5pbmcKKwkJCSAqIHRoZSB2aXNpYmlsaXR5X2N1dG9m Zl94aWQuCiAJCQkgKi8KLQkJCWlmIChkb19mcmVlemUpCisJCQlpZiAoZG9fc2V0X3ZtIHx8IChk b19mcmVlemUgJiYgYWxsX2Zyb3plbl9leGNlcHRfbHBfZGVhZCkpCisJCQkJY29uZmxpY3RfeGlk ID0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisKKwkJCS8qCisJCQkgKiBPdGhlcndp c2UsIGlmIHdlIGFyZSBmcmVlemluZyBidXQgdGhlIHBhZ2Ugd291bGQgbm90IGJlCisJCQkgKiBh bGwtZnJvemVuLCB3ZSBoYXZlIHRvIHVzZSB0aGUgbW9yZSBwZXNzaW1pc3RpYyBob3Jpem9uIG9m CisJCQkgKiBPbGRlc3RYbWluLCB3aGljaCBtYXkgYmUgbmV3ZXIgdGhhbiB0aGUgbmV3ZXN0IHR1 cGxlIHdlIGZyb3plLgorCQkJICogV2UgY3VycmVudGx5IGRvbid0IHRyYWNrIHRoZSBuZXdlc3Qg dHVwbGUgd2UgZnJvemUuCisJCQkgKi8KKwkJCWVsc2UgaWYgKGRvX2ZyZWV6ZSkKIAkJCXsKLQkJ CQlpZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSAmJiBwcnN0YXRlLmFsbF9mcm96ZW4pCi0JCQkJCWZy el9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7Ci0JCQkJ ZWxzZQotCQkJCXsKLQkJCQkJLyogQXZvaWRzIGZhbHNlIGNvbmZsaWN0cyB3aGVuIGhvdF9zdGFu ZGJ5X2ZlZWRiYWNrIGluIHVzZSAqLwotCQkJCQlmcnpfY29uZmxpY3RfaG9yaXpvbiA9IHByc3Rh dGUuY3V0b2Zmcy0+T2xkZXN0WG1pbjsKLQkJCQkJVHJhbnNhY3Rpb25JZFJldHJlYXQoZnJ6X2Nv bmZsaWN0X2hvcml6b24pOwotCQkJCX0KKwkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmN1dG9m ZnMtPk9sZGVzdFhtaW47CisJCQkJVHJhbnNhY3Rpb25JZFJldHJlYXQoY29uZmxpY3RfeGlkKTsK IAkJCX0KIAotCQkJaWYgKFRyYW5zYWN0aW9uSWRGb2xsb3dzKGZyel9jb25mbGljdF9ob3Jpem9u LCBwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3ZlZCkpCi0JCQkJY29uZmxpY3RfeGlkID0gZnJ6X2Nv bmZsaWN0X2hvcml6b247Ci0JCQllbHNlCisJCQkvKgorCQkJICogSWYgd2UgYXJlIHJlbW92aW5n IHR1cGxlcyB3aXRoIGEgeW91bmdlciB4bWF4IHRoYW4gb3VyIHNvIGZhcgorCQkJICogY2FsY3Vs YXRlZCBjb25mbGljdF94aWQsIHdlIG11c3QgdXNlIHRoaXMgYXMgb3VyIGhvcml6b24uCisJCQkg Ki8KKwkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyhwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3Zl ZCwgY29uZmxpY3RfeGlkKSkKIAkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmxhdGVzdF94aWRf cmVtb3ZlZDsKIAorCQkJLyoKKwkJCSAqIFdlIGNhbiBvbWl0IHRoZSBzbmFwc2hvdCBjb25mbGlj dCBob3Jpem9uIGlmIHdlIGFyZSBub3QgcHJ1bmluZworCQkJICogb3IgZnJlZXppbmcgYW55IHR1 cGxlcyBhbmQgYXJlIHNldHRpbmcgYW4gYWxyZWFkeSBhbGwtdmlzaWJsZQorCQkJICogcGFnZSBh bGwtZnJvemVuIGluIHRoZSBWTS4gSW4gdGhpcyBjYXNlLCBhbGwgb2YgdGhlIHR1cGxlcyBvbgor CQkJICogdGhlIHBhZ2UgbXVzdCBhbHJlYWR5IGJlIHZpc2libGUgdG8gYWxsIE1WQ0Mgc25hcHNo b3RzIG9uIHRoZQorCQkJICogc3RhbmRieS4KKwkJCSAqLworCQkJaWYgKCFkb19wcnVuZSAmJiAh ZG9fZnJlZXplICYmIGRvX3NldF92bSAmJgorCQkJCWJsa19rbm93bl9hdiAmJiAodm1mbGFncyAm IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikpCisJCQkJY29uZmxpY3RfeGlkID0gSW52YWxpZFRy YW5zYWN0aW9uSWQ7CisKIAkJCWxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUocmVsYXRpb24sIGJ1 ZmZlciwKIAkJCQkJCQkJCSAgZmFsc2UsCi0JCQkJCQkJCQkgIEludmFsaWRCdWZmZXIsIDAsIGZh bHNlLAorCQkJCQkJCQkJICB2bWJ1ZmZlciwKKwkJCQkJCQkJCSAgdm1mbGFncywKKwkJCQkJCQkJ CSAgc2V0X3BkX2FsbF92aXNpYmxlLAogCQkJCQkJCQkJICBjb25mbGljdF94aWQsCiAJCQkJCQkJ CQkgIHRydWUsIHJlYXNvbiwKIAkJCQkJCQkJCSAgcHJzdGF0ZS5mcm96ZW4sIHByc3RhdGUubmZy b3plbiwKQEAgLTkyMiwxMjQgKzEwNzgsNTUgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAKIAlFTkRfQ1JJVF9TRUNUSU9OKCk7 CiAKLQkvKiBDb3B5IGluZm9ybWF0aW9uIGJhY2sgZm9yIGNhbGxlciAqLwotCXByZXN1bHQtPm5k ZWxldGVkID0gcHJzdGF0ZS5uZGVsZXRlZDsKLQlwcmVzdWx0LT5ubmV3bHBkZWFkID0gcHJzdGF0 ZS5uZGVhZDsKLQlwcmVzdWx0LT5uZnJvemVuID0gcHJzdGF0ZS5uZnJvemVuOwotCXByZXN1bHQt PmxpdmVfdHVwbGVzID0gcHJzdGF0ZS5saXZlX3R1cGxlczsKLQlwcmVzdWx0LT5yZWNlbnRseV9k ZWFkX3R1cGxlcyA9IHByc3RhdGUucmVjZW50bHlfZGVhZF90dXBsZXM7Ci0KLQkvKgotCSAqIEl0 IHdhcyBjb252ZW5pZW50IHRvIGlnbm9yZSBMUF9ERUFEIGl0ZW1zIGluIGFsbF92aXNpYmxlIGVh cmxpZXIgb24gdG8KLQkgKiBtYWtlIHRoZSBjaG9pY2Ugb2Ygd2hldGhlciBvciBub3QgdG8gZnJl ZXplIHRoZSBwYWdlIHVuYWZmZWN0ZWQgYnkgdGhlCi0JICogc2hvcnQtdGVybSBwcmVzZW5jZSBv ZiBMUF9ERUFEIGl0ZW1zLiAgVGhlc2UgTFBfREVBRCBpdGVtcyB3ZXJlCi0JICogZWZmZWN0aXZl bHkgYXNzdW1lZCB0byBiZSBMUF9VTlVTRUQgaXRlbXMgaW4gdGhlIG1ha2luZy4gIEl0IGRvZXNu J3QKLQkgKiBtYXR0ZXIgd2hpY2ggdmFjdXVtIGhlYXAgcGFzcyAoaW5pdGlhbCBwYXNzIG9yIGZp bmFsIHBhc3MpIGVuZHMgdXAKLQkgKiBzZXR0aW5nIHRoZSBwYWdlIGFsbC1mcm96ZW4sIGFzIGxv bmcgYXMgdGhlIG9uZ29pbmcgVkFDVVVNIGRvZXMgaXQuCi0JICoKLQkgKiBOb3cgdGhhdCBmcmVl emluZyBoYXMgYmVlbiBmaW5hbGl6ZWQsIHVuc2V0IGFsbF92aXNpYmxlIGlmIHRoZXJlIGFyZQot CSAqIGFueSBMUF9ERUFEIGl0ZW1zIG9uIHRoZSBwYWdlLiAgSXQgbmVlZHMgdG8gcmVmbGVjdCB0 aGUgcHJlc2VudCBzdGF0ZQotCSAqIG9mIHRoZSBwYWdlLCBhcyBleHBlY3RlZCBmb3IgdXBkYXRp bmcgdGhlIHZpc2liaWxpdHkgbWFwLgotCSAqLwotCWlmIChwcnN0YXRlLmFsbF92aXNpYmxlICYm IHByc3RhdGUubHBkZWFkX2l0ZW1zID09IDApCi0JewotCQlwcmVzdWx0LT5hbGxfdmlzaWJsZSA9 IHByc3RhdGUuYWxsX3Zpc2libGU7Ci0JCXByZXN1bHQtPmFsbF9mcm96ZW4gPSBwcnN0YXRlLmFs bF9mcm96ZW47Ci0JfQotCWVsc2UKLQl7Ci0JCXByZXN1bHQtPmFsbF92aXNpYmxlID0gZmFsc2U7 Ci0JCXByZXN1bHQtPmFsbF9mcm96ZW4gPSBmYWxzZTsKLQl9Ci0KLQlwcmVzdWx0LT5oYXN0dXAg PSBwcnN0YXRlLmhhc3R1cDsKKwlpZiAoZG9fc2V0X3ZtKQorCQlMb2NrQnVmZmVyKHZtYnVmZmVy LCBCVUZGRVJfTE9DS19VTkxPQ0spOwogCi0JLyoKLQkgKiBJZiB1cGRhdGluZyB0aGUgdmlzaWJp bGl0eSBtYXAsIHRoZSBjb25mbGljdCBob3Jpem9uIGZvciB0aGF0IHJlY29yZAotCSAqIG11c3Qg YmUgdGhlIG5ld2VzdCB4bWluIG9uIHRoZSBwYWdlLiAgSG93ZXZlciwgaWYgdGhlIHBhZ2UgaXMK LQkgKiBjb21wbGV0ZWx5IGZyb3plbiwgdGhlcmUgY2FuIGJlIG5vIGNvbmZsaWN0IGFuZCB0aGUg dm1fY29uZmxpY3RfaG9yaXpvbgotCSAqIHNob3VsZCByZW1haW4gSW52YWxpZFRyYW5zYWN0aW9u SWQuICBUaGlzIGluY2x1ZGVzIHRoZSBjYXNlIHRoYXQgd2UKLQkgKiBqdXN0IGZyb3plIGFsbCB0 aGUgdHVwbGVzOyB0aGUgcHJ1bmUtZnJlZXplIHJlY29yZCBpbmNsdWRlZCB0aGUKLQkgKiBjb25m bGljdCBYSUQgYWxyZWFkeSBzbyB0aGUgVk0gdXBkYXRlIHJlY29yZCBkb2Vzbid0IG5lZWQgaXQu Ci0JICovCi0JaWYgKHByZXN1bHQtPmFsbF9mcm96ZW4pCi0JCXByZXN1bHQtPnZtX2NvbmZsaWN0 X2hvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKLQllbHNlCi0JCXByZXN1bHQtPnZtX2Nv bmZsaWN0X2hvcml6b24gPSBwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKKwlBc3NlcnQo IXByc3RhdGUuYWxsX3Zpc2libGUgfHwgKHByc3RhdGUubHBkZWFkX2l0ZW1zID09IDApKTsKIAog CS8qCi0JICogSGFuZGxlIHNldHRpbmcgdmlzaWJpbGl0eSBtYXAgYml0IGJhc2VkIG9uIGluZm9y bWF0aW9uIGZyb20gdGhlIFZNIChhcwotCSAqIG9mIGxhc3QgaGVhcF92YWNfc2Nhbl9uZXh0X2Js b2NrKCkgY2FsbCksIGFuZCBmcm9tIGFsbF92aXNpYmxlIGFuZAotCSAqIGFsbF9mcm96ZW4gdmFy aWFibGVzLgorCSAqIFZBQ1VVTSB3aWxsIGNhbGwgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKCkg ZHVyaW5nIHRoZSBzZWNvbmQgcGFzcyBvdmVyCisJICogdGhlIGhlYXAgdG8gZGV0ZXJtaW5lIGFs bF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIGZvciB0aGUgcGFnZSAtLSB0aGlzCisJICogaXMgYSBz cGVjaWFsaXplZCB2ZXJzaW9uIG9mIHRoZSBsb2dpYyBmcm9tIHRoaXMgZnVuY3Rpb24uICBOb3cg dGhhdAorCSAqIHdlJ3ZlIGZpbmlzaGVkIHBydW5pbmcgYW5kIGZyZWV6aW5nLCBtYWtlIHN1cmUg dGhhdCB3ZSdyZSBpbiB0b3RhbAorCSAqIGFncmVlbWVudCB3aXRoIGhlYXBfcGFnZV9pc19hbGxf dmlzaWJsZSgpIHVzaW5nIGFuIGFzc2VydGlvbi4gV2Ugd2lsbAorCSAqIGhhdmUgYWxyZWFkeSBz ZXQgdGhlIHBhZ2UgaW4gdGhlIFZNLCBzbyB0aGlzIGFzc2VydGlvbiB3aWxsIG9ubHkgbGV0CisJ ICogeW91IGtub3cgdGhhdCB5b3UndmUgYWxyZWFkeSBkb25lIHNvbWV0aGluZyB3cm9uZy4KIAkg Ki8KLQlpZiAob3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVk0pCisjaWZkZWYgVVNF X0FTU0VSVF9DSEVDS0lORworCWlmIChwcnN0YXRlLmFsbF92aXNpYmxlKQogCXsKLQkJaWYgKGlk ZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihyZWxhdGlvbiwKLQkJCQkJCQkJCQkgICBibG9j a25vLCBidWZmZXIsIHBhZ2UsCi0JCQkJCQkJCQkJICAgYmxrX2tub3duX2F2LAotCQkJCQkJCQkJ CSAgIHByc3RhdGUubHBkZWFkX2l0ZW1zLCB2bWJ1ZmZlcikpCi0JCXsKLQkJCS8qIElmIHdlIGZp eCBjb3JydXB0aW9uLCBkb24ndCB1cGRhdGUgdGhlIFZNIGZ1cnRoZXIgKi8KLQkJfQorCQlUcmFu c2FjdGlvbklkIGRlYnVnX2N1dG9mZjsKKwkJYm9vbAkJZGVidWdfYWxsX2Zyb3plbjsKIAotCQkv KgotCQkgKiBJZiB0aGUgcGFnZSBpc24ndCB5ZXQgbWFya2VkIGFsbC12aXNpYmxlIGluIHRoZSBW TSBvciBpdCBpcyBhbmQKLQkJICogbmVlZHMgdG8gbWUgbWFya2VkIGFsbC1mcm96ZW4sIHVwZGF0 ZSB0aGUgVk0gTm90ZSB0aGF0IGFsbF9mcm96ZW4KLQkJICogaXMgb25seSB2YWxpZCBpZiBhbGxf dmlzaWJsZSBpcyB0cnVlLCBzbyB3ZSBtdXN0IGNoZWNrIGJvdGgKLQkJICogYWxsX3Zpc2libGUg YW5kIGFsbF9mcm96ZW4uCi0JCSAqLwotCQllbHNlIGlmIChwcmVzdWx0LT5hbGxfdmlzaWJsZSAm JgotCQkJCSAoIWJsa19rbm93bl9hdiB8fAotCQkJCSAgKHByZXN1bHQtPmFsbF9mcm96ZW4gJiYg IVZNX0FMTF9GUk9aRU4ocmVsYXRpb24sIGJsb2Nrbm8sICZ2bWJ1ZmZlcikpKSkKLQkJewotCQkJ QXNzZXJ0KHByc3RhdGUubHBkZWFkX2l0ZW1zID09IDApOwotCQkJdm1mbGFncyA9IFZJU0lCSUxJ VFlNQVBfQUxMX1ZJU0lCTEU7CisJCUFzc2VydChjdXRvZmZzKTsKIAotCQkJLyoKLQkJCSAqIElm IHRoZSBwYWdlIGlzIGFsbC1mcm96ZW4sIHdlIGNhbiBwYXNzIEludmFsaWRUcmFuc2FjdGlvbklk IGFzCi0JCQkgKiBvdXIgY3V0b2ZmX3hpZCwgc2luY2UgYSBzbmFwc2hvdENvbmZsaWN0SG9yaXpv biBzdWZmaWNpZW50IHRvCi0JCQkgKiBtYWtlIGV2ZXJ5dGhpbmcgc2FmZSBmb3IgUkVETyB3YXMg bG9nZ2VkIHdoZW4gdGhlIHBhZ2UncyB0dXBsZXMKLQkJCSAqIHdlcmUgZnJvemVuLgotCQkJICov Ci0JCQlpZiAocHJlc3VsdC0+YWxsX2Zyb3plbikKLQkJCXsKLQkJCQlBc3NlcnQoIVRyYW5zYWN0 aW9uSWRJc1ZhbGlkKHByZXN1bHQtPnZtX2NvbmZsaWN0X2hvcml6b24pKTsKLQkJCQl2bWZsYWdz IHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKLQkJCX0KKwkJQXNzZXJ0KHByc3RhdGUubHBk ZWFkX2l0ZW1zID09IDApOwogCi0JCQkvKgotCQkJICogSXQncyBwb3NzaWJsZSBmb3IgdGhlIFZN IGJpdCB0byBiZSBjbGVhciBhbmQgdGhlIHBhZ2UtbGV2ZWwgYml0Ci0JCQkgKiB0byBiZSBzZXQg aWYgY2hlY2tzdW1zIGFyZSBub3QgZW5hYmxlZC4KLQkJCSAqCi0JCQkgKiBBbmQgZXZlbiBpZiB3 ZSBhcmUganVzdCBwbGFubmluZyB0byB1cGRhdGUgdGhlIGZyb3plbiBiaXQgaW4KLQkJCSAqIHRo ZSBWTSwgd2Ugc2hvdWxkbid0IHJlbHkgb24gYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtIGFz IGEKLQkJCSAqIHByb3h5IGZvciB0aGUgcGFnZS1sZXZlbCBQRF9BTExfVklTSUJMRSBiaXQgYmVp bmcgc2V0LCBzaW5jZSBpdAotCQkJICogbWlnaHQgaGF2ZSBiZWNvbWUgc3RhbGUuCi0JCQkgKgot CQkJICogSWYgdGhlIGhlYXAgcGFnZSBpcyBhbGwtdmlzaWJsZSBidXQgdGhlIFZNIGJpdCBpcyBu b3Qgc2V0LCB3ZQotCQkJICogZG9uJ3QgbmVlZCB0byBkaXJ0eSB0aGUgaGVhcCBwYWdlLiAgSG93 ZXZlciwgaWYgY2hlY2tzdW1zIGFyZQotCQkJICogZW5hYmxlZCwgd2UgZG8gbmVlZCB0byBtYWtl IHN1cmUgdGhhdCB0aGUgaGVhcCBwYWdlIGlzIGRpcnRpZWQKLQkJCSAqIGJlZm9yZSBwYXNzaW5n IGl0IHRvIHZpc2liaWxpdHltYXBfc2V0KCksIGJlY2F1c2UgaXQgbWF5IGJlCi0JCQkgKiBsb2dn ZWQuCi0JCQkgKi8KLQkJCWlmICghUGFnZUlzQWxsVmlzaWJsZShwYWdlKSB8fCBYTG9nSGludEJp dElzTmVlZGVkKCkpCi0JCQl7Ci0JCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCQkJTWFy a0J1ZmZlckRpcnR5KGJ1ZmZlcik7Ci0JCQl9CisJCWlmICghaGVhcF9wYWdlX2lzX2FsbF92aXNp YmxlKHJlbGF0aW9uLCBidWZmZXIsCisJCQkJCQkJCQkgIGN1dG9mZnMtPk9sZGVzdFhtaW4sCisJ CQkJCQkJCQkgICZkZWJ1Z19hbGxfZnJvemVuLAorCQkJCQkJCQkJICAmZGVidWdfY3V0b2ZmLCBv ZmZfbG9jKSkKKwkJCUFzc2VydChmYWxzZSk7CiAKLQkJCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5 bWFwX3NldChyZWxhdGlvbiwgYmxvY2tubywgYnVmZmVyLCBJbnZhbGlkWExvZ1JlY1B0ciwKLQkJ CQkJCQkJCQkgICB2bWJ1ZmZlciwgcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbiwKLQkJCQkJ CQkJCQkgICB2bWZsYWdzKTsKLQkJfQorCQlBc3NlcnQocHJzdGF0ZS5hbGxfZnJvemVuID09IGRl YnVnX2FsbF9mcm96ZW4pOworCisJCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVidWdf Y3V0b2ZmKSB8fAorCQkJICAgZGVidWdfY3V0b2ZmID09IHByc3RhdGUudmlzaWJpbGl0eV9jdXRv ZmZfeGlkKTsKIAl9CisjZW5kaWYKIAorCS8qIENvcHkgaW5mb3JtYXRpb24gYmFjayBmb3IgY2Fs bGVyICovCisJcHJlc3VsdC0+bmRlbGV0ZWQgPSBwcnN0YXRlLm5kZWxldGVkOworCXByZXN1bHQt Pm5uZXdscGRlYWQgPSBwcnN0YXRlLm5kZWFkOworCXByZXN1bHQtPm5mcm96ZW4gPSBwcnN0YXRl Lm5mcm96ZW47CisJcHJlc3VsdC0+bGl2ZV90dXBsZXMgPSBwcnN0YXRlLmxpdmVfdHVwbGVzOwor CXByZXN1bHQtPnJlY2VudGx5X2RlYWRfdHVwbGVzID0gcHJzdGF0ZS5yZWNlbnRseV9kZWFkX3R1 cGxlczsKKwlwcmVzdWx0LT5vbGRfdm1iaXRzID0gb2xkX3ZtYml0czsKKwkvKiBuZXdfdm1iaXRz IHdhcyBzZXQgYWJvdmUgKi8KKwlwcmVzdWx0LT5oYXN0dXAgPSBwcnN0YXRlLmhhc3R1cDsKIAlw cmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRlLmxwZGVhZF9pdGVtczsKIAkvKiB0aGUgcHJl c3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFscmVhZHkgZmlsbGVkIGluICovCiAKLQlwcmVz dWx0LT5vbGRfdm1iaXRzID0gb2xkX3ZtYml0czsKLQlwcmVzdWx0LT5uZXdfdm1iaXRzID0gdm1m bGFnczsKLQogCWlmIChwcnN0YXRlLmZyZWV6ZSkKIAl7CiAJCWlmIChwcmVzdWx0LT5uZnJvemVu ID4gMCkKQEAgLTE2MjEsNyArMTcwOCwxMiBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRf bHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYgogCQkJ YnJlYWs7CiAJfQogCi0JLyogQ29uc2lkZXIgZnJlZXppbmcgYW55IG5vcm1hbCB0dXBsZXMgd2hp Y2ggd2lsbCBub3QgYmUgcmVtb3ZlZCAqLworCS8qCisJICogQ29uc2lkZXIgZnJlZXppbmcgYW55 IG5vcm1hbCB0dXBsZXMgd2hpY2ggd2lsbCBub3QgYmUgcmVtb3ZlZC4KKwkgKiBSZWdhcmRsZXNz IG9mIHdoZXRoZXIgb3Igbm90IHdlIHdhbnQgdG8gZnJlZXplIHRoZSB0dXBsZXMsIGlmIHdlIHdh bnQKKwkgKiB0byB1cGRhdGUgdGhlIFZNLCB3ZSBoYXZlIHRvIGNhbGwgaGVhcF9wcmVwYXJlX2Zy ZWV6ZV90dXBsZSgpIG9uIGV2ZXJ5CisJICogdHVwbGUgdG8ga25vdyB3aGV0aGVyIG9yIG5vdCB0 aGUgcGFnZSB3aWxsIGJlIHRvdGFsbHkgZnJvemVuLgorCSAqLwogCWlmIChwcnN0YXRlLT5mcmVl emUpCiAJewogCQlib29sCQl0b3RhbGx5X2Zyb3plbjsKQEAgLTIyMzQsNiArMjMyNiw4IEBAIGxv Z19oZWFwX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIs CiAJT2Zmc2V0TnVtYmVyIGZyel9vZmZzZXRzW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAlib29s CQlkb19wcnVuZSA9IG5yZWRpcmVjdGVkID4gMCB8fCBuZGVhZCA+IDAgfHwgbnVudXNlZCA+IDA7 CiAKKwlBc3NlcnQoZG9fcHJ1bmUgfHwgbmZyb3plbiA+IDAgfHwgdm1mbGFncyAmIFZJU0lCSUxJ VFlNQVBfVkFMSURfQklUUyk7CisKIAl4bHJlYy5mbGFncyA9IDA7CiAJcmVnYnVmX2ZsYWdzID0g UkVHQlVGX1NUQU5EQVJEOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXgg ODkyMDgxMDMzY2MuLjUxMjljMTNmZWU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jCkBAIC0yMDEzLDM0ICsyMDEzLDYgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZh Y3JlbCwKIAkJdmFjcmVsLT5uZXdfZnJvemVuX3R1cGxlX3BhZ2VzKys7CiAJfQogCi0JLyoKLQkg KiBWQUNVVU0gd2lsbCBjYWxsIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSgpIGR1cmluZyB0aGUg c2Vjb25kIHBhc3Mgb3ZlcgotCSAqIHRoZSBoZWFwIHRvIGRldGVybWluZSBhbGxfdmlzaWJsZSBh bmQgYWxsX2Zyb3plbiBmb3IgdGhlIHBhZ2UgLS0gdGhpcwotCSAqIGlzIGEgc3BlY2lhbGl6ZWQg dmVyc2lvbiBvZiB0aGUgbG9naWMgZnJvbSB0aGlzIGZ1bmN0aW9uLiAgTm93IHRoYXQKLQkgKiB3 ZSd2ZSBmaW5pc2hlZCBwcnVuaW5nIGFuZCBmcmVlemluZywgbWFrZSBzdXJlIHRoYXQgd2UncmUg aW4gdG90YWwKLQkgKiBhZ3JlZW1lbnQgd2l0aCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSB1 c2luZyBhbiBhc3NlcnRpb24uCi0JICovCi0jaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwotCS8q IE5vdGUgdGhhdCBhbGxfZnJvemVuIHZhbHVlIGRvZXMgbm90IG1hdHRlciB3aGVuICFhbGxfdmlz aWJsZSAqLwotCWlmIChwcmVzdWx0LmFsbF92aXNpYmxlKQotCXsKLQkJVHJhbnNhY3Rpb25JZCBk ZWJ1Z19jdXRvZmY7Ci0JCWJvb2wJCWRlYnVnX2FsbF9mcm96ZW47Ci0KLQkJQXNzZXJ0KHByZXN1 bHQubHBkZWFkX2l0ZW1zID09IDApOwotCi0JCWlmICghaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxl KHZhY3JlbC0+cmVsLCBidWYsCi0JCQkJCQkJCQkgIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWlu LCAmZGVidWdfYWxsX2Zyb3plbiwKLQkJCQkJCQkJCSAgJmRlYnVnX2N1dG9mZiwgJnZhY3JlbC0+ b2ZmbnVtKSkKLQkJCUFzc2VydChmYWxzZSk7Ci0KLQkJQXNzZXJ0KHByZXN1bHQuYWxsX2Zyb3pl biA9PSBkZWJ1Z19hbGxfZnJvemVuKTsKLQotCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlk KGRlYnVnX2N1dG9mZikgfHwKLQkJCSAgIGRlYnVnX2N1dG9mZiA9PSBwcmVzdWx0LnZtX2NvbmZs aWN0X2hvcml6b24pOwotCX0KLSNlbmRpZgotCiAJLyoKIAkgKiBOb3cgc2F2ZSBkZXRhaWxzIG9m IHRoZSBMUF9ERUFEIGl0ZW1zIGZyb20gdGhlIHBhZ2UgaW4gdmFjcmVsCiAJICovCkBAIC0yMDc0 LDggKzIwNDYsNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCS8qIERp ZCB3ZSBmaW5kIExQX0RFQUQgaXRlbXM/ICovCiAJKmhhc19scGRlYWRfaXRlbXMgPSAocHJlc3Vs dC5scGRlYWRfaXRlbXMgPiAwKTsKIAotCUFzc2VydCghcHJlc3VsdC5hbGxfdmlzaWJsZSB8fCAh KCpoYXNfbHBkZWFkX2l0ZW1zKSk7Ci0KIAkvKgogCSAqIEZvciB0aGUgcHVycG9zZXMgb2YgbG9n Z2luZywgY291bnQgd2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2FzIG5ld2x5CiAJICogc2V0IGFs bC12aXNpYmxlIGFuZCwgcG90ZW50aWFsbHksIGFsbC1mcm96ZW4uCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5k ZXggYjg1NjQ4NDU2ZTkuLjBiOWJiMWM5YjEzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC0yMzUsMTkg KzIzNSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVJlc3VsdAogCWludAkJCXJlY2Vu dGx5X2RlYWRfdHVwbGVzOwogCiAJLyoKLQkgKiBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBp bmRpY2F0ZSB0aGUgc3RhdHVzIG9mIHRoZSBwYWdlIGFzIHJlZmxlY3RlZAotCSAqIGluIHRoZSB2 aXNpYmlsaXR5IG1hcCBhZnRlciBwcnVuaW5nLCBmcmVlemluZywgYW5kIHNldHRpbmcgYW55IHBh Z2VzCi0JICogYWxsLXZpc2libGUgaW4gdGhlIHZpc2liaWxpdHkgbWFwLgorCSAqIG9sZF92bWJp dHMgYXJlIHRoZSBzdGF0ZSBvZiB0aGUgYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4gYml0cyBp biB0aGUKKwkgKiB2aXNpYmlsaXR5IG1hcCBiZWZvcmUgdXBkYXRpbmcgaXQgZHVyaW5nIHBoYXNl IEkgb2YgdmFjdXVtaW5nLgorCSAqIG5ld192bWJpdHMgYXJlIHRoZSBzdGF0ZSBvZiB0aG9zZSBi aXRzIGFmdGVyIHBoYXNlIEkgb2YgdmFjdXVtaW5nLgogCSAqCi0JICogdm1fY29uZmxpY3RfaG9y aXpvbiBpcyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UKLQkgKiAo b2xkZXIgdGhhbiBPbGRlc3RYbWluKS4gIEl0IHdpbGwgb25seSBiZSB2YWxpZCBpZiB3ZSBkaWQg bm90IHNldCB0aGUKLQkgKiBwYWdlIGFsbC1mcm96ZW4gaW4gdGhlIFZNLgotCSAqCi0JICogVGhl c2UgYXJlIG9ubHkgc2V0IGlmIHRoZSBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0Lgor CSAqIFRoZXNlIGFyZSBvbmx5IHNldCBpZiB0aGUgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSBv cHRpb24gaXMgc2V0LgogCSAqLwotCWJvb2wJCWFsbF92aXNpYmxlOwotCWJvb2wJCWFsbF9mcm96 ZW47Ci0JVHJhbnNhY3Rpb25JZCB2bV9jb25mbGljdF9ob3Jpem9uOwogCXVpbnQ4CQlvbGRfdm1i aXRzOwogCXVpbnQ4CQluZXdfdm1iaXRzOwogCi0tIAoyLjQzLjAKCg== --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0013-Rename-PruneState.freeze-to-attempt_freeze.patch" Content-Disposition: attachment; filename="v8-0013-Rename-PruneState.freeze-to-attempt_freeze.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7bt12 RnJvbSAzMjAyZjU2ZmU5NmMzMGM3OWMwM2ZhNGU2MDkwYWU2NzAxMjg0MGFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDMxIEp1bCAyMDI1IDE0OjA3OjUxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAxMy8yMl0gUmVuYW1lIFBydW5lU3RhdGUuZnJlZXplIHRvIGF0dGVtcHRfZnJlZXpl CgpUaGlzIG1ha2VzIGl0IG1vcmUgY2xlYXIgdGhhdCB0aGlzIGlzIHRvIGluZGljYXRlIHRoZSBj YWxsZXIgd291bGQgbGlrZQpoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRvIGNvbnNpZGVy IGZyZWV6aW5nIHR1cGxlcyAtLSBub3QgdGhhdCB3ZQp1bHRpbWF0ZWx5IHdpbGwgZW5kIHVwIGZy ZWV6aW5nIHRoZW0uCgpBbHNvIHJlbmFtZSBsb2NhbCB2YXJpYWJsZSBoaW50X2JpdF9mcGkgdG8g ZGlkX3R1cGxlX2hpbnRfZnBpLiBUaGlzCm1ha2VzIGl0IGNsZWFyIGl0IGlzIGFib3V0IHR1cGxl IGhpbnRzIGFuZCBub3QgcGFnZSBoaW50cyBhbmQgdGhhdCBpdAppbmRpY2F0ZXMgc29tZXRoaW5n IHRoYXQgaGFwcGVuZWQgYW5kIG5vdCBzb21ldGhpbmcgdGhhdCBjb3VsZCBoYXBwZW4uCi0tLQog c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgfCAyMCArKysrKysrKysrLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggN2NlZjA1YmU1ZDAuLmVmOWJiMGMy NzNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtNDMsNyArNDMsNyBAQCB0 eXBlZGVmIHN0cnVjdAogCS8qIHdoZXRoZXIgb3Igbm90IGRlYWQgaXRlbXMgY2FuIGJlIHNldCBM UF9VTlVTRUQgZHVyaW5nIHBydW5pbmcgKi8KIAlib29sCQltYXJrX3VudXNlZF9ub3c7CiAJLyog d2hldGhlciB0byBhdHRlbXB0IGZyZWV6aW5nIHR1cGxlcyAqLwotCWJvb2wJCWZyZWV6ZTsKKwli b29sCQlhdHRlbXB0X2ZyZWV6ZTsKIAogCS8qCiAJICogV2hldGhlciBvciBub3QgdG8gY29uc2lk ZXIgdXBkYXRpbmcgdGhlIFZNLiBUaGVyZSBpcyBzb21lIGJvb2trZWVwaW5nCkBAIC00NTIsNyAr NDUyLDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1 ZmZlciBidWZmZXIsCiAJYm9vbAkJZG9fc2V0X3ZtOwogCXVpbnQ4CQl2bWZsYWdzID0gMDsKIAl1 aW50OAkJb2xkX3ZtYml0cyA9IDA7Ci0JYm9vbAkJaGludF9iaXRfZnBpOworCWJvb2wJCWRpZF90 dXBsZV9oaW50X2ZwaTsKIAlpbnQ2NAkJZnBpX2JlZm9yZSA9IHBnV2FsVXNhZ2Uud2FsX2ZwaTsK IAlib29sCQlhbGxfZnJvemVuX2V4Y2VwdF9scF9kZWFkID0gZmFsc2U7CiAJYm9vbAkJc2V0X3Bk X2FsbF92aXNpYmxlID0gZmFsc2U7CkBAIC00NjAsNyArNDYwLDcgQEAgaGVhcF9wYWdlX3BydW5l X2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJLyogQ29weSBw YXJhbWV0ZXJzIHRvIHByc3RhdGUgKi8KIAlwcnN0YXRlLnZpc3Rlc3QgPSB2aXN0ZXN0OwogCXBy c3RhdGUubWFya191bnVzZWRfbm93ID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfTUFSS19V TlVTRURfTk9XKSAhPSAwOwotCXByc3RhdGUuZnJlZXplID0gKG9wdGlvbnMgJiBIRUFQX1BBR0Vf UFJVTkVfRlJFRVpFKSAhPSAwOworCXByc3RhdGUuYXR0ZW1wdF9mcmVlemUgPSAob3B0aW9ucyAm IEhFQVBfUEFHRV9QUlVORV9GUkVFWkUpICE9IDA7CiAJcHJzdGF0ZS5jb25zaWRlcl91cGRhdGVf dm0gPSAob3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVk0pICE9IDA7CiAJcHJzdGF0 ZS5jdXRvZmZzID0gY3V0b2ZmczsKIApAQCAtNDg1LDcgKzQ4NSw3IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCiAJLyogaW5p dGlhbGl6ZSBwYWdlIGZyZWV6aW5nIHdvcmtpbmcgc3RhdGUgKi8KIAlwcnN0YXRlLnBhZ2Vmcnou ZnJlZXplX3JlcXVpcmVkID0gZmFsc2U7Ci0JaWYgKHByc3RhdGUuZnJlZXplKQorCWlmIChwcnN0 YXRlLmF0dGVtcHRfZnJlZXplKQogCXsKIAkJQXNzZXJ0KG5ld19yZWxmcm96ZW5feGlkICYmIG5l d19yZWxtaW5fbXhpZCk7CiAJCXByc3RhdGUucGFnZWZyei5GcmVlemVQYWdlUmVsZnJvemVuWGlk ID0gKm5ld19yZWxmcm96ZW5feGlkOwpAQCAtNTM1LDcgKzUzNSw3IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIGJvb2tr ZWVwaW5nLiBJbml0aWFsaXppbmcgYWxsX3Zpc2libGUgdG8gZmFsc2UgYWxsb3dzIHNraXBwaW5n IHRoZSB3b3JrCiAJICogdG8gdXBkYXRlIHRoZW0gaW4gaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFu Z2VkX2xwX25vcm1hbCgpLgogCSAqLwotCWlmIChwcnN0YXRlLmZyZWV6ZSkKKwlpZiAocHJzdGF0 ZS5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCXByc3RhdGUuYWxsX3Zpc2libGUgPSB0cnVlOwogCQlw cnN0YXRlLmFsbF9mcm96ZW4gPSB0cnVlOwpAQCAtNjUzLDcgKzY1Myw3IEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIElm IGNoZWNrc3VtcyBhcmUgZW5hYmxlZCwgaGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFjdXVtKCkgbWF5 IGhhdmUgY2F1c2VkCiAJICogYW4gRlBJIHRvIGJlIGVtaXR0ZWQuCiAJICovCi0JaGludF9iaXRf ZnBpID0gZnBpX2JlZm9yZSAhPSBwZ1dhbFVzYWdlLndhbF9mcGk7CisJZGlkX3R1cGxlX2hpbnRf ZnBpID0gZnBpX2JlZm9yZSAhPSBwZ1dhbFVzYWdlLndhbF9mcGk7CiAKIAkvKgogCSAqIFByb2Nl c3MgSE9UIGNoYWlucy4KQEAgLTc3MCw3ICs3NzAsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2Zy ZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkgKiBwbGFucyB3ZSBwcmVw YXJlZCwgb3Igbm90LgogCSAqLwogCWRvX2ZyZWV6ZSA9IGZhbHNlOwotCWlmIChwcnN0YXRlLmZy ZWV6ZSkKKwlpZiAocHJzdGF0ZS5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCWlmIChwcnN0YXRlLnBh Z2VmcnouZnJlZXplX3JlcXVpcmVkKQogCQl7CkBAIC04MDMsNyArODAzLDcgQEAgaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkJ ICovCiAJCQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocmVsYXRpb24pKQogCQkJCXsKLQkJCQkJaWYg KGhpbnRfYml0X2ZwaSkKKwkJCQkJaWYgKGRpZF90dXBsZV9oaW50X2ZwaSkKIAkJCQkJCWRvX2Zy ZWV6ZSA9IHRydWU7CiAJCQkJCWVsc2UgaWYgKGRvX3BydW5lKQogCQkJCQl7CkBAIC0xMTI3LDcg KzExMjcsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlciwKIAlwcmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRlLmxwZGVhZF9p dGVtczsKIAkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFscmVhZHkgZmls bGVkIGluICovCiAKLQlpZiAocHJzdGF0ZS5mcmVlemUpCisJaWYgKHByc3RhdGUuYXR0ZW1wdF9m cmVlemUpCiAJewogCQlpZiAocHJlc3VsdC0+bmZyb3plbiA+IDApCiAJCXsKQEAgLTE3MTQsNyAr MTcxNCw3IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoUGFnZSBwYWdl LCBQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iCiAJICogdG8gdXBkYXRlIHRoZSBWTSwg d2UgaGF2ZSB0byBjYWxsIGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUoKSBvbiBldmVyeQogCSAq IHR1cGxlIHRvIGtub3cgd2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2lsbCBiZSB0b3RhbGx5IGZy b3plbi4KIAkgKi8KLQlpZiAocHJzdGF0ZS0+ZnJlZXplKQorCWlmIChwcnN0YXRlLT5hdHRlbXB0 X2ZyZWV6ZSkKIAl7CiAJCWJvb2wJCXRvdGFsbHlfZnJvemVuOwogCi0tIAoyLjQzLjAKCg== --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0015-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisXi.patch" Content-Disposition: attachment; filename="v8-0015-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisXi.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7bx14 RnJvbSAyMTg5ZTExOWEzYjY2NmNiMDczODIxZjhjZjYxZWEwMGI5MzE3ODYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDE4IEp1bCAyMDI1IDE2OjMwOjA0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAxNS8yMl0gUmVuYW1lIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCgpIHRvCiBH bG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwoKQoKQ3VycmVudGx5LCB3ZSBvbmx5IHVzZSBHbG9iYWxW aXNUZXN0SXNSZW1vdmFibGVYaWQoKSB0byBjaGVjayBpZiBhCnR1cGxlJ3MgeG1heCBpcyB2aXNp YmxlIHRvIGFsbCwgbWVhbmluZyB3ZSBjYW4gcmVtb3ZlIGl0LiBCdXQgZnV0dXJlCmNvbW1pdHMg d2lsbCB1c2UgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgdG8gdGVzdCBpZiBhIHR1cGxl J3MgeG1pbgppcyB2aXNpYmxlIHRvIGFsbCBmb3IgdGhlIHB1cnBvc2VzIG9mIGRldGVybWluaW5n IGlmIHNldHRpbmcgdGhlIHBhZ2UKYWxsLXZpc2libGUgaW4gdGhlIFZNLiBJbiB0aGF0IGNhc2Us IGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gY2FsbCB0aGUKZnVuY3Rpb24gR2xvYmFsVmlzWGlkVmlz aWJsZVRvQWxsKCkuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxp dHkuYyB8ICA2ICsrKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAg ICAgICB8IDE0ICsrKysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Zh Y3V1bS5jICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5j ICAgICAgICAgfCAxMyArKysrKystLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmgg ICAgICAgICAgICAgICAgIHwgIDQgKystLQogNSBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25z KCspLCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW1fdmlzaWJpbGl0eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zp c2liaWxpdHkuYwppbmRleCAwNWY2OTQ2ZmU2MC4uNGViYzhhYmRiZWIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYwpAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAg SGVhcFR1cGxlU2F0aXNmaWVzTm9uVmFjdXVtYWJsZShIZWFwVHVwbGUgaHR1cCwgU25hcHNob3Qg c25hcHNob3QsCiAJewogCQlBc3NlcnQoVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVhZF9hZnRlcikp OwogCi0JCWlmIChHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoc25hcHNob3QtPnZpc3Rlc3Qs IGRlYWRfYWZ0ZXIpKQorCQlpZiAoR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHNuYXBzaG90LT52 aXN0ZXN0LCBkZWFkX2FmdGVyKSkKIAkJCXJlcyA9IEhFQVBUVVBMRV9ERUFEOwogCX0KIAllbHNl CkBAIC0xNTEyLDggKzE1MTIsOCBAQCBIZWFwVHVwbGVJc1N1cmVseURlYWQoSGVhcFR1cGxlIGh0 dXAsIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0KQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBEZWxl dGVyIGNvbW1pdHRlZCwgc28gdHVwbGUgaXMgZGVhZCBpZiB0aGUgWElEIGlzIG9sZCBlbm91Z2gu ICovCi0JcmV0dXJuIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LAotCQkJCQkJ CQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0UmF3WG1heCh0dXBsZSkpOworCXJldHVybiBHbG9iYWxW aXNYaWRWaXNpYmxlVG9BbGwodmlzdGVzdCwKKwkJCQkJCQkJCUhlYXBUdXBsZUhlYWRlckdldFJh d1htYXgodHVwbGUpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5k ZXggZGU2NTYwODc5NDEuLjEzMDBkMGU4OWYzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYwpAQCAtMjMxLDcgKzIzMSw3IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVs YXRpb24sIEJ1ZmZlciBidWZmZXIpCiAJICovCiAJdmlzdGVzdCA9IEdsb2JhbFZpc1Rlc3RGb3Io cmVsYXRpb24pOwogCi0JaWYgKCFHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQodmlzdGVzdCwg cHJ1bmVfeGlkKSkKKwlpZiAoIUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCh2aXN0ZXN0LCBwcnVu ZV94aWQpKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtNTc0LDkgKzU3NCw5IEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIERl dGVybWluaW5nIEhUU1Ygb25seSBvbmNlIGZvciBlYWNoIHR1cGxlIGlzIHJlcXVpcmVkIGZvciBj b3JyZWN0bmVzcywKIAkgKiB0byBkZWFsIHdpdGggY2FzZXMgd2hlcmUgcnVubmluZyBIVFNWIHR3 aWNlIGNvdWxkIHJlc3VsdCBpbiBkaWZmZXJlbnQKIAkgKiByZXN1bHRzLiAgRm9yIGV4YW1wbGUs IFJFQ0VOVExZX0RFQUQgY2FuIHR1cm4gdG8gREVBRCBpZiBhbm90aGVyCi0JICogY2hlY2tlZCBp dGVtIGNhdXNlcyBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKCkgdG8gdXBkYXRlIHRo ZQotCSAqIGhvcml6b24sIG9yIElOU0VSVF9JTl9QUk9HUkVTUyBjYW4gY2hhbmdlIHRvIERFQUQg aWYgdGhlIGluc2VydGluZwotCSAqIHRyYW5zYWN0aW9uIGFib3J0cy4KKwkgKiBjaGVja2VkIGl0 ZW0gY2F1c2VzIEdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCgpIHRvIHVwZGF0ZSB0aGUgaG9yaXpv biwKKwkgKiBvciBJTlNFUlRfSU5fUFJPR1JFU1MgY2FuIGNoYW5nZSB0byBERUFEIGlmIHRoZSBp bnNlcnRpbmcgdHJhbnNhY3Rpb24KKwkgKiBhYm9ydHMuCiAJICoKIAkgKiBJdCdzIGFsc28gZ29v ZCBmb3IgcGVyZm9ybWFuY2UuIE1vc3QgY29tbW9ubHkgdHVwbGVzIHdpdGhpbiBhIHBhZ2UgYXJl CiAJICogc3RvcmVkIGF0IGRlY3JlYXNpbmcgb2Zmc2V0cyAod2hpbGUgdGhlIGl0ZW1zIGFyZSBz dG9yZWQgYXQgaW5jcmVhc2luZwpAQCAtMTE3MiwxMSArMTE3MiwxMSBAQCBoZWFwX3BydW5lX3Nh dGlzZmllc192YWN1dW0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgSGVhcFR1cGxlIHR1cCwgQnVmZmVy IGJ1ZmZlcikKIAkgKiBEZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIHR1cGxlIGlzIGNvbnNp ZGVyZWQgZGVhZCB3aGVuIGNvbXBhcmVkCiAJICogd2l0aCB0aGUgcHJvdmlkZWQgR2xvYmFsVmlz U3RhdGUuIE9uLWFjY2VzcyBwcnVuaW5nIGRvZXMgbm90IHByb3ZpZGUKIAkgKiBWYWN1dW1DdXRv ZmZzLiBBbmQgZm9yIHZhY3V1bSwgZXZlbiBpZiB0aGUgdHVwbGUncyB4bWF4IGlzIG5vdCBvbGRl cgotCSAqIHRoYW4gT2xkZXN0WG1pbiwgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgY291 bGQgZmluZCB0aGUgcm93IGRlYWQKLQkgKiBpZiB0aGUgR2xvYmFsVmlzU3RhdGUgaGFzIGJlZW4g dXBkYXRlZCBzaW5jZSB0aGUgYmVnaW5uaW5nIG9mIHZhY3V1bWluZworCSAqIHRoYW4gT2xkZXN0 WG1pbiwgR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKCkgY291bGQgZmluZCB0aGUgcm93IGRlYWQg aWYKKwkgKiB0aGUgR2xvYmFsVmlzU3RhdGUgaGFzIGJlZW4gdXBkYXRlZCBzaW5jZSB0aGUgYmVn aW5uaW5nIG9mIHZhY3V1bWluZwogCSAqIHRoZSByZWxhdGlvbi4KIAkgKi8KLQlpZiAoR2xvYmFs VmlzVGVzdElzUmVtb3ZhYmxlWGlkKHByc3RhdGUtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIpKQorCWlm IChHbG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwocHJzdGF0ZS0+dmlzdGVzdCwgZGVhZF9hZnRlcikp CiAJCXJldHVybiBIRUFQVFVQTEVfREVBRDsKIAogCXJldHVybiByZXM7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3NwZ2lzdC9zcGd2YWN1dW0uYwppbmRleCA4ZjhhMWFkNzc5Ni4uNDk2Y2NhNjk0MTAgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwpAQCAtNTM2LDcgKzUzNiw3IEBAIHZhY3V1 bVJlZGlyZWN0QW5kUGxhY2Vob2xkZXIoUmVsYXRpb24gaW5kZXgsIFJlbGF0aW9uIGhlYXByZWws IEJ1ZmZlciBidWZmZXIpCiAJCSAqLwogCQlpZiAoZHQtPnR1cHN0YXRlID09IFNQR0lTVF9SRURJ UkVDVCAmJgogCQkJKCFUcmFuc2FjdGlvbklkSXNWYWxpZChkdC0+eGlkKSB8fAotCQkJIEdsb2Jh bFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LCBkdC0+eGlkKSkpCisJCQkgR2xvYmFsVmlz WGlkVmlzaWJsZVRvQWxsKHZpc3Rlc3QsIGR0LT54aWQpKSkKIAkJewogCQkJZHQtPnR1cHN0YXRl ID0gU1BHSVNUX1BMQUNFSE9MREVSOwogCQkJQXNzZXJ0KG9wYXF1ZS0+blJlZGlyZWN0aW9uID4g MCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyBiL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCmluZGV4IDIwMGY3MmM2ZTI1Li41YzEy MWNkNzJmNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMK KysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKQEAgLTQxODEsOCArNDE4 MSw3IEBAIEdsb2JhbFZpc1VwZGF0ZSh2b2lkKQogICogU2VlIGNvbW1lbnQgZm9yIEdsb2JhbFZp c1N0YXRlIGZvciBkZXRhaWxzLgogICovCiBib29sCi1HbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVG dWxsWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwKLQkJCQkJCQkJRnVsbFRyYW5zYWN0aW9uSWQg ZnhpZCkKK0dsb2JhbFZpc0Z1bGxYaWRWaXNpYmxlKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgRnVs bFRyYW5zYWN0aW9uSWQgZnhpZCkKIHsKIAkvKgogCSAqIElmIGZ4aWQgaXMgb2xkZXIgdGhhbiBt YXliZV9uZWVkZWQgYm91bmQsIGl0IGRlZmluaXRlbHkgaXMgdmlzaWJsZSB0bwpAQCAtNDIyMyw3 ICs0MjIyLDcgQEAgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChHbG9iYWxWaXNTdGF0 ZSAqc3RhdGUsCiAgKiByZWxmcm96ZW54aWQpLgogICovCiBib29sCi1HbG9iYWxWaXNUZXN0SXNS ZW1vdmFibGVYaWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCkKK0ds b2JhbFZpc1hpZFZpc2libGVUb0FsbChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9u SWQgeGlkKQogewogCUZ1bGxUcmFuc2FjdGlvbklkIGZ4aWQ7CiAKQEAgLTQyMzcsNyArNDIzNiw3 IEBAIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRy YW5zYWN0aW9uSWQgeGlkKQogCSAqLwogCWZ4aWQgPSBGdWxsWGlkUmVsYXRpdmVUbyhzdGF0ZS0+ ZGVmaW5pdGVseV9uZWVkZWQsIHhpZCk7CiAKLQlyZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3Zh YmxlRnVsbFhpZChzdGF0ZSwgZnhpZCk7CisJcmV0dXJuIEdsb2JhbFZpc0Z1bGxYaWRWaXNpYmxl KHN0YXRlLCBmeGlkKTsKIH0KIAogLyoKQEAgLTQyNTEsMTIgKzQyNTAsMTIgQEAgR2xvYmFsVmlz Q2hlY2tSZW1vdmFibGVGdWxsWGlkKFJlbGF0aW9uIHJlbCwgRnVsbFRyYW5zYWN0aW9uSWQgZnhp ZCkKIAogCXN0YXRlID0gR2xvYmFsVmlzVGVzdEZvcihyZWwpOwogCi0JcmV0dXJuIEdsb2JhbFZp c1Rlc3RJc1JlbW92YWJsZUZ1bGxYaWQoc3RhdGUsIGZ4aWQpOworCXJldHVybiBHbG9iYWxWaXNG dWxsWGlkVmlzaWJsZShzdGF0ZSwgZnhpZCk7CiB9CiAKIC8qCiAgKiBDb252ZW5pZW5jZSB3cmFw cGVyIGFyb3VuZCBHbG9iYWxWaXNUZXN0Rm9yKCkgYW5kCi0gKiBHbG9iYWxWaXNUZXN0SXNSZW1v dmFibGVYaWQoKSwgc2VlIHRoZWlyIGNvbW1lbnRzLgorICogR2xvYmFsVmlzVGVzdElzVmlzaWJs ZVhpZCgpLCBzZWUgdGhlaXIgY29tbWVudHMuCiAgKi8KIGJvb2wKIEdsb2JhbFZpc0NoZWNrUmVt b3ZhYmxlWGlkKFJlbGF0aW9uIHJlbCwgVHJhbnNhY3Rpb25JZCB4aWQpCkBAIC00MjY1LDcgKzQy NjQsNyBAQCBHbG9iYWxWaXNDaGVja1JlbW92YWJsZVhpZChSZWxhdGlvbiByZWwsIFRyYW5zYWN0 aW9uSWQgeGlkKQogCiAJc3RhdGUgPSBHbG9iYWxWaXNUZXN0Rm9yKHJlbCk7CiAKLQlyZXR1cm4g R2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKHN0YXRlLCB4aWQpOworCXJldHVybiBHbG9iYWxW aXNYaWRWaXNpYmxlVG9BbGwoc3RhdGUsIHhpZCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS91dGlscy9zbmFwbWdyLmggYi9zcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmgKaW5k ZXggNjA0YzFmOTAyMTYuLjU0N2M3MWZjYmZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGls cy9zbmFwbWdyLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5oCkBAIC0xMDAsOCAr MTAwLDggQEAgZXh0ZXJuIGNoYXIgKkV4cG9ydFNuYXBzaG90KFNuYXBzaG90IHNuYXBzaG90KTsK ICAqLwogdHlwZWRlZiBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGUgR2xvYmFsVmlzU3RhdGU7CiBleHRl cm4gR2xvYmFsVmlzU3RhdGUgKkdsb2JhbFZpc1Rlc3RGb3IoUmVsYXRpb24gcmVsKTsKLWV4dGVy biBib29sIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUs IFRyYW5zYWN0aW9uSWQgeGlkKTsKLWV4dGVybiBib29sIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJs ZUZ1bGxYaWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBGdWxsVHJhbnNhY3Rpb25JZCBmeGlkKTsK K2V4dGVybiBib29sIEdsb2JhbFZpc1hpZFZpc2libGVUb0FsbChHbG9iYWxWaXNTdGF0ZSAqc3Rh dGUsIFRyYW5zYWN0aW9uSWQgeGlkKTsKK2V4dGVybiBib29sIEdsb2JhbFZpc0Z1bGxYaWRWaXNp YmxlKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgRnVsbFRyYW5zYWN0aW9uSWQgZnhpZCk7CiBleHRl cm4gYm9vbCBHbG9iYWxWaXNDaGVja1JlbW92YWJsZVhpZChSZWxhdGlvbiByZWwsIFRyYW5zYWN0 aW9uSWQgeGlkKTsKIGV4dGVybiBib29sIEdsb2JhbFZpc0NoZWNrUmVtb3ZhYmxlRnVsbFhpZChS ZWxhdGlvbiByZWwsIEZ1bGxUcmFuc2FjdGlvbklkIGZ4aWQpOwogCi0tIAoyLjQzLjAKCg== --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0016-Use-GlobalVisState-to-determine-page-level-visibi.patch" Content-Disposition: attachment; filename="v8-0016-Use-GlobalVisState-to-determine-page-level-visibi.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7c015 RnJvbSBlMzc0NTRiNGJhYTk1ZTA3MGMzYTVkMzlhZmZjYzJkNGFlNzMzYWQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM4OjI0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAxNi8yMl0gVXNlIEdsb2JhbFZpc1N0YXRlIHRvIGRldGVybWluZSBwYWdlIGxldmVs CiB2aXNpYmlsaXR5CgpEdXJpbmcgcHJ1bmluZyBhbmQgZHVyaW5nIHZhY3V1bSdzIHRoaXJkIHBo YXNlLCB3ZSB0cnkgdG8gZGV0ZXJtaW5lIGlmCnRoZSB3aG9sZSBwYWdlIGNhbiBiZSBzZXQgYWxs LXZpc2libGUgaW4gdGhlIHZpc2liaWxpdHkgbWFwLiBJbnN0ZWFkIG9mCnVzaW5nIE9sZGVzdFht aW4gdG8gZGV0ZXJtaW5lIGlmIGFsbCB0aGUgdHVwbGVzIG9uIGEgcGFnZSBhcmUgdmlzaWJsZSB0 bwpldmVyeW9uZSwgdXNlIHRoZSBHbG9iYWxWaXNTdGF0ZS4gVGhpcyBhbGxvd3MgdXMgdG8gc3Rh cnQgc2V0dGluZyB0aGUgVk0KZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nIGluIGEgZnV0dXJlIGNv bW1pdC4KCkl0IGlzIHBvc3NpYmxlIGZvciB0aGUgR2xvYmFsVmlzU3RhdGUgdG8gY2hhbmdlIGR1 cmluZyB0aGUgY291cnNlIG9mIGEKdmFjdXVtLiBJbiBhbGwgYnV0IGV4dHJhb3JkaW5hcnkgY2Fz ZXMsIGl0IG1vdmVzIGZvcndhcmQsIG1lYW5pbmcgbW9yZQpwYWdlcyBjb3VsZCBwb3RlbnRpYWxs eSBiZSBzZXQgaW4gdGhlIFZNLgoKQmVjYXVzZSBjb21wYXJpbmcgYSB0cmFuc2FjdGlvbiBJRCB0 byB0aGUgR2xvYmFsVmlzU3RhdGUgcmVxdWlyZXMgbW9yZQpvcGVyYXRpb25zIHRoYW4gY29tcGFy aW5nIGl0IHRvIGFub3RoZXIgc2luZ2xlIHRyYW5zYWN0aW9uIElELCB3ZSBub3cKd2FpdCB1bnRp bCBhZnRlciBleGFtaW5pbmcgYWxsIHRoZSB0dXBsZXMgb24gdGhlIHBhZ2UgYW5kIGlmIHdlIGhh dmUKbWFpbnRhaW5lZCB0aGUgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLCB3ZSBjb21wYXJlIHRoYXQg dG8gdGhlCkdsb2JhbFZpc1N0YXRlIGp1c3Qgb25jZSBwZXIgcGFnZS4gVGhpcyB3b3JrcyBiZWNh dXNlIGlmIHRoZSBwYWdlIGlzCmFsbC12aXNpYmxlIGFuZCBoYXMgbGl2ZSwgY29tbWl0dGVkIHR1 cGxlcyBvbiBpdCwgdGhlCnZpc2liaWxpdHlfY3V0b2ZmX3hpZCB3aWxsIGNvbnRhaW4gdGhlIG5l d2VzdCB4bWluIG9uIHRoZSBwYWdlLiBJZgpldmVyeW9uZSBjYW4gc2VlIGl0LCB0aGUgcGFnZSBp cyB0cnVseSBhbGwtdmlzaWJsZS4KCkRvaW5nIHRoaXMgbWF5IG1lYW4gd2UgZXhhbWluZSBtb3Jl IHR1cGxlcycgeG1pbnMgdGhhbiBiZWZvcmUsIGFzIHdlIG1heQpoYXZlIHNldCBhbGxfdmlzaWJs ZSB0byBmYWxzZSBzb29uZXIgd2hlbiBlbmNvdW50ZXJpbmcgYSBsaXZlIHR1cGxlCm5ld2VyIHRo YW4gT2xkZXN0WG1pbi4gSG93ZXZlciwgdGhlc2UgZXh0cmEgY29tcGFyaXNvbnMgd2VyZSBmb3Vu ZCBub3QKdG8gYmUgc2lnbmlmaWNhbnQgaW4gYSBwcm9maWxlLgotLS0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMgfCAyOCArKysrKysrKysrKysKIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAgICAgICAgfCA0OCArKysrKysrKystLS0tLS0t LS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgICAgICAgfCAxNyAr KysrLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgICAgICB8ICA0 ICstCiA0IGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCmluZGV4IDRlYmM4 YWJkYmViLi5lZGQ1MjlkYzNjMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtX3Zpc2liaWxpdHkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1f dmlzaWJpbGl0eS5jCkBAIC0xMTg5LDYgKzExODksMzQgQEAgSGVhcFR1cGxlU2F0aXNmaWVzVmFj dXVtKEhlYXBUdXBsZSBodHVwLCBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCiAJcmV0dXJuIHJl czsKIH0KIAorLyoKKyAqIE5lYXJseSB0aGUgc2FtZSBhcyBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1 dW0sIGJ1dCB1c2VzIGEgR2xvYmFsVmlzU3RhdGUgdG8KKyAqIGRldGVybWluZSB3aGV0aGVyIG9y IG5vdCBhIHR1cGxlIGlzIEhFQVBUVVBMRV9ERUFEIE9yCisgKiBIRUFQVFVQTEVfUkVDRU5UTFlf REVBRC4gSXQgc2VydmVzIHRoZSBzYW1lIHB1cnBvc2UgYnV0IGNhbiBiZSB1c2VkIGJ5CisgKiBj YWxsZXJzIHRoYXQgaGF2ZSBub3QgY2FsY3VsYXRlZCBhIHNpbmdsZSBPbGRlc3RYbWluIHZhbHVl LgorICovCitIVFNWX1Jlc3VsdAorSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtR2xvYmFsVmlzKEhl YXBUdXBsZSBodHVwLCBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKKwkJCQkJCQkJICBCdWZmZXIg YnVmZmVyKQoreworCVRyYW5zYWN0aW9uSWQgZGVhZF9hZnRlciA9IEludmFsaWRUcmFuc2FjdGlv bklkOworCUhUU1ZfUmVzdWx0IHJlczsKKworCXJlcyA9IEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1 bUhvcml6b24oaHR1cCwgYnVmZmVyLCAmZGVhZF9hZnRlcik7CisKKwlpZiAocmVzID09IEhFQVBU VVBMRV9SRUNFTlRMWV9ERUFEKQorCXsKKwkJQXNzZXJ0KFRyYW5zYWN0aW9uSWRJc1ZhbGlkKGRl YWRfYWZ0ZXIpKTsKKworCQlpZiAoR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHZpc3Rlc3QsIGRl YWRfYWZ0ZXIpKQorCQkJcmVzID0gSEVBUFRVUExFX0RFQUQ7CisJfQorCWVsc2UKKwkJQXNzZXJ0 KCFUcmFuc2FjdGlvbklkSXNWYWxpZChkZWFkX2FmdGVyKSk7CisKKwlyZXR1cm4gcmVzOworfQor CiAvKgogICogV29yayBob3JzZSBmb3IgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtIGFuZCBzaW1p bGFyIHJvdXRpbmVzLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggMTMw MGQwZTg5ZjMuLmYwODMxODlmY2NjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpA QCAtMTQxLDEwICsxNDEsOSBAQCB0eXBlZGVmIHN0cnVjdAogCSAqIGFsbF92aXNpYmxlIGFuZCBh bGxfZnJvemVuIGluZGljYXRlIGlmIHRoZSBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbgogCSAq IGJpdHMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBhZnRl ciBwcnVuaW5nLgogCSAqCi0JICogdmlzaWJpbGl0eV9jdXRvZmZfeGlkIGlzIHRoZSBuZXdlc3Qg eG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZS4KLQkgKiBUaGUgY2FsbGVyIGNhbiB1c2Ug aXQgYXMgdGhlIGNvbmZsaWN0IGhvcml6b24sIHdoZW4gc2V0dGluZyB0aGUgVk0KLQkgKiBiaXRz LiAgSXQgaXMgb25seSB2YWxpZCBpZiB3ZSBmcm96ZSBzb21lIHR1cGxlcywgYW5kIGFsbF9mcm96 ZW4gaXMKLQkgKiB0cnVlLgorCSAqIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCBpcyB0aGUgbmV3ZXN0 IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuIEl0CisJICogY2FuIGJlIHVzZWQgYXMg dGhlIGNvbmZsaWN0IGhvcml6b24sIHdoZW4gc2V0dGluZyB0aGUgVk0gb3Igd2hlbgorCSAqIGZy ZWV6aW5nIGFsbCB0aGUgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuCiAJICoKIAkgKiBOT1RFOiBh bGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBkb24ndCBpbmNsdWRlIExQX0RFQUQgaXRlbXMgdW50 aWwKIAkgKiBkaXJlY3RseSBiZWZvcmUgdXBkYXRpbmcgdGhlIFZNLiBXZSBpZ25vcmUgTFBfREVB RCBpdGVtcyB3aGVuIGRlY2lkaW5nCkBAIC01NTMsMTQgKzU1MiwxMiBAQCBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAogCS8qCiAJ ICogVGhlIHZpc2liaWxpdHkgY3V0b2ZmIHhpZCBpcyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2ZSwg Y29tbWl0dGVkIHR1cGxlcwotCSAqIG9sZGVyIHRoYW4gT2xkZXN0WG1pbiBvbiB0aGUgcGFnZS4g VGhpcyBmaWVsZCBpcyBvbmx5IGtlcHQgdXAtdG8tZGF0ZQotCSAqIGlmIHRoZSBwYWdlIGlzIGFs bC12aXNpYmxlLiBBcyBzb29uIGFzIGEgdHVwbGUgaXMgZW5jb3VudGVyZWQgdGhhdCBpcwotCSAq IG5vdCB2aXNpYmxlIHRvIGFsbCwgdGhpcyBmaWVsZCBpcyB1bm1haW50YWluZWQuIEFzIGxvbmcg YXMgaXQgaXMKLQkgKiBtYWludGFpbmVkLCBpdCBjYW4gYmUgdXNlZCB0byBjYWxjdWxhdGUgdGhl IHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24uCi0JICogVGhpcyBpcyBtb3N0IGxpa2VseSB0byBo YXBwZW4gd2hlbiB1cGRhdGluZyB0aGUgVk0gYW5kL29yIGZyZWV6aW5nIGFsbAotCSAqIGxpdmUg dHVwbGVzIG9uIHRoZSBwYWdlLiBJdCBpcyB1cGRhdGVkIGJlZm9yZSByZXR1cm5pbmcgdG8gdGhl IGNhbGxlcgotCSAqIGJlY2F1c2UgdmFjdXVtIGRvZXMgYXNzZXJ0LWJ1aWxkIG9ubHkgdmFsaWRh dGlvbiBvbiB0aGUgcGFnZSB1c2luZyB0aGlzCi0JICogZmllbGQuCisJICogb24gdGhlIHBhZ2Ug b2xkZXIgdGhhbiB0aGUgdmlzaWJpbGl0eSBob3Jpem9uIHJlcHJlc2VudGVkIGluIHRoZQorCSAq IEdsb2JhbFZpc1N0YXRlLgorCSAqCisJICogSWYgd2UgZW5jb3VudGVyIGFuIHVuY29tbWl0dGVk IHR1cGxlLCB0aGlzIGZpZWxkIGlzIHVubWFpbnRhaW5lZC4gSWYKKwkgKiB0aGUgcGFnZSBpcyBi ZWluZyBzZXQgYWxsLXZpc2libGUgb3Igd2hlbiBmcmVlemluZyBhbGwgbGl2ZSB0dXBsZXMgb24K KwkgKiB0aGUgcGFnZSwgaXQgaXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHNuYXBzaG90IGNvbmZs aWN0IGhvcml6b24uCiAJICovCiAJcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZh bGlkVHJhbnNhY3Rpb25JZDsKIApAQCAtNzU2LDYgKzc1MywxNiBAQCBoZWFwX3BhZ2VfcHJ1bmVf YW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJcHJzdGF0ZS5u ZGVhZCA+IDAgfHwKIAkJcHJzdGF0ZS5udW51c2VkID4gMDsKIAorCS8qCisJICogQWZ0ZXIgcHJv Y2Vzc2luZyBhbGwgdGhlIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLCBpZiB0aGUgbmV3ZXN0IHht aW4KKwkgKiBhbW9uZ3N0IHRoZW0gaXMgbm90IHZpc2libGUgdG8gZXZlcnlvbmUsIHRoZSBwYWdl IGNhbm5vdCBiZQorCSAqIGFsbC12aXNpYmxlLgorCSAqLworCWlmIChwcnN0YXRlLmFsbF92aXNp YmxlICYmCisJCVRyYW5zYWN0aW9uSWRJc05vcm1hbChwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2Zm X3hpZCkgJiYKKwkJIUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbChwcnN0YXRlLnZpc3Rlc3QsIHBy c3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkKSkKKwkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IHBy c3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNlOworCiAJLyoKIAkgKiBFdmVuIGlmIHdlIGRvbid0IHBy dW5lIGFueXRoaW5nLCBpZiB3ZSBmb3VuZCBhIG5ldyB2YWx1ZSBmb3IgdGhlCiAJICogcGRfcHJ1 bmVfeGlkIGZpZWxkIG9yIHRoZSBwYWdlIHdhcyBtYXJrZWQgZnVsbCwgd2Ugd2lsbCB1cGRhdGUg dGhvc2UKQEAgLTEwOTgsMTIgKzExMDUsMTAgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCVRyYW5zYWN0aW9uSWQgZGVidWdf Y3V0b2ZmOwogCQlib29sCQlkZWJ1Z19hbGxfZnJvemVuOwogCi0JCUFzc2VydChjdXRvZmZzKTsK LQogCQlBc3NlcnQocHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0gMCk7CiAKIAkJaWYgKCFoZWFwX3Bh Z2VfaXNfYWxsX3Zpc2libGUocmVsYXRpb24sIGJ1ZmZlciwKLQkJCQkJCQkJCSAgY3V0b2Zmcy0+ T2xkZXN0WG1pbiwKKwkJCQkJCQkJCSAgcHJzdGF0ZS52aXN0ZXN0LAogCQkJCQkJCQkJICAmZGVi dWdfYWxsX2Zyb3plbiwKIAkJCQkJCQkJCSAgJmRlYnVnX2N1dG9mZiwgb2ZmX2xvYykpCiAJCQlB c3NlcnQoZmFsc2UpOwpAQCAtMTYyOCwxOSArMTYzMyw2IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3Vu Y2hhbmdlZF9scF9ub3JtYWwoUGFnZSBwYWdlLCBQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXRO dW1iCiAJCQkJICovCiAJCQkJeG1pbiA9IEhlYXBUdXBsZUhlYWRlckdldFhtaW4oaHR1cCk7CiAK LQkJCQkvKgotCQkJCSAqIEZvciBub3cgYWx3YXlzIHVzZSBwcnN0YXRlLT5jdXRvZmZzIGZvciB0 aGlzIHRlc3QsIGJlY2F1c2UKLQkJCQkgKiB3ZSBvbmx5IHVwZGF0ZSAnYWxsX3Zpc2libGUnIHdo ZW4gZnJlZXppbmcgaXMgcmVxdWVzdGVkLiBXZQotCQkJCSAqIGNvdWxkIHVzZSBHbG9iYWxWaXNU ZXN0SXNSZW1vdmFibGVYaWQgaW5zdGVhZCwgaWYgYQotCQkJCSAqIG5vbi1mcmVlemluZyBjYWxs ZXIgd2FudGVkIHRvIHNldCB0aGUgVk0gYml0LgotCQkJCSAqLwotCQkJCUFzc2VydChwcnN0YXRl LT5jdXRvZmZzKTsKLQkJCQlpZiAoIVRyYW5zYWN0aW9uSWRQcmVjZWRlcyh4bWluLCBwcnN0YXRl LT5jdXRvZmZzLT5PbGRlc3RYbWluKSkKLQkJCQl7Ci0JCQkJCXByc3RhdGUtPmFsbF92aXNpYmxl ID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwotCQkJCQlicmVhazsKLQkJCQl9Ci0KIAkJ CQkvKiBUcmFjayBuZXdlc3QgeG1pbiBvbiBwYWdlLiAqLwogCQkJCWlmIChUcmFuc2FjdGlvbklk Rm9sbG93cyh4bWluLCBwcnN0YXRlLT52aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCiAJCQkJCVRy YW5zYWN0aW9uSWRJc05vcm1hbCh4bWluKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YwppbmRleCA2NmNlMzBkZGYwMy4uNjFjNmIzZDIxYWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKQEAgLTQ2NCw3ICs0NjQsNyBAQCBzdGF0aWMgdm9pZCBkZWFkX2l0ZW1zX2Fk ZChMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBPZmZzZXROdW1iZXIgKgog c3RhdGljIHZvaWQgZGVhZF9pdGVtc19yZXNldChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGlj IHZvaWQgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgYm9v bCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGVfZXhjZXB0X2xwZGVhZChSZWxhdGlvbiByZWwsIEJ1 ZmZlciBidWYsCi0JCQkJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJ CQkJCQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkJCQkJCSAgIE9mZnNl dE51bWJlciAqZGVhZG9mZnNldHMsCiAJCQkJCQkJCQkJCQkgICBpbnQgYWxsb3dlZF9udW1fb2Zm c2V0cywKIAkJCQkJCQkJCQkJCSAgIGJvb2wgKmFsbF9mcm96ZW4sCkBAIC0yNzE1LDcgKzI3MTUs NyBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJl ciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkgSW52YWxpZE9mZnNldE51bWJlcik7CiAK IAlpZiAoaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlX2V4Y2VwdF9scGRlYWQodmFjcmVsLT5yZWws IGJ1ZmZlciwKLQkJCQkJCQkJCQkJICAgdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sCisJCQkJ CQkJCQkJCSAgIHZhY3JlbC0+dmlzdGVzdCwKIAkJCQkJCQkJCQkJICAgZGVhZG9mZnNldHMsIG51 bV9vZmZzZXRzLAogCQkJCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2Zm X3hpZCwKIAkJCQkJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtKSkKQEAgLTM0NTgsMTMgKzM0NTgs MTMgQEAgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCkKICAqLwogYm9vbAog aGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKLQkJCQkJ CSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rl c3QsCiAJCQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKIAkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNp YmlsaXR5X2N1dG9mZl94aWQsCiAJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkK IHsKIAotCXJldHVybiBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGVfZXhjZXB0X2xwZGVhZChyZWws IGJ1ZiwgT2xkZXN0WG1pbiwKKwlyZXR1cm4gaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlX2V4Y2Vw dF9scGRlYWQocmVsLCBidWYsIHZpc3Rlc3QsCiAJCQkJCQkJCQkJCQkgIE5VTEwsIDAsCiAJCQkJ CQkJCQkJCQkgIGFsbF9mcm96ZW4sCiAJCQkJCQkJCQkJCQkgIHZpc2liaWxpdHlfY3V0b2ZmX3hp ZCwKQEAgLTM0OTksNyArMzQ5OSw3IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlv biByZWwsIEJ1ZmZlciBidWYsCiAgKi8KIHN0YXRpYyBib29sCiBoZWFwX3BhZ2VfaXNfYWxsX3Zp c2libGVfZXhjZXB0X2xwZGVhZChSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJCQkg ICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAq dmlzdGVzdCwKIAkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCiAJCQkJCQkJ CQkgICBpbnQgYWxsb3dlZF9udW1fb2Zmc2V0cywKIAkJCQkJCQkJCSAgIGJvb2wgKmFsbF9mcm96 ZW4sCkBAIC0zNTU0LDggKzM1NTQsOCBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGVfZXhjZXB0 X2xwZGVhZChSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCXR1cGxlLnRfbGVuID0gSXRlbUlk R2V0TGVuZ3RoKGl0ZW1pZCk7CiAJCXR1cGxlLnRfdGFibGVPaWQgPSBSZWxhdGlvbkdldFJlbGlk KHJlbCk7CiAKLQkJc3dpdGNoIChIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0oJnR1cGxlLCBPbGRl c3RYbWluLAotCQkJCQkJCQkJCSBidWYpKQorCQlzd2l0Y2ggKEhlYXBUdXBsZVNhdGlzZmllc1Zh Y3V1bUdsb2JhbFZpcygmdHVwbGUsIHZpc3Rlc3QsCisJCQkJCQkJCQkJCQkgIGJ1ZikpCiAJCXsK IAkJCWNhc2UgSEVBUFRVUExFX0xJVkU6CiAJCQkJewpAQCAtMzU3NCw4ICszNTc0LDcgQEAgaGVh cF9wYWdlX2lzX2FsbF92aXNpYmxlX2V4Y2VwdF9scGRlYWQoUmVsYXRpb24gcmVsLCBCdWZmZXIg YnVmLAogCQkJCQkgKiB0aGF0IGV2ZXJ5b25lIHNlZXMgaXQgYXMgY29tbWl0dGVkPwogCQkJCQkg Ki8KIAkJCQkJeG1pbiA9IEhlYXBUdXBsZUhlYWRlckdldFhtaW4odHVwbGUudF9kYXRhKTsKLQkJ CQkJaWYgKCFUcmFuc2FjdGlvbklkUHJlY2VkZXMoeG1pbiwKLQkJCQkJCQkJCQkJICAgT2xkZXN0 WG1pbikpCisJCQkJCWlmICghR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHZpc3Rlc3QsIHhtaW4p KQogCQkJCQl7CiAJCQkJCQlhbGxfdmlzaWJsZSA9IGZhbHNlOwogCQkJCQkJKmFsbF9mcm96ZW4g PSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9p bmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCAwYjliYjFjOWIxMy4uNDI3OGYzNTFiZGYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvaGVhcGFtLmgKQEAgLTM0Miw3ICszNDIsNyBAQCBleHRlcm4gdm9pZCBoZWFwX2lucGxh Y2VfdW5sb2NrKFJlbGF0aW9uIHJlbGF0aW9uLAogCQkJCQkJCQlIZWFwVHVwbGUgb2xkdHVwLCBC dWZmZXIgYnVmZmVyKTsKIAogZXh0ZXJuIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJl bGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKLQkJCQkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFht aW4sCisJCQkJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJCQkJCQkJCQkgYm9vbCAq YWxsX2Zyb3plbiwKIAkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94 aWQsCiAJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CkBAIC00MTUsNiAr NDE1LDggQEAgZXh0ZXJuIFRNX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNVcGRhdGUoSGVhcFR1 cGxlIGh0dXAsIENvbW1hbmRJZCBjdXJjaWQsCiAJCQkJCQkJCQkJICBCdWZmZXIgYnVmZmVyKTsK IGV4dGVybiBIVFNWX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0oSGVhcFR1cGxlIGh0 dXAsIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAkJCQkJCQkJCQkJQnVmZmVyIGJ1ZmZlcik7 CitleHRlcm4gSFRTVl9SZXN1bHQgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtR2xvYmFsVmlzKEhl YXBUdXBsZSBodHVwLAorCQkJCQkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwgQnVm ZmVyIGJ1ZmZlcik7CiBleHRlcm4gSFRTVl9SZXN1bHQgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVt SG9yaXpvbihIZWFwVHVwbGUgaHR1cCwgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkJCQkJCSAgIFRy YW5zYWN0aW9uSWQgKmRlYWRfYWZ0ZXIpOwogZXh0ZXJuIHZvaWQgSGVhcFR1cGxlU2V0SGludEJp dHMoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLCBCdWZmZXIgYnVmZmVyLAotLSAKMi40My4wCgo= --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0017-Inline-TransactionIdFollows-Precedes.patch" Content-Disposition: attachment; filename="v8-0017-Inline-TransactionIdFollows-Precedes.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7c216 RnJvbSA3OWU3NWQ1ZmU5ZTQwOTY0Y2UyZDQ3OWY4MjA3YzllNTY3NDlmNDFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDA5OjU3OjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAxNy8yMl0gSW5saW5lIFRyYW5zYWN0aW9uSWRGb2xsb3dzL1ByZWNlZGVzKCkKCkNh bGxpbmcgdGhlc2UgZnJvbSBvbi1hY2Nlc3MgcHJ1bmluZyBjb2RlIGhhZCBub3RpY2VhYmxlIG92 ZXJoZWFkIGluIGEKcHJvZmlsZS4gVGhlcmUgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHJlYXNvbiBu b3QgdG8gaW5saW5lIHRoZW0uCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHJhbnNh bS5jIHwgNjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL3Ry YW5zYW0uaCAgICAgICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMiBmaWxl cyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90cmFuc2FtLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS90cmFuc2FtLmMKaW5kZXggOWEzOTQ1MWEyOWEuLjU1M2Q2NzU2Y2IzIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90cmFuc2FtLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vdHJhbnNhbS5jCkBAIC0yNzMsNzAgKzI3Myw2IEBAIFRyYW5z YWN0aW9uSWRBYm9ydFRyZWUoVHJhbnNhY3Rpb25JZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rp b25JZCAqeGlkcykKIAkJCQkJCQkgICBUUkFOU0FDVElPTl9TVEFUVVNfQUJPUlRFRCwgSW52YWxp ZFhMb2dSZWNQdHIpOwogfQogCi0vKgotICogVHJhbnNhY3Rpb25JZFByZWNlZGVzIC0tLSBpcyBp ZDEgbG9naWNhbGx5IDwgaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklkUHJlY2VkZXMoVHJh bnNhY3Rpb25JZCBpZDEsIFRyYW5zYWN0aW9uSWQgaWQyKQotewotCS8qCi0JICogSWYgZWl0aGVy IElEIGlzIGEgcGVybWFuZW50IFhJRCB0aGVuIHdlIGNhbiBqdXN0IGRvIHVuc2lnbmVkCi0JICog Y29tcGFyaXNvbi4gIElmIGJvdGggYXJlIG5vcm1hbCwgZG8gYSBtb2R1bG8tMl4zMiBjb21wYXJp c29uLgotCSAqLwotCWludDMyCQlkaWZmOwotCi0JaWYgKCFUcmFuc2FjdGlvbklkSXNOb3JtYWwo aWQxKSB8fCAhVHJhbnNhY3Rpb25JZElzTm9ybWFsKGlkMikpCi0JCXJldHVybiAoaWQxIDwgaWQy KTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBpZDIpOwotCXJldHVybiAoZGlmZiA8IDApOwot fQotCi0vKgotICogVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMgLS0tIGlzIGlkMSBsb2dp Y2FsbHkgPD0gaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklkUHJlY2VkZXNPckVxdWFscyhU cmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJCWRpZmY7Ci0K LQlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3Jt YWwoaWQyKSkKLQkJcmV0dXJuIChpZDEgPD0gaWQyKTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEg LSBpZDIpOwotCXJldHVybiAoZGlmZiA8PSAwKTsKLX0KLQotLyoKLSAqIFRyYW5zYWN0aW9uSWRG b2xsb3dzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID4gaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlv bklkRm9sbG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50 MzIJCWRpZmY7Ci0KLQlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2Fj dGlvbklkSXNOb3JtYWwoaWQyKSkKLQkJcmV0dXJuIChpZDEgPiBpZDIpOwotCi0JZGlmZiA9IChp bnQzMikgKGlkMSAtIGlkMik7Ci0JcmV0dXJuIChkaWZmID4gMCk7Ci19Ci0KLS8qCi0gKiBUcmFu c2FjdGlvbklkRm9sbG93c09yRXF1YWxzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID49IGlkMj8KLSAq LwotYm9vbAotVHJhbnNhY3Rpb25JZEZvbGxvd3NPckVxdWFscyhUcmFuc2FjdGlvbklkIGlkMSwg VHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJCWRpZmY7Ci0KLQlpZiAoIVRyYW5zYWN0aW9u SWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQyKSkKLQkJcmV0dXJu IChpZDEgPj0gaWQyKTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBpZDIpOwotCXJldHVybiAo ZGlmZiA+PSAwKTsKLX0KLQogCiAvKgogICogVHJhbnNhY3Rpb25JZExhdGVzdCAtLS0gZ2V0IGxh dGVzdCBYSUQgYW1vbmcgYSBtYWluIHhhY3QgYW5kIGl0cyBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvYWNjZXNzL3RyYW5zYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2Ft LmgKaW5kZXggN2Q4MmNkMmViNTYuLmM5ZTIwNDE4Mjc1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvdHJhbnNhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2FtLmgKQEAg LTI1NSw2ICsyNTUsNzIgQEAgdHlwZWRlZiBzdHJ1Y3QgVHJhbnNhbVZhcmlhYmxlc0RhdGEKIH0g VHJhbnNhbVZhcmlhYmxlc0RhdGE7CiAKIAorCisvKgorICogVHJhbnNhY3Rpb25JZFByZWNlZGVz IC0tLSBpcyBpZDEgbG9naWNhbGx5IDwgaWQyPworICovCitzdGF0aWMgaW5saW5lIGJvb2wKK1Ry YW5zYWN0aW9uSWRQcmVjZWRlcyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIp Cit7CisJLyoKKwkgKiBJZiBlaXRoZXIgSUQgaXMgYSBwZXJtYW5lbnQgWElEIHRoZW4gd2UgY2Fu IGp1c3QgZG8gdW5zaWduZWQKKwkgKiBjb21wYXJpc29uLiAgSWYgYm90aCBhcmUgbm9ybWFsLCBk byBhIG1vZHVsby0yXjMyIGNvbXBhcmlzb24uCisJICovCisJaW50MzIJCWRpZmY7CisKKwlpZiAo IVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQy KSkKKwkJcmV0dXJuIChpZDEgPCBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlkMSAtIGlkMik7 CisJcmV0dXJuIChkaWZmIDwgMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklkUHJlY2VkZXNP ckVxdWFscyAtLS0gaXMgaWQxIGxvZ2ljYWxseSA8PSBpZDI/CisgKi8KK3N0YXRpYyBpbmxpbmUg Ym9vbAorVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMoVHJhbnNhY3Rpb25JZCBpZDEsIFRy YW5zYWN0aW9uSWQgaWQyKQoreworCWludDMyCQlkaWZmOworCisJaWYgKCFUcmFuc2FjdGlvbklk SXNOb3JtYWwoaWQxKSB8fCAhVHJhbnNhY3Rpb25JZElzTm9ybWFsKGlkMikpCisJCXJldHVybiAo aWQxIDw9IGlkMik7CisKKwlkaWZmID0gKGludDMyKSAoaWQxIC0gaWQyKTsKKwlyZXR1cm4gKGRp ZmYgPD0gMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklkRm9sbG93cyAtLS0gaXMgaWQxIGxv Z2ljYWxseSA+IGlkMj8KKyAqLworc3RhdGljIGlubGluZSBib29sCitUcmFuc2FjdGlvbklkRm9s bG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCit7CisJaW50MzIJCWRp ZmY7CisKKwlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklk SXNOb3JtYWwoaWQyKSkKKwkJcmV0dXJuIChpZDEgPiBpZDIpOworCisJZGlmZiA9IChpbnQzMikg KGlkMSAtIGlkMik7CisJcmV0dXJuIChkaWZmID4gMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlv bklkRm9sbG93c09yRXF1YWxzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID49IGlkMj8KKyAqLworc3Rh dGljIGlubGluZSBib29sCitUcmFuc2FjdGlvbklkRm9sbG93c09yRXF1YWxzKFRyYW5zYWN0aW9u SWQgaWQxLCBUcmFuc2FjdGlvbklkIGlkMikKK3sKKwlpbnQzMgkJZGlmZjsKKworCWlmICghVHJh bnNhY3Rpb25JZElzTm9ybWFsKGlkMSkgfHwgIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDIpKQor CQlyZXR1cm4gKGlkMSA+PSBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlkMSAtIGlkMik7CisJ cmV0dXJuIChkaWZmID49IDApOworfQorCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0KICAqCQlleHRl cm4gZGVjbGFyYXRpb25zCiAgKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzQsMTAgKzM0MCw2IEBA IGV4dGVybiBib29sIFRyYW5zYWN0aW9uSWREaWRBYm9ydChUcmFuc2FjdGlvbklkIHRyYW5zYWN0 aW9uSWQpOwogZXh0ZXJuIHZvaWQgVHJhbnNhY3Rpb25JZENvbW1pdFRyZWUoVHJhbnNhY3Rpb25J ZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25JZCAqeGlkcyk7CiBleHRlcm4gdm9pZCBUcmFu c2FjdGlvbklkQXN5bmNDb21taXRUcmVlKFRyYW5zYWN0aW9uSWQgeGlkLCBpbnQgbnhpZHMsIFRy YW5zYWN0aW9uSWQgKnhpZHMsIFhMb2dSZWNQdHIgbHNuKTsKIGV4dGVybiB2b2lkIFRyYW5zYWN0 aW9uSWRBYm9ydFRyZWUoVHJhbnNhY3Rpb25JZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25J ZCAqeGlkcyk7Ci1leHRlcm4gYm9vbCBUcmFuc2FjdGlvbklkUHJlY2VkZXMoVHJhbnNhY3Rpb25J ZCBpZDEsIFRyYW5zYWN0aW9uSWQgaWQyKTsKLWV4dGVybiBib29sIFRyYW5zYWN0aW9uSWRQcmVj ZWRlc09yRXF1YWxzKFRyYW5zYWN0aW9uSWQgaWQxLCBUcmFuc2FjdGlvbklkIGlkMik7Ci1leHRl cm4gYm9vbCBUcmFuc2FjdGlvbklkRm9sbG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rp b25JZCBpZDIpOwotZXh0ZXJuIGJvb2wgVHJhbnNhY3Rpb25JZEZvbGxvd3NPckVxdWFscyhUcmFu c2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpOwogZXh0ZXJuIFRyYW5zYWN0aW9uSWQg VHJhbnNhY3Rpb25JZExhdGVzdChUcmFuc2FjdGlvbklkIG1haW54aWQsCiAJCQkJCQkJCQkJIGlu dCBueGlkcywgY29uc3QgVHJhbnNhY3Rpb25JZCAqeGlkcyk7CiBleHRlcm4gWExvZ1JlY1B0ciBU cmFuc2FjdGlvbklkR2V0Q29tbWl0TFNOKFRyYW5zYWN0aW9uSWQgeGlkKTsKLS0gCjIuNDMuMAoK --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0018-Unset-all-visible-sooner-if-not-freezing.patch" Content-Disposition: attachment; filename="v8-0018-Unset-all-visible-sooner-if-not-freezing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7c517 RnJvbSA5YzdiYmJkMzk3YmEyYjliMDAxYmEyZDBlOGE3YTUyYTc5Y2M1MzdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM1OjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAxOC8yMl0gVW5zZXQgYWxsLXZpc2libGUgc29vbmVyIGlmIG5vdCBmcmVlemluZwoK SW4gcHJ1bmUvZnJlZXplIGNvZGUsIHdlIGRlbGF5IHVuc2V0dGluZyBhbGwtdmlzaWJsZS9hbGwt ZnJvemVuIGluIHRoZQpwcmVzZW5jZSBvZiBkZWFkIGl0ZW1zIHRvIGFsbG93IG9wcG9ydHVuaXN0 aWNhbGx5IGZyZWV6aW5nIHR1cGxlcyBpZiB0aGUKd2hvbGUgcGFnZSB3b3VsZCBiZSBmcm96ZW4g ZXhjZXB0IGZvciB0aG9zZSBkZWFkIGl0ZW1zIC0tIHdoaWNoIGFyZQpyZW1vdmVkIGxhdGVyIGlu IHZhY3V1bSdzIHRoaXJkIHBoYXNlLgoKRnV0dXJlIGNvbW1pdHMgd2lsbCBhbGxvdyBvbi1hY2Nl c3MgcHJ1bmluZyB0byBzZXQgdGhlIFZNLCB3aGljaCBtZWFucwphbGwtdmlzaWJsZSB3aWxsIGJl IGluaXRpYWxpemVkIHRvIHRydWUgaW5zdGVhZCBvZiBmYWxzZSBhbmQgd2Ugd2lsbCBkbwpleHRy YSBib29ra2VlcGluZyBpbiBoZWFwX3BydW5lX3VuY2hhbmdlZF9scF9ub3JtYWwoKSB0byBrZWVw IHRyYWNrIG9mCndoZXRoZXIgb3Igbm90IHRoZSBwYWdlIGlzIGFsbC12aXNpYmxlLgoKQmVjYXVz ZSBvbi1hY2Nlc3MgcHJ1bmluZyB3aWxsIG5vdCBmcmVlemUgdHVwbGVzLCBpdCBtYWtlcyBzZW5z ZSB0bwp1bnNldCBhbGwtdmlzaWJsZSBhcyBzb29uIGFzIHdlIGVuY291bnRlciBhbiBMUF9ERUFE IGl0ZW0gYW5kCmF2b2lkIGNvbnRpbnVlZCBib29ra2VlcGluZyBzaW5jZSB3ZSBrbm93IHRoZSBw YWdlIGlzIG5vdCBhbGwtdmlzaWJsZQphbmQgd2Ugd29uJ3QgYmUgYWJsZSB0byByZW1vdmUgdGhv c2UgZGVhZCBpdGVtcy4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyB8 IDEwICsrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCBmMDgzMTg5ZmNjYy4u ZGVhODQ5MWFkYmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0xNDkzLDgg KzE0OTMsMTEgQEAgaGVhcF9wcnVuZV9yZWNvcmRfZGVhZChQcnVuZVN0YXRlICpwcnN0YXRlLCBP ZmZzZXROdW1iZXIgb2ZmbnVtLAogCiAJLyoKIAkgKiBEZWxpYmVyYXRlbHkgZGVsYXkgdW5zZXR0 aW5nIGFsbF92aXNpYmxlIHVudGlsIGxhdGVyIGR1cmluZyBwcnVuaW5nLgotCSAqIFJlbW92YWJs ZSBkZWFkIHR1cGxlcyBzaG91bGRuJ3QgcHJlY2x1ZGUgZnJlZXppbmcgdGhlIHBhZ2UuCisJICog UmVtb3ZhYmxlIGRlYWQgdHVwbGVzIHNob3VsZG4ndCBwcmVjbHVkZSBmcmVlemluZyB0aGUgcGFn ZS4gSWYgd2Ugd29uJ3QKKwkgKiBhdHRlbXB0IGZyZWV6aW5nLCBqdXN0IHVuc2V0IGFsbC12aXNp YmxlIG5vdywgdGhvdWdoLgogCSAqLworCWlmICghcHJzdGF0ZS0+YXR0ZW1wdF9mcmVlemUpCisJ CXByc3RhdGUtPmFsbF92aXNpYmxlID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJ LyogUmVjb3JkIHRoZSBkZWFkIG9mZnNldCBmb3IgdmFjdXVtICovCiAJcHJzdGF0ZS0+ZGVhZG9m ZnNldHNbcHJzdGF0ZS0+bHBkZWFkX2l0ZW1zKytdID0gb2ZmbnVtOwpAQCAtMTc1Miw4ICsxNzU1 LDExIEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9kZWFkKFBhZ2UgcGFnZSwgUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyCiAJICogU2ltaWxhcmx5LCBkb24ndCB1bnNl dCBhbGxfdmlzaWJsZSB1bnRpbCBsYXRlciwgYXQgdGhlIGVuZCBvZgogCSAqIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKCkuICBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gYXR0ZW1wdCB0byBmcmVl emUKIAkgKiB0aGUgcGFnZSBhZnRlciBwcnVuaW5nLiAgQXMgbG9uZyBhcyB3ZSB1bnNldCBpdCBi ZWZvcmUgdXBkYXRpbmcgdGhlCi0JICogdmlzaWJpbGl0eSBtYXAsIHRoaXMgd2lsbCBiZSBjb3Jy ZWN0LgorCSAqIHZpc2liaWxpdHkgbWFwLCB0aGlzIHdpbGwgYmUgY29ycmVjdC4gSWYgd2Ugd29u J3QgYXR0ZW1wdCBmcmVlemluZywKKwkgKiB0aG91Z2gsIGp1c3QgdW5zZXQgYWxsLXZpc2libGUg bm93LgogCSAqLworCWlmICghcHJzdGF0ZS0+YXR0ZW1wdF9mcmVlemUpCisJCXByc3RhdGUtPmFs bF92aXNpYmxlID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJLyogUmVjb3JkIHRo ZSBkZWFkIG9mZnNldCBmb3IgdmFjdXVtICovCiAJcHJzdGF0ZS0+ZGVhZG9mZnNldHNbcHJzdGF0 ZS0+bHBkZWFkX2l0ZW1zKytdID0gb2ZmbnVtOwotLSAKMi40My4wCgo= --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0019-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v8-0019-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7c818 RnJvbSA2YTVlMTJiMjJkMmUyYzE4YmVhNTU2NTk4ZTFkM2RkZmZjNzgzMGNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM0OjMwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAxOS8yMl0gQWxsb3cgb24tYWNjZXNzIHBydW5pbmcgdG8gc2V0IHBhZ2VzIGFsbC12 aXNpYmxlCgpNYW55IHF1ZXJpZXMgZG8gbm90IG1vZGlmeSB0aGUgdW5kZXJseWluZyByZWxhdGlv bi4gRm9yIHN1Y2ggcXVlcmllcywgaWYKb24tYWNjZXNzIHBydW5pbmcgb2NjdXJzIGR1cmluZyB0 aGUgc2Nhbiwgd2UgY2FuIGNoZWNrIHdoZXRoZXIgdGhlIHBhZ2UKaGFzIGJlY29tZSBhbGwtdmlz aWJsZSBhbmQgdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcCBhY2NvcmRpbmdseS4KUHJldmlvdXNs eSwgb25seSB2YWN1dW0gbWFya2VkIHBhZ2VzIGFzIGFsbC12aXNpYmxlIG9yIGFsbC1mcm96ZW4u CgpTdXBwb3J0aW5nIHRoaXMgcmVxdWlyZXMgcGFzc2luZyBpbmZvcm1hdGlvbiBhYm91dCB3aGV0 aGVyIHRoZSByZWxhdGlvbgppcyBtb2RpZmllZCBmcm9tIHRoZSBleGVjdXRvciBkb3duIHRvIHRo ZSBzY2FuIGRlc2NyaXB0b3IuCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIG9uLWFjY2VzcyBWTSBz ZXR0aW5nIGZvciBzZXF1ZW50aWFsIHNjYW5zIGFzIHdlbGwKYXMgZm9yIHRoZSB1bmRlcmx5aW5n IGhlYXAgcmVsYXRpb24gaW4gaW5kZXggc2NhbnMgYW5kIGJpdG1hcCBoZWFwCnNjYW5zLgotLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICAgICAgICB8IDE1ICsrKyst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jICAgICAgfCAxNSArKysr LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICAgICAgIHwgNjMgKysr KysrKysrKysrKystLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYyAgICAg ICAgICAgIHwgNDYgKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJs ZWFtLmMgICAgICAgICAgICB8IDM5ICsrKysrKysrKystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgIDQgKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNVdGlscy5jICAgICAgICAgICAgICB8ICAyICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVC aXRtYXBIZWFwc2Nhbi5jICAgICB8ICA3ICsrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUlu ZGV4c2Nhbi5jICAgICAgICAgIHwgMTggKysrKy0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl U2Vxc2Nhbi5jICAgICAgICAgICAgfCAyNCArKysrKy0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2Vu YW0uaCAgICAgICAgICAgICAgICAgICAgfCAxMSArKysrCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtLmggICAgICAgICAgICAgICAgICAgfCAyNCArKysrKystCiBzcmMvaW5jbHVkZS9hY2Nlc3Mv cmVsc2Nhbi5oICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2luY2x1ZGUvYWNjZXNzL3Rh YmxlYW0uaCAgICAgICAgICAgICAgICAgIHwgMzAgKysrKysrKystCiBzcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgNiArKwogLi4uL3QvMDM1X3N0YW5kYnlf bG9naWNhbF9kZWNvZGluZy5wbCAgICAgICAgIHwgIDQgKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDI3 NiBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5j CmluZGV4IDg4Zjg4MGNmZDE1Li5kOTkxNjBkNWY4MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt LmMKQEAgLTU1Niw2ICs1NTYsNyBAQCBoZWFwX3ByZXBhcmVfcGFnZXNjYW4oVGFibGVTY2FuRGVz YyBzc2NhbikKIAlCdWZmZXIJCWJ1ZmZlciA9IHNjYW4tPnJzX2NidWY7CiAJQmxvY2tOdW1iZXIg YmxvY2sgPSBzY2FuLT5yc19jYmxvY2s7CiAJU25hcHNob3QJc25hcHNob3Q7CisJQnVmZmVyCSAg ICp2bWJ1ZmZlciA9IE5VTEw7CiAJUGFnZQkJcGFnZTsKIAlpbnQJCQlsaW5lczsKIAlib29sCQlh bGxfdmlzaWJsZTsKQEAgLTU3MCw3ICs1NzEsOSBAQCBoZWFwX3ByZXBhcmVfcGFnZXNjYW4oVGFi bGVTY2FuRGVzYyBzc2NhbikKIAkvKgogCSAqIFBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlv biBmb3IgdGhlIHdob2xlIHBhZ2UsIGlmIHBvc3NpYmxlLgogCSAqLwotCWhlYXBfcGFnZV9wcnVu ZV9vcHQoc2Nhbi0+cnNfYmFzZS5yc19yZCwgYnVmZmVyKTsKKwlpZiAoc3NjYW4tPnJzX2ZsYWdz ICYgU09fQUxMT1dfVk1fU0VUKQorCQl2bWJ1ZmZlciA9ICZzY2FuLT5yc192bWJ1ZmZlcjsKKwlo ZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQsIGJ1ZmZlciwgdm1idWZmZXIp OwogCiAJLyoKIAkgKiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9jayBvbiB0aGUgYnVmZmVyIGNvbnRl bnQgd2hpbGUgZXhhbWluaW5nIHR1cGxlCkBAIC0xMjQ3LDYgKzEyNTAsNyBAQCBoZWFwX2JlZ2lu c2NhbihSZWxhdGlvbiByZWxhdGlvbiwgU25hcHNob3Qgc25hcHNob3QsCiAJCQkJCQkJCQkJCQkJ CSAgc2l6ZW9mKFRCTUl0ZXJhdGVSZXN1bHQpKTsKIAl9CiAKKwlzY2FuLT5yc192bWJ1ZmZlciA9 IEludmFsaWRCdWZmZXI7CiAKIAlyZXR1cm4gKFRhYmxlU2NhbkRlc2MpIHNjYW47CiB9CkBAIC0x Mjg1LDYgKzEyODksMTIgQEAgaGVhcF9yZXNjYW4oVGFibGVTY2FuRGVzYyBzc2NhbiwgU2Nhbktl eSBrZXksIGJvb2wgc2V0X3BhcmFtcywKIAkJc2Nhbi0+cnNfY2J1ZiA9IEludmFsaWRCdWZmZXI7 CiAJfQogCisJaWYgKEJ1ZmZlcklzVmFsaWQoc2Nhbi0+cnNfdm1idWZmZXIpKQorCXsKKwkJUmVs ZWFzZUJ1ZmZlcihzY2FuLT5yc192bWJ1ZmZlcik7CisJCXNjYW4tPnJzX3ZtYnVmZmVyID0gSW52 YWxpZEJ1ZmZlcjsKKwl9CisKIAkvKgogCSAqIFNPX1RZUEVfQklUTUFQU0NBTiB3b3VsZCBiZSBj bGVhbmVkIHVwIGhlcmUsIGJ1dCBpdCBkb2VzIG5vdCBob2xkIGFueQogCSAqIGFkZGl0aW9uYWwg ZGF0YSB2cyBhIG5vcm1hbCBIZWFwU2NhbgpAQCAtMTMxNyw2ICsxMzI3LDkgQEAgaGVhcF9lbmRz Y2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4pCiAJaWYgKEJ1ZmZlcklzVmFsaWQoc2Nhbi0+cnNfY2J1 ZikpCiAJCVJlbGVhc2VCdWZmZXIoc2Nhbi0+cnNfY2J1Zik7CiAKKwlpZiAoQnVmZmVySXNWYWxp ZChzY2FuLT5yc192bWJ1ZmZlcikpCisJCVJlbGVhc2VCdWZmZXIoc2Nhbi0+cnNfdm1idWZmZXIp OworCiAJLyoKIAkgKiBNdXN0IGZyZWUgdGhlIHJlYWQgc3RyZWFtIGJlZm9yZSBmcmVlaW5nIHRo ZSBCdWZmZXJBY2Nlc3NTdHJhdGVneS4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1faGFuZGxlci5jCmluZGV4IGJjYmFjODQ0YmI2Li5mMDViOWU0OTY4ZCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCkBAIC04NSw2ICs4NSw3IEBAIGhlYXBhbV9p bmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCiAKIAloc2Nhbi0+eHNfYmFzZS5yZWwgPSBy ZWw7CiAJaHNjYW4tPnhzX2NidWYgPSBJbnZhbGlkQnVmZmVyOworCWhzY2FuLT54c192bWJ1ZmZl ciA9IEludmFsaWRCdWZmZXI7CiAKIAlyZXR1cm4gJmhzY2FuLT54c19iYXNlOwogfQpAQCAtOTks NiArMTAwLDEyIEBAIGhlYXBhbV9pbmRleF9mZXRjaF9yZXNldChJbmRleEZldGNoVGFibGVEYXRh ICpzY2FuKQogCQlSZWxlYXNlQnVmZmVyKGhzY2FuLT54c19jYnVmKTsKIAkJaHNjYW4tPnhzX2Ni dWYgPSBJbnZhbGlkQnVmZmVyOwogCX0KKworCWlmIChCdWZmZXJJc1ZhbGlkKGhzY2FuLT54c192 bWJ1ZmZlcikpCisJeworCQlSZWxlYXNlQnVmZmVyKGhzY2FuLT54c192bWJ1ZmZlcik7CisJCWhz Y2FuLT54c192bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CisJfQogfQogCiBzdGF0aWMgdm9pZApA QCAtMTM4LDcgKzE0NSw4IEBAIGhlYXBhbV9pbmRleF9mZXRjaF90dXBsZShzdHJ1Y3QgSW5kZXhG ZXRjaFRhYmxlRGF0YSAqc2NhbiwKIAkJICogUHJ1bmUgcGFnZSwgYnV0IG9ubHkgaWYgd2Ugd2Vy ZW4ndCBhbHJlYWR5IG9uIHRoaXMgcGFnZQogCQkgKi8KIAkJaWYgKHByZXZfYnVmICE9IGhzY2Fu LT54c19jYnVmKQotCQkJaGVhcF9wYWdlX3BydW5lX29wdChoc2Nhbi0+eHNfYmFzZS5yZWwsIGhz Y2FuLT54c19jYnVmKTsKKwkJCWhlYXBfcGFnZV9wcnVuZV9vcHQoaHNjYW4tPnhzX2Jhc2UucmVs LCBoc2Nhbi0+eHNfY2J1ZiwKKwkJCQkJCQkJc2Nhbi0+bW9kaWZpZXNfYmFzZV9yZWwgPyBOVUxM IDogJmhzY2FuLT54c192bWJ1ZmZlcik7CiAJfQogCiAJLyogT2J0YWluIHNoYXJlLWxvY2sgb24g dGhlIGJ1ZmZlciBzbyB3ZSBjYW4gZXhhbWluZSB2aXNpYmlsaXR5ICovCkBAIC0yNDcxLDYgKzI0 NzksNyBAQCBCaXRtYXBIZWFwU2Nhbk5leHRCbG9jayhUYWJsZVNjYW5EZXNjIHNjYW4sCiAJVEJN SXRlcmF0ZVJlc3VsdCAqdGJtcmVzOwogCU9mZnNldE51bWJlciBvZmZzZXRzW1RCTV9NQVhfVFVQ TEVTX1BFUl9QQUdFXTsKIAlpbnQJCQlub2Zmc2V0cyA9IC0xOworCUJ1ZmZlcgkgICAqdm1idWZm ZXIgPSBOVUxMOwogCiAJQXNzZXJ0KHNjYW4tPnJzX2ZsYWdzICYgU09fVFlQRV9CSVRNQVBTQ0FO KTsKIAlBc3NlcnQoaHNjYW4tPnJzX3JlYWRfc3RyZWFtKTsKQEAgLTI1MTcsNyArMjUyNiw5IEBA IEJpdG1hcEhlYXBTY2FuTmV4dEJsb2NrKFRhYmxlU2NhbkRlc2Mgc2NhbiwKIAkvKgogCSAqIFBy dW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBmb3IgdGhlIHdob2xlIHBhZ2UsIGlmIHBvc3Np YmxlLgogCSAqLwotCWhlYXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfcmQsIGJ1ZmZlcik7CisJ aWYgKHNjYW4tPnJzX2ZsYWdzICYgU09fQUxMT1dfVk1fU0VUKQorCQl2bWJ1ZmZlciA9ICZoc2Nh bi0+cnNfdm1idWZmZXI7CisJaGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19yZCwgYnVmZmVy LCB2bWJ1ZmZlcik7CiAKIAkvKgogCSAqIFdlIG11c3QgaG9sZCBzaGFyZSBsb2NrIG9uIHRoZSBi dWZmZXIgY29udGVudCB3aGlsZSBleGFtaW5pbmcgdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMKaW5kZXggZGVhODQ5MWFkYmIuLjE2NjlkN2I0NjZlIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYwpAQCAtMTk4LDkgKzE5OCwxMyBAQCBzdGF0aWMgYm9vbCBpZGVudGlm eV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24oUmVsYXRpb24gcmVsYXRpb24sCiAgKiBpZiB0aGVyZSdz IG5vdCBhbnkgdXNlIGluIHBydW5pbmcuCiAgKgogICogQ2FsbGVyIG11c3QgaGF2ZSBwaW4gb24g dGhlIGJ1ZmZlciwgYW5kIG11c3QgKm5vdCogaGF2ZSBhIGxvY2sgb24gaXQuCisgKgorICogSWYg dm1idWZmZXIgaXMgbm90IE5VTEwsIGl0IGlzIG9rYXkgZm9yIHBydW5pbmcgdG8gc2V0IHRoZSB2 aXNpYmlsaXR5IG1hcCBpZgorICogdGhlIHBhZ2UgaXMgYWxsIHZpc2libGUuIFdlIHdpbGwgdGFr ZSBjYXJlIG9mIHBpbm5pbmcgYW5kLCBpZiBuZWVkZWQsCisgKiByZWFkaW5nIGluIHRoZSBwYWdl IG9mIHRoZSB2aXNpYmlsaXR5IG1hcC4KICAqLwogdm9pZAotaGVhcF9wYWdlX3BydW5lX29wdChS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlcikKK2hlYXBfcGFnZV9wcnVuZV9vcHQoUmVs YXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCiB7CiAJUGFn ZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAlUcmFuc2FjdGlvbklkIHBydW5lX3hp ZDsKQEAgLTI2NCw2ICsyNjgsMTMgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxh dGlvbiwgQnVmZmVyIGJ1ZmZlcikKIAkJewogCQkJT2Zmc2V0TnVtYmVyIGR1bW15X29mZl9sb2M7 CiAJCQlQcnVuZUZyZWV6ZVJlc3VsdCBwcmVzdWx0OworCQkJaW50CQkJb3B0aW9ucyA9IDA7CisK KwkJCWlmICh2bWJ1ZmZlcikKKwkJCXsKKwkJCQl2aXNpYmlsaXR5bWFwX3BpbihyZWxhdGlvbiwg QnVmZmVyR2V0QmxvY2tOdW1iZXIoYnVmZmVyKSwgdm1idWZmZXIpOworCQkJCW9wdGlvbnMgPSBI RUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZNOworCQkJfQogCiAJCQkvKgogCQkJICogRm9yIG5vdywg cGFzcyBtYXJrX3VudXNlZF9ub3cgYXMgZmFsc2UgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yCkBA IC0yNzEsOSArMjgyLDEwIEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24s IEJ1ZmZlciBidWZmZXIpCiAJCQkgKiB0aGF0IGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyB3aXRo IHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLgogCQkJICovCiAJCQloZWFwX3BhZ2VfcHJ1bmVf YW5kX2ZyZWV6ZShyZWxhdGlvbiwgYnVmZmVyLCBmYWxzZSwKLQkJCQkJCQkJCSAgIEludmFsaWRC dWZmZXIsCi0JCQkJCQkJCQkgICB2aXN0ZXN0LCAwLAotCQkJCQkJCQkJICAgTlVMTCwgJnByZXN1 bHQsIFBSVU5FX09OX0FDQ0VTUywgJmR1bW15X29mZl9sb2MsIE5VTEwsIE5VTEwpOworCQkJCQkJ CQkJICAgdm1idWZmZXIgPyAqdm1idWZmZXIgOiBJbnZhbGlkQnVmZmVyLAorCQkJCQkJCQkJICAg dmlzdGVzdCwgb3B0aW9ucywKKwkJCQkJCQkJCSAgIE5VTEwsICZwcmVzdWx0LCBQUlVORV9PTl9B Q0NFU1MsCisJCQkJCQkJCQkgICAmZHVtbXlfb2ZmX2xvYywgTlVMTCwgTlVMTCk7CiAKIAkJCS8q CiAJCQkgKiBSZXBvcnQgdGhlIG51bWJlciBvZiB0dXBsZXMgcmVjbGFpbWVkIHRvIHBnc3RhdHMu ICBUaGlzIGlzCkBAIC01MTMsMTIgKzUyNSwxNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6 ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkgKiBhbGwtZnJvemVuIGZvciB1 c2UgaW4gb3Bwb3J0dW5pc3RpYyBmcmVlemluZyBhbmQgdG8gdXBkYXRlIHRoZSBWTSBpZgogCSAq IHRoZSBjYWxsZXIgcmVxdWVzdHMgaXQuCiAJICoKLQkgKiBDdXJyZW50bHksIG9ubHkgVkFDVVVN IGF0dGVtcHRzIGZyZWV6aW5nIGFuZCBzZXR0aW5nIHRoZSBWTSBiaXRzLiBCdXQKLQkgKiBvdGhl ciBjYWxsZXJzIGNvdWxkIGRvIGVpdGhlciBvbmUuIFRoZSB2aXNpYmlsaXR5IGJvb2trZWVwaW5n IGlzCi0JICogcmVxdWlyZWQgZm9yIG9wcG9ydHVuaXN0aWMgZnJlZXppbmcgKGluIGFkZGl0aW9u IHRvIHNldHRpbmcgdGhlIFZNCi0JICogYml0cykgYmVjYXVzZSB3ZSBvbmx5IGNvbnNpZGVyIG9w cG9ydHVuaXN0aWNhbGx5IGZyZWV6aW5nIHR1cGxlcyBpZiB0aGUKLQkgKiB3aG9sZSBwYWdlIHdv dWxkIGJlY29tZSBhbGwtZnJvemVuIG9yIGlmIHRoZSB3aG9sZSBwYWdlIHdpbGwgYmUgZnJvemVu Ci0JICogZXhjZXB0IGZvciBkZWFkIHR1cGxlcyB0aGF0IHdpbGwgYmUgcmVtb3ZlZCBieSB2YWN1 dW0uCisJICogQ3VycmVudGx5LCBvbmx5IFZBQ1VVTSBhdHRlbXB0cyBmcmVlemluZy4gQnV0IG90 aGVyIGNhbGxlcnMgY291bGQuIFRoZQorCSAqIHZpc2liaWxpdHkgYm9va2tlZXBpbmcgaXMgcmVx dWlyZWQgZm9yIG9wcG9ydHVuaXN0aWMgZnJlZXppbmcgKGluCisJICogYWRkaXRpb24gdG8gc2V0 dGluZyB0aGUgVk0gYml0cykgYmVjYXVzZSB3ZSBvbmx5IGNvbnNpZGVyCisJICogb3Bwb3J0dW5p c3RpY2FsbHkgZnJlZXppbmcgdHVwbGVzIGlmIHRoZSB3aG9sZSBwYWdlIHdvdWxkIGJlY29tZQor CSAqIGFsbC1mcm96ZW4gb3IgaWYgdGhlIHdob2xlIHBhZ2Ugd2lsbCBiZSBmcm96ZW4gZXhjZXB0 IGZvciBkZWFkIHR1cGxlcworCSAqIHRoYXQgd2lsbCBiZSByZW1vdmVkIGJ5IHZhY3V1bS4gQnV0 IGlmIGNvbnNpZGVyX3VwZGF0ZV92bSBpcyBmYWxzZSwKKwkgKiB3ZSdsbCBub3Qgc2V0IHRoZSBW TSBldmVuIGlmIHRoZSBwYWdlIGlzIGRpc2NvdmVyZWQgdG8gYmUgYWxsLXZpc2libGUuCisJICoK KwkgKiBJZiBvbmx5IEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVk0gaXMgcGFzc2VkIGFuZCBub3QK KwkgKiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLCBwcnN0YXRlLmFsbF9mcm96ZW4gbXVzdCBiZSBp bml0aWFsaXplZCB0byBmYWxzZQorCSAqIGJlY2F1c2Ugd2Ugd2lsbCBub3QgY2FsbCBoZWFwX3By ZXBhcmVfZnJlZXplX3R1cGxlKCkgb24gZWFjaCB0dXBsZS4KIAkgKgogCSAqIElmIG9ubHkgdXBk YXRpbmcgdGhlIFZNLCB3ZSBtdXN0IGluaXRpYWxpemUgYWxsX2Zyb3plbiB0byBmYWxzZSwgYXMK IAkgKiBoZWFwX3ByZXBhcmVfZnJlZXplX3R1cGxlKCkgd2lsbCBub3QgYmUgY2FsbGVkIGZvciBl YWNoIHR1cGxlIG9uIHRoZQpAQCAtNTMwLDcgKzU0Nyw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRf ZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIHdoZXRoZXIgb3Ig bm90IHRvIGZyZWV6ZSBidXQgYmVmb3JlIGRlY2lkaW5nIHdoZXRoZXIgb3Igbm90IHRvIHVwZGF0 ZQogCSAqIHRoZSBWTSBzbyB0aGF0IHdlIGRvbid0IHNldCB0aGUgVk0gYml0IGluY29ycmVjdGx5 LgogCSAqCi0JICogSWYgbm90IGZyZWV6aW5nIG9yIHVwZGF0aW5nIHRoZSBWTSwgd2Ugb3RoZXJ3 aXNlIGF2b2lkIHRoZSBleHRyYQorCSAqIElmIG5vdCBmcmVlemluZyBhbmQgbm90IHVwZGF0aW5n IHRoZSBWTSwgd2UgYXZvaWQgdGhlIGV4dHJhCiAJICogYm9va2tlZXBpbmcuIEluaXRpYWxpemlu ZyBhbGxfdmlzaWJsZSB0byBmYWxzZSBhbGxvd3Mgc2tpcHBpbmcgdGhlIHdvcmsKIAkgKiB0byB1 cGRhdGUgdGhlbSBpbiBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKCkuCiAJ ICovCkBAIC04NzksMTIgKzg5NiwzMCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxh dGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJcHJzdGF0ZS5hbGxfZnJvemVuID0gZmFs c2U7CiAJfQogCisJLyoKKwkgKiBJZiB0aGlzIGlzIGFuIG9uLWFjY2VzcyBjYWxsIGFuZCB3ZSdy ZSBub3QgYWN0dWFsbHkgcHJ1bmluZywgYXZvaWQKKwkgKiBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5 IG1hcCBpZiBpdCB3b3VsZCBuZXdseSBkaXJ0eSB0aGUgaGVhcCBwYWdlIG9yLCBpZgorCSAqIHRo ZSBwYWdlIGlzIGFscmVhZHkgZGlydHksIGlmIGRvaW5nIHNvIHdvdWxkIHJlcXVpcmUgaW5jbHVk aW5nIGEKKwkgKiBmdWxsLXBhZ2UgaW1hZ2UgKEZQSSkgb2YgdGhlIGhlYXAgcGFnZSBpbiB0aGUg V0FMLiBUaGlzIHNpdHVhdGlvbgorCSAqIHNob3VsZCBiZSByYXJlLCBhcyBvbi1hY2Nlc3MgcHJ1 bmluZyBpcyBvbmx5IGF0dGVtcHRlZCB3aGVuCisJICogcGRfcHJ1bmVfeGlkIGlzIHZhbGlkLgor CSAqLworCWlmIChyZWFzb24gPT0gUFJVTkVfT05fQUNDRVNTICYmCisJCXByc3RhdGUuY29uc2lk ZXJfdXBkYXRlX3ZtICYmCisJCXByc3RhdGUuYWxsX3Zpc2libGUgJiYKKwkJIWRvX3BydW5lICYm ICFkb19mcmVlemUgJiYKKwkJKCFCdWZmZXJJc0RpcnR5KGJ1ZmZlcikgfHwgWExvZ0NoZWNrQnVm ZmVyTmVlZHNCYWNrdXAoYnVmZmVyKSkpCisJeworCQlwcnN0YXRlLmNvbnNpZGVyX3VwZGF0ZV92 bSA9IGZhbHNlOworCQlwcnN0YXRlLmFsbF92aXNpYmxlID0gcHJzdGF0ZS5hbGxfZnJvemVuID0g ZmFsc2U7CisJfQorCiAJQXNzZXJ0KCFwcnN0YXRlLmFsbF9mcm96ZW4gfHwgcHJzdGF0ZS5hbGxf dmlzaWJsZSk7CiAKIAkvKgotCSAqIEhhbmRsZSBzZXR0aW5nIHZpc2liaWxpdHkgbWFwIGJpdCBi YXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAoYXMKLQkgKiBvZiBsYXN0IGhlYXBfdmFj X3NjYW5fbmV4dF9ibG9jaygpIGNhbGwpLCBhbmQgZnJvbSBhbGxfdmlzaWJsZSBhbmQKLQkgKiBh bGxfZnJvemVuIHZhcmlhYmxlcy4KKwkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBi aXQgYmFzZWQgb24gaW5mb3JtYXRpb24gZnJvbSB0aGUgVk0gKGlmCisJICogcHJvdmlkZWQsIGUu Zy4gYnkgdmFjdXVtIGZyb20gdGhlIGxhc3QgaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCkKKwkg KiBjYWxsKSwgYW5kIGZyb20gYWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4gdmFyaWFibGVzLgog CSAqLwogCWlmIChwcnN0YXRlLmNvbnNpZGVyX3VwZGF0ZV92bSkKIAl7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2lu ZGV4L2luZGV4YW0uYwppbmRleCA4NmQxMWY0ZWM3OS4uNDYwM2VjZTA5YmQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2luZGV4L2luZGV4YW0uYwpAQCAtMjg5LDYgKzI4OSwzMiBAQCBpbmRleF9iZWdpbnNjYW4o UmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCXJldHVybiBzY2FuOwogfQogCisvKgorICogU2ltaWxh ciB0byBpbmRleF9iZWdpbnNjYW4oKSwgYnV0IGFsbG93cyB0aGUgY2FsbGVyIHRvIGluZGljYXRl IHdoZXRoZXIgdGhlCisgKiBxdWVyeSBtb2RpZmllcyB0aGUgdW5kZXJseWluZyBiYXNlIHJlbGF0 aW9uLiBUaGlzIGlzIHVzZWQgd2hlbiB0aGUgY2FsbGVyCisgKiB3YW50cyB0byBhdHRlbXB0IG1h cmtpbmcgcGFnZXMgaW4gdGhlIGJhc2UgcmVsYXRpb24gYXMgYWxsLXZpc2libGUgaW4gdGhlCisg KiB2aXNpYmlsaXR5IG1hcCBkdXJpbmcgb24tYWNjZXNzIHBydW5pbmcuCisgKi8KK0luZGV4U2Nh bkRlc2MKK2luZGV4X2JlZ2luc2Nhbl92bXNldChSZWxhdGlvbiBoZWFwUmVsYXRpb24sCisJCQkJ CSAgUmVsYXRpb24gaW5kZXhSZWxhdGlvbiwKKwkJCQkJICBTbmFwc2hvdCBzbmFwc2hvdCwKKwkJ CQkJICBJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCisJCQkJCSAgaW50IG5r ZXlzLCBpbnQgbm9yZGVyYnlzLCBib29sIG1vZGlmaWVzX2Jhc2VfcmVsKQoreworCUluZGV4U2Nh bkRlc2Mgc2NhbjsKKworCXNjYW4gPSBpbmRleF9iZWdpbnNjYW4oaGVhcFJlbGF0aW9uLAorCQkJ CQkJICAgaW5kZXhSZWxhdGlvbiwKKwkJCQkJCSAgIHNuYXBzaG90LAorCQkJCQkJICAgaW5zdHJ1 bWVudCwKKwkJCQkJCSAgIG5rZXlzLCBub3JkZXJieXMpOworCisJc2Nhbi0+eHNfaGVhcGZldGNo LT5tb2RpZmllc19iYXNlX3JlbCA9IG1vZGlmaWVzX2Jhc2VfcmVsOworCisJcmV0dXJuIHNjYW47 Cit9CisKIC8qCiAgKiBpbmRleF9iZWdpbnNjYW5fYml0bWFwIC0gc3RhcnQgYSBzY2FuIG9mIGFu IGluZGV4IHdpdGggYW1nZXRiaXRtYXAKICAqCkBAIC02MjAsNiArNjQ2LDI2IEBAIGluZGV4X2Jl Z2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBoZWFwcmVsLCBSZWxhdGlvbiBpbmRleHJlbCwKIAly ZXR1cm4gc2NhbjsKIH0KIAorLyoKKyAqIFBhcmFsbGVsIHZlcnNpb24gb2YgaW5kZXhfYmVnaW5z Y2FuX3Ztc2V0KCkKKyAqLworSW5kZXhTY2FuRGVzYworaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVs X3Ztc2V0KFJlbGF0aW9uIGhlYXByZWwsIFJlbGF0aW9uIGluZGV4cmVsLAorCQkJCQkJCSAgIElu ZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKKwkJCQkJCQkgICBpbnQgbmtleXMs IGludCBub3JkZXJieXMsCisJCQkJCQkJICAgUGFyYWxsZWxJbmRleFNjYW5EZXNjIHBzY2FuLAor CQkJCQkJCSAgIGJvb2wgbW9kaWZpZXNfYmFzZV9yZWwpCit7CisJSW5kZXhTY2FuRGVzYyBzY2Fu OworCisJc2NhbiA9IGluZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbChoZWFwcmVsLCBpbmRleHJlbCwK KwkJCQkJCQkJCWluc3RydW1lbnQsCisJCQkJCQkJCQlua2V5cywgbm9yZGVyYnlzLAorCQkJCQkJ CQkJcHNjYW4pOworCXNjYW4tPnhzX2hlYXBmZXRjaC0+bW9kaWZpZXNfYmFzZV9yZWwgPSBtb2Rp Zmllc19iYXNlX3JlbDsKKwlyZXR1cm4gc2NhbjsKK30KKwogLyogLS0tLS0tLS0tLS0tLS0tLQog ICogaW5kZXhfZ2V0bmV4dF90aWQgLSBnZXQgdGhlIG5leHQgVElEIGZyb20gYSBzY2FuCiAgKgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxlYW0uYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKaW5kZXggYTU2YzVlY2ViMTQuLjY3ZGJmOTlmNWI1 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKQEAgLTQ5LDYgKzQ5LDEwIEBACiBjaGFy CSAgICpkZWZhdWx0X3RhYmxlX2FjY2Vzc19tZXRob2QgPSBERUZBVUxUX1RBQkxFX0FDQ0VTU19N RVRIT0Q7CiBib29sCQlzeW5jaHJvbml6ZV9zZXFzY2FucyA9IHRydWU7CiAKKy8qIEhlbHBlciBm b3IgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKCkgYW5kIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxl bF92bXNldCgpICovCitzdGF0aWMgVGFibGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFyYWxs ZWxfY29tbW9uKFJlbGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4s CisJCQkJCQkJCQkJCQkJIHVpbnQzMiBmbGFncyk7CisKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICogU2xvdCBmdW5jdGlvbnMuCkBAIC0xNjIsMTIgKzE2NiwxNCBAQCB0YWJsZV9wYXJhbGxl bHNjYW5faW5pdGlhbGl6ZShSZWxhdGlvbiByZWwsIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2Nh biwKIAl9CiB9CiAKLVRhYmxlU2NhbkRlc2MKLXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxh dGlvbiByZWxhdGlvbiwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQorLyoKKyAqIENvbW1v biBoZWxwZXIgZm9yIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbCgpIGFuZCB0YWJsZV9iZWdpbnNj YW5fcGFyYWxsZWxfdm1zZXQoKQorICovCitzdGF0aWMgVGFibGVTY2FuRGVzYwordGFibGVfYmVn aW5zY2FuX3BhcmFsbGVsX2NvbW1vbihSZWxhdGlvbiByZWxhdGlvbiwgUGFyYWxsZWxUYWJsZVNj YW5EZXNjIHBzY2FuLAorCQkJCQkJCQl1aW50MzIgZmxhZ3MpCiB7CiAJU25hcHNob3QJc25hcHNo b3Q7Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8Ci0JCVNPX0FMTE9XX1NUUkFU IHwgU09fQUxMT1dfU1lOQyB8IFNPX0FMTE9XX1BBR0VNT0RFOwogCiAJQXNzZXJ0KFJlbEZpbGVM b2NhdG9yRXF1YWxzKHJlbGF0aW9uLT5yZF9sb2NhdG9yLCBwc2Nhbi0+cGhzX2xvY2F0b3IpKTsK IApAQCAtMTg4LDYgKzE5NCwzMSBAQCB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24g cmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikKIAkJCQkJCQkJCQkJcHNjYW4s IGZsYWdzKTsKIH0KIAorVGFibGVTY2FuRGVzYwordGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJl bGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCit7CisJdWludDMy CQlmbGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8CisJCVNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1df U1lOQyB8IFNPX0FMTE9XX1BBR0VNT0RFOworCisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9wYXJh bGxlbF9jb21tb24ocmVsYXRpb24sIHBzY2FuLCBmbGFncyk7Cit9CisKKy8qCisgKiBQYXJhbGxl bCB2ZXJzaW9uIG9mIHRhYmxlX2JlZ2luc2Nhbl92bXNldCgpCisgKi8KK1RhYmxlU2NhbkRlc2MK K3RhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF92bXNldChSZWxhdGlvbiByZWxhdGlvbiwgUGFyYWxs ZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCSAgIGJvb2wgbW9kaWZpZXNfcmVsKQorewor CXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4gfAorCQlTT19BTExPV19TVFJBVCB8IFNP X0FMTE9XX1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKKworCWlmICghbW9kaWZpZXNfcmVsKQor CQlmbGFncyB8PSBTT19BTExPV19WTV9TRVQ7CisKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX3Bh cmFsbGVsX2NvbW1vbihyZWxhdGlvbiwgcHNjYW4sIGZsYWdzKTsKK30KKwogCiAvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgKiBJbmRleCBzY2FuIHJlbGF0ZWQgZnVuY3Rpb25zLgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNNYWluLmMKaW5kZXggYjhiOWQyYTg1ZjcuLmE4NjI3MDFlZGJlIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNNYWluLmMKQEAgLTkxNiw2ICs5MTYsMTAgQEAgSW5pdFBsYW4oUXVlcnlEZXNjICpxdWVy eURlc2MsIGludCBlZmxhZ3MpCiAJCQkJCWJyZWFrOwogCQkJfQogCisJCQkvKiBJZiBpdCBoYXMg YSByb3dtYXJrLCB0aGUgcmVsYXRpb24gaXMgbW9kaWZpZWQgKi8KKwkJCWVzdGF0ZS0+ZXNfbW9k aWZpZWRfcmVsaWRzID0gYm1zX2FkZF9tZW1iZXIoZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMs CisJCQkJCQkJCQkJCQkJCXJjLT5ydGkpOworCiAJCQkvKiBDaGVjayB0aGF0IHJlbGF0aW9uIGlz IGEgbGVnYWwgdGFyZ2V0IGZvciBtYXJraW5nICovCiAJCQlpZiAocmVsYXRpb24pCiAJCQkJQ2hl Y2tWYWxpZFJvd01hcmtSZWwocmVsYXRpb24sIHJjLT5tYXJrVHlwZSk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNVdGlscy5jCmluZGV4IGZkYzY1YzJiNDJiLi4yOGEwNmRjZDI0NCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY1V0aWxzLmMKQEAgLTg5Myw2ICs4OTMsOCBAQCBFeGVjSW5pdFJlc3VsdFJlbGF0aW9uKEVT dGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQllc3RhdGUtPmVz X3Jlc3VsdF9yZWxhdGlvbnMgPSAoUmVzdWx0UmVsSW5mbyAqKikKIAkJCXBhbGxvYzAoZXN0YXRl LT5lc19yYW5nZV90YWJsZV9zaXplICogc2l6ZW9mKFJlc3VsdFJlbEluZm8gKikpOwogCWVzdGF0 ZS0+ZXNfcmVzdWx0X3JlbGF0aW9uc1tydGkgLSAxXSA9IHJlc3VsdFJlbEluZm87CisJZXN0YXRl LT5lc19tb2RpZmllZF9yZWxpZHMgPSBibXNfYWRkX21lbWJlcihlc3RhdGUtPmVzX21vZGlmaWVk X3JlbGlkcywKKwkJCQkJCQkJCQkJCXJ0aSk7CiAKIAkvKgogCSAqIFNhdmluZyBpbiB0aGUgbGlz dCBhbGxvd3MgdG8gYXZvaWQgbmVlZGxlc3NseSB0cmF2ZXJzaW5nIHRoZSB3aG9sZQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwppbmRleCBiZjI0ZjNkN2ZlMC4uYWY2 ZGI5Zjc5MTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFw c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCkBA IC0xMDUsMTEgKzEwNSwxNiBAQCBCaXRtYXBUYWJsZVNjYW5TZXR1cChCaXRtYXBIZWFwU2NhblN0 YXRlICpub2RlKQogCSAqLwogCWlmICghbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjKQogCXsK KwkJYm9vbAkJbW9kaWZpZXNfcmVsID0KKwkJCWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUt PnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCQkgIG5vZGUtPnNzLnBzLnN0YXRlLT5lc19t b2RpZmllZF9yZWxpZHMpOworCiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCQl0 YWJsZV9iZWdpbnNjYW5fYm0obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCSAg IG5vZGUtPnNzLnBzLnN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkgICAwLAotCQkJCQkJCSAg IE5VTEwpOworCQkJCQkJCSAgIE5VTEwsCisJCQkJCQkJICAgbW9kaWZpZXNfcmVsKTsKIAl9CiAK IAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MtPnN0LnJzX3RibWl0ZXJhdG9yID0gdGJtaXRl cmF0b3I7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKaW5kZXggN2ZjYWEzN2ZlNjIu LmMyZmZiZDNiMDhlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhz Y2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC0xMDIs MTYgKzEwMiwyMiBAQCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAKIAlpZiAoc2Nh bmRlc2MgPT0gTlVMTCkKIAl7CisKKwkJYm9vbAkJbW9kaWZpZXNfYmFzZV9yZWwgPQorCQkJYm1z X2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJ CSAgZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpOworCiAJCS8qCiAJCSAqIFdlIHJlYWNoIGhl cmUgaWYgdGhlIGluZGV4IHNjYW4gaXMgbm90IHBhcmFsbGVsLCBvciBpZiB3ZSdyZQogCQkgKiBz ZXJpYWxseSBleGVjdXRpbmcgYW4gaW5kZXggc2NhbiB0aGF0IHdhcyBwbGFubmVkIHRvIGJlIHBh cmFsbGVsLgogCQkgKi8KLQkJc2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW4obm9kZS0+c3Muc3Nf Y3VycmVudFJlbGF0aW9uLAotCQkJCQkJCQkgICBub2RlLT5pc3NfUmVsYXRpb25EZXNjLAotCQkJ CQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAotCQkJCQkJCQkgICAmbm9kZS0+aXNzX0luc3Ry dW1lbnQsCi0JCQkJCQkJCSAgIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKLQkJCQkJCQkJICAgbm9k ZS0+aXNzX051bU9yZGVyQnlLZXlzKTsKKwkJc2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW5fdm1z ZXQobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAorCQkJCQkJCQkJCSBub2RlLT5pc3NfUmVs YXRpb25EZXNjLAorCQkJCQkJCQkJCSBlc3RhdGUtPmVzX3NuYXBzaG90LAorCQkJCQkJCQkJCSAm bm9kZS0+aXNzX0luc3RydW1lbnQsCisJCQkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywK KwkJCQkJCQkJCQkgbm9kZS0+aXNzX051bU9yZGVyQnlLZXlzLAorCQkJCQkJCQkJCSBtb2RpZmll c19iYXNlX3JlbCk7CiAKIAkJbm9kZS0+aXNzX1NjYW5EZXNjID0gc2NhbmRlc2M7CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlU2Vxc2Nhbi5jCmluZGV4IDk0MDQ3ZDI5NDMwLi5mZDY5Mjc1YzE4MSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCkBAIC02NSwxMyArNjUsMTggQEAgU2VxTmV4dChT ZXFTY2FuU3RhdGUgKm5vZGUpCiAKIAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJCWJvb2wJ CW1vZGlmaWVzX3JlbCA9CisJCQlibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2RlLT5zcy5wcy5w bGFuKS0+c2NhbnJlbGlkLAorCQkJCQkJICBlc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcyk7CisK IAkJLyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9y IGlmIHdlJ3JlIHNlcmlhbGx5CiAJCSAqIGV4ZWN1dGluZyBhIHNjYW4gdGhhdCB3YXMgcGxhbm5l ZCB0byBiZSBwYXJhbGxlbC4KIAkJICovCi0JCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuKG5v ZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hv dCwKLQkJCQkJCQkJICAgMCwgTlVMTCk7CisJCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuX3Zt c2V0KG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKKwkJCQkJCQkJCQkgZXN0YXRlLT5lc19z bmFwc2hvdCwKKwkJCQkJCQkJCQkgMCwgTlVMTCwgbW9kaWZpZXNfcmVsKTsKKwogCQlub2RlLT5z cy5zc19jdXJyZW50U2NhbkRlc2MgPSBzY2FuZGVzYzsKIAl9CiAKQEAgLTM2Niw2ICszNzEsNyBA QCBFeGVjU2VxU2NhbkluaXRpYWxpemVEU00oU2VxU2NhblN0YXRlICpub2RlLAogCQkJCQkJIFBh cmFsbGVsQ29udGV4dCAqcGN4dCkKIHsKIAlFU3RhdGUJICAgKmVzdGF0ZSA9IG5vZGUtPnNzLnBz LnN0YXRlOworCWJvb2wJCW1vZGlmaWVzX3JlbDsKIAlQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNj YW47CiAKIAlwc2NhbiA9IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLCBub2RlLT5wc2Nhbl9s ZW4pOwpAQCAtMzczLDggKzM3OSwxMSBAQCBFeGVjU2VxU2NhbkluaXRpYWxpemVEU00oU2VxU2Nh blN0YXRlICpub2RlLAogCQkJCQkJCQkgIHBzY2FuLAogCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25h cHNob3QpOwogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxh bl9ub2RlX2lkLCBwc2Nhbik7CisJbW9kaWZpZXNfcmVsID0gYm1zX2lzX21lbWJlcigoKFNjYW4g Kikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCQkJIGVzdGF0ZS0+ZXNfbW9k aWZpZWRfcmVsaWRzKTsKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9i ZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nhbik7CisJ CXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF92bXNldChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRp b24sIHBzY2FuLAorCQkJCQkJCQkJICAgbW9kaWZpZXNfcmVsKTsKIH0KIAogLyogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpA QCAtNDA0LDggKzQxMywxMyBAQCBFeGVjU2VxU2NhbkluaXRpYWxpemVXb3JrZXIoU2VxU2NhblN0 YXRlICpub2RlLAogCQkJCQkJCVBhcmFsbGVsV29ya2VyQ29udGV4dCAqcHdjeHQpCiB7CiAJUGFy YWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuOworCWJvb2wJCW1vZGlmaWVzX3JlbCA9CisJCWJtc19p c19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCSAg bm9kZS0+c3MucHMuc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcyk7CiAKIAlwc2NhbiA9IHNobV90 b2NfbG9va3VwKHB3Y3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFs c2UpOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9w YXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuKTsKKwkJdGFibGVfYmVn aW5zY2FuX3BhcmFsbGVsX3Ztc2V0KG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKKwkJCQkJ CQkJCSAgIHBzY2FuLAorCQkJCQkJCQkJICAgbW9kaWZpZXNfcmVsKTsKIH0KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgK aW5kZXggNWIyYWIxODFiNWYuLmJmMjcyYzJjMzdmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvZ2VuYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaApAQCAtMTgwLDYg KzE4MCwxMSBAQCBleHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW4oUmVsYXRpb24g aGVhcFJlbGF0aW9uLAogCQkJCQkJCQkJIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJIElu ZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJCQkJCQkJCSBpbnQgbmtleXMs IGludCBub3JkZXJieXMpOworZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX3Zt c2V0KFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKKwkJCQkJCQkJCQkgICBSZWxhdGlvbiBpbmRleFJl bGF0aW9uLAorCQkJCQkJCQkJCSAgIFNuYXBzaG90IHNuYXBzaG90LAorCQkJCQkJCQkJCSAgIElu ZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKKwkJCQkJCQkJCQkgICBpbnQgbmtl eXMsIGludCBub3JkZXJieXMsIGJvb2wgbW9kaWZpZXNfaGVhcF9yZWwpOwogZXh0ZXJuIEluZGV4 U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX2JpdG1hcChSZWxhdGlvbiBpbmRleFJlbGF0aW9uLAog CQkJCQkJCQkJCQlTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCQkJCQkJSW5kZXhTY2FuSW5zdHJ1 bWVudGF0aW9uICppbnN0cnVtZW50LApAQCAtMjA2LDYgKzIxMSwxMiBAQCBleHRlcm4gSW5kZXhT Y2FuRGVzYyBpbmRleF9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gaGVhcHJlbCwKIAkJCQkJ CQkJCQkJICBJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCiAJCQkJCQkJCQkJ CSAgaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzLAogCQkJCQkJCQkJCQkgIFBhcmFsbGVsSW5kZXhT Y2FuRGVzYyBwc2Nhbik7CisKK2V4dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2JlZ2luc2Nhbl9w YXJhbGxlbF92bXNldChSZWxhdGlvbiBoZWFwcmVsLCBSZWxhdGlvbiBpbmRleHJlbCwKKwkJCQkJ CQkJCQkJCQlJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCisJCQkJCQkJCQkJ CQkJaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzLAorCQkJCQkJCQkJCQkJCVBhcmFsbGVsSW5kZXhT Y2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkJCQkJCQlib29sIG1vZGlmaWVzX3JlbCk7CiBleHRlcm4g SXRlbVBvaW50ZXIgaW5kZXhfZ2V0bmV4dF90aWQoSW5kZXhTY2FuRGVzYyBzY2FuLAogCQkJCQkJ CQkJIFNjYW5EaXJlY3Rpb24gZGlyZWN0aW9uKTsKIHN0cnVjdCBUdXBsZVRhYmxlU2xvdDsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW0uaAppbmRleCA0Mjc4ZjM1MWJkZi4uMTZmNzkwNGEyMWUgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt LmgKQEAgLTk0LDYgKzk0LDEzIEBAIHR5cGVkZWYgc3RydWN0IEhlYXBTY2FuRGVzY0RhdGEKIAkg Ki8KIAlQYXJhbGxlbEJsb2NrVGFibGVTY2FuV29ya2VyRGF0YSAqcnNfcGFyYWxsZWx3b3JrZXJk YXRhOwogCisJLyoKKwkgKiBGb3Igc2VxdWVudGlhbCBzY2FucyBhbmQgYml0bWFwIGhlYXAgc2Nh bnMuIElmIHRoZSByZWxhdGlvbiBpcyBub3QKKwkgKiBiZWluZyBtb2RpZmllZCwgb24tYWNjZXNz IHBydW5pbmcgbWF5IHJlYWQgaW4gdGhlIGN1cnJlbnQgaGVhcCBwYWdlJ3MKKwkgKiBjb3JyZXNw b25kaW5nIFZNIGJsb2NrIHRvIHRoaXMgYnVmZmVyLgorCSAqLworCUJ1ZmZlcgkJcnNfdm1idWZm ZXI7CisKIAkvKiB0aGVzZSBmaWVsZHMgb25seSB1c2VkIGluIHBhZ2UtYXQtYS10aW1lIG1vZGUg YW5kIGZvciBiaXRtYXAgc2NhbnMgKi8KIAl1aW50MzIJCXJzX2NpbmRleDsJCS8qIGN1cnJlbnQg dHVwbGUncyBpbmRleCBpbiB2aXN0dXBsZXMgKi8KIAl1aW50MzIJCXJzX250dXBsZXM7CQkvKiBu dW1iZXIgb2YgdmlzaWJsZSB0dXBsZXMgb24gcGFnZSAqLwpAQCAtMTE2LDggKzEyMywxOCBAQCB0 eXBlZGVmIHN0cnVjdCBJbmRleEZldGNoSGVhcERhdGEKIHsKIAlJbmRleEZldGNoVGFibGVEYXRh IHhzX2Jhc2U7CS8qIEFNIGluZGVwZW5kZW50IHBhcnQgb2YgdGhlIGRlc2NyaXB0b3IgKi8KIAot CUJ1ZmZlcgkJeHNfY2J1ZjsJCS8qIGN1cnJlbnQgaGVhcCBidWZmZXIgaW4gc2NhbiwgaWYgYW55 ICovCi0JLyogTkI6IGlmIHhzX2NidWYgaXMgbm90IEludmFsaWRCdWZmZXIsIHdlIGhvbGQgYSBw aW4gb24gdGhhdCBidWZmZXIgKi8KKwkvKgorCSAqIEN1cnJlbnQgaGVhcCBidWZmZXIgaW4gc2Nh biwgaWYgYW55LiBOQjogaWYgeHNfY2J1ZiBpcyBub3QKKwkgKiBJbnZhbGlkQnVmZmVyLCB3ZSBo b2xkIGEgcGluIG9uIHRoYXQgYnVmZmVyLgorCSAqLworCUJ1ZmZlcgkJeHNfY2J1ZjsKKworCS8q CisJICogRm9yIGluZGV4IHNjYW5zIHRoYXQgZG8gbm90IG1vZGlmeSB0aGUgdW5kZXJseWluZyBo ZWFwIHRhYmxlLCBvbi1hY2Nlc3MKKwkgKiBwcnVuaW5nIG1heSByZWFkIGluIHRoZSBjdXJyZW50 IGhlYXAgcGFnZSdzIGNvcnJlc3BvbmRpbmcgVk0gYmxvY2sgdG8KKwkgKiB0aGlzIGJ1ZmZlci4K KwkgKi8KKwlCdWZmZXIJCXhzX3ZtYnVmZmVyOwogfSBJbmRleEZldGNoSGVhcERhdGE7CiAKIC8q IFJlc3VsdCBjb2RlcyBmb3IgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtICovCkBAIC0zNzQsNyAr MzkxLDggQEAgZXh0ZXJuIFRyYW5zYWN0aW9uSWQgaGVhcF9pbmRleF9kZWxldGVfdHVwbGVzKFJl bGF0aW9uIHJlbCwKIAogLyogaW4gaGVhcC9wcnVuZWhlYXAuYyAqLwogc3RydWN0IEdsb2JhbFZp c1N0YXRlOwotZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlv biwgQnVmZmVyIGJ1ZmZlcik7CitleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0 aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJCQlCdWZmZXIgKnZtYnVmZmVyKTsK IGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9u LCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJCQkJICAgYm9vbCBibGtfa25vd25fYXYsCiAJCQkJCQkJ CQkgICBCdWZmZXIgdm1idWZmZXIsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVs c2Nhbi5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaAppbmRleCBiNWUwZmIzODZjMC4u ZjQ5NmUwYjQ5MzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaApAQCAtMTIxLDYgKzEyMSwxMiBAQCB0eXBl ZGVmIHN0cnVjdCBQYXJhbGxlbEJsb2NrVGFibGVTY2FuV29ya2VyRGF0YSAqUGFyYWxsZWxCbG9j a1RhYmxlU2NhbldvcmtlcjsKIHR5cGVkZWYgc3RydWN0IEluZGV4RmV0Y2hUYWJsZURhdGEKIHsK IAlSZWxhdGlvbglyZWw7CisKKwkvKgorCSAqIFNvbWUgb3B0aW1pemF0aW9ucyBjYW4gb25seSBi ZSBwZXJmb3JtZWQgaWYgdGhlIHF1ZXJ5IGRvZXMgbm90IG1vZGlmeQorCSAqIHRoZSB1bmRlcmx5 aW5nIHJlbGF0aW9uLiBUcmFjayB0aGF0IGhlcmUuCisJICovCisJYm9vbAkJbW9kaWZpZXNfYmFz ZV9yZWw7CiB9IEluZGV4RmV0Y2hUYWJsZURhdGE7CiAKIHN0cnVjdCBJbmRleFNjYW5JbnN0cnVt ZW50YXRpb247CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCAxYzllODAyYTZiMS4uMGU5ODZkOGVmNzIg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKKysrIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL3RhYmxlYW0uaApAQCAtNjIsNiArNjIsOCBAQCB0eXBlZGVmIGVudW0gU2Nhbk9w dGlvbnMKIAogCS8qIHVucmVnaXN0ZXIgc25hcHNob3QgYXQgc2NhbiBlbmQ/ICovCiAJU09fVEVN UF9TTkFQU0hPVCA9IDEgPDwgOSwKKwkvKiB3aGV0aGVyIG9yIG5vdCBzY2FuIHNob3VsZCBhdHRl bXB0IHRvIHNldCB0aGUgVk0gKi8KKwlTT19BTExPV19WTV9TRVQgPSAxIDw8IDEwLAogfQkJCVNj YW5PcHRpb25zOwogCiAvKgpAQCAtODc2LDYgKzg3OCwyNSBAQCB0YWJsZV9iZWdpbnNjYW4oUmVs YXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAlyZXR1cm4gcmVsLT5yZF90YWJsZWFtLT5z Y2FuX2JlZ2luKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKIH0KIAor LyoKKyAqIFNpbWlsYXIgdG8gdGFibGVfYmVnaW5zY2FuKCksIGJ1dCBhbGxvd3MgdGhlIGNhbGxl ciB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZQorICogcXVlcnkgbW9kaWZpZXMgdGhlIHJlbGF0aW9u LiBUaGlzIGlzIHVzZWQgd2hlbiB0aGUgY2FsbGVyIHdhbnRzIHRvIGF0dGVtcHQKKyAqIG1hcmtp bmcgcGFnZXMgaW4gdGhlIHJlbGF0aW9uIGFzIGFsbC12aXNpYmxlIGluIHRoZSB2aXNpYmlsaXR5 IG1hcCBkdXJpbmcKKyAqIG9uLWFjY2VzcyBwcnVuaW5nLgorICovCitzdGF0aWMgaW5saW5lIFRh YmxlU2NhbkRlc2MKK3RhYmxlX2JlZ2luc2Nhbl92bXNldChSZWxhdGlvbiByZWwsIFNuYXBzaG90 IHNuYXBzaG90LAorCQkJCQkgIGludCBua2V5cywgc3RydWN0IFNjYW5LZXlEYXRhICprZXksIGJv b2wgbW9kaWZpZXNfcmVsKQoreworCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4gfAor CQlTT19BTExPV19TVFJBVCB8IFNPX0FMTE9XX1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKKwor CWlmICghbW9kaWZpZXNfcmVsKQorCQlmbGFncyB8PSBTT19BTExPV19WTV9TRVQ7CisKKwlyZXR1 cm4gcmVsLT5yZF90YWJsZWFtLT5zY2FuX2JlZ2luKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXks IE5VTEwsIGZsYWdzKTsKK30KKwogLyoKICAqIExpa2UgdGFibGVfYmVnaW5zY2FuKCksIGJ1dCBm b3Igc2Nhbm5pbmcgY2F0YWxvZy4gSXQnbGwgYXV0b21hdGljYWxseSB1c2UgYQogICogc25hcHNo b3QgYXBwcm9wcmlhdGUgZm9yIHNjYW5uaW5nIGNhdGFsb2cgcmVsYXRpb25zLgpAQCAtOTEzLDEw ICs5MzQsMTMgQEAgdGFibGVfYmVnaW5zY2FuX3N0cmF0KFJlbGF0aW9uIHJlbCwgU25hcHNob3Qg c25hcHNob3QsCiAgKi8KIHN0YXRpYyBpbmxpbmUgVGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5z Y2FuX2JtKFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsCi0JCQkJICAgaW50IG5rZXlz LCBzdHJ1Y3QgU2NhbktleURhdGEgKmtleSkKKwkJCQkgICBpbnQgbmtleXMsIHN0cnVjdCBTY2Fu S2V5RGF0YSAqa2V5LCBib29sIG1vZGlmaWVzX3JlbCkKIHsKIAl1aW50MzIJCWZsYWdzID0gU09f VFlQRV9CSVRNQVBTQ0FOIHwgU09fQUxMT1dfUEFHRU1PREU7CiAKKwlpZiAoIW1vZGlmaWVzX3Jl bCkKKwkJZmxhZ3MgfD0gU09fQUxMT1dfVk1fU0VUOworCiAJcmV0dXJuIHJlbC0+cmRfdGFibGVh bS0+c2Nhbl9iZWdpbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LAogCQkJCQkJCQkJICAgTlVM TCwgZmxhZ3MpOwogfQpAQCAtMTEyNSw2ICsxMTQ5LDEwIEBAIGV4dGVybiB2b2lkIHRhYmxlX3Bh cmFsbGVsc2Nhbl9pbml0aWFsaXplKFJlbGF0aW9uIHJlbCwKIGV4dGVybiBUYWJsZVNjYW5EZXNj IHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiByZWxhdGlvbiwKIAkJCQkJCQkJCQkJ ICBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pOwogCitleHRlcm4gVGFibGVTY2FuRGVzYyB0 YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdm1zZXQoUmVsYXRpb24gcmVsYXRpb24sCisJCQkJCQkJ CQkJCQkJUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCQkJCQkJCWJvb2wgbW9k aWZpZXNfcmVsKTsKKwogLyoKICAqIFJlc3RhcnQgYSBwYXJhbGxlbCBzY2FuLiAgQ2FsbCB0aGlz IGluIHRoZSBsZWFkZXIgcHJvY2Vzcy4gIENhbGxlciBpcwogICogcmVzcG9uc2libGUgZm9yIG1h a2luZyBzdXJlIHRoYXQgYWxsIHdvcmtlcnMgaGF2ZSBmaW5pc2hlZCB0aGUgc2NhbgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaAppbmRleCBkZTc4MjAxNGIyZC4uODM5YzFiZTFkN2MgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNu b2Rlcy5oCkBAIC02NzgsNiArNjc4LDEyIEBAIHR5cGVkZWYgc3RydWN0IEVTdGF0ZQogCQkJCQkJ CQkJICogRXhlY0RvSW5pdGlhbFBydW5pbmcoKSAqLwogCWNvbnN0IGNoYXIgKmVzX3NvdXJjZVRl eHQ7CS8qIFNvdXJjZSB0ZXh0IGZyb20gUXVlcnlEZXNjICovCiAKKwkvKgorCSAqIFJUIGluZGV4 ZXMgb2YgcmVsYXRpb25zIG1vZGlmaWVkIGJ5IHRoZSBxdWVyeSBlaXRoZXIgdGhyb3VnaAorCSAq IFVQREFURS9ERUxFVEUvSU5TRVJUL01FUkdFIG9yIFNFTEVDVCBGT1IgVVBEQVRFCisJICovCisJ Qml0bWFwc2V0ICAqZXNfbW9kaWZpZWRfcmVsaWRzOworCiAJSnVua0ZpbHRlciAqZXNfanVua0Zp bHRlcjsJLyogdG9wLWxldmVsIGp1bmsgZmlsdGVyLCBpZiBhbnkgKi8KIAogCS8qIElmIHF1ZXJ5 IGNhbiBpbnNlcnQvZGVsZXRlIHR1cGxlcywgdGhlIGNvbW1hbmQgSUQgdG8gbWFyayB0aGVtIHdp dGggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNh bF9kZWNvZGluZy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9k ZWNvZGluZy5wbAppbmRleCBjOWMxODI4OTJjZi4uODcwZjAzYmRkNzkgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbAorKysgYi9z cmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwKQEAgLTEw LDYgKzEwLDcgQEAgdXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7CiB1c2UgUG9zdGdyZVNR TDo6VGVzdDo6VXRpbHM7CiB1c2UgVGltZTo6SGlSZXMgcXcodXNsZWVwKTsKIHVzZSBUZXN0OjpN b3JlOwordXNlIFRpbWU6OkhpUmVzIHF3KHVzbGVlcCk7CiAKIGlmICgkRU5We2VuYWJsZV9pbmpl Y3Rpb25fcG9pbnRzfSBuZSAneWVzJykKIHsKQEAgLTI5Niw2ICsyOTcsNyBAQCB3YWxfbGV2ZWwg PSAnbG9naWNhbCcKIG1heF9yZXBsaWNhdGlvbl9zbG90cyA9IDQKIG1heF93YWxfc2VuZGVycyA9 IDQKIGF1dG92YWN1dW0gPSBvZmYKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24KIH0pOwogJG5v ZGVfcHJpbWFyeS0+ZHVtcF9pbmZvOwogJG5vZGVfcHJpbWFyeS0+c3RhcnQ7CkBAIC03NDUsNyAr NzQ3LDcgQEAgY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsCiAkbG9nc3RhcnQg PSAtcyAkbm9kZV9zdGFuZGJ5LT5sb2dmaWxlOwogCiByZWFjdGl2ZV9zbG90c19jaGFuZ2VfaGZz X2FuZF93YWl0X2Zvcl94bWlucygnc2hhcmVkX3Jvd19yZW1vdmFsXycsCi0JJ25vX2NvbmZsaWN0 XycsIDAsIDEpOworCSdub19jb25mbGljdF8nLCAxLCAwKTsKIAogIyBUaGlzIHNob3VsZCBub3Qg dHJpZ2dlciBhIGNvbmZsaWN0CiB3YWl0X3VudGlsX3ZhY3V1bV9jYW5fcmVtb3ZlKAotLSAKMi40 My4wCgo= --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0020-Add-helper-functions-to-heap_page_prune_and_freez.patch" Content-Disposition: attachment; filename="v8-0020-Add-helper-functions-to-heap_page_prune_and_freez.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7ca19 RnJvbSBkNTUyMTZhOGEyZmIxNmMxNzZlMjQ1Y2FjYTk3ZTg4YWUzNWFkMWY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMwIEp1bCAyMDI1IDE4OjUxOjQzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAyMC8yMl0gQWRkIGhlbHBlciBmdW5jdGlvbnMgdG8gaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUKCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgaGFzIGdvdHRlbiByYXRoZXIg bG9uZy4gSXQgaGFzIHNldmVyYWwKc3RhZ2VzOgoKMSkgc2V0dXAgLSB3aGVyZSB0aGUgUHJ1bmVT dGF0ZWlzIHNldCB1cAoyKSB0dXBsZSBleGFtaW5hdGlvbiAtLSB3aGVyZSB0dXBsZXMgYW5kIGxp bmUgcG9pbnRlcnMgYXJlIGV4YW1pbmVkIHRvCiAgIGRldGVybWluZSB3aGF0IG5lZWRzIHRvIGJl IHBydW5lZCBhbmQgd2hhdCBjb3VsZCBiZSBmcm96ZW4KMykgZXZhbHVhdGlvbiAtLSB3aGVyZSB3 ZSBkZXRlcm1pbmUgYmFzZWQgb24gY2FsbGVyIHByb3ZpZGVkIG9wdGlvbnMsCiAgIGhldXJpc3Rp Y3MsIGFuZCBzdGF0ZSBnYXRoZXJlZCBkdXJpbmcgc3RhZ2UgMiB3aGV0aGVyIG9yIG5vdCB0bwog ICBmcmVlemUgdHVwbGVzIGFuZCBzZXQgdGhlIHBhZ2UgaW4gdGhlIFZNCjQpIGV4ZWN1dGlvbiAt IHdoZXJlIHRoZSBwYWdlIGNoYW5nZXMgYXJlIGFjdHVhbGx5IG1hZGUgYW5kIGxvZ2dlZAoKVGhp cyBjb21taXQgcmVmYWN0b3JzIHRoZSBldmFsdWF0aW9uIHN0YWdlIGludG8gaGVscGVycyB3aGlj aCByZXR1cm4Kd2hldGhlciBvciBub3QgdG8gZnJlZXplIGFuZCBzZXQgdGhlIFZNLgoKRm9yIHRo ZSBwdXJwb3NlcyBvZiBjb21taXR0aW5nLCB0aGlzIGxpa2VseSBzaG91bGRuJ3QgYmUgYSBzZXBh cmF0ZQpjb21taXQuIEJ1dCBJJ20gbm90IHN1cmUgeWV0IHdoZXRoZXIgaXQgbWFrZXMgbW9yZSBz ZW5zZSB0byBkbyB0aGlzCnJlZmFjdG9yaW5nIGVhcmxpZXIgaW4gdGhlIHNldCBmb3IgY2xhcml0 eSBmb3IgdGhlIHJldmlld2VyLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jIHwgNDcxICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAy OTUgaW5zZXJ0aW9ucygrKSwgMTc2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMKaW5kZXggMTY2OWQ3YjQ2NmUuLjhiODk4ZmUxOWRkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYwpAQCAtMTc5LDYgKzE3OSwyMiBAQCBzdGF0aWMgdm9pZCBoZWFwX3By dW5lX3JlY29yZF91bmNoYW5nZWRfbHBfcmVkaXJlY3QoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zm c2V0TgogCiBzdGF0aWMgdm9pZCBwYWdlX3ZlcmlmeV9yZWRpcmVjdHMoUGFnZSBwYWdlKTsKIAor c3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZm ZXIgYnVmZmVyLAorCQkJCQkJCQkgIGJvb2wgZG9fcHJ1bmUsCisJCQkJCQkJCSAgYm9vbCBkb19o aW50X2Z1bGxfb3JfcHJ1bmFibGUsCisJCQkJCQkJCSAgYm9vbCBkaWRfdHVwbGVfaGludF9mcGks CisJCQkJCQkJCSAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKKwkJCQkJCQkJICBib29sICphbGxfZnJv emVuX2V4Y2VwdF9scF9kZWFkKTsKKworc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfdXBkYXRl X3ZtKFJlbGF0aW9uIHJlbGF0aW9uLAorCQkJCQkJCQkJIEJ1ZmZlciBidWZmZXIsIEJsb2NrTnVt YmVyIGJsb2Nrbm8sIFBhZ2UgcGFnZSwKKwkJCQkJCQkJCSBQcnVuZVJlYXNvbiByZWFzb24sCisJ CQkJCQkJCQkgYm9vbCBkb19wcnVuZSwgYm9vbCBkb19mcmVlemUsCisJCQkJCQkJCQkgYm9vbCBi bGtfa25vd25fYXYsCisJCQkJCQkJCQkgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKKwkJCQkJCQkJCSBC dWZmZXIgKnZtYnVmZmVyLCB1aW50OCAqdm1mbGFncywKKwkJCQkJCQkJCSBib29sICpzZXRfcGRf YWxsX3Zpc2libGUpOworCiBzdGF0aWMgYm9vbCBpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRp b24oUmVsYXRpb24gcmVsYXRpb24sCiAJCQkJCQkJCQkJICAgQmxvY2tOdW1iZXIgaGVhcF9ibGss CiAJCQkJCQkJCQkJICAgQnVmZmVyIGhlYXBfYnVmZmVyLCBQYWdlIGhlYXBfcGFnZSwKQEAgLTM3 Niw2ICszOTIsMjQ5IEBAIGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihSZWxhdGlvbiBy ZWxhdGlvbiwKIAlyZXR1cm4gZmFsc2U7CiB9CiAKKworLyoKKyAqIERldGVybWluZSB3aGV0aGVy IHRvIHNldCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0cyBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9t CisgKiB0aGUgUHJ1bmVTdGF0ZSBhbmQgYmxrX2tub3duX2F2LCB3aGljaCBzb21lIGNhbGxlcnMg d2lsbCBwcm92aWRlIGFmdGVyCisgKiBwcmV2aW91c2x5IGV4YW1pbmluZyB0aGlzIGhlYXAgcGFn ZSdzIFZNIGJpdHMgKGUuZy4gdmFjdXVtIGZyb20gdGhlIGxhc3QKKyAqIGhlYXBfdmFjX3NjYW5f bmV4dF9ibG9jaygpIGNhbGwpLgorICoKKyAqIFdlIHBhc3MgaW4gYmxvY2tubyBhbmQgcGFnZSBl dmVuIHRob3NlIGNhbiBiZSBkZXJpdmVkIGZyb20gYnVmZmVyIHRvIGF2b2lkCisgKiBleHRyYSBC dWZmZXJHZXRCbG9jaygpIGFuZCBCdWZmZXJHZXRCbG9ja051bWJlcigpIGNhbGxzLgorICoKKyAq IFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IGFmdGVyIGRvX2ZyZWV6ZSBoYXMgYmVlbiBkZWNp ZGVkIChhbmQgZG9fcHJ1bmUKKyAqIGhhcyBiZWVuIHNldCksIGFzIHRoZXNlIGZhY3RvciBpbnRv IG91ciBoZXVyaXN0aWMtYmFzZWQgZGVjaXNpb24uCisgKgorICogcHJzdGF0ZSBhbmQgdm1idWZm ZXIgYXJlIGlucHV0L291dHB1dCBmaWVsZHMuIHZtZmxhZ3MgYW5kIGFuZAorICogc2V0X3BkX2Fs bF92aXNpYmxlIGFyZSBvdXRwdXQgZmllbGRzLgorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUg Y2FsbGVyIHNob3VsZCBzZXQgb25lIG9yIGJvdGggb2YgdGhlIFZNIGJpdHMgYW5kIGZhbHNlCisg KiBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBib29sCitoZWFwX3BhZ2Vfd2lsbF91cGRhdGVfdm0o UmVsYXRpb24gcmVsYXRpb24sCisJCQkJCQkgQnVmZmVyIGJ1ZmZlciwgQmxvY2tOdW1iZXIgYmxv Y2tubywgUGFnZSBwYWdlLAorCQkJCQkJIFBydW5lUmVhc29uIHJlYXNvbiwKKwkJCQkJCSBib29s IGRvX3BydW5lLCBib29sIGRvX2ZyZWV6ZSwKKwkJCQkJCSBib29sIGJsa19rbm93bl9hdiwKKwkJ CQkJCSBQcnVuZVN0YXRlICpwcnN0YXRlLAorCQkJCQkJIEJ1ZmZlciAqdm1idWZmZXIsIHVpbnQ4 ICp2bWZsYWdzLAorCQkJCQkJIGJvb2wgKnNldF9wZF9hbGxfdmlzaWJsZSkKK3sKKwlib29sCQlk b19zZXRfdm0gPSBmYWxzZTsKKworCS8qCisJICogSWYgdGhlIGNhbGxlciBzcGVjaWZpZWQgbm90 IHRvIHVwZGF0ZSB0aGUgVk0sIHZhbGlkYXRlIGV2ZXJ5dGhpbmcgaXMgaW4KKwkgKiB0aGUgcmln aHQgc3RhdGUgYW5kIGV4aXQuCisJICovCisJaWYgKCFwcnN0YXRlLT5jb25zaWRlcl91cGRhdGVf dm0pCisJeworCQlBc3NlcnQoIXByc3RhdGUtPmFsbF92aXNpYmxlICYmICFwcnN0YXRlLT5hbGxf ZnJvemVuKTsKKwkJLyogV2UgZG9uJ3Qgc2V0IG9ubHkgdGhlIHBhZ2UgbGV2ZWwgdmlzaWJpbGl0 eSBoaW50ICovCisJCUFzc2VydCghKCpzZXRfcGRfYWxsX3Zpc2libGUpKTsKKwkJQXNzZXJ0KCp2 bWZsYWdzID09IDApOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyoKKwkgKiBJZiB0aGlzIGlz IGFuIG9uLWFjY2VzcyBjYWxsIGFuZCB3ZSdyZSBub3QgYWN0dWFsbHkgcHJ1bmluZywgYXZvaWQK KwkgKiBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5IG1hcCBpZiBpdCB3b3VsZCBuZXdseSBkaXJ0eSB0 aGUgaGVhcCBwYWdlIG9yLCBpZgorCSAqIHRoZSBwYWdlIGlzIGFscmVhZHkgZGlydHksIGlmIGRv aW5nIHNvIHdvdWxkIHJlcXVpcmUgaW5jbHVkaW5nIGEKKwkgKiBmdWxsLXBhZ2UgaW1hZ2UgKEZQ SSkgb2YgdGhlIGhlYXAgcGFnZSBpbiB0aGUgV0FMLiBUaGlzIHNpdHVhdGlvbgorCSAqIHNob3Vs ZCBiZSByYXJlLCBhcyBvbi1hY2Nlc3MgcHJ1bmluZyBpcyBvbmx5IGF0dGVtcHRlZCB3aGVuCisJ ICogcGRfcHJ1bmVfeGlkIGlzIHZhbGlkLgorCSAqLworCWlmIChyZWFzb24gPT0gUFJVTkVfT05f QUNDRVNTICYmCisJCXByc3RhdGUtPmNvbnNpZGVyX3VwZGF0ZV92bSAmJgorCQlwcnN0YXRlLT5h bGxfdmlzaWJsZSAmJgorCQkhZG9fcHJ1bmUgJiYgIWRvX2ZyZWV6ZSAmJgorCQkoIUJ1ZmZlcklz RGlydHkoYnVmZmVyKSB8fCBYTG9nQ2hlY2tCdWZmZXJOZWVkc0JhY2t1cChidWZmZXIpKSkKKwl7 CisJCXByc3RhdGUtPmNvbnNpZGVyX3VwZGF0ZV92bSA9IGZhbHNlOworCQlwcnN0YXRlLT5hbGxf dmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKKwl9CisKKwlBc3NlcnQoIXBy c3RhdGUtPmFsbF9mcm96ZW4gfHwgcHJzdGF0ZS0+YWxsX3Zpc2libGUpOworCisJLyoKKwkgKiBD bGVhciBhbnkgVk0gY29ycnVwdGlvbi4gVGhpcyBkb2VzIG5vdCBuZWVkIHRvIGJlIGluIGEgY3Jp dGljYWwKKwkgKiBzZWN0aW9uLCBzbyB3ZSBkbyBpdCBmaXJzdC4gSWYgUERfQUxMX1ZJU0lCTEUg aXMgaW5jb3JyZWN0bHkgc2V0LCB3ZQorCSAqIG1heSBtYXJrIHRoZSBoZWFwIHBhZ2UgYnVmZmVy IGRpcnR5IGhlcmUgYW5kIGNvdWxkIGVuZCB1cCBkb2luZyBzbworCSAqIGFnYWluIGxhdGVyLiBU aGlzIGlzIG5vdCBhIGNvcnJlY3RuZXNzIGlzc3VlIGFuZCBpcyBpbiB0aGUgcGF0aCBvZiBWTQor CSAqIGNvcnJ1cHRpb24sIHNvIHdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhlIGV4dHJh IHBlcmZvcm1hbmNlCisJICogb3ZlcmhlYWQuCisJICovCisJaWYgKGlkZW50aWZ5X2FuZF9maXhf dm1fY29ycnVwdGlvbihyZWxhdGlvbiwKKwkJCQkJCQkJCSAgIGJsb2Nrbm8sIGJ1ZmZlciwgcGFn ZSwKKwkJCQkJCQkJCSAgIGJsa19rbm93bl9hdiwgcHJzdGF0ZS0+bHBkZWFkX2l0ZW1zLAorCQkJ CQkJCQkJICAgKnZtYnVmZmVyKSkKKwl7CisJCS8qIElmIHdlIGZpeCBjb3JydXB0aW9uLCBkb24n dCB1cGRhdGUgdGhlIFZNIGZ1cnRoZXIgKi8KKwl9CisKKwkvKiBEZXRlcm1pbmUgaWYgd2UgYWN0 dWFsbHkgbmVlZCB0byBzZXQgdGhlIFZNIGFuZCB3aGljaCBiaXRzIHRvIHNldC4gKi8KKwllbHNl IGlmIChwcnN0YXRlLT5hbGxfdmlzaWJsZSAmJgorCQkJICghYmxrX2tub3duX2F2IHx8CisJCQkg IChwcnN0YXRlLT5hbGxfZnJvemVuICYmICFWTV9BTExfRlJPWkVOKHJlbGF0aW9uLCBibG9ja25v LCB2bWJ1ZmZlcikpKSkKKwl7CisJCSp2bWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lC TEU7CisJCWlmIChwcnN0YXRlLT5hbGxfZnJvemVuKQorCQkJKnZtZmxhZ3MgfD0gVklTSUJJTElU WU1BUF9BTExfRlJPWkVOOworCX0KKworCWRvX3NldF92bSA9ICp2bWZsYWdzICYgVklTSUJJTElU WU1BUF9WQUxJRF9CSVRTOworCisJLyoKKwkgKiBEb24ndCBzZXQgUERfQUxMX1ZJU0lCTEUgdW5s ZXNzIHdlIGFsc28gcGxhbiB0byBzZXQgdGhlIFZNLiBXaGlsZSBpdCBpcworCSAqIGNvcnJlY3Qg Zm9yIGEgaGVhcCBwYWdlIHRvIGhhdmUgUERfQUxMX1ZJU0lCTEUgZXZlbiBpZiB0aGUgVk0gaXMg bm90CisJICogc2V0LCB3ZSBzdHJvbmdseSBwcmVmZXIgdG8ga2VlcCB0aGVtIGluIHN5bmMuCisJ ICoKKwkgKiBQcmlvciB0byBQb3N0Z3JlcyAxOSwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUgcGFn ZS1sZXZlbCBiaXQgdG8gYmUgc2V0CisJICogYW5kIHRoZSBWTSBiaXQgdG8gYmUgY2xlYXIuIFRo aXMgY291bGQgaGFwcGVuIGlmIHdlIGNyYXNoZWQgYWZ0ZXIKKwkgKiBzZXR0aW5nIFBEX0FMTF9W SVNJQkxFIGJ1dCBiZWZvcmUgc2V0dGluZyBiaXRzIGluIHRoZSBWTS4KKwkgKi8KKwkqc2V0X3Bk X2FsbF92aXNpYmxlID0gZG9fc2V0X3ZtICYmICFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpOworCXJl dHVybiBkb19zZXRfdm07Cit9CisKKy8qCisgKiBEZWNpZGUgaWYgd2Ugd2FudCB0byBnbyBhaGVh ZCB3aXRoIGZyZWV6aW5nIGFjY29yZGluZyB0byB0aGUgZnJlZXplIHBsYW5zIHdlCisgKiBwcmVw YXJlZCBmb3IgdGhlIGdpdmVuIGJ1ZmZlciBvciBub3QuIElmIHRoZSBjYWxsZXIgc3BlY2lmaWVk IHdlIHNob3VsZCBub3QKKyAqIGZyZWV6ZSB0dXBsZXMsIGl0IGV4aXRzIGVhcmx5LgorICoKKyAq IGRvX3BydW5lLCBkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGUsIGFuZCBkaWRfdHVwbGVfaGludF9m cGkgbXVzdCBhbGwgaGF2ZQorICogYmVlbiBkZWNpZGVkIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVu Y3Rpb24uCisgKgorICogcHJzdGF0ZSBpcyBhbiBpbnB1dC9vdXRwdXQgcGFyYW1ldGVyLiBhbGxf ZnJvemVuX2V4Y2VwdF9scF9kZWFkIGlzIHNldCBhbmQKKyAqIHVzZWQgbGF0ZXIgdG8gZGV0ZXJt aW5lIHRoZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uIGZvciB0aGUgcmVjb3JkLgorICoKKyAq IFJldHVybnMgdHJ1ZSBpZiB3ZSBzaG91bGQgdXNlIG91ciBmcmVlemUgcGxhbnMgYW5kIGZyZWV6 ZSB0dXBsZXMgb24gdGhlIHBhZ2UKKyAqIGFuZCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK3N0YXRp YyBib29sCitoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIsCisJCQkJCSAgYm9vbCBkb19wcnVuZSwKKwkJCQkJICBib29sIGRvX2hpbnRfZnVsbF9v cl9wcnVuYWJsZSwKKwkJCQkJICBib29sIGRpZF90dXBsZV9oaW50X2ZwaSwKKwkJCQkJICBQcnVu ZVN0YXRlICpwcnN0YXRlLAorCQkJCQkgIGJvb2wgKmFsbF9mcm96ZW5fZXhjZXB0X2xwX2RlYWQp Cit7CisJYm9vbAkJZG9fZnJlZXplID0gZmFsc2U7CisKKwkvKgorCSAqIElmIHRoZSBjYWxsZXIg c3BlY2lmaWVkIHdlIHNob3VsZCBub3QgYXR0ZW1wdCB0byBmcmVlemUgYW55IHR1cGxlcywKKwkg KiB2YWxpZGF0ZSB0aGF0IGV2ZXJ5dGhpbmcgaXMgaW4gdGhlIHJpZ2h0IHN0YXRlIGFuZCBleGl0 LgorCSAqLworCWlmICghcHJzdGF0ZS0+YXR0ZW1wdF9mcmVlemUpCisJeworCQlBc3NlcnQoIXBy c3RhdGUtPmFsbF9mcm96ZW4gJiYgcHJzdGF0ZS0+bmZyb3plbiA9PSAwKTsKKwkJQXNzZXJ0KHBy c3RhdGUtPmxwZGVhZF9pdGVtcyA9PSAwIHx8ICFwcnN0YXRlLT5hbGxfdmlzaWJsZSk7CisJCUFz c2VydCghKCphbGxfZnJvemVuX2V4Y2VwdF9scF9kZWFkKSk7CisJCXJldHVybiBmYWxzZTsKKwl9 CisKKwlpZiAocHJzdGF0ZS0+cGFnZWZyei5mcmVlemVfcmVxdWlyZWQpCisJeworCQkvKgorCQkg KiBoZWFwX3ByZXBhcmVfZnJlZXplX3R1cGxlIGluZGljYXRlZCB0aGF0IGF0IGxlYXN0IG9uZSBY SUQvTVhJRCBmcm9tCisJCSAqIGJlZm9yZSBGcmVlemVMaW1pdC9NdWx0aVhhY3RDdXRvZmYgaXMg cHJlc2VudC4gIE11c3QgZnJlZXplIHRvCisJCSAqIGFkdmFuY2UgcmVsZnJvemVueGlkL3JlbG1p bm14aWQuCisJCSAqLworCQlkb19mcmVlemUgPSB0cnVlOworCX0KKwllbHNlCisJeworCQkvKgor CQkgKiBPcHBvcnR1bmlzdGljYWxseSBmcmVlemUgdGhlIHBhZ2UgaWYgd2UgYXJlIGdlbmVyYXRp bmcgYW4gRlBJCisJCSAqIGFueXdheSBhbmQgaWYgZG9pbmcgc28gbWVhbnMgdGhhdCB3ZSBjYW4g c2V0IHRoZSBwYWdlIGFsbC1mcm96ZW4KKwkJICogYWZ0ZXJ3YXJkcyAobWlnaHQgbm90IGhhcHBl biB1bnRpbCBWQUNVVU0ncyBmaW5hbCBoZWFwIHBhc3MpLgorCQkgKgorCQkgKiBYWFg6IFByZXZp b3VzbHksIHdlIGtuZXcgaWYgcHJ1bmluZyBlbWl0dGVkIGFuIEZQSSBieSBjaGVja2luZworCQkg KiBwZ1dhbFVzYWdlLndhbF9mcGkgYmVmb3JlIGFuZCBhZnRlciBwcnVuaW5nLiAgT25jZSB0aGUg ZnJlZXplIGFuZAorCQkgKiBwcnVuZSByZWNvcmRzIHdlcmUgY29tYmluZWQsIHRoaXMgaGV1cmlz dGljIGNvdWxkbid0IGJlIHVzZWQKKwkJICogYW55bW9yZS4gIFRoZSBvcHBvcnR1bmlzdGljIGZy ZWV6ZSBoZXVyaXN0aWMgbXVzdCBiZSBpbXByb3ZlZDsKKwkJICogaG93ZXZlciwgZm9yIG5vdywg dHJ5IHRvIGFwcHJveGltYXRlIHRoZSBvbGQgbG9naWMuCisJCSAqLworCQlpZiAocHJzdGF0ZS0+ YWxsX3Zpc2libGUgJiYgcHJzdGF0ZS0+YWxsX2Zyb3plbiAmJiBwcnN0YXRlLT5uZnJvemVuID4g MCkKKwkJeworCQkJLyoKKwkJCSAqIEZyZWV6aW5nIHdvdWxkIG1ha2UgdGhlIHBhZ2UgYWxsLWZy b3plbi4gIEhhdmUgYWxyZWFkeSBlbWl0dGVkCisJCQkgKiBhbiBGUEkgb3Igd2lsbCBkbyBzbyBh bnl3YXk/CisJCQkgKi8KKwkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHJlbGF0aW9uKSkKKwkJCXsK KwkJCQlpZiAoZGlkX3R1cGxlX2hpbnRfZnBpKQorCQkJCQlkb19mcmVlemUgPSB0cnVlOworCQkJ CWVsc2UgaWYgKGRvX3BydW5lKQorCQkJCXsKKwkJCQkJaWYgKFhMb2dDaGVja0J1ZmZlck5lZWRz QmFja3VwKGJ1ZmZlcikpCisJCQkJCQlkb19mcmVlemUgPSB0cnVlOworCQkJCX0KKwkJCQllbHNl IGlmIChkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGUpCisJCQkJeworCQkJCQlpZiAoWExvZ0hpbnRC aXRJc05lZWRlZCgpICYmIFhMb2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKGJ1ZmZlcikpCisJCQkJ CQlkb19mcmVlemUgPSB0cnVlOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKworCWlmIChkb19mcmVl emUpCisJeworCQkvKgorCQkgKiBWYWxpZGF0ZSB0aGUgdHVwbGVzIHdlIHdpbGwgYmUgZnJlZXpp bmcgYmVmb3JlIGVudGVyaW5nIHRoZQorCQkgKiBjcml0aWNhbCBzZWN0aW9uLgorCQkgKi8KKwkJ aGVhcF9wcmVfZnJlZXplX2NoZWNrcyhidWZmZXIsIHByc3RhdGUtPmZyb3plbiwgcHJzdGF0ZS0+ bmZyb3plbik7CisJfQorCWVsc2UgaWYgKHByc3RhdGUtPm5mcm96ZW4gPiAwKQorCXsKKwkJLyoK KwkJICogVGhlIHBhZ2UgY29udGFpbmVkIHNvbWUgdHVwbGVzIHRoYXQgd2VyZSBub3QgYWxyZWFk eSBmcm96ZW4sIGFuZCB3ZQorCQkgKiBjaG9zZSBub3QgdG8gZnJlZXplIHRoZW0gbm93LiAgVGhl IHBhZ2Ugd29uJ3QgYmUgYWxsLWZyb3plbiB0aGVuLgorCQkgKi8KKwkJQXNzZXJ0KCFwcnN0YXRl LT5wYWdlZnJ6LmZyZWV6ZV9yZXF1aXJlZCk7CisKKwkJcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZh bHNlOworCQlwcnN0YXRlLT5uZnJvemVuID0gMDsJLyogYXZvaWQgbWlzY291bnRzIGluIGluc3Ry dW1lbnRhdGlvbiAqLworCX0KKwllbHNlCisJeworCQkvKgorCQkgKiBXZSBoYXZlIG5vIGZyZWV6 ZSBwbGFucyB0byBleGVjdXRlLiAgVGhlIHBhZ2UgbWlnaHQgYWxyZWFkeSBiZQorCQkgKiBhbGwt ZnJvemVuIChwZXJoYXBzIG9ubHkgZm9sbG93aW5nIHBydW5pbmcpLCB0aG91Z2guICBTdWNoIHBh Z2VzCisJCSAqIGNhbiBiZSBtYXJrZWQgYWxsLWZyb3plbiBpbiB0aGUgVk0gYnkgb3VyIGNhbGxl ciwgZXZlbiB0aG91Z2ggbm9uZQorCQkgKiBvZiBpdHMgdHVwbGVzIHdlcmUgbmV3bHkgZnJvemVu IGhlcmUuCisJCSAqLworCX0KKworCS8qCisJICogSXQgd2FzIGNvbnZlbmllbnQgdG8gaWdub3Jl IExQX0RFQUQgaXRlbXMgaW4gYWxsX3Zpc2libGUgZWFybGllciBvbiB0bworCSAqIG1ha2UgdGhl IGNob2ljZSBvZiB3aGV0aGVyIG9yIG5vdCB0byBmcmVlemUgdGhlIHBhZ2UgdW5hZmZlY3RlZCBi eSB0aGUKKwkgKiBzaG9ydC10ZXJtIHByZXNlbmNlIG9mIExQX0RFQUQgaXRlbXMuICBUaGVzZSBM UF9ERUFEIGl0ZW1zIHdlcmUKKwkgKiBlZmZlY3RpdmVseSBhc3N1bWVkIHRvIGJlIExQX1VOVVNF RCBpdGVtcyBpbiB0aGUgbWFraW5nLiAgSXQgZG9lc24ndAorCSAqIG1hdHRlciB3aGljaCB2YWN1 dW0gaGVhcCBwYXNzIChpbml0aWFsIHBhc3Mgb3IgZmluYWwgcGFzcykgZW5kcyB1cAorCSAqIHNl dHRpbmcgdGhlIHBhZ2UgYWxsLWZyb3plbiwgYXMgbG9uZyBhcyB0aGUgb25nb2luZyBWQUNVVU0g ZG9lcyBpdC4KKwkgKgorCSAqIE5vdyB0aGF0IGZyZWV6aW5nIGhhcyBiZWVuIGZpbmFsaXplZCwg dW5zZXQgYWxsX3Zpc2libGUgaWYgdGhlcmUgYXJlCisJICogYW55IExQX0RFQUQgaXRlbXMgb24g dGhlIHBhZ2UuIEl0IG5lZWRzIHRvIHJlZmxlY3QgdGhlIHByZXNlbnQgc3RhdGUgb2YKKwkgKiB0 aGUgcGFnZSB3aGVuIHVzaW5nIGl0IHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0byB1cGRh dGUgdGhlIFZNLgorCSAqCisJICogS2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFn ZSB3YXMgYWxsLWZyb3plbiBleGNlcHQgTFBfREVBRAorCSAqIGl0ZW1zIGZvciB0aGUgcHVycG9z ZXMgb2YgY2FsY3VsYXRpbmcgdGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24sCisJICogdGhv dWdoLgorCSAqLworCSphbGxfZnJvemVuX2V4Y2VwdF9scF9kZWFkID0gcHJzdGF0ZS0+YWxsX2Zy b3plbjsKKwlpZiAocHJzdGF0ZS0+bHBkZWFkX2l0ZW1zID4gMCkKKwl7CisJCXByc3RhdGUtPmFs bF92aXNpYmxlID0gZmFsc2U7CisJCXByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKKwl9CisK KwlyZXR1cm4gZG9fZnJlZXplOworfQorCisKIC8qCiAgKiBQcnVuZSBhbmQgcmVwYWlyIGZyYWdt ZW50YXRpb24gYW5kIHBvdGVudGlhbGx5IGZyZWV6ZSB0dXBsZXMgb24gdGhlCiAgKiBzcGVjaWZp ZWQgcGFnZS4gSWYgdGhlIHBhZ2UncyB2aXNpYmlsaXR5IHN0YXR1cyBoYXMgY2hhbmdlZCwgdXBk YXRlIGl0IGluCkBAIC03NjYsMjAgKzEwMjUsMzAgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJLyogQ2xlYXIgdGhlIG9mZnNl dCBpbmZvcm1hdGlvbiBvbmNlIHdlIGhhdmUgcHJvY2Vzc2VkIHRoZSBnaXZlbiBwYWdlLiAqLwog CSpvZmZfbG9jID0gSW52YWxpZE9mZnNldE51bWJlcjsKIAotCWRvX3BydW5lID0gcHJzdGF0ZS5u cmVkaXJlY3RlZCA+IDAgfHwKLQkJcHJzdGF0ZS5uZGVhZCA+IDAgfHwKLQkJcHJzdGF0ZS5udW51 c2VkID4gMDsKLQogCS8qCiAJICogQWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIGxpdmUgdHVwbGVz IG9uIHRoZSBwYWdlLCBpZiB0aGUgbmV3ZXN0IHhtaW4KIAkgKiBhbW9uZ3N0IHRoZW0gaXMgbm90 IHZpc2libGUgdG8gZXZlcnlvbmUsIHRoZSBwYWdlIGNhbm5vdCBiZQotCSAqIGFsbC12aXNpYmxl LgorCSAqIGFsbC12aXNpYmxlLiBUaGlzIG11c3QgYmUgZG9uZSBiZWZvcmUgd2UgZGVjaWRlIHdo ZXRoZXIgb3Igbm90IHRvCisJICogb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplIGJlbG93IGJlY2F1 c2Ugd2UgZG8gbm90IHdhbnQgdG8KKwkgKiBvcHBvcnR1bmlzdGljYWxseSBmcmVlemUgdGhlIHBh Z2UgaWYgdGhlcmUgYXJlIGxpdmUgdHVwbGVzIG5vdCB2aXNpYmxlCisJICogdG8gZXZlcnlvbmUs IHdoaWNoIHdvdWxkIHByZXZlbnQgc2V0dGluZyB0aGUgcGFnZSBmcm96ZW4gaW4gdGhlIFZNLgog CSAqLwogCWlmIChwcnN0YXRlLmFsbF92aXNpYmxlICYmCiAJCVRyYW5zYWN0aW9uSWRJc05vcm1h bChwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkgJiYKIAkJIUdsb2JhbFZpc1hpZFZpc2li bGVUb0FsbChwcnN0YXRlLnZpc3Rlc3QsIHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkKSkK IAkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IHByc3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNlOwogCisJ LyoKKwkgKiBOb3cgZGVjaWRlIGJhc2VkIG9uIGluZm9ybWF0aW9uIGNvbGxlY3RlZCB3aGlsZSBl eGFtaW5pbmcgZXZlcnkgdHVwbGUKKwkgKiB3aGljaCBhY3Rpb25zIHRvIHRha2UuIElmIHRoZXJl IGFyZSBhbnkgcHJ1bmFibGUgdHVwbGVzLCB3ZSdsbCBwcnVuZQorCSAqIHRoZW0uIEhvd2V2ZXIs IHdlIHdpbGwgZGVjaWRlIGJhc2VkIG9uIG9wdGlvbnMgc3BlY2lmaWVkIGJ5IHRoZSBjYWxsZXIK KwkgKiBhbmQgdmFyaW91cyBoZXVyaXN0aWNzIHdoZXRoZXIgb3Igbm90IHRvIGZyZWV6ZSBhbnkg dHVwbGVzIGFuZCB3aGV0aGVyCisJICogb3Igbm90IHRoZSBwYWdlIHNob3VsZCBiZSBzZXQgYWxs LXZpc2libGUvYWxsLWZyb3plbiBpbiB0aGUgVk0uCisJICovCisJZG9fcHJ1bmUgPSBwcnN0YXRl Lm5yZWRpcmVjdGVkID4gMCB8fAorCQlwcnN0YXRlLm5kZWFkID4gMCB8fAorCQlwcnN0YXRlLm51 bnVzZWQgPiAwOworCiAJLyoKIAkgKiBFdmVuIGlmIHdlIGRvbid0IHBydW5lIGFueXRoaW5nLCBp ZiB3ZSBmb3VuZCBhIG5ldyB2YWx1ZSBmb3IgdGhlCiAJICogcGRfcHJ1bmVfeGlkIGZpZWxkIG9y IHRoZSBwYWdlIHdhcyBtYXJrZWQgZnVsbCwgd2Ugd2lsbCB1cGRhdGUgdGhvc2UKQEAgLTc5MCwx ODIgKzEwNTksMzIgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsCiAJCVBhZ2VJc0Z1bGwocGFnZSk7CiAKIAkvKgotCSAqIERlY2lk ZSBpZiB3ZSB3YW50IHRvIGdvIGFoZWFkIHdpdGggZnJlZXppbmcgYWNjb3JkaW5nIHRvIHRoZSBm cmVlemUKLQkgKiBwbGFucyB3ZSBwcmVwYXJlZCwgb3Igbm90LgotCSAqLwotCWRvX2ZyZWV6ZSA9 IGZhbHNlOwotCWlmIChwcnN0YXRlLmF0dGVtcHRfZnJlZXplKQotCXsKLQkJaWYgKHByc3RhdGUu cGFnZWZyei5mcmVlemVfcmVxdWlyZWQpCi0JCXsKLQkJCS8qCi0JCQkgKiBoZWFwX3ByZXBhcmVf ZnJlZXplX3R1cGxlIGluZGljYXRlZCB0aGF0IGF0IGxlYXN0IG9uZSBYSUQvTVhJRAotCQkJICog ZnJvbSBiZWZvcmUgRnJlZXplTGltaXQvTXVsdGlYYWN0Q3V0b2ZmIGlzIHByZXNlbnQuICBNdXN0 Ci0JCQkgKiBmcmVlemUgdG8gYWR2YW5jZSByZWxmcm96ZW54aWQvcmVsbWlubXhpZC4KLQkJCSAq LwotCQkJZG9fZnJlZXplID0gdHJ1ZTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCS8qCi0JCQkgKiBP cHBvcnR1bmlzdGljYWxseSBmcmVlemUgdGhlIHBhZ2UgaWYgd2UgYXJlIGdlbmVyYXRpbmcgYW4g RlBJCi0JCQkgKiBhbnl3YXkgYW5kIGlmIGRvaW5nIHNvIG1lYW5zIHRoYXQgd2UgY2FuIHNldCB0 aGUgcGFnZQotCQkJICogYWxsLWZyb3plbiBhZnRlcndhcmRzIChtaWdodCBub3QgaGFwcGVuIHVu dGlsIFZBQ1VVTSdzIGZpbmFsCi0JCQkgKiBoZWFwIHBhc3MpLgotCQkJICoKLQkJCSAqIFhYWDog UHJldmlvdXNseSwgd2Uga25ldyBpZiBwcnVuaW5nIGVtaXR0ZWQgYW4gRlBJIGJ5IGNoZWNraW5n Ci0JCQkgKiBwZ1dhbFVzYWdlLndhbF9mcGkgYmVmb3JlIGFuZCBhZnRlciBwcnVuaW5nLiAgT25j ZSB0aGUgZnJlZXplCi0JCQkgKiBhbmQgcHJ1bmUgcmVjb3JkcyB3ZXJlIGNvbWJpbmVkLCB0aGlz IGhldXJpc3RpYyBjb3VsZG4ndCBiZQotCQkJICogdXNlZCBhbnltb3JlLiAgVGhlIG9wcG9ydHVu aXN0aWMgZnJlZXplIGhldXJpc3RpYyBtdXN0IGJlCi0JCQkgKiBpbXByb3ZlZDsgaG93ZXZlciwg Zm9yIG5vdywgdHJ5IHRvIGFwcHJveGltYXRlIHRoZSBvbGQgbG9naWMuCi0JCQkgKi8KLQkJCWlm IChwcnN0YXRlLmFsbF92aXNpYmxlICYmIHByc3RhdGUuYWxsX2Zyb3plbiAmJiBwcnN0YXRlLm5m cm96ZW4gPiAwKQotCQkJewotCQkJCS8qCi0JCQkJICogRnJlZXppbmcgd291bGQgbWFrZSB0aGUg cGFnZSBhbGwtZnJvemVuLiAgSGF2ZSBhbHJlYWR5Ci0JCQkJICogZW1pdHRlZCBhbiBGUEkgb3Ig d2lsbCBkbyBzbyBhbnl3YXk/Ci0JCQkJICovCi0JCQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocmVs YXRpb24pKQotCQkJCXsKLQkJCQkJaWYgKGRpZF90dXBsZV9oaW50X2ZwaSkKLQkJCQkJCWRvX2Zy ZWV6ZSA9IHRydWU7Ci0JCQkJCWVsc2UgaWYgKGRvX3BydW5lKQotCQkJCQl7Ci0JCQkJCQlpZiAo WExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAoYnVmZmVyKSkKLQkJCQkJCQlkb19mcmVlemUgPSB0 cnVlOwotCQkJCQl9Ci0JCQkJCWVsc2UgaWYgKGRvX2hpbnRfZnVsbF9vcl9wcnVuYWJsZSkKLQkJ CQkJewotCQkJCQkJaWYgKFhMb2dIaW50Qml0SXNOZWVkZWQoKSAmJiBYTG9nQ2hlY2tCdWZmZXJO ZWVkc0JhY2t1cChidWZmZXIpKQotCQkJCQkJCWRvX2ZyZWV6ZSA9IHRydWU7Ci0JCQkJCX0KLQkJ CQl9Ci0JCQl9Ci0JCX0KLQl9Ci0KLQlpZiAoZG9fZnJlZXplKQotCXsKLQkJLyoKLQkJICogVmFs aWRhdGUgdGhlIHR1cGxlcyB3ZSB3aWxsIGJlIGZyZWV6aW5nIGJlZm9yZSBlbnRlcmluZyB0aGUK LQkJICogY3JpdGljYWwgc2VjdGlvbi4KLQkJICovCi0JCWhlYXBfcHJlX2ZyZWV6ZV9jaGVja3Mo YnVmZmVyLCBwcnN0YXRlLmZyb3plbiwgcHJzdGF0ZS5uZnJvemVuKTsKLQl9Ci0JZWxzZSBpZiAo cHJzdGF0ZS5uZnJvemVuID4gMCkKLQl7Ci0JCS8qCi0JCSAqIFRoZSBwYWdlIGNvbnRhaW5lZCBz b21lIHR1cGxlcyB0aGF0IHdlcmUgbm90IGFscmVhZHkgZnJvemVuLCBhbmQgd2UKLQkJICogY2hv c2Ugbm90IHRvIGZyZWV6ZSB0aGVtIG5vdy4gIFRoZSBwYWdlIHdvbid0IGJlIGFsbC1mcm96ZW4g dGhlbi4KLQkJICovCi0JCUFzc2VydCghcHJzdGF0ZS5wYWdlZnJ6LmZyZWV6ZV9yZXF1aXJlZCk7 Ci0KLQkJcHJzdGF0ZS5hbGxfZnJvemVuID0gZmFsc2U7Ci0JCXByc3RhdGUubmZyb3plbiA9IDA7 CS8qIGF2b2lkIG1pc2NvdW50cyBpbiBpbnN0cnVtZW50YXRpb24gKi8KLQl9Ci0JZWxzZQotCXsK LQkJLyoKLQkJICogV2UgaGF2ZSBubyBmcmVlemUgcGxhbnMgdG8gZXhlY3V0ZS4gIFRoZSBwYWdl IG1pZ2h0IGFscmVhZHkgYmUKLQkJICogYWxsLWZyb3plbiAocGVyaGFwcyBvbmx5IGZvbGxvd2lu ZyBwcnVuaW5nKSwgdGhvdWdoLiAgU3VjaCBwYWdlcwotCQkgKiBjYW4gYmUgbWFya2VkIGFsbC1m cm96ZW4gaW4gdGhlIFZNIGJ5IG91ciBjYWxsZXIsIGV2ZW4gdGhvdWdoIG5vbmUKLQkJICogb2Yg aXRzIHR1cGxlcyB3ZXJlIG5ld2x5IGZyb3plbiBoZXJlLgotCQkgKi8KLQl9Ci0KLQkvKgotCSAq IEl0IHdhcyBjb252ZW5pZW50IHRvIGlnbm9yZSBMUF9ERUFEIGl0ZW1zIGluIGFsbF92aXNpYmxl IGVhcmxpZXIgb24gdG8KLQkgKiBtYWtlIHRoZSBjaG9pY2Ugb2Ygd2hldGhlciBvciBub3QgdG8g ZnJlZXplIHRoZSBwYWdlIHVuYWZmZWN0ZWQgYnkgdGhlCi0JICogc2hvcnQtdGVybSBwcmVzZW5j ZSBvZiBMUF9ERUFEIGl0ZW1zLiAgVGhlc2UgTFBfREVBRCBpdGVtcyB3ZXJlCi0JICogZWZmZWN0 aXZlbHkgYXNzdW1lZCB0byBiZSBMUF9VTlVTRUQgaXRlbXMgaW4gdGhlIG1ha2luZy4gIEl0IGRv ZXNuJ3QKLQkgKiBtYXR0ZXIgd2hpY2ggdmFjdXVtIGhlYXAgcGFzcyAoaW5pdGlhbCBwYXNzIG9y IGZpbmFsIHBhc3MpIGVuZHMgdXAKLQkgKiBzZXR0aW5nIHRoZSBwYWdlIGFsbC1mcm96ZW4sIGFz IGxvbmcgYXMgdGhlIG9uZ29pbmcgVkFDVVVNIGRvZXMgaXQuCi0JICoKLQkgKiBOb3cgdGhhdCBm cmVlemluZyBoYXMgYmVlbiBmaW5hbGl6ZWQsIHVuc2V0IGFsbF92aXNpYmxlIGlmIHRoZXJlIGFy ZQotCSAqIGFueSBMUF9ERUFEIGl0ZW1zIG9uIHRoZSBwYWdlLiBJdCBuZWVkcyB0byByZWZsZWN0 IHRoZSBwcmVzZW50IHN0YXRlIG9mCi0JICogdGhlIHBhZ2Ugd2hlbiB1c2luZyBpdCB0byBkZXRl cm1pbmUgd2hldGhlciBvciBub3QgdG8gdXBkYXRlIHRoZSBWTS4KLQkgKgotCSAqIEtlZXAgdHJh Y2sgb2Ygd2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2FzIGFsbC1mcm96ZW4gZXhjZXB0IExQX0RF QUQKLQkgKiBpdGVtcyBmb3IgdGhlIHB1cnBvc2VzIG9mIGNhbGN1bGF0aW5nIHRoZSBzbmFwc2hv dCBjb25mbGljdCBob3Jpem9uLAotCSAqIHRob3VnaC4KKwkgKiBXZSBtdXN0IGRlY2lkZSB3aGV0 aGVyIG9yIG5vdCB0byBmcmVlemUgYmVmb3JlIGRlY2lkaW5nIGlmIGFuZCB3aGF0IHRvCisJICog c2V0IGluIHRoZSBWTS4KIAkgKi8KLQlhbGxfZnJvemVuX2V4Y2VwdF9scF9kZWFkID0gcHJzdGF0 ZS5hbGxfZnJvemVuOwotCWlmIChwcnN0YXRlLmxwZGVhZF9pdGVtcyA+IDApCi0JewotCQlwcnN0 YXRlLmFsbF92aXNpYmxlID0gZmFsc2U7Ci0JCXByc3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNlOwot CX0KLQotCS8qCi0JICogSWYgdGhpcyBpcyBhbiBvbi1hY2Nlc3MgY2FsbCBhbmQgd2UncmUgbm90 IGFjdHVhbGx5IHBydW5pbmcsIGF2b2lkCi0JICogc2V0dGluZyB0aGUgdmlzaWJpbGl0eSBtYXAg aWYgaXQgd291bGQgbmV3bHkgZGlydHkgdGhlIGhlYXAgcGFnZSBvciwgaWYKLQkgKiB0aGUgcGFn ZSBpcyBhbHJlYWR5IGRpcnR5LCBpZiBkb2luZyBzbyB3b3VsZCByZXF1aXJlIGluY2x1ZGluZyBh Ci0JICogZnVsbC1wYWdlIGltYWdlIChGUEkpIG9mIHRoZSBoZWFwIHBhZ2UgaW4gdGhlIFdBTC4g VGhpcyBzaXR1YXRpb24KLQkgKiBzaG91bGQgYmUgcmFyZSwgYXMgb24tYWNjZXNzIHBydW5pbmcg aXMgb25seSBhdHRlbXB0ZWQgd2hlbgotCSAqIHBkX3BydW5lX3hpZCBpcyB2YWxpZC4KLQkgKi8K LQlpZiAocmVhc29uID09IFBSVU5FX09OX0FDQ0VTUyAmJgotCQlwcnN0YXRlLmNvbnNpZGVyX3Vw ZGF0ZV92bSAmJgotCQlwcnN0YXRlLmFsbF92aXNpYmxlICYmCi0JCSFkb19wcnVuZSAmJiAhZG9f ZnJlZXplICYmCi0JCSghQnVmZmVySXNEaXJ0eShidWZmZXIpIHx8IFhMb2dDaGVja0J1ZmZlck5l ZWRzQmFja3VwKGJ1ZmZlcikpKQotCXsKLQkJcHJzdGF0ZS5jb25zaWRlcl91cGRhdGVfdm0gPSBm YWxzZTsKLQkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IHByc3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNl OwotCX0KLQotCUFzc2VydCghcHJzdGF0ZS5hbGxfZnJvemVuIHx8IHByc3RhdGUuYWxsX3Zpc2li bGUpOwotCi0JLyoKLQkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQgYmFzZWQg b24gaW5mb3JtYXRpb24gZnJvbSB0aGUgVk0gKGlmCi0JICogcHJvdmlkZWQsIGUuZy4gYnkgdmFj dXVtIGZyb20gdGhlIGxhc3QgaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCkKLQkgKiBjYWxsKSwg YW5kIGZyb20gYWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4gdmFyaWFibGVzLgotCSAqLwotCWlm IChwcnN0YXRlLmNvbnNpZGVyX3VwZGF0ZV92bSkKLQl7Ci0JCS8qCi0JCSAqIENsZWFyIGFueSBW TSBjb3JydXB0aW9uLiBUaGlzIGRvZXMgbm90IG5lZWQgdG8gYmUgaW4gYSBjcml0aWNhbAotCQkg KiBzZWN0aW9uLCBzbyB3ZSBkbyBpdCBmaXJzdC4gSWYgUERfQUxMX1ZJU0lCTEUgaXMgaW5jb3Jy ZWN0bHkgc2V0LAotCQkgKiB3ZSBtYXkgbWFyayB0aGUgaGVhcCBwYWdlIGJ1ZmZlciBkaXJ0eSBo ZXJlIGFuZCBjb3VsZCBlbmQgdXAgZG9pbmcKLQkJICogc28gYWdhaW4gbGF0ZXIuIFRoaXMgaXMg bm90IGEgY29ycmVjdG5lc3MgaXNzdWUgYW5kIGlzIGluIHRoZSBwYXRoCi0JCSAqIG9mIFZNIGNv cnJ1cHRpb24sIHNvIHdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhlIGV4dHJhCi0JCSAq IHBlcmZvcm1hbmNlIG92ZXJoZWFkLgotCQkgKi8KLQkJaWYgKGlkZW50aWZ5X2FuZF9maXhfdm1f Y29ycnVwdGlvbihyZWxhdGlvbiwKLQkJCQkJCQkJCQkgICBibG9ja25vLCBidWZmZXIsIHBhZ2Us Ci0JCQkJCQkJCQkJICAgYmxrX2tub3duX2F2LCBwcnN0YXRlLmxwZGVhZF9pdGVtcywgdm1idWZm ZXIpKQotCQl7Ci0JCQkvKiBJZiB3ZSBmaXggY29ycnVwdGlvbiwgZG9uJ3QgdXBkYXRlIHRoZSBW TSBmdXJ0aGVyICovCi0JCX0KLQotCQkvKiBEZXRlcm1pbmUgaWYgd2UgYWN0dWFsbHkgbmVlZCB0 byBzZXQgdGhlIFZNIGFuZCB3aGljaCBiaXRzIHRvIHNldC4gKi8KLQkJZWxzZSBpZiAocHJzdGF0 ZS5hbGxfdmlzaWJsZSAmJgotCQkJCSAoIWJsa19rbm93bl9hdiB8fAotCQkJCSAgKHByc3RhdGUu YWxsX2Zyb3plbiAmJiAhVk1fQUxMX0ZST1pFTihyZWxhdGlvbiwgYmxvY2tubywgJnZtYnVmZmVy KSkpKQotCQl7Ci0JCQl2bWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7Ci0JCQlp ZiAocHJzdGF0ZS5hbGxfZnJvemVuKQotCQkJCXZtZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExf RlJPWkVOOwotCQl9Ci0JfQotCi0JZG9fc2V0X3ZtID0gdm1mbGFncyAmIFZJU0lCSUxJVFlNQVBf VkFMSURfQklUUzsKLQotCS8qCi0JICogRG9uJ3Qgc2V0IFBEX0FMTF9WSVNJQkxFIHVubGVzcyB3 ZSBhbHNvIHBsYW4gdG8gc2V0IHRoZSBWTS4gV2hpbGUgaXQgaXMKLQkgKiBjb3JyZWN0IGZvciBh IGhlYXAgcGFnZSB0byBoYXZlIFBEX0FMTF9WSVNJQkxFIGV2ZW4gaWYgdGhlIFZNIGlzIG5vdAot CSAqIHNldCwgd2Ugc3Ryb25nbHkgcHJlZmVyIHRvIGtlZXAgdGhlbSBpbiBzeW5jLgotCSAqCi0J ICogUHJpb3IgdG8gUG9zdGdyZXMgMTksIGl0IHdhcyBwb3NzaWJsZSBmb3IgdGhlIHBhZ2UtbGV2 ZWwgYml0IHRvIGJlIHNldAotCSAqIGFuZCB0aGUgVk0gYml0IHRvIGJlIGNsZWFyLiBUaGlzIGNv dWxkIGhhcHBlbiBpZiB3ZSBjcmFzaGVkIGFmdGVyCi0JICogc2V0dGluZyBQRF9BTExfVklTSUJM RSBidXQgYmVmb3JlIHNldHRpbmcgYml0cyBpbiB0aGUgVk0uCi0JICovCi0Jc2V0X3BkX2FsbF92 aXNpYmxlID0gZG9fc2V0X3ZtICYmICFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpOworCWRvX2ZyZWV6 ZSA9IGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShyZWxhdGlvbiwgYnVmZmVyLAorCQkJCQkJCQkJICBk b19wcnVuZSwKKwkJCQkJCQkJCSAgZG9faGludF9mdWxsX29yX3BydW5hYmxlLAorCQkJCQkJCQkJ ICBkaWRfdHVwbGVfaGludF9mcGksCisJCQkJCQkJCQkgICZwcnN0YXRlLAorCQkJCQkJCQkJICAm YWxsX2Zyb3plbl9leGNlcHRfbHBfZGVhZCk7CisKKwlkb19zZXRfdm0gPSBoZWFwX3BhZ2Vfd2ls bF91cGRhdGVfdm0ocmVsYXRpb24sCisJCQkJCQkJCQkJIGJ1ZmZlciwgYmxvY2tubywgcGFnZSwK KwkJCQkJCQkJCQkgcmVhc29uLAorCQkJCQkJCQkJCSBkb19wcnVuZSwgZG9fZnJlZXplLAorCQkJ CQkJCQkJCSBibGtfa25vd25fYXYsCisJCQkJCQkJCQkJICZwcnN0YXRlLAorCQkJCQkJCQkJCSAm dm1idWZmZXIsCisJCQkJCQkJCQkJICZ2bWZsYWdzLCAmc2V0X3BkX2FsbF92aXNpYmxlKTsKIAog CS8qIFNhdmUgdGhlc2UgZm9yIHRoZSBjYWxsZXIgaW4gY2FzZSB3ZSBsYXRlciB6ZXJvIG91dCB2 bWZsYWdzICovCiAJcHJlc3VsdC0+bmV3X3ZtYml0cyA9IHZtZmxhZ3M7CiAKLQkvKiBBbnkgZXJy b3Igd2hpbGUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgaXMgY3JpdGljYWwgKi8KKwkvKgorCSAqIFRp bWUgdG8gYWN0dWFsbHkgbWFrZSB0aGUgY2hhbmdlcyB0byB0aGUgcGFnZSBhbmQgbG9nIHRoZW0u IEFueSBlcnJvcgorCSAqIHdoaWxlIGFwcGx5aW5nIHRoZSBjaGFuZ2VzIGlzIGNyaXRpY2FsLgor CSAqLwogCVNUQVJUX0NSSVRfU0VDVElPTigpOwogCiAJaWYgKGRvX2hpbnRfZnVsbF9vcl9wcnVu YWJsZSkKLS0gCjIuNDMuMAoK --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0021-Reorder-heap_page_prune_and_freeze-parameters.patch" Content-Disposition: attachment; filename="v8-0021-Reorder-heap_page_prune_and_freeze-parameters.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7cc20 RnJvbSBkNjgyMDBkZTQxMDI0YmQ3MzkxNzdiY2EyNGNiNTFmM2YzNzYyNmI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDMxIEp1bCAyMDI1IDEyOjA4OjE4IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAyMS8yMl0gUmVvcmRlciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSBwYXJhbWV0 ZXJzCgpSZW9yZGVyIHBhcmFtZXRlcnMgc28gdGhhdCBhbGwgb2YgdGhlIG91dHB1dCBwYXJhbWV0 ZXJzIGFyZSB0b2dldGhlciBhdAp0aGUgZW5kIG9mIHRoZSBwYXJhbWV0ZXIgbGlzdC4KLS0tCiBz cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgfCAzOCArKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAgNiAr Ky0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgIHwgIDQgKy0tCiAzIGZp bGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggOGI4OThmZTE5ZGQuLjBhN2E0YmEwYzBlIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMjk3LDEwICsyOTcsMTAgQEAgaGVhcF9w YWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2 bWJ1ZmZlcikKIAkJCSAqIG5vdCB0aGUgcmVsYXRpb24gaGFzIGluZGV4ZXMsIHNpbmNlIHdlIGNh bm5vdCBzYWZlbHkgZGV0ZXJtaW5lCiAJCQkgKiB0aGF0IGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmlu ZyB3aXRoIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLgogCQkJICovCi0JCQloZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZShyZWxhdGlvbiwgYnVmZmVyLCBmYWxzZSwKKwkJCWhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKHJlbGF0aW9uLCBidWZmZXIsIG9wdGlvbnMsIGZhbHNlLAogCQkJCQkJ CQkJICAgdm1idWZmZXIgPyAqdm1idWZmZXIgOiBJbnZhbGlkQnVmZmVyLAotCQkJCQkJCQkJICAg dmlzdGVzdCwgb3B0aW9ucywKLQkJCQkJCQkJCSAgIE5VTEwsICZwcmVzdWx0LCBQUlVORV9PTl9B Q0NFU1MsCisJCQkJCQkJCQkgICB2aXN0ZXN0LAorCQkJCQkJCQkJICAgTlVMTCwgUFJVTkVfT05f QUNDRVNTLCAmcHJlc3VsdCwKIAkJCQkJCQkJCSAgICZkdW1teV9vZmZfbG9jLCBOVUxMLCBOVUxM KTsKIAogCQkJLyoKQEAgLTY0NSw2ICs2NDUsMTUgQEAgaGVhcF9wYWdlX3dpbGxfZnJlZXplKFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogICogYWxzbyBuZWVkIHRvIGFjY291bnQg Zm9yIGEgcmVkdWN0aW9uIGluIHRoZSBsZW5ndGggb2YgdGhlIGxpbmUgcG9pbnRlcgogICogYXJy YXkgZm9sbG93aW5nIGFycmF5IHRydW5jYXRpb24gYnkgdXMuCiAgKgorICogb3B0aW9uczoKKyAq ICAgTUFSS19VTlVTRURfTk9XIGluZGljYXRlcyB0aGF0IGRlYWQgaXRlbXMgY2FuIGJlIHNldCBM UF9VTlVTRUQgZHVyaW5nCisgKiAgIHBydW5pbmcuCisgKgorICogICBGUkVFWkUgaW5kaWNhdGVz IHRoYXQgd2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMsIGFuZCB3aWxsIHJldHVybgorICogICAn YWxsX3Zpc2libGUnLCAnYWxsX2Zyb3plbicgZmxhZ3MgdG8gdGhlIGNhbGxlci4KKyAqCisgKiAg IFVQREFURV9WTSBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIHNldCB0aGUgcGFnZSdzIHN0YXR1cyBp biB0aGUgVk0uCisgKgogICogSWYgdGhlIEhFQVBfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBzZXQs IHdlIHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzIGlmIGl0J3MKICAqIHJlcXVpcmVkIGluIG9yZGVy IHRvIGFkdmFuY2UgcmVsZnJvemVueGlkIC8gcmVsbWlubXhpZCwgb3IgaWYgaXQncwogICogY29u c2lkZXJlZCBhZHZhbnRhZ2VvdXMgZm9yIG92ZXJhbGwgc3lzdGVtIHBlcmZvcm1hbmNlIHRvIGRv IHNvIG5vdy4gIFRoZQpAQCAtNjYzLDMwICs2NzIsMjEgQEAgaGVhcF9wYWdlX3dpbGxfZnJlZXpl KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogICogY29udGFpbiB0aGUgcmVxdWly ZWQgYmxvY2sgb2YgdGhlIHZpc2liaWxpdHkgbWFwLgogICoKICAqIHZpc3Rlc3QgaXMgdXNlZCB0 byBkaXN0aW5ndWlzaCB3aGV0aGVyIHR1cGxlcyBhcmUgREVBRCBvciBSRUNFTlRMWV9ERUFECi0g KiAoc2VlIGhlYXBfcHJ1bmVfc2F0aXNmaWVzX3ZhY3V1bSkuCi0gKgotICogb3B0aW9uczoKLSAq ICAgTUFSS19VTlVTRURfTk9XIGluZGljYXRlcyB0aGF0IGRlYWQgaXRlbXMgY2FuIGJlIHNldCBM UF9VTlVTRUQgZHVyaW5nCi0gKiAgIHBydW5pbmcuCi0gKgotICogICBGUkVFWkUgaW5kaWNhdGVz IHRoYXQgd2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMsIGFuZCB3aWxsIHJldHVybgotICogICAn YWxsX3Zpc2libGUnLCAnYWxsX2Zyb3plbicgZmxhZ3MgdG8gdGhlIGNhbGxlci4KLSAqCi0gKiAg IFVQREFURV9WTSBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIHNldCB0aGUgcGFnZSdzIHN0YXR1cyBp biB0aGUgVk0uCisgKiAoc2VlIGhlYXBfcHJ1bmVfc2F0aXNmaWVzX3ZhY3V1bSkuIEl0IGlzIGFu IGlucHV0IHBhcmFtZXRlci4KICAqCiAgKiBjdXRvZmZzIGNvbnRhaW5zIHRoZSBmcmVlemUgY3V0 b2ZmcywgZXN0YWJsaXNoZWQgYnkgVkFDVVVNIGF0IHRoZSBiZWdpbm5pbmcKICAqIG9mIHZhY3V1 bWluZyB0aGUgcmVsYXRpb24uICBSZXF1aXJlZCBpZiBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24g aXMgc2V0LgogICogY3V0b2Zmcy0+T2xkZXN0WG1pbiBpcyBhbHNvIHVzZWQgdG8gZGV0ZXJtaW5l IGlmIGRlYWQgdHVwbGVzIGFyZQotICogSEVBUFRVUExFX1JFQ0VOVExZX0RFQUQgb3IgSEVBUFRV UExFX0RFQUQuCisgKiBIRUFQVFVQTEVfUkVDRU5UTFlfREVBRCBvciBIRUFQVFVQTEVfREVBRC4g SXQgaXMgYW4gaW5wdXQgcGFyYW1ldGVyLgorICoKKyAqIHJlYXNvbiBpbmRpY2F0ZXMgd2h5IHRo ZSBwcnVuaW5nIGlzIHBlcmZvcm1lZC4gIEl0IGlzIGluY2x1ZGVkIGluIHRoZSBXQUwKKyAqIHJl Y29yZCBmb3IgZGVidWdnaW5nIGFuZCBhbmFseXNpcyBwdXJwb3NlcywgYnV0IG90aGVyd2lzZSBo YXMgbm8gZWZmZWN0LgogICoKICAqIHByZXN1bHQgY29udGFpbnMgb3V0cHV0IHBhcmFtZXRlcnMg bmVlZGVkIGJ5IGNhbGxlcnMsIHN1Y2ggYXMgdGhlIG51bWJlciBvZgogICogdHVwbGVzIHJlbW92 ZWQgYW5kIHRoZSBvZmZzZXRzIG9mIGRlYWQgaXRlbXMgb24gdGhlIHBhZ2UgYWZ0ZXIgcHJ1bmlu Zy4KICAqIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgaXMgcmVzcG9uc2libGUgZm9yIGlu aXRpYWxpemluZyBpdC4gIFJlcXVpcmVkCiAgKiBieSBhbGwgY2FsbGVycy4KICAqCi0gKiByZWFz b24gaW5kaWNhdGVzIHdoeSB0aGUgcHJ1bmluZyBpcyBwZXJmb3JtZWQuICBJdCBpcyBpbmNsdWRl ZCBpbiB0aGUgV0FMCi0gKiByZWNvcmQgZm9yIGRlYnVnZ2luZyBhbmQgYW5hbHlzaXMgcHVycG9z ZXMsIGJ1dCBvdGhlcndpc2UgaGFzIG5vIGVmZmVjdC4KLSAqCiAgKiBvZmZfbG9jIGlzIHRoZSBv ZmZzZXQgbG9jYXRpb24gcmVxdWlyZWQgYnkgdGhlIGNhbGxlciB0byB1c2UgaW4gZXJyb3IKICAq IGNhbGxiYWNrLgogICoKQEAgLTY5OSwxMyArNjk5LDEzIEBAIGhlYXBfcGFnZV93aWxsX2ZyZWV6 ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKICAqLwogdm9pZAogaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCisJCQkJ CQkgICBpbnQgb3B0aW9ucywKIAkJCQkJCSAgIGJvb2wgYmxrX2tub3duX2F2LAogCQkJCQkJICAg QnVmZmVyIHZtYnVmZmVyLAogCQkJCQkJICAgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCi0JCQkJ CQkgICBpbnQgb3B0aW9ucywKIAkJCQkJCSAgIHN0cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZz LAotCQkJCQkJICAgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQsCiAJCQkJCQkgICBQcnVuZVJl YXNvbiByZWFzb24sCisJCQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKIAkJCQkJ CSAgIE9mZnNldE51bWJlciAqb2ZmX2xvYywKIAkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKm5ld19y ZWxmcm96ZW5feGlkLAogCQkJCQkJICAgTXVsdGlYYWN0SWQgKm5ld19yZWxtaW5fbXhpZCkKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA2MWM2YjNkMjFhYy4uY2VhZDNlYzg0 YTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTE5OTEsMTEgKzE5OTEs MTEgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAlpZiAodmFjcmVsLT5u aW5kZXhlcyA9PSAwKQogCQlwcnVuZV9vcHRpb25zIHw9IEhFQVBfUEFHRV9QUlVORV9NQVJLX1VO VVNFRF9OT1c7CiAKLQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShyZWwsIGJ1ZiwKKwloZWFw X3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShyZWwsIGJ1ZiwgcHJ1bmVfb3B0aW9ucywKIAkJCQkJCQkg ICBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0sCiAJCQkJCQkJICAgdm1idWZmZXIsCi0JCQkJ CQkJICAgdmFjcmVsLT52aXN0ZXN0LCBwcnVuZV9vcHRpb25zLAotCQkJCQkJCSAgICZ2YWNyZWwt PmN1dG9mZnMsICZwcmVzdWx0LCBQUlVORV9WQUNVVU1fU0NBTiwKKwkJCQkJCQkgICB2YWNyZWwt PnZpc3Rlc3QsCisJCQkJCQkJICAgJnZhY3JlbC0+Y3V0b2ZmcywgUFJVTkVfVkFDVVVNX1NDQU4s ICZwcmVzdWx0LAogCQkJCQkJCSAgICZ2YWNyZWwtPm9mZm51bSwKIAkJCQkJCQkgICAmdmFjcmVs LT5OZXdSZWxmcm96ZW5YaWQsICZ2YWNyZWwtPk5ld1JlbG1pbk14aWQpOwogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt LmgKaW5kZXggMTZmNzkwNGEyMWUuLjBjNGU1NjA3NjI3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC0z OTQsMTMgKzM5NCwxMyBAQCBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGU7CiBleHRlcm4gdm9pZCBoZWFw X3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJ CQlCdWZmZXIgKnZtYnVmZmVyKTsKIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJCQkJICAgaW50IG9w dGlvbnMsCiAJCQkJCQkJCQkgICBib29sIGJsa19rbm93bl9hdiwKIAkJCQkJCQkJCSAgIEJ1ZmZl ciB2bWJ1ZmZlciwKIAkJCQkJCQkJCSAgIHN0cnVjdCBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwK LQkJCQkJCQkJCSAgIGludCBvcHRpb25zLAogCQkJCQkJCQkJICAgc3RydWN0IFZhY3V1bUN1dG9m ZnMgKmN1dG9mZnMsCi0JCQkJCQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKIAkJ CQkJCQkJCSAgIFBydW5lUmVhc29uIHJlYXNvbiwKKwkJCQkJCQkJCSAgIFBydW5lRnJlZXplUmVz dWx0ICpwcmVzdWx0LAogCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpvZmZfbG9jLAogCQkJCQkJ CQkJICAgVHJhbnNhY3Rpb25JZCAqbmV3X3JlbGZyb3plbl94aWQsCiAJCQkJCQkJCQkgICBNdWx0 aVhhY3RJZCAqbmV3X3JlbG1pbl9teGlkKTsKLS0gCjIuNDMuMAoK --000000000000c1be41063dd99a24 Content-Type: text/x-patch; charset="US-ASCII"; name="v8-0022-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v8-0022-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf35w7cf21 RnJvbSA1ZGNiNjFkNmZiYTUzMjU1YmJjMzM1NmFmYjkwZTU3NWVjZjc3ODlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2OCAyMi8yMl0gU2V0IHBkX3BydW5lX3hpZCBvbiBpbnNlcnQKCk5vdyB0aGF0IHdlIGNh biBzZXQgdGhlIFZNIGR1cmluZyByZWFkLW9ubHkgcXVlcmllcywgaXQgbWFrZXMgc2Vuc2UgdG8K c3RhcnQgc2V0dGluZyB0aGUgcGFnZSBwcnVuYWJsZSBoaW50IG9uIGluc2VydC4gVGhpcyB3aWxs IGFsbG93CmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgdG8gYmUgY2FsbGVkIHdoZW4gdGhl IHBhZ2UgaXMgZnVsbCBvcgptb3N0bHkgZnVsbC4KCkZvciB5ZWFycyB0aGVyZSBoYXMgYmVlbiBh IG5vdGUgaW4gaGVhcF9pbnNlcnQoKSBhbmQgaGVhcF9tdWx0aV9pbnNlcnQoKQpwb2ludGluZyBv dXQgdGhhdCBzZXR0aW5nIHBkX3BydW5lX3hpZCB3b3VsZCBoZWxwIGNsZWFuIHVwIGFib3J0ZWQK aW5zZXJ0ZWQgdHVwbGVzIHRoYXQgd291bGQgb3RoZXJ3aXNlIG5vdCBiZSBjbGVhbmVkIHVwIHVu dGlsIHZhY3V1bS4KU28sIHRoYXQncyBhbm90aGVyIGJlbmVmaXQgb2Ygc2V0dGluZyBpdC4KClNl dHRpbmcgcGRfcHJ1bmVfeGlkIG9uIGluc2VydCBjYXVzZXMgYSBwYWdlIHRvIGJlIHBydW5lZCBh bmQgdGhlbgp3cml0dGVuIG91dCB3aGljaCB0aGVuIGFmZmVjdHMgdGhlIHJlcG9ydGVkIG51bWJl ciBvZiBoaXRzIGluIHRoZQppbmRleC1raWxsdHVwbGVzIGlzb2xhdGlvbiB0ZXN0LiBUaGlzIGlz IGEgcXVpcmsgb2YgaG93IGhpdHMgYXJlIHRyYWNrZWQKd2hpY2ggc29tZXRpbWVzIGxlYWRzIHRo ZW0gdG8gYmUgZG91YmxlIGNvdW50ZWQuIFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlCmZpeGVkIG9y IGNoYW5nZWQgaW5kZXBlbmRlbnRseS4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW0uYyAgICAgICAgICAgICAgfCAyNSArKysrKysrKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICAgICAgICAgfCAxNSArKysrKysrKysrLQogLi4uL2lz b2xhdGlvbi9leHBlY3RlZC9pbmRleC1raWxsdHVwbGVzLm91dCAgIHwgIDYgKystLS0KIDMgZmls ZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9oZWFwYW0uYwppbmRleCBkOTkxNjBkNWY4Mi4uMjhkYTZhMWEwZmIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbS5jCkBAIC0yMTA1LDYgKzIxMDUsNyBAQCBoZWFwX2luc2VydChSZWxhdGlv biByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAlUcmFuc2FjdGlvbklk IHhpZCA9IEdldEN1cnJlbnRUcmFuc2FjdGlvbklkKCk7CiAJSGVhcFR1cGxlCWhlYXB0dXA7CiAJ QnVmZmVyCQlidWZmZXI7CisJUGFnZQkJcGFnZTsKIAlCdWZmZXIJCXZtYnVmZmVyID0gSW52YWxp ZEJ1ZmZlcjsKIAlib29sCQlhbGxfdmlzaWJsZV9jbGVhcmVkID0gZmFsc2U7CiAKQEAgLTIxNjQs MTUgKzIxNjUsMTkgQEAgaGVhcF9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIEhlYXBUdXBsZSB0 dXAsIENvbW1hbmRJZCBjaWQsCiAJfQogCiAJLyoKLQkgKiBYWFggU2hvdWxkIHdlIHNldCBQYWdl U2V0UHJ1bmFibGUgb24gdGhpcyBwYWdlID8KKwkgKiBTZXQgcGRfcHJ1bmVfeGlkIHRvIHRyaWdn ZXIgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSBvbmNlIHRoZSBwYWdlCisJICogaXMgZnVs bCBzbyB0aGF0IHdlIGNhbiBzZXQgdGhlIHBhZ2UgYWxsLXZpc2libGUgaW4gdGhlIFZNLgogCSAq Ci0JICogVGhlIGluc2VydGluZyB0cmFuc2FjdGlvbiBtYXkgZXZlbnR1YWxseSBhYm9ydCB0aHVz IG1ha2luZyB0aGlzIHR1cGxlCi0JICogREVBRCBhbmQgaGVuY2UgYXZhaWxhYmxlIGZvciBwcnVu aW5nLiBUaG91Z2ggd2UgZG9uJ3Qgd2FudCB0byBvcHRpbWl6ZQotCSAqIGZvciBhYm9ydHMsIGlm IG5vIG90aGVyIHR1cGxlIGluIHRoaXMgcGFnZSBpcyBVUERBVEVkL0RFTEVURWQsIHRoZQotCSAq IGFib3J0ZWQgdHVwbGUgd2lsbCBuZXZlciBiZSBwcnVuZWQgdW50aWwgbmV4dCB2YWN1dW0gaXMg dHJpZ2dlcmVkLgorCSAqIFNldHRpbmcgcGRfcHJ1bmVfeGlkIGlzIGFsc28gaGFuZHkgaWYgdGhl IGluc2VydGluZyB0cmFuc2FjdGlvbgorCSAqIGV2ZW50dWFsbHkgYWJvcnRzIG1ha2luZyB0aGlz IHR1cGxlIERFQUQgYW5kIGhlbmNlIGF2YWlsYWJsZSBmb3IKKwkgKiBwcnVuaW5nLiBJZiBubyBv dGhlciB0dXBsZSBpbiB0aGlzIHBhZ2UgaXMgVVBEQVRFZC9ERUxFVEVkLCB0aGUgYWJvcnRlZAor CSAqIHR1cGxlIHdvdWxkIG5ldmVyIG90aGVyd2lzZSBiZSBwcnVuZWQgdW50aWwgbmV4dCB2YWN1 dW0gaXMgdHJpZ2dlcmVkLgogCSAqCi0JICogSWYgeW91IGRvIGFkZCBQYWdlU2V0UHJ1bmFibGUg aGVyZSwgYWRkIGl0IGluIGhlYXBfeGxvZ19pbnNlcnQgdG9vLgorCSAqIERvbid0IHNldCBpdCBp ZiB3ZSBhcmUgaW4gYm9vdHN0cmFwIG1vZGUsIHRob3VnaC4KIAkgKi8KKwlwYWdlID0gQnVmZmVy R2V0UGFnZShidWZmZXIpOworCWlmIChUcmFuc2FjdGlvbklkSXNOb3JtYWwoeGlkKSkKKwkJUGFn ZVNldFBydW5hYmxlKHBhZ2UsIHhpZCk7CiAKIAlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKIApA QCAtMjE4Miw3ICsyMTg3LDYgQEAgaGVhcF9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIEhlYXBU dXBsZSB0dXAsIENvbW1hbmRJZCBjaWQsCiAJCXhsX2hlYXBfaW5zZXJ0IHhscmVjOwogCQl4bF9o ZWFwX2hlYWRlciB4bGhkcjsKIAkJWExvZ1JlY1B0cglyZWNwdHI7Ci0JCVBhZ2UJCXBhZ2UgPSBC dWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAJCXVpbnQ4CQlpbmZvID0gWExPR19IRUFQX0lOU0VSVDsK IAkJaW50CQkJYnVmZmxhZ3MgPSAwOwogCkBAIC0yNTQ2LDggKzI1NTAsMTMgQEAgaGVhcF9tdWx0 aV9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIFR1cGxlVGFibGVTbG90ICoqc2xvdHMsIGludCBu dHVwbGVzLAogCQl9CiAKIAkJLyoKLQkJICogWFhYIFNob3VsZCB3ZSBzZXQgUGFnZVNldFBydW5h YmxlIG9uIHRoaXMgcGFnZSA/IFNlZSBoZWFwX2luc2VydCgpCisJCSAqIFNldCBwZF9wcnVuZV94 aWQuIFNlZSBoZWFwX2luc2VydCgpIGZvciBtb3JlIG9uIHdoeSB3ZSBkbyB0aGlzIHdoZW4KKwkJ ICogaW5zZXJ0aW5nIHR1cGxlcy4gVGhpcyBvbmx5IG1ha2VzIHNlbnNlIGlmIHdlIGFyZW4ndCBh bHJlYWR5CisJCSAqIHNldHRpbmcgdGhlIHBhZ2UgZnJvemVuIGluIHRoZSBWTS4gV2UgYWxzbyBk b24ndCBzZXQgaXQgaW4KKwkJICogYm9vdHN0cmFwIG1vZGUuCiAJCSAqLworCQlpZiAoIWFsbF9m cm96ZW5fc2V0ICYmIFRyYW5zYWN0aW9uSWRJc05vcm1hbCh4aWQpKQorCQkJUGFnZVNldFBydW5h YmxlKHBhZ2UsIHhpZCk7CiAKIAkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCmluZGV4IDgzYTVmM2RiYzM0Li42NzI1NjI4MGQ5NCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCkBAIC00NzQsNiArNDc0LDEyIEBA IGhlYXBfeGxvZ19pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJZnJlZXNwYWNl ID0gUGFnZUdldEhlYXBGcmVlU3BhY2UocGFnZSk7IC8qIG5lZWRlZCB0byB1cGRhdGUgRlNNIGJl bG93ICovCiAKKwkJLyoKKwkJICogU2V0IHRoZSBwYWdlIHBydW5hYmxlIHRvIHRyaWdnZXIgb24t YWNjZXNzIHBydW5pbmcgbGF0ZXIgd2hpY2ggbWF5CisJCSAqIHNldCB0aGUgcGFnZSBhbGwtdmlz aWJsZSBpbiB0aGUgVk0uCisJCSAqLworCQlQYWdlU2V0UHJ1bmFibGUocGFnZSwgWExvZ1JlY0dl dFhpZChyZWNvcmQpKTsKKwogCQlQYWdlU2V0TFNOKHBhZ2UsIGxzbik7CiAKIAkJaWYgKHhscmVj LT5mbGFncyAmIFhMSF9JTlNFUlRfQUxMX1ZJU0lCTEVfQ0xFQVJFRCkKQEAgLTYyMyw5ICs2Mjks MTYgQEAgaGVhcF94bG9nX211bHRpX2luc2VydChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJ aWYgKHhscmVjLT5mbGFncyAmIFhMSF9JTlNFUlRfQUxMX1ZJU0lCTEVfQ0xFQVJFRCkKIAkJCVBh Z2VDbGVhckFsbFZpc2libGUocGFnZSk7CiAKLQkJLyogWExIX0lOU0VSVF9BTExfRlJPWkVOX1NF VCBpbXBsaWVzIHRoYXQgYWxsIHR1cGxlcyBhcmUgdmlzaWJsZSAqLworCQkvKgorCQkgKiBYTEhf SU5TRVJUX0FMTF9GUk9aRU5fU0VUIGltcGxpZXMgdGhhdCBhbGwgdHVwbGVzIGFyZSB2aXNpYmxl LiBJZgorCQkgKiB3ZSBhcmUgbm90IHNldHRpbmcgdGhlIHBhZ2UgZnJvemVuLCB0aGVuIHNldCB0 aGUgcGFnZSdzIHBydW5hYmxlCisJCSAqIGhpbnQgc28gdGhhdCB3ZSB0cmlnZ2VyIG9uLWFjY2Vz cyBwcnVuaW5nIGxhdGVyIHdoaWNoIG1heSBzZXQgdGhlCisJCSAqIHBhZ2UgYWxsLXZpc2libGUg aW4gdGhlIFZNLgorCQkgKi8KIAkJaWYgKHhscmVjLT5mbGFncyAmIFhMSF9JTlNFUlRfQUxMX0ZS T1pFTl9TRVQpCiAJCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKKwkJZWxzZQorCQkJUGFnZVNl dFBydW5hYmxlKHBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7CiAKIAkJTWFya0J1ZmZlckRp cnR5KGJ1ZmZlcik7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVk L2luZGV4LWtpbGx0dXBsZXMub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL2luZGV4 LWtpbGx0dXBsZXMub3V0CmluZGV4IGJlN2RkZDc1NmVmLi5iMjlmMjQzNGIwMCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL2luZGV4LWtpbGx0dXBsZXMub3V0CisrKyBi L3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9pbmRleC1raWxsdHVwbGVzLm91dApAQCAtNTQs NyArNTQsNyBAQCBzdGVwIGZsdXNoOiBTRUxFQ1QgRlJPTSBwZ19zdGF0X2ZvcmNlX25leHRfZmx1 c2goKTsKIHN0ZXAgcmVzdWx0OiBTRUxFQ1QgaGVhcF9ibGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0 IC0gY291bnRlci5oZWFwX2FjY2Vzc2VzIEFTIG5ld19oZWFwX2FjY2Vzc2VzIEZST00gY291bnRl ciwgcGdfc3RhdGlvX2FsbF90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICdraWxsX3ByaW9yX3R1cGxl JzsKIG5ld19oZWFwX2FjY2Vzc2VzCiAtLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAg IDEKKyAgICAgICAgICAgICAgICAyCiAoMSByb3cpCiAKIHN0ZXAgbWVhc3VyZTogVVBEQVRFIGNv dW50ZXIgU0VUIGhlYXBfYWNjZXNzZXMgPSAoU0VMRUNUIGhlYXBfYmxrc19yZWFkICsgaGVhcF9i bGtzX2hpdCBGUk9NIHBnX3N0YXRpb19hbGxfdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAna2lsbF9w cmlvcl90dXBsZScpOwpAQCAtMTMwLDcgKzEzMCw3IEBAIHN0ZXAgZmx1c2g6IFNFTEVDVCBGUk9N IHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOwogc3RlcCByZXN1bHQ6IFNFTEVDVCBoZWFwX2Js a3NfcmVhZCArIGhlYXBfYmxrc19oaXQgLSBjb3VudGVyLmhlYXBfYWNjZXNzZXMgQVMgbmV3X2hl YXBfYWNjZXNzZXMgRlJPTSBjb3VudGVyLCBwZ19zdGF0aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxu YW1lID0gJ2tpbGxfcHJpb3JfdHVwbGUnOwogbmV3X2hlYXBfYWNjZXNzZXMKIC0tLS0tLS0tLS0t LS0tLS0tCi0gICAgICAgICAgICAgICAgMQorICAgICAgICAgICAgICAgIDIKICgxIHJvdykKIAog c3RlcCBtZWFzdXJlOiBVUERBVEUgY291bnRlciBTRVQgaGVhcF9hY2Nlc3NlcyA9IChTRUxFQ1Qg aGVhcF9ibGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0IEZST00gcGdfc3RhdGlvX2FsbF90YWJsZXMg V0hFUkUgcmVsbmFtZSA9ICdraWxsX3ByaW9yX3R1cGxlJyk7CkBAIC0yODMsNyArMjgzLDcgQEAg c3RlcCBmbHVzaDogU0VMRUNUIEZST00gcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CiBzdGVw IHJlc3VsdDogU0VMRUNUIGhlYXBfYmxrc19yZWFkICsgaGVhcF9ibGtzX2hpdCAtIGNvdW50ZXIu aGVhcF9hY2Nlc3NlcyBBUyBuZXdfaGVhcF9hY2Nlc3NlcyBGUk9NIGNvdW50ZXIsIHBnX3N0YXRp b19hbGxfdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAna2lsbF9wcmlvcl90dXBsZSc7CiBuZXdfaGVh cF9hY2Nlc3NlcwogLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgICAxCisgICAgICAg ICAgICAgICAgMgogKDEgcm93KQogCiBzdGVwIG1lYXN1cmU6IFVQREFURSBjb3VudGVyIFNFVCBo ZWFwX2FjY2Vzc2VzID0gKFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBfYmxrc19oaXQgRlJP TSBwZ19zdGF0aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tpbGxfcHJpb3JfdHVwbGUn KTsKLS0gCjIuNDMuMAoK --000000000000c1be41063dd99a24--