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 1w6Ch1-0043U8-2X for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Mar 2026 19:18:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w6Ch0-00BfOd-15 for pgsql-hackers@arkaria.postgresql.org; Fri, 27 Mar 2026 19:18:02 +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 1w6Cgz-00BfOV-2t for pgsql-hackers@lists.postgresql.org; Fri, 27 Mar 2026 19:18:02 +0000 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w6Cgx-00000001XEs-0B2A for pgsql-hackers@lists.postgresql.org; Fri, 27 Mar 2026 19:18:02 +0000 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-b79f8f7ea43so459273066b.2 for ; Fri, 27 Mar 2026 12:17:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1774639078; cv=none; d=google.com; s=arc-20240605; b=HvvANCqjN4VZIA9Z2W0/yTd1BgjtjsynNdhDb0ddKZZ86idihZfANEIa7yiz1GeF7+ i+G/+qSyeL+z+i8Jq/VYCGa+JRRl+t1YhmTeWCWz6hPYTMXq1JfkNahovSbMzDeLzVC7 6if/ORcwE6BzTURkAfSlm5vULvsHFaUKH2OpDMI3Yxb8rMESMNkUP1dJlR4O5SyuDOAt a8NdKZXRg4XR/Y76XPAbbnqGkaV3KNCHqW9Dw6F/xEvydI19GjhFIYw9RgnQFVEQ9E69 XEiGXyayCH53jlgBh+Klop9tyXyfzD0ME9feVtUSk2YRNF26WsArlsFMsIBz1IJCpwu3 lj/A== 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=NOJNlnz1twQbLnCzEimJLOcrUsNooXcwrOSuuCGdEuE=; fh=/Y9uLj0KzdN/BFOhIVEkXEksOe7G4Dd0hmYTAwvcU1E=; b=C0qdRdjAyslMlKzad4jphs4J2J5WxUqYeNbfYNtIN0rOo3yhvq2PcojYkmfEev24AR jovcWshFxU6d3gvMCsNw34h/WkcSVMDn661q8DKhxoW2YcB4XD1+cxwAgvUT5iY/hNTu CtBuwG/pyrICTr4txq8tt+1+ffgM+IXn7O/jirKhiqux428uoSIgbNwNfnTLATautloU VooTqA6+SlfPn/A/EHgy+Q4a/LHYCa2WUGbBIjN0y0jb+64UPnQSazaPMCJomwpsobxA u5upfNdHPwNC8dHrHQRVL8lN6iwQBt+r2mA5wUAA14fRJBa2LquGmnCSFo5ACEJU1WTn TryQ==; 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=1774639078; x=1775243878; 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=NOJNlnz1twQbLnCzEimJLOcrUsNooXcwrOSuuCGdEuE=; b=LuhcqZiBHNteGcjxSTBXpjkM1+twZXwMmJewz8oda+FZ7Dea7t/DP9FO3NdY/mgoCW 9wr64txbPWQCNnbogloZVcUbhf8/T8XWzJsSAlkzrLeSgrRE6kY5eMczuqvC0DnpEPUi 0g3P7GWVedOiY+Bkdum3QpXzSRLbdK9df93lbdXTGkC++9DB4OaIO8Oe+Nf9A0OEPe93 bLC5bvRJzMJ+WQq+ChnOtSyRBuiVCReJ1A2UwutA+JoZ3zwfJKchjySohtar/9ih4SpC NAle6SzorkA0cm+9WRumwPqKlUFhhQluOGLk7IEYJcp1hoY7j/wiZZL///s8Bf206FeQ ZKhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774639078; x=1775243878; 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=NOJNlnz1twQbLnCzEimJLOcrUsNooXcwrOSuuCGdEuE=; b=TPbPoTDCB719XSfRy10FZffnYdHanlb8mtiMa+DH1x6coQ29yxMNCE/qDKnAQ4UGc5 vav1lUw6dvI82cwN3xTZ/ztPBy5yoUsxNyFVP6B8HBLjCun/eyCWv+fqDWniou7tXYDr BNnGHPy/u14UJ2nDuNR21JOjn31uHRRKoHQUjpvpFUl2JTA4TLtnndHFpJldp8EGrwQY UngVrSMOZxwDgTEgDq0QZ8I7he9lt23cHyhAMNZuyqHCUQXpAH3i0qSkJ3aQpLy0aH7w DJ/QJQHpxu/FVHVP4E/v3N1LvNvutN8HU2XX6NyyGfvwmpK71NPMc//80UavAdeedTW0 lK2w== X-Forwarded-Encrypted: i=1; AJvYcCWZagrKLRhBiUMZn7aFFzFd5cwr+mnAAbvG3v5vuAwv6Vx970igp+dqnW7y56d5Ju+YpKsNiCcH/fFr0anN@lists.postgresql.org X-Gm-Message-State: AOJu0YwWDllNB+jQ8+HQWqR84FYP9tcmZX+2px9Nnxa9ztb4z1Pa+Gua HXIh0ZRPLnxL5WopbZ13lSQBRShJM+MVHaHxkBdxM9xBeuisSSOLp7vMpckuiHgmyvFJ7kLvYHp G5f3LXtAfm0B5cwfgRIncclxR9ukGe/4= X-Gm-Gg: ATEYQzzyP08tdQrAYV+l3sOJfrzEVO9PBu/6QYPvkNoAhlz3+8BqpWa3Aghx1U9FSnp AicdXfI5sxWL/3yovTh5xeix6DDLcZyyIRBiXjqohelEkghbB0d1Zj787BuGWubNAKb4zFWaJ9V dQgUMHEdP1ZDNieTRAaX6crrqJUBnJV1bJJESKeNPBzaSsN5fxIlLN+Zs75InbpvsuAgbv3jv/R qf4SrDweYnS0zkExwUrEnnPsEnFRlHqWWk5egqfZE4NHFzzZrLJr8XU8zhXaZ4QfHLHbxP9Ssjn WEw20ctqvvQm8K8X5bquDeJJF34uSgNCPqmYDJQfoyyPIb6WHDgpTnNU0HnvFblzgPYDl1ulcxx IlB0tulRv X-Received: by 2002:a17:906:ba87:b0:b9b:e5d:71df with SMTP id a640c23a62f3a-b9b5034266dmr252420666b.19.1774639077876; Fri, 27 Mar 2026 12:17:57 -0700 (PDT) MIME-Version: 1.0 References: <2be31f17-5405-4de9-8d73-90ebc322f7d8@vondra.me> In-Reply-To: From: Melanie Plageman Date: Fri, 27 Mar 2026 15:17:45 -0400 X-Gm-Features: AQROBzATTJRXcKXpFNB_7iUFyJOgzlcCfxDNpj90zPi77dq7LCv8x4PjVcithTs Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: David Rowley Cc: Tomas Vondra , Andres Freund , Kirill Reshke , Chao Li , Andrey Borodin , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="000000000000d95d29064e065b9c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d95d29064e065b9c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Mar 26, 2026 at 7:10=E2=80=AFPM David Rowley = wrote: > > I was looking at v46-0001. With: Thanks for taking a look! > +++ b/src/include/nodes/plannodes.h > + Bitmapset *modifiedRelids; > + > > This doesn't really mention anything about leaf partitions not being > mentioned for INSERT queries. You did mention it in standard_planner() > here: > > I'm also wondering about having this combined field. If you were to > have a Bitmapset field that mirrors "List *resultRelations;", then > have another: > > /* a list of PlanRowMark's */ > List *rowMarks; > > + /* Relids which have rowMarks */ > + Bitmapset *rowMarkRelids; > > I think they're more likely to be useful for other purposes, and I > think the only pain that it causes you is that you have to call > bms_is_member() twice in ScanRelIsReadOnly(). Yea, outside of the insert into leaf partitions case, I thought of another, perhaps even more compelling reason the combined field might be a bit confusing: Take a table t1 and a table t2. If you do SELECT * FROM t1 JOIN t2 ON t1.id =3D t2.id FOR UPDATE of t1; t1 will get a ROW_MARK_EXCLUSIVE and t2 would get a ROW_MARK_REFERENCE (that's just how preprocess_rowmarks() works). That means modifiedRelids would contain t2, even though t2 is not being locked for update. For the purposes of setting the VM, it's totally fine that we are more conservative than we need to be and don't consider setting it when scanning t2. But for the purposes of modifiedRelids, it's a bit confusing that t2 is in there. But we can't just exclude ROW_MARK_REFERENCE from modifiedRelids because we rely on ROW_MARK_REFERENCE to avoid setting the VM for a table we are updating or deleting from when it is mentioned more than once in the query (e.g. UPDATE foo SET x =3D 1 FROM foo f2 WHERE foo.id =3D f2.id). So, for that reason and because of the missing leaf partitions for inserts, I think making quick reference bitmapsets would be better. I've done this in attached v47. I've also removed the asserts in ExecInsert/Update/Delete because they are a bit tautological now. My one remaining question is whether the two new bitmapsets (rowMarkRelids and resultRelationRelids) should move from the PlannedStmt to the EState. They are determined at plan time and never modified during execution. However, I do notice there are other EState members that seem like just a copy of info from the PlannedStmt that isn't modified during execution (e.g. es_rteperminfos/permInfos). However, putting them in the EState increases the work required to get them to parallel workers and to the child estate for EPQs. I would prefer to keep it in the PlannedStmt but am worried that breaks convention. > Then, as a follow-up, maybe we could consider removing > PlannedStmt.resultRelations. (The deprecated) > ExecRelationIsTargetRelation() could use the new Bitmapset, which > would be more efficient. Yea, I like this and think it makes sense. Done in v47. > I did quickly look over the remaining patches. I wondered if you might > want to add a new ScanOption SO_NONE =3D 0, or SO_EMPTY_FLAGS. It might > make the places where you're passing zero directly easier to read? That makes sense to me. Done in v47. - Melanie --000000000000d95d29064e065b9c Content-Type: text/x-patch; charset="US-ASCII"; name="v47-0001-Make-it-cheap-to-check-with-relations-are-modifi.patch" Content-Disposition: attachment; filename="v47-0001-Make-it-cheap-to-check-with-relations-are-modifi.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn9a97sv0 RnJvbSA0OTlmZTNkYmRkZGI2MzIxYjVmMDlkOWQ5NGUzN2E1Yzk3MzAzYmRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IE1hciAyMDI2IDA5OjIxOjIyIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDcgMS82XSBNYWtlIGl0IGNoZWFwIHRvIGNoZWNrIHdpdGggcmVsYXRpb25zIGFyZSBt b2RpZmllZCBieQogYSBxdWVyeQoKU2F2ZSB0aGUgcmFuZ2UgdGFibGUgaW5kZXhlcyBvZiByZXN1 bHQgcmVsYXRpb25zIGFuZCByb3cgbWFyayByZWxhdGlvbnMgaW4Kc2VwYXJhdGUgYml0bWFwcyBp biB0aGUgUGxhbm5lZFN0bXQuIFByZWNvbXB1dGluZyB0aGVtIGFsbG93cyBjaGVhcCBtZW1iZXJz aGlwCmNoZWNrcyBkdXJpbmcgZXhlY3V0aW9uLiBXaXRoIGEgZmV3IGV4Y2VwdGlvbnMsIHRoZXNl IHR3byBncm91cHMgY29tcHJpc2UgYWxsCnJlbGF0aW9ucyB0aGF0IHdpbGwgYmUgbW9kaWZpZWQg YnkgYSBxdWVyeS4gVGhpcyBpbmNsdWRlcyByZWxhdGlvbnMgdGFyZ2V0ZWQgYnkKSU5TRVJULCBV UERBVEUsIERFTEVURSwgYW5kIE1FUkdFIGFzIHdlbGwgYXMgcmVsYXRpb25zIHdpdGggYW55IHJv dyBtYXJrIChsaWtlClNFTEVDVCBmb3IgVVBEQVRFKS4KCkEgbGF0ZXIgY29tbWl0IHdpbGwgdXNl IHRoaXMgaW5mb3JtYXRpb24gZHVyaW5nIHNjYW5zIHRvIGNvbnRyb2wgd2hldGhlcgpvciBub3Qg b24tYWNjZXNzIHBydW5pbmcgaXMgYWxsb3dlZCB0byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwIC0t IHdoaWNoCndvdWxkIGJlIGNvdW50ZXJwcm9kdWN0aXZlIGlmIHRoZSBxdWVyeSB3aWxsIG1vZGlm eSB0aGUgcGFnZS4KClBsYW5uZWRTdG10LT5yZXN1bHRSZWxhdGlvbnMgaXMgb25seSB1c2VkIGlu IGEgbWVtYmVyc2hpcCBjaGVjaywgc28gaXQgbWF5IG1ha2UKc2Vuc2UgdG8gcmVwbGFjZSBpdHMg dXNhZ2Ugd2l0aCB0aGUgbmV3IHJlc3VsdFJlbGF0aW9uUmVsaWRzLgoKQXV0aG9yOiBNZWxhbmll IFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVz IEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogRGF2aWQgUm93bGV5IDxk Z3Jvd2xleW1sQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0Bn bWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVDREQxQjUtNjI4Qy00 NEExLTlGODUtMzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY1BhcmFsbGVsLmMgIHwgIDIgKysKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYyB8IDE5ICsrKysrKysrKysrKysrKysrKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BsYW5u b2Rlcy5oICAgICAgICB8ICA5ICsrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY1BhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwppbmRl eCBhYzg0YWYyOTRjOS4uNzkxZmNiODhkZTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNQYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxl bC5jCkBAIC0xODgsNiArMTg4LDggQEAgRXhlY1NlcmlhbGl6ZVBsYW4oUGxhbiAqcGxhbiwgRVN0 YXRlICplc3RhdGUpCiAJcHN0bXQtPnBhcnRQcnVuZUluZm9zID0gZXN0YXRlLT5lc19wYXJ0X3By dW5lX2luZm9zOwogCXBzdG10LT5ydGFibGUgPSBlc3RhdGUtPmVzX3JhbmdlX3RhYmxlOwogCXBz dG10LT51bnBydW5hYmxlUmVsaWRzID0gZXN0YXRlLT5lc191bnBydW5lZF9yZWxpZHM7CisJcHN0 bXQtPnJlc3VsdFJlbGF0aW9uUmVsaWRzID0gZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+cmVzdWx0 UmVsYXRpb25SZWxpZHM7CisJcHN0bXQtPnJvd01hcmtSZWxpZHMgPSBlc3RhdGUtPmVzX3BsYW5u ZWRzdG10LT5yb3dNYXJrUmVsaWRzOwogCXBzdG10LT5wZXJtSW5mb3MgPSBlc3RhdGUtPmVzX3J0 ZXBlcm1pbmZvczsKIAlwc3RtdC0+cmVzdWx0UmVsYXRpb25zID0gTklMOwogCXBzdG10LT5hcHBl bmRSZWxhdGlvbnMgPSBOSUw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxh bi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXgg ZDE5ODAwYWQ2YTUuLmRmNGM5OWZjM2ZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5l ci5jCkBAIC0zNDAsOCArMzQwLDExIEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBj b25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCVJlbE9wdEluZm8g KmZpbmFsX3JlbDsKIAlQYXRoCSAgICpiZXN0X3BhdGg7CiAJUGxhbgkgICAqdG9wX3BsYW47CisJ Qml0bWFwc2V0ICAqcmVzdWx0UmVsYXRpb25SZWxpZHMgPSBOVUxMOworCUJpdG1hcHNldCAgKnJv d01hcmtSZWxpZHMgPSBOVUxMOwogCUxpc3RDZWxsICAgKmxwLAotCQkJICAgKmxyOworCQkJICAg KmxyLAorCQkJICAgKmxjOwogCiAJLyoKIAkgKiBTZXQgdXAgZ2xvYmFsIHN0YXRlIGZvciB0aGlz IHBsYW5uZXIgaW52b2NhdGlvbi4gIFRoaXMgZGF0YSBpcyBuZWVkZWQKQEAgLTY2MSw2ICs2NjQs MjAgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0 cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0LT5zdWJwbGFucyA9IGdsb2ItPnN1YnBs YW5zOwogCXJlc3VsdC0+cmV3aW5kUGxhbklEcyA9IGdsb2ItPnJld2luZFBsYW5JRHM7CiAJcmVz dWx0LT5yb3dNYXJrcyA9IGdsb2ItPmZpbmFscm93bWFya3M7CisKKwkvKgorCSAqIENvbXB1dGUg cmVzdWx0UmVsYXRpb25SZWxpZHMgYW5kIHJvd01hcmtSZWxpZHMgZnJvbSByZXN1bHRSZWxhdGlv bnMgYW5kCisJICogcm93TWFya3MgZm9yIHF1aWNrIGFjY2Vzcy4KKwkgKi8KKwlmb3JlYWNoKGxj LCBnbG9iLT5yZXN1bHRSZWxhdGlvbnMpCisJCXJlc3VsdFJlbGF0aW9uUmVsaWRzID0gYm1zX2Fk ZF9tZW1iZXIocmVzdWx0UmVsYXRpb25SZWxpZHMsCisJCQkJCQkJCQkJCSAgbGZpcnN0X2ludChs YykpOworCWZvcmVhY2gobGMsIGdsb2ItPmZpbmFscm93bWFya3MpCisJCXJvd01hcmtSZWxpZHMg PSBibXNfYWRkX21lbWJlcihyb3dNYXJrUmVsaWRzLAorCQkJCQkJCQkJICAgKChQbGFuUm93TWFy ayAqKSBsZmlyc3QobGMpKS0+cnRpKTsKKwlyZXN1bHQtPnJlc3VsdFJlbGF0aW9uUmVsaWRzID0g cmVzdWx0UmVsYXRpb25SZWxpZHM7CisJcmVzdWx0LT5yb3dNYXJrUmVsaWRzID0gcm93TWFya1Jl bGlkczsKKwogCXJlc3VsdC0+cmVsYXRpb25PaWRzID0gZ2xvYi0+cmVsYXRpb25PaWRzOwogCXJl c3VsdC0+aW52YWxJdGVtcyA9IGdsb2ItPmludmFsSXRlbXM7CiAJcmVzdWx0LT5wYXJhbUV4ZWNU eXBlcyA9IGdsb2ItPnBhcmFtRXhlY1R5cGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGxhbm5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCBiNjE4 NTgyNWZjYi4uODhiZTY1ZDdiZGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5u b2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0xMjEsNiArMTIx LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lZFN0bXQKIAkvKiBpbnRlZ2VyIGxpc3Qgb2YgUlQg aW5kZXhlcywgb3IgTklMICovCiAJTGlzdAkgICAqcmVzdWx0UmVsYXRpb25zOwogCisJLyogUlQg aW5kZXhlcyBvZiByZXN1bHQgcmVsYXRpb25zIHRhcmdldGVkIGJ5IElOU0VSVC9VUERBVEUvREVM RVRFL01FUkdFICovCisJQml0bWFwc2V0ICAqcmVzdWx0UmVsYXRpb25SZWxpZHM7CisKIAkvKiBs aXN0IG9mIEFwcGVuZFJlbEluZm8gbm9kZXMgKi8KIAlMaXN0CSAgICphcHBlbmRSZWxhdGlvbnM7 CiAKQEAgLTEzOCw2ICsxNDEsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lZFN0bXQKIAkvKiBh IGxpc3Qgb2YgUGxhblJvd01hcmsncyAqLwogCUxpc3QJICAgKnJvd01hcmtzOwogCisJLyoKKwkg KiBSVCBpbmRleGVzIG9mIHJlbGF0aW9ucyB3aXRoIHJvdyBtYXJrcy4gVXNlZnVsIGZvciBxdWlj ayBtZW1iZXJzaGlwCisJICogY2hlY2tzIGluc3RlYWQgb2YgaXRlcmF0aW5nIHRocm91Z2ggcm93 TWFya3MuCisJICovCisJQml0bWFwc2V0ICAqcm93TWFya1JlbGlkczsKKwogCS8qIE9JRHMgb2Yg cmVsYXRpb25zIHRoZSBwbGFuIGRlcGVuZHMgb24gKi8KIAlMaXN0CSAgICpyZWxhdGlvbk9pZHM7 CiAKLS0gCjIuNDMuMAoK --000000000000d95d29064e065b9c Content-Type: text/x-patch; charset="US-ASCII"; name="v47-0002-Remove-PlannedStmt-resultRelations-in-favor-of-r.patch" Content-Disposition: attachment; filename="v47-0002-Remove-PlannedStmt-resultRelations-in-favor-of-r.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn9a9a6u1 RnJvbSBiZjEzYWFmM2Y5YTk2MTBlN2U3YmUzODFkZmRiNzI0MmYyMjc2MWM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IE1hciAyMDI2IDA4OjM1OjAwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDcgMi82XSBSZW1vdmUgUGxhbm5lZFN0bXQtPnJlc3VsdFJlbGF0aW9ucyBpbiBmYXZv ciBvZgogcmVzdWx0UmVsYXRpb25SZWxpZHMKClBsYW5uZWRTdG10LT5yZXN1bHRSZWxhdGlvbnMg d2FzIGFuIGludGVnZXIgbGlzdCBvZiByYW5nZSB0YWJsZSBpbmRleGVzLgpOb3cgdGhhdCB3ZSBo YXZlIGEgYml0bWFwc2V0LCB3aGljaCBvZmZlcnMgY2hlYXAgbWVtYmVyc2hpcCBjaGVja3MsCnJl bW92ZSB0aGUgbGlzdCBhbmQgdXBkYXRlIGFsbCBjb25zdW1lcnMgdG8gdXNlIHRoZSBiaXRtYXBz ZXQuCi0tLQogY29udHJpYi9wZ19vdmVyZXhwbGFpbi9wZ19vdmVyZXhwbGFpbi5jIHwgNSArKyst LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgIHwgMSAtCiBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjVXRpbHMuYyAgICAgICAgfCAyICstCiBzcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgfCAxIC0KIHNyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rl cy5oICAgICAgICAgICB8IDQgLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyks IDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19vdmVyZXhwbGFpbi9wZ19v dmVyZXhwbGFpbi5jIGIvY29udHJpYi9wZ19vdmVyZXhwbGFpbi9wZ19vdmVyZXhwbGFpbi5jCmlu ZGV4IGMyYjkwNDkzY2M2Li5iNGU5MDkwOTI4OSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19vdmVy ZXhwbGFpbi9wZ19vdmVyZXhwbGFpbi5jCisrKyBiL2NvbnRyaWIvcGdfb3ZlcmV4cGxhaW4vcGdf b3ZlcmV4cGxhaW4uYwpAQCAtNzgwLDggKzc4MCw5IEBAIG92ZXJleHBsYWluX3JhbmdlX3RhYmxl KFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgRXhwbGFpblN0YXRlICplcykKIAkJb3ZlcmV4cGxh aW5fYml0bWFwc2V0KCJVbnBydW5hYmxlIFJUSXMiLCBwbGFubmVkc3RtdC0+dW5wcnVuYWJsZVJl bGlkcywKIAkJCQkJCQkgIGVzKTsKIAlpZiAoZXMtPmZvcm1hdCAhPSBFWFBMQUlOX0ZPUk1BVF9U RVhUIHx8Ci0JCXBsYW5uZWRzdG10LT5yZXN1bHRSZWxhdGlvbnMgIT0gTklMKQotCQlvdmVyZXhw bGFpbl9pbnRsaXN0KCJSZXN1bHQgUlRJcyIsIHBsYW5uZWRzdG10LT5yZXN1bHRSZWxhdGlvbnMs IGVzKTsKKwkJIWJtc19pc19lbXB0eShwbGFubmVkc3RtdC0+cmVzdWx0UmVsYXRpb25SZWxpZHMp KQorCQlvdmVyZXhwbGFpbl9iaXRtYXBzZXQoIlJlc3VsdCBSVElzIiwgcGxhbm5lZHN0bXQtPnJl c3VsdFJlbGF0aW9uUmVsaWRzLAorCQkJCQkJCSAgZXMpOwogCiAJLyogQ2xvc2UgZ3JvdXAsIHdl J3JlIGFsbCBkb25lICovCiAJRXhwbGFpbkNsb3NlR3JvdXAoIlJhbmdlIFRhYmxlIiwgIlJhbmdl IFRhYmxlIiwgZmFsc2UsIGVzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNQYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXgg NzkxZmNiODhkZTkuLjFiYWI2MTYwMDM2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUGFyYWxsZWwuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwu YwpAQCAtMTkxLDcgKzE5MSw2IEBAIEV4ZWNTZXJpYWxpemVQbGFuKFBsYW4gKnBsYW4sIEVTdGF0 ZSAqZXN0YXRlKQogCXBzdG10LT5yZXN1bHRSZWxhdGlvblJlbGlkcyA9IGVzdGF0ZS0+ZXNfcGxh bm5lZHN0bXQtPnJlc3VsdFJlbGF0aW9uUmVsaWRzOwogCXBzdG10LT5yb3dNYXJrUmVsaWRzID0g ZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+cm93TWFya1JlbGlkczsKIAlwc3RtdC0+cGVybUluZm9z ID0gZXN0YXRlLT5lc19ydGVwZXJtaW5mb3M7Ci0JcHN0bXQtPnJlc3VsdFJlbGF0aW9ucyA9IE5J TDsKIAlwc3RtdC0+YXBwZW5kUmVsYXRpb25zID0gTklMOwogCXBzdG10LT5wbGFuT3JpZ2luID0g UExBTl9TVE1UX0lOVEVSTkFMOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjVXRpbHMuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jCmluZGV4IDk4ODZh YjA2YjY5Li4zNmM1Mjg1ZDI1MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1V0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMKQEAgLTczMyw3 ICs3MzMsNyBAQCBFeGVjQ3JlYXRlU2NhblNsb3RGcm9tT3V0ZXJQbGFuKEVTdGF0ZSAqZXN0YXRl LAogYm9vbAogRXhlY1JlbGF0aW9uSXNUYXJnZXRSZWxhdGlvbihFU3RhdGUgKmVzdGF0ZSwgSW5k ZXggc2NhbnJlbGlkKQogewotCXJldHVybiBsaXN0X21lbWJlcl9pbnQoZXN0YXRlLT5lc19wbGFu bmVkc3RtdC0+cmVzdWx0UmVsYXRpb25zLCBzY2FucmVsaWQpOworCXJldHVybiBibXNfaXNfbWVt YmVyKHNjYW5yZWxpZCwgZXN0YXRlLT5lc19wbGFubmVkc3RtdC0+cmVzdWx0UmVsYXRpb25SZWxp ZHMpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5k ZXggZGY0Yzk5ZmMzZmYuLjk4NTM0NDMyMDlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jCkBAIC02NTksNyArNjU5LDYgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2Us IGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJCQkJCQkJCQkJ CSAgZ2xvYi0+cHJ1bmFibGVSZWxpZHMpOwogCXJlc3VsdC0+cGVybUluZm9zID0gZ2xvYi0+Zmlu YWxydGVwZXJtaW5mb3M7CiAJcmVzdWx0LT5zdWJydGluZm9zID0gZ2xvYi0+c3VicnRpbmZvczsK LQlyZXN1bHQtPnJlc3VsdFJlbGF0aW9ucyA9IGdsb2ItPnJlc3VsdFJlbGF0aW9uczsKIAlyZXN1 bHQtPmFwcGVuZFJlbGF0aW9ucyA9IGdsb2ItPmFwcGVuZFJlbGF0aW9uczsKIAlyZXN1bHQtPnN1 YnBsYW5zID0gZ2xvYi0+c3VicGxhbnM7CiAJcmVzdWx0LT5yZXdpbmRQbGFuSURzID0gZ2xvYi0+ cmV3aW5kUGxhbklEczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggODhiZTY1ZDdiZGUuLjE5ZTVk ODE0YzU5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTE3LDEwICsxMTcsNiBAQCB0eXBlZGVm IHN0cnVjdCBQbGFubmVkU3RtdAogCSAqLwogCUxpc3QJICAgKnBlcm1JbmZvczsKIAotCS8qIHJ0 YWJsZSBpbmRleGVzIG9mIHRhcmdldCByZWxhdGlvbnMgZm9yIElOU0VSVC9VUERBVEUvREVMRVRF L01FUkdFICovCi0JLyogaW50ZWdlciBsaXN0IG9mIFJUIGluZGV4ZXMsIG9yIE5JTCAqLwotCUxp c3QJICAgKnJlc3VsdFJlbGF0aW9uczsKLQogCS8qIFJUIGluZGV4ZXMgb2YgcmVzdWx0IHJlbGF0 aW9ucyB0YXJnZXRlZCBieSBJTlNFUlQvVVBEQVRFL0RFTEVURS9NRVJHRSAqLwogCUJpdG1hcHNl dCAgKnJlc3VsdFJlbGF0aW9uUmVsaWRzOwogCi0tIAoyLjQzLjAKCg== --000000000000d95d29064e065b9c Content-Type: text/x-patch; charset="US-ASCII"; name="v47-0003-Thread-flags-through-begin-scan-APIs.patch" Content-Disposition: attachment; filename="v47-0003-Thread-flags-through-begin-scan-APIs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn9a9fxp2 RnJvbSA1OGYzMDdkOGYwM2ZiY2ZiYzQ5MzNlM2YyY2VjZjc1MjI5NGQ4MDRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDE5IE1hciAyMDI2IDE3OjA1OjU1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDcgMy82XSBUaHJlYWQgZmxhZ3MgdGhyb3VnaCBiZWdpbi1zY2FuIEFQSXMKCkFkZCBh biBBTSB1c2VyLXNldHRhYmxlIGZsYWdzIHBhcmFtZXRlciB0byBzZXZlcmFsIG9mIHRoZSB0YWJs ZQpzY2FuIGZ1bmN0aW9ucywgb25lIHRhYmxlIEFNIGNhbGxiYWNrLCBhbmQgaW5kZXhfYmVnaW5z Y2FuKCkuIFRoaXMKYWxsb3dzIHVzZXJzIHRvIHBhc3MgYWRkaXRpb25hbCBjb250ZXh0IHRvIGJl IHVzZWQgd2hlbiBidWlsZGluZyB0aGUKc2NhbiBkZXNjcmlwdG9ycy4KCkZvciBpbmRleCBzY2Fu cywgYSBuZXcgZmxhZ3MgZmllbGQgaXMgYWRkZWQgdG8gSW5kZXhGZXRjaFRhYmxlRGF0YSwgYW5k CnRoZSBoZWFwIEFNIHNhdmVzIHRoZSBjYWxsZXItcHJvdmlkZWQgZmxhZ3MgdGhlcmUuCgpUaGlz IGludHJvZHVjZXMgYW4gZXh0ZW5zaW9uIHBvaW50IGZvciBmb2xsb3ctdXAgd29yayB0byBwYXNz CnBlci1zY2FuIGluZm9ybWF0aW9uIChzdWNoIGFzIHdoZXRoZXIgdGhlIHJlbGF0aW9uIGlzIHJl YWQtb25seSBmb3IgdGhlCmN1cnJlbnQgcXVlcnkpIGZyb20gdGhlIGV4ZWN1dG9yIHRvIHRoZSBB TSBsYXllci4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWls LmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJlc0BhbmFyYXplbC5kZT4KUmV2 aWV3ZWQtYnk6IFRvbWFzIFZvbmRyYSA8dG9tYXNAdm9uZHJhLm1lPgpSZXZpZXdlZC1ieTogRGF2 aWQgUm93bGV5IDxkZ3Jvd2xleW1sQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxp LmV2YW4uY2hhb0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVD REQxQjUtNjI4Qy00NEExLTlGODUtMzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogY29udHJp Yi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYyAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQv YWNjZXNzL2JyaW4vYnJpbi5jICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNz L2dpbi9naW5pbnNlcnQuYyAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtX2hhbmRsZXIuYyAgfCAgOSArKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5h bS5jICAgICAgICAgIHwgIDYgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMg ICAgICAgIHwgMTAgKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYyAgICAg ICB8ICAzICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jICAgICAgICB8IDIy ICsrKy0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jICAgICAgICAgfCAgMyAr LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMgICAgICAgICAgICAgfCAgMyArLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgfCAxMyArKy0tCiBzcmMvYmFj a2VuZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgICAgICB8ICA2ICstCiBzcmMvYmFja2VuZC9l eGVjdXRvci9leGVjSW5kZXhpbmcuYyAgICAgICB8ICA0ICstCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUmVwbGljYXRpb24uYyAgICB8IDEyICsrLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVCaXRtYXBIZWFwc2Nhbi5jIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRl eG9ubHlzY2FuLmMgIHwgIDkgKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2Fu LmMgICAgICB8IDEyICsrLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMg ICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMgICAgICAgIHwg IDkgKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMgICB8ICA3ICst CiBzcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jICAgICB8ICAzICstCiBzcmMv YmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3MuYyAgICAgICAgICB8ICAzICstCiBzcmMvaW5jbHVk ZS9hY2Nlc3MvZ2VuYW0uaCAgICAgICAgICAgICAgICB8ICA2ICstCiBzcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtLmggICAgICAgICAgICAgICB8ICA1ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvcmVs c2Nhbi5oICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgg ICAgICAgICAgICAgIHwgODEgKysrKysrKysrKysrKysrKy0tLS0tLS0KIDI2IGZpbGVzIGNoYW5n ZWQsIDE1NyBpbnNlcnRpb25zKCspLCA4NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250 cmliL3Bncm93bG9ja3MvcGdyb3dsb2Nrcy5jIGIvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9j a3MuYwppbmRleCBmZjM2OTJjODdjNC4uZDE2NGM0YzAzYWQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv cGdyb3dsb2Nrcy9wZ3Jvd2xvY2tzLmMKKysrIGIvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9j a3MuYwpAQCAtMTE1LDcgKzExNSw3IEBAIHBncm93bG9ja3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJ CQkJICAgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CiAKIAkvKiBTY2FuIHRoZSByZWxh dGlvbiAqLwotCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgp LCAwLCBOVUxMKTsKKwlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgR2V0QWN0aXZlU25hcHNo b3QoKSwgMCwgTlVMTCwgU09fTk9ORSk7CiAJaHNjYW4gPSAoSGVhcFNjYW5EZXNjKSBzY2FuOwog CiAJYXR0aW5tZXRhID0gVHVwbGVEZXNjR2V0QXR0SW5NZXRhZGF0YShyc2luZm8tPnNldERlc2Mp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2JyaW4vYnJpbi5jCmluZGV4IDJhMGY4YzhlM2I4Li5iZGIzMDc1MmUwOSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9icmluL2JyaW4uYwpAQCAtMjg0NCw3ICsyODQ0LDggQEAgX2JyaW5fcGFyYWxsZWxf c2Nhbl9hbmRfYnVpbGQoQnJpbkJ1aWxkU3RhdGUgKnN0YXRlLAogCWluZGV4SW5mby0+aWlfQ29u Y3VycmVudCA9IGJyaW5zaGFyZWQtPmlzY29uY3VycmVudDsKIAogCXNjYW4gPSB0YWJsZV9iZWdp bnNjYW5fcGFyYWxsZWwoaGVhcCwKLQkJCQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUJyaW5T aGFyZWQoYnJpbnNoYXJlZCkpOworCQkJCQkJCQkJUGFyYWxsZWxUYWJsZVNjYW5Gcm9tQnJpblNo YXJlZChicmluc2hhcmVkKSwKKwkJCQkJCQkJCVNPX05PTkUpOwogCiAJcmVsdHVwbGVzID0gdGFi bGVfaW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwgaW5kZXhJbmZvLCB0cnVlLCB0cnVlLAog CQkJCQkJCQkJICAgYnJpbmJ1aWxkQ2FsbGJhY2tQYXJhbGxlbCwgc3RhdGUsIHNjYW4pOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKaW5kZXggZTU0NzgyZDlkZDguLjlkODNhNDk1Nzc1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKQEAgLTIwNjgsNyArMjA2OCw4IEBAIF9naW5f cGFyYWxsZWxfc2Nhbl9hbmRfYnVpbGQoR2luQnVpbGRTdGF0ZSAqc3RhdGUsCiAJaW5kZXhJbmZv LT5paV9Db25jdXJyZW50ID0gZ2luc2hhcmVkLT5pc2NvbmN1cnJlbnQ7CiAKIAlzY2FuID0gdGFi bGVfYmVnaW5zY2FuX3BhcmFsbGVsKGhlYXAsCi0JCQkJCQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZy b21HaW5CdWlsZFNoYXJlZChnaW5zaGFyZWQpKTsKKwkJCQkJCQkJCVBhcmFsbGVsVGFibGVTY2Fu RnJvbUdpbkJ1aWxkU2hhcmVkKGdpbnNoYXJlZCksCisJCQkJCQkJCQlTT19OT05FKTsKIAogCXJl bHR1cGxlcyA9IHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oaGVhcCwgaW5kZXgsIGluZGV4SW5mbywg dHJ1ZSwgcHJvZ3Jlc3MsCiAJCQkJCQkJCQkgICBnaW5CdWlsZENhbGxiYWNrUGFyYWxsZWwsIHN0 YXRlLCBzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9o YW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCmluZGV4 IGQ0MDg3ODkyOGUxLi45OTI4MGNkODE1OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1faGFuZGxlci5jCkBAIC04MSwxMSArODEsMTIgQEAgaGVhcGFtX3Nsb3RfY2FsbGJhY2tzKFJl bGF0aW9uIHJlbGF0aW9uKQogICovCiAKIHN0YXRpYyBJbmRleEZldGNoVGFibGVEYXRhICoKLWhl YXBhbV9pbmRleF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCitoZWFwYW1faW5kZXhfZmV0Y2hf YmVnaW4oUmVsYXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpCiB7CiAJSW5kZXhGZXRjaEhlYXBEYXRh ICpoc2NhbiA9IHBhbGxvYzBfb2JqZWN0KEluZGV4RmV0Y2hIZWFwRGF0YSk7CiAKIAloc2Nhbi0+ eHNfYmFzZS5yZWwgPSByZWw7CisJaHNjYW4tPnhzX2Jhc2UuZmxhZ3MgPSBmbGFnczsKIAloc2Nh bi0+eHNfY2J1ZiA9IEludmFsaWRCdWZmZXI7CiAJaHNjYW4tPnhzX3ZtYnVmZmVyID0gSW52YWxp ZEJ1ZmZlcjsKIApAQCAtNzYzLDcgKzc2NCw4IEBAIGhlYXBhbV9yZWxhdGlvbl9jb3B5X2Zvcl9j bHVzdGVyKFJlbGF0aW9uIE9sZEhlYXAsIFJlbGF0aW9uIE5ld0hlYXAsCiAKIAkJdGFibGVTY2Fu ID0gTlVMTDsKIAkJaGVhcFNjYW4gPSBOVUxMOwotCQlpbmRleFNjYW4gPSBpbmRleF9iZWdpbnNj YW4oT2xkSGVhcCwgT2xkSW5kZXgsIFNuYXBzaG90QW55LCBOVUxMLCAwLCAwKTsKKwkJaW5kZXhT Y2FuID0gaW5kZXhfYmVnaW5zY2FuKE9sZEhlYXAsIE9sZEluZGV4LCBTbmFwc2hvdEFueSwgTlVM TCwgMCwgMCwKKwkJCQkJCQkJCVNPX05PTkUpOwogCQlpbmRleF9yZXNjYW4oaW5kZXhTY2FuLCBO VUxMLCAwLCBOVUxMLCAwKTsKIAl9CiAJZWxzZQpAQCAtNzcyLDcgKzc3NCw4IEBAIGhlYXBhbV9y ZWxhdGlvbl9jb3B5X2Zvcl9jbHVzdGVyKFJlbGF0aW9uIE9sZEhlYXAsIFJlbGF0aW9uIE5ld0hl YXAsCiAJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfUkVQQUNLX1BIQVNF LAogCQkJCQkJCQkJIFBST0dSRVNTX1JFUEFDS19QSEFTRV9TRVFfU0NBTl9IRUFQKTsKIAotCQl0 YWJsZVNjYW4gPSB0YWJsZV9iZWdpbnNjYW4oT2xkSGVhcCwgU25hcHNob3RBbnksIDAsIChTY2Fu S2V5KSBOVUxMKTsKKwkJdGFibGVTY2FuID0gdGFibGVfYmVnaW5zY2FuKE9sZEhlYXAsIFNuYXBz aG90QW55LCAwLCAoU2NhbktleSkgTlVMTCwKKwkJCQkJCQkJCVNPX05PTkUpOwogCQloZWFwU2Nh biA9IChIZWFwU2NhbkRlc2MpIHRhYmxlU2NhbjsKIAkJaW5kZXhTY2FuID0gTlVMTDsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaW5kZXgvZ2VuYW0uYwppbmRleCA1ZTg5Yjg2YTYyYy4uMTQwODk4OWM1NjggMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9pbmRleC9nZW5hbS5jCkBAIC00NTUsNyArNDU1LDggQEAgc3lzdGFibGVfYmVnaW5z Y2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJfQogCiAJCXN5c3NjYW4tPmlzY2FuID0gaW5k ZXhfYmVnaW5zY2FuKGhlYXBSZWxhdGlvbiwgaXJlbCwKLQkJCQkJCQkJCQkgc25hcHNob3QsIE5V TEwsIG5rZXlzLCAwKTsKKwkJCQkJCQkJCQkgc25hcHNob3QsIE5VTEwsIG5rZXlzLCAwLAorCQkJ CQkJCQkJCSBTT19OT05FKTsKIAkJaW5kZXhfcmVzY2FuKHN5c3NjYW4tPmlzY2FuLCBpZHhrZXks IG5rZXlzLCBOVUxMLCAwKTsKIAkJc3lzc2Nhbi0+c2NhbiA9IE5VTEw7CiAKQEAgLTcxNiw3ICs3 MTcsOCBAQCBzeXN0YWJsZV9iZWdpbnNjYW5fb3JkZXJlZChSZWxhdGlvbiBoZWFwUmVsYXRpb24s CiAJCWJzeXNzY2FuID0gdHJ1ZTsKIAogCXN5c3NjYW4tPmlzY2FuID0gaW5kZXhfYmVnaW5zY2Fu KGhlYXBSZWxhdGlvbiwgaW5kZXhSZWxhdGlvbiwKLQkJCQkJCQkJCSBzbmFwc2hvdCwgTlVMTCwg bmtleXMsIDApOworCQkJCQkJCQkJIHNuYXBzaG90LCBOVUxMLCBua2V5cywgMCwKKwkJCQkJCQkJ CSBTT19OT05FKTsKIAlpbmRleF9yZXNjYW4oc3lzc2Nhbi0+aXNjYW4sIGlkeGtleSwgbmtleXMs IE5VTEwsIDApOwogCXN5c3NjYW4tPnNjYW4gPSBOVUxMOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2lu ZGV4YW0uYwppbmRleCBmYmZjMzMxNTllYi4uMTNjZGJiODZjZDcgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2lu ZGV4L2luZGV4YW0uYwpAQCAtMjU4LDcgKzI1OCw4IEBAIGluZGV4X2JlZ2luc2NhbihSZWxhdGlv biBoZWFwUmVsYXRpb24sCiAJCQkJUmVsYXRpb24gaW5kZXhSZWxhdGlvbiwKIAkJCQlTbmFwc2hv dCBzbmFwc2hvdCwKIAkJCQlJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCi0J CQkJaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzKQorCQkJCWludCBua2V5cywgaW50IG5vcmRlcmJ5 cywKKwkJCQl1aW50MzIgZmxhZ3MpCiB7CiAJSW5kZXhTY2FuRGVzYyBzY2FuOwogCkBAIC0yODUs NyArMjg2LDcgQEAgaW5kZXhfYmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAlzY2Fu LT5pbnN0cnVtZW50ID0gaW5zdHJ1bWVudDsKIAogCS8qIHByZXBhcmUgdG8gZmV0Y2ggaW5kZXgg bWF0Y2hlcyBmcm9tIHRhYmxlICovCi0Jc2Nhbi0+eHNfaGVhcGZldGNoID0gdGFibGVfaW5kZXhf ZmV0Y2hfYmVnaW4oaGVhcFJlbGF0aW9uKTsKKwlzY2FuLT54c19oZWFwZmV0Y2ggPSB0YWJsZV9p bmRleF9mZXRjaF9iZWdpbihoZWFwUmVsYXRpb24sIGZsYWdzKTsKIAogCXJldHVybiBzY2FuOwog fQpAQCAtNTk0LDcgKzU5NSw4IEBAIEluZGV4U2NhbkRlc2MKIGluZGV4X2JlZ2luc2Nhbl9wYXJh bGxlbChSZWxhdGlvbiBoZWFwcmVsLCBSZWxhdGlvbiBpbmRleHJlbCwKIAkJCQkJCSBJbmRleFNj YW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCiAJCQkJCQkgaW50IG5rZXlzLCBpbnQgbm9y ZGVyYnlzLAotCQkJCQkJIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2NhbikKKwkJCQkJCSBQYXJh bGxlbEluZGV4U2NhbkRlc2MgcHNjYW4sCisJCQkJCQkgdWludDMyIGZsYWdzKQogewogCVNuYXBz aG90CXNuYXBzaG90OwogCUluZGV4U2NhbkRlc2Mgc2NhbjsKQEAgLTYxNiw3ICs2MTgsNyBAQCBp bmRleF9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gaGVhcHJlbCwgUmVsYXRpb24gaW5kZXhy ZWwsCiAJc2Nhbi0+aW5zdHJ1bWVudCA9IGluc3RydW1lbnQ7CiAKIAkvKiBwcmVwYXJlIHRvIGZl dGNoIGluZGV4IG1hdGNoZXMgZnJvbSB0YWJsZSAqLwotCXNjYW4tPnhzX2hlYXBmZXRjaCA9IHRh YmxlX2luZGV4X2ZldGNoX2JlZ2luKGhlYXByZWwpOworCXNjYW4tPnhzX2hlYXBmZXRjaCA9IHRh YmxlX2luZGV4X2ZldGNoX2JlZ2luKGhlYXByZWwsIGZsYWdzKTsKIAogCXJldHVybiBzY2FuOwog fQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwppbmRleCA0N2E5YmRhMzBjOS4uNzU2ZGZh M2RjZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jCkBAIC0xOTI4LDcgKzE5Mjgs OCBAQCBfYnRfcGFyYWxsZWxfc2Nhbl9hbmRfc29ydChCVFNwb29sICpidHNwb29sLCBCVFNwb29s ICpidHNwb29sMiwKIAlpbmRleEluZm8gPSBCdWlsZEluZGV4SW5mbyhidHNwb29sLT5pbmRleCk7 CiAJaW5kZXhJbmZvLT5paV9Db25jdXJyZW50ID0gYnRzaGFyZWQtPmlzY29uY3VycmVudDsKIAlz Y2FuID0gdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKGJ0c3Bvb2wtPmhlYXAsCi0JCQkJCQkJCQlQ YXJhbGxlbFRhYmxlU2NhbkZyb21CVFNoYXJlZChidHNoYXJlZCkpOworCQkJCQkJCQkJUGFyYWxs ZWxUYWJsZVNjYW5Gcm9tQlRTaGFyZWQoYnRzaGFyZWQpLAorCQkJCQkJCQkJU09fTk9ORSk7CiAJ cmVsdHVwbGVzID0gdGFibGVfaW5kZXhfYnVpbGRfc2NhbihidHNwb29sLT5oZWFwLCBidHNwb29s LT5pbmRleCwgaW5kZXhJbmZvLAogCQkJCQkJCQkJICAgdHJ1ZSwgcHJvZ3Jlc3MsIF9idF9idWls ZF9jYWxsYmFjaywKIAkJCQkJCQkJCSAgICZidWlsZHN0YXRlLCBzY2FuKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv dGFibGUvdGFibGVhbS5jCmluZGV4IGRmZGExYWY0MTJlLi44NjQ4MWQ3YzAyOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxlYW0uYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvdGFibGUvdGFibGVhbS5jCkBAIC0xMTgsNyArMTE4LDcgQEAgdGFibGVfYmVnaW5zY2Fu X2NhdGFsb2coUmVsYXRpb24gcmVsYXRpb24sIGludCBua2V5cywgU2NhbktleURhdGEgKmtleSkK IAlTbmFwc2hvdAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0Q2F0YWxvZ1NuYXBzaG90 KHJlbGlkKSk7CiAKIAlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWxhdGlvbiwgc25h cHNob3QsIG5rZXlzLCBrZXksCi0JCQkJCQkJCSAgTlVMTCwgZmxhZ3MpOworCQkJCQkJCQkgIE5V TEwsIGZsYWdzLCBTT19OT05FKTsKIH0KIAogCkBAIC0xNjMsMTAgKzE2MywxMSBAQCB0YWJsZV9w YXJhbGxlbHNjYW5faW5pdGlhbGl6ZShSZWxhdGlvbiByZWwsIFBhcmFsbGVsVGFibGVTY2FuRGVz YyBwc2NhbiwKIH0KIAogVGFibGVTY2FuRGVzYwotdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJl bGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCit0YWJsZV9iZWdp bnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBw c2NhbiwKKwkJCQkJCSB1aW50MzIgZmxhZ3MpCiB7CiAJU25hcHNob3QJc25hcHNob3Q7Ci0JdWlu dDMyCQlmbGFncyA9IFNPX1RZUEVfU0VRU0NBTiB8CisJdWludDMyCQlpbnRlcm5hbF9mbGFncyA9 IFNPX1RZUEVfU0VRU0NBTiB8CiAJCVNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8IFNP X0FMTE9XX1BBR0VNT0RFOwogCiAJQXNzZXJ0KFJlbEZpbGVMb2NhdG9yRXF1YWxzKHJlbGF0aW9u LT5yZF9sb2NhdG9yLCBwc2Nhbi0+cGhzX2xvY2F0b3IpKTsKQEAgLTE3Niw3ICsxNzcsNyBAQCB0 YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVT Y2FuRGVzYyBwc2NhbikKIAkJLyogU25hcHNob3Qgd2FzIHNlcmlhbGl6ZWQgLS0gcmVzdG9yZSBp dCAqLwogCQlzbmFwc2hvdCA9IFJlc3RvcmVTbmFwc2hvdCgoY2hhciAqKSBwc2NhbiArIHBzY2Fu LT5waHNfc25hcHNob3Rfb2ZmKTsKIAkJUmVnaXN0ZXJTbmFwc2hvdChzbmFwc2hvdCk7Ci0JCWZs YWdzIHw9IFNPX1RFTVBfU05BUFNIT1Q7CisJCWludGVybmFsX2ZsYWdzIHw9IFNPX1RFTVBfU05B UFNIT1Q7CiAJfQogCWVsc2UKIAl7CkBAIC0xODUsMTYgKzE4NiwxNyBAQCB0YWJsZV9iZWdpbnNj YW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2Nh bikKIAl9CiAKIAlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWxhdGlvbiwgc25hcHNo b3QsIDAsIE5VTEwsCi0JCQkJCQkJCSAgcHNjYW4sIGZsYWdzKTsKKwkJCQkJCQkJICBwc2Nhbiwg aW50ZXJuYWxfZmxhZ3MsIGZsYWdzKTsKIH0KIAogVGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5z Y2FuX3BhcmFsbGVsX3RpZHJhbmdlKFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkgIFBhcmFs bGVsVGFibGVTY2FuRGVzYyBwc2NhbikKKwkJCQkJCQkJICBQYXJhbGxlbFRhYmxlU2NhbkRlc2Mg cHNjYW4sCisJCQkJCQkJCSAgdWludDMyIGZsYWdzKQogewogCVNuYXBzaG90CXNuYXBzaG90Owot CXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1RJRFJBTkdFU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RF OwogCVRhYmxlU2NhbkRlc2Mgc3NjYW47CisJdWludDMyCQlpbnRlcm5hbF9mbGFncyA9IFNPX1RZ UEVfVElEUkFOR0VTQ0FOIHwgU09fQUxMT1dfUEFHRU1PREU7CiAKIAlBc3NlcnQoUmVsRmlsZUxv Y2F0b3JFcXVhbHMocmVsYXRpb24tPnJkX2xvY2F0b3IsIHBzY2FuLT5waHNfbG9jYXRvcikpOwog CkBAIC0yMDYsNyArMjA4LDcgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3RpZHJhbmdlKFJl bGF0aW9uIHJlbGF0aW9uLAogCQkvKiBTbmFwc2hvdCB3YXMgc2VyaWFsaXplZCAtLSByZXN0b3Jl IGl0ICovCiAJCXNuYXBzaG90ID0gUmVzdG9yZVNuYXBzaG90KChjaGFyICopIHBzY2FuICsgcHNj YW4tPnBoc19zbmFwc2hvdF9vZmYpOwogCQlSZWdpc3RlclNuYXBzaG90KHNuYXBzaG90KTsKLQkJ ZmxhZ3MgfD0gU09fVEVNUF9TTkFQU0hPVDsKKwkJaW50ZXJuYWxfZmxhZ3MgfD0gU09fVEVNUF9T TkFQU0hPVDsKIAl9CiAJZWxzZQogCXsKQEAgLTIxNSw3ICsyMTcsNyBAQCB0YWJsZV9iZWdpbnNj YW5fcGFyYWxsZWxfdGlkcmFuZ2UoUmVsYXRpb24gcmVsYXRpb24sCiAJfQogCiAJc3NjYW4gPSB0 YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbGF0aW9uLCBzbmFwc2hvdCwgMCwgTlVMTCwKLQkJCQkJ CQkJICAgcHNjYW4sIGZsYWdzKTsKKwkJCQkJCQkJICAgcHNjYW4sIGludGVybmFsX2ZsYWdzLCBm bGFncyk7CiAJcmV0dXJuIHNzY2FuOwogfQogCkBAIC0yNDgsNyArMjUwLDcgQEAgdGFibGVfaW5k ZXhfZmV0Y2hfdHVwbGVfY2hlY2soUmVsYXRpb24gcmVsLAogCWJvb2wJCWZvdW5kOwogCiAJc2xv dCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHJlbCwgTlVMTCk7Ci0Jc2NhbiA9IHRhYmxlX2luZGV4X2Zl dGNoX2JlZ2luKHJlbCk7CisJc2NhbiA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKHJlbCwgU09f Tk9ORSk7CiAJZm91bmQgPSB0YWJsZV9pbmRleF9mZXRjaF90dXBsZShzY2FuLCB0aWQsIHNuYXBz aG90LCBzbG90LCAmY2FsbF9hZ2FpbiwKIAkJCQkJCQkJCWFsbF9kZWFkKTsKIAl0YWJsZV9pbmRl eF9mZXRjaF9lbmQoc2Nhbik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb25z dHJhaW50LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb25zdHJhaW50LmMKaW5kZXggY2MxMWM0 N2I2ZjIuLjQyMWQ4YzM1OWYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb25z dHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29uc3RyYWludC5jCkBAIC0xMDYs NyArMTA2LDggQEAgdW5pcXVlX2tleV9yZWNoZWNrKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICovCiAJ dG1wdGlkID0gY2hlY2t0aWQ7CiAJewotCQlJbmRleEZldGNoVGFibGVEYXRhICpzY2FuID0gdGFi bGVfaW5kZXhfZmV0Y2hfYmVnaW4odHJpZ2RhdGEtPnRnX3JlbGF0aW9uKTsKKwkJSW5kZXhGZXRj aFRhYmxlRGF0YSAqc2NhbiA9IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKHRyaWdkYXRhLT50Z19y ZWxhdGlvbiwKKwkJCQkJCQkJCQkJCQkJCVNPX05PTkUpOwogCQlib29sCQljYWxsX2FnYWluID0g ZmFsc2U7CiAKIAkJaWYgKCF0YWJsZV9pbmRleF9mZXRjaF90dXBsZShzY2FuLCAmdG1wdGlkLCBT bmFwc2hvdFNlbGYsIHNsb3QsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5 dG8uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jCmluZGV4IGZhZjYyZDk1OWI0Li5m MGUwMTQ3YzY2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMKQEAgLTEzMzYsNyArMTMzNiw4IEBAIENv cHlSZWxhdGlvblRvKENvcHlUb1N0YXRlIGNzdGF0ZSwgUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBy b290X3JlbCwgdWludDY0ICpwcm9jCiAJQXR0ck1hcCAgICAqbWFwID0gTlVMTDsKIAlUdXBsZVRh YmxlU2xvdCAqcm9vdF9zbG90ID0gTlVMTDsKIAotCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2Fu KHJlbCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCk7CisJc2NhbmRlc2MgPSB0YWJsZV9i ZWdpbnNjYW4ocmVsLCBHZXRBY3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMLAorCQkJCQkJCSAgIFNP X05PTkUpOwogCXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZShyZWwsIE5VTEwpOwogCiAJLyoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggYzY5YzEyZGMwMTQuLmVjMDA2MzI4N2QwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNjQxMSw3ICs2NDExLDggQEAgQVRSZXdyaXRlVGFi bGUoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBPaWQgT0lETmV3SGVhcCkKIAkJICogY2hlY2tpbmcg YWxsIHRoZSBjb25zdHJhaW50cy4KIAkJICovCiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hv dChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihvbGRyZWws IHNuYXBzaG90LCAwLCBOVUxMKTsKKwkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihvbGRyZWwsIHNu YXBzaG90LCAwLCBOVUxMLAorCQkJCQkJCSAgIFNPX05PTkUpOwogCiAJCS8qCiAJCSAqIFN3aXRj aCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZvciBlYWNoIHR1cGxl CkBAIC0xMzk4MCw4ICsxMzk4MSw4IEBAIHZhbGlkYXRlRm9yZWlnbktleUNvbnN0cmFpbnQoY2hh ciAqY29ubmFtZSwKIAkgKi8KIAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0 U25hcHNob3QoKSk7CiAJc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHJlbCwgTlVMTCk7Ci0Jc2Nh biA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIHNuYXBzaG90LCAwLCBOVUxMKTsKLQorCXNjYW4gPSB0 YWJsZV9iZWdpbnNjYW4ocmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwKKwkJCQkJCSAgIFNPX05PTkUp OwogCXBlclR1cEN4dCA9IEFsbG9jU2V0Q29udGV4dENyZWF0ZShDdXJyZW50TWVtb3J5Q29udGV4 dCwKIAkJCQkJCQkJCSAgInZhbGlkYXRlRm9yZWlnbktleUNvbnN0cmFpbnQiLAogCQkJCQkJCQkJ ICBBTExPQ1NFVF9TTUFMTF9TSVpFUyk7CkBAIC0yMjg4Miw3ICsyMjg4Myw4IEBAIE1lcmdlUGFy dGl0aW9uc01vdmVSb3dzKExpc3QgKip3cXVldWUsIExpc3QgKm1lcmdpbmdQYXJ0aXRpb25zLCBS ZWxhdGlvbiBuZXdQYXJ0CiAKIAkJLyogU2NhbiB0aHJvdWdoIHRoZSByb3dzLiAqLwogCQlzbmFw c2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNob3QoKSk7Ci0JCXNjYW4gPSB0 YWJsZV9iZWdpbnNjYW4obWVyZ2luZ1BhcnRpdGlvbiwgc25hcHNob3QsIDAsIE5VTEwpOworCQlz Y2FuID0gdGFibGVfYmVnaW5zY2FuKG1lcmdpbmdQYXJ0aXRpb24sIHNuYXBzaG90LCAwLCBOVUxM LAorCQkJCQkJCSAgIFNPX05PTkUpOwogCiAJCS8qCiAJCSAqIFN3aXRjaCB0byBwZXItdHVwbGUg bWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZvciBlYWNoIHR1cGxlCkBAIC0yMzM0Niw3ICsy MzM0OCw4IEBAIFNwbGl0UGFydGl0aW9uTW92ZVJvd3MoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24g cmVsLCBSZWxhdGlvbiBzcGxpdFJlbCwKIAogCS8qIFNjYW4gdGhyb3VnaCB0aGUgcm93cy4gKi8K IAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNob3QoKSk7Ci0Jc2Nh biA9IHRhYmxlX2JlZ2luc2NhbihzcGxpdFJlbCwgc25hcHNob3QsIDAsIE5VTEwpOworCXNjYW4g PSB0YWJsZV9iZWdpbnNjYW4oc3BsaXRSZWwsIHNuYXBzaG90LCAwLCBOVUxMLAorCQkJCQkJICAg U09fTk9ORSk7CiAKIAkvKgogCSAqIFN3aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQg YW5kIHJlc2V0IGl0IGZvciBlYWNoIHR1cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy90eXBlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwppbmRleCAz ZGFiNmJiNWE3OS4uY2QzOGU5Y2RkZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3R5cGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwpAQCAtMzE4 NSw3ICszMTg1LDggQEAgdmFsaWRhdGVEb21haW5Ob3ROdWxsQ29uc3RyYWludChPaWQgZG9tYWlu b2lkKQogCiAJCS8qIFNjYW4gYWxsIHR1cGxlcyBpbiB0aGlzIHJlbGF0aW9uICovCiAJCXNuYXBz aG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRh YmxlX2JlZ2luc2Nhbih0ZXN0cmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJs ZV9iZWdpbnNjYW4odGVzdHJlbCwgc25hcHNob3QsIDAsIE5VTEwsCisJCQkJCQkJICAgU09fTk9O RSk7CiAJCXNsb3QgPSB0YWJsZV9zbG90X2NyZWF0ZSh0ZXN0cmVsLCBOVUxMKTsKIAkJd2hpbGUg KHRhYmxlX3NjYW5fZ2V0bmV4dHNsb3Qoc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIHNsb3Qp KQogCQl7CkBAIC0zMjY2LDcgKzMyNjcsOCBAQCB2YWxpZGF0ZURvbWFpbkNoZWNrQ29uc3RyYWlu dChPaWQgZG9tYWlub2lkLCBjb25zdCBjaGFyICpjY2JpbiwgTE9DS01PREUgbG9ja21vZAogCiAJ CS8qIFNjYW4gYWxsIHR1cGxlcyBpbiB0aGlzIHJlbGF0aW9uICovCiAJCXNuYXBzaG90ID0gUmVn aXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2lu c2Nhbih0ZXN0cmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNj YW4odGVzdHJlbCwgc25hcHNob3QsIDAsIE5VTEwsCisJCQkJCQkJICAgU09fTk9ORSk7CiAJCXNs b3QgPSB0YWJsZV9zbG90X2NyZWF0ZSh0ZXN0cmVsLCBOVUxMKTsKIAkJd2hpbGUgKHRhYmxlX3Nj YW5fZ2V0bmV4dHNsb3Qoc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIHNsb3QpKQogCQl7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCmluZGV4IDlkMDcxZTQ5NWM2Li5jYzZlYjNhNmVl OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKQEAgLTgxNSw3ICs4MTUsOSBAQCBj aGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnQoUmVsYXRpb24gaGVhcCwgUmVsYXRp b24gaW5kZXgsCiByZXRyeToKIAljb25mbGljdCA9IGZhbHNlOwogCWZvdW5kX3NlbGYgPSBmYWxz ZTsKLQlpbmRleF9zY2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXAsIGluZGV4LCAmRGlydHlTbmFw c2hvdCwgTlVMTCwgaW5kbmtleWF0dHMsIDApOworCWluZGV4X3NjYW4gPSBpbmRleF9iZWdpbnNj YW4oaGVhcCwgaW5kZXgsCisJCQkJCQkJCSAmRGlydHlTbmFwc2hvdCwgTlVMTCwgaW5kbmtleWF0 dHMsIDAsCisJCQkJCQkJCSBTT19OT05FKTsKIAlpbmRleF9yZXNjYW4oaW5kZXhfc2Nhbiwgc2Nh bmtleXMsIGluZG5rZXlhdHRzLCBOVUxMLCAwKTsKIAogCXdoaWxlIChpbmRleF9nZXRuZXh0X3Ns b3QoaW5kZXhfc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIGV4aXN0aW5nX3Nsb3QpKQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYwppbmRleCAyNDk3ZWU3ZWRjNS4uZmVhODk5 MWNiMDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCkBAIC0yMDUsNyAr MjA1LDggQEAgUmVsYXRpb25GaW5kUmVwbFR1cGxlQnlJbmRleChSZWxhdGlvbiByZWwsIE9pZCBp ZHhvaWQsCiAJc2tleV9hdHRvZmYgPSBidWlsZF9yZXBsaW5kZXhfc2Nhbl9rZXkoc2tleSwgcmVs LCBpZHhyZWwsIHNlYXJjaHNsb3QpOwogCiAJLyogU3RhcnQgYW4gaW5kZXggc2Nhbi4gKi8KLQlz Y2FuID0gaW5kZXhfYmVnaW5zY2FuKHJlbCwgaWR4cmVsLCAmc25hcCwgTlVMTCwgc2tleV9hdHRv ZmYsIDApOworCXNjYW4gPSBpbmRleF9iZWdpbnNjYW4ocmVsLCBpZHhyZWwsCisJCQkJCQkgICAm c25hcCwgTlVMTCwgc2tleV9hdHRvZmYsIDAsIFNPX05PTkUpOwogCiByZXRyeToKIAlmb3VuZCA9 IGZhbHNlOwpAQCAtMzgzLDcgKzM4NCw4IEBAIFJlbGF0aW9uRmluZFJlcGxUdXBsZVNlcShSZWxh dGlvbiByZWwsIExvY2tUdXBsZU1vZGUgbG9ja21vZGUsCiAKIAkvKiBTdGFydCBhIGhlYXAgc2Nh bi4gKi8KIAlJbml0RGlydHlTbmFwc2hvdChzbmFwKTsKLQlzY2FuID0gdGFibGVfYmVnaW5zY2Fu KHJlbCwgJnNuYXAsIDAsIE5VTEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCAmc25h cCwgMCwgTlVMTCwKKwkJCQkJCSAgIFNPX05PTkUpOwogCXNjYW5zbG90ID0gdGFibGVfc2xvdF9j cmVhdGUocmVsLCBOVUxMKTsKIAogcmV0cnk6CkBAIC02MDIsNyArNjA0LDggQEAgUmVsYXRpb25G aW5kRGVsZXRlZFR1cGxlSW5mb1NlcShSZWxhdGlvbiByZWwsIFR1cGxlVGFibGVTbG90ICpzZWFy Y2hzbG90LAogCSAqIG5vdCB5ZXQgY29tbWl0dGVkIG9yIHRob3NlIGp1c3QgY29tbWl0dGVkIHBy aW9yIHRvIHRoZSBzY2FuIGFyZQogCSAqIGV4Y2x1ZGVkIGluIHVwZGF0ZV9tb3N0X3JlY2VudF9k ZWxldGlvbl9pbmZvKCkuCiAJICovCi0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIFNuYXBz aG90QW55LCAwLCBOVUxMKTsKKwlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgU25hcHNob3RB bnksIDAsIE5VTEwsCisJCQkJCQkgICBTT19OT05FKTsKIAlzY2Fuc2xvdCA9IHRhYmxlX3Nsb3Rf Y3JlYXRlKHJlbCwgTlVMTCk7CiAKIAl0YWJsZV9yZXNjYW4oc2NhbiwgTlVMTCk7CkBAIC02NjYs NyArNjY5LDggQEAgUmVsYXRpb25GaW5kRGVsZXRlZFR1cGxlSW5mb0J5SW5kZXgoUmVsYXRpb24g cmVsLCBPaWQgaWR4b2lkLAogCSAqIG5vdCB5ZXQgY29tbWl0dGVkIG9yIHRob3NlIGp1c3QgY29t bWl0dGVkIHByaW9yIHRvIHRoZSBzY2FuIGFyZQogCSAqIGV4Y2x1ZGVkIGluIHVwZGF0ZV9tb3N0 X3JlY2VudF9kZWxldGlvbl9pbmZvKCkuCiAJICovCi0Jc2NhbiA9IGluZGV4X2JlZ2luc2Nhbihy ZWwsIGlkeHJlbCwgU25hcHNob3RBbnksIE5VTEwsIHNrZXlfYXR0b2ZmLCAwKTsKKwlzY2FuID0g aW5kZXhfYmVnaW5zY2FuKHJlbCwgaWR4cmVsLAorCQkJCQkJICAgU25hcHNob3RBbnksIE5VTEws IHNrZXlfYXR0b2ZmLCAwLCBTT19OT05FKTsKIAogCWluZGV4X3Jlc2NhbihzY2FuLCBza2V5LCBz a2V5X2F0dG9mZiwgTlVMTCwgMCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVCaXRtYXBIZWFwc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhl YXBzY2FuLmMKaW5kZXggN2NmOGQyM2M3NDIuLjY5NjgzZDgxNTI3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwpAQCAtMTQ4LDcgKzE0OCw4IEBAIEJpdG1hcFRh YmxlU2NhblNldHVwKEJpdG1hcEhlYXBTY2FuU3RhdGUgKm5vZGUpCiAJCQl0YWJsZV9iZWdpbnNj YW5fYm0obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCSAgIG5vZGUtPnNzLnBz LnN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkgICAwLAotCQkJCQkJCSAgIE5VTEwpOworCQkJ CQkJCSAgIE5VTEwsCisJCQkJCQkJICAgU09fTk9ORSk7CiAJfQogCiAJbm9kZS0+c3Muc3NfY3Vy cmVudFNjYW5EZXNjLT5zdC5yc190Ym1pdGVyYXRvciA9IHRibWl0ZXJhdG9yOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKaW5kZXggOWVhYjgxZmQxYzguLjAyZGY0MGYz MmM1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5j CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKQEAgLTk1LDcg Kzk1LDggQEAgSW5kZXhPbmx5TmV4dChJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUpCiAJCQkJCQkJ CSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfSW5zdHJ1bWVu dCwKIAkJCQkJCQkJICAgbm9kZS0+aW9zc19OdW1TY2FuS2V5cywKLQkJCQkJCQkJICAgbm9kZS0+ aW9zc19OdW1PcmRlckJ5S2V5cyk7CisJCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtl eXMsCisJCQkJCQkJCSAgIFNPX05PTkUpOwogCiAJCW5vZGUtPmlvc3NfU2NhbkRlc2MgPSBzY2Fu ZGVzYzsKIApAQCAtNzk0LDcgKzc5NSw4IEBAIEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlhbGl6ZURT TShJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUsCiAJCQkJCQkJCSBub2RlLT5pb3NzX0luc3RydW1l bnQsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aW9z c19OdW1PcmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4sCisJ CQkJCQkJCSBTT19OT05FKTsKIAlub2RlLT5pb3NzX1NjYW5EZXNjLT54c193YW50X2l0dXAgPSB0 cnVlOwogCW5vZGUtPmlvc3NfVk1CdWZmZXIgPSBJbnZhbGlkQnVmZmVyOwogCkBAIC04NjAsNyAr ODYyLDggQEAgRXhlY0luZGV4T25seVNjYW5Jbml0aWFsaXplV29ya2VyKEluZGV4T25seVNjYW5T dGF0ZSAqbm9kZSwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5v ZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bU9yZGVyQnlLZXlz LAotCQkJCQkJCQkgcGlzY2FuKTsKKwkJCQkJCQkJIHBpc2NhbiwKKwkJCQkJCQkJIFNPX05PTkUp OwogCW5vZGUtPmlvc3NfU2NhbkRlc2MtPnhzX3dhbnRfaXR1cCA9IHRydWU7CiAKIAkvKgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCmluZGV4IDA2MTQzZTk0YzVhLi4zYzBiOGRhZjY2 NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwpAQCAtMTEzLDcgKzExMyw4IEBA IEluZGV4TmV4dChJbmRleFNjYW5TdGF0ZSAqbm9kZSkKIAkJCQkJCQkJICAgZXN0YXRlLT5lc19z bmFwc2hvdCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX0luc3RydW1lbnQsCiAJCQkJCQkJCSAgIG5v ZGUtPmlzc19OdW1TY2FuS2V5cywKLQkJCQkJCQkJICAgbm9kZS0+aXNzX051bU9yZGVyQnlLZXlz KTsKKwkJCQkJCQkJICAgbm9kZS0+aXNzX051bU9yZGVyQnlLZXlzLAorCQkJCQkJCQkgICBTT19O T05FKTsKIAogCQlub2RlLT5pc3NfU2NhbkRlc2MgPSBzY2FuZGVzYzsKIApAQCAtMjA5LDcgKzIx MCw4IEBAIEluZGV4TmV4dFdpdGhSZW9yZGVyKEluZGV4U2NhblN0YXRlICpub2RlKQogCQkJCQkJ CQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkgICBub2RlLT5pc3NfSW5zdHJ1bWVu dCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAotCQkJCQkJCQkgICBub2RlLT5p c3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMs CisJCQkJCQkJCSAgIFNPX05PTkUpOwogCiAJCW5vZGUtPmlzc19TY2FuRGVzYyA9IHNjYW5kZXNj OwogCkBAIC0xNzMwLDcgKzE3MzIsOCBAQCBFeGVjSW5kZXhTY2FuSW5pdGlhbGl6ZURTTShJbmRl eFNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJIG5vZGUtPmlzc19JbnN0cnVtZW50LAogCQkJCQkJ CQkgbm9kZS0+aXNzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aXNzX051bU9yZGVyQnlL ZXlzLAotCQkJCQkJCQkgcGlzY2FuKTsKKwkJCQkJCQkJIHBpc2NhbiwKKwkJCQkJCQkJIFNPX05P TkUpOwogCiAJLyoKIAkgKiBJZiBubyBydW4tdGltZSBrZXlzIHRvIGNhbGN1bGF0ZSBvciB0aGV5 IGFyZSByZWFkeSwgZ28gYWhlYWQgYW5kIHBhc3MKQEAgLTE3OTQsNyArMTc5Nyw4IEBAIEV4ZWNJ bmRleFNjYW5Jbml0aWFsaXplV29ya2VyKEluZGV4U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkg bm9kZS0+aXNzX0luc3RydW1lbnQsCiAJCQkJCQkJCSBub2RlLT5pc3NfTnVtU2NhbktleXMsCiAJ CQkJCQkJCSBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBwaXNjYW4pOworCQkJ CQkJCQkgcGlzY2FuLAorCQkJCQkJCQkgU09fTk9ORSk7CiAKIAkvKgogCSAqIElmIG5vIHJ1bi10 aW1lIGtleXMgdG8gY2FsY3VsYXRlIG9yIHRoZXkgYXJlIHJlYWR5LCBnbyBhaGVhZCBhbmQgcGFz cwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKaW5kZXggNmIwZDY1Zjc1MmYuLmNm MzJkZjMzZDgyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nh bi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKQEAgLTI5OCw3 ICsyOTgsOCBAQCB0YWJsZXNhbXBsZV9pbml0KFNhbXBsZVNjYW5TdGF0ZSAqc2NhbnN0YXRlKQog CQkJCQkJCQkJIDAsIE5VTEwsCiAJCQkJCQkJCQkgc2NhbnN0YXRlLT51c2VfYnVsa3JlYWQsCiAJ CQkJCQkJCQkgYWxsb3dfc3luYywKLQkJCQkJCQkJCSBzY2Fuc3RhdGUtPnVzZV9wYWdlbW9kZSk7 CisJCQkJCQkJCQkgc2NhbnN0YXRlLT51c2VfcGFnZW1vZGUsCisJCQkJCQkJCQkgU09fTk9ORSk7 CiAJfQogCWVsc2UKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vx c2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYwppbmRleCA4ZjIxOWY2 MGE5My4uMDljY2M2NWRlMWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVT ZXFzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYwpAQCAtNzEs NyArNzEsOCBAQCBTZXFOZXh0KFNlcVNjYW5TdGF0ZSAqbm9kZSkKIAkJICovCiAJCXNjYW5kZXNj ID0gdGFibGVfYmVnaW5zY2FuKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJ ICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKLQkJCQkJCQkJICAgMCwgTlVMTCk7CisJCQkJCQkJCSAg IDAsIE5VTEwsCisJCQkJCQkJCSAgIFNPX05PTkUpOwogCQlub2RlLT5zcy5zc19jdXJyZW50U2Nh bkRlc2MgPSBzY2FuZGVzYzsKIAl9CiAKQEAgLTM3NSw3ICszNzYsOCBAQCBFeGVjU2VxU2Nhbklu aXRpYWxpemVEU00oU2VxU2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgIGVzdGF0ZS0+ZXNfc25h cHNob3QpOwogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxh bl9ub2RlX2lkLCBwc2Nhbik7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFi bGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4p OworCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9u LCBwc2NhbiwKKwkJCQkJCQkJIFNPX05PTkUpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MDgsNSAr NDEwLDYgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplV29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9kZSwK IAogCXBzY2FuID0gc2htX3RvY19sb29rdXAocHdjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+ cGxhbl9ub2RlX2lkLCBmYWxzZSk7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJ dGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNj YW4pOworCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0 aW9uLCBwc2NhbiwKKwkJCQkJCQkJIFNPX05PTkUpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVRpZHJhbmdlc2Nhbi5jCmluZGV4IDYxNzcxM2JkZTA0Li4wODRlNGM2ZWM5MCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCisrKyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYwpAQCAtMjQ1LDcgKzI0NSw4IEBAIFRpZFJh bmdlTmV4dChUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSkKIAkJCXNjYW5kZXNjID0gdGFibGVfYmVn aW5zY2FuX3RpZHJhbmdlKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJCQkJ CWVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19taW50aWQsCi0J CQkJCQkJCQkJCQkmbm9kZS0+dHJzc19tYXh0aWQpOworCQkJCQkJCQkJCQkJJm5vZGUtPnRyc3Nf bWF4dGlkLAorCQkJCQkJCQkJCQkJU09fTk9ORSk7CiAJCQlub2RlLT5zcy5zc19jdXJyZW50U2Nh bkRlc2MgPSBzY2FuZGVzYzsKIAkJfQogCQllbHNlCkBAIC00NjAsNyArNDYxLDcgQEAgRXhlY1Rp ZFJhbmdlU2NhbkluaXRpYWxpemVEU00oVGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUsIFBhcmFsbGVs Q29udGV4dCAqcGN4dCkKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIG5vZGUtPnNzLnBzLnBs YW4tPnBsYW5fbm9kZV9pZCwgcHNjYW4pOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9 CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShub2RlLT5zcy5zc19jdXJyZW50 UmVsYXRpb24sCi0JCQkJCQkJCQkJICBwc2Nhbik7CisJCQkJCQkJCQkJICBwc2NhbiwgU09fTk9O RSk7CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ5NCw1ICs0OTUsNSBAQCBFeGVjVGlkUmFuZ2VTY2Fu SW5pdGlhbGl6ZVdvcmtlcihUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwKIAlwc2NhbiA9IHNobV90 b2NfbG9va3VwKHB3Y3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFs c2UpOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9w YXJhbGxlbF90aWRyYW5nZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCQkJ ICBwc2Nhbik7CisJCQkJCQkJCQkJICBwc2NhbiwgU09fTk9ORSk7CiB9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jIGIvc3JjL2JhY2tlbmQvcGFydGl0 aW9uaW5nL3BhcnRib3VuZHMuYwppbmRleCAwY2EzMTJhYzI3ZC4uZjg2N2QxYjc1YTUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYwpAQCAtMzM2Miw3ICszMzYyLDggQEAgY2hl Y2tfZGVmYXVsdF9wYXJ0aXRpb25fY29udGVudHMoUmVsYXRpb24gcGFyZW50LCBSZWxhdGlvbiBk ZWZhdWx0X3JlbCwKIAkJZWNvbnRleHQgPSBHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSk7 CiAJCXNuYXBzaG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKIAkJ dHVwc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHBhcnRfcmVsLCAmZXN0YXRlLT5lc190dXBsZVRh YmxlKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihwYXJ0X3JlbCwgc25hcHNob3QsIDAsIE5V TEwpOworCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHBhcnRfcmVsLCBzbmFwc2hvdCwgMCwgTlVM TCwKKwkJCQkJCQkgICBTT19OT05FKTsKIAogCQkvKgogCQkgKiBTd2l0Y2ggdG8gcGVyLXR1cGxl IG1lbW9yeSBjb250ZXh0IGFuZCByZXNldCBpdCBmb3IgZWFjaCB0dXBsZQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv c2VsZnVuY3MuYwppbmRleCA1M2Y4NWNjZGUwMS4uNDE2MGQyZDZlMjQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9zZWxmdW5jcy5jCkBAIC03MTc4LDcgKzcxNzgsOCBAQCBnZXRfYWN0dWFsX3ZhcmlhYmxlX2Vu ZHBvaW50KFJlbGF0aW9uIGhlYXBSZWwsCiAKIAlpbmRleF9zY2FuID0gaW5kZXhfYmVnaW5zY2Fu KGhlYXBSZWwsIGluZGV4UmVsLAogCQkJCQkJCQkgJlNuYXBzaG90Tm9uVmFjdXVtYWJsZSwgTlVM TCwKLQkJCQkJCQkJIDEsIDApOworCQkJCQkJCQkgMSwgMCwKKwkJCQkJCQkJIFNPX05PTkUpOwog CS8qIFNldCBpdCB1cCBmb3IgaW5kZXgtb25seSBzY2FuICovCiAJaW5kZXhfc2Nhbi0+eHNfd2Fu dF9pdHVwID0gdHJ1ZTsKIAlpbmRleF9yZXNjYW4oaW5kZXhfc2Nhbiwgc2NhbmtleXMsIDEsIE5V TEwsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmggYi9zcmMvaW5j bHVkZS9hY2Nlc3MvZ2VuYW0uaAppbmRleCAxYTI3YmYwNjBiMy4uYjY5MzIwYTdmYzggMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vz cy9nZW5hbS5oCkBAIC0xNTgsNyArMTU4LDggQEAgZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhf YmVnaW5zY2FuKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJCQkJCQkJCSBSZWxhdGlvbiBpbmRl eFJlbGF0aW9uLAogCQkJCQkJCQkJIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJIEluZGV4 U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKLQkJCQkJCQkJCSBpbnQgbmtleXMsIGlu dCBub3JkZXJieXMpOworCQkJCQkJCQkJIGludCBua2V5cywgaW50IG5vcmRlcmJ5cywKKwkJCQkJ CQkJCSB1aW50MzIgZmxhZ3MpOwogZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2Fu X2JpdG1hcChSZWxhdGlvbiBpbmRleFJlbGF0aW9uLAogCQkJCQkJCQkJCQlTbmFwc2hvdCBzbmFw c2hvdCwKIAkJCQkJCQkJCQkJSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LApA QCAtMTg0LDcgKzE4NSw4IEBAIGV4dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2JlZ2luc2Nhbl9w YXJhbGxlbChSZWxhdGlvbiBoZWFwcmVsLAogCQkJCQkJCQkJCQkgIFJlbGF0aW9uIGluZGV4cmVs LAogCQkJCQkJCQkJCQkgIEluZGV4U2Nhbkluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKIAkJ CQkJCQkJCQkJICBpbnQgbmtleXMsIGludCBub3JkZXJieXMsCi0JCQkJCQkJCQkJCSAgUGFyYWxs ZWxJbmRleFNjYW5EZXNjIHBzY2FuKTsKKwkJCQkJCQkJCQkJICBQYXJhbGxlbEluZGV4U2NhbkRl c2MgcHNjYW4sCisJCQkJCQkJCQkJCSAgdWludDMyIGZsYWdzKTsKIGV4dGVybiBJdGVtUG9pbnRl ciBpbmRleF9nZXRuZXh0X3RpZChJbmRleFNjYW5EZXNjIHNjYW4sCiAJCQkJCQkJCQkgU2NhbkRp cmVjdGlvbiBkaXJlY3Rpb24pOwogZXh0ZXJuIGJvb2wgaW5kZXhfZmV0Y2hfaGVhcChJbmRleFNj YW5EZXNjIHNjYW4sIFR1cGxlVGFibGVTbG90ICpzbG90KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCA5 YjQwMzIwMzAwNi4uZTJlMDczNDhmMzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9o ZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTk1LDEwICs5NSw3 IEBAIHR5cGVkZWYgc3RydWN0IEhlYXBTY2FuRGVzY0RhdGEKIAkgKi8KIAlQYXJhbGxlbEJsb2Nr VGFibGVTY2FuV29ya2VyRGF0YSAqcnNfcGFyYWxsZWx3b3JrZXJkYXRhOwogCi0JLyoKLQkgKiBG b3Igc2VxdWVudGlhbCBzY2FucyBhbmQgYml0bWFwIGhlYXAgc2NhbnMuIFRoZSBjdXJyZW50IGhl YXAgYmxvY2sncwotCSAqIGNvcnJlc3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAu Ci0JICovCisJLyogQ3VycmVudCBoZWFwIGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdlIGluIHRo ZSB2aXNpYmlsaXR5IG1hcCAqLwogCUJ1ZmZlcgkJcnNfdm1idWZmZXI7CiAKIAkvKiB0aGVzZSBm aWVsZHMgb25seSB1c2VkIGluIHBhZ2UtYXQtYS10aW1lIG1vZGUgYW5kIGZvciBiaXRtYXAgc2Nh bnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmggYi9zcmMvaW5j bHVkZS9hY2Nlc3MvcmVsc2Nhbi5oCmluZGV4IGNlMzQwYzA3NmY4Li44MGVhMGI0MzdkMSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3JlbHNjYW4uaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvcmVsc2Nhbi5oCkBAIC0xMjIsNiArMTIyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYWxs ZWxCbG9ja1RhYmxlU2NhbldvcmtlckRhdGEgKlBhcmFsbGVsQmxvY2tUYWJsZVNjYW5Xb3JrZXI7 CiB0eXBlZGVmIHN0cnVjdCBJbmRleEZldGNoVGFibGVEYXRhCiB7CiAJUmVsYXRpb24JcmVsOwor CXVpbnQzMgkJZmxhZ3M7CiB9IEluZGV4RmV0Y2hUYWJsZURhdGE7CiAKIHN0cnVjdCBJbmRleFNj YW5JbnN0cnVtZW50YXRpb247CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVh bS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCAwNjA4NDc1MjI0NS4uNjBj ZWVlOWRlY2QgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKKysrIGIv c3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaApAQCAtNDUsNiArNDUsOCBAQCB0eXBlZGVmIHN0 cnVjdCBWYWxpZGF0ZUluZGV4U3RhdGUgVmFsaWRhdGVJbmRleFN0YXRlOwogICovCiB0eXBlZGVm IGVudW0gU2Nhbk9wdGlvbnMKIHsKKwlTT19OT05FID0gMCwKKwogCS8qIG9uZSBvZiBTT19UWVBF XyogbWF5IGJlIHNwZWNpZmllZCAqLwogCVNPX1RZUEVfU0VRU0NBTiA9IDEgPDwgMCwKIAlTT19U WVBFX0JJVE1BUFNDQU4gPSAxIDw8IDEsCkBAIC02NSw2ICs2NywxOSBAQCB0eXBlZGVmIGVudW0g U2Nhbk9wdGlvbnMKIAlTT19URU1QX1NOQVBTSE9UID0gMSA8PCA5LAogfQkJCVNjYW5PcHRpb25z OwogCisvKgorICogTWFzayBvZiBmbGFncyB0aGF0IGFyZSBzZXQgaW50ZXJuYWxseSBieSB0aGUg dGFibGUgc2NhbiBmdW5jdGlvbnMgYW5kCisgKiBzaG91bGRuJ3QgYmUgcGFzc2VkIGJ5IGNhbGxl cnMuIFNvbWUgb2YgdGhlc2UgYXJlIGVmZmVjdGl2ZWx5IHNldCBieSBjYWxsZXJzCisgKiB0aHJv dWdoIHBhcmFtZXRlcnMgdG8gdGFibGUgc2NhbiBmdW5jdGlvbnMgKGUuZy4gU09fQUxMT1dfU1RS QVQvYWxsb3dfc3RyYXQpLAorICogaG93ZXZlciwgZm9yIG5vdywgcmV0YWluIHRpZ2h0IGNvbnRy b2wgb3ZlciB0aGVtIGFuZCBkb24ndCBhbGxvdyB1c2VycyB0bworICogcGFzcyB0aGVzZSB0aGVt c2VsdmVzIHRvIHRhYmxlIHNjYW4gZnVuY3Rpb25zLgorICovCisjZGVmaW5lIFNPX0lOVEVSTkFM X0ZMQUdTIFwKKwkoU09fVFlQRV9TRVFTQ0FOIHwgU09fVFlQRV9CSVRNQVBTQ0FOIHwgU09fVFlQ RV9TQU1QTEVTQ0FOIHwgXAorCSBTT19UWVBFX1RJRFNDQU4gfCBTT19UWVBFX1RJRFJBTkdFU0NB TiB8IFNPX1RZUEVfQU5BTFlaRSB8IFwKKwkgU09fQUxMT1dfU1RSQVQgfCBTT19BTExPV19TWU5D IHwgU09fQUxMT1dfUEFHRU1PREUgfCBcCisJIFNPX1RFTVBfU05BUFNIT1QpCisKIC8qCiAgKiBS ZXN1bHQgY29kZXMgZm9yIHRhYmxlX3t1cGRhdGUsZGVsZXRlLGxvY2tfdHVwbGV9LCBhbmQgZm9y IHZpc2liaWxpdHkKICAqIHJvdXRpbmVzIGluc2lkZSB0YWJsZSBBTXMuCkBAIC00MjAsNyArNDM1 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgVGFibGVBbVJvdXRpbmUKIAkgKgogCSAqIFR1cGxlcyBmb3Ig YW4gaW5kZXggc2NhbiBjYW4gdGhlbiBiZSBmZXRjaGVkIHZpYSBpbmRleF9mZXRjaF90dXBsZS4K IAkgKi8KLQlzdHJ1Y3QgSW5kZXhGZXRjaFRhYmxlRGF0YSAqKCppbmRleF9mZXRjaF9iZWdpbikg KFJlbGF0aW9uIHJlbCk7CisJc3RydWN0IEluZGV4RmV0Y2hUYWJsZURhdGEgKigqaW5kZXhfZmV0 Y2hfYmVnaW4pIChSZWxhdGlvbiByZWwsIHVpbnQzMiBmbGFncyk7CiAKIAkvKgogCSAqIFJlc2V0 IGluZGV4IGZldGNoLiBUeXBpY2FsbHkgdGhpcyB3aWxsIHJlbGVhc2UgY3Jvc3MgaW5kZXggZmV0 Y2gKQEAgLTg3MSwxMiArODg2LDE5IEBAIGV4dGVybiBUdXBsZVRhYmxlU2xvdCAqdGFibGVfc2xv dF9jcmVhdGUoUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKipyZWdsaXN0KTsKICAqIEEgd3JhcHBl ciBhcm91bmQgdGhlIFRhYmxlIEFjY2VzcyBNZXRob2Qgc2Nhbl9iZWdpbiBjYWxsYmFjaywgdG8g Y2VudHJhbGl6ZQogICogZXJyb3IgY2hlY2tpbmcuIEFsbCBjYWxscyB0byAtPnNjYW5fYmVnaW4o KSBzaG91bGQgZ28gdGhyb3VnaCB0aGlzCiAgKiBmdW5jdGlvbi4KKyAqCisgKiBUaGUgY2FsbGVy LXByb3ZpZGVkIHVzZXJfZmxhZ3MgYXJlIHZhbGlkYXRlZCBhZ2FpbnN0IFNPX0lOVEVSTkFMX0ZM QUdTIHRvCisgKiBjYXRjaCBjYWxsZXJzIHRoYXQgYWNjaWRlbnRhbGx5IHBhc3Mgc2Nhbi10eXBl IG9yIG90aGVyIGludGVybmFsIGZsYWdzLgogICovCiBzdGF0aWMgVGFibGVTY2FuRGVzYwogdGFi bGVfYmVnaW5zY2FuX2NvbW1vbihSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LCBpbnQg bmtleXMsCiAJCQkJCSAgIFNjYW5LZXlEYXRhICprZXksIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBw c2NhbiwKLQkJCQkJICAgdWludDMyIGZsYWdzKQorCQkJCQkgICB1aW50MzIgZmxhZ3MsIHVpbnQz MiB1c2VyX2ZsYWdzKQogeworCUFzc2VydCgodXNlcl9mbGFncyAmIFNPX0lOVEVSTkFMX0ZMQUdT KSA9PSAwKTsKKwlBc3NlcnQoKGZsYWdzICYgflNPX0lOVEVSTkFMX0ZMQUdTKSA9PSAwKTsKKwlm bGFncyB8PSB1c2VyX2ZsYWdzOworCiAJLyoKIAkgKiBXZSBkb24ndCBhbGxvdyBzY2FucyB0byBi ZSBzdGFydGVkIHdoaWxlIENoZWNrWGlkQWxpdmUgaXMgc2V0LCBleGNlcHQKIAkgKiB2aWEgc3lz dGFibGVfYmVnaW5zY2FuKCkgZXQgYWwuICBTZWUgZGV0YWlsZWQgY29tbWVudHMgaW4geGFjdC5j IHdoZXJlCkBAIC04OTQsMTIgKzkxNiwxMyBAQCB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKFJlbGF0 aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsIGludCBua2V5cywKICAqLwogc3RhdGljIGlubGlu ZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdpbnNjYW4oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBz bmFwc2hvdCwKLQkJCQlpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXkpCisJCQkJaW50IG5rZXlz LCBTY2FuS2V5RGF0YSAqa2V5LCB1aW50MzIgZmxhZ3MpCiB7Ci0JdWludDMyCQlmbGFncyA9IFNP X1RZUEVfU0VRU0NBTiB8CisJdWludDMyCQlpbnRlcm5hbF9mbGFncyA9IFNPX1RZUEVfU0VRU0NB TiB8CiAJCVNPX0FMTE9XX1NUUkFUIHwgU09fQUxMT1dfU1lOQyB8IFNPX0FMTE9XX1BBR0VNT0RF OwogCi0JcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMs IGtleSwgTlVMTCwgZmxhZ3MpOworCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwg c25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsCisJCQkJCQkJCSAgaW50ZXJuYWxfZmxhZ3MsIGZs YWdzKTsKIH0KIAogLyoKQEAgLTkyOCw3ICs5NTEsOCBAQCB0YWJsZV9iZWdpbnNjYW5fc3RyYXQo UmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAlpZiAoYWxsb3dfc3luYykKIAkJZmxh Z3MgfD0gU09fQUxMT1dfU1lOQzsKIAotCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJl bCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVn aW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLAorCQkJCQkJCQkg IGZsYWdzLCBTT19OT05FKTsKIH0KIAogLyoKQEAgLTkzOSwxMSArOTYzLDEyIEBAIHRhYmxlX2Jl Z2luc2Nhbl9zdHJhdChSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAogICovCiBzdGF0 aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl9ibShSZWxhdGlvbiByZWws IFNuYXBzaG90IHNuYXBzaG90LAotCQkJCSAgIGludCBua2V5cywgU2NhbktleURhdGEgKmtleSkK KwkJCQkgICBpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXksIHVpbnQzMiBmbGFncykKIHsKLQl1 aW50MzIJCWZsYWdzID0gU09fVFlQRV9CSVRNQVBTQ0FOIHwgU09fQUxMT1dfUEFHRU1PREU7CisJ dWludDMyCQlpbnRlcm5hbF9mbGFncyA9IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX0FMTE9XX1BB R0VNT0RFOwogCi0JcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwg bmtleXMsIGtleSwgTlVMTCwgZmxhZ3MpOworCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9u KHJlbCwgc25hcHNob3QsIG5rZXlzLCBrZXksIE5VTEwsCisJCQkJCQkJCSAgaW50ZXJuYWxfZmxh Z3MsIGZsYWdzKTsKIH0KIAogLyoKQEAgLTk1NywxOCArOTgyLDE5IEBAIHN0YXRpYyBpbmxpbmUg VGFibGVTY2FuRGVzYwogdGFibGVfYmVnaW5zY2FuX3NhbXBsaW5nKFJlbGF0aW9uIHJlbCwgU25h cHNob3Qgc25hcHNob3QsCiAJCQkJCQkgaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5LAogCQkJ CQkJIGJvb2wgYWxsb3dfc3RyYXQsIGJvb2wgYWxsb3dfc3luYywKLQkJCQkJCSBib29sIGFsbG93 X3BhZ2Vtb2RlKQorCQkJCQkJIGJvb2wgYWxsb3dfcGFnZW1vZGUsIHVpbnQzMiBmbGFncykKIHsK LQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9TQU1QTEVTQ0FOOworCXVpbnQzMgkJaW50ZXJuYWxf ZmxhZ3MgPSBTT19UWVBFX1NBTVBMRVNDQU47CiAKIAlpZiAoYWxsb3dfc3RyYXQpCi0JCWZsYWdz IHw9IFNPX0FMTE9XX1NUUkFUOworCQlpbnRlcm5hbF9mbGFncyB8PSBTT19BTExPV19TVFJBVDsK IAlpZiAoYWxsb3dfc3luYykKLQkJZmxhZ3MgfD0gU09fQUxMT1dfU1lOQzsKKwkJaW50ZXJuYWxf ZmxhZ3MgfD0gU09fQUxMT1dfU1lOQzsKIAlpZiAoYWxsb3dfcGFnZW1vZGUpCi0JCWZsYWdzIHw9 IFNPX0FMTE9XX1BBR0VNT0RFOworCQlpbnRlcm5hbF9mbGFncyB8PSBTT19BTExPV19QQUdFTU9E RTsKIAotCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIG5rZXlz LCBrZXksIE5VTEwsIGZsYWdzKTsKKwlyZXR1cm4gdGFibGVfYmVnaW5zY2FuX2NvbW1vbihyZWws IHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLAorCQkJCQkJCQkgIGludGVybmFsX2ZsYWdzLCBm bGFncyk7CiB9CiAKIC8qCkBAIC05ODEsNyArMTAwNyw4IEBAIHRhYmxlX2JlZ2luc2Nhbl90aWQo UmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCkKIHsKIAl1aW50MzIJCWZsYWdzID0gU09f VFlQRV9USURTQ0FOOwogCi0JcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFw c2hvdCwgMCwgTlVMTCwgTlVMTCwgZmxhZ3MpOworCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29t bW9uKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIE5VTEwsCisJCQkJCQkJCSAgZmxhZ3MsIFNPX05P TkUpOwogfQogCiAvKgpAQCAtOTk0LDcgKzEwMjEsOCBAQCB0YWJsZV9iZWdpbnNjYW5fYW5hbHl6 ZShSZWxhdGlvbiByZWwpCiB7CiAJdWludDMyCQlmbGFncyA9IFNPX1RZUEVfQU5BTFlaRTsKIAot CXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgTlVMTCwgMCwgTlVMTCwgTlVMTCwg ZmxhZ3MpOworCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgTlVMTCwgMCwgTlVM TCwgTlVMTCwKKwkJCQkJCQkJICBmbGFncywgU09fTk9ORSk7CiB9CiAKIC8qCkBAIC0xMDU5LDEy ICsxMDg3LDEzIEBAIHRhYmxlX3NjYW5fZ2V0bmV4dHNsb3QoVGFibGVTY2FuRGVzYyBzc2Nhbiwg U2NhbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFR1cGxlVGFibGVTCiBzdGF0aWMgaW5saW5lIFRhYmxl U2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl90aWRyYW5nZShSZWxhdGlvbiByZWwsIFNuYXBzaG90 IHNuYXBzaG90LAogCQkJCQkJIEl0ZW1Qb2ludGVyIG1pbnRpZCwKLQkJCQkJCSBJdGVtUG9pbnRl ciBtYXh0aWQpCisJCQkJCQkgSXRlbVBvaW50ZXIgbWF4dGlkLCB1aW50MzIgZmxhZ3MpCiB7CiAJ VGFibGVTY2FuRGVzYyBzc2NhbjsKLQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9USURSQU5HRVND QU4gfCBTT19BTExPV19QQUdFTU9ERTsKKwl1aW50MzIJCWludGVybmFsX2ZsYWdzID0gU09fVFlQ RV9USURSQU5HRVNDQU4gfCBTT19BTExPV19QQUdFTU9ERTsKIAotCXNzY2FuID0gdGFibGVfYmVn aW5zY2FuX2NvbW1vbihyZWwsIHNuYXBzaG90LCAwLCBOVUxMLCBOVUxMLCBmbGFncyk7CisJc3Nj YW4gPSB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIE5VTEws CisJCQkJCQkJCSAgIGludGVybmFsX2ZsYWdzLCBmbGFncyk7CiAKIAkvKiBTZXQgdGhlIHJhbmdl IG9mIFRJRHMgdG8gc2NhbiAqLwogCXNzY2FuLT5yc19yZC0+cmRfdGFibGVhbS0+c2Nhbl9zZXRf dGlkcmFuZ2Uoc3NjYW4sIG1pbnRpZCwgbWF4dGlkKTsKQEAgLTExMzksNyArMTE2OCw4IEBAIGV4 dGVybiB2b2lkIHRhYmxlX3BhcmFsbGVsc2Nhbl9pbml0aWFsaXplKFJlbGF0aW9uIHJlbCwKICAq IENhbGxlciBtdXN0IGhvbGQgYSBzdWl0YWJsZSBsb2NrIG9uIHRoZSByZWxhdGlvbi4KICAqLwog ZXh0ZXJuIFRhYmxlU2NhbkRlc2MgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJl bGF0aW9uLAotCQkJCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2Nhbik7CisJCQkJ CQkJCQkJCSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuLAorCQkJCQkJCQkJCQkgIHVpbnQz MiBmbGFncyk7CiAKIC8qCiAgKiBCZWdpbiBhIHBhcmFsbGVsIHRpZCByYW5nZSBzY2FuLiBgcHNj YW5gIG5lZWRzIHRvIGhhdmUgYmVlbiBpbml0aWFsaXplZApAQCAtMTE0OSw3ICsxMTc5LDggQEAg ZXh0ZXJuIFRhYmxlU2NhbkRlc2MgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIHJl bGF0aW9uLAogICogQ2FsbGVyIG11c3QgaG9sZCBhIHN1aXRhYmxlIGxvY2sgb24gdGhlIHJlbGF0 aW9uLgogICovCiBleHRlcm4gVGFibGVTY2FuRGVzYyB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxf dGlkcmFuZ2UoUmVsYXRpb24gcmVsYXRpb24sCi0JCQkJCQkJCQkJCQkJICAgUGFyYWxsZWxUYWJs ZVNjYW5EZXNjIHBzY2FuKTsKKwkJCQkJCQkJCQkJCQkgICBQYXJhbGxlbFRhYmxlU2NhbkRlc2Mg cHNjYW4sCisJCQkJCQkJCQkJCQkJICAgdWludDMyIGZsYWdzKTsKIAogLyoKICAqIFJlc3RhcnQg YSBwYXJhbGxlbCBzY2FuLiAgQ2FsbCB0aGlzIGluIHRoZSBsZWFkZXIgcHJvY2Vzcy4gIENhbGxl ciBpcwpAQCAtMTE3NSw4ICsxMjA2LDEwIEBAIHRhYmxlX3BhcmFsbGVsc2Nhbl9yZWluaXRpYWxp emUoUmVsYXRpb24gcmVsLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAgKiBUdXBsZXMg Zm9yIGFuIGluZGV4IHNjYW4gY2FuIHRoZW4gYmUgZmV0Y2hlZCB2aWEgdGFibGVfaW5kZXhfZmV0 Y2hfdHVwbGUoKS4KICAqLwogc3RhdGljIGlubGluZSBJbmRleEZldGNoVGFibGVEYXRhICoKLXRh YmxlX2luZGV4X2ZldGNoX2JlZ2luKFJlbGF0aW9uIHJlbCkKK3RhYmxlX2luZGV4X2ZldGNoX2Jl Z2luKFJlbGF0aW9uIHJlbCwgdWludDMyIGZsYWdzKQogeworCUFzc2VydCgoZmxhZ3MgJiBTT19J TlRFUk5BTF9GTEFHUykgPT0gMCk7CisKIAkvKgogCSAqIFdlIGRvbid0IGFsbG93IHNjYW5zIHRv IGJlIHN0YXJ0ZWQgd2hpbGUgQ2hlY2tYaWRBbGl2ZSBpcyBzZXQsIGV4Y2VwdAogCSAqIHZpYSBz eXN0YWJsZV9iZWdpbnNjYW4oKSBldCBhbC4gIFNlZSBkZXRhaWxlZCBjb21tZW50cyBpbiB4YWN0 LmMgd2hlcmUKQEAgLTExODUsNyArMTIxOCw3IEBAIHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKFJl bGF0aW9uIHJlbCkKIAlpZiAodW5saWtlbHkoVHJhbnNhY3Rpb25JZElzVmFsaWQoQ2hlY2tYaWRB bGl2ZSkgJiYgIWJzeXNzY2FuKSkKIAkJZWxvZyhFUlJPUiwgInNjYW4gc3RhcnRlZCBkdXJpbmcg bG9naWNhbCBkZWNvZGluZyIpOwogCi0JcmV0dXJuIHJlbC0+cmRfdGFibGVhbS0+aW5kZXhfZmV0 Y2hfYmVnaW4ocmVsKTsKKwlyZXR1cm4gcmVsLT5yZF90YWJsZWFtLT5pbmRleF9mZXRjaF9iZWdp bihyZWwsIGZsYWdzKTsKIH0KIAogLyoKLS0gCjIuNDMuMAoK --000000000000d95d29064e065b9c Content-Type: text/x-patch; charset="US-ASCII"; name="v47-0004-Pass-down-information-on-table-modification-to-s.patch" Content-Disposition: attachment; filename="v47-0004-Pass-down-information-on-table-modification-to-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn9a9jzp3 RnJvbSA5NzVkNjE5Y2JmM2Q5MTU4YTgxMzRjOWM2MmY4Y2Y5MzYyOTA1NzRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MzMgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0NyA0LzZdIFBhc3MgZG93biBpbmZvcm1hdGlvbiBvbiB0YWJsZSBtb2RpZmljYXRpb24g dG8gc2Nhbgogbm9kZQoKUGFzcyBkb3duIGluZm9ybWF0aW9uIHRvIHNlcXVlbnRpYWwgc2Nhbiwg aW5kZXggW29ubHldIHNjYW4sIGJpdG1hcAp0YWJsZSBzY2FuLCBzYW1wbGUgc2NhbiwgYW5kIFRJ RCByYW5nZSBzY2FuIG5vZGVzIG9uIHdoZXRoZXIgb3Igbm90IHRoZQpxdWVyeSBtb2RpZmllcyB0 aGUgcmVsYXRpb24gYmVpbmcgc2Nhbm5lZC4gQSBsYXRlciBjb21taXQgd2lsbCB1c2UgdGhpcwpp bmZvcm1hdGlvbiB0byB1cGRhdGUgdGhlIFZNIGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyBvbmx5 IGlmIHRoZQpyZWxhdGlvbiBpcyBub3QgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5LgoKQXV0aG9yOiBN ZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTog QW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQW5kcmV5IEJv cm9kaW4gPHg0bW1tQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogVG9tYXMgVm9uZHJhIDx0 b21hc0B2b25kcmEubWU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwu Y29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzQzNzlGREEzLTk0NDYtNEUyQy05 QzE1LTMyRUZFOEQ0RjMxQiU0MHlhbmRleC10ZWFtLnJ1Ci0tLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY1V0aWxzLmMgICAgICAgICAgfCAyMSArKysrKysrKysrKysrKysrKysrKysKIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIHwgIDMgKystCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jICB8ICA5ICsrKysrKy0tLQogc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jICAgICAgfCAxMiArKysrKysrKy0tLS0KIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMgICAgIHwgIDMgKystCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jICAgICAgICB8IDEwICsrKysrKystLS0KIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYyAgIHwgMTEgKysrKysrKystLS0KIHNyYy9p bmNsdWRlL2FjY2Vzcy90YWJsZWFtLmggICAgICAgICAgICAgIHwgIDMgKysrCiBzcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oICAgICAgICAgICB8ICAyICsrCiA5IGZpbGVzIGNoYW5nZWQs IDU5IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxz LmMKaW5kZXggMzZjNTI4NWQyNTIuLmYwOTBkZTQ5OTIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjVXRpbHMuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRp bHMuYwpAQCAtNzM2LDYgKzczNiwyNyBAQCBFeGVjUmVsYXRpb25Jc1RhcmdldFJlbGF0aW9uKEVT dGF0ZSAqZXN0YXRlLCBJbmRleCBzY2FucmVsaWQpCiAJcmV0dXJuIGJtc19pc19tZW1iZXIoc2Nh bnJlbGlkLCBlc3RhdGUtPmVzX3BsYW5uZWRzdG10LT5yZXN1bHRSZWxhdGlvblJlbGlkcyk7CiB9 CiAKKy8qCisgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc2NhbiBub2RlJ3MgcmVsYXRpb24gaXMgbm90 IG1vZGlmaWVkIGJ5IHRoZSBxdWVyeS4KKyAqCisgKiBUaGlzIGlzIG5vdCBwZXJmZWN0bHkgYWNj dXJhdGUuIElOU0VSVCAuLi4gU0VMRUNUIGZyb20gdGhlIHNhbWUgdGFibGUgZG9lcworICogbm90 IGFkZCB0aGUgc2NhbiByZWxhdGlvbiB0byByZXN1bHRSZWxhdGlvblJlbGlkcywgc28gaXQgd2ls bCBiZSByZXBvcnRlZAorICogYXMgcmVhZC1vbmx5IGV2ZW4gdGhvdWdoIHRoZSBxdWVyeSBtb2Rp ZmllcyBpdC4KKyAqCisgKiBDb252ZXJzZWx5LCB3aGVuIGFueSByZWxhdGlvbiBpbiB0aGUgcXVl cnkgaGFzIGEgbW9kaWZ5aW5nIHJvdyBtYXJrLCBhbGwKKyAqIG90aGVyIHJlbGF0aW9ucyBnZXQg YSBST1dfTUFSS19SRUZFUkVOQ0UsIGNhdXNpbmcgdGhlbSB0byBiZSByZXBvcnRlZCBhcworICog bm90IHJlYWQtb25seSBldmVuIHRob3VnaCB0aGV5IG1heSBvbmx5IGJlIHJlYWQuCisgKi8KK2Jv b2wKK1NjYW5SZWxJc1JlYWRPbmx5KFNjYW5TdGF0ZSAqc3MpCit7CisJSW5kZXgJCXNjYW5yZWxp ZCA9ICgoU2NhbiAqKSBzcy0+cHMucGxhbiktPnNjYW5yZWxpZDsKKwlQbGFubmVkU3RtdCAqcHN0 bXQgPSBzcy0+cHMuc3RhdGUtPmVzX3BsYW5uZWRzdG10OworCisJcmV0dXJuICFibXNfaXNfbWVt YmVyKHNjYW5yZWxpZCwgcHN0bXQtPnJlc3VsdFJlbGF0aW9uUmVsaWRzKSAmJgorCQkhYm1zX2lz X21lbWJlcihzY2FucmVsaWQsIHBzdG10LT5yb3dNYXJrUmVsaWRzKTsKK30KKwogLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICoJCUV4ZWNPcGVuU2NhblJlbGF0aW9uCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl Qml0bWFwSGVhcHNjYW4uYwppbmRleCA2OTY4M2Q4MTUyNy4uNzM4MzFhZWQ0NTEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jCkBAIC0xNDksNyArMTQ5LDggQEAg Qml0bWFwVGFibGVTY2FuU2V0dXAoQml0bWFwSGVhcFNjYW5TdGF0ZSAqbm9kZSkKIAkJCQkJCQkg ICBub2RlLT5zcy5wcy5zdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJICAgMCwKIAkJCQkJCQkg ICBOVUxMLAotCQkJCQkJCSAgIFNPX05PTkUpOworCQkJCQkJCSAgIFNjYW5SZWxJc1JlYWRPbmx5 KCZub2RlLT5zcykgPworCQkJCQkJCSAgIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUp OwogCX0KIAogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYy0+c3QucnNfdGJtaXRlcmF0b3Ig PSB0Ym1pdGVyYXRvcjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRl eG9ubHlzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCmlu ZGV4IDAyZGY0MGYzMmM1Li5kZTYxNTRmZDU0MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZUluZGV4b25seXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl SW5kZXhvbmx5c2Nhbi5jCkBAIC05Niw3ICs5Niw4IEBAIEluZGV4T25seU5leHQoSW5kZXhPbmx5 U2NhblN0YXRlICpub2RlKQogCQkJCQkJCQkgICBub2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJ CQkJCSAgIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVt T3JkZXJCeUtleXMsCi0JCQkJCQkJCSAgIFNPX05PTkUpOworCQkJCQkJCQkgICBTY2FuUmVsSXNS ZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJICAgU09fSElOVF9SRUxfUkVBRF9PTkxZIDog U09fTk9ORSk7CiAKIAkJbm9kZS0+aW9zc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCkBAIC03OTYs NyArNzk3LDggQEAgRXhlY0luZGV4T25seVNjYW5Jbml0aWFsaXplRFNNKEluZGV4T25seVNjYW5T dGF0ZSAqbm9kZSwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBu b2RlLT5pb3NzX051bU9yZGVyQnlLZXlzLAogCQkJCQkJCQkgcGlzY2FuLAotCQkJCQkJCQkgU09f Tk9ORSk7CisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJ IFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUpOwogCW5vZGUtPmlvc3NfU2NhbkRlc2Mt PnhzX3dhbnRfaXR1cCA9IHRydWU7CiAJbm9kZS0+aW9zc19WTUJ1ZmZlciA9IEludmFsaWRCdWZm ZXI7CiAKQEAgLTg2Myw3ICs4NjUsOCBAQCBFeGVjSW5kZXhPbmx5U2NhbkluaXRpYWxpemVXb3Jr ZXIoSW5kZXhPbmx5U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1TY2Fu S2V5cywKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMsCiAJCQkJCQkJCSBwaXNj YW4sCi0JCQkJCQkJCSBTT19OT05FKTsKKwkJCQkJCQkJIFNjYW5SZWxJc1JlYWRPbmx5KCZub2Rl LT5zcykgPworCQkJCQkJCQkgU09fSElOVF9SRUxfUkVBRF9PTkxZIDogU09fTk9ORSk7CiAJbm9k ZS0+aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAogCS8qCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlSW5kZXhzY2FuLmMKaW5kZXggM2MwYjhkYWY2NjQuLjE2MjBkMTQ2MDcxIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC0xMTQsNyArMTE0LDggQEAgSW5kZXhO ZXh0KEluZGV4U2NhblN0YXRlICpub2RlKQogCQkJCQkJCQkgICBub2RlLT5pc3NfSW5zdHJ1bWVu dCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgICBub2RlLT5p c3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSAgIFNPX05PTkUpOworCQkJCQkJCQkgICBTY2Fu UmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJICAgU09fSElOVF9SRUxfUkVBRF9P TkxZIDogU09fTk9ORSk7CiAKIAkJbm9kZS0+aXNzX1NjYW5EZXNjID0gc2NhbmRlc2M7CiAKQEAg LTIxMSw3ICsyMTIsOCBAQCBJbmRleE5leHRXaXRoUmVvcmRlcihJbmRleFNjYW5TdGF0ZSAqbm9k ZSkKIAkJCQkJCQkJICAgbm9kZS0+aXNzX0luc3RydW1lbnQsCiAJCQkJCQkJCSAgIG5vZGUtPmlz c19OdW1TY2FuS2V5cywKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bU9yZGVyQnlLZXlzLAotCQkJ CQkJCQkgICBTT19OT05FKTsKKwkJCQkJCQkJICAgU2NhblJlbElzUmVhZE9ubHkoJm5vZGUtPnNz KSA/CisJCQkJCQkJCSAgIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUpOwogCiAJCW5v ZGUtPmlzc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCkBAIC0xNzMzLDcgKzE3MzUsOCBAQCBFeGVj SW5kZXhTY2FuSW5pdGlhbGl6ZURTTShJbmRleFNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJIG5v ZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywK IAkJCQkJCQkJIHBpc2NhbiwKLQkJCQkJCQkJIFNPX05PTkUpOworCQkJCQkJCQkgU2NhblJlbElz UmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSBTT19ISU5UX1JFTF9SRUFEX09OTFkgOiBT T19OT05FKTsKIAogCS8qCiAJICogSWYgbm8gcnVuLXRpbWUga2V5cyB0byBjYWxjdWxhdGUgb3Ig dGhleSBhcmUgcmVhZHksIGdvIGFoZWFkIGFuZCBwYXNzCkBAIC0xNzk4LDcgKzE4MDEsOCBAQCBF eGVjSW5kZXhTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleFNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJ CQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5 S2V5cywKIAkJCQkJCQkJIHBpc2NhbiwKLQkJCQkJCQkJIFNPX05PTkUpOworCQkJCQkJCQkgU2Nh blJlbElzUmVhZE9ubHkoJm5vZGUtPnNzKSA/CisJCQkJCQkJCSBTT19ISU5UX1JFTF9SRUFEX09O TFkgOiBTT19OT05FKTsKIAogCS8qCiAJICogSWYgbm8gcnVuLXRpbWUga2V5cyB0byBjYWxjdWxh dGUgb3IgdGhleSBhcmUgcmVhZHksIGdvIGFoZWFkIGFuZCBwYXNzCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVNhbXBsZXNjYW4uYwppbmRleCBjZjMyZGYzM2Q4Mi4uZjNkMjczZTFjNWUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYwpAQCAtMjk5LDcgKzI5OSw4IEBAIHRhYmxlc2Ft cGxlX2luaXQoU2FtcGxlU2NhblN0YXRlICpzY2Fuc3RhdGUpCiAJCQkJCQkJCQkgc2NhbnN0YXRl LT51c2VfYnVsa3JlYWQsCiAJCQkJCQkJCQkgYWxsb3dfc3luYywKIAkJCQkJCQkJCSBzY2Fuc3Rh dGUtPnVzZV9wYWdlbW9kZSwKLQkJCQkJCQkJCSBTT19OT05FKTsKKwkJCQkJCQkJCSBTY2FuUmVs SXNSZWFkT25seSgmc2NhbnN0YXRlLT5zcykgPworCQkJCQkJCQkJIFNPX0hJTlRfUkVMX1JFQURf T05MWSA6IFNPX05PTkUpOwogCX0KIAllbHNlCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2Fu LmMKaW5kZXggMDljY2M2NWRlMWMuLjA0ODAzYjBlMzdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVT ZXFzY2FuLmMKQEAgLTcyLDcgKzcyLDggQEAgU2VxTmV4dChTZXFTY2FuU3RhdGUgKm5vZGUpCiAJ CXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2FuKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwK IAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJICAgMCwgTlVMTCwKLQkJ CQkJCQkJICAgU09fTk9ORSk7CisJCQkJCQkJCSAgIFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5z cykgPworCQkJCQkJCQkgICBTT19ISU5UX1JFTF9SRUFEX09OTFkgOiBTT19OT05FKTsKIAkJbm9k ZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0gc2NhbmRlc2M7CiAJfQogCkBAIC0zNzUsOSArMzc2 LDExIEBAIEV4ZWNTZXFTY2FuSW5pdGlhbGl6ZURTTShTZXFTY2FuU3RhdGUgKm5vZGUsCiAJCQkJ CQkJCSAgcHNjYW4sCiAJCQkJCQkJCSAgZXN0YXRlLT5lc19zbmFwc2hvdCk7CiAJc2htX3RvY19p bnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIHBzY2FuKTsK KwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJh bGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLAotCQkJCQkJCQkgU09fTk9O RSk7CisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9kZS0+c3MpID8KKwkJCQkJCQkJIFNP X0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00MTEs NSArNDE0LDYgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplV29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9k ZSwKIAlwc2NhbiA9IHNobV90b2NfbG9va3VwKHB3Y3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4t PnBsYW5fbm9kZV9pZCwgZmFsc2UpOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJ CXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBz Y2FuLAotCQkJCQkJCQkgU09fTk9ORSk7CisJCQkJCQkJCSBTY2FuUmVsSXNSZWFkT25seSgmbm9k ZS0+c3MpID8KKwkJCQkJCQkJIFNPX0hJTlRfUkVMX1JFQURfT05MWSA6IFNPX05PTkUpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCmluZGV4IDA4NGU0YzZlYzkwLi40 YThmZTkxYjJiMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdl c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYwpAQCAt MjQ2LDcgKzI0Niw4IEBAIFRpZFJhbmdlTmV4dChUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSkKIAkJ CQkJCQkJCQkJCWVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19t aW50aWQsCiAJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19tYXh0aWQsCi0JCQkJCQkJCQkJCQlTT19O T05FKTsKKwkJCQkJCQkJCQkJCVNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPworCQkJCQkJ CQkJCQkJU09fSElOVF9SRUxfUkVBRF9PTkxZIDogU09fTk9ORSk7CiAJCQlub2RlLT5zcy5zc19j dXJyZW50U2NhbkRlc2MgPSBzY2FuZGVzYzsKIAkJfQogCQllbHNlCkBAIC00NjEsNyArNDYyLDkg QEAgRXhlY1RpZFJhbmdlU2NhbkluaXRpYWxpemVEU00oVGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUs IFBhcmFsbGVsQ29udGV4dCAqcGN4dCkKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIG5vZGUt PnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgcHNjYW4pOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRT Y2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5nZShub2RlLT5zcy5z c19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCQkJICBwc2NhbiwgU09fTk9ORSk7CisJCQkJCQkJ CQkJICBwc2NhbiwKKwkJCQkJCQkJCQkgIFNjYW5SZWxJc1JlYWRPbmx5KCZub2RlLT5zcykgPwor CQkJCQkJCQkJCSAgU09fSElOVF9SRUxfUkVBRF9PTkxZIDogU09fTk9ORSk7CiB9CiAKIC8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KQEAgLTQ5NSw1ICs0OTgsNyBAQCBFeGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6ZVdvcmtl cihUaWRSYW5nZVNjYW5TdGF0ZSAqbm9kZSwKIAlwc2NhbiA9IHNobV90b2NfbG9va3VwKHB3Y3h0 LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgZmFsc2UpOwogCW5vZGUtPnNz LnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRyYW5n ZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCQkJICBwc2NhbiwgU09fTk9O RSk7CisJCQkJCQkJCQkJICBwc2NhbiwKKwkJCQkJCQkJCQkgIFNjYW5SZWxJc1JlYWRPbmx5KCZu b2RlLT5zcykgPworCQkJCQkJCQkJCSAgU09fSElOVF9SRUxfUkVBRF9PTkxZIDogU09fTk9ORSk7 CiB9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCA2MGNlZWU5ZGVjZC4uNWYxYzEwNzljYjUgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL3RhYmxlYW0uaApAQCAtNjUsNiArNjUsOSBAQCB0eXBlZGVmIGVudW0gU2Nhbk9wdGlvbnMK IAogCS8qIHVucmVnaXN0ZXIgc25hcHNob3QgYXQgc2NhbiBlbmQ/ICovCiAJU09fVEVNUF9TTkFQ U0hPVCA9IDEgPDwgOSwKKworCS8qIHNldCBpZiB0aGUgcXVlcnkgZG9lc24ndCBtb2RpZnkgdGhl IHJlbGF0aW9uICovCisJU09fSElOVF9SRUxfUkVBRF9PTkxZID0gMSA8PCAxMCwKIH0JCQlTY2Fu T3B0aW9uczsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9y LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCmluZGV4IDA3ZjRiMWY3NDkwLi43 OTc5YTE3ZTRlYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAor KysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCkBAIC02OTAsNiArNjkwLDggQEAg ZXh0ZXJuIHZvaWQgRXhlY0NyZWF0ZVNjYW5TbG90RnJvbU91dGVyUGxhbihFU3RhdGUgKmVzdGF0 ZSwKIAogZXh0ZXJuIGJvb2wgRXhlY1JlbGF0aW9uSXNUYXJnZXRSZWxhdGlvbihFU3RhdGUgKmVz dGF0ZSwgSW5kZXggc2NhbnJlbGlkKTsKIAorZXh0ZXJuIGJvb2wgU2NhblJlbElzUmVhZE9ubHko U2NhblN0YXRlICpzcyk7CisKIGV4dGVybiBSZWxhdGlvbiBFeGVjT3BlblNjYW5SZWxhdGlvbihF U3RhdGUgKmVzdGF0ZSwgSW5kZXggc2NhbnJlbGlkLCBpbnQgZWZsYWdzKTsKIAogZXh0ZXJuIHZv aWQgRXhlY0luaXRSYW5nZVRhYmxlKEVTdGF0ZSAqZXN0YXRlLCBMaXN0ICpyYW5nZVRhYmxlLCBM aXN0ICpwZXJtSW5mb3MsCi0tIAoyLjQzLjAKCg== --000000000000d95d29064e065b9c Content-Type: text/x-patch; charset="US-ASCII"; name="v47-0005-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v47-0005-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn9a9nhr4 RnJvbSAzYzRjNTg5Yzg0ZmI1NDQ0ZmU0MGI4YThlZWM1MDY4NDVkMTEzMGUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IEZlYiAyMDI2IDE2OjMzOjQwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDcgNS82XSBBbGxvdyBvbi1hY2Nlc3MgcHJ1bmluZyB0byBzZXQgcGFnZXMgYWxsLXZp c2libGUKCk1hbnkgcXVlcmllcyBkbyBub3QgbW9kaWZ5IHRoZSB1bmRlcmx5aW5nIHJlbGF0aW9u LiBGb3Igc3VjaCBxdWVyaWVzLCBpZgpvbi1hY2Nlc3MgcHJ1bmluZyBvY2N1cnMgZHVyaW5nIHRo ZSBzY2FuLCB3ZSBjYW4gY2hlY2sgd2hldGhlciB0aGUgcGFnZQpoYXMgYmVjb21lIGFsbC12aXNp YmxlIGFuZCB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwIGFjY29yZGluZ2x5LgpQcmV2aW91c2x5 LCBvbmx5IHZhY3V1bSBhbmQgQ09QWSBGUkVFWkUgbWFya2VkIHBhZ2VzIGFzIGFsbC12aXNpYmxl IG9yCmFsbC1mcm96ZW4uCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIG9uLWFjY2VzcyBWTSBzZXR0 aW5nIGZvciBzZXF1ZW50aWFsIHNjYW5zIGFzIHdlbGwKYXMgZm9yIHRoZSB1bmRlcmx5aW5nIGhl YXAgcmVsYXRpb24gaW4gaW5kZXggc2NhbnMgYW5kIGJpdG1hcCBoZWFwCnNjYW5zLgoKU2V0dGlu ZyB0aGUgdmlzaWJpbGl0eSBtYXAgb24tYWNjZXNzIGNhbiBhdm9pZCB3cml0ZSBhbXBsaWZpY2F0 aW9uCmNhdXNlZCBieSB2YWN1dW0gbGF0ZXIgbmVlZGluZyB0byBzZXQgdGhlIHBhZ2UgYWxsLXZp c2libGUsIHRyaWdnZXIgYQp3cml0ZSBhbmQgcG90ZW50aWFsbHkgRlBJLiBJdCBhbHNvIGFsbG93 cyBtb3JlIGZyZXF1ZW50IGluZGV4LW9ubHkKc2NhbnMsIHNpbmNlIHRoZXkgcmVxdWlyZSBwYWdl cyB0byBiZSBtYXJrZWQgYWxsLXZpc2libGUgaW4gdGhlIFZNLgoKQXV0aG9yOiBNZWxhbmllIFBs YWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZy ZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogS2lyaWxsIFJlc2hrZSA8cmVz aGtla2lyaWxsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0Bn bWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vZmxhdC9DQUFLUnVfWk13 Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhwOC1WN1NPTHhkSzktZyU0MG1haWwuZ21haWwu Y29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgICB8ICAzICst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIHwgIDYgKystCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgICAgIHwgNTYgKysrKysrKysrKysrKysr KysrKy0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgIHwgIDIg Ky0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAgICAgICAgfCAgMyArLQogNSBm aWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbS5jCmluZGV4IDA0NGYzODVlNDc3Li5kYmRmNjUyMWM0MiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTYzMyw3ICs2MzMsOCBAQCBoZWFwX3ByZXBhcmVfcGFnZXNj YW4oVGFibGVTY2FuRGVzYyBzc2NhbikKIAkvKgogCSAqIFBydW5lIGFuZCByZXBhaXIgZnJhZ21l bnRhdGlvbiBmb3IgdGhlIHdob2xlIHBhZ2UsIGlmIHBvc3NpYmxlLgogCSAqLwotCWhlYXBfcGFn ZV9wcnVuZV9vcHQoc2Nhbi0+cnNfYmFzZS5yc19yZCwgYnVmZmVyLCAmc2Nhbi0+cnNfdm1idWZm ZXIpOworCWhlYXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfYmFzZS5yc19yZCwgYnVmZmVyLCAm c2Nhbi0+cnNfdm1idWZmZXIsCisJCQkJCQkoc3NjYW4tPnJzX2ZsYWdzICYgU09fSElOVF9SRUxf UkVBRF9PTkxZKSk7CiAKIAkvKgogCSAqIFdlIG11c3QgaG9sZCBzaGFyZSBsb2NrIG9uIHRoZSBi dWZmZXIgY29udGVudCB3aGlsZSBleGFtaW5pbmcgdHVwbGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW1faGFuZGxlci5jCmluZGV4IDk5MjgwY2Q4MTU5Li4zNDMzZWE5M2MxMSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCkBAIC0xNDksNyArMTQ5LDggQEAg aGVhcGFtX2luZGV4X2ZldGNoX3R1cGxlKHN0cnVjdCBJbmRleEZldGNoVGFibGVEYXRhICpzY2Fu LAogCQkgKi8KIAkJaWYgKHByZXZfYnVmICE9IGhzY2FuLT54c19jYnVmKQogCQkJaGVhcF9wYWdl X3BydW5lX29wdChoc2Nhbi0+eHNfYmFzZS5yZWwsIGhzY2FuLT54c19jYnVmLAotCQkJCQkJCQkm aHNjYW4tPnhzX3ZtYnVmZmVyKTsKKwkJCQkJCQkJJmhzY2FuLT54c192bWJ1ZmZlciwKKwkJCQkJ CQkJKGhzY2FuLT54c19iYXNlLmZsYWdzICYgU09fSElOVF9SRUxfUkVBRF9PTkxZKSk7CiAJfQog CiAJLyogT2J0YWluIHNoYXJlLWxvY2sgb24gdGhlIGJ1ZmZlciBzbyB3ZSBjYW4gZXhhbWluZSB2 aXNpYmlsaXR5ICovCkBAIC0yNTQ2LDcgKzI1NDcsOCBAQCBCaXRtYXBIZWFwU2Nhbk5leHRCbG9j ayhUYWJsZVNjYW5EZXNjIHNjYW4sCiAJLyoKIAkgKiBQcnVuZSBhbmQgcmVwYWlyIGZyYWdtZW50 YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3NzaWJsZS4KIAkgKi8KLQloZWFwX3BhZ2Vf cHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIsICZoc2Nhbi0+cnNfdm1idWZmZXIpOworCWhl YXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfcmQsIGJ1ZmZlciwgJmhzY2FuLT5yc192bWJ1ZmZl ciwKKwkJCQkJCXNjYW4tPnJzX2ZsYWdzICYgU09fSElOVF9SRUxfUkVBRF9PTkxZKTsKIAogCS8q CiAJICogV2UgbXVzdCBob2xkIHNoYXJlIGxvY2sgb24gdGhlIGJ1ZmZlciBjb250ZW50IHdoaWxl IGV4YW1pbmluZyB0dXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA2Njkz YWY4ZGE3Zi4uNDhmN2NmNzdiYzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBA IC00NCw2ICs0NCw4IEBAIHR5cGVkZWYgc3RydWN0CiAJYm9vbAkJbWFya191bnVzZWRfbm93Owog CS8qIHdoZXRoZXIgdG8gYXR0ZW1wdCBmcmVlemluZyB0dXBsZXMgKi8KIAlib29sCQlhdHRlbXB0 X2ZyZWV6ZTsKKwkvKiB3aGV0aGVyIHRvIGF0dGVtcHQgc2V0dGluZyB0aGUgVk0gKi8KKwlib29s CQlhdHRlbXB0X3NldF92bTsKIAlzdHJ1Y3QgVmFjdXVtQ3V0b2ZmcyAqY3V0b2ZmczsKIAlSZWxh dGlvbglyZWxhdGlvbjsKIApAQCAtMjMyLDcgKzIzNCw4IEBAIHN0YXRpYyB2b2lkIHBhZ2VfdmVy aWZ5X3JlZGlyZWN0cyhQYWdlIHBhZ2UpOwogCiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9m cmVlemUoYm9vbCBkaWRfdHVwbGVfaGludF9mcGksIGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9faGlu dF9wcnVuZSwKIAkJCQkJCQkJICBQcnVuZVN0YXRlICpwcnN0YXRlKTsKLXN0YXRpYyBib29sIGhl YXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZVJlYXNvbiByZWFz b24pOworc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3Rh dGUsIFBydW5lUmVhc29uIHJlYXNvbiwKKwkJCQkJCQkJICBib29sIGRvX3BydW5lLCBib29sIGRv X2ZyZWV6ZSk7CiAKIAogLyoKQEAgLTI1MSw5ICsyNTQsMjAgQEAgc3RhdGljIGJvb2wgaGVhcF9w YWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29uIHJlYXNvbik7 CiAgKiByZXVzZSB0aGUgcGluIGFjcm9zcyBjYWxscywgYXZvaWRpbmcgcmVwZWF0ZWQgcGluL3Vu cGluIGN5Y2xlcy4gSWYgd2UgZmluZAogICogVk0gY29ycnVwdGlvbiBkdXJpbmcgcHJ1bmluZywg d2Ugd2lsbCBmaXggaXQuIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IKICAqIHVucGlubmluZyAq dm1idWZmZXIuCisgKgorICogcmVsX3JlYWRfb25seSBpcyB0cnVlIGlmIHdlIGRldGVybWluZWQg YXQgcGxhbiB0aW1lIHRoYXQgdGhlIHF1ZXJ5IGRvZXMgbm90CisgKiBtb2RpZnkgdGhlIHJlbGF0 aW9uLiBJdCBpcyBjb3VudGVycHJvZHVjdGl2ZSB0byBzZXQgdGhlIFZNIGlmIHRoZSBxdWVyeQor ICogd2lsbCBpbW1lZGlhdGVseSBjbGVhciBpdC4KKyAqCisgKiBBcyBub3RlZCBpbiBTY2FuUmVs SXNSZWFkT25seSgpLCBJTlNFUlQgLi4uIFNFTEVDVCBvbiB0aGUgc2FtZSB0YWJsZSB3aWxsCisg KiByZXBvcnQgdGhlIHNjYW4gcmVsYXRpb24gYXMgcmVhZC1vbmx5LiBUaGlzIGlzIHVzdWFsbHkg aGFybWxlc3MgaW4KKyAqIHByYWN0aWNlLiBJdCBpcyB1c2VmdWwgdG8gc2V0IHNjYW5uZWQgcGFn ZXMgYWxsLXZpc2libGUgdGhhdCB3b24ndCBiZQorICogaW5zZXJ0ZWQgaW50by4gUGFnZXMgd2Ug ZG8gaW5zZXJ0IHRvIHJhcmVseSBtZWV0IHRoZSBjcml0ZXJpYSBmb3IgcHJ1bmluZywKKyAqIGFu ZCB0aG9zZSB0aGF0IGRvIHdpbGwgY29udGFpbiBpbi1wcm9ncmVzcyBpbnNlcnRzIGFmdGVyIHRo ZSBmaXJzdCB0dXBsZS4KICAqLwogdm9pZAotaGVhcF9wYWdlX3BydW5lX29wdChSZWxhdGlvbiBy ZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZlcikKK2hlYXBfcGFnZV9wcnVu ZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIs CisJCQkJCWJvb2wgcmVsX3JlYWRfb25seSkKIHsKIAlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFn ZShidWZmZXIpOwogCVRyYW5zYWN0aW9uSWQgcHJ1bmVfeGlkOwpAQCAtMzM2LDYgKzM1MCw4IEBA IGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1 ZmZlciAqdm1idWZmZXIpCiAJCQkgKiBjdXJyZW50IGltcGxlbWVudGF0aW9uLgogCQkJICovCiAJ CQlwYXJhbXMub3B0aW9ucyA9IEhFQVBfUEFHRV9QUlVORV9BTExPV19GQVNUX1BBVEg7CisJCQlp ZiAocmVsX3JlYWRfb25seSkKKwkJCQlwYXJhbXMub3B0aW9ucyB8PSBIRUFQX1BBR0VfUFJVTkVf U0VUX1ZNOwogCiAJCQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgmcGFyYW1zLCAmcHJlc3Vs dCwgJmR1bW15X29mZl9sb2MsCiAJCQkJCQkJCQkgICBOVUxMLCBOVUxMKTsKQEAgLTM5Miw2ICs0 MDgsNyBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkv KiBjdXRvZmZzIG11c3QgYmUgcHJvdmlkZWQgaWYgd2Ugd2lsbCBhdHRlbXB0IGZyZWV6aW5nICov CiAJQXNzZXJ0KCEocGFyYW1zLT5vcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSkgfHwg cGFyYW1zLT5jdXRvZmZzKTsKIAlwcnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSA9IChwYXJhbXMtPm9w dGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFKSAhPSAwOworCXByc3RhdGUtPmF0dGVtcHRf c2V0X3ZtID0gKHBhcmFtcy0+b3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9TRVRfVk0pICE9IDA7 CiAJcHJzdGF0ZS0+Y3V0b2ZmcyA9IHBhcmFtcy0+Y3V0b2ZmczsKIAlwcnN0YXRlLT5yZWxhdGlv biA9IHBhcmFtcy0+cmVsYXRpb247CiAJcHJzdGF0ZS0+YmxvY2sgPSBCdWZmZXJHZXRCbG9ja051 bWJlcihwYXJhbXMtPmJ1ZmZlcik7CkBAIC00NjEsOSArNDc4LDggQEAgcHJ1bmVfZnJlZXplX3Nl dHVwKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJICogV2UgdHJhY2sgd2hldGhlciB0aGUg cGFnZSB3aWxsIGJlIGFsbC12aXNpYmxlL2FsbC1mcm96ZW4gYXQgdGhlIGVuZCBvZgogCSAqIHBy dW5pbmcgYW5kIGZyZWV6aW5nLiBXaGlsZSBleGFtaW5pbmcgdHVwbGUgdmlzaWJpbGl0eSwgd2Un bGwgc2V0CiAJICogc2V0X2FsbF92aXNpYmxlIHRvIGZhbHNlIGlmIHRoZXJlIGFyZSB0dXBsZXMg b24gdGhlIHBhZ2Ugbm90IHZpc2libGUgdG8KLQkgKiBhbGwgcnVubmluZyBhbmQgZnV0dXJlIHRy YW5zYWN0aW9ucy4gc2V0X2FsbF92aXNpYmxlIGlzIGFsd2F5cwotCSAqIG1haW50YWluZWQgYnV0 IG9ubHkgVkFDVVVNIHdpbGwgc2V0IHRoZSBWTSBpZiB0aGUgcGFnZSBlbmRzIHVwIGJlaW5nCi0J ICogYWxsLXZpc2libGUuCisJICogYWxsIHJ1bm5pbmcgYW5kIGZ1dHVyZSB0cmFuc2FjdGlvbnMu IElmIGVuYWJsZWQgZm9yIHRoaXMgc2Nhbiwgd2Ugd2lsbAorCSAqIHNldCB0aGUgVk0gaWYgdGhl IHBhZ2UgZW5kcyB1cCBiZWluZyBhbGwtdmlzaWJsZS4KIAkgKgogCSAqIFdlIGFsc28ga2VlcCB0 cmFjayBvZiB0aGUgbmV3ZXN0IGxpdmUgWElELCB3aGljaCBpcyB1c2VkIHRvIGNhbGN1bGF0ZQog CSAqIHRoZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uIGZvciBhIFdBTCByZWNvcmQgc2V0dGlu ZyB0aGUgVk0uCkBAIC05MjAsMjEgKzkzNiwzNyBAQCBoZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRp b24oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSwKICAqIFRoaXMgZnVu Y3Rpb24gZG9lcyBub3QgYWN0dWFsbHkgc2V0IHRoZSBWTSBiaXRzIG9yIHBhZ2UtbGV2ZWwgdmlz aWJpbGl0eQogICogaGludCwgUERfQUxMX1ZJU0lCTEUuCiAgKgorICogVGhpcyBzaG91bGQgYmUg Y2FsbGVkIG9ubHkgYWZ0ZXIgZG9fZnJlZXplIGhhcyBiZWVuIGRlY2lkZWQgKGFuZCBkb19wcnVu ZQorICogaGFzIGJlZW4gc2V0KSwgYXMgdGhlc2UgZmFjdG9yIGludG8gb3VyIGhldXJpc3RpYy1i YXNlZCBkZWNpc2lvbi4KKyAqCiAgKiBSZXR1cm5zIHRydWUgaWYgb25lIG9yIGJvdGggVk0gYml0 cyBzaG91bGQgYmUgc2V0IGFuZCBmYWxzZSBvdGhlcndpc2UuCiAgKi8KIHN0YXRpYyBib29sCi1o ZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVh c29uKQoraGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVh c29uIHJlYXNvbiwKKwkJCQkJICBib29sIGRvX3BydW5lLCBib29sIGRvX2ZyZWV6ZSkKIHsKLQkv KgotCSAqIFRob3VnaCBvbi1hY2Nlc3MgcHJ1bmluZyBtYWludGFpbnMgcHJzdGF0ZS0+c2V0X2Fs bF92aXNpYmxlLCB3ZSBkb24ndAotCSAqIHNldCB0aGUgVk0gb24tYWNjZXNzIGZvciBub3cuCi0J ICovCi0JaWYgKHJlYXNvbiA9PSBQUlVORV9PTl9BQ0NFU1MpCisJaWYgKCFwcnN0YXRlLT5hdHRl bXB0X3NldF92bSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJaWYgKCFwcnN0YXRlLT5zZXRfYWxsX3Zp c2libGUpCiAJCXJldHVybiBmYWxzZTsKIAorCS8qCisJICogSWYgdGhpcyBpcyBhbiBvbi1hY2Nl c3MgY2FsbCBhbmQgd2UncmUgbm90IGFjdHVhbGx5IHBydW5pbmcsIGF2b2lkCisJICogc2V0dGlu ZyB0aGUgdmlzaWJpbGl0eSBtYXAgaWYgaXQgd291bGQgbmV3bHkgZGlydHkgdGhlIGhlYXAgcGFn ZSBvciwgaWYKKwkgKiB0aGUgcGFnZSBpcyBhbHJlYWR5IGRpcnR5LCBpZiBkb2luZyBzbyB3b3Vs ZCByZXF1aXJlIGluY2x1ZGluZyBhCisJICogZnVsbC1wYWdlIGltYWdlIChGUEkpIG9mIHRoZSBo ZWFwIHBhZ2UgaW4gdGhlIFdBTC4gVGhpcyBzaXR1YXRpb24KKwkgKiBzaG91bGQgYmUgcmFyZSwg YXMgb24tYWNjZXNzIHBydW5pbmcgaXMgb25seSBhdHRlbXB0ZWQgd2hlbgorCSAqIHBkX3BydW5l X3hpZCBpcyB2YWxpZC4KKwkgKi8KKwlpZiAocmVhc29uID09IFBSVU5FX09OX0FDQ0VTUyAmJiAh ZG9fcHJ1bmUgJiYgIWRvX2ZyZWV6ZSAmJgorCQkoIUJ1ZmZlcklzRGlydHkocHJzdGF0ZS0+YnVm ZmVyKSB8fCBYTG9nQ2hlY2tCdWZmZXJOZWVkc0JhY2t1cChwcnN0YXRlLT5idWZmZXIpKSkKKwl7 CisJCXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSA9IGZhbHNlOworCQlwcnN0YXRlLT5zZXRfYWxs X2Zyb3plbiA9IGZhbHNlOworCQlyZXR1cm4gZmFsc2U7CisJfQorCiAJcHJzdGF0ZS0+bmV3X3Zt Yml0cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CiAKIAlpZiAocHJzdGF0ZS0+c2V0X2Fs bF9mcm96ZW4pCkBAIC0xMTY3LDcgKzExOTksNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6 ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCUFzc2VydCghcHJzdGF0ZS5zZXRfYWxsX2Zy b3plbiB8fCBwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSk7CiAJQXNzZXJ0KCFwcnN0YXRlLnNldF9h bGxfdmlzaWJsZSB8fCAocHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0gMCkpOwogCi0JZG9fc2V0X3Zt ID0gaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKCZwcnN0YXRlLCBwYXJhbXMtPnJlYXNvbik7CisJZG9f c2V0X3ZtID0gaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKCZwcnN0YXRlLCBwYXJhbXMtPnJlYXNvbiwg ZG9fcHJ1bmUsIGRvX2ZyZWV6ZSk7CiAKIAkvKgogCSAqIG5ld192bWJpdHMgc2hvdWxkIGJlIDAg cmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBpcwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jCmluZGV4IGY2OThjMmQ4OTliLi4yNDAwMWIyNzM4NyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMjAyMSw3ICsyMDIxLDcgQEAgbGF6eV9zY2Fu X3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJLmJ1ZmZlciA9IGJ1ZiwKIAkJLnZtYnVmZmVy ID0gdm1idWZmZXIsCiAJCS5yZWFzb24gPSBQUlVORV9WQUNVVU1fU0NBTiwKLQkJLm9wdGlvbnMg PSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLAorCQkub3B0aW9ucyA9IEhFQVBfUEFHRV9QUlVORV9G UkVFWkUgfCBIRUFQX1BBR0VfUFJVTkVfU0VUX1ZNLAogCQkudmlzdGVzdCA9IHZhY3JlbC0+dmlz dGVzdCwKIAkJLmN1dG9mZnMgPSAmdmFjcmVsLT5jdXRvZmZzLAogCX07CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgK aW5kZXggZTJlMDczNDhmMzcuLmYyYTAwOTE0MWJlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC00Myw2 ICs0Myw3IEBACiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9NQVJLX1VOVVNFRF9OT1cJCSgxIDw8 IDApCiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUJCQkJKDEgPDwgMSkKICNkZWZpbmUg SEVBUF9QQUdFX1BSVU5FX0FMTE9XX0ZBU1RfUEFUSAkJKDEgPDwgMikKKyNkZWZpbmUgSEVBUF9Q QUdFX1BSVU5FX1NFVF9WTQkJCQkoMSA8PCAzKQogCiB0eXBlZGVmIHN0cnVjdCBCdWxrSW5zZXJ0 U3RhdGVEYXRhICpCdWxrSW5zZXJ0U3RhdGU7CiB0eXBlZGVmIHN0cnVjdCBHbG9iYWxWaXNTdGF0 ZSBHbG9iYWxWaXNTdGF0ZTsKQEAgLTQzMSw3ICs0MzIsNyBAQCBleHRlcm4gVHJhbnNhY3Rpb25J ZCBoZWFwX2luZGV4X2RlbGV0ZV90dXBsZXMoUmVsYXRpb24gcmVsLAogCiAvKiBpbiBoZWFwL3By dW5laGVhcC5jICovCiBleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyLAotCQkJCQkJCQlCdWZmZXIgKnZtYnVmZmVyKTsKKwkJCQkJ CQkJQnVmZmVyICp2bWJ1ZmZlciwgYm9vbCByZWxfcmVhZF9vbmx5KTsKIGV4dGVybiB2b2lkIGhl YXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCQkJ CQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKIAkJCQkJCQkJCSAgIE9mZnNldE51 bWJlciAqb2ZmX2xvYywKLS0gCjIuNDMuMAoK --000000000000d95d29064e065b9c Content-Type: text/x-patch; charset="UTF-8"; name="v47-0006-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v47-0006-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mn9a9rvi5 RnJvbSA3Zjg3NGIyZjc1OWE0OGE0NTUzYjg1YTJlNzY1NTA3NWEzMTFmMzJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDcgNi82XSBTZXQgcGRfcHJ1bmVfeGlkIG9uIGluc2VydApNSU1FLVZlcnNpb246IDEu MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAoKTm93IHRoYXQgdmlzaWJpbGl0eSBtYXAgKFZNKSB1cGRhdGVzIGNh biBvY2N1ciBkdXJpbmcgcmVhZC1vbmx5IHF1ZXJpZXMsCml0IG1ha2VzIHNlbnNlIHRvIGFsc28g c2V0IHRoZSBwYWdl4oCZcyBwZF9wcnVuZV94aWQgaGludCBkdXJpbmcgaW5zZXJ0cwphbmQgb24g dGhlIG5ldyBwYWdlIGR1cmluZyB1cGRhdGVzLgoKVGhpcyBlbmFibGVzIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKCkgdG8gc2V0IHRoZSBWTSBhbGwtdmlzaWJsZQphZnRlciBhIHBhZ2UgaXMg ZmlsbGVkIHdpdGggbmV3bHkgaW5zZXJ0ZWQgdHVwbGVzIHRoZSBmaXJzdCB0aW1lIGl0IGlzCnJl YWQuIFRoaXMgbWVhbnMgdGhlIHBhZ2Ugd2lsbCBnZXQgc2V0IGFsbC12aXNpYmxlIHdoZW4gaXQg aXMgc3RpbGwgaW4Kc2hhcmVkIGJ1ZmZlcnMgYW5kIGF2b2lkIHBvdGVudGlhbCBJL08gYW1wbGlm aWNhdGlvbiB3aGVuIHZhY3V1bSBsYXRlcgpoYXMgdG8gc2NhbiB0aGUgcGFnZSBhbmQgc2V0IGl0 IGFsbC12aXNpYmxlLiBJdCBhbHNvIGVuYWJsZXMgaW5kZXgtb25seQpzY2FucyBvZiBuZXdseSBp bnNlcnRlZCBkYXRhIG11Y2ggc29vbmVyLgoKVGhpcyBjaGFuZ2UgYWxzbyBhZGRyZXNzZXMgYSBs b25nLXN0YW5kaW5nIG5vdGUgaW4gaGVhcF9pbnNlcnQoKSBhbmQKaGVhcF9tdWx0aV9pbnNlcnQo KSwgd2hpY2ggb2JzZXJ2ZWQgdGhhdCBzZXR0aW5nIHBkX3BydW5lX3hpZCB3b3VsZApoZWxwIGNs ZWFuIHVwIGFib3J0ZWQgaW5zZXJ0aW9ucyBzb29uZXIuIFdpdGhvdXQgaXQsIHN1Y2ggdHVwbGVz IG1pZ2h0CmxpbmdlciB1bnRpbCBWQUNVVU0sIHdoZXJlYXMgbm93IHRoZXkgY2FuIGJlIHBydW5l ZCBlYXJsaWVyLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpS ZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NNT014 MURoM1ZNaHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgIHwgMzkgKysrKysrKysrKysrKysrKystLS0tLS0tLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIHwgMTkgKysrKysrKysrKysr LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICB8IDE4ICsrKysrKy0tLS0t LS0KIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCBkYmRmNjUyMWM0Mi4uY2RhZjU3ZTNmMTIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC0yMTU2LDYgKzIxNTYsNyBAQCBoZWFwX2luc2Vy dChSZWxhdGlvbiByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAlUcmFu c2FjdGlvbklkIHhpZCA9IEdldEN1cnJlbnRUcmFuc2FjdGlvbklkKCk7CiAJSGVhcFR1cGxlCWhl YXB0dXA7CiAJQnVmZmVyCQlidWZmZXI7CisJUGFnZQkJcGFnZTsKIAlCdWZmZXIJCXZtYnVmZmVy ID0gSW52YWxpZEJ1ZmZlcjsKIAlib29sCQlhbGxfdmlzaWJsZV9jbGVhcmVkID0gZmFsc2U7CiAK QEAgLTIxODIsNiArMjE4Myw4IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFw VHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQkJCQkJCQkJICAgJnZtYnVmZmVyLCBOVUxMLAog CQkJCQkJCQkJICAgMCk7CiAKKwlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOworCiAJLyoK IAkgKiBXZSdyZSBhYm91dCB0byBkbyB0aGUgYWN0dWFsIGluc2VydCAtLSBidXQgY2hlY2sgZm9y IGNvbmZsaWN0IGZpcnN0LCB0bwogCSAqIGF2b2lkIHBvc3NpYmx5IGhhdmluZyB0byByb2xsIGJh Y2sgd29yayB3ZSd2ZSBqdXN0IGRvbmUuCkBAIC0yMjA1LDI1ICsyMjA4LDMwIEBAIGhlYXBfaW5z ZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBIZWFwVHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCVJl bGF0aW9uUHV0SGVhcFR1cGxlKHJlbGF0aW9uLCBidWZmZXIsIGhlYXB0dXAsCiAJCQkJCQkgKG9w dGlvbnMgJiBIRUFQX0lOU0VSVF9TUEVDVUxBVElWRSkgIT0gMCk7CiAKLQlpZiAoUGFnZUlzQWxs VmlzaWJsZShCdWZmZXJHZXRQYWdlKGJ1ZmZlcikpKQorCWlmIChQYWdlSXNBbGxWaXNpYmxlKHBh Z2UpKQogCXsKIAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IHRydWU7Ci0JCVBhZ2VDbGVhckFsbFZp c2libGUoQnVmZmVyR2V0UGFnZShidWZmZXIpKTsKKwkJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdl KTsKIAkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWxhdGlvbiwKIAkJCQkJCQlJdGVtUG9pbnRlckdl dEJsb2NrTnVtYmVyKCYoaGVhcHR1cC0+dF9zZWxmKSksCiAJCQkJCQkJdm1idWZmZXIsIFZJU0lC SUxJVFlNQVBfVkFMSURfQklUUyk7CiAJfQogCiAJLyoKLQkgKiBYWFggU2hvdWxkIHdlIHNldCBQ YWdlU2V0UHJ1bmFibGUgb24gdGhpcyBwYWdlID8KKwkgKiBTZXQgcGRfcHJ1bmVfeGlkIHRvIHRy aWdnZXIgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSBvbmNlIHRoZSBwYWdlCisJICogaXMg ZnVsbCBzbyB0aGF0IHdlIGNhbiBzZXQgdGhlIHBhZ2UgYWxsLXZpc2libGUgaW4gdGhlIFZNIG9u IHRoZSBuZXh0CisJICogcGFnZSBhY2Nlc3MuCiAJICoKLQkgKiBUaGUgaW5zZXJ0aW5nIHRyYW5z YWN0aW9uIG1heSBldmVudHVhbGx5IGFib3J0IHRodXMgbWFraW5nIHRoaXMgdHVwbGUKLQkgKiBE RUFEIGFuZCBoZW5jZSBhdmFpbGFibGUgZm9yIHBydW5pbmcuIFRob3VnaCB3ZSBkb24ndCB3YW50 IHRvIG9wdGltaXplCi0JICogZm9yIGFib3J0cywgaWYgbm8gb3RoZXIgdHVwbGUgaW4gdGhpcyBw YWdlIGlzIFVQREFURWQvREVMRVRFZCwgdGhlCi0JICogYWJvcnRlZCB0dXBsZSB3aWxsIG5ldmVy IGJlIHBydW5lZCB1bnRpbCBuZXh0IHZhY3V1bSBpcyB0cmlnZ2VyZWQuCisJICogU2V0dGluZyBw ZF9wcnVuZV94aWQgaXMgYWxzbyBoYW5keSBpZiB0aGUgaW5zZXJ0aW5nIHRyYW5zYWN0aW9uCisJ ICogZXZlbnR1YWxseSBhYm9ydHMgbWFraW5nIHRoaXMgdHVwbGUgREVBRCBhbmQgaGVuY2UgYXZh aWxhYmxlIGZvcgorCSAqIHBydW5pbmcuIElmIG5vIG90aGVyIHR1cGxlIGluIHRoaXMgcGFnZSBp cyBVUERBVEVkL0RFTEVURWQsIHRoZSBhYm9ydGVkCisJICogdHVwbGUgd291bGQgbmV2ZXIgb3Ro ZXJ3aXNlIGJlIHBydW5lZCB1bnRpbCBuZXh0IHZhY3V1bSBpcyB0cmlnZ2VyZWQuCiAJICoKLQkg KiBJZiB5b3UgZG8gYWRkIFBhZ2VTZXRQcnVuYWJsZSBoZXJlLCBhZGQgaXQgaW4gaGVhcF94bG9n X2luc2VydCB0b28uCisJICogRG9uJ3Qgc2V0IGl0IGlmIHdlIGFyZSBpbiBib290c3RyYXAgbW9k ZSBvciB3ZSBhcmUgaW5zZXJ0aW5nIGEgZnJvemVuCisJICogdHVwbGUsIGFzIHRoZXJlIGlzIG5v IGZ1cnRoZXIgcHJ1bmluZy9mcmVlemluZyBuZWVkZWQgaW4gdGhvc2UgY2FzZXMuCiAJICovCisJ aWYgKFRyYW5zYWN0aW9uSWRJc05vcm1hbCh4aWQpICYmICEob3B0aW9ucyAmIEhFQVBfSU5TRVJU X0ZST1pFTikpCisJCVBhZ2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJTWFya0J1ZmZlckRp cnR5KGJ1ZmZlcik7CiAKQEAgLTIyMzMsNyArMjI0MSw2IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9u IHJlbGF0aW9uLCBIZWFwVHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQl4bF9oZWFwX2luc2Vy dCB4bHJlYzsKIAkJeGxfaGVhcF9oZWFkZXIgeGxoZHI7CiAJCVhMb2dSZWNQdHIJcmVjcHRyOwot CQlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOwogCQl1aW50OAkJaW5mbyA9IFhM T0dfSEVBUF9JTlNFUlQ7CiAJCWludAkJCWJ1ZmZsYWdzID0gMDsKIApAQCAtMjU5OCw4ICsyNjA1 LDEyIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xv dCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJfQogCiAJCS8qCi0JCSAqIFhYWCBTaG91bGQgd2Ug c2V0IFBhZ2VTZXRQcnVuYWJsZSBvbiB0aGlzIHBhZ2UgPyBTZWUgaGVhcF9pbnNlcnQoKQorCQkg KiBTZXQgcGRfcHJ1bmVfeGlkLiBTZWUgaGVhcF9pbnNlcnQoKSBmb3IgbW9yZSBvbiB3aHkgd2Ug ZG8gdGhpcyB3aGVuCisJCSAqIGluc2VydGluZyB0dXBsZXMuIFRoaXMgb25seSBtYWtlcyBzZW5z ZSBpZiB3ZSBhcmVuJ3QgYWxyZWFkeQorCQkgKiBzZXR0aW5nIHRoZSBwYWdlIGZyb3plbiBpbiB0 aGUgVk0gYW5kIHdlJ3JlIG5vdCBpbiBib290c3RyYXAgbW9kZS4KIAkJICovCisJCWlmICghYWxs X2Zyb3plbl9zZXQgJiYgVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkpCisJCQlQYWdlU2V0UHJ1 bmFibGUocGFnZSwgeGlkKTsKIAogCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsKIApAQCAtNDE0 MSwxMiArNDE1MiwxMiBAQCBsMjoKIAkgKiB0aGUgc3Vic2VxdWVudCBwYWdlIHBydW5pbmcgd2ls bCBiZSBhIG5vLW9wIGFuZCB0aGUgaGludCB3aWxsIGJlCiAJICogY2xlYXJlZC4KIAkgKgotCSAq IFhYWCBTaG91bGQgd2Ugc2V0IGhpbnQgb24gbmV3YnVmIGFzIHdlbGw/ICBJZiB0aGUgdHJhbnNh Y3Rpb24gYWJvcnRzLAotCSAqIHRoZXJlIHdvdWxkIGJlIGEgcHJ1bmFibGUgdHVwbGUgaW4gdGhl IG5ld2J1ZjsgYnV0IGZvciBub3cgd2UgY2hvb3NlCi0JICogbm90IHRvIG9wdGltaXplIGZvciBh Ym9ydHMuICBOb3RlIHRoYXQgaGVhcF94bG9nX3VwZGF0ZSBtdXN0IGJlIGtlcHQgaW4KLQkgKiBz eW5jIGlmIHRoaXMgZGVjaXNpb24gY2hhbmdlcy4KKwkgKiBXZSBzZXQgdGhlIG5ldyBwYWdlIHBy dW5hYmxlIGFzIHdlbGwuIFNlZSBoZWFwX2luc2VydCgpIGZvciBtb3JlIG9uIHdoeQorCSAqIHdl IGRvIHRoaXMgd2hlbiBpbnNlcnRpbmcgdHVwbGVzLgogCSAqLwogCVBhZ2VTZXRQcnVuYWJsZShw YWdlLCB4aWQpOworCWlmIChuZXdidWYgIT0gYnVmZmVyKQorCQlQYWdlU2V0UHJ1bmFibGUobmV3 cGFnZSwgeGlkKTsKIAogCWlmICh1c2VfaG90X3VwZGF0ZSkKIAl7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX3hsb2cuYwppbmRleCAxMzAyYmIxM2UxOC4uZjNmNDE5ZDNkYzEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNDUwLDYgKzQ1MCwxNCBAQCBoZWFwX3hs b2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWZyZWVzcGFjZSA9IFBhZ2VH ZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBuZWVkZWQgdG8gdXBkYXRlIEZTTSBiZWxvdyAqLwog CisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBwcnVuYWJsZSB0byB0cmlnZ2VyIG9uLWFjY2VzcyBw cnVuaW5nIGxhdGVyLCB3aGljaCBtYXkKKwkJICogc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlIGlu IHRoZSBWTS4gU2VlIGNvbW1lbnRzIGluIGhlYXBfaW5zZXJ0KCkuCisJCSAqLworCQlpZiAoVHJh bnNhY3Rpb25JZElzTm9ybWFsKFhMb2dSZWNHZXRYaWQocmVjb3JkKSkgJiYKKwkJCSFIZWFwVHVw bGVIZWFkZXJYbWluRnJvemVuKGh0dXApKQorCQkJUGFnZVNldFBydW5hYmxlKHBhZ2UsIFhMb2dS ZWNHZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdlLCBsc24pOwogCiAJCWlmICh4 bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCkBAIC01OTksMTIg KzYwNywxOSBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9BTExfVklTSUJMRV9DTEVBUkVEKQog CQkJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdlKTsKIAotCQkvKiBYTEhfSU5TRVJUX0FMTF9GUk9a RU5fU0VUIGltcGxpZXMgdGhhdCBhbGwgdHVwbGVzIGFyZSB2aXNpYmxlICovCisJCS8qCisJCSAq IFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQgaW1wbGllcyB0aGF0IGFsbCB0dXBsZXMgYXJlIHZp c2libGUuIElmCisJCSAqIHdlIGFyZSBub3Qgc2V0dGluZyB0aGUgcGFnZSBmcm96ZW4sIHRoZW4g c2V0IHRoZSBwYWdlJ3MgcHJ1bmFibGUKKwkJICogaGludCBzbyB0aGF0IHdlIHRyaWdnZXIgb24t YWNjZXNzIHBydW5pbmcgbGF0ZXIgd2hpY2ggbWF5IHNldCB0aGUKKwkJICogcGFnZSBhbGwtdmlz aWJsZSBpbiB0aGUgVk0uCisJCSAqLwogCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9B TExfRlJPWkVOX1NFVCkKIAkJewogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlQYWdl Q2xlYXJQcnVuYWJsZShwYWdlKTsKIAkJfQorCQllbHNlCisJCQlQYWdlU2V0UHJ1bmFibGUocGFn ZSwgWExvZ1JlY0dldFhpZChyZWNvcmQpKTsKIAogCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsK IAl9CkBAIC05MjEsNiArOTM2LDggQEAgaGVhcF94bG9nX3VwZGF0ZShYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCwgYm9vbCBob3RfdXBkYXRlKQogCQlmcmVlc3BhY2UgPSBQYWdlR2V0SGVhcEZyZWVT cGFjZShucGFnZSk7CiAKIAkJUGFnZVNldExTTihucGFnZSwgbHNuKTsKKwkJLyogU2VlIGhlYXBf aW5zZXJ0KCkgZm9yIHdoeSB3ZSBzZXQgcGRfcHJ1bmVfeGlkIG9uIGluc2VydCAqLworCQlQYWdl U2V0UHJ1bmFibGUobnBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7CiAJCU1hcmtCdWZmZXJE aXJ0eShuYnVmZmVyKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXgg NDhmN2NmNzdiYzguLjViYjllOTI5YWNmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YwpAQCAtMjg1LDcgKzI4NSw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIsCiAJLyoKIAkgKiBGaXJzdCBjaGVj ayB3aGV0aGVyIHRoZXJlJ3MgYW55IGNoYW5jZSB0aGVyZSdzIHNvbWV0aGluZyB0byBwcnVuZSwK IAkgKiBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGUgaG9yaXpvbiBpcyBhIHdhc3RlIGlmIHRo ZXJlJ3Mgbm8gcHJ1bmVfeGlkCi0JICogKGkuZS4gbm8gdXBkYXRlcy9kZWxldGVzIGxlZnQgcG90 ZW50aWFsbHkgZGVhZCB0dXBsZXMgYXJvdW5kKS4KKwkgKiAoaS5lLiBubyB1cGRhdGVzL2RlbGV0 ZXMgbGVmdCBwb3RlbnRpYWxseSBkZWFkIHR1cGxlcyBhcm91bmQgYW5kIG5vCisJICogaW5zZXJ0 cyBpbnNlcnRlZCBuZXcgdHVwbGVzIHRoYXQgbWF5IGJlIHZpc2libGUgdG8gYWxsKS4KIAkgKi8K IAlwcnVuZV94aWQgPSBQYWdlR2V0UHJ1bmVYaWQocGFnZSk7CiAJaWYgKCFUcmFuc2FjdGlvbklk SXNWYWxpZChwcnVuZV94aWQpKQpAQCAtMTkyOCwxNyArMTkyOSwxNCBAQCBoZWFwX3BydW5lX3Jl Y29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJl ciBvZmZudW0pCiAJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBmYWxzZTsKIAkJCXByc3Rh dGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7CiAKLQkJCS8qIFRoZSBwYWdlIHNob3VsZCBub3Qg YmUgbWFya2VkIGFsbC12aXNpYmxlICovCi0JCQlpZiAoUGFnZUlzQWxsVmlzaWJsZShwYWdlKSkK LQkJCQloZWFwX3BhZ2VfZml4X3ZtX2NvcnJ1cHRpb24ocHJzdGF0ZSwgb2ZmbnVtLAotCQkJCQkJ CQkJCQlWTV9DT1JSVVBUX1RVUExFX1ZJU0lCSUxJVFkpOwotCiAJCQkvKgotCQkJICogSWYgd2Ug d2FudGVkIHRvIG9wdGltaXplIGZvciBhYm9ydHMsIHdlIG1pZ2h0IGNvbnNpZGVyIG1hcmtpbmcK LQkJCSAqIHRoZSBwYWdlIHBydW5hYmxlIHdoZW4gd2Ugc2VlIElOU0VSVF9JTl9QUk9HUkVTUy4g IEJ1dCB3ZQotCQkJICogZG9uJ3QuICBTZWUgcmVsYXRlZCBkZWNpc2lvbnMgYWJvdXQgd2hlbiB0 byBtYXJrIHRoZSBwYWdlCi0JCQkgKiBwcnVuYWJsZSBpbiBoZWFwYW0uYy4KKwkJCSAqIFRob3Vn aCB0aGVyZSBpcyBub3RoaW5nICJwcnVuYWJsZSIgb24gdGhlIHBhZ2UsIHdlIG1haW50YWluCisJ CQkgKiBwZF9wcnVuZV94aWQgZm9yIGluc2VydHMgc28gdGhhdCB3ZSBoYXZlIHRoZSBvcHBvcnR1 bml0eSB0bworCQkJICogbWFyayB0aGVtIGFsbC12aXNpYmxlIGR1cmluZyB0aGUgbmV4dCByb3Vu ZCBvZiBwcnVuaW5nLgogCQkJICovCisJCQloZWFwX3BydW5lX3JlY29yZF9wcnVuYWJsZShwcnN0 YXRlLAorCQkJCQkJCQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0WG1pbihodHVwKSwKKwkJCQkJCQkJ CSAgIG9mZm51bSk7CiAJCQlicmVhazsKIAogCQljYXNlIEhFQVBUVVBMRV9ERUxFVEVfSU5fUFJP R1JFU1M6Ci0tIAoyLjQzLjAKCg== --000000000000d95d29064e065b9c--