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.96) (envelope-from ) id 1w6tky-004lME-02 for pgsql-hackers@arkaria.postgresql.org; Sun, 29 Mar 2026 17:17:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w6tkw-00GilJ-1k for pgsql-hackers@arkaria.postgresql.org; Sun, 29 Mar 2026 17:16:58 +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.96) (envelope-from ) id 1w6tkw-00GilB-0H for pgsql-hackers@lists.postgresql.org; Sun, 29 Mar 2026 17:16:58 +0000 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w6tks-00000001r4O-3uXk for pgsql-hackers@lists.postgresql.org; Sun, 29 Mar 2026 17:16:57 +0000 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b9910707d82so413810666b.1 for ; Sun, 29 Mar 2026 10:16:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774804612; cv=none; d=google.com; s=arc-20240605; b=L0hbVwv3zbOEeQiKoD3nELK7rSfL3SJbZBEr+E0sNEJ4Rm0Q+KojUZLjIKQp+loCxz PBiaDfaT7jVP1JC5ZJz551JWp6S+sZxmnBe5ax0hitwhzim/xgLK29h0Jydk/MFPb1Gt 8lFohrE5G+h13MBtajr6DdiFZ2KWATkd3R2IFUzAk8GI9Um5Z92q2wTsByv6mdl4SAQO uwVYpwxguF5u/JTV1vZ+5omdPKf3Fxn5v7t6xApwQh0TLiU7yaZKxqBvWCvKNg72e3BV junGO37ens9xAXzZX5ENDd9dWHvIiMGUmbmJHKANvw/NQtO/KSr7ehy9j75FpiqFDLMN WQPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=dSgroV530R9HtqXcdpRPqIRbKkWeb1FGfoNSNlu7vMQ=; fh=R7qRzgYajM6T5QihmLtOyOSo3FOysj3HPm2Sb85WAY8=; b=UghAN7R9qd1FkpHzgCWrE+CAMmqcRRpFiDfDE56GqXIOfYQ+9QLWXZRfsef3Fhow/9 IQ3eW91ENlx5ayGdckcUF4OLSzsMhYKY7zA9XQZe8wsZ/2l5vIPye27ubb/obcBvtouO CmR2fKBLMC+ApS/SbGLb69cpekDbTzWesYcpucACSQBLKu2qBXwjzzSAmY5vD5Zx4M6r LJDobKN79kjAN4hSNdAoHoRY01FihH5s400tuDvHcrJNBzfQnyi5QB7o1bB/ucsPBzh1 BiMDZMjxEcczOM+pGZDcS+WDoBnhHNfaArCdAKbgOFPNEhcXQHGbGLrdTjOcPQMFu+vR vK2A==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774804612; x=1775409412; 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=dSgroV530R9HtqXcdpRPqIRbKkWeb1FGfoNSNlu7vMQ=; b=aCFUe2W41hxzkEvFtFOHDXnhlKvBnCeSbC+JJg3mWhNZbf/NntoFP6caC8x3E9TJv2 yQidO1IVou9dUICS6B/xjErY7q58SaZ6bokVWFU54+ZSpoGBGFMmJkuyA2mY+nprPAeI uZTxYRYq3TbySbxTRibwlxvxeK7aTgI109k0Qx0x4mz3Palb9Z4ZeA+fQVyXjljixdSM twnZLAgmBAhf7553lImvneS8TZbo0T6jjQ9rUdCNhfnN4woLTCoaLbUHPQSUZCwPDw0E OmItrt2CIug6nwTeC0KJ9aMMPJWDTDGy4mRkgZ7ZIqZL17a3WVHCL7AgGtpygJvxxFcN FdSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774804612; x=1775409412; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dSgroV530R9HtqXcdpRPqIRbKkWeb1FGfoNSNlu7vMQ=; b=sezyKTHLtlt2nRAEhVnhoMsdmVoCUoVwiRdtjzoSKNc+buI/GXGJp0C0wYmjNo4lGn NMyIl6S4ayI80AFhjCy5culerz7B4nHMSX1QL32GTS5VXmqDthbM9GCQ44TPohgxKBRi xUaBEHBxsAlZZGE5Y65+q3FrQwfxrFsX+DuQfTW3cQhQ6BlV+hm+IQRECEsQUNBsP3d8 0Ty10uU2EIT5sKFQhjKF1TYO5OlYbqe3q+ELULYrcC2h6zrurTegMfWlsX8OHwhS+1Kj HWu3r2Q68V6+3+E97woiXsZJTQ+QNc9bgfRVMMkqQZ0CRBlJLaBx5xnIAf8ibodkYGRG Gg5Q== X-Forwarded-Encrypted: i=1; AJvYcCXu4bGLrLbyUQ8ZrD8Mr5wxkH7skc41NidEP9ueeloS79bruINVSQq8b0ZH9RZLgnqGGT9S6hSsooJRBMfh@lists.postgresql.org X-Gm-Message-State: AOJu0YwyzgauB3ea+qwon2Z2/SNIWo9wwYytpDjKZRmgLrew9vibuNzv h4kw5aEa6iaHoTU7ewStDVPVmW1bgb964rL99DCP+MdgufzK0G/NxmoN2XIVuKxl3MwTe7wgJ82 tTX828f/6DGJvT4UyKX6/JdrhS0FNBQo= X-Gm-Gg: ATEYQzye99gaVqC9NmJIaCEnExy10MiR88C9sTuSVyNAgITzafXeluhwNUM2O7Tleb0 bYSeI1bjknIzHAgPQaebxyWtaAFfRSHa0zlSm7Fz6DroblyofyUV7xWywM7HlEnYWNGrMuuXCQ+ VuxcmNfcUF6DlSuXEHb4qCKb+jF543xAdXrP/QwFuQz2ebVcUmGHpDNq6hLQHSSIQELtfTIaz4u frZU1D1P/3OYTM06pfyLD7hALNRfUL92MS2gnSnUOcJBtD7CjdTORd+JLqoESS/91YUeumXnssp cNDiq20HP7bf9LxGD8Pyj2O5RNFsv04/zJI8AJ3nAiU1AxYYZpOZ0A9KIem4S69ZcjncXeaQpgv 0L2O3ju5r X-Received: by 2002:a17:907:1c09:b0:b97:a12d:ffdf with SMTP id a640c23a62f3a-b9b509236eemr630229466b.38.1774804612009; Sun, 29 Mar 2026 10:16:52 -0700 (PDT) MIME-Version: 1.0 References: <2be31f17-5405-4de9-8d73-90ebc322f7d8@vondra.me> In-Reply-To: From: Melanie Plageman Date: Sun, 29 Mar 2026 13:16:39 -0400 X-Gm-Features: AQROBzAUJ6HHkGPTCxmwF2_7t_7lI32-JXhMoAMccrYbf-Vq9CwaxN_1_5BXo38 Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: David Rowley Cc: Tomas Vondra , Andres Freund , Kirill Reshke , Chao Li , Andrey Borodin , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="00000000000072ac33064e2ce6da" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000072ac33064e2ce6da Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 27, 2026 at 3:17=E2=80=AFPM Melanie Plageman wrote: > > Done in v47. Attached v48 does a bit more cleanup. No functional changes. I'm planning to push this soon. I think my remaining question is whether I should move the row marks and result relation bitmaps into the estate. I'm leaning toward not doing that and leaving them in the PlannedStmt. Anyway, If I want to replace the list of result relation RTIs in the PlannedStmt, I have to leave the bitmapset version there. - Melanie --00000000000072ac33064e2ce6da Content-Type: text/x-patch; charset="US-ASCII"; name="v48-0001-Make-it-cheap-to-check-if-a-relation-is-modified.patch" Content-Disposition: attachment; filename="v48-0001-Make-it-cheap-to-check-if-a-relation-is-modified.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnc0sarj0 RnJvbSAwNGQyNDAzOWVjN2MxNDY3Mjk1NWFhYWJhMzdlM2FhNTEyODU4YTBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IE1hciAyMDI2IDA5OjIxOjIyIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDggMS82XSBNYWtlIGl0IGNoZWFwIHRvIGNoZWNrIGlmIGEgcmVsYXRpb24gaXMgbW9k aWZpZWQgYnkgYQogcXVlcnkKClNhdmUgdGhlIHJhbmdlIHRhYmxlIGluZGV4ZXMgb2YgcmVzdWx0 IHJlbGF0aW9ucyBhbmQgcm93IG1hcmsgcmVsYXRpb25zCmluIHNlcGFyYXRlIGJpdG1hcHMgaW4g dGhlIFBsYW5uZWRTdG10LiBQcmVjb21wdXRpbmcgdGhlbSBhbGxvd3MgY2hlYXAKbWVtYmVyc2hp cCBjaGVja3MgZHVyaW5nIGV4ZWN1dGlvbi4gV2l0aCBhIGZldyBleGNlcHRpb25zLCB0aGVzZSB0 d28KZ3JvdXBzIGNvbXByaXNlIGFsbCByZWxhdGlvbnMgdGhhdCB3aWxsIGJlIG1vZGlmaWVkIGJ5 IGEgcXVlcnkuIFRoaXMKaW5jbHVkZXMgcmVsYXRpb25zIHRhcmdldGVkIGJ5IElOU0VSVCwgVVBE QVRFLCBERUxFVEUsIGFuZCBNRVJHRSBhcyB3ZWxsCmFzIHJlbGF0aW9ucyB3aXRoIGFueSByb3cg bWFyayAobGlrZSBTRUxFQ1QgRk9SIFVQREFURSkuCgpBIGxhdGVyIGNvbW1pdCB3aWxsIHVzZSB0 aGlzIGluZm9ybWF0aW9uIGR1cmluZyBzY2FucyB0byBjb250cm9sIHdoZXRoZXIKb3Igbm90IG9u LWFjY2VzcyBwcnVuaW5nIGlzIGFsbG93ZWQgdG8gc2V0IHRoZSB2aXNpYmlsaXR5IG1hcCAtLSB3 aGljaAp3b3VsZCBiZSBjb3VudGVycHJvZHVjdGl2ZSBpZiB0aGUgcXVlcnkgd2lsbCBtb2RpZnkg dGhlIHBhZ2UuCgpQbGFubmVkU3RtdC0+cmVzdWx0UmVsYXRpb25zIGlzIG9ubHkgdXNlZCBpbiBh IG1lbWJlcnNoaXAgY2hlY2ssIHNvIGl0Cm1heSBtYWtlIHNlbnNlIHRvIHJlcGxhY2UgaXRzIHVz YWdlIHdpdGggdGhlIG5ldyByZXN1bHRSZWxhdGlvblJlbGlkcy4KCkF1dGhvcjogTWVsYW5pZSBQ bGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBG cmV1bmQgPGFuZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IERhdmlkIFJvd2xleSA8ZGdy b3dsZXltbEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21h aWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0Y1Q0REMUI1LTYyOEMtNDRB MS05Rjg1LTM5NThDNjI2RjZBOSU0MGdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNQYXJhbGxlbC5jICB8ICAyICsrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFu bmVyLmMgfCAxOSArKysrKysrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaCAgICAgICAgfCAgOSArKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNQYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXgg YWM4NGFmMjk0YzkuLjc5MWZjYjg4ZGU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwu YwpAQCAtMTg4LDYgKzE4OCw4IEBAIEV4ZWNTZXJpYWxpemVQbGFuKFBsYW4gKnBsYW4sIEVTdGF0 ZSAqZXN0YXRlKQogCXBzdG10LT5wYXJ0UHJ1bmVJbmZvcyA9IGVzdGF0ZS0+ZXNfcGFydF9wcnVu ZV9pbmZvczsKIAlwc3RtdC0+cnRhYmxlID0gZXN0YXRlLT5lc19yYW5nZV90YWJsZTsKIAlwc3Rt dC0+dW5wcnVuYWJsZVJlbGlkcyA9IGVzdGF0ZS0+ZXNfdW5wcnVuZWRfcmVsaWRzOworCXBzdG10 LT5yZXN1bHRSZWxhdGlvblJlbGlkcyA9IGVzdGF0ZS0+ZXNfcGxhbm5lZHN0bXQtPnJlc3VsdFJl bGF0aW9uUmVsaWRzOworCXBzdG10LT5yb3dNYXJrUmVsaWRzID0gZXN0YXRlLT5lc19wbGFubmVk c3RtdC0+cm93TWFya1JlbGlkczsKIAlwc3RtdC0+cGVybUluZm9zID0gZXN0YXRlLT5lc19ydGVw ZXJtaW5mb3M7CiAJcHN0bXQtPnJlc3VsdFJlbGF0aW9ucyA9IE5JTDsKIAlwc3RtdC0+YXBwZW5k UmVsYXRpb25zID0gTklMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v cGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IGQx OTgwMGFkNmE1Li5kZjRjOTlmYzNmZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIu YwpAQCAtMzQwLDggKzM0MCwxMSBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29u c3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlSZWxPcHRJbmZvICpm aW5hbF9yZWw7CiAJUGF0aAkgICAqYmVzdF9wYXRoOwogCVBsYW4JICAgKnRvcF9wbGFuOworCUJp dG1hcHNldCAgKnJlc3VsdFJlbGF0aW9uUmVsaWRzID0gTlVMTDsKKwlCaXRtYXBzZXQgICpyb3dN YXJrUmVsaWRzID0gTlVMTDsKIAlMaXN0Q2VsbCAgICpscCwKLQkJCSAgICpscjsKKwkJCSAgICps ciwKKwkJCSAgICpsYzsKIAogCS8qCiAJICogU2V0IHVwIGdsb2JhbCBzdGF0ZSBmb3IgdGhpcyBw bGFubmVyIGludm9jYXRpb24uICBUaGlzIGRhdGEgaXMgbmVlZGVkCkBAIC02NjEsNiArNjY0LDIw IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJp bmcsIGludCBjdXJzb3JPcHRpb25zLAogCXJlc3VsdC0+c3VicGxhbnMgPSBnbG9iLT5zdWJwbGFu czsKIAlyZXN1bHQtPnJld2luZFBsYW5JRHMgPSBnbG9iLT5yZXdpbmRQbGFuSURzOwogCXJlc3Vs dC0+cm93TWFya3MgPSBnbG9iLT5maW5hbHJvd21hcmtzOworCisJLyoKKwkgKiBDb21wdXRlIHJl c3VsdFJlbGF0aW9uUmVsaWRzIGFuZCByb3dNYXJrUmVsaWRzIGZyb20gcmVzdWx0UmVsYXRpb25z IGFuZAorCSAqIHJvd01hcmtzIGZvciBxdWljayBhY2Nlc3MuCisJICovCisJZm9yZWFjaChsYywg Z2xvYi0+cmVzdWx0UmVsYXRpb25zKQorCQlyZXN1bHRSZWxhdGlvblJlbGlkcyA9IGJtc19hZGRf bWVtYmVyKHJlc3VsdFJlbGF0aW9uUmVsaWRzLAorCQkJCQkJCQkJCQkgIGxmaXJzdF9pbnQobGMp KTsKKwlmb3JlYWNoKGxjLCBnbG9iLT5maW5hbHJvd21hcmtzKQorCQlyb3dNYXJrUmVsaWRzID0g Ym1zX2FkZF9tZW1iZXIocm93TWFya1JlbGlkcywKKwkJCQkJCQkJCSAgICgoUGxhblJvd01hcmsg KikgbGZpcnN0KGxjKSktPnJ0aSk7CisJcmVzdWx0LT5yZXN1bHRSZWxhdGlvblJlbGlkcyA9IHJl c3VsdFJlbGF0aW9uUmVsaWRzOworCXJlc3VsdC0+cm93TWFya1JlbGlkcyA9IHJvd01hcmtSZWxp ZHM7CisKIAlyZXN1bHQtPnJlbGF0aW9uT2lkcyA9IGdsb2ItPnJlbGF0aW9uT2lkczsKIAlyZXN1 bHQtPmludmFsSXRlbXMgPSBnbG9iLT5pbnZhbEl0ZW1zOwogCXJlc3VsdC0+cGFyYW1FeGVjVHlw ZXMgPSBnbG9iLT5wYXJhbUV4ZWNUeXBlczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggYjYxODU4 MjVmY2IuLjg4YmU2NWQ3YmRlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTIxLDYgKzEyMSw5 IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAJLyogaW50ZWdlciBsaXN0IG9mIFJUIGlu ZGV4ZXMsIG9yIE5JTCAqLwogCUxpc3QJICAgKnJlc3VsdFJlbGF0aW9uczsKIAorCS8qIFJUIGlu ZGV4ZXMgb2YgcmVzdWx0IHJlbGF0aW9ucyB0YXJnZXRlZCBieSBJTlNFUlQvVVBEQVRFL0RFTEVU RS9NRVJHRSAqLworCUJpdG1hcHNldCAgKnJlc3VsdFJlbGF0aW9uUmVsaWRzOworCiAJLyogbGlz dCBvZiBBcHBlbmRSZWxJbmZvIG5vZGVzICovCiAJTGlzdAkgICAqYXBwZW5kUmVsYXRpb25zOwog CkBAIC0xMzgsNiArMTQxLDEyIEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAJLyogYSBs aXN0IG9mIFBsYW5Sb3dNYXJrJ3MgKi8KIAlMaXN0CSAgICpyb3dNYXJrczsKIAorCS8qCisJICog UlQgaW5kZXhlcyBvZiByZWxhdGlvbnMgd2l0aCByb3cgbWFya3MuIFVzZWZ1bCBmb3IgcXVpY2sg bWVtYmVyc2hpcAorCSAqIGNoZWNrcyBpbnN0ZWFkIG9mIGl0ZXJhdGluZyB0aHJvdWdoIHJvd01h cmtzLgorCSAqLworCUJpdG1hcHNldCAgKnJvd01hcmtSZWxpZHM7CisKIAkvKiBPSURzIG9mIHJl bGF0aW9ucyB0aGUgcGxhbiBkZXBlbmRzIG9uICovCiAJTGlzdAkgICAqcmVsYXRpb25PaWRzOwog Ci0tIAoyLjQzLjAKCg== --00000000000072ac33064e2ce6da Content-Type: text/x-patch; charset="US-ASCII"; name="v48-0002-Remove-PlannedStmt-resultRelations-in-favor-of-r.patch" Content-Disposition: attachment; filename="v48-0002-Remove-PlannedStmt-resultRelations-in-favor-of-r.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnc0sd4e1 RnJvbSA3YzMzMWM1NzVhMzc3YjQwYTFkZDExNDJiMjNmYTNhODY5MmRlMzhmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IE1hciAyMDI2IDA4OjM1OjAwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDggMi82XSBSZW1vdmUgUGxhbm5lZFN0bXQtPnJlc3VsdFJlbGF0aW9ucyBpbiBmYXZv ciBvZgogcmVzdWx0UmVsYXRpb25SZWxpZHMKClBsYW5uZWRTdG10LT5yZXN1bHRSZWxhdGlvbnMg d2FzIGFuIGludGVnZXIgbGlzdCBvZiByYW5nZSB0YWJsZSBpbmRleGVzLgpOb3cgdGhhdCB3ZSBo YXZlIGEgYml0bWFwc2V0LCB3aGljaCBvZmZlcnMgY2hlYXAgbWVtYmVyc2hpcCBjaGVja3MsCnJl bW92ZSB0aGUgbGlzdCBhbmQgdXBkYXRlIGFsbCBjb25zdW1lcnMgdG8gdXNlIHRoZSBiaXRtYXBz ZXQuCi0tLQogY29udHJpYi9wZ19vdmVyZXhwbGFpbi9wZ19vdmVyZXhwbGFpbi5jIHwgNSArKyst LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgIHwgMSAtCiBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjVXRpbHMuYyAgICAgICAgfCAyICstCiBzcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgfCAxIC0KIHNyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rl cy5oICAgICAgICAgICB8IDQgLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyks IDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19vdmVyZXhwbGFpbi9wZ19v dmVyZXhwbGFpbi5jIGIvY29udHJpYi9wZ19vdmVyZXhwbGFpbi9wZ19vdmVyZXhwbGFpbi5jCmlu ZGV4IGMyYjkwNDkzY2M2Li5iNGU5MDkwOTI4OSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19vdmVy ZXhwbGFpbi9wZ19vdmVyZXhwbGFpbi5jCisrKyBiL2NvbnRyaWIvcGdfb3ZlcmV4cGxhaW4vcGdf b3ZlcmV4cGxhaW4uYwpAQCAtNzgwLDggKzc4MCw5IEBAIG92ZXJleHBsYWluX3JhbmdlX3RhYmxl KFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgRXhwbGFpblN0YXRlICplcykKIAkJb3ZlcmV4cGxh aW5fYml0bWFwc2V0KCJVbnBydW5hYmxlIFJUSXMiLCBwbGFubmVkc3RtdC0+dW5wcnVuYWJsZVJl bGlkcywKIAkJCQkJCQkgIGVzKTsKIAlpZiAoZXMtPmZvcm1hdCAhPSBFWFBMQUlOX0ZPUk1BVF9U RVhUIHx8Ci0JCXBsYW5uZWRzdG10LT5yZXN1bHRSZWxhdGlvbnMgIT0gTklMKQotCQlvdmVyZXhw bGFpbl9pbnRsaXN0KCJSZXN1bHQgUlRJcyIsIHBsYW5uZWRzdG10LT5yZXN1bHRSZWxhdGlvbnMs IGVzKTsKKwkJIWJtc19pc19lbXB0eShwbGFubmVkc3RtdC0+cmVzdWx0UmVsYXRpb25SZWxpZHMp KQorCQlvdmVyZXhwbGFpbl9iaXRtYXBzZXQoIlJlc3VsdCBSVElzIiwgcGxhbm5lZHN0bXQtPnJl c3VsdFJlbGF0aW9uUmVsaWRzLAorCQkJCQkJCSAgZXMpOwogCiAJLyogQ2xvc2UgZ3JvdXAsIHdl J3JlIGFsbCBkb25lICovCiAJRXhwbGFpbkNsb3NlR3JvdXAoIlJhbmdlIFRhYmxlIiwgIlJhbmdl IFRhYmxlIiwgZmFsc2UsIGVzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNQYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXgg NzkxZmNiODhkZTkuLjFiYWI2MTYwMDM2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwu YwpAQCAtMTkxLDcgKzE5MSw2IEBAIEV4ZWNTZXJpYWxpemVQbGFuKFBsYW4gKnBsYW4sIEVTdGF0 ZSAqZXN0YXRlKQogCXBzdG10LT5yZXN1bHRSZWxhdGlvblJlbGlkcyA9IGVzdGF0ZS0+ZXNfcGxh bm5lZHN0bXQtPnJlc3VsdFJlbGF0aW9uUmVsaWRzOwogCXBzdG10LT5yb3dNYXJrUmVsaWRzID0g ZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+cm93TWFya1JlbGlkczsKIAlwc3RtdC0+cGVybUluZm9z ID0gZXN0YXRlLT5lc19ydGVwZXJtaW5mb3M7Ci0JcHN0bXQtPnJlc3VsdFJlbGF0aW9ucyA9IE5J TDsKIAlwc3RtdC0+YXBwZW5kUmVsYXRpb25zID0gTklMOwogCXBzdG10LT5wbGFuT3JpZ2luID0g UExBTl9TVE1UX0lOVEVSTkFMOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjVXRpbHMuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jCmluZGV4IDk4ODZh YjA2YjY5Li4zNmM1Mjg1ZDI1MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1V0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMKQEAgLTczMyw3 ICs3MzMsNyBAQCBFeGVjQ3JlYXRlU2NhblNsb3RGcm9tT3V0ZXJQbGFuKEVTdGF0ZSAqZXN0YXRl LAogYm9vbAogRXhlY1JlbGF0aW9uSXNUYXJnZXRSZWxhdGlvbihFU3RhdGUgKmVzdGF0ZSwgSW5k ZXggc2NhbnJlbGlkKQogewotCXJldHVybiBsaXN0X21lbWJlcl9pbnQoZXN0YXRlLT5lc19wbGFu bmVkc3RtdC0+cmVzdWx0UmVsYXRpb25zLCBzY2FucmVsaWQpOworCXJldHVybiBibXNfaXNfbWVt YmVyKHNjYW5yZWxpZCwgZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+cmVzdWx0UmVsYXRpb25SZWxp ZHMpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5k ZXggZGY0Yzk5ZmMzZmYuLjk4NTM0NDMyMDlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jCkBAIC02NTksNyArNjU5LDYgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2Us IGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJCQkJCQkJCQkJ CSAgZ2xvYi0+cHJ1bmFibGVSZWxpZHMpOwogCXJlc3VsdC0+cGVybUluZm9zID0gZ2xvYi0+Zmlu YWxydGVwZXJtaW5mb3M7CiAJcmVzdWx0LT5zdWJydGluZm9zID0gZ2xvYi0+c3VicnRpbmZvczsK LQlyZXN1bHQtPnJlc3VsdFJlbGF0aW9ucyA9IGdsb2ItPnJlc3VsdFJlbGF0aW9uczsKIAlyZXN1 bHQtPmFwcGVuZFJlbGF0aW9ucyA9IGdsb2ItPmFwcGVuZFJlbGF0aW9uczsKIAlyZXN1bHQtPnN1 YnBsYW5zID0gZ2xvYi0+c3VicGxhbnM7CiAJcmVzdWx0LT5yZXdpbmRQbGFuSURzID0gZ2xvYi0+ cmV3aW5kUGxhbklEczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggODhiZTY1ZDdiZGUuLjE5ZTVk ODE0YzU5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTE3LDEwICsxMTcsNiBAQCB0eXBlZGVm IHN0cnVjdCBQbGFubmVkU3RtdAogCSAqLwogCUxpc3QJICAgKnBlcm1JbmZvczsKIAotCS8qIHJ0 YWJsZSBpbmRleGVzIG9mIHRhcmdldCByZWxhdGlvbnMgZm9yIElOU0VSVC9VUERBVEUvREVMRVRF L01FUkdFICovCi0JLyogaW50ZWdlciBsaXN0IG9mIFJUIGluZGV4ZXMsIG9yIE5JTCAqLwotCUxp c3QJICAgKnJlc3VsdFJlbGF0aW9uczsKLQogCS8qIFJUIGluZGV4ZXMgb2YgcmVzdWx0IHJlbGF0 aW9ucyB0YXJnZXRlZCBieSBJTlNFUlQvVVBEQVRFL0RFTEVURS9NRVJHRSAqLwogCUJpdG1hcHNl dCAgKnJlc3VsdFJlbGF0aW9uUmVsaWRzOwogCi0tIAoyLjQzLjAKCg== --00000000000072ac33064e2ce6da Content-Type: text/x-patch; charset="US-ASCII"; name="v48-0003-Thread-flags-through-begin-scan-APIs.patch" Content-Disposition: attachment; filename="v48-0003-Thread-flags-through-begin-scan-APIs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnc0sfrz2 RnJvbSAwNWNjMzdhYmFlNzAzMjdmZGE0YmVlNGEzOTJkZmViY2MwOGVjM2M1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDE5IE1hciAyMDI2IDE3OjA1OjU1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDggMy82XSBUaHJlYWQgZmxhZ3MgdGhyb3VnaCBiZWdpbi1zY2FuIEFQSXMKCkFkZCBh biBBTSB1c2VyLXNldHRhYmxlIGZsYWdzIHBhcmFtZXRlciB0byBzZXZlcmFsIG9mIHRoZSB0YWJs ZQpzY2FuIGZ1bmN0aW9ucywgb25lIHRhYmxlIEFNIGNhbGxiYWNrLCBhbmQgaW5kZXhfYmVnaW5z Y2FuKCkuIFRoaXMKYWxsb3dzIHVzZXJzIHRvIHBhc3MgYWRkaXRpb25hbCBjb250ZXh0IHRvIGJl IHVzZWQgd2hlbiBidWlsZGluZyB0aGUKc2NhbiBkZXNjcmlwdG9ycy4KCkZvciBpbmRleCBzY2Fu cywgYSBuZXcgZmxhZ3MgZmllbGQgaXMgYWRkZWQgdG8gSW5kZXhGZXRjaFRhYmxlRGF0YSwgYW5k CnRoZSBoZWFwIEFNIHNhdmVzIHRoZSBjYWxsZXItcHJvdmlkZWQgZmxhZ3MgdGhlcmUuCgpUaGlz IGludHJvZHVjZXMgYW4gZXh0ZW5zaW9uIHBvaW50IGZvciBmb2xsb3ctdXAgd29yayB0byBwYXNz CnBlci1zY2FuIGluZm9ybWF0aW9uIChzdWNoIGFzIHdoZXRoZXIgdGhlIHJlbGF0aW9uIGlzIHJl YWQtb25seSBmb3IgdGhlCmN1cnJlbnQgcXVlcnkpIGZyb20gdGhlIGV4ZWN1dG9yIHRvIHRoZSBB TSBsYXllci4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWls LmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJlc0BhbmFyYXplbC5kZT4KUmV2 aWV3ZWQtYnk6IFRvbWFzIFZvbmRyYSA8dG9tYXNAdm9uZHJhLm1lPgpSZXZpZXdlZC1ieTogRGF2 aWQgUm93bGV5IDxkZ3Jvd2xleW1sQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxp LmV2YW4uY2hhb0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVD REQxQjUtNjI4Qy00NEExLTlGODUtMzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogY29udHJp Yi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYyAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9icmluL2JyaW4uYyAgICAgICAgICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9hY2Nl c3MvZ2luL2dpbmluc2VydC5jICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX2hhbmRsZXIuYyAgfCAgIDkgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9n ZW5hbS5jICAgICAgICAgIHwgICA2ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhh bS5jICAgICAgICB8ICAxMyArKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5j ICAgICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jICAgICAg ICB8ICAyMiArKy0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jICAgICAgICAg fCAgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jICAgICAgICAgICAgIHwgICAz ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICB8ICAxMyArLS0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgICAgICAgICAgIHwgICA2ICstCiBzcmMv YmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYyAgICAgICB8ICAgNCArLQogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMgICAgfCAgMTIgKystCiBzcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYyB8ICAgMyArLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZUluZGV4b25seXNjYW4uYyAgfCAgIDkgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVJbmRleHNjYW4uYyAgICAgIHwgIDEyICsrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNh bXBsZXNjYW4uYyAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2Fu LmMgICAgICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2Fu LmMgICB8ICAgNyArLQogc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYyAgICAg fCAgIDMgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jICAgICAgICAgIHwgICAz ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCAgICAgICAgICAgICAgICB8ICAgNiArLQog c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9p bmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmggICAgICAgICAgICAgIHwgICA2ICsrCiBzcmMvaW5jbHVk ZS9hY2Nlc3MvdGFibGVhbS5oICAgICAgICAgICAgICB8IDEwMyArKysrKysrKysrKysrKysrLS0t LS0tCiAyNiBmaWxlcyBjaGFuZ2VkLCAxODUgaW5zZXJ0aW9ucygrKSwgODYgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYyBiL2NvbnRyaWIv cGdyb3dsb2Nrcy9wZ3Jvd2xvY2tzLmMKaW5kZXggZmYzNjkyYzg3YzQuLmQxNjRjNGMwM2FkIDEw MDY0NAotLS0gYS9jb250cmliL3Bncm93bG9ja3MvcGdyb3dsb2Nrcy5jCisrKyBiL2NvbnRyaWIv cGdyb3dsb2Nrcy9wZ3Jvd2xvY2tzLmMKQEAgLTExNSw3ICsxMTUsNyBAQCBwZ3Jvd2xvY2tzKFBH X0ZVTkNUSU9OX0FSR1MpCiAJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpOwog CiAJLyogU2NhbiB0aGUgcmVsYXRpb24gKi8KLQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwg R2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCk7CisJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbihy ZWwsIEdldEFjdGl2ZVNuYXBzaG90KCksIDAsIE5VTEwsIFNPX05PTkUpOwogCWhzY2FuID0gKEhl YXBTY2FuRGVzYykgc2NhbjsKIAogCWF0dGlubWV0YSA9IFR1cGxlRGVzY0dldEF0dEluTWV0YWRh dGEocnNpbmZvLT5zZXREZXNjKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmlu L2JyaW4uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwppbmRleCAyYTBmOGM4ZTNi OC4uYmRiMzA3NTJlMDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4u YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKQEAgLTI4NDQsNyArMjg0NCw4 IEBAIF9icmluX3BhcmFsbGVsX3NjYW5fYW5kX2J1aWxkKEJyaW5CdWlsZFN0YXRlICpzdGF0ZSwK IAlpbmRleEluZm8tPmlpX0NvbmN1cnJlbnQgPSBicmluc2hhcmVkLT5pc2NvbmN1cnJlbnQ7CiAK IAlzY2FuID0gdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKGhlYXAsCi0JCQkJCQkJCQlQYXJhbGxl bFRhYmxlU2NhbkZyb21CcmluU2hhcmVkKGJyaW5zaGFyZWQpKTsKKwkJCQkJCQkJCVBhcmFsbGVs VGFibGVTY2FuRnJvbUJyaW5TaGFyZWQoYnJpbnNoYXJlZCksCisJCQkJCQkJCQlTT19OT05FKTsK IAogCXJlbHR1cGxlcyA9IHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oaGVhcCwgaW5kZXgsIGluZGV4 SW5mbywgdHJ1ZSwgdHJ1ZSwKIAkJCQkJCQkJCSAgIGJyaW5idWlsZENhbGxiYWNrUGFyYWxsZWws IHN0YXRlLCBzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5z ZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCmluZGV4IGU1NDc4MmQ5 ZGQ4Li45ZDgzYTQ5NTc3NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5p bnNlcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCkBAIC0yMDY4 LDcgKzIwNjgsOCBAQCBfZ2luX3BhcmFsbGVsX3NjYW5fYW5kX2J1aWxkKEdpbkJ1aWxkU3RhdGUg KnN0YXRlLAogCWluZGV4SW5mby0+aWlfQ29uY3VycmVudCA9IGdpbnNoYXJlZC0+aXNjb25jdXJy ZW50OwogCiAJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChoZWFwLAotCQkJCQkJCQkJ UGFyYWxsZWxUYWJsZVNjYW5Gcm9tR2luQnVpbGRTaGFyZWQoZ2luc2hhcmVkKSk7CisJCQkJCQkJ CQlQYXJhbGxlbFRhYmxlU2NhbkZyb21HaW5CdWlsZFNoYXJlZChnaW5zaGFyZWQpLAorCQkJCQkJ CQkJU09fTk9ORSk7CiAKIAlyZWx0dXBsZXMgPSB0YWJsZV9pbmRleF9idWlsZF9zY2FuKGhlYXAs IGluZGV4LCBpbmRleEluZm8sIHRydWUsIHByb2dyZXNzLAogCQkJCQkJCQkJICAgZ2luQnVpbGRD YWxsYmFja1BhcmFsbGVsLCBzdGF0ZSwgc2Nhbik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtX2hhbmRsZXIuYwppbmRleCBkNDA4Nzg5MjhlMS4uOTkyODBjZDgxNTkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtODEsMTEgKzgxLDEyIEBAIGhlYXBh bV9zbG90X2NhbGxiYWNrcyhSZWxhdGlvbiByZWxhdGlvbikKICAqLwogCiBzdGF0aWMgSW5kZXhG ZXRjaFRhYmxlRGF0YSAqCi1oZWFwYW1faW5kZXhfZmV0Y2hfYmVnaW4oUmVsYXRpb24gcmVsKQor aGVhcGFtX2luZGV4X2ZldGNoX2JlZ2luKFJlbGF0aW9uIHJlbCwgdWludDMyIGZsYWdzKQogewog CUluZGV4RmV0Y2hIZWFwRGF0YSAqaHNjYW4gPSBwYWxsb2MwX29iamVjdChJbmRleEZldGNoSGVh cERhdGEpOwogCiAJaHNjYW4tPnhzX2Jhc2UucmVsID0gcmVsOworCWhzY2FuLT54c19iYXNlLmZs YWdzID0gZmxhZ3M7CiAJaHNjYW4tPnhzX2NidWYgPSBJbnZhbGlkQnVmZmVyOwogCWhzY2FuLT54 c192bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CiAKQEAgLTc2Myw3ICs3NjQsOCBAQCBoZWFwYW1f cmVsYXRpb25fY29weV9mb3JfY2x1c3RlcihSZWxhdGlvbiBPbGRIZWFwLCBSZWxhdGlvbiBOZXdI ZWFwLAogCiAJCXRhYmxlU2NhbiA9IE5VTEw7CiAJCWhlYXBTY2FuID0gTlVMTDsKLQkJaW5kZXhT Y2FuID0gaW5kZXhfYmVnaW5zY2FuKE9sZEhlYXAsIE9sZEluZGV4LCBTbmFwc2hvdEFueSwgTlVM TCwgMCwgMCk7CisJCWluZGV4U2NhbiA9IGluZGV4X2JlZ2luc2NhbihPbGRIZWFwLCBPbGRJbmRl eCwgU25hcHNob3RBbnksIE5VTEwsIDAsIDAsCisJCQkJCQkJCQlTT19OT05FKTsKIAkJaW5kZXhf cmVzY2FuKGluZGV4U2NhbiwgTlVMTCwgMCwgTlVMTCwgMCk7CiAJfQogCWVsc2UKQEAgLTc3Miw3 ICs3NzQsOCBAQCBoZWFwYW1fcmVsYXRpb25fY29weV9mb3JfY2x1c3RlcihSZWxhdGlvbiBPbGRI ZWFwLCBSZWxhdGlvbiBOZXdIZWFwLAogCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBS T0dSRVNTX1JFUEFDS19QSEFTRSwKIAkJCQkJCQkJCSBQUk9HUkVTU19SRVBBQ0tfUEhBU0VfU0VR X1NDQU5fSEVBUCk7CiAKLQkJdGFibGVTY2FuID0gdGFibGVfYmVnaW5zY2FuKE9sZEhlYXAsIFNu YXBzaG90QW55LCAwLCAoU2NhbktleSkgTlVMTCk7CisJCXRhYmxlU2NhbiA9IHRhYmxlX2JlZ2lu c2NhbihPbGRIZWFwLCBTbmFwc2hvdEFueSwgMCwgKFNjYW5LZXkpIE5VTEwsCisJCQkJCQkJCQlT T19OT05FKTsKIAkJaGVhcFNjYW4gPSAoSGVhcFNjYW5EZXNjKSB0YWJsZVNjYW47CiAJCWluZGV4 U2NhbiA9IE5VTEw7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5h bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMKaW5kZXggNWU4OWI4NmE2MmMu LjE0MDg5ODljNTY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0u YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYwpAQCAtNDU1LDcgKzQ1NSw4 IEBAIHN5c3RhYmxlX2JlZ2luc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJCX0KIAogCQlz eXNzY2FuLT5pc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFwUmVsYXRpb24sIGlyZWwsCi0JCQkJ CQkJCQkJIHNuYXBzaG90LCBOVUxMLCBua2V5cywgMCk7CisJCQkJCQkJCQkJIHNuYXBzaG90LCBO VUxMLCBua2V5cywgMCwKKwkJCQkJCQkJCQkgU09fTk9ORSk7CiAJCWluZGV4X3Jlc2NhbihzeXNz Y2FuLT5pc2NhbiwgaWR4a2V5LCBua2V5cywgTlVMTCwgMCk7CiAJCXN5c3NjYW4tPnNjYW4gPSBO VUxMOwogCkBAIC03MTYsNyArNzE3LDggQEAgc3lzdGFibGVfYmVnaW5zY2FuX29yZGVyZWQoUmVs YXRpb24gaGVhcFJlbGF0aW9uLAogCQlic3lzc2NhbiA9IHRydWU7CiAKIAlzeXNzY2FuLT5pc2Nh biA9IGluZGV4X2JlZ2luc2NhbihoZWFwUmVsYXRpb24sIGluZGV4UmVsYXRpb24sCi0JCQkJCQkJ CQkgc25hcHNob3QsIE5VTEwsIG5rZXlzLCAwKTsKKwkJCQkJCQkJCSBzbmFwc2hvdCwgTlVMTCwg bmtleXMsIDAsCisJCQkJCQkJCQkgU09fTk9ORSk7CiAJaW5kZXhfcmVzY2FuKHN5c3NjYW4tPmlz Y2FuLCBpZHhrZXksIG5rZXlzLCBOVUxMLCAwKTsKIAlzeXNzY2FuLT5zY2FuID0gTlVMTDsKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKaW5kZXggZmJmYzMzMTU5ZWIuLjQ0NDk2YWUwOTYz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKQEAgLTI1OCw3ICsyNTgsOCBAQCBpbmRl eF9iZWdpbnNjYW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCVJlbGF0aW9uIGluZGV4UmVs YXRpb24sCiAJCQkJU25hcHNob3Qgc25hcHNob3QsCiAJCQkJSW5kZXhTY2FuSW5zdHJ1bWVudGF0 aW9uICppbnN0cnVtZW50LAotCQkJCWludCBua2V5cywgaW50IG5vcmRlcmJ5cykKKwkJCQlpbnQg bmtleXMsIGludCBub3JkZXJieXMsCisJCQkJdWludDMyIGZsYWdzKQogewogCUluZGV4U2NhbkRl c2Mgc2NhbjsKIApAQCAtMjg1LDcgKzI4Niw3IEBAIGluZGV4X2JlZ2luc2NhbihSZWxhdGlvbiBo ZWFwUmVsYXRpb24sCiAJc2Nhbi0+aW5zdHJ1bWVudCA9IGluc3RydW1lbnQ7CiAKIAkvKiBwcmVw YXJlIHRvIGZldGNoIGluZGV4IG1hdGNoZXMgZnJvbSB0YWJsZSAqLwotCXNjYW4tPnhzX2hlYXBm ZXRjaCA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKGhlYXBSZWxhdGlvbik7CisJc2Nhbi0+eHNf aGVhcGZldGNoID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4oaGVhcFJlbGF0aW9uLCBmbGFncyk7 CiAKIAlyZXR1cm4gc2NhbjsKIH0KQEAgLTU4OCwxMyArNTg5LDE3IEBAIGluZGV4X3BhcmFsbGVs cmVzY2FuKEluZGV4U2NhbkRlc2Mgc2NhbikKIC8qCiAgKiBpbmRleF9iZWdpbnNjYW5fcGFyYWxs ZWwgLSBqb2luIHBhcmFsbGVsIGluZGV4IHNjYW4KICAqCisgKiBmbGFncyBpcyBhIGJpdG1hc2sg b2YgU2Nhbk9wdGlvbnMgYWZmZWN0aW5nIHRoZSB1bmRlcmx5aW5nIHRhYmxlIHNjYW4uIE5vCisg KiBTT19JTlRFUk5BTF9GTEFHUyBhcmUgcGVybWl0dGVkLgorICoKICAqIENhbGxlciBtdXN0IGJl IGhvbGRpbmcgc3VpdGFibGUgbG9ja3Mgb24gdGhlIGhlYXAgYW5kIHRoZSBpbmRleC4KICAqLwog SW5kZXhTY2FuRGVzYwogaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIGhlYXByZWws IFJlbGF0aW9uIGluZGV4cmVsLAogCQkJCQkJIEluZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5z dHJ1bWVudCwKIAkJCQkJCSBpbnQgbmtleXMsIGludCBub3JkZXJieXMsCi0JCQkJCQkgUGFyYWxs ZWxJbmRleFNjYW5EZXNjIHBzY2FuKQorCQkJCQkJIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2Nh biwKKwkJCQkJCSB1aW50MzIgZmxhZ3MpCiB7CiAJU25hcHNob3QJc25hcHNob3Q7CiAJSW5kZXhT Y2FuRGVzYyBzY2FuOwpAQCAtNjE2LDcgKzYyMSw3IEBAIGluZGV4X2JlZ2luc2Nhbl9wYXJhbGxl bChSZWxhdGlvbiBoZWFwcmVsLCBSZWxhdGlvbiBpbmRleHJlbCwKIAlzY2FuLT5pbnN0cnVtZW50 ID0gaW5zdHJ1bWVudDsKIAogCS8qIHByZXBhcmUgdG8gZmV0Y2ggaW5kZXggbWF0Y2hlcyBmcm9t IHRhYmxlICovCi0Jc2Nhbi0+eHNfaGVhcGZldGNoID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4o aGVhcHJlbCk7CisJc2Nhbi0+eHNfaGVhcGZldGNoID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4o aGVhcHJlbCwgZmxhZ3MpOwogCiAJcmV0dXJuIHNjYW47CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0c29ydC5jCmluZGV4IDQ3YTliZGEzMGM5Li43NTZkZmEzZGNmNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnRzb3J0LmMKQEAgLTE5MjgsNyArMTkyOCw4IEBAIF9idF9wYXJhbGxlbF9zY2Fu X2FuZF9zb3J0KEJUU3Bvb2wgKmJ0c3Bvb2wsIEJUU3Bvb2wgKmJ0c3Bvb2wyLAogCWluZGV4SW5m byA9IEJ1aWxkSW5kZXhJbmZvKGJ0c3Bvb2wtPmluZGV4KTsKIAlpbmRleEluZm8tPmlpX0NvbmN1 cnJlbnQgPSBidHNoYXJlZC0+aXNjb25jdXJyZW50OwogCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5f cGFyYWxsZWwoYnRzcG9vbC0+aGVhcCwKLQkJCQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUJU U2hhcmVkKGJ0c2hhcmVkKSk7CisJCQkJCQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21CVFNoYXJl ZChidHNoYXJlZCksCisJCQkJCQkJCQlTT19OT05FKTsKIAlyZWx0dXBsZXMgPSB0YWJsZV9pbmRl eF9idWlsZF9zY2FuKGJ0c3Bvb2wtPmhlYXAsIGJ0c3Bvb2wtPmluZGV4LCBpbmRleEluZm8sCiAJ CQkJCQkJCQkgICB0cnVlLCBwcm9ncmVzcywgX2J0X2J1aWxkX2NhbGxiYWNrLAogCQkJCQkJCQkJ ICAgJmJ1aWxkc3RhdGUsIHNjYW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Rh YmxlL3RhYmxlYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKaW5kZXgg ZGZkYTFhZjQxMmUuLjg2NDgxZDdjMDI5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dGFibGUvdGFibGVhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMK QEAgLTExOCw3ICsxMTgsNyBAQCB0YWJsZV9iZWdpbnNjYW5fY2F0YWxvZyhSZWxhdGlvbiByZWxh dGlvbiwgaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5KQogCVNuYXBzaG90CXNuYXBzaG90ID0g UmVnaXN0ZXJTbmFwc2hvdChHZXRDYXRhbG9nU25hcHNob3QocmVsaWQpKTsKIAogCXJldHVybiB0 YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbGF0aW9uLCBzbmFwc2hvdCwgbmtleXMsIGtleSwKLQkJ CQkJCQkJICBOVUxMLCBmbGFncyk7CisJCQkJCQkJCSAgTlVMTCwgZmxhZ3MsIFNPX05PTkUpOwog fQogCiAKQEAgLTE2MywxMCArMTYzLDExIEBAIHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXpl KFJlbGF0aW9uIHJlbCwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAogfQogCiBUYWJsZVNj YW5EZXNjCi10YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24sIFBhcmFs bGVsVGFibGVTY2FuRGVzYyBwc2NhbikKK3RhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlv biByZWxhdGlvbiwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJIHVpbnQzMiBm bGFncykKIHsKIAlTbmFwc2hvdAlzbmFwc2hvdDsKLQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9T RVFTQ0FOIHwKKwl1aW50MzIJCWludGVybmFsX2ZsYWdzID0gU09fVFlQRV9TRVFTQ0FOIHwKIAkJ U09fQUxMT1dfU1RSQVQgfCBTT19BTExPV19TWU5DIHwgU09fQUxMT1dfUEFHRU1PREU7CiAKIAlB c3NlcnQoUmVsRmlsZUxvY2F0b3JFcXVhbHMocmVsYXRpb24tPnJkX2xvY2F0b3IsIHBzY2FuLT5w aHNfbG9jYXRvcikpOwpAQCAtMTc2LDcgKzE3Nyw3IEBAIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxl bChSZWxhdGlvbiByZWxhdGlvbiwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQogCQkvKiBT bmFwc2hvdCB3YXMgc2VyaWFsaXplZCAtLSByZXN0b3JlIGl0ICovCiAJCXNuYXBzaG90ID0gUmVz dG9yZVNuYXBzaG90KChjaGFyICopIHBzY2FuICsgcHNjYW4tPnBoc19zbmFwc2hvdF9vZmYpOwog CQlSZWdpc3RlclNuYXBzaG90KHNuYXBzaG90KTsKLQkJZmxhZ3MgfD0gU09fVEVNUF9TTkFQU0hP VDsKKwkJaW50ZXJuYWxfZmxhZ3MgfD0gU09fVEVNUF9TTkFQU0hPVDsKIAl9CiAJZWxzZQogCXsK QEAgLTE4NSwxNiArMTg2LDE3IEBAIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBy ZWxhdGlvbiwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQogCX0KIAogCXJldHVybiB0YWJs ZV9iZWdpbnNjYW5fY29tbW9uKHJlbGF0aW9uLCBzbmFwc2hvdCwgMCwgTlVMTCwKLQkJCQkJCQkJ ICBwc2NhbiwgZmxhZ3MpOworCQkJCQkJCQkgIHBzY2FuLCBpbnRlcm5hbF9mbGFncywgZmxhZ3Mp OwogfQogCiBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlkcmFuZ2Uo UmVsYXRpb24gcmVsYXRpb24sCi0JCQkJCQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2Fu KQorCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkJICB1aW50 MzIgZmxhZ3MpCiB7CiAJU25hcHNob3QJc25hcHNob3Q7Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZ UEVfVElEUkFOR0VTQ0FOIHwgU09fQUxMT1dfUEFHRU1PREU7CiAJVGFibGVTY2FuRGVzYyBzc2Nh bjsKKwl1aW50MzIJCWludGVybmFsX2ZsYWdzID0gU09fVFlQRV9USURSQU5HRVNDQU4gfCBTT19B TExPV19QQUdFTU9ERTsKIAogCUFzc2VydChSZWxGaWxlTG9jYXRvckVxdWFscyhyZWxhdGlvbi0+ cmRfbG9jYXRvciwgcHNjYW4tPnBoc19sb2NhdG9yKSk7CiAKQEAgLTIwNiw3ICsyMDgsNyBAQCB0 YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlkcmFuZ2UoUmVsYXRpb24gcmVsYXRpb24sCiAJCS8q IFNuYXBzaG90IHdhcyBzZXJpYWxpemVkIC0tIHJlc3RvcmUgaXQgKi8KIAkJc25hcHNob3QgPSBS ZXN0b3JlU25hcHNob3QoKGNoYXIgKikgcHNjYW4gKyBwc2Nhbi0+cGhzX3NuYXBzaG90X29mZik7 CiAJCVJlZ2lzdGVyU25hcHNob3Qoc25hcHNob3QpOwotCQlmbGFncyB8PSBTT19URU1QX1NOQVBT SE9UOworCQlpbnRlcm5hbF9mbGFncyB8PSBTT19URU1QX1NOQVBTSE9UOwogCX0KIAllbHNlCiAJ ewpAQCAtMjE1LDcgKzIxNyw3IEBAIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShS ZWxhdGlvbiByZWxhdGlvbiwKIAl9CiAKIAlzc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9jb21tb24o cmVsYXRpb24sIHNuYXBzaG90LCAwLCBOVUxMLAotCQkJCQkJCQkgICBwc2NhbiwgZmxhZ3MpOwor CQkJCQkJCQkgICBwc2NhbiwgaW50ZXJuYWxfZmxhZ3MsIGZsYWdzKTsKIAlyZXR1cm4gc3NjYW47 CiB9CiAKQEAgLTI0OCw3ICsyNTAsNyBAQCB0YWJsZV9pbmRleF9mZXRjaF90dXBsZV9jaGVjayhS ZWxhdGlvbiByZWwsCiAJYm9vbAkJZm91bmQ7CiAKIAlzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUo cmVsLCBOVUxMKTsKLQlzY2FuID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4ocmVsKTsKKwlzY2Fu ID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4ocmVsLCBTT19OT05FKTsKIAlmb3VuZCA9IHRhYmxl X2luZGV4X2ZldGNoX3R1cGxlKHNjYW4sIHRpZCwgc25hcHNob3QsIHNsb3QsICZjYWxsX2FnYWlu LAogCQkJCQkJCQkJYWxsX2RlYWQpOwogCXRhYmxlX2luZGV4X2ZldGNoX2VuZChzY2FuKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2NvbnN0cmFpbnQuYwppbmRleCBjYzExYzQ3YjZmMi4uNDIxZDhjMzU5ZjAgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbnN0cmFpbnQuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9jb25zdHJhaW50LmMKQEAgLTEwNiw3ICsxMDYsOCBAQCB1bmlxdWVfa2V5 X3JlY2hlY2soUEdfRlVOQ1RJT05fQVJHUykKIAkgKi8KIAl0bXB0aWQgPSBjaGVja3RpZDsKIAl7 Ci0JCUluZGV4RmV0Y2hUYWJsZURhdGEgKnNjYW4gPSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbih0 cmlnZGF0YS0+dGdfcmVsYXRpb24pOworCQlJbmRleEZldGNoVGFibGVEYXRhICpzY2FuID0gdGFi bGVfaW5kZXhfZmV0Y2hfYmVnaW4odHJpZ2RhdGEtPnRnX3JlbGF0aW9uLAorCQkJCQkJCQkJCQkJ CQkJU09fTk9ORSk7CiAJCWJvb2wJCWNhbGxfYWdhaW4gPSBmYWxzZTsKIAogCQlpZiAoIXRhYmxl X2luZGV4X2ZldGNoX3R1cGxlKHNjYW4sICZ0bXB0aWQsIFNuYXBzaG90U2VsZiwgc2xvdCwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvY29weXRvLmMKaW5kZXggZmFmNjJkOTU5YjQuLmYwZTAxNDdjNjY1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5dG8uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9jb3B5dG8uYwpAQCAtMTMzNiw3ICsxMzM2LDggQEAgQ29weVJlbGF0aW9uVG8oQ29weVRvU3Rh dGUgY3N0YXRlLCBSZWxhdGlvbiByZWwsIFJlbGF0aW9uIHJvb3RfcmVsLCB1aW50NjQgKnByb2MK IAlBdHRyTWFwICAgICptYXAgPSBOVUxMOwogCVR1cGxlVGFibGVTbG90ICpyb290X3Nsb3QgPSBO VUxMOwogCi0Jc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hv dCgpLCAwLCBOVUxMKTsKKwlzY2FuZGVzYyA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIEdldEFjdGl2 ZVNuYXBzaG90KCksIDAsIE5VTEwsCisJCQkJCQkJICAgU09fTk9ORSk7CiAJc2xvdCA9IHRhYmxl X3Nsb3RfY3JlYXRlKHJlbCwgTlVMTCk7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpp bmRleCBjNjljMTJkYzAxNC4uZWMwMDYzMjg3ZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j CkBAIC02NDExLDcgKzY0MTEsOCBAQCBBVFJld3JpdGVUYWJsZShBbHRlcmVkVGFibGVJbmZvICp0 YWIsIE9pZCBPSUROZXdIZWFwKQogCQkgKiBjaGVja2luZyBhbGwgdGhlIGNvbnN0cmFpbnRzLgog CQkgKi8KIAkJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkp OwotCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKG9sZHJlbCwgc25hcHNob3QsIDAsIE5VTEwpOwor CQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKG9sZHJlbCwgc25hcHNob3QsIDAsIE5VTEwsCisJCQkJ CQkJICAgU09fTk9ORSk7CiAKIAkJLyoKIAkJICogU3dpdGNoIHRvIHBlci10dXBsZSBtZW1vcnkg Y29udGV4dCBhbmQgcmVzZXQgaXQgZm9yIGVhY2ggdHVwbGUKQEAgLTEzOTgwLDggKzEzOTgxLDgg QEAgdmFsaWRhdGVGb3JlaWduS2V5Q29uc3RyYWludChjaGFyICpjb25uYW1lLAogCSAqLwogCXNu YXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKIAlzbG90ID0g dGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKLQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJl bCwgc25hcHNob3QsIDAsIE5VTEwpOwotCisJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIHNu YXBzaG90LCAwLCBOVUxMLAorCQkJCQkJICAgU09fTk9ORSk7CiAJcGVyVHVwQ3h0ID0gQWxsb2NT ZXRDb250ZXh0Q3JlYXRlKEN1cnJlbnRNZW1vcnlDb250ZXh0LAogCQkJCQkJCQkJICAidmFsaWRh dGVGb3JlaWduS2V5Q29uc3RyYWludCIsCiAJCQkJCQkJCQkgIEFMTE9DU0VUX1NNQUxMX1NJWkVT KTsKQEAgLTIyODgyLDcgKzIyODgzLDggQEAgTWVyZ2VQYXJ0aXRpb25zTW92ZVJvd3MoTGlzdCAq KndxdWV1ZSwgTGlzdCAqbWVyZ2luZ1BhcnRpdGlvbnMsIFJlbGF0aW9uIG5ld1BhcnQKIAogCQkv KiBTY2FuIHRocm91Z2ggdGhlIHJvd3MuICovCiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hv dChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihtZXJnaW5n UGFydGl0aW9uLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4o bWVyZ2luZ1BhcnRpdGlvbiwgc25hcHNob3QsIDAsIE5VTEwsCisJCQkJCQkJICAgU09fTk9ORSk7 CiAKIAkJLyoKIAkJICogU3dpdGNoIHRvIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCBhbmQgcmVz ZXQgaXQgZm9yIGVhY2ggdHVwbGUKQEAgLTIzMzQ2LDcgKzIzMzQ4LDggQEAgU3BsaXRQYXJ0aXRp b25Nb3ZlUm93cyhMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIFJlbGF0aW9uIHNwbGl0UmVs LAogCiAJLyogU2NhbiB0aHJvdWdoIHRoZSByb3dzLiAqLwogCXNuYXBzaG90ID0gUmVnaXN0ZXJT bmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKLQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHNw bGl0UmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihzcGxp dFJlbCwgc25hcHNob3QsIDAsIE5VTEwsCisJCQkJCQkgICBTT19OT05FKTsKIAogCS8qCiAJICog U3dpdGNoIHRvIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCBhbmQgcmVzZXQgaXQgZm9yIGVhY2gg dHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDNkYWI2YmI1YTc5Li5jZDM4ZTljZGRm NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0zMTg1LDcgKzMxODUsOCBAQCB2YWxpZGF0 ZURvbWFpbk5vdE51bGxDb25zdHJhaW50KE9pZCBkb21haW5vaWQpCiAKIAkJLyogU2NhbiBhbGwg dHVwbGVzIGluIHRoaXMgcmVsYXRpb24gKi8KIAkJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90 KEdldExhdGVzdFNuYXBzaG90KCkpOwotCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHRlc3RyZWws IHNuYXBzaG90LCAwLCBOVUxMKTsKKwkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbih0ZXN0cmVsLCBz bmFwc2hvdCwgMCwgTlVMTCwKKwkJCQkJCQkgICBTT19OT05FKTsKIAkJc2xvdCA9IHRhYmxlX3Ns b3RfY3JlYXRlKHRlc3RyZWwsIE5VTEwpOwogCQl3aGlsZSAodGFibGVfc2Nhbl9nZXRuZXh0c2xv dChzY2FuLCBGb3J3YXJkU2NhbkRpcmVjdGlvbiwgc2xvdCkpCiAJCXsKQEAgLTMyNjYsNyArMzI2 Nyw4IEBAIHZhbGlkYXRlRG9tYWluQ2hlY2tDb25zdHJhaW50KE9pZCBkb21haW5vaWQsIGNvbnN0 IGNoYXIgKmNjYmluLCBMT0NLTU9ERSBsb2NrbW9kCiAKIAkJLyogU2NhbiBhbGwgdHVwbGVzIGlu IHRoaXMgcmVsYXRpb24gKi8KIAkJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVz dFNuYXBzaG90KCkpOwotCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHRlc3RyZWwsIHNuYXBzaG90 LCAwLCBOVUxMKTsKKwkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbih0ZXN0cmVsLCBzbmFwc2hvdCwg MCwgTlVMTCwKKwkJCQkJCQkgICBTT19OT05FKTsKIAkJc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRl KHRlc3RyZWwsIE5VTEwpOwogCQl3aGlsZSAodGFibGVfc2Nhbl9nZXRuZXh0c2xvdChzY2FuLCBG b3J3YXJkU2NhbkRpcmVjdGlvbiwgc2xvdCkpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4 aW5nLmMKaW5kZXggOWQwNzFlNDk1YzYuLmNjNmViM2E2ZWU5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjSW5kZXhpbmcuYwpAQCAtODE1LDcgKzgxNSw5IEBAIGNoZWNrX2V4Y2x1c2lvbl9vcl91bmlx dWVfY29uc3RyYWludChSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwKIHJldHJ5OgogCWNv bmZsaWN0ID0gZmFsc2U7CiAJZm91bmRfc2VsZiA9IGZhbHNlOwotCWluZGV4X3NjYW4gPSBpbmRl eF9iZWdpbnNjYW4oaGVhcCwgaW5kZXgsICZEaXJ0eVNuYXBzaG90LCBOVUxMLCBpbmRua2V5YXR0 cywgMCk7CisJaW5kZXhfc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFwLCBpbmRleCwKKwkJCQkJ CQkJICZEaXJ0eVNuYXBzaG90LCBOVUxMLCBpbmRua2V5YXR0cywgMCwKKwkJCQkJCQkJIFNPX05P TkUpOwogCWluZGV4X3Jlc2NhbihpbmRleF9zY2FuLCBzY2Fua2V5cywgaW5kbmtleWF0dHMsIE5V TEwsIDApOwogCiAJd2hpbGUgKGluZGV4X2dldG5leHRfc2xvdChpbmRleF9zY2FuLCBGb3J3YXJk U2NhbkRpcmVjdGlvbiwgZXhpc3Rpbmdfc2xvdCkpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUmVwbGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBs aWNhdGlvbi5jCmluZGV4IDI0OTdlZTdlZGM1Li5mZWE4OTkxY2IwNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMKQEAgLTIwNSw3ICsyMDUsOCBAQCBSZWxhdGlvbkZpbmRS ZXBsVHVwbGVCeUluZGV4KFJlbGF0aW9uIHJlbCwgT2lkIGlkeG9pZCwKIAlza2V5X2F0dG9mZiA9 IGJ1aWxkX3JlcGxpbmRleF9zY2FuX2tleShza2V5LCByZWwsIGlkeHJlbCwgc2VhcmNoc2xvdCk7 CiAKIAkvKiBTdGFydCBhbiBpbmRleCBzY2FuLiAqLwotCXNjYW4gPSBpbmRleF9iZWdpbnNjYW4o cmVsLCBpZHhyZWwsICZzbmFwLCBOVUxMLCBza2V5X2F0dG9mZiwgMCk7CisJc2NhbiA9IGluZGV4 X2JlZ2luc2NhbihyZWwsIGlkeHJlbCwKKwkJCQkJCSAgICZzbmFwLCBOVUxMLCBza2V5X2F0dG9m ZiwgMCwgU09fTk9ORSk7CiAKIHJldHJ5OgogCWZvdW5kID0gZmFsc2U7CkBAIC0zODMsNyArMzg0 LDggQEAgUmVsYXRpb25GaW5kUmVwbFR1cGxlU2VxKFJlbGF0aW9uIHJlbCwgTG9ja1R1cGxlTW9k ZSBsb2NrbW9kZSwKIAogCS8qIFN0YXJ0IGEgaGVhcCBzY2FuLiAqLwogCUluaXREaXJ0eVNuYXBz aG90KHNuYXApOwotCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCAmc25hcCwgMCwgTlVMTCk7 CisJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsICZzbmFwLCAwLCBOVUxMLAorCQkJCQkJICAg U09fTk9ORSk7CiAJc2NhbnNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShyZWwsIE5VTEwpOwogCiBy ZXRyeToKQEAgLTYwMiw3ICs2MDQsOCBAQCBSZWxhdGlvbkZpbmREZWxldGVkVHVwbGVJbmZvU2Vx KFJlbGF0aW9uIHJlbCwgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCiAJICogbm90IHlldCBj b21taXR0ZWQgb3IgdGhvc2UganVzdCBjb21taXR0ZWQgcHJpb3IgdG8gdGhlIHNjYW4gYXJlCiAJ ICogZXhjbHVkZWQgaW4gdXBkYXRlX21vc3RfcmVjZW50X2RlbGV0aW9uX2luZm8oKS4KIAkgKi8K LQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgU25hcHNob3RBbnksIDAsIE5VTEwpOworCXNj YW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBTbmFwc2hvdEFueSwgMCwgTlVMTCwKKwkJCQkJCSAg IFNPX05PTkUpOwogCXNjYW5zbG90ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKIAog CXRhYmxlX3Jlc2NhbihzY2FuLCBOVUxMKTsKQEAgLTY2Niw3ICs2NjksOCBAQCBSZWxhdGlvbkZp bmREZWxldGVkVHVwbGVJbmZvQnlJbmRleChSZWxhdGlvbiByZWwsIE9pZCBpZHhvaWQsCiAJICog bm90IHlldCBjb21taXR0ZWQgb3IgdGhvc2UganVzdCBjb21taXR0ZWQgcHJpb3IgdG8gdGhlIHNj YW4gYXJlCiAJICogZXhjbHVkZWQgaW4gdXBkYXRlX21vc3RfcmVjZW50X2RlbGV0aW9uX2luZm8o KS4KIAkgKi8KLQlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKHJlbCwgaWR4cmVsLCBTbmFwc2hvdEFu eSwgTlVMTCwgc2tleV9hdHRvZmYsIDApOworCXNjYW4gPSBpbmRleF9iZWdpbnNjYW4ocmVsLCBp ZHhyZWwsCisJCQkJCQkgICBTbmFwc2hvdEFueSwgTlVMTCwgc2tleV9hdHRvZmYsIDAsIFNPX05P TkUpOwogCiAJaW5kZXhfcmVzY2FuKHNjYW4sIHNrZXksIHNrZXlfYXR0b2ZmLCBOVUxMLCAwKTsK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwppbmRleCA3Y2Y4ZDIz Yzc0Mi4uNjk2ODNkODE1MjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVC aXRtYXBIZWFwc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFw c2Nhbi5jCkBAIC0xNDgsNyArMTQ4LDggQEAgQml0bWFwVGFibGVTY2FuU2V0dXAoQml0bWFwSGVh cFNjYW5TdGF0ZSAqbm9kZSkKIAkJCXRhYmxlX2JlZ2luc2Nhbl9ibShub2RlLT5zcy5zc19jdXJy ZW50UmVsYXRpb24sCiAJCQkJCQkJICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAog CQkJCQkJCSAgIDAsCi0JCQkJCQkJICAgTlVMTCk7CisJCQkJCQkJICAgTlVMTCwKKwkJCQkJCQkg ICBTT19OT05FKTsKIAl9CiAKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MtPnN0LnJzX3Ri bWl0ZXJhdG9yID0gdGJtaXRlcmF0b3I7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlSW5kZXhvbmx5c2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25s eXNjYW4uYwppbmRleCA5ZWFiODFmZDFjOC4uMDJkZjQwZjMyYzUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYwpAQCAtOTUsNyArOTUsOCBAQCBJbmRleE9ubHlOZXh0 KEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSkKIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hv dCwKIAkJCQkJCQkJICAgbm9kZS0+aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5p b3NzX051bVNjYW5LZXlzLAotCQkJCQkJCQkgICBub2RlLT5pb3NzX051bU9yZGVyQnlLZXlzKTsK KwkJCQkJCQkJICAgbm9kZS0+aW9zc19OdW1PcmRlckJ5S2V5cywKKwkJCQkJCQkJICAgU09fTk9O RSk7CiAKIAkJbm9kZS0+aW9zc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCkBAIC03OTQsNyArNzk1 LDggQEAgRXhlY0luZGV4T25seVNjYW5Jbml0aWFsaXplRFNNKEluZGV4T25seVNjYW5TdGF0ZSAq bm9kZSwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlv c3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bU9yZGVyQnlLZXlzLAotCQkJ CQkJCQkgcGlzY2FuKTsKKwkJCQkJCQkJIHBpc2NhbiwKKwkJCQkJCQkJIFNPX05PTkUpOwogCW5v ZGUtPmlvc3NfU2NhbkRlc2MtPnhzX3dhbnRfaXR1cCA9IHRydWU7CiAJbm9kZS0+aW9zc19WTUJ1 ZmZlciA9IEludmFsaWRCdWZmZXI7CiAKQEAgLTg2MCw3ICs4NjIsOCBAQCBFeGVjSW5kZXhPbmx5 U2NhbkluaXRpYWxpemVXb3JrZXIoSW5kZXhPbmx5U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkg bm9kZS0+aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1TY2FuS2V5cywK IAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBwaXNjYW4pOwor CQkJCQkJCQkgcGlzY2FuLAorCQkJCQkJCQkgU09fTk9ORSk7CiAJbm9kZS0+aW9zc19TY2FuRGVz Yy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhz Y2FuLmMKaW5kZXggMDYxNDNlOTRjNWEuLjNjMGI4ZGFmNjY0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZUluZGV4c2Nhbi5jCkBAIC0xMTMsNyArMTEzLDggQEAgSW5kZXhOZXh0KEluZGV4U2NhblN0 YXRlICpub2RlKQogCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkgICBu b2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAot CQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkgICBub2RlLT5p c3NfTnVtT3JkZXJCeUtleXMsCisJCQkJCQkJCSAgIFNPX05PTkUpOwogCiAJCW5vZGUtPmlzc19T Y2FuRGVzYyA9IHNjYW5kZXNjOwogCkBAIC0yMDksNyArMjEwLDggQEAgSW5kZXhOZXh0V2l0aFJl b3JkZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNo b3QsCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5p c3NfTnVtU2NhbktleXMsCi0JCQkJCQkJCSAgIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cyk7CisJ CQkJCQkJCSAgIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywKKwkJCQkJCQkJICAgU09fTk9ORSk7 CiAKIAkJbm9kZS0+aXNzX1NjYW5EZXNjID0gc2NhbmRlc2M7CiAKQEAgLTE3MzAsNyArMTczMiw4 IEBAIEV4ZWNJbmRleFNjYW5Jbml0aWFsaXplRFNNKEluZGV4U2NhblN0YXRlICpub2RlLAogCQkJ CQkJCQkgbm9kZS0+aXNzX0luc3RydW1lbnQsCiAJCQkJCQkJCSBub2RlLT5pc3NfTnVtU2Nhbktl eXMsCiAJCQkJCQkJCSBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBwaXNjYW4p OworCQkJCQkJCQkgcGlzY2FuLAorCQkJCQkJCQkgU09fTk9ORSk7CiAKIAkvKgogCSAqIElmIG5v IHJ1bi10aW1lIGtleXMgdG8gY2FsY3VsYXRlIG9yIHRoZXkgYXJlIHJlYWR5LCBnbyBhaGVhZCBh bmQgcGFzcwpAQCAtMTc5NCw3ICsxNzk3LDggQEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVXb3Jr ZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pc3NfSW5zdHJ1bWVudCwK IAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1P cmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4sCisJCQkJCQkJ CSBTT19OT05FKTsKIAogCS8qCiAJICogSWYgbm8gcnVuLXRpbWUga2V5cyB0byBjYWxjdWxhdGUg b3IgdGhleSBhcmUgcmVhZHksIGdvIGFoZWFkIGFuZCBwYXNzCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVNhbXBsZXNjYW4uYwppbmRleCA2YjBkNjVmNzUyZi4uY2YzMmRmMzNkODIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYwpAQCAtMjk4LDcgKzI5OCw4IEBAIHRhYmxlc2FtcGxl X2luaXQoU2FtcGxlU2NhblN0YXRlICpzY2Fuc3RhdGUpCiAJCQkJCQkJCQkgMCwgTlVMTCwKIAkJ CQkJCQkJCSBzY2Fuc3RhdGUtPnVzZV9idWxrcmVhZCwKIAkJCQkJCQkJCSBhbGxvd19zeW5jLAot CQkJCQkJCQkJIHNjYW5zdGF0ZS0+dXNlX3BhZ2Vtb2RlKTsKKwkJCQkJCQkJCSBzY2Fuc3RhdGUt PnVzZV9wYWdlbW9kZSwKKwkJCQkJCQkJCSBTT19OT05FKTsKIAl9CiAJZWxzZQogCXsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlU2Vxc2Nhbi5jCmluZGV4IDhmMjE5ZjYwYTkzLi4wOWNjYzY1ZGUxYyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCkBAIC03MSw3ICs3MSw4IEBAIFNlcU5leHQoU2Vx U2NhblN0YXRlICpub2RlKQogCQkgKi8KIAkJc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW4obm9k ZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90 LAotCQkJCQkJCQkgICAwLCBOVUxMKTsKKwkJCQkJCQkJICAgMCwgTlVMTCwKKwkJCQkJCQkJICAg U09fTk9ORSk7CiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9IHNjYW5kZXNjOwogCX0K IApAQCAtMzc1LDcgKzM3Niw4IEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShTZXFTY2FuU3Rh dGUgKm5vZGUsCiAJCQkJCQkJCSAgZXN0YXRlLT5lc19zbmFwc2hvdCk7CiAJc2htX3RvY19pbnNl cnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIHBzY2FuKTsKIAlu b2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwo bm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nhbik7CisJCXRhYmxlX2JlZ2luc2Nhbl9w YXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLAorCQkJCQkJCQkgU09f Tk9ORSk7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwOCw1ICs0MTAsNiBAQCBFeGVjU2VxU2Nhbklu aXRpYWxpemVXb3JrZXIoU2VxU2NhblN0YXRlICpub2RlLAogCiAJcHNjYW4gPSBzaG1fdG9jX2xv b2t1cChwd2N4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIGZhbHNlKTsK IAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxs ZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nhbik7CisJCXRhYmxlX2JlZ2luc2Nh bl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLAorCQkJCQkJCQkg U09fTk9ORSk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFu Z2VzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKaW5kZXgg NjE3NzEzYmRlMDQuLjA4NGU0YzZlYzkwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlVGlkcmFuZ2VzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJh bmdlc2Nhbi5jCkBAIC0yNDUsNyArMjQ1LDggQEAgVGlkUmFuZ2VOZXh0KFRpZFJhbmdlU2NhblN0 YXRlICpub2RlKQogCQkJc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW5fdGlkcmFuZ2Uobm9kZS0+ c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkJCQkJZXN0YXRlLT5lc19zbmFwc2hvdCwK IAkJCQkJCQkJCQkJCSZub2RlLT50cnNzX21pbnRpZCwKLQkJCQkJCQkJCQkJCSZub2RlLT50cnNz X21heHRpZCk7CisJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19tYXh0aWQsCisJCQkJCQkJCQkJCQlT T19OT05FKTsKIAkJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9IHNjYW5kZXNjOwogCQl9 CiAJCWVsc2UKQEAgLTQ2MCw3ICs0NjEsNyBAQCBFeGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6ZURT TShUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwgUGFyYWxsZWxDb250ZXh0ICpwY3h0KQogCXNobV90 b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBwc2Nh bik7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJdGFibGVfYmVnaW5zY2FuX3Bh cmFsbGVsX3RpZHJhbmdlKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJCQkg IHBzY2FuKTsKKwkJCQkJCQkJCQkgIHBzY2FuLCBTT19OT05FKTsKIH0KIAogLyogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpA QCAtNDk0LDUgKzQ5NSw1IEBAIEV4ZWNUaWRSYW5nZVNjYW5Jbml0aWFsaXplV29ya2VyKFRpZFJh bmdlU2NhblN0YXRlICpub2RlLAogCXBzY2FuID0gc2htX3RvY19sb29rdXAocHdjeHQtPnRvYywg bm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBmYWxzZSk7CiAJbm9kZS0+c3Muc3NfY3Vy cmVudFNjYW5EZXNjID0KIAkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKG5vZGUt PnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJCQkgIHBzY2FuKTsKKwkJCQkJCQkJCQkg IHBzY2FuLCBTT19OT05FKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmlu Zy9wYXJ0Ym91bmRzLmMgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jCmlu ZGV4IDBjYTMxMmFjMjdkLi5mODY3ZDFiNzVhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy dGl0aW9uaW5nL3BhcnRib3VuZHMuYworKysgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFy dGJvdW5kcy5jCkBAIC0zMzYyLDcgKzMzNjIsOCBAQCBjaGVja19kZWZhdWx0X3BhcnRpdGlvbl9j b250ZW50cyhSZWxhdGlvbiBwYXJlbnQsIFJlbGF0aW9uIGRlZmF1bHRfcmVsLAogCQllY29udGV4 dCA9IEdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKTsKIAkJc25hcHNob3QgPSBSZWdpc3Rl clNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwogCQl0dXBzbG90ID0gdGFibGVfc2xvdF9j cmVhdGUocGFydF9yZWwsICZlc3RhdGUtPmVzX3R1cGxlVGFibGUpOwotCQlzY2FuID0gdGFibGVf YmVnaW5zY2FuKHBhcnRfcmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9i ZWdpbnNjYW4ocGFydF9yZWwsIHNuYXBzaG90LCAwLCBOVUxMLAorCQkJCQkJCSAgIFNPX05PTkUp OwogCiAJCS8qCiAJCSAqIFN3aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJl c2V0IGl0IGZvciBlYWNoIHR1cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv c2VsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCmluZGV4IDUzZjg1 Y2NkZTAxLi40MTYwZDJkNmUyNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Nl bGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKQEAgLTcxNzgs NyArNzE3OCw4IEBAIGdldF9hY3R1YWxfdmFyaWFibGVfZW5kcG9pbnQoUmVsYXRpb24gaGVhcFJl bCwKIAogCWluZGV4X3NjYW4gPSBpbmRleF9iZWdpbnNjYW4oaGVhcFJlbCwgaW5kZXhSZWwsCiAJ CQkJCQkJCSAmU25hcHNob3ROb25WYWN1dW1hYmxlLCBOVUxMLAotCQkJCQkJCQkgMSwgMCk7CisJ CQkJCQkJCSAxLCAwLAorCQkJCQkJCQkgU09fTk9ORSk7CiAJLyogU2V0IGl0IHVwIGZvciBpbmRl eC1vbmx5IHNjYW4gKi8KIAlpbmRleF9zY2FuLT54c193YW50X2l0dXAgPSB0cnVlOwogCWluZGV4 X3Jlc2NhbihpbmRleF9zY2FuLCBzY2Fua2V5cywgMSwgTlVMTCwgMCk7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oCmlu ZGV4IDFhMjdiZjA2MGIzLi5iNjkzMjBhN2ZjOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNj ZXNzL2dlbmFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKQEAgLTE1OCw3ICsx NTgsOCBAQCBleHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW4oUmVsYXRpb24gaGVh cFJlbGF0aW9uLAogCQkJCQkJCQkJIFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiAJCQkJCQkJCQkg U25hcHNob3Qgc25hcHNob3QsCiAJCQkJCQkJCQkgSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICpp bnN0cnVtZW50LAotCQkJCQkJCQkJIGludCBua2V5cywgaW50IG5vcmRlcmJ5cyk7CisJCQkJCQkJ CQkgaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzLAorCQkJCQkJCQkJIHVpbnQzMiBmbGFncyk7CiBl eHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW5fYml0bWFwKFJlbGF0aW9uIGluZGV4 UmVsYXRpb24sCiAJCQkJCQkJCQkJCVNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJCQlJbmRl eFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCkBAIC0xODQsNyArMTg1LDggQEAgZXh0 ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIGhlYXBy ZWwsCiAJCQkJCQkJCQkJCSAgUmVsYXRpb24gaW5kZXhyZWwsCiAJCQkJCQkJCQkJCSAgSW5kZXhT Y2FuSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAogCQkJCQkJCQkJCQkgIGludCBua2V5cywg aW50IG5vcmRlcmJ5cywKLQkJCQkJCQkJCQkJICBQYXJhbGxlbEluZGV4U2NhbkRlc2MgcHNjYW4p OworCQkJCQkJCQkJCQkgIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkJCQkJ ICB1aW50MzIgZmxhZ3MpOwogZXh0ZXJuIEl0ZW1Qb2ludGVyIGluZGV4X2dldG5leHRfdGlkKElu ZGV4U2NhbkRlc2Mgc2NhbiwKIAkJCQkJCQkJCSBTY2FuRGlyZWN0aW9uIGRpcmVjdGlvbik7CiBl eHRlcm4gYm9vbCBpbmRleF9mZXRjaF9oZWFwKEluZGV4U2NhbkRlc2Mgc2NhbiwgVHVwbGVUYWJs ZVNsb3QgKnNsb3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIv c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IDliNDAzMjAzMDA2Li5lMmUwNzM0OGYz NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtOTUsMTAgKzk1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSGVh cFNjYW5EZXNjRGF0YQogCSAqLwogCVBhcmFsbGVsQmxvY2tUYWJsZVNjYW5Xb3JrZXJEYXRhICpy c19wYXJhbGxlbHdvcmtlcmRhdGE7CiAKLQkvKgotCSAqIEZvciBzZXF1ZW50aWFsIHNjYW5zIGFu ZCBiaXRtYXAgaGVhcCBzY2Fucy4gVGhlIGN1cnJlbnQgaGVhcCBibG9jaydzCi0JICogY29ycmVz cG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcC4KLQkgKi8KKwkvKiBDdXJyZW50IGhl YXAgYmxvY2sncyBjb3JyZXNwb25kaW5nIHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkgbWFwICovCiAJ QnVmZmVyCQlyc192bWJ1ZmZlcjsKIAogCS8qIHRoZXNlIGZpZWxkcyBvbmx5IHVzZWQgaW4gcGFn ZS1hdC1hLXRpbWUgbW9kZSBhbmQgZm9yIGJpdG1hcCBzY2FucyAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgK aW5kZXggY2UzNDBjMDc2ZjguLjk2MGFiZjZjMjE0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvcmVsc2Nhbi5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgKQEAgLTEy Miw2ICsxMjIsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYWxsZWxCbG9ja1RhYmxlU2Nhbldvcmtl ckRhdGEgKlBhcmFsbGVsQmxvY2tUYWJsZVNjYW5Xb3JrZXI7CiB0eXBlZGVmIHN0cnVjdCBJbmRl eEZldGNoVGFibGVEYXRhCiB7CiAJUmVsYXRpb24JcmVsOworCisJLyoKKwkgKiBCaXRtYXNrIG9m IFNjYW5PcHRpb25zIGFmZmVjdGluZyB0aGUgcmVsYXRpb24uIE5vIFNPX0lOVEVSTkFMX0ZMQUdT IGFyZQorCSAqIHBlcm1pdHRlZC4KKwkgKi8KKwl1aW50MzIJCWZsYWdzOwogfSBJbmRleEZldGNo VGFibGVEYXRhOwogCiBzdHJ1Y3QgSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJs ZWFtLmgKaW5kZXggMDYwODQ3NTIyNDUuLmY4ZDE0MjNiMmQwIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvdGFibGVhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgK QEAgLTQ1LDYgKzQ1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgVmFsaWRhdGVJbmRleFN0YXRlIFZhbGlk YXRlSW5kZXhTdGF0ZTsKICAqLwogdHlwZWRlZiBlbnVtIFNjYW5PcHRpb25zCiB7CisJU09fTk9O RSA9IDAsCisKIAkvKiBvbmUgb2YgU09fVFlQRV8qIG1heSBiZSBzcGVjaWZpZWQgKi8KIAlTT19U WVBFX1NFUVNDQU4gPSAxIDw8IDAsCiAJU09fVFlQRV9CSVRNQVBTQ0FOID0gMSA8PCAxLApAQCAt NjUsNiArNjcsMTkgQEAgdHlwZWRlZiBlbnVtIFNjYW5PcHRpb25zCiAJU09fVEVNUF9TTkFQU0hP VCA9IDEgPDwgOSwKIH0JCQlTY2FuT3B0aW9uczsKIAorLyoKKyAqIE1hc2sgb2YgZmxhZ3MgdGhh dCBhcmUgc2V0IGludGVybmFsbHkgYnkgdGhlIHRhYmxlIHNjYW4gZnVuY3Rpb25zIGFuZAorICog c2hvdWxkbid0IGJlIHBhc3NlZCBieSBjYWxsZXJzLiBTb21lIG9mIHRoZXNlIGFyZSBlZmZlY3Rp dmVseSBzZXQgYnkgY2FsbGVycworICogdGhyb3VnaCBwYXJhbWV0ZXJzIHRvIHRhYmxlIHNjYW4g ZnVuY3Rpb25zIChlLmcuIFNPX0FMTE9XX1NUUkFUL2FsbG93X3N0cmF0KSwKKyAqIGhvd2V2ZXIs IGZvciBub3csIHJldGFpbiB0aWdodCBjb250cm9sIG92ZXIgdGhlbSBhbmQgZG9uJ3QgYWxsb3cg dXNlcnMgdG8KKyAqIHBhc3MgdGhlc2UgdGhlbXNlbHZlcyB0byB0YWJsZSBzY2FuIGZ1bmN0aW9u cy4KKyAqLworI2RlZmluZSBTT19JTlRFUk5BTF9GTEFHUyBcCisJKFNPX1RZUEVfU0VRU0NBTiB8 IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX1RZUEVfU0FNUExFU0NBTiB8IFwKKwkgU09fVFlQRV9U SURTQ0FOIHwgU09fVFlQRV9USURSQU5HRVNDQU4gfCBTT19UWVBFX0FOQUxZWkUgfCBcCisJIFNP X0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8IFNPX0FMTE9XX1BBR0VNT0RFIHwgXAorCSBT T19URU1QX1NOQVBTSE9UKQorCiAvKgogICogUmVzdWx0IGNvZGVzIGZvciB0YWJsZV97dXBkYXRl LGRlbGV0ZSxsb2NrX3R1cGxlfSwgYW5kIGZvciB2aXNpYmlsaXR5CiAgKiByb3V0aW5lcyBpbnNp ZGUgdGFibGUgQU1zLgpAQCAtMzIxLDggKzMzNiw5IEBAIHR5cGVkZWYgc3RydWN0IFRhYmxlQW1S b3V0aW5lCiAJICogYGZsYWdzYCBpcyBhIGJpdG1hc2sgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBz Y2FuIChTY2FuT3B0aW9ucydzCiAJICogU09fVFlQRV8qLCBjdXJyZW50bHkgb25seSBvbmUgbWF5 IGJlIHNwZWNpZmllZCksIG9wdGlvbnMgY29udHJvbGxpbmcKIAkgKiB0aGUgc2NhbidzIGJlaGF2 aW91ciAoU2Nhbk9wdGlvbnMncyBTT19BTExPV18qLCBzZXZlcmFsIG1heSBiZQotCSAqIHNwZWNp ZmllZCwgYW4gQU0gbWF5IGlnbm9yZSB1bnN1cHBvcnRlZCBvbmVzKSBhbmQgd2hldGhlciB0aGUg c25hcHNob3QKLQkgKiBuZWVkcyB0byBiZSBkZWFsbG9jYXRlZCBhdCBzY2FuX2VuZCAoU2Nhbk9w dGlvbnMncyBTT19URU1QX1NOQVBTSE9UKS4KKwkgKiBzcGVjaWZpZWQsIGFuIEFNIG1heSBpZ25v cmUgdW5zdXBwb3J0ZWQgb25lcyksIHdoZXRoZXIgdGhlIHNuYXBzaG90CisJICogbmVlZHMgdG8g YmUgZGVhbGxvY2F0ZWQgYXQgc2Nhbl9lbmQgKFNjYW5PcHRpb25zJ3MgU09fVEVNUF9TTkFQU0hP VCksCisJICogYW5kIGFueSBudW1iZXIgb2YgdGhlIG90aGVyIFNjYW5PcHRpb25zIHZhbHVlcy4K IAkgKi8KIAlUYWJsZVNjYW5EZXNjICgqc2Nhbl9iZWdpbikgKFJlbGF0aW9uIHJlbCwKIAkJCQkJ CQkJIFNuYXBzaG90IHNuYXBzaG90LApAQCAtNDE4LDkgKzQzNCwxMiBAQCB0eXBlZGVmIHN0cnVj dCBUYWJsZUFtUm91dGluZQogCSAqIEluZGV4RmV0Y2hUYWJsZURhdGEsIHdoaWNoIHRoZSBBTSB3 aWxsIHR5cGljYWxseSBlbWJlZCBpbiBhIGxhcmdlcgogCSAqIHN0cnVjdHVyZSB3aXRoIGFkZGl0 aW9uYWwgaW5mb3JtYXRpb24uCiAJICoKKwkgKiBmbGFncyBpcyBhIGJpdG1hc2sgb2YgU2Nhbk9w dGlvbnMgYWZmZWN0aW5nIHVuZGVybHlpbmcgdGFibGUgc2NhbgorCSAqIGJlaGF2aW9yLiBTZWUg c2Nhbl9iZWdpbigpIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHBhc3NpbmcgdGhlc2UuCisJICoK IAkgKiBUdXBsZXMgZm9yIGFuIGluZGV4IHNjYW4gY2FuIHRoZW4gYmUgZmV0Y2hlZCB2aWEgaW5k ZXhfZmV0Y2hfdHVwbGUuCiAJICovCi0Jc3RydWN0IEluZGV4RmV0Y2hUYWJsZURhdGEgKigqaW5k ZXhfZmV0Y2hfYmVnaW4pIChSZWxhdGlvbiByZWwpOworCXN0cnVjdCBJbmRleEZldGNoVGFibGVE YXRhICooKmluZGV4X2ZldGNoX2JlZ2luKSAoUmVsYXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpOwog CiAJLyoKIAkgKiBSZXNldCBpbmRleCBmZXRjaC4gVHlwaWNhbGx5IHRoaXMgd2lsbCByZWxlYXNl IGNyb3NzIGluZGV4IGZldGNoCkBAIC04NzEsMTIgKzg5MCwxOSBAQCBleHRlcm4gVHVwbGVUYWJs ZVNsb3QgKnRhYmxlX3Nsb3RfY3JlYXRlKFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICoqcmVnbGlz dCk7CiAgKiBBIHdyYXBwZXIgYXJvdW5kIHRoZSBUYWJsZSBBY2Nlc3MgTWV0aG9kIHNjYW5fYmVn aW4gY2FsbGJhY2ssIHRvIGNlbnRyYWxpemUKICAqIGVycm9yIGNoZWNraW5nLiBBbGwgY2FsbHMg dG8gLT5zY2FuX2JlZ2luKCkgc2hvdWxkIGdvIHRocm91Z2ggdGhpcwogICogZnVuY3Rpb24uCisg KgorICogVGhlIGNhbGxlci1wcm92aWRlZCB1c2VyX2ZsYWdzIGFyZSB2YWxpZGF0ZWQgYWdhaW5z dCBTT19JTlRFUk5BTF9GTEFHUyB0bworICogY2F0Y2ggY2FsbGVycyB0aGF0IGFjY2lkZW50YWxs eSBwYXNzIHNjYW4tdHlwZSBvciBvdGhlciBpbnRlcm5hbCBmbGFncy4KICAqLwogc3RhdGljIFRh YmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24oUmVsYXRpb24gcmVsLCBTbmFwc2hv dCBzbmFwc2hvdCwgaW50IG5rZXlzLAogCQkJCQkgICBTY2FuS2V5RGF0YSAqa2V5LCBQYXJhbGxl bFRhYmxlU2NhbkRlc2MgcHNjYW4sCi0JCQkJCSAgIHVpbnQzMiBmbGFncykKKwkJCQkJICAgdWlu dDMyIGZsYWdzLCB1aW50MzIgdXNlcl9mbGFncykKIHsKKwlBc3NlcnQoKHVzZXJfZmxhZ3MgJiBT T19JTlRFUk5BTF9GTEFHUykgPT0gMCk7CisJQXNzZXJ0KChmbGFncyAmIH5TT19JTlRFUk5BTF9G TEFHUykgPT0gMCk7CisJZmxhZ3MgfD0gdXNlcl9mbGFnczsKKwogCS8qCiAJICogV2UgZG9uJ3Qg YWxsb3cgc2NhbnMgdG8gYmUgc3RhcnRlZCB3aGlsZSBDaGVja1hpZEFsaXZlIGlzIHNldCwgZXhj ZXB0CiAJICogdmlhIHN5c3RhYmxlX2JlZ2luc2NhbigpIGV0IGFsLiAgU2VlIGRldGFpbGVkIGNv bW1lbnRzIGluIHhhY3QuYyB3aGVyZQpAQCAtODkxLDE1ICs5MTcsMTggQEAgdGFibGVfYmVnaW5z Y2FuX2NvbW1vbihSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LCBpbnQgbmtleXMsCiAv KgogICogU3RhcnQgYSBzY2FuIG9mIGByZWxgLiBSZXR1cm5lZCB0dXBsZXMgcGFzcyBhIHZpc2li aWxpdHkgdGVzdCBvZgogICogYHNuYXBzaG90YCwgYW5kIGlmIG5rZXlzICE9IDAsIHRoZSByZXN1 bHRzIGFyZSBmaWx0ZXJlZCBieSB0aG9zZSBzY2FuIGtleXMuCisgKgorICogZmxhZ3MgaXMgYSBi aXRtYXNrIG9mIFNjYW5PcHRpb25zLiBObyBTT19JTlRFUk5BTF9GTEFHUyBhcmUgcGVybWl0dGVk LgogICovCiBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2NhbihSZWxh dGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAotCQkJCWludCBua2V5cywgU2NhbktleURhdGEg KmtleSkKKwkJCQlpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXksIHVpbnQzMiBmbGFncykKIHsK LQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9TRVFTQ0FOIHwKKwl1aW50MzIJCWludGVybmFsX2Zs YWdzID0gU09fVFlQRV9TRVFTQ0FOIHwKIAkJU09fQUxMT1dfU1RSQVQgfCBTT19BTExPV19TWU5D IHwgU09fQUxMT1dfUEFHRU1PREU7CiAKLQlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihy ZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBmbGFncyk7CisJcmV0dXJuIHRhYmxlX2Jl Z2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMsIGtleSwgTlVMTCwKKwkJCQkJCQkJ ICBpbnRlcm5hbF9mbGFncywgZmxhZ3MpOwogfQogCiAvKgpAQCAtOTI4LDcgKzk1Nyw4IEBAIHRh YmxlX2JlZ2luc2Nhbl9zdHJhdChSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAogCWlm IChhbGxvd19zeW5jKQogCQlmbGFncyB8PSBTT19BTExPV19TWU5DOwogCi0JcmV0dXJuIHRhYmxl X2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMsIGtleSwgTlVMTCwgZmxhZ3Mp OworCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIG5rZXlzLCBr ZXksIE5VTEwsCisJCQkJCQkJCSAgZmxhZ3MsIFNPX05PTkUpOwogfQogCiAvKgpAQCAtOTM2LDE0 ICs5NjYsMTcgQEAgdGFibGVfYmVnaW5zY2FuX3N0cmF0KFJlbGF0aW9uIHJlbCwgU25hcHNob3Qg c25hcHNob3QsCiAgKiBUYWJsZVNjYW5EZXNjIGZvciBhIGJpdG1hcCBoZWFwIHNjYW4uICBBbHRo b3VnaCB0aGF0IHNjYW4gdGVjaG5vbG9neSBpcwogICogcmVhbGx5IHF1aXRlIHVubGlrZSBhIHN0 YW5kYXJkIHNlcXNjYW4sIHRoZXJlIGlzIGp1c3QgZW5vdWdoIGNvbW1vbmFsaXR5IHRvCiAgKiBt YWtlIGl0IHdvcnRoIHVzaW5nIHRoZSBzYW1lIGRhdGEgc3RydWN0dXJlLgorICoKKyAqIGZsYWdz IGlzIGEgYml0bWFzayBvZiBTY2FuT3B0aW9ucy4gTm8gU09fSU5URVJOQUxfRkxBR1MgYXJlIHBl cm1pdHRlZC4KICAqLwogc3RhdGljIGlubGluZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdpbnNj YW5fYm0oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKLQkJCQkgICBpbnQgbmtleXMs IFNjYW5LZXlEYXRhICprZXkpCisJCQkJICAgaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5LCB1 aW50MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNP X0FMTE9XX1BBR0VNT0RFOworCXVpbnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19UWVBFX0JJVE1B UFNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIAotCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29t bW9uKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKKwlyZXR1cm4gdGFi bGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLAorCQkJ CQkJCQkgIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiB9CiAKIC8qCkBAIC05NTIsMjMgKzk4NSwy NiBAQCB0YWJsZV9iZWdpbnNjYW5fYm0oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwK ICAqIHVzaW5nIHRoZSBzYW1lIGRhdGEgc3RydWN0dXJlIGFsdGhvdWdoIHRoZSBiZWhhdmlvciBp cyByYXRoZXIgZGlmZmVyZW50LgogICogSW4gYWRkaXRpb24gdG8gdGhlIG9wdGlvbnMgb2ZmZXJl ZCBieSB0YWJsZV9iZWdpbnNjYW5fc3RyYXQsIHRoaXMgY2FsbAogICogYWxzbyBhbGxvd3MgY29u dHJvbCBvZiB3aGV0aGVyIHBhZ2UtbW9kZSB2aXNpYmlsaXR5IGNoZWNraW5nIGlzIHVzZWQuCisg KgorICogZmxhZ3MgaXMgYSBiaXRtYXNrIG9mIFNjYW5PcHRpb25zLiBObyBTT19JTlRFUk5BTF9G TEFHUyBhcmUgcGVybWl0dGVkLgogICovCiBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MKIHRh YmxlX2JlZ2luc2Nhbl9zYW1wbGluZyhSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAog CQkJCQkJIGludCBua2V5cywgU2NhbktleURhdGEgKmtleSwKIAkJCQkJCSBib29sIGFsbG93X3N0 cmF0LCBib29sIGFsbG93X3N5bmMsCi0JCQkJCQkgYm9vbCBhbGxvd19wYWdlbW9kZSkKKwkJCQkJ CSBib29sIGFsbG93X3BhZ2Vtb2RlLCB1aW50MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9 IFNPX1RZUEVfU0FNUExFU0NBTjsKKwl1aW50MzIJCWludGVybmFsX2ZsYWdzID0gU09fVFlQRV9T QU1QTEVTQ0FOOwogCiAJaWYgKGFsbG93X3N0cmF0KQotCQlmbGFncyB8PSBTT19BTExPV19TVFJB VDsKKwkJaW50ZXJuYWxfZmxhZ3MgfD0gU09fQUxMT1dfU1RSQVQ7CiAJaWYgKGFsbG93X3N5bmMp Ci0JCWZsYWdzIHw9IFNPX0FMTE9XX1NZTkM7CisJCWludGVybmFsX2ZsYWdzIHw9IFNPX0FMTE9X X1NZTkM7CiAJaWYgKGFsbG93X3BhZ2Vtb2RlKQotCQlmbGFncyB8PSBTT19BTExPV19QQUdFTU9E RTsKKwkJaW50ZXJuYWxfZmxhZ3MgfD0gU09fQUxMT1dfUEFHRU1PREU7CiAKLQlyZXR1cm4gdGFi bGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBmbGFn cyk7CisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMs IGtleSwgTlVMTCwKKwkJCQkJCQkJICBpbnRlcm5hbF9mbGFncywgZmxhZ3MpOwogfQogCiAvKgpA QCAtOTgxLDcgKzEwMTcsOCBAQCB0YWJsZV9iZWdpbnNjYW5fdGlkKFJlbGF0aW9uIHJlbCwgU25h cHNob3Qgc25hcHNob3QpCiB7CiAJdWludDMyCQlmbGFncyA9IFNPX1RZUEVfVElEU0NBTjsKIAot CXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIE5V TEwsIGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90 LCAwLCBOVUxMLCBOVUxMLAorCQkJCQkJCQkgIGZsYWdzLCBTT19OT05FKTsKIH0KIAogLyoKQEAg LTk5NCw3ICsxMDMxLDggQEAgdGFibGVfYmVnaW5zY2FuX2FuYWx5emUoUmVsYXRpb24gcmVsKQog ewogCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX0FOQUxZWkU7CiAKLQlyZXR1cm4gdGFibGVfYmVn aW5zY2FuX2NvbW1vbihyZWwsIE5VTEwsIDAsIE5VTEwsIE5VTEwsIGZsYWdzKTsKKwlyZXR1cm4g dGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIE5VTEwsIDAsIE5VTEwsIE5VTEwsCisJCQkJCQkJ CSAgZmxhZ3MsIFNPX05PTkUpOwogfQogCiAvKgpAQCAtMTA1NSwxNiArMTA5MywxOSBAQCB0YWJs ZV9zY2FuX2dldG5leHRzbG90KFRhYmxlU2NhbkRlc2Mgc3NjYW4sIFNjYW5EaXJlY3Rpb24gZGly ZWN0aW9uLCBUdXBsZVRhYmxlUwogLyoKICAqIHRhYmxlX2JlZ2luc2Nhbl90aWRyYW5nZSBpcyB0 aGUgZW50cnkgcG9pbnQgZm9yIHNldHRpbmcgdXAgYSBUYWJsZVNjYW5EZXNjCiAgKiBmb3IgYSBU SUQgcmFuZ2Ugc2Nhbi4KKyAqCisgKiBmbGFncyBpcyBhIGJpdG1hc2sgb2YgU2Nhbk9wdGlvbnMu IE5vIFNPX0lOVEVSTkFMX0ZMQUdTIGFyZSBwZXJtaXR0ZWQuCiAgKi8KIHN0YXRpYyBpbmxpbmUg VGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5zY2FuX3RpZHJhbmdlKFJlbGF0aW9uIHJlbCwgU25h cHNob3Qgc25hcHNob3QsCiAJCQkJCQkgSXRlbVBvaW50ZXIgbWludGlkLAotCQkJCQkJIEl0ZW1Q b2ludGVyIG1heHRpZCkKKwkJCQkJCSBJdGVtUG9pbnRlciBtYXh0aWQsIHVpbnQzMiBmbGFncykK IHsKIAlUYWJsZVNjYW5EZXNjIHNzY2FuOwotCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1RJRFJB TkdFU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOworCXVpbnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBT T19UWVBFX1RJRFJBTkdFU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOwogCi0Jc3NjYW4gPSB0YWJs ZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIE5VTEwsIGZsYWdzKTsK Kwlzc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwg TlVMTCwKKwkJCQkJCQkJICAgaW50ZXJuYWxfZmxhZ3MsIGZsYWdzKTsKIAogCS8qIFNldCB0aGUg cmFuZ2Ugb2YgVElEcyB0byBzY2FuICovCiAJc3NjYW4tPnJzX3JkLT5yZF90YWJsZWFtLT5zY2Fu X3NldF90aWRyYW5nZShzc2NhbiwgbWludGlkLCBtYXh0aWQpOwpAQCAtMTEzNiwyMCArMTE3Nywy NiBAQCBleHRlcm4gdm9pZCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShSZWxhdGlvbiBy ZWwsCiAgKiB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZSgpLCBmb3IgdGhlIHNhbWUgcmVs YXRpb24uIFRoZSBpbml0aWFsaXphdGlvbgogICogZG9lcyBub3QgbmVlZCB0byBoYXZlIGhhcHBl bmVkIGluIHRoaXMgYmFja2VuZC4KICAqCisgKiBmbGFncyBpcyBhIGJpdG1hc2sgb2YgU2Nhbk9w dGlvbnMuIE5vIFNPX0lOVEVSTkFMX0ZMQUdTIGFyZSBwZXJtaXR0ZWQuCisgKgogICogQ2FsbGVy IG11c3QgaG9sZCBhIHN1aXRhYmxlIGxvY2sgb24gdGhlIHJlbGF0aW9uLgogICovCiBleHRlcm4g VGFibGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24s Ci0JCQkJCQkJCQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKTsKKwkJCQkJCQkJCQkJ ICBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJCQkJCSAgdWludDMyIGZsYWdz KTsKIAogLyoKICAqIEJlZ2luIGEgcGFyYWxsZWwgdGlkIHJhbmdlIHNjYW4uIGBwc2NhbmAgbmVl ZHMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkCiAgKiB3aXRoIHRhYmxlX3BhcmFsbGVsc2Nhbl9p bml0aWFsaXplKCksIGZvciB0aGUgc2FtZSByZWxhdGlvbi4gVGhlCiAgKiBpbml0aWFsaXphdGlv biBkb2VzIG5vdCBuZWVkIHRvIGhhdmUgaGFwcGVuZWQgaW4gdGhpcyBiYWNrZW5kLgogICoKKyAq IGZsYWdzIGlzIGEgYml0bWFzayBvZiBTY2FuT3B0aW9ucy4gTm8gU09fSU5URVJOQUxfRkxBR1Mg YXJlIHBlcm1pdHRlZC4KKyAqCiAgKiBDYWxsZXIgbXVzdCBob2xkIGEgc3VpdGFibGUgbG9jayBv biB0aGUgcmVsYXRpb24uCiAgKi8KIGV4dGVybiBUYWJsZVNjYW5EZXNjIHRhYmxlX2JlZ2luc2Nh bl9wYXJhbGxlbF90aWRyYW5nZShSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkJCQkgICBQ YXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pOworCQkJCQkJCQkJCQkJCSAgIFBhcmFsbGVsVGFi bGVTY2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkJCQkJCQkgICB1aW50MzIgZmxhZ3MpOwogCiAvKgog ICogUmVzdGFydCBhIHBhcmFsbGVsIHNjYW4uICBDYWxsIHRoaXMgaW4gdGhlIGxlYWRlciBwcm9j ZXNzLiAgQ2FsbGVyIGlzCkBAIC0xMTcyLDExICsxMjE5LDE1IEBAIHRhYmxlX3BhcmFsbGVsc2Nh bl9yZWluaXRpYWxpemUoUmVsYXRpb24gcmVsLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4p CiAgKiBQcmVwYXJlIHRvIGZldGNoIHR1cGxlcyBmcm9tIHRoZSByZWxhdGlvbiwgYXMgbmVlZGVk IHdoZW4gZmV0Y2hpbmcgdHVwbGVzCiAgKiBmb3IgYW4gaW5kZXggc2Nhbi4KICAqCisgKiBmbGFn cyBpcyBhIGJpdG1hc2sgb2YgU2Nhbk9wdGlvbnMuIE5vIFNPX0lOVEVSTkFMX0ZMQUdTIGFyZSBw ZXJtaXR0ZWQuCisgKgogICogVHVwbGVzIGZvciBhbiBpbmRleCBzY2FuIGNhbiB0aGVuIGJlIGZl dGNoZWQgdmlhIHRhYmxlX2luZGV4X2ZldGNoX3R1cGxlKCkuCiAgKi8KIHN0YXRpYyBpbmxpbmUg SW5kZXhGZXRjaFRhYmxlRGF0YSAqCi10YWJsZV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiBy ZWwpCit0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwsIHVpbnQzMiBmbGFncykK IHsKKwlBc3NlcnQoKGZsYWdzICYgU09fSU5URVJOQUxfRkxBR1MpID09IDApOworCiAJLyoKIAkg KiBXZSBkb24ndCBhbGxvdyBzY2FucyB0byBiZSBzdGFydGVkIHdoaWxlIENoZWNrWGlkQWxpdmUg aXMgc2V0LCBleGNlcHQKIAkgKiB2aWEgc3lzdGFibGVfYmVnaW5zY2FuKCkgZXQgYWwuICBTZWUg ZGV0YWlsZWQgY29tbWVudHMgaW4geGFjdC5jIHdoZXJlCkBAIC0xMTg1LDcgKzEyMzYsNyBAQCB0 YWJsZV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCiAJaWYgKHVubGlrZWx5KFRyYW5z YWN0aW9uSWRJc1ZhbGlkKENoZWNrWGlkQWxpdmUpICYmICFic3lzc2NhbikpCiAJCWVsb2coRVJS T1IsICJzY2FuIHN0YXJ0ZWQgZHVyaW5nIGxvZ2ljYWwgZGVjb2RpbmciKTsKIAotCXJldHVybiBy ZWwtPnJkX3RhYmxlYW0tPmluZGV4X2ZldGNoX2JlZ2luKHJlbCk7CisJcmV0dXJuIHJlbC0+cmRf dGFibGVhbS0+aW5kZXhfZmV0Y2hfYmVnaW4ocmVsLCBmbGFncyk7CiB9CiAKIC8qCi0tIAoyLjQz LjAKCg== --00000000000072ac33064e2ce6da Content-Type: text/x-patch; charset="US-ASCII"; name="v48-0004-Pass-down-information-on-table-modification-to-s.patch" Content-Disposition: attachment; filename="v48-0004-Pass-down-information-on-table-modification-to-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnc0siki3 RnJvbSAyMzllYzI3NmU1YmVlMGY1OWFlMGE5MWQwYmQ5ZWZmODg0MmM4YTYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MzMgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0OCA0LzZdIFBhc3MgZG93biBpbmZvcm1hdGlvbiBvbiB0YWJsZSBtb2RpZmljYXRpb24g dG8gc2Nhbgogbm9kZQoKUGFzcyBkb3duIGluZm9ybWF0aW9uIHRvIHNlcXVlbnRpYWwgc2Nhbiwg aW5kZXggW29ubHldIHNjYW4sIGJpdG1hcAp0YWJsZSBzY2FuLCBzYW1wbGUgc2NhbiwgYW5kIFRJ RCByYW5nZSBzY2FuIG5vZGVzIG9uIHdoZXRoZXIgb3Igbm90IHRoZQpxdWVyeSBtb2RpZmllcyB0 aGUgcmVsYXRpb24gYmVpbmcgc2Nhbm5lZC4gQSBsYXRlciBjb21taXQgd2lsbCB1c2UgdGhpcwpp bmZvcm1hdGlvbiB0byB1cGRhdGUgdGhlIFZNIGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyBvbmx5 IGlmIHRoZQpyZWxhdGlvbiBpcyBub3QgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5LgoKQXV0aG9yOiBN ZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTog QW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQW5kcmV5IEJv cm9kaW4gPHg0bW1tQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogVG9tYXMgVm9uZHJhIDx0 b21hc0B2b25kcmEubWU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwu Y29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzQzNzlGREEzLTk0NDYtNEUyQy05 QzE1LTMyRUZFOEQ0RjMxQiU0MHlhbmRleC10ZWFtLnJ1Ci0tLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY1V0aWxzLmMgICAgICAgICAgfCAyMSArKysrKysrKysrKysrKysrKysrKysKIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIHwgIDMgKystCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jICB8ICA5ICsrKysrKy0tLQogc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jICAgICAgfCAxMiArKysrKysrKy0tLS0KIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMgICAgIHwgIDMgKystCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jICAgICAgICB8IDEwICsrKysrKystLS0KIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYyAgIHwgMTEgKysrKysrKystLS0KIHNyYy9p bmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgIHwgIDMgKysrCiBzcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oICAgICAgICAgICB8ICAyICsrCiA5IGZpbGVzIGNoYW5nZWQs IDU5IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxz LmMKaW5kZXggMzZjNTI4NWQyNTIuLmYwOTBkZTQ5OTIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjVXRpbHMuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRp bHMuYwpAQCAtNzM2LDYgKzczNiwyNyBAQCBFeGVjUmVsYXRpb25Jc1RhcmdldFJlbGF0aW9uKEVT dGF0ZSAqZXN0YXRlLCBJbmRleCBzY2FucmVsaWQpCiAJcmV0dXJuIGJtc19pc19tZW1iZXIoc2Nh bnJlbGlkLCBlc3RhdGUtPmVzX3BsYW5uZWRzdG10LT5yZXN1bHRSZWxhdGlvblJlbGlkcyk7CiB9 CiAKKy8qCisgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc2NhbiBub2RlJ3MgcmVsYXRpb24gaXMgbm90 IG1vZGlmaWVkIGJ5IHRoZSBxdWVyeS4KKyAqCisgKiBUaGlzIGlzIG5vdCBwZXJmZWN0bHkgYWNj dXJhdGUuIElOU0VSVCAuLi4gU0VMRUNUIGZyb20gdGhlIHNhbWUgdGFibGUgZG9lcworICogbm90 IGFkZCB0aGUgc2NhbiByZWxhdGlvbiB0byByZXN1bHRSZWxhdGlvblJlbGlkcywgc28gaXQgd2ls bCBiZSByZXBvcnRlZAorICogYXMgcmVhZC1vbmx5IGV2ZW4gdGhvdWdoIHRoZSBxdWVyeSBtb2Rp ZmllcyBpdC4KKyAqCisgKiBDb252ZXJzZWx5LCB3aGVuIGFueSByZWxhdGlvbiBpbiB0aGUgcXVl cnkgaGFzIGEgbW9kaWZ5aW5nIHJvdyBtYXJrLCBhbGwKKyAqIG90aGVyIHJlbGF0aW9ucyBnZXQg YSBST1dfTUFSS19SRUZFUkVOQ0UsIGNhdXNpbmcgdGhlbSB0byBiZSByZXBvcnRlZCBhcworICog bm90IHJlYWQtb25seSBldmVuIHRob3VnaCB0aGV5IG1heSBvbmx5IGJlIHJlYWQuCisgKi8KK2Jv b2wKK1NjYW5SZWxJc1JlYWRPbmx5KFNjYW5TdGF0ZSAqc3MpCit7CisJSW5kZXgJCXNjYW5yZWxp ZCA9ICgoU2NhbiAqKSBzcy0+cHMucGxhbiktPnNjYW5yZWxpZDsKKwlQbGFubmVkU3RtdCAqcHN0 bXQgPSBzcy0+cHMuc3RhdGUtPmVzX3BsYW5uZWRzdG10OworCisJcmV0dXJuICFibXNfaXNfbWVt YmVyKHNjYW5yZWxpZCwgcHN0bXQtPnJlc3VsdFJlbGF0aW9uUmVsaWRzKSAmJgorCQkhYm1zX2lz X21lbWJlcihzY2FucmVsaWQsIHBzdG10LT5yb3dNYXJrUmVsaWRzKTsKK30KKwogLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICoJCUV4ZWNPcGVuU2NhblJlbGF0aW9uCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl Qml0bWFwSGVhcHNjYW4uYwppbmRleCA2OTY4M2Q4MTUyNy4uNzM4MzFhZWQ0NTEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCkBAIC0xNDksNyArMTQ5LDggQEAg Qml0bWFwVGFibGVTY2FuU2V0dXAoQml0bWFwSGVhcFNjYW5TdGF0ZSAqbm9kZSkKIAkJCQkJCQkg ICBub2RlLT5zcy5wcy5zdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJICAgMCwKIAkJCQkJCQkg ICBOVUxMLAotCQkJCQkJCSAgIFNPX05PTkUpOworCQkJCQkJCSAgIFNjYW5SZWxJc1JlYWRPbmx5 KCZub2RlLT5zcykgPworCQkJCQkJCSAgIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUp OwogCX0KIAogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYy0+c3QucnNfdGJtaXRlcmF0b3Ig PSB0Ym1pdGVyYXRvcjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRl eG9ubHlzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCmlu ZGV4IDAyZGY0MGYzMmM1Li5kZTYxNTRmZDU0MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl SW5kZXhvbmx5c2Nhbi5jCkBAIC05Niw3ICs5Niw4IEBAIEluZGV4T25seU5leHQoSW5kZXhPbmx5 U2NhblN0YXRlICpub2RlKQogCQkJCQkJCQkgICBub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJ CQkJCSAgIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVt T3JkZXJCeUtleXMsCi0JCQkJCQkJCSAgIFNPX05PTkUpOworCQkJCQkJCQkgICBTY2FuUmVsSXNS ZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJICAgU09fSElOVF9SRUxfUkVBRF9PTkxZIDog U09fTk9ORSk7CiAKIAkJbm9kZS0+aW9zc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCkBAIC03OTYs NyArNzk3LDggQEAgRXhlY0luZGV4T25seVNjYW5Jbml0aWFsaXplRFNNKEluZGV4T25seVNjYW5T dGF0ZSAqbm9kZSwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBu b2RlLT5pb3NzX051bU9yZGVyQnlLZXlzLAogCQkJCQkJCQkgcGlzY2FuLAotCQkJCQkJCQkgU09f Tk9ORSk7CisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJ IFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUpOwogCW5vZGUtPmlvc3NfU2NhbkRlc2Mt PnhzX3dhbnRfaXR1cCA9IHRydWU7CiAJbm9kZS0+aW9zc19WTUJ1ZmZlciA9IEludmFsaWRCdWZm ZXI7CiAKQEAgLTg2Myw3ICs4NjUsOCBAQCBFeGVjSW5kZXhPbmx5U2NhbkluaXRpYWxpemVXb3Jr ZXIoSW5kZXhPbmx5U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1TY2Fu S2V5cywKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMsCiAJCQkJCQkJCSBwaXNj YW4sCi0JCQkJCQkJCSBTT19OT05FKTsKKwkJCQkJCQkJIFNjYW5SZWxJc1JlYWRPbmx5KCZub2Rl LT5zcykgPworCQkJCQkJCQkgU09fSElOVF9SRUxfUkVBRF9PTkxZIDogU09fTk9ORSk7CiAJbm9k ZS0+aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAogCS8qCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlSW5kZXhzY2FuLmMKaW5kZXggM2MwYjhkYWY2NjQuLjE2MjBkMTQ2MDcxIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC0xMTQsNyArMTE0LDggQEAgSW5kZXhO ZXh0KEluZGV4U2NhblN0YXRlICpub2RlKQogCQkJCQkJCQkgICBub2RlLT5pc3NfSW5zdHJ1bWVu dCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgICBub2RlLT5p c3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSAgIFNPX05PTkUpOworCQkJCQkJCQkgICBTY2Fu UmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJICAgU09fSElOVF9SRUxfUkVBRF9P TkxZIDogU09fTk9ORSk7CiAKIAkJbm9kZS0+aXNzX1NjYW5EZXNjID0gc2NhbmRlc2M7CiAKQEAg LTIxMSw3ICsyMTIsOCBAQCBJbmRleE5leHRXaXRoUmVvcmRlcihJbmRleFNjYW5TdGF0ZSAqbm9k ZSkKIAkJCQkJCQkJICAgbm9kZS0+aXNzX0luc3RydW1lbnQsCiAJCQkJCQkJCSAgIG5vZGUtPmlz c19OdW1TY2FuS2V5cywKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bU9yZGVyQnlLZXlzLAotCQkJ CQkJCQkgICBTT19OT05FKTsKKwkJCQkJCQkJICAgU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNz KSA/CisJCQkJCQkJCSAgIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUpOwogCiAJCW5v ZGUtPmlzc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCkBAIC0xNzMzLDcgKzE3MzUsOCBAQCBFeGVj SW5kZXhTY2FuSW5pdGlhbGl6ZURTTShJbmRleFNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJIG5v ZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywK IAkJCQkJCQkJIHBpc2NhbiwKLQkJCQkJCQkJIFNPX05PTkUpOworCQkJCQkJCQkgU2NhblJlbElz UmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSBTT19ISU5UX1JFTF9SRUFEX09OTFkgOiBT T19OT05FKTsKIAogCS8qCiAJICogSWYgbm8gcnVuLXRpbWUga2V5cyB0byBjYWxjdWxhdGUgb3Ig dGhleSBhcmUgcmVhZHksIGdvIGFoZWFkIGFuZCBwYXNzCkBAIC0xNzk4LDcgKzE4MDEsOCBAQCBF eGVjSW5kZXhTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleFNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJ CQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5 S2V5cywKIAkJCQkJCQkJIHBpc2NhbiwKLQkJCQkJCQkJIFNPX05PTkUpOworCQkJCQkJCQkgU2Nh blJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSBTT19ISU5UX1JFTF9SRUFEX09O TFkgOiBTT19OT05FKTsKIAogCS8qCiAJICogSWYgbm8gcnVuLXRpbWUga2V5cyB0byBjYWxjdWxh dGUgb3IgdGhleSBhcmUgcmVhZHksIGdvIGFoZWFkIGFuZCBwYXNzCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVNhbXBsZXNjYW4uYwppbmRleCBjZjMyZGYzM2Q4Mi4uZjNkMjczZTFjNWUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYwpAQCAtMjk5LDcgKzI5OSw4IEBAIHRhYmxlc2Ft cGxlX2luaXQoU2FtcGxlU2NhblN0YXRlICpzY2Fuc3RhdGUpCiAJCQkJCQkJCQkgc2NhbnN0YXRl LT51c2VfYnVsa3JlYWQsCiAJCQkJCQkJCQkgYWxsb3dfc3luYywKIAkJCQkJCQkJCSBzY2Fuc3Rh dGUtPnVzZV9wYWdlbW9kZSwKLQkJCQkJCQkJCSBTT19OT05FKTsKKwkJCQkJCQkJCSBTY2FuUmVs SXNSZWFkT25seSgmc2NhbnN0YXRlLT5zcykgPworCQkJCQkJCQkJIFNPX0hJTlRfUkVMX1JFQURf T05MWSA6IFNPX05PTkUpOwogCX0KIAllbHNlCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2Fu LmMKaW5kZXggMDljY2M2NWRlMWMuLjA0ODAzYjBlMzdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVT ZXFzY2FuLmMKQEAgLTcyLDcgKzcyLDggQEAgU2VxTmV4dChTZXFTY2FuU3RhdGUgKm5vZGUpCiAJ CXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwK IAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJICAgMCwgTlVMTCwKLQkJ CQkJCQkJICAgU09fTk9ORSk7CisJCQkJCQkJCSAgIFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5z cykgPworCQkJCQkJCQkgICBTT19ISU5UX1JFTF9SRUFEX09OTFkgOiBTT19OT05FKTsKIAkJbm9k ZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0gc2NhbmRlc2M7CiAJfQogCkBAIC0zNzUsOSArMzc2 LDExIEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShTZXFTY2FuU3RhdGUgKm5vZGUsCiAJCQkJ CQkJCSAgcHNjYW4sCiAJCQkJCQkJCSAgZXN0YXRlLT5lc19zbmFwc2hvdCk7CiAJc2htX3RvY19p bnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIHBzY2FuKTsK KwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJh bGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLAotCQkJCQkJCQkgU09fTk9O RSk7CisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJIFNP X0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MTEs NSArNDE0LDYgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplV29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9k ZSwKIAlwc2NhbiA9IHNobV90b2NfbG9va3VwKHB3Y3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4t PnBsYW5fbm9kZV9pZCwgZmFsc2UpOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJ CXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBz Y2FuLAotCQkJCQkJCQkgU09fTk9ORSk7CisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9k ZS0+c3MpID8KKwkJCQkJCQkJIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCmluZGV4IDA4NGU0YzZlYzkwLi40 YThmZTkxYjJiMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdl c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYwpAQCAt MjQ2LDcgKzI0Niw4IEBAIFRpZFJhbmdlTmV4dChUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSkKIAkJ CQkJCQkJCQkJCWVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19t aW50aWQsCiAJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19tYXh0aWQsCi0JCQkJCQkJCQkJCQlTT19O T05FKTsKKwkJCQkJCQkJCQkJCVNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJCQkJ CQkJCQkJU09fSElOVF9SRUxfUkVBRF9PTkxZIDogU09fTk9ORSk7CiAJCQlub2RlLT5zcy5zc19j dXJyZW50U2NhbkRlc2MgPSBzY2FuZGVzYzsKIAkJfQogCQllbHNlCkBAIC00NjEsNyArNDYyLDkg QEAgRXhlY1RpZFJhbmdlU2NhbkluaXRpYWxpemVEU00oVGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUs IFBhcmFsbGVsQ29udGV4dCAqcGN4dCkKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIG5vZGUt PnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgcHNjYW4pOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRT Y2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShub2RlLT5zcy5z c19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCQkJICBwc2NhbiwgU09fTk9ORSk7CisJCQkJCQkJ CQkJICBwc2NhbiwKKwkJCQkJCQkJCQkgIFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPwor CQkJCQkJCQkJCSAgU09fSElOVF9SRUxfUkVBRF9PTkxZIDogU09fTk9ORSk7CiB9CiAKIC8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KQEAgLTQ5NSw1ICs0OTgsNyBAQCBFeGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6ZVdvcmtl cihUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwKIAlwc2NhbiA9IHNobV90b2NfbG9va3VwKHB3Y3h0 LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFsc2UpOwogCW5vZGUtPnNz LnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5n ZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCQkJICBwc2NhbiwgU09fTk9O RSk7CisJCQkJCQkJCQkJICBwc2NhbiwKKwkJCQkJCQkJCQkgIFNjYW5SZWxJc1JlYWRPbmx5KCZu b2RlLT5zcykgPworCQkJCQkJCQkJCSAgU09fSElOVF9SRUxfUkVBRF9PTkxZIDogU09fTk9ORSk7 CiB9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCBmOGQxNDIzYjJkMC4uNjhkZGFiYzE3MWEgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL3RhYmxlYW0uaApAQCAtNjUsNiArNjUsOSBAQCB0eXBlZGVmIGVudW0gU2Nhbk9wdGlvbnMK IAogCS8qIHVucmVnaXN0ZXIgc25hcHNob3QgYXQgc2NhbiBlbmQ/ICovCiAJU09fVEVNUF9TTkFQ U0hPVCA9IDEgPDwgOSwKKworCS8qIHNldCBpZiB0aGUgcXVlcnkgZG9lc24ndCBtb2RpZnkgdGhl IHJlbGF0aW9uICovCisJU09fSElOVF9SRUxfUkVBRF9PTkxZID0gMSA8PCAxMCwKIH0JCQlTY2Fu T3B0aW9uczsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9y LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCmluZGV4IDA3ZjRiMWY3NDkwLi43 OTc5YTE3ZTRlYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAor KysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCkBAIC02OTAsNiArNjkwLDggQEAg ZXh0ZXJuIHZvaWQgRXhlY0NyZWF0ZVNjYW5TbG90RnJvbU91dGVyUGxhbihFU3RhdGUgKmVzdGF0 ZSwKIAogZXh0ZXJuIGJvb2wgRXhlY1JlbGF0aW9uSXNUYXJnZXRSZWxhdGlvbihFU3RhdGUgKmVz dGF0ZSwgSW5kZXggc2NhbnJlbGlkKTsKIAorZXh0ZXJuIGJvb2wgU2NhblJlbElzUmVhZE9ubHko U2NhblN0YXRlICpzcyk7CisKIGV4dGVybiBSZWxhdGlvbiBFeGVjT3BlblNjYW5SZWxhdGlvbihF U3RhdGUgKmVzdGF0ZSwgSW5kZXggc2NhbnJlbGlkLCBpbnQgZWZsYWdzKTsKIAogZXh0ZXJuIHZv aWQgRXhlY0luaXRSYW5nZVRhYmxlKEVTdGF0ZSAqZXN0YXRlLCBMaXN0ICpyYW5nZVRhYmxlLCBM aXN0ICpwZXJtSW5mb3MsCi0tIAoyLjQzLjAKCg== --00000000000072ac33064e2ce6da Content-Type: text/x-patch; charset="US-ASCII"; name="v48-0005-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v48-0005-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnc0sl3d4 RnJvbSBlOTE0YjQ4MzRlNjEzYzU5OTM1ZGY1NWE0MDBhOTI5MGNjMTQ1YjMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IEZlYiAyMDI2IDE2OjMzOjQwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDggNS82XSBBbGxvdyBvbi1hY2Nlc3MgcHJ1bmluZyB0byBzZXQgcGFnZXMgYWxsLXZp c2libGUKCk1hbnkgcXVlcmllcyBkbyBub3QgbW9kaWZ5IHRoZSB1bmRlcmx5aW5nIHJlbGF0aW9u LiBGb3Igc3VjaCBxdWVyaWVzLCBpZgpvbi1hY2Nlc3MgcHJ1bmluZyBvY2N1cnMgZHVyaW5nIHRo ZSBzY2FuLCB3ZSBjYW4gY2hlY2sgd2hldGhlciB0aGUgcGFnZQpoYXMgYmVjb21lIGFsbC12aXNp YmxlIGFuZCB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwIGFjY29yZGluZ2x5LgpQcmV2aW91c2x5 LCBvbmx5IHZhY3V1bSBhbmQgQ09QWSBGUkVFWkUgbWFya2VkIHBhZ2VzIGFzIGFsbC12aXNpYmxl IG9yCmFsbC1mcm96ZW4uCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIG9uLWFjY2VzcyBWTSBzZXR0 aW5nIGZvciBzZXF1ZW50aWFsIHNjYW5zIGFzIHdlbGwKYXMgZm9yIHRoZSB1bmRlcmx5aW5nIGhl YXAgcmVsYXRpb24gaW4gaW5kZXggc2NhbnMgYW5kIGJpdG1hcCBoZWFwCnNjYW5zLgoKU2V0dGlu ZyB0aGUgdmlzaWJpbGl0eSBtYXAgb24tYWNjZXNzIGNhbiBhdm9pZCB3cml0ZSBhbXBsaWZpY2F0 aW9uCmNhdXNlZCBieSB2YWN1dW0gbGF0ZXIgbmVlZGluZyB0byBzZXQgdGhlIHBhZ2UgYWxsLXZp c2libGUsIHRyaWdnZXIgYQp3cml0ZSBhbmQgcG90ZW50aWFsbHkgRlBJLiBJdCBhbHNvIGFsbG93 cyBtb3JlIGZyZXF1ZW50IGluZGV4LW9ubHkKc2NhbnMsIHNpbmNlIHRoZXkgcmVxdWlyZSBwYWdl cyB0byBiZSBtYXJrZWQgYWxsLXZpc2libGUgaW4gdGhlIFZNLgoKQXV0aG9yOiBNZWxhbmllIFBs YWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZy ZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogS2lyaWxsIFJlc2hrZSA8cmVz aGtla2lyaWxsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0Bn bWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxhdC9DQUFLUnVfWk13 Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhwOC1WN1NPTHhkSzktZyU0MG1haWwuZ21haWwu Y29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgICB8ICAzICst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIHwgIDYgKystCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgICAgIHwgNTUgKysrKysrKysrKysrKysr KysrLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgIHwgIDIg Ky0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAgICAgICAgfCAgMyArLQogNSBm aWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbS5jCmluZGV4IGViMWY2N2YzMWNkLi43MDEyZWUyYzMwNiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTYzMyw3ICs2MzMsOCBAQCBoZWFwX3ByZXBhcmVfcGFnZXNj YW4oVGFibGVTY2FuRGVzYyBzc2NhbikKIAkvKgogCSAqIFBydW5lIGFuZCByZXBhaXIgZnJhZ21l bnRhdGlvbiBmb3IgdGhlIHdob2xlIHBhZ2UsIGlmIHBvc3NpYmxlLgogCSAqLwotCWhlYXBfcGFn ZV9wcnVuZV9vcHQoc2Nhbi0+cnNfYmFzZS5yc19yZCwgYnVmZmVyLCAmc2Nhbi0+cnNfdm1idWZm ZXIpOworCWhlYXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfYmFzZS5yc19yZCwgYnVmZmVyLCAm c2Nhbi0+cnNfdm1idWZmZXIsCisJCQkJCQkoc3NjYW4tPnJzX2ZsYWdzICYgU09fSElOVF9SRUxf UkVBRF9PTkxZKSk7CiAKIAkvKgogCSAqIFdlIG11c3QgaG9sZCBzaGFyZSBsb2NrIG9uIHRoZSBi dWZmZXIgY29udGVudCB3aGlsZSBleGFtaW5pbmcgdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW1faGFuZGxlci5jCmluZGV4IDk5MjgwY2Q4MTU5Li4zNDMzZWE5M2MxMSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCkBAIC0xNDksNyArMTQ5LDggQEAg aGVhcGFtX2luZGV4X2ZldGNoX3R1cGxlKHN0cnVjdCBJbmRleEZldGNoVGFibGVEYXRhICpzY2Fu LAogCQkgKi8KIAkJaWYgKHByZXZfYnVmICE9IGhzY2FuLT54c19jYnVmKQogCQkJaGVhcF9wYWdl X3BydW5lX29wdChoc2Nhbi0+eHNfYmFzZS5yZWwsIGhzY2FuLT54c19jYnVmLAotCQkJCQkJCQkm aHNjYW4tPnhzX3ZtYnVmZmVyKTsKKwkJCQkJCQkJJmhzY2FuLT54c192bWJ1ZmZlciwKKwkJCQkJ CQkJKGhzY2FuLT54c19iYXNlLmZsYWdzICYgU09fSElOVF9SRUxfUkVBRF9PTkxZKSk7CiAJfQog CiAJLyogT2J0YWluIHNoYXJlLWxvY2sgb24gdGhlIGJ1ZmZlciBzbyB3ZSBjYW4gZXhhbWluZSB2 aXNpYmlsaXR5ICovCkBAIC0yNTQ2LDcgKzI1NDcsOCBAQCBCaXRtYXBIZWFwU2Nhbk5leHRCbG9j ayhUYWJsZVNjYW5EZXNjIHNjYW4sCiAJLyoKIAkgKiBQcnVuZSBhbmQgcmVwYWlyIGZyYWdtZW50 YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3NzaWJsZS4KIAkgKi8KLQloZWFwX3BhZ2Vf cHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIsICZoc2Nhbi0+cnNfdm1idWZmZXIpOworCWhl YXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfcmQsIGJ1ZmZlciwgJmhzY2FuLT5yc192bWJ1ZmZl ciwKKwkJCQkJCXNjYW4tPnJzX2ZsYWdzICYgU09fSElOVF9SRUxfUkVBRF9PTkxZKTsKIAogCS8q CiAJICogV2UgbXVzdCBob2xkIHNoYXJlIGxvY2sgb24gdGhlIGJ1ZmZlciBjb250ZW50IHdoaWxl IGV4YW1pbmluZyB0dXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA2Njkz YWY4ZGE3Zi4uN2ZjZmM4NDRkMjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBA IC00NCw2ICs0NCw4IEBAIHR5cGVkZWYgc3RydWN0CiAJYm9vbAkJbWFya191bnVzZWRfbm93Owog CS8qIHdoZXRoZXIgdG8gYXR0ZW1wdCBmcmVlemluZyB0dXBsZXMgKi8KIAlib29sCQlhdHRlbXB0 X2ZyZWV6ZTsKKwkvKiB3aGV0aGVyIHRvIGF0dGVtcHQgc2V0dGluZyB0aGUgVk0gKi8KKwlib29s CQlhdHRlbXB0X3NldF92bTsKIAlzdHJ1Y3QgVmFjdXVtQ3V0b2ZmcyAqY3V0b2ZmczsKIAlSZWxh dGlvbglyZWxhdGlvbjsKIApAQCAtMjMyLDcgKzIzNCw4IEBAIHN0YXRpYyB2b2lkIHBhZ2VfdmVy aWZ5X3JlZGlyZWN0cyhQYWdlIHBhZ2UpOwogCiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9m cmVlemUoYm9vbCBkaWRfdHVwbGVfaGludF9mcGksIGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9faGlu dF9wcnVuZSwKIAkJCQkJCQkJICBQcnVuZVN0YXRlICpwcnN0YXRlKTsKLXN0YXRpYyBib29sIGhl YXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZVJlYXNvbiByZWFz b24pOworc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3Rh dGUsIFBydW5lUmVhc29uIHJlYXNvbiwKKwkJCQkJCQkJICBib29sIGRvX3BydW5lLCBib29sIGRv X2ZyZWV6ZSk7CiAKIAogLyoKQEAgLTI1MSw5ICsyNTQsMjEgQEAgc3RhdGljIGJvb2wgaGVhcF9w YWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29uIHJlYXNvbik7 CiAgKiByZXVzZSB0aGUgcGluIGFjcm9zcyBjYWxscywgYXZvaWRpbmcgcmVwZWF0ZWQgcGluL3Vu cGluIGN5Y2xlcy4gSWYgd2UgZmluZAogICogVk0gY29ycnVwdGlvbiBkdXJpbmcgcHJ1bmluZywg d2Ugd2lsbCBmaXggaXQuIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IKICAqIHVucGlubmluZyAq dm1idWZmZXIuCisgKgorICogcmVsX3JlYWRfb25seSBpcyB0cnVlIGlmIHdlIGRldGVybWluZWQg YXQgcGxhbiB0aW1lIHRoYXQgdGhlIHF1ZXJ5IGRvZXMgbm90CisgKiBtb2RpZnkgdGhlIHJlbGF0 aW9uLiBJdCBpcyBjb3VudGVycHJvZHVjdGl2ZSB0byBzZXQgdGhlIFZNIGlmIHRoZSBxdWVyeQor ICogd2lsbCBpbW1lZGlhdGVseSBjbGVhciBpdC4KKyAqCisgKiBBcyBub3RlZCBpbiBTY2FuUmVs SXNSZWFkT25seSgpLCBJTlNFUlQgLi4uIFNFTEVDVCBvbiB0aGUgc2FtZSB0YWJsZSB3aWxsCisg KiByZXBvcnQgdGhlIHNjYW4gcmVsYXRpb24gYXMgcmVhZC1vbmx5LiBUaGlzIGlzIHVzdWFsbHkg aGFybWxlc3MgaW4KKyAqIHByYWN0aWNlLiBJdCBpcyB1c2VmdWwgdG8gc2V0IHNjYW5uZWQgcGFn ZXMgYWxsLXZpc2libGUgdGhhdCB3b24ndCBiZQorICogaW5zZXJ0ZWQgaW50by4gUGFnZXMgd2Ug ZG8gaW5zZXJ0IHRvIHJhcmVseSBtZWV0IHRoZSBjcml0ZXJpYSBmb3IgcHJ1bmluZywKKyAqIGFu ZCB0aG9zZSB0aGF0IGRvIGFyZSBsaWtlbHkgdG8gY29udGFpbiBpbi1wcm9ncmVzcyBpbnNlcnRz IHdoaWNoIG1ha2UgdGhlCisgKiBwYWdlIG5vdCBmdWxseSBhbGwtdmlzaWJsZS4KICAqLwogdm9p ZAotaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwg QnVmZmVyICp2bWJ1ZmZlcikKK2hlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24s IEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIsCisJCQkJCWJvb2wgcmVsX3JlYWRfb25s eSkKIHsKIAlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOwogCVRyYW5zYWN0aW9u SWQgcHJ1bmVfeGlkOwpAQCAtMzM2LDYgKzM1MSw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVs YXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCiAJCQkgKiBj dXJyZW50IGltcGxlbWVudGF0aW9uLgogCQkJICovCiAJCQlwYXJhbXMub3B0aW9ucyA9IEhFQVBf UEFHRV9QUlVORV9BTExPV19GQVNUX1BBVEg7CisJCQlpZiAocmVsX3JlYWRfb25seSkKKwkJCQlw YXJhbXMub3B0aW9ucyB8PSBIRUFQX1BBR0VfUFJVTkVfU0VUX1ZNOwogCiAJCQloZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZSgmcGFyYW1zLCAmcHJlc3VsdCwgJmR1bW15X29mZl9sb2MsCiAJCQkJ CQkJCQkgICBOVUxMLCBOVUxMKTsKQEAgLTM5Miw2ICs0MDksNyBAQCBwcnVuZV9mcmVlemVfc2V0 dXAoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkvKiBjdXRvZmZzIG11c3QgYmUgcHJvdmlk ZWQgaWYgd2Ugd2lsbCBhdHRlbXB0IGZyZWV6aW5nICovCiAJQXNzZXJ0KCEocGFyYW1zLT5vcHRp b25zICYgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSkgfHwgcGFyYW1zLT5jdXRvZmZzKTsKIAlwcnN0 YXRlLT5hdHRlbXB0X2ZyZWV6ZSA9IChwYXJhbXMtPm9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVf RlJFRVpFKSAhPSAwOworCXByc3RhdGUtPmF0dGVtcHRfc2V0X3ZtID0gKHBhcmFtcy0+b3B0aW9u cyAmIEhFQVBfUEFHRV9QUlVORV9TRVRfVk0pICE9IDA7CiAJcHJzdGF0ZS0+Y3V0b2ZmcyA9IHBh cmFtcy0+Y3V0b2ZmczsKIAlwcnN0YXRlLT5yZWxhdGlvbiA9IHBhcmFtcy0+cmVsYXRpb247CiAJ cHJzdGF0ZS0+YmxvY2sgPSBCdWZmZXJHZXRCbG9ja051bWJlcihwYXJhbXMtPmJ1ZmZlcik7CkBA IC00NjEsOSArNDc5LDggQEAgcHJ1bmVfZnJlZXplX3NldHVwKFBydW5lRnJlZXplUGFyYW1zICpw YXJhbXMsCiAJICogV2UgdHJhY2sgd2hldGhlciB0aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNpYmxl L2FsbC1mcm96ZW4gYXQgdGhlIGVuZCBvZgogCSAqIHBydW5pbmcgYW5kIGZyZWV6aW5nLiBXaGls ZSBleGFtaW5pbmcgdHVwbGUgdmlzaWJpbGl0eSwgd2UnbGwgc2V0CiAJICogc2V0X2FsbF92aXNp YmxlIHRvIGZhbHNlIGlmIHRoZXJlIGFyZSB0dXBsZXMgb24gdGhlIHBhZ2Ugbm90IHZpc2libGUg dG8KLQkgKiBhbGwgcnVubmluZyBhbmQgZnV0dXJlIHRyYW5zYWN0aW9ucy4gc2V0X2FsbF92aXNp YmxlIGlzIGFsd2F5cwotCSAqIG1haW50YWluZWQgYnV0IG9ubHkgVkFDVVVNIHdpbGwgc2V0IHRo ZSBWTSBpZiB0aGUgcGFnZSBlbmRzIHVwIGJlaW5nCi0JICogYWxsLXZpc2libGUuCisJICogYWxs IHJ1bm5pbmcgYW5kIGZ1dHVyZSB0cmFuc2FjdGlvbnMuIElmIGVuYWJsZWQgZm9yIHRoaXMgc2Nh biwgd2Ugd2lsbAorCSAqIHNldCB0aGUgVk0gaWYgdGhlIHBhZ2UgZW5kcyB1cCBiZWluZyBhbGwt dmlzaWJsZS4KIAkgKgogCSAqIFdlIGFsc28ga2VlcCB0cmFjayBvZiB0aGUgbmV3ZXN0IGxpdmUg WElELCB3aGljaCBpcyB1c2VkIHRvIGNhbGN1bGF0ZQogCSAqIHRoZSBzbmFwc2hvdCBjb25mbGlj dCBob3Jpem9uIGZvciBhIFdBTCByZWNvcmQgc2V0dGluZyB0aGUgVk0uCkBAIC05MjAsMjEgKzkz NywzNSBAQCBoZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwg T2Zmc2V0TnVtYmVyIG9mZm51bSwKICAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgYWN0dWFsbHkg c2V0IHRoZSBWTSBiaXRzIG9yIHBhZ2UtbGV2ZWwgdmlzaWJpbGl0eQogICogaGludCwgUERfQUxM X1ZJU0lCTEUuCiAgKgorICogVGhpcyBzaG91bGQgYmUgY2FsbGVkIG9ubHkgYWZ0ZXIgZG9fZnJl ZXplIGhhcyBiZWVuIGRlY2lkZWQgKGFuZCBkb19wcnVuZQorICogaGFzIGJlZW4gc2V0KSwgYXMg dGhlc2UgZmFjdG9yIGludG8gb3VyIGhldXJpc3RpYy1iYXNlZCBkZWNpc2lvbi4KKyAqCiAgKiBS ZXR1cm5zIHRydWUgaWYgb25lIG9yIGJvdGggVk0gYml0cyBzaG91bGQgYmUgc2V0IGFuZCBmYWxz ZSBvdGhlcndpc2UuCiAgKi8KIHN0YXRpYyBib29sCi1oZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVhc29uKQoraGVhcF9wYWdlX3dpbGxfc2V0 X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29uIHJlYXNvbiwKKwkJCQkJICBib29s IGRvX3BydW5lLCBib29sIGRvX2ZyZWV6ZSkKIHsKLQkvKgotCSAqIFRob3VnaCBvbi1hY2Nlc3Mg cHJ1bmluZyBtYWludGFpbnMgcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlLCB3ZSBkb24ndAotCSAq IHNldCB0aGUgVk0gb24tYWNjZXNzIGZvciBub3cuCi0JICovCi0JaWYgKHJlYXNvbiA9PSBQUlVO RV9PTl9BQ0NFU1MpCisJaWYgKCFwcnN0YXRlLT5hdHRlbXB0X3NldF92bSkKIAkJcmV0dXJuIGZh bHNlOwogCiAJaWYgKCFwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUpCiAJCXJldHVybiBmYWxzZTsK IAorCS8qCisJICogSWYgdGhpcyBpcyBhbiBvbi1hY2Nlc3MgY2FsbCBhbmQgd2UncmUgbm90IGFj dHVhbGx5IHBydW5pbmcsIGF2b2lkCisJICogc2V0dGluZyB0aGUgdmlzaWJpbGl0eSBtYXAgaWYg aXQgd291bGQgbmV3bHkgZGlydHkgdGhlIGhlYXAgcGFnZSBvciwgaWYKKwkgKiB0aGUgcGFnZSBp cyBhbHJlYWR5IGRpcnR5LCBpZiBkb2luZyBzbyB3b3VsZCByZXF1aXJlIGluY2x1ZGluZyBhCisJ ICogZnVsbC1wYWdlIGltYWdlIChGUEkpIG9mIHRoZSBoZWFwIHBhZ2UgaW4gdGhlIFdBTC4KKwkg Ki8KKwlpZiAocmVhc29uID09IFBSVU5FX09OX0FDQ0VTUyAmJiAhZG9fcHJ1bmUgJiYgIWRvX2Zy ZWV6ZSAmJgorCQkoIUJ1ZmZlcklzRGlydHkocHJzdGF0ZS0+YnVmZmVyKSB8fCBYTG9nQ2hlY2tC dWZmZXJOZWVkc0JhY2t1cChwcnN0YXRlLT5idWZmZXIpKSkKKwl7CisJCXByc3RhdGUtPnNldF9h bGxfdmlzaWJsZSA9IGZhbHNlOworCQlwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOwor CQlyZXR1cm4gZmFsc2U7CisJfQorCiAJcHJzdGF0ZS0+bmV3X3ZtYml0cyA9IFZJU0lCSUxJVFlN QVBfQUxMX1ZJU0lCTEU7CiAKIAlpZiAocHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4pCkBAIC0xMTY3 LDcgKzExOTgsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFt cyAqcGFyYW1zLAogCUFzc2VydCghcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiB8fCBwcnN0YXRlLnNl dF9hbGxfdmlzaWJsZSk7CiAJQXNzZXJ0KCFwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSB8fCAocHJz dGF0ZS5scGRlYWRfaXRlbXMgPT0gMCkpOwogCi0JZG9fc2V0X3ZtID0gaGVhcF9wYWdlX3dpbGxf c2V0X3ZtKCZwcnN0YXRlLCBwYXJhbXMtPnJlYXNvbik7CisJZG9fc2V0X3ZtID0gaGVhcF9wYWdl X3dpbGxfc2V0X3ZtKCZwcnN0YXRlLCBwYXJhbXMtPnJlYXNvbiwgZG9fcHJ1bmUsIGRvX2ZyZWV6 ZSk7CiAKIAkvKgogCSAqIG5ld192bWJpdHMgc2hvdWxkIGJlIDAgcmVnYXJkbGVzcyBvZiB3aGV0 aGVyIG9yIG5vdCB0aGUgcGFnZSBpcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmlu ZGV4IGY2OThjMmQ4OTliLi4yNDAwMWIyNzM4NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYwpAQCAtMjAyMSw3ICsyMDIxLDcgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUg KnZhY3JlbCwKIAkJLmJ1ZmZlciA9IGJ1ZiwKIAkJLnZtYnVmZmVyID0gdm1idWZmZXIsCiAJCS5y ZWFzb24gPSBQUlVORV9WQUNVVU1fU0NBTiwKLQkJLm9wdGlvbnMgPSBIRUFQX1BBR0VfUFJVTkVf RlJFRVpFLAorCQkub3B0aW9ucyA9IEhFQVBfUEFHRV9QUlVORV9GUkVFWkUgfCBIRUFQX1BBR0Vf UFJVTkVfU0VUX1ZNLAogCQkudmlzdGVzdCA9IHZhY3JlbC0+dmlzdGVzdCwKIAkJLmN1dG9mZnMg PSAmdmFjcmVsLT5jdXRvZmZzLAogCX07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv aGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggZTJlMDczNDhmMzcu LmYyYTAwOTE0MWJlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC00Myw2ICs0Myw3IEBACiAjZGVmaW5l IEhFQVBfUEFHRV9QUlVORV9NQVJLX1VOVVNFRF9OT1cJCSgxIDw8IDApCiAjZGVmaW5lIEhFQVBf UEFHRV9QUlVORV9GUkVFWkUJCQkJKDEgPDwgMSkKICNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX0FM TE9XX0ZBU1RfUEFUSAkJKDEgPDwgMikKKyNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX1NFVF9WTQkJ CQkoMSA8PCAzKQogCiB0eXBlZGVmIHN0cnVjdCBCdWxrSW5zZXJ0U3RhdGVEYXRhICpCdWxrSW5z ZXJ0U3RhdGU7CiB0eXBlZGVmIHN0cnVjdCBHbG9iYWxWaXNTdGF0ZSBHbG9iYWxWaXNTdGF0ZTsK QEAgLTQzMSw3ICs0MzIsNyBAQCBleHRlcm4gVHJhbnNhY3Rpb25JZCBoZWFwX2luZGV4X2RlbGV0 ZV90dXBsZXMoUmVsYXRpb24gcmVsLAogCiAvKiBpbiBoZWFwL3BydW5laGVhcC5jICovCiBleHRl cm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVm ZmVyLAotCQkJCQkJCQlCdWZmZXIgKnZtYnVmZmVyKTsKKwkJCQkJCQkJQnVmZmVyICp2bWJ1ZmZl ciwgYm9vbCByZWxfcmVhZF9vbmx5KTsKIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9hbmRf ZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCQkJCQkJCQkgICBQcnVuZUZyZWV6 ZVJlc3VsdCAqcHJlc3VsdCwKIAkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqb2ZmX2xvYywKLS0g CjIuNDMuMAoK --00000000000072ac33064e2ce6da Content-Type: text/x-patch; charset="UTF-8"; name="v48-0006-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v48-0006-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnc0so1x5 RnJvbSAxM2YzYzMxNGQ3NjBiY2UzM2NhNDhlYTZkMWNkZTYwNmI2MmNhZDRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDggNi82XSBTZXQgcGRfcHJ1bmVfeGlkIG9uIGluc2VydApNSU1FLVZlcnNpb246IDEu MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAoKTm93IHRoYXQgb24tYWNjZXNzIHBydW5pbmcgY2FuIHVwZGF0ZSB0 aGUgdmlzaWJpbGl0eSBtYXAgKFZNKSBkdXJpbmcKcmVhZC1vbmx5IHF1ZXJpZXMsIHNldCB0aGUg cGFnZeKAmXMgcGRfcHJ1bmVfeGlkIGhpbnQgZHVyaW5nIElOU0VSVCBhbmQgb24KdGhlIG5ldyBw YWdlIGR1cmluZyBVUERBVEUuCgpUaGlzIGFsbG93cyBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6 ZSgpIHRvIHNldCB0aGUgVk0gdGhlIGZpcnN0IHRpbWUgYQpwYWdlIGlzIHJlYWQgYWZ0ZXIgYmVp bmcgZmlsbGVkIHdpdGggdHVwbGVzLiBUaGlzIG1heSBhdm9pZCBJL08KYW1wbGlmaWNhdGlvbiBi eSBzZXR0aW5nIHRoZSBwYWdlIGFsbC12aXNpYmxlIHdoZW4gaXQgaXMgc3RpbGwgaW4gc2hhcmVk CmJ1ZmZlcnMgYW5kIGFsbG93aW5nIGxhdGVyIHZhY3V1bXMgdG8gc2tpcCBzY2FubmluZyB0aGUg cGFnZS4gSXQgYWxzbwplbmFibGVzIGluZGV4LW9ubHkgc2NhbnMgb2YgbmV3bHkgaW5zZXJ0ZWQg ZGF0YSBtdWNoIHNvb25lci4KCkFzIGEgc2lkZSBiZW5lZml0LCB0aGlzIGFkZHJlc3NlcyBhIGxv bmctc3RhbmRpbmcgbm90ZSBpbiBoZWFwX2luc2VydCgpCmFuZCBoZWFwX211bHRpX2luc2VydCgp OiBhYm9ydGVkIGluc2VydHMgY2FuIG5vdyBiZSBwcnVuZWQgb24tYWNjZXNzCnJhdGhlciB0aGFu IGxpbmdlcmluZyB1bnRpbCB0aGUgbmV4dCBWQUNVVU0uCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2Vt YW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5k IDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9A Z21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2ZsYXQvQ0FBS1J1X1pN dzZOcGRfcW0yS00lMkJGd1EzY01PTXgxRGgzVk1ocDgtVjdTT0x4ZEs5LWclNDBtYWlsLmdtYWls LmNvbQotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgfCAzOSArKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94 bG9nLmMgfCAxOSArKysrKysrKysrKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYyAgIHwgMTggKysrKysrLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25z KCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IDcwMTJl ZTJjMzA2Li4zYjAyMGQ5MTBkNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTIxNTQs NiArMjE1NCw3IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFwVHVwbGUgdHVw LCBDb21tYW5kSWQgY2lkLAogCVRyYW5zYWN0aW9uSWQgeGlkID0gR2V0Q3VycmVudFRyYW5zYWN0 aW9uSWQoKTsKIAlIZWFwVHVwbGUJaGVhcHR1cDsKIAlCdWZmZXIJCWJ1ZmZlcjsKKwlQYWdlCQlw YWdlOwogCUJ1ZmZlcgkJdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOwogCWJvb2wJCWFsbF92aXNp YmxlX2NsZWFyZWQgPSBmYWxzZTsKIApAQCAtMjE4MCw2ICsyMTgxLDggQEAgaGVhcF9pbnNlcnQo UmVsYXRpb24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXAsIENvbW1hbmRJZCBjaWQsCiAJCQkJCQkJ CQkgICAmdm1idWZmZXIsIE5VTEwsCiAJCQkJCQkJCQkgICAwKTsKIAorCXBhZ2UgPSBCdWZmZXJH ZXRQYWdlKGJ1ZmZlcik7CisKIAkvKgogCSAqIFdlJ3JlIGFib3V0IHRvIGRvIHRoZSBhY3R1YWwg aW5zZXJ0IC0tIGJ1dCBjaGVjayBmb3IgY29uZmxpY3QgZmlyc3QsIHRvCiAJICogYXZvaWQgcG9z c2libHkgaGF2aW5nIHRvIHJvbGwgYmFjayB3b3JrIHdlJ3ZlIGp1c3QgZG9uZS4KQEAgLTIyMDMs MjUgKzIyMDYsMzAgQEAgaGVhcF9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIEhlYXBUdXBsZSB0 dXAsIENvbW1hbmRJZCBjaWQsCiAJUmVsYXRpb25QdXRIZWFwVHVwbGUocmVsYXRpb24sIGJ1ZmZl ciwgaGVhcHR1cCwKIAkJCQkJCSAob3B0aW9ucyAmIEhFQVBfSU5TRVJUX1NQRUNVTEFUSVZFKSAh PSAwKTsKIAotCWlmIChQYWdlSXNBbGxWaXNpYmxlKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSkpCisJ aWYgKFBhZ2VJc0FsbFZpc2libGUocGFnZSkpCiAJewogCQlhbGxfdmlzaWJsZV9jbGVhcmVkID0g dHJ1ZTsKLQkJUGFnZUNsZWFyQWxsVmlzaWJsZShCdWZmZXJHZXRQYWdlKGJ1ZmZlcikpOworCQlQ YWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwogCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbGF0aW9u LAogCQkJCQkJCUl0ZW1Qb2ludGVyR2V0QmxvY2tOdW1iZXIoJihoZWFwdHVwLT50X3NlbGYpKSwK IAkJCQkJCQl2bWJ1ZmZlciwgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKTsKIAl9CiAKIAkvKgot CSAqIFhYWCBTaG91bGQgd2Ugc2V0IFBhZ2VTZXRQcnVuYWJsZSBvbiB0aGlzIHBhZ2UgPworCSAq IFNldCBwZF9wcnVuZV94aWQgdG8gdHJpZ2dlciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgp IG9uY2UgdGhlIHBhZ2UKKwkgKiBpcyBmdWxsIHNvIHRoYXQgd2UgY2FuIHNldCB0aGUgcGFnZSBh bGwtdmlzaWJsZSBpbiB0aGUgVk0gb24gdGhlIG5leHQKKwkgKiBwYWdlIGFjY2Vzcy4KIAkgKgot CSAqIFRoZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24gbWF5IGV2ZW50dWFsbHkgYWJvcnQgdGh1cyBt YWtpbmcgdGhpcyB0dXBsZQotCSAqIERFQUQgYW5kIGhlbmNlIGF2YWlsYWJsZSBmb3IgcHJ1bmlu Zy4gVGhvdWdoIHdlIGRvbid0IHdhbnQgdG8gb3B0aW1pemUKLQkgKiBmb3IgYWJvcnRzLCBpZiBu byBvdGhlciB0dXBsZSBpbiB0aGlzIHBhZ2UgaXMgVVBEQVRFZC9ERUxFVEVkLCB0aGUKLQkgKiBh Ym9ydGVkIHR1cGxlIHdpbGwgbmV2ZXIgYmUgcHJ1bmVkIHVudGlsIG5leHQgdmFjdXVtIGlzIHRy aWdnZXJlZC4KKwkgKiBTZXR0aW5nIHBkX3BydW5lX3hpZCBpcyBhbHNvIGhhbmR5IGlmIHRoZSBp bnNlcnRpbmcgdHJhbnNhY3Rpb24KKwkgKiBldmVudHVhbGx5IGFib3J0cyBtYWtpbmcgdGhpcyB0 dXBsZSBERUFEIGFuZCBoZW5jZSBhdmFpbGFibGUgZm9yCisJICogcHJ1bmluZy4gSWYgbm8gb3Ro ZXIgdHVwbGUgaW4gdGhpcyBwYWdlIGlzIFVQREFURWQvREVMRVRFZCwgdGhlIGFib3J0ZWQKKwkg KiB0dXBsZSB3b3VsZCBuZXZlciBvdGhlcndpc2UgYmUgcHJ1bmVkIHVudGlsIG5leHQgdmFjdXVt IGlzIHRyaWdnZXJlZC4KIAkgKgotCSAqIElmIHlvdSBkbyBhZGQgUGFnZVNldFBydW5hYmxlIGhl cmUsIGFkZCBpdCBpbiBoZWFwX3hsb2dfaW5zZXJ0IHRvby4KKwkgKiBEb24ndCBzZXQgaXQgaWYg d2UgYXJlIGluIGJvb3RzdHJhcCBtb2RlIG9yIHdlIGFyZSBpbnNlcnRpbmcgYSBmcm96ZW4KKwkg KiB0dXBsZSwgYXMgdGhlcmUgaXMgbm8gZnVydGhlciBwcnVuaW5nL2ZyZWV6aW5nIG5lZWRlZCBp biB0aG9zZSBjYXNlcy4KIAkgKi8KKwlpZiAoVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkgJiYg IShvcHRpb25zICYgSEVBUF9JTlNFUlRfRlJPWkVOKSkKKwkJUGFnZVNldFBydW5hYmxlKHBhZ2Us IHhpZCk7CiAKIAlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKIApAQCAtMjIzMSw3ICsyMjM5LDYg QEAgaGVhcF9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXAsIENvbW1hbmRJ ZCBjaWQsCiAJCXhsX2hlYXBfaW5zZXJ0IHhscmVjOwogCQl4bF9oZWFwX2hlYWRlciB4bGhkcjsK IAkJWExvZ1JlY1B0cglyZWNwdHI7Ci0JCVBhZ2UJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZl cik7CiAJCXVpbnQ4CQlpbmZvID0gWExPR19IRUFQX0lOU0VSVDsKIAkJaW50CQkJYnVmZmxhZ3Mg PSAwOwogCkBAIC0yNTk2LDggKzI2MDMsMTIgQEAgaGVhcF9tdWx0aV9pbnNlcnQoUmVsYXRpb24g cmVsYXRpb24sIFR1cGxlVGFibGVTbG90ICoqc2xvdHMsIGludCBudHVwbGVzLAogCQl9CiAKIAkJ LyoKLQkJICogWFhYIFNob3VsZCB3ZSBzZXQgUGFnZVNldFBydW5hYmxlIG9uIHRoaXMgcGFnZSA/ IFNlZSBoZWFwX2luc2VydCgpCisJCSAqIFNldCBwZF9wcnVuZV94aWQuIFNlZSBoZWFwX2luc2Vy dCgpIGZvciBtb3JlIG9uIHdoeSB3ZSBkbyB0aGlzIHdoZW4KKwkJICogaW5zZXJ0aW5nIHR1cGxl cy4gVGhpcyBvbmx5IG1ha2VzIHNlbnNlIGlmIHdlIGFyZW4ndCBhbHJlYWR5CisJCSAqIHNldHRp bmcgdGhlIHBhZ2UgZnJvemVuIGluIHRoZSBWTSBhbmQgd2UncmUgbm90IGluIGJvb3RzdHJhcCBt b2RlLgogCQkgKi8KKwkJaWYgKCFhbGxfZnJvemVuX3NldCAmJiBUcmFuc2FjdGlvbklkSXNOb3Jt YWwoeGlkKSkKKwkJCVBhZ2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJCU1hcmtCdWZmZXJE aXJ0eShidWZmZXIpOwogCkBAIC00MTM5LDEyICs0MTUwLDEyIEBAIGwyOgogCSAqIHRoZSBzdWJz ZXF1ZW50IHBhZ2UgcHJ1bmluZyB3aWxsIGJlIGEgbm8tb3AgYW5kIHRoZSBoaW50IHdpbGwgYmUK IAkgKiBjbGVhcmVkLgogCSAqCi0JICogWFhYIFNob3VsZCB3ZSBzZXQgaGludCBvbiBuZXdidWYg YXMgd2VsbD8gIElmIHRoZSB0cmFuc2FjdGlvbiBhYm9ydHMsCi0JICogdGhlcmUgd291bGQgYmUg YSBwcnVuYWJsZSB0dXBsZSBpbiB0aGUgbmV3YnVmOyBidXQgZm9yIG5vdyB3ZSBjaG9vc2UKLQkg KiBub3QgdG8gb3B0aW1pemUgZm9yIGFib3J0cy4gIE5vdGUgdGhhdCBoZWFwX3hsb2dfdXBkYXRl IG11c3QgYmUga2VwdCBpbgotCSAqIHN5bmMgaWYgdGhpcyBkZWNpc2lvbiBjaGFuZ2VzLgorCSAq IFdlIHNldCB0aGUgbmV3IHBhZ2UgcHJ1bmFibGUgYXMgd2VsbC4gU2VlIGhlYXBfaW5zZXJ0KCkg Zm9yIG1vcmUgb24gd2h5CisJICogd2UgZG8gdGhpcyB3aGVuIGluc2VydGluZyB0dXBsZXMuCiAJ ICovCiAJUGFnZVNldFBydW5hYmxlKHBhZ2UsIHhpZCk7CisJaWYgKG5ld2J1ZiAhPSBidWZmZXIp CisJCVBhZ2VTZXRQcnVuYWJsZShuZXdwYWdlLCB4aWQpOwogCiAJaWYgKHVzZV9ob3RfdXBkYXRl KQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCmluZGV4IDEzMDJiYjEzZTE4 Li5mM2Y0MTlkM2RjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCkBAIC00 NTAsNiArNDUwLDE0IEBAIGhlYXBfeGxvZ19pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAKIAkJZnJlZXNwYWNlID0gUGFnZUdldEhlYXBGcmVlU3BhY2UocGFnZSk7IC8qIG5lZWRlZCB0 byB1cGRhdGUgRlNNIGJlbG93ICovCiAKKwkJLyoKKwkJICogU2V0IHRoZSBwYWdlIHBydW5hYmxl IHRvIHRyaWdnZXIgb24tYWNjZXNzIHBydW5pbmcgbGF0ZXIsIHdoaWNoIG1heQorCQkgKiBzZXQg dGhlIHBhZ2UgYWxsLXZpc2libGUgaW4gdGhlIFZNLiBTZWUgY29tbWVudHMgaW4gaGVhcF9pbnNl cnQoKS4KKwkJICovCisJCWlmIChUcmFuc2FjdGlvbklkSXNOb3JtYWwoWExvZ1JlY0dldFhpZChy ZWNvcmQpKSAmJgorCQkJIUhlYXBUdXBsZUhlYWRlclhtaW5Gcm96ZW4oaHR1cCkpCisJCQlQYWdl U2V0UHJ1bmFibGUocGFnZSwgWExvZ1JlY0dldFhpZChyZWNvcmQpKTsKKwogCQlQYWdlU2V0TFNO KHBhZ2UsIGxzbik7CiAKIAkJaWYgKHhscmVjLT5mbGFncyAmIFhMSF9JTlNFUlRfQUxMX1ZJU0lC TEVfQ0xFQVJFRCkKQEAgLTU5OSwxMiArNjA3LDE5IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQo WExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJU X0FMTF9WSVNJQkxFX0NMRUFSRUQpCiAJCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwogCi0J CS8qIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQgaW1wbGllcyB0aGF0IGFsbCB0dXBsZXMgYXJl IHZpc2libGUgKi8KKwkJLyoKKwkJICogWExIX0lOU0VSVF9BTExfRlJPWkVOX1NFVCBpbXBsaWVz IHRoYXQgYWxsIHR1cGxlcyBhcmUgdmlzaWJsZS4gSWYKKwkJICogd2UgYXJlIG5vdCBzZXR0aW5n IHRoZSBwYWdlIGZyb3plbiwgdGhlbiBzZXQgdGhlIHBhZ2UncyBwcnVuYWJsZQorCQkgKiBoaW50 IHNvIHRoYXQgd2UgdHJpZ2dlciBvbi1hY2Nlc3MgcHJ1bmluZyBsYXRlciB3aGljaCBtYXkgc2V0 IHRoZQorCQkgKiBwYWdlIGFsbC12aXNpYmxlIGluIHRoZSBWTS4KKwkJICovCiAJCWlmICh4bHJl Yy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9GUk9aRU5fU0VUKQogCQl7CiAJCQlQYWdlU2V0QWxs VmlzaWJsZShwYWdlKTsKIAkJCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2UpOwogCQl9CisJCWVsc2UK KwkJCVBhZ2VTZXRQcnVuYWJsZShwYWdlLCBYTG9nUmVjR2V0WGlkKHJlY29yZCkpOwogCiAJCU1h cmtCdWZmZXJEaXJ0eShidWZmZXIpOwogCX0KQEAgLTkyMSw2ICs5MzYsOCBAQCBoZWFwX3hsb2df dXBkYXRlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkLCBib29sIGhvdF91cGRhdGUpCiAJCWZyZWVz cGFjZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKG5wYWdlKTsKIAogCQlQYWdlU2V0TFNOKG5wYWdl LCBsc24pOworCQkvKiBTZWUgaGVhcF9pbnNlcnQoKSBmb3Igd2h5IHdlIHNldCBwZF9wcnVuZV94 aWQgb24gaW5zZXJ0ICovCisJCVBhZ2VTZXRQcnVuYWJsZShucGFnZSwgWExvZ1JlY0dldFhpZChy ZWNvcmQpKTsKIAkJTWFya0J1ZmZlckRpcnR5KG5idWZmZXIpOwogCX0KIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYwppbmRleCA3ZmNmYzg0NGQyMC4uZmU5YjFmMTZkYjQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0yODYsNyArMjg2LDggQEAgaGVhcF9wYWdlX3By dW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZl ciwKIAkvKgogCSAqIEZpcnN0IGNoZWNrIHdoZXRoZXIgdGhlcmUncyBhbnkgY2hhbmNlIHRoZXJl J3Mgc29tZXRoaW5nIHRvIHBydW5lLAogCSAqIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZSBo b3Jpem9uIGlzIGEgd2FzdGUgaWYgdGhlcmUncyBubyBwcnVuZV94aWQKLQkgKiAoaS5lLiBubyB1 cGRhdGVzL2RlbGV0ZXMgbGVmdCBwb3RlbnRpYWxseSBkZWFkIHR1cGxlcyBhcm91bmQpLgorCSAq IChpLmUuIG5vIHVwZGF0ZXMvZGVsZXRlcyBsZWZ0IHBvdGVudGlhbGx5IGRlYWQgdHVwbGVzIGFy b3VuZCBhbmQgbm8KKwkgKiBpbnNlcnRzIGluc2VydGVkIG5ldyB0dXBsZXMgdGhhdCBtYXkgYmUg dmlzaWJsZSB0byBhbGwpLgogCSAqLwogCXBydW5lX3hpZCA9IFBhZ2VHZXRQcnVuZVhpZChwYWdl KTsKIAlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHBydW5lX3hpZCkpCkBAIC0xOTI3LDE3ICsx OTI4LDE0IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSkKIAkJCXByc3RhdGUtPnNldF9hbGxfdmlz aWJsZSA9IGZhbHNlOwogCQkJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsKIAotCQkJ LyogVGhlIHBhZ2Ugc2hvdWxkIG5vdCBiZSBtYXJrZWQgYWxsLXZpc2libGUgKi8KLQkJCWlmIChQ YWdlSXNBbGxWaXNpYmxlKHBhZ2UpKQotCQkJCWhlYXBfcGFnZV9maXhfdm1fY29ycnVwdGlvbihw cnN0YXRlLCBvZmZudW0sCi0JCQkJCQkJCQkJCVZNX0NPUlJVUFRfVFVQTEVfVklTSUJJTElUWSk7 Ci0KIAkJCS8qCi0JCQkgKiBJZiB3ZSB3YW50ZWQgdG8gb3B0aW1pemUgZm9yIGFib3J0cywgd2Ug bWlnaHQgY29uc2lkZXIgbWFya2luZwotCQkJICogdGhlIHBhZ2UgcHJ1bmFibGUgd2hlbiB3ZSBz ZWUgSU5TRVJUX0lOX1BST0dSRVNTLiAgQnV0IHdlCi0JCQkgKiBkb24ndC4gIFNlZSByZWxhdGVk IGRlY2lzaW9ucyBhYm91dCB3aGVuIHRvIG1hcmsgdGhlIHBhZ2UKLQkJCSAqIHBydW5hYmxlIGlu IGhlYXBhbS5jLgorCQkJICogVGhvdWdoIHRoZXJlIGlzIG5vdGhpbmcgInBydW5hYmxlIiBvbiB0 aGUgcGFnZSwgd2UgbWFpbnRhaW4KKwkJCSAqIHBkX3BydW5lX3hpZCBmb3IgaW5zZXJ0cyBzbyB0 aGF0IHdlIGhhdmUgdGhlIG9wcG9ydHVuaXR5IHRvCisJCQkgKiBtYXJrIHRoZW0gYWxsLXZpc2li bGUgZHVyaW5nIHRoZSBuZXh0IHJvdW5kIG9mIHBydW5pbmcuCiAJCQkgKi8KKwkJCWhlYXBfcHJ1 bmVfcmVjb3JkX3BydW5hYmxlKHByc3RhdGUsCisJCQkJCQkJCQkgICBIZWFwVHVwbGVIZWFkZXJH ZXRYbWluKGh0dXApLAorCQkJCQkJCQkJICAgb2ZmbnVtKTsKIAkJCWJyZWFrOwogCiAJCWNhc2Ug SEVBUFRVUExFX0RFTEVURV9JTl9QUk9HUkVTUzoKLS0gCjIuNDMuMAoK --00000000000072ac33064e2ce6da--