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 1w4nEI-002YqM-2q for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Mar 2026 21:54:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w4nEH-002cWv-1S for pgsql-hackers@arkaria.postgresql.org; Mon, 23 Mar 2026 21:54:33 +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 1w4nEG-002cWm-2z for pgsql-hackers@lists.postgresql.org; Mon, 23 Mar 2026 21:54:33 +0000 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w4nEB-00000000ljn-2I9p for pgsql-hackers@lists.postgresql.org; Mon, 23 Mar 2026 21:54:33 +0000 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-6634bb959a2so888911a12.1 for ; Mon, 23 Mar 2026 14:54:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774302867; cv=none; d=google.com; s=arc-20240605; b=PDXyd7Kn8b0yrTC/qJBpCxn1fqj9kAAO30Ctj9XsSBWyJvVWyxC8AkXeyNzKuqv2Jy zYCSNoqmweAmrEFp6bgaX4Im0ftXWGCz+ioH4sguJofGXrAaPJ1pdH0OXPzNmsDdmGoN YmDmd2hdgo/OuIx5lP2In01M14g96l0+0oRgTelFxIr7IioXJl9XN2xEpQ/OYksiW+BF RnTNfFRrnaXqSs60qQqo//MlN3dy0rTyNiT0f+x+mQd79SZYRne/skyKRCboCm5eJxST Be9xKFBLSZToJhP96K0JT7ezXy901jkMFZL7CZ1bXulDQD3U8QVSYLnXc65T9zQeFsu6 qsUQ== 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=BEkHMO8jXqiTmi0vm8UFQ/+NQ4en/QyFghTT8/sBiTw=; fh=azYyj9Fyax3/xSFoXmUdOzvvacOkcy101y/pBgxsdIE=; b=KeXoaWtYck/1UEVBJLCpOepTlnsTsQFMI+nqER2oXAmTvvZydk0WDdx/z7BtsHGaTI 4fv458aUNFKFcw2EXgRvggPzIa4c9FlMQItgCqbLM8aGfZ0O+mwBJXMLPoYvJ/au+gnM mK8bxygmoypq/BJYJp+wf8VrHYLWdLUIiEHjUKgETMBwo6bTgDV495oStBbgL70VKYe8 RZ0N5afDieYHzpf3Gnfr0cfdKsDz68767OSrU7Fw4k/tiU/NoPdWMV9CUxxf4Hb8bQ6U hpMzo5JKBUPB+PGe52X6YYpOU8Ee1kfThYuL8DSHZ6hBjSVDYxCtTeSIYmv4NV7Lpgdp qm4A==; 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=1774302867; x=1774907667; 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=BEkHMO8jXqiTmi0vm8UFQ/+NQ4en/QyFghTT8/sBiTw=; b=cw3HW7VDUYVk2BJAVZnLJNxQ5Q8IpcXa9dMy0JSD/s+ZmwtzktQvL4cLVhTZCca1IB z78biSM3/uQJH1cVV/49PUlKvB1QrMO0oi0GsYWv8cyMr5iqPH622LJW9X1yEd6deFv8 hXvcr3D4Lzdo3e9dMdmSC8wdcCiK7jEuhpvuEDntIYo+fnIIyAb/kdLFReJ3feHuC7ol hjutQ8p3OnKo1es4h8R0aO4OW5sk19x8EeOqW/IoZ36qyBBOyhh/2Fbhuje95eGn52et KDHjJLwF/xPmc3zFZAxsElsDYCGWayKgP2ECWgvR/mibaptJtkswMTylS1oMA0uqv5ph XMUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774302867; x=1774907667; 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=BEkHMO8jXqiTmi0vm8UFQ/+NQ4en/QyFghTT8/sBiTw=; b=DcFAthmJBeo4AfvcZxsNJokuPk4ZIv8ktTv67bdUvJYksog/5WxxdYwwoS2HtTPfe0 yRiIUAeJGd9fOR3YKNaX9TiR49FOti/3uZWOrLNwQOSJSxfPQ/AE80KPwWMt9Lw1xowc VjDzIlGYomCG1fx/L1Qrd2Txlwcdzw8RDVmgGvnKKIGD21InzCeHylJ0Ue07HoFPvOFr B4KdQBAjOufSnw1C8A1byc9lzKSG5XTqJoYc8V/dAmC7sOWT0eEk5lpJGsZEPOvG6j7Q LXaInjGQcZX8Zue3tw/D2DVecwoaXrImdfGF6MrJsrhrlPwD0xG3TsL5qsDAuZccU7tz x2Kw== X-Forwarded-Encrypted: i=1; AJvYcCUleybwcLWFAeXv74PXrjGO3IlpRZa5/x1U83cxTu5Wn/4FJuGlsfM91qh209HDOsbIP+8OSoSgkWWyW6ns@lists.postgresql.org X-Gm-Message-State: AOJu0YwlsBVRQtme+Jl3ZCTFzhnYs0zNDvNxfYhLWuKVoO7IELbuGdq5 XkuP2lxtk9k59k7jcmzbJzjh+k52UJuCtXw3AdmxuBPQblPiJzj5dakhxco/ChpDMSlZlqANlJX MB6Z+p/HYswIvlsEUfOyMBi/zE7tcOeI= X-Gm-Gg: ATEYQzy3FToK6HNnWFtjtTB0qtaAkkmLkwvS3V36yLwh9Z9ZABJ1aGVvdrpO5TaHgVG WBDwiLdgDF6aPXjPFiOLIIBsHda+zVUfJ2aOmqzKFP5ASd1A4PsCKwdGXBZTa2s98+zzDCrWYdq STtN0Wf9aotmHCTwl7KLJ7jxnAD2EgoSmrH7jc4q9KHQX3U3OMJbkfcvZVG6DM4lSdACnKNMFlz qHdb1ANMTk2YFvg8PBsOrA7Id19XRVVQCDfhoLld4onsqYP/HDbcro18TAlmv3Xm7+GJK9xHU/q wjQEjJJNc/UWjv+rsPP6nR2XnQebQrLTWxKULpzIF5tbtSQPO/2yffdYStureIWF82SiIixK7IG 1xxJbwYL8 X-Received: by 2002:a05:6402:4492:b0:665:5e1b:de04 with SMTP id 4fb4d7f45d1cf-668c91045eemr10540982a12.8.1774302866178; Mon, 23 Mar 2026 14:54:26 -0700 (PDT) MIME-Version: 1.0 References: <81DAFACF-7D55-4A84-ACB0-0425D1669DB4@gmail.com> In-Reply-To: From: Melanie Plageman Date: Mon, 23 Mar 2026 17:54:13 -0400 X-Gm-Features: AQROBzCmN0nrTQVS3X99JS3rq1Kjd4t0PaZo3fE_pbvbOP23gYnQnrHg9eJ3624 Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Andres Freund Cc: Kirill Reshke , Chao Li , Andrey Borodin , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="000000000000114061064db81427" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000114061064db81427 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Mar 22, 2026 at 3:58=E2=80=AFPM Melanie Plageman wrote: > > I've pushed the first two patches. Attached are the remaining 10. No > changes were made to those from the previous version. I'm planning on pushing 0001-0005 in the morning. I've made some significant changes to 0006 and realized I need some help. 0006 tracks what relations are modified by a query. This new version (v44) uses relation oids instead of rt indexes to handle cases where the same relation appears more than once in the range table (e.g. INSERT INTO foo SELECT * FROM foo; foo appears twice). It computes modifiedRelOids (a list of relation OIDs modified by the query) in the planner and stores them in the PlannedStmt. There is one big issue I'm not sure how to solve: For queries like INSERT INTO ptable SELECT * FROM ptable, where ptable is a partitioned table, though we scan ptable, we don't know when executing that scan that we will then modify ptable with the insert. In my patch, I've added find_all_inheritors() when populating modifiedRelOids, but I realize this probably isn't acceptable to add to planner from a performance perspective. I'm looking for other ways to solve the problem. Now, for my use case (setting the VM), we don't mind setting the VM during the table scan part of the query. Whatever page gets the inserted tuple will clear all-visible -- but that is just one page out of many. However, future users of modifiedRelOids will likely expect it to contain all modified relation oids. I could also check when setting up the scan descriptor if the leaf partition's parents (would have to check full ancestry) are in modifiedRelOids. This also doesn't address the problem of future users thinking modifiedRelOids is complete. Note that it also means partitions that aren't modified will be included in modifiedRelOids if one of the partitions is being modified. I could also just change the name of the modifiedRelOids to something that doesn't make future users think it's exhaustive. - Melanie --000000000000114061064db81427 Content-Type: text/x-patch; charset="UTF-8"; name="v44-0001-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Disposition: attachment; filename="v44-0001-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn3q2ms90 RnJvbSBjYjg5Y2MxYzkxMWY3NGY2NmQ3ZmViZTY5Y2JlZjk1Y2VmNWM2MTRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IERlYyAyMDI1IDE2OjUxOjA1IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDQgMDEvMTBdIFVzZSBHbG9iYWxWaXNTdGF0ZSBpbiB2YWN1dW0gdG8gZGV0ZXJtaW5l IHBhZ2UKIGxldmVsIHZpc2liaWxpdHkKCkR1cmluZyB2YWN1dW0ncyBmaXJzdCBhbmQgdGhpcmQg cGhhc2VzLCB3ZSBleGFtaW5lIHR1cGxlcycgdmlzaWJpbGl0eSB0bwpkZXRlcm1pbmUgaWYgd2Ug Y2FuIHNldCB0aGUgcGFnZSBhbGwtdmlzaWJsZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAuCgpQcmV2 aW91c2x5LCB0aGlzIGNoZWNrIGNvbXBhcmVkIHR1cGxlIHhtaW5zIGFnYWluc3QgYSBzaW5nbGUg WElEIGNob3NlbgphdCB0aGUgc3RhcnQgb2YgdmFjdXVtIChPbGRlc3RYbWluKS4gV2Ugbm93IHVz ZSBHbG9iYWxWaXNTdGF0ZSwgd2hpY2gKYWxzbyBlbmFibGVzIGZ1dHVyZSB3b3JrIHRvIHNldCB0 aGUgVk0gZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nLCBzaW5jZQpvcmRpbmFyeSBxdWVyaWVzIGhh dmUgYWNjZXNzIHRvIEdsb2JhbFZpc1N0YXRlIGJ1dCBub3QgT2xkZXN0WG1pbi4KClRoaXMgYWxz byBiZW5lZml0cyB2YWN1dW06IGluIHNvbWUgY2FzZXMsIEdsb2JhbFZpc1N0YXRlIG1heSBhZHZh bmNlCmR1cmluZyBhIHZhY3V1bSwgYWxsb3dpbmcgbW9yZSBwYWdlcyB0byBiZWNvbWUgY29uc2lk ZXJlZCBhbGwtdmlzaWJsZS4KQW5kLCBpbiB0aGUgZnV0dXJlLCB3ZSBjb3VsZCBlYXNpbHkgYWRk IGEgaGV1cmlzdGljIHRvIHVwZGF0ZQpHbG9iYWxWaXNTdGF0ZSBtb3JlIGZyZXF1ZW50bHkgZHVy aW5nIHZhY3V1bXMgb2YgbGFyZ2UgdGFibGVzLgoKT2xkZXN0WG1pbiBpcyBzdGlsbCB1c2VkIGZv ciBmcmVlemluZyBhbmQgYXMgYSBiYWNrc3RvcCB0byBlbnN1cmUgd2UKZG9uJ3QgZnJlZXplIGEg ZGVhZCB0dXBsZSB0aGF0IHdhc24ndCB5ZXQgcHJ1bmFibGUgYWNjb3JkaW5nIHRvCkdsb2JhbFZp c1N0YXRlIGluIHRoZSByYXJlIG9jY3VycmVuY2VzIHdoZXJlIEdsb2JhbFZpc1N0YXRlIG1vdmVz CmJhY2t3YXJkcy4KCkJlY2F1c2UgY29tcGFyaW5nIGEgdHJhbnNhY3Rpb24gSUQgYWdhaW5zdCBH bG9iYWxWaXNTdGF0ZSBpcyBtb3JlCmV4cGVuc2l2ZSB0aGFuIGNvbXBhcmluZyBhZ2FpbnN0IGEg c2luZ2xlIFhJRCwgd2UgZGVmZXIgdGhpcyBjaGVjayB1bnRpbAphZnRlciBzY2FubmluZyBhbGwg dHVwbGVzIG9uIHRoZSBwYWdlLiBUaGVyZWZvcmUsIHdlIHBlcmZvcm0gdGhlCkdsb2JhbFZpc1N0 YXRlIGNoZWNrIG9ubHkgb25jZSBwZXIgcGFnZS4gVGhpcyBpcyBzYWZlIGJlY2F1c2UKdmlzaWJp bGl0eV9jdXRvZmZfeGlkIHJlY29yZHMgdGhlIG5ld2VzdCBsaXZlIHhtaW4gb24gdGhlIHBhZ2U7 IGlmIGl0IGlzCmdsb2JhbGx5IHZpc2libGUsIHRoZW4gdGhlIGVudGlyZSBwYWdlIGlzIGFsbC12 aXNpYmxlLgoKVXNpbmcgR2xvYmFsVmlzU3RhdGUgbWVhbnMgb24tYWNjZXNzIHBydW5pbmcgY2Fu IGFsc28gbWFpbnRhaW4KdmlzaWJpbGl0eV9jdXRvZmZfeGlkLCB3aGljaCBpcyByZXF1aXJlZCB0 byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwCm9uLWFjY2VzcyBpbiB0aGUgZnV0dXJlLgoKQXV0aG9y OiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1i eTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBM aSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJl c2hrZWtpcmlsbEBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxh dC9icWM0a2g1bWlkZm40NGduamlxZXozYmpxdjR6b2d5ZGd1dmRuNDQ2cml3NDVqY2YzeSU0MDRl ejY2aWw3ZWJ2ayNjNzU1ZWYxNTE1MDdhYmE1ODQ3MWZmYWNhNjA3ZTQ5MwotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMgfCAzMSArKysrKysrKysrLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICAgICB8IDU0ICsrKysrKysrKyst LS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgICAgICAgfCA2 MCArKysrKysrKysrKysrKy0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFj dXVtLmMgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMg ICAgICAgICB8IDE5ICsrKystLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAg ICAgICAgICAgfCAgNCArKwogc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5oICAgICAgICAgICAg ICAgICB8ICA4ICsrLQogNyBmaWxlcyBjaGFuZ2VkLCAxMjMgaW5zZXJ0aW9ucygrKSwgNTUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zp c2liaWxpdHkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMK aW5kZXggZmM2NGY0MzQzY2UuLjlhN2JmMzMxZGY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKQEAgLTExMzEsNiArMTEzMSwzMiBAQCBIZWFwVHVwbGVT YXRpc2ZpZXNWYWN1dW0oSGVhcFR1cGxlIGh0dXAsIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwK IAlyZXR1cm4gcmVzOwogfQogCisvKgorICogV3JhcHBlciBhcm91bmQgR2xvYmFsVmlzVGVzdElz UmVtb3ZhYmxlWGlkKCkgZm9yIHVzZSB3aGVuIGV4YW1pbmluZyBsaXZlCisgKiB0dXBsZXMuIFJl dHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gWElEIG1heSBiZSBjb25zaWRlcmVkIHJ1bm5pbmcgYnkg YXQgbGVhc3QKKyAqIG9uZSBzbmFwc2hvdC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGFsb25lIGlz IGluc3VmZmljaWVudCB0byBkZXRlcm1pbmUgdHVwbGUgdmlzaWJpbGl0eTsgY2FsbGVycworICog bXVzdCBhbHNvIGNvbnNpZGVyIHRoZSBYSUQncyBjb21taXQgc3RhdHVzLiBJdHMgcHVycG9zZSBp cyBwdXJlbHkgc2VtYW50aWM6CisgKiB3aGVuIGFwcGxpZWQgdG8gbGl2ZSB0dXBsZXMsIEdsb2Jh bFZpc1Rlc3RJc1JlbW92YWJsZVhpZCgpIGlzIGNoZWNraW5nCisgKiB3aGV0aGVyIHRoZSBpbnNl cnRpbmcgdHJhbnNhY3Rpb24gaXMgc3RpbGwgY29uc2lkZXJlZCBydW5uaW5nLCBub3Qgd2hldGhl cgorICogdGhlIHR1cGxlIGlzIHJlbW92YWJsZS4gTGl2ZSB0dXBsZXMgYXJlLCBieSBkZWZpbml0 aW9uLCBub3QgcmVtb3ZhYmxlLCBidXQKKyAqIHRoZSBzbmFwc2hvdCBjcml0ZXJpYSBmb3Ig4oCc dHJhbnNhY3Rpb24gc3RpbGwgcnVubmluZ+KAnSBhcmUgaWRlbnRpY2FsIHRvCisgKiB0aG9zZSB1 c2VkIGZvciByZW1vdmFsIFhJRHMuCisgKgorICogSWYgYWxsb3dfdXBkYXRlIGlzIHRydWUsIHRo ZSBHbG9iYWxWaXNTdGF0ZSBib3VuZGFyaWVzIG1heSBiZSB1cGRhdGVkLiBJZgorICogaXQgaXMg ZmFsc2UsIHRoZXkgZGVmaW5pdGVseSB3aWxsIG5vdCBiZSB1cGRhdGVkLgorICoKKyAqIFNlZSB0 aGUgY29tbWVudCBhYm92ZSBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVbRnVsbF1YaWQoKSBmb3Ig ZGV0YWlscyBvbgorICogdGhlIHJlcXVpcmVkIHByZWNvbmRpdGlvbnMgZm9yIGNhbGxpbmcgdGhp cyBmdW5jdGlvbi4KKyAqLworYm9vbAorR2xvYmFsVmlzVGVzdFhpZENvbnNpZGVyZWRSdW5uaW5n KEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJCSAgYm9v bCBhbGxvd191cGRhdGUpCit7CisJcmV0dXJuICFHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQo c3RhdGUsIHhpZCwgYWxsb3dfdXBkYXRlKTsKK30KKwogLyoKICAqIFdvcmsgaG9yc2UgZm9yIEhl YXBUdXBsZVNhdGlzZmllc1ZhY3V1bSBhbmQgc2ltaWxhciByb3V0aW5lcy4KICAqCkBAIC0xMzU0 LDcgKzEzODAsNyBAQCBIZWFwVHVwbGVTYXRpc2ZpZXNOb25WYWN1dW1hYmxlKEhlYXBUdXBsZSBo dHVwLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAl7CiAJCUFzc2VydChUcmFuc2FjdGlvbklkSXNWYWxp ZChkZWFkX2FmdGVyKSk7CiAKLQkJaWYgKEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChzbmFw c2hvdC0+dmlzdGVzdCwgZGVhZF9hZnRlcikpCisJCWlmIChHbG9iYWxWaXNUZXN0SXNSZW1vdmFi bGVYaWQoc25hcHNob3QtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIsIHRydWUpKQogCQkJcmVzID0gSEVB UFRVUExFX0RFQUQ7CiAJfQogCWVsc2UKQEAgLTE0MjAsNyArMTQ0Niw4IEBAIEhlYXBUdXBsZUlz U3VyZWx5RGVhZChIZWFwVHVwbGUgaHR1cCwgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QpCiAKIAkv KiBEZWxldGVyIGNvbW1pdHRlZCwgc28gdHVwbGUgaXMgZGVhZCBpZiB0aGUgWElEIGlzIG9sZCBl bm91Z2guICovCiAJcmV0dXJuIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LAot CQkJCQkJCQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0UmF3WG1heCh0dXBsZSkpOworCQkJCQkJCQkJ ICAgSGVhcFR1cGxlSGVhZGVyR2V0UmF3WG1heCh0dXBsZSksCisJCQkJCQkJCQkgICB0cnVlKTsK IH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggYjM4M2IwZmNhOGIu LjhlYjNhZmRhNGJmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMTYwLDEw ICsxNjAsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkgKiBhbGwtZnJvemVuIGJpdHMgaW4gdGhlIHZp c2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBhZnRlcgogCSAqIHBydW5pbmcu CiAJICoKLQkgKiB2aXNpYmlsaXR5X2N1dG9mZl94aWQgaXMgdGhlIG5ld2VzdCB4bWluIG9mIGxp dmUgdHVwbGVzIG9uIHRoZSBwYWdlLgotCSAqIFRoZSBjYWxsZXIgY2FuIHVzZSBpdCBhcyB0aGUg Y29uZmxpY3QgaG9yaXpvbiwgd2hlbiBzZXR0aW5nIHRoZSBWTQotCSAqIGJpdHMuICBJdCBpcyBv bmx5IHZhbGlkIGlmIHdlIGZyb3plIHNvbWUgdHVwbGVzLCBhbmQgc2V0X2FsbF9mcm96ZW4gaXMK LQkgKiB0cnVlLgorCSAqIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCBpcyB0aGUgbmV3ZXN0IHhtaW4g b2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuIEl0CisJICogaXMgdXNlZCBhZnRlciBwcm9jZXNz aW5nIGFsbCB0dXBsZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBwYWdlIGNhbiBiZQorCSAqIGNvbnNp ZGVyZWQgYWxsLXZpc2libGUgKGlmIHRoZSBuZXdlc3QgeG1pbiBpcyBzdGlsbCBjb25zaWRlcmVk IHJ1bm5pbmcKKwkgKiBieSBzb21lIHNuYXBzaG90LCBpdCBjYW5ub3QgYmUpLiBJdCBpcyBhbHNv IHVzZWQgYnkgdGhlIGNhbGxlciBhcyB0aGUKKwkgKiBjb25mbGljdCBob3Jpem9uIHdoZW4gc2V0 dGluZyB0aGUgVk0gYml0cywgdW5sZXNzIHdlIGZyb3plIGFsbCB0dXBsZXMKKwkgKiBvbiB0aGUg cGFnZSAoaW4gd2hpY2ggY2FzZSB0aGUgY29uZmxpY3QgeGlkIHdhcyBhbHJlYWR5IGluY2x1ZGVk IGluIHRoZQorCSAqIFdBTCByZWNvcmQpLgogCSAqCiAJICogTk9URTogc2V0X2FsbF92aXNpYmxl IGFuZCBzZXRfYWxsX2Zyb3plbiBpbml0aWFsbHkgZG9uJ3QgaW5jbHVkZQogCSAqIExQX0RFQUQg aXRlbXMuIFRoYXQncyBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgp IHRvCkBAIC0yODEsNyArMjg0LDcgQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxh dGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIAkgKi8KIAl2aXN0ZXN0ID0g R2xvYmFsVmlzVGVzdEZvcihyZWxhdGlvbik7CiAKLQlpZiAoIUdsb2JhbFZpc1Rlc3RJc1JlbW92 YWJsZVhpZCh2aXN0ZXN0LCBwcnVuZV94aWQpKQorCWlmICghR2xvYmFsVmlzVGVzdElzUmVtb3Zh YmxlWGlkKHZpc3Rlc3QsIHBydW5lX3hpZCwgdHJ1ZSkpCiAJCXJldHVybjsKIAogCS8qCkBAIC0x MDgxLDYgKzEwODQsMTkgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQ YXJhbXMgKnBhcmFtcywKIAkgKi8KIAlwcnVuZV9mcmVlemVfcGxhbigmcHJzdGF0ZSwgb2ZmX2xv Yyk7CiAKKwkvKgorCSAqIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHRoZSBsaXZlIHR1cGxlcyBvbiB0 aGUgcGFnZSwgaWYgdGhlIG5ld2VzdCB4bWluCisJICogYW1vbmdzdCB0aGVtIG1heSBiZSBjb25z aWRlcmVkIHJ1bm5pbmcgYnkgYW55IHNuYXBzaG90LCB0aGUgcGFnZSBjYW5ub3QKKwkgKiBiZSBh bGwtdmlzaWJsZS4gVGhpcyBzaG91bGQgYmUgZG9uZSBiZWZvcmUgZGV0ZXJtaW5pbmcgd2hldGhl ciBvciBub3QKKwkgKiB0byBvcHBvcnR1bmlzdGljYWxseSBmcmVlemUuCisJICovCisJaWYgKHBy c3RhdGUuc2V0X2FsbF92aXNpYmxlICYmCisJCVRyYW5zYWN0aW9uSWRJc05vcm1hbChwcnN0YXRl LnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkgJiYKKwkJR2xvYmFsVmlzVGVzdFhpZENvbnNpZGVyZWRS dW5uaW5nKHByc3RhdGUudmlzdGVzdCwKKwkJCQkJCQkJCQkgIHByc3RhdGUudmlzaWJpbGl0eV9j dXRvZmZfeGlkLAorCQkJCQkJCQkJCSAgdHJ1ZSkpCisJCXByc3RhdGUuc2V0X2FsbF92aXNpYmxl ID0gcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOworCiAJLyoKIAkgKiBJZiBjaGVja3N1 bXMgYXJlIGVuYWJsZWQsIGNhbGxpbmcgaGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFjdXVtKCkgd2hp bGUKIAkgKiBjaGVja2luZyB0dXBsZSB2aXNpYmlsaXR5IGluZm9ybWF0aW9uIGluIHBydW5lX2Zy ZWV6ZV9wbGFuKCkgbWF5IGhhdmUKQEAgLTEyODMsNyArMTI5OSw3IEBAIGhlYXBfcHJ1bmVfc2F0 aXNmaWVzX3ZhY3V1bShQcnVuZVN0YXRlICpwcnN0YXRlLCBIZWFwVHVwbGUgdHVwKQogCSAqIGlm IHRoZSBHbG9iYWxWaXNTdGF0ZSBoYXMgYmVlbiB1cGRhdGVkIHNpbmNlIHRoZSBiZWdpbm5pbmcg b2YgdmFjdXVtaW5nCiAJICogdGhlIHJlbGF0aW9uLgogCSAqLwotCWlmIChHbG9iYWxWaXNUZXN0 SXNSZW1vdmFibGVYaWQocHJzdGF0ZS0+dmlzdGVzdCwgZGVhZF9hZnRlcikpCisJaWYgKEdsb2Jh bFZpc1Rlc3RJc1JlbW92YWJsZVhpZChwcnN0YXRlLT52aXN0ZXN0LCBkZWFkX2FmdGVyLCB0cnVl KSkKIAkJcmV0dXJuIEhFQVBUVVBMRV9ERUFEOwogCiAJcmV0dXJuIHJlczsKQEAgLTE3NDksMjkg KzE3NjUsMTUgQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0 YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCQkJCX0KIAogCQkJCS8qCi0JCQkJ ICogVGhlIGluc2VydGVyIGRlZmluaXRlbHkgY29tbWl0dGVkLiAgQnV0IGlzIGl0IG9sZCBlbm91 Z2gKLQkJCQkgKiB0aGF0IGV2ZXJ5b25lIHNlZXMgaXQgYXMgY29tbWl0dGVkPyAgQSBGcm96ZW5U cmFuc2FjdGlvbklkCi0JCQkJICogaXMgc2VlbiBhcyBjb21taXR0ZWQgdG8gZXZlcnlvbmUuICBP dGhlcndpc2UsIHdlIGNoZWNrIGlmCi0JCQkJICogdGhlcmUgaXMgYSBzbmFwc2hvdCB0aGF0IGNv bnNpZGVycyB0aGlzIHhpZCB0byBzdGlsbCBiZQotCQkJCSAqIHJ1bm5pbmcsIGFuZCBpZiBzbywg d2UgZG9uJ3QgY29uc2lkZXIgdGhlIHBhZ2UgYWxsLXZpc2libGUuCisJCQkJICogVGhlIGluc2Vy dGVyIGRlZmluaXRlbHkgY29tbWl0dGVkLiBCdXQgd2UgZG9uJ3Qga25vdyBpZiBpdAorCQkJCSAq IGlzIG9sZCBlbm91Z2ggdGhhdCBldmVyeW9uZSBzZWVzIGl0IGFzIGNvbW1pdHRlZC4gTGF0ZXIs CisJCQkJICogYWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIHR1cGxlcyBvbiB0aGUgcGFnZSwgd2Un bGwgY2hlY2sgaWYKKwkJCQkgKiB0aGVyZSBpcyBhbnkgc25hcHNob3QgdGhhdCBzdGlsbCBjb25z aWRlcnMgdGhlIG5ld2VzdCB4aWQKKwkJCQkgKiBvbiB0aGUgcGFnZSB0byBiZSBydW5uaW5nLiBJ ZiBzbywgd2UgZG9uJ3QgY29uc2lkZXIgdGhlCisJCQkJICogcGFnZSBhbGwtdmlzaWJsZS4KIAkJ CQkgKi8KIAkJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVyR2V0WG1pbihodHVwKTsKIAotCQkJCS8q Ci0JCQkJICogRm9yIG5vdyBhbHdheXMgdXNlIHByc3RhdGUtPmN1dG9mZnMgZm9yIHRoaXMgdGVz dCwgYmVjYXVzZQotCQkJCSAqIHdlIG9ubHkgdXBkYXRlICdzZXRfYWxsX3Zpc2libGUnIGFuZCAn c2V0X2FsbF9mcm96ZW4nIHdoZW4KLQkJCQkgKiBmcmVlemluZyBpcyByZXF1ZXN0ZWQuIFdlIGNv dWxkIHVzZQotCQkJCSAqIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCBpbnN0ZWFkLCBpZiBh IG5vbi1mcmVlemluZwotCQkJCSAqIGNhbGxlciB3YW50ZWQgdG8gc2V0IHRoZSBWTSBiaXQuCi0J CQkJICovCi0JCQkJQXNzZXJ0KHByc3RhdGUtPmN1dG9mZnMpOwotCQkJCWlmICghVHJhbnNhY3Rp b25JZFByZWNlZGVzKHhtaW4sIHByc3RhdGUtPmN1dG9mZnMtPk9sZGVzdFhtaW4pKQotCQkJCXsK LQkJCQkJcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlID0gZmFsc2U7Ci0JCQkJCXByc3RhdGUtPnNl dF9hbGxfZnJvemVuID0gZmFsc2U7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQogCQkJCS8qIFRyYWNr IG5ld2VzdCB4bWluIG9uIHBhZ2UuICovCiAJCQkJaWYgKFRyYW5zYWN0aW9uSWRGb2xsb3dzKHht aW4sIHByc3RhdGUtPnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkgJiYKIAkJCQkJVHJhbnNhY3Rpb25J ZElzTm9ybWFsKHhtaW4pKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDFh NDQ2MDUwZDg1Li43OTc5NzNkN2JkMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YwpAQCAtNDY4LDEzICs0NjgsMTQgQEAgc3RhdGljIHZvaWQgZGVhZF9pdGVtc19jbGVhbnVwKExW UmVsU3RhdGUgKnZhY3JlbCk7CiAKICNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCiBzdGF0aWMg Ym9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAot CQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJCQkJCQkJCSBHbG9iYWxWaXNT dGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkJCSBib29sICphbGxfZnJvemVuLAogCQkJCQkJCQkJIFRy YW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKIAkJCQkJCQkJCSBPZmZzZXROdW1i ZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKICNlbmRpZgogc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dvdWxk X2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKLQkJCQkJCQkJCQkgICBU cmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJCQkJICAgR2xvYmFsVmlzU3RhdGUgKnZp c3Rlc3QsCisJCQkJCQkJCQkJICAgYm9vbCBhbGxvd191cGRhdGVfdmlzdGVzdCwKIAkJCQkJCQkJ CQkgICBPZmZzZXROdW1iZXIgKmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAgIGludCBuZGVhZG9m ZnNldHMsCiAJCQkJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKQEAgLTIwODksNyArMjA5MCw3 IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJCUFzc2VydChwcmVzdWx0 LmxwZGVhZF9pdGVtcyA9PSAwKTsKIAogCQlBc3NlcnQoaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxl KHZhY3JlbC0+cmVsLCBidWYsCi0JCQkJCQkJCQkJdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4s ICZkZWJ1Z19hbGxfZnJvemVuLAorCQkJCQkJCQkJCXZhY3JlbC0+dmlzdGVzdCwgJmRlYnVnX2Fs bF9mcm96ZW4sCiAJCQkJCQkJCQkJJmRlYnVnX2N1dG9mZiwgJnZhY3JlbC0+b2ZmbnVtKSk7CiAK IAkJQXNzZXJ0KHByZXN1bHQuc2V0X2FsbF9mcm96ZW4gPT0gZGVidWdfYWxsX2Zyb3plbik7CkBA IC0yODUyLDcgKzI4NTMsNyBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFj cmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAkgKiBkb25lIG91dHNpZGUg dGhlIGNyaXRpY2FsIHNlY3Rpb24uCiAJICovCiAJaWYgKGhlYXBfcGFnZV93b3VsZF9iZV9hbGxf dmlzaWJsZSh2YWNyZWwtPnJlbCwgYnVmZmVyLAotCQkJCQkJCQkJICAgdmFjcmVsLT5jdXRvZmZz Lk9sZGVzdFhtaW4sCisJCQkJCQkJCQkgICB2YWNyZWwtPnZpc3Rlc3QsIHRydWUsCiAJCQkJCQkJ CQkgICBkZWFkb2Zmc2V0cywgbnVtX29mZnNldHMsCiAJCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwg JnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKIAkJCQkJCQkJCSAgICZ2YWNyZWwtPm9mZm51bSkpCkBA IC0zNjE0LDE0ICszNjE1LDE5IEBAIGRlYWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNy ZWwpCiAgKi8KIHN0YXRpYyBib29sCiBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24g cmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJCQkJ CSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCSBib29sICphbGxfZnJvemVuLAogCQkJ CQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKIAkJCQkJCSBPZmZzZXRO dW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKQogewotCisJLyoKKwkgKiBQYXNzIGFsbG93X3VwZGF0ZV92 aXN0ZXN0IGFzIGZhbHNlIHNvIHRoYXQgdGhlIEdsb2JhbFZpc1N0YXRlCisJICogYm91bmRhcmll cyB1c2VkIGhlcmUgbWF0Y2ggdGhvc2UgdXNlZCBieSB0aGUgcHJ1bmluZyBjb2RlIHdlIGFyZQor CSAqIGNyb3NzLWNoZWNraW5nLiBBbGxvd2luZyBhbiB1cGRhdGUgY291bGQgbW92ZSB0aGUgYm91 bmRhcmllcyBiZXR3ZWVuCisJICogdGhlIHR3byBjYWxscywgY2F1c2luZyBhIHNwdXJpb3VzIGFz c2VydGlvbiBmYWlsdXJlLgorCSAqLwogCXJldHVybiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zp c2libGUocmVsLCBidWYsCi0JCQkJCQkJCQkJICBPbGRlc3RYbWluLAorCQkJCQkJCQkJCSAgdmlz dGVzdCwgZmFsc2UsCiAJCQkJCQkJCQkJICBOVUxMLCAwLAogCQkJCQkJCQkJCSAgYWxsX2Zyb3pl biwKIAkJCQkJCQkJCQkgIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKQEAgLTM2NDIsNyArMzY0OCw5 IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAg KiBSZXR1cm5zIHRydWUgaWYgdGhlIHBhZ2UgaXMgYWxsLXZpc2libGUgb3RoZXIgdGhhbiB0aGUg cHJvdmlkZWQKICAqIGRlYWRvZmZzZXRzIGFuZCBmYWxzZSBvdGhlcndpc2UuCiAgKgotICogT2xk ZXN0WG1pbiBpcyB1c2VkIHRvIGRldGVybWluZSB2aXNpYmlsaXR5LgorICogdmlzdGVzdCBpcyB1 c2VkIHRvIGRldGVybWluZSB2aXNpYmlsaXR5LiBJZiBhbGxvd191cGRhdGVfdmlzdGVzdCBpcyB0 cnVlLAorICogdGhlIGJvdW5kYXJpZXMgb2YgdGhlIEdsb2JhbFZpc1N0YXRlIG1heSBiZSB1cGRh dGVkIHdoZW4gY2hlY2tpbmcgdGhlCisgKiB2aXNpYmlsaXR5IG9mIHRoZSBuZXdlc3QgbGl2ZSBY SUQgb24gdGhlIHBhZ2UuCiAgKgogICogT3V0cHV0IHBhcmFtZXRlcnM6CiAgKgpAQCAtMzY2MSw3 ICszNjY5LDggQEAgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVy IGJ1ZiwKICAqLwogc3RhdGljIGJvb2wKIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShS ZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBPbGRlc3RY bWluLAorCQkJCQkJCSAgIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAorCQkJCQkJCSAgIGJvb2wg YWxsb3dfdXBkYXRlX3Zpc3Rlc3QsCiAJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpkZWFkb2Zmc2V0 cywKIAkJCQkJCQkgICBpbnQgbmRlYWRvZmZzZXRzLAogCQkJCQkJCSAgIGJvb2wgKmFsbF9mcm96 ZW4sCkBAIC0zNzQyLDcgKzM3NTEsNyBAQCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUo UmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCXsKIAkJCQkJVHJhbnNhY3Rpb25JZCB4bWlu OwogCi0JCQkJCS8qIENoZWNrIGNvbW1lbnRzIGluIGxhenlfc2Nhbl9wcnVuZS4gKi8KKwkJCQkJ LyogQ2hlY2sgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbCBjb21tZW50cyAq LwogCQkJCQlpZiAoIUhlYXBUdXBsZUhlYWRlclhtaW5Db21taXR0ZWQodHVwbGUudF9kYXRhKSkK IAkJCQkJewogCQkJCQkJYWxsX3Zpc2libGUgPSBmYWxzZTsKQEAgLTM3NTEsMTYgKzM3NjAsMTcg QEAgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1 ZiwKIAkJCQkJfQogCiAJCQkJCS8qCi0JCQkJCSAqIFRoZSBpbnNlcnRlciBkZWZpbml0ZWx5IGNv bW1pdHRlZC4gQnV0IGlzIGl0IG9sZCBlbm91Z2gKLQkJCQkJICogdGhhdCBldmVyeW9uZSBzZWVz IGl0IGFzIGNvbW1pdHRlZD8KKwkJCQkJICogVGhlIGluc2VydGVyIGRlZmluaXRlbHkgY29tbWl0 dGVkLiBCdXQgd2UgZG9uJ3Qga25vdyBpZgorCQkJCQkgKiBpdCBpcyBvbGQgZW5vdWdoIHRoYXQg ZXZlcnlvbmUgc2VlcyBpdCBhcyBjb21taXR0ZWQuCisJCQkJCSAqIERvbid0IGNoZWNrIHRoYXQg bm93LgorCQkJCQkgKgorCQkJCQkgKiBJZiB3ZSBzY2FuIGFsbCB0dXBsZXMgd2l0aG91dCBmaW5k aW5nIG9uZSB0aGF0IHByZXZlbnRzCisJCQkJCSAqIHRoZSBwYWdlIGZyb20gYmVpbmcgYWxsLXZp c2libGUsIHdlIHRoZW4gY2hlY2sgd2hldGhlcgorCQkJCQkgKiBhbnkgc25hcHNob3Qgc3RpbGwg Y29uc2lkZXJzIHRoZSBuZXdlc3QgWElEIG9uIHRoZSBwYWdlCisJCQkJCSAqIHRvIGJlIHJ1bm5p bmcuIEluIHRoYXQgY2FzZSwgdGhlIHBhZ2UgaXMgbm90IGNvbnNpZGVyZWQKKwkJCQkJICogYWxs LXZpc2libGUuCiAJCQkJCSAqLwogCQkJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVyR2V0WG1pbih0 dXBsZS50X2RhdGEpOwotCQkJCQlpZiAoIVRyYW5zYWN0aW9uSWRQcmVjZWRlcyh4bWluLCBPbGRl c3RYbWluKSkKLQkJCQkJewotCQkJCQkJYWxsX3Zpc2libGUgPSBmYWxzZTsKLQkJCQkJCSphbGxf ZnJvemVuID0gZmFsc2U7Ci0JCQkJCQlicmVhazsKLQkJCQkJfQogCiAJCQkJCS8qIFRyYWNrIG5l d2VzdCB4bWluIG9uIHBhZ2UuICovCiAJCQkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWlu LCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgpAQCAtMzc4OSw2ICszNzk5LDIwIEBAIGhlYXBf cGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCX0K IAl9CQkJCQkJCS8qIHNjYW4gYWxvbmcgcGFnZSAqLwogCisJLyoKKwkgKiBBZnRlciBwcm9jZXNz aW5nIGFsbCB0aGUgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UsIGlmIHRoZSBuZXdlc3QgeG1pbgor CSAqIGFtb25nIHRoZW0gbWF5IHN0aWxsIGJlIGNvbnNpZGVyZWQgcnVubmluZyBieSBhbnkgc25h cHNob3QsIHRoZSBwYWdlCisJICogY2Fubm90IGJlIGFsbC12aXNpYmxlLgorCSAqLworCWlmIChh bGxfdmlzaWJsZSAmJgorCQlUcmFuc2FjdGlvbklkSXNOb3JtYWwoKnZpc2liaWxpdHlfY3V0b2Zm X3hpZCkgJiYKKwkJR2xvYmFsVmlzVGVzdFhpZENvbnNpZGVyZWRSdW5uaW5nKHZpc3Rlc3QsICp2 aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICBhbGxvd191cGRhdGVfdmlzdGVzdCkp CisJeworCQlhbGxfdmlzaWJsZSA9IGZhbHNlOworCQkqYWxsX2Zyb3plbiA9IGZhbHNlOworCX0K KwogCS8qIENsZWFyIHRoZSBvZmZzZXQgaW5mb3JtYXRpb24gb25jZSB3ZSBoYXZlIHByb2Nlc3Nl ZCB0aGUgZ2l2ZW4gcGFnZS4gKi8KIAkqbG9nZ2luZ19vZmZudW0gPSBJbnZhbGlkT2Zmc2V0TnVt YmVyOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwppbmRleCA2YjcxMTdiNTZi Mi4uYzQ2MWY4ZGMwMmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3Bn dmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwpAQCAt NTM2LDcgKzUzNiw3IEBAIHZhY3V1bVJlZGlyZWN0QW5kUGxhY2Vob2xkZXIoUmVsYXRpb24gaW5k ZXgsIFJlbGF0aW9uIGhlYXByZWwsIEJ1ZmZlciBidWZmZXIpCiAJCSAqLwogCQlpZiAoZHQtPnR1 cHN0YXRlID09IFNQR0lTVF9SRURJUkVDVCAmJgogCQkJKCFUcmFuc2FjdGlvbklkSXNWYWxpZChk dC0+eGlkKSB8fAotCQkJIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LCBkdC0+ eGlkKSkpCisJCQkgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKHZpc3Rlc3QsIGR0LT54aWQs IHRydWUpKSkKIAkJewogCQkJZHQtPnR1cHN0YXRlID0gU1BHSVNUX1BMQUNFSE9MREVSOwogCQkJ QXNzZXJ0KG9wYXF1ZS0+blJlZGlyZWN0aW9uID4gMCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2Nh cnJheS5jCmluZGV4IDBmOTEzODk3YWNjLi4yN2U1YWRlZWJmYiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvcHJvY2FycmF5LmMKQEAgLTQyMjMsMTEgKzQyMjMsMTcgQEAgR2xvYmFsVmlzVXBkYXRlKHZv aWQpCiAgKiBUaGUgc3RhdGUgcGFzc2VkIG5lZWRzIHRvIGhhdmUgYmVlbiBpbml0aWFsaXplZCBm b3IgdGhlIHJlbGF0aW9uIGZ4aWQgaXMKICAqIGZyb20gKE5VTEwgaXMgYWxzbyBPSyksIG90aGVy d2lzZSB0aGUgcmVzdWx0IG1heSBub3QgYmUgY29ycmVjdC4KICAqCisgKiBJZiBhbGxvd191cGRh dGUgaXMgZmFsc2UsIHRoZSBHbG9iYWxWaXNTdGF0ZSBib3VuZGFyaWVzIHdpbGwgbm90IGJlIHVw ZGF0ZWQKKyAqIGV2ZW4gaWYgaXQgd291bGQgb3RoZXJ3aXNlIGJlIGJlbmVmaWNpYWwuIFRoaXMg aXMgdXNlZnVsIGZvciBjYWxsZXJzIHRoYXQKKyAqIGRvIG5vdCB3YW50IEdsb2JhbFZpc1N0YXRl IHRvIGFkdmFuY2UgYXQgYWxsLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHRoZXkgbmVlZAorICogYSBj b25zZXJ2YXRpdmUgYW5zd2VyIGJhc2VkIG9uIHRoZSBjdXJyZW50IGJvdW5kYXJpZXMuCisgKgog ICogU2VlIGNvbW1lbnQgZm9yIEdsb2JhbFZpc1N0YXRlIGZvciBkZXRhaWxzLgogICovCiBib29s CiBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwK LQkJCQkJCQkJRnVsbFRyYW5zYWN0aW9uSWQgZnhpZCkKKwkJCQkJCQkJRnVsbFRyYW5zYWN0aW9u SWQgZnhpZCwKKwkJCQkJCQkJYm9vbCBhbGxvd191cGRhdGUpCiB7CiAJLyoKIAkgKiBJZiBmeGlk IGlzIG9sZGVyIHRoYW4gbWF5YmVfbmVlZGVkIGJvdW5kLCBpdCBkZWZpbml0ZWx5IGlzIHZpc2li bGUgdG8KQEAgLTQyNDgsNyArNDI1NCw3IEBAIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZUZ1bGxY aWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLAogCSAqIG1pZ2h0IG5vdCBleGlzdCBhIHNuYXBzaG90 IGNvbnNpZGVyaW5nIGZ4aWQgcnVubmluZy4gSWYgaXQgbWFrZXMgc2Vuc2UsCiAJICogdXBkYXRl IGJvdW5kYXJpZXMgYW5kIHJlY2hlY2suCiAJICovCi0JaWYgKEdsb2JhbFZpc1Rlc3RTaG91bGRV cGRhdGUoc3RhdGUpKQorCWlmIChhbGxvd191cGRhdGUgJiYgR2xvYmFsVmlzVGVzdFNob3VsZFVw ZGF0ZShzdGF0ZSkpCiAJewogCQlHbG9iYWxWaXNVcGRhdGUoKTsKIApAQCAtNDI2OCw3ICs0Mjc0 LDggQEAgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChHbG9iYWxWaXNTdGF0ZSAqc3Rh dGUsCiAgKiByZWxmcm96ZW54aWQpLgogICovCiBib29sCi1HbG9iYWxWaXNUZXN0SXNSZW1vdmFi bGVYaWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCkKK0dsb2JhbFZp c1Rlc3RJc1JlbW92YWJsZVhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQg eGlkLAorCQkJCQkJCWJvb2wgYWxsb3dfdXBkYXRlKQogewogCUZ1bGxUcmFuc2FjdGlvbklkIGZ4 aWQ7CiAKQEAgLTQyODIsNyArNDI4OSw3IEBAIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChH bG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKQogCSAqLwogCWZ4aWQgPSBG dWxsWGlkUmVsYXRpdmVUbyhzdGF0ZS0+ZGVmaW5pdGVseV9uZWVkZWQsIHhpZCk7CiAKLQlyZXR1 cm4gR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChzdGF0ZSwgZnhpZCk7CisJcmV0dXJu IEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZUZ1bGxYaWQoc3RhdGUsIGZ4aWQsIGFsbG93X3VwZGF0 ZSk7CiB9CiAKIC8qCkBAIC00Mjk2LDcgKzQzMDMsNyBAQCBHbG9iYWxWaXNDaGVja1JlbW92YWJs ZUZ1bGxYaWQoUmVsYXRpb24gcmVsLCBGdWxsVHJhbnNhY3Rpb25JZCBmeGlkKQogCiAJc3RhdGUg PSBHbG9iYWxWaXNUZXN0Rm9yKHJlbCk7CiAKLQlyZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3Zh YmxlRnVsbFhpZChzdGF0ZSwgZnhpZCk7CisJcmV0dXJuIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJs ZUZ1bGxYaWQoc3RhdGUsIGZ4aWQsIHRydWUpOwogfQogCiAvKgpAQCAtNDMxMCw3ICs0MzE3LDcg QEAgR2xvYmFsVmlzQ2hlY2tSZW1vdmFibGVYaWQoUmVsYXRpb24gcmVsLCBUcmFuc2FjdGlvbklk IHhpZCkKIAogCXN0YXRlID0gR2xvYmFsVmlzVGVzdEZvcihyZWwpOwogCi0JcmV0dXJuIEdsb2Jh bFZpc1Rlc3RJc1JlbW92YWJsZVhpZChzdGF0ZSwgeGlkKTsKKwlyZXR1cm4gR2xvYmFsVmlzVGVz dElzUmVtb3ZhYmxlWGlkKHN0YXRlLCB4aWQsIHRydWUpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5o CmluZGV4IDMwNWVjYzMxYTllLi5jYTVlOGQxNzk0ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtNDgw LDYgKzQ4MCwxMCBAQCBleHRlcm4gVE1fUmVzdWx0IEhlYXBUdXBsZVNhdGlzZmllc1VwZGF0ZShI ZWFwVHVwbGUgaHR1cCwgQ29tbWFuZElkIGN1cmNpZCwKIAkJCQkJCQkJCQkgIEJ1ZmZlciBidWZm ZXIpOwogZXh0ZXJuIEhUU1ZfUmVzdWx0IEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bShIZWFwVHVw bGUgaHR1cCwgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAogCQkJCQkJCQkJCQlCdWZmZXIgYnVm ZmVyKTsKKworZXh0ZXJuIGJvb2wgR2xvYmFsVmlzVGVzdFhpZENvbnNpZGVyZWRSdW5uaW5nKEds b2JhbFZpc1N0YXRlICpzdGF0ZSwKKwkJCQkJCQkJCQkJICBUcmFuc2FjdGlvbklkIHhpZCwKKwkJ CQkJCQkJCQkJICBib29sIGFsbG93X3VwZGF0ZSk7CiBleHRlcm4gSFRTVl9SZXN1bHQgSGVhcFR1 cGxlU2F0aXNmaWVzVmFjdXVtSG9yaXpvbihIZWFwVHVwbGUgaHR1cCwgQnVmZmVyIGJ1ZmZlciwK IAkJCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKmRlYWRfYWZ0ZXIpOwogZXh0ZXJuIHZvaWQg SGVhcFR1cGxlU2V0SGludEJpdHMoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLCBCdWZmZXIgYnVmZmVy LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvc25hcG1nci5oCmluZGV4IDhjOTE5ZDI2NDBlLi5jN2E4NjliYzJiMiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3Nu YXBtZ3IuaApAQCAtMTE1LDggKzExNSwxMiBAQCBleHRlcm4gY2hhciAqRXhwb3J0U25hcHNob3Qo U25hcHNob3Qgc25hcHNob3QpOwogICovCiB0eXBlZGVmIHN0cnVjdCBHbG9iYWxWaXNTdGF0ZSBH bG9iYWxWaXNTdGF0ZTsKIGV4dGVybiBHbG9iYWxWaXNTdGF0ZSAqR2xvYmFsVmlzVGVzdEZvcihS ZWxhdGlvbiByZWwpOwotZXh0ZXJuIGJvb2wgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKEds b2JhbFZpc1N0YXRlICpzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQpOwotZXh0ZXJuIGJvb2wgR2xv YmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIEZ1bGxU cmFuc2FjdGlvbklkIGZ4aWQpOworZXh0ZXJuIGJvb2wgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxl WGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwKKwkJCQkJCQkJCQlUcmFuc2FjdGlvbklkIHhpZCwK KwkJCQkJCQkJCQlib29sIGFsbG93X3VwZGF0ZSk7CitleHRlcm4gYm9vbCBHbG9iYWxWaXNUZXN0 SXNSZW1vdmFibGVGdWxsWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwKKwkJCQkJCQkJCQkJRnVs bFRyYW5zYWN0aW9uSWQgZnhpZCwKKwkJCQkJCQkJCQkJYm9vbCBhbGxvd191cGRhdGUpOwogZXh0 ZXJuIGJvb2wgR2xvYmFsVmlzQ2hlY2tSZW1vdmFibGVYaWQoUmVsYXRpb24gcmVsLCBUcmFuc2Fj dGlvbklkIHhpZCk7CiBleHRlcm4gYm9vbCBHbG9iYWxWaXNDaGVja1JlbW92YWJsZUZ1bGxYaWQo UmVsYXRpb24gcmVsLCBGdWxsVHJhbnNhY3Rpb25JZCBmeGlkKTsKIAotLSAKMi40My4wCgo= --000000000000114061064db81427 Content-Type: text/x-patch; charset="US-ASCII"; name="v44-0002-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Disposition: attachment; filename="v44-0002-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn3q2q601 RnJvbSAwOTY4ZWYyYmM4YWFiZDQ0OGEzY2U5NzM2NWY3NDg1OWQ4M2NiNjhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI4IEZlYiAyMDI2IDE2OjA2OjUxIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDQgMDIvMTBdIEtlZXAgbmV3ZXN0IGxpdmUgWElEIHVwLXRvLWRhdGUgZXZlbiBpZiBw YWdlIG5vdAogYWxsLXZpc2libGUKCkR1cmluZyBwcnVuaW5nLCB3ZSBrZWVwIHRyYWNrIG9mIHRo ZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUKcGFnZSB2aXNpYmxlIHRvIGFsbCBy dW5uaW5nIGFuZCBmdXR1cmUgdHJhbnNhY3Rpb25zIHNvIHRoYXQgd2UgY2FuIHVzZQppdCBsYXRl ciBhcyB0aGUgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZNIGlm IHRoZQpwYWdlIHR1cm5zIG91dCB0byBiZSBhbGwtdmlzaWJsZS4KClByZXZpb3VzbHksIHdlIHN0 b3BwZWQgdXBkYXRpbmcgdGhpcyB2YWx1ZSBvbmNlIHdlIGRldGVybWluZWQgdGhlIHBhZ2UKd2Fz IG5vdCBhbGwtdmlzaWJsZS4gSG93ZXZlciwgbWFpbnRhaW5pbmcgaXQgZXZlbiB3aGVuIHRoZSBw YWdlIGlzIG5vdAphbGwtdmlzaWJsZSBpcyBpbmV4cGVuc2l2ZSBhbmQgbWFrZXMgdGhlIHNuYXBz aG90IGNvbmZsaWN0IGhvcml6b24KY2FsY3VsYXRpb24gY2xlYXJlci4gVGhpcyBndWFyYW50ZWVz IGl0IHdvbid0IGNvbnRhaW4gYSBzdGFsZSB2YWx1ZS4KClNpbmNlIHdlJ2xsIGtlZXAgaXQgdXAg dG8gZGF0ZSBhbGwgdGhlIHRpbWUgbm93IGFueXdheSwgdGhlcmUncyBubwpyZWFzb24gbm90IHRv IG1haW50YWluIHNldF9hbGxfdmlzaWJsZSBmb3Igb24tYWNjZXNzIHBydW5pbmcuIFRoaXMgd2ls bAphbGxvdyB1cyB0byBzZXQgdGhlIFZNIG9uLWFjY2VzcyBpbiB0aGUgZnV0dXJlLgoKQXV0aG9y OiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1i eTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBM aSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9icWM0a2g1bWlkZm40NGduamlxZXozYmpxdjR6b2d5ZGd1dmRuNDQ2cml3NDVqY2YzeSU0MDRl ejY2aWw3ZWJ2awotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICB8IDEz OCArKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYyB8ICAzMCArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygr KSwgOTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA4 ZWIzYWZkYTRiZi4uMzAxZmNmZTcwMjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5j CkBAIC0xMjksNiArMTI5LDkgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkvKiBCaXRzIGluIHRoZSB2bWJ1 ZmZlciBmb3IgdGhpcyBoZWFwIHBhZ2UgKi8KIAl1aW50OAkJb2xkX3ZtYml0czsKIAorCS8qIFRo ZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZSAqLworCVRyYW5zYWN0aW9u SWQgbmV3ZXN0X2xpdmVfeGlkOworCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJICogSW5mb3JtYXRpb24gYWJvdXQgd2hhdCB3YXMg ZG9uZQogCSAqCkBAIC0xNjAsMTQgKzE2Myw2IEBAIHR5cGVkZWYgc3RydWN0CiAJICogYWxsLWZy b3plbiBiaXRzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCBjYW4gYmUgc2V0IGZvciB0aGlzIHBhZ2Ug YWZ0ZXIKIAkgKiBwcnVuaW5nLgogCSAqCi0JICogdmlzaWJpbGl0eV9jdXRvZmZfeGlkIGlzIHRo ZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZS4gSXQKLQkgKiBpcyB1c2Vk IGFmdGVyIHByb2Nlc3NpbmcgYWxsIHR1cGxlcyB0byBkZXRlcm1pbmUgaWYgdGhlIHBhZ2UgY2Fu IGJlCi0JICogY29uc2lkZXJlZCBhbGwtdmlzaWJsZSAoaWYgdGhlIG5ld2VzdCB4bWluIGlzIHN0 aWxsIGNvbnNpZGVyZWQgcnVubmluZwotCSAqIGJ5IHNvbWUgc25hcHNob3QsIGl0IGNhbm5vdCBi ZSkuIEl0IGlzIGFsc28gdXNlZCBieSB0aGUgY2FsbGVyIGFzIHRoZQotCSAqIGNvbmZsaWN0IGhv cml6b24gd2hlbiBzZXR0aW5nIHRoZSBWTSBiaXRzLCB1bmxlc3Mgd2UgZnJvemUgYWxsIHR1cGxl cwotCSAqIG9uIHRoZSBwYWdlIChpbiB3aGljaCBjYXNlIHRoZSBjb25mbGljdCB4aWQgd2FzIGFs cmVhZHkgaW5jbHVkZWQgaW4gdGhlCi0JICogV0FMIHJlY29yZCkuCi0JICoKIAkgKiBOT1RFOiBz ZXRfYWxsX3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIGluaXRpYWxseSBkb24ndCBpbmNsdWRl CiAJICogTFBfREVBRCBpdGVtcy4gVGhhdCdzIGNvbnZlbmllbnQgZm9yIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKCkgdG8KIAkgKiB1c2UgdGhlbSB0byBkZWNpZGUgd2hldGhlciB0byBmcmVl emUgdGhlIHBhZ2Ugb3Igbm90LiAgVGhlCkBAIC0xNzcsNyArMTcyLDYgQEAgdHlwZWRlZiBzdHJ1 Y3QKIAkgKi8KIAlib29sCQlzZXRfYWxsX3Zpc2libGU7CiAJYm9vbAkJc2V0X2FsbF9mcm96ZW47 Ci0JVHJhbnNhY3Rpb25JZCB2aXNpYmlsaXR5X2N1dG9mZl94aWQ7CiB9IFBydW5lU3RhdGU7CiAK IC8qCkBAIC00NTgsNTMgKzQ1Miw0MyBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQ YXJhbXMgKnBhcmFtcywKIAlwcnN0YXRlLT5kZWFkb2Zmc2V0cyA9IHByZXN1bHQtPmRlYWRvZmZz ZXRzOwogCiAJLyoKLQkgKiBWYWN1dW0gbWF5IHVwZGF0ZSB0aGUgVk0gYWZ0ZXIgd2UncmUgZG9u ZS4gIFdlIGNhbiBrZWVwIHRyYWNrIG9mCi0JICogd2hldGhlciB0aGUgcGFnZSB3aWxsIGJlIGFs bC12aXNpYmxlIGFuZCBhbGwtZnJvemVuIGFmdGVyIHBydW5pbmcgYW5kCi0JICogZnJlZXppbmcg dG8gaGVscCB0aGUgY2FsbGVyIHRvIGRvIHRoYXQuCi0JICoKLQkgKiBDdXJyZW50bHksIG9ubHkg VkFDVVVNIHNldHMgdGhlIFZNIGJpdHMuICBUbyBzYXZlIHRoZSBlZmZvcnQsIG9ubHkgZG8KLQkg KiB0aGUgYm9va2tlZXBpbmcgaWYgdGhlIGNhbGxlciBuZWVkcyBpdC4gIEN1cnJlbnRseSwgdGhh dCdzIHRpZWQgdG8KLQkgKiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLCBidXQgaXQgY291bGQgYmUg YSBzZXBhcmF0ZSBmbGFnIGlmIHlvdSB3YW50ZWQKLQkgKiB0byB1cGRhdGUgdGhlIFZNIGJpdHMg d2l0aG91dCBhbHNvIGZyZWV6aW5nIG9yIGZyZWV6ZSB3aXRob3V0IGFsc28KLQkgKiBzZXR0aW5n IHRoZSBWTSBiaXRzLgorCSAqIFdlIHRyYWNrIHdoZXRoZXIgdGhlIHBhZ2Ugd2lsbCBiZSBhbGwt dmlzaWJsZS9hbGwtZnJvemVuIGF0IHRoZSBlbmQgb2YKKwkgKiBwcnVuaW5nIGFuZCBmcmVlemlu Zy4gV2hpbGUgZXhhbWluaW5nIHR1cGxlIHZpc2liaWxpdHksIHdlJ2xsIHNldAorCSAqIHNldF9h bGxfdmlzaWJsZSB0byBmYWxzZSBpZiB0aGVyZSBhcmUgdHVwbGVzIG9uIHRoZSBwYWdlIG5vdCB2 aXNpYmxlIHRvCisJICogYWxsIHJ1bm5pbmcgYW5kIGZ1dHVyZSB0cmFuc2FjdGlvbnMuIHNldF9h bGxfdmlzaWJsZSBpcyBhbHdheXMKKwkgKiBtYWludGFpbmVkIGJ1dCBvbmx5IFZBQ1VVTSB3aWxs IHNldCB0aGUgVk0gaWYgdGhlIHBhZ2UgZW5kcyB1cCBiZWluZworCSAqIGFsbC12aXNpYmxlLgog CSAqCi0JICogSW4gYWRkaXRpb24gdG8gdGVsbGluZyB0aGUgY2FsbGVyIHdoZXRoZXIgaXQgY2Fu IHNldCB0aGUgVk0gYml0LCB3ZQotCSAqIGFsc28gdXNlICdzZXRfYWxsX3Zpc2libGUnIGFuZCAn c2V0X2FsbF9mcm96ZW4nIGZvciBvdXIgb3duCi0JICogZGVjaXNpb24tbWFraW5nLiBJZiB0aGUg d2hvbGUgcGFnZSB3b3VsZCBiZWNvbWUgZnJvemVuLCB3ZSBjb25zaWRlcgotCSAqIG9wcG9ydHVu aXN0aWNhbGx5IGZyZWV6aW5nIHR1cGxlcy4gIFdlIHdpbGwgbm90IGJlIGFibGUgdG8gZnJlZXpl IHRoZQotCSAqIHdob2xlIHBhZ2UgaWYgdGhlcmUgYXJlIHR1cGxlcyBwcmVzZW50IHRoYXQgYXJl IG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lCi0JICogb3IgaWYgdGhlcmUgYXJlIGRlYWQgdHVwbGVz IHdoaWNoIGFyZSBub3QgeWV0IHJlbW92YWJsZS4gIEhvd2V2ZXIsIGRlYWQKLQkgKiB0dXBsZXMg d2hpY2ggd2lsbCBiZSByZW1vdmVkIGJ5IHRoZSBlbmQgb2YgdmFjdXVtaW5nIHNob3VsZCBub3QK LQkgKiBwcmVjbHVkZSB1cyBmcm9tIG9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6aW5nLiAgQmVjYXVz ZSBvZiB0aGF0LCB3ZSBkbwotCSAqIG5vdCBpbW1lZGlhdGVseSBjbGVhciBzZXRfYWxsX3Zpc2li bGUgYW5kIHNldF9hbGxfZnJvemVuIHdoZW4gd2Ugc2VlCi0JICogTFBfREVBRCBpdGVtcy4gIFdl IGZpeCB0aGF0IGFmdGVyIHNjYW5uaW5nIHRoZSBsaW5lIHBvaW50ZXJzLiBXZSBtdXN0Ci0JICog Y29ycmVjdCBzZXRfYWxsX3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIGJlZm9yZSB3ZSByZXR1 cm4gdGhlbSB0byB0aGUKLQkgKiBjYWxsZXIsIHNvIHRoYXQgdGhlIGNhbGxlciBkb2Vzbid0IHNl dCB0aGUgVk0gYml0cyBpbmNvcnJlY3RseS4KKwkgKiBXZSBhbHNvIGtlZXAgdHJhY2sgb2YgdGhl IG5ld2VzdCBsaXZlIFhJRCwgd2hpY2ggaXMgdXNlZCB0byBjYWxjdWxhdGUKKwkgKiB0aGUgc25h cHNob3QgY29uZmxpY3QgaG9yaXpvbiBmb3IgYSBXQUwgcmVjb3JkIHNldHRpbmcgdGhlIFZNLgog CSAqLwotCWlmIChwcnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSkKLQl7Ci0JCXByc3RhdGUtPnNldF9h bGxfdmlzaWJsZSA9IHRydWU7Ci0JCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gdHJ1ZTsKLQl9 Ci0JZWxzZQotCXsKLQkJLyoKLQkJICogSW5pdGlhbGl6aW5nIHRvIGZhbHNlIGFsbG93cyBza2lw cGluZyB0aGUgd29yayB0byB1cGRhdGUgdGhlbSBpbgotCQkgKiBoZWFwX3BydW5lX3JlY29yZF91 bmNoYW5nZWRfbHBfbm9ybWFsKCkuCi0JCSAqLwotCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUg PSBmYWxzZTsKLQkJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsKLQl9CisJcHJzdGF0 ZS0+c2V0X2FsbF92aXNpYmxlID0gdHJ1ZTsKKwlwcnN0YXRlLT5uZXdlc3RfbGl2ZV94aWQgPSBJ bnZhbGlkVHJhbnNhY3Rpb25JZDsKIAogCS8qCi0JICogVGhlIHZpc2liaWxpdHkgY3V0b2ZmIHhp ZCBpcyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlCi0JICogcGFnZS4gIElu IHRoZSBjb21tb24gY2FzZSwgdGhpcyB3aWxsIGJlIHNldCBhcyB0aGUgY29uZmxpY3QgaG9yaXpv biB0aGUKLQkgKiBjYWxsZXIgY2FuIHVzZSBmb3IgdXBkYXRpbmcgdGhlIFZNLiAgSWYsIGF0IHRo ZSBlbmQgb2YgZnJlZXppbmcgYW5kCi0JICogcHJ1bmluZywgdGhlIHBhZ2UgaXMgYWxsLWZyb3pl biwgdGhlcmUgaXMgbm8gcG9zc2liaWxpdHkgdGhhdCBhbnkKLQkgKiBydW5uaW5nIHRyYW5zYWN0 aW9uIG9uIHRoZSBzdGFuZGJ5IGRvZXMgbm90IHNlZSB0dXBsZXMgb24gdGhlIHBhZ2UgYXMKLQkg KiBhbGwtdmlzaWJsZSwgc28gdGhlIGNvbmZsaWN0IGhvcml6b24gcmVtYWlucyBJbnZhbGlkVHJh bnNhY3Rpb25JZC4KKwkgKiBDdXJyZW50bHksIG9ubHkgVkFDVVVNIHBlcmZvcm1zIGZyZWV6aW5n LCBidXQgb3RoZXIgY2FsbGVycyBtYXkgaW4gdGhlCisJICogZnV0dXJlLiBXZSBtdXN0IGluaXRp YWxpemUgc2V0X2FsbF9mcm96ZW4gYmFzZWQgb24gd2hldGhlciBvciBub3QgdGhlCisJICogY2Fs bGVyIHBhc3NlZCBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLCBiZWNhdXNlIGlmIHRoZXkgZGlkIG5v dCwgd2Ugd29uJ3QKKwkgKiBjYWxsIGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUoKSBmb3IgZWFj aCB0dXBsZSwgYW5kIHNldF9hbGxfZnJvemVuCisJICogd2lsbCBuZXZlciBiZSBjbGVhcmVkIGZv ciB0dXBsZXMgdGhhdCBuZWVkIGZyZWV6aW5nLiBUaGlzIHdvdWxkIGxlYWQgdG8KKwkgKiBpbmNv cnJlY3RseSBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5IG1hcCBhbGwtZnJvemVuIGZvciB0aGlzIHBh Z2UuCisJICoKKwkgKiBXaGVuIGZyZWV6aW5nIGlzIG5vdCByZXF1aXJlZCAobm8gWElEcy9NWElE cyBvbGRlciB0aGFuIHRoZSBmcmVlemUKKwkgKiBjdXRvZmYpLCB3ZSBtYXkgc3RpbGwgY2hvb3Nl IHRvICJvcHBvcnR1bmlzdGljYWxseSIgZnJlZXplIGlmIGRvaW5nIHNvCisJICogd291bGQgbWFr ZSB0aGUgcGFnZSBhbGwtZnJvemVuLgorCSAqCisJICogV2Ugd2lsbCBub3QgYmUgYWJsZSB0byBm cmVlemUgdGhlIHdob2xlIHBhZ2UgYXQgdGhlIGVuZCBvZiB2YWN1dW0gaWYKKwkgKiB0aGVyZSBh cmUgdHVwbGVzIHByZXNlbnQgdGhhdCBhcmUgbm90IHZpc2libGUgdG8gZXZlcnlvbmUgb3IgaWYg dGhlcmUKKwkgKiBhcmUgZGVhZCB0dXBsZXMgd2hpY2ggd2lsbCBub3QgYmUgcmVtb3ZhYmxlLiBI b3dldmVyLCBkZWFkIHR1cGxlcyB0aGF0CisJICogd2lsbCBiZSByZW1vdmVkIGJ5IHRoZSBlbmQg b2YgdmFjdXVtIHNob3VsZCBub3QgcHJldmVudCB0aGlzCisJICogb3Bwb3J0dW5pc3RpYyBmcmVl emluZy4KKwkgKgorCSAqIFRoZXJlZm9yZSwgd2UgZG8gbm90IGNsZWFyIHNldF9hbGxfdmlzaWJs ZSBhbmQgc2V0X2FsbF9mcm96ZW4gd2hlbiB3ZQorCSAqIGVuY291bnRlciBMUF9ERUFEIGl0ZW1z LiBJbnN0ZWFkLCB3ZSBjb3JyZWN0IHRoZW0gYWZ0ZXIgZGVjaWRpbmcKKwkgKiB3aGV0aGVyIHRv IGZyZWV6ZSwgYnV0IGJlZm9yZSB1cGRhdGluZyB0aGUgVk0sIHRvIGF2b2lkIHNldHRpbmcgdGhl IFZNCisJICogYml0cyBpbmNvcnJlY3RseS4KIAkgKi8KLQlwcnN0YXRlLT52aXNpYmlsaXR5X2N1 dG9mZl94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwlwcnN0YXRlLT5zZXRfYWxsX2Zyb3pl biA9IHByc3RhdGUtPmF0dGVtcHRfZnJlZXplOwogfQogCiAvKgpAQCAtNzM0LDcgKzcxOCw2IEBA IGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShib29sIGRpZF90dXBsZV9oaW50X2ZwaSwKIAlpZiAoIXBy c3RhdGUtPmF0dGVtcHRfZnJlZXplKQogCXsKIAkJQXNzZXJ0KCFwcnN0YXRlLT5zZXRfYWxsX2Zy b3plbiAmJiBwcnN0YXRlLT5uZnJvemVuID09IDApOwotCQlBc3NlcnQocHJzdGF0ZS0+bHBkZWFk X2l0ZW1zID09IDAgfHwgIXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSk7CiAJCXJldHVybiBmYWxz ZTsKIAl9CiAKQEAgLTEwMTIsOSArOTk1LDggQEAgcHJ1bmVfZnJlZXplX2Zhc3RfcGF0aChQcnVu ZVN0YXRlICpwcnN0YXRlLCBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCkKICAqIEhFQVBfUEFH RV9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHBhc3NlZCwgd2UgYWxzbyBzZXQKICAqIHByZXN1bHQt PnNldF9hbGxfdmlzaWJsZSBhbmQgcHJlc3VsdC0+c2V0X2FsbF9mcm96ZW4gYWZ0ZXIgZGV0ZXJt aW5pbmcKICAqIHdoZXRoZXIgb3Igbm90IHRvIG9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6ZSwgdG8g aW5kaWNhdGUgaWYgdGhlIFZNIGJpdHMgY2FuCi0gKiBiZSBzZXQuICBUaGV5IGFyZSBhbHdheXMg c2V0IHRvIGZhbHNlIHdoZW4gdGhlIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUKLSAqIG9wdGlvbiBp cyBub3QgcGFzc2VkLCBiZWNhdXNlIGF0IHRoZSBtb21lbnQgb25seSBjYWxsZXJzIHRoYXQgYWxz byBmcmVlemUKLSAqIG5lZWQgdGhhdCBpbmZvcm1hdGlvbi4KKyAqIGJlIHNldC4gJ3NldF9hbGxf ZnJvemVuJyBpcyBhbHdheXMgc2V0IHRvIGZhbHNlIHdoZW4gdGhlCisgKiBIRUFQX1BBR0VfUFJV TkVfRlJFRVpFIG9wdGlvbiBpcyBub3QgcGFzc2VkLgogICoKICAqIHByZXN1bHQgY29udGFpbnMg b3V0cHV0IHBhcmFtZXRlcnMgbmVlZGVkIGJ5IGNhbGxlcnMsIHN1Y2ggYXMgdGhlIG51bWJlciBv ZgogICogdHVwbGVzIHJlbW92ZWQgYW5kIHRoZSBvZmZzZXRzIG9mIGRlYWQgaXRlbXMgb24gdGhl IHBhZ2UgYWZ0ZXIgcHJ1bmluZy4KQEAgLTEwOTEsOSArMTA3Myw5IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJICogdG8gb3Bwb3J0dW5p c3RpY2FsbHkgZnJlZXplLgogCSAqLwogCWlmIChwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSAmJgot CQlUcmFuc2FjdGlvbklkSXNOb3JtYWwocHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQpICYm CisJCVRyYW5zYWN0aW9uSWRJc05vcm1hbChwcnN0YXRlLm5ld2VzdF9saXZlX3hpZCkgJiYKIAkJ R2xvYmFsVmlzVGVzdFhpZENvbnNpZGVyZWRSdW5uaW5nKHByc3RhdGUudmlzdGVzdCwKLQkJCQkJ CQkJCQkgIHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJCQkJCQkJCSAgcHJzdGF0 ZS5uZXdlc3RfbGl2ZV94aWQsCiAJCQkJCQkJCQkJICB0cnVlKSkKIAkJcHJzdGF0ZS5zZXRfYWxs X3Zpc2libGUgPSBwcnN0YXRlLnNldF9hbGxfZnJvemVuID0gZmFsc2U7CiAKQEAgLTEyNDUsNyAr MTIyNyw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpw YXJhbXMsCiAJaWYgKHByZXN1bHQtPnNldF9hbGxfZnJvemVuKQogCQlwcmVzdWx0LT52bV9jb25m bGljdF9ob3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJZWxzZQotCQlwcmVzdWx0LT52 bV9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJCXBy ZXN1bHQtPnZtX2NvbmZsaWN0X2hvcml6b24gPSBwcnN0YXRlLm5ld2VzdF9saXZlX3hpZDsKIAog CXByZXN1bHQtPmxwZGVhZF9pdGVtcyA9IHByc3RhdGUubHBkZWFkX2l0ZW1zOwogCS8qIHRoZSBw cmVzdWx0LT5kZWFkb2Zmc2V0cyBhcnJheSB3YXMgYWxyZWFkeSBmaWxsZWQgaW4gKi8KQEAgLTE3 MDYsNiArMTY4OCw3IEBAIHN0YXRpYyB2b2lkCiBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRf bHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZudW0pCiB7CiAJ SGVhcFR1cGxlSGVhZGVyIGh0dXA7CisJVHJhbnNhY3Rpb25JZCB4bWluOwogCVBhZ2UJCXBhZ2Ug PSBwcnN0YXRlLT5wYWdlOwogCiAJQXNzZXJ0KCFwcnN0YXRlLT5wcm9jZXNzZWRbb2ZmbnVtXSk7 CkBAIC0xNzUzLDMyICsxNzM2LDI3IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9u b3JtYWwoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSkKIAkJCSAqIFNl ZSBTZXRIaW50Qml0cyBmb3IgbW9yZSBpbmZvLiAgQ2hlY2sgdGhhdCB0aGUgdHVwbGUgaXMgaGlu dGVkCiAJCQkgKiB4bWluLWNvbW1pdHRlZCBiZWNhdXNlIG9mIHRoYXQuCiAJCQkgKi8KLQkJCWlm IChwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUpCisJCQlpZiAoIUhlYXBUdXBsZUhlYWRlclhtaW5D b21taXR0ZWQoaHR1cCkpCiAJCQl7Ci0JCQkJVHJhbnNhY3Rpb25JZCB4bWluOworCQkJCXByc3Rh dGUtPnNldF9hbGxfdmlzaWJsZSA9IGZhbHNlOworCQkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVu ID0gZmFsc2U7CisJCQkJYnJlYWs7CisJCQl9CiAKLQkJCQlpZiAoIUhlYXBUdXBsZUhlYWRlclht aW5Db21taXR0ZWQoaHR1cCkpCi0JCQkJewotCQkJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUg PSBmYWxzZTsKLQkJCQkJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsKLQkJCQkJYnJl YWs7Ci0JCQkJfQorCQkJLyoKKwkJCSAqIFRoZSBpbnNlcnRlciBkZWZpbml0ZWx5IGNvbW1pdHRl ZC4gQnV0IHdlIGRvbid0IGtub3cgaWYgaXQgaXMKKwkJCSAqIG9sZCBlbm91Z2ggdGhhdCBldmVy eW9uZSBzZWVzIGl0IGFzIGNvbW1pdHRlZC4gTGF0ZXIsIGFmdGVyCisJCQkgKiBwcm9jZXNzaW5n IGFsbCB0aGUgdHVwbGVzIG9uIHRoZSBwYWdlLCB3ZSdsbCBjaGVjayBpZiB0aGVyZSBpcworCQkJ ICogYW55IHNuYXBzaG90IHRoYXQgc3RpbGwgY29uc2lkZXJzIHRoZSBuZXdlc3QgeGlkIG9uIHRo ZSBwYWdlIHRvCisJCQkgKiBiZSBydW5uaW5nLiBJZiBzbywgd2UgZG9uJ3QgY29uc2lkZXIgdGhl IHBhZ2UgYWxsLXZpc2libGUuCisJCQkgKi8KKwkJCXhtaW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRY bWluKGh0dXApOwogCi0JCQkJLyoKLQkJCQkgKiBUaGUgaW5zZXJ0ZXIgZGVmaW5pdGVseSBjb21t aXR0ZWQuIEJ1dCB3ZSBkb24ndCBrbm93IGlmIGl0Ci0JCQkJICogaXMgb2xkIGVub3VnaCB0aGF0 IGV2ZXJ5b25lIHNlZXMgaXQgYXMgY29tbWl0dGVkLiBMYXRlciwKLQkJCQkgKiBhZnRlciBwcm9j ZXNzaW5nIGFsbCB0aGUgdHVwbGVzIG9uIHRoZSBwYWdlLCB3ZSdsbCBjaGVjayBpZgotCQkJCSAq IHRoZXJlIGlzIGFueSBzbmFwc2hvdCB0aGF0IHN0aWxsIGNvbnNpZGVycyB0aGUgbmV3ZXN0IHhp ZAotCQkJCSAqIG9uIHRoZSBwYWdlIHRvIGJlIHJ1bm5pbmcuIElmIHNvLCB3ZSBkb24ndCBjb25z aWRlciB0aGUKLQkJCQkgKiBwYWdlIGFsbC12aXNpYmxlLgotCQkJCSAqLwotCQkJCXhtaW4gPSBI ZWFwVHVwbGVIZWFkZXJHZXRYbWluKGh0dXApOworCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24g cGFnZS4gKi8KKwkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCBwcnN0YXRlLT5uZXdl c3RfbGl2ZV94aWQpICYmCisJCQkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhtaW4pKQorCQkJCXBy c3RhdGUtPm5ld2VzdF9saXZlX3hpZCA9IHhtaW47CiAKLQkJCQkvKiBUcmFjayBuZXdlc3QgeG1p biBvbiBwYWdlLiAqLwotCQkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCBwcnN0YXRl LT52aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCi0JCQkJCVRyYW5zYWN0aW9uSWRJc05vcm1hbCh4 bWluKSkKLQkJCQkJcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRvZmZfeGlkID0geG1pbjsKLQkJCX0K IAkJCWJyZWFrOwogCiAJCWNhc2UgSEVBUFRVUExFX1JFQ0VOVExZX0RFQUQ6CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggNzk3OTczZDdiZDAuLjY5NjkxOWUzNWRkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC00NzAsNyArNDcwLDcgQEAgc3RhdGlj IHZvaWQgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgYm9v bCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJ CQkJCQkJIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJCQkJIGJvb2wgKmFsbF9mcm96 ZW4sCi0JCQkJCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJ CQkJCQkJIFRyYW5zYWN0aW9uSWQgKm5ld2VzdF9saXZlX3hpZCwKIAkJCQkJCQkJCSBPZmZzZXRO dW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKICNlbmRpZgogc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dv dWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKQEAgLTQ3OSw3ICs0 NzksNyBAQCBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRp b24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNl dHMsCiAJCQkJCQkJCQkJICAgaW50IG5kZWFkb2Zmc2V0cywKIAkJCQkJCQkJCQkgICBib29sICph bGxfZnJvemVuLAotCQkJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2Zm X3hpZCwKKwkJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkICpuZXdlc3RfbGl2ZV94aWQsCiAJCQkJ CQkJCQkJICAgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CiBzdGF0aWMgdm9pZCB1cGRh dGVfcmVsc3RhdHNfYWxsX2luZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIHN0YXRpYyB2b2lk IHZhY3V1bV9lcnJvcl9jYWxsYmFjayh2b2lkICphcmcpOwpAQCAtMjgyOSw3ICsyODI5LDcgQEAg bGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxr bm8sIEJ1ZmZlciBidWZmZXIsCiAJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsK IAlPZmZzZXROdW1iZXIgdW51c2VkW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAlpbnQJCQludW51 c2VkID0gMDsKLQlUcmFuc2FjdGlvbklkIHZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKKwlUcmFuc2Fj dGlvbklkIG5ld2VzdF9saXZlX3hpZDsKIAlUcmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZCA9IElu dmFsaWRUcmFuc2FjdGlvbklkOwogCWJvb2wJCWFsbF9mcm96ZW47CiAJTFZTYXZlZEVyckluZm8g c2F2ZWRfZXJyX2luZm87CkBAIC0yODU1LDE0ICsyODU1LDE0IEBAIGxhenlfdmFjdXVtX2hlYXBf cGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVy LAogCWlmIChoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFjcmVsLT5yZWwsIGJ1ZmZl ciwKIAkJCQkJCQkJCSAgIHZhY3JlbC0+dmlzdGVzdCwgdHJ1ZSwKIAkJCQkJCQkJCSAgIGRlYWRv ZmZzZXRzLCBudW1fb2Zmc2V0cywKLQkJCQkJCQkJCSAgICZhbGxfZnJvemVuLCAmdmlzaWJpbGl0 eV9jdXRvZmZfeGlkLAorCQkJCQkJCQkJICAgJmFsbF9mcm96ZW4sICZuZXdlc3RfbGl2ZV94aWQs CiAJCQkJCQkJCQkgICAmdmFjcmVsLT5vZmZudW0pKQogCXsKIAkJdm1mbGFncyB8PSBWSVNJQklM SVRZTUFQX0FMTF9WSVNJQkxFOwogCQlpZiAoYWxsX2Zyb3plbikKIAkJewogCQkJdm1mbGFncyB8 PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU47Ci0JCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1Zh bGlkKHZpc2liaWxpdHlfY3V0b2ZmX3hpZCkpOworCQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNW YWxpZChuZXdlc3RfbGl2ZV94aWQpKTsKIAkJfQogCiAJCS8qCkBAIC0yOTAzLDcgKzI5MDMsNyBA QCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBi bGtubywgQnVmZmVyIGJ1ZmZlciwKIAkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKGJsa25vLAog CQkJCQkJCQkgdm1idWZmZXIsIHZtZmxhZ3MsCiAJCQkJCQkJCSB2YWNyZWwtPnJlbC0+cmRfbG9j YXRvcik7Ci0JCWNvbmZsaWN0X3hpZCA9IHZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKKwkJY29uZmxp Y3RfeGlkID0gbmV3ZXN0X2xpdmVfeGlkOwogCX0KIAogCS8qCkBAIC0zNjE3LDcgKzM2MTcsNyBA QCBzdGF0aWMgYm9vbAogaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVm ZmVyIGJ1ZiwKIAkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCSBib29sICph bGxfZnJvemVuLAotCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwK KwkJCQkJCSBUcmFuc2FjdGlvbklkICpuZXdlc3RfbGl2ZV94aWQsCiAJCQkJCQkgT2Zmc2V0TnVt YmVyICpsb2dnaW5nX29mZm51bSkKIHsKIAkvKgpAQCAtMzYzMCw3ICszNjMwLDcgQEAgaGVhcF9w YWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJCQkJCQkJCQkg IHZpc3Rlc3QsIGZhbHNlLAogCQkJCQkJCQkJCSAgTlVMTCwgMCwKIAkJCQkJCQkJCQkgIGFsbF9m cm96ZW4sCi0JCQkJCQkJCQkJICB2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICBu ZXdlc3RfbGl2ZV94aWQsCiAJCQkJCQkJCQkJICBsb2dnaW5nX29mZm51bSk7CiB9CiAjZW5kaWYK QEAgLTM2NTUsNyArMzY1NSw3IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiBy ZWwsIEJ1ZmZlciBidWYsCiAgKiBPdXRwdXQgcGFyYW1ldGVyczoKICAqCiAgKiAgLSAqYWxsX2Zy b3plbjogdHJ1ZSBpZiBldmVyeSB0dXBsZSBvbiB0aGUgcGFnZSBpcyBmcm96ZW4KLSAqICAtICp2 aXNpYmlsaXR5X2N1dG9mZl94aWQ6IG5ld2VzdCB4bWluOyB2YWxpZCBvbmx5IGlmIHBhZ2UgaXMg YWxsLXZpc2libGUKKyAqICAtICpuZXdlc3RfbGl2ZV94aWQ6IG5ld2VzdCB4bWluIG9mIGxpdmUg dHVwbGVzIG9uIHRoZSBwYWdlCiAgKiAgLSAqbG9nZ2luZ19vZmZudW06IE9mZnNldE51bWJlciBv ZiBjdXJyZW50IHR1cGxlIGJlaW5nIHByb2Nlc3NlZDsKICAqICAgICB1c2VkIGJ5IHZhY3V1bSdz IGVycm9yIGNhbGxiYWNrIHN5c3RlbS4KICAqCkBAIC0zNjc0LDcgKzM2NzQsNyBAQCBoZWFwX3Bh Z2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJ CSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCiAJCQkJCQkJICAgaW50IG5kZWFkb2Zmc2V0 cywKIAkJCQkJCQkgICBib29sICphbGxfZnJvemVuLAotCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQg KnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkgICBUcmFuc2FjdGlvbklkICpuZXdlc3Rf bGl2ZV94aWQsCiAJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkKIHsKIAlQ YWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWYpOwpAQCAtMzY4NCw3ICszNjg0LDcgQEAgaGVh cF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAli b29sCQlhbGxfdmlzaWJsZSA9IHRydWU7CiAJaW50CQkJbWF0Y2hlZF9kZWFkX2NvdW50ID0gMDsK IAotCSp2aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwkqbmV3 ZXN0X2xpdmVfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJKmFsbF9mcm96ZW4gPSB0cnVl OwogCiAJQXNzZXJ0KG5kZWFkb2Zmc2V0cyA9PSAwIHx8IGRlYWRvZmZzZXRzKTsKQEAgLTM3NzMs OSArMzc3Myw5IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWws IEJ1ZmZlciBidWYsCiAJCQkJCXhtaW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRYbWluKHR1cGxlLnRf ZGF0YSk7CiAKIAkJCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KLQkJCQkJaWYg KFRyYW5zYWN0aW9uSWRGb2xsb3dzKHhtaW4sICp2aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCisJ CQkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCAqbmV3ZXN0X2xpdmVfeGlkKSAmJgog CQkJCQkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhtaW4pKQotCQkJCQkJKnZpc2liaWxpdHlfY3V0 b2ZmX3hpZCA9IHhtaW47CisJCQkJCQkqbmV3ZXN0X2xpdmVfeGlkID0geG1pbjsKIAogCQkJCQkv KiBDaGVjayB3aGV0aGVyIHRoaXMgdHVwbGUgaXMgYWxyZWFkeSBmcm96ZW4gb3Igbm90ICovCiAJ CQkJCWlmIChhbGxfdmlzaWJsZSAmJiAqYWxsX2Zyb3plbiAmJgpAQCAtMzgwNSw4ICszODA1LDgg QEAgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1 ZiwKIAkgKiBjYW5ub3QgYmUgYWxsLXZpc2libGUuCiAJICovCiAJaWYgKGFsbF92aXNpYmxlICYm Ci0JCVRyYW5zYWN0aW9uSWRJc05vcm1hbCgqdmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgotCQlH bG9iYWxWaXNUZXN0WGlkQ29uc2lkZXJlZFJ1bm5pbmcodmlzdGVzdCwgKnZpc2liaWxpdHlfY3V0 b2ZmX3hpZCwKKwkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKCpuZXdlc3RfbGl2ZV94aWQpICYmCisJ CUdsb2JhbFZpc1Rlc3RYaWRDb25zaWRlcmVkUnVubmluZyh2aXN0ZXN0LCAqbmV3ZXN0X2xpdmVf eGlkLAogCQkJCQkJCQkJCSAgYWxsb3dfdXBkYXRlX3Zpc3Rlc3QpKQogCXsKIAkJYWxsX3Zpc2li bGUgPSBmYWxzZTsKLS0gCjIuNDMuMAoK --000000000000114061064db81427 Content-Type: text/x-patch; charset="US-ASCII"; name="v44-0003-WAL-log-VM-setting-during-vacuum-phase-I-in-XLOG.patch" Content-Disposition: attachment; filename="v44-0003-WAL-log-VM-setting-during-vacuum-phase-I-in-XLOG.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn3q2u462 RnJvbSBjNDQwZDkzODg3ZWQ5N2VlOGFiNDIwMDRkYTc2NDE3ZTI5ZmEyYTkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIgRGVjIDIwMjUgMTU6MDc6NDIgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0NCAwMy8xMF0gV0FMIGxvZyBWTSBzZXR0aW5nIGR1cmluZyB2YWN1dW0gcGhhc2UgSSBp bgogWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTgoKVmFjdXVtIG5vIGxvbmdlciBlbWl0cyBh IHNlcGFyYXRlIFdBTCByZWNvcmQgZm9yIGVhY2ggcGFnZSBzZXQKYWxsLXZpc2libGUgb3IgYWxs LWZyb3plbiBkdXJpbmcgcGhhc2UgSS4gSW5zdGVhZCwgdmlzaWJpbGl0eSBtYXAKdXBkYXRlcyBh cmUgbm93IGluY2x1ZGVkIGluIHRoZSBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOIHJlY29y ZCB0aGF0CmlzIGFscmVhZHkgZW1pdHRlZCBmb3IgcHJ1bmluZyBhbmQgZnJlZXppbmcuCgpQcmV2 aW91c2x5LCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIGRldGVybWluZWQgd2hldGhlciBh IHBhZ2Ugd2FzCmFsbC12aXNpYmxlLCBidXQgdGhlIGNvcnJlc3BvbmRpbmcgVk0gYml0cyB3ZXJl IG9ubHkgc2V0IGxhdGVyIGluCmxhenlfc2Nhbl9wcnVuZSgpLiBOb3cgdGhlIFZNIGlzIHVwZGF0 ZWQgaW1tZWRpYXRlbHkgaW4KaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSwgYXQgdGhlIHNh bWUgdGltZSBhcyB0aGUgaGVhcAptb2RpZmljYXRpb25zLiBUaGlzIHJlZHVjZXMgV0FMIHZvbHVt ZSBwcm9kdWNlZCBieSB2YWN1dW0uCgpGb3Igbm93LCB0aGlzIGNoYW5nZSBhcHBsaWVzIG9ubHkg dG8gdmFjdXVtIHBoYXNlIEksIG5vdCB0byBwcnVuaW5nCnBlcmZvcm1lZCBkdXJpbmcgbm9ybWFs IHBhZ2UgYWNjZXNzLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5A Z21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRl PgpSZXZpZXdlZC1ieTogS2lyaWxsIFJlc2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KUmV2 aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5jb20+CkVhcmxpZXIgdmVyc2lv biBSZXZpZXdlZC1ieTogUm9iZXJ0IEhhYXMgPHJvYmVydG1oYWFzQGdtYWlsLmNvbT4KRGlzY3Vz c2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndR M2NNT014MURoM1ZNaHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgfCAyNDUgKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAxMTMgKystLS0t LS0tLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgfCAgMzcgKystLQog MyBmaWxlcyBjaGFuZ2VkLCAyMDUgaW5zZXJ0aW9ucygrKSwgMTkwIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggMzAxZmNmZTcwMjQuLjRkNmQ1ZTkyNzcz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtNzIsNiArNzIsMjEgQEAgdHlw ZWRlZiBzdHJ1Y3QKIAlPZmZzZXROdW1iZXIgbm93dW51c2VkW01heEhlYXBUdXBsZXNQZXJQYWdl XTsKIAlIZWFwVHVwbGVGcmVlemUgZnJvemVuW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAorCS8q CisJICogc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3plbiBpbmRpY2F0ZSBpZiB0aGUg YWxsLXZpc2libGUgYW5kCisJICogYWxsLWZyb3plbiBiaXRzIGluIHRoZSB2aXNpYmlsaXR5IG1h cCBjYW4gYmUgc2V0IGZvciB0aGlzIHBhZ2UgYWZ0ZXIKKwkgKiBwcnVuaW5nLgorCSAqCisJICog Tk9URTogc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3plbiBpbml0aWFsbHkgZG9uJ3Qg aW5jbHVkZQorCSAqIExQX0RFQUQgaXRlbXMuIFRoYXQncyBjb252ZW5pZW50IGZvciBoZWFwX3Bh Z2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRvCisJICogdXNlIHRoZW0gdG8gZGVjaWRlIHdoZXRoZXIg dG8gb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplIHRoZSBwYWdlIG9yIG5vdC4KKwkgKiBUaGUgc2V0 X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zyb3plbiB2YWx1ZXMgdWx0aW1hdGVseSB1c2VkIHRv IHNldAorCSAqIHRoZSBWTSBhcmUgYWRqdXN0ZWQgdG8gaW5jbHVkZSBMUF9ERUFEIGl0ZW1zIGFm dGVyIHdlIGRldGVybWluZSB3aGV0aGVyCisJICogb3Igbm90IHRvIG9wcG9ydHVuaXN0aWNhbGx5 IGZyZWV6ZS4KKwkgKi8KKwlib29sCQlzZXRfYWxsX3Zpc2libGU7CisJYm9vbAkJc2V0X2FsbF9m cm96ZW47CisKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIAkgKiBXb3JraW5nIHN0YXRlIGZvciBIT1QgY2hhaW4gcHJvY2Vzc2luZwog CSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpAQCAtMTIyLDEyICsxMzcsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkvKgogCSAqIENhbGxlciBt dXN0IHByb3ZpZGUgYSBwaW5uZWQgdm1idWZmZXIgY29ycmVzcG9uZGluZyB0byB0aGUgaGVhcCBi bG9jawogCSAqIHBhc3NlZCB0byBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLiBXZSB3aWxs IGZpeCBhbnkgY29ycnVwdGlvbgotCSAqIGZvdW5kIGluIHRoZSBWTS4KKwkgKiBmb3VuZCBpbiB0 aGUgVk0gYW5kIHNldCB0aGUgVk0gaWYgdGhlIHBhZ2UgaXMgYWxsLXZpc2libGUvYWxsLWZyb3pl bi4KIAkgKi8KIAlCdWZmZXIJCXZtYnVmZmVyOwogCi0JLyogQml0cyBpbiB0aGUgdm1idWZmZXIg Zm9yIHRoaXMgaGVhcCBwYWdlICovCisJLyoKKwkgKiBUaGUgc3RhdGUgb2YgdGhlIFZNIGJpdHMg YXQgdGhlIGJlZ2lubmluZyBvZiBwcnVuaW5nIGFuZCB0aGUgc3RhdGUgdGhleQorCSAqIHdpbGwg YmUgaW4gYXQgdGhlIGVuZC4KKwkgKi8KIAl1aW50OAkJb2xkX3ZtYml0czsKKwl1aW50OAkJbmV3 X3ZtYml0czsKIAogCS8qIFRoZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFn ZSAqLwogCVRyYW5zYWN0aW9uSWQgbmV3ZXN0X2xpdmVfeGlkOwpAQCAtMTU3LDIxICsxNzYsNiBA QCB0eXBlZGVmIHN0cnVjdAogCSAqLwogCWludAkJCWxwZGVhZF9pdGVtczsJLyogbnVtYmVyIG9m IGl0ZW1zIGluIHRoZSBhcnJheSAqLwogCU9mZnNldE51bWJlciAqZGVhZG9mZnNldHM7CS8qIHBv aW50cyBkaXJlY3RseSB0byBwcmVzdWx0LT5kZWFkb2Zmc2V0cyAqLwotCi0JLyoKLQkgKiBzZXRf YWxsX3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIGluZGljYXRlIGlmIHRoZSBhbGwtdmlzaWJs ZSBhbmQKLQkgKiBhbGwtZnJvemVuIGJpdHMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBz ZXQgZm9yIHRoaXMgcGFnZSBhZnRlcgotCSAqIHBydW5pbmcuCi0JICoKLQkgKiBOT1RFOiBzZXRf YWxsX3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIGluaXRpYWxseSBkb24ndCBpbmNsdWRlCi0J ICogTFBfREVBRCBpdGVtcy4gVGhhdCdzIGNvbnZlbmllbnQgZm9yIGhlYXBfcGFnZV9wcnVuZV9h bmRfZnJlZXplKCkgdG8KLQkgKiB1c2UgdGhlbSB0byBkZWNpZGUgd2hldGhlciB0byBmcmVlemUg dGhlIHBhZ2Ugb3Igbm90LiAgVGhlCi0JICogc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxsX2Zy b3plbiB2YWx1ZXMgcmV0dXJuZWQgdG8gdGhlIGNhbGxlciBhcmUKLQkgKiBhZGp1c3RlZCB0byBp bmNsdWRlIExQX0RFQUQgaXRlbXMgYWZ0ZXIgd2UgZGV0ZXJtaW5lIHdoZXRoZXIgdG8KLQkgKiBv cHBvcnR1bmlzdGljYWxseSBmcmVlemUuCi0JICovCi0JYm9vbAkJc2V0X2FsbF92aXNpYmxlOwot CWJvb2wJCXNldF9hbGxfZnJvemVuOwogfSBQcnVuZVN0YXRlOwogCiAvKgpAQCAtMjI4LDYgKzIz Miw3IEBAIHN0YXRpYyB2b2lkIHBhZ2VfdmVyaWZ5X3JlZGlyZWN0cyhQYWdlIHBhZ2UpOwogCiBz dGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoYm9vbCBkaWRfdHVwbGVfaGludF9mcGks IGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9faGludF9wcnVuZSwKIAkJCQkJCQkJICBQcnVuZVN0YXRl ICpwcnN0YXRlKTsKK3N0YXRpYyBib29sIGhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRl ICpwcnN0YXRlLCBQcnVuZVJlYXNvbiByZWFzb24pOwogCiAKIC8qCkBAIC0zOTUsNiArNDAwLDcg QEAgcHJ1bmVfZnJlZXplX3NldHVwKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAKIAlBc3Nl cnQoQnVmZmVySXNWYWxpZChwYXJhbXMtPnZtYnVmZmVyKSk7CiAJcHJzdGF0ZS0+dm1idWZmZXIg PSBwYXJhbXMtPnZtYnVmZmVyOworCXByc3RhdGUtPm5ld192bWJpdHMgPSAwOwogCXByc3RhdGUt Pm9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocHJzdGF0ZS0+cmVsYXRpb24s CiAJCQkJCQkJCQkJCQkgICBwcnN0YXRlLT5ibG9jaywKIAkJCQkJCQkJCQkJCSAgICZwcnN0YXRl LT52bWJ1ZmZlcik7CkBAIC05MDcsNiArOTEzLDQyIEBAIGhlYXBfcGFnZV9maXhfdm1fY29ycnVw dGlvbihQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtLAogCX0KIH0KIAor LyoKKyAqIERlY2lkZSB3aGV0aGVyIHRvIHNldCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0cyAoYWxs LXZpc2libGUgYW5kIGFsbC1mcm96ZW4pCisgKiBmb3IgaGVhcF9ibGsgdXNpbmcgaW5mb3JtYXRp b24gZnJvbSB0aGUgUHJ1bmVTdGF0ZSBhbmQgVk0uCisgKgorICogVGhpcyBmdW5jdGlvbiBkb2Vz IG5vdCBhY3R1YWxseSBzZXQgdGhlIFZNIGJpdHMgb3IgcGFnZS1sZXZlbCB2aXNpYmlsaXR5Cisg KiBoaW50LCBQRF9BTExfVklTSUJMRS4KKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgb25lIG9yIGJv dGggVk0gYml0cyBzaG91bGQgYmUgc2V0IGFuZCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK3N0YXRp YyBib29sCitoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVS ZWFzb24gcmVhc29uKQoreworCS8qCisJICogVGhvdWdoIG9uLWFjY2VzcyBwcnVuaW5nIG1haW50 YWlucyBwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUsIHdlIGRvbid0CisJICogc2V0IHRoZSBWTSBv bi1hY2Nlc3MgZm9yIG5vdy4KKwkgKi8KKwlpZiAocmVhc29uID09IFBSVU5FX09OX0FDQ0VTUykK KwkJcmV0dXJuIGZhbHNlOworCisJaWYgKCFwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUpCisJCXJl dHVybiBmYWxzZTsKKworCXByc3RhdGUtPm5ld192bWJpdHMgPSBWSVNJQklMSVRZTUFQX0FMTF9W SVNJQkxFOworCisJaWYgKHByc3RhdGUtPnNldF9hbGxfZnJvemVuKQorCQlwcnN0YXRlLT5uZXdf dm1iaXRzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKKworCWlmIChwcnN0YXRlLT5uZXdf dm1iaXRzID09IHByc3RhdGUtPm9sZF92bWJpdHMpCisJeworCQlwcnN0YXRlLT5uZXdfdm1iaXRz ID0gMDsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiB0cnVlOworfQorCiAvKgogICog SWYgdGhlIHBhZ2UgaXMgYWxyZWFkeSBhbGwtZnJvemVuLCBvciBhbHJlYWR5IGFsbC12aXNpYmxl IGFuZCBmcmVlemluZwogICogd29uJ3QgYmUgYXR0ZW1wdGVkLCB0aGVyZSBpcyBubyByZW1haW5p bmcgd29yayBhbmQgd2UgY2FuIHVzZSB0aGUgZmFzdCBwYXRoCkBAIC05NDAsOCArOTgyLDYgQEAg cHJ1bmVfZnJlZXplX2Zhc3RfcGF0aChQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZUZyZWV6ZVJl c3VsdCAqcHJlc3VsdCkKIAkvKiBXZSdsbCBmaWxsIGluIHByZXN1bHQgZm9yIHRoZSBjYWxsZXIg Ki8KIAltZW1zZXQocHJlc3VsdCwgMCwgc2l6ZW9mKFBydW5lRnJlZXplUmVzdWx0KSk7CiAKLQlw cmVzdWx0LT5vbGRfdm1iaXRzID0gcHJzdGF0ZS0+b2xkX3ZtYml0czsKLQogCS8qIENsZWFyIGFu eSBzdGFsZSBwcnVuZSBoaW50ICovCiAJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKFBhZ2VHZXRQ cnVuZVhpZChwYWdlKSkpCiAJewpAQCAtOTc2LDcgKzEwMTYsOCBAQCBwcnVuZV9mcmVlemVfZmFz dF9wYXRoKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0KQog CiAvKgogICogUHJ1bmUgYW5kIHJlcGFpciBmcmFnbWVudGF0aW9uIGFuZCBwb3RlbnRpYWxseSBm cmVlemUgdHVwbGVzIG9uIHRoZQotICogc3BlY2lmaWVkIHBhZ2UuCisgKiBzcGVjaWZpZWQgcGFn ZS4gSWYgdGhlIHBhZ2UncyB2aXNpYmlsaXR5IHN0YXR1cyBoYXMgY2hhbmdlZCwgdXBkYXRlIGl0 IGluCisgKiB0aGUgVk0uCiAgKgogICogQ2FsbGVyIG11c3QgaGF2ZSBwaW4gYW5kIGJ1ZmZlciBj bGVhbnVwIGxvY2sgb24gdGhlIHBhZ2UuICBOb3RlIHRoYXQgd2UKICAqIGRvbid0IHVwZGF0ZSB0 aGUgRlNNIGluZm9ybWF0aW9uIGZvciBwYWdlIG9uIGNhbGxlcidzIGJlaGFsZi4gIENhbGxlciBt aWdodApAQCAtOTkxLDEyICsxMDMyLDEwIEBAIHBydW5lX2ZyZWV6ZV9mYXN0X3BhdGgoUHJ1bmVT dGF0ZSAqcHJzdGF0ZSwgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQpCiAgKiB0dXBsZXMgaWYg aXQncyByZXF1aXJlZCBpbiBvcmRlciB0byBhZHZhbmNlIHJlbGZyb3plbnhpZCAvIHJlbG1pbm14 aWQsIG9yCiAgKiBpZiBpdCdzIGNvbnNpZGVyZWQgYWR2YW50YWdlb3VzIGZvciBvdmVyYWxsIHN5 c3RlbSBwZXJmb3JtYW5jZSB0byBkbyBzbwogICogbm93LiAgVGhlICdwYXJhbXMuY3V0b2Zmcycs ICdwcmVzdWx0JywgJ25ld19yZWxmcm96ZW5feGlkJyBhbmQKLSAqICduZXdfcmVsbWluX214aWQn IGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQgd2hlbiBmcmVlemluZy4gIFdoZW4KLSAqIEhFQVBfUEFH RV9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHBhc3NlZCwgd2UgYWxzbyBzZXQKLSAqIHByZXN1bHQt PnNldF9hbGxfdmlzaWJsZSBhbmQgcHJlc3VsdC0+c2V0X2FsbF9mcm96ZW4gYWZ0ZXIgZGV0ZXJt aW5pbmcKLSAqIHdoZXRoZXIgb3Igbm90IHRvIG9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6ZSwgdG8g aW5kaWNhdGUgaWYgdGhlIFZNIGJpdHMgY2FuCi0gKiBiZSBzZXQuICdzZXRfYWxsX2Zyb3plbicg aXMgYWx3YXlzIHNldCB0byBmYWxzZSB3aGVuIHRoZQotICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVa RSBvcHRpb24gaXMgbm90IHBhc3NlZC4KKyAqICduZXdfcmVsbWluX214aWQnIGFyZ3VtZW50cyBh cmUgcmVxdWlyZWQgd2hlbiBmcmVlemluZy4KKyAqCisgKiBBIHZtYnVmZmVyIGNvcnJlc3BvbmRp bmcgdG8gdGhlIGhlYXAgcGFnZSBpcyBhbHNvIHBhc3NlZCBhbmQgaWYgdGhlIHBhZ2UgaXMKKyAq IGZvdW5kIHRvIGJlIGFsbC12aXNpYmxlL2FsbC1mcm96ZW4sIHdlIHdpbGwgc2V0IGl0IGluIHRo ZSBWTS4KICAqCiAgKiBwcmVzdWx0IGNvbnRhaW5zIG91dHB1dCBwYXJhbWV0ZXJzIG5lZWRlZCBi eSBjYWxsZXJzLCBzdWNoIGFzIHRoZSBudW1iZXIgb2YKICAqIHR1cGxlcyByZW1vdmVkIGFuZCB0 aGUgb2Zmc2V0cyBvZiBkZWFkIGl0ZW1zIG9uIHRoZSBwYWdlIGFmdGVyIHBydW5pbmcuCkBAIC0x MDI0LDggKzEwNjMsMTAgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQ YXJhbXMgKnBhcmFtcywKIAlib29sCQlkb19mcmVlemU7CiAJYm9vbAkJZG9fcHJ1bmU7CiAJYm9v bAkJZG9faGludF9wcnVuZTsKKwlib29sCQlkb19zZXRfdm07CiAJYm9vbAkJZGlkX3R1cGxlX2hp bnRfZnBpOwogCWludDY0CQlmcGlfYmVmb3JlID0gcGdXYWxVc2FnZS53YWxfZnBpOworCVRyYW5z YWN0aW9uSWQgY29uZmxpY3RfeGlkOwogCiAJLyogSW5pdGlhbGl6ZSBwcnN0YXRlICovCiAJcHJ1 bmVfZnJlZXplX3NldHVwKHBhcmFtcywKQEAgLTExMjQsNiArMTE2NSwzMSBAQCBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQlwcnN0YXRlLnNl dF9hbGxfdmlzaWJsZSA9IHByc3RhdGUuc2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsKIAogCUFzc2Vy dCghcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiB8fCBwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSk7CisJ QXNzZXJ0KCFwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSB8fCAocHJzdGF0ZS5scGRlYWRfaXRlbXMg PT0gMCkpOworCisJZG9fc2V0X3ZtID0gaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKCZwcnN0YXRlLCBw YXJhbXMtPnJlYXNvbik7CisKKwkvKgorCSAqIG5ld192bWJpdHMgc2hvdWxkIGJlIDAgcmVnYXJk bGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBpcworCSAqIGFsbC12aXNpYmxlIGlmIHdl IGRvIG5vdCBpbnRlbmQgdG8gc2V0IHRoZSBWTS4KKwkgKi8KKwlBc3NlcnQoZG9fc2V0X3ZtIHx8 IHByc3RhdGUubmV3X3ZtYml0cyA9PSAwKTsKKworCS8qCisJICogVGhlIHNuYXBzaG90IGNvbmZs aWN0IGhvcml6b24gZm9yIHRoZSB3aG9sZSByZWNvcmQgaXMgdGhlIG1vc3QKKwkgKiBjb25zZXJ2 YXRpdmUgKG5ld2VzdCkgaG9yaXpvbiByZXF1aXJlZCBieSBhbnkgY2hhbmdlIGluIHRoZSByZWNv cmQuCisJICovCisJY29uZmxpY3RfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJaWYgKGRv X3NldF92bSkKKwkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS5uZXdlc3RfbGl2ZV94aWQ7CisJaWYg KGRvX2ZyZWV6ZSAmJiBUcmFuc2FjdGlvbklkRm9sbG93cyhwcnN0YXRlLnBhZ2VmcnouRnJlZXpl UGFnZUNvbmZsaWN0WGlkLCBjb25mbGljdF94aWQpKQorCQljb25mbGljdF94aWQgPSBwcnN0YXRl LnBhZ2VmcnouRnJlZXplUGFnZUNvbmZsaWN0WGlkOworCWlmIChkb19wcnVuZSAmJiBUcmFuc2Fj dGlvbklkRm9sbG93cyhwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3ZlZCwgY29uZmxpY3RfeGlkKSkK KwkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS5sYXRlc3RfeGlkX3JlbW92ZWQ7CisKKwkvKiBMb2Nr IHZtYnVmZmVyIGJlZm9yZSBlbnRlcmluZyBhIGNyaXRpY2FsIHNlY3Rpb24gKi8KKwlpZiAoZG9f c2V0X3ZtKQorCQlMb2NrQnVmZmVyKHByc3RhdGUudm1idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xV U0lWRSk7CiAKIAkvKiBBbnkgZXJyb3Igd2hpbGUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgaXMgY3Jp dGljYWwgKi8KIAlTVEFSVF9DUklUX1NFQ1RJT04oKTsKQEAgLTExNDUsMTQgKzEyMTEsMTcgQEAg aGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAog CQkvKgogCQkgKiBJZiB0aGF0J3MgYWxsIHdlIGhhZCB0byBkbyB0byB0aGUgcGFnZSwgdGhpcyBp cyBhIG5vbi1XQUwtbG9nZ2VkCi0JCSAqIGhpbnQuICBJZiB3ZSBhcmUgZ29pbmcgdG8gZnJlZXpl IG9yIHBydW5lIHRoZSBwYWdlLCB3ZSB3aWxsIG1hcmsKLQkJICogdGhlIGJ1ZmZlciBkaXJ0eSBi ZWxvdy4KKwkJICogaGludC4gSWYgd2UgYXJlIGdvaW5nIHRvIGZyZWV6ZSBvciBwcnVuZSB0aGUg cGFnZSBvciBzZXQKKwkJICogUERfQUxMX1ZJU0lCTEUsIHdlIHdpbGwgbWFyayB0aGUgYnVmZmVy IGRpcnR5IGJlbG93LgorCQkgKgorCQkgKiBTZXR0aW5nIFBEX0FMTF9WSVNJQkxFIGlzIGZ1bGx5 IFdBTC1sb2dnZWQgYmVjYXVzZSBpdCBpcyBmb3JiaWRkZW4KKwkJICogZm9yIHRoZSBWTSB0byBi ZSBzZXQgYW5kIFBEX0FMTF9WSVNJQkxFIHRvIGJlIGNsZWFyLgogCQkgKi8KLQkJaWYgKCFkb19m cmVlemUgJiYgIWRvX3BydW5lKQorCQlpZiAoIWRvX2ZyZWV6ZSAmJiAhZG9fcHJ1bmUgJiYgIWRv X3NldF92bSkKIAkJCU1hcmtCdWZmZXJEaXJ0eUhpbnQocHJzdGF0ZS5idWZmZXIsIHRydWUpOwog CX0KIAotCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUpCisJaWYgKGRvX3BydW5lIHx8IGRvX2Zy ZWV6ZSB8fCBkb19zZXRfdm0pCiAJewogCQkvKiBBcHBseSB0aGUgcGxhbm5lZCBpdGVtIGNoYW5n ZXMgYW5kIHJlcGFpciBwYWdlIGZyYWdtZW50YXRpb24uICovCiAJCWlmIChkb19wcnVuZSkKQEAg LTExNjYsNiArMTIzNSwyNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6 ZVBhcmFtcyAqcGFyYW1zLAogCQlpZiAoZG9fZnJlZXplKQogCQkJaGVhcF9mcmVlemVfcHJlcGFy ZWRfdHVwbGVzKHByc3RhdGUuYnVmZmVyLCBwcnN0YXRlLmZyb3plbiwgcHJzdGF0ZS5uZnJvemVu KTsKIAorCQkvKiBTZXQgdGhlIHZpc2liaWxpdHkgbWFwIGFuZCBwYWdlIHZpc2liaWxpdHkgaGlu dCAqLworCQlpZiAoZG9fc2V0X3ZtKQorCQl7CisJCQkvKgorCQkJICogV2hpbGUgaXQgaXMgdmFs aWQgZm9yIFBEX0FMTF9WSVNJQkxFIHRvIGJlIHNldCB3aGVuIHRoZQorCQkJICogY29ycmVzcG9u ZGluZyBWTSBiaXQgaXMgY2xlYXIsIHdlIHN0cm9uZ2x5IHByZWZlciB0byBrZWVwIHRoZW0KKwkJ CSAqIGluIHN5bmMuCisJCQkgKgorCQkJICogVGhlIGhlYXAgYnVmZmVyIG11c3QgYmUgbWFya2Vk IGRpcnR5IGJlZm9yZSBhZGRpbmcgaXQgdG8gdGhlCisJCQkgKiBXQUwgY2hhaW4gd2hlbiBzZXR0 aW5nIHRoZSBWTS4gV2UgZG9uJ3Qgd29ycnkgYWJvdXQKKwkJCSAqIHVubmVjZXNzYXJpbHkgZGly dHlpbmcgdGhlIGhlYXAgYnVmZmVyIGlmIFBEX0FMTF9WSVNJQkxFIGlzCisJCQkgKiBhbHJlYWR5 IHNldCwgdGhvdWdoLiBJdCBpcyBleHRyZW1lbHkgcmFyZSB0byBoYXZlIGEgY2xlYW4gaGVhcAor CQkJICogYnVmZmVyIHdpdGggUERfQUxMX1ZJU0lCTEUgYWxyZWFkeSBzZXQgYW5kIHRoZSBWTSBi aXRzIGNsZWFyLAorCQkJICogc28gdGhlcmUgaXMgbm8gcG9pbnQgaW4gb3B0aW1pemluZyBpdC4K KwkJCSAqLworCQkJUGFnZVNldEFsbFZpc2libGUocHJzdGF0ZS5wYWdlKTsKKwkJCVBhZ2VDbGVh clBydW5hYmxlKHByc3RhdGUucGFnZSk7CisJCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMocHJz dGF0ZS5ibG9jaywgcHJzdGF0ZS52bWJ1ZmZlciwgcHJzdGF0ZS5uZXdfdm1iaXRzLAorCQkJCQkJ CQkJIHByc3RhdGUucmVsYXRpb24tPnJkX2xvY2F0b3IpOworCQl9CisKIAkJTWFya0J1ZmZlckRp cnR5KHByc3RhdGUuYnVmZmVyKTsKIAogCQkvKgpAQCAtMTE3MywyOSArMTI2MywxMiBAQCBoZWFw X3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQkgKi8K IAkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocHJzdGF0ZS5yZWxhdGlvbikpCiAJCXsKLQkJCS8qCi0J CQkgKiBUaGUgc25hcHNob3RDb25mbGljdEhvcml6b24gZm9yIHRoZSB3aG9sZSByZWNvcmQgc2hv dWxkIGJlIHRoZQotCQkJICogbW9zdCBjb25zZXJ2YXRpdmUgb2YgYWxsIHRoZSBob3Jpem9ucyBj YWxjdWxhdGVkIGZvciBhbnkgb2YgdGhlCi0JCQkgKiBwb3NzaWJsZSBtb2RpZmljYXRpb25zLiBJ ZiB0aGlzIHJlY29yZCB3aWxsIHBydW5lIHR1cGxlcywgYW55Ci0JCQkgKiBxdWVyaWVzIG9uIHRo ZSBzdGFuZGJ5IG9sZGVyIHRoYW4gdGhlIG5ld2VzdCB4aWQgb2YgdGhlIG1vc3QKLQkJCSAqIHJl Y2VudGx5IHJlbW92ZWQgdHVwbGUgdGhpcyByZWNvcmQgd2lsbCBwcnVuZSB3aWxsIGNvbmZsaWN0 LiBJZgotCQkJICogdGhpcyByZWNvcmQgd2lsbCBmcmVlemUgdHVwbGVzLCBhbnkgcXVlcmllcyBv biB0aGUgc3RhbmRieSB3aXRoCi0JCQkgKiB4aWRzIG9sZGVyIHRoYW4gdGhlIG5ld2VzdCB0dXBs ZSB0aGlzIHJlY29yZCB3aWxsIGZyZWV6ZSB3aWxsCi0JCQkgKiBjb25mbGljdC4KLQkJCSAqLwot CQkJVHJhbnNhY3Rpb25JZCBjb25mbGljdF94aWQ7Ci0KLQkJCWlmIChUcmFuc2FjdGlvbklkRm9s bG93cyhwcnN0YXRlLnBhZ2VmcnouRnJlZXplUGFnZUNvbmZsaWN0WGlkLAotCQkJCQkJCQkJIHBy c3RhdGUubGF0ZXN0X3hpZF9yZW1vdmVkKSkKLQkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLnBh Z2VmcnouRnJlZXplUGFnZUNvbmZsaWN0WGlkOwotCQkJZWxzZQotCQkJCWNvbmZsaWN0X3hpZCA9 IHByc3RhdGUubGF0ZXN0X3hpZF9yZW1vdmVkOwotCiAJCQlsb2dfaGVhcF9wcnVuZV9hbmRfZnJl ZXplKHByc3RhdGUucmVsYXRpb24sIHByc3RhdGUuYnVmZmVyLAotCQkJCQkJCQkJICBJbnZhbGlk QnVmZmVyLAkvKiB2bWJ1ZmZlciAqLwotCQkJCQkJCQkJICAwLAkvKiB2bWZsYWdzICovCisJCQkJ CQkJCQkgIGRvX3NldF92bSA/IHByc3RhdGUudm1idWZmZXIgOiBJbnZhbGlkQnVmZmVyLAorCQkJ CQkJCQkJICBkb19zZXRfdm0gPyBwcnN0YXRlLm5ld192bWJpdHMgOiAwLAogCQkJCQkJCQkJICBj b25mbGljdF94aWQsCi0JCQkJCQkJCQkgIHRydWUsIHBhcmFtcy0+cmVhc29uLAorCQkJCQkJCQkJ ICB0cnVlLCAvKiBjbGVhbnVwIGxvY2sgKi8KKwkJCQkJCQkJCSAgcGFyYW1zLT5yZWFzb24sCiAJ CQkJCQkJCQkgIHByc3RhdGUuZnJvemVuLCBwcnN0YXRlLm5mcm96ZW4sCiAJCQkJCQkJCQkgIHBy c3RhdGUucmVkaXJlY3RlZCwgcHJzdGF0ZS5ucmVkaXJlY3RlZCwKIAkJCQkJCQkJCSAgcHJzdGF0 ZS5ub3dkZWFkLCBwcnN0YXRlLm5kZWFkLApAQCAtMTIwNSwzMyArMTI3OCw3MSBAQCBoZWFwX3Bh Z2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCiAJRU5EX0NS SVRfU0VDVElPTigpOwogCisJaWYgKGRvX3NldF92bSkKKwkJTG9ja0J1ZmZlcihwcnN0YXRlLnZt YnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCisJLyoKKwkgKiBEdXJpbmcgaXRzIHNlY29u ZCBwYXNzIG92ZXIgdGhlIGhlYXAsIFZBQ1VVTSBjYWxscworCSAqIGhlYXBfcGFnZV93b3VsZF9i ZV9hbGxfdmlzaWJsZSgpIHRvIGRldGVybWluZSB3aGV0aGVyIGEgcGFnZSBpcworCSAqIGFsbC12 aXNpYmxlIGFuZCBhbGwtZnJvemVuLiBUaGUgbG9naWMgaGVyZSBpcyBzaW1pbGFyLiBBZnRlciBj b21wbGV0aW5nCisJICogcHJ1bmluZyBhbmQgZnJlZXppbmcsIHVzZSBhbiBhc3NlcnRpb24gdG8g dmVyaWZ5IHRoYXQgb3VyIHJlc3VsdHMKKwkgKiByZW1haW4gY29uc2lzdGVudCB3aXRoIGhlYXBf cGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZSgpLiBJdCdzIGFsc28gYQorCSAqIHZhbHVhYmxlIGNy b3NzLWNoZWNrIG9mIHRoZSBwYWdlIHN0YXRlIGFmdGVyIHBydW5pbmcgYW5kIGZyZWV6aW5nLgor CSAqLworI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKwlpZiAocHJzdGF0ZS5zZXRfYWxsX3Zp c2libGUpCisJeworCQlUcmFuc2FjdGlvbklkIGRlYnVnX2N1dG9mZjsKKwkJYm9vbAkJZGVidWdf YWxsX2Zyb3plbjsKKworCQlBc3NlcnQocHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0gMCk7CisKKwkJ QXNzZXJ0KGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShwcnN0YXRlLnJlbGF0aW9uLCBwcnN0YXRl LmJ1ZmZlciwKKwkJCQkJCQkJCQlwcnN0YXRlLnZpc3Rlc3QsCisJCQkJCQkJCQkJJmRlYnVnX2Fs bF9mcm96ZW4sCisJCQkJCQkJCQkJJmRlYnVnX2N1dG9mZiwgb2ZmX2xvYykpOworCisJCUFzc2Vy dCghVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVidWdfY3V0b2ZmKSB8fAorCQkJICAgZGVidWdfY3V0 b2ZmID09IHByc3RhdGUubmV3ZXN0X2xpdmVfeGlkKTsKKworCQkvKgorCQkgKiBJdCdzIHBvc3Np YmxlIHRoZSBwYWdlIGlzIGNvbXBvc2VkIGVudGlyZWx5IG9mIGZyb3plbiB0dXBsZXMgYnV0IGlz CisJCSAqIG5vdCBzZXQgYWxsLWZyb3plbiBpbiB0aGUgVk0gYW5kIGRpZCBub3QgcGFzcworCQkg KiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLiBJbiB0aGlzIGNhc2UsIGl0J3MgcG9zc2libGUKKwkJ ICogaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKCkgZmluZHMgdGhlIHBhZ2UgY29tcGxldGVseSBm cm96ZW4sIGV2ZW4KKwkJICogdGhvdWdoIHByc3RhdGUuc2V0X2FsbF9mcm96ZW4gaXMgZmFsc2Uu CisJCSAqLworCQlBc3NlcnQoIXByc3RhdGUuc2V0X2FsbF9mcm96ZW4gfHwgZGVidWdfYWxsX2Zy b3plbik7CisJfQorI2VuZGlmCisKIAkvKiBDb3B5IGluZm9ybWF0aW9uIGJhY2sgZm9yIGNhbGxl ciAqLwogCXByZXN1bHQtPm5kZWxldGVkID0gcHJzdGF0ZS5uZGVsZXRlZDsKIAlwcmVzdWx0LT5u bmV3bHBkZWFkID0gcHJzdGF0ZS5uZGVhZDsKIAlwcmVzdWx0LT5uZnJvemVuID0gcHJzdGF0ZS5u ZnJvemVuOwogCXByZXN1bHQtPmxpdmVfdHVwbGVzID0gcHJzdGF0ZS5saXZlX3R1cGxlczsKIAlw cmVzdWx0LT5yZWNlbnRseV9kZWFkX3R1cGxlcyA9IHByc3RhdGUucmVjZW50bHlfZGVhZF90dXBs ZXM7Ci0JcHJlc3VsdC0+c2V0X2FsbF92aXNpYmxlID0gcHJzdGF0ZS5zZXRfYWxsX3Zpc2libGU7 Ci0JcHJlc3VsdC0+c2V0X2FsbF9mcm96ZW4gPSBwcnN0YXRlLnNldF9hbGxfZnJvemVuOwogCXBy ZXN1bHQtPmhhc3R1cCA9IHByc3RhdGUuaGFzdHVwOwotCXByZXN1bHQtPm9sZF92bWJpdHMgPSBw cnN0YXRlLm9sZF92bWJpdHM7Ci0KLQkvKgotCSAqIEZvciBjYWxsZXJzIHBsYW5uaW5nIHRvIHVw ZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAsIHRoZSBjb25mbGljdCBob3Jpem9uCi0JICogZm9yIHRo YXQgcmVjb3JkIG11c3QgYmUgdGhlIG5ld2VzdCB4bWluIG9uIHRoZSBwYWdlLiAgSG93ZXZlciwg aWYgdGhlCi0JICogcGFnZSBpcyBjb21wbGV0ZWx5IGZyb3plbiwgdGhlcmUgY2FuIGJlIG5vIGNv bmZsaWN0IGFuZCB0aGUKLQkgKiB2bV9jb25mbGljdF9ob3Jpem9uIHNob3VsZCByZW1haW4gSW52 YWxpZFRyYW5zYWN0aW9uSWQuICBUaGlzIGluY2x1ZGVzCi0JICogdGhlIGNhc2UgdGhhdCB3ZSBq dXN0IGZyb3plIGFsbCB0aGUgdHVwbGVzOyB0aGUgcHJ1bmUtZnJlZXplIHJlY29yZAotCSAqIGlu Y2x1ZGVkIHRoZSBjb25mbGljdCBYSUQgYWxyZWFkeSBzbyB0aGUgY2FsbGVyIGRvZXNuJ3QgbmVl ZCBpdC4KLQkgKi8KLQlpZiAocHJlc3VsdC0+c2V0X2FsbF9mcm96ZW4pCi0JCXByZXN1bHQtPnZt X2NvbmZsaWN0X2hvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKLQllbHNlCi0JCXByZXN1 bHQtPnZtX2NvbmZsaWN0X2hvcml6b24gPSBwcnN0YXRlLm5ld2VzdF9saXZlX3hpZDsKIAogCXBy ZXN1bHQtPmxwZGVhZF9pdGVtcyA9IHByc3RhdGUubHBkZWFkX2l0ZW1zOwogCS8qIHRoZSBwcmVz dWx0LT5kZWFkb2Zmc2V0cyBhcnJheSB3YXMgYWxyZWFkeSBmaWxsZWQgaW4gKi8KIAorCXByZXN1 bHQtPm5ld2x5X2FsbF92aXNpYmxlID0gZmFsc2U7CisJcHJlc3VsdC0+bmV3bHlfYWxsX2Zyb3pl biA9IGZhbHNlOworCXByZXN1bHQtPm5ld2x5X2FsbF92aXNpYmxlX2Zyb3plbiA9IGZhbHNlOwor CWlmIChkb19zZXRfdm0pCisJeworCQlpZiAoKHByc3RhdGUub2xkX3ZtYml0cyAmIFZJU0lCSUxJ VFlNQVBfQUxMX1ZJU0lCTEUpID09IDApCisJCXsKKwkJCXByZXN1bHQtPm5ld2x5X2FsbF92aXNp YmxlID0gdHJ1ZTsKKwkJCWlmIChwcnN0YXRlLnNldF9hbGxfZnJvemVuKQorCQkJCXByZXN1bHQt Pm5ld2x5X2FsbF92aXNpYmxlX2Zyb3plbiA9IHRydWU7CisJCX0KKwkJZWxzZSBpZiAoKHByc3Rh dGUub2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikgPT0gMCAmJgorCQkJCSBw cnN0YXRlLnNldF9hbGxfZnJvemVuKQorCQkJcHJlc3VsdC0+bmV3bHlfYWxsX2Zyb3plbiA9IHRy dWU7CisJfQorCiAJaWYgKHByc3RhdGUuYXR0ZW1wdF9mcmVlemUpCiAJewogCQlpZiAocHJlc3Vs dC0+bmZyb3plbiA+IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggNjk2 OTE5ZTM1ZGQuLjIzZGVhYmQ4YzAxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j CkBAIC00NjYsMTMgKzQ2Niw2IEBAIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfYWRkKExWUmVsU3Rh dGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIE9mZnNldE51bWJlciAqCiBzdGF0aWMgdm9p ZCBkZWFkX2l0ZW1zX3Jlc2V0KExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgdm9pZCBkZWFk X2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIAotI2lmZGVmIFVTRV9BU1NFUlRf Q0hFQ0tJTkcKLXN0YXRpYyBib29sIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiBy ZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCi0JCQkJ CQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICpuZXdlc3Rf bGl2ZV94aWQsCi0JCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7Ci0jZW5k aWYKIHN0YXRpYyBib29sIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiBy ZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkJCQkJICAgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJ CQkJCQkJCQkJICAgYm9vbCBhbGxvd191cGRhdGVfdmlzdGVzdCwKQEAgLTIwMjIsOCArMjAxNSw2 IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJCS52aXN0ZXN0ID0gdmFj cmVsLT52aXN0ZXN0LAogCQkuY3V0b2ZmcyA9ICZ2YWNyZWwtPmN1dG9mZnMsCiAJfTsKLQl1aW50 OAkJb2xkX3ZtYml0cyA9IDA7Ci0JdWludDgJCW5ld192bWJpdHMgPSAwOwogCiAJQXNzZXJ0KEJ1 ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZikgPT0gYmxrbm8pOwogCkBAIC0yMDc0LDMyICsyMDY1LDYg QEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJdmFjcmVsLT5uZXdfZnJv emVuX3R1cGxlX3BhZ2VzKys7CiAJfQogCi0JLyoKLQkgKiBWQUNVVU0gd2lsbCBjYWxsIGhlYXBf cGFnZV9pc19hbGxfdmlzaWJsZSgpIGR1cmluZyB0aGUgc2Vjb25kIHBhc3Mgb3ZlcgotCSAqIHRo ZSBoZWFwIHRvIGRldGVybWluZSBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBmb3IgdGhlIHBh Z2UgLS0gdGhpcwotCSAqIGlzIGEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiB0aGUgbG9naWMgZnJv bSB0aGlzIGZ1bmN0aW9uLiAgTm93IHRoYXQKLQkgKiB3ZSd2ZSBmaW5pc2hlZCBwcnVuaW5nIGFu ZCBmcmVlemluZywgbWFrZSBzdXJlIHRoYXQgd2UncmUgaW4gdG90YWwKLQkgKiBhZ3JlZW1lbnQg d2l0aCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSB1c2luZyBhbiBhc3NlcnRpb24uCi0JICov Ci0jaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwotCWlmIChwcmVzdWx0LnNldF9hbGxfdmlzaWJs ZSkKLQl7Ci0JCVRyYW5zYWN0aW9uSWQgZGVidWdfY3V0b2ZmOwotCQlib29sCQlkZWJ1Z19hbGxf ZnJvemVuOwotCi0JCUFzc2VydChwcmVzdWx0LmxwZGVhZF9pdGVtcyA9PSAwKTsKLQotCQlBc3Nl cnQoaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWYsCi0JCQkJCQkJCQkJ dmFjcmVsLT52aXN0ZXN0LCAmZGVidWdfYWxsX2Zyb3plbiwKLQkJCQkJCQkJCQkmZGVidWdfY3V0 b2ZmLCAmdmFjcmVsLT5vZmZudW0pKTsKLQotCQlBc3NlcnQocHJlc3VsdC5zZXRfYWxsX2Zyb3pl biA9PSBkZWJ1Z19hbGxfZnJvemVuKTsKLQotCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlk KGRlYnVnX2N1dG9mZikgfHwKLQkJCSAgIGRlYnVnX2N1dG9mZiA9PSBwcmVzdWx0LnZtX2NvbmZs aWN0X2hvcml6b24pOwotCX0KLSNlbmRpZgotCiAJLyoKIAkgKiBOb3cgc2F2ZSBkZXRhaWxzIG9m IHRoZSBMUF9ERUFEIGl0ZW1zIGZyb20gdGhlIHBhZ2UgaW4gdmFjcmVsCiAJICovCkBAIC0yMTIw LDYgKzIwODUsMTcgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAl9CiAK IAkvKiBGaW5hbGx5LCBhZGQgcGFnZS1sb2NhbCBjb3VudHMgdG8gd2hvbGUtVkFDVVVNIGNvdW50 cyAqLworCWlmIChwcmVzdWx0Lm5ld2x5X2FsbF92aXNpYmxlKQorCQl2YWNyZWwtPm5ld19hbGxf dmlzaWJsZV9wYWdlcysrOworCWlmIChwcmVzdWx0Lm5ld2x5X2FsbF92aXNpYmxlX2Zyb3plbikK KwkJdmFjcmVsLT5uZXdfYWxsX3Zpc2libGVfYWxsX2Zyb3plbl9wYWdlcysrOworCWlmIChwcmVz dWx0Lm5ld2x5X2FsbF9mcm96ZW4pCisJCXZhY3JlbC0+bmV3X2FsbF9mcm96ZW5fcGFnZXMrKzsK KworCS8qIENhcHR1cmUgaWYgdGhlIHBhZ2Ugd2FzIG5ld2x5IHNldCBmcm96ZW4gKi8KKwkqdm1f cGFnZV9mcm96ZW4gPSBwcmVzdWx0Lm5ld2x5X2FsbF92aXNpYmxlX2Zyb3plbiB8fAorCQlwcmVz dWx0Lm5ld2x5X2FsbF9mcm96ZW47CisKIAl2YWNyZWwtPnR1cGxlc19kZWxldGVkICs9IHByZXN1 bHQubmRlbGV0ZWQ7CiAJdmFjcmVsLT50dXBsZXNfZnJvemVuICs9IHByZXN1bHQubmZyb3plbjsK IAl2YWNyZWwtPmxwZGVhZF9pdGVtcyArPSBwcmVzdWx0LmxwZGVhZF9pdGVtczsKQEAgLTIxMzMs NzEgKzIxMDksNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCS8qIERp ZCB3ZSBmaW5kIExQX0RFQUQgaXRlbXM/ICovCiAJKmhhc19scGRlYWRfaXRlbXMgPSAocHJlc3Vs dC5scGRlYWRfaXRlbXMgPiAwKTsKIAotCUFzc2VydCghcHJlc3VsdC5zZXRfYWxsX3Zpc2libGUg fHwgISgqaGFzX2xwZGVhZF9pdGVtcykpOwotCUFzc2VydCghcHJlc3VsdC5zZXRfYWxsX2Zyb3pl biB8fCBwcmVzdWx0LnNldF9hbGxfdmlzaWJsZSk7Ci0KLQlpZiAoIXByZXN1bHQuc2V0X2FsbF92 aXNpYmxlKQotCQlyZXR1cm4gcHJlc3VsdC5uZGVsZXRlZDsKLQotCS8qIFNldCB0aGUgdmlzaWJp bGl0eSBtYXAgYW5kIHBhZ2UgdmlzaWJpbGl0eSBoaW50ICovCi0Jb2xkX3ZtYml0cyA9IHByZXN1 bHQub2xkX3ZtYml0czsKLQluZXdfdm1iaXRzID0gVklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsK LQlpZiAocHJlc3VsdC5zZXRfYWxsX2Zyb3plbikKLQkJbmV3X3ZtYml0cyB8PSBWSVNJQklMSVRZ TUFQX0FMTF9GUk9aRU47Ci0KLQkvKiBOb3RoaW5nIHRvIGRvICovCi0JaWYgKG9sZF92bWJpdHMg PT0gbmV3X3ZtYml0cykKLQkJcmV0dXJuIHByZXN1bHQubmRlbGV0ZWQ7Ci0KLQkvKgotCSAqIEl0 IHNob3VsZCBuZXZlciBiZSB0aGUgY2FzZSB0aGF0IHRoZSB2aXNpYmlsaXR5IG1hcCBwYWdlIGlz IHNldCB3aGlsZQotCSAqIHRoZSBwYWdlLWxldmVsIGJpdCBpcyBjbGVhciAoYW5kIGlmIHNvLCB3 ZSBjbGVhcmVkIGl0IGFib3ZlKSwgYnV0IHRoZQotCSAqIHJldmVyc2UgaXMgYWxsb3dlZCAoaWYg Y2hlY2tzdW1zIGFyZSBub3QgZW5hYmxlZCkuIFJlZ2FyZGxlc3MsIHNldCBib3RoCi0JICogYml0 cyBzbyB0aGF0IHdlIGdldCBiYWNrIGluIHN5bmMuCi0JICoKLQkgKiBUaGUgaGVhcCBidWZmZXIg bXVzdCBiZSBtYXJrZWQgZGlydHkgYmVmb3JlIGFkZGluZyBpdCB0byB0aGUgV0FMIGNoYWluCi0J ICogd2hlbiBzZXR0aW5nIHRoZSBWTS4gV2UgZG9uJ3Qgd29ycnkgYWJvdXQgdW5uZWNlc3Nhcmls eSBkaXJ0eWluZyB0aGUKLQkgKiBoZWFwIGJ1ZmZlciBpZiBQRF9BTExfVklTSUJMRSBpcyBhbHJl YWR5IHNldCwgdGhvdWdoLiBJdCBpcyBleHRyZW1lbHkKLQkgKiByYXJlIHRvIGhhdmUgYSBjbGVh biBoZWFwIGJ1ZmZlciB3aXRoIFBEX0FMTF9WSVNJQkxFIGFscmVhZHkgc2V0IGFuZAotCSAqIHRo ZSBWTSBiaXRzIGNsZWFyLCBzbyB0aGVyZSBpcyBubyBwb2ludCBpbiBvcHRpbWl6aW5nIGl0Lgot CSAqLwotCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwotCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2Up OwotCU1hcmtCdWZmZXJEaXJ0eShidWYpOwotCi0JLyoKLQkgKiBJZiB0aGUgcGFnZSBpcyBiZWlu ZyBzZXQgYWxsLWZyb3plbiwgd2UgcGFzcyBJbnZhbGlkVHJhbnNhY3Rpb25JZCBhcwotCSAqIHRo ZSBjdXRvZmZfeGlkLCBzaW5jZSBhIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24gc3VmZmljaWVu dCB0byBtYWtlCi0JICogZXZlcnl0aGluZyBzYWZlIGZvciBSRURPIHdhcyBsb2dnZWQgd2hlbiB0 aGUgcGFnZSdzIHR1cGxlcyB3ZXJlIGZyb3plbi4KLQkgKi8KLQlBc3NlcnQoIXByZXN1bHQuc2V0 X2FsbF9mcm96ZW4gfHwKLQkJICAgIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHByZXN1bHQudm1fY29u ZmxpY3RfaG9yaXpvbikpOwotCi0JdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVsLT5yZWwsIGJsa25v LCBidWYsCi0JCQkJCSAgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJCSAgdm1idWZmZXIsIHByZXN1 bHQudm1fY29uZmxpY3RfaG9yaXpvbiwKLQkJCQkJICBuZXdfdm1iaXRzKTsKLQotCS8qCi0JICog SWYgdGhlIHBhZ2Ugd2Fzbid0IGFscmVhZHkgc2V0IGFsbC12aXNpYmxlIGFuZC9vciBhbGwtZnJv emVuIGluIHRoZSBWTSwKLQkgKiBjb3VudCBpdCBhcyBuZXdseSBzZXQgZm9yIGxvZ2dpbmcuCi0J ICovCi0JaWYgKChvbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkgPT0gMCkK LQl7Ci0JCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX3BhZ2VzKys7Ci0JCWlmIChwcmVzdWx0LnNl dF9hbGxfZnJvemVuKQotCQl7Ci0JCQl2YWNyZWwtPm5ld19hbGxfdmlzaWJsZV9hbGxfZnJvemVu X3BhZ2VzKys7Ci0JCQkqdm1fcGFnZV9mcm96ZW4gPSB0cnVlOwotCQl9Ci0JfQotCWVsc2UgaWYg KChvbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSA9PSAwICYmCi0JCQkgcHJl c3VsdC5zZXRfYWxsX2Zyb3plbikKLQl7Ci0JCXZhY3JlbC0+bmV3X2FsbF9mcm96ZW5fcGFnZXMr KzsKLQkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1ZTsKLQl9Ci0KIAlyZXR1cm4gcHJlc3VsdC5uZGVs ZXRlZDsKIH0KIApAQCAtMzYxMyw3ICszNTI0LDcgQEAgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVs U3RhdGUgKnZhY3JlbCkKICAqIHRoYXQgZXhwZWN0IG5vIExQX0RFQUQgb24gdGhlIHBhZ2UuIEN1 cnJlbnRseSBhc3NlcnQtb25seSwgYnV0IHRoZXJlIGlzIG5vCiAgKiByZWFzb24gbm90IHRvIHVz ZSBpdCBvdXRzaWRlIG9mIGFzc2VydHMuCiAgKi8KLXN0YXRpYyBib29sCitib29sCiBoZWFwX3Bh Z2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJIEdsb2Jh bFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt LmgKaW5kZXggY2E1ZThkMTc5NGYuLjBhYjMyMmJmNThiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC0y NjUsNyArMjY1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVQYXJhbXMKIAogCS8qCiAJ ICogQ2FsbGVycyBzaG91bGQgcHJvdmlkZSBhIHBpbm5lZCB2bWJ1ZmZlciBjb3JyZXNwb25kaW5n IHRvIHRoZSBoZWFwCi0JICogYmxvY2sgaW4gYnVmZmVyLiBXZSB3aWxsIGNoZWNrIGZvciBhbmQg cmVwYWlyIGFueSBjb3JydXB0aW9uIGluIHRoZSBWTS4KKwkgKiBibG9jayBpbiBidWZmZXIuIFdl IHdpbGwgY2hlY2sgZm9yIGFuZCByZXBhaXIgYW55IGNvcnJ1cHRpb24gaW4gdGhlIFZNCisJICog YW5kIHNldCB0aGUgVk0gYWZ0ZXIgcHJ1bmluZyBpZiB0aGUgcGFnZSBpcyBhbGwtdmlzaWJsZS9h bGwtZnJvemVuLgogCSAqLwogCUJ1ZmZlcgkJdm1idWZmZXI7CiAKQEAgLTI4MSw4ICsyODIsNyBA QCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVBhcmFtcwogCSAqIEhFQVBfUEFHRV9QUlVORV9N QVJLX1VOVVNFRF9OT1cgaW5kaWNhdGVzIHRoYXQgZGVhZCBpdGVtcyBjYW4gYmUgc2V0CiAJICog TFBfVU5VU0VEIGR1cmluZyBwcnVuaW5nLgogCSAqCi0JICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVa RSBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIGFsc28gZnJlZXplIHR1cGxlcywgYW5kCi0JICogd2ls bCByZXR1cm4gJ2FsbF92aXNpYmxlJywgJ2FsbF9mcm96ZW4nIGZsYWdzIHRvIHRoZSBjYWxsZXIu CisJICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIGFsc28g ZnJlZXplIHR1cGxlcy4KIAkgKi8KIAlpbnQJCQlvcHRpb25zOwogCkBAIC0zMTYsMjYgKzMxNiwx MiBAQCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVJlc3VsdAogCWludAkJCXJlY2VudGx5X2Rl YWRfdHVwbGVzOwogCiAJLyoKLQkgKiBzZXRfYWxsX3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVu IGluZGljYXRlIGlmIHRoZSBhbGwtdmlzaWJsZSBhbmQKLQkgKiBhbGwtZnJvemVuIGJpdHMgaW4g dGhlIHZpc2liaWxpdHkgbWFwIHNob3VsZCBiZSBzZXQgZm9yIHRoaXMgcGFnZSBhZnRlcgotCSAq IHBydW5pbmcuCi0JICoKLQkgKiB2bV9jb25mbGljdF9ob3Jpem9uIGlzIHRoZSBuZXdlc3QgeG1p biBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZS4gIFRoZQotCSAqIGNhbGxlciBjYW4gdXNlIGl0 IGFzIHRoZSBjb25mbGljdCBob3Jpem9uIHdoZW4gc2V0dGluZyB0aGUgVk0gYml0cy4gIEl0Ci0J ICogaXMgb25seSB2YWxpZCBpZiB3ZSBmcm96ZSBzb21lIHR1cGxlcyAobmZyb3plbiA+IDApLCBh bmQgc2V0X2FsbF9mcm96ZW4KLQkgKiBpcyB0cnVlLgotCSAqCi0JICogVGhlc2UgYXJlIG9ubHkg c2V0IGlmIHRoZSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBzZXQuCi0JICovCi0J Ym9vbAkJc2V0X2FsbF92aXNpYmxlOwotCWJvb2wJCXNldF9hbGxfZnJvemVuOwotCVRyYW5zYWN0 aW9uSWQgdm1fY29uZmxpY3RfaG9yaXpvbjsKLQotCS8qCi0JICogVGhlIHZhbHVlIG9mIHRoZSB2 bWJ1ZmZlcidzIHZtYml0cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHBydW5pbmcuIEl0IGlzCi0JICog Y2xlYXJlZCBpZiBWTSBjb3JydXB0aW9uIGlzIGZvdW5kIGFuZCBjb3JyZWN0ZWQuCisJICogV2hl dGhlciBvciBub3QgdGhlIHBhZ2Ugd2FzIG5ld2x5IHNldCBhbGwtdmlzaWJsZSBhbmQgYWxsLWZy b3plbiBkdXJpbmcKKwkgKiBwaGFzZSBJIG9mIHZhY3V1bWluZy4KIAkgKi8KLQl1aW50OAkJb2xk X3ZtYml0czsKKwlib29sCQluZXdseV9hbGxfdmlzaWJsZTsKKwlib29sCQluZXdseV9hbGxfdmlz aWJsZV9mcm96ZW47CisJYm9vbAkJbmV3bHlfYWxsX2Zyb3plbjsKIAogCS8qCiAJICogV2hldGhl ciBvciBub3QgdGhlIHBhZ2UgbWFrZXMgcmVsIHRydW5jYXRpb24gdW5zYWZlLiAgVGhpcyBpcyBz ZXQgdG8KQEAgLTQ3Miw2ICs0NTgsMTMgQEAgZXh0ZXJuIHZvaWQgbG9nX2hlYXBfcHJ1bmVfYW5k X2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIC8qIGluIGhlYXAvdmFj dXVtbGF6eS5jICovCiBleHRlcm4gdm9pZCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLAog CQkJCQkJCWNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsIEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IGJz dHJhdGVneSk7CisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworZXh0ZXJuIGJvb2wgaGVhcF9w YWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKKwkJCQkJCQkJCSBH bG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKKwkJCQkJCQkJCSBib29sICphbGxfZnJvemVuLAorCQkJ CQkJCQkJIFRyYW5zYWN0aW9uSWQgKm5ld2VzdF9saXZlX3hpZCwKKwkJCQkJCQkJCSBPZmZzZXRO dW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKKyNlbmRpZgogCiAvKiBpbiBoZWFwL2hlYXBhbV92aXNp YmlsaXR5LmMgKi8KIGV4dGVybiBib29sIEhlYXBUdXBsZVNhdGlzZmllc1Zpc2liaWxpdHkoSGVh cFR1cGxlIGh0dXAsIFNuYXBzaG90IHNuYXBzaG90LAotLSAKMi40My4wCgo= --000000000000114061064db81427 Content-Type: text/x-patch; charset="US-ASCII"; name="v44-0004-WAL-log-VM-setting-for-empty-pages-in-XLOG_HEAP2.patch" Content-Disposition: attachment; filename="v44-0004-WAL-log-VM-setting-for-empty-pages-in-XLOG_HEAP2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn3q2xps3 RnJvbSAxMzRlMTk1MDQ4ODNkYzNiMDdjNTA2MzMyZGQyMzUzM2UzODFiNjk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjIxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDQgMDQvMTBdIFdBTCBsb2cgVk0gc2V0dGluZyBmb3IgZW1wdHkgcGFnZXMgaW4KIFhM T0dfSEVBUDJfUFJVTkVfVkFDVVVNX1NDQU4KCkFzIHBhcnQgb2YgcmVtb3ZpbmcgWExPR19IRUFQ Ml9WSVNJQkxFIHJlY29yZHMsIHBoYXNlIEkgb2YgVkFDVVVNIG5vdwptYXJrcyBlbXB0eSBwYWdl cyBhbGwtdmlzaWJsZSBpbiBhIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX1NDQU4gcmVjb3JkLgoK VGhpcyBoYXMgbm8gaW5kZXBlbmRlbnQgYmVuZWZpdCwgYnV0IGVtcHR5IHBhZ2VzIHdlcmUgdGhl IGxhc3QgdXNlciBvZgpYTE9HX0hFQVAyX1ZJU0lCTEUsIHNvIGJ5IG1ha2luZyB0aGlzIGNoYW5n ZSB3ZSBjYW4gbmV4dCByZW1vdmUgYWxsIG9mCnRoZSBYTE9HX0hFQVAyX1ZJU0lCTEUgY29kZS4K CkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2 aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6 IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5jb20+CkVhcmxpZXIgdmVyc2lvbiBSZXZpZXdl ZC1ieTogUm9iZXJ0IEhhYXMgPHJvYmVydG1oYWFzQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgfCAyOSArKysrKysrKysrKy0tLS0tLS0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8IDQ0ICsrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA0ZDZkNWU5Mjc3My4uZmU5 NTY0YjI2YzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0yNTQxLDYgKzI1 NDEsOCBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZm ZXIgYnVmZmVyLAogCXVpbnQ4CQlpbmZvOwogCXVpbnQ4CQlyZWdidWZfZmxhZ3NfaGVhcDsKIAor CVBhZ2UJCWhlYXBfcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKKwogCS8qIFRoZSBmb2xs b3dpbmcgbG9jYWwgdmFyaWFibGVzIGhvbGQgZGF0YSByZWdpc3RlcmVkIGluIHRoZSBXQUwgcmVj b3JkOiAqLwogCXhsaHBfZnJlZXplX3BsYW4gcGxhbnNbTWF4SGVhcFR1cGxlc1BlclBhZ2VdOwog CXhsaHBfZnJlZXplX3BsYW5zIGZyZWV6ZV9wbGFuczsKQEAgLTI1NTksMTQgKzI1NjEsMTggQEAg bG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZl ciwKIAkvKgogCSAqIFdlIGNhbiBhdm9pZCBhbiBGUEkgb2YgdGhlIGhlYXAgcGFnZSBpZiB0aGUg b25seSBtb2RpZmljYXRpb24gd2UgYXJlCiAJICogbWFraW5nIHRvIGl0IGlzIHRvIHNldCBQRF9B TExfVklTSUJMRSBhbmQgY2hlY2tzdW1zL3dhbF9sb2dfaGludHMgYXJlCi0JICogZGlzYWJsZWQu IE5vdGUgdGhhdCBpZiB3ZSBleHBsaWNpdGx5IHNraXAgYW4gRlBJLCB3ZSBtdXN0IG5vdCBzdGFt cCB0aGUKLQkgKiBoZWFwIHBhZ2Ugd2l0aCB0aGlzIHJlY29yZCdzIExTTi4gUmVjb3Zlcnkgc2tp cHMgcmVjb3JkcyA8PSB0aGUgc3RhbXBlZAotCSAqIExTTiwgc28gdGhpcyBjb3VsZCBsZWFkIHRv IHNraXBwaW5nIGFuIGVhcmxpZXIgRlBJIG5lZWRlZCB0byByZXBhaXIgYQotCSAqIHRvcm4gcGFn ZS4KKwkgKiBkaXNhYmxlZC4KKwkgKgorCSAqIEhvd2V2ZXIsIGlmIHRoZSBwYWdlIGhhcyBuZXZl ciBiZWVuIFdBTC1sb2dnZWQgKExTTiBpcyBpbnZhbGlkKSwgd2UKKwkgKiBtdXN0IGZvcmNlIGFu IEZQSSByZWdhcmRsZXNzLiAgVGhpcyBjYW4gaGFwcGVuIHdoZW4gYW5vdGhlciBiYWNrZW5kCisJ ICogZXh0ZW5kcyB0aGUgaGVhcCwgaW5pdGlhbGl6ZXMgdGhlIHBhZ2UsIGFuZCB0aGVuIGZhaWxz IGJlZm9yZSBXQUwtCisJICogbG9nZ2luZyBpdC4gIFNpbmNlIGhlYXAgZXh0ZW5zaW9uIGlzIG5v dCBXQUwtbG9nZ2VkLCByZWNvdmVyeSBtaWdodCB0cnkKKwkgKiB0byByZXBsYXkgb3VyIHJlY29y ZCBhbmQgZmluZCB0aGF0IHRoZSBwYWdlIGlzbid0IGluaXRpYWxpemVkLCB3aGljaAorCSAqIHdv dWxkIGNhdXNlIGEgUEFOSUMuCiAJICovCi0JaWYgKCFkb19wcnVuZSAmJgotCQluZnJvemVuID09 IDAgJiYKLQkJKCFkb19zZXRfdm0gfHwgIVhMb2dIaW50Qml0SXNOZWVkZWQoKSkpCisJaWYgKCFY TG9nUmVjUHRySXNWYWxpZChQYWdlR2V0TFNOKGhlYXBfcGFnZSkpKQorCQlyZWdidWZfZmxhZ3Nf aGVhcCB8PSBSRUdCVUZfRk9SQ0VfSU1BR0U7CisJZWxzZSBpZiAoIWRvX3BydW5lICYmIG5mcm96 ZW4gPT0gMCAmJiAoIWRvX3NldF92bSB8fCAhWExvZ0hpbnRCaXRJc05lZWRlZCgpKSkKIAkJcmVn YnVmX2ZsYWdzX2hlYXAgfD0gUkVHQlVGX05PX0lNQUdFOwogCiAJLyoKQEAgLTI2ODEsMTIgKzI2 ODcsMTMgQEAgbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVm ZmVyIGJ1ZmZlciwKIAl9CiAKIAkvKgotCSAqIFNlZSBjb21tZW50IGF0IHRoZSB0b3Agb2YgdGhl IGZ1bmN0aW9uIGFib3V0IHJlZ2J1Zl9mbGFnc19oZWFwIGZvcgotCSAqIGRldGFpbHMgb24gd2hl biB3ZSBjYW4gYWR2YW5jZSB0aGUgcGFnZSBMU04uCisJICogSWYgd2UgZXhwbGljaXRseSBza2lw IGFuIEZQSSwgd2UgbXVzdCBub3Qgc3RhbXAgdGhlIGhlYXAgcGFnZSB3aXRoIHRoaXMKKwkgKiBy ZWNvcmQncyBMU04uIFJlY292ZXJ5IHNraXBzIHJlY29yZHMgPD0gdGhlIHN0YW1wZWQgTFNOLCBz byB0aGlzIGNvdWxkCisJICogbGVhZCB0byBza2lwcGluZyBhbiBlYXJsaWVyIEZQSSBuZWVkZWQg dG8gcmVwYWlyIGEgdG9ybiBwYWdlLgogCSAqLwotCWlmIChkb19wcnVuZSB8fCBuZnJvemVuID4g MCB8fCAoZG9fc2V0X3ZtICYmIFhMb2dIaW50Qml0SXNOZWVkZWQoKSkpCisJaWYgKCEocmVnYnVm X2ZsYWdzX2hlYXAgJiBSRUdCVUZfTk9fSU1BR0UpKQogCXsKIAkJQXNzZXJ0KEJ1ZmZlcklzRGly dHkoYnVmZmVyKSk7Ci0JCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZShidWZmZXIpLCByZWNwdHIp OworCQlQYWdlU2V0TFNOKGhlYXBfcGFnZSwgcmVjcHRyKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKaW5kZXggMjNkZWFiZDhjMDEuLjYzZTYxOTkyNDFjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0xOTI5LDMzICsxOTI5LDQzIEBAIGxhenlf c2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBCbG9ja051 bWJlciBibGtubywKIAkJICovCiAJCWlmICghUGFnZUlzQWxsVmlzaWJsZShwYWdlKSkKIAkJewor CQkJLyogTG9jayB2bWJ1ZmZlciBiZWZvcmUgZW50ZXJpbmcgY3JpdGljYWwgc2VjdGlvbiAqLwor CQkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfRVhDTFVTSVZFKTsKKwogCQkJU1RB UlRfQ1JJVF9TRUNUSU9OKCk7CiAKIAkJCS8qIG1hcmsgYnVmZmVyIGRpcnR5IGJlZm9yZSB3cml0 aW5nIGEgV0FMIHJlY29yZCAqLwogCQkJTWFya0J1ZmZlckRpcnR5KGJ1Zik7CiAKKwkJCVBhZ2VT ZXRBbGxWaXNpYmxlKHBhZ2UpOworCQkJUGFnZUNsZWFyUHJ1bmFibGUocGFnZSk7CisJCQl2aXNp YmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8sCisJCQkJCQkJCQkgdm1idWZmZXIsCisJCQkJCQkJ CQkgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8CisJCQkJCQkJCQkgVklTSUJJTElUWU1BUF9B TExfRlJPWkVOLAorCQkJCQkJCQkJIHZhY3JlbC0+cmVsLT5yZF9sb2NhdG9yKTsKKwogCQkJLyoK LQkJCSAqIEl0J3MgcG9zc2libGUgdGhhdCBhbm90aGVyIGJhY2tlbmQgaGFzIGV4dGVuZGVkIHRo ZSBoZWFwLAotCQkJICogaW5pdGlhbGl6ZWQgdGhlIHBhZ2UsIGFuZCB0aGVuIGZhaWxlZCB0byBX QUwtbG9nIHRoZSBwYWdlIGR1ZQotCQkJICogdG8gYW4gRVJST1IuICBTaW5jZSBoZWFwIGV4dGVu c2lvbiBpcyBub3QgV0FMLWxvZ2dlZCwgcmVjb3ZlcnkKLQkJCSAqIG1pZ2h0IHRyeSB0byByZXBs YXkgb3VyIHJlY29yZCBzZXR0aW5nIHRoZSBwYWdlIGFsbC12aXNpYmxlIGFuZAotCQkJICogZmlu ZCB0aGF0IHRoZSBwYWdlIGlzbid0IGluaXRpYWxpemVkLCB3aGljaCB3aWxsIGNhdXNlIGEgUEFO SUMuCi0JCQkgKiBUbyBwcmV2ZW50IHRoYXQsIGNoZWNrIHdoZXRoZXIgdGhlIHBhZ2UgaGFzIGJl ZW4gcHJldmlvdXNseQotCQkJICogV0FMLWxvZ2dlZCwgYW5kIGlmIG5vdCwgZG8gdGhhdCBub3cu CisJCQkgKiBFbWl0IFdBTCBmb3Igc2V0dGluZyBQRF9BTExfVklTSUJMRSBvbiB0aGUgaGVhcCBw YWdlIGFuZAorCQkJICogc2V0dGluZyB0aGUgVk0uCiAJCQkgKi8KLQkJCWlmIChSZWxhdGlvbk5l ZWRzV0FMKHZhY3JlbC0+cmVsKSAmJgotCQkJCSFYTG9nUmVjUHRySXNWYWxpZChQYWdlR2V0TFNO KHBhZ2UpKSkKLQkJCQlsb2dfbmV3cGFnZV9idWZmZXIoYnVmLCB0cnVlKTsKKwkJCWlmIChSZWxh dGlvbk5lZWRzV0FMKHZhY3JlbC0+cmVsKSkKKwkJCQlsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXpl KHZhY3JlbC0+cmVsLCBidWYsCisJCQkJCQkJCQkJICB2bWJ1ZmZlciwKKwkJCQkJCQkJCQkgIFZJ U0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExf RlJPWkVOLAorCQkJCQkJCQkJCSAgSW52YWxpZFRyYW5zYWN0aW9uSWQsIC8qIGNvbmZsaWN0IHhp ZCAqLworCQkJCQkJCQkJCSAgZmFsc2UsCS8qIGNsZWFudXAgbG9jayAqLworCQkJCQkJCQkJCSAg UFJVTkVfVkFDVVVNX1NDQU4sCS8qIHJlYXNvbiAqLworCQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJ CQkJCQkJCQkgIE5VTEwsIDAsCisJCQkJCQkJCQkJICBOVUxMLCAwLAorCQkJCQkJCQkJCSAgTlVM TCwgMCk7CiAKLQkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwotCQkJUGFnZUNsZWFyUHJ1bmFi bGUocGFnZSk7Ci0JCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sIGJ1ZiwK LQkJCQkJCQkgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJCSAgdm1idWZmZXIsIEludmFsaWRU cmFuc2FjdGlvbklkLAotCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8Ci0JCQkJ CQkJICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOwogCQkJRU5EX0NSSVRfU0VDVElPTigpOwog CisJCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCiAJCQkvKiBD b3VudCB0aGUgbmV3bHkgYWxsLWZyb3plbiBwYWdlcyBmb3IgbG9nZ2luZyAqLwogCQkJdmFjcmVs LT5uZXdfYWxsX3Zpc2libGVfcGFnZXMrKzsKIAkJCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX2Fs bF9mcm96ZW5fcGFnZXMrKzsKLS0gCjIuNDMuMAoK --000000000000114061064db81427 Content-Type: text/x-patch; charset="US-ASCII"; name="v44-0005-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Disposition: attachment; filename="v44-0005-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn3q305f4 RnJvbSA0MmIxNWE2NTRjODdjMzZhYWRkMTc2OGYzZjJmYzkxNTAxOWVlNDRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjM2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDQgMDUvMTBdIFJlbW92ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZW50aXJlbHkKClRoZXJl IGFyZSBubyByZW1haW5pbmcgdXNlcnMgdGhhdCBlbWl0IFhMT0dfSEVBUDJfVklTSUJMRSByZWNv cmRzLCBzbyBpdApjYW4gYmUgcmVtb3ZlZC4gVGhpcyBpbmNsdWRlcyBkZWxldGluZyB0aGUgeGxf aGVhcF92aXNpYmxlIHN0cnVjdCBhbmQKYWxsIGZ1bmN0aW9ucyByZXNwb25zaWJsZSBmb3IgZW1p dHRpbmcgb3IgcmVwbGF5aW5nIFhMT0dfSEVBUDJfVklTSUJMRQpyZWNvcmRzLgoKQXV0aG9yOiBN ZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTog QW5kcmV5IEJvcm9kaW4gPHg0bW1tQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogQW5kcmVz IEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZh bi5jaGFvQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1hc2su YyAgICAgIHwgICA1ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAg IHwgIDU0ICstLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICAg IHwgMTU2ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYyAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMgICAgIHwgIDE2ICstLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1h cC5jICB8IDE1MSArKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1n cmRlc2MvaGVhcGRlc2MuYyAgIHwgIDEwIC0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL2RlY29kZS5jIHwgICAxIC0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAg ICAgICAgfCAgIDkgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oICAgICAgICAg fCAgMjEgKy0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oICAgICAgIHwgIDEz ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCAgIHwgICA5IC0tCiBz cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgIHwgICAxIC0KIDEzIGZpbGVz IGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDM4NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1hc2suYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9jb21tb24vYnVmbWFzay5jCmluZGV4IDhhNjdiZmExYWZmLi5mMzJlMzkxMWE1NyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKQEAgLTU1LDkgKzU1LDggQEAgbWFza19wYWdlX2hp bnRfYml0cyhQYWdlIHBhZ2UpCiAJUGFnZUNsZWFySGFzRnJlZUxpbmVQb2ludGVycyhwYWdlKTsK IAogCS8qCi0JICogRHVyaW5nIHJlcGxheSwgaWYgdGhlIHBhZ2UgTFNOIGhhcyBhZHZhbmNlZCBw YXN0IG91ciBYTE9HIHJlY29yZCdzIExTTiwKLQkgKiB3ZSBkb24ndCBtYXJrIHRoZSBwYWdlIGFs bC12aXNpYmxlLiBTZWUgaGVhcF94bG9nX3Zpc2libGUoKSBmb3IKLQkgKiBkZXRhaWxzLgorCSAq IFBEX0FMTF9WSVNJQkxFIGlzIG1hc2tlZCBkdXJpbmcgV0FMIGNvbnNpc3RlbmN5IGNoZWNraW5n LiBJdCBpcyB3b3J0aAorCSAqIGludmVzdGlnYXRpbmcgaWYgd2UgY291bGQgc3RvcCBkb2luZyB0 aGlzLgogCSAqLwogCVBhZ2VDbGVhckFsbFZpc2libGUocGFnZSk7CiB9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbS5jCmluZGV4IGU1YmQwNjJkZTc3Li4wNDRmMzg1ZTQ3NyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtLmMKQEAgLTI1ODksMTEgKzI1ODksMTEgQEAgaGVhcF9tdWx0aV9pbnNlcnQoUmVs YXRpb24gcmVsYXRpb24sIFR1cGxlVGFibGVTbG90ICoqc2xvdHMsIGludCBudHVwbGVzLAogCQl7 CiAJCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKIAkJCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2Up OwotCQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZl ciksCi0JCQkJCQkJCQkgdm1idWZmZXIsCi0JCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfVklT SUJMRSB8Ci0JCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOLAotCQkJCQkJCQkJIHJl bGF0aW9uLT5yZF9sb2NhdG9yKTsKKwkJCXZpc2liaWxpdHltYXBfc2V0KEJ1ZmZlckdldEJsb2Nr TnVtYmVyKGJ1ZmZlciksCisJCQkJCQkJICB2bWJ1ZmZlciwKKwkJCQkJCQkgIFZJU0lCSUxJVFlN QVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOLAorCQkJ CQkJCSAgcmVsYXRpb24tPnJkX2xvY2F0b3IpOwogCQl9CiAKIAkJLyoKQEAgLTg4ODYsNTAgKzg4 ODYsNiBAQCBib3R0b211cF9zb3J0X2FuZF9zaHJpbmsoVE1fSW5kZXhEZWxldGVPcCAqZGVsc3Rh dGUpCiAJcmV0dXJuIG5ibG9ja3NmYXZvcmFibGU7CiB9CiAKLS8qCi0gKiBQZXJmb3JtIFhMb2dJ bnNlcnQgZm9yIGEgaGVhcC12aXNpYmxlIG9wZXJhdGlvbi4gICdibG9jaycgaXMgdGhlIGJsb2Nr Ci0gKiBiZWluZyBtYXJrZWQgYWxsLXZpc2libGUsIGFuZCB2bV9idWZmZXIgaXMgdGhlIGJ1ZmZl ciBjb250YWluaW5nIHRoZQotICogY29ycmVzcG9uZGluZyB2aXNpYmlsaXR5IG1hcCBibG9jay4g IEJvdGggc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIG1vZGlmaWVkCi0gKiBhbmQgZGlydGllZC4K LSAqCi0gKiBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiBjb21lcyBmcm9tIHRoZSBsYXJnZXN0IHht aW4gb24gdGhlIHBhZ2UgYmVpbmcKLSAqIG1hcmtlZCBhbGwtdmlzaWJsZS4gIFJFRE8gcm91dGlu ZSB1c2VzIGl0IHRvIGdlbmVyYXRlIHJlY292ZXJ5IGNvbmZsaWN0cy4KLSAqCi0gKiBJZiBjaGVj a3N1bXMgb3Igd2FsX2xvZ19oaW50cyBhcmUgZW5hYmxlZCwgd2UgbWF5IGFsc28gZ2VuZXJhdGUg YSBmdWxsLXBhZ2UKLSAqIGltYWdlIG9mIGhlYXBfYnVmZmVyLiBPdGhlcndpc2UsIHdlIG9wdGlt aXplIGF3YXkgdGhlIEZQSSAoYnkgc3BlY2lmeWluZwotICogUkVHQlVGX05PX0lNQUdFIGZvciB0 aGUgaGVhcCBidWZmZXIpLCBpbiB3aGljaCBjYXNlIHRoZSBjYWxsZXIgc2hvdWxkICpub3QqCi0g KiB1cGRhdGUgdGhlIGhlYXAgcGFnZSdzIExTTi4KLSAqLwotWExvZ1JlY1B0cgotbG9nX2hlYXBf dmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1ZmZl ciwKLQkJCQkgVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwgdWludDggdm1m bGFncykKLXsKLQl4bF9oZWFwX3Zpc2libGUgeGxyZWM7Ci0JWExvZ1JlY1B0cglyZWNwdHI7Ci0J dWludDgJCWZsYWdzOwotCi0JQXNzZXJ0KEJ1ZmZlcklzVmFsaWQoaGVhcF9idWZmZXIpKTsKLQlB c3NlcnQoQnVmZmVySXNWYWxpZCh2bV9idWZmZXIpKTsKLQotCXhscmVjLnNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uID0gc25hcHNob3RDb25mbGljdEhvcml6b247Ci0JeGxyZWMuZmxhZ3MgPSB2bWZs YWdzOwotCWlmIChSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKHJlbCkpCi0J CXhscmVjLmZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JFTDsKLQlYTG9nQmVn aW5JbnNlcnQoKTsKLQlYTG9nUmVnaXN0ZXJEYXRhKCZ4bHJlYywgU2l6ZU9mSGVhcFZpc2libGUp OwotCi0JWExvZ1JlZ2lzdGVyQnVmZmVyKDAsIHZtX2J1ZmZlciwgMCk7Ci0KLQlmbGFncyA9IFJF R0JVRl9TVEFOREFSRDsKLQlpZiAoIVhMb2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJZmxhZ3MgfD0g UkVHQlVGX05PX0lNQUdFOwotCVhMb2dSZWdpc3RlckJ1ZmZlcigxLCBoZWFwX2J1ZmZlciwgZmxh Z3MpOwotCi0JcmVjcHRyID0gWExvZ0luc2VydChSTV9IRUFQMl9JRCwgWExPR19IRUFQMl9WSVNJ QkxFKTsKLQotCXJldHVybiByZWNwdHI7Ci19Ci0KIC8qCiAgKiBQZXJmb3JtIFhMb2dJbnNlcnQg Zm9yIGEgaGVhcC11cGRhdGUgb3BlcmF0aW9uLiAgQ2FsbGVyIG11c3QgYWxyZWFkeQogICogaGF2 ZSBtb2RpZmllZCB0aGUgYnVmZmVyKHMpIGFuZCBtYXJrZWQgdGhlbSBkaXJ0eS4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCmluZGV4IDFkYTc3NGMxNTM2Li4xMzAyYmIxM2UxOCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCkBAIC0yMzksNyArMjM5LDcgQEAg aGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJaWYgKFBh Z2VJc05ldyh2bXBhZ2UpKQogCQkJUGFnZUluaXQodm1wYWdlLCBCTENLU1osIDApOwogCi0JCXZp c2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywgdm1idWZmZXIsIHZtZmxhZ3MsIHJsb2NhdG9y KTsKKwkJdmlzaWJpbGl0eW1hcF9zZXQoYmxrbm8sIHZtYnVmZmVyLCB2bWZsYWdzLCBybG9jYXRv cik7CiAKIAkJQXNzZXJ0KEJ1ZmZlcklzRGlydHkodm1idWZmZXIpKTsKIAkJUGFnZVNldExTTih2 bXBhZ2UsIGxzbik7CkBAIC0yNTIsMTQzICsyNTIsNiBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXpl KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlYTG9nUmVjb3JkUGFnZVdpdGhGcmVlU3BhY2Uo cmxvY2F0b3IsIGJsa25vLCBmcmVlc3BhY2UpOwogfQogCi0vKgotICogUmVwbGF5IFhMT0dfSEVB UDJfVklTSUJMRSByZWNvcmRzLgotICoKLSAqIFRoZSBjcml0aWNhbCBpbnRlZ3JpdHkgcmVxdWly ZW1lbnQgaGVyZSBpcyB0aGF0IHdlIG11c3QgbmV2ZXIgZW5kIHVwIHdpdGgKLSAqIGEgc2l0dWF0 aW9uIHdoZXJlIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQgaXMgc2V0LCBhbmQgdGhlIHBhZ2UtbGV2 ZWwKLSAqIFBEX0FMTF9WSVNJQkxFIGJpdCBpcyBjbGVhci4gIElmIHRoYXQgd2VyZSB0byBvY2N1 ciwgdGhlbiBhIHN1YnNlcXVlbnQKLSAqIHBhZ2UgbW9kaWZpY2F0aW9uIHdvdWxkIGZhaWwgdG8g Y2xlYXIgdGhlIHZpc2liaWxpdHkgbWFwIGJpdC4KLSAqLwotc3RhdGljIHZvaWQKLWhlYXBfeGxv Z192aXNpYmxlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQotewotCVhMb2dSZWNQdHIJbHNuID0g cmVjb3JkLT5FbmRSZWNQdHI7Ci0JeGxfaGVhcF92aXNpYmxlICp4bHJlYyA9ICh4bF9oZWFwX3Zp c2libGUgKikgWExvZ1JlY0dldERhdGEocmVjb3JkKTsKLQlCdWZmZXIJCXZtYnVmZmVyID0gSW52 YWxpZEJ1ZmZlcjsKLQlCdWZmZXIJCWJ1ZmZlcjsKLQlQYWdlCQlwYWdlOwotCVJlbEZpbGVMb2Nh dG9yIHJsb2NhdG9yOwotCUJsb2NrTnVtYmVyIGJsa25vOwotCVhMb2dSZWRvQWN0aW9uIGFjdGlv bjsKLQotCUFzc2VydCgoeGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9YTE9HX1ZBTElEX0JJ VFMpID09IHhscmVjLT5mbGFncyk7Ci0KLQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAxLCAm cmxvY2F0b3IsIE5VTEwsICZibGtubyk7Ci0KLQkvKgotCSAqIElmIHRoZXJlIGFyZSBhbnkgSG90 IFN0YW5kYnkgdHJhbnNhY3Rpb25zIHJ1bm5pbmcgdGhhdCBoYXZlIGFuIHhtaW4KLQkgKiBob3Jp em9uIG9sZCBlbm91Z2ggdGhhdCB0aGlzIHBhZ2UgaXNuJ3QgYWxsLXZpc2libGUgZm9yIHRoZW0s IHRoZXkKLQkgKiBtaWdodCBpbmNvcnJlY3RseSBkZWNpZGUgdGhhdCBhbiBpbmRleC1vbmx5IHNj YW4gY2FuIHNraXAgYSBoZWFwIGZldGNoLgotCSAqCi0JICogTkI6IEl0IG1pZ2h0IGJlIGJldHRl ciB0byB0aHJvdyBzb21lIGtpbmQgb2YgInNvZnQiIGNvbmZsaWN0IGhlcmUgdGhhdAotCSAqIGZv cmNlcyBhbnkgaW5kZXgtb25seSBzY2FuIHRoYXQgaXMgaW4gZmxpZ2h0IHRvIHBlcmZvcm0gaGVh cCBmZXRjaGVzLAotCSAqIHJhdGhlciB0aGFuIGtpbGxpbmcgdGhlIHRyYW5zYWN0aW9uIG91dHJp Z2h0LgotCSAqLwotCWlmIChJbkhvdFN0YW5kYnkpCi0JCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0 V2l0aFNuYXBzaG90KHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKLQkJCQkJCQkJCQkJ eGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVMLAotCQkJCQkJCQkJ CQlybG9jYXRvcik7Ci0KLQkvKgotCSAqIFJlYWQgdGhlIGhlYXAgcGFnZSwgaWYgaXQgc3RpbGwg ZXhpc3RzLiBJZiB0aGUgaGVhcCBmaWxlIGhhcyBkcm9wcGVkIG9yCi0JICogdHJ1bmNhdGVkIGxh dGVyIGluIHJlY292ZXJ5LCB3ZSBkb24ndCBuZWVkIHRvIHVwZGF0ZSB0aGUgcGFnZSwgYnV0IHdl J2QKLQkgKiBiZXR0ZXIgc3RpbGwgdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcC4KLQkgKi8KLQlh Y3Rpb24gPSBYTG9nUmVhZEJ1ZmZlckZvclJlZG8ocmVjb3JkLCAxLCAmYnVmZmVyKTsKLQlpZiAo YWN0aW9uID09IEJMS19ORUVEU19SRURPKQotCXsKLQkJLyoKLQkJICogV2UgZG9uJ3QgYnVtcCB0 aGUgTFNOIG9mIHRoZSBoZWFwIHBhZ2Ugd2hlbiBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5Ci0JCSAq IG1hcCBiaXQgKHVubGVzcyBjaGVja3N1bXMgb3Igd2FsX2hpbnRfYml0cyBpcyBlbmFibGVkLCBp biB3aGljaAotCQkgKiBjYXNlIHdlIG11c3QpLiBUaGlzIGV4cG9zZXMgdXMgdG8gdG9ybiBwYWdl IGhhemFyZHMsIGJ1dCBzaW5jZQotCQkgKiB3ZSdyZSBub3QgaW5zcGVjdGluZyB0aGUgZXhpc3Rp bmcgcGFnZSBjb250ZW50cyBpbiBhbnkgd2F5LCB3ZQotCQkgKiBkb24ndCBjYXJlLgotCQkgKi8K LQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKLQotCQlQYWdlU2V0QWxsVmlzaWJsZShw YWdlKTsKLQkJUGFnZUNsZWFyUHJ1bmFibGUocGFnZSk7Ci0KLQkJaWYgKFhMb2dIaW50Qml0SXNO ZWVkZWQoKSkKLQkJCVBhZ2VTZXRMU04ocGFnZSwgbHNuKTsKLQotCQlNYXJrQnVmZmVyRGlydHko YnVmZmVyKTsKLQl9Ci0JZWxzZSBpZiAoYWN0aW9uID09IEJMS19SRVNUT1JFRCkKLQl7Ci0JCS8q Ci0JCSAqIElmIGhlYXAgYmxvY2sgd2FzIGJhY2tlZCB1cCwgd2UgYWxyZWFkeSByZXN0b3JlZCBp dCBhbmQgdGhlcmUncwotCQkgKiBub3RoaW5nIG1vcmUgdG8gZG8uIChUaGlzIGNhbiBvbmx5IGhh cHBlbiB3aXRoIGNoZWNrc3VtcyBvcgotCQkgKiB3YWxfbG9nX2hpbnRzIGVuYWJsZWQuKQotCQkg Ki8KLQl9Ci0KLQlpZiAoQnVmZmVySXNWYWxpZChidWZmZXIpKQotCXsKLQkJU2l6ZQkJc3BhY2Ug PSBQYWdlR2V0RnJlZVNwYWNlKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSk7Ci0KLQkJVW5sb2NrUmVs ZWFzZUJ1ZmZlcihidWZmZXIpOwotCi0JCS8qCi0JCSAqIFNpbmNlIEZTTSBpcyBub3QgV0FMLWxv Z2dlZCBhbmQgb25seSB1cGRhdGVkIGhldXJpc3RpY2FsbHksIGl0Ci0JCSAqIGVhc2lseSBiZWNv bWVzIHN0YWxlIGluIHN0YW5kYnlzLiAgSWYgdGhlIHN0YW5kYnkgaXMgbGF0ZXIgcHJvbW90ZWQK LQkJICogYW5kIHJ1bnMgVkFDVVVNLCBpdCB3aWxsIHNraXAgdXBkYXRpbmcgaW5kaXZpZHVhbCBm cmVlIHNwYWNlCi0JCSAqIGZpZ3VyZXMgZm9yIHBhZ2VzIHRoYXQgYmVjYW1lIGFsbC12aXNpYmxl IChvciBhbGwtZnJvemVuLCBkZXBlbmRpbmcKLQkJICogb24gdGhlIHZhY3V1bSBtb2RlLCkgd2hp Y2ggaXMgdHJvdWJsZXNvbWUgd2hlbiBGcmVlU3BhY2VNYXBWYWN1dW0KLQkJICogcHJvcGFnYXRl cyB0b28gb3B0aW1pc3RpYyBmcmVlIHNwYWNlIHZhbHVlcyB0byB1cHBlciBGU00gbGF5ZXJzOwot CQkgKiBsYXRlciBpbnNlcnRlcnMgdHJ5IHRvIHVzZSBzdWNoIHBhZ2VzIG9ubHkgdG8gZmluZCBv dXQgdGhhdCB0aGV5Ci0JCSAqIGFyZSB1bnVzYWJsZS4gIFRoaXMgY2FuIGNhdXNlIGxvbmcgc3Rh bGxzIHdoZW4gdGhlcmUgYXJlIG1hbnkgc3VjaAotCQkgKiBwYWdlcy4KLQkJICoKLQkJICogRm9y ZXN0YWxsIHRob3NlIHByb2JsZW1zIGJ5IHVwZGF0aW5nIEZTTSdzIGlkZWEgYWJvdXQgYSBwYWdl IHRoYXQKLQkJICogaXMgYmVjb21pbmcgYWxsLXZpc2libGUgb3IgYWxsLWZyb3plbi4KLQkJICoK LQkJICogRG8gdGhpcyByZWdhcmRsZXNzIG9mIGEgZnVsbC1wYWdlIGltYWdlIGJlaW5nIGFwcGxp ZWQsIHNpbmNlIHRoZQotCQkgKiBGU00gZGF0YSBpcyBub3QgaW4gdGhlIHBhZ2UgYW55d2F5Lgot CQkgKi8KLQkJaWYgKHhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykKLQkJ CVhMb2dSZWNvcmRQYWdlV2l0aEZyZWVTcGFjZShybG9jYXRvciwgYmxrbm8sIHNwYWNlKTsKLQl9 Ci0KLQkvKgotCSAqIEV2ZW4gaWYgd2Ugc2tpcHBlZCB0aGUgaGVhcCBwYWdlIHVwZGF0ZSBkdWUg dG8gdGhlIExTTiBpbnRlcmxvY2ssIGl0J3MKLQkgKiBzdGlsbCBzYWZlIHRvIHVwZGF0ZSB0aGUg dmlzaWJpbGl0eSBtYXAuICBBbnkgV0FMIHJlY29yZCB0aGF0IGNsZWFycwotCSAqIHRoZSB2aXNp YmlsaXR5IG1hcCBiaXQgZG9lcyBzbyBiZWZvcmUgY2hlY2tpbmcgdGhlIHBhZ2UgTFNOLCBzbyBh bnkKLQkgKiBiaXRzIHRoYXQgbmVlZCB0byBiZSBjbGVhcmVkIHdpbGwgc3RpbGwgYmUgY2xlYXJl ZC4KLQkgKi8KLQlpZiAoWExvZ1JlYWRCdWZmZXJGb3JSZWRvRXh0ZW5kZWQocmVjb3JkLCAwLCBS Qk1fWkVST19PTl9FUlJPUiwgZmFsc2UsCi0JCQkJCQkJCQkgICZ2bWJ1ZmZlcikgPT0gQkxLX05F RURTX1JFRE8pCi0JewotCQlQYWdlCQl2bXBhZ2UgPSBCdWZmZXJHZXRQYWdlKHZtYnVmZmVyKTsK LQkJUmVsYXRpb24JcmVsbjsKLQkJdWludDgJCXZtYml0czsKLQotCQkvKiBpbml0aWFsaXplIHRo ZSBwYWdlIGlmIGl0IHdhcyByZWFkIGFzIHplcm9zICovCi0JCWlmIChQYWdlSXNOZXcodm1wYWdl KSkKLQkJCVBhZ2VJbml0KHZtcGFnZSwgQkxDS1NaLCAwKTsKLQotCQkvKiByZW1vdmUgVklTSUJJ TElUWU1BUF9YTE9HXyogKi8KLQkJdm1iaXRzID0geGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1B UF9WQUxJRF9CSVRTOwotCi0JCS8qCi0JCSAqIFhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVk IGxvY2tlZCB0aGUgYnVmZmVyLiBCdXQKLQkJICogdmlzaWJpbGl0eW1hcF9zZXQgd2lsbCBoYW5k bGUgbG9ja2luZyBpdHNlbGYuCi0JCSAqLwotCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJf TE9DS19VTkxPQ0spOwotCi0JCXJlbG4gPSBDcmVhdGVGYWtlUmVsY2FjaGVFbnRyeShybG9jYXRv cik7Ci0KLQkJdmlzaWJpbGl0eW1hcF9zZXQocmVsbiwgYmxrbm8sIEludmFsaWRCdWZmZXIsIGxz biwgdm1idWZmZXIsCi0JCQkJCQkgIHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwgdm1i aXRzKTsKLQotCQlSZWxlYXNlQnVmZmVyKHZtYnVmZmVyKTsKLQkJRnJlZUZha2VSZWxjYWNoZUVu dHJ5KHJlbG4pOwotCX0KLQllbHNlIGlmIChCdWZmZXJJc1ZhbGlkKHZtYnVmZmVyKSkKLQkJVW5s b2NrUmVsZWFzZUJ1ZmZlcih2bWJ1ZmZlcik7Ci19Ci0KIC8qCiAgKiBHaXZlbiBhbiAiaW5mb2Jp dHMiIGZpZWxkIGZyb20gYW4gWExvZyByZWNvcmQsIHNldCB0aGUgY29ycmVjdCBiaXRzIGluIHRo ZQogICogZ2l2ZW4gaW5mb21hc2sgYW5kIGluZm9tYXNrMiBmb3IgdGhlIHR1cGxlIHRvdWNoZWQg YnkgdGhlIHJlY29yZC4KQEAgLTc2OSw4ICs2MzIsOCBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0 KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCSAqCiAJICogRHVyaW5nIHJlY292ZXJ5LCBob3dl dmVyLCBubyBjb25jdXJyZW50IHdyaXRlcnMgZXhpc3QuIFRoZXJlZm9yZSwKIAkgKiB1cGRhdGlu ZyB0aGUgVk0gd2l0aG91dCBob2xkaW5nIHRoZSBoZWFwIHBhZ2UgbG9jayBpcyBzYWZlIGVub3Vn aC4gVGhpcwotCSAqIHNhbWUgYXBwcm9hY2ggaXMgdGFrZW4gd2hlbiByZXBsYXlpbmcgeGxfaGVh cF92aXNpYmxlIHJlY29yZHMgKHNlZQotCSAqIGhlYXBfeGxvZ192aXNpYmxlKCkpLgorCSAqIHNh bWUgYXBwcm9hY2ggaXMgdGFrZW4gd2hlbiByZXBsYXlpbmcgWExPR19IRUFQMl9QUlVORSogcmVj b3JkcyAoc2VlCisJICogaGVhcF94bG9nX3BydW5lX2ZyZWV6ZSgpKS4KIAkgKi8KIAlpZiAoKHhs cmVjLT5mbGFncyAmIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQpICYmCiAJCVhMb2dSZWFkQnVm ZmVyRm9yUmVkb0V4dGVuZGVkKHJlY29yZCwgMSwgUkJNX1pFUk9fT05fRVJST1IsIGZhbHNlLApA QCAtNzgyLDExICs2NDUsMTEgQEAgaGVhcF94bG9nX211bHRpX2luc2VydChYTG9nUmVhZGVyU3Rh dGUgKnJlY29yZCkKIAkJaWYgKFBhZ2VJc05ldyh2bXBhZ2UpKQogCQkJUGFnZUluaXQodm1wYWdl LCBCTENLU1osIDApOwogCi0JCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywKLQkJCQkJ CQkJIHZtYnVmZmVyLAotCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8Ci0JCQkJ CQkJCSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCi0JCQkJCQkJCSBybG9jYXRvcik7CisJCXZp c2liaWxpdHltYXBfc2V0KGJsa25vLAorCQkJCQkJICB2bWJ1ZmZlciwKKwkJCQkJCSAgVklTSUJJ TElUWU1BUF9BTExfVklTSUJMRSB8CisJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwK KwkJCQkJCSAgcmxvY2F0b3IpOwogCiAJCUFzc2VydChCdWZmZXJJc0RpcnR5KHZtYnVmZmVyKSk7 CiAJCVBhZ2VTZXRMU04odm1wYWdlLCBsc24pOwpAQCAtMTM2OSw5ICsxMjMyLDYgQEAgaGVhcDJf cmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJY2FzZSBYTE9HX0hFQVAyX1BSVU5FX1ZB Q1VVTV9DTEVBTlVQOgogCQkJaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShyZWNvcmQpOwogCQkJYnJl YWs7Ci0JCWNhc2UgWExPR19IRUFQMl9WSVNJQkxFOgotCQkJaGVhcF94bG9nX3Zpc2libGUocmVj b3JkKTsKLQkJCWJyZWFrOwogCQljYXNlIFhMT0dfSEVBUDJfTVVMVElfSU5TRVJUOgogCQkJaGVh cF94bG9nX211bHRpX2luc2VydChyZWNvcmQpOwogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jCmluZGV4IGZlOTU2NGIyNmM3Li5mYzUzNDVlMWRmZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTEyNTIsOCArMTI1Miw4IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCQkgKi8KIAkJCVBhZ2VT ZXRBbGxWaXNpYmxlKHByc3RhdGUucGFnZSk7CiAJCQlQYWdlQ2xlYXJQcnVuYWJsZShwcnN0YXRl LnBhZ2UpOwotCQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKHByc3RhdGUuYmxvY2ssIHByc3Rh dGUudm1idWZmZXIsIHByc3RhdGUubmV3X3ZtYml0cywKLQkJCQkJCQkJCSBwcnN0YXRlLnJlbGF0 aW9uLT5yZF9sb2NhdG9yKTsKKwkJCXZpc2liaWxpdHltYXBfc2V0KHByc3RhdGUuYmxvY2ssIHBy c3RhdGUudm1idWZmZXIsIHByc3RhdGUubmV3X3ZtYml0cywKKwkJCQkJCQkgIHByc3RhdGUucmVs YXRpb24tPnJkX2xvY2F0b3IpOwogCQl9CiAKIAkJTWFya0J1ZmZlckRpcnR5KHByc3RhdGUuYnVm ZmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA2M2U2MTk5MjQxYy4u ZjY5OGMyZDg5OWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTE5Mzks MTEgKzE5MzksMTEgQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWws IEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCiAJCQlQYWdlU2V0QWxsVmlzaWJsZShw YWdlKTsKIAkJCVBhZ2VDbGVhclBydW5hYmxlKHBhZ2UpOwotCQkJdmlzaWJpbGl0eW1hcF9zZXRf dm1iaXRzKGJsa25vLAotCQkJCQkJCQkJIHZtYnVmZmVyLAotCQkJCQkJCQkJIFZJU0lCSUxJVFlN QVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKLQkJ CQkJCQkJCSB2YWNyZWwtPnJlbC0+cmRfbG9jYXRvcik7CisJCQl2aXNpYmlsaXR5bWFwX3NldChi bGtubywKKwkJCQkJCQkgIHZtYnVmZmVyLAorCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfVklT SUJMRSB8CisJCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCisJCQkJCQkJICB2YWNy ZWwtPnJlbC0+cmRfbG9jYXRvcik7CiAKIAkJCS8qCiAJCQkgKiBFbWl0IFdBTCBmb3Igc2V0dGlu ZyBQRF9BTExfVklTSUJMRSBvbiB0aGUgaGVhcCBwYWdlIGFuZApAQCAtMjgyMSw5ICsyODIxLDkg QEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIg Ymxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJCSAqLwogCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsK IAkJUGFnZUNsZWFyUHJ1bmFibGUocGFnZSk7Ci0JCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhi bGtubywKLQkJCQkJCQkJIHZtYnVmZmVyLCB2bWZsYWdzLAotCQkJCQkJCQkgdmFjcmVsLT5yZWwt PnJkX2xvY2F0b3IpOworCQl2aXNpYmlsaXR5bWFwX3NldChibGtubywKKwkJCQkJCSAgdm1idWZm ZXIsIHZtZmxhZ3MsCisJCQkJCQkgIHZhY3JlbC0+cmVsLT5yZF9sb2NhdG9yKTsKIAkJY29uZmxp Y3RfeGlkID0gbmV3ZXN0X2xpdmVfeGlkOwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlz aWJpbGl0eW1hcC5jCmluZGV4IGUyMWI5NjI4MWE2Li40ZmQ0NzA3MDJhYSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwpAQCAtMTQsOCArMTQsNyBAQAogICoJCXZpc2li aWxpdHltYXBfY2xlYXIgIC0gY2xlYXIgYml0cyBmb3Igb25lIHBhZ2UgaW4gdGhlIHZpc2liaWxp dHkgbWFwCiAgKgkJdmlzaWJpbGl0eW1hcF9waW4JIC0gcGluIGEgbWFwIHBhZ2UgZm9yIHNldHRp bmcgYSBiaXQKICAqCQl2aXNpYmlsaXR5bWFwX3Bpbl9vayAtIGNoZWNrIHdoZXRoZXIgY29ycmVj dCBtYXAgcGFnZSBpcyBhbHJlYWR5IHBpbm5lZAotICoJCXZpc2liaWxpdHltYXBfc2V0CSAtIHNl dCBiaXQocykgaW4gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdlIGFuZCBsb2cKLSAqCQl2aXNpYmls aXR5bWFwX3NldF92bWJpdHMgLSBzZXQgYml0KHMpIGluIGEgcGlubmVkIHBhZ2UKKyAqCQl2aXNp YmlsaXR5bWFwX3NldAkgLSBzZXQgYml0KHMpIGluIGEgcHJldmlvdXNseSBwaW5uZWQgcGFnZQog ICoJCXZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyAtIGdldCBzdGF0dXMgb2YgYml0cwogICoJCXZp c2liaWxpdHltYXBfY291bnQgIC0gY291bnQgbnVtYmVyIG9mIGJpdHMgc2V0IGluIHZpc2liaWxp dHkgbWFwCiAgKgkJdmlzaWJpbGl0eW1hcF9wcmVwYXJlX3RydW5jYXRlIC0KQEAgLTM1LDIxICsz NCwzMiBAQAogICogaXMgc2V0LCB3ZSBrbm93IHRoZSBjb25kaXRpb24gaXMgdHJ1ZSwgYnV0IGlm IGEgYml0IGlzIG5vdCBzZXQsIGl0IG1pZ2h0IG9yCiAgKiBtaWdodCBub3QgYmUgdHJ1ZS4KICAq Ci0gKiBDbGVhcmluZyB2aXNpYmlsaXR5IG1hcCBiaXRzIGlzIG5vdCBzZXBhcmF0ZWx5IFdBTC1s b2dnZWQuICBUaGUgY2FsbGVycwotICogbXVzdCBtYWtlIHN1cmUgdGhhdCB3aGVuZXZlciBhIGJp dCBpcyBjbGVhcmVkLCB0aGUgYml0IGlzIGNsZWFyZWQgb24gV0FMCi0gKiByZXBsYXkgb2YgdGhl IHVwZGF0aW5nIG9wZXJhdGlvbiBhcyB3ZWxsLgotICoKLSAqIFdoZW4gd2UgKnNldCogYSB2aXNp YmlsaXR5IG1hcCBkdXJpbmcgVkFDVVVNLCB3ZSBtdXN0IHdyaXRlIFdBTC4gIFRoaXMgbWF5Ci0g KiBzZWVtIGNvdW50ZXJpbnR1aXRpdmUsIHNpbmNlIHRoZSBiaXQgaXMgYmFzaWNhbGx5IGEgaGlu dDogaWYgaXQgaXMgY2xlYXIsCi0gKiBpdCBtYXkgc3RpbGwgYmUgdGhlIGNhc2UgdGhhdCBldmVy eSB0dXBsZSBvbiB0aGUgcGFnZSBpcyB2aXNpYmxlIHRvIGFsbAotICogdHJhbnNhY3Rpb25zOyB3 ZSBqdXN0IGRvbid0IGtub3cgdGhhdCBmb3IgY2VydGFpbi4gIFRoZSBkaWZmaWN1bHR5IGlzIHRo YXQKLSAqIHRoZXJlIGFyZSB0d28gYml0cyB3aGljaCBhcmUgdHlwaWNhbGx5IHNldCB0b2dldGhl cjogdGhlIFBEX0FMTF9WSVNJQkxFIGJpdAotICogb24gdGhlIHBhZ2UgaXRzZWxmLCBhbmQgdGhl IHZpc2liaWxpdHkgbWFwIGJpdC4gIElmIGEgY3Jhc2ggb2NjdXJzIGFmdGVyIHRoZQotICogdmlz aWJpbGl0eSBtYXAgcGFnZSBtYWtlcyBpdCB0byBkaXNrIGFuZCBiZWZvcmUgdGhlIHVwZGF0ZWQg aGVhcCBwYWdlIG1ha2VzCi0gKiBpdCB0byBkaXNrLCByZWRvIG11c3Qgc2V0IHRoZSBiaXQgb24g dGhlIGhlYXAgcGFnZS4gIE90aGVyd2lzZSwgdGhlIG5leHQKLSAqIGluc2VydCwgdXBkYXRlLCBv ciBkZWxldGUgb24gdGhlIGhlYXAgcGFnZSB3aWxsIGZhaWwgdG8gcmVhbGl6ZSB0aGF0IHRoZQot ICogdmlzaWJpbGl0eSBtYXAgYml0IG11c3QgYmUgY2xlYXJlZCwgcG9zc2libHkgY2F1c2luZyBp bmRleC1vbmx5IHNjYW5zIHRvCi0gKiByZXR1cm4gd3JvbmcgYW5zd2Vycy4KKyAqIENoYW5nZXMg dG8gdGhlIHZpc2liaWxpdHkgbWFwIGJpdHMgYXJlIG5vdCBzZXBhcmF0ZWx5IFdBTC1sb2dnZWQu IENhbGxlcnMKKyAqIG11c3QgbWFrZSBzdXJlIHRoYXQgd2hlbmV2ZXIgYSB2aXNpYmlsaXR5IG1h cCBiaXQgaXMgY2xlYXJlZCwgdGhlIGJpdCBpcworICogY2xlYXJlZCBvbiBXQUwgcmVwbGF5IG9m IHRoZSB1cGRhdGluZyBvcGVyYXRpb24uIEFuZCB3aGVuZXZlciBhIHZpc2liaWxpdHkKKyAqIG1h cCBiaXQgaXMgc2V0LCB0aGUgYml0IGlzIHNldCBvbiBXQUwgcmVwbGF5IG9mIHRoZSBvcGVyYXRp b24gdGhhdCByZW5kZXJlZAorICogdGhlIHBhZ2UgYWxsLXZpc2libGUvYWxsLWZyb3plbi4KKyAq CisgKiBUaGUgdmlzaWJpbGl0eSBtYXAgYml0cyBvcGVyYXRlIGFzIGEgaGludCBpbiBvbmUgZGly ZWN0aW9uOiBpZiB0aGV5IGFyZQorICogY2xlYXIsIGl0IG1heSBzdGlsbCBiZSB0aGUgY2FzZSB0 aGF0IGV2ZXJ5IHR1cGxlIG9uIHRoZSBwYWdlIGlzIHZpc2libGUgdG8KKyAqIGFsbCB0cmFuc2Fj dGlvbnMgKHdlIGp1c3QgZG9uJ3Qga25vdyB0aGF0IGZvciBjZXJ0YWluKS4gSG93ZXZlciwgaWYg dGhleQorICogYXJlIHNldCwgd2UgbWF5IHNraXAgdmFjdXVtaW5nIHBhZ2VzIGFuZCBhZHZhbmNl IHJlbGZyb3plbnhpZCBvciBza2lwCisgKiByZWFkaW5nIGhlYXAgcGFnZXMgZm9yIGFuIGluZGV4 LW9ubHkgc2Nhbi4gSWYgdGhleSBhcmUgaW5jb3JyZWN0bHkgc2V0LAorICogdGhpcyBjYW4gbGVh ZCB0byBkYXRhIGNvcnJ1cHRpb24gYW5kIHdyb25nIHJlc3VsdHMuCisgKgorICogQWRkaXRpb25h bGx5LCBpdCBpcyBjcml0aWNhbCB0aGF0IHRoZSBoZWFwLXBhZ2UgbGV2ZWwgUERfQUxMX1ZJU0lC TEUgYml0IGJlCisgKiBjb3JyZWN0bHkgc2V0IGFuZCBjbGVhcmVkIGFsb25nIHdpdGggdGhlIFZN IGJpdHMuCisgKgorICogV2hlbiBjbGVhcmluZyB0aGUgVk0sIGlmIGEgY3Jhc2ggb2NjdXJzIGFm dGVyIHRoZSBoZWFwIHBhZ2UgbWFrZXMgaXQgdG8KKyAqIGRpc2sgYnV0IGJlZm9yZSB0aGUgVk0g cGFnZSBtYWtlcyBpdCB0byBkaXNrLCByZXBsYXkgbXVzdCBjbGVhciB0aGUgVk0gb3IKKyAqIHRo ZSBuZXh0IGluZGV4LW9ubHkgc2NhbiBjYW4gcmV0dXJuIHdyb25nIHJlc3VsdHMgb3IgdmFjdXVt IG1heSBpbmNvcnJlY3RseQorICogYWR2YW5jZSByZWxmcm96ZW54aWQuCisgKgorICogV2hlbiBz ZXR0aW5nIHRoZSBWTSwgaWYgYSBjcmFzaCBvY2N1cnMgYWZ0ZXIgdGhlIHZpc2liaWxpdHkgbWFw IHBhZ2UgbWFrZXMKKyAqIGl0IHRvIGRpc2sgYW5kIGJlZm9yZSB0aGUgdXBkYXRlZCBoZWFwIHBh Z2UgbWFrZXMgaXQgdG8gZGlzaywgcmVkbyBtdXN0IHNldAorICogdGhlIGJpdCBvbiB0aGUgaGVh cCBwYWdlLiBPdGhlcndpc2UsIHRoZSBuZXh0IGluc2VydCwgdXBkYXRlLCBvciBkZWxldGUgb24K KyAqIHRoZSBoZWFwIHBhZ2Ugd2lsbCBmYWlsIHRvIHJlYWxpemUgdGhhdCB0aGUgdmlzaWJpbGl0 eSBtYXAgYml0IG11c3QgYmUKKyAqIGNsZWFyZWQsIHBvc3NpYmx5IGNhdXNpbmcgaW5kZXgtb25s eSBzY2FucyB0byByZXR1cm4gd3JvbmcgYW5zd2Vycy4KICAqCiAgKiBWQUNVVU0gd2lsbCBub3Jt YWxseSBza2lwIHBhZ2VzIGZvciB3aGljaCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IGlzIHNldDsK ICAqIHN1Y2ggcGFnZXMgY2FuJ3QgY29udGFpbiBhbnkgZGVhZCB0dXBsZXMgYW5kIHRoZXJlZm9y ZSBkb24ndCBuZWVkIHZhY3V1bWluZy4KQEAgLTIyMiwxMTIgKzIzMiwxMSBAQCB2aXNpYmlsaXR5 bWFwX3Bpbl9vayhCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgdm1idWYpCiAJcmV0dXJuIEJ1 ZmZlcklzVmFsaWQodm1idWYpICYmIEJ1ZmZlckdldEJsb2NrTnVtYmVyKHZtYnVmKSA9PSBtYXBC bG9jazsKIH0KIAotLyoKLSAqCXZpc2liaWxpdHltYXBfc2V0IC0gc2V0IGJpdChzKSBvbiBhIHBy ZXZpb3VzbHkgcGlubmVkIHBhZ2UKLSAqCi0gKiByZWNwdHIgaXMgdGhlIExTTiBvZiB0aGUgWExP RyByZWNvcmQgd2UncmUgcmVwbGF5aW5nLCBpZiB3ZSdyZSBpbiByZWNvdmVyeSwKLSAqIG9yIElu dmFsaWRYTG9nUmVjUHRyIGluIG5vcm1hbCBydW5uaW5nLiAgVGhlIFZNIHBhZ2UgTFNOIGlzIGFk dmFuY2VkIHRvIHRoZQotICogb25lIHByb3ZpZGVkOyBpbiBub3JtYWwgcnVubmluZywgd2UgZ2Vu ZXJhdGUgYSBuZXcgWExPRyByZWNvcmQgYW5kIHNldCB0aGUKLSAqIHBhZ2UgTFNOIHRvIHRoYXQg dmFsdWUgKHRob3VnaCB0aGUgaGVhcCBwYWdlJ3MgTFNOIG1heSAqbm90KiBiZSB1cGRhdGVkOwot ICogc2VlIGJlbG93KS4gIGN1dG9mZl94aWQgaXMgdGhlIGxhcmdlc3QgeG1pbiBvbiB0aGUgcGFn ZSBiZWluZyBtYXJrZWQKLSAqIGFsbC12aXNpYmxlOyBpdCBpcyBuZWVkZWQgZm9yIEhvdCBTdGFu ZGJ5LCBhbmQgY2FuIGJlIEludmFsaWRUcmFuc2FjdGlvbklkCi0gKiBpZiB0aGUgcGFnZSBjb250 YWlucyBubyB0dXBsZXMuICBJdCBjYW4gYWxzbyBiZSBzZXQgdG8gSW52YWxpZFRyYW5zYWN0aW9u SWQKLSAqIHdoZW4gYSBwYWdlIHRoYXQgaXMgYWxyZWFkeSBhbGwtdmlzaWJsZSBpcyBiZWluZyBt YXJrZWQgYWxsLWZyb3plbi4KLSAqCi0gKiBDYWxsZXIgaXMgZXhwZWN0ZWQgdG8gc2V0IHRoZSBo ZWFwIHBhZ2UncyBQRF9BTExfVklTSUJMRSBiaXQgYmVmb3JlIGNhbGxpbmcKLSAqIHRoaXMgZnVu Y3Rpb24uIEV4Y2VwdCBpbiByZWNvdmVyeSwgY2FsbGVyIHNob3VsZCBhbHNvIHBhc3MgdGhlIGhl YXAKLSAqIGJ1ZmZlci4gV2hlbiBjaGVja3N1bXMgYXJlIGVuYWJsZWQgYW5kIHdlJ3JlIG5vdCBp biByZWNvdmVyeSwgd2UgbXVzdCBhZGQKLSAqIHRoZSBoZWFwIGJ1ZmZlciB0byB0aGUgV0FMIGNo YWluIHRvIHByb3RlY3QgaXQgZnJvbSBiZWluZyB0b3JuLgotICoKLSAqIFlvdSBtdXN0IHBhc3Mg YSBidWZmZXIgY29udGFpbmluZyB0aGUgY29ycmVjdCBtYXAgcGFnZSB0byB0aGlzIGZ1bmN0aW9u LgotICogQ2FsbCB2aXNpYmlsaXR5bWFwX3BpbiBmaXJzdCB0byBwaW4gdGhlIHJpZ2h0IG9uZS4g VGhpcyBmdW5jdGlvbiBkb2Vzbid0IGRvCi0gKiBhbnkgSS9PLgotICovCi12b2lkCi12aXNpYmls aXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFw QnVmLAotCQkJCSAgWExvZ1JlY1B0ciByZWNwdHIsIEJ1ZmZlciB2bUJ1ZiwgVHJhbnNhY3Rpb25J ZCBjdXRvZmZfeGlkLAotCQkJCSAgdWludDggZmxhZ3MpCi17Ci0JQmxvY2tOdW1iZXIgbWFwQmxv Y2sgPSBIRUFQQkxLX1RPX01BUEJMT0NLKGhlYXBCbGspOwotCXVpbnQzMgkJbWFwQnl0ZSA9IEhF QVBCTEtfVE9fTUFQQllURShoZWFwQmxrKTsKLQl1aW50OAkJbWFwT2Zmc2V0ID0gSEVBUEJMS19U T19PRkZTRVQoaGVhcEJsayk7Ci0JUGFnZQkJcGFnZTsKLQl1aW50OAkgICAqbWFwOwotCXVpbnQ4 CQlzdGF0dXM7Ci0KLSNpZmRlZiBUUkFDRV9WSVNJQklMSVRZTUFQCi0JZWxvZyhERUJVRzEsICJ2 bV9zZXQgZmxhZ3MgMHglMDJYIGZvciAlcyAlZCIsCi0JCSBmbGFncywgUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsKSwgaGVhcEJsayk7Ci0jZW5kaWYKLQotCUFzc2VydChJblJlY292ZXJ5IHx8 ICFYTG9nUmVjUHRySXNWYWxpZChyZWNwdHIpKTsKLQlBc3NlcnQoSW5SZWNvdmVyeSB8fCBQYWdl SXNBbGxWaXNpYmxlKEJ1ZmZlckdldFBhZ2UoaGVhcEJ1ZikpKTsKLQlBc3NlcnQoKGZsYWdzICYg VklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKSA9PSBmbGFncyk7Ci0KLQkvKiBNdXN0IG5ldmVyIHNl dCBhbGxfZnJvemVuIGJpdCB3aXRob3V0IGFsc28gc2V0dGluZyBhbGxfdmlzaWJsZSBiaXQgKi8K LQlBc3NlcnQoZmxhZ3MgIT0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKLQotCS8qIENoZWNr IHRoYXQgd2UgaGF2ZSB0aGUgcmlnaHQgaGVhcCBwYWdlIHBpbm5lZCwgaWYgcHJlc2VudCAqLwot CWlmIChCdWZmZXJJc1ZhbGlkKGhlYXBCdWYpICYmIEJ1ZmZlckdldEJsb2NrTnVtYmVyKGhlYXBC dWYpICE9IGhlYXBCbGspCi0JCWVsb2coRVJST1IsICJ3cm9uZyBoZWFwIGJ1ZmZlciBwYXNzZWQg dG8gdmlzaWJpbGl0eW1hcF9zZXQiKTsKLQotCUFzc2VydCghQnVmZmVySXNWYWxpZChoZWFwQnVm KSB8fAotCQkgICBCdWZmZXJJc0xvY2tlZEJ5TWVJbk1vZGUoaGVhcEJ1ZiwgQlVGRkVSX0xPQ0tf RVhDTFVTSVZFKSk7Ci0KLQkvKiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IFZNIHBhZ2Ug cGlubmVkICovCi0JaWYgKCFCdWZmZXJJc1ZhbGlkKHZtQnVmKSB8fCBCdWZmZXJHZXRCbG9ja051 bWJlcih2bUJ1ZikgIT0gbWFwQmxvY2spCi0JCWVsb2coRVJST1IsICJ3cm9uZyBWTSBidWZmZXIg cGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0Iik7Ci0KLQlwYWdlID0gQnVmZmVyR2V0UGFnZSh2 bUJ1Zik7Ci0JbWFwID0gKHVpbnQ4ICopIFBhZ2VHZXRDb250ZW50cyhwYWdlKTsKLQlMb2NrQnVm ZmVyKHZtQnVmLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOwotCi0Jc3RhdHVzID0gKG1hcFttYXBC eXRlXSA+PiBtYXBPZmZzZXQpICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTOwotCWlmIChmbGFn cyAhPSBzdGF0dXMpCi0JewotCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsKLQotCQltYXBbbWFwQnl0 ZV0gfD0gKGZsYWdzIDw8IG1hcE9mZnNldCk7Ci0JCU1hcmtCdWZmZXJEaXJ0eSh2bUJ1Zik7Ci0K LQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocmVsKSkKLQkJewotCQkJaWYgKCFYTG9nUmVjUHRySXNW YWxpZChyZWNwdHIpKQotCQkJewotCQkJCUFzc2VydCghSW5SZWNvdmVyeSk7Ci0JCQkJcmVjcHRy ID0gbG9nX2hlYXBfdmlzaWJsZShyZWwsIGhlYXBCdWYsIHZtQnVmLCBjdXRvZmZfeGlkLCBmbGFn cyk7Ci0KLQkJCQkvKgotCQkJCSAqIElmIGRhdGEgY2hlY2tzdW1zIGFyZSBlbmFibGVkIChvciB3 YWxfbG9nX2hpbnRzPW9uKSwgd2UKLQkJCQkgKiBuZWVkIHRvIHByb3RlY3QgdGhlIGhlYXAgcGFn ZSBmcm9tIGJlaW5nIHRvcm4uCi0JCQkJICoKLQkJCQkgKiBJZiBub3QsIHRoZW4gd2UgbXVzdCAq bm90KiB1cGRhdGUgdGhlIGhlYXAgcGFnZSdzIExTTi4gSW4KLQkJCQkgKiB0aGlzIGNhc2UsIHRo ZSBGUEkgZm9yIHRoZSBoZWFwIHBhZ2Ugd2FzIG9taXR0ZWQgZnJvbSB0aGUKLQkJCQkgKiBXQUwg cmVjb3JkIGluc2VydGVkIGFib3ZlLCBzbyBpdCB3b3VsZCBiZSBpbmNvcnJlY3QgdG8KLQkJCQkg KiB1cGRhdGUgdGhlIGhlYXAgcGFnZSdzIExTTi4KLQkJCQkgKi8KLQkJCQlpZiAoWExvZ0hpbnRC aXRJc05lZWRlZCgpKQotCQkJCXsKLQkJCQkJUGFnZQkJaGVhcFBhZ2UgPSBCdWZmZXJHZXRQYWdl KGhlYXBCdWYpOwotCi0JCQkJCVBhZ2VTZXRMU04oaGVhcFBhZ2UsIHJlY3B0cik7Ci0JCQkJfQot CQkJfQotCQkJUGFnZVNldExTTihwYWdlLCByZWNwdHIpOwotCQl9Ci0KLQkJRU5EX0NSSVRfU0VD VElPTigpOwotCX0KLQotCUxvY2tCdWZmZXIodm1CdWYsIEJVRkZFUl9MT0NLX1VOTE9DSyk7Ci19 Ci0KIC8qCiAgKiBTZXQgVk0gKHZpc2liaWxpdHkgbWFwKSBmbGFncyBpbiB0aGUgVk0gYmxvY2sg aW4gdm1CdWYuCiAgKgogICogVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgY2FsbGVycyB0 aGF0IGxvZyBWTSBjaGFuZ2VzIHRvZ2V0aGVyCiAgKiB3aXRoIHRoZSBoZWFwIHBhZ2UgbW9kaWZp Y2F0aW9ucyB0aGF0IHJlbmRlcmVkIHRoZSBwYWdlIGFsbC12aXNpYmxlLgotICogQ2FsbGVycyB0 aGF0IGxvZyBWTSBjaGFuZ2VzIHNlcGFyYXRlbHkgc2hvdWxkIHVzZSB2aXNpYmlsaXR5bWFwX3Nl dCgpLgogICoKICAqIHZtQnVmIG11c3QgYmUgcGlubmVkIGFuZCBleGNsdXNpdmVseSBsb2NrZWQs IGFuZCBpdCBtdXN0IGNvdmVyIHRoZSBWTSBiaXRzCiAgKiBjb3JyZXNwb25kaW5nIHRvIGhlYXBC bGsuCkBAIC0zNDMsOSArMjUyLDkgQEAgdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBC bG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKICAqIHJsb2NhdG9yIGlzIHVzZWQg b25seSBmb3IgZGVidWdnaW5nIG1lc3NhZ2VzLgogICovCiB2b2lkCi12aXNpYmlsaXR5bWFwX3Nl dF92bWJpdHMoQmxvY2tOdW1iZXIgaGVhcEJsaywKLQkJCQkJCSBCdWZmZXIgdm1CdWYsIHVpbnQ4 IGZsYWdzLAotCQkJCQkJIGNvbnN0IFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yKQordmlzaWJpbGl0 eW1hcF9zZXQoQmxvY2tOdW1iZXIgaGVhcEJsaywKKwkJCQkgIEJ1ZmZlciB2bUJ1ZiwgdWludDgg ZmxhZ3MsCisJCQkJICBjb25zdCBSZWxGaWxlTG9jYXRvciBybG9jYXRvcikKIHsKIAlCbG9ja051 bWJlciBtYXBCbG9jayA9IEhFQVBCTEtfVE9fTUFQQkxPQ0soaGVhcEJsayk7CiAJdWludDMyCQlt YXBCeXRlID0gSEVBUEJMS19UT19NQVBCWVRFKGhlYXBCbGspOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1n cmRlc2MvaGVhcGRlc2MuYwppbmRleCAwMmFlOTE2NTNjMS4uNzVhZTZmOWQzNzUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCkBAIC0zNDksMTMgKzM0OSw2IEBAIGhlYXAy X2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJfQogCQl9 CiAJfQotCWVsc2UgaWYgKGluZm8gPT0gWExPR19IRUFQMl9WSVNJQkxFKQotCXsKLQkJeGxfaGVh cF92aXNpYmxlICp4bHJlYyA9ICh4bF9oZWFwX3Zpc2libGUgKikgcmVjOwotCi0JCWFwcGVuZFN0 cmluZ0luZm8oYnVmLCAic25hcHNob3RDb25mbGljdEhvcml6b246ICV1LCBmbGFnczogMHglMDJY IiwKLQkJCQkJCSB4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24sIHhscmVjLT5mbGFncyk7 Ci0JfQogCWVsc2UgaWYgKGluZm8gPT0gWExPR19IRUFQMl9NVUxUSV9JTlNFUlQpCiAJewogCQl4 bF9oZWFwX211bHRpX2luc2VydCAqeGxyZWMgPSAoeGxfaGVhcF9tdWx0aV9pbnNlcnQgKikgcmVj OwpAQCAtNDYxLDkgKzQ1NCw2IEBAIGhlYXAyX2lkZW50aWZ5KHVpbnQ4IGluZm8pCiAJCWNhc2Ug WExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUDoKIAkJCWlkID0gIlBSVU5FX1ZBQ1VVTV9D TEVBTlVQIjsKIAkJCWJyZWFrOwotCQljYXNlIFhMT0dfSEVBUDJfVklTSUJMRToKLQkJCWlkID0g IlZJU0lCTEUiOwotCQkJYnJlYWs7CiAJCWNhc2UgWExPR19IRUFQMl9NVUxUSV9JTlNFUlQ6CiAJ CQlpZCA9ICJNVUxUSV9JTlNFUlQiOwogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9kZWNvZGUuYwppbmRleCAyMWYwMzg2NGE2Ni4uM2MwMjdiY2IyZjcgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYwpAQCAtNDQ4LDcgKzQ0OCw2IEBAIGhl YXAyX2RlY29kZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIg KmJ1ZikKIAkJY2FzZSBYTE9HX0hFQVAyX1BSVU5FX09OX0FDQ0VTUzoKIAkJY2FzZSBYTE9HX0hF QVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOOgogCQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX0NM RUFOVVA6Ci0JCWNhc2UgWExPR19IRUFQMl9WSVNJQkxFOgogCQljYXNlIFhMT0dfSEVBUDJfTE9D S19VUERBVEVEOgogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5 LmMKaW5kZXggZjNhZDkwYzdjN2EuLmRlOTA5MmZkZjViIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3Rh bmRieS5jCkBAIC00NzYsMTAgKzQ3NiwxMSBAQCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhT bmFwc2hvdChUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAogCS8qCiAJICog SWYgd2UgZ2V0IHBhc3NlZCBJbnZhbGlkVHJhbnNhY3Rpb25JZCB0aGVuIHdlIGRvIG5vdGhpbmcg KG5vIGNvbmZsaWN0KS4KIAkgKgotCSAqIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHJlcGxheWluZyBh bHJlYWR5LWFwcGxpZWQgV0FMIHJlY29yZHMgYWZ0ZXIgYQotCSAqIHN0YW5kYnkgY3Jhc2ggb3Ig cmVzdGFydCwgb3Igd2hlbiByZXBsYXlpbmcgYW4gWExPR19IRUFQMl9WSVNJQkxFCi0JICogcmVj b3JkIHRoYXQgbWFya3MgYXMgZnJvemVuIGEgcGFnZSB3aGljaCB3YXMgYWxyZWFkeSBhbGwtdmlz aWJsZS4gIEl0J3MKLQkgKiBhbHNvIHF1aXRlIGNvbW1vbiB3aXRoIHJlY29yZHMgZ2VuZXJhdGVk IGR1cmluZyBpbmRleCBkZWxldGlvbgorCSAqIFRoaXMgY2FuIGhhcHBlbiB3aGVuZXZlciB0aGUg Y2hhbmdlcyBpbiB0aGUgV0FMIHJlY29yZCBkbyBub3QgYWZmZWN0CisJICogdmlzaWJpbGl0eSBv biBhIHN0YW5kYnkuIEZvciBleGFtcGxlOiBhIHJlY29yZCB0aGF0IG9ubHkgZnJlZXplcyBhbgor CSAqIHhtYXggZnJvbSBhIGxvY2tlci4KKwkgKgorCSAqIEl0J3MgYWxzbyBxdWl0ZSBjb21tb24g d2l0aCByZWNvcmRzIGdlbmVyYXRlZCBkdXJpbmcgaW5kZXggZGVsZXRpb24KIAkgKiAob3JpZ2lu YWwgZXhlY3V0aW9uIG9mIHRoZSBkZWxldGlvbiBjYW4gcmVhc29uIHRoYXQgYSByZWNvdmVyeSBj b25mbGljdAogCSAqIHdoaWNoIGlzIHN1ZmZpY2llbnQgZm9yIHRoZSBkZWxldGlvbiBvcGVyYXRp b24gbXVzdCB0YWtlIHBsYWNlIGJlZm9yZQogCSAqIHJlcGxheSBvZiB0aGUgZGVsZXRpb24gcmVj b3JkIGl0c2VsZikuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cu aCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCmluZGV4IGNlMzU2NmJhOTQ5Li41 MTY4MDZmY2NhMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKQEAgLTYwLDcgKzYwLDcgQEAK ICNkZWZpbmUgWExPR19IRUFQMl9QUlVORV9PTl9BQ0NFU1MJCTB4MTAKICNkZWZpbmUgWExPR19I RUFQMl9QUlVORV9WQUNVVU1fU0NBTgkweDIwCiAjZGVmaW5lIFhMT0dfSEVBUDJfUFJVTkVfVkFD VVVNX0NMRUFOVVAJMHgzMAotI2RlZmluZSBYTE9HX0hFQVAyX1ZJU0lCTEUJCTB4NDAKKy8qIDB4 NDAgd2FzIFhMT0dfSEVBUDJfVklTSUJMRSAqLwogI2RlZmluZSBYTE9HX0hFQVAyX01VTFRJX0lO U0VSVCAweDUwCiAjZGVmaW5lIFhMT0dfSEVBUDJfTE9DS19VUERBVEVEIDB4NjAKICNkZWZpbmUg WExPR19IRUFQMl9ORVdfQ0lECQkweDcwCkBAIC00NDMsMjAgKzQ0Myw2IEBAIHR5cGVkZWYgc3Ry dWN0IHhsX2hlYXBfaW5wbGFjZQogCiAjZGVmaW5lIE1pblNpemVPZkhlYXBJbnBsYWNlCShvZmZz ZXRvZih4bF9oZWFwX2lucGxhY2UsIG5tc2dzKSArIHNpemVvZihpbnQpKQogCi0vKgotICogVGhp cyBpcyB3aGF0IHdlIG5lZWQgdG8ga25vdyBhYm91dCBzZXR0aW5nIGEgdmlzaWJpbGl0eSBtYXAg Yml0Ci0gKgotICogQmFja3VwIGJsayAwOiB2aXNpYmlsaXR5IG1hcCBidWZmZXIKLSAqIEJhY2t1 cCBibGsgMTogaGVhcCBidWZmZXIKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF92aXNpYmxl Ci17Ci0JVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKLQl1aW50OAkJZmxh Z3M7Ci19IHhsX2hlYXBfdmlzaWJsZTsKLQotI2RlZmluZSBTaXplT2ZIZWFwVmlzaWJsZSAob2Zm c2V0b2YoeGxfaGVhcF92aXNpYmxlLCBmbGFncykgKyBzaXplb2YodWludDgpKQotCiB0eXBlZGVm IHN0cnVjdCB4bF9oZWFwX25ld19jaWQKIHsKIAkvKgpAQCAtNTAwLDExICs0ODYsNiBAQCBleHRl cm4gdm9pZCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29y ZCk7CiBleHRlcm4gY29uc3QgY2hhciAqaGVhcDJfaWRlbnRpZnkodWludDggaW5mbyk7CiBleHRl cm4gdm9pZCBoZWFwX3hsb2dfbG9naWNhbF9yZXdyaXRlKFhMb2dSZWFkZXJTdGF0ZSAqcik7CiAK LWV4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIg aGVhcF9idWZmZXIsCi0JCQkJCQkJCSAgIEJ1ZmZlciB2bV9idWZmZXIsCi0JCQkJCQkJCSAgIFRy YW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCi0JCQkJCQkJCSAgIHVpbnQ4IHZt ZmxhZ3MpOwotCiAvKiBpbiBoZWFwZGVzYy5jLCBzbyBpdCBjYW4gYmUgc2hhcmVkIGJldHdlZW4g ZnJvbnRlbmQvYmFja2VuZCBjb2RlICovCiBleHRlcm4gdm9pZCBoZWFwX3hsb2dfZGVzZXJpYWxp emVfcHJ1bmVfYW5kX2ZyZWV6ZShjaGFyICpjdXJzb3IsIHVpbnQxNiBmbGFncywKIAkJCQkJCQkJ CQkJCSAgIGludCAqbnBsYW5zLCB4bGhwX2ZyZWV6ZV9wbGFuICoqcGxhbnMsCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNz L3Zpc2liaWxpdHltYXAuaAppbmRleCA1MmNkZTU2YmU4Ni4uZTRlMGNmYTk4OWUgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL3Zpc2liaWxpdHltYXAuaApAQCAtMTUsNyArMTUsNiBAQAogI2RlZmluZSBWSVNJQklM SVRZTUFQX0gKIAogI2luY2x1ZGUgImFjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oIgotI2luY2x1 ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYmxvY2suaCIKICNpbmNs dWRlICJzdG9yYWdlL2J1Zi5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcmVsZmlsZWxvY2F0b3IuaCIK QEAgLTMyLDE1ICszMSw5IEBAIGV4dGVybiBib29sIHZpc2liaWxpdHltYXBfY2xlYXIoUmVsYXRp b24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAogZXh0ZXJuIHZvaWQgdmlzaWJpbGl0eW1hcF9w aW4oUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAogCQkJCQkJCSAgQnVmZmVyICp2 bWJ1Zik7CiBleHRlcm4gYm9vbCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhCbG9ja051bWJlciBoZWFw QmxrLCBCdWZmZXIgdm1idWYpOwotZXh0ZXJuIHZvaWQgdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRp b24gcmVsLAotCQkJCQkJCSAgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIGhlYXBCdWYsCi0J CQkJCQkJICBYTG9nUmVjUHRyIHJlY3B0ciwKLQkJCQkJCQkgIEJ1ZmZlciB2bUJ1ZiwKLQkJCQkJ CQkgIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwKLQkJCQkJCQkgIHVpbnQ4IGZsYWdzKTsKLWV4 dGVybiB2b2lkIHZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhCbG9ja051bWJlciBoZWFwQmxrLAot CQkJCQkJCQkJIEJ1ZmZlciB2bUJ1ZiwgdWludDggZmxhZ3MsCi0JCQkJCQkJCQkgY29uc3QgUmVs RmlsZUxvY2F0b3IgcmxvY2F0b3IpOworZXh0ZXJuIHZvaWQgdmlzaWJpbGl0eW1hcF9zZXQoQmxv Y2tOdW1iZXIgaGVhcEJsaywKKwkJCQkJCQkgIEJ1ZmZlciB2bUJ1ZiwgdWludDggZmxhZ3MsCisJ CQkJCQkJICBjb25zdCBSZWxGaWxlTG9jYXRvciBybG9jYXRvcik7CiBleHRlcm4gdWludDggdmlz aWJpbGl0eW1hcF9nZXRfc3RhdHVzKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywg QnVmZmVyICp2bWJ1Zik7CiBleHRlcm4gdm9pZCB2aXNpYmlsaXR5bWFwX2NvdW50KFJlbGF0aW9u IHJlbCwgQmxvY2tOdW1iZXIgKmFsbF92aXNpYmxlLCBCbG9ja051bWJlciAqYWxsX2Zyb3plbik7 CiBleHRlcm4gQmxvY2tOdW1iZXIgdmlzaWJpbGl0eW1hcF9wcmVwYXJlX3RydW5jYXRlKFJlbGF0 aW9uIHJlbCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVm cy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKaW5kZXggODkxNTNi M2NkOWEuLmU1Nzk0Yzg1NTllIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJp bGl0eW1hcGRlZnMuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMu aApAQCAtMjEsMTQgKzIxLDUgQEAKICNkZWZpbmUgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOCTB4 MDIKICNkZWZpbmUgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTCTB4MDMJLyogT1Igb2YgYWxsIHZh bGlkIHZpc2liaWxpdHltYXAKIAkJCQkJCQkJCQkJICogZmxhZ3MgYml0cyAqLwotLyoKLSAqIFRv IGRldGVjdCByZWNvdmVyeSBjb25mbGljdHMgZHVyaW5nIGxvZ2ljYWwgZGVjb2Rpbmcgb24gYSBz dGFuZGJ5LCB3ZSBuZWVkCi0gKiB0byBrbm93IGlmIGEgdGFibGUgaXMgYSB1c2VyIGNhdGFsb2cg dGFibGUuIEZvciB0aGF0IHdlIGFkZCBhbiBhZGRpdGlvbmFsCi0gKiBiaXQgaW50byB4bF9oZWFw X3Zpc2libGUuZmxhZ3MsIGluIGFkZGl0aW9uIHRvIHRoZSBhYm92ZS4KLSAqCi0gKiBOQjogVklT SUJJTElUWU1BUF9YTE9HXyogbWF5IG5vdCBiZSBwYXNzZWQgdG8gdmlzaWJpbGl0eW1hcF9zZXQo KS4KLSAqLwotI2RlZmluZSBWSVNJQklMSVRZTUFQX1hMT0dfQ0FUQUxPR19SRUwJMHgwNAotI2Rl ZmluZSBWSVNJQklMSVRZTUFQX1hMT0dfVkFMSURfQklUUwkoVklTSUJJTElUWU1BUF9WQUxJRF9C SVRTIHwgVklTSUJJTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVMKQogCiAjZW5kaWYJCQkJCQkJLyog VklTSUJJTElUWU1BUERFRlNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAwYzA3 Yzk0NWYwNS4uYWRjODU4YzJhOTcgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC00NDIx LDcgKzQ0MjEsNiBAQCB4bF9oZWFwX3BydW5lCiB4bF9oZWFwX3Jld3JpdGVfbWFwcGluZwogeGxf aGVhcF90cnVuY2F0ZQogeGxfaGVhcF91cGRhdGUKLXhsX2hlYXBfdmlzaWJsZQogeGxfaW52YWxp ZF9wYWdlCiB4bF9pbnZhbGlkX3BhZ2Vfa2V5CiB4bF9pbnZhbGlkYXRpb25zCi0tIAoyLjQzLjAK Cg== --000000000000114061064db81427 Content-Type: text/x-patch; charset="US-ASCII"; name="v44-0006-Track-which-relations-are-modified-by-a-query.patch" Content-Disposition: attachment; filename="v44-0006-Track-which-relations-are-modified-by-a-query.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn3q382i5 RnJvbSA4ZjYzN2FlYjM5ZWZlNjVlNjI5ZjYxNmZiZjQzNjJjZTk0NzZlYTFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTU6MDc6MjQgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0NCAwNi8xMF0gVHJhY2sgd2hpY2ggcmVsYXRpb25zIGFyZSBtb2RpZmllZCBieSBhIHF1 ZXJ5CgpTYXZlIHRoZSBPSURzIG9mIG1vZGlmaWVkIHJlbGF0aW9ucyBpbiBhIGxpc3QgaW4gdGhl IFBsYW5uZWRTdG10LiBBCmxhdGVyIGNvbW1pdCB3aWxsIHVzZSB0aGlzIGluZm9ybWF0aW9uIGR1 cmluZyBzY2FucyB0byBjb250cm9sIHdoZXRoZXIKb3Igbm90IG9uLWFjY2VzcyBwcnVuaW5nIGlz IGFsbG93ZWQgdG8gc2V0IHRoZSB2aXNpYmlsaXR5IG1hcC4gU2V0dGluZwp0aGUgdmlzaWJpbGl0 eSBtYXAgZHVyaW5nIGEgc2NhbiBpcyBjb3VudGVycHJvZHVjdGl2ZSBpZiB0aGUgcXVlcnkgaXMK Z29pbmcgdG8gbW9kaWZ5IHRoZSBwYWdlIGltbWVkaWF0ZWx5IGFmdGVyLgoKUmVsYXRpb25zIGFy ZSBjb25zaWRlcmVkIG1vZGlmaWVkIGlmIHRoZXkgYXJlIHRoZSB0YXJnZXQgb2YgSU5TRVJULApV UERBVEUsIERFTEVURSwgb3IgTUVSR0UsIG9yIGlmIHRoZXkgaGF2ZSBhbnkgcm93IG1hcmsgKGlu Y2x1ZGluZyBTRUxFQ1QKRk9SIFVQREFURS9TSEFSRSkuIEFsbCByb3cgbWFyayB0eXBlcyBhcmUg aW5jbHVkZWQsIGV2ZW4gdGhvc2Ugd2hpY2gKZG9uJ3QgYWN0dWFsbHkgbW9kaWZ5IHR1cGxlcywg YmVjYXVzZSB0aGlzIGxpc3QgaXMgb25seSB1c2VkIGFzIGEgaGludAp0byBhdm9pZCB1bm5lY2Vz c2FyeSB3b3JrLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpS ZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9GNUNERDFCNS02MjhDLTQ0QTEtOUY4NS0zOTU4QzYyNkY2QTkl NDBnbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyAgICB8 ICAxICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVMb2NrUm93cy5jICAgIHwgIDMgKysKIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jIHwgIDkgKysrKysrCiBzcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICB8IDQ0ICsrKysrKysrKysrKysrKysrKysr KysrKystCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICB8ICA2ICsrKysK IDUgZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggYWM4NGFmMjk0YzkuLjVjMWNmNTFkNzFjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtMTg4LDYgKzE4OCw3IEBAIEV4ZWNT ZXJpYWxpemVQbGFuKFBsYW4gKnBsYW4sIEVTdGF0ZSAqZXN0YXRlKQogCXBzdG10LT5wYXJ0UHJ1 bmVJbmZvcyA9IGVzdGF0ZS0+ZXNfcGFydF9wcnVuZV9pbmZvczsKIAlwc3RtdC0+cnRhYmxlID0g ZXN0YXRlLT5lc19yYW5nZV90YWJsZTsKIAlwc3RtdC0+dW5wcnVuYWJsZVJlbGlkcyA9IGVzdGF0 ZS0+ZXNfdW5wcnVuZWRfcmVsaWRzOworCXBzdG10LT5tb2RpZmllZFJlbE9pZHMgPSBlc3RhdGUt PmVzX3BsYW5uZWRzdG10LT5tb2RpZmllZFJlbE9pZHM7CiAJcHN0bXQtPnBlcm1JbmZvcyA9IGVz dGF0ZS0+ZXNfcnRlcGVybWluZm9zOwogCXBzdG10LT5yZXN1bHRSZWxhdGlvbnMgPSBOSUw7CiAJ cHN0bXQtPmFwcGVuZFJlbGF0aW9ucyA9IE5JTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVMb2NrUm93cy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUxvY2tSb3dz LmMKaW5kZXggOGQ4NjU0NzA3ODAuLjQ5YjU1ZDE1ZTNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlTG9ja1Jvd3MuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl TG9ja1Jvd3MuYwpAQCAtMTEzLDYgKzExMyw5IEBAIGxuZXh0OgogCQl9CiAJCWVybS0+ZXJtQWN0 aXZlID0gdHJ1ZTsKIAorCQlBc3NlcnQobGlzdF9tZW1iZXJfb2lkKGVzdGF0ZS0+ZXNfcGxhbm5l ZHN0bXQtPm1vZGlmaWVkUmVsT2lkcywKKwkJCQkJCQkgICBSZWxhdGlvbkdldFJlbGlkKGVybS0+ cmVsYXRpb24pKSk7CisKIAkJLyogZmV0Y2ggdGhlIHR1cGxlJ3MgY3RpZCAqLwogCQlkYXR1bSA9 IEV4ZWNHZXRKdW5rQXR0cmlidXRlKHNsb3QsCiAJCQkJCQkJCQkgYWVybS0+Y3RpZEF0dE5vLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCA0Y2Q1ZTI2MmUwZi4uMTJl Y2RkMzgzY2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJs ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCkBAIC04OTYs NiArODk2LDkgQEAgRXhlY0luc2VydChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAKIAly ZXN1bHRSZWxhdGlvbkRlc2MgPSByZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2M7CiAKKwlB c3NlcnQobGlzdF9tZW1iZXJfb2lkKGVzdGF0ZS0+ZXNfcGxhbm5lZHN0bXQtPm1vZGlmaWVkUmVs T2lkcywKKwkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsaWQocmVzdWx0UmVsYXRpb25EZXNjKSkpOwor CiAJLyoKIAkgKiBPcGVuIHRoZSB0YWJsZSdzIGluZGV4ZXMsIGlmIHdlIGhhdmUgbm90IGRvbmUg c28gYWxyZWFkeSwgc28gdGhhdCB3ZQogCSAqIGNhbiBhZGQgbmV3IGluZGV4IGVudHJpZXMgZm9y IHRoZSBpbnNlcnRlZCB0dXBsZS4KQEAgLTE1MjMsNiArMTUyNiw5IEBAIEV4ZWNEZWxldGVBY3Qo TW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZv LAogewogCUVTdGF0ZQkgICAqZXN0YXRlID0gY29udGV4dC0+ZXN0YXRlOwogCisJQXNzZXJ0KGxp c3RfbWVtYmVyX29pZChlc3RhdGUtPmVzX3BsYW5uZWRzdG10LT5tb2RpZmllZFJlbE9pZHMsCisJ CQkJCQkgICBSZWxhdGlvbkdldFJlbGlkKHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYykp KTsKKwogCXJldHVybiB0YWJsZV90dXBsZV9kZWxldGUocmVzdWx0UmVsSW5mby0+cmlfUmVsYXRp b25EZXNjLCB0dXBsZWlkLAogCQkJCQkJCSAgZXN0YXRlLT5lc19vdXRwdXRfY2lkLAogCQkJCQkJ CSAgZXN0YXRlLT5lc19zbmFwc2hvdCwKQEAgLTIyMDUsNiArMjIxMSw5IEBAIEV4ZWNVcGRhdGVB Y3QoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJ bmZvLAogCWJvb2wJCXBhcnRpdGlvbl9jb25zdHJhaW50X2ZhaWxlZDsKIAlUTV9SZXN1bHQJcmVz dWx0OwogCisJQXNzZXJ0KGxpc3RfbWVtYmVyX29pZChlc3RhdGUtPmVzX3BsYW5uZWRzdG10LT5t b2RpZmllZFJlbE9pZHMsCisJCQkJCQkgICBSZWxhdGlvbkdldFJlbGlkKHJlc3VsdFJlbEluZm8t PnJpX1JlbGF0aW9uRGVzYykpKTsKKwogCXVwZGF0ZUN4dC0+Y3Jvc3NQYXJ0VXBkYXRlID0gZmFs c2U7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5l ci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IDQyNjA0YTBm NzVjLi4wMzk3OTY3NzNhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v cGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAt MzQwLDggKzM0MCwxMCBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hh ciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlSZWxPcHRJbmZvICpmaW5hbF9y ZWw7CiAJUGF0aAkgICAqYmVzdF9wYXRoOwogCVBsYW4JICAgKnRvcF9wbGFuOworCUxpc3QJICAg Km1vZGlmaWVkUmVsT2lkcyA9IE5JTDsKIAlMaXN0Q2VsbCAgICpscCwKLQkJCSAgICpscjsKKwkJ CSAgICpsciwKKwkJCSAgICpsYzsKIAogCS8qCiAJICogU2V0IHVwIGdsb2JhbCBzdGF0ZSBmb3Ig dGhpcyBwbGFubmVyIGludm9jYXRpb24uICBUaGlzIGRhdGEgaXMgbmVlZGVkCkBAIC02NjEsNiAr NjYzLDQ2IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVy eV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCXJlc3VsdC0+c3VicGxhbnMgPSBnbG9iLT5z dWJwbGFuczsKIAlyZXN1bHQtPnJld2luZFBsYW5JRHMgPSBnbG9iLT5yZXdpbmRQbGFuSURzOwog CXJlc3VsdC0+cm93TWFya3MgPSBnbG9iLT5maW5hbHJvd21hcmtzOworCisJLyoKKwkgKiBDb21w dXRlIG1vZGlmaWVkUmVsT2lkcyBmcm9tIHJlc3VsdCByZWxhdGlvbnMgYW5kIHJvdyBtYXJrcy4K KwkgKgorCSAqIFRoaXMgaXMgYSBzdXBlcnNldCBvZiB3aGF0IHRoZSBleGVjdXRvciB3aWxsIGFj dHVhbGx5IG1vZGlmeS9sb2NrIGF0CisJICogcnVudGltZSwgYmVjYXVzZSBydW50aW1lIHBhcnRp dGlvbiBwcnVuaW5nIG1heSBlbGltaW5hdGUgc29tZSByZXN1bHQKKwkgKiByZWxhdGlvbnMsIGFu ZCBwYXJlbnQgcm93IG1hcmtzIGFyZSBpbmNsdWRlZCBoZXJlIGJ1dCBza2lwcGVkIGJ5IHRoZQor CSAqIGV4ZWN1dG9yLgorCSAqCisJICogRm9yIHBhcnRpdGlvbmVkIHRhYmxlcywgbW9kaWZpZWRS ZWxPaWRzIGlzIGV4cGFuZGVkIHRvIGluY2x1ZGUgYWxsCisJICogZGVzY2VuZGFudCBwYXJ0aXRp b24gT0lEcy4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0dXBsZSByb3V0aW5nCisJICogbGF6 aWx5IGV4cGFuZHMgbGVhZiBwYXJ0aXRpb25zIGF0IGV4ZWN1dGlvbiB0aW1lLgorCSAqLworCWZv cmVhY2gobGMsIGdsb2ItPnJlc3VsdFJlbGF0aW9ucykKKwl7CisJCUluZGV4CQlydGkgPSBsZmly c3RfaW50KGxjKTsKKwkJUmFuZ2VUYmxFbnRyeSAqcnRlID0gcnRfZmV0Y2gocnRpLCBnbG9iLT5m aW5hbHJ0YWJsZSk7CisKKwkJbW9kaWZpZWRSZWxPaWRzID0gbGlzdF9hcHBlbmRfdW5pcXVlX29p ZChtb2RpZmllZFJlbE9pZHMsIHJ0ZS0+cmVsaWQpOworCisJCWlmIChydGUtPnJlbGtpbmQgPT0g UkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKKwkJeworCQkJTGlzdAkgICAqY2hpbGRyZW4gPSBm aW5kX2FsbF9pbmhlcml0b3JzKHJ0ZS0+cmVsaWQsCisJCQkJCQkJCQkJCQkJICAgTm9Mb2NrLCBO VUxMKTsKKwkJCUxpc3RDZWxsICAgKmxjMjsKKworCQkJZm9yZWFjaChsYzIsIGNoaWxkcmVuKQor CQkJCW1vZGlmaWVkUmVsT2lkcyA9IGxpc3RfYXBwZW5kX3VuaXF1ZV9vaWQobW9kaWZpZWRSZWxP aWRzLAorCQkJCQkJCQkJCQkJCQkgbGZpcnN0X29pZChsYzIpKTsKKwkJfQorCX0KKwlmb3JlYWNo KGxjLCBnbG9iLT5maW5hbHJvd21hcmtzKQorCXsKKwkJUGxhblJvd01hcmsgKnJjID0gKFBsYW5S b3dNYXJrICopIGxmaXJzdChsYyk7CisJCVJhbmdlVGJsRW50cnkgKnJ0ZSA9IHJ0X2ZldGNoKHJj LT5ydGksIGdsb2ItPmZpbmFscnRhYmxlKTsKKworCQltb2RpZmllZFJlbE9pZHMgPSBsaXN0X2Fw cGVuZF91bmlxdWVfb2lkKG1vZGlmaWVkUmVsT2lkcywgcnRlLT5yZWxpZCk7CisJfQorCXJlc3Vs dC0+bW9kaWZpZWRSZWxPaWRzID0gbW9kaWZpZWRSZWxPaWRzOworCiAJcmVzdWx0LT5yZWxhdGlv bk9pZHMgPSBnbG9iLT5yZWxhdGlvbk9pZHM7CiAJcmVzdWx0LT5pbnZhbEl0ZW1zID0gZ2xvYi0+ aW52YWxJdGVtczsKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xvYi0+cGFyYW1FeGVjVHlw ZXM7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNs dWRlL25vZGVzL3BsYW5ub2Rlcy5oCmluZGV4IGI2MTg1ODI1ZmNiLi42YTcwMDhjZDUwYSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGxhbm5vZGVzLmgKQEAgLTExMiw2ICsxMTIsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxh bm5lZFN0bXQKIAkgKi8KIAlCaXRtYXBzZXQgICp1bnBydW5hYmxlUmVsaWRzOwogCisJLyoKKwkg KiBPSURzIG9mIHJlbGF0aW9ucyBtb2RpZmllZCBieSB0aGUgcXVlcnkgdGhyb3VnaAorCSAqIFVQ REFURS9ERUxFVEUvSU5TRVJUL01FUkdFIG9yIHRhcmdldGVkIGJ5IFNFTEVDVCBGT1IgVVBEQVRF L1NIQVJFLgorCSAqLworCUxpc3QJICAgKm1vZGlmaWVkUmVsT2lkczsKKwogCS8qCiAJICogbGlz dCBvZiBSVEVQZXJtaXNzaW9uSW5mbyBub2RlcyBmb3IgcnRhYmxlIGVudHJpZXMgbmVlZGluZyBv bmUKIAkgKi8KLS0gCjIuNDMuMAoK --000000000000114061064db81427 Content-Type: text/x-patch; charset="US-ASCII"; name="v44-0007-Thread-flags-through-begin-scan-APIs.patch" Content-Disposition: attachment; filename="v44-0007-Thread-flags-through-begin-scan-APIs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn3q3aco6 RnJvbSAxMzRiZGZhMGZhMjViYjc0Yzk1NGMxNzljODhkN2NjMzhjYTE0YzU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDE5IE1hciAyMDI2IDE3OjA1OjU1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDQgMDcvMTBdIFRocmVhZCBmbGFncyB0aHJvdWdoIGJlZ2luLXNjYW4gQVBJcwoKQWRk IGEgdXNlci1zZXR0YWJsZSBmbGFncyBwYXJhbWV0ZXIgdG8gdGhlIHRhYmxlX2JlZ2luc2Nhbl8q IHdyYXBwZXJzLAppbmRleF9iZWdpbnNjYW4oKSwgdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4oKSwg YW5kIHRoZSB0YWJsZQpBTSBjYWxsYmFjayBpbmRleF9mZXRjaF9iZWdpbigpLiBUaGlzIGFsbG93 cyB1c2VycyB0byBwYXNzIGFkZGl0aW9uYWwKY29udGV4dCB0byBiZSB1c2VkIHdoZW4gYnVpbGRp bmcgdGhlIHNjYW4gZGVzY3JpcHRvcnMuCgpGb3IgaW5kZXggc2NhbnMsIGEgbmV3IHVpbnQzMiBm bGFncyBmaWVsZCBpcyBhZGRlZCB0bwpJbmRleEZldGNoVGFibGVEYXRhLCBhbmQgdGhlIGhlYXAg QU0gc3RvcmVzIHRoZSBjYWxsZXItcHJvdmlkZWQgZmxhZ3MKdGhlcmUgaW4gaGVhcGFtX2luZGV4 X2ZldGNoX2JlZ2luKCkuCgpUaGlzIGludHJvZHVjZXMgYW4gZXh0ZW5zaW9uIHBvaW50IGZvciBm b2xsb3ctdXAgd29yayB0byBwYXNzCnBlci1zY2FuIGluZm9ybWF0aW9uIChzdWNoIGFzIHdoZXRo ZXIgdGhlIHJlbGF0aW9uIGlzIHJlYWQtb25seSBmb3IgdGhlCmN1cnJlbnQgcXVlcnkpIGZyb20g dGhlIGV4ZWN1dG9yIHRvIHRoZSBBTSBsYXllci4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8 bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFu ZHJlc0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFp bC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVDREQxQjUtNjI4Qy00NEEx LTlGODUtMzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogY29udHJpYi9wZ3Jvd2xvY2tzL3Bn cm93bG9ja3MuYyAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJp bi5jICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQu YyAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIu YyAgfCAgOSArKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jICAgICAgICAgIHwg IDIgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYyAgICAgICAgfCAgNyArKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jICAgICAgIHwgIDIgKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMgICAgICAgIHwgMjEgKysrLS0tLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29weXRvLmMgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMgICAgICAgICAgfCAgOCArLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5 cGVjbWRzLmMgICAgICAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRl eGluZy5jICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlv bi5jICAgIHwgMTIgKystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2Fu LmMgfCAgMiArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyAgfCAg NSArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jICAgICAgfCAgNiArLQog c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jICAgfCAgNiArLQogc3JjL2JhY2tlbmQvcGFydGl0 aW9uaW5nL3BhcnRib3VuZHMuYyAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Nl bGZ1bmNzLmMgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCAgICAg ICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAg ICAgICB8ICA1ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oICAgICAgICAgICAgICB8 ICAxICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgIHwgNzIgKysr KysrKysrKysrKysrLS0tLS0tLS0KIDI2IGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCsp LCA3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bncm93bG9ja3MvcGdyb3ds b2Nrcy5jIGIvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYwppbmRleCBmZjM2OTJjODdj NC4uMDU1NmU5ZjdiODggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdyb3dsb2Nrcy9wZ3Jvd2xvY2tz LmMKKysrIGIvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYwpAQCAtMTE1LDcgKzExNSw3 IEBAIHBncm93bG9ja3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJICAgUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsKSk7CiAKIAkvKiBTY2FuIHRoZSByZWxhdGlvbiAqLwotCXNjYW4gPSB0YWJs ZV9iZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMKTsKKwlzY2FuID0g dGFibGVfYmVnaW5zY2FuKHJlbCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCwgMCk7CiAJ aHNjYW4gPSAoSGVhcFNjYW5EZXNjKSBzY2FuOwogCiAJYXR0aW5tZXRhID0gVHVwbGVEZXNjR2V0 QXR0SW5NZXRhZGF0YShyc2luZm8tPnNldERlc2MpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCmluZGV4 IDJhMGY4YzhlM2I4Li5iMjVlODE0YTk5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4uYwpAQCAtMjg0 NCw3ICsyODQ0LDggQEAgX2JyaW5fcGFyYWxsZWxfc2Nhbl9hbmRfYnVpbGQoQnJpbkJ1aWxkU3Rh dGUgKnN0YXRlLAogCWluZGV4SW5mby0+aWlfQ29uY3VycmVudCA9IGJyaW5zaGFyZWQtPmlzY29u Y3VycmVudDsKIAogCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoaGVhcCwKLQkJCQkJ CQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUJyaW5TaGFyZWQoYnJpbnNoYXJlZCkpOworCQkJCQkJ CQkJUGFyYWxsZWxUYWJsZVNjYW5Gcm9tQnJpblNoYXJlZChicmluc2hhcmVkKSwKKwkJCQkJCQkJ CTApOwogCiAJcmVsdHVwbGVzID0gdGFibGVfaW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwg aW5kZXhJbmZvLCB0cnVlLCB0cnVlLAogCQkJCQkJCQkJICAgYnJpbmJ1aWxkQ2FsbGJhY2tQYXJh bGxlbCwgc3RhdGUsIHNjYW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9n aW5pbnNlcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKaW5kZXggZTU0 NzgyZDlkZDguLjU1NWIxNjc3MWU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lu L2dpbmluc2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKQEAg LTIwNjgsNyArMjA2OCw4IEBAIF9naW5fcGFyYWxsZWxfc2Nhbl9hbmRfYnVpbGQoR2luQnVpbGRT dGF0ZSAqc3RhdGUsCiAJaW5kZXhJbmZvLT5paV9Db25jdXJyZW50ID0gZ2luc2hhcmVkLT5pc2Nv bmN1cnJlbnQ7CiAKIAlzY2FuID0gdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKGhlYXAsCi0JCQkJ CQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21HaW5CdWlsZFNoYXJlZChnaW5zaGFyZWQpKTsKKwkJ CQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUdpbkJ1aWxkU2hhcmVkKGdpbnNoYXJlZCksCisJ CQkJCQkJCQkwKTsKIAogCXJlbHR1cGxlcyA9IHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oaGVhcCwg aW5kZXgsIGluZGV4SW5mbywgdHJ1ZSwgcHJvZ3Jlc3MsCiAJCQkJCQkJCQkgICBnaW5CdWlsZENh bGxiYWNrUGFyYWxsZWwsIHN0YXRlLCBzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1faGFuZGxlci5jCmluZGV4IDI1M2E3MzViNmMxLi42NjcyNmIyMmRlNiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCkBAIC04MCwxMSArODAsMTIgQEAgaGVhcGFt X3Nsb3RfY2FsbGJhY2tzKFJlbGF0aW9uIHJlbGF0aW9uKQogICovCiAKIHN0YXRpYyBJbmRleEZl dGNoVGFibGVEYXRhICoKLWhlYXBhbV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCito ZWFwYW1faW5kZXhfZmV0Y2hfYmVnaW4oUmVsYXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpCiB7CiAJ SW5kZXhGZXRjaEhlYXBEYXRhICpoc2NhbiA9IHBhbGxvYzBfb2JqZWN0KEluZGV4RmV0Y2hIZWFw RGF0YSk7CiAKIAloc2Nhbi0+eHNfYmFzZS5yZWwgPSByZWw7CisJaHNjYW4tPnhzX2Jhc2UuZmxh Z3MgPSBmbGFnczsKIAloc2Nhbi0+eHNfY2J1ZiA9IEludmFsaWRCdWZmZXI7CiAJaHNjYW4tPnhz X3ZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIApAQCAtNzYyLDcgKzc2Myw5IEBAIGhlYXBhbV9y ZWxhdGlvbl9jb3B5X2Zvcl9jbHVzdGVyKFJlbGF0aW9uIE9sZEhlYXAsIFJlbGF0aW9uIE5ld0hl YXAsCiAKIAkJdGFibGVTY2FuID0gTlVMTDsKIAkJaGVhcFNjYW4gPSBOVUxMOwotCQlpbmRleFNj YW4gPSBpbmRleF9iZWdpbnNjYW4oT2xkSGVhcCwgT2xkSW5kZXgsIFNuYXBzaG90QW55LCBOVUxM LCAwLCAwKTsKKwkJaW5kZXhTY2FuID0gaW5kZXhfYmVnaW5zY2FuKE9sZEhlYXAsIE9sZEluZGV4 LAorCQkJCQkJCQkJMCwJLyogZmxhZ3MgKi8KKwkJCQkJCQkJCVNuYXBzaG90QW55LCBOVUxMLCAw LCAwKTsKIAkJaW5kZXhfcmVzY2FuKGluZGV4U2NhbiwgTlVMTCwgMCwgTlVMTCwgMCk7CiAJfQog CWVsc2UKQEAgLTc3MSw3ICs3NzQsNyBAQCBoZWFwYW1fcmVsYXRpb25fY29weV9mb3JfY2x1c3Rl cihSZWxhdGlvbiBPbGRIZWFwLCBSZWxhdGlvbiBOZXdIZWFwLAogCQlwZ3N0YXRfcHJvZ3Jlc3Nf dXBkYXRlX3BhcmFtKFBST0dSRVNTX1JFUEFDS19QSEFTRSwKIAkJCQkJCQkJCSBQUk9HUkVTU19S RVBBQ0tfUEhBU0VfU0VRX1NDQU5fSEVBUCk7CiAKLQkJdGFibGVTY2FuID0gdGFibGVfYmVnaW5z Y2FuKE9sZEhlYXAsIFNuYXBzaG90QW55LCAwLCAoU2NhbktleSkgTlVMTCk7CisJCXRhYmxlU2Nh biA9IHRhYmxlX2JlZ2luc2NhbihPbGRIZWFwLCBTbmFwc2hvdEFueSwgMCwgKFNjYW5LZXkpIE5V TEwsIDApOwogCQloZWFwU2NhbiA9IChIZWFwU2NhbkRlc2MpIHRhYmxlU2NhbjsKIAkJaW5kZXhT Y2FuID0gTlVMTDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFt LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYwppbmRleCA1ZTg5Yjg2YTYyYy4u YjA5OWQ5NTZlNDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jCkBAIC00NTUsNiArNDU1LDcg QEAgc3lzdGFibGVfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJfQogCiAJCXN5 c3NjYW4tPmlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXBSZWxhdGlvbiwgaXJlbCwKKwkJCQkJ CQkJCQkgMCwgLyogZmxhZ3MgKi8KIAkJCQkJCQkJCQkgc25hcHNob3QsIE5VTEwsIG5rZXlzLCAw KTsKIAkJaW5kZXhfcmVzY2FuKHN5c3NjYW4tPmlzY2FuLCBpZHhrZXksIG5rZXlzLCBOVUxMLCAw KTsKIAkJc3lzc2Nhbi0+c2NhbiA9IE5VTEw7CkBAIC03MTYsNiArNzE3LDcgQEAgc3lzdGFibGVf YmVnaW5zY2FuX29yZGVyZWQoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQlic3lzc2NhbiA9IHRy dWU7CiAKIAlzeXNzY2FuLT5pc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFwUmVsYXRpb24sIGlu ZGV4UmVsYXRpb24sCisJCQkJCQkJCQkgMCwgLyogZmxhZ3MgKi8KIAkJCQkJCQkJCSBzbmFwc2hv dCwgTlVMTCwgbmtleXMsIDApOwogCWluZGV4X3Jlc2NhbihzeXNzY2FuLT5pc2NhbiwgaWR4a2V5 LCBua2V5cywgTlVMTCwgMCk7CiAJc3lzc2Nhbi0+c2NhbiA9IE5VTEw7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2lu ZGV4L2luZGV4YW0uYwppbmRleCA1ZWI3ZTk5YWQzZS4uNjNkNWRhYWRjYTYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2luZGV4L2luZGV4YW0uYwpAQCAtMjU1LDYgKzI1NSw3IEBAIGluZGV4X2luc2VydF9jbGVh bnVwKFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiBJbmRleFNjYW5EZXNjCiBpbmRleF9iZWdpbnNj YW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCVJlbGF0aW9uIGluZGV4UmVsYXRpb24sCisJ CQkJdWludDMyIGZsYWdzLAogCQkJCVNuYXBzaG90IHNuYXBzaG90LAogCQkJCUluZGV4U2Nhbklu c3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJCQlpbnQgbmtleXMsIGludCBub3JkZXJieXMp CkBAIC0yODQsNyArMjg1LDcgQEAgaW5kZXhfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlv biwKIAlzY2FuLT5pbnN0cnVtZW50ID0gaW5zdHJ1bWVudDsKIAogCS8qIHByZXBhcmUgdG8gZmV0 Y2ggaW5kZXggbWF0Y2hlcyBmcm9tIHRhYmxlICovCi0Jc2Nhbi0+eHNfaGVhcGZldGNoID0gdGFi bGVfaW5kZXhfZmV0Y2hfYmVnaW4oaGVhcFJlbGF0aW9uKTsKKwlzY2FuLT54c19oZWFwZmV0Y2gg PSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwUmVsYXRpb24sIGZsYWdzKTsKIAogCXJldHVy biBzY2FuOwogfQpAQCAtNTkzLDcgKzU5NCw3IEBAIEluZGV4U2NhbkRlc2MKIGluZGV4X2JlZ2lu c2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBoZWFwcmVsLCBSZWxhdGlvbiBpbmRleHJlbCwKIAkJCQkJ CSBJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCiAJCQkJCQkgaW50IG5rZXlz LCBpbnQgbm9yZGVyYnlzLAotCQkJCQkJIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2NhbikKKwkJ CQkJCSBQYXJhbGxlbEluZGV4U2NhbkRlc2MgcHNjYW4sIHVpbnQzMiBmbGFncykKIHsKIAlTbmFw c2hvdAlzbmFwc2hvdDsKIAlJbmRleFNjYW5EZXNjIHNjYW47CkBAIC02MTUsNyArNjE2LDcgQEAg aW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIGhlYXByZWwsIFJlbGF0aW9uIGluZGV4 cmVsLAogCXNjYW4tPmluc3RydW1lbnQgPSBpbnN0cnVtZW50OwogCiAJLyogcHJlcGFyZSB0byBm ZXRjaCBpbmRleCBtYXRjaGVzIGZyb20gdGFibGUgKi8KLQlzY2FuLT54c19oZWFwZmV0Y2ggPSB0 YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwcmVsKTsKKwlzY2FuLT54c19oZWFwZmV0Y2ggPSB0 YWJsZV9pbmRleF9mZXRjaF9iZWdpbihoZWFwcmVsLCBmbGFncyk7CiAKIAlyZXR1cm4gc2NhbjsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKaW5kZXggNDdhOWJkYTMwYzkuLjAxNmE1 ZTU0NmRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpAQCAtMTkyOCw3ICsxOTI4 LDcgQEAgX2J0X3BhcmFsbGVsX3NjYW5fYW5kX3NvcnQoQlRTcG9vbCAqYnRzcG9vbCwgQlRTcG9v bCAqYnRzcG9vbDIsCiAJaW5kZXhJbmZvID0gQnVpbGRJbmRleEluZm8oYnRzcG9vbC0+aW5kZXgp OwogCWluZGV4SW5mby0+aWlfQ29uY3VycmVudCA9IGJ0c2hhcmVkLT5pc2NvbmN1cnJlbnQ7CiAJ c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChidHNwb29sLT5oZWFwLAotCQkJCQkJCQkJ UGFyYWxsZWxUYWJsZVNjYW5Gcm9tQlRTaGFyZWQoYnRzaGFyZWQpKTsKKwkJCQkJCQkJCVBhcmFs bGVsVGFibGVTY2FuRnJvbUJUU2hhcmVkKGJ0c2hhcmVkKSwgMCk7CiAJcmVsdHVwbGVzID0gdGFi bGVfaW5kZXhfYnVpbGRfc2NhbihidHNwb29sLT5oZWFwLCBidHNwb29sLT5pbmRleCwgaW5kZXhJ bmZvLAogCQkJCQkJCQkJICAgdHJ1ZSwgcHJvZ3Jlc3MsIF9idF9idWlsZF9jYWxsYmFjaywKIAkJ CQkJCQkJCSAgICZidWlsZHN0YXRlLCBzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90YWJsZS90YWJsZWFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5j CmluZGV4IGRmZGExYWY0MTJlLi43YTEyZTgwOGIwNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL3RhYmxlL3RhYmxlYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFi bGVhbS5jCkBAIC0xMTgsNyArMTE4LDcgQEAgdGFibGVfYmVnaW5zY2FuX2NhdGFsb2coUmVsYXRp b24gcmVsYXRpb24sIGludCBua2V5cywgU2NhbktleURhdGEgKmtleSkKIAlTbmFwc2hvdAlzbmFw c2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0Q2F0YWxvZ1NuYXBzaG90KHJlbGlkKSk7CiAKIAly ZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWxhdGlvbiwgc25hcHNob3QsIG5rZXlzLCBr ZXksCi0JCQkJCQkJCSAgTlVMTCwgZmxhZ3MpOworCQkJCQkJCQkgIE5VTEwsIGZsYWdzLCAwKTsK IH0KIAogCkBAIC0xNjMsMTAgKzE2MywxMCBAQCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6 ZShSZWxhdGlvbiByZWwsIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKIH0KIAogVGFibGVT Y2FuRGVzYwotdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJlbGF0aW9uLCBQYXJh bGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCit0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRp b24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwgdWludDMyIGZsYWdzKQog ewogCVNuYXBzaG90CXNuYXBzaG90OwotCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4g fAorCXVpbnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4gfAogCQlTT19BTExP V19TVFJBVCB8IFNPX0FMTE9XX1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKIAogCUFzc2VydChS ZWxGaWxlTG9jYXRvckVxdWFscyhyZWxhdGlvbi0+cmRfbG9jYXRvciwgcHNjYW4tPnBoc19sb2Nh dG9yKSk7CkBAIC0xNzYsNyArMTc2LDcgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0 aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAJCS8qIFNuYXBzaG90 IHdhcyBzZXJpYWxpemVkIC0tIHJlc3RvcmUgaXQgKi8KIAkJc25hcHNob3QgPSBSZXN0b3JlU25h cHNob3QoKGNoYXIgKikgcHNjYW4gKyBwc2Nhbi0+cGhzX3NuYXBzaG90X29mZik7CiAJCVJlZ2lz dGVyU25hcHNob3Qoc25hcHNob3QpOwotCQlmbGFncyB8PSBTT19URU1QX1NOQVBTSE9UOworCQlp bnRlcm5hbF9mbGFncyB8PSBTT19URU1QX1NOQVBTSE9UOwogCX0KIAllbHNlCiAJewpAQCAtMTg1 LDE2ICsxODUsMTcgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJlbGF0aW9u LCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAJfQogCiAJcmV0dXJuIHRhYmxlX2JlZ2lu c2Nhbl9jb21tb24ocmVsYXRpb24sIHNuYXBzaG90LCAwLCBOVUxMLAotCQkJCQkJCQkgIHBzY2Fu LCBmbGFncyk7CisJCQkJCQkJCSAgcHNjYW4sIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiB9CiAK IFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShSZWxhdGlv biByZWxhdGlvbiwKLQkJCQkJCQkJICBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCisJCQkJ CQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCQkgIHVpbnQzMiBmbGFn cykKIHsKIAlTbmFwc2hvdAlzbmFwc2hvdDsKLQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9USURS QU5HRVNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIAlUYWJsZVNjYW5EZXNjIHNzY2FuOworCXVp bnQzMgkJaW50ZXJuYWxfZmxhZ3MgPSBTT19UWVBFX1RJRFJBTkdFU0NBTiB8IFNPX0FMTE9XX1BB R0VNT0RFOwogCiAJQXNzZXJ0KFJlbEZpbGVMb2NhdG9yRXF1YWxzKHJlbGF0aW9uLT5yZF9sb2Nh dG9yLCBwc2Nhbi0+cGhzX2xvY2F0b3IpKTsKIApAQCAtMjA2LDcgKzIwNyw3IEBAIHRhYmxlX2Jl Z2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShSZWxhdGlvbiByZWxhdGlvbiwKIAkJLyogU25hcHNo b3Qgd2FzIHNlcmlhbGl6ZWQgLS0gcmVzdG9yZSBpdCAqLwogCQlzbmFwc2hvdCA9IFJlc3RvcmVT bmFwc2hvdCgoY2hhciAqKSBwc2NhbiArIHBzY2FuLT5waHNfc25hcHNob3Rfb2ZmKTsKIAkJUmVn aXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7Ci0JCWZsYWdzIHw9IFNPX1RFTVBfU05BUFNIT1Q7CisJ CWludGVybmFsX2ZsYWdzIHw9IFNPX1RFTVBfU05BUFNIT1Q7CiAJfQogCWVsc2UKIAl7CkBAIC0y MTUsNyArMjE2LDcgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKFJlbGF0aW9u IHJlbGF0aW9uLAogCX0KIAogCXNzY2FuID0gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWxhdGlv biwgc25hcHNob3QsIDAsIE5VTEwsCi0JCQkJCQkJCSAgIHBzY2FuLCBmbGFncyk7CisJCQkJCQkJ CSAgIHBzY2FuLCBpbnRlcm5hbF9mbGFncywgZmxhZ3MpOwogCXJldHVybiBzc2NhbjsKIH0KIApA QCAtMjQ4LDcgKzI0OSw3IEBAIHRhYmxlX2luZGV4X2ZldGNoX3R1cGxlX2NoZWNrKFJlbGF0aW9u IHJlbCwKIAlib29sCQlmb3VuZDsKIAogCXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShyZWwsIE5V TEwpOwotCXNjYW4gPSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbihyZWwpOworCXNjYW4gPSB0YWJs ZV9pbmRleF9mZXRjaF9iZWdpbihyZWwsIDApOwogCWZvdW5kID0gdGFibGVfaW5kZXhfZmV0Y2hf dHVwbGUoc2NhbiwgdGlkLCBzbmFwc2hvdCwgc2xvdCwgJmNhbGxfYWdhaW4sCiAJCQkJCQkJCQlh bGxfZGVhZCk7CiAJdGFibGVfaW5kZXhfZmV0Y2hfZW5kKHNjYW4pOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29u c3RyYWludC5jCmluZGV4IGNjMTFjNDdiNmYyLi4zN2NmYmQ2MzkzOCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2NvbnN0cmFpbnQuYwpAQCAtMTA2LDcgKzEwNiw3IEBAIHVuaXF1ZV9rZXlfcmVjaGVjayhQR19G VU5DVElPTl9BUkdTKQogCSAqLwogCXRtcHRpZCA9IGNoZWNrdGlkOwogCXsKLQkJSW5kZXhGZXRj aFRhYmxlRGF0YSAqc2NhbiA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKHRyaWdkYXRhLT50Z19y ZWxhdGlvbik7CisJCUluZGV4RmV0Y2hUYWJsZURhdGEgKnNjYW4gPSB0YWJsZV9pbmRleF9mZXRj aF9iZWdpbih0cmlnZGF0YS0+dGdfcmVsYXRpb24sIDApOwogCQlib29sCQljYWxsX2FnYWluID0g ZmFsc2U7CiAKIAkJaWYgKCF0YWJsZV9pbmRleF9mZXRjaF90dXBsZShzY2FuLCAmdG1wdGlkLCBT bmFwc2hvdFNlbGYsIHNsb3QsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5 dG8uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jCmluZGV4IGZhZjYyZDk1OWI0Li4y OWQ3YzM1MTRiNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMKQEAgLTEzMzYsNyArMTMzNiw3IEBAIENv cHlSZWxhdGlvblRvKENvcHlUb1N0YXRlIGNzdGF0ZSwgUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBy b290X3JlbCwgdWludDY0ICpwcm9jCiAJQXR0ck1hcCAgICAqbWFwID0gTlVMTDsKIAlUdXBsZVRh YmxlU2xvdCAqcm9vdF9zbG90ID0gTlVMTDsKIAotCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2Fu KHJlbCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCk7CisJc2NhbmRlc2MgPSB0YWJsZV9i ZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMLCAwKTsKIAlzbG90ID0g dGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCmluZGV4IDIxOWY2MDRkZjdiLi5lYzliYmZlNTU0YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKQEAgLTY0MTEsNyArNjQxMSw3IEBAIEFUUmV3cml0ZVRhYmxlKEFsdGVyZWRUYWJsZUlu Zm8gKnRhYiwgT2lkIE9JRE5ld0hlYXApCiAJCSAqIGNoZWNraW5nIGFsbCB0aGUgY29uc3RyYWlu dHMuCiAJCSAqLwogCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNo b3QoKSk7Ci0JCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ob2xkcmVsLCBzbmFwc2hvdCwgMCwgTlVM TCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ob2xkcmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwg MCk7CiAKIAkJLyoKIAkJICogU3dpdGNoIHRvIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCBhbmQg cmVzZXQgaXQgZm9yIGVhY2ggdHVwbGUKQEAgLTEzOTgwLDcgKzEzOTgwLDcgQEAgdmFsaWRhdGVG b3JlaWduS2V5Q29uc3RyYWludChjaGFyICpjb25uYW1lLAogCSAqLwogCXNuYXBzaG90ID0gUmVn aXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKIAlzbG90ID0gdGFibGVfc2xvdF9j cmVhdGUocmVsLCBOVUxMKTsKLQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgc25hcHNob3Qs IDAsIE5VTEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBzbmFwc2hvdCwgMCwgTlVM TCwgMCk7CiAKIAlwZXJUdXBDeHQgPSBBbGxvY1NldENvbnRleHRDcmVhdGUoQ3VycmVudE1lbW9y eUNvbnRleHQsCiAJCQkJCQkJCQkgICJ2YWxpZGF0ZUZvcmVpZ25LZXlDb25zdHJhaW50IiwKQEAg LTIyODgyLDcgKzIyODgyLDcgQEAgTWVyZ2VQYXJ0aXRpb25zTW92ZVJvd3MoTGlzdCAqKndxdWV1 ZSwgTGlzdCAqbWVyZ2luZ1BhcnRpdGlvbnMsIFJlbGF0aW9uIG5ld1BhcnQKIAogCQkvKiBTY2Fu IHRocm91Z2ggdGhlIHJvd3MuICovCiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRM YXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihtZXJnaW5nUGFydGl0 aW9uLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4obWVyZ2lu Z1BhcnRpdGlvbiwgc25hcHNob3QsIDAsIE5VTEwsIDApOwogCiAJCS8qCiAJCSAqIFN3aXRjaCB0 byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZvciBlYWNoIHR1cGxlCkBA IC0yMzM0Niw3ICsyMzM0Niw3IEBAIFNwbGl0UGFydGl0aW9uTW92ZVJvd3MoTGlzdCAqKndxdWV1 ZSwgUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBzcGxpdFJlbCwKIAogCS8qIFNjYW4gdGhyb3VnaCB0 aGUgcm93cy4gKi8KIAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNo b3QoKSk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihzcGxpdFJlbCwgc25hcHNob3QsIDAsIE5V TEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4oc3BsaXRSZWwsIHNuYXBzaG90LCAwLCBOVUxM LCAwKTsKIAogCS8qCiAJICogU3dpdGNoIHRvIHBlci10dXBsZSBtZW1vcnkgY29udGV4dCBhbmQg cmVzZXQgaXQgZm9yIGVhY2ggdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDNkYWI2 YmI1YTc5Li41MzE2Y2VhN2NlYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlw ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0zMTg1LDcg KzMxODUsNyBAQCB2YWxpZGF0ZURvbWFpbk5vdE51bGxDb25zdHJhaW50KE9pZCBkb21haW5vaWQp CiAKIAkJLyogU2NhbiBhbGwgdHVwbGVzIGluIHRoaXMgcmVsYXRpb24gKi8KIAkJc25hcHNob3Qg PSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwotCQlzY2FuID0gdGFibGVf YmVnaW5zY2FuKHRlc3RyZWwsIHNuYXBzaG90LCAwLCBOVUxMKTsKKwkJc2NhbiA9IHRhYmxlX2Jl Z2luc2Nhbih0ZXN0cmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwgMCk7CiAJCXNsb3QgPSB0YWJsZV9z bG90X2NyZWF0ZSh0ZXN0cmVsLCBOVUxMKTsKIAkJd2hpbGUgKHRhYmxlX3NjYW5fZ2V0bmV4dHNs b3Qoc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIHNsb3QpKQogCQl7CkBAIC0zMjY2LDcgKzMy NjYsNyBAQCB2YWxpZGF0ZURvbWFpbkNoZWNrQ29uc3RyYWludChPaWQgZG9tYWlub2lkLCBjb25z dCBjaGFyICpjY2JpbiwgTE9DS01PREUgbG9ja21vZAogCiAJCS8qIFNjYW4gYWxsIHR1cGxlcyBp biB0aGlzIHJlbGF0aW9uICovCiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRMYXRl c3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbih0ZXN0cmVsLCBzbmFwc2hv dCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4odGVzdHJlbCwgc25hcHNob3Qs IDAsIE5VTEwsIDApOwogCQlzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUodGVzdHJlbCwgTlVMTCk7 CiAJCXdoaWxlICh0YWJsZV9zY2FuX2dldG5leHRzbG90KHNjYW4sIEZvcndhcmRTY2FuRGlyZWN0 aW9uLCBzbG90KSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0lu ZGV4aW5nLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYwppbmRleCA5ZDA3 MWU0OTVjNi4uYzQ2YmVlZGViNzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNJbmRleGluZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCkBA IC04MTUsNyArODE1LDggQEAgY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50KFJl bGF0aW9uIGhlYXAsIFJlbGF0aW9uIGluZGV4LAogcmV0cnk6CiAJY29uZmxpY3QgPSBmYWxzZTsK IAlmb3VuZF9zZWxmID0gZmFsc2U7Ci0JaW5kZXhfc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFw LCBpbmRleCwgJkRpcnR5U25hcHNob3QsIE5VTEwsIGluZG5rZXlhdHRzLCAwKTsKKwlpbmRleF9z Y2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXAsIGluZGV4LCAwLAkvKiBmbGFncyAqLworCQkJCQkJ CQkgJkRpcnR5U25hcHNob3QsIE5VTEwsIGluZG5rZXlhdHRzLCAwKTsKIAlpbmRleF9yZXNjYW4o aW5kZXhfc2Nhbiwgc2NhbmtleXMsIGluZG5rZXlhdHRzLCBOVUxMLCAwKTsKIAogCXdoaWxlIChp bmRleF9nZXRuZXh0X3Nsb3QoaW5kZXhfc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIGV4aXN0 aW5nX3Nsb3QpKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0 aW9uLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYwppbmRleCAyNDk3 ZWU3ZWRjNS4uMjM1MDk3NzE1NTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNSZXBsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlv bi5jCkBAIC0yMDUsNyArMjA1LDkgQEAgUmVsYXRpb25GaW5kUmVwbFR1cGxlQnlJbmRleChSZWxh dGlvbiByZWwsIE9pZCBpZHhvaWQsCiAJc2tleV9hdHRvZmYgPSBidWlsZF9yZXBsaW5kZXhfc2Nh bl9rZXkoc2tleSwgcmVsLCBpZHhyZWwsIHNlYXJjaHNsb3QpOwogCiAJLyogU3RhcnQgYW4gaW5k ZXggc2Nhbi4gKi8KLQlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKHJlbCwgaWR4cmVsLCAmc25hcCwg TlVMTCwgc2tleV9hdHRvZmYsIDApOworCXNjYW4gPSBpbmRleF9iZWdpbnNjYW4ocmVsLCBpZHhy ZWwsCisJCQkJCQkgICAwLAkvKiBmbGFncyAqLworCQkJCQkJICAgJnNuYXAsIE5VTEwsIHNrZXlf YXR0b2ZmLCAwKTsKIAogcmV0cnk6CiAJZm91bmQgPSBmYWxzZTsKQEAgLTM4Myw3ICszODUsNyBA QCBSZWxhdGlvbkZpbmRSZXBsVHVwbGVTZXEoUmVsYXRpb24gcmVsLCBMb2NrVHVwbGVNb2RlIGxv Y2ttb2RlLAogCiAJLyogU3RhcnQgYSBoZWFwIHNjYW4uICovCiAJSW5pdERpcnR5U25hcHNob3Qo c25hcCk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsICZzbmFwLCAwLCBOVUxMKTsKKwlz Y2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgJnNuYXAsIDAsIE5VTEwsIDApOwogCXNjYW5zbG90 ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKIAogcmV0cnk6CkBAIC02MDIsNyArNjA0 LDcgQEAgUmVsYXRpb25GaW5kRGVsZXRlZFR1cGxlSW5mb1NlcShSZWxhdGlvbiByZWwsIFR1cGxl VGFibGVTbG90ICpzZWFyY2hzbG90LAogCSAqIG5vdCB5ZXQgY29tbWl0dGVkIG9yIHRob3NlIGp1 c3QgY29tbWl0dGVkIHByaW9yIHRvIHRoZSBzY2FuIGFyZQogCSAqIGV4Y2x1ZGVkIGluIHVwZGF0 ZV9tb3N0X3JlY2VudF9kZWxldGlvbl9pbmZvKCkuCiAJICovCi0Jc2NhbiA9IHRhYmxlX2JlZ2lu c2NhbihyZWwsIFNuYXBzaG90QW55LCAwLCBOVUxMKTsKKwlzY2FuID0gdGFibGVfYmVnaW5zY2Fu KHJlbCwgU25hcHNob3RBbnksIDAsIE5VTEwsIDApOwogCXNjYW5zbG90ID0gdGFibGVfc2xvdF9j cmVhdGUocmVsLCBOVUxMKTsKIAogCXRhYmxlX3Jlc2NhbihzY2FuLCBOVUxMKTsKQEAgLTY2Niw3 ICs2NjgsOSBAQCBSZWxhdGlvbkZpbmREZWxldGVkVHVwbGVJbmZvQnlJbmRleChSZWxhdGlvbiBy ZWwsIE9pZCBpZHhvaWQsCiAJICogbm90IHlldCBjb21taXR0ZWQgb3IgdGhvc2UganVzdCBjb21t aXR0ZWQgcHJpb3IgdG8gdGhlIHNjYW4gYXJlCiAJICogZXhjbHVkZWQgaW4gdXBkYXRlX21vc3Rf cmVjZW50X2RlbGV0aW9uX2luZm8oKS4KIAkgKi8KLQlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKHJl bCwgaWR4cmVsLCBTbmFwc2hvdEFueSwgTlVMTCwgc2tleV9hdHRvZmYsIDApOworCXNjYW4gPSBp bmRleF9iZWdpbnNjYW4ocmVsLCBpZHhyZWwsCisJCQkJCQkgICAwLAkvKiBmbGFncyAqLworCQkJ CQkJICAgU25hcHNob3RBbnksIE5VTEwsIHNrZXlfYXR0b2ZmLCAwKTsKIAogCWluZGV4X3Jlc2Nh bihzY2FuLCBza2V5LCBza2V5X2F0dG9mZiwgTlVMTCwgMCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKaW5kZXggN2NmOGQyM2M3NDIuLjMyNGUyYmVkMjJjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwpAQCAtMTQ4LDcgKzE0 OCw3IEBAIEJpdG1hcFRhYmxlU2NhblNldHVwKEJpdG1hcEhlYXBTY2FuU3RhdGUgKm5vZGUpCiAJ CQl0YWJsZV9iZWdpbnNjYW5fYm0obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJ CSAgIG5vZGUtPnNzLnBzLnN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkgICAwLAotCQkJCQkJ CSAgIE5VTEwpOworCQkJCQkJCSAgIE5VTEwsIDApOwogCX0KIAogCW5vZGUtPnNzLnNzX2N1cnJl bnRTY2FuRGVzYy0+c3QucnNfdGJtaXRlcmF0b3IgPSB0Ym1pdGVyYXRvcjsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCmluZGV4IDllYWI4MWZkMWM4Li5mNzMzYmUwMjIw YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCkBAIC05Miw2ICs5 Miw3IEBAIEluZGV4T25seU5leHQoSW5kZXhPbmx5U2NhblN0YXRlICpub2RlKQogCQkgKi8KIAkJ c2NhbmRlc2MgPSBpbmRleF9iZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAog CQkJCQkJCQkgICBub2RlLT5pb3NzX1JlbGF0aW9uRGVzYywKKwkJCQkJCQkJICAgMCwJLyogZmxh Z3MgKi8KIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJICAgbm9kZS0+ aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pb3NzX051bVNjYW5LZXlzLApAQCAt Nzk0LDcgKzc5NSw3IEBAIEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlhbGl6ZURTTShJbmRleE9ubHlT Y2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJCQkJ CSBub2RlLT5pb3NzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1PcmRlckJ5 S2V5cywKLQkJCQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4sIDApOwogCW5vZGUtPmlv c3NfU2NhbkRlc2MtPnhzX3dhbnRfaXR1cCA9IHRydWU7CiAJbm9kZS0+aW9zc19WTUJ1ZmZlciA9 IEludmFsaWRCdWZmZXI7CiAKQEAgLTg2MCw3ICs4NjEsNyBAQCBFeGVjSW5kZXhPbmx5U2Nhbklu aXRpYWxpemVXb3JrZXIoSW5kZXhPbmx5U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgbm9kZS0+ aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1TY2FuS2V5cywKIAkJCQkJ CQkJIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBwaXNjYW4pOworCQkJCQkJ CQkgcGlzY2FuLCAwKTsKIAlub2RlLT5pb3NzX1NjYW5EZXNjLT54c193YW50X2l0dXAgPSB0cnVl OwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4u YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwppbmRleCAwNjE0M2U5NGM1 YS4uMWExMDFkZjQ5MmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRl eHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKQEAgLTEx MCw2ICsxMTAsNyBAQCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJCSAqLwogCQlz Y2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJ CQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAgIDAsCS8qIGZsYWdz ICovCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgIG5vZGUtPmlz c19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMsCkBAIC0yMDYs NiArMjA3LDcgQEAgSW5kZXhOZXh0V2l0aFJlb3JkZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJ CSAqLwogCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVs YXRpb24sCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAgIDAs CS8qIGZsYWdzICovCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAg IG5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMs CkBAIC0xNzMwLDcgKzE3MzIsNyBAQCBFeGVjSW5kZXhTY2FuSW5pdGlhbGl6ZURTTShJbmRleFNj YW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJIG5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJCQkJCQkg bm9kZS0+aXNzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aXNzX051bU9yZGVyQnlLZXlz LAotCQkJCQkJCQkgcGlzY2FuKTsKKwkJCQkJCQkJIHBpc2NhbiwgMCk7CiAKIAkvKgogCSAqIElm IG5vIHJ1bi10aW1lIGtleXMgdG8gY2FsY3VsYXRlIG9yIHRoZXkgYXJlIHJlYWR5LCBnbyBhaGVh ZCBhbmQgcGFzcwpAQCAtMTc5NCw3ICsxNzk2LDcgQEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVX b3JrZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pc3NfSW5zdHJ1bWVu dCwKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlzc19O dW1PcmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4sIDApOwog CiAJLyoKIAkgKiBJZiBubyBydW4tdGltZSBrZXlzIHRvIGNhbGN1bGF0ZSBvciB0aGV5IGFyZSBy ZWFkeSwgZ28gYWhlYWQgYW5kIHBhc3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVTYW1wbGVzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5j CmluZGV4IDZiMGQ2NWY3NTJmLi5jYzZiMjNhYmVlMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl U2FtcGxlc2Nhbi5jCkBAIC0yOTgsNyArMjk4LDcgQEAgdGFibGVzYW1wbGVfaW5pdChTYW1wbGVT Y2FuU3RhdGUgKnNjYW5zdGF0ZSkKIAkJCQkJCQkJCSAwLCBOVUxMLAogCQkJCQkJCQkJIHNjYW5z dGF0ZS0+dXNlX2J1bGtyZWFkLAogCQkJCQkJCQkJIGFsbG93X3N5bmMsCi0JCQkJCQkJCQkgc2Nh bnN0YXRlLT51c2VfcGFnZW1vZGUpOworCQkJCQkJCQkJIHNjYW5zdGF0ZS0+dXNlX3BhZ2Vtb2Rl LCAwKTsKIAl9CiAJZWxzZQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVTZXFzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCmluZGV4IDhm MjE5ZjYwYTkzLi5jMmQ5YjcyOTNkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVNlcXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCkBA IC03MSw3ICs3MSw3IEBAIFNlcU5leHQoU2VxU2NhblN0YXRlICpub2RlKQogCQkgKi8KIAkJc2Nh bmRlc2MgPSB0YWJsZV9iZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJ CQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAotCQkJCQkJCQkgICAwLCBOVUxMKTsKKwkJCQkJ CQkJICAgMCwgTlVMTCwgMCk7CiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9IHNjYW5k ZXNjOwogCX0KIApAQCAtMzc1LDcgKzM3NSw3IEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShT ZXFTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSAgZXN0YXRlLT5lc19zbmFwc2hvdCk7CiAJc2ht X3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIHBz Y2FuKTsKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNjYW5f cGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nhbik7CisJCXRhYmxlX2Jl Z2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLCAwKTsK IH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpAQCAtNDA4LDUgKzQwOCw1IEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6 ZVdvcmtlcihTZXFTY2FuU3RhdGUgKm5vZGUsCiAKIAlwc2NhbiA9IHNobV90b2NfbG9va3VwKHB3 Y3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFsc2UpOwogCW5vZGUt PnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2Rl LT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuKTsKKwkJdGFibGVfYmVnaW5zY2FuX3BhcmFs bGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4sIDApOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCmluZGV4IDYxNzcxM2JkZTA0Li45OTRmNzA5ODli YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYwpAQCAtMjQ1LDcgKzI0 NSw3IEBAIFRpZFJhbmdlTmV4dChUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSkKIAkJCXNjYW5kZXNj ID0gdGFibGVfYmVnaW5zY2FuX3RpZHJhbmdlKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwK IAkJCQkJCQkJCQkJCWVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCQkJCQkmbm9kZS0+dHJz c19taW50aWQsCi0JCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19tYXh0aWQpOworCQkJCQkJCQkJCQkJ Jm5vZGUtPnRyc3NfbWF4dGlkLCAwKTsKIAkJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9 IHNjYW5kZXNjOwogCQl9CiAJCWVsc2UKQEAgLTQ2MCw3ICs0NjAsNyBAQCBFeGVjVGlkUmFuZ2VT Y2FuSW5pdGlhbGl6ZURTTShUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwgUGFyYWxsZWxDb250ZXh0 ICpwY3h0KQogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxh bl9ub2RlX2lkLCBwc2Nhbik7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJdGFi bGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlv biwKLQkJCQkJCQkJCQkgIHBzY2FuKTsKKwkJCQkJCQkJCQkgIHBzY2FuLCAwKTsKIH0KIAogLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpAQCAtNDk0LDUgKzQ5NCw1IEBAIEV4ZWNUaWRSYW5nZVNjYW5Jbml0aWFsaXplV29y a2VyKFRpZFJhbmdlU2NhblN0YXRlICpub2RlLAogCXBzY2FuID0gc2htX3RvY19sb29rdXAocHdj eHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBmYWxzZSk7CiAJbm9kZS0+ c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJh bmdlKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJCQkgIHBzY2FuKTsKKwkJ CQkJCQkJCQkgIHBzY2FuLCAwKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnRpdGlv bmluZy9wYXJ0Ym91bmRzLmMgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5j CmluZGV4IDBjYTMxMmFjMjdkLi5iN2M0ZTZkMTA3MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYworKysgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcv cGFydGJvdW5kcy5jCkBAIC0zMzYyLDcgKzMzNjIsNyBAQCBjaGVja19kZWZhdWx0X3BhcnRpdGlv bl9jb250ZW50cyhSZWxhdGlvbiBwYXJlbnQsIFJlbGF0aW9uIGRlZmF1bHRfcmVsLAogCQllY29u dGV4dCA9IEdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKTsKIAkJc25hcHNob3QgPSBSZWdp c3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwogCQl0dXBzbG90ID0gdGFibGVfc2xv dF9jcmVhdGUocGFydF9yZWwsICZlc3RhdGUtPmVzX3R1cGxlVGFibGUpOwotCQlzY2FuID0gdGFi bGVfYmVnaW5zY2FuKHBhcnRfcmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJs ZV9iZWdpbnNjYW4ocGFydF9yZWwsIHNuYXBzaG90LCAwLCBOVUxMLCAwKTsKIAogCQkvKgogCQkg KiBTd2l0Y2ggdG8gcGVyLXR1cGxlIG1lbW9yeSBjb250ZXh0IGFuZCByZXNldCBpdCBmb3IgZWFj aCB0dXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3MuYwppbmRleCA1M2Y4NWNjZGUwMS4uMDUyOGY4 MTY2ZDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCkBAIC03MTc3LDYgKzcxNzcsNyBAQCBn ZXRfYWN0dWFsX3ZhcmlhYmxlX2VuZHBvaW50KFJlbGF0aW9uIGhlYXBSZWwsCiAJCQkJCQkJICBH bG9iYWxWaXNUZXN0Rm9yKGhlYXBSZWwpKTsKIAogCWluZGV4X3NjYW4gPSBpbmRleF9iZWdpbnNj YW4oaGVhcFJlbCwgaW5kZXhSZWwsCisJCQkJCQkJCSAwLCAvKiBmbGFncyAqLwogCQkJCQkJCQkg JlNuYXBzaG90Tm9uVmFjdXVtYWJsZSwgTlVMTCwKIAkJCQkJCQkJIDEsIDApOwogCS8qIFNldCBp dCB1cCBmb3IgaW5kZXgtb25seSBzY2FuICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3MvZ2VuYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oCmluZGV4IDFhMjdiZjA2MGIz Li5iOThjMjBhMGVkYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKKysr IGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKQEAgLTE1Niw2ICsxNTYsNyBAQCBleHRlcm4g dm9pZCBpbmRleF9pbnNlcnRfY2xlYW51cChSZWxhdGlvbiBpbmRleFJlbGF0aW9uLAogCiBleHRl cm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW4oUmVsYXRpb24gaGVhcFJlbGF0aW9uLAog CQkJCQkJCQkJIFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCisJCQkJCQkJCQkgdWludDMyIGZsYWdz LAogCQkJCQkJCQkJIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJIEluZGV4U2Nhbkluc3Ry dW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJCQkJCQkJCSBpbnQgbmtleXMsIGludCBub3JkZXJi eXMpOwpAQCAtMTg0LDcgKzE4NSw4IEBAIGV4dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2JlZ2lu c2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBoZWFwcmVsLAogCQkJCQkJCQkJCQkgIFJlbGF0aW9uIGlu ZGV4cmVsLAogCQkJCQkJCQkJCQkgIEluZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVu dCwKIAkJCQkJCQkJCQkJICBpbnQgbmtleXMsIGludCBub3JkZXJieXMsCi0JCQkJCQkJCQkJCSAg UGFyYWxsZWxJbmRleFNjYW5EZXNjIHBzY2FuKTsKKwkJCQkJCQkJCQkJICBQYXJhbGxlbEluZGV4 U2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJCQkJCSAgdWludDMyIGZsYWdzKTsKIGV4dGVybiBJdGVt UG9pbnRlciBpbmRleF9nZXRuZXh0X3RpZChJbmRleFNjYW5EZXNjIHNjYW4sCiAJCQkJCQkJCQkg U2NhbkRpcmVjdGlvbiBkaXJlY3Rpb24pOwogZXh0ZXJuIGJvb2wgaW5kZXhfZmV0Y2hfaGVhcChJ bmRleFNjYW5EZXNjIHNjYW4sIFR1cGxlVGFibGVTbG90ICpzbG90KTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApp bmRleCAwYWIzMjJiZjU4Yi4uNDdjYmYyYTIwY2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTk1LDEw ICs5NSw3IEBAIHR5cGVkZWYgc3RydWN0IEhlYXBTY2FuRGVzY0RhdGEKIAkgKi8KIAlQYXJhbGxl bEJsb2NrVGFibGVTY2FuV29ya2VyRGF0YSAqcnNfcGFyYWxsZWx3b3JrZXJkYXRhOwogCi0JLyoK LQkgKiBGb3Igc2VxdWVudGlhbCBzY2FucyBhbmQgYml0bWFwIGhlYXAgc2NhbnMuIFRoZSBjdXJy ZW50IGhlYXAgYmxvY2sncwotCSAqIGNvcnJlc3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0 eSBtYXAuCi0JICovCisJLyogQ3VycmVudCBoZWFwIGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdl IGluIHRoZSB2aXNpYmlsaXR5IG1hcCAqLwogCUJ1ZmZlcgkJcnNfdm1idWZmZXI7CiAKIAkvKiB0 aGVzZSBmaWVsZHMgb25seSB1c2VkIGluIHBhZ2UtYXQtYS10aW1lIG1vZGUgYW5kIGZvciBiaXRt YXAgc2NhbnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmggYi9z cmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oCmluZGV4IGNlMzQwYzA3NmY4Li44MGVhMGI0Mzdk MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3MvcmVsc2Nhbi5oCkBAIC0xMjIsNiArMTIyLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg UGFyYWxsZWxCbG9ja1RhYmxlU2NhbldvcmtlckRhdGEgKlBhcmFsbGVsQmxvY2tUYWJsZVNjYW5X b3JrZXI7CiB0eXBlZGVmIHN0cnVjdCBJbmRleEZldGNoVGFibGVEYXRhCiB7CiAJUmVsYXRpb24J cmVsOworCXVpbnQzMgkJZmxhZ3M7CiB9IEluZGV4RmV0Y2hUYWJsZURhdGE7CiAKIHN0cnVjdCBJ bmRleFNjYW5JbnN0cnVtZW50YXRpb247CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv dGFibGVhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCAwNjA4NDc1MjI0 NS4uODM1N2QwNWQ4M2IgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaApAQCAtNjUsNiArNjUsMTYgQEAgdHlw ZWRlZiBlbnVtIFNjYW5PcHRpb25zCiAJU09fVEVNUF9TTkFQU0hPVCA9IDEgPDwgOSwKIH0JCQlT Y2FuT3B0aW9uczsKIAorLyoKKyAqIE1hc2sgb2YgZmxhZ3MgdGhhdCBhcmUgc2V0IGludGVybmFs bHkgYnkgdGhlIHRhYmxlX2JlZ2luc2Nhbl8qIGZ1bmN0aW9ucworICogYW5kIG11c3Qgbm90IGJl IHBhc3NlZCBieSBjYWxsZXJzLgorICovCisjZGVmaW5lIFNPX0lOVEVSTkFMX0ZMQUdTIFwKKwko U09fVFlQRV9TRVFTQ0FOIHwgU09fVFlQRV9CSVRNQVBTQ0FOIHwgU09fVFlQRV9TQU1QTEVTQ0FO IHwgXAorCSBTT19UWVBFX1RJRFNDQU4gfCBTT19UWVBFX1RJRFJBTkdFU0NBTiB8IFNPX1RZUEVf QU5BTFlaRSB8IFwKKwkgU09fQUxMT1dfU1RSQVQgfCBTT19BTExPV19TWU5DIHwgU09fQUxMT1df UEFHRU1PREUgfCBcCisJIFNPX1RFTVBfU05BUFNIT1QpCisKIC8qCiAgKiBSZXN1bHQgY29kZXMg Zm9yIHRhYmxlX3t1cGRhdGUsZGVsZXRlLGxvY2tfdHVwbGV9LCBhbmQgZm9yIHZpc2liaWxpdHkK ICAqIHJvdXRpbmVzIGluc2lkZSB0YWJsZSBBTXMuCkBAIC00MjAsNyArNDMwLDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgVGFibGVBbVJvdXRpbmUKIAkgKgogCSAqIFR1cGxlcyBmb3IgYW4gaW5kZXggc2Nh biBjYW4gdGhlbiBiZSBmZXRjaGVkIHZpYSBpbmRleF9mZXRjaF90dXBsZS4KIAkgKi8KLQlzdHJ1 Y3QgSW5kZXhGZXRjaFRhYmxlRGF0YSAqKCppbmRleF9mZXRjaF9iZWdpbikgKFJlbGF0aW9uIHJl bCk7CisJc3RydWN0IEluZGV4RmV0Y2hUYWJsZURhdGEgKigqaW5kZXhfZmV0Y2hfYmVnaW4pIChS ZWxhdGlvbiByZWwsIHVpbnQzMiBmbGFncyk7CiAKIAkvKgogCSAqIFJlc2V0IGluZGV4IGZldGNo LiBUeXBpY2FsbHkgdGhpcyB3aWxsIHJlbGVhc2UgY3Jvc3MgaW5kZXggZmV0Y2gKQEAgLTg3MSwx MiArODgxLDE4IEBAIGV4dGVybiBUdXBsZVRhYmxlU2xvdCAqdGFibGVfc2xvdF9jcmVhdGUoUmVs YXRpb24gcmVsYXRpb24sIExpc3QgKipyZWdsaXN0KTsKICAqIEEgd3JhcHBlciBhcm91bmQgdGhl IFRhYmxlIEFjY2VzcyBNZXRob2Qgc2Nhbl9iZWdpbiBjYWxsYmFjaywgdG8gY2VudHJhbGl6ZQog ICogZXJyb3IgY2hlY2tpbmcuIEFsbCBjYWxscyB0byAtPnNjYW5fYmVnaW4oKSBzaG91bGQgZ28g dGhyb3VnaCB0aGlzCiAgKiBmdW5jdGlvbi4KKyAqCisgKiBUaGUgY2FsbGVyLXByb3ZpZGVkIHVz ZXJfZmxhZ3MgYXJlIHZhbGlkYXRlZCBhZ2FpbnN0IFNPX0lOVEVSTkFMX0ZMQUdTIHRvCisgKiBj YXRjaCBjYWxsZXJzIHRoYXQgYWNjaWRlbnRhbGx5IHBhc3Mgc2Nhbi10eXBlIG9yIG90aGVyIGlu dGVybmFsIGZsYWdzLgogICovCiBzdGF0aWMgVGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5zY2Fu X2NvbW1vbihSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LCBpbnQgbmtleXMsCiAJCQkJ CSAgIFNjYW5LZXlEYXRhICprZXksIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKLQkJCQkJ ICAgdWludDMyIGZsYWdzKQorCQkJCQkgICB1aW50MzIgZmxhZ3MsIHVpbnQzMiB1c2VyX2ZsYWdz KQogeworCUFzc2VydCgodXNlcl9mbGFncyAmIFNPX0lOVEVSTkFMX0ZMQUdTKSA9PSAwKTsKKwlm bGFncyB8PSB1c2VyX2ZsYWdzOworCiAJLyoKIAkgKiBXZSBkb24ndCBhbGxvdyBzY2FucyB0byBi ZSBzdGFydGVkIHdoaWxlIENoZWNrWGlkQWxpdmUgaXMgc2V0LCBleGNlcHQKIAkgKiB2aWEgc3lz dGFibGVfYmVnaW5zY2FuKCkgZXQgYWwuICBTZWUgZGV0YWlsZWQgY29tbWVudHMgaW4geGFjdC5j IHdoZXJlCkBAIC04OTQsMTIgKzkxMCwxMyBAQCB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKFJlbGF0 aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsIGludCBua2V5cywKICAqLwogc3RhdGljIGlubGlu ZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdpbnNjYW4oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBz bmFwc2hvdCwKLQkJCQlpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXkpCisJCQkJaW50IG5rZXlz LCBTY2FuS2V5RGF0YSAqa2V5LCB1aW50MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9IFNP X1RZUEVfU0VRU0NBTiB8CisJdWludDMyCQlpbnRlcm5hbF9mbGFncyA9IFNPX1RZUEVfU0VRU0NB TiB8CiAJCVNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8IFNPX0FMTE9XX1BBR0VNT0RF OwogCi0JcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMs IGtleSwgTlVMTCwgZmxhZ3MpOworCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwg c25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsCisJCQkJCQkJCSAgaW50ZXJuYWxfZmxhZ3MsIGZs YWdzKTsKIH0KIAogLyoKQEAgLTkyOCw3ICs5NDUsNyBAQCB0YWJsZV9iZWdpbnNjYW5fc3RyYXQo UmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAlpZiAoYWxsb3dfc3luYykKIAkJZmxh Z3MgfD0gU09fQUxMT1dfU1lOQzsKIAotCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJl bCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVn aW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBmbGFncywgMCk7 CiB9CiAKIC8qCkBAIC05MzksMTEgKzk1NiwxMiBAQCB0YWJsZV9iZWdpbnNjYW5fc3RyYXQoUmVs YXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKICAqLwogc3RhdGljIGlubGluZSBUYWJsZVNj YW5EZXNjCiB0YWJsZV9iZWdpbnNjYW5fYm0oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hv dCwKLQkJCQkgICBpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXkpCisJCQkJICAgaW50IG5rZXlz LCBTY2FuS2V5RGF0YSAqa2V5LCB1aW50MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9IFNP X1RZUEVfQklUTUFQU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOworCXVpbnQzMgkJaW50ZXJuYWxf ZmxhZ3MgPSBTT19UWVBFX0JJVE1BUFNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIAotCXJldHVy biB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEws IGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBu a2V5cywga2V5LCBOVUxMLAorCQkJCQkJCQkgIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiB9CiAK IC8qCkBAIC05NTcsMTggKzk3NSwxOSBAQCBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MKIHRh YmxlX2JlZ2luc2Nhbl9zYW1wbGluZyhSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAog CQkJCQkJIGludCBua2V5cywgU2NhbktleURhdGEgKmtleSwKIAkJCQkJCSBib29sIGFsbG93X3N0 cmF0LCBib29sIGFsbG93X3N5bmMsCi0JCQkJCQkgYm9vbCBhbGxvd19wYWdlbW9kZSkKKwkJCQkJ CSBib29sIGFsbG93X3BhZ2Vtb2RlLCB1aW50MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9 IFNPX1RZUEVfU0FNUExFU0NBTjsKKwl1aW50MzIJCWludGVybmFsX2ZsYWdzID0gU09fVFlQRV9T QU1QTEVTQ0FOOwogCiAJaWYgKGFsbG93X3N0cmF0KQotCQlmbGFncyB8PSBTT19BTExPV19TVFJB VDsKKwkJaW50ZXJuYWxfZmxhZ3MgfD0gU09fQUxMT1dfU1RSQVQ7CiAJaWYgKGFsbG93X3N5bmMp Ci0JCWZsYWdzIHw9IFNPX0FMTE9XX1NZTkM7CisJCWludGVybmFsX2ZsYWdzIHw9IFNPX0FMTE9X X1NZTkM7CiAJaWYgKGFsbG93X3BhZ2Vtb2RlKQotCQlmbGFncyB8PSBTT19BTExPV19QQUdFTU9E RTsKKwkJaW50ZXJuYWxfZmxhZ3MgfD0gU09fQUxMT1dfUEFHRU1PREU7CiAKLQlyZXR1cm4gdGFi bGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBmbGFn cyk7CisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMs IGtleSwgTlVMTCwKKwkJCQkJCQkJICBpbnRlcm5hbF9mbGFncywgZmxhZ3MpOwogfQogCiAvKgpA QCAtOTgxLDcgKzEwMDAsNyBAQCB0YWJsZV9iZWdpbnNjYW5fdGlkKFJlbGF0aW9uIHJlbCwgU25h cHNob3Qgc25hcHNob3QpCiB7CiAJdWludDMyCQlmbGFncyA9IFNPX1RZUEVfVElEU0NBTjsKIAot CXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIE5V TEwsIGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90 LCAwLCBOVUxMLCBOVUxMLCBmbGFncywgMCk7CiB9CiAKIC8qCkBAIC05OTQsNyArMTAxMyw3IEBA IHRhYmxlX2JlZ2luc2Nhbl9hbmFseXplKFJlbGF0aW9uIHJlbCkKIHsKIAl1aW50MzIJCWZsYWdz ID0gU09fVFlQRV9BTkFMWVpFOwogCi0JcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVs LCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBmbGFncyk7CisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9j b21tb24ocmVsLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBmbGFncywgMCk7CiB9CiAKIC8qCkBAIC0x MDU5LDEyICsxMDc4LDEzIEBAIHRhYmxlX3NjYW5fZ2V0bmV4dHNsb3QoVGFibGVTY2FuRGVzYyBz c2NhbiwgU2NhbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFR1cGxlVGFibGVTCiBzdGF0aWMgaW5saW5l IFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl90aWRyYW5nZShSZWxhdGlvbiByZWwsIFNu YXBzaG90IHNuYXBzaG90LAogCQkJCQkJIEl0ZW1Qb2ludGVyIG1pbnRpZCwKLQkJCQkJCSBJdGVt UG9pbnRlciBtYXh0aWQpCisJCQkJCQkgSXRlbVBvaW50ZXIgbWF4dGlkLCB1aW50MzIgZmxhZ3Mp CiB7CiAJVGFibGVTY2FuRGVzYyBzc2NhbjsKLQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9USURS QU5HRVNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKKwl1aW50MzIJCWludGVybmFsX2ZsYWdzID0g U09fVFlQRV9USURSQU5HRVNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIAotCXNzY2FuID0gdGFi bGVfYmVnaW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCAwLCBOVUxMLCBOVUxMLCBmbGFncyk7 CisJc3NjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIDAsIE5VTEws IE5VTEwsCisJCQkJCQkJCSAgIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiAKIAkvKiBTZXQgdGhl IHJhbmdlIG9mIFRJRHMgdG8gc2NhbiAqLwogCXNzY2FuLT5yc19yZC0+cmRfdGFibGVhbS0+c2Nh bl9zZXRfdGlkcmFuZ2Uoc3NjYW4sIG1pbnRpZCwgbWF4dGlkKTsKQEAgLTExMzksNyArMTE1OSw4 IEBAIGV4dGVybiB2b2lkIHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplKFJlbGF0aW9uIHJl bCwKICAqIENhbGxlciBtdXN0IGhvbGQgYSBzdWl0YWJsZSBsb2NrIG9uIHRoZSByZWxhdGlvbi4K ICAqLwogZXh0ZXJuIFRhYmxlU2NhbkRlc2MgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0 aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2Nhbik7 CisJCQkJCQkJCQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCQkJCQkg IHVpbnQzMiBmbGFncyk7CiAKIC8qCiAgKiBCZWdpbiBhIHBhcmFsbGVsIHRpZCByYW5nZSBzY2Fu LiBgcHNjYW5gIG5lZWRzIHRvIGhhdmUgYmVlbiBpbml0aWFsaXplZApAQCAtMTE0OSw3ICsxMTcw LDggQEAgZXh0ZXJuIFRhYmxlU2NhbkRlc2MgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0 aW9uIHJlbGF0aW9uLAogICogQ2FsbGVyIG11c3QgaG9sZCBhIHN1aXRhYmxlIGxvY2sgb24gdGhl IHJlbGF0aW9uLgogICovCiBleHRlcm4gVGFibGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFy YWxsZWxfdGlkcmFuZ2UoUmVsYXRpb24gcmVsYXRpb24sCi0JCQkJCQkJCQkJCQkJICAgUGFyYWxs ZWxUYWJsZVNjYW5EZXNjIHBzY2FuKTsKKwkJCQkJCQkJCQkJCQkgICBQYXJhbGxlbFRhYmxlU2Nh bkRlc2MgcHNjYW4sCisJCQkJCQkJCQkJCQkJICAgdWludDMyIGZsYWdzKTsKIAogLyoKICAqIFJl c3RhcnQgYSBwYXJhbGxlbCBzY2FuLiAgQ2FsbCB0aGlzIGluIHRoZSBsZWFkZXIgcHJvY2Vzcy4g IENhbGxlciBpcwpAQCAtMTE3NSw4ICsxMTk3LDEwIEBAIHRhYmxlX3BhcmFsbGVsc2Nhbl9yZWlu aXRpYWxpemUoUmVsYXRpb24gcmVsLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAgKiBU dXBsZXMgZm9yIGFuIGluZGV4IHNjYW4gY2FuIHRoZW4gYmUgZmV0Y2hlZCB2aWEgdGFibGVfaW5k ZXhfZmV0Y2hfdHVwbGUoKS4KICAqLwogc3RhdGljIGlubGluZSBJbmRleEZldGNoVGFibGVEYXRh ICoKLXRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKFJlbGF0aW9uIHJlbCkKK3RhYmxlX2luZGV4X2Zl dGNoX2JlZ2luKFJlbGF0aW9uIHJlbCwgdWludDMyIGZsYWdzKQogeworCUFzc2VydCgoZmxhZ3Mg JiBTT19JTlRFUk5BTF9GTEFHUykgPT0gMCk7CisKIAkvKgogCSAqIFdlIGRvbid0IGFsbG93IHNj YW5zIHRvIGJlIHN0YXJ0ZWQgd2hpbGUgQ2hlY2tYaWRBbGl2ZSBpcyBzZXQsIGV4Y2VwdAogCSAq IHZpYSBzeXN0YWJsZV9iZWdpbnNjYW4oKSBldCBhbC4gIFNlZSBkZXRhaWxlZCBjb21tZW50cyBp biB4YWN0LmMgd2hlcmUKQEAgLTExODUsNyArMTIwOSw3IEBAIHRhYmxlX2luZGV4X2ZldGNoX2Jl Z2luKFJlbGF0aW9uIHJlbCkKIAlpZiAodW5saWtlbHkoVHJhbnNhY3Rpb25JZElzVmFsaWQoQ2hl Y2tYaWRBbGl2ZSkgJiYgIWJzeXNzY2FuKSkKIAkJZWxvZyhFUlJPUiwgInNjYW4gc3RhcnRlZCBk dXJpbmcgbG9naWNhbCBkZWNvZGluZyIpOwogCi0JcmV0dXJuIHJlbC0+cmRfdGFibGVhbS0+aW5k ZXhfZmV0Y2hfYmVnaW4ocmVsKTsKKwlyZXR1cm4gcmVsLT5yZF90YWJsZWFtLT5pbmRleF9mZXRj aF9iZWdpbihyZWwsIGZsYWdzKTsKIH0KIAogLyoKLS0gCjIuNDMuMAoK --000000000000114061064db81427 Content-Type: text/x-patch; charset="US-ASCII"; name="v44-0008-Pass-down-information-on-table-modification-to-s.patch" Content-Disposition: attachment; filename="v44-0008-Pass-down-information-on-table-modification-to-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn3q3ciu7 RnJvbSA4YmRkMmYwYTE1M2FiYzIzY2M3Yzg3ZWFiMDAyNTViOTVhMDU0NDZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MzMgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0NCAwOC8xMF0gUGFzcyBkb3duIGluZm9ybWF0aW9uIG9uIHRhYmxlIG1vZGlmaWNhdGlv biB0byBzY2FuCiBub2RlCgpQYXNzIGRvd24gaW5mb3JtYXRpb24gdG8gc2VxdWVudGlhbCBzY2Fu LCBpbmRleCBbb25seV0gc2NhbiwgYml0bWFwCnRhYmxlIHNjYW4sIHNhbXBsZSBzY2FuLCBhbmQg VElEIHJhbmdlIHNjYW4gbm9kZXMgb24gd2hldGhlciBvciBub3QgdGhlCnF1ZXJ5IG1vZGlmaWVz IHRoZSByZWxhdGlvbiBiZWluZyBzY2FubmVkLiBBIGxhdGVyIGNvbW1pdCB3aWxsIHVzZSB0aGlz CmluZm9ybWF0aW9uIHRvIHVwZGF0ZSB0aGUgVk0gZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nIG9u bHkgaWYgdGhlCnJlbGF0aW9uIGlzIG5vdCBtb2RpZmllZCBieSB0aGUgcXVlcnkuCgpBdXRob3I6 IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5 OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBBbmRyZXkg Qm9yb2RpbiA8eDRtbW1AeWFuZGV4LXRlYW0ucnU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5l dmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzQzNzlG REEzLTk0NDYtNEUyQy05QzE1LTMyRUZFOEQ0RjMxQiU0MHlhbmRleC10ZWFtLnJ1Ci0tLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMgICAgICAgICAgfCAgOCArKysrKysrKwogc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMgfCAgNiArKysrKy0KIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMgIHwgMTUgKysrKysrKysrKysrLS0t CiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgICAgICB8IDE4ICsrKysrKysr KysrKysrLS0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyAgICAgfCAg NSArKysrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgfCAxOCAr KysrKysrKysrKysrKystLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4u YyAgIHwgMTUgKysrKysrKysrKysrLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oICAg ICAgICAgICAgICB8ICAzICsrKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAgICAg ICAgICAgfCAgMiArKwogOSBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAxNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jCmluZGV4IDk4ODZhYjA2YjY5Li5mZjA1 ZWNhM2E2MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMKQEAgLTczNiw2ICs3MzYsMTQgQEAg RXhlY1JlbGF0aW9uSXNUYXJnZXRSZWxhdGlvbihFU3RhdGUgKmVzdGF0ZSwgSW5kZXggc2NhbnJl bGlkKQogCXJldHVybiBsaXN0X21lbWJlcl9pbnQoZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+cmVz dWx0UmVsYXRpb25zLCBzY2FucmVsaWQpOwogfQogCisvKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc2Nh biBub2RlJ3MgcmVsYXRpb24gaXMgbm90IG1vZGlmaWVkIGJ5IHRoZSBxdWVyeSAqLworYm9vbAor U2NhblJlbElzUmVhZE9ubHkoU2NhblN0YXRlICpzcykKK3sKKwlyZXR1cm4gIWxpc3RfbWVtYmVy X29pZChzcy0+cHMuc3RhdGUtPmVzX3BsYW5uZWRzdG10LT5tb2RpZmllZFJlbE9pZHMsCisJCQkJ CQkJUmVsYXRpb25HZXRSZWxpZChzcy0+c3NfY3VycmVudFJlbGF0aW9uKSk7Cit9CisKIC8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAqCQlFeGVjT3BlblNjYW5SZWxhdGlvbgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZUJpdG1hcEhlYXBzY2FuLmMKaW5kZXggMzI0ZTJiZWQyMmMuLmFlYzkyYzg2OGFjIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwpAQCAtMTQ0LDExICsxNDQs MTUgQEAgQml0bWFwVGFibGVTY2FuU2V0dXAoQml0bWFwSGVhcFNjYW5TdGF0ZSAqbm9kZSkKIAkg Ki8KIAlpZiAoIW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYykKIAl7CisJCXVpbnQzMgkJZmxh Z3MgPSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCVNPX0hJTlRfUkVMX1JFQURf T05MWSA6IDA7CisKIAkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KIAkJCXRhYmxlX2Jl Z2luc2Nhbl9ibShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJICAgbm9kZS0+ c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCSAgIDAsCi0JCQkJCQkJICAgTlVMTCwg MCk7CisJCQkJCQkJICAgTlVMTCwKKwkJCQkJCQkgICBmbGFncyk7CiAJfQogCiAJbm9kZS0+c3Mu c3NfY3VycmVudFNjYW5EZXNjLT5zdC5yc190Ym1pdGVyYXRvciA9IHRibWl0ZXJhdG9yOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKaW5kZXggZjczM2JlMDIyMGMuLmRl OWRiNDUzMjJjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5 c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKQEAg LTg1LDYgKzg1LDkgQEAgSW5kZXhPbmx5TmV4dChJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUpCiAK IAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNS ZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CisKIAkJ LyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgaW5kZXggb25seSBzY2FuIGlzIG5vdCBwYXJh bGxlbCwgb3IgaWYgd2UncmUKIAkJICogc2VyaWFsbHkgZXhlY3V0aW5nIGFuIGluZGV4IG9ubHkg c2NhbiB0aGF0IHdhcyBwbGFubmVkIHRvIGJlCkBAIC05Miw3ICs5NSw3IEBAIEluZGV4T25seU5l eHQoSW5kZXhPbmx5U2NhblN0YXRlICpub2RlKQogCQkgKi8KIAkJc2NhbmRlc2MgPSBpbmRleF9i ZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkgICBub2RlLT5p b3NzX1JlbGF0aW9uRGVzYywKLQkJCQkJCQkJICAgMCwJLyogZmxhZ3MgKi8KKwkJCQkJCQkJICAg ZmxhZ3MsCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgIG5vZGUt Pmlvc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aW9zc19OdW1TY2FuS2V5cywKQEAg LTc5NSw3ICs3OTgsMTAgQEAgRXhlY0luZGV4T25seVNjYW5Jbml0aWFsaXplRFNNKEluZGV4T25s eVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfSW5zdHJ1bWVudCwKIAkJCQkJ CQkJIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bU9yZGVy QnlLZXlzLAotCQkJCQkJCQkgcGlzY2FuLCAwKTsKKwkJCQkJCQkJIHBpc2NhbiwKKwkJCQkJCQkJ IFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJCQkJCQkgU09fSElOVF9SRUxfUkVB RF9PTkxZIDogMCk7CisKIAlub2RlLT5pb3NzX1NjYW5EZXNjLT54c193YW50X2l0dXAgPSB0cnVl OwogCW5vZGUtPmlvc3NfVk1CdWZmZXIgPSBJbnZhbGlkQnVmZmVyOwogCkBAIC04NjEsNyArODY3 LDEwIEBAIEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3Rh dGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJCQkJCSBub2Rl LT5pb3NzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1PcmRlckJ5S2V5cywK LQkJCQkJCQkJIHBpc2NhbiwgMCk7CisJCQkJCQkJCSBwaXNjYW4sCisJCQkJCQkJCSBTY2FuUmVs SXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6 IDApOworCiAJbm9kZS0+aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAogCS8q CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKaW5kZXggMWExMDFkZjQ5MmIuLjlkZjRh Njk5NTA0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC0xMDQsMTMgKzEw NCwxNiBAQCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAKIAlpZiAoc2NhbmRlc2Mg PT0gTlVMTCkKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+ c3MpID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CisKIAkJLyoKIAkJICogV2UgcmVh Y2ggaGVyZSBpZiB0aGUgaW5kZXggc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3JlCiAJ CSAqIHNlcmlhbGx5IGV4ZWN1dGluZyBhbiBpbmRleCBzY2FuIHRoYXQgd2FzIHBsYW5uZWQgdG8g YmUgcGFyYWxsZWwuCiAJCSAqLwogCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2RlLT5z cy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRlc2Ms Ci0JCQkJCQkJCSAgIDAsCS8qIGZsYWdzICovCisJCQkJCQkJCSAgIGZsYWdzLAogCQkJCQkJCQkg ICBlc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkgICBub2RlLT5pc3NfSW5zdHJ1bWVudCwK IAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLApAQCAtMjAxLDEzICsyMDQsMTYgQEAg SW5kZXhOZXh0V2l0aFJlb3JkZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAKIAlpZiAoc2NhbmRl c2MgPT0gTlVMTCkKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFkT25seSgmbm9k ZS0+c3MpID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CisKIAkJLyoKIAkJICogV2Ug cmVhY2ggaGVyZSBpZiB0aGUgaW5kZXggc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3Jl CiAJCSAqIHNlcmlhbGx5IGV4ZWN1dGluZyBhbiBpbmRleCBzY2FuIHRoYXQgd2FzIHBsYW5uZWQg dG8gYmUgcGFyYWxsZWwuCiAJCSAqLwogCQlzY2FuZGVzYyA9IGluZGV4X2JlZ2luc2Nhbihub2Rl LT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCSAgIG5vZGUtPmlzc19SZWxhdGlvbkRl c2MsCi0JCQkJCQkJCSAgIDAsCS8qIGZsYWdzICovCisJCQkJCQkJCSAgIGZsYWdzLAogCQkJCQkJ CQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkgICBub2RlLT5pc3NfSW5zdHJ1bWVu dCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLApAQCAtMTczMiw3ICsxNzM4LDkg QEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVEU00oSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJCQkJ CQkJCSBub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5 cywKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2Nhbiwg MCk7CisJCQkJCQkJCSBwaXNjYW4sCisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+ c3MpID8KKwkJCQkJCQkJIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDApOwogCiAJLyoKIAkgKiBJ ZiBubyBydW4tdGltZSBrZXlzIHRvIGNhbGN1bGF0ZSBvciB0aGV5IGFyZSByZWFkeSwgZ28gYWhl YWQgYW5kIHBhc3MKQEAgLTE3OTYsNyArMTgwNCw5IEBAIEV4ZWNJbmRleFNjYW5Jbml0aWFsaXpl V29ya2VyKEluZGV4U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgbm9kZS0+aXNzX0luc3RydW1l bnQsCiAJCQkJCQkJCSBub2RlLT5pc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pc3Nf TnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBwaXNjYW4sIDApOworCQkJCQkJCQkgcGlzY2FuLAor CQkJCQkJCQkgU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSBTT19ISU5U X1JFTF9SRUFEX09OTFkgOiAwKTsKIAogCS8qCiAJICogSWYgbm8gcnVuLXRpbWUga2V5cyB0byBj YWxjdWxhdGUgb3IgdGhleSBhcmUgcmVhZHksIGdvIGFoZWFkIGFuZCBwYXNzCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZVNhbXBsZXNjYW4uYwppbmRleCBjYzZiMjNhYmVlMC4uNzFjNzBlNWU1YzcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYwpAQCAtMjkyLDEzICsyOTIsMTYgQEAg dGFibGVzYW1wbGVfaW5pdChTYW1wbGVTY2FuU3RhdGUgKnNjYW5zdGF0ZSkKIAkvKiBOb3cgd2Ug Y2FuIGNyZWF0ZSBvciByZXNldCB0aGUgSGVhcFNjYW5EZXNjICovCiAJaWYgKHNjYW5zdGF0ZS0+ c3Muc3NfY3VycmVudFNjYW5EZXNjID09IE5VTEwpCiAJeworCQl1aW50MzIJCWZsYWdzID0gU2Nh blJlbElzUmVhZE9ubHkoJnNjYW5zdGF0ZS0+c3MpID8KKwkJCVNPX0hJTlRfUkVMX1JFQURfT05M WSA6IDA7CisKIAkJc2NhbnN0YXRlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQkJdGFibGVf YmVnaW5zY2FuX3NhbXBsaW5nKHNjYW5zdGF0ZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJ CQkJCQkJIHNjYW5zdGF0ZS0+c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkJIDAs IE5VTEwsCiAJCQkJCQkJCQkgc2NhbnN0YXRlLT51c2VfYnVsa3JlYWQsCiAJCQkJCQkJCQkgYWxs b3dfc3luYywKLQkJCQkJCQkJCSBzY2Fuc3RhdGUtPnVzZV9wYWdlbW9kZSwgMCk7CisJCQkJCQkJ CQkgc2NhbnN0YXRlLT51c2VfcGFnZW1vZGUsIGZsYWdzKTsKIAl9CiAJZWxzZQogCXsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlU2Vxc2Nhbi5jCmluZGV4IGMyZDliNzI5M2RlLi43OTQ3MGU2YjliNSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCkBAIC02NSwxMyArNjUsMTcgQEAgU2VxTmV4dChT ZXFTY2FuU3RhdGUgKm5vZGUpCiAKIAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJCXVpbnQz MgkJZmxhZ3MgPSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCVNPX0hJTlRfUkVM X1JFQURfT05MWSA6IDA7CisKIAkJLyoKIAkJICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgc2NhbiBp cyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3JlIHNlcmlhbGx5CiAJCSAqIGV4ZWN1dGluZyBhIHNj YW4gdGhhdCB3YXMgcGxhbm5lZCB0byBiZSBwYXJhbGxlbC4KIAkJICovCiAJCXNjYW5kZXNjID0g dGFibGVfYmVnaW5zY2FuKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJICAg ZXN0YXRlLT5lc19zbmFwc2hvdCwKLQkJCQkJCQkJICAgMCwgTlVMTCwgMCk7CisJCQkJCQkJCSAg IDAsIE5VTEwsIGZsYWdzKTsKKwogCQlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPSBzY2Fu ZGVzYzsKIAl9CiAKQEAgLTM2OCwxNCArMzcyLDE4IEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURT TShTZXFTY2FuU3RhdGUgKm5vZGUsCiB7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBub2RlLT5zcy5w cy5zdGF0ZTsKIAlQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW47CisJdWludDMyCQlmbGFncyA9 IFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQlTT19ISU5UX1JFTF9SRUFEX09OTFkg OiAwOwogCiAJcHNjYW4gPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywgbm9kZS0+cHNjYW5f bGVuKTsKIAl0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShub2RlLT5zcy5zc19jdXJyZW50 UmVsYXRpb24sCiAJCQkJCQkJCSAgcHNjYW4sCiAJCQkJCQkJCSAgZXN0YXRlLT5lc19zbmFwc2hv dCk7CiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25v ZGVfaWQsIHBzY2FuKTsKKwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxl X2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLCAw KTsKKwkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlv biwgcHNjYW4sCisJCQkJCQkJCSBmbGFncyk7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwNSw4ICs0 MTMsMTIgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplV29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9kZSwK IAkJCQkJCQlQYXJhbGxlbFdvcmtlckNvbnRleHQgKnB3Y3h0KQogewogCVBhcmFsbGVsVGFibGVT Y2FuRGVzYyBwc2NhbjsKKwl1aW50MzIJCWZsYWdzID0gU2NhblJlbElzUmVhZE9ubHkoJm5vZGUt PnNzKSA/CisJCVNPX0hJTlRfUkVMX1JFQURfT05MWSA6IDA7CiAKIAlwc2NhbiA9IHNobV90b2Nf bG9va3VwKHB3Y3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFsc2Up OwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJh bGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLCAwKTsKKwkJdGFibGVfYmVn aW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKKwkJCQkJCQkJIHBz Y2FuLAorCQkJCQkJCQkgZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdl c2Nhbi5jCmluZGV4IDk5NGY3MDk4OWJjLi40MjU3YWZkOTZlZCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVUaWRyYW5nZXNjYW4uYwpAQCAtMjQyLDEwICsyNDIsMTMgQEAgVGlkUmFuZ2VOZXh0 KFRpZFJhbmdlU2NhblN0YXRlICpub2RlKQogCiAJCWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCQl7 CisJCQl1aW50MzIJCWZsYWdzID0gU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJ U09fSElOVF9SRUxfUkVBRF9PTkxZIDogMDsKKwogCQkJc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNj YW5fdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkJCQkJZXN0 YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJCQkJCSZub2RlLT50cnNzX21pbnRpZCwKLQkJCQkJ CQkJCQkJCSZub2RlLT50cnNzX21heHRpZCwgMCk7CisJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19t YXh0aWQsIGZsYWdzKTsKIAkJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9IHNjYW5kZXNj OwogCQl9CiAJCWVsc2UKQEAgLTQ1MiwxNSArNDU1LDE4IEBAIEV4ZWNUaWRSYW5nZVNjYW5Jbml0 aWFsaXplRFNNKFRpZFJhbmdlU2NhblN0YXRlICpub2RlLCBQYXJhbGxlbENvbnRleHQgKnBjeHQp CiB7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBub2RlLT5zcy5wcy5zdGF0ZTsKIAlQYXJhbGxlbFRh YmxlU2NhbkRlc2MgcHNjYW47CisJdWludDMyCQlmbGFncyA9IFNjYW5SZWxJc1JlYWRPbmx5KCZu b2RlLT5zcykgPworCQlTT19ISU5UX1JFTF9SRUFEX09OTFkgOiAwOwogCiAJcHNjYW4gPSBzaG1f dG9jX2FsbG9jYXRlKHBjeHQtPnRvYywgbm9kZS0+dHJzc19wc2Nhbmxlbik7CiAJdGFibGVfcGFy YWxsZWxzY2FuX2luaXRpYWxpemUobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJ CQkgIHBzY2FuLAogCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25hcHNob3QpOwogCXNobV90b2NfaW5z ZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBwc2Nhbik7CisK IAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxs ZWxfdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAotCQkJCQkJCQkJCSAgcHNj YW4sIDApOworCQkJCQkJCQkJCSAgcHNjYW4sIGZsYWdzKTsKIH0KIAogLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAt NDkwLDkgKzQ5NiwxMiBAQCBFeGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6ZVdvcmtlcihUaWRSYW5n ZVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJIFBhcmFsbGVsV29ya2VyQ29udGV4dCAqcHdjeHQp CiB7CiAJUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuOworCXVpbnQzMgkJZmxhZ3MgPSBTY2Fu UmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJU09fSElOVF9SRUxfUkVBRF9PTkxZIDogMDsK IAogCXBzY2FuID0gc2htX3RvY19sb29rdXAocHdjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+ cGxhbl9ub2RlX2lkLCBmYWxzZSk7CisKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQog CQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJl bGF0aW9uLAotCQkJCQkJCQkJCSAgcHNjYW4sIDApOworCQkJCQkJCQkJCSAgcHNjYW4sIGZsYWdz KTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggYi9zcmMvaW5j bHVkZS9hY2Nlc3MvdGFibGVhbS5oCmluZGV4IDgzNTdkMDVkODNiLi40ODdlMzgyOTJmYSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvdGFibGVhbS5oCkBAIC02Myw2ICs2Myw5IEBAIHR5cGVkZWYgZW51bSBTY2FuT3B0aW9u cwogCiAJLyogdW5yZWdpc3RlciBzbmFwc2hvdCBhdCBzY2FuIGVuZD8gKi8KIAlTT19URU1QX1NO QVBTSE9UID0gMSA8PCA5LAorCisJLyogc2V0IGlmIHRoZSBxdWVyeSBkb2Vzbid0IG1vZGlmeSB0 aGUgcmVsYXRpb24gKi8KKwlTT19ISU5UX1JFTF9SRUFEX09OTFkgPSAxIDw8IDEwLAogfQkJCVNj YW5PcHRpb25zOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0 b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXggMDdmNGIxZjc0OTAu Ljc5NzlhMTdlNGVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5o CisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKQEAgLTY5MCw2ICs2OTAsOCBA QCBleHRlcm4gdm9pZCBFeGVjQ3JlYXRlU2NhblNsb3RGcm9tT3V0ZXJQbGFuKEVTdGF0ZSAqZXN0 YXRlLAogCiBleHRlcm4gYm9vbCBFeGVjUmVsYXRpb25Jc1RhcmdldFJlbGF0aW9uKEVTdGF0ZSAq ZXN0YXRlLCBJbmRleCBzY2FucmVsaWQpOwogCitleHRlcm4gYm9vbCBTY2FuUmVsSXNSZWFkT25s eShTY2FuU3RhdGUgKnNzKTsKKwogZXh0ZXJuIFJlbGF0aW9uIEV4ZWNPcGVuU2NhblJlbGF0aW9u KEVTdGF0ZSAqZXN0YXRlLCBJbmRleCBzY2FucmVsaWQsIGludCBlZmxhZ3MpOwogCiBleHRlcm4g dm9pZCBFeGVjSW5pdFJhbmdlVGFibGUoRVN0YXRlICplc3RhdGUsIExpc3QgKnJhbmdlVGFibGUs IExpc3QgKnBlcm1JbmZvcywKLS0gCjIuNDMuMAoK --000000000000114061064db81427 Content-Type: text/x-patch; charset="US-ASCII"; name="v44-0009-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v44-0009-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn3q3fh18 RnJvbSAyNzNhOGQzMmVjNDZhYzM3Mjg2YjE5NTJmMTY0YjYyOTBjZWU2YzY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IEZlYiAyMDI2IDE2OjMzOjQwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDQgMDkvMTBdIEFsbG93IG9uLWFjY2VzcyBwcnVuaW5nIHRvIHNldCBwYWdlcyBhbGwt dmlzaWJsZQoKTWFueSBxdWVyaWVzIGRvIG5vdCBtb2RpZnkgdGhlIHVuZGVybHlpbmcgcmVsYXRp b24uIEZvciBzdWNoIHF1ZXJpZXMsIGlmCm9uLWFjY2VzcyBwcnVuaW5nIG9jY3VycyBkdXJpbmcg dGhlIHNjYW4sIHdlIGNhbiBjaGVjayB3aGV0aGVyIHRoZSBwYWdlCmhhcyBiZWNvbWUgYWxsLXZp c2libGUgYW5kIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAgYWNjb3JkaW5nbHkuClByZXZpb3Vz bHksIG9ubHkgdmFjdXVtIGFuZCBDT1BZIEZSRUVaRSBtYXJrZWQgcGFnZXMgYXMgYWxsLXZpc2li bGUgb3IKYWxsLWZyb3plbi4KClRoaXMgY29tbWl0IGltcGxlbWVudHMgb24tYWNjZXNzIFZNIHNl dHRpbmcgZm9yIHNlcXVlbnRpYWwgc2NhbnMgYXMgd2VsbAphcyBmb3IgdGhlIHVuZGVybHlpbmcg aGVhcCByZWxhdGlvbiBpbiBpbmRleCBzY2FucyBhbmQgYml0bWFwIGhlYXAKc2NhbnMuCgpTZXR0 aW5nIHRoZSB2aXNpYmlsaXR5IG1hcCBvbi1hY2Nlc3MgY2FuIGF2b2lkIHdyaXRlIGFtcGxpZmlj YXRpb24KY2F1c2VkIGJ5IHZhY3V1bSBsYXRlciBuZWVkaW5nIHRvIHNldCB0aGUgcGFnZSBhbGwt dmlzaWJsZSwgdHJpZ2dlciBhCndyaXRlIGFuZCBwb3RlbnRpYWxseSBGUEkuIEl0IGFsc28gYWxs b3dzIG1vcmUgZnJlcXVlbnQgaW5kZXgtb25seQpzY2Fucywgc2luY2UgdGhleSByZXF1aXJlIHBh Z2VzIHRvIGJlIG1hcmtlZCBhbGwtdmlzaWJsZSBpbiB0aGUgVk0uCgpBdXRob3I6IE1lbGFuaWUg UGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXMg RnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxy ZXNoa2VraXJpbGxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFv QGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9a TXc2TnBkX3FtMktNJTJCRndRM2NNT014MURoM1ZNaHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFp bC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgIHwgIDMg Ky0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgfCAgNiArKy0tCiBz cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgICAgIHwgNDYgKysrKysrKysrKysr KysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgIHwg IDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAgICAgICAgfCAxNiArKysr KysrLS0KIDUgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCAwNDRmMzg1ZTQ3Ny4uZGJkZjY1MjFjNDIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC02MzMsNyArNjMzLDggQEAgaGVhcF9wcmVw YXJlX3BhZ2VzY2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4pCiAJLyoKIAkgKiBQcnVuZSBhbmQgcmVw YWlyIGZyYWdtZW50YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3NzaWJsZS4KIAkgKi8K LQloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQsIGJ1ZmZlciwgJnNjYW4t PnJzX3ZtYnVmZmVyKTsKKwloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQs IGJ1ZmZlciwgJnNjYW4tPnJzX3ZtYnVmZmVyLAorCQkJCQkJKHNzY2FuLT5yc19mbGFncyAmIFNP X0hJTlRfUkVMX1JFQURfT05MWSkpOwogCiAJLyoKIAkgKiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9j ayBvbiB0aGUgYnVmZmVyIGNvbnRlbnQgd2hpbGUgZXhhbWluaW5nIHR1cGxlCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwppbmRleCA2NjcyNmIyMmRlNi4uNjUxZWZhMDEy N2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtMTQ4LDcg KzE0OCw4IEBAIGhlYXBhbV9pbmRleF9mZXRjaF90dXBsZShzdHJ1Y3QgSW5kZXhGZXRjaFRhYmxl RGF0YSAqc2NhbiwKIAkJICovCiAJCWlmIChwcmV2X2J1ZiAhPSBoc2Nhbi0+eHNfY2J1ZikKIAkJ CWhlYXBfcGFnZV9wcnVuZV9vcHQoaHNjYW4tPnhzX2Jhc2UucmVsLCBoc2Nhbi0+eHNfY2J1ZiwK LQkJCQkJCQkJJmhzY2FuLT54c192bWJ1ZmZlcik7CisJCQkJCQkJCSZoc2Nhbi0+eHNfdm1idWZm ZXIsCisJCQkJCQkJCShoc2Nhbi0+eHNfYmFzZS5mbGFncyAmIFNPX0hJTlRfUkVMX1JFQURfT05M WSkpOwogCX0KIAogCS8qIE9idGFpbiBzaGFyZS1sb2NrIG9uIHRoZSBidWZmZXIgc28gd2UgY2Fu IGV4YW1pbmUgdmlzaWJpbGl0eSAqLwpAQCAtMjU0NSw3ICsyNTQ2LDggQEAgQml0bWFwSGVhcFNj YW5OZXh0QmxvY2soVGFibGVTY2FuRGVzYyBzY2FuLAogCS8qCiAJICogUHJ1bmUgYW5kIHJlcGFp ciBmcmFnbWVudGF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZSwgaWYgcG9zc2libGUuCiAJICovCi0J aGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19yZCwgYnVmZmVyLCAmaHNjYW4tPnJzX3ZtYnVm ZmVyKTsKKwloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIsICZoc2Nhbi0+ cnNfdm1idWZmZXIsCisJCQkJCQlzY2FuLT5yc19mbGFncyAmIFNPX0hJTlRfUkVMX1JFQURfT05M WSk7CiAKIAkvKgogCSAqIFdlIG11c3QgaG9sZCBzaGFyZSBsb2NrIG9uIHRoZSBidWZmZXIgY29u dGVudCB3aGlsZSBleGFtaW5pbmcgdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMK aW5kZXggZmM1MzQ1ZTFkZmYuLjM2MjYwODk3NTAzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYwpAQCAtNDQsNiArNDQsOCBAQCB0eXBlZGVmIHN0cnVjdAogCWJvb2wJCW1hcmtfdW51 c2VkX25vdzsKIAkvKiB3aGV0aGVyIHRvIGF0dGVtcHQgZnJlZXppbmcgdHVwbGVzICovCiAJYm9v bAkJYXR0ZW1wdF9mcmVlemU7CisJLyogd2hldGhlciB0byBhdHRlbXB0IHNldHRpbmcgdGhlIFZN ICovCisJYm9vbAkJYXR0ZW1wdF9zZXRfdm07CiAJc3RydWN0IFZhY3V1bUN1dG9mZnMgKmN1dG9m ZnM7CiAJUmVsYXRpb24JcmVsYXRpb247CiAKQEAgLTIzMiw3ICsyMzQsOCBAQCBzdGF0aWMgdm9p ZCBwYWdlX3ZlcmlmeV9yZWRpcmVjdHMoUGFnZSBwYWdlKTsKIAogc3RhdGljIGJvb2wgaGVhcF9w YWdlX3dpbGxfZnJlZXplKGJvb2wgZGlkX3R1cGxlX2hpbnRfZnBpLCBib29sIGRvX3BydW5lLCBi b29sIGRvX2hpbnRfcHJ1bmUsCiAJCQkJCQkJCSAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSk7Ci1zdGF0 aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVS ZWFzb24gcmVhc29uKTsKK3N0YXRpYyBib29sIGhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0 YXRlICpwcnN0YXRlLCBQcnVuZVJlYXNvbiByZWFzb24sCisJCQkJCQkJCSAgYm9vbCBkb19wcnVu ZSwgYm9vbCBkb19mcmVlemUpOwogCiAKIC8qCkBAIC0yNTMsNyArMjU2LDggQEAgc3RhdGljIGJv b2wgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29u IHJlYXNvbik7CiAgKiB1bnBpbm5pbmcgKnZtYnVmZmVyLgogICovCiB2b2lkCi1oZWFwX3BhZ2Vf cHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLCBCdWZmZXIgKnZtYnVm ZmVyKQoraGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZl ciwgQnVmZmVyICp2bWJ1ZmZlciwKKwkJCQkJYm9vbCByZWxfcmVhZF9vbmx5KQogewogCVBhZ2UJ CXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAJVHJhbnNhY3Rpb25JZCBwcnVuZV94aWQ7 CkBAIC0zMzYsNiArMzQwLDggQEAgaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlv biwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKIAkJCSAqIGN1cnJlbnQgaW1wbGVt ZW50YXRpb24uCiAJCQkgKi8KIAkJCXBhcmFtcy5vcHRpb25zID0gSEVBUF9QQUdFX1BSVU5FX0FM TE9XX0ZBU1RfUEFUSDsKKwkJCWlmIChyZWxfcmVhZF9vbmx5KQorCQkJCXBhcmFtcy5vcHRpb25z IHw9IEhFQVBfUEFHRV9QUlVORV9TRVRfVk07CiAKIAkJCWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKCZwYXJhbXMsICZwcmVzdWx0LCAmZHVtbXlfb2ZmX2xvYywKIAkJCQkJCQkJCSAgIE5VTEws IE5VTEwpOwpAQCAtMzkyLDYgKzM5OCw3IEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6 ZVBhcmFtcyAqcGFyYW1zLAogCS8qIGN1dG9mZnMgbXVzdCBiZSBwcm92aWRlZCBpZiB3ZSB3aWxs IGF0dGVtcHQgZnJlZXppbmcgKi8KIAlBc3NlcnQoIShwYXJhbXMtPm9wdGlvbnMgJiBIRUFQX1BB R0VfUFJVTkVfRlJFRVpFKSB8fCBwYXJhbXMtPmN1dG9mZnMpOwogCXByc3RhdGUtPmF0dGVtcHRf ZnJlZXplID0gKHBhcmFtcy0+b3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUpICE9IDA7 CisJcHJzdGF0ZS0+YXR0ZW1wdF9zZXRfdm0gPSAocGFyYW1zLT5vcHRpb25zICYgSEVBUF9QQUdF X1BSVU5FX1NFVF9WTSkgIT0gMDsKIAlwcnN0YXRlLT5jdXRvZmZzID0gcGFyYW1zLT5jdXRvZmZz OwogCXByc3RhdGUtPnJlbGF0aW9uID0gcGFyYW1zLT5yZWxhdGlvbjsKIAlwcnN0YXRlLT5ibG9j ayA9IEJ1ZmZlckdldEJsb2NrTnVtYmVyKHBhcmFtcy0+YnVmZmVyKTsKQEAgLTQ2MSw5ICs0Njgs OCBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkgKiBX ZSB0cmFjayB3aGV0aGVyIHRoZSBwYWdlIHdpbGwgYmUgYWxsLXZpc2libGUvYWxsLWZyb3plbiBh dCB0aGUgZW5kIG9mCiAJICogcHJ1bmluZyBhbmQgZnJlZXppbmcuIFdoaWxlIGV4YW1pbmluZyB0 dXBsZSB2aXNpYmlsaXR5LCB3ZSdsbCBzZXQKIAkgKiBzZXRfYWxsX3Zpc2libGUgdG8gZmFsc2Ug aWYgdGhlcmUgYXJlIHR1cGxlcyBvbiB0aGUgcGFnZSBub3QgdmlzaWJsZSB0bwotCSAqIGFsbCBy dW5uaW5nIGFuZCBmdXR1cmUgdHJhbnNhY3Rpb25zLiBzZXRfYWxsX3Zpc2libGUgaXMgYWx3YXlz Ci0JICogbWFpbnRhaW5lZCBidXQgb25seSBWQUNVVU0gd2lsbCBzZXQgdGhlIFZNIGlmIHRoZSBw YWdlIGVuZHMgdXAgYmVpbmcKLQkgKiBhbGwtdmlzaWJsZS4KKwkgKiBhbGwgcnVubmluZyBhbmQg ZnV0dXJlIHRyYW5zYWN0aW9ucy4gSWYgZW5hYmxlZCBmb3IgdGhpcyBzY2FuLCB3ZSB3aWxsCisJ ICogc2V0IHRoZSBWTSBpZiB0aGUgcGFnZSBlbmRzIHVwIGJlaW5nIGFsbC12aXNpYmxlLgogCSAq CiAJICogV2UgYWxzbyBrZWVwIHRyYWNrIG9mIHRoZSBuZXdlc3QgbGl2ZSBYSUQsIHdoaWNoIGlz IHVzZWQgdG8gY2FsY3VsYXRlCiAJICogdGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24gZm9y IGEgV0FMIHJlY29yZCBzZXR0aW5nIHRoZSBWTS4KQEAgLTkyMCwyMSArOTI2LDM3IEBAIGhlYXBf cGFnZV9maXhfdm1fY29ycnVwdGlvbihQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIg b2ZmbnVtLAogICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBzZXQgdGhlIFZNIGJp dHMgb3IgcGFnZS1sZXZlbCB2aXNpYmlsaXR5CiAgKiBoaW50LCBQRF9BTExfVklTSUJMRS4KICAq CisgKiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgb25seSBhZnRlciBkb19mcmVlemUgaGFzIGJlZW4g ZGVjaWRlZCAoYW5kIGRvX3BydW5lCisgKiBoYXMgYmVlbiBzZXQpLCBhcyB0aGVzZSBmYWN0b3Ig aW50byBvdXIgaGV1cmlzdGljLWJhc2VkIGRlY2lzaW9uLgorICoKICAqIFJldHVybnMgdHJ1ZSBp ZiBvbmUgb3IgYm90aCBWTSBiaXRzIHNob3VsZCBiZSBzZXQgYW5kIGZhbHNlIG90aGVyd2lzZS4K ICAqLwogc3RhdGljIGJvb2wKLWhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpwcnN0 YXRlLCBQcnVuZVJlYXNvbiByZWFzb24pCitoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVhc29uLAorCQkJCQkgIGJvb2wgZG9fcHJ1bmUsIGJv b2wgZG9fZnJlZXplKQogewotCS8qCi0JICogVGhvdWdoIG9uLWFjY2VzcyBwcnVuaW5nIG1haW50 YWlucyBwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUsIHdlIGRvbid0Ci0JICogc2V0IHRoZSBWTSBv bi1hY2Nlc3MgZm9yIG5vdy4KLQkgKi8KLQlpZiAocmVhc29uID09IFBSVU5FX09OX0FDQ0VTUykK KwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfc2V0X3ZtKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlpZiAo IXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSkKIAkJcmV0dXJuIGZhbHNlOwogCisJLyoKKwkgKiBJ ZiB0aGlzIGlzIGFuIG9uLWFjY2VzcyBjYWxsIGFuZCB3ZSdyZSBub3QgYWN0dWFsbHkgcHJ1bmlu ZywgYXZvaWQKKwkgKiBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5IG1hcCBpZiBpdCB3b3VsZCBuZXds eSBkaXJ0eSB0aGUgaGVhcCBwYWdlIG9yLCBpZgorCSAqIHRoZSBwYWdlIGlzIGFscmVhZHkgZGly dHksIGlmIGRvaW5nIHNvIHdvdWxkIHJlcXVpcmUgaW5jbHVkaW5nIGEKKwkgKiBmdWxsLXBhZ2Ug aW1hZ2UgKEZQSSkgb2YgdGhlIGhlYXAgcGFnZSBpbiB0aGUgV0FMLiBUaGlzIHNpdHVhdGlvbgor CSAqIHNob3VsZCBiZSByYXJlLCBhcyBvbi1hY2Nlc3MgcHJ1bmluZyBpcyBvbmx5IGF0dGVtcHRl ZCB3aGVuCisJICogcGRfcHJ1bmVfeGlkIGlzIHZhbGlkLgorCSAqLworCWlmIChyZWFzb24gPT0g UFJVTkVfT05fQUNDRVNTICYmICFkb19wcnVuZSAmJiAhZG9fZnJlZXplICYmCisJCSghQnVmZmVy SXNEaXJ0eShwcnN0YXRlLT5idWZmZXIpIHx8IFhMb2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKHBy c3RhdGUtPmJ1ZmZlcikpKQorCXsKKwkJcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlID0gZmFsc2U7 CisJCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7CisJCXJldHVybiBmYWxzZTsKKwl9 CisKIAlwcnN0YXRlLT5uZXdfdm1iaXRzID0gVklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKIAog CWlmIChwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbikKQEAgLTExNjcsNyArMTE4OSw3IEBAIGhlYXBf cGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJQXNzZXJ0 KCFwcnN0YXRlLnNldF9hbGxfZnJvemVuIHx8IHByc3RhdGUuc2V0X2FsbF92aXNpYmxlKTsKIAlB c3NlcnQoIXByc3RhdGUuc2V0X2FsbF92aXNpYmxlIHx8IChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9 PSAwKSk7CiAKLQlkb19zZXRfdm0gPSBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oJnByc3RhdGUsIHBh cmFtcy0+cmVhc29uKTsKKwlkb19zZXRfdm0gPSBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oJnByc3Rh dGUsIHBhcmFtcy0+cmVhc29uLCBkb19wcnVuZSwgZG9fZnJlZXplKTsKIAogCS8qCiAJICogbmV3 X3ZtYml0cyBzaG91bGQgYmUgMCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBwYWdl IGlzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggZjY5OGMyZDg5OWIuLjI0 MDAxYjI3Mzg3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0yMDIxLDcg KzIwMjEsNyBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkuYnVmZmVy ID0gYnVmLAogCQkudm1idWZmZXIgPSB2bWJ1ZmZlciwKIAkJLnJlYXNvbiA9IFBSVU5FX1ZBQ1VV TV9TQ0FOLAotCQkub3B0aW9ucyA9IEhFQVBfUEFHRV9QUlVORV9GUkVFWkUsCisJCS5vcHRpb25z ID0gSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSB8IEhFQVBfUEFHRV9QUlVORV9TRVRfVk0sCiAJCS52 aXN0ZXN0ID0gdmFjcmVsLT52aXN0ZXN0LAogCQkuY3V0b2ZmcyA9ICZ2YWNyZWwtPmN1dG9mZnMs CiAJfTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCA0N2NiZjJhMjBjZi4uYmZjN2Q0ODI4MjcgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtLmgKQEAgLTQzLDYgKzQzLDcgQEAKICNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX01B UktfVU5VU0VEX05PVwkJKDEgPDwgMCkKICNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRQkJ CQkoMSA8PCAxKQogI2RlZmluZSBIRUFQX1BBR0VfUFJVTkVfQUxMT1dfRkFTVF9QQVRICQkoMSA8 PCAyKQorI2RlZmluZSBIRUFQX1BBR0VfUFJVTkVfU0VUX1ZNCQkJCSgxIDw8IDMpCiAKIHR5cGVk ZWYgc3RydWN0IEJ1bGtJbnNlcnRTdGF0ZURhdGEgKkJ1bGtJbnNlcnRTdGF0ZTsKIHR5cGVkZWYg c3RydWN0IEdsb2JhbFZpc1N0YXRlIEdsb2JhbFZpc1N0YXRlOwpAQCAtOTUsNyArOTYsMTIgQEAg dHlwZWRlZiBzdHJ1Y3QgSGVhcFNjYW5EZXNjRGF0YQogCSAqLwogCVBhcmFsbGVsQmxvY2tUYWJs ZVNjYW5Xb3JrZXJEYXRhICpyc19wYXJhbGxlbHdvcmtlcmRhdGE7CiAKLQkvKiBDdXJyZW50IGhl YXAgYmxvY2sncyBjb3JyZXNwb25kaW5nIHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkgbWFwICovCisJ LyoKKwkgKiBGb3Igc2VxdWVudGlhbCBzY2FucywgYml0bWFwIGhlYXAgc2NhbnMsIFRJRCByYW5n ZSBzY2FucywgYW5kIHNhbXBsZQorCSAqIHNjYW5zLiBUaGUgY3VycmVudCBoZWFwIGJsb2NrJ3Mg Y29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmlsaXR5CisJICogbWFwLiBJZiB0aGUgcmVs YXRpb24gaXMgbm90IG1vZGlmaWVkIGJ5IHRoZSBxdWVyeSwgb24tYWNjZXNzIHBydW5pbmcKKwkg KiBtYXkgc2V0IHRoZSBWTS4KKwkgKi8KIAlCdWZmZXIJCXJzX3ZtYnVmZmVyOwogCiAJLyogdGhl c2UgZmllbGRzIG9ubHkgdXNlZCBpbiBwYWdlLWF0LWEtdGltZSBtb2RlIGFuZCBmb3IgYml0bWFw IHNjYW5zICovCkBAIC0xMjYsNyArMTMyLDExIEBAIHR5cGVkZWYgc3RydWN0IEluZGV4RmV0Y2hI ZWFwRGF0YQogCSAqLwogCUJ1ZmZlcgkJeHNfY2J1ZjsKIAotCS8qIEN1cnJlbnQgaGVhcCBibG9j aydzIGNvcnJlc3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgKi8KKwkvKgorCSAq IEN1cnJlbnQgaGVhcCBibG9jaydzIGNvcnJlc3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0 eSBtYXAuIEZvcgorCSAqIGluZGV4IHNjYW5zIHRoYXQgZG8gbm90IG1vZGlmeSB0aGUgdW5kZXJs eWluZyBoZWFwIHRhYmxlLCBvbi1hY2Nlc3MKKwkgKiBwcnVuaW5nIG1heSBzZXQgdGhlIFZNIG9u LWFjY2Vzcy4KKwkgKi8KIAlCdWZmZXIJCXhzX3ZtYnVmZmVyOwogfSBJbmRleEZldGNoSGVhcERh dGE7CiAKQEAgLTQzMSw3ICs0NDEsNyBAQCBleHRlcm4gVHJhbnNhY3Rpb25JZCBoZWFwX2luZGV4 X2RlbGV0ZV90dXBsZXMoUmVsYXRpb24gcmVsLAogCiAvKiBpbiBoZWFwL3BydW5laGVhcC5jICov CiBleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZm ZXIgYnVmZmVyLAotCQkJCQkJCQlCdWZmZXIgKnZtYnVmZmVyKTsKKwkJCQkJCQkJQnVmZmVyICp2 bWJ1ZmZlciwgYm9vbCByZWxfcmVhZF9vbmx5KTsKIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCQkJCQkJCQkgICBQcnVu ZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKIAkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqb2ZmX2xv YywKLS0gCjIuNDMuMAoK --000000000000114061064db81427 Content-Type: text/x-patch; charset="UTF-8"; name="v44-0010-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v44-0010-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn3q3hrr9 RnJvbSAwNTI3OWFiYWMzYmY2MjM4ODdjMWU0ODgzZDM2MDExNmFkNTUzOGIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDQgMTAvMTBdIFNldCBwZF9wcnVuZV94aWQgb24gaW5zZXJ0Ck1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpOb3cgdGhhdCB2aXNpYmlsaXR5IG1hcCAoVk0pIHVwZGF0ZXMg Y2FuIG9jY3VyIGR1cmluZyByZWFkLW9ubHkgcXVlcmllcywKaXQgbWFrZXMgc2Vuc2UgdG8gYWxz byBzZXQgdGhlIHBhZ2XigJlzIHBkX3BydW5lX3hpZCBoaW50IGR1cmluZyBpbnNlcnRzCmFuZCBv biB0aGUgbmV3IHBhZ2UgZHVyaW5nIHVwZGF0ZXMuCgpUaGlzIGVuYWJsZXMgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoKSB0byBzZXQgdGhlIFZNIGFsbC12aXNpYmxlCmFmdGVyIGEgcGFnZSBp cyBmaWxsZWQgd2l0aCBuZXdseSBpbnNlcnRlZCB0dXBsZXMgdGhlIGZpcnN0IHRpbWUgaXQgaXMK cmVhZC4gVGhpcyBtZWFucyB0aGUgcGFnZSB3aWxsIGdldCBzZXQgYWxsLXZpc2libGUgd2hlbiBp dCBpcyBzdGlsbCBpbgpzaGFyZWQgYnVmZmVycyBhbmQgYXZvaWQgcG90ZW50aWFsIEkvTyBhbXBs aWZpY2F0aW9uIHdoZW4gdmFjdXVtIGxhdGVyCmhhcyB0byBzY2FuIHRoZSBwYWdlIGFuZCBzZXQg aXQgYWxsLXZpc2libGUuIEl0IGFsc28gZW5hYmxlcyBpbmRleC1vbmx5CnNjYW5zIG9mIG5ld2x5 IGluc2VydGVkIGRhdGEgbXVjaCBzb29uZXIuCgpUaGlzIGNoYW5nZSBhbHNvIGFkZHJlc3NlcyBh IGxvbmctc3RhbmRpbmcgbm90ZSBpbiBoZWFwX2luc2VydCgpIGFuZApoZWFwX211bHRpX2luc2Vy dCgpLCB3aGljaCBvYnNlcnZlZCB0aGF0IHNldHRpbmcgcGRfcHJ1bmVfeGlkIHdvdWxkCmhlbHAg Y2xlYW4gdXAgYWJvcnRlZCBpbnNlcnRpb25zIHNvb25lci4gV2l0aG91dCBpdCwgc3VjaCB0dXBs ZXMgbWlnaHQKbGluZ2VyIHVudGlsIFZBQ1VVTSwgd2hlcmVhcyBub3cgdGhleSBjYW4gYmUgcHJ1 bmVkIGVhcmxpZXIuCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL2ZsYXQvQ0FBS1J1X1pNdzZOcGRfcW0yS00lMkJGd1EzY01P TXgxRGgzVk1ocDgtVjdTT0x4ZEs5LWclNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgfCA0MCArKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgfCAxOSArKysrKysrKysr KystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgIHwgMTggKysrKysrLS0t LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggZGJkZjY1MjFjNDIuLmJhMTFiYmMwM2E1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtMjE1Niw2ICsyMTU2LDcgQEAgaGVhcF9pbnNl cnQoUmVsYXRpb24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXAsIENvbW1hbmRJZCBjaWQsCiAJVHJh bnNhY3Rpb25JZCB4aWQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25JZCgpOwogCUhlYXBUdXBsZQlo ZWFwdHVwOwogCUJ1ZmZlcgkJYnVmZmVyOworCVBhZ2UJCXBhZ2U7CiAJQnVmZmVyCQl2bWJ1ZmZl ciA9IEludmFsaWRCdWZmZXI7CiAJYm9vbAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IGZhbHNlOwog CkBAIC0yMTgyLDYgKzIxODMsOCBAQCBoZWFwX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgSGVh cFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAkJCQkJCQkJCSAgICZ2bWJ1ZmZlciwgTlVMTCwK IAkJCQkJCQkJCSAgIDApOwogCisJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKKwogCS8q CiAJICogV2UncmUgYWJvdXQgdG8gZG8gdGhlIGFjdHVhbCBpbnNlcnQgLS0gYnV0IGNoZWNrIGZv ciBjb25mbGljdCBmaXJzdCwgdG8KIAkgKiBhdm9pZCBwb3NzaWJseSBoYXZpbmcgdG8gcm9sbCBi YWNrIHdvcmsgd2UndmUganVzdCBkb25lLgpAQCAtMjIwNSwyNSArMjIwOCwzMCBAQCBoZWFwX2lu c2VydChSZWxhdGlvbiByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAlS ZWxhdGlvblB1dEhlYXBUdXBsZShyZWxhdGlvbiwgYnVmZmVyLCBoZWFwdHVwLAogCQkJCQkJIChv cHRpb25zICYgSEVBUF9JTlNFUlRfU1BFQ1VMQVRJVkUpICE9IDApOwogCi0JaWYgKFBhZ2VJc0Fs bFZpc2libGUoQnVmZmVyR2V0UGFnZShidWZmZXIpKSkKKwlpZiAoUGFnZUlzQWxsVmlzaWJsZShw YWdlKSkKIAl7CiAJCWFsbF92aXNpYmxlX2NsZWFyZWQgPSB0cnVlOwotCQlQYWdlQ2xlYXJBbGxW aXNpYmxlKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSk7CisJCVBhZ2VDbGVhckFsbFZpc2libGUocGFn ZSk7CiAJCXZpc2liaWxpdHltYXBfY2xlYXIocmVsYXRpb24sCiAJCQkJCQkJSXRlbVBvaW50ZXJH ZXRCbG9ja051bWJlcigmKGhlYXB0dXAtPnRfc2VsZikpLAogCQkJCQkJCXZtYnVmZmVyLCBWSVNJ QklMSVRZTUFQX1ZBTElEX0JJVFMpOwogCX0KIAogCS8qCi0JICogWFhYIFNob3VsZCB3ZSBzZXQg UGFnZVNldFBydW5hYmxlIG9uIHRoaXMgcGFnZSA/CisJICogU2V0IHBkX3BydW5lX3hpZCB0byB0 cmlnZ2VyIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgb25jZSB0aGUgcGFnZQorCSAqIGlz IGZ1bGwgc28gdGhhdCB3ZSBjYW4gc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlIGluIHRoZSBWTSBv biB0aGUgbmV4dAorCSAqIHBhZ2UgYWNjZXNzLgogCSAqCi0JICogVGhlIGluc2VydGluZyB0cmFu c2FjdGlvbiBtYXkgZXZlbnR1YWxseSBhYm9ydCB0aHVzIG1ha2luZyB0aGlzIHR1cGxlCi0JICog REVBRCBhbmQgaGVuY2UgYXZhaWxhYmxlIGZvciBwcnVuaW5nLiBUaG91Z2ggd2UgZG9uJ3Qgd2Fu dCB0byBvcHRpbWl6ZQotCSAqIGZvciBhYm9ydHMsIGlmIG5vIG90aGVyIHR1cGxlIGluIHRoaXMg cGFnZSBpcyBVUERBVEVkL0RFTEVURWQsIHRoZQotCSAqIGFib3J0ZWQgdHVwbGUgd2lsbCBuZXZl ciBiZSBwcnVuZWQgdW50aWwgbmV4dCB2YWN1dW0gaXMgdHJpZ2dlcmVkLgorCSAqIFNldHRpbmcg cGRfcHJ1bmVfeGlkIGlzIGFsc28gaGFuZHkgaWYgdGhlIGluc2VydGluZyB0cmFuc2FjdGlvbgor CSAqIGV2ZW50dWFsbHkgYWJvcnRzIG1ha2luZyB0aGlzIHR1cGxlIERFQUQgYW5kIGhlbmNlIGF2 YWlsYWJsZSBmb3IKKwkgKiBwcnVuaW5nLiBJZiBubyBvdGhlciB0dXBsZSBpbiB0aGlzIHBhZ2Ug aXMgVVBEQVRFZC9ERUxFVEVkLCB0aGUgYWJvcnRlZAorCSAqIHR1cGxlIHdvdWxkIG5ldmVyIG90 aGVyd2lzZSBiZSBwcnVuZWQgdW50aWwgbmV4dCB2YWN1dW0gaXMgdHJpZ2dlcmVkLgogCSAqCi0J ICogSWYgeW91IGRvIGFkZCBQYWdlU2V0UHJ1bmFibGUgaGVyZSwgYWRkIGl0IGluIGhlYXBfeGxv Z19pbnNlcnQgdG9vLgorCSAqIERvbid0IHNldCBpdCBpZiB3ZSBhcmUgaW4gYm9vdHN0cmFwIG1v ZGUgb3Igd2UgYXJlIGluc2VydGluZyBhIGZyb3plbgorCSAqIHR1cGxlLCBhcyB0aGVyZSBpcyBu byBmdXJ0aGVyIHBydW5pbmcvZnJlZXppbmcgbmVlZGVkIGluIHRob3NlIGNhc2VzLgogCSAqLwor CWlmIChUcmFuc2FjdGlvbklkSXNOb3JtYWwoeGlkKSAmJiAhKG9wdGlvbnMgJiBIRUFQX0lOU0VS VF9GUk9aRU4pKQorCQlQYWdlU2V0UHJ1bmFibGUocGFnZSwgeGlkKTsKIAogCU1hcmtCdWZmZXJE aXJ0eShidWZmZXIpOwogCkBAIC0yMjMzLDcgKzIyNDEsNiBAQCBoZWFwX2luc2VydChSZWxhdGlv biByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAkJeGxfaGVhcF9pbnNl cnQgeGxyZWM7CiAJCXhsX2hlYXBfaGVhZGVyIHhsaGRyOwogCQlYTG9nUmVjUHRyCXJlY3B0cjsK LQkJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAkJdWludDgJCWluZm8gPSBY TE9HX0hFQVBfSU5TRVJUOwogCQlpbnQJCQlidWZmbGFncyA9IDA7CiAKQEAgLTI1OTgsOCArMjYw NSwxMyBAQCBoZWFwX211bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNs b3QgKipzbG90cywgaW50IG50dXBsZXMsCiAJCX0KIAogCQkvKgotCQkgKiBYWFggU2hvdWxkIHdl IHNldCBQYWdlU2V0UHJ1bmFibGUgb24gdGhpcyBwYWdlID8gU2VlIGhlYXBfaW5zZXJ0KCkKKwkJ ICogU2V0IHBkX3BydW5lX3hpZC4gU2VlIGhlYXBfaW5zZXJ0KCkgZm9yIG1vcmUgb24gd2h5IHdl IGRvIHRoaXMgd2hlbgorCQkgKiBpbnNlcnRpbmcgdHVwbGVzLiBUaGlzIG9ubHkgbWFrZXMgc2Vu c2UgaWYgd2UgYXJlbid0IGFscmVhZHkKKwkJICogc2V0dGluZyB0aGUgcGFnZSBmcm96ZW4gaW4g dGhlIFZNLiBXZSBhbHNvIGRvbid0IHNldCBpdCBpbgorCQkgKiBib290c3RyYXAgbW9kZS4KIAkJ ICovCisJCWlmICghYWxsX2Zyb3plbl9zZXQgJiYgVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkp CisJCQlQYWdlU2V0UHJ1bmFibGUocGFnZSwgeGlkKTsKIAogCQlNYXJrQnVmZmVyRGlydHkoYnVm ZmVyKTsKIApAQCAtNDE0MSwxMiArNDE1MywxMiBAQCBsMjoKIAkgKiB0aGUgc3Vic2VxdWVudCBw YWdlIHBydW5pbmcgd2lsbCBiZSBhIG5vLW9wIGFuZCB0aGUgaGludCB3aWxsIGJlCiAJICogY2xl YXJlZC4KIAkgKgotCSAqIFhYWCBTaG91bGQgd2Ugc2V0IGhpbnQgb24gbmV3YnVmIGFzIHdlbGw/ ICBJZiB0aGUgdHJhbnNhY3Rpb24gYWJvcnRzLAotCSAqIHRoZXJlIHdvdWxkIGJlIGEgcHJ1bmFi bGUgdHVwbGUgaW4gdGhlIG5ld2J1ZjsgYnV0IGZvciBub3cgd2UgY2hvb3NlCi0JICogbm90IHRv IG9wdGltaXplIGZvciBhYm9ydHMuICBOb3RlIHRoYXQgaGVhcF94bG9nX3VwZGF0ZSBtdXN0IGJl IGtlcHQgaW4KLQkgKiBzeW5jIGlmIHRoaXMgZGVjaXNpb24gY2hhbmdlcy4KKwkgKiBXZSBzZXQg dGhlIG5ldyBwYWdlIHBydW5hYmxlIGFzIHdlbGwuIFNlZSBoZWFwX2luc2VydCgpIGZvciBtb3Jl IG9uIHdoeQorCSAqIHdlIGRvIHRoaXMgd2hlbiBpbnNlcnRpbmcgdHVwbGVzLgogCSAqLwogCVBh Z2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOworCWlmIChuZXdidWYgIT0gYnVmZmVyKQorCQlQYWdl U2V0UHJ1bmFibGUobmV3cGFnZSwgeGlkKTsKIAogCWlmICh1c2VfaG90X3VwZGF0ZSkKIAl7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCAxMzAyYmIxM2UxOC4uZjNmNDE5 ZDNkYzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNDUwLDYgKzQ1 MCwxNCBAQCBoZWFwX3hsb2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWZy ZWVzcGFjZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBuZWVkZWQgdG8gdXBkYXRl IEZTTSBiZWxvdyAqLwogCisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBwcnVuYWJsZSB0byB0cmln Z2VyIG9uLWFjY2VzcyBwcnVuaW5nIGxhdGVyLCB3aGljaCBtYXkKKwkJICogc2V0IHRoZSBwYWdl IGFsbC12aXNpYmxlIGluIHRoZSBWTS4gU2VlIGNvbW1lbnRzIGluIGhlYXBfaW5zZXJ0KCkuCisJ CSAqLworCQlpZiAoVHJhbnNhY3Rpb25JZElzTm9ybWFsKFhMb2dSZWNHZXRYaWQocmVjb3JkKSkg JiYKKwkJCSFIZWFwVHVwbGVIZWFkZXJYbWluRnJvemVuKGh0dXApKQorCQkJUGFnZVNldFBydW5h YmxlKHBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdlLCBs c24pOwogCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFS RUQpCkBAIC01OTksMTIgKzYwNywxOSBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkKQogCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9BTExfVklT SUJMRV9DTEVBUkVEKQogCQkJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdlKTsKIAotCQkvKiBYTEhf SU5TRVJUX0FMTF9GUk9aRU5fU0VUIGltcGxpZXMgdGhhdCBhbGwgdHVwbGVzIGFyZSB2aXNpYmxl ICovCisJCS8qCisJCSAqIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQgaW1wbGllcyB0aGF0IGFs bCB0dXBsZXMgYXJlIHZpc2libGUuIElmCisJCSAqIHdlIGFyZSBub3Qgc2V0dGluZyB0aGUgcGFn ZSBmcm96ZW4sIHRoZW4gc2V0IHRoZSBwYWdlJ3MgcHJ1bmFibGUKKwkJICogaGludCBzbyB0aGF0 IHdlIHRyaWdnZXIgb24tYWNjZXNzIHBydW5pbmcgbGF0ZXIgd2hpY2ggbWF5IHNldCB0aGUKKwkJ ICogcGFnZSBhbGwtdmlzaWJsZSBpbiB0aGUgVk0uCisJCSAqLwogCQlpZiAoeGxyZWMtPmZsYWdz ICYgWExIX0lOU0VSVF9BTExfRlJPWkVOX1NFVCkKIAkJewogCQkJUGFnZVNldEFsbFZpc2libGUo cGFnZSk7CiAJCQlQYWdlQ2xlYXJQcnVuYWJsZShwYWdlKTsKIAkJfQorCQllbHNlCisJCQlQYWdl U2V0UHJ1bmFibGUocGFnZSwgWExvZ1JlY0dldFhpZChyZWNvcmQpKTsKIAogCQlNYXJrQnVmZmVy RGlydHkoYnVmZmVyKTsKIAl9CkBAIC05MjEsNiArOTM2LDggQEAgaGVhcF94bG9nX3VwZGF0ZShY TG9nUmVhZGVyU3RhdGUgKnJlY29yZCwgYm9vbCBob3RfdXBkYXRlKQogCQlmcmVlc3BhY2UgPSBQ YWdlR2V0SGVhcEZyZWVTcGFjZShucGFnZSk7CiAKIAkJUGFnZVNldExTTihucGFnZSwgbHNuKTsK KwkJLyogU2VlIGhlYXBfaW5zZXJ0KCkgZm9yIHdoeSB3ZSBzZXQgcGRfcHJ1bmVfeGlkIG9uIGlu c2VydCAqLworCQlQYWdlU2V0UHJ1bmFibGUobnBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7 CiAJCU1hcmtCdWZmZXJEaXJ0eShuYnVmZmVyKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMKaW5kZXggMzYyNjA4OTc1MDMuLjRlMjFjNmY5NGVhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYwpAQCAtMjc1LDcgKzI3NSw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIsCiAJLyoK IAkgKiBGaXJzdCBjaGVjayB3aGV0aGVyIHRoZXJlJ3MgYW55IGNoYW5jZSB0aGVyZSdzIHNvbWV0 aGluZyB0byBwcnVuZSwKIAkgKiBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGUgaG9yaXpvbiBp cyBhIHdhc3RlIGlmIHRoZXJlJ3Mgbm8gcHJ1bmVfeGlkCi0JICogKGkuZS4gbm8gdXBkYXRlcy9k ZWxldGVzIGxlZnQgcG90ZW50aWFsbHkgZGVhZCB0dXBsZXMgYXJvdW5kKS4KKwkgKiAoaS5lLiBu byB1cGRhdGVzL2RlbGV0ZXMgbGVmdCBwb3RlbnRpYWxseSBkZWFkIHR1cGxlcyBhcm91bmQgYW5k IG5vCisJICogaW5zZXJ0cyBpbnNlcnRlZCBuZXcgdHVwbGVzIHRoYXQgbWF5IGJlIHZpc2libGUg dG8gYWxsKS4KIAkgKi8KIAlwcnVuZV94aWQgPSBQYWdlR2V0UHJ1bmVYaWQocGFnZSk7CiAJaWYg KCFUcmFuc2FjdGlvbklkSXNWYWxpZChwcnVuZV94aWQpKQpAQCAtMTkxOCwxNyArMTkxOSwxNCBA QCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3Rh dGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBm YWxzZTsKIAkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7CiAKLQkJCS8qIFRoZSBw YWdlIHNob3VsZCBub3QgYmUgbWFya2VkIGFsbC12aXNpYmxlICovCi0JCQlpZiAoUGFnZUlzQWxs VmlzaWJsZShwYWdlKSkKLQkJCQloZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRpb24ocHJzdGF0ZSwg b2ZmbnVtLAotCQkJCQkJCQkJCQlWTV9DT1JSVVBUX1RVUExFX1ZJU0lCSUxJVFkpOwotCiAJCQkv KgotCQkJICogSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIGZvciBhYm9ydHMsIHdlIG1pZ2h0IGNv bnNpZGVyIG1hcmtpbmcKLQkJCSAqIHRoZSBwYWdlIHBydW5hYmxlIHdoZW4gd2Ugc2VlIElOU0VS VF9JTl9QUk9HUkVTUy4gIEJ1dCB3ZQotCQkJICogZG9uJ3QuICBTZWUgcmVsYXRlZCBkZWNpc2lv bnMgYWJvdXQgd2hlbiB0byBtYXJrIHRoZSBwYWdlCi0JCQkgKiBwcnVuYWJsZSBpbiBoZWFwYW0u Yy4KKwkJCSAqIFRob3VnaCB0aGVyZSBpcyBub3RoaW5nICJwcnVuYWJsZSIgb24gdGhlIHBhZ2Us IHdlIG1haW50YWluCisJCQkgKiBwZF9wcnVuZV94aWQgZm9yIGluc2VydHMgc28gdGhhdCB3ZSBo YXZlIHRoZSBvcHBvcnR1bml0eSB0bworCQkJICogbWFyayB0aGVtIGFsbC12aXNpYmxlIGR1cmlu ZyB0aGUgbmV4dCByb3VuZCBvZiBwcnVuaW5nLgogCQkJICovCisJCQloZWFwX3BydW5lX3JlY29y ZF9wcnVuYWJsZShwcnN0YXRlLAorCQkJCQkJCQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0WG1pbiho dHVwKSwKKwkJCQkJCQkJCSAgIG9mZm51bSk7CiAJCQlicmVhazsKIAogCQljYXNlIEhFQVBUVVBM RV9ERUxFVEVfSU5fUFJPR1JFU1M6Ci0tIAoyLjQzLjAKCg== --000000000000114061064db81427--