Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uhxQg-005wrw-QS for pgsql-hackers@arkaria.postgresql.org; Fri, 01 Aug 2025 21:36:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uhxQe-009VxK-Dg for pgsql-hackers@arkaria.postgresql.org; Fri, 01 Aug 2025 21:36:40 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uhxQd-009VxC-Pi for pgsql-hackers@lists.postgresql.org; Fri, 01 Aug 2025 21:36:40 +0000 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uhxQX-000Gww-0R for pgsql-hackers@lists.postgresql.org; Fri, 01 Aug 2025 21:36:39 +0000 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-ae708b0e83eso383876266b.2 for ; Fri, 01 Aug 2025 14:36:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754084192; x=1754688992; 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=5glp/JC9LzNxUGVn0yv365CYSVRqvBrOzMFrpw6NVS4=; b=SAElcLSEy+MJeFZ96shJX3+RUTZAi40AUmg/IhHXKp5HeWl0S0gFgL94ittIn47BeW ozN0jdPIngSZvynYxYlZSKBR+zUQkvYCmlZ/dPXBtutQa218xVUeYLyZLSyBnyYgjfqm NJ6Bbl8LIC5l1P22q3FMmOXVFEdOnNEpCFRznnbHdKjw1Si1tq22nxPTrF4G0C+vIloV vVpMw6ZclDQ1YHKi4tMaZBuXhezdICdkhak+T6W9Cil26O1jA4aTcL0UrnJVJov/VqRH kBjX0F/rcUV+BZHF6n8ixIGCWZ5SopKl1owSrFTtVSemPFAZ+iqZSWFXiuwQUg9nPqf6 bnTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754084192; x=1754688992; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5glp/JC9LzNxUGVn0yv365CYSVRqvBrOzMFrpw6NVS4=; b=PknyoJf9YN+na/QtXflaRA7tWqUlFV8rntlPEmSzqMMwCDERUa58Th/2/vu2fy7TQY x7zZqGfMTekyvMoMCnWusZR/hXK/1snfq27Z99MEcQHhqlRWE9SVIfg8J0s3dNsx77AR GK/j+SrSSwsROrfLmRI2VPhjyVHs4CNF9Ob8vMSRWLgH631lM8gCVPS1QasBpqSei4n1 S0Y2s1Rfb/KjvuF+asg61DGraj2hnr3FlEOVXmyA/UtZl12Z+NvgUzKR99n6FDoZMY0F 50vjuCSPENybzjFXZv6Z9TfV1t56py1A/5USszEwSFXRDQW6Km2yCACyEU/Yyn8t/jbu QUJw== X-Gm-Message-State: AOJu0YyRbSbXDlkmabzC47iYYhOQyGb7mQ4xjtv0E0o6/9FOf1C/hnpi nceqCNI3mwjWJbT6+k5RI+AiIJSSomdkI5Fz7Wc1W58JgTo2AoOntiI5oOSJjLWZXrWO17Hf3fJ 1SScZa75EFaiM7GT88tRNad/TtNnC3jU= X-Gm-Gg: ASbGnctdNdhnBbA5wFJ9JQz4Tf6DCkTUvbAz5eaUyHyZDZRRfDQV3SZkAZcccdcoduE 7ZaRZOjE//P3qFJ9eHVcVHBIwF1kJ0K5ACnosXH5l3NktHR9z1uzkFLGAkeJ9aka+hjaUGV/JNp qPYdklWnABrPZhlBey3fF9SNoIPONeho5SmznwJoTYf7v/FQkVAvsFf5Q2fZCu1y+Kh7ooodLY0 J5CgOA= X-Google-Smtp-Source: AGHT+IHLshPwZ0Lf0SuykE+1uS6mMbHoqporaHBUX7onLOm/HOmefd9Db4HMFq/I9uUz6oqGz9Xf7arfSmIdWCJF+zM= X-Received: by 2002:a17:907:7f16:b0:af8:501b:a412 with SMTP id a640c23a62f3a-af940078c9emr136783066b.26.1754084191785; Fri, 01 Aug 2025 14:36:31 -0700 (PDT) MIME-Version: 1.0 References: <87DD95AA-274F-4F4F-BAD9-7738E5B1F905@yandex-team.ru> In-Reply-To: From: Melanie Plageman Date: Fri, 1 Aug 2025 17:36:19 -0400 X-Gm-Features: Ac12FXzbnJfeWlbINac7iGOhVSsgS0UZ3tE561xmgUjrCvMuNaUKDNhPjhV7c3I Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Andrey Borodin Cc: PostgreSQL Hackers , Andres Freund , Robert Haas Content-Type: multipart/mixed; boundary="00000000000028fe60063b548d2f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000028fe60063b548d2f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jul 31, 2025 at 6:58=E2=80=AFPM Melanie Plageman wrote: > > The patch "Set-pd_prune_xid-on-insert.txt" can be applied as the last > patch in the set. It sets pd_prune_xid on insert (so pages filled by > COPY or insert can also be set all-visible in the VM before they are > vacuumed). I gave it a .txt extension because it currently fails > 035_standby_logical_decoding due to a recovery conflict. I need to > investigate more to see if this is a bug in my patch set or elsewhere > in Postgres. I figured out that if we set the VM on-access, we need to enable hot_standby_feedback in more places in 035_standby_logical_decoding.pl to avoid recovery conflicts. I've done that in the attached updated version 6. There are a few other issues in 035_standby_logical_decoding.pl that I reported here [1]. With these changes, setting pd_prune_xid on insert passes tests. Whether or not we want to do it (and what the heuristic should be for deciding when to do it) is another question. - Melanie [1] https://www.postgresql.org/message-id/flat/CAAKRu_YO2mEm%3DZWZKPjTMU%3D= gW5Y83_KMi_1cr51JwavH0ctd7w%40mail.gmail.com --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0001-Eliminate-xl_heap_visible-in-COPY-FREEZE.patch" Content-Disposition: attachment; filename="v6-0001-Eliminate-xl_heap_visible-in-COPY-FREEZE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu5m0 RnJvbSA2MmFhYWYzM2ZmOWZjYzI1NmM0MjU3OWM1ZGNlOWU5ZTZlNjM0NGNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDE3IEp1biAyMDI1IDE3OjIyOjEwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAwMS8yMF0gRWxpbWluYXRlIHhsX2hlYXBfdmlzaWJsZSBpbiBDT1BZIEZSRUVaRQoK SW5zdGVhZCBvZiBlbWl0dGluZyBhIHNlcGFyYXRlIFdBTCByZWNvcmQgZm9yIHNldHRpbmcgdGhl IFZNIGJpdHMgaW4KeGxfaGVhcF92aXNpYmxlLCBzcGVjaWZ5IHRoZSBjaGFuZ2VzIHRvIG1ha2Ug dG8gdGhlIFZNIGJsb2NrIGluIHRoZQp4bF9oZWFwX211bHRpX2luc2VydCByZWNvcmQgaW5zdGVh ZC4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgfCA0NyArKysr KysrKysrLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICAg fCAzOSArKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5 bWFwLmMgfCA2MiArKysrKysrKysrKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9hY2Nlc3Mv cm1ncmRlc2MvaGVhcGRlc2MuYyAgfCAgNSArKwogc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxp dHltYXAuaCAgICAgIHwgIDIgKwogNSBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9ucygrKSwg MjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRleCAwZGNkNmVlODE3 ZS4uNjhkYjQzMjUyODUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC0yNDkzLDkgKzI0 OTMsNiBAQCBoZWFwX211bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNs b3QgKipzbG90cywgaW50IG50dXBsZXMsCiAJCS8qCiAJCSAqIElmIHRoZSBwYWdlIGlzIGFsbCB2 aXNpYmxlLCBuZWVkIHRvIGNsZWFyIHRoYXQsIHVubGVzcyB3ZSdyZSBvbmx5CiAJCSAqIGdvaW5n IHRvIGFkZCBmdXJ0aGVyIGZyb3plbiByb3dzIHRvIGl0LgotCQkgKgotCQkgKiBJZiB3ZSdyZSBv bmx5IGFkZGluZyBhbHJlYWR5IGZyb3plbiByb3dzIHRvIGEgcHJldmlvdXNseSBlbXB0eQotCQkg KiBwYWdlLCBtYXJrIGl0IGFzIGFsbC12aXNpYmxlLgogCQkgKi8KIAkJaWYgKFBhZ2VJc0FsbFZp c2libGUocGFnZSkgJiYgIShvcHRpb25zICYgSEVBUF9JTlNFUlRfRlJPWkVOKSkKIAkJewpAQCAt MjUwNSw4ICsyNTAyLDIyIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBU dXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJCQkJCQkJQnVmZmVyR2V0Qmxv Y2tOdW1iZXIoYnVmZmVyKSwKIAkJCQkJCQkJdm1idWZmZXIsIFZJU0lCSUxJVFlNQVBfVkFMSURf QklUUyk7CiAJCX0KKworCQkvKgorCQkgKiBJZiB3ZSdyZSBvbmx5IGFkZGluZyBhbHJlYWR5IGZy b3plbiByb3dzIHRvIGEgcHJldmlvdXNseSBlbXB0eQorCQkgKiBwYWdlLCBtYXJrIGl0IGFzIGFs bC1mcm96ZW4gYW5kIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAuIFdlJ3JlCisJCSAqIGFscmVh ZHkgaG9sZGluZyBhIHBpbiBvbiB0aGUgdm1idWZmZXIuCisJCSAqLwogCQllbHNlIGlmIChhbGxf ZnJvemVuX3NldCkKKwkJewogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CisJCQlMb2NrQnVm ZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOworCQkJdmlzaWJpbGl0eW1hcF9z ZXRfdm1ieXRlKHJlbGF0aW9uLAorCQkJCQkJCQkJIEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZl ciksCisJCQkJCQkJCQkgdm1idWZmZXIsCisJCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfVklT SUJMRSB8CisJCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKKwkJfQogCiAJCS8q CiAJCSAqIFhYWCBTaG91bGQgd2Ugc2V0IFBhZ2VTZXRQcnVuYWJsZSBvbiB0aGlzIHBhZ2UgPyBT ZWUgaGVhcF9pbnNlcnQoKQpAQCAtMjU1NCw2ICsyNTY1LDEyIEBAIGhlYXBfbXVsdGlfaW5zZXJ0 KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQgbnR1cGxlcywK IAkJCXhscmVjLT5mbGFncyA9IDA7CiAJCQlpZiAoYWxsX3Zpc2libGVfY2xlYXJlZCkKIAkJCQl4 bHJlYy0+ZmxhZ3MgPSBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQ7CisKKwkJCS8qCisJ CQkgKiBXZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IGluY2x1ZGluZyBhIGNvbmZsaWN0IHhp ZCBpbiB0aGUKKwkJCSAqIFdBTCByZWNvcmQgYXMgSEVBUF9JTlNFUlRfRlJPWkVOIGludGVudGlv bmFsbHkgdmlvbGF0ZXMKKwkJCSAqIHZpc2liaWxpdHkgcnVsZXMuCisJCQkgKi8KIAkJCWlmIChh bGxfZnJvemVuX3NldCkKIAkJCQl4bHJlYy0+ZmxhZ3MgPSBYTEhfSU5TRVJUX0FMTF9GUk9aRU5f U0VUOwogCkBAIC0yNjE2LDcgKzI2MzMsMTAgQEAgaGVhcF9tdWx0aV9pbnNlcnQoUmVsYXRpb24g cmVsYXRpb24sIFR1cGxlVGFibGVTbG90ICoqc2xvdHMsIGludCBudHVwbGVzLAogCiAJCQlYTG9n QmVnaW5JbnNlcnQoKTsKIAkJCVhMb2dSZWdpc3RlckRhdGEoeGxyZWMsIHR1cGxlZGF0YSAtIHNj cmF0Y2guZGF0YSk7CisKIAkJCVhMb2dSZWdpc3RlckJ1ZmZlcigwLCBidWZmZXIsIFJFR0JVRl9T VEFOREFSRCB8IGJ1ZmZsYWdzKTsKKwkJCWlmIChhbGxfZnJvemVuX3NldCkKKwkJCQlYTG9nUmVn aXN0ZXJCdWZmZXIoMSwgdm1idWZmZXIsIDApOwogCiAJCQlYTG9nUmVnaXN0ZXJCdWZEYXRhKDAs IHR1cGxlZGF0YSwgdG90YWxkYXRhbGVuKTsKIApAQCAtMjYyNiwyOSArMjY0NiwxNCBAQCBoZWFw X211bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNsb3QgKipzbG90cywg aW50IG50dXBsZXMsCiAJCQlyZWNwdHIgPSBYTG9nSW5zZXJ0KFJNX0hFQVAyX0lELCBpbmZvKTsK IAogCQkJUGFnZVNldExTTihwYWdlLCByZWNwdHIpOworCQkJaWYgKGFsbF9mcm96ZW5fc2V0KQor CQkJCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlciksIHJlY3B0cik7CiAJCX0KIAog CQlFTkRfQ1JJVF9TRUNUSU9OKCk7CiAKLQkJLyoKLQkJICogSWYgd2UndmUgZnJvemVuIGV2ZXJ5 dGhpbmcgb24gdGhlIHBhZ2UsIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eW1hcC4KLQkJICogV2UncmUg YWxyZWFkeSBob2xkaW5nIHBpbiBvbiB0aGUgdm1idWZmZXIuCi0JCSAqLwogCQlpZiAoYWxsX2Zy b3plbl9zZXQpCi0JCXsKLQkJCUFzc2VydChQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKTsKLQkJCUFz c2VydCh2aXNpYmlsaXR5bWFwX3Bpbl9vayhCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpLCB2 bWJ1ZmZlcikpOwotCi0JCQkvKgotCQkJICogSXQncyBmaW5lIHRvIHVzZSBJbnZhbGlkVHJhbnNh Y3Rpb25JZCBoZXJlIC0gdGhpcyBpcyBvbmx5IHVzZWQKLQkJCSAqIHdoZW4gSEVBUF9JTlNFUlRf RlJPWkVOIGlzIHNwZWNpZmllZCwgd2hpY2ggaW50ZW50aW9uYWxseQotCQkJICogdmlvbGF0ZXMg dmlzaWJpbGl0eSBydWxlcy4KLQkJCSAqLwotCQkJdmlzaWJpbGl0eW1hcF9zZXQocmVsYXRpb24s IEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZlciksIGJ1ZmZlciwKLQkJCQkJCQkgIEludmFsaWRY TG9nUmVjUHRyLCB2bWJ1ZmZlciwKLQkJCQkJCQkgIEludmFsaWRUcmFuc2FjdGlvbklkLAotCQkJ CQkJCSAgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pF Tik7Ci0JCX0KKwkJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX1VOTE9DSyk7CiAK IAkJVW5sb2NrUmVsZWFzZUJ1ZmZlcihidWZmZXIpOwogCQluZG9uZSArPSBudGhpc3BhZ2U7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCBlYjRiZDNkNmFlMy4uMjQ4NWMz NDQxOTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNTUyLDYgKzU1 Miw3IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJ aW50CQkJaTsKIAlib29sCQlpc2luaXQgPSAoWExvZ1JlY0dldEluZm8ocmVjb3JkKSAmIFhMT0df SEVBUF9JTklUX1BBR0UpICE9IDA7CiAJWExvZ1JlZG9BY3Rpb24gYWN0aW9uOworCUJ1ZmZlcgkJ dm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOwogCiAJLyoKIAkgKiBJbnNlcnRpb24gZG9lc24ndCBv dmVyd3JpdGUgTVZDQyBkYXRhLCBzbyBubyBjb25mbGljdCBwcm9jZXNzaW5nIGlzCkBAIC01NzIs MTEgKzU3MywxMSBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVj b3JkKQogCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQp CiAJewogCQlSZWxhdGlvbglyZWxuID0gQ3JlYXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3Ip OwotCQlCdWZmZXIJCXZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIAogCQl2aXNpYmlsaXR5bWFw X3BpbihyZWxuLCBibGtubywgJnZtYnVmZmVyKTsKIAkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWxu LCBibGtubywgdm1idWZmZXIsIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CiAJCVJlbGVhc2VC dWZmZXIodm1idWZmZXIpOworCQl2bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CiAJCUZyZWVGYWtl UmVsY2FjaGVFbnRyeShyZWxuKTsKIAl9CiAKQEAgLTY2Myw2ICs2NjQsNDIgQEAgaGVhcF94bG9n X211bHRpX2luc2VydChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAlpZiAoQnVmZmVySXNWYWxp ZChidWZmZXIpKQogCQlVbmxvY2tSZWxlYXNlQnVmZmVyKGJ1ZmZlcik7CiAKKwlidWZmZXIgPSBJ bnZhbGlkQnVmZmVyOworCisJLyoKKwkgKiBOb3cgcmVhZCBhbmQgdXBkYXRlIHRoZSBWTSBibG9j ay4gRXZlbiBpZiB3ZSBza2lwcGVkIHVwZGF0aW5nIHRoZSBoZWFwCisJICogcGFnZSBkdWUgdG8g dGhlIGZpbGUgYmVpbmcgZHJvcHBlZCBvciB0cnVuY2F0ZWQgbGF0ZXIgaW4gcmVjb3ZlcnksIGl0 J3MKKwkgKiBzdGlsbCBzYWZlIHRvIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAuICBBbnkgV0FM IHJlY29yZCB0aGF0IGNsZWFycworCSAqIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQgZG9lcyBzbyBi ZWZvcmUgY2hlY2tpbmcgdGhlIHBhZ2UgTFNOLCBzbyBhbnkKKwkgKiBiaXRzIHRoYXQgbmVlZCB0 byBiZSBjbGVhcmVkIHdpbGwgc3RpbGwgYmUgY2xlYXJlZC4KKwkgKgorCSAqIEl0IGlzIG9ubHkg b2theSB0byBzZXQgdGhlIFZNIGJpdHMgd2l0aG91dCBob2xkaW5nIHRoZSBoZWFwIHBhZ2UgbG9j aworCSAqIGJlY2F1c2Ugd2UgY2FuIGV4cGVjdCBubyBvdGhlciB3cml0ZXJzIG9mIHRoaXMgcGFn ZS4KKwkgKi8KKwlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9BTExfRlJPWkVOX1NFVCAm JgorCQlYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZChyZWNvcmQsIDEsIFJCTV9aRVJPX09O X0VSUk9SLCBmYWxzZSwKKwkJCQkJCQkJCSAgJnZtYnVmZmVyKSA9PSBCTEtfTkVFRFNfUkVETykK Kwl7CisJCVJlbGF0aW9uCXJlbG4gPSBDcmVhdGVGYWtlUmVsY2FjaGVFbnRyeShybG9jYXRvcik7 CisKKwkJdmlzaWJpbGl0eW1hcF9waW4ocmVsbiwgYmxrbm8sICZ2bWJ1ZmZlcik7CisJCXZpc2li aWxpdHltYXBfc2V0X3ZtYnl0ZShyZWxuLCBibGtubywKKwkJCQkJCQkJIHZtYnVmZmVyLAorCQkJ CQkJCQkgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8CisJCQkJCQkJCSBWSVNJQklMSVRZTUFQ X0FMTF9GUk9aRU4pOworCisJCS8qCisJCSAqIEl0IGlzIG5vdCBwb3NzaWJsZSB0aGF0IHRoZSBW TSB3YXMgYWxyZWFkeSBzZXQgZm9yIHRoaXMgaGVhcCBwYWdlLAorCQkgKiBzbyB0aGUgdm1idWZm ZXIgbXVzdCBoYXZlIGJlZW4gbW9kaWZpZWQgYW5kIG1hcmtlZCBkaXJ0eS4KKwkJICovCisJCUFz c2VydChCdWZmZXJJc0RpcnR5KHZtYnVmZmVyKSk7CisJCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFn ZSh2bWJ1ZmZlciksIGxzbik7CisJCUZyZWVGYWtlUmVsY2FjaGVFbnRyeShyZWxuKTsKKwl9CisK KwlpZiAoQnVmZmVySXNWYWxpZCh2bWJ1ZmZlcikpCisJCVVubG9ja1JlbGVhc2VCdWZmZXIodm1i dWZmZXIpOworCiAJLyoKIAkgKiBJZiB0aGUgcGFnZSBpcyBydW5uaW5nIGxvdyBvbiBmcmVlIHNw YWNlLCB1cGRhdGUgdGhlIEZTTSBhcyB3ZWxsLgogCSAqIEFyYml0cmFyaWx5LCBvdXIgZGVmaW5p dGlvbiBvZiAibG93IiBpcyBsZXNzIHRoYW4gMjAlLiBXZSBjYW4ndCBkbyBtdWNoCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKaW5kZXggOGY5MThlMDBhZjcuLjBiYzY0MjAz OTU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCkBAIC0xNCw3ICsx NCw4IEBACiAgKgkJdmlzaWJpbGl0eW1hcF9jbGVhciAgLSBjbGVhciBiaXRzIGZvciBvbmUgcGFn ZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAKICAqCQl2aXNpYmlsaXR5bWFwX3BpbgkgLSBwaW4gYSBt YXAgcGFnZSBmb3Igc2V0dGluZyBhIGJpdAogICoJCXZpc2liaWxpdHltYXBfcGluX29rIC0gY2hl Y2sgd2hldGhlciBjb3JyZWN0IG1hcCBwYWdlIGlzIGFscmVhZHkgcGlubmVkCi0gKgkJdmlzaWJp bGl0eW1hcF9zZXQJIC0gc2V0IGEgYml0IGluIGEgcHJldmlvdXNseSBwaW5uZWQgcGFnZQorICoJ CXZpc2liaWxpdHltYXBfc2V0CSAtIHNldCBhIGJpdCBpbiBhIHByZXZpb3VzbHkgcGlubmVkIHBh Z2UgYW5kIGxvZworICogICAgICB2aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUgLSBzZXQgYSBiaXQg aW4gYSBwaW5uZWQgcGFnZQogICoJCXZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyAtIGdldCBzdGF0 dXMgb2YgYml0cwogICoJCXZpc2liaWxpdHltYXBfY291bnQgIC0gY291bnQgbnVtYmVyIG9mIGJp dHMgc2V0IGluIHZpc2liaWxpdHkgbWFwCiAgKgkJdmlzaWJpbGl0eW1hcF9wcmVwYXJlX3RydW5j YXRlIC0KQEAgLTMxOCw2ICszMTksNjUgQEAgdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVs LCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKIAlyZXR1cm4gc3RhdHVzOwog fQogCisvKgorICogU2V0IGZsYWdzIGluIHRoZSBWTSBibG9jayBjb250YWluZWQgaW4gdGhlIHBh c3NlZCBpbiB2bUJ1Zi4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGZvciBjYWxsZXJzIHdoaWNo IGluY2x1ZGUgdGhlIFZNIGNoYW5nZXMgaW4gdGhlIHNhbWUgV0FMCisgKiByZWNvcmQgYXMgdGhl IG1vZGlmaWNhdGlvbnMgb2YgdGhlIGhlYXAgcGFnZSB3aGljaCByZW5kZXJlZCBpdCBhbGwtdmlz aWJsZS4KKyAqIENhbGxlcnMgc2VwYXJhdGVseSBsb2dnaW5nIHRoZSBWTSBjaGFuZ2VzIHNob3Vs ZCBpbnZva2UgdmlzaWJpbGl0eW1hcF9zZXQoKQorICogaW5zdGVhZC4KKyAqCisgKiBDYWxsZXIg bXVzdCBoYXZlIHBpbm5lZCBhbmQgZXhjbHVzaXZlIGxvY2tlZCB0aGUgY29ycmVjdCBibG9jayBv ZiB0aGUgVk0gaW4KKyAqIHZtQnVmLgorICoKKyAqIER1cmluZyBub3JtYWwgb3BlcmF0aW9uIChp LmUuIG5vdCByZWNvdmVyeSksIHRoaXMgc2hvdWxkIGJlIGNhbGxlZCBpbiBhCisgKiBjcml0aWNh bCBzZWN0aW9uIHdoaWNoIGFsc28gbWFrZXMgYW55IG5lY2Vzc2FyeSBjaGFuZ2VzIHRvIHRoZSBo ZWFwIHBhZ2UKKyAqIGFuZCwgaWYgcmVsZXZhbnQsIGVtaXRzIFdBTC4KKyAqCisgKiBDYWxsZXIg aXMgcmVzcG9uc2libGUgZm9yIFdBTCBsb2dnaW5nIHRoZSBjaGFuZ2VzIHRvIHRoZSBWTSBidWZm ZXIgYW5kIGZvcgorICogbWFraW5nIGFueSBjaGFuZ2VzIG5lZWRlZCB0byB0aGUgYXNzb2NpYXRl ZCBoZWFwIHBhZ2UuCisgKi8KK3VpbnQ4Cit2aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUoUmVsYXRp b24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAorCQkJCQkJIEJ1ZmZlciB2bUJ1ZiwgdWludDgg ZmxhZ3MpCit7CisJQmxvY2tOdW1iZXIgbWFwQmxvY2sgPSBIRUFQQkxLX1RPX01BUEJMT0NLKGhl YXBCbGspOworCXVpbnQzMgkJbWFwQnl0ZSA9IEhFQVBCTEtfVE9fTUFQQllURShoZWFwQmxrKTsK Kwl1aW50OAkJbWFwT2Zmc2V0ID0gSEVBUEJMS19UT19PRkZTRVQoaGVhcEJsayk7CisJUGFnZQkJ cGFnZTsKKwl1aW50OAkgICAqbWFwOworCXVpbnQ4CQlzdGF0dXM7CisKKyNpZmRlZiBUUkFDRV9W SVNJQklMSVRZTUFQCisJZWxvZyhERUJVRzEsICJ2bV9zZXQgJXMgJWQiLCBSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShyZWwpLCBoZWFwQmxrKTsKKyNlbmRpZgorCisJLyogQ2FsbCBpbiBzYW1lIGNy aXRpY2FsIHNlY3Rpb24gd2hlcmUgV0FMIGlzIGVtaXR0ZWQuICovCisJQXNzZXJ0KEluUmVjb3Zl cnkgfHwgQ3JpdFNlY3Rpb25Db3VudCA+IDApOworCisJLyogRmxhZ3Mgc2hvdWxkIGJlIHZhbGlk LiBBbHNvIG5ldmVyIGNsZWFyIGJpdHMgd2l0aCB0aGlzIGZ1bmN0aW9uICovCisJQXNzZXJ0KChm bGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgPT0gZmxhZ3MpOworCisJLyogTXVzdCBu ZXZlciBzZXQgYWxsX2Zyb3plbiBiaXQgd2l0aG91dCBhbHNvIHNldHRpbmcgYWxsX3Zpc2libGUg Yml0ICovCisJQXNzZXJ0KGZsYWdzICE9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7CisKKwkv KiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IFZNIHBhZ2UgcGlubmVkICovCisJaWYgKCFC dWZmZXJJc1ZhbGlkKHZtQnVmKSB8fCBCdWZmZXJHZXRCbG9ja051bWJlcih2bUJ1ZikgIT0gbWFw QmxvY2spCisJCWVsb2coRVJST1IsICJ3cm9uZyBWTSBidWZmZXIgcGFzc2VkIHRvIHZpc2liaWxp dHltYXBfc2V0Iik7CisKKwlwYWdlID0gQnVmZmVyR2V0UGFnZSh2bUJ1Zik7CisJbWFwID0gKHVp bnQ4ICopIFBhZ2VHZXRDb250ZW50cyhwYWdlKTsKKworCXN0YXR1cyA9IChtYXBbbWFwQnl0ZV0g Pj4gbWFwT2Zmc2V0KSAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsKKwlpZiAoZmxhZ3MgIT0g c3RhdHVzKQorCXsKKwkJbWFwW21hcEJ5dGVdIHw9IChmbGFncyA8PCBtYXBPZmZzZXQpOworCQlN YXJrQnVmZmVyRGlydHkodm1CdWYpOworCX0KKworCXJldHVybiBzdGF0dXM7Cit9CisKIC8qCiAg Kgl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMgLSBnZXQgc3RhdHVzIG9mIGJpdHMKICAqCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCmluZGV4IDgyYjYyYzk1ZGU1Li5iNDhkN2Rj MWQyNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKQEAgLTE2LDYgKzE2 LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW1feGxvZy5oIgogI2luY2x1ZGUgImFjY2Vz cy9ybWdyZGVzY191dGlscy5oIgorI2luY2x1ZGUgImFjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5o IgogI2luY2x1ZGUgInN0b3JhZ2Uvc3RhbmRieWRlZnMuaCIKIAogLyoKQEAgLTM1NCw2ICszNTUs MTAgQEAgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAibnR1cGxlczogJWQsIGZsYWdzOiAweCUwMlgiLCB4 bHJlYy0+bnR1cGxlcywKIAkJCQkJCSB4bHJlYy0+ZmxhZ3MpOwogCisJCWlmICh4bHJlYy0+Zmxh Z3MgJiBYTEhfSU5TRVJUX0FMTF9GUk9aRU5fU0VUKQorCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYs ICIsIHZtX2ZsYWdzOiAweCUwMlgiLAorCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxF IHwgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKKwogCQlpZiAoWExvZ1JlY0hhc0Jsb2NrRGF0 YShyZWNvcmQsIDApICYmICFpc2luaXQpCiAJCXsKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco YnVmLCAiLCBvZmZzZXRzOiIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2li aWxpdHltYXAuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKaW5kZXggYmUy MWM2ZGQxYTMuLjk3NzU2NmY2Yjk4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvdmlz aWJpbGl0eW1hcC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmgKQEAg LTM3LDYgKzM3LDggQEAgZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJl bCwKIAkJCQkJCQkgICBCdWZmZXIgdm1CdWYsCiAJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBjdXRv ZmZfeGlkLAogCQkJCQkJCSAgIHVpbnQ4IGZsYWdzKTsKK2V4dGVybiB1aW50OCB2aXNpYmlsaXR5 bWFwX3NldF92bWJ5dGUoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAorCQkJCQkJ CQkJICBCdWZmZXIgdm1CdWYsIHVpbnQ4IGZsYWdzKTsKIGV4dGVybiB1aW50OCB2aXNpYmlsaXR5 bWFwX2dldF9zdGF0dXMoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIg KnZtYnVmKTsKIGV4dGVybiB2b2lkIHZpc2liaWxpdHltYXBfY291bnQoUmVsYXRpb24gcmVsLCBC bG9ja051bWJlciAqYWxsX3Zpc2libGUsIEJsb2NrTnVtYmVyICphbGxfZnJvemVuKTsKIGV4dGVy biBCbG9ja051bWJlciB2aXNpYmlsaXR5bWFwX3ByZXBhcmVfdHJ1bmNhdGUoUmVsYXRpb24gcmVs LAotLSAKMi40My4wCgo= --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0003-Eliminate-xl_heap_visible-from-vacuum-phase-III.patch" Content-Disposition: attachment; filename="v6-0003-Eliminate-xl_heap_visible-from-vacuum-phase-III.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu5t2 RnJvbSAxNzQyNzI1NmQzNDhmNzQxNGJmYjhjZWI3NGUwMGUzZDhjZDM5MGE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjQyOjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAwMy8yMF0gRWxpbWluYXRlIHhsX2hlYXBfdmlzaWJsZSBmcm9tIHZhY3V1bSBwaGFz ZSBJSUkKCkluc3RlYWQgb2YgZW1pdHRpbmcgYSBzZXBhcmF0ZSB4bF9oZWFwX3Zpc2libGUgcmVj b3JkIGZvciBlYWNoIHBhZ2UgdGhhdAppcyByZW5kZXJlZCBhbGwtdmlzaWJsZSBieSB2YWN1dW0n cyB0aGlyZCBwaGFzZSwgaW5jbHVkZSB0aGUgdXBkYXRlcyB0bwp0aGUgVk0gaW4gdGhlIGFscmVh ZHkgZW1pdHRlZCB4bF9oZWFwX3BydW5lIHJlY29yZC4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9oZWFwYW1feGxvZy5jICB8IDE0MiArKysrKysrKysrKysrKysrKysrKy0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgfCAgNDggKysrKysrKy0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgIHwgMTQ5ICsrKysrKysrKysrKysrKysrLS0t LS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jIHwgIDEzICsrLQog c3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgfCAgIDkgKysKIHNyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oICAgICAgIHwgICAzICsKIDYgZmlsZXMgY2hhbmdlZCwg Mjk2IGluc2VydGlvbnMoKyksIDY4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1feGxvZy5jCmluZGV4IDI0ODVjMzQ0MTkxLi4xNDU0MWUyZTk0ZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jCkBAIC0zNSw3ICszNSw4IEBAIGhlYXBfeGxvZ19wcnVu ZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJQnVmZmVyCQlidWZmZXI7CiAJUmVs RmlsZUxvY2F0b3IgcmxvY2F0b3I7CiAJQmxvY2tOdW1iZXIgYmxrbm87Ci0JWExvZ1JlZG9BY3Rp b24gYWN0aW9uOworCUJ1ZmZlcgkJdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOworCXVpbnQ4CQl2 bWZsYWdzID0gMDsKIAogCVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybG9jYXRvciwg TlVMTCwgJmJsa25vKTsKIAltZW1jcHkoJnhscmVjLCBtYWluZGF0YXB0ciwgU2l6ZU9mSGVhcFBy dW5lKTsKQEAgLTUxLDEwICs1MiwxNSBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkKQogCQkgICAoeGxyZWMuZmxhZ3MgJiAoWExIUF9IQVNfUkVESVJFQ1RJ T05TIHwgWExIUF9IQVNfREVBRF9JVEVNUykpID09IDApOwogCiAJLyoKLQkgKiBXZSBhcmUgYWJv dXQgdG8gcmVtb3ZlIGFuZC9vciBmcmVlemUgdHVwbGVzLiAgSW4gSG90IFN0YW5kYnkgbW9kZSwK LQkgKiBlbnN1cmUgdGhhdCB0aGVyZSBhcmUgbm8gcXVlcmllcyBydW5uaW5nIGZvciB3aGljaCB0 aGUgcmVtb3ZlZCB0dXBsZXMKLQkgKiBhcmUgc3RpbGwgdmlzaWJsZSBvciB3aGljaCBzdGlsbCBj b25zaWRlciB0aGUgZnJvemVuIHhpZHMgYXMgcnVubmluZy4KLQkgKiBUaGUgY29uZmxpY3QgaG9y aXpvbiBYSUQgY29tZXMgYWZ0ZXIgeGxfaGVhcF9wcnVuZS4KKwkgKiBBZnRlciB4bF9oZWFwX3By dW5lIGlzIHRoZSBvcHRpb25hbCBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uLgorCSAqCisJICog SW4gSG90IFN0YW5kYnkgbW9kZSwgd2UgbXVzdCBlbnN1cmUgdGhhdCB0aGVyZSBhcmUgbm8gcnVu bmluZyBxdWVyaWVzCisJICogd2hpY2ggd291bGQgY29uZmxpY3Qgd2l0aCB0aGUgY2hhbmdlcyBp biB0aGlzIHJlY29yZC4gSWYgcHJ1bmluZywgdGhhdAorCSAqIG1lYW5zIHdlIGNhbm5vdCByZW1v dmUgdHVwbGVzIHN0aWxsIHZpc2libGUgdG8gdHJhbnNhY3Rpb25zIG9uIHRoZQorCSAqIHN0YW5k YnkuIElmIGZyZWV6aW5nLCB0aGF0IG1lYW5zIHdlIGNhbm5vdCBmcmVlemUgdHVwbGVzIHdpdGgg eGlkcyB0aGF0CisJICogYXJlIHN0aWxsIGNvbnNpZGVyZWQgcnVubmluZyBvbiB0aGUgc3RhbmRi eS4gQW5kIGZvciBzZXR0aW5nIHRoZSBWTSwgd2UKKwkgKiBjYW5ub3QgZG8gc28gaWYgdGhlIHBh Z2UgaXNuJ3QgYWxsLXZpc2libGUgdG8gYWxsIHRyYW5zYWN0aW9ucyBvbiB0aGUKKwkgKiBzdGFu ZGJ5LgogCSAqLwogCWlmICgoeGxyZWMuZmxhZ3MgJiBYTEhQX0hBU19DT05GTElDVF9IT1JJWk9O KSAhPSAwKQogCXsKQEAgLTcwLDEzICs3NiwyOCBAQCBoZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhM b2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJCQkJCQkJCQkJcmxvY2F0b3IpOwogCX0KIAorCS8q IE5leHQgYXJlIHRoZSBvcHRpb25hbGx5IGluY2x1ZGVkIHZtZmxhZ3MuIENvcHkgdGhlbSBvdXQg Zm9yIGxhdGVyIHVzZS4gKi8KKwlpZiAoKHhscmVjLmZsYWdzICYgWExIUF9IQVNfVk1GTEFHUykg IT0gMCkKKwl7CisJCW1lbWNweSgmdm1mbGFncywgbWFpbmRhdGFwdHIsIHNpemVvZih1aW50OCkp OworCQltYWluZGF0YXB0ciArPSBzaXplb2YodWludDgpOworCisJCS8qCisJCSAqIFdlIGRvbid0 IHNldCBWSVNJQklMSVRZTUFQX1hMT0dfQ0FUQUxPR19SRUwgaW4gdGhlIGNvbWJpbmVkIHJlY29y ZAorCQkgKiBiZWNhdXNlIHdlIGFscmVhZHkgaGF2ZSBYTEhQX0lTX0NBVEFMT0dfUkVMLgorCQkg Ki8KKwkJQXNzZXJ0KCh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKSA9PSB2bWZs YWdzKTsKKwkJLyogTXVzdCBuZXZlciBzZXQgYWxsX2Zyb3plbiBiaXQgd2l0aG91dCBhbHNvIHNl dHRpbmcgYWxsX3Zpc2libGUgYml0ICovCisJCUFzc2VydCh2bWZsYWdzICE9IFZJU0lCSUxJVFlN QVBfQUxMX0ZST1pFTik7CisJfQorCiAJLyoKLQkgKiBJZiB3ZSBoYXZlIGEgZnVsbC1wYWdlIGlt YWdlLCByZXN0b3JlIGl0IGFuZCB3ZSdyZSBkb25lLgorCSAqIElmIHdlIGhhdmUgYSBmdWxsLXBh Z2UgaW1hZ2Ugb2YgdGhlIGhlYXAgYmxvY2ssIHJlc3RvcmUgaXQgYW5kIHdlJ3JlCisJICogZG9u ZSB3aXRoIHRoZSBoZWFwIGJsb2NrLgogCSAqLwotCWFjdGlvbiA9IFhMb2dSZWFkQnVmZmVyRm9y UmVkb0V4dGVuZGVkKHJlY29yZCwgMCwgUkJNX05PUk1BTCwKLQkJCQkJCQkJCQkgICAoeGxyZWMu ZmxhZ3MgJiBYTEhQX0NMRUFOVVBfTE9DSykgIT0gMCwKLQkJCQkJCQkJCQkgICAmYnVmZmVyKTsK LQlpZiAoYWN0aW9uID09IEJMS19ORUVEU19SRURPKQorCWlmIChYTG9nUmVhZEJ1ZmZlckZvclJl ZG9FeHRlbmRlZChyZWNvcmQsIDAsIFJCTV9OT1JNQUwsCisJCQkJCQkJCQkgICh4bHJlYy5mbGFn cyAmIFhMSFBfQ0xFQU5VUF9MT0NLKSAhPSAwLAorCQkJCQkJCQkJICAmYnVmZmVyKSA9PSBCTEtf TkVFRFNfUkVETykKIAl7CiAJCVBhZ2UJCXBhZ2UgPSAoUGFnZSkgQnVmZmVyR2V0UGFnZShidWZm ZXIpOwogCQlPZmZzZXROdW1iZXIgKnJlZGlyZWN0ZWQ7CkBAIC04OSw2ICsxMTAsOSBAQCBoZWFw X3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlTaXplCQlkYXRh bGVuOwogCQl4bGhwX2ZyZWV6ZV9wbGFuICpwbGFuczsKIAkJT2Zmc2V0TnVtYmVyICpmcnpfb2Zm c2V0czsKKwkJYm9vbAkJZG9fcHJ1bmU7CisJCWJvb2wJCW1hcmtfYnVmZmVyX2RpcnR5OworCQli b29sCQlzZXRfaGVhcF9sc247CiAJCWNoYXIJICAgKmRhdGFwdHIgPSBYTG9nUmVjR2V0QmxvY2tE YXRhKHJlY29yZCwgMCwgJmRhdGFsZW4pOwogCiAJCWhlYXBfeGxvZ19kZXNlcmlhbGl6ZV9wcnVu ZV9hbmRfZnJlZXplKGRhdGFwdHIsIHhscmVjLmZsYWdzLApAQCAtOTcsMTEgKzEyMSwxOCBAQCBo ZWFwX3hsb2dfcHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkJCQkJCQkJ CQkgICAmbmRlYWQsICZub3dkZWFkLAogCQkJCQkJCQkJCQkgICAmbnVudXNlZCwgJm5vd3VudXNl ZCk7CiAKKwkJZG9fcHJ1bmUgPSBucmVkaXJlY3RlZCA+IDAgfHwgbmRlYWQgPiAwIHx8IG51bnVz ZWQgPiAwOworCQlzZXRfaGVhcF9sc24gPSBtYXJrX2J1ZmZlcl9kaXJ0eSA9IGRvX3BydW5lIHx8 IG5wbGFucyA+IDA7CisKKwkJLyogRW5zdXJlIHRoZSByZWNvcmQgZG9lcyBzb21ldGhpbmcgKi8K KwkJQXNzZXJ0KGRvX3BydW5lIHx8IG5wbGFucyA+IDAgfHwKKwkJCSAgIHZtZmxhZ3MgJiBWSVNJ QklMSVRZTUFQX1ZBTElEX0JJVFMpOworCiAJCS8qCiAJCSAqIFVwZGF0ZSBhbGwgbGluZSBwb2lu dGVycyBwZXIgdGhlIHJlY29yZCwgYW5kIHJlcGFpciBmcmFnbWVudGF0aW9uCiAJCSAqIGlmIG5l ZWRlZC4KIAkJICovCi0JCWlmIChucmVkaXJlY3RlZCA+IDAgfHwgbmRlYWQgPiAwIHx8IG51bnVz ZWQgPiAwKQorCQlpZiAoZG9fcHJ1bmUpCiAJCQloZWFwX3BhZ2VfcHJ1bmVfZXhlY3V0ZShidWZm ZXIsCiAJCQkJCQkJCQkoeGxyZWMuZmxhZ3MgJiBYTEhQX0NMRUFOVVBfTE9DSykgPT0gMCwKIAkJ CQkJCQkJCXJlZGlyZWN0ZWQsIG5yZWRpcmVjdGVkLApAQCAtMTM4LDI2ICsxNjksNzIgQEAgaGVh cF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJLyogVGhlcmUg c2hvdWxkIGJlIG5vIG1vcmUgZGF0YSAqLwogCQlBc3NlcnQoKGNoYXIgKikgZnJ6X29mZnNldHMg PT0gZGF0YXB0ciArIGRhdGFsZW4pOwogCisJCUFzc2VydChCdWZmZXJJc1ZhbGlkKGJ1ZmZlcikg JiYKKwkJCSAgIEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZlcikgPT0gYmxrbm8pOworCisJCS8q CisJCSAqIE5vdyBzZXQgUERfQUxMX1ZJU0lCTEUsIGlmIHJlcXVpcmVkLiBXZSdsbCBvbmx5IGRv IHRoaXMgaWYgd2UgYXJlCisJCSAqIGFsc28gZ29pbmcgdG8gc2V0IGJpdHMgaW4gdGhlIFZNIGxh dGVyLgorCQkgKgorCQkgKiBXZSBtdXN0IG5ldmVyIGVuZCB1cCB3aXRoIHRoZSBWTSBiaXQgc2V0 IGFuZCB0aGUgcGFnZS1sZXZlbAorCQkgKiBQRF9BTExfVklTSUJMRSBiaXQgY2xlYXIuIElmIHRo YXQgd2VyZSB0byBvY2N1ciwgYSBzdWJzZXF1ZW50IHBhZ2UKKwkJICogbW9kaWZpY2F0aW9uIHdv dWxkIGZhaWwgdG8gY2xlYXIgdGhlIFZNIGJpdC4KKwkJICovCisJCWlmICgodm1mbGFncyAmIFZJ U0lCSUxJVFlNQVBfVkFMSURfQklUUykgJiYgIVBhZ2VJc0FsbFZpc2libGUocGFnZSkpCisJCXsK KwkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOworCisJCQkvKgorCQkJICogSWYgdGhlIG9ubHkg Y2hhbmdlIHRvIHRoZSBoZWFwIHBhZ2UgaXMgc2V0dGluZyBQRF9BTExfVklTSUJMRSwKKwkJCSAq IHdlIGNhbiBhdm9pZCBzZXR0aW5nIHRoZSBwYWdlIExTTiB1bmxlc3MgY2hlY2tzdW1zIG9yCisJ CQkgKiB3YWxfbG9nX2hpbnRzIGFyZSBlbmFibGVkLgorCQkJICovCisJCQlzZXRfaGVhcF9sc24g PSBYTG9nSGludEJpdElzTmVlZGVkKCkgPyB0cnVlIDogc2V0X2hlYXBfbHNuOworCQkJbWFya19i dWZmZXJfZGlydHkgPSB0cnVlOworCQl9CisKIAkJLyoKIAkJICogTm90ZTogd2UgZG9uJ3Qgd29y cnkgYWJvdXQgdXBkYXRpbmcgdGhlIHBhZ2UncyBwcnVuYWJpbGl0eSBoaW50cy4KIAkJICogQXQg d29yc3QgdGhpcyB3aWxsIGNhdXNlIGFuIGV4dHJhIHBydW5lIGN5Y2xlIHRvIG9jY3VyIHNvb24u CiAJCSAqLwogCi0JCVBhZ2VTZXRMU04ocGFnZSwgbHNuKTsKLQkJTWFya0J1ZmZlckRpcnR5KGJ1 ZmZlcik7CisJCWlmIChtYXJrX2J1ZmZlcl9kaXJ0eSkKKwkJCU1hcmtCdWZmZXJEaXJ0eShidWZm ZXIpOworCQlpZiAoc2V0X2hlYXBfbHNuKQorCQkJUGFnZVNldExTTihwYWdlLCBsc24pOwogCX0K IAogCS8qCi0JICogSWYgd2UgcmVsZWFzZWQgYW55IHNwYWNlIG9yIGxpbmUgcG9pbnRlcnMsIHVw ZGF0ZSB0aGUgZnJlZSBzcGFjZSBtYXAuCisJICogSWYgd2UgcmVsZWFzZWQgYW55IHNwYWNlIG9y IGxpbmUgcG9pbnRlcnMgb3Igd2lsbCBiZSBzZXR0aW5nIGEgcGFnZSBpbgorCSAqIHRoZSB2aXNp YmlsaXR5IG1hcCwgdXBkYXRlIHRoZSBmcmVlIHNwYWNlIG1hcC4KKwkgKgorCSAqIEV2ZW4gaWYg d2UgYXJlIGp1c3QgdXBkYXRpbmcgdGhlIFZNIChhbmQgdGh1cyBub3QgZnJlZWluZyB1cCBhbnkK KwkgKiBzcGFjZSksIHdlJ2xsIHN0aWxsIHVwZGF0ZSB0aGUgRlNNIGZvciB0aGlzIHBhZ2UuIFNp bmNlIEZTTSBpcyBub3QKKwkgKiBXQUwtbG9nZ2VkIGFuZCBvbmx5IHVwZGF0ZWQgaGV1cmlzdGlj YWxseSwgaXQgZWFzaWx5IGJlY29tZXMgc3RhbGUgaW4KKwkgKiBzdGFuZGJ5cy4gIElmIHRoZSBz dGFuZGJ5IGlzIGxhdGVyIHByb21vdGVkIGFuZCBydW5zIFZBQ1VVTSwgaXQgd2lsbAorCSAqIHNr aXAgdXBkYXRpbmcgaW5kaXZpZHVhbCBmcmVlIHNwYWNlIGZpZ3VyZXMgZm9yIHBhZ2VzIHRoYXQg YmVjYW1lCisJICogYWxsLXZpc2libGUgKG9yIGFsbC1mcm96ZW4sIGRlcGVuZGluZyBvbiB0aGUg dmFjdXVtIG1vZGUsKSB3aGljaCBpcworCSAqIHRyb3VibGVzb21lIHdoZW4gRnJlZVNwYWNlTWFw VmFjdXVtIHByb3BhZ2F0ZXMgdG9vIG9wdGltaXN0aWMgZnJlZQorCSAqIHNwYWNlIHZhbHVlcyB0 byB1cHBlciBGU00gbGF5ZXJzOyBsYXRlciBpbnNlcnRlcnMgdHJ5IHRvIHVzZSBzdWNoIHBhZ2Vz CisJICogb25seSB0byBmaW5kIG91dCB0aGF0IHRoZXkgYXJlIHVudXNhYmxlLiAgVGhpcyBjYW4g Y2F1c2UgbG9uZyBzdGFsbHMKKwkgKiB3aGVuIHRoZXJlIGFyZSBtYW55IHN1Y2ggcGFnZXMuCisJ ICoKKwkgKiBGb3Jlc3RhbGwgdGhvc2UgcHJvYmxlbXMgYnkgdXBkYXRpbmcgRlNNJ3MgaWRlYSBh Ym91dCBhIHBhZ2UgdGhhdCBpcworCSAqIGJlY29taW5nIGFsbC12aXNpYmxlIG9yIGFsbC1mcm96 ZW4uCiAJICoKIAkgKiBEbyB0aGlzIHJlZ2FyZGxlc3Mgb2YgYSBmdWxsLXBhZ2UgaW1hZ2UgYmVp bmcgYXBwbGllZCwgc2luY2UgdGhlIEZTTQogCSAqIGRhdGEgaXMgbm90IGluIHRoZSBwYWdlIGFu eXdheS4KKwkgKgorCSAqIFdlIHdhbnQgdG8gYXZvaWQgaG9sZGluZyBhbiBleGNsdXNpdmUgbG9j ayBvbiB0aGUgaGVhcCBidWZmZXIgd2hpbGUKKwkgKiBkb2luZyBJTyAoZWl0aGVyIG9mIHRoZSBG U00gb3IgdGhlIFZNKSwgc28gd2UnbGwgcmVsZWFzZSB0aGUgbG9jayBvbgorCSAqIHRoZSBoZWFw IGJ1ZmZlciBiZWZvcmUgZG9pbmcgZWl0aGVyLgogCSAqLwogCWlmIChCdWZmZXJJc1ZhbGlkKGJ1 ZmZlcikpCiAJewotCQlpZiAoeGxyZWMuZmxhZ3MgJiAoWExIUF9IQVNfUkVESVJFQ1RJT05TIHwK LQkJCQkJCSAgIFhMSFBfSEFTX0RFQURfSVRFTVMgfAotCQkJCQkJICAgWExIUF9IQVNfTk9XX1VO VVNFRF9JVEVNUykpCisJCWlmICgoeGxyZWMuZmxhZ3MgJiAoWExIUF9IQVNfUkVESVJFQ1RJT05T IHwKKwkJCQkJCQlYTEhQX0hBU19ERUFEX0lURU1TIHwKKwkJCQkJCQlYTEhQX0hBU19OT1dfVU5V U0VEX0lURU1TKSkgfHwKKwkJCXZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpCiAJ CXsKIAkJCVNpemUJCWZyZWVzcGFjZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKEJ1ZmZlckdldFBh Z2UoYnVmZmVyKSk7CiAKQEAgLTE2OCw2ICsyNDUsMzcgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6 ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJZWxzZQogCQkJVW5sb2NrUmVsZWFzZUJ1ZmZl cihidWZmZXIpOwogCX0KKworCS8qCisJICogUmVhZCBhbmQgdXBkYXRlIHRoZSBWTSBibG9jay4g RXZlbiBpZiB3ZSBza2lwcGVkIHVwZGF0aW5nIHRoZSBoZWFwIHBhZ2UKKwkgKiBkdWUgdG8gdGhl IGZpbGUgYmVpbmcgZHJvcHBlZCBvciB0cnVuY2F0ZWQgbGF0ZXIgaW4gcmVjb3ZlcnksIGl0J3MK KwkgKiBzdGlsbCBzYWZlIHRvIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAuICBBbnkgV0FMIHJl Y29yZCB0aGF0IGNsZWFycworCSAqIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQgZG9lcyBzbyBiZWZv cmUgY2hlY2tpbmcgdGhlIHBhZ2UgTFNOLCBzbyBhbnkKKwkgKiBiaXRzIHRoYXQgbmVlZCB0byBi ZSBjbGVhcmVkIHdpbGwgc3RpbGwgYmUgY2xlYXJlZC4KKwkgKgorCSAqIE5vdGUgdGhhdCBpdCBp cyAqb25seSogb2theSB0aGF0IHdlIGRvIG5vdCBob2xkIGEgbG9jayBvbiB0aGUgaGVhcCBwYWdl CisJICogYmVjYXVzZSB3ZSBhcmUgaW4gcmVjb3ZlcnkgYW5kIGNhbiBleHBlY3Qgbm8gb3RoZXIg d3JpdGVycyB0byBjbGVhcgorCSAqIFBEX0FMTF9WSVNJQkxFIGJlZm9yZSB3ZSBhcmUgYWJsZSB0 byB1cGRhdGUgdGhlIFZNLgorCSAqLworCWlmICh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJ RF9CSVRTICYmCisJCVhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVkKHJlY29yZCwgMSwKKwkJ CQkJCQkJCSAgUkJNX1pFUk9fT05fRVJST1IsCisJCQkJCQkJCQkgIGZhbHNlLAorCQkJCQkJCQkJ ICAmdm1idWZmZXIpID09IEJMS19ORUVEU19SRURPKQorCXsKKwkJdWludDgJCW9sZF92bWJpdHMg PSAwOworCQlSZWxhdGlvbglyZWxuID0gQ3JlYXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3Ip OworCisJCXZpc2liaWxpdHltYXBfcGluKHJlbG4sIGJsa25vLCAmdm1idWZmZXIpOworCQlvbGRf dm1iaXRzID0gdmlzaWJpbGl0eW1hcF9zZXRfdm1ieXRlKHJlbG4sIGJsa25vLCB2bWJ1ZmZlciwg dm1mbGFncyk7CisJCS8qIE9ubHkgc2V0IFZNIHBhZ2UgTFNOIGlmIHdlIG1vZGlmaWVkIHRoZSBw YWdlICovCisJCWlmIChvbGRfdm1iaXRzICE9IHZtZmxhZ3MpCisJCQlQYWdlU2V0TFNOKEJ1ZmZl ckdldFBhZ2Uodm1idWZmZXIpLCBsc24pOworCQlGcmVlRmFrZVJlbGNhY2hlRW50cnkocmVsbik7 CisJfQorCisJaWYgKEJ1ZmZlcklzVmFsaWQodm1idWZmZXIpKQorCQlVbmxvY2tSZWxlYXNlQnVm ZmVyKHZtYnVmZmVyKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5k ZXggYTgwMjU4ODliZTAuLmQ5YmEwZjk2ZTM0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5j bHVkZSAiYWNjZXNzL3hsb2cuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2luc2VydC5oIgorI2lu Y2x1ZGUgImFjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Zh Y3V1bS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2luc3RydW1lbnQuaCIKICNpbmNsdWRlICJtaXNj YWRtaW4uaCIKQEAgLTgzNSw2ICs4MzYsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCQljb25mbGljdF94aWQgPSBwcnN0 YXRlLmxhdGVzdF94aWRfcmVtb3ZlZDsKIAogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShy ZWxhdGlvbiwgYnVmZmVyLAorCQkJCQkJCQkJICBJbnZhbGlkQnVmZmVyLCAwLCBmYWxzZSwKIAkJ CQkJCQkJCSAgY29uZmxpY3RfeGlkLAogCQkJCQkJCQkJICB0cnVlLCByZWFzb24sCiAJCQkJCQkJ CQkgIHByc3RhdGUuZnJvemVuLCBwcnN0YXRlLm5mcm96ZW4sCkBAIC0yMDQ1LDEyICsyMDQ3LDIz IEBAIGhlYXBfbG9nX2ZyZWV6ZV9wbGFuKEhlYXBUdXBsZUZyZWV6ZSAqdHVwbGVzLCBpbnQgbnR1 cGxlcywKICAqIHJlcGxheWluZyAndW51c2VkJyBpdGVtcyBkZXBlbmRzIG9uIHdoZXRoZXIgdGhl eSB3ZXJlIGFsbCBwcmV2aW91c2x5IG1hcmtlZAogICogYXMgZGVhZC4KICAqCisgKiBJZiB0aGUg Vk0gaXMgYmVpbmcgdXBkYXRlZCwgdm1mbGFncyB3aWxsIGNvbnRhaW4gdGhlIGJpdHMgdG8gc2V0 LiBJbiB0aGlzCisgKiBjYXNlLCB2bWJ1ZmZlciBzaG91bGQgYWxyZWFkeSBoYXZlIGJlZW4gdXBk YXRlZCBhbmQgbWFya2VkIGRpcnR5IGFuZCBzaG91bGQKKyAqIHN0aWxsIGJlIHBpbm5lZCBhbmQg bG9ja2VkLgorICoKKyAqIHNldF9wZF9hbGxfdmlzIGluZGljYXRlcyB0aGF0IHdlIHNldCBQRF9B TExfVklTSUJMRSBhbmQgdGh1cyBzaG91bGQgdXBkYXRlCisgKiB0aGUgcGFnZSBMU04gd2hlbiBj aGVja3N1bXMvd2FsX2xvZ19oaW50cyBhcmUgZW5hYmxlZCBldmVuIGlmIHdlIGRpZCBub3QKKyAq IHBydW5lIG9yIGZyZWV6ZSB0dXBsZXMgb24gdGhlIHBhZ2UuCisgKgogICogTm90ZTogVGhpcyBm dW5jdGlvbiBzY3JpYmJsZXMgb24gdGhlICdmcm96ZW4nIGFycmF5LgogICoKICAqIE5vdGU6IFRo aXMgaXMgY2FsbGVkIGluIGEgY3JpdGljYWwgc2VjdGlvbiwgc28gY2FyZWZ1bCB3aGF0IHlvdSBk byBoZXJlLgogICovCiB2b2lkCiBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJICBCdWZmZXIgdm1idWZmZXIsCisJCQkJCQkg IHVpbnQ4IHZtZmxhZ3MsCisJCQkJCQkgIGJvb2wgc2V0X3BkX2FsbF92aXMsCiAJCQkJCQkgIFRy YW5zYWN0aW9uSWQgY29uZmxpY3RfeGlkLAogCQkJCQkJICBib29sIGNsZWFudXBfbG9jaywKIAkJ CQkJCSAgUHJ1bmVSZWFzb24gcmVhc29uLApAQCAtMjA2Miw2ICsyMDc1LDcgQEAgbG9nX2hlYXBf cHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAl4bF9o ZWFwX3BydW5lIHhscmVjOwogCVhMb2dSZWNQdHIJcmVjcHRyOwogCXVpbnQ4CQlpbmZvOworCXVp bnQ4CQlyZWdidWZfZmxhZ3M7CiAKIAkvKiBUaGUgZm9sbG93aW5nIGxvY2FsIHZhcmlhYmxlcyBo b2xkIGRhdGEgcmVnaXN0ZXJlZCBpbiB0aGUgV0FMIHJlY29yZDogKi8KIAl4bGhwX2ZyZWV6ZV9w bGFuIHBsYW5zW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKQEAgLTIwNzAsOCArMjA4NCwxOSBAQCBs b2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVy LAogCXhsaHBfcHJ1bmVfaXRlbXMgZGVhZF9pdGVtczsKIAl4bGhwX3BydW5lX2l0ZW1zIHVudXNl ZF9pdGVtczsKIAlPZmZzZXROdW1iZXIgZnJ6X29mZnNldHNbTWF4SGVhcFR1cGxlc1BlclBhZ2Vd OworCWJvb2wJCWRvX3BydW5lID0gbnJlZGlyZWN0ZWQgPiAwIHx8IG5kZWFkID4gMCB8fCBudW51 c2VkID4gMDsKIAogCXhscmVjLmZsYWdzID0gMDsKKwlyZWdidWZfZmxhZ3MgPSBSRUdCVUZfU1RB TkRBUkQ7CisKKwkvKgorCSAqIFdlIGNhbiBhdm9pZCBhbiBGUEkgaWYgdGhlIG9ubHkgbW9kaWZp Y2F0aW9uIHdlIGFyZSBtYWtpbmcgdG8gdGhlIGhlYXAKKwkgKiBwYWdlIGlzIHRvIHNldCBQRF9B TExfVklTSUJMRSBhbmQgY2hlY2tzdW1zL3dhbF9sb2dfaGludHMgYXJlIGRpc2FibGVkLgorCSAq LworCWlmICghZG9fcHJ1bmUgJiYKKwkJbmZyb3plbiA9PSAwICYmCisJCSghc2V0X3BkX2FsbF92 aXMgfHwgIVhMb2dIaW50Qml0SXNOZWVkZWQoKSkpCisJCXJlZ2J1Zl9mbGFncyB8PSBSRUdCVUZf Tk9fSU1BR0U7CiAKIAkvKgogCSAqIFByZXBhcmUgZGF0YSBmb3IgdGhlIGJ1ZmZlci4gIFRoZSBh cnJheXMgYXJlIG5vdCBhY3R1YWxseSBpbiB0aGUKQEAgLTIwNzksNyArMjEwNCwxMSBAQCBsb2df aGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAog CSAqIHBhZ2UgaW1hZ2UsIHRoZSBhcnJheXMgY2FuIGJlIG9taXR0ZWQuCiAJICovCiAJWExvZ0Jl Z2luSW5zZXJ0KCk7Ci0JWExvZ1JlZ2lzdGVyQnVmZmVyKDAsIGJ1ZmZlciwgUkVHQlVGX1NUQU5E QVJEKTsKKwlYTG9nUmVnaXN0ZXJCdWZmZXIoMCwgYnVmZmVyLCByZWdidWZfZmxhZ3MpOworCisJ aWYgKHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpCisJCVhMb2dSZWdpc3RlckJ1 ZmZlcigxLCB2bWJ1ZmZlciwgMCk7CisKIAlpZiAobmZyb3plbiA+IDApCiAJewogCQlpbnQJCQlu cGxhbnM7CkBAIC0yMTM2LDYgKzIxNjUsOCBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIFByZXBhcmUgdGhlIG1haW4geGxf aGVhcF9wcnVuZSByZWNvcmQuICBXZSBhbHJlYWR5IHNldCB0aGUgWExIUF9IQVNfKgogCSAqIGZs YWcgYWJvdmUuCiAJICovCisJaWYgKHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMp CisJCXhscmVjLmZsYWdzIHw9IFhMSFBfSEFTX1ZNRkxBR1M7CiAJaWYgKFJlbGF0aW9uSXNBY2Nl c3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsYXRpb24pKQogCQl4bHJlYy5mbGFncyB8PSBYTEhQ X0lTX0NBVEFMT0dfUkVMOwogCWlmIChUcmFuc2FjdGlvbklkSXNWYWxpZChjb25mbGljdF94aWQp KQpAQCAtMjE1MCw2ICsyMTgxLDggQEAgbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlv biByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAlYTG9nUmVnaXN0ZXJEYXRhKCZ4bHJlYywgU2l6 ZU9mSGVhcFBydW5lKTsKIAlpZiAoVHJhbnNhY3Rpb25JZElzVmFsaWQoY29uZmxpY3RfeGlkKSkK IAkJWExvZ1JlZ2lzdGVyRGF0YSgmY29uZmxpY3RfeGlkLCBzaXplb2YoVHJhbnNhY3Rpb25JZCkp OworCWlmICh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKQorCQlYTG9nUmVnaXN0 ZXJEYXRhKCZ2bWZsYWdzLCBzaXplb2YodWludDgpKTsKIAogCXN3aXRjaCAocmVhc29uKQogCXsK QEAgLTIxNjgsNSArMjIwMSwxNiBAQCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9u IHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCX0KIAlyZWNwdHIgPSBYTG9nSW5zZXJ0KFJNX0hF QVAyX0lELCBpbmZvKTsKIAotCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZShidWZmZXIpLCByZWNw dHIpOworCWlmICh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKQorCQlQYWdlU2V0 TFNOKEJ1ZmZlckdldFBhZ2Uodm1idWZmZXIpLCByZWNwdHIpOworCisJLyoKKwkgKiBJZiBwcnVu aW5nIG9yIGZyZWV6aW5nIHR1cGxlcyBvciBzZXR0aW5nIHRoZSBwYWdlIGFsbC12aXNpYmxlIHdo ZW4KKwkgKiBjaGVja3N1bXMgb3Igd2FsX2hpbnRfYml0cyBhcmUgZW5hYmxlZCwgd2UgbXVzdCBi dW1wIHRoZSBMU04uIFRvcm4KKwkgKiBwYWdlcyBhcmUgcG9zc2libGUgaWYgd2UgdXBkYXRlIFBE X0FMTF9WSVNJQkxFIHdpdGhvdXQgYnVtcGluZyB0aGUgTFNOLAorCSAqIGJ1dCB0aGlzIGlzIGRl ZW1lZCBva2F5IGZvciBwYWdlIGhpbnQgdXBkYXRlcy4KKwkgKi8KKwlpZiAoZG9fcHJ1bmUgfHwg bmZyb3plbiA+IDAgfHwKKwkJKHNldF9wZF9hbGxfdmlzICYmIFhMb2dIaW50Qml0SXNOZWVkZWQo KSkpCisJCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZShidWZmZXIpLCByZWNwdHIpOwogfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDhhNjJhOTNlZWU1Li40NjBjZGJkODQx NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNDY0LDExICs0NjQsMTMg QEAgc3RhdGljIHZvaWQgZGVhZF9pdGVtc19hZGQoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051 bWJlciBibGtubywgT2Zmc2V0TnVtYmVyICoKIAkJCQkJCSAgIGludCBudW1fb2Zmc2V0cyk7CiBz dGF0aWMgdm9pZCBkZWFkX2l0ZW1zX3Jlc2V0KExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMg dm9pZCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKLXN0YXRpYyBib29s IGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJ CQkJCQkgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAotCQkJCQkJCQkJIGJvb2wgKmFsbF9mcm96 ZW4sCi0JCQkJCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJ CQkJCQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pOworc3RhdGljIGJvb2wgaGVhcF9w YWdlX2lzX2FsbF92aXNpYmxlX2V4Y2VwdF9scGRlYWQoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVm LAorCQkJCQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJCQkJCQkJCQkJ ICAgT2Zmc2V0TnVtYmVyICpkZWFkb2Zmc2V0cywKKwkJCQkJCQkJCQkJCSAgIGludCBhbGxvd2Vk X251bV9vZmZzZXRzLAorCQkJCQkJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKKwkJCQkJCQkJ CQkJCSAgIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCQkJ CSAgIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pOwogc3RhdGljIHZvaWQgdXBkYXRlX3Jl bHN0YXRzX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgdm9pZCB2YWN1 dW1fZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV92YWN1dW1f ZXJyb3JfaW5mbyhMVlJlbFN0YXRlICp2YWNyZWwsCkBAIC0yODQ3LDggKzI4NDksMTEgQEAgbGF6 eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8s IEJ1ZmZlciBidWZmZXIsCiAJT2Zmc2V0TnVtYmVyIHVudXNlZFtNYXhIZWFwVHVwbGVzUGVyUGFn ZV07CiAJaW50CQkJbnVudXNlZCA9IDA7CiAJVHJhbnNhY3Rpb25JZCB2aXNpYmlsaXR5X2N1dG9m Zl94aWQ7CisJVHJhbnNhY3Rpb25JZCBjb25mbGljdF94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25J ZDsKIAlib29sCQlhbGxfZnJvemVuOwogCUxWU2F2ZWRFcnJJbmZvIHNhdmVkX2Vycl9pbmZvOwor CXVpbnQ4CQl2bWZsYWdzID0gMDsKKwlib29sCQlzZXRfcGRfYWxsX3ZpcyA9IGZhbHNlOwogCiAJ QXNzZXJ0KHZhY3JlbC0+ZG9faW5kZXhfdmFjdXVtaW5nKTsKIApAQCAtMjg1OSw2ICsyODY0LDIw IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVy IGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJCSBWQUNVVU1fRVJSQ0JfUEhBU0VfVkFDVVVN X0hFQVAsIGJsa25vLAogCQkJCQkJCSBJbnZhbGlkT2Zmc2V0TnVtYmVyKTsKIAorCWlmIChoZWFw X3BhZ2VfaXNfYWxsX3Zpc2libGVfZXhjZXB0X2xwZGVhZCh2YWNyZWwtPnJlbCwgYnVmZmVyLAor CQkJCQkJCQkJCQkgICB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiwKKwkJCQkJCQkJCQkJICAg ZGVhZG9mZnNldHMsIG51bV9vZmZzZXRzLAorCQkJCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwgJnZp c2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtKSkKKwl7 CisJCXZtZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKKwkJaWYgKGFsbF9mcm96 ZW4pCisJCXsKKwkJCXZtZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOworCQkJQXNz ZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZCh2aXNpYmlsaXR5X2N1dG9mZl94aWQpKTsKKwkJfQor CX0KKwogCVNUQVJUX0NSSVRfU0VDVElPTigpOwogCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1f b2Zmc2V0czsgaSsrKQpAQCAtMjg3OCw2ICsyODk3LDE4IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFn ZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAog CS8qIEF0dGVtcHQgdG8gdHJ1bmNhdGUgbGluZSBwb2ludGVyIGFycmF5IG5vdyAqLwogCVBhZ2VU cnVuY2F0ZUxpbmVQb2ludGVyQXJyYXkocGFnZSk7CiAKKwlpZiAoKHZtZmxhZ3MgJiBWSVNJQklM SVRZTUFQX1ZBTElEX0JJVFMpICE9IDApCisJeworCQlBc3NlcnQoIVBhZ2VJc0FsbFZpc2libGUo cGFnZSkpOworCQlzZXRfcGRfYWxsX3ZpcyA9IHRydWU7CisJCUxvY2tCdWZmZXIodm1idWZmZXIs IEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSk7CisJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOworCQl2 aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUodmFjcmVsLT5yZWwsCisJCQkJCQkJCSBibGtubywKKwkJ CQkJCQkJIHZtYnVmZmVyLCB2bWZsYWdzKTsKKwkJY29uZmxpY3RfeGlkID0gdmlzaWJpbGl0eV9j dXRvZmZfeGlkOworCX0KKwogCS8qCiAJICogTWFyayBidWZmZXIgZGlydHkgYmVmb3JlIHdlIHdy aXRlIFdBTC4KIAkgKi8KQEAgLTI4ODcsNyArMjkxOCwxMCBAQCBsYXp5X3ZhY3V1bV9oZWFwX3Bh Z2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwK IAlpZiAoUmVsYXRpb25OZWVkc1dBTCh2YWNyZWwtPnJlbCkpCiAJewogCQlsb2dfaGVhcF9wcnVu ZV9hbmRfZnJlZXplKHZhY3JlbC0+cmVsLCBidWZmZXIsCi0JCQkJCQkJCSAgSW52YWxpZFRyYW5z YWN0aW9uSWQsCisJCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkJCSAgdm1mbGFncywKKwkJCQkJ CQkJICBzZXRfcGRfYWxsX3ZpcywKKwkJCQkJCQkJICBjb25mbGljdF94aWQsCiAJCQkJCQkJCSAg ZmFsc2UsCS8qIG5vIGNsZWFudXAgbG9jayByZXF1aXJlZCAqLwogCQkJCQkJCQkgIFBSVU5FX1ZB Q1VVTV9DTEVBTlVQLAogCQkJCQkJCQkgIE5VTEwsIDAsCS8qIGZyb3plbiAqLwpAQCAtMjg5Niwz OSArMjkzMCwxMiBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBC bG9ja051bWJlciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkJICB1bnVzZWQsIG51bnVz ZWQpOwogCX0KIAotCS8qCi0JICogRW5kIGNyaXRpY2FsIHNlY3Rpb24sIHNvIHdlIHNhZmVseSBj YW4gZG8gdmlzaWJpbGl0eSB0ZXN0cyAod2hpY2gKLQkgKiBwb3NzaWJseSBuZWVkIHRvIHBlcmZv cm0gSU8gYW5kIGFsbG9jYXRlIG1lbW9yeSEpLiBJZiB3ZSBjcmFzaCBub3cgdGhlCi0JICogcGFn ZSAoaW5jbHVkaW5nIHRoZSBjb3JyZXNwb25kaW5nIHZtIGJpdCkgbWlnaHQgbm90IGJlIG1hcmtl ZCBhbGwKLQkgKiB2aXNpYmxlLCBidXQgdGhhdCdzIGZpbmUuIEEgbGF0ZXIgdmFjdXVtIHdpbGwg Zml4IHRoYXQuCi0JICovCiAJRU5EX0NSSVRfU0VDVElPTigpOwogCi0JLyoKLQkgKiBOb3cgdGhh dCB3ZSBoYXZlIHJlbW92ZWQgdGhlIExQX0RFQUQgaXRlbXMgZnJvbSB0aGUgcGFnZSwgb25jZSBh Z2FpbgotCSAqIGNoZWNrIGlmIHRoZSBwYWdlIGhhcyBiZWNvbWUgYWxsLXZpc2libGUuICBUaGUg cGFnZSBpcyBhbHJlYWR5IG1hcmtlZAotCSAqIGRpcnR5LCBleGNsdXNpdmVseSBsb2NrZWQsIGFu ZCwgaWYgbmVlZGVkLCBhIGZ1bGwgcGFnZSBpbWFnZSBoYXMgYmVlbgotCSAqIGVtaXR0ZWQuCi0J ICovCi0JQXNzZXJ0KCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKTsKLQlpZiAoaGVhcF9wYWdlX2lz X2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWZmZXIsIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RY bWluLAotCQkJCQkJCQkgJmFsbF9mcm96ZW4sICZ2aXNpYmlsaXR5X2N1dG9mZl94aWQsICZ2YWNy ZWwtPm9mZm51bSkpCisJaWYgKCh2bWZsYWdzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkg IT0gMCkKIAl7Ci0JCXVpbnQ4CQlmbGFncyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7Ci0K LQkJaWYgKGFsbF9mcm96ZW4pCi0JCXsKLQkJCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQo dmlzaWJpbGl0eV9jdXRvZmZfeGlkKSk7Ci0JCQlmbGFncyB8PSBWSVNJQklMSVRZTUFQX0FMTF9G Uk9aRU47Ci0JCX0KLQotCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQkJdmlzaWJpbGl0eW1h cF9zZXQodmFjcmVsLT5yZWwsIGJsa25vLCBidWZmZXIsCi0JCQkJCQkgIEludmFsaWRYTG9nUmVj UHRyLAotCQkJCQkJICB2bWJ1ZmZlciwgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAotCQkJCQkJICBm bGFncyk7Ci0KIAkJLyogQ291bnQgdGhlIG5ld2x5IHNldCBWTSBwYWdlIGZvciBsb2dnaW5nICov CisJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX1VOTE9DSyk7CiAJCXZhY3JlbC0+ dm1fbmV3X3Zpc2libGVfcGFnZXMrKzsKIAkJaWYgKGFsbF9mcm96ZW4pCiAJCQl2YWNyZWwtPnZt X25ld192aXNpYmxlX2Zyb3plbl9wYWdlcysrOwpAQCAtMzU5NCw2ICszNjAxLDI1IEBAIGRlYWRf aXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpCiAJdmFjcmVsLT5wdnMgPSBOVUxMOwog fQogCisvKgorICogV3JhcHBlciBmb3IgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlX2V4Y2VwdF9s cGRlYWQoKSB3aGljaCBjYW4gYmUgdXNlZCBmb3IKKyAqIGNhbGxlcnMgdGhhdCBleHBlY3Qgbm8g TFBfREVBRCBvbiB0aGUgcGFnZS4KKyAqLworYm9vbAoraGVhcF9wYWdlX2lzX2FsbF92aXNpYmxl KFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKKwkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFht aW4sCisJCQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKKwkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNp YmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkK K3sKKworCXJldHVybiBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGVfZXhjZXB0X2xwZGVhZChyZWws IGJ1ZiwgT2xkZXN0WG1pbiwKKwkJCQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkJCSAg YWxsX2Zyb3plbiwKKwkJCQkJCQkJCQkJCSAgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJCQkJ CQkJCQkJICBsb2dnaW5nX29mZm51bSk7Cit9CisKIC8qCiAgKiBDaGVjayBpZiBldmVyeSB0dXBs ZSBpbiB0aGUgZ2l2ZW4gcGFnZSBpcyB2aXNpYmxlIHRvIGFsbCBjdXJyZW50IGFuZCBmdXR1cmUK ICAqIHRyYW5zYWN0aW9ucy4KQEAgLTM2MDcsMjMgKzM2MzMsMzUgQEAgZGVhZF9pdGVtc19jbGVh bnVwKExWUmVsU3RhdGUgKnZhY3JlbCkKICAqIHZpc2libGUgdHVwbGVzLiBTZXRzICphbGxfZnJv emVuIHRvIHRydWUgaWYgZXZlcnkgdHVwbGUgb24gdGhpcyBwYWdlIGlzCiAgKiBmcm96ZW4uCiAg KgotICogVGhpcyBpcyBhIHN0cmlwcGVkIGRvd24gdmVyc2lvbiBvZiBsYXp5X3NjYW5fcHJ1bmUo KS4gIElmIHlvdSBjaGFuZ2UKLSAqIGFueXRoaW5nIGhlcmUsIG1ha2Ugc3VyZSB0aGF0IGV2ZXJ5 dGhpbmcgc3RheXMgaW4gc3luYy4gIE5vdGUgdGhhdCBhbgotICogYXNzZXJ0aW9uIGNhbGxzIHVz IHRvIHZlcmlmeSB0aGF0IGV2ZXJ5Ym9keSBzdGlsbCBhZ3JlZXMuICBCZSBzdXJlIHRvIGF2b2lk Ci0gKiBpbnRyb2R1Y2luZyBuZXcgc2lkZS1lZmZlY3RzIGhlcmUuCisgKiBkZWFkb2Zmc2V0cyBh cmUgdGhlIG9mZnNldHMgd2Uga25vdyBhYm91dCBhbmQgYXJlIGFib3V0IHRvIHNldCBMUF9VTlVT RUQuCisgKiBhbGxvd2VkX251bV9vZmZzZXRzIGlzIHRoZSBudW1iZXIgb2YgdGhvc2UuIEFzIGxv bmcgYXMgdGhlIExQX0RFQUQgaXRlbXMgd2UKKyAqIGVuY291bnRlciBvbiB0aGUgcGFnZSBtYXRj aCB0aG9zZSBleGFjdGx5LCB3ZSBjYW4gc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlCisgKiBpbiB0 aGUgVk0uCisgKgorICogQ2FsbGVycyBsb29raW5nIHRvIHZlcmlmeSB0aGF0IHRoZSBwYWdlIGlz IGFsbC12aXNpYmxlIGNhbiBjYWxsCisgKiBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKS4KKyAq CisgKiBUaGlzIGlzIHNpbWlsYXIgbG9naWMgdG8gdGhhdCBpbiBoZWFwX3BydW5lX3JlY29yZF91 bmNoYW5nZWRfbHBfbm9ybWFsKCkgSWYKKyAqIHlvdSBjaGFuZ2UgYW55dGhpbmcgaGVyZSwgbWFr ZSBzdXJlIHRoYXQgZXZlcnl0aGluZyBzdGF5cyBpbiBzeW5jLiAgTm90ZQorICogdGhhdCBhbiBh c3NlcnRpb24gY2FsbHMgdXMgdG8gdmVyaWZ5IHRoYXQgZXZlcnlib2R5IHN0aWxsIGFncmVlcy4g IEJlIHN1cmUKKyAqIHRvIGF2b2lkIGludHJvZHVjaW5nIG5ldyBzaWRlLWVmZmVjdHMgaGVyZS4K ICAqLwogc3RhdGljIGJvb2wKLWhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWws IEJ1ZmZlciBidWYsCi0JCQkJCQkgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAotCQkJCQkJIGJv b2wgKmFsbF9mcm96ZW4sCi0JCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZf eGlkLAotCQkJCQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pCitoZWFwX3BhZ2VfaXNf YWxsX3Zpc2libGVfZXhjZXB0X2xwZGVhZChSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCisJCQkJ CQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJCQkgICBPZmZzZXROdW1i ZXIgKmRlYWRvZmZzZXRzLAorCQkJCQkJCQkJICAgaW50IGFsbG93ZWRfbnVtX29mZnNldHMsCisJ CQkJCQkJCQkgICBib29sICphbGxfZnJvemVuLAorCQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCAq dmlzaWJpbGl0eV9jdXRvZmZfeGlkLAorCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpsb2dnaW5n X29mZm51bSkKIHsKIAlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWYpOwogCUJsb2NrTnVt YmVyIGJsb2Nrbm8gPSBCdWZmZXJHZXRCbG9ja051bWJlcihidWYpOwogCU9mZnNldE51bWJlciBv ZmZudW0sCiAJCQkJbWF4b2ZmOwogCWJvb2wJCWFsbF92aXNpYmxlID0gdHJ1ZTsKKwlPZmZzZXRO dW1iZXIgY3VycmVudF9kZWFkX29mZnNldHNbTWF4SGVhcFR1cGxlc1BlclBhZ2VdOworCXNpemVf dAkJY3VycmVudF9udW1fb2Zmc2V0cyA9IDA7CiAKIAkqdmlzaWJpbGl0eV9jdXRvZmZfeGlkID0g SW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJKmFsbF9mcm96ZW4gPSB0cnVlOwpAQCAtMzY1NSw5ICsz NjkzLDggQEAgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1 ZiwKIAkJICovCiAJCWlmIChJdGVtSWRJc0RlYWQoaXRlbWlkKSkKIAkJewotCQkJYWxsX3Zpc2li bGUgPSBmYWxzZTsKLQkJCSphbGxfZnJvemVuID0gZmFsc2U7Ci0JCQlicmVhazsKKwkJCWN1cnJl bnRfZGVhZF9vZmZzZXRzW2N1cnJlbnRfbnVtX29mZnNldHMrK10gPSBvZmZudW07CisJCQljb250 aW51ZTsKIAkJfQogCiAJCUFzc2VydChJdGVtSWRJc05vcm1hbChpdGVtaWQpKTsKQEAgLTM3MjQs NyArMzc2MSwyMyBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZm ZXIgYnVmLAogCS8qIENsZWFyIHRoZSBvZmZzZXQgaW5mb3JtYXRpb24gb25jZSB3ZSBoYXZlIHBy b2Nlc3NlZCB0aGUgZ2l2ZW4gcGFnZS4gKi8KIAkqbG9nZ2luZ19vZmZudW0gPSBJbnZhbGlkT2Zm c2V0TnVtYmVyOwogCi0JcmV0dXJuIGFsbF92aXNpYmxlOworCS8qIElmIHdlIGFscmVhZHkga25v dyBpdCdzIG5vdCBhbGwtdmlzaWJsZSwgcmV0dXJuIGZhbHNlICovCisJaWYgKCFhbGxfdmlzaWJs ZSkKKwkJcmV0dXJuIGZhbHNlOworCisJLyogSWYgd2Ugd2VyZW4ndCBhbGxvd2VkIGFueSBkZWFk IG9mZnNldHMsIHdlJ3JlIGRvbmUgKi8KKwlpZiAoYWxsb3dlZF9udW1fb2Zmc2V0cyA9PSAwKQor CQlyZXR1cm4gY3VycmVudF9udW1fb2Zmc2V0cyA9PSAwOworCisJLyogSWYgdGhlIG51bWJlciBv ZiBkZWFkIG9mZnNldHMgaGFzIGNoYW5nZWQsIHRoYXQncyB3cm9uZyAqLworCWlmIChjdXJyZW50 X251bV9vZmZzZXRzICE9IGFsbG93ZWRfbnVtX29mZnNldHMpCisJCXJldHVybiBmYWxzZTsKKwor CUFzc2VydChkZWFkb2Zmc2V0cyk7CisKKwkvKiBUaGUgZGVhZCBvZmZzZXRzIG11c3QgYmUgdGhl IHNhbWUgZGVhZCBvZmZzZXRzICovCisJcmV0dXJuIG1lbWNtcChjdXJyZW50X2RlYWRfb2Zmc2V0 cywgZGVhZG9mZnNldHMsCisJCQkJICBhbGxvd2VkX251bV9vZmZzZXRzICogc2l6ZW9mKE9mZnNl dE51bWJlcikpID09IDA7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv cm1ncmRlc2MvaGVhcGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVz Yy5jCmluZGV4IGI0OGQ3ZGMxZDI0Li5kNmM4NmNjYWMyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Jt Z3JkZXNjL2hlYXBkZXNjLmMKQEAgLTI2Niw2ICsyNjYsNyBAQCBoZWFwMl9kZXNjKFN0cmluZ0lu Zm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIHsKIAljaGFyCSAgICpyZWMgPSBYTG9n UmVjR2V0RGF0YShyZWNvcmQpOwogCXVpbnQ4CQlpbmZvID0gWExvZ1JlY0dldEluZm8ocmVjb3Jk KSAmIH5YTFJfSU5GT19NQVNLOworCWNoYXIJICAgKm1haW5kYXRhcHRyID0gcmVjICsgU2l6ZU9m SGVhcFBydW5lOwogCiAJaW5mbyAmPSBYTE9HX0hFQVBfT1BNQVNLOwogCWlmIChpbmZvID09IFhM T0dfSEVBUDJfUFJVTkVfT05fQUNDRVNTIHx8CkBAIC0yNzgsNyArMjc5LDggQEAgaGVhcDJfZGVz YyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCXsKIAkJCVRyYW5z YWN0aW9uSWQgY29uZmxpY3RfeGlkOwogCi0JCQltZW1jcHkoJmNvbmZsaWN0X3hpZCwgcmVjICsg U2l6ZU9mSGVhcFBydW5lLCBzaXplb2YoVHJhbnNhY3Rpb25JZCkpOworCQkJbWVtY3B5KCZjb25m bGljdF94aWQsIG1haW5kYXRhcHRyLCBzaXplb2YoVHJhbnNhY3Rpb25JZCkpOworCQkJbWFpbmRh dGFwdHIgKz0gc2l6ZW9mKFRyYW5zYWN0aW9uSWQpOwogCiAJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1 ZiwgInNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOiAldSIsCiAJCQkJCQkJIGNvbmZsaWN0X3hpZCk7 CkBAIC0yODcsNiArMjg5LDE1IEBAIGhlYXAyX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFk ZXJTdGF0ZSAqcmVjb3JkKQogCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiwgaXNDYXRhbG9nUmVs OiAlYyIsCiAJCQkJCQkgeGxyZWMtPmZsYWdzICYgWExIUF9JU19DQVRBTE9HX1JFTCA/ICdUJyA6 ICdGJyk7CiAKKwkJaWYgKHhscmVjLT5mbGFncyAmIFhMSFBfSEFTX1ZNRkxBR1MpCisJCXsKKwkJ CXVpbnQ4CQl2bWZsYWdzOworCisJCQltZW1jcHkoJnZtZmxhZ3MsIG1haW5kYXRhcHRyLCBzaXpl b2YodWludDgpKTsKKwkJCW1haW5kYXRhcHRyICs9IHNpemVvZih1aW50OCk7CisJCQlhcHBlbmRT dHJpbmdJbmZvKGJ1ZiwgIiwgdm1fZmxhZ3M6IDB4JTAyWCIsIHZtZmxhZ3MpOworCQl9CisKIAkJ aWYgKFhMb2dSZWNIYXNCbG9ja0RhdGEocmVjb3JkLCAwKSkKIAkJewogCQkJU2l6ZQkJZGF0YWxl bjsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRl L2FjY2Vzcy9oZWFwYW0uaAppbmRleCBhMmJkNWE4OTdmOC4uOGI0NzI5NWVmYTIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv aGVhcGFtLmgKQEAgLTM0NCw2ICszNDQsMTIgQEAgZXh0ZXJuIHZvaWQgaGVhcF9pbnBsYWNlX3Vw ZGF0ZV9hbmRfdW5sb2NrKFJlbGF0aW9uIHJlbGF0aW9uLAogCQkJCQkJCQkJCSAgIEJ1ZmZlciBi dWZmZXIpOwogZXh0ZXJuIHZvaWQgaGVhcF9pbnBsYWNlX3VubG9jayhSZWxhdGlvbiByZWxhdGlv biwKIAkJCQkJCQkJSGVhcFR1cGxlIG9sZHR1cCwgQnVmZmVyIGJ1ZmZlcik7CisKK2V4dGVybiBi b29sIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCisJ CQkJCQkJCQkgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJCQkJCQkJIGJvb2wgKmFsbF9m cm96ZW4sCisJCQkJCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAor CQkJCQkJCQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pOwogZXh0ZXJuIGJvb2wgaGVh cF9wcmVwYXJlX2ZyZWV6ZV90dXBsZShIZWFwVHVwbGVIZWFkZXIgdHVwbGUsCiAJCQkJCQkJCQkg IGNvbnN0IHN0cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZzLAogCQkJCQkJCQkJICBIZWFwUGFn ZUZyZWV6ZSAqcGFnZWZyeiwKQEAgLTM4OCw2ICszOTQsOSBAQCBleHRlcm4gdm9pZCBoZWFwX3Bh Z2VfcHJ1bmVfZXhlY3V0ZShCdWZmZXIgYnVmZmVyLCBib29sIGxwX3RydW5jYXRlX29ubHksCiAJ CQkJCQkJCQlPZmZzZXROdW1iZXIgKm5vd3VudXNlZCwgaW50IG51bnVzZWQpOwogZXh0ZXJuIHZv aWQgaGVhcF9nZXRfcm9vdF90dXBsZXMoUGFnZSBwYWdlLCBPZmZzZXROdW1iZXIgKnJvb3Rfb2Zm c2V0cyk7CiBleHRlcm4gdm9pZCBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJl bGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJCQkJICBCdWZmZXIgdm1idWZmZXIsCisJCQkJ CQkJCQkgIHVpbnQ4IHZtZmxhZ3MsCisJCQkJCQkJCQkgIGJvb2wgdm1fbW9kaWZpZWRfaGVhcF9w YWdlLAogCQkJCQkJCQkJICBUcmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZCwKIAkJCQkJCQkJCSAg Ym9vbCBjbGVhbnVwX2xvY2ssCiAJCQkJCQkJCQkgIFBydW5lUmVhc29uIHJlYXNvbiwKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL2hlYXBhbV94bG9nLmgKaW5kZXggMjc3ZGY2YjNjZjAuLmNlYWU5YzA4M2ZmIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvaGVhcGFtX3hsb2cuaApAQCAtMjk1LDYgKzI5NSw5IEBAIHR5cGVkZWYgc3RydWN0IHhs X2hlYXBfcHJ1bmUKIAogI2RlZmluZSBTaXplT2ZIZWFwUHJ1bmUgKG9mZnNldG9mKHhsX2hlYXBf cHJ1bmUsIGZsYWdzKSArIHNpemVvZih1aW50OCkpCiAKKy8qIElmIHRoZSByZWNvcmQgc2hvdWxk IHVwZGF0ZSB0aGUgVk0sIHRoaXMgaXMgdGhlIG5ldyB2YWx1ZSAqLworI2RlZmluZQkJWExIUF9I QVNfVk1GTEFHUwkJCSgxIDw8IDApCisKIC8qIHRvIGhhbmRsZSByZWNvdmVyeSBjb25mbGljdCBk dXJpbmcgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5ICovCiAjZGVmaW5lCQlYTEhQX0lTX0NB VEFMT0dfUkVMCQkJKDEgPDwgMSkKIAotLSAKMi40My4wCgo= --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0005-Combine-lazy_scan_prune-VM-corruption-cases.patch" Content-Disposition: attachment; filename="v6-0005-Combine-lazy_scan_prune-VM-corruption-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu5v4 RnJvbSBiOTE1MDNjZWI5YTkyM2Q5MjJkYTg4ZjEzMjgyYTg2MDkxNmE5ODgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDE2OjA0OjAzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAwNS8yMF0gQ29tYmluZSBsYXp5X3NjYW5fcHJ1bmUgVk0gY29ycnVwdGlvbiBjYXNl cwoKbGF6eV9zY2FuX3BydW5lKCkgdXBkYXRlcyB0aGUgdmlzaWJpbGl0eSBtYXAgYWZ0ZXIgcGhh c2UgSSBvZiBoZWFwCnZhY3V1bWluZy4gSXQgYWxzbyBjaGVja3MgYW5kIGZpeGVzIGNvcnJ1cHRp b24gaW4gdGhlIFZNLiBUaGUgY29ycnVwdGlvbgpjYXNlcyB3aGVyZSBtaXhlZCBpbiB3aXRoIHRo ZSBub3JtYWwgdmlzaWJpbGl0eSBtYXAgdXBkYXRlIGNhc2VzLgoKQ2FyZWZ1bCBzdHVkeSBvZiB0 aGUgb3JkZXJpbmcgb2YgdGhlIGN1cnJlbnQgbG9naWMgcmV2ZWFscyB0aGF0IHRoZQpjb3JydXB0 aW9uIGNhc2VzIGNhbiBiZSByZW9yZGVyZWQgYW5kIGV4dHJhY3RlZCBpbnRvIGEgc2VwYXJhdGUK ZnVuY3Rpb24uIFRoaXMgc2hvdWxkIHJlc3VsdCBpbiBubyBhZGRpdGlvbmFsIG92ZXJoZWFkIHdo ZW4gY29tcGFyZWQgdG8KcHJldmlvdXMgZXhlY3V0aW9uLgoKVGhpcyByZW9yZGVyaW5nIG1ha2Vz IGl0IGNsZWFyIHdoaWNoIGNhc2VzIGFyZSBhYm91dCBjb3JydXB0aW9uIGFuZAp3aGljaCBjYXNl cyBhcmUgbm9ybWFsIFZNIHVwZGF0ZXMuIFNlcGFyYXRpbmcgdGhlbSBhbHNvIG1ha2VzIGl0CnBv c3NpYmxlIHRvIGNvbWJpbmUgdGhlIG5vcm1hbCBjYXNlcyBpbiBhIGZ1dHVyZSBjb21taXQuIFRo aXMgd2lsbCBtYWtlCnRoZSBsb2dpYyBlYXNpZXIgdG8gdW5kZXJzdGFuZCBhbmQgYWxsb3cgZm9y IGZ1cnRoZXIgc2VwYXJhdGlvbiBvZiB0aGUKbG9naWMgdG8gYWxsb3cgdXBkYXRpbmcgdGhlIFZN IGluIHRoZSBzYW1lIHJlY29yZCBhcyBwcnVuaW5nIGFuZApmcmVlemluZyBpbiBwaGFzZSBJLgot LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8IDExNCArKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCA0MSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggZDllMTk1 MjY5ZDIuLjA0YTdiNmM0MTgxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBA IC00MzEsNiArNDMxLDEyIEBAIHN0YXRpYyB2b2lkIGZpbmRfbmV4dF91bnNraXBwYWJsZV9ibG9j ayhMVlJlbFN0YXRlICp2YWNyZWwsIGJvb2wgKnNraXBzYWxsdmlzKTsKIHN0YXRpYyBib29sIGxh enlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkJ CQkJCQkgICBCbG9ja051bWJlciBibGtubywgUGFnZSBwYWdlLAogCQkJCQkJCQkgICBib29sIHNo YXJlbG9jaywgQnVmZmVyIHZtYnVmZmVyKTsKK3N0YXRpYyBib29sIGlkZW50aWZ5X2FuZF9maXhf dm1fY29ycnVwdGlvbihSZWxhdGlvbiByZWxhdGlvbiwKKwkJCQkJCQkJCQkgICBCbG9ja051bWJl ciBoZWFwX2JsaywKKwkJCQkJCQkJCQkgICBCdWZmZXIgaGVhcF9idWZmZXIsIFBhZ2UgaGVhcF9w YWdlLAorCQkJCQkJCQkJCSAgIGJvb2wgaGVhcF9ibGtfa25vd25fYXYsCisJCQkJCQkJCQkJICAg aW50NjQgbmxwZGVhZF9pdGVtcywKKwkJCQkJCQkJCQkgICBCdWZmZXIgdm1idWZmZXIpOwogc3Rh dGljIGludAlsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAog CQkJCQkJCUJsb2NrTnVtYmVyIGJsa25vLCBQYWdlIHBhZ2UsCiAJCQkJCQkJQnVmZmVyIHZtYnVm ZmVyLCBib29sIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSwKQEAgLTE5MzMsNiArMTkzOSw2 NiBAQCBsYXp5X3NjYW5fbmV3X29yX2VtcHR5KExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1 ZiwgQmxvY2tOdW1iZXIgYmxrbm8sCiAJcmV0dXJuIGZhbHNlOwogfQogCisvKgorICogV2hlbiB1 cGRhdGluZyB0aGUgdmlzaWJpbGl0eSBtYXAgYWZ0ZXIgcGhhc2UgSSBoZWFwIHZhY3V1bWluZywg d2UgdGFrZSB0aGUKKyAqIG9wcG9ydHVuaXR5IHRvIGlkZW50aWZ5IGFuZCBmaXggYW55IFZNIGNv cnJ1cHRpb24uCisgKgorICogaGVhcF9ibGtfa25vd25fYXYgaXMgdGhlIHZpc2liaWxpdHkgc3Rh dHVzIG9mIHRoZSBoZWFwIHBhZ2UgY29sbGVjdGVkCisgKiB3aGlsZSBmaW5kaW5nIHRoZSBuZXh0 IHVuc2tpcHBhYmxlIGJsb2NrIGluIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpLgorICovCitz dGF0aWMgYm9vbAoraWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbGF0 aW9uLAorCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGhlYXBfYmxrLAorCQkJCQkJCSAgIEJ1ZmZlciBo ZWFwX2J1ZmZlciwgUGFnZSBoZWFwX3BhZ2UsCisJCQkJCQkJICAgYm9vbCBoZWFwX2Jsa19rbm93 bl9hdiwKKwkJCQkJCQkgICBpbnQ2NCBubHBkZWFkX2l0ZW1zLAorCQkJCQkJCSAgIEJ1ZmZlciB2 bWJ1ZmZlcikKK3sKKwkvKgorCSAqIEFzIG9mIFBvc3RncmVTUUwgOS4yLCB0aGUgdmlzaWJpbGl0 eSBtYXAgYml0IHNob3VsZCBuZXZlciBiZSBzZXQgaWYgdGhlCisJICogcGFnZS1sZXZlbCBiaXQg aXMgY2xlYXIuICBIb3dldmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJpdCBnb3QKKwkgKiBj bGVhcmVkIGFmdGVyIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIHdhcyBjYWxsZWQsIHNvIHdl IG11c3QgcmVjaGVjaworCSAqIHdpdGggYnVmZmVyIGxvY2sgYmVmb3JlIGNvbmNsdWRpbmcgdGhh dCB0aGUgVk0gaXMgY29ycnVwdC4KKwkgKi8KKwlpZiAoaGVhcF9ibGtfa25vd25fYXYgJiYgIVBh Z2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSAmJgorCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMo cmVsYXRpb24sIGhlYXBfYmxrLCAmdm1idWZmZXIpICE9IDApCisJeworCQllbG9nKFdBUk5JTkcs ICJwYWdlIGlzIG5vdCBtYXJrZWQgYWxsLXZpc2libGUgYnV0IHZpc2liaWxpdHkgbWFwIGJpdCBp cyBzZXQgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAorCQkJIFJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbGF0aW9uKSwgaGVhcF9ibGspOworCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbGF0 aW9uLCBoZWFwX2Jsaywgdm1idWZmZXIsCisJCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJRF9CSVRT KTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJLyoKKwkgKiBJdCdzIHBvc3NpYmxlIGZvciB0aGUg dmFsdWUgcmV0dXJuZWQgYnkKKwkgKiBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlvbklk KCkgdG8gbW92ZSBiYWNrd2FyZHMsIHNvIGl0J3Mgbm90CisJICogd3JvbmcgZm9yIHVzIHRvIHNl ZSB0dXBsZXMgdGhhdCBhcHBlYXIgdG8gbm90IGJlIHZpc2libGUgdG8gZXZlcnlvbmUKKwkgKiB5 ZXQsIHdoaWxlIFBEX0FMTF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LiBUaGUgcmVhbCBzYWZlIHht aW4gdmFsdWUKKwkgKiBuZXZlciBtb3ZlcyBiYWNrd2FyZHMsIGJ1dCBHZXRPbGRlc3ROb25SZW1v dmFibGVUcmFuc2FjdGlvbklkKCkgaXMKKwkgKiBjb25zZXJ2YXRpdmUgYW5kIHNvbWV0aW1lcyBy ZXR1cm5zIGEgdmFsdWUgdGhhdCdzIHVubmVjZXNzYXJpbHkgc21hbGwsCisJICogc28gaWYgd2Ug c2VlIHRoYXQgY29udHJhZGljdGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQgdGhlIHR1cGxlcyB0aGF0 IHdlCisJICogdGhpbmsgYXJlIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lIHlldCBhY3R1YWxseSBh cmUsIGFuZCB0aGUKKwkgKiBQRF9BTExfVklTSUJMRSBmbGFnIGlzIGNvcnJlY3QuCisJICoKKwkg KiBUaGVyZSBzaG91bGQgbmV2ZXIgYmUgTFBfREVBRCBpdGVtcyBvbiBhIHBhZ2Ugd2l0aCBQRF9B TExfVklTSUJMRSBzZXQsCisJICogaG93ZXZlci4KKwkgKi8KKwlpZiAobmxwZGVhZF9pdGVtcyA+ IDAgJiYgUGFnZUlzQWxsVmlzaWJsZShoZWFwX3BhZ2UpKQorCXsKKwkJZWxvZyhXQVJOSU5HLCAi cGFnZSBjb250YWluaW5nIExQX0RFQUQgaXRlbXMgaXMgbWFya2VkIGFzIGFsbC12aXNpYmxlIGlu IHJlbGF0aW9uIFwiJXNcIiBwYWdlICV1IiwKKwkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShy ZWxhdGlvbiksIGhlYXBfYmxrKTsKKwkJUGFnZUNsZWFyQWxsVmlzaWJsZShoZWFwX3BhZ2UpOwor CQlNYXJrQnVmZmVyRGlydHkoaGVhcF9idWZmZXIpOworCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJl bGF0aW9uLCBoZWFwX2Jsaywgdm1idWZmZXIsCisJCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJRF9C SVRTKTsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCisKIC8qIHFz b3J0IGNvbXBhcmF0b3IgZm9yIHNvcnRpbmcgT2Zmc2V0TnVtYmVycyAqLwogc3RhdGljIGludAog Y21wT2Zmc2V0TnVtYmVycyhjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQpAQCAtMjA3OSw5 ICsyMTQ1LDE0IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJLyoKIAkg KiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQgYmFzZWQgb24gaW5mb3JtYXRpb24g ZnJvbSB0aGUgVk0gKGFzCiAJICogb2YgbGFzdCBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSBj YWxsKSwgYW5kIGZyb20gYWxsX3Zpc2libGUgYW5kCi0JICogYWxsX2Zyb3plbiB2YXJpYWJsZXMK KwkgKiBhbGxfZnJvemVuIHZhcmlhYmxlcy4gU3RhcnQgYnkgbG9va2luZyBmb3IgYW55IFZNIGNv cnJ1cHRpb24uCiAJICovCi0JaWYgKCFhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gJiYgcHJl c3VsdC5hbGxfdmlzaWJsZSkKKwlpZiAoaWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKHZh Y3JlbC0+cmVsLCBibGtubywgYnVmLCBwYWdlLAorCQkJCQkJCQkJICAgYWxsX3Zpc2libGVfYWNj b3JkaW5nX3RvX3ZtLCBwcmVzdWx0LmxwZGVhZF9pdGVtcywgdm1idWZmZXIpKQorCXsKKwkJLyog RG9uJ3QgdXBkYXRlIHRoZSBWTSBpZiB3ZSBqdXN0IGNsZWFyZWQgY29ycnVwdGlvbiBpbiBpdCAq LworCX0KKwllbHNlIGlmICghYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtICYmIHByZXN1bHQu YWxsX3Zpc2libGUpCiAJewogCQl1aW50OAkJb2xkX3ZtYml0czsKIAkJdWludDgJCWZsYWdzID0g VklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKQEAgLTIxMzMsNDUgKzIyMDQsNiBAQCBsYXp5X3Nj YW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQl9CiAJfQogCi0JLyoKLQkgKiBBcyBvZiBQ b3N0Z3JlU1FMIDkuMiwgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0 IGlmIHRoZQotCSAqIHBhZ2UtbGV2ZWwgYml0IGlzIGNsZWFyLiAgSG93ZXZlciwgaXQncyBwb3Nz aWJsZSB0aGF0IHRoZSBiaXQgZ290Ci0JICogY2xlYXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25l eHRfYmxvY2soKSB3YXMgY2FsbGVkLCBzbyB3ZSBtdXN0IHJlY2hlY2sKLQkgKiB3aXRoIGJ1ZmZl ciBsb2NrIGJlZm9yZSBjb25jbHVkaW5nIHRoYXQgdGhlIFZNIGlzIGNvcnJ1cHQuCi0JICovCi0J ZWxzZSBpZiAoYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtICYmICFQYWdlSXNBbGxWaXNpYmxl KHBhZ2UpICYmCi0JCQkgdmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzKHZhY3JlbC0+cmVsLCBibGtu bywgJnZtYnVmZmVyKSAhPSAwKQotCXsKLQkJZWxvZyhXQVJOSU5HLCAicGFnZSBpcyBub3QgbWFy a2VkIGFsbC12aXNpYmxlIGJ1dCB2aXNpYmlsaXR5IG1hcCBiaXQgaXMgc2V0IGluIHJlbGF0aW9u IFwiJXNcIiBwYWdlICV1IiwKLQkJCSB2YWNyZWwtPnJlbG5hbWUsIGJsa25vKTsKLQkJdmlzaWJp bGl0eW1hcF9jbGVhcih2YWNyZWwtPnJlbCwgYmxrbm8sIHZtYnVmZmVyLAotCQkJCQkJCVZJU0lC SUxJVFlNQVBfVkFMSURfQklUUyk7Ci0JfQotCi0JLyoKLQkgKiBJdCdzIHBvc3NpYmxlIGZvciB0 aGUgdmFsdWUgcmV0dXJuZWQgYnkKLQkgKiBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlv bklkKCkgdG8gbW92ZSBiYWNrd2FyZHMsIHNvIGl0J3Mgbm90Ci0JICogd3JvbmcgZm9yIHVzIHRv IHNlZSB0dXBsZXMgdGhhdCBhcHBlYXIgdG8gbm90IGJlIHZpc2libGUgdG8gZXZlcnlvbmUKLQkg KiB5ZXQsIHdoaWxlIFBEX0FMTF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LiBUaGUgcmVhbCBzYWZl IHhtaW4gdmFsdWUKLQkgKiBuZXZlciBtb3ZlcyBiYWNrd2FyZHMsIGJ1dCBHZXRPbGRlc3ROb25S ZW1vdmFibGVUcmFuc2FjdGlvbklkKCkgaXMKLQkgKiBjb25zZXJ2YXRpdmUgYW5kIHNvbWV0aW1l cyByZXR1cm5zIGEgdmFsdWUgdGhhdCdzIHVubmVjZXNzYXJpbHkgc21hbGwsCi0JICogc28gaWYg d2Ugc2VlIHRoYXQgY29udHJhZGljdGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQgdGhlIHR1cGxlcyB0 aGF0IHdlCi0JICogdGhpbmsgYXJlIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lIHlldCBhY3R1YWxs eSBhcmUsIGFuZCB0aGUKLQkgKiBQRF9BTExfVklTSUJMRSBmbGFnIGlzIGNvcnJlY3QuCi0JICoK LQkgKiBUaGVyZSBzaG91bGQgbmV2ZXIgYmUgTFBfREVBRCBpdGVtcyBvbiBhIHBhZ2Ugd2l0aCBQ RF9BTExfVklTSUJMRSBzZXQsCi0JICogaG93ZXZlci4KLQkgKi8KLQllbHNlIGlmIChwcmVzdWx0 LmxwZGVhZF9pdGVtcyA+IDAgJiYgUGFnZUlzQWxsVmlzaWJsZShwYWdlKSkKLQl7Ci0JCWVsb2co V0FSTklORywgInBhZ2UgY29udGFpbmluZyBMUF9ERUFEIGl0ZW1zIGlzIG1hcmtlZCBhcyBhbGwt dmlzaWJsZSBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkgdmFjcmVsLT5yZWxuYW1l LCBibGtubyk7Ci0JCVBhZ2VDbGVhckFsbFZpc2libGUocGFnZSk7Ci0JCU1hcmtCdWZmZXJEaXJ0 eShidWYpOwotCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHZhY3JlbC0+cmVsLCBibGtubywgdm1idWZm ZXIsCi0JCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKTsKLQl9Ci0KIAkvKgogCSAqIElm IHRoZSBhbGwtdmlzaWJsZSBwYWdlIGlzIGFsbC1mcm96ZW4gYnV0IG5vdCBtYXJrZWQgYXMgc3Vj aCB5ZXQsIG1hcmsKIAkgKiBpdCBhcyBhbGwtZnJvemVuLiAgTm90ZSB0aGF0IGFsbF9mcm96ZW4g aXMgb25seSB2YWxpZCBpZiBhbGxfdmlzaWJsZSBpcwotLSAKMi40My4wCgo= --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0002-Make-heap_page_is_all_visible-independent-of-LVRe.patch" Content-Disposition: attachment; filename="v6-0002-Make-heap_page_is_all_visible-independent-of-LVRe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu5r1 RnJvbSBmYzExYTE5NDI3NjFlMWQ5Zjg0YjgwNWM1NzMzM2RkZGVkZTVhYTgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDE1OjQ4OjUxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAwMi8yMF0gTWFrZSBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUgaW5kZXBlbmRlbnQg b2YKIExWUmVsU3RhdGUKCkZ1dHVyZSBjb21taXRzIHdpbGwgdXNlIHRoaXMgZnVuY3Rpb24gaW5z aWRlIG9mIHBydW5laGVhcC5jIHdoZXJlIHdlIGRvCm5vdCBoYXZlIGFjY2VzcyB0byB0aGUgTFZS ZWxTdGF0ZS4gV2Ugb25seSBuZWVkIHR3byBwYXJhbWV0ZXJzIGZyb20gdGhlCkxWUmVsU3RhdGUs IHNvIGp1c3QgcGFzcyB0aG9zZSBpbiBleHBsaWNpdGx5LgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYyB8IDQ1ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggMTQwMzZjMjdlODcuLjhhNjJhOTNlZWU1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC00NjQsOCArNDY0LDExIEBAIHN0 YXRpYyB2b2lkIGRlYWRfaXRlbXNfYWRkKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIg Ymxrbm8sIE9mZnNldE51bWJlciAqCiAJCQkJCQkgICBpbnQgbnVtX29mZnNldHMpOwogc3RhdGlj IHZvaWQgZGVhZF9pdGVtc19yZXNldChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGljIHZvaWQg ZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCk7Ci1zdGF0aWMgYm9vbCBoZWFw X3BhZ2VfaXNfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAotCQkJ CQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwgYm9vbCAqYWxsX2Zy b3plbik7CitzdGF0aWMgYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVs LCBCdWZmZXIgYnVmLAorCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJCQkJ CQkJCSBib29sICphbGxfZnJvemVuLAorCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxp dHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsK IHN0YXRpYyB2b2lkIHVwZGF0ZV9yZWxzdGF0c19hbGxfaW5kZXhlcyhMVlJlbFN0YXRlICp2YWNy ZWwpOwogc3RhdGljIHZvaWQgdmFjdXVtX2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZyk7CiBzdGF0 aWMgdm9pZCB1cGRhdGVfdmFjdXVtX2Vycm9yX2luZm8oTFZSZWxTdGF0ZSAqdmFjcmVsLApAQCAt MjAxMCw4ICsyMDEzLDkgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAog CQlBc3NlcnQocHJlc3VsdC5scGRlYWRfaXRlbXMgPT0gMCk7CiAKLQkJaWYgKCFoZWFwX3BhZ2Vf aXNfYWxsX3Zpc2libGUodmFjcmVsLCBidWYsCi0JCQkJCQkJCQkgICZkZWJ1Z19jdXRvZmYsICZk ZWJ1Z19hbGxfZnJvemVuKSkKKwkJaWYgKCFoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUodmFjcmVs LT5yZWwsIGJ1ZiwKKwkJCQkJCQkJCSAgdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sICZkZWJ1 Z19hbGxfZnJvemVuLAorCQkJCQkJCQkJICAmZGVidWdfY3V0b2ZmLCAmdmFjcmVsLT5vZmZudW0p KQogCQkJQXNzZXJ0KGZhbHNlKTsKIAogCQlBc3NlcnQocHJlc3VsdC5hbGxfZnJvemVuID09IGRl YnVnX2FsbF9mcm96ZW4pOwpAQCAtMjkwNyw4ICsyOTExLDggQEAgbGF6eV92YWN1dW1faGVhcF9w YWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIs CiAJICogZW1pdHRlZC4KIAkgKi8KIAlBc3NlcnQoIVBhZ2VJc0FsbFZpc2libGUocGFnZSkpOwot CWlmIChoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUodmFjcmVsLCBidWZmZXIsICZ2aXNpYmlsaXR5 X2N1dG9mZl94aWQsCi0JCQkJCQkJCSAmYWxsX2Zyb3plbikpCisJaWYgKGhlYXBfcGFnZV9pc19h bGxfdmlzaWJsZSh2YWNyZWwtPnJlbCwgYnVmZmVyLCB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1p biwKKwkJCQkJCQkJICZhbGxfZnJvemVuLCAmdmlzaWJpbGl0eV9jdXRvZmZfeGlkLCAmdmFjcmVs LT5vZmZudW0pKQogCXsKIAkJdWludDgJCWZsYWdzID0gVklTSUJJTElUWU1BUF9BTExfVklTSUJM RTsKIApAQCAtMzU5Miw5ICszNTk2LDE2IEBAIGRlYWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRl ICp2YWNyZWwpCiAKIC8qCiAgKiBDaGVjayBpZiBldmVyeSB0dXBsZSBpbiB0aGUgZ2l2ZW4gcGFn ZSBpcyB2aXNpYmxlIHRvIGFsbCBjdXJyZW50IGFuZCBmdXR1cmUKLSAqIHRyYW5zYWN0aW9ucy4g QWxzbyByZXR1cm4gdGhlIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCB3aGljaCBpcyB0aGUgaGlnaGVz dAotICogeG1pbiBhbW9uZ3N0IHRoZSB2aXNpYmxlIHR1cGxlcy4gIFNldCAqYWxsX2Zyb3plbiB0 byB0cnVlIGlmIGV2ZXJ5IHR1cGxlCi0gKiBvbiB0aGlzIHBhZ2UgaXMgZnJvemVuLgorICogdHJh bnNhY3Rpb25zLgorICoKKyAqIE9sZGVzdFhtaW4gaXMgdXNlZCB0byBkZXRlcm1pbmUgdmlzaWJp bGl0eS4KKyAqCisgKiAqbG9nZ2luZ19vZmZudW0gd2lsbCBoYXZlIHRoZSBPZmZzZXROdW1iZXIg b2YgdGhlIGN1cnJlbnQgdHVwbGUgYmVpbmcKKyAqIHByb2Nlc3NlZCBmb3IgdmFjdXVtJ3MgZXJy b3IgY2FsbGJhY2sgc3lzdGVtLgorICoKKyAqIFJldHVybiB0aGUgdmlzaWJpbGl0eV9jdXRvZmZf eGlkIHdoaWNoIGlzIHRoZSBoaWdoZXN0IHhtaW4gYW1vbmdzdCB0aGUKKyAqIHZpc2libGUgdHVw bGVzLiBTZXRzICphbGxfZnJvemVuIHRvIHRydWUgaWYgZXZlcnkgdHVwbGUgb24gdGhpcyBwYWdl IGlzCisgKiBmcm96ZW4uCiAgKgogICogVGhpcyBpcyBhIHN0cmlwcGVkIGRvd24gdmVyc2lvbiBv ZiBsYXp5X3NjYW5fcHJ1bmUoKS4gIElmIHlvdSBjaGFuZ2UKICAqIGFueXRoaW5nIGhlcmUsIG1h a2Ugc3VyZSB0aGF0IGV2ZXJ5dGhpbmcgc3RheXMgaW4gc3luYy4gIE5vdGUgdGhhdCBhbgpAQCAt MzYwMiw5ICszNjEzLDExIEBAIGRlYWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwp CiAgKiBpbnRyb2R1Y2luZyBuZXcgc2lkZS1lZmZlY3RzIGhlcmUuCiAgKi8KIHN0YXRpYyBib29s Ci1oZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVm LAoraGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKKwkJ CQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwK IAkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCi0JCQkJCQkgYm9v bCAqYWxsX2Zyb3plbikKKwkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKQogewog CVBhZ2UJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1Zik7CiAJQmxvY2tOdW1iZXIgYmxvY2tubyA9 IEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1Zik7CkBAIC0zNjI3LDcgKzM2NDAsNyBAQCBoZWFwX3Bh Z2VfaXNfYWxsX3Zpc2libGUoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLAogCQkgKiBT ZXQgdGhlIG9mZnNldCBudW1iZXIgc28gdGhhdCB3ZSBjYW4gZGlzcGxheSBpdCBhbG9uZyB3aXRo IGFueQogCQkgKiBlcnJvciB0aGF0IG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcgdGhpcyB0dXBs ZS4KIAkJICovCi0JCXZhY3JlbC0+b2ZmbnVtID0gb2ZmbnVtOworCQkqbG9nZ2luZ19vZmZudW0g PSBvZmZudW07CiAJCWl0ZW1pZCA9IFBhZ2VHZXRJdGVtSWQocGFnZSwgb2ZmbnVtKTsKIAogCQkv KiBVbnVzZWQgb3IgcmVkaXJlY3QgbGluZSBwb2ludGVycyBhcmUgb2Ygbm8gaW50ZXJlc3QgKi8K QEAgLTM2NTEsOSArMzY2NCw5IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShMVlJlbFN0YXRl ICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAKIAkJdHVwbGUudF9kYXRhID0gKEhlYXBUdXBsZUhlYWRl cikgUGFnZUdldEl0ZW0ocGFnZSwgaXRlbWlkKTsKIAkJdHVwbGUudF9sZW4gPSBJdGVtSWRHZXRM ZW5ndGgoaXRlbWlkKTsKLQkJdHVwbGUudF90YWJsZU9pZCA9IFJlbGF0aW9uR2V0UmVsaWQodmFj cmVsLT5yZWwpOworCQl0dXBsZS50X3RhYmxlT2lkID0gUmVsYXRpb25HZXRSZWxpZChyZWwpOwog Ci0JCXN3aXRjaCAoSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtKCZ0dXBsZSwgdmFjcmVsLT5jdXRv ZmZzLk9sZGVzdFhtaW4sCisJCXN3aXRjaCAoSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtKCZ0dXBs ZSwgT2xkZXN0WG1pbiwKIAkJCQkJCQkJCQkgYnVmKSkKIAkJewogCQkJY2FzZSBIRUFQVFVQTEVf TElWRToKQEAgLTM2NzQsNyArMzY4Nyw3IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShMVlJl bFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAJCQkJCSAqLwogCQkJCQl4bWluID0gSGVhcFR1 cGxlSGVhZGVyR2V0WG1pbih0dXBsZS50X2RhdGEpOwogCQkJCQlpZiAoIVRyYW5zYWN0aW9uSWRQ cmVjZWRlcyh4bWluLAotCQkJCQkJCQkJCQkgICB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbikp CisJCQkJCQkJCQkJCSAgIE9sZGVzdFhtaW4pKQogCQkJCQl7CiAJCQkJCQlhbGxfdmlzaWJsZSA9 IGZhbHNlOwogCQkJCQkJKmFsbF9mcm96ZW4gPSBmYWxzZTsKQEAgLTM3MDksNyArMzcyMiw3IEBA IGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYs CiAJfQkJCQkJCQkvKiBzY2FuIGFsb25nIHBhZ2UgKi8KIAogCS8qIENsZWFyIHRoZSBvZmZzZXQg aW5mb3JtYXRpb24gb25jZSB3ZSBoYXZlIHByb2Nlc3NlZCB0aGUgZ2l2ZW4gcGFnZS4gKi8KLQl2 YWNyZWwtPm9mZm51bSA9IEludmFsaWRPZmZzZXROdW1iZXI7CisJKmxvZ2dpbmdfb2ZmbnVtID0g SW52YWxpZE9mZnNldE51bWJlcjsKIAogCXJldHVybiBhbGxfdmlzaWJsZTsKIH0KLS0gCjIuNDMu MAoK --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0004-Use-xl_heap_prune-record-for-setting-empty-pages-.patch" Content-Disposition: attachment; filename="v6-0004-Use-xl_heap_prune-record-for-setting-empty-pages-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu5u3 RnJvbSBhZmZlN2Q5NmY0MmQzNmI1ZjY4YmVhODFkYmNmMDhiNDQ2NDgxODFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjQyOjE5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAwNC8yMF0gVXNlIHhsX2hlYXBfcHJ1bmUgcmVjb3JkIGZvciBzZXR0aW5nIGVtcHR5 IHBhZ2VzCiBhbGwtdmlzaWJsZQoKQXMgcGFydCBvZiBhIHByb2plY3QgdG8gZWxpbWluYXRlIHhs X2hlYXBfdmlzaWJsZSByZWNvcmRzLCBlbGltaW5hdGUKdGhlaXIgdXNhZ2UgaW4gcGhhc2UgSSB2 YWN1dW0gb2YgZW1wdHkgcGFnZXMuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMgIHwgMTQgKysrKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j IHwgNTUgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbS5oICAgICAgICAgIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCsp LCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IGQ5 YmEwZjk2ZTM0Li45N2U1MWY3ODg1NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMK QEAgLTgzNiw2ICs4MzYsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiBy ZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmxhdGVz dF94aWRfcmVtb3ZlZDsKIAogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShyZWxhdGlvbiwg YnVmZmVyLAorCQkJCQkJCQkJICBmYWxzZSwKIAkJCQkJCQkJCSAgSW52YWxpZEJ1ZmZlciwgMCwg ZmFsc2UsCiAJCQkJCQkJCQkgIGNvbmZsaWN0X3hpZCwKIAkJCQkJCQkJCSAgdHJ1ZSwgcmVhc29u LApAQCAtMjA1MSw2ICsyMDUyLDkgQEAgaGVhcF9sb2dfZnJlZXplX3BsYW4oSGVhcFR1cGxlRnJl ZXplICp0dXBsZXMsIGludCBudHVwbGVzLAogICogY2FzZSwgdm1idWZmZXIgc2hvdWxkIGFscmVh ZHkgaGF2ZSBiZWVuIHVwZGF0ZWQgYW5kIG1hcmtlZCBkaXJ0eSBhbmQgc2hvdWxkCiAgKiBzdGls bCBiZSBwaW5uZWQgYW5kIGxvY2tlZC4KICAqCisgKiBmb3JjZV9oZWFwX2ZwaSBpbmRpY2F0ZXMg dGhhdCBhIGZ1bGwgcGFnZSBpbWFnZSBvZiB0aGUgaGVhcCBibG9jayBzaG91bGQgYmUKKyAqIGZv cmNlZC4KKyAqCiAgKiBzZXRfcGRfYWxsX3ZpcyBpbmRpY2F0ZXMgdGhhdCB3ZSBzZXQgUERfQUxM X1ZJU0lCTEUgYW5kIHRodXMgc2hvdWxkIHVwZGF0ZQogICogdGhlIHBhZ2UgTFNOIHdoZW4gY2hl Y2tzdW1zL3dhbF9sb2dfaGludHMgYXJlIGVuYWJsZWQgZXZlbiBpZiB3ZSBkaWQgbm90CiAgKiBw cnVuZSBvciBmcmVlemUgdHVwbGVzIG9uIHRoZSBwYWdlLgpAQCAtMjA2MSw2ICsyMDY1LDcgQEAg aGVhcF9sb2dfZnJlZXplX3BsYW4oSGVhcFR1cGxlRnJlZXplICp0dXBsZXMsIGludCBudHVwbGVz LAogICovCiB2b2lkCiBsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9u LCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJICBib29sIGZvcmNlX2hlYXBfZnBpLAogCQkJCQkJICBC dWZmZXIgdm1idWZmZXIsCiAJCQkJCQkgIHVpbnQ4IHZtZmxhZ3MsCiAJCQkJCQkgIGJvb2wgc2V0 X3BkX2FsbF92aXMsCkBAIC0yMDg5LDEzICsyMDk0LDE2IEBAIGxvZ19oZWFwX3BydW5lX2FuZF9m cmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJeGxyZWMuZmxhZ3MgPSAw OwogCXJlZ2J1Zl9mbGFncyA9IFJFR0JVRl9TVEFOREFSRDsKIAorCWlmIChmb3JjZV9oZWFwX2Zw aSkKKwkJcmVnYnVmX2ZsYWdzIHw9IFJFR0JVRl9GT1JDRV9JTUFHRTsKKwogCS8qCiAJICogV2Ug Y2FuIGF2b2lkIGFuIEZQSSBpZiB0aGUgb25seSBtb2RpZmljYXRpb24gd2UgYXJlIG1ha2luZyB0 byB0aGUgaGVhcAogCSAqIHBhZ2UgaXMgdG8gc2V0IFBEX0FMTF9WSVNJQkxFIGFuZCBjaGVja3N1 bXMvd2FsX2xvZ19oaW50cyBhcmUgZGlzYWJsZWQuCiAJICovCi0JaWYgKCFkb19wcnVuZSAmJgot CQluZnJvemVuID09IDAgJiYKLQkJKCFzZXRfcGRfYWxsX3ZpcyB8fCAhWExvZ0hpbnRCaXRJc05l ZWRlZCgpKSkKKwllbHNlIGlmICghZG9fcHJ1bmUgJiYKKwkJCSBuZnJvemVuID09IDAgJiYKKwkJ CSAoIXNldF9wZF9hbGxfdmlzIHx8ICFYTG9nSGludEJpdElzTmVlZGVkKCkpKQogCQlyZWdidWZf ZmxhZ3MgfD0gUkVHQlVGX05PX0lNQUdFOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYwppbmRleCA0NjBjZGJkODQxNy4uZDllMTk1MjY5ZDIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKQEAgLTE4NzgsMzMgKzE4NzgsNDcgQEAgbGF6eV9zY2FuX25ld19v cl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25v LAogCQkgKi8KIAkJaWYgKCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKQogCQl7CisJCQl1aW50OAkJ bmV3X3ZtYml0cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCVZJU0lCSUxJVFlN QVBfQUxMX0ZST1pFTjsKKwogCQkJU1RBUlRfQ1JJVF9TRUNUSU9OKCk7CiAKLQkJCS8qIG1hcmsg YnVmZmVyIGRpcnR5IGJlZm9yZSB3cml0aW5nIGEgV0FMIHJlY29yZCAqLworCQkJUGFnZVNldEFs bFZpc2libGUocGFnZSk7CiAJCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKIAotCQkJLyoKLQkJCSAq IEl0J3MgcG9zc2libGUgdGhhdCBhbm90aGVyIGJhY2tlbmQgaGFzIGV4dGVuZGVkIHRoZSBoZWFw LAotCQkJICogaW5pdGlhbGl6ZWQgdGhlIHBhZ2UsIGFuZCB0aGVuIGZhaWxlZCB0byBXQUwtbG9n IHRoZSBwYWdlIGR1ZQotCQkJICogdG8gYW4gRVJST1IuICBTaW5jZSBoZWFwIGV4dGVuc2lvbiBp cyBub3QgV0FMLWxvZ2dlZCwgcmVjb3ZlcnkKLQkJCSAqIG1pZ2h0IHRyeSB0byByZXBsYXkgb3Vy IHJlY29yZCBzZXR0aW5nIHRoZSBwYWdlIGFsbC12aXNpYmxlIGFuZAotCQkJICogZmluZCB0aGF0 IHRoZSBwYWdlIGlzbid0IGluaXRpYWxpemVkLCB3aGljaCB3aWxsIGNhdXNlIGEgUEFOSUMuCi0J CQkgKiBUbyBwcmV2ZW50IHRoYXQsIGNoZWNrIHdoZXRoZXIgdGhlIHBhZ2UgaGFzIGJlZW4gcHJl dmlvdXNseQotCQkJICogV0FMLWxvZ2dlZCwgYW5kIGlmIG5vdCwgZG8gdGhhdCBub3cuCi0JCQkg Ki8KLQkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHZhY3JlbC0+cmVsKSAmJgotCQkJCVBhZ2VHZXRM U04ocGFnZSkgPT0gSW52YWxpZFhMb2dSZWNQdHIpCi0JCQkJbG9nX25ld3BhZ2VfYnVmZmVyKGJ1 ZiwgdHJ1ZSk7CisJCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUp OworCQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1ieXRlKHZhY3JlbC0+cmVsLCBibGtubywKKwkJCQkJ CQkJCSB2bWJ1ZmZlciwgbmV3X3ZtYml0cyk7CisKKwkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHZh Y3JlbC0+cmVsKSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIEl0J3MgcG9zc2libGUgdGhhdCBhbm90 aGVyIGJhY2tlbmQgaGFzIGV4dGVuZGVkIHRoZSBoZWFwLAorCQkJCSAqIGluaXRpYWxpemVkIHRo ZSBwYWdlLCBhbmQgdGhlbiBmYWlsZWQgdG8gV0FMLWxvZyB0aGUgcGFnZQorCQkJCSAqIGR1ZSB0 byBhbiBFUlJPUi4gIFNpbmNlIGhlYXAgZXh0ZW5zaW9uIGlzIG5vdCBXQUwtbG9nZ2VkLAorCQkJ CSAqIHJlY292ZXJ5IG1pZ2h0IHRyeSB0byByZXBsYXkgb3VyIHJlY29yZCBzZXR0aW5nIHRoZSBw YWdlCisJCQkJICogYWxsLXZpc2libGUgYW5kIGZpbmQgdGhhdCB0aGUgcGFnZSBpc24ndCBpbml0 aWFsaXplZCwgd2hpY2gKKwkJCQkgKiB3aWxsIGNhdXNlIGEgUEFOSUMuIFRvIHByZXZlbnQgdGhh dCwgaWYgdGhlIHBhZ2UgaGFzbid0CisJCQkJICogYmVlbiBwcmV2aW91c2x5IFdBTC1sb2dnZWQs IGZvcmNlIGEgaGVhcCBGUEkuCisJCQkJICovCisJCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6 ZSh2YWNyZWwtPnJlbCwgYnVmLAorCQkJCQkJCQkJCSAgUGFnZUdldExTTihwYWdlKSA9PSBJbnZh bGlkWExvZ1JlY1B0ciwKKwkJCQkJCQkJCQkgIHZtYnVmZmVyLAorCQkJCQkJCQkJCSAgbmV3X3Zt Yml0cywKKwkJCQkJCQkJCQkgIHRydWUsCisJCQkJCQkJCQkJICBJbnZhbGlkVHJhbnNhY3Rpb25J ZCwKKwkJCQkJCQkJCQkgIGZhbHNlLCBQUlVORV9WQUNVVU1fU0NBTiwKKwkJCQkJCQkJCQkgIE5V TEwsIDAsCisJCQkJCQkJCQkJICBOVUxMLCAwLAorCQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJ CQkJCQkgIE5VTEwsIDApOworCQkJfQogCi0JCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQkJ CXZpc2liaWxpdHltYXBfc2V0KHZhY3JlbC0+cmVsLCBibGtubywgYnVmLAotCQkJCQkJCSAgSW52 YWxpZFhMb2dSZWNQdHIsCi0JCQkJCQkJICB2bWJ1ZmZlciwgSW52YWxpZFRyYW5zYWN0aW9uSWQs Ci0JCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKLQkJCQkJCQkgIFZJU0lCSUxJ VFlNQVBfQUxMX0ZST1pFTik7CiAJCQlFTkRfQ1JJVF9TRUNUSU9OKCk7CiAKLQkJCS8qIENvdW50 IHRoZSBuZXdseSBhbGwtZnJvemVuIHBhZ2VzIGZvciBsb2dnaW5nICovCisJCQlMb2NrQnVmZmVy KHZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCisJCQkvKiBDb3VudCB0aGUgbmV3bHkg YWxsLWZyb3plbiBwYWdlcyBmb3IgbG9nZ2luZy4gKi8KIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2li bGVfcGFnZXMrKzsKIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzKys7CiAJ CX0KQEAgLTI5MTgsNiArMjkzMiw3IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRl ICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCWlmIChSZWxhdGlv bk5lZWRzV0FMKHZhY3JlbC0+cmVsKSkKIAl7CiAJCWxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUo dmFjcmVsLT5yZWwsIGJ1ZmZlciwKKwkJCQkJCQkJICBmYWxzZSwKIAkJCQkJCQkJICB2bWJ1ZmZl ciwKIAkJCQkJCQkJICB2bWZsYWdzLAogCQkJCQkJCQkgIHNldF9wZF9hbGxfdmlzLApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbS5oCmluZGV4IDhiNDcyOTVlZmEyLi5lNzEyOWE2NDRhMSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApA QCAtMzk0LDYgKzM5NCw3IEBAIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9leGVjdXRlKEJ1 ZmZlciBidWZmZXIsIGJvb2wgbHBfdHJ1bmNhdGVfb25seSwKIAkJCQkJCQkJCU9mZnNldE51bWJl ciAqbm93dW51c2VkLCBpbnQgbnVudXNlZCk7CiBleHRlcm4gdm9pZCBoZWFwX2dldF9yb290X3R1 cGxlcyhQYWdlIHBhZ2UsIE9mZnNldE51bWJlciAqcm9vdF9vZmZzZXRzKTsKIGV4dGVybiB2b2lk IGxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZm ZXIsCisJCQkJCQkJCQkgIGJvb2wgZm9yY2VfaGVhcF9mcGksCiAJCQkJCQkJCQkgIEJ1ZmZlciB2 bWJ1ZmZlciwKIAkJCQkJCQkJCSAgdWludDggdm1mbGFncywKIAkJCQkJCQkJCSAgYm9vbCB2bV9t b2RpZmllZF9oZWFwX3BhZ2UsCi0tIAoyLjQzLjAKCg== --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0007-Find-and-fix-VM-corruption-in-heap_page_prune_and.patch" Content-Disposition: attachment; filename="v6-0007-Find-and-fix-VM-corruption-in-heap_page_prune_and.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu5y6 RnJvbSA0MjNiNDQyNzM5OTdiOTQzNjEyM2JhYzAxMmZjNmNkYjc4Y2VhODI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDE2OjQ1OjU5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAwNy8yMF0gRmluZCBhbmQgZml4IFZNIGNvcnJ1cHRpb24gaW4KIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplCgpGdXR1cmUgY29tbWl0cyB3aWxsIHVwZGF0ZSB0aGUgVk0gaW4gdGhl IHNhbWUgY3JpdGljYWwgc2VjdGlvbiBhbmQgV0FMCnJlY29yZCBhcyBwcnVuaW5nIGFuZCBmcmVl emluZy4gRm9yIGVhc2Ugb2YgcmV2aWV3LCB0aGlzIGNvbW1pdCBtYWtlcwpvbmUgc3RlcCB0b3dh cmQgZG9pbmcgdGhpcy4gSXQgbW92ZXMgdGhlIFZNIGNvcnJ1cHRpb24gaGFuZGxpbmcgY2FzZSB0 bwpoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8IDc3ICsrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgIHwgIDQgKysKIDMgZmls ZXMgY2hhbmdlZCwgOTYgaW5zZXJ0aW9ucygrKSwgNzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA5N2U1MWY3ODg1NC4uNDk2YjcwZTMxOGYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0yMSw3ICsyMSw3IEBACiAjaW5jbHVkZSAi YWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgogI2luY2x1ZGUgImFj Y2Vzcy94bG9naW5zZXJ0LmgiCi0jaW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgi CisjaW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXAuaCIKICNpbmNsdWRlICJjb21tYW5kcy92 YWN1dW0uaCIKICNpbmNsdWRlICJleGVjdXRvci9pbnN0cnVtZW50LmgiCiAjaW5jbHVkZSAibWlz Y2FkbWluLmgiCkBAIC0xNzcsNiArMTc3LDEzIEBAIHN0YXRpYyB2b2lkIGhlYXBfcHJ1bmVfcmVj b3JkX3VuY2hhbmdlZF9scF9yZWRpcmVjdChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROCiAK IHN0YXRpYyB2b2lkIHBhZ2VfdmVyaWZ5X3JlZGlyZWN0cyhQYWdlIHBhZ2UpOwogCitzdGF0aWMg Ym9vbCBpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24oUmVsYXRpb24gcmVsYXRpb24sCisJ CQkJCQkJCQkJICAgQmxvY2tOdW1iZXIgaGVhcF9ibGssCisJCQkJCQkJCQkJICAgQnVmZmVyIGhl YXBfYnVmZmVyLCBQYWdlIGhlYXBfcGFnZSwKKwkJCQkJCQkJCQkgICBib29sIGhlYXBfYmxrX2tu b3duX2F2LAorCQkJCQkJCQkJCSAgIGludDY0IG5scGRlYWRfaXRlbXMsCisJCQkJCQkJCQkJICAg QnVmZmVyIHZtYnVmZmVyKTsKKwogCiAvKgogICogT3B0aW9uYWxseSBwcnVuZSBhbmQgcmVwYWly IGZyYWdtZW50YXRpb24gaW4gdGhlIHNwZWNpZmllZCBwYWdlLgpAQCAtMjYxLDcgKzI2OCw5IEBA IGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIpCiAJ CQkgKiBub3QgdGhlIHJlbGF0aW9uIGhhcyBpbmRleGVzLCBzaW5jZSB3ZSBjYW5ub3Qgc2FmZWx5 IGRldGVybWluZQogCQkJICogdGhhdCBkdXJpbmcgb24tYWNjZXNzIHBydW5pbmcgd2l0aCB0aGUg Y3VycmVudCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAqLwotCQkJaGVhcF9wYWdlX3BydW5lX2FuZF9m cmVlemUocmVsYXRpb24sIGJ1ZmZlciwgdmlzdGVzdCwgMCwKKwkJCWhlYXBfcGFnZV9wcnVuZV9h bmRfZnJlZXplKHJlbGF0aW9uLCBidWZmZXIsIGZhbHNlLAorCQkJCQkJCQkJICAgSW52YWxpZEJ1 ZmZlciwKKwkJCQkJCQkJCSAgIHZpc3Rlc3QsIDAsCiAJCQkJCQkJCQkgICBOVUxMLCAmcHJlc3Vs dCwgUFJVTkVfT05fQUNDRVNTLCAmZHVtbXlfb2ZmX2xvYywgTlVMTCwgTlVMTCk7CiAKIAkJCS8q CkBAIC0yOTQsNiArMzAzLDY0IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIpCiAJfQogfQogCisvKgorICogV2hlbiB1cGRhdGluZyB0aGUgdmlz aWJpbGl0eSBtYXAgYWZ0ZXIgcGhhc2UgSSBoZWFwIHZhY3V1bWluZywgd2UgdGFrZSB0aGUKKyAq IG9wcG9ydHVuaXR5IHRvIGlkZW50aWZ5IGFuZCBmaXggYW55IFZNIGNvcnJ1cHRpb24uCisgKgor ICogaGVhcF9ibGtfa25vd25fYXYgaXMgdGhlIHZpc2liaWxpdHkgc3RhdHVzIG9mIHRoZSBoZWFw IHBhZ2UgY29sbGVjdGVkCisgKiB3aGlsZSBmaW5kaW5nIHRoZSBuZXh0IHVuc2tpcHBhYmxlIGJs b2NrIGluIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpLgorICovCitzdGF0aWMgYm9vbAoraWRl bnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbGF0aW9uLAorCQkJCQkJCSAg IEJsb2NrTnVtYmVyIGhlYXBfYmxrLAorCQkJCQkJCSAgIEJ1ZmZlciBoZWFwX2J1ZmZlciwgUGFn ZSBoZWFwX3BhZ2UsCisJCQkJCQkJICAgYm9vbCBoZWFwX2Jsa19rbm93bl9hdiwKKwkJCQkJCQkg ICBpbnQ2NCBubHBkZWFkX2l0ZW1zLAorCQkJCQkJCSAgIEJ1ZmZlciB2bWJ1ZmZlcikKK3sKKwkv KgorCSAqIEFzIG9mIFBvc3RncmVTUUwgOS4yLCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0IHNob3Vs ZCBuZXZlciBiZSBzZXQgaWYgdGhlCisJICogcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIuICBIb3dl dmVyLCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJpdCBnb3QKKwkgKiBjbGVhcmVkIGFmdGVyIGhl YXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIHdhcyBjYWxsZWQsIHNvIHdlIG11c3QgcmVjaGVjawor CSAqIHdpdGggYnVmZmVyIGxvY2sgYmVmb3JlIGNvbmNsdWRpbmcgdGhhdCB0aGUgVk0gaXMgY29y cnVwdC4KKwkgKi8KKwlpZiAoaGVhcF9ibGtfa25vd25fYXYgJiYgIVBhZ2VJc0FsbFZpc2libGUo aGVhcF9wYWdlKSAmJgorCQl2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocmVsYXRpb24sIGhlYXBf YmxrLCAmdm1idWZmZXIpICE9IDApCisJeworCQllbG9nKFdBUk5JTkcsICJwYWdlIGlzIG5vdCBt YXJrZWQgYWxsLXZpc2libGUgYnV0IHZpc2liaWxpdHkgbWFwIGJpdCBpcyBzZXQgaW4gcmVsYXRp b24gXCIlc1wiIHBhZ2UgJXUiLAorCQkJIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbGF0aW9u KSwgaGVhcF9ibGspOworCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbGF0aW9uLCBoZWFwX2Jsaywg dm1idWZmZXIsCisJCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKTsKKwkJcmV0dXJuIHRy dWU7CisJfQorCisJLyoKKwkgKiBJdCdzIHBvc3NpYmxlIGZvciB0aGUgdmFsdWUgcmV0dXJuZWQg YnkKKwkgKiBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlvbklkKCkgdG8gbW92ZSBiYWNr d2FyZHMsIHNvIGl0J3Mgbm90CisJICogd3JvbmcgZm9yIHVzIHRvIHNlZSB0dXBsZXMgdGhhdCBh cHBlYXIgdG8gbm90IGJlIHZpc2libGUgdG8gZXZlcnlvbmUKKwkgKiB5ZXQsIHdoaWxlIFBEX0FM TF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LiBUaGUgcmVhbCBzYWZlIHhtaW4gdmFsdWUKKwkgKiBu ZXZlciBtb3ZlcyBiYWNrd2FyZHMsIGJ1dCBHZXRPbGRlc3ROb25SZW1vdmFibGVUcmFuc2FjdGlv bklkKCkgaXMKKwkgKiBjb25zZXJ2YXRpdmUgYW5kIHNvbWV0aW1lcyByZXR1cm5zIGEgdmFsdWUg dGhhdCdzIHVubmVjZXNzYXJpbHkgc21hbGwsCisJICogc28gaWYgd2Ugc2VlIHRoYXQgY29udHJh ZGljdGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQgdGhlIHR1cGxlcyB0aGF0IHdlCisJICogdGhpbmsg YXJlIG5vdCB2aXNpYmxlIHRvIGV2ZXJ5b25lIHlldCBhY3R1YWxseSBhcmUsIGFuZCB0aGUKKwkg KiBQRF9BTExfVklTSUJMRSBmbGFnIGlzIGNvcnJlY3QuCisJICoKKwkgKiBUaGVyZSBzaG91bGQg bmV2ZXIgYmUgTFBfREVBRCBpdGVtcyBvbiBhIHBhZ2Ugd2l0aCBQRF9BTExfVklTSUJMRSBzZXQs CisJICogaG93ZXZlci4KKwkgKi8KKwlpZiAobmxwZGVhZF9pdGVtcyA+IDAgJiYgUGFnZUlzQWxs VmlzaWJsZShoZWFwX3BhZ2UpKQorCXsKKwkJZWxvZyhXQVJOSU5HLCAicGFnZSBjb250YWluaW5n IExQX0RFQUQgaXRlbXMgaXMgbWFya2VkIGFzIGFsbC12aXNpYmxlIGluIHJlbGF0aW9uIFwiJXNc IiBwYWdlICV1IiwKKwkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbiksIGhlYXBf YmxrKTsKKwkJUGFnZUNsZWFyQWxsVmlzaWJsZShoZWFwX3BhZ2UpOworCQlNYXJrQnVmZmVyRGly dHkoaGVhcF9idWZmZXIpOworCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbGF0aW9uLCBoZWFwX2Js aywgdm1idWZmZXIsCisJCQkJCQkJVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKTsKKwkJcmV0dXJu IHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQogCiAvKgogICogUHJ1bmUgYW5kIHJlcGFp ciBmcmFnbWVudGF0aW9uIGFuZCBwb3RlbnRpYWxseSBmcmVlemUgdHVwbGVzIG9uIHRoZQpAQCAt MzE0LDYgKzM4MSwxMCBAQCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBC dWZmZXIgYnVmZmVyKQogICogSEVBUF9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIG5vdCBzZXQsIGJl Y2F1c2UgYXQgdGhlIG1vbWVudCBvbmx5IGNhbGxlcnMKICAqIHRoYXQgYWxzbyBmcmVlemUgbmVl ZCB0aGF0IGluZm9ybWF0aW9uLgogICoKKyAqIGJsa19rbm93bl9hdiBpcyB0aGUgdmlzaWJpbGl0 eSBzdGF0dXMgb2YgdGhlIGhlYXAgYmxvY2sgYXMgb2YgdGhlIGxhc3QgY2FsbAorICogdG8gZmlu ZF9uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrKCkuIHZtYnVmZmVyIGlzIHRoZSBidWZmZXIgdGhhdCBt YXkgYWxyZWFkeQorICogY29udGFpbiB0aGUgcmVxdWlyZWQgYmxvY2sgb2YgdGhlIHZpc2liaWxp dHkgbWFwLgorICoKICAqIHZpc3Rlc3QgaXMgdXNlZCB0byBkaXN0aW5ndWlzaCB3aGV0aGVyIHR1 cGxlcyBhcmUgREVBRCBvciBSRUNFTlRMWV9ERUFECiAgKiAoc2VlIGhlYXBfcHJ1bmVfc2F0aXNm aWVzX3ZhY3V1bSkuCiAgKgpAQCAtMzQ5LDYgKzQyMCw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIpCiAgKi8KIHZvaWQKIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJ ICAgYm9vbCBibGtfa25vd25fYXYsCisJCQkJCQkgICBCdWZmZXIgdm1idWZmZXIsCiAJCQkJCQkg ICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCSAgIGludCBvcHRpb25zLAogCQkJCQkJ ICAgc3RydWN0IFZhY3V1bUN1dG9mZnMgKmN1dG9mZnMsCkBAIC04OTcsNiArOTcwLDE2IEBAIGhl YXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVy LAogCXByZXN1bHQtPmxwZGVhZF9pdGVtcyA9IHByc3RhdGUubHBkZWFkX2l0ZW1zOwogCS8qIHRo ZSBwcmVzdWx0LT5kZWFkb2Zmc2V0cyBhcnJheSB3YXMgYWxyZWFkeSBmaWxsZWQgaW4gKi8KIAor CS8qCisJICogQ2xlYXIgYW55IFZNIGNvcnJ1cHRpb24uIFRoaXMgZG9lcyBub3QgbmVlZCB0byBi ZSBkb25lIGluIGEgY3JpdGljYWwKKwkgKiBzZWN0aW9uLgorCSAqLworCXByZXN1bHQtPnZtX2Nv cnJ1cHRpb24gPSBmYWxzZTsKKwlpZiAob3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9VUERBVEVf Vk0pCisJCXByZXN1bHQtPnZtX2NvcnJ1cHRpb24gPSBpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1 cHRpb24ocmVsYXRpb24sCisJCQkJCQkJCQkJCQkJCQkJYmxvY2tubywgYnVmZmVyLCBwYWdlLAor CQkJCQkJCQkJCQkJCQkJCWJsa19rbm93bl9hdiwKKwkJCQkJCQkJCQkJCQkJCQlwcnN0YXRlLmxw ZGVhZF9pdGVtcywgdm1idWZmZXIpOwogCWlmIChwcnN0YXRlLmZyZWV6ZSkKIAl7CiAJCWlmIChw cmVzdWx0LT5uZnJvemVuID4gMCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRl eCBmNmNkZDllNjgyOC4uMGMxMjFmZGY0ZTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMKQEAgLTQzMSwxMiArNDMxLDYgQEAgc3RhdGljIHZvaWQgZmluZF9uZXh0X3Vuc2tpcHBh YmxlX2Jsb2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgYm9vbCAqc2tpcHNhbGx2aXMpOwogc3RhdGlj IGJvb2wgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBi dWYsCiAJCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGJsa25vLCBQYWdlIHBhZ2UsCiAJCQkJCQkJCSAg IGJvb2wgc2hhcmVsb2NrLCBCdWZmZXIgdm1idWZmZXIpOwotc3RhdGljIGJvb2wgaWRlbnRpZnlf YW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJCSAgIEJs b2NrTnVtYmVyIGhlYXBfYmxrLAotCQkJCQkJCQkJCSAgIEJ1ZmZlciBoZWFwX2J1ZmZlciwgUGFn ZSBoZWFwX3BhZ2UsCi0JCQkJCQkJCQkJICAgYm9vbCBoZWFwX2Jsa19rbm93bl9hdiwKLQkJCQkJ CQkJCQkgICBpbnQ2NCBubHBkZWFkX2l0ZW1zLAotCQkJCQkJCQkJCSAgIEJ1ZmZlciB2bWJ1ZmZl cik7CiBzdGF0aWMgaW50CWxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZl ciBidWYsCiAJCQkJCQkJQmxvY2tOdW1iZXIgYmxrbm8sIFBhZ2UgcGFnZSwKIAkJCQkJCQlCdWZm ZXIgdm1idWZmZXIsIGJvb2wgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLApAQCAtMTkzOSw2 NSArMTkzMyw2IEBAIGxhenlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBC dWZmZXIgYnVmLCBCbG9ja051bWJlciBibGtubywKIAlyZXR1cm4gZmFsc2U7CiB9CiAKLS8qCi0g KiBXaGVuIHVwZGF0aW5nIHRoZSB2aXNpYmlsaXR5IG1hcCBhZnRlciBwaGFzZSBJIGhlYXAgdmFj dXVtaW5nLCB3ZSB0YWtlIHRoZQotICogb3Bwb3J0dW5pdHkgdG8gaWRlbnRpZnkgYW5kIGZpeCBh bnkgVk0gY29ycnVwdGlvbi4KLSAqCi0gKiBoZWFwX2Jsa19rbm93bl9hdiBpcyB0aGUgdmlzaWJp bGl0eSBzdGF0dXMgb2YgdGhlIGhlYXAgcGFnZSBjb2xsZWN0ZWQKLSAqIHdoaWxlIGZpbmRpbmcg dGhlIG5leHQgdW5za2lwcGFibGUgYmxvY2sgaW4gaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCku Ci0gKi8KLXN0YXRpYyBib29sCi1pZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24oUmVsYXRp b24gcmVsYXRpb24sCi0JCQkJCQkJICAgQmxvY2tOdW1iZXIgaGVhcF9ibGssCi0JCQkJCQkJICAg QnVmZmVyIGhlYXBfYnVmZmVyLCBQYWdlIGhlYXBfcGFnZSwKLQkJCQkJCQkgICBib29sIGhlYXBf YmxrX2tub3duX2F2LAotCQkJCQkJCSAgIGludDY0IG5scGRlYWRfaXRlbXMsCi0JCQkJCQkJICAg QnVmZmVyIHZtYnVmZmVyKQotewotCS8qCi0JICogQXMgb2YgUG9zdGdyZVNRTCA5LjIsIHRoZSB2 aXNpYmlsaXR5IG1hcCBiaXQgc2hvdWxkIG5ldmVyIGJlIHNldCBpZiB0aGUKLQkgKiBwYWdlLWxl dmVsIGJpdCBpcyBjbGVhci4gIEhvd2V2ZXIsIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgYml0IGdv dAotCSAqIGNsZWFyZWQgYWZ0ZXIgaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCkgd2FzIGNhbGxl ZCwgc28gd2UgbXVzdCByZWNoZWNrCi0JICogd2l0aCBidWZmZXIgbG9jayBiZWZvcmUgY29uY2x1 ZGluZyB0aGF0IHRoZSBWTSBpcyBjb3JydXB0LgotCSAqLwotCWlmIChoZWFwX2Jsa19rbm93bl9h diAmJiAhUGFnZUlzQWxsVmlzaWJsZShoZWFwX3BhZ2UpICYmCi0JCXZpc2liaWxpdHltYXBfZ2V0 X3N0YXR1cyhyZWxhdGlvbiwgaGVhcF9ibGssICZ2bWJ1ZmZlcikgIT0gMCkKLQl7Ci0JCWVsb2co V0FSTklORywgInBhZ2UgaXMgbm90IG1hcmtlZCBhbGwtdmlzaWJsZSBidXQgdmlzaWJpbGl0eSBt YXAgYml0IGlzIHNldCBpbiByZWxhdGlvbiBcIiVzXCIgcGFnZSAldSIsCi0JCQkgUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pLCBoZWFwX2Jsayk7Ci0JCXZpc2liaWxpdHltYXBfY2xl YXIocmVsYXRpb24sIGhlYXBfYmxrLCB2bWJ1ZmZlciwKLQkJCQkJCQlWSVNJQklMSVRZTUFQX1ZB TElEX0JJVFMpOwotCQlyZXR1cm4gdHJ1ZTsKLQl9Ci0KLQkvKgotCSAqIEl0J3MgcG9zc2libGUg Zm9yIHRoZSB2YWx1ZSByZXR1cm5lZCBieQotCSAqIEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5z YWN0aW9uSWQoKSB0byBtb3ZlIGJhY2t3YXJkcywgc28gaXQncyBub3QKLQkgKiB3cm9uZyBmb3Ig dXMgdG8gc2VlIHR1cGxlcyB0aGF0IGFwcGVhciB0byBub3QgYmUgdmlzaWJsZSB0byBldmVyeW9u ZQotCSAqIHlldCwgd2hpbGUgUERfQUxMX1ZJU0lCTEUgaXMgYWxyZWFkeSBzZXQuIFRoZSByZWFs IHNhZmUgeG1pbiB2YWx1ZQotCSAqIG5ldmVyIG1vdmVzIGJhY2t3YXJkcywgYnV0IEdldE9sZGVz dE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSBpcwotCSAqIGNvbnNlcnZhdGl2ZSBhbmQgc29t ZXRpbWVzIHJldHVybnMgYSB2YWx1ZSB0aGF0J3MgdW5uZWNlc3NhcmlseSBzbWFsbCwKLQkgKiBz byBpZiB3ZSBzZWUgdGhhdCBjb250cmFkaWN0aW9uIGl0IGp1c3QgbWVhbnMgdGhhdCB0aGUgdHVw bGVzIHRoYXQgd2UKLQkgKiB0aGluayBhcmUgbm90IHZpc2libGUgdG8gZXZlcnlvbmUgeWV0IGFj dHVhbGx5IGFyZSwgYW5kIHRoZQotCSAqIFBEX0FMTF9WSVNJQkxFIGZsYWcgaXMgY29ycmVjdC4K LQkgKgotCSAqIFRoZXJlIHNob3VsZCBuZXZlciBiZSBMUF9ERUFEIGl0ZW1zIG9uIGEgcGFnZSB3 aXRoIFBEX0FMTF9WSVNJQkxFIHNldCwKLQkgKiBob3dldmVyLgotCSAqLwotCWlmIChubHBkZWFk X2l0ZW1zID4gMCAmJiBQYWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFnZSkpCi0JewotCQllbG9nKFdB Uk5JTkcsICJwYWdlIGNvbnRhaW5pbmcgTFBfREVBRCBpdGVtcyBpcyBtYXJrZWQgYXMgYWxsLXZp c2libGUgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAotCQkJIFJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbGF0aW9uKSwgaGVhcF9ibGspOwotCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKGhlYXBf cGFnZSk7Ci0JCU1hcmtCdWZmZXJEaXJ0eShoZWFwX2J1ZmZlcik7Ci0JCXZpc2liaWxpdHltYXBf Y2xlYXIocmVsYXRpb24sIGhlYXBfYmxrLCB2bWJ1ZmZlciwKLQkJCQkJCQlWSVNJQklMSVRZTUFQ X1ZBTElEX0JJVFMpOwotCQlyZXR1cm4gdHJ1ZTsKLQl9Ci0KLQlyZXR1cm4gZmFsc2U7Ci19Ci0K IAogLyogcXNvcnQgY29tcGFyYXRvciBmb3Igc29ydGluZyBPZmZzZXROdW1iZXJzICovCiBzdGF0 aWMgaW50CkBAIC0yMDU2LDExICsxOTkxLDE0IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRl ICp2YWNyZWwsCiAJICogdHVwbGVzLiBQcnVuaW5nIHdpbGwgaGF2ZSBkZXRlcm1pbmVkIHdoZXRo ZXIgb3Igbm90IHRoZSBwYWdlIGlzCiAJICogYWxsLXZpc2libGUuCiAJICovCi0JcHJ1bmVfb3B0 aW9ucyA9IEhFQVBfUEFHRV9QUlVORV9GUkVFWkU7CisJcHJ1bmVfb3B0aW9ucyA9IEhFQVBfUEFH RV9QUlVORV9GUkVFWkUgfCBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZNOwogCWlmICh2YWNyZWwt Pm5pbmRleGVzID09IDApCiAJCXBydW5lX29wdGlvbnMgfD0gSEVBUF9QQUdFX1BSVU5FX01BUktf VU5VU0VEX05PVzsKIAotCWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKHJlbCwgYnVmLCB2YWNy ZWwtPnZpc3Rlc3QsIHBydW5lX29wdGlvbnMsCisJaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo cmVsLCBidWYsCisJCQkJCQkJICAgYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtLAorCQkJCQkJ CSAgIHZtYnVmZmVyLAorCQkJCQkJCSAgIHZhY3JlbC0+dmlzdGVzdCwgcHJ1bmVfb3B0aW9ucywK IAkJCQkJCQkgICAmdmFjcmVsLT5jdXRvZmZzLCAmcHJlc3VsdCwgUFJVTkVfVkFDVVVNX1NDQU4s CiAJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtLAogCQkJCQkJCSAgICZ2YWNyZWwtPk5ld1JlbGZy b3plblhpZCwgJnZhY3JlbC0+TmV3UmVsbWluTXhpZCk7CkBAIC0yMTQ1LDEwICsyMDgzLDkgQEAg bGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkvKgogCSAqIEhhbmRsZSBzZXR0 aW5nIHZpc2liaWxpdHkgbWFwIGJpdCBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBWTSAo YXMKIAkgKiBvZiBsYXN0IGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIGNhbGwpLCBhbmQgZnJv bSBhbGxfdmlzaWJsZSBhbmQKLQkgKiBhbGxfZnJvemVuIHZhcmlhYmxlcy4gU3RhcnQgYnkgbG9v a2luZyBmb3IgYW55IFZNIGNvcnJ1cHRpb24uCisJICogYWxsX2Zyb3plbiB2YXJpYWJsZXMuCiAJ ICovCi0JaWYgKGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbih2YWNyZWwtPnJlbCwgYmxr bm8sIGJ1ZiwgcGFnZSwKLQkJCQkJCQkJCSAgIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSwg cHJlc3VsdC5scGRlYWRfaXRlbXMsIHZtYnVmZmVyKSkKKwlpZiAocHJlc3VsdC52bV9jb3JydXB0 aW9uKQogCXsKIAkJLyogRG9uJ3QgdXBkYXRlIHRoZSBWTSBpZiB3ZSBqdXN0IGNsZWFyZWQgY29y cnVwdGlvbiBpbiBpdCAqLwogCX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFw YW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCBlNzEyOWE2NDRhMS4uMGM3 ZWI1ZTQ2ZjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTQyLDYgKzQyLDcgQEAKIC8qICJvcHRpb25z IiBmbGFnIGJpdHMgZm9yIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplICovCiAjZGVmaW5lIEhF QVBfUEFHRV9QUlVORV9NQVJLX1VOVVNFRF9OT1cJCSgxIDw8IDApCiAjZGVmaW5lIEhFQVBfUEFH RV9QUlVORV9GUkVFWkUJCQkJKDEgPDwgMSkKKyNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX1VQREFU RV9WTQkJCSgxIDw8IDIpCiAKIHR5cGVkZWYgc3RydWN0IEJ1bGtJbnNlcnRTdGF0ZURhdGEgKkJ1 bGtJbnNlcnRTdGF0ZTsKIHN0cnVjdCBUdXBsZVRhYmxlU2xvdDsKQEAgLTI0Nyw2ICsyNDgsNyBA QCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVJlc3VsdAogCWJvb2wJCWFsbF92aXNpYmxlOwog CWJvb2wJCWFsbF9mcm96ZW47CiAJVHJhbnNhY3Rpb25JZCB2bV9jb25mbGljdF9ob3Jpem9uOwor CWJvb2wJCXZtX2NvcnJ1cHRpb247CiAKIAkvKgogCSAqIFdoZXRoZXIgb3Igbm90IHRoZSBwYWdl IG1ha2VzIHJlbCB0cnVuY2F0aW9uIHVuc2FmZS4gIFRoaXMgaXMgc2V0IHRvCkBAIC0zODAsNiAr MzgyLDggQEAgZXh0ZXJuIFRyYW5zYWN0aW9uSWQgaGVhcF9pbmRleF9kZWxldGVfdHVwbGVzKFJl bGF0aW9uIHJlbCwKIHN0cnVjdCBHbG9iYWxWaXNTdGF0ZTsKIGV4dGVybiB2b2lkIGhlYXBfcGFn ZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIpOwogZXh0ZXJuIHZv aWQgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIsCisJCQkJCQkJCQkgICBib29sIGJsa19rbm93bl9hdiwKKwkJCQkJCQkJCSAgIEJ1ZmZl ciB2bWJ1ZmZlciwKIAkJCQkJCQkJCSAgIHN0cnVjdCBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwK IAkJCQkJCQkJCSAgIGludCBvcHRpb25zLAogCQkJCQkJCQkJICAgc3RydWN0IFZhY3V1bUN1dG9m ZnMgKmN1dG9mZnMsCi0tIAoyLjQzLjAKCg== --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0008-Keep-all_frozen-updated-too-in-heap_page_prune_an.patch" Content-Disposition: attachment; filename="v6-0008-Keep-all_frozen-updated-too-in-heap_page_prune_an.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu607 RnJvbSBmMTE2OWE5MGQyZGVhNTkzZjRjZTU2NWQ4MzExYTZjZDIzMTU3MjA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDIzIEp1bCAyMDI1IDE2OjAxOjI0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAwOC8yMF0gS2VlcCBhbGxfZnJvemVuIHVwZGF0ZWQgdG9vIGluCiBoZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZQoKV2UgcHJldmlvdXNseSByZWxpZWQgb24gb25seSB1c2luZyBhbGwt dmlzaWJsZSBhbmQgYWxsLWZyb3plbiB0b2dldGhlcgpidXQgaXQncyBiZXN0IHRvIGtlZXAgdGhl bSBib3RoIHVwZGF0ZWQuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg fCAxNSArKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA0OTZiNzBl MzE4Zi4uNmMzNjUzZTc3NmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0x NDMsMTAgKzE0Myw2IEBAIHR5cGVkZWYgc3RydWN0CiAJICogd2hldGhlciB0byBmcmVlemUgdGhl IHBhZ2Ugb3Igbm90LiAgVGhlIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuCiAJICogdmFsdWVz IHJldHVybmVkIHRvIHRoZSBjYWxsZXIgYXJlIGFkanVzdGVkIHRvIGluY2x1ZGUgTFBfREVBRCBp dGVtcyBhdAogCSAqIHRoZSBlbmQuCi0JICoKLQkgKiBhbGxfZnJvemVuIHNob3VsZCBvbmx5IGJl IGNvbnNpZGVyZWQgdmFsaWQgaWYgYWxsX3Zpc2libGUgaXMgYWxzbyBzZXQ7Ci0JICogd2UgZG9u J3QgYm90aGVyIHRvIGNsZWFyIHRoZSBhbGxfZnJvemVuIGZsYWcgZXZlcnkgdGltZSB3ZSBjbGVh ciB0aGUKLQkgKiBhbGxfdmlzaWJsZSBmbGFnLgogCSAqLwogCWJvb2wJCWFsbF92aXNpYmxlOwog CWJvb2wJCWFsbF9mcm96ZW47CkBAIC04MjQsNiArODIwLDcgQEAgaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCSAqLwogCX0KIAor CUFzc2VydCghcHJzdGF0ZS5hbGxfZnJvemVuIHx8IHByc3RhdGUuYWxsX3Zpc2libGUpOwogCS8q IEFueSBlcnJvciB3aGlsZSBhcHBseWluZyB0aGUgY2hhbmdlcyBpcyBjcml0aWNhbCAqLwogCVNU QVJUX0NSSVRfU0VDVElPTigpOwogCkBAIC0xNDY4LDcgKzE0NjUsNyBAQCBoZWFwX3BydW5lX3Jl Y29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwg T2Zmc2V0TnVtYgogCiAJCQkJaWYgKCFIZWFwVHVwbGVIZWFkZXJYbWluQ29tbWl0dGVkKGh0dXAp KQogCQkJCXsKLQkJCQkJcHJzdGF0ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCQkJcHJzdGF0 ZS0+YWxsX3Zpc2libGUgPSBwcnN0YXRlLT5hbGxfZnJvemVuID0gZmFsc2U7CiAJCQkJCWJyZWFr OwogCQkJCX0KIApAQCAtMTQ5MCw3ICsxNDg3LDcgQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFu Z2VkX2xwX25vcm1hbChQYWdlIHBhZ2UsIFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWIK IAkJCQlBc3NlcnQocHJzdGF0ZS0+Y3V0b2Zmcyk7CiAJCQkJaWYgKCFUcmFuc2FjdGlvbklkUHJl Y2VkZXMoeG1pbiwgcHJzdGF0ZS0+Y3V0b2Zmcy0+T2xkZXN0WG1pbikpCiAJCQkJewotCQkJCQlw cnN0YXRlLT5hbGxfdmlzaWJsZSA9IGZhbHNlOworCQkJCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9 IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKIAkJCQkJYnJlYWs7CiAJCQkJfQogCkBAIC0x NTAzLDcgKzE1MDAsNyBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBh Z2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYgogCiAJCWNhc2UgSEVBUFRV UExFX1JFQ0VOVExZX0RFQUQ6CiAJCQlwcnN0YXRlLT5yZWNlbnRseV9kZWFkX3R1cGxlcysrOwot CQkJcHJzdGF0ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCXByc3RhdGUtPmFsbF92aXNpYmxl ID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJCQkvKgogCQkJICogVGhpcyB0dXBs ZSB3aWxsIHNvb24gYmVjb21lIERFQUQuICBVcGRhdGUgdGhlIGhpbnQgZmllbGQgc28KQEAgLTE1 MjIsNyArMTUxOSw3IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoUGFn ZSBwYWdlLCBQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iCiAJCQkgKiBhc3N1bXB0aW9u IGlzIGEgYml0IHNoYWt5LCBidXQgaXQgaXMgd2hhdCBhY3F1aXJlX3NhbXBsZV9yb3dzKCkKIAkJ CSAqIGRvZXMsIHNvIGJlIGNvbnNpc3RlbnQuCiAJCQkgKi8KLQkJCXByc3RhdGUtPmFsbF92aXNp YmxlID0gZmFsc2U7CisJCQlwcnN0YXRlLT5hbGxfdmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96 ZW4gPSBmYWxzZTsKIAogCQkJLyoKIAkJCSAqIElmIHdlIHdhbnRlZCB0byBvcHRpbWl6ZSBmb3Ig YWJvcnRzLCB3ZSBtaWdodCBjb25zaWRlciBtYXJraW5nCkBAIC0xNTQwLDcgKzE1MzcsNyBAQCBo ZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYgogCQkJICogd2lsbCBjb21taXQgYW5kIHVwZGF0ZSB0aGUg Y291bnRlcnMgYWZ0ZXIgd2UgcmVwb3J0LgogCQkJICovCiAJCQlwcnN0YXRlLT5saXZlX3R1cGxl cysrOwotCQkJcHJzdGF0ZS0+YWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCXByc3RhdGUtPmFsbF92 aXNpYmxlID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJCQkvKgogCQkJICogVGhp cyB0dXBsZSBtYXkgc29vbiBiZWNvbWUgREVBRC4gIFVwZGF0ZSB0aGUgaGludCBmaWVsZCBzbyB0 aGF0Ci0tIAoyLjQzLjAKCg== --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0006-Combine-vacuum-phase-I-VM-update-cases.patch" Content-Disposition: attachment; filename="v6-0006-Combine-vacuum-phase-I-VM-update-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu5x5 RnJvbSA4NDE2Njc2ZWFjZmFkMmNmY2UzNDI3OWYzZWRkMWIyODBkMTI5MWIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDE2OjM1OjM2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAwNi8yMF0gQ29tYmluZSB2YWN1dW0gcGhhc2UgSSBWTSB1cGRhdGUgY2FzZXMKCldl IHVwZGF0ZSB0aGUgVk0gYWZ0ZXIgcGhhc2UgSSBvZiB2YWN1dW0gLS0gZWl0aGVyIHNldHRpbmcg Ym90aCB0aGUgVk0KYml0cyB3aGVuIGFsbCBiaXRzIGFyZSBjdXJyZW50bHkgdW5zZXQgb3Igc2V0 dGluZyBqdXN0IHRoZSBmcm96ZW4gYml0CndoZW4gdGhlIGFsbC12aXNpYmxlIGJpdCBpcyBhbHJl YWR5IHNldC4KClRob3NlIHR3byBjYXNlcyBzaGFyZWQgbXVjaCBvZiB0aGUgc2FtZSBjb2RlIC0t IGxlYWRpbmcgdG8gdW5uZWNlc3NhcnkKZHVwbGljYXRpb24uIFRoaXMgY29tbWl0IGNvbWJpbmVz IHRoZW0sIHdoaWNoIGlzIHNpbXBsZXIgYW5kIGVhc2llciB0bwp1bmRlcnN0YW5kLgoKVGhlIGNv bWJpbmVkIGNhc2UgYWxzbyBoYXBwZW5zIHRvIGZpeCBhIGxvbmdzdGFuZGluZyBidWcgd2hlcmUg aWYgd2UgYXJlCm9ubHkgc2V0dGluZyBhbiBhbGwtdmlzaWJsZSBwYWdlIGFsbC1mcm96ZW4gYW5k IGNoZWNrc3Vtcy93YWxfbG9nX2hpbnRzCmFyZSBlbmFibGVkLCB3ZSB3b3VsZCBmYWlsIHRvIHNl dCB0aGUgYnVmZmVyIGRpcnR5IGJlZm9yZSBzZXR0aW5nIHRoZQpwYWdlIExTTiBpbiB2aXNpYmls aXR5bWFwX3NldCgpLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyB8 IDEwMSArKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNl cnRpb25zKCspLCA2OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKaW5kZXggMDRhN2I2YzQxODEuLmY2Y2RkOWU2ODI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jCkBAIC0yMTUyLDExICsyMTUyLDI2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJl bFN0YXRlICp2YWNyZWwsCiAJewogCQkvKiBEb24ndCB1cGRhdGUgdGhlIFZNIGlmIHdlIGp1c3Qg Y2xlYXJlZCBjb3JydXB0aW9uIGluIGl0ICovCiAJfQotCWVsc2UgaWYgKCFhbGxfdmlzaWJsZV9h Y2NvcmRpbmdfdG9fdm0gJiYgcHJlc3VsdC5hbGxfdmlzaWJsZSkKKworCS8qCisJICogSWYgdGhl IHBhZ2UgaXNuJ3QgeWV0IG1hcmtlZCBhbGwtdmlzaWJsZSBpbiB0aGUgVk0gb3IgaXQgaXMgYW5k IG5lZWRzCisJICogdG8gbWUgbWFya2VkIGFsbC1mcm96ZW4sIHVwZGF0ZSB0aGUgVk0gTm90ZSB0 aGF0IGFsbF9mcm96ZW4gaXMgb25seQorCSAqIHZhbGlkIGlmIGFsbF92aXNpYmxlIGlzIHRydWUs IHNvIHdlIG11c3QgY2hlY2sgYm90aCBhbGxfdmlzaWJsZSBhbmQKKwkgKiBhbGxfZnJvemVuLgor CSAqLworCWVsc2UgaWYgKHByZXN1bHQuYWxsX3Zpc2libGUgJiYKKwkJCSAoIWFsbF92aXNpYmxl X2FjY29yZGluZ190b192bSB8fAorCQkJICAocHJlc3VsdC5hbGxfZnJvemVuICYmICFWTV9BTExf RlJPWkVOKHZhY3JlbC0+cmVsLCBibGtubywgJnZtYnVmZmVyKSkpKQogCXsKIAkJdWludDgJCW9s ZF92bWJpdHM7CiAJCXVpbnQ4CQlmbGFncyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CiAK KwkJLyoKKwkJICogSWYgdGhlIHBhZ2UgaXMgYWxsLWZyb3plbiwgd2UgY2FuIHBhc3MgSW52YWxp ZFRyYW5zYWN0aW9uSWQgYXMgb3VyCisJCSAqIGN1dG9mZl94aWQsIHNpbmNlIGEgc25hcHNob3RD b25mbGljdEhvcml6b24gc3VmZmljaWVudCB0byBtYWtlCisJCSAqIGV2ZXJ5dGhpbmcgc2FmZSBm b3IgUkVETyB3YXMgbG9nZ2VkIHdoZW4gdGhlIHBhZ2UncyB0dXBsZXMgd2VyZQorCQkgKiBmcm96 ZW4uCisJCSAqLwogCQlpZiAocHJlc3VsdC5hbGxfZnJvemVuKQogCQl7CiAJCQlBc3NlcnQoIVRy YW5zYWN0aW9uSWRJc1ZhbGlkKHByZXN1bHQudm1fY29uZmxpY3RfaG9yaXpvbikpOwpAQCAtMjE2 OSwyMSArMjE4NCwyOSBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkg KiBjaGVja3N1bXMgYXJlIG5vdCBlbmFibGVkKS4gIFJlZ2FyZGxlc3MsIHNldCBib3RoIGJpdHMg c28gdGhhdCB3ZQogCQkgKiBnZXQgYmFjayBpbiBzeW5jLgogCQkgKgotCQkgKiBOQjogSWYgdGhl IGhlYXAgcGFnZSBpcyBhbGwtdmlzaWJsZSBidXQgdGhlIFZNIGJpdCBpcyBub3Qgc2V0LCB3ZQot CQkgKiBkb24ndCBuZWVkIHRvIGRpcnR5IHRoZSBoZWFwIHBhZ2UuICBIb3dldmVyLCBpZiBjaGVj a3N1bXMgYXJlCi0JCSAqIGVuYWJsZWQsIHdlIGRvIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhl IGhlYXAgcGFnZSBpcyBkaXJ0aWVkCi0JCSAqIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHZpc2liaWxp dHltYXBfc2V0KCksIGJlY2F1c2UgaXQgbWF5IGJlIGxvZ2dlZC4KLQkJICogR2l2ZW4gdGhhdCB0 aGlzIHNpdHVhdGlvbiBzaG91bGQgb25seSBoYXBwZW4gaW4gcmFyZSBjYXNlcyBhZnRlciBhCi0J CSAqIGNyYXNoLCBpdCBpcyBub3Qgd29ydGggb3B0aW1pemluZy4KKwkJICogSWYgdGhlIGhlYXAg cGFnZSBpcyBhbGwtdmlzaWJsZSBidXQgdGhlIFZNIGJpdCBpcyBub3Qgc2V0LCB3ZSBkb24ndAor CQkgKiBuZWVkIHRvIGRpcnR5IHRoZSBoZWFwIHBhZ2UuICBIb3dldmVyLCBpZiBjaGVja3N1bXMg YXJlIGVuYWJsZWQsIHdlCisJCSAqIGRvIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGhlYXAg cGFnZSBpcyBkaXJ0aWVkIGJlZm9yZSBwYXNzaW5nCisJCSAqIGl0IHRvIHZpc2liaWxpdHltYXBf c2V0KCksIGJlY2F1c2UgaXQgbWF5IGJlIGxvZ2dlZC4KIAkJICovCi0JCVBhZ2VTZXRBbGxWaXNp YmxlKHBhZ2UpOwotCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKKwkJaWYgKCFQYWdlSXNBbGxWaXNp YmxlKHBhZ2UpIHx8IFhMb2dIaW50Qml0SXNOZWVkZWQoKSkKKwkJeworCQkJUGFnZVNldEFsbFZp c2libGUocGFnZSk7CisJCQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKKwkJfQorCiAJCW9sZF92bWJp dHMgPSB2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sIGJ1ZiwKIAkJCQkJCQkJ CSAgIEludmFsaWRYTG9nUmVjUHRyLAogCQkJCQkJCQkJICAgdm1idWZmZXIsIHByZXN1bHQudm1f Y29uZmxpY3RfaG9yaXpvbiwKIAkJCQkJCQkJCSAgIGZsYWdzKTsKIAogCQkvKgorCQkgKiBFdmVu IGlmIHdlIGFyZSBvbmx5IHNldHRpbmcgdGhlIGFsbC1mcm96ZW4gYml0LCB0aGVyZSBpcyBhIHNt YWxsCisJCSAqIGNoYW5jZSB0aGF0IHRoZSBWTSB3YXMgbW9kaWZpZWQgc29tZXRpbWUgYmV0d2Vl biBzZXR0aW5nCisJCSAqIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192bSBhbmQgY2hlY2tpbmcg dGhlIHZpc2liaWxpdHkgZHVyaW5nCisJCSAqIHBydW5pbmcuIENoZWNrIHRoZSByZXR1cm4gdmFs dWUgb2Ygb2xkX3ZtYml0cyB0byBlbnN1cmUgdGhlCisJCSAqIHZpc2liaWxpdHkgbWFwIGNvdW50 ZXJzIHVzZWQgZm9yIGxvZ2dpbmcgYXJlIGFjY3VyYXRlLgorCQkgKgogCQkgKiBJZiB0aGUgcGFn ZSB3YXNuJ3QgYWxyZWFkeSBzZXQgYWxsLXZpc2libGUgYW5kL29yIGFsbC1mcm96ZW4gaW4gdGhl CiAJCSAqIFZNLCBjb3VudCBpdCBhcyBuZXdseSBzZXQgZm9yIGxvZ2dpbmcuCiAJCSAqLwpAQCAt MjIwNCw2NiArMjIyNyw2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJ CX0KIAl9CiAKLQkvKgotCSAqIElmIHRoZSBhbGwtdmlzaWJsZSBwYWdlIGlzIGFsbC1mcm96ZW4g YnV0IG5vdCBtYXJrZWQgYXMgc3VjaCB5ZXQsIG1hcmsKLQkgKiBpdCBhcyBhbGwtZnJvemVuLiAg Tm90ZSB0aGF0IGFsbF9mcm96ZW4gaXMgb25seSB2YWxpZCBpZiBhbGxfdmlzaWJsZSBpcwotCSAq IHRydWUsIHNvIHdlIG11c3QgY2hlY2sgYm90aCBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbi4K LQkgKi8KLQllbHNlIGlmIChhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0gJiYgcHJlc3VsdC5h bGxfdmlzaWJsZSAmJgotCQkJIHByZXN1bHQuYWxsX2Zyb3plbiAmJiAhVk1fQUxMX0ZST1pFTih2 YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcikpCi0JewotCQl1aW50OAkJb2xkX3ZtYml0czsK LQotCQkvKgotCQkgKiBBdm9pZCByZWx5aW5nIG9uIGFsbF92aXNpYmxlX2FjY29yZGluZ190b192 bSBhcyBhIHByb3h5IGZvciB0aGUKLQkJICogcGFnZS1sZXZlbCBQRF9BTExfVklTSUJMRSBiaXQg YmVpbmcgc2V0LCBzaW5jZSBpdCBtaWdodCBoYXZlIGJlY29tZQotCQkgKiBzdGFsZSAtLSBldmVu IHdoZW4gYWxsX3Zpc2libGUgaXMgc2V0Ci0JCSAqLwotCQlpZiAoIVBhZ2VJc0FsbFZpc2libGUo cGFnZSkpCi0JCXsKLQkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwotCQkJTWFya0J1ZmZlckRp cnR5KGJ1Zik7Ci0JCX0KLQotCQkvKgotCQkgKiBTZXQgdGhlIHBhZ2UgYWxsLWZyb3plbiAoYW5k IGFsbC12aXNpYmxlKSBpbiB0aGUgVk0uCi0JCSAqCi0JCSAqIFdlIGNhbiBwYXNzIEludmFsaWRU cmFuc2FjdGlvbklkIGFzIG91ciBjdXRvZmZfeGlkLCBzaW5jZSBhCi0JCSAqIHNuYXBzaG90Q29u ZmxpY3RIb3Jpem9uIHN1ZmZpY2llbnQgdG8gbWFrZSBldmVyeXRoaW5nIHNhZmUgZm9yIFJFRE8K LQkJICogd2FzIGxvZ2dlZCB3aGVuIHRoZSBwYWdlJ3MgdHVwbGVzIHdlcmUgZnJvemVuLgotCQkg Ki8KLQkJQXNzZXJ0KCFUcmFuc2FjdGlvbklkSXNWYWxpZChwcmVzdWx0LnZtX2NvbmZsaWN0X2hv cml6b24pKTsKLQkJb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfc2V0KHZhY3JlbC0+cmVsLCBi bGtubywgYnVmLAotCQkJCQkJCQkJICAgSW52YWxpZFhMb2dSZWNQdHIsCi0JCQkJCQkJCQkgICB2 bWJ1ZmZlciwgSW52YWxpZFRyYW5zYWN0aW9uSWQsCi0JCQkJCQkJCQkgICBWSVNJQklMSVRZTUFQ X0FMTF9WSVNJQkxFIHwKLQkJCQkJCQkJCSAgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7Ci0K LQkJLyoKLQkJICogVGhlIHBhZ2Ugd2FzIGxpa2VseSBhbHJlYWR5IHNldCBhbGwtdmlzaWJsZSBp biB0aGUgVk0uIEhvd2V2ZXIsCi0JCSAqIHRoZXJlIGlzIGEgc21hbGwgY2hhbmNlIHRoYXQgaXQg d2FzIG1vZGlmaWVkIHNvbWV0aW1lIGJldHdlZW4KLQkJICogc2V0dGluZyBhbGxfdmlzaWJsZV9h Y2NvcmRpbmdfdG9fdm0gYW5kIGNoZWNraW5nIHRoZSB2aXNpYmlsaXR5Ci0JCSAqIGR1cmluZyBw cnVuaW5nLiBDaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIG9sZF92bWJpdHMgYW55d2F5IHRvCi0J CSAqIGVuc3VyZSB0aGUgdmlzaWJpbGl0eSBtYXAgY291bnRlcnMgdXNlZCBmb3IgbG9nZ2luZyBh cmUgYWNjdXJhdGUuCi0JCSAqLwotCQlpZiAoKG9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FM TF9WSVNJQkxFKSA9PSAwKQotCQl7Ci0JCQl2YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzKys7 Ci0JCQl2YWNyZWwtPnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcysrOwotCQkJKnZtX3BhZ2Vf ZnJvemVuID0gdHJ1ZTsKLQkJfQotCi0JCS8qCi0JCSAqIFdlIGFscmVhZHkgY2hlY2tlZCB0aGF0 IHRoZSBwYWdlIHdhcyBub3Qgc2V0IGFsbC1mcm96ZW4gaW4gdGhlIFZNCi0JCSAqIGFib3ZlLCBz byB3ZSBkb24ndCBuZWVkIHRvIHRlc3QgdGhlIHZhbHVlIG9mIG9sZF92bWJpdHMuCi0JCSAqLwot CQllbHNlCi0JCXsKLQkJCXZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlcysrOwotCQkJKnZtX3Bh Z2VfZnJvemVuID0gdHJ1ZTsKLQkJfQotCX0KLQogCXJldHVybiBwcmVzdWx0Lm5kZWxldGVkOwog fQogCi0tIAoyLjQzLjAKCg== --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0009-Update-VM-in-pruneheap.c.patch" Content-Disposition: attachment; filename="v6-0009-Update-VM-in-pruneheap.c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu618 RnJvbSA5NTJmOWFhMTI5MjQ4NjhkOTg5NTFjYTYyMWQwOWU3YWVmYzIzYjgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMTE6MDQ6MTQgLTA0MDAKU3ViamVjdDogW1BB VENIIHY2IDA5LzIwXSBVcGRhdGUgVk0gaW4gcHJ1bmVoZWFwLmMKCkFzIGEgc3RlcCB0b3dhcmQg dXBkYXRpbmcgdGhlIFZNIGluIHRoZSBzYW1lIGNyaXRpY2FsIHNlY3Rpb24gYW5kIFdBTApyZWNv cmQgYXMgcHJ1bmluZyBhbmQgZnJlZXppbmcgKGR1cmluZyBwaGFzZSBJIG9mIHZhY3V1bWluZyks IGZpcnN0IG1vdmUKdGhlIFZNIHVwZGF0ZSAoc3RpbGwgaW4gaXRzIG93biBjcml0aWNhbCBzZWN0 aW9uIGFuZCBXQUwgcmVjb3JkKSBpbnRvCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkuIFRo aXMgbWFrZXMgcmV2aWV3IGVhc2llci4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVu ZWhlYXAuYyAgfCA5OSArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCA5OSArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAgICAgfCAxNSArKystLQogMyBmaWxl cyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgMTA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggNmMzNjUzZTc3NmMuLjA1MjI3Y2UwMzM5IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMzYwLDcgKzM2MCw4IEBAIGlkZW50aWZ5 X2FuZF9maXhfdm1fY29ycnVwdGlvbihSZWxhdGlvbiByZWxhdGlvbiwKIAogLyoKICAqIFBydW5l IGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXplIHR1cGxlcyBv biB0aGUKLSAqIHNwZWNpZmllZCBwYWdlLgorICogc3BlY2lmaWVkIHBhZ2UuIElmIHRoZSBwYWdl J3MgdmlzaWJpbGl0eSBzdGF0dXMgaGFzIGNoYW5nZWQsIHVwZGF0ZSBpdCBpbgorICogdGhlIFZN LgogICoKICAqIENhbGxlciBtdXN0IGhhdmUgcGluIGFuZCBidWZmZXIgY2xlYW51cCBsb2NrIG9u IHRoZSBwYWdlLiAgTm90ZSB0aGF0IHdlCiAgKiBkb24ndCB1cGRhdGUgdGhlIEZTTSBpbmZvcm1h dGlvbiBmb3IgcGFnZSBvbiBjYWxsZXIncyBiZWhhbGYuICBDYWxsZXIgbWlnaHQKQEAgLTQzNiw2 ICs0MzcsOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlciwKIAlib29sCQlkb19mcmVlemU7CiAJYm9vbAkJZG9fcHJ1bmU7CiAJYm9v bAkJZG9faGludDsKKwl1aW50OAkJdm1mbGFncyA9IDA7CisJdWludDgJCW9sZF92bWJpdHMgPSAw OwogCWJvb2wJCWhpbnRfYml0X2ZwaTsKIAlpbnQ2NAkJZnBpX2JlZm9yZSA9IHBnV2FsVXNhZ2Uu d2FsX2ZwaTsKIApAQCAtOTM2LDcgKzkzOSw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXpl KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqCiAJICogTm93IHRoYXQgZnJl ZXppbmcgaGFzIGJlZW4gZmluYWxpemVkLCB1bnNldCBhbGxfdmlzaWJsZSBpZiB0aGVyZSBhcmUK IAkgKiBhbnkgTFBfREVBRCBpdGVtcyBvbiB0aGUgcGFnZS4gIEl0IG5lZWRzIHRvIHJlZmxlY3Qg dGhlIHByZXNlbnQgc3RhdGUKLQkgKiBvZiB0aGUgcGFnZSwgYXMgZXhwZWN0ZWQgYnkgb3VyIGNh bGxlci4KKwkgKiBvZiB0aGUgcGFnZSwgYXMgZXhwZWN0ZWQgZm9yIHVwZGF0aW5nIHRoZSB2aXNp YmlsaXR5IG1hcC4KIAkgKi8KIAlpZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSAmJiBwcnN0YXRlLmxw ZGVhZF9pdGVtcyA9PSAwKQogCXsKQEAgLTk1MiwzMSArOTU1LDkxIEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCXByZXN1bHQt Pmhhc3R1cCA9IHByc3RhdGUuaGFzdHVwOwogCiAJLyoKLQkgKiBGb3IgY2FsbGVycyBwbGFubmlu ZyB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwLCB0aGUgY29uZmxpY3QgaG9yaXpvbgotCSAq IGZvciB0aGF0IHJlY29yZCBtdXN0IGJlIHRoZSBuZXdlc3QgeG1pbiBvbiB0aGUgcGFnZS4gIEhv d2V2ZXIsIGlmIHRoZQotCSAqIHBhZ2UgaXMgY29tcGxldGVseSBmcm96ZW4sIHRoZXJlIGNhbiBi ZSBubyBjb25mbGljdCBhbmQgdGhlCi0JICogdm1fY29uZmxpY3RfaG9yaXpvbiBzaG91bGQgcmVt YWluIEludmFsaWRUcmFuc2FjdGlvbklkLiAgVGhpcyBpbmNsdWRlcwotCSAqIHRoZSBjYXNlIHRo YXQgd2UganVzdCBmcm96ZSBhbGwgdGhlIHR1cGxlczsgdGhlIHBydW5lLWZyZWV6ZSByZWNvcmQK LQkgKiBpbmNsdWRlZCB0aGUgY29uZmxpY3QgWElEIGFscmVhZHkgc28gdGhlIGNhbGxlciBkb2Vz bid0IG5lZWQgaXQuCisJICogSWYgdXBkYXRpbmcgdGhlIHZpc2liaWxpdHkgbWFwLCB0aGUgY29u ZmxpY3QgaG9yaXpvbiBmb3IgdGhhdCByZWNvcmQKKwkgKiBtdXN0IGJlIHRoZSBuZXdlc3QgeG1p biBvbiB0aGUgcGFnZS4gIEhvd2V2ZXIsIGlmIHRoZSBwYWdlIGlzCisJICogY29tcGxldGVseSBm cm96ZW4sIHRoZXJlIGNhbiBiZSBubyBjb25mbGljdCBhbmQgdGhlIHZtX2NvbmZsaWN0X2hvcml6 b24KKwkgKiBzaG91bGQgcmVtYWluIEludmFsaWRUcmFuc2FjdGlvbklkLiAgVGhpcyBpbmNsdWRl cyB0aGUgY2FzZSB0aGF0IHdlCisJICoganVzdCBmcm96ZSBhbGwgdGhlIHR1cGxlczsgdGhlIHBy dW5lLWZyZWV6ZSByZWNvcmQgaW5jbHVkZWQgdGhlCisJICogY29uZmxpY3QgWElEIGFscmVhZHkg c28gdGhlIFZNIHVwZGF0ZSByZWNvcmQgZG9lc24ndCBuZWVkIGl0LgogCSAqLwogCWlmIChwcmVz dWx0LT5hbGxfZnJvemVuKQogCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gSW52YWxp ZFRyYW5zYWN0aW9uSWQ7CiAJZWxzZQogCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0g cHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7CiAKLQlwcmVzdWx0LT5scGRlYWRfaXRlbXMg PSBwcnN0YXRlLmxwZGVhZF9pdGVtczsKLQkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJy YXkgd2FzIGFscmVhZHkgZmlsbGVkIGluICovCi0KIAkvKgotCSAqIENsZWFyIGFueSBWTSBjb3Jy dXB0aW9uLiBUaGlzIGRvZXMgbm90IG5lZWQgdG8gYmUgZG9uZSBpbiBhIGNyaXRpY2FsCi0JICog c2VjdGlvbi4KKwkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQgYmFzZWQgb24g aW5mb3JtYXRpb24gZnJvbSB0aGUgVk0gKGFzCisJICogb2YgbGFzdCBoZWFwX3ZhY19zY2FuX25l eHRfYmxvY2soKSBjYWxsKSwgYW5kIGZyb20gYWxsX3Zpc2libGUgYW5kCisJICogYWxsX2Zyb3pl biB2YXJpYWJsZXMuCiAJICovCi0JcHJlc3VsdC0+dm1fY29ycnVwdGlvbiA9IGZhbHNlOwogCWlm IChvcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSkKLQkJcHJlc3VsdC0+dm1fY29y cnVwdGlvbiA9IGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihyZWxhdGlvbiwKLQkJCQkJ CQkJCQkJCQkJCQlibG9ja25vLCBidWZmZXIsIHBhZ2UsCi0JCQkJCQkJCQkJCQkJCQkJYmxrX2tu b3duX2F2LAotCQkJCQkJCQkJCQkJCQkJCXByc3RhdGUubHBkZWFkX2l0ZW1zLCB2bWJ1ZmZlcik7 CisJeworCQlpZiAoaWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKHJlbGF0aW9uLAorCQkJ CQkJCQkJCSAgIGJsb2Nrbm8sIGJ1ZmZlciwgcGFnZSwKKwkJCQkJCQkJCQkgICBibGtfa25vd25f YXYsCisJCQkJCQkJCQkJICAgcHJzdGF0ZS5scGRlYWRfaXRlbXMsIHZtYnVmZmVyKSkKKwkJewor CQkJLyogSWYgd2UgZml4IGNvcnJ1cHRpb24sIGRvbid0IHVwZGF0ZSB0aGUgVk0gZnVydGhlciAq LworCQl9CisKKwkJLyoKKwkJICogSWYgdGhlIHBhZ2UgaXNuJ3QgeWV0IG1hcmtlZCBhbGwtdmlz aWJsZSBpbiB0aGUgVk0gb3IgaXQgaXMgYW5kCisJCSAqIG5lZWRzIHRvIG1lIG1hcmtlZCBhbGwt ZnJvemVuLCB1cGRhdGUgdGhlIFZNIE5vdGUgdGhhdCBhbGxfZnJvemVuCisJCSAqIGlzIG9ubHkg dmFsaWQgaWYgYWxsX3Zpc2libGUgaXMgdHJ1ZSwgc28gd2UgbXVzdCBjaGVjayBib3RoCisJCSAq IGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuLgorCQkgKi8KKwkJZWxzZSBpZiAocHJlc3VsdC0+ YWxsX3Zpc2libGUgJiYKKwkJCQkgKCFibGtfa25vd25fYXYgfHwKKwkJCQkgIChwcmVzdWx0LT5h bGxfZnJvemVuICYmICFWTV9BTExfRlJPWkVOKHJlbGF0aW9uLCBibG9ja25vLCAmdm1idWZmZXIp KSkpCisJCXsKKwkJCUFzc2VydChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKTsKKwkJCXZtZmxh Z3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOworCisJCQkvKgorCQkJICogSWYgdGhlIHBh Z2UgaXMgYWxsLWZyb3plbiwgd2UgY2FuIHBhc3MgSW52YWxpZFRyYW5zYWN0aW9uSWQgYXMKKwkJ CSAqIG91ciBjdXRvZmZfeGlkLCBzaW5jZSBhIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uIHN1ZmZp Y2llbnQgdG8KKwkJCSAqIG1ha2UgZXZlcnl0aGluZyBzYWZlIGZvciBSRURPIHdhcyBsb2dnZWQg d2hlbiB0aGUgcGFnZSdzIHR1cGxlcworCQkJICogd2VyZSBmcm96ZW4uCisJCQkgKi8KKwkJCWlm IChwcmVzdWx0LT5hbGxfZnJvemVuKQorCQkJeworCQkJCUFzc2VydCghVHJhbnNhY3Rpb25JZElz VmFsaWQocHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbikpOworCQkJCXZtZmxhZ3MgfD0gVklT SUJJTElUWU1BUF9BTExfRlJPWkVOOworCQkJfQorCisJCQkvKgorCQkJICogSXQncyBwb3NzaWJs ZSBmb3IgdGhlIFZNIGJpdCB0byBiZSBjbGVhciBhbmQgdGhlIHBhZ2UtbGV2ZWwgYml0CisJCQkg KiB0byBiZSBzZXQgaWYgY2hlY2tzdW1zIGFyZSBub3QgZW5hYmxlZC4KKwkJCSAqCisJCQkgKiBB bmQgZXZlbiBpZiB3ZSBhcmUganVzdCBwbGFubmluZyB0byB1cGRhdGUgdGhlIGZyb3plbiBiaXQg aW4KKwkJCSAqIHRoZSBWTSwgd2Ugc2hvdWxkbid0IHJlbHkgb24gYWxsX3Zpc2libGVfYWNjb3Jk aW5nX3RvX3ZtIGFzIGEKKwkJCSAqIHByb3h5IGZvciB0aGUgcGFnZS1sZXZlbCBQRF9BTExfVklT SUJMRSBiaXQgYmVpbmcgc2V0LCBzaW5jZSBpdAorCQkJICogbWlnaHQgaGF2ZSBiZWNvbWUgc3Rh bGUuCisJCQkgKgorCQkJICogSWYgdGhlIGhlYXAgcGFnZSBpcyBhbGwtdmlzaWJsZSBidXQgdGhl IFZNIGJpdCBpcyBub3Qgc2V0LCB3ZQorCQkJICogZG9uJ3QgbmVlZCB0byBkaXJ0eSB0aGUgaGVh cCBwYWdlLiAgSG93ZXZlciwgaWYgY2hlY2tzdW1zIGFyZQorCQkJICogZW5hYmxlZCwgd2UgZG8g bmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgaGVhcCBwYWdlIGlzIGRpcnRpZWQKKwkJCSAqIGJl Zm9yZSBwYXNzaW5nIGl0IHRvIHZpc2liaWxpdHltYXBfc2V0KCksIGJlY2F1c2UgaXQgbWF5IGJl CisJCQkgKiBsb2dnZWQuCisJCQkgKi8KKwkJCWlmICghUGFnZUlzQWxsVmlzaWJsZShwYWdlKSB8 fCBYTG9nSGludEJpdElzTmVlZGVkKCkpCisJCQl7CisJCQkJUGFnZVNldEFsbFZpc2libGUocGFn ZSk7CisJCQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CisJCQl9CisKKwkJCW9sZF92bWJpdHMg PSB2aXNpYmlsaXR5bWFwX3NldChyZWxhdGlvbiwgYmxvY2tubywgYnVmZmVyLCBJbnZhbGlkWExv Z1JlY1B0ciwKKwkJCQkJCQkJCQkgICB2bWJ1ZmZlciwgcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9y aXpvbiwKKwkJCQkJCQkJCQkgICB2bWZsYWdzKTsKKwkJfQorCX0KKworCXByZXN1bHQtPmxwZGVh ZF9pdGVtcyA9IHByc3RhdGUubHBkZWFkX2l0ZW1zOworCS8qIHRoZSBwcmVzdWx0LT5kZWFkb2Zm c2V0cyBhcnJheSB3YXMgYWxyZWFkeSBmaWxsZWQgaW4gKi8KKworCXByZXN1bHQtPm9sZF92bWJp dHMgPSBvbGRfdm1iaXRzOworCXByZXN1bHQtPm5ld192bWJpdHMgPSB2bWZsYWdzOworCiAJaWYg KHByc3RhdGUuZnJlZXplKQogCXsKIAkJaWYgKHByZXN1bHQtPm5mcm96ZW4gPiAwKQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDBjMTIxZmRmNGU2Li5jNDllODFiYzVkZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMTkzMyw3ICsxOTMzLDYgQEAg bGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJs b2NrTnVtYmVyIGJsa25vLAogCXJldHVybiBmYWxzZTsKIH0KIAotCiAvKiBxc29ydCBjb21wYXJh dG9yIGZvciBzb3J0aW5nIE9mZnNldE51bWJlcnMgKi8KIHN0YXRpYyBpbnQKIGNtcE9mZnNldE51 bWJlcnMoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKQEAgLTE5NDksNyArMTk0OCw4IEBA IGNtcE9mZnNldE51bWJlcnMoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKICAqIHZtYnVm ZmVyIGlzIHRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgVk0gYmxvY2sgd2l0aCB2aXNpYmlsaXR5 IGluZm9ybWF0aW9uCiAgKiBmb3IgdGhlIGhlYXAgYmxvY2ssIGJsa25vLiBhbGxfdmlzaWJsZV9h Y2NvcmRpbmdfdG9fdm0gaXMgdGhlIHNhdmVkCiAgKiB2aXNpYmlsaXR5IHN0YXR1cyBvZiB0aGUg aGVhcCBibG9jayBsb29rZWQgdXAgZWFybGllciBieSB0aGUgY2FsbGVyLiBXZQotICogd29uJ3Qg cmVseSBlbnRpcmVseSBvbiB0aGlzIHN0YXR1cywgYXMgaXQgbWF5IGJlIG91dCBvZiBkYXRlLgor ICogd29uJ3QgcmVseSBlbnRpcmVseSBvbiB0aGlzIHN0YXR1cywgYXMgaXQgbWF5IGJlIG91dCBv ZiBkYXRlLiBUaGVzZSB3aWxsIGJlCisgKiBwYXNzZWQgb24gdG8gaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUoKSB0byB1c2Ugd2hpbGUgc2V0dGluZyB0aGUgVk0uCiAgKgogICogKmhhc19scGRl YWRfaXRlbXMgaXMgc2V0IHRvIHRydWUgb3IgZmFsc2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIsIHVw b24gcmV0dXJuCiAgKiBmcm9tIHRoaXMgZnVuY3Rpb24sIGFueSBMUF9ERUFEIGl0ZW1zIGFyZSBz dGlsbCBwcmVzZW50IG9uIHRoZSBwYWdlLgpAQCAtMTk3OCw2ICsxOTc4LDcgQEAgbGF6eV9zY2Fu X3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAogCS8qCiAJICogUHJ1bmUgYWxsIEhPVC11cGRh dGUgY2hhaW5zIGFuZCBwb3RlbnRpYWxseSBmcmVlemUgdHVwbGVzIG9uIHRoaXMgcGFnZS4KKwkg KiBUaGVuLCBpZiB0aGUgcGFnZSdzIHZpc2liaWxpdHkgc3RhdHVzIGhhcyBjaGFuZ2VkLCB1cGRh dGUgdGhlIFZNLgogCSAqCiAJICogSWYgdGhlIHJlbGF0aW9uIGhhcyBubyBpbmRleGVzLCB3ZSBj YW4gaW1tZWRpYXRlbHkgbWFyayB3b3VsZC1iZSBkZWFkCiAJICogaXRlbXMgTFBfVU5VU0VELgpA QCAtMTk4NiwxMCArMTk4Nyw2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWws CiAJICogcHJlc3VsdC5uZGVsZXRlZC4gIEl0IHNob3VsZCBub3QgYmUgY29uZnVzZWQgd2l0aCBw cmVzdWx0LmxwZGVhZF9pdGVtczsKIAkgKiBwcmVzdWx0LmxwZGVhZF9pdGVtcydzIGZpbmFsIHZh bHVlIGNhbiBiZSB0aG91Z2h0IG9mIGFzIHRoZSBudW1iZXIgb2YKIAkgKiB0dXBsZXMgdGhhdCB3 ZXJlIGRlbGV0ZWQgZnJvbSBpbmRleGVzLgotCSAqCi0JICogV2Ugd2lsbCB1cGRhdGUgdGhlIFZN IGFmdGVyIGNvbGxlY3RpbmcgTFBfREVBRCBpdGVtcyBhbmQgZnJlZXppbmcKLQkgKiB0dXBsZXMu IFBydW5pbmcgd2lsbCBoYXZlIGRldGVybWluZWQgd2hldGhlciBvciBub3QgdGhlIHBhZ2UgaXMK LQkgKiBhbGwtdmlzaWJsZS4KIAkgKi8KIAlwcnVuZV9vcHRpb25zID0gSEVBUF9QQUdFX1BSVU5F X0ZSRUVaRSB8IEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVk07CiAJaWYgKHZhY3JlbC0+bmluZGV4 ZXMgPT0gMCkKQEAgLTIwODEsODggKzIwNzgsMjYgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3Rh dGUgKnZhY3JlbCwKIAlBc3NlcnQoIXByZXN1bHQuYWxsX3Zpc2libGUgfHwgISgqaGFzX2xwZGVh ZF9pdGVtcykpOwogCiAJLyoKLQkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQg YmFzZWQgb24gaW5mb3JtYXRpb24gZnJvbSB0aGUgVk0gKGFzCi0JICogb2YgbGFzdCBoZWFwX3Zh Y19zY2FuX25leHRfYmxvY2soKSBjYWxsKSwgYW5kIGZyb20gYWxsX3Zpc2libGUgYW5kCi0JICog YWxsX2Zyb3plbiB2YXJpYWJsZXMuCisJICogRm9yIHRoZSBwdXJwb3NlcyBvZiBsb2dnaW5nLCBj b3VudCB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSB3YXMgbmV3bHkKKwkgKiBzZXQgYWxsLXZpc2li bGUgYW5kLCBwb3RlbnRpYWxseSwgYWxsLWZyb3plbi4KIAkgKi8KLQlpZiAocHJlc3VsdC52bV9j b3JydXB0aW9uKQorCWlmICgocHJlc3VsdC5vbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExf VklTSUJMRSkgPT0gMCAmJgorCQkocHJlc3VsdC5uZXdfdm1iaXRzICYgVklTSUJJTElUWU1BUF9B TExfVklTSUJMRSkgIT0gMCkKIAl7Ci0JCS8qIERvbid0IHVwZGF0ZSB0aGUgVk0gaWYgd2UganVz dCBjbGVhcmVkIGNvcnJ1cHRpb24gaW4gaXQgKi8KLQl9Ci0KLQkvKgotCSAqIElmIHRoZSBwYWdl IGlzbid0IHlldCBtYXJrZWQgYWxsLXZpc2libGUgaW4gdGhlIFZNIG9yIGl0IGlzIGFuZCBuZWVk cwotCSAqIHRvIG1lIG1hcmtlZCBhbGwtZnJvemVuLCB1cGRhdGUgdGhlIFZNIE5vdGUgdGhhdCBh bGxfZnJvemVuIGlzIG9ubHkKLQkgKiB2YWxpZCBpZiBhbGxfdmlzaWJsZSBpcyB0cnVlLCBzbyB3 ZSBtdXN0IGNoZWNrIGJvdGggYWxsX3Zpc2libGUgYW5kCi0JICogYWxsX2Zyb3plbi4KLQkgKi8K LQllbHNlIGlmIChwcmVzdWx0LmFsbF92aXNpYmxlICYmCi0JCQkgKCFhbGxfdmlzaWJsZV9hY2Nv cmRpbmdfdG9fdm0gfHwKLQkJCSAgKHByZXN1bHQuYWxsX2Zyb3plbiAmJiAhVk1fQUxMX0ZST1pF Tih2YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcikpKSkKLQl7Ci0JCXVpbnQ4CQlvbGRfdm1i aXRzOwotCQl1aW50OAkJZmxhZ3MgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwotCi0JCS8q Ci0JCSAqIElmIHRoZSBwYWdlIGlzIGFsbC1mcm96ZW4sIHdlIGNhbiBwYXNzIEludmFsaWRUcmFu c2FjdGlvbklkIGFzIG91cgotCQkgKiBjdXRvZmZfeGlkLCBzaW5jZSBhIHNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uIHN1ZmZpY2llbnQgdG8gbWFrZQotCQkgKiBldmVyeXRoaW5nIHNhZmUgZm9yIFJF RE8gd2FzIGxvZ2dlZCB3aGVuIHRoZSBwYWdlJ3MgdHVwbGVzIHdlcmUKLQkJICogZnJvemVuLgot CQkgKi8KLQkJaWYgKHByZXN1bHQuYWxsX2Zyb3plbikKLQkJewotCQkJQXNzZXJ0KCFUcmFuc2Fj dGlvbklkSXNWYWxpZChwcmVzdWx0LnZtX2NvbmZsaWN0X2hvcml6b24pKTsKLQkJCWZsYWdzIHw9 IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKLQkJfQotCi0JCS8qCi0JCSAqIEl0IHNob3VsZCBu ZXZlciBiZSB0aGUgY2FzZSB0aGF0IHRoZSB2aXNpYmlsaXR5IG1hcCBwYWdlIGlzIHNldAotCQkg KiB3aGlsZSB0aGUgcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIsIGJ1dCB0aGUgcmV2ZXJzZSBpcyBh bGxvd2VkIChpZgotCQkgKiBjaGVja3N1bXMgYXJlIG5vdCBlbmFibGVkKS4gIFJlZ2FyZGxlc3Ms IHNldCBib3RoIGJpdHMgc28gdGhhdCB3ZQotCQkgKiBnZXQgYmFjayBpbiBzeW5jLgotCQkgKgot CQkgKiBJZiB0aGUgaGVhcCBwYWdlIGlzIGFsbC12aXNpYmxlIGJ1dCB0aGUgVk0gYml0IGlzIG5v dCBzZXQsIHdlIGRvbid0Ci0JCSAqIG5lZWQgdG8gZGlydHkgdGhlIGhlYXAgcGFnZS4gIEhvd2V2 ZXIsIGlmIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCwgd2UKLQkJICogZG8gbmVlZCB0byBtYWtlIHN1 cmUgdGhhdCB0aGUgaGVhcCBwYWdlIGlzIGRpcnRpZWQgYmVmb3JlIHBhc3NpbmcKLQkJICogaXQg dG8gdmlzaWJpbGl0eW1hcF9zZXQoKSwgYmVjYXVzZSBpdCBtYXkgYmUgbG9nZ2VkLgotCQkgKi8K LQkJaWYgKCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpIHx8IFhMb2dIaW50Qml0SXNOZWVkZWQoKSkK LQkJewotCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCQlNYXJrQnVmZmVyRGlydHkoYnVm KTsKLQkJfQotCi0JCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwg Ymxrbm8sIGJ1ZiwKLQkJCQkJCQkJCSAgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJCQkJICAg dm1idWZmZXIsIHByZXN1bHQudm1fY29uZmxpY3RfaG9yaXpvbiwKLQkJCQkJCQkJCSAgIGZsYWdz KTsKLQotCQkvKgotCQkgKiBFdmVuIGlmIHdlIGFyZSBvbmx5IHNldHRpbmcgdGhlIGFsbC1mcm96 ZW4gYml0LCB0aGVyZSBpcyBhIHNtYWxsCi0JCSAqIGNoYW5jZSB0aGF0IHRoZSBWTSB3YXMgbW9k aWZpZWQgc29tZXRpbWUgYmV0d2VlbiBzZXR0aW5nCi0JCSAqIGFsbF92aXNpYmxlX2FjY29yZGlu Z190b192bSBhbmQgY2hlY2tpbmcgdGhlIHZpc2liaWxpdHkgZHVyaW5nCi0JCSAqIHBydW5pbmcu IENoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2Ygb2xkX3ZtYml0cyB0byBlbnN1cmUgdGhlCi0JCSAq IHZpc2liaWxpdHkgbWFwIGNvdW50ZXJzIHVzZWQgZm9yIGxvZ2dpbmcgYXJlIGFjY3VyYXRlLgot CQkgKgotCQkgKiBJZiB0aGUgcGFnZSB3YXNuJ3QgYWxyZWFkeSBzZXQgYWxsLXZpc2libGUgYW5k L29yIGFsbC1mcm96ZW4gaW4gdGhlCi0JCSAqIFZNLCBjb3VudCBpdCBhcyBuZXdseSBzZXQgZm9y IGxvZ2dpbmcuCi0JCSAqLwotCQlpZiAoKG9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9W SVNJQkxFKSA9PSAwKQotCQl7Ci0JCQl2YWNyZWwtPnZtX25ld192aXNpYmxlX3BhZ2VzKys7Ci0J CQlpZiAocHJlc3VsdC5hbGxfZnJvemVuKQotCQkJewotCQkJCXZhY3JlbC0+dm1fbmV3X3Zpc2li bGVfZnJvemVuX3BhZ2VzKys7Ci0JCQkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1ZTsKLQkJCX0KLQkJ fQotCQllbHNlIGlmICgob2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikgPT0g MCAmJgotCQkJCSBwcmVzdWx0LmFsbF9mcm96ZW4pCisJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVf cGFnZXMrKzsKKwkJaWYgKChwcmVzdWx0Lm5ld192bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9G Uk9aRU4pICE9IDApCiAJCXsKLQkJCXZhY3JlbC0+dm1fbmV3X2Zyb3plbl9wYWdlcysrOworCQkJ dmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMrKzsKIAkJCSp2bV9wYWdlX2Zyb3pl biA9IHRydWU7CiAJCX0KIAl9CisJZWxzZSBpZiAoKHByZXN1bHQub2xkX3ZtYml0cyAmIFZJU0lC SUxJVFlNQVBfQUxMX0ZST1pFTikgPT0gMCAmJgorCQkJIChwcmVzdWx0Lm5ld192bWJpdHMgJiBW SVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pICE9IDApCisJeworCQlBc3NlcnQoKHByZXN1bHQubmV3 X3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUpICE9IDApOworCQl2YWNyZWwtPnZt X25ld19mcm96ZW5fcGFnZXMrKzsKKwkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1ZTsKKwl9CiAKIAly ZXR1cm4gcHJlc3VsdC5uZGVsZXRlZDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCAwYzdlYjVlNDZm NC4uYjg1NjQ4NDU2ZTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAor KysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTIzNSwyMCArMjM1LDIxIEBAIHR5 cGVkZWYgc3RydWN0IFBydW5lRnJlZXplUmVzdWx0CiAJaW50CQkJcmVjZW50bHlfZGVhZF90dXBs ZXM7CiAKIAkvKgotCSAqIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIGluZGljYXRlIGlmIHRo ZSBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbgotCSAqIGJpdHMgaW4gdGhlIHZpc2liaWxpdHkg bWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSwgYWZ0ZXIgcHJ1bmluZy4KKwkgKiBhbGxfdmlz aWJsZSBhbmQgYWxsX2Zyb3plbiBpbmRpY2F0ZSB0aGUgc3RhdHVzIG9mIHRoZSBwYWdlIGFzIHJl ZmxlY3RlZAorCSAqIGluIHRoZSB2aXNpYmlsaXR5IG1hcCBhZnRlciBwcnVuaW5nLCBmcmVlemlu ZywgYW5kIHNldHRpbmcgYW55IHBhZ2VzCisJICogYWxsLXZpc2libGUgaW4gdGhlIHZpc2liaWxp dHkgbWFwLgogCSAqCi0JICogdm1fY29uZmxpY3RfaG9yaXpvbiBpcyB0aGUgbmV3ZXN0IHhtaW4g b2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuICBUaGUKLQkgKiBjYWxsZXIgY2FuIHVzZSBpdCBh cyB0aGUgY29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZNIGJpdHMuICBJdAotCSAq IGlzIG9ubHkgdmFsaWQgaWYgd2UgZnJvemUgc29tZSB0dXBsZXMgKG5mcm96ZW4gPiAwKSwgYW5k IGFsbF9mcm96ZW4gaXMKLQkgKiB0cnVlLgorCSAqIHZtX2NvbmZsaWN0X2hvcml6b24gaXMgdGhl IG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlCisJICogKG9sZGVyIHRoYW4g T2xkZXN0WG1pbikuICBJdCB3aWxsIG9ubHkgYmUgdmFsaWQgaWYgd2UgZGlkIG5vdCBzZXQgdGhl CisJICogcGFnZSBhbGwtZnJvemVuIGluIHRoZSBWTS4KIAkgKgogCSAqIFRoZXNlIGFyZSBvbmx5 IHNldCBpZiB0aGUgSEVBUF9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHNldC4KIAkgKi8KIAlib29s CQlhbGxfdmlzaWJsZTsKIAlib29sCQlhbGxfZnJvemVuOwogCVRyYW5zYWN0aW9uSWQgdm1fY29u ZmxpY3RfaG9yaXpvbjsKLQlib29sCQl2bV9jb3JydXB0aW9uOworCXVpbnQ4CQlvbGRfdm1iaXRz OworCXVpbnQ4CQluZXdfdm1iaXRzOwogCiAJLyoKIAkgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcGFn ZSBtYWtlcyByZWwgdHJ1bmNhdGlvbiB1bnNhZmUuICBUaGlzIGlzIHNldCB0bwotLSAKMi40My4w Cgo= --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0010-Eliminate-xl_heap_visible-from-vacuum-phase-I-pru.patch" Content-Disposition: attachment; filename="v6-0010-Eliminate-xl_heap_visible-from-vacuum-phase-I-pru.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu629 RnJvbSA2NGYwOTcxMGJhNmM3Mzg4NzAyMTdhYTdmY2QzNGU1MGJkNTJiOTNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjQxOjAwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAxMC8yMF0gRWxpbWluYXRlIHhsX2hlYXBfdmlzaWJsZSBmcm9tIHZhY3V1bSBwaGFz ZSBJCiBwcnVuZS9mcmVlemUKCkluc3RlYWQgb2YgZW1pdHRpbmcgYSBzZXBhcmF0ZSBXQUwgcmVj b3JkIGZvciBldmVyeSBibG9jayByZW5kZXJlZAphbGwtdmlzaWJsZS9mcm96ZW4gYnkgdmFjdXVt J3MgcGhhc2UgSSwgaW5jbHVkZSB0aGUgY2hhbmdlcyB0byB0aGUgVk0gaW4KdGhlIHhsX2hlYXBf cHJ1bmUgcmVjb3JkIGFscmVhZHkgZW1pdHRlZC4KClRoaXMgaXMgb25seSBlbmFibGVkIGZvciB2 YWN1dW0ncyBwcnVuZS9mcmVlemUgd29yaywgbm90IGZvciBvbi1hY2Nlc3MKcHJ1bmluZy4KLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgfCA0NTQgKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAg MzAgLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAgICB8ICAxNSArLQogMyBm aWxlcyBjaGFuZ2VkLCAyNzggaW5zZXJ0aW9ucygrKSwgMjIxIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggMDUyMjdjZTAzMzkuLmNmOWU1MjE1ZDZiIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtNDQsNiArNDQsMTMgQEAgdHlwZWRl ZiBzdHJ1Y3QKIAlib29sCQltYXJrX3VudXNlZF9ub3c7CiAJLyogd2hldGhlciB0byBhdHRlbXB0 IGZyZWV6aW5nIHR1cGxlcyAqLwogCWJvb2wJCWZyZWV6ZTsKKworCS8qCisJICogV2hldGhlciBv ciBub3QgdG8gY29uc2lkZXIgdXBkYXRpbmcgdGhlIFZNLiBUaGVyZSBpcyBzb21lIGJvb2trZWVw aW5nCisJICogdGhhdCBtdXN0IGJlIG1haW50YWluZWQgaWYgd2Ugd291bGQgbGlrZSB0byB1cGRh dGUgdGhlIFZNLgorCSAqLworCWJvb2wJCWNvbnNpZGVyX3VwZGF0ZV92bTsKKwogCXN0cnVjdCBW YWN1dW1DdXRvZmZzICpjdXRvZmZzOwogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMDgsOCArMTE1LDkgQEAgdHlwZWRlZiBz dHJ1Y3QKIAkgKgogCSAqIFRoZXNlIGZpZWxkcyBhcmUgbm90IHVzZWQgYnkgcHJ1bmluZyBpdHNl bGYgZm9yIHRoZSBtb3N0IHBhcnQsIGJ1dCBhcmUKIAkgKiB1c2VkIHRvIGNvbGxlY3QgaW5mb3Jt YXRpb24gYWJvdXQgd2hhdCB3YXMgcHJ1bmVkIGFuZCB3aGF0IHN0YXRlIHRoZQotCSAqIHBhZ2Ug aXMgaW4gYWZ0ZXIgcHJ1bmluZywgZm9yIHRoZSBiZW5lZml0IG9mIHRoZSBjYWxsZXIuICBUaGV5 IGFyZQotCSAqIGNvcGllZCB0byB0aGUgY2FsbGVyJ3MgUHJ1bmVGcmVlemVSZXN1bHQgYXQgdGhl IGVuZC4KKwkgKiBwYWdlIGlzIGluIGFmdGVyIHBydW5pbmcgdG8gdXNlIHdoZW4gdXBkYXRpbmcg dGhlIHZpc2liaWxpdHkgbWFwIGFuZAorCSAqIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgY2FsbGVy LiAgVGhleSBhcmUgY29waWVkIHRvIHRoZSBjYWxsZXIncworCSAqIFBydW5lRnJlZXplUmVzdWx0 IGF0IHRoZSBlbmQuCiAJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogCSAqLwogCkBAIC0xMzgsMTEgKzE0NiwxMCBAQCB0eXBlZGVmIHN0 cnVjdAogCSAqIGJpdHMuICBJdCBpcyBvbmx5IHZhbGlkIGlmIHdlIGZyb3plIHNvbWUgdHVwbGVz LCBhbmQgYWxsX2Zyb3plbiBpcwogCSAqIHRydWUuCiAJICoKLQkgKiBOT1RFOiBhbGxfdmlzaWJs ZSBhbmQgYWxsX2Zyb3plbiBkb24ndCBpbmNsdWRlIExQX0RFQUQgaXRlbXMuICBUaGF0J3MKLQkg KiBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLCB0byB1c2UgdGhl bSB0byBkZWNpZGUKLQkgKiB3aGV0aGVyIHRvIGZyZWV6ZSB0aGUgcGFnZSBvciBub3QuICBUaGUg YWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4KLQkgKiB2YWx1ZXMgcmV0dXJuZWQgdG8gdGhlIGNh bGxlciBhcmUgYWRqdXN0ZWQgdG8gaW5jbHVkZSBMUF9ERUFEIGl0ZW1zIGF0Ci0JICogdGhlIGVu ZC4KKwkgKiBOT1RFOiBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBkb24ndCBpbmNsdWRlIExQ X0RFQUQgaXRlbXMgdW50aWwKKwkgKiBkaXJlY3RseSBiZWZvcmUgdXBkYXRpbmcgdGhlIFZNLiBX ZSBpZ25vcmUgTFBfREVBRCBpdGVtcyB3aGVuIGRlY2lkaW5nCisJICogd2hldGhlciBvciBub3Qg dG8gb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplIGFuZCB3aGVuIGRldGVybWluaW5nIHRoZQorCSAq IHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24gcmVxdWlyZWQgd2hlbiBmcmVlemluZyB0dXBsZXMu CiAJICovCiAJYm9vbAkJYWxsX3Zpc2libGU7CiAJYm9vbAkJYWxsX2Zyb3plbjsKQEAgLTM3MSwx MiArMzc4LDE1IEBAIGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihSZWxhdGlvbiByZWxh dGlvbiwKICAqIElmIHRoZSBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0LCB3ZSB3aWxs IGFsc28gZnJlZXplIHR1cGxlcyBpZiBpdCdzCiAgKiByZXF1aXJlZCBpbiBvcmRlciB0byBhZHZh bmNlIHJlbGZyb3plbnhpZCAvIHJlbG1pbm14aWQsIG9yIGlmIGl0J3MKICAqIGNvbnNpZGVyZWQg YWR2YW50YWdlb3VzIGZvciBvdmVyYWxsIHN5c3RlbSBwZXJmb3JtYW5jZSB0byBkbyBzbyBub3cu ICBUaGUKLSAqICdjdXRvZmZzJywgJ3ByZXN1bHQnLCAnbmV3X3JlbGZyb3plbl94aWQnIGFuZCAn bmV3X3JlbG1pbl9teGlkJyBhcmd1bWVudHMKLSAqIGFyZSByZXF1aXJlZCB3aGVuIGZyZWV6aW5n LiAgV2hlbiBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0LCB3ZSBhbHNvCi0gKiBzZXQg cHJlc3VsdC0+YWxsX3Zpc2libGUgYW5kIHByZXN1bHQtPmFsbF9mcm96ZW4gb24gZXhpdCwgdG8g aW5kaWNhdGUgaWYKLSAqIHRoZSBWTSBiaXRzIGNhbiBiZSBzZXQuICBUaGV5IGFyZSBhbHdheXMg c2V0IHRvIGZhbHNlIHdoZW4gdGhlCi0gKiBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgbm90 IHNldCwgYmVjYXVzZSBhdCB0aGUgbW9tZW50IG9ubHkgY2FsbGVycwotICogdGhhdCBhbHNvIGZy ZWV6ZSBuZWVkIHRoYXQgaW5mb3JtYXRpb24uCisgKiAnY3V0b2ZmcycsICduZXdfcmVsZnJvemVu X3hpZCcgYW5kICduZXdfcmVsbWluX214aWQnIGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQKKyAqIHdo ZW4gZnJlZXppbmcuCisgKgorICogSWYgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSBpcyBzZXQg YW5kIHRoZSB2aXNpYmlsaXR5IHN0YXR1cyBvZiB0aGUgcGFnZQorICogaGFzIGNoYW5nZWQsIHdl IHdpbGwgdXBkYXRlIHRoZSBWTSBhdCB0aGUgc2FtZSB0aW1lIGFzIHBydW5pbmcgYW5kIGZyZWV6 aW5nCisgKiB0aGUgaGVhcCBwYWdlLiBXZSB3aWxsIGFsc28gdXBkYXRlIHByZXN1bHQtPm9sZF92 bWJpdHMgYW5kCisgKiBwcmVzdWx0LT5uZXdfdm1iaXRzIHdpdGggdGhlIHN0YXRlIG9mIHRoZSBW TSBiZWZvcmUgYW5kIGFmdGVyIHVwZGF0aW5nIGl0CisgKiBmb3IgdGhlIGNhbGxlciB0byB1c2Ug aW4gYm9va2tlZXBpbmcuIE5vdGUgdGhhdCBuZXcgYW5kIG9sZF92bWJpdHMgd2lsbCBiZQorICog MCBpZiBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZNIGlzIG5vdCBzZXQuCiAgKgogICogYmxrX2tu b3duX2F2IGlzIHRoZSB2aXNpYmlsaXR5IHN0YXR1cyBvZiB0aGUgaGVhcCBibG9jayBhcyBvZiB0 aGUgbGFzdCBjYWxsCiAgKiB0byBmaW5kX25leHRfdW5za2lwcGFibGVfYmxvY2soKS4gdm1idWZm ZXIgaXMgdGhlIGJ1ZmZlciB0aGF0IG1heSBhbHJlYWR5CkBAIC0zOTIsNiArNDAyLDggQEAgaWRl bnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbGF0aW9uLAogICogICBGUkVF WkUgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMsIGFuZCB3aWxsIHJl dHVybgogICogICAnYWxsX3Zpc2libGUnLCAnYWxsX2Zyb3plbicgZmxhZ3MgdG8gdGhlIGNhbGxl ci4KICAqCisgKiAgIFVQREFURV9WTSBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIHNldCB0aGUgcGFn ZSdzIHN0YXR1cyBpbiB0aGUgVk0uCisgKgogICogY3V0b2ZmcyBjb250YWlucyB0aGUgZnJlZXpl IGN1dG9mZnMsIGVzdGFibGlzaGVkIGJ5IFZBQ1VVTSBhdCB0aGUgYmVnaW5uaW5nCiAgKiBvZiB2 YWN1dW1pbmcgdGhlIHJlbGF0aW9uLiAgUmVxdWlyZWQgaWYgSEVBUF9QUlVORV9GUkVFWkUgb3B0 aW9uIGlzIHNldC4KICAqIGN1dG9mZnMtPk9sZGVzdFhtaW4gaXMgYWxzbyB1c2VkIHRvIGRldGVy bWluZSBpZiBkZWFkIHR1cGxlcyBhcmUKQEAgLTQzNiwxOCArNDQ4LDI0IEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCUhlYXBU dXBsZURhdGEgdHVwOwogCWJvb2wJCWRvX2ZyZWV6ZTsKIAlib29sCQlkb19wcnVuZTsKLQlib29s CQlkb19oaW50OworCWJvb2wJCWRvX2hpbnRfZnVsbF9vcl9wcnVuYWJsZTsKKwlib29sCQlkb19z ZXRfdm07CiAJdWludDgJCXZtZmxhZ3MgPSAwOwogCXVpbnQ4CQlvbGRfdm1iaXRzID0gMDsKIAli b29sCQloaW50X2JpdF9mcGk7CiAJaW50NjQJCWZwaV9iZWZvcmUgPSBwZ1dhbFVzYWdlLndhbF9m cGk7CisJYm9vbAkJYWxsX2Zyb3plbl9leGNlcHRfbHBfZGVhZCA9IGZhbHNlOworCWJvb2wJCXNl dF9wZF9hbGxfdmlzaWJsZSA9IGZhbHNlOwogCiAJLyogQ29weSBwYXJhbWV0ZXJzIHRvIHByc3Rh dGUgKi8KIAlwcnN0YXRlLnZpc3Rlc3QgPSB2aXN0ZXN0OwogCXByc3RhdGUubWFya191bnVzZWRf bm93ID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfTUFSS19VTlVTRURfTk9XKSAhPSAwOwog CXByc3RhdGUuZnJlZXplID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFKSAhPSAw OworCXByc3RhdGUuY29uc2lkZXJfdXBkYXRlX3ZtID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJV TkVfVVBEQVRFX1ZNKSAhPSAwOwogCXByc3RhdGUuY3V0b2ZmcyA9IGN1dG9mZnM7CiAKKwlBc3Nl cnQoIXByc3RhdGUuY29uc2lkZXJfdXBkYXRlX3ZtIHx8IHZtYnVmZmVyKTsKKwogCS8qCiAJICog T3VyIHN0cmF0ZWd5IGlzIHRvIHNjYW4gdGhlIHBhZ2UgYW5kIG1ha2UgbGlzdHMgb2YgaXRlbXMg dG8gY2hhbmdlLAogCSAqIHRoZW4gYXBwbHkgdGhlIGNoYW5nZXMgd2l0aGluIGEgY3JpdGljYWwg c2VjdGlvbi4gIFRoaXMga2VlcHMgYXMgbXVjaApAQCAtNDkyLDUwICs1MTAsNTcgQEAgaGVhcF9w YWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJ cHJzdGF0ZS5kZWFkb2Zmc2V0cyA9IHByZXN1bHQtPmRlYWRvZmZzZXRzOwogCiAJLyoKLQkgKiBD YWxsZXIgbWF5IHVwZGF0ZSB0aGUgVk0gYWZ0ZXIgd2UncmUgZG9uZS4gIFdlIGNhbiBrZWVwIHRy YWNrIG9mCi0JICogd2hldGhlciB0aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNpYmxlIGFuZCBhbGwt ZnJvemVuIGFmdGVyIHBydW5pbmcgYW5kCi0JICogZnJlZXppbmcgdG8gaGVscCB0aGUgY2FsbGVy IHRvIGRvIHRoYXQuCisJICogS2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSB3 aWxsIGJlIGFsbC12aXNpYmxlIGFuZAorCSAqIGFsbC1mcm96ZW4gZm9yIHVzZSBpbiBvcHBvcnR1 bmlzdGljIGZyZWV6aW5nIGFuZCB0byB1cGRhdGUgdGhlIFZNIGlmCisJICogdGhlIGNhbGxlciBy ZXF1ZXN0cyBpdC4KKwkgKgorCSAqIEN1cnJlbnRseSwgb25seSBWQUNVVU0gYXR0ZW1wdHMgZnJl ZXppbmcgYW5kIHNldHRpbmcgdGhlIFZNIGJpdHMuIEJ1dAorCSAqIG90aGVyIGNhbGxlcnMgY291 bGQgZG8gZWl0aGVyIG9uZS4gVGhlIHZpc2liaWxpdHkgYm9va2tlZXBpbmcgaXMKKwkgKiByZXF1 aXJlZCBmb3Igb3Bwb3J0dW5pc3RpYyBmcmVlemluZyAoaW4gYWRkaXRpb24gdG8gc2V0dGluZyB0 aGUgVk0KKwkgKiBiaXRzKSBiZWNhdXNlIHdlIG9ubHkgY29uc2lkZXIgb3Bwb3J0dW5pc3RpY2Fs bHkgZnJlZXppbmcgdHVwbGVzIGlmIHRoZQorCSAqIHdob2xlIHBhZ2Ugd291bGQgYmVjb21lIGFs bC1mcm96ZW4gb3IgaWYgdGhlIHdob2xlIHBhZ2Ugd2lsbCBiZSBmcm96ZW4KKwkgKiBleGNlcHQg Zm9yIGRlYWQgdHVwbGVzIHRoYXQgd2lsbCBiZSByZW1vdmVkIGJ5IHZhY3V1bS4KIAkgKgotCSAq IEN1cnJlbnRseSwgb25seSBWQUNVVU0gc2V0cyB0aGUgVk0gYml0cy4gIFRvIHNhdmUgdGhlIGVm Zm9ydCwgb25seSBkbwotCSAqIHRoZSBib29ra2VlcGluZyBpZiB0aGUgY2FsbGVyIG5lZWRzIGl0 LiAgQ3VycmVudGx5LCB0aGF0J3MgdGllZCB0bwotCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUs IGJ1dCBpdCBjb3VsZCBiZSBhIHNlcGFyYXRlIGZsYWcgaWYgeW91IHdhbnRlZAotCSAqIHRvIHVw ZGF0ZSB0aGUgVk0gYml0cyB3aXRob3V0IGFsc28gZnJlZXppbmcgb3IgZnJlZXplIHdpdGhvdXQg YWxzbwotCSAqIHNldHRpbmcgdGhlIFZNIGJpdHMuCisJICogSWYgb25seSB1cGRhdGluZyB0aGUg Vk0sIHdlIG11c3QgaW5pdGlhbGl6ZSBhbGxfZnJvemVuIHRvIGZhbHNlLCBhcworCSAqIGhlYXBf cHJlcGFyZV9mcmVlemVfdHVwbGUoKSB3aWxsIG5vdCBiZSBjYWxsZWQgZm9yIGVhY2ggdHVwbGUg b24gdGhlCisJICogcGFnZSBhbmQgd2Ugd2lsbCBub3QgZW5kIHVwIGNvcnJlY3RseSBzZXR0aW5n IGl0IHRvIGZhbHNlIGxhdGVyLgogCSAqCi0JICogSW4gYWRkaXRpb24gdG8gdGVsbGluZyB0aGUg Y2FsbGVyIHdoZXRoZXIgaXQgY2FuIHNldCB0aGUgVk0gYml0LCB3ZQotCSAqIGFsc28gdXNlICdh bGxfdmlzaWJsZScgYW5kICdhbGxfZnJvemVuJyBmb3Igb3VyIG93biBkZWNpc2lvbi1tYWtpbmcu IElmCi0JICogdGhlIHdob2xlIHBhZ2Ugd291bGQgYmVjb21lIGZyb3plbiwgd2UgY29uc2lkZXIg b3Bwb3J0dW5pc3RpY2FsbHkKLQkgKiBmcmVlemluZyB0dXBsZXMuICBXZSB3aWxsIG5vdCBiZSBh YmxlIHRvIGZyZWV6ZSB0aGUgd2hvbGUgcGFnZSBpZiB0aGVyZQotCSAqIGFyZSB0dXBsZXMgcHJl c2VudCB0aGF0IGFyZSBub3QgdmlzaWJsZSB0byBldmVyeW9uZSBvciBpZiB0aGVyZSBhcmUKLQkg KiBkZWFkIHR1cGxlcyB3aGljaCBhcmUgbm90IHlldCByZW1vdmFibGUuICBIb3dldmVyLCBkZWFk IHR1cGxlcyB3aGljaAotCSAqIHdpbGwgYmUgcmVtb3ZlZCBieSB0aGUgZW5kIG9mIHZhY3V1bWlu ZyBzaG91bGQgbm90IHByZWNsdWRlIHVzIGZyb20KLQkgKiBvcHBvcnR1bmlzdGljYWxseSBmcmVl emluZy4gIEJlY2F1c2Ugb2YgdGhhdCwgd2UgZG8gbm90IGNsZWFyCi0JICogYWxsX3Zpc2libGUg d2hlbiB3ZSBzZWUgTFBfREVBRCBpdGVtcy4gIFdlIGZpeCB0aGF0IGF0IHRoZSBlbmQgb2YgdGhl Ci0JICogZnVuY3Rpb24sIHdoZW4gd2UgcmV0dXJuIHRoZSB2YWx1ZSB0byB0aGUgY2FsbGVyLCBz byB0aGF0IHRoZSBjYWxsZXIKLQkgKiBkb2Vzbid0IHNldCB0aGUgVk0gYml0IGluY29ycmVjdGx5 LgorCSAqIERlYWQgdHVwbGVzIHdoaWNoIHdpbGwgYmUgcmVtb3ZlZCBieSB0aGUgZW5kIG9mIHZh Y3V1bWluZyBzaG91bGQgbm90CisJICogcHJlY2x1ZGUgdXMgZnJvbSBvcHBvcnR1bmlzdGljYWxs eSBmcmVlemluZywgc28gd2UgZG8gbm90IGNsZWFyCisJICogYWxsX3Zpc2libGUgd2hlbiB3ZSBz ZWUgTFBfREVBRCBpdGVtcy4gV2UgZml4IHRoYXQgYWZ0ZXIgZGV0ZXJtaW5pbmcKKwkgKiB3aGV0 aGVyIG9yIG5vdCB0byBmcmVlemUgYnV0IGJlZm9yZSBkZWNpZGluZyB3aGV0aGVyIG9yIG5vdCB0 byB1cGRhdGUKKwkgKiB0aGUgVk0gc28gdGhhdCB3ZSBkb24ndCBzZXQgdGhlIFZNIGJpdCBpbmNv cnJlY3RseS4KKwkgKgorCSAqIElmIG5vdCBmcmVlemluZyBvciB1cGRhdGluZyB0aGUgVk0sIHdl IG90aGVyd2lzZSBhdm9pZCB0aGUgZXh0cmEKKwkgKiBib29ra2VlcGluZy4gSW5pdGlhbGl6aW5n IGFsbF92aXNpYmxlIHRvIGZhbHNlIGFsbG93cyBza2lwcGluZyB0aGUgd29yaworCSAqIHRvIHVw ZGF0ZSB0aGVtIGluIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoKS4KIAkg Ki8KIAlpZiAocHJzdGF0ZS5mcmVlemUpCiAJewogCQlwcnN0YXRlLmFsbF92aXNpYmxlID0gdHJ1 ZTsKIAkJcHJzdGF0ZS5hbGxfZnJvemVuID0gdHJ1ZTsKIAl9CisJZWxzZSBpZiAocHJzdGF0ZS5j b25zaWRlcl91cGRhdGVfdm0pCisJeworCQlwcnN0YXRlLmFsbF92aXNpYmxlID0gdHJ1ZTsKKwkJ cHJzdGF0ZS5hbGxfZnJvemVuID0gZmFsc2U7CisJfQogCWVsc2UKIAl7Ci0JCS8qCi0JCSAqIElu aXRpYWxpemluZyB0byBmYWxzZSBhbGxvd3Mgc2tpcHBpbmcgdGhlIHdvcmsgdG8gdXBkYXRlIHRo ZW0gaW4KLQkJICogaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbCgpLgotCQkg Ki8KIAkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IGZhbHNlOwogCQlwcnN0YXRlLmFsbF9mcm96ZW4g PSBmYWxzZTsKIAl9CiAKIAkvKgotCSAqIFRoZSB2aXNpYmlsaXR5IGN1dG9mZiB4aWQgaXMgdGhl IG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZQotCSAqIHBhZ2UuICBJbiB0aGUgY29t bW9uIGNhc2UsIHRoaXMgd2lsbCBiZSBzZXQgYXMgdGhlIGNvbmZsaWN0IGhvcml6b24gdGhlCi0J ICogY2FsbGVyIGNhbiB1c2UgZm9yIHVwZGF0aW5nIHRoZSBWTS4gIElmLCBhdCB0aGUgZW5kIG9m IGZyZWV6aW5nIGFuZAotCSAqIHBydW5pbmcsIHRoZSBwYWdlIGlzIGFsbC1mcm96ZW4sIHRoZXJl IGlzIG5vIHBvc3NpYmlsaXR5IHRoYXQgYW55Ci0JICogcnVubmluZyB0cmFuc2FjdGlvbiBvbiB0 aGUgc3RhbmRieSBkb2VzIG5vdCBzZWUgdHVwbGVzIG9uIHRoZSBwYWdlIGFzCi0JICogYWxsLXZp c2libGUsIHNvIHRoZSBjb25mbGljdCBob3Jpem9uIHJlbWFpbnMgSW52YWxpZFRyYW5zYWN0aW9u SWQuCisJICogVGhlIHZpc2liaWxpdHkgY3V0b2ZmIHhpZCBpcyB0aGUgbmV3ZXN0IHhtaW4gb2Yg bGl2ZSwgY29tbWl0dGVkIHR1cGxlcworCSAqIG9sZGVyIHRoYW4gT2xkZXN0WG1pbiBvbiB0aGUg cGFnZS4gVGhpcyBmaWVsZCBpcyBvbmx5IGtlcHQgdXAtdG8tZGF0ZQorCSAqIGlmIHRoZSBwYWdl IGlzIGFsbC12aXNpYmxlLiBBcyBzb29uIGFzIGEgdHVwbGUgaXMgZW5jb3VudGVyZWQgdGhhdCBp cworCSAqIG5vdCB2aXNpYmxlIHRvIGFsbCwgdGhpcyBmaWVsZCBpcyB1bm1haW50YWluZWQuIEFz IGxvbmcgYXMgaXQgaXMKKwkgKiBtYWludGFpbmVkLCBpdCBjYW4gYmUgdXNlZCB0byBjYWxjdWxh dGUgdGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24uCisJICogVGhpcyBpcyBtb3N0IGxpa2Vs eSB0byBoYXBwZW4gd2hlbiB1cGRhdGluZyB0aGUgVk0gYW5kL29yIGZyZWV6aW5nIGFsbAorCSAq IGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLiBJdCBpcyB1cGRhdGVkIGJlZm9yZSByZXR1cm5pbmcg dG8gdGhlIGNhbGxlcgorCSAqIGJlY2F1c2UgdmFjdXVtIGRvZXMgYXNzZXJ0LWJ1aWxkIG9ubHkg dmFsaWRhdGlvbiBvbiB0aGUgcGFnZSB1c2luZyB0aGlzCisJICogZmllbGQuCiAJICovCiAJcHJz dGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIApAQCAt NzMzLDEwICs3NTgsMTEgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVs YXRpb24sIEJ1ZmZlciBidWZmZXIsCiAKIAkvKgogCSAqIEV2ZW4gaWYgd2UgZG9uJ3QgcHJ1bmUg YW55dGhpbmcsIGlmIHdlIGZvdW5kIGEgbmV3IHZhbHVlIGZvciB0aGUKLQkgKiBwZF9wcnVuZV94 aWQgZmllbGQgb3IgdGhlIHBhZ2Ugd2FzIG1hcmtlZCBmdWxsLCB3ZSB3aWxsIHVwZGF0ZSB0aGUg aGludAotCSAqIGJpdC4KKwkgKiBwZF9wcnVuZV94aWQgZmllbGQgb3IgdGhlIHBhZ2Ugd2FzIG1h cmtlZCBmdWxsLCB3ZSB3aWxsIHVwZGF0ZSB0aG9zZQorCSAqIGhpbnQgYml0cy4KIAkgKi8KLQlk b19oaW50ID0gKChQYWdlSGVhZGVyKSBwYWdlKS0+cGRfcHJ1bmVfeGlkICE9IHByc3RhdGUubmV3 X3BydW5lX3hpZCB8fAorCWRvX2hpbnRfZnVsbF9vcl9wcnVuYWJsZSA9CisJCSgoUGFnZUhlYWRl cikgcGFnZSktPnBkX3BydW5lX3hpZCAhPSBwcnN0YXRlLm5ld19wcnVuZV94aWQgfHwKIAkJUGFn ZUlzRnVsbChwYWdlKTsKIAogCS8qCkBAIC03ODQsNyArODEwLDcgQEAgaGVhcF9wYWdlX3BydW5l X2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkJCQlpZiAo WExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAoYnVmZmVyKSkKIAkJCQkJCQlkb19mcmVlemUgPSB0 cnVlOwogCQkJCQl9Ci0JCQkJCWVsc2UgaWYgKGRvX2hpbnQpCisJCQkJCWVsc2UgaWYgKGRvX2hp bnRfZnVsbF9vcl9wcnVuYWJsZSkKIAkJCQkJewogCQkJCQkJaWYgKFhMb2dIaW50Qml0SXNOZWVk ZWQoKSAmJiBYTG9nQ2hlY2tCdWZmZXJOZWVkc0JhY2t1cChidWZmZXIpKQogCQkJCQkJCWRvX2Zy ZWV6ZSA9IHRydWU7CkBAIC04MjMsMTEgKzg0OSw4NCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2Zy ZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJICovCiAJfQogCisJLyoK KwkgKiBJdCB3YXMgY29udmVuaWVudCB0byBpZ25vcmUgTFBfREVBRCBpdGVtcyBpbiBhbGxfdmlz aWJsZSBlYXJsaWVyIG9uIHRvCisJICogbWFrZSB0aGUgY2hvaWNlIG9mIHdoZXRoZXIgb3Igbm90 IHRvIGZyZWV6ZSB0aGUgcGFnZSB1bmFmZmVjdGVkIGJ5IHRoZQorCSAqIHNob3J0LXRlcm0gcHJl c2VuY2Ugb2YgTFBfREVBRCBpdGVtcy4gIFRoZXNlIExQX0RFQUQgaXRlbXMgd2VyZQorCSAqIGVm ZmVjdGl2ZWx5IGFzc3VtZWQgdG8gYmUgTFBfVU5VU0VEIGl0ZW1zIGluIHRoZSBtYWtpbmcuICBJ dCBkb2Vzbid0CisJICogbWF0dGVyIHdoaWNoIHZhY3V1bSBoZWFwIHBhc3MgKGluaXRpYWwgcGFz cyBvciBmaW5hbCBwYXNzKSBlbmRzIHVwCisJICogc2V0dGluZyB0aGUgcGFnZSBhbGwtZnJvemVu LCBhcyBsb25nIGFzIHRoZSBvbmdvaW5nIFZBQ1VVTSBkb2VzIGl0LgorCSAqCisJICogTm93IHRo YXQgZnJlZXppbmcgaGFzIGJlZW4gZmluYWxpemVkLCB1bnNldCBhbGxfdmlzaWJsZSBpZiB0aGVy ZSBhcmUKKwkgKiBhbnkgTFBfREVBRCBpdGVtcyBvbiB0aGUgcGFnZS4gSXQgbmVlZHMgdG8gcmVm bGVjdCB0aGUgcHJlc2VudCBzdGF0ZSBvZgorCSAqIHRoZSBwYWdlIHdoZW4gdXNpbmcgaXQgdG8g ZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRvIHVwZGF0ZSB0aGUgVk0uCisJICoKKwkgKiBLZWVw IHRyYWNrIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIHdhcyBhbGwtZnJvemVuIGV4Y2VwdCBM UF9ERUFECisJICogaXRlbXMgZm9yIHRoZSBwdXJwb3NlcyBvZiBjYWxjdWxhdGluZyB0aGUgc25h cHNob3QgY29uZmxpY3QgaG9yaXpvbiwKKwkgKiB0aG91Z2guCisJICovCisJYWxsX2Zyb3plbl9l eGNlcHRfbHBfZGVhZCA9IHByc3RhdGUuYWxsX2Zyb3plbjsKKwlpZiAocHJzdGF0ZS5scGRlYWRf aXRlbXMgPiAwKQorCXsKKwkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IGZhbHNlOworCQlwcnN0YXRl LmFsbF9mcm96ZW4gPSBmYWxzZTsKKwl9CisKIAlBc3NlcnQoIXByc3RhdGUuYWxsX2Zyb3plbiB8 fCBwcnN0YXRlLmFsbF92aXNpYmxlKTsKKworCS8qCisJICogSGFuZGxlIHNldHRpbmcgdmlzaWJp bGl0eSBtYXAgYml0IGJhc2VkIG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIChhcworCSAqIG9m IGxhc3QgaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCkgY2FsbCksIGFuZCBmcm9tIGFsbF92aXNp YmxlIGFuZAorCSAqIGFsbF9mcm96ZW4gdmFyaWFibGVzLgorCSAqLworCWlmIChwcnN0YXRlLmNv bnNpZGVyX3VwZGF0ZV92bSkKKwl7CisJCS8qCisJCSAqIENsZWFyIGFueSBWTSBjb3JydXB0aW9u LiBUaGlzIGRvZXMgbm90IG5lZWQgdG8gYmUgaW4gYSBjcml0aWNhbAorCQkgKiBzZWN0aW9uLCBz byB3ZSBkbyBpdCBmaXJzdC4gSWYgUERfQUxMX1ZJU0lCTEUgaXMgaW5jb3JyZWN0bHkgc2V0LAor CQkgKiB3ZSBtYXkgbWFyayB0aGUgaGVhcCBwYWdlIGJ1ZmZlciBkaXJ0eSBoZXJlIGFuZCBjb3Vs ZCBlbmQgdXAgZG9pbmcKKwkJICogc28gYWdhaW4gbGF0ZXIuIFRoaXMgaXMgbm90IGEgY29ycmVj dG5lc3MgaXNzdWUgYW5kIGlzIGluIHRoZSBwYXRoCisJCSAqIG9mIFZNIGNvcnJ1cHRpb24sIHNv IHdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhlIGV4dHJhCisJCSAqIHBlcmZvcm1hbmNl IG92ZXJoZWFkLgorCQkgKi8KKwkJaWYgKGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihy ZWxhdGlvbiwKKwkJCQkJCQkJCQkgICBibG9ja25vLCBidWZmZXIsIHBhZ2UsCisJCQkJCQkJCQkJ ICAgYmxrX2tub3duX2F2LCBwcnN0YXRlLmxwZGVhZF9pdGVtcywgdm1idWZmZXIpKQorCQl7CisJ CQkvKiBJZiB3ZSBmaXggY29ycnVwdGlvbiwgZG9uJ3QgdXBkYXRlIHRoZSBWTSBmdXJ0aGVyICov CisJCX0KKworCQkvKiBEZXRlcm1pbmUgaWYgd2UgYWN0dWFsbHkgbmVlZCB0byBzZXQgdGhlIFZN IGFuZCB3aGljaCBiaXRzIHRvIHNldC4gKi8KKwkJZWxzZSBpZiAocHJzdGF0ZS5hbGxfdmlzaWJs ZSAmJgorCQkJCSAoIWJsa19rbm93bl9hdiB8fAorCQkJCSAgKHByc3RhdGUuYWxsX2Zyb3plbiAm JiAhVk1fQUxMX0ZST1pFTihyZWxhdGlvbiwgYmxvY2tubywgJnZtYnVmZmVyKSkpKQorCQl7CisJ CQl2bWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CisJCQlpZiAocHJzdGF0ZS5h bGxfZnJvemVuKQorCQkJCXZtZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOworCQl9 CisJfQorCisJZG9fc2V0X3ZtID0gdm1mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsK KworCS8qCisJICogRG9uJ3Qgc2V0IFBEX0FMTF9WSVNJQkxFIHVubGVzcyB3ZSBhbHNvIHBsYW4g dG8gc2V0IHRoZSBWTS4gV2hpbGUgaXQgaXMKKwkgKiBjb3JyZWN0IGZvciBhIGhlYXAgcGFnZSB0 byBoYXZlIFBEX0FMTF9WSVNJQkxFIGV2ZW4gaWYgdGhlIFZNIGlzIG5vdAorCSAqIHNldCwgd2Ug c3Ryb25nbHkgcHJlZmVyIHRvIGtlZXAgdGhlbSBpbiBzeW5jLgorCSAqCisJICogUHJpb3IgdG8g UG9zdGdyZXMgMTksIGl0IHdhcyBwb3NzaWJsZSBmb3IgdGhlIHBhZ2UtbGV2ZWwgYml0IHRvIGJl IHNldAorCSAqIGFuZCB0aGUgVk0gYml0IHRvIGJlIGNsZWFyLiBUaGlzIGNvdWxkIGhhcHBlbiBp ZiB3ZSBjcmFzaGVkIGFmdGVyCisJICogc2V0dGluZyBQRF9BTExfVklTSUJMRSBidXQgYmVmb3Jl IHNldHRpbmcgYml0cyBpbiB0aGUgVk0uCisJICovCisJc2V0X3BkX2FsbF92aXNpYmxlID0gZG9f c2V0X3ZtICYmICFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpOworCisJLyogU2F2ZSB0aGVzZSBmb3Ig dGhlIGNhbGxlciBpbiBjYXNlIHdlIGxhdGVyIHplcm8gb3V0IHZtZmxhZ3MgKi8KKwlwcmVzdWx0 LT5uZXdfdm1iaXRzID0gdm1mbGFnczsKKwogCS8qIEFueSBlcnJvciB3aGlsZSBhcHBseWluZyB0 aGUgY2hhbmdlcyBpcyBjcml0aWNhbCAqLwogCVNUQVJUX0NSSVRfU0VDVElPTigpOwogCi0JaWYg KGRvX2hpbnQpCisJaWYgKGRvX2hpbnRfZnVsbF9vcl9wcnVuYWJsZSkKIAl7CiAJCS8qCiAJCSAq IFVwZGF0ZSB0aGUgcGFnZSdzIHBkX3BydW5lX3hpZCBmaWVsZCB0byBlaXRoZXIgemVybywgb3Ig dGhlIGxvd2VzdApAQCAtODQzLDE1ICs5NDIsMTYgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCVBhZ2VDbGVhckZ1bGwocGFn ZSk7CiAKIAkJLyoKLQkJICogSWYgdGhhdCdzIGFsbCB3ZSBoYWQgdG8gZG8gdG8gdGhlIHBhZ2Us IHRoaXMgaXMgYSBub24tV0FMLWxvZ2dlZAotCQkgKiBoaW50LiAgSWYgd2UgYXJlIGdvaW5nIHRv IGZyZWV6ZSBvciBwcnVuZSB0aGUgcGFnZSwgd2Ugd2lsbCBtYXJrCi0JCSAqIHRoZSBidWZmZXIg ZGlydHkgYmVsb3cuCisJCSAqIElmIHdlIGFyZSBfb25seV8gc2V0dGluZyB0aGUgcHJ1bmVfeGlk IG9yIFBEX1BBR0VfRlVMTCBoaW50LCB0aGVuCisJCSAqIHRoaXMgaXMgYSBub24tV0FMLWxvZ2dl ZCBoaW50LiAgSWYgd2UgYXJlIGdvaW5nIHRvIGZyZWV6ZSBvciBwcnVuZQorCQkgKiB0dXBsZXMg b24gdGhlIHBhZ2Ugb3Igc2V0IFBEX0FMTF9WSVNJQkxFLCB3ZSB3aWxsIG1hcmsgdGhlIGJ1ZmZl cgorCQkgKiBkaXJ0eSBhbmQgZW1pdCBXQUwgYmVsb3cuCiAJCSAqLwotCQlpZiAoIWRvX2ZyZWV6 ZSAmJiAhZG9fcHJ1bmUpCisJCWlmICghZG9fcHJ1bmUgJiYgIWRvX2ZyZWV6ZSAmJiAhc2V0X3Bk X2FsbF92aXNpYmxlKQogCQkJTWFya0J1ZmZlckRpcnR5SGludChidWZmZXIsIHRydWUpOwogCX0K IAotCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUpCisJaWYgKGRvX3BydW5lIHx8IGRvX2ZyZWV6 ZSB8fCBkb19zZXRfdm0pCiAJewogCQkvKiBBcHBseSB0aGUgcGxhbm5lZCBpdGVtIGNoYW5nZXMg YW5kIHJlcGFpciBwYWdlIGZyYWdtZW50YXRpb24uICovCiAJCWlmIChkb19wcnVuZSkKQEAgLTg2 NSwxMiArOTY1LDQ3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0 aW9uLCBCdWZmZXIgYnVmZmVyLAogCQlpZiAoZG9fZnJlZXplKQogCQkJaGVhcF9mcmVlemVfcHJl cGFyZWRfdHVwbGVzKGJ1ZmZlciwgcHJzdGF0ZS5mcm96ZW4sIHByc3RhdGUubmZyb3plbik7CiAK LQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CisJCWlmIChzZXRfcGRfYWxsX3Zpc2libGUpCisJ CQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKIAogCQkvKgotCQkgKiBFbWl0IGEgV0FMIFhMT0df SEVBUDJfUFJVTkVfRlJFRVpFIHJlY29yZCBzaG93aW5nIHdoYXQgd2UgZGlkCisJCSAqIFdlIG9u bHkgc2V0IFBEX0FMTF9WSVNJQkxFIGlmIHdlIGFsc28gc2V0IHRoZSBWTSwgYW5kIHNpbmNlIHNl dHRpbmcKKwkJICogdGhlIFZNIHJlcXVpcmVzIGVtaXR0aW5nIFdBTCwgTWFya0J1ZmZlckRpcnR5 SGludCgpIGlzbid0CisJCSAqIGFwcHJvcHJpYXRlIGhlcmUuCiAJCSAqLwotCQlpZiAoUmVsYXRp b25OZWVkc1dBTChyZWxhdGlvbikpCisJCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUgfHwgc2V0 X3BkX2FsbF92aXNpYmxlKQorCQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7CisKKwkJaWYgKGRv X3NldF92bSkKKwkJeworCQkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfRVhDTFVT SVZFKTsKKwkJCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUocmVsYXRpb24s IGJsb2Nrbm8sCisJCQkJCQkJCQkJCQkgIHZtYnVmZmVyLCB2bWZsYWdzKTsKKworCQkJaWYgKG9s ZF92bWJpdHMgPT0gdm1mbGFncykKKwkJCXsKKwkJCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZG RVJfTE9DS19VTkxPQ0spOworCQkJCWRvX3NldF92bSA9IGZhbHNlOworCQkJCS8qIDAgb3V0IHZt ZmxhZ3Mgc28gd2UgZG9uJ3QgZW1pdCBXQUwgdG8gdXBkYXRlIHRoZSBWTSAqLworCQkJCXZtZmxh Z3MgPSAwOworCQkJfQorCQl9CisKKwkJLyoKKwkJICogSXQgc2hvdWxkIG5ldmVyIGJlIHRoZSBj YXNlIHRoYXQgUERfQUxMX1ZJU0lCTEUgaXMgbm90IHNldCBhbmQgdGhlCisJCSAqIFZNIGlzIHNl dC4gT3IsIGlmIGl0IHdlcmUsIHdlIHNob3VsZCBoYXZlIGNhdWdodCBpdCBlYXJsaWVyIHdoZW4K KwkJICogZmluZGluZyBhbmQgZml4aW5nIFZNIGNvcnJ1cHRpb24uIFNvLCBpZiB3ZSBmb3VuZCBv dXQgdGhlIFZNIHdhcworCQkgKiBhbHJlYWR5IHNldCBhYm92ZSwgd2Ugc2hvdWxkIGhhdmUgZm91 bmQgUERfQUxMX1ZJU0lCTEUgc2V0IGVhcmxpZXIuCisJCSAqLworCQlBc3NlcnQoIXNldF9wZF9h bGxfdmlzaWJsZSB8fCBkb19zZXRfdm0pOworCisJCS8qCisJCSAqIEVtaXQgYSBXQUwgWExPR19I RUFQMl9QUlVORV9GUkVFWkUgcmVjb3JkIHNob3dpbmcgd2hhdCB3ZSBkaWQuIElmCisJCSAqIHdl IHdlcmUgb25seSB1cGRhdGluZyB0aGUgVk0gYW5kIGl0IHR1cm5zIG91dCBpdCB3YXMgYWxyZWFk eSBzZXQsCisJCSAqIHdlIHdpbGwgaGF2ZSB1bnNldCBkb19zZXRfdm0gZWFybGllci4gQXMgc3Vj aCwgY2hlY2sgaXQgYWdhaW4KKwkJICogYmVmb3JlIGVtaXR0aW5nIHRoZSByZWNvcmQuCisJCSAq LworCQlpZiAoUmVsYXRpb25OZWVkc1dBTChyZWxhdGlvbikgJiYgKGRvX3NldF92bSB8fCBkb19w cnVuZSB8fCBkb19mcmVlemUpKQogCQl7CiAJCQkvKgogCQkJICogVGhlIHNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uIGZvciB0aGUgd2hvbGUgcmVjb3JkIHNob3VsZCBiZSB0aGUKQEAgLTg4MiwzNSAr MTAxNyw1NiBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlciwKIAkJCSAqIG9uIHRoZSBzdGFuZGJ5IHdpdGggeGlkcyBvbGRlciB0aGFu IHRoZSB5b3VuZ2VzdCB0dXBsZSB0aGlzCiAJCQkgKiByZWNvcmQgd2lsbCBmcmVlemUgd2lsbCBj b25mbGljdC4KIAkJCSAqLwotCQkJVHJhbnNhY3Rpb25JZCBmcnpfY29uZmxpY3RfaG9yaXpvbiA9 IEludmFsaWRUcmFuc2FjdGlvbklkOwotCQkJVHJhbnNhY3Rpb25JZCBjb25mbGljdF94aWQ7CisJ CQlUcmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCiAJ CQkvKgotCQkJICogV2UgY2FuIHVzZSB0aGUgdmlzaWJpbGl0eV9jdXRvZmZfeGlkIGFzIG91ciBj dXRvZmYgZm9yCi0JCQkgKiBjb25mbGljdHMgd2hlbiB0aGUgd2hvbGUgcGFnZSBpcyBlbGlnaWJs ZSB0byBiZWNvbWUgYWxsLWZyb3plbgotCQkJICogaW4gdGhlIFZNIG9uY2Ugd2UncmUgZG9uZSB3 aXRoIGl0LiAgT3RoZXJ3aXNlIHdlIGdlbmVyYXRlIGEKLQkJCSAqIGNvbnNlcnZhdGl2ZSBjdXRv ZmYgYnkgc3RlcHBpbmcgYmFjayBmcm9tIE9sZGVzdFhtaW4uCisJCQkgKiBJZiB3ZSBhcmUgdXBk YXRpbmcgdGhlIFZNLCB0aGUgY29uZmxpY3QgaG9yaXpvbiBpcyBhbG1vc3QKKwkJCSAqIGFsd2F5 cyB0aGUgdmlzaWJpbGl0eSBjdXRvZmYgWElELgorCQkJICoKKwkJCSAqIFNlcGFyYXRlbHksIGlm IHdlIGFyZSBmcmVlemluZyBhbnkgdHVwbGVzLCBhcyBhbiBvcHRpbWl6YXRpb24sCisJCQkgKiB3 ZSBjYW4gdXNlIHRoZSB2aXNpYmlsaXR5X2N1dG9mZl94aWQgYXMgdGhlIGNvbmZsaWN0IGhvcml6 b24gaWYKKwkJCSAqIHRoZSBwYWdlIHdpbGwgYmUgYWxsLWZyb3plbi4gVGhpcyBpcyB0cnVlIGV2 ZW4gaWYgdGhlcmUgYXJlCisJCQkgKiBMUF9ERUFEIGxpbmUgcG9pbnRlcnMgYmVjYXVzZSB3ZSBp Z25vcmVkIHRob3NlIHdoZW4gbWFpbnRhaW5pbmcKKwkJCSAqIHRoZSB2aXNpYmlsaXR5X2N1dG9m Zl94aWQuCiAJCQkgKi8KLQkJCWlmIChkb19mcmVlemUpCisJCQlpZiAoZG9fc2V0X3ZtIHx8IChk b19mcmVlemUgJiYgYWxsX2Zyb3plbl9leGNlcHRfbHBfZGVhZCkpCisJCQkJY29uZmxpY3RfeGlk ID0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisKKwkJCS8qCisJCQkgKiBPdGhlcndp c2UsIGlmIHdlIGFyZSBmcmVlemluZyBidXQgdGhlIHBhZ2Ugd291bGQgbm90IGJlCisJCQkgKiBh bGwtZnJvemVuLCB3ZSBoYXZlIHRvIHVzZSB0aGUgbW9yZSBwZXNzaW1pc3RpYyBob3Jpem9uIG9m CisJCQkgKiBPbGRlc3RYbWluLCB3aGljaCBtYXkgYmUgbmV3ZXIgdGhhbiB0aGUgbmV3ZXN0IHR1 cGxlIHdlIGZyb3plLgorCQkJICogV2UgY3VycmVudGx5IGRvbid0IHRyYWNrIHRoZSBuZXdlc3Qg dHVwbGUgd2UgZnJvemUuCisJCQkgKi8KKwkJCWVsc2UgaWYgKGRvX2ZyZWV6ZSkKIAkJCXsKLQkJ CQlpZiAocHJzdGF0ZS5hbGxfdmlzaWJsZSAmJiBwcnN0YXRlLmFsbF9mcm96ZW4pCi0JCQkJCWZy el9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQ7Ci0JCQkJ ZWxzZQotCQkJCXsKLQkJCQkJLyogQXZvaWRzIGZhbHNlIGNvbmZsaWN0cyB3aGVuIGhvdF9zdGFu ZGJ5X2ZlZWRiYWNrIGluIHVzZSAqLwotCQkJCQlmcnpfY29uZmxpY3RfaG9yaXpvbiA9IHByc3Rh dGUuY3V0b2Zmcy0+T2xkZXN0WG1pbjsKLQkJCQkJVHJhbnNhY3Rpb25JZFJldHJlYXQoZnJ6X2Nv bmZsaWN0X2hvcml6b24pOwotCQkJCX0KKwkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmN1dG9m ZnMtPk9sZGVzdFhtaW47CisJCQkJVHJhbnNhY3Rpb25JZFJldHJlYXQoY29uZmxpY3RfeGlkKTsK IAkJCX0KIAotCQkJaWYgKFRyYW5zYWN0aW9uSWRGb2xsb3dzKGZyel9jb25mbGljdF9ob3Jpem9u LCBwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3ZlZCkpCi0JCQkJY29uZmxpY3RfeGlkID0gZnJ6X2Nv bmZsaWN0X2hvcml6b247Ci0JCQllbHNlCisJCQkvKgorCQkJICogSWYgd2UgYXJlIHJlbW92aW5n IHR1cGxlcyB3aXRoIGEgeW91bmdlciB4bWF4IHRoYW4gb3VyIHNvIGZhcgorCQkJICogY2FsY3Vs YXRlZCBjb25mbGljdF94aWQsIHdlIG11c3QgdXNlIHRoaXMgYXMgb3VyIGhvcml6b24uCisJCQkg Ki8KKwkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyhwcnN0YXRlLmxhdGVzdF94aWRfcmVtb3Zl ZCwgY29uZmxpY3RfeGlkKSkKIAkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmxhdGVzdF94aWRf cmVtb3ZlZDsKIAorCQkJLyoKKwkJCSAqIFdlIGNhbiBvbWl0IHRoZSBzbmFwc2hvdCBjb25mbGlj dCBob3Jpem9uIGlmIHdlIGFyZSBub3QgcHJ1bmluZworCQkJICogb3IgZnJlZXppbmcgYW55IHR1 cGxlcyBhbmQgYXJlIHNldHRpbmcgYW4gYWxyZWFkeSBhbGwtdmlzaWJsZQorCQkJICogcGFnZSBh bGwtZnJvemVuIGluIHRoZSBWTS4gSW4gdGhpcyBjYXNlLCBhbGwgb2YgdGhlIHR1cGxlcyBvbgor CQkJICogdGhlIHBhZ2UgbXVzdCBhbHJlYWR5IGJlIHZpc2libGUgdG8gYWxsIE1WQ0Mgc25hcHNo b3RzIG9uIHRoZQorCQkJICogc3RhbmRieS4KKwkJCSAqLworCQkJaWYgKCFkb19wcnVuZSAmJiAh ZG9fZnJlZXplICYmIGRvX3NldF92bSAmJgorCQkJCWJsa19rbm93bl9hdiAmJiAodm1mbGFncyAm IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikpCisJCQkJY29uZmxpY3RfeGlkID0gSW52YWxpZFRy YW5zYWN0aW9uSWQ7CisKIAkJCWxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUocmVsYXRpb24sIGJ1 ZmZlciwKIAkJCQkJCQkJCSAgZmFsc2UsCi0JCQkJCQkJCQkgIEludmFsaWRCdWZmZXIsIDAsIGZh bHNlLAorCQkJCQkJCQkJICB2bWJ1ZmZlciwKKwkJCQkJCQkJCSAgdm1mbGFncywKKwkJCQkJCQkJ CSAgc2V0X3BkX2FsbF92aXNpYmxlLAogCQkJCQkJCQkJICBjb25mbGljdF94aWQsCiAJCQkJCQkJ CQkgIHRydWUsIHJlYXNvbiwKIAkJCQkJCQkJCSAgcHJzdGF0ZS5mcm96ZW4sIHByc3RhdGUubmZy b3plbiwKQEAgLTkyMiwxMjQgKzEwNzgsNTUgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAKIAlFTkRfQ1JJVF9TRUNUSU9OKCk7 CiAKLQkvKiBDb3B5IGluZm9ybWF0aW9uIGJhY2sgZm9yIGNhbGxlciAqLwotCXByZXN1bHQtPm5k ZWxldGVkID0gcHJzdGF0ZS5uZGVsZXRlZDsKLQlwcmVzdWx0LT5ubmV3bHBkZWFkID0gcHJzdGF0 ZS5uZGVhZDsKLQlwcmVzdWx0LT5uZnJvemVuID0gcHJzdGF0ZS5uZnJvemVuOwotCXByZXN1bHQt PmxpdmVfdHVwbGVzID0gcHJzdGF0ZS5saXZlX3R1cGxlczsKLQlwcmVzdWx0LT5yZWNlbnRseV9k ZWFkX3R1cGxlcyA9IHByc3RhdGUucmVjZW50bHlfZGVhZF90dXBsZXM7Ci0KLQkvKgotCSAqIEl0 IHdhcyBjb252ZW5pZW50IHRvIGlnbm9yZSBMUF9ERUFEIGl0ZW1zIGluIGFsbF92aXNpYmxlIGVh cmxpZXIgb24gdG8KLQkgKiBtYWtlIHRoZSBjaG9pY2Ugb2Ygd2hldGhlciBvciBub3QgdG8gZnJl ZXplIHRoZSBwYWdlIHVuYWZmZWN0ZWQgYnkgdGhlCi0JICogc2hvcnQtdGVybSBwcmVzZW5jZSBv ZiBMUF9ERUFEIGl0ZW1zLiAgVGhlc2UgTFBfREVBRCBpdGVtcyB3ZXJlCi0JICogZWZmZWN0aXZl bHkgYXNzdW1lZCB0byBiZSBMUF9VTlVTRUQgaXRlbXMgaW4gdGhlIG1ha2luZy4gIEl0IGRvZXNu J3QKLQkgKiBtYXR0ZXIgd2hpY2ggdmFjdXVtIGhlYXAgcGFzcyAoaW5pdGlhbCBwYXNzIG9yIGZp bmFsIHBhc3MpIGVuZHMgdXAKLQkgKiBzZXR0aW5nIHRoZSBwYWdlIGFsbC1mcm96ZW4sIGFzIGxv bmcgYXMgdGhlIG9uZ29pbmcgVkFDVVVNIGRvZXMgaXQuCi0JICoKLQkgKiBOb3cgdGhhdCBmcmVl emluZyBoYXMgYmVlbiBmaW5hbGl6ZWQsIHVuc2V0IGFsbF92aXNpYmxlIGlmIHRoZXJlIGFyZQot CSAqIGFueSBMUF9ERUFEIGl0ZW1zIG9uIHRoZSBwYWdlLiAgSXQgbmVlZHMgdG8gcmVmbGVjdCB0 aGUgcHJlc2VudCBzdGF0ZQotCSAqIG9mIHRoZSBwYWdlLCBhcyBleHBlY3RlZCBmb3IgdXBkYXRp bmcgdGhlIHZpc2liaWxpdHkgbWFwLgotCSAqLwotCWlmIChwcnN0YXRlLmFsbF92aXNpYmxlICYm IHByc3RhdGUubHBkZWFkX2l0ZW1zID09IDApCi0JewotCQlwcmVzdWx0LT5hbGxfdmlzaWJsZSA9 IHByc3RhdGUuYWxsX3Zpc2libGU7Ci0JCXByZXN1bHQtPmFsbF9mcm96ZW4gPSBwcnN0YXRlLmFs bF9mcm96ZW47Ci0JfQotCWVsc2UKLQl7Ci0JCXByZXN1bHQtPmFsbF92aXNpYmxlID0gZmFsc2U7 Ci0JCXByZXN1bHQtPmFsbF9mcm96ZW4gPSBmYWxzZTsKLQl9Ci0KLQlwcmVzdWx0LT5oYXN0dXAg PSBwcnN0YXRlLmhhc3R1cDsKKwlpZiAoZG9fc2V0X3ZtKQorCQlMb2NrQnVmZmVyKHZtYnVmZmVy LCBCVUZGRVJfTE9DS19VTkxPQ0spOwogCi0JLyoKLQkgKiBJZiB1cGRhdGluZyB0aGUgdmlzaWJp bGl0eSBtYXAsIHRoZSBjb25mbGljdCBob3Jpem9uIGZvciB0aGF0IHJlY29yZAotCSAqIG11c3Qg YmUgdGhlIG5ld2VzdCB4bWluIG9uIHRoZSBwYWdlLiAgSG93ZXZlciwgaWYgdGhlIHBhZ2UgaXMK LQkgKiBjb21wbGV0ZWx5IGZyb3plbiwgdGhlcmUgY2FuIGJlIG5vIGNvbmZsaWN0IGFuZCB0aGUg dm1fY29uZmxpY3RfaG9yaXpvbgotCSAqIHNob3VsZCByZW1haW4gSW52YWxpZFRyYW5zYWN0aW9u SWQuICBUaGlzIGluY2x1ZGVzIHRoZSBjYXNlIHRoYXQgd2UKLQkgKiBqdXN0IGZyb3plIGFsbCB0 aGUgdHVwbGVzOyB0aGUgcHJ1bmUtZnJlZXplIHJlY29yZCBpbmNsdWRlZCB0aGUKLQkgKiBjb25m bGljdCBYSUQgYWxyZWFkeSBzbyB0aGUgVk0gdXBkYXRlIHJlY29yZCBkb2Vzbid0IG5lZWQgaXQu Ci0JICovCi0JaWYgKHByZXN1bHQtPmFsbF9mcm96ZW4pCi0JCXByZXN1bHQtPnZtX2NvbmZsaWN0 X2hvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKLQllbHNlCi0JCXByZXN1bHQtPnZtX2Nv bmZsaWN0X2hvcml6b24gPSBwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKKwlBc3NlcnQo IXByc3RhdGUuYWxsX3Zpc2libGUgfHwgKHByc3RhdGUubHBkZWFkX2l0ZW1zID09IDApKTsKIAog CS8qCi0JICogSGFuZGxlIHNldHRpbmcgdmlzaWJpbGl0eSBtYXAgYml0IGJhc2VkIG9uIGluZm9y bWF0aW9uIGZyb20gdGhlIFZNIChhcwotCSAqIG9mIGxhc3QgaGVhcF92YWNfc2Nhbl9uZXh0X2Js b2NrKCkgY2FsbCksIGFuZCBmcm9tIGFsbF92aXNpYmxlIGFuZAotCSAqIGFsbF9mcm96ZW4gdmFy aWFibGVzLgorCSAqIFZBQ1VVTSB3aWxsIGNhbGwgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKCkg ZHVyaW5nIHRoZSBzZWNvbmQgcGFzcyBvdmVyCisJICogdGhlIGhlYXAgdG8gZGV0ZXJtaW5lIGFs bF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIGZvciB0aGUgcGFnZSAtLSB0aGlzCisJICogaXMgYSBz cGVjaWFsaXplZCB2ZXJzaW9uIG9mIHRoZSBsb2dpYyBmcm9tIHRoaXMgZnVuY3Rpb24uICBOb3cg dGhhdAorCSAqIHdlJ3ZlIGZpbmlzaGVkIHBydW5pbmcgYW5kIGZyZWV6aW5nLCBtYWtlIHN1cmUg dGhhdCB3ZSdyZSBpbiB0b3RhbAorCSAqIGFncmVlbWVudCB3aXRoIGhlYXBfcGFnZV9pc19hbGxf dmlzaWJsZSgpIHVzaW5nIGFuIGFzc2VydGlvbi4gV2Ugd2lsbAorCSAqIGhhdmUgYWxyZWFkeSBz ZXQgdGhlIHBhZ2UgaW4gdGhlIFZNLCBzbyB0aGlzIGFzc2VydGlvbiB3aWxsIG9ubHkgbGV0CisJ ICogeW91IGtub3cgdGhhdCB5b3UndmUgYWxyZWFkeSBkb25lIHNvbWV0aGluZyB3cm9uZy4KIAkg Ki8KLQlpZiAob3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVk0pCisjaWZkZWYgVVNF X0FTU0VSVF9DSEVDS0lORworCWlmIChwcnN0YXRlLmFsbF92aXNpYmxlKQogCXsKLQkJaWYgKGlk ZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihyZWxhdGlvbiwKLQkJCQkJCQkJCQkgICBibG9j a25vLCBidWZmZXIsIHBhZ2UsCi0JCQkJCQkJCQkJICAgYmxrX2tub3duX2F2LAotCQkJCQkJCQkJ CSAgIHByc3RhdGUubHBkZWFkX2l0ZW1zLCB2bWJ1ZmZlcikpCi0JCXsKLQkJCS8qIElmIHdlIGZp eCBjb3JydXB0aW9uLCBkb24ndCB1cGRhdGUgdGhlIFZNIGZ1cnRoZXIgKi8KLQkJfQorCQlUcmFu c2FjdGlvbklkIGRlYnVnX2N1dG9mZjsKKwkJYm9vbAkJZGVidWdfYWxsX2Zyb3plbjsKIAotCQkv KgotCQkgKiBJZiB0aGUgcGFnZSBpc24ndCB5ZXQgbWFya2VkIGFsbC12aXNpYmxlIGluIHRoZSBW TSBvciBpdCBpcyBhbmQKLQkJICogbmVlZHMgdG8gbWUgbWFya2VkIGFsbC1mcm96ZW4sIHVwZGF0 ZSB0aGUgVk0gTm90ZSB0aGF0IGFsbF9mcm96ZW4KLQkJICogaXMgb25seSB2YWxpZCBpZiBhbGxf dmlzaWJsZSBpcyB0cnVlLCBzbyB3ZSBtdXN0IGNoZWNrIGJvdGgKLQkJICogYWxsX3Zpc2libGUg YW5kIGFsbF9mcm96ZW4uCi0JCSAqLwotCQllbHNlIGlmIChwcmVzdWx0LT5hbGxfdmlzaWJsZSAm JgotCQkJCSAoIWJsa19rbm93bl9hdiB8fAotCQkJCSAgKHByZXN1bHQtPmFsbF9mcm96ZW4gJiYg IVZNX0FMTF9GUk9aRU4ocmVsYXRpb24sIGJsb2Nrbm8sICZ2bWJ1ZmZlcikpKSkKLQkJewotCQkJ QXNzZXJ0KHByc3RhdGUubHBkZWFkX2l0ZW1zID09IDApOwotCQkJdm1mbGFncyA9IFZJU0lCSUxJ VFlNQVBfQUxMX1ZJU0lCTEU7CisJCUFzc2VydChjdXRvZmZzKTsKIAotCQkJLyoKLQkJCSAqIElm IHRoZSBwYWdlIGlzIGFsbC1mcm96ZW4sIHdlIGNhbiBwYXNzIEludmFsaWRUcmFuc2FjdGlvbklk IGFzCi0JCQkgKiBvdXIgY3V0b2ZmX3hpZCwgc2luY2UgYSBzbmFwc2hvdENvbmZsaWN0SG9yaXpv biBzdWZmaWNpZW50IHRvCi0JCQkgKiBtYWtlIGV2ZXJ5dGhpbmcgc2FmZSBmb3IgUkVETyB3YXMg bG9nZ2VkIHdoZW4gdGhlIHBhZ2UncyB0dXBsZXMKLQkJCSAqIHdlcmUgZnJvemVuLgotCQkJICov Ci0JCQlpZiAocHJlc3VsdC0+YWxsX2Zyb3plbikKLQkJCXsKLQkJCQlBc3NlcnQoIVRyYW5zYWN0 aW9uSWRJc1ZhbGlkKHByZXN1bHQtPnZtX2NvbmZsaWN0X2hvcml6b24pKTsKLQkJCQl2bWZsYWdz IHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKLQkJCX0KKwkJQXNzZXJ0KHByc3RhdGUubHBk ZWFkX2l0ZW1zID09IDApOwogCi0JCQkvKgotCQkJICogSXQncyBwb3NzaWJsZSBmb3IgdGhlIFZN IGJpdCB0byBiZSBjbGVhciBhbmQgdGhlIHBhZ2UtbGV2ZWwgYml0Ci0JCQkgKiB0byBiZSBzZXQg aWYgY2hlY2tzdW1zIGFyZSBub3QgZW5hYmxlZC4KLQkJCSAqCi0JCQkgKiBBbmQgZXZlbiBpZiB3 ZSBhcmUganVzdCBwbGFubmluZyB0byB1cGRhdGUgdGhlIGZyb3plbiBiaXQgaW4KLQkJCSAqIHRo ZSBWTSwgd2Ugc2hvdWxkbid0IHJlbHkgb24gYWxsX3Zpc2libGVfYWNjb3JkaW5nX3RvX3ZtIGFz IGEKLQkJCSAqIHByb3h5IGZvciB0aGUgcGFnZS1sZXZlbCBQRF9BTExfVklTSUJMRSBiaXQgYmVp bmcgc2V0LCBzaW5jZSBpdAotCQkJICogbWlnaHQgaGF2ZSBiZWNvbWUgc3RhbGUuCi0JCQkgKgot CQkJICogSWYgdGhlIGhlYXAgcGFnZSBpcyBhbGwtdmlzaWJsZSBidXQgdGhlIFZNIGJpdCBpcyBu b3Qgc2V0LCB3ZQotCQkJICogZG9uJ3QgbmVlZCB0byBkaXJ0eSB0aGUgaGVhcCBwYWdlLiAgSG93 ZXZlciwgaWYgY2hlY2tzdW1zIGFyZQotCQkJICogZW5hYmxlZCwgd2UgZG8gbmVlZCB0byBtYWtl IHN1cmUgdGhhdCB0aGUgaGVhcCBwYWdlIGlzIGRpcnRpZWQKLQkJCSAqIGJlZm9yZSBwYXNzaW5n IGl0IHRvIHZpc2liaWxpdHltYXBfc2V0KCksIGJlY2F1c2UgaXQgbWF5IGJlCi0JCQkgKiBsb2dn ZWQuCi0JCQkgKi8KLQkJCWlmICghUGFnZUlzQWxsVmlzaWJsZShwYWdlKSB8fCBYTG9nSGludEJp dElzTmVlZGVkKCkpCi0JCQl7Ci0JCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCQkJTWFy a0J1ZmZlckRpcnR5KGJ1ZmZlcik7Ci0JCQl9CisJCWlmICghaGVhcF9wYWdlX2lzX2FsbF92aXNp YmxlKHJlbGF0aW9uLCBidWZmZXIsCisJCQkJCQkJCQkgIGN1dG9mZnMtPk9sZGVzdFhtaW4sCisJ CQkJCQkJCQkgICZkZWJ1Z19hbGxfZnJvemVuLAorCQkJCQkJCQkJICAmZGVidWdfY3V0b2ZmLCBv ZmZfbG9jKSkKKwkJCUFzc2VydChmYWxzZSk7CiAKLQkJCW9sZF92bWJpdHMgPSB2aXNpYmlsaXR5 bWFwX3NldChyZWxhdGlvbiwgYmxvY2tubywgYnVmZmVyLCBJbnZhbGlkWExvZ1JlY1B0ciwKLQkJ CQkJCQkJCQkgICB2bWJ1ZmZlciwgcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbiwKLQkJCQkJ CQkJCQkgICB2bWZsYWdzKTsKLQkJfQorCQlBc3NlcnQocHJzdGF0ZS5hbGxfZnJvemVuID09IGRl YnVnX2FsbF9mcm96ZW4pOworCisJCUFzc2VydCghVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVidWdf Y3V0b2ZmKSB8fAorCQkJICAgZGVidWdfY3V0b2ZmID09IHByc3RhdGUudmlzaWJpbGl0eV9jdXRv ZmZfeGlkKTsKIAl9CisjZW5kaWYKIAorCS8qIENvcHkgaW5mb3JtYXRpb24gYmFjayBmb3IgY2Fs bGVyICovCisJcHJlc3VsdC0+bmRlbGV0ZWQgPSBwcnN0YXRlLm5kZWxldGVkOworCXByZXN1bHQt Pm5uZXdscGRlYWQgPSBwcnN0YXRlLm5kZWFkOworCXByZXN1bHQtPm5mcm96ZW4gPSBwcnN0YXRl Lm5mcm96ZW47CisJcHJlc3VsdC0+bGl2ZV90dXBsZXMgPSBwcnN0YXRlLmxpdmVfdHVwbGVzOwor CXByZXN1bHQtPnJlY2VudGx5X2RlYWRfdHVwbGVzID0gcHJzdGF0ZS5yZWNlbnRseV9kZWFkX3R1 cGxlczsKKwlwcmVzdWx0LT5vbGRfdm1iaXRzID0gb2xkX3ZtYml0czsKKwkvKiBuZXdfdm1iaXRz IHdhcyBzZXQgYWJvdmUgKi8KKwlwcmVzdWx0LT5oYXN0dXAgPSBwcnN0YXRlLmhhc3R1cDsKIAlw cmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRlLmxwZGVhZF9pdGVtczsKIAkvKiB0aGUgcHJl c3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFscmVhZHkgZmlsbGVkIGluICovCiAKLQlwcmVz dWx0LT5vbGRfdm1iaXRzID0gb2xkX3ZtYml0czsKLQlwcmVzdWx0LT5uZXdfdm1iaXRzID0gdm1m bGFnczsKLQogCWlmIChwcnN0YXRlLmZyZWV6ZSkKIAl7CiAJCWlmIChwcmVzdWx0LT5uZnJvemVu ID4gMCkKQEAgLTE2MjEsNyArMTcwOCwxMiBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRf bHBfbm9ybWFsKFBhZ2UgcGFnZSwgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYgogCQkJ YnJlYWs7CiAJfQogCi0JLyogQ29uc2lkZXIgZnJlZXppbmcgYW55IG5vcm1hbCB0dXBsZXMgd2hp Y2ggd2lsbCBub3QgYmUgcmVtb3ZlZCAqLworCS8qCisJICogQ29uc2lkZXIgZnJlZXppbmcgYW55 IG5vcm1hbCB0dXBsZXMgd2hpY2ggd2lsbCBub3QgYmUgcmVtb3ZlZC4KKwkgKiBSZWdhcmRsZXNz IG9mIHdoZXRoZXIgb3Igbm90IHdlIHdhbnQgdG8gZnJlZXplIHRoZSB0dXBsZXMsIGlmIHdlIHdh bnQKKwkgKiB0byB1cGRhdGUgdGhlIFZNLCB3ZSBoYXZlIHRvIGNhbGwgaGVhcF9wcmVwYXJlX2Zy ZWV6ZV90dXBsZSgpIG9uIGV2ZXJ5CisJICogdHVwbGUgdG8ga25vdyB3aGV0aGVyIG9yIG5vdCB0 aGUgcGFnZSB3aWxsIGJlIHRvdGFsbHkgZnJvemVuLgorCSAqLwogCWlmIChwcnN0YXRlLT5mcmVl emUpCiAJewogCQlib29sCQl0b3RhbGx5X2Zyb3plbjsKQEAgLTIyMzQsNiArMjMyNiw4IEBAIGxv Z19oZWFwX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIs CiAJT2Zmc2V0TnVtYmVyIGZyel9vZmZzZXRzW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAlib29s CQlkb19wcnVuZSA9IG5yZWRpcmVjdGVkID4gMCB8fCBuZGVhZCA+IDAgfHwgbnVudXNlZCA+IDA7 CiAKKwlBc3NlcnQoZG9fcHJ1bmUgfHwgbmZyb3plbiA+IDAgfHwgdm1mbGFncyAmIFZJU0lCSUxJ VFlNQVBfVkFMSURfQklUUyk7CisKIAl4bHJlYy5mbGFncyA9IDA7CiAJcmVnYnVmX2ZsYWdzID0g UkVHQlVGX1NUQU5EQVJEOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXgg YzQ5ZTgxYmM1ZGQuLjkxZTIwOTkwMWI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6 eS5jCkBAIC0yMDE0LDM0ICsyMDE0LDYgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZh Y3JlbCwKIAkJdmFjcmVsLT5uZXdfZnJvemVuX3R1cGxlX3BhZ2VzKys7CiAJfQogCi0JLyoKLQkg KiBWQUNVVU0gd2lsbCBjYWxsIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSgpIGR1cmluZyB0aGUg c2Vjb25kIHBhc3Mgb3ZlcgotCSAqIHRoZSBoZWFwIHRvIGRldGVybWluZSBhbGxfdmlzaWJsZSBh bmQgYWxsX2Zyb3plbiBmb3IgdGhlIHBhZ2UgLS0gdGhpcwotCSAqIGlzIGEgc3BlY2lhbGl6ZWQg dmVyc2lvbiBvZiB0aGUgbG9naWMgZnJvbSB0aGlzIGZ1bmN0aW9uLiAgTm93IHRoYXQKLQkgKiB3 ZSd2ZSBmaW5pc2hlZCBwcnVuaW5nIGFuZCBmcmVlemluZywgbWFrZSBzdXJlIHRoYXQgd2UncmUg aW4gdG90YWwKLQkgKiBhZ3JlZW1lbnQgd2l0aCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSB1 c2luZyBhbiBhc3NlcnRpb24uCi0JICovCi0jaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwotCS8q IE5vdGUgdGhhdCBhbGxfZnJvemVuIHZhbHVlIGRvZXMgbm90IG1hdHRlciB3aGVuICFhbGxfdmlz aWJsZSAqLwotCWlmIChwcmVzdWx0LmFsbF92aXNpYmxlKQotCXsKLQkJVHJhbnNhY3Rpb25JZCBk ZWJ1Z19jdXRvZmY7Ci0JCWJvb2wJCWRlYnVnX2FsbF9mcm96ZW47Ci0KLQkJQXNzZXJ0KHByZXN1 bHQubHBkZWFkX2l0ZW1zID09IDApOwotCi0JCWlmICghaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxl KHZhY3JlbC0+cmVsLCBidWYsCi0JCQkJCQkJCQkgIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWlu LCAmZGVidWdfYWxsX2Zyb3plbiwKLQkJCQkJCQkJCSAgJmRlYnVnX2N1dG9mZiwgJnZhY3JlbC0+ b2ZmbnVtKSkKLQkJCUFzc2VydChmYWxzZSk7Ci0KLQkJQXNzZXJ0KHByZXN1bHQuYWxsX2Zyb3pl biA9PSBkZWJ1Z19hbGxfZnJvemVuKTsKLQotCQlBc3NlcnQoIVRyYW5zYWN0aW9uSWRJc1ZhbGlk KGRlYnVnX2N1dG9mZikgfHwKLQkJCSAgIGRlYnVnX2N1dG9mZiA9PSBwcmVzdWx0LnZtX2NvbmZs aWN0X2hvcml6b24pOwotCX0KLSNlbmRpZgotCiAJLyoKIAkgKiBOb3cgc2F2ZSBkZXRhaWxzIG9m IHRoZSBMUF9ERUFEIGl0ZW1zIGZyb20gdGhlIHBhZ2UgaW4gdmFjcmVsCiAJICovCkBAIC0yMDc1 LDggKzIwNDcsNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCS8qIERp ZCB3ZSBmaW5kIExQX0RFQUQgaXRlbXM/ICovCiAJKmhhc19scGRlYWRfaXRlbXMgPSAocHJlc3Vs dC5scGRlYWRfaXRlbXMgPiAwKTsKIAotCUFzc2VydCghcHJlc3VsdC5hbGxfdmlzaWJsZSB8fCAh KCpoYXNfbHBkZWFkX2l0ZW1zKSk7Ci0KIAkvKgogCSAqIEZvciB0aGUgcHVycG9zZXMgb2YgbG9n Z2luZywgY291bnQgd2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2FzIG5ld2x5CiAJICogc2V0IGFs bC12aXNpYmxlIGFuZCwgcG90ZW50aWFsbHksIGFsbC1mcm96ZW4uCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5k ZXggYjg1NjQ4NDU2ZTkuLjBiOWJiMWM5YjEzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC0yMzUsMTkg KzIzNSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVJlc3VsdAogCWludAkJCXJlY2Vu dGx5X2RlYWRfdHVwbGVzOwogCiAJLyoKLQkgKiBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBp bmRpY2F0ZSB0aGUgc3RhdHVzIG9mIHRoZSBwYWdlIGFzIHJlZmxlY3RlZAotCSAqIGluIHRoZSB2 aXNpYmlsaXR5IG1hcCBhZnRlciBwcnVuaW5nLCBmcmVlemluZywgYW5kIHNldHRpbmcgYW55IHBh Z2VzCi0JICogYWxsLXZpc2libGUgaW4gdGhlIHZpc2liaWxpdHkgbWFwLgorCSAqIG9sZF92bWJp dHMgYXJlIHRoZSBzdGF0ZSBvZiB0aGUgYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4gYml0cyBp biB0aGUKKwkgKiB2aXNpYmlsaXR5IG1hcCBiZWZvcmUgdXBkYXRpbmcgaXQgZHVyaW5nIHBoYXNl IEkgb2YgdmFjdXVtaW5nLgorCSAqIG5ld192bWJpdHMgYXJlIHRoZSBzdGF0ZSBvZiB0aG9zZSBi aXRzIGFmdGVyIHBoYXNlIEkgb2YgdmFjdXVtaW5nLgogCSAqCi0JICogdm1fY29uZmxpY3RfaG9y aXpvbiBpcyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UKLQkgKiAo b2xkZXIgdGhhbiBPbGRlc3RYbWluKS4gIEl0IHdpbGwgb25seSBiZSB2YWxpZCBpZiB3ZSBkaWQg bm90IHNldCB0aGUKLQkgKiBwYWdlIGFsbC1mcm96ZW4gaW4gdGhlIFZNLgotCSAqCi0JICogVGhl c2UgYXJlIG9ubHkgc2V0IGlmIHRoZSBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgc2V0Lgor CSAqIFRoZXNlIGFyZSBvbmx5IHNldCBpZiB0aGUgSEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTSBv cHRpb24gaXMgc2V0LgogCSAqLwotCWJvb2wJCWFsbF92aXNpYmxlOwotCWJvb2wJCWFsbF9mcm96 ZW47Ci0JVHJhbnNhY3Rpb25JZCB2bV9jb25mbGljdF9ob3Jpem9uOwogCXVpbnQ4CQlvbGRfdm1i aXRzOwogCXVpbnQ4CQluZXdfdm1iaXRzOwogCi0tIAoyLjQzLjAKCg== --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0013-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisXi.patch" Content-Disposition: attachment; filename="v6-0013-Rename-GlobalVisTestIsRemovableXid-to-GlobalVisXi.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu6612 RnJvbSAwOTkwOTdhNmMwODg2YmQ3YWMyODRiYTRkZTZmMjZmZGU2ZjRmYjVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDE4IEp1bCAyMDI1IDE2OjMwOjA0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAxMy8yMF0gUmVuYW1lIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCgpIHRvCiBH bG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwoKQoKQ3VycmVudGx5LCB3ZSBvbmx5IHVzZSBHbG9iYWxW aXNUZXN0SXNSZW1vdmFibGVYaWQoKSB0byBjaGVjayBpZiBhCnR1cGxlJ3MgeG1heCBpcyB2aXNp YmxlIHRvIGFsbCwgbWVhbmluZyB3ZSBjYW4gcmVtb3ZlIGl0LiBCdXQgZnV0dXJlCmNvbW1pdHMg d2lsbCB1c2UgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgdG8gdGVzdCBpZiBhIHR1cGxl J3MgeG1pbgppcyB2aXNpYmxlIHRvIGFsbCBmb3IgdGhlIHB1cnBvc2VzIG9mIGRldGVybWluaW5n IGlmIHNldHRpbmcgdGhlIHBhZ2UKYWxsLXZpc2libGUgaW4gdGhlIFZNLiBJbiB0aGF0IGNhc2Us IGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gY2FsbCB0aGUKZnVuY3Rpb24gR2xvYmFsVmlzWGlkVmlz aWJsZVRvQWxsKCkuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxp dHkuYyB8ICA2ICsrKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAg ICAgICB8IDE0ICsrKysrKystLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Zh Y3V1bS5jICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5j ICAgICAgICAgfCAxMyArKysrKystLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmgg ICAgICAgICAgICAgICAgIHwgIDQgKystLQogNSBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25z KCspLCAyMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW1fdmlzaWJpbGl0eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zp c2liaWxpdHkuYwppbmRleCAwNWY2OTQ2ZmU2MC4uNGViYzhhYmRiZWIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYwpAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAg SGVhcFR1cGxlU2F0aXNmaWVzTm9uVmFjdXVtYWJsZShIZWFwVHVwbGUgaHR1cCwgU25hcHNob3Qg c25hcHNob3QsCiAJewogCQlBc3NlcnQoVHJhbnNhY3Rpb25JZElzVmFsaWQoZGVhZF9hZnRlcikp OwogCi0JCWlmIChHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoc25hcHNob3QtPnZpc3Rlc3Qs IGRlYWRfYWZ0ZXIpKQorCQlpZiAoR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHNuYXBzaG90LT52 aXN0ZXN0LCBkZWFkX2FmdGVyKSkKIAkJCXJlcyA9IEhFQVBUVVBMRV9ERUFEOwogCX0KIAllbHNl CkBAIC0xNTEyLDggKzE1MTIsOCBAQCBIZWFwVHVwbGVJc1N1cmVseURlYWQoSGVhcFR1cGxlIGh0 dXAsIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0KQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBEZWxl dGVyIGNvbW1pdHRlZCwgc28gdHVwbGUgaXMgZGVhZCBpZiB0aGUgWElEIGlzIG9sZCBlbm91Z2gu ICovCi0JcmV0dXJuIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LAotCQkJCQkJ CQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0UmF3WG1heCh0dXBsZSkpOworCXJldHVybiBHbG9iYWxW aXNYaWRWaXNpYmxlVG9BbGwodmlzdGVzdCwKKwkJCQkJCQkJCUhlYXBUdXBsZUhlYWRlckdldFJh d1htYXgodHVwbGUpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5k ZXggZmZjMTIzMTRiNDEuLjcxNWRmYzE2YmE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYwpAQCAtMjMxLDcgKzIzMSw3IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVs YXRpb24sIEJ1ZmZlciBidWZmZXIpCiAJICovCiAJdmlzdGVzdCA9IEdsb2JhbFZpc1Rlc3RGb3Io cmVsYXRpb24pOwogCi0JaWYgKCFHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQodmlzdGVzdCwg cHJ1bmVfeGlkKSkKKwlpZiAoIUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCh2aXN0ZXN0LCBwcnVu ZV94aWQpKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtNTc0LDkgKzU3NCw5IEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIERl dGVybWluaW5nIEhUU1Ygb25seSBvbmNlIGZvciBlYWNoIHR1cGxlIGlzIHJlcXVpcmVkIGZvciBj b3JyZWN0bmVzcywKIAkgKiB0byBkZWFsIHdpdGggY2FzZXMgd2hlcmUgcnVubmluZyBIVFNWIHR3 aWNlIGNvdWxkIHJlc3VsdCBpbiBkaWZmZXJlbnQKIAkgKiByZXN1bHRzLiAgRm9yIGV4YW1wbGUs IFJFQ0VOVExZX0RFQUQgY2FuIHR1cm4gdG8gREVBRCBpZiBhbm90aGVyCi0JICogY2hlY2tlZCBp dGVtIGNhdXNlcyBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVGdWxsWGlkKCkgdG8gdXBkYXRlIHRo ZQotCSAqIGhvcml6b24sIG9yIElOU0VSVF9JTl9QUk9HUkVTUyBjYW4gY2hhbmdlIHRvIERFQUQg aWYgdGhlIGluc2VydGluZwotCSAqIHRyYW5zYWN0aW9uIGFib3J0cy4KKwkgKiBjaGVja2VkIGl0 ZW0gY2F1c2VzIEdsb2JhbFZpc1hpZFZpc2libGVUb0FsbCgpIHRvIHVwZGF0ZSB0aGUgaG9yaXpv biwKKwkgKiBvciBJTlNFUlRfSU5fUFJPR1JFU1MgY2FuIGNoYW5nZSB0byBERUFEIGlmIHRoZSBp bnNlcnRpbmcgdHJhbnNhY3Rpb24KKwkgKiBhYm9ydHMuCiAJICoKIAkgKiBJdCdzIGFsc28gZ29v ZCBmb3IgcGVyZm9ybWFuY2UuIE1vc3QgY29tbW9ubHkgdHVwbGVzIHdpdGhpbiBhIHBhZ2UgYXJl CiAJICogc3RvcmVkIGF0IGRlY3JlYXNpbmcgb2Zmc2V0cyAod2hpbGUgdGhlIGl0ZW1zIGFyZSBz dG9yZWQgYXQgaW5jcmVhc2luZwpAQCAtMTE3MiwxMSArMTE3MiwxMSBAQCBoZWFwX3BydW5lX3Nh dGlzZmllc192YWN1dW0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgSGVhcFR1cGxlIHR1cCwgQnVmZmVy IGJ1ZmZlcikKIAkgKiBEZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIHR1cGxlIGlzIGNvbnNp ZGVyZWQgZGVhZCB3aGVuIGNvbXBhcmVkCiAJICogd2l0aCB0aGUgcHJvdmlkZWQgR2xvYmFsVmlz U3RhdGUuIE9uLWFjY2VzcyBwcnVuaW5nIGRvZXMgbm90IHByb3ZpZGUKIAkgKiBWYWN1dW1DdXRv ZmZzLiBBbmQgZm9yIHZhY3V1bSwgZXZlbiBpZiB0aGUgdHVwbGUncyB4bWF4IGlzIG5vdCBvbGRl cgotCSAqIHRoYW4gT2xkZXN0WG1pbiwgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgY291 bGQgZmluZCB0aGUgcm93IGRlYWQKLQkgKiBpZiB0aGUgR2xvYmFsVmlzU3RhdGUgaGFzIGJlZW4g dXBkYXRlZCBzaW5jZSB0aGUgYmVnaW5uaW5nIG9mIHZhY3V1bWluZworCSAqIHRoYW4gT2xkZXN0 WG1pbiwgR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKCkgY291bGQgZmluZCB0aGUgcm93IGRlYWQg aWYKKwkgKiB0aGUgR2xvYmFsVmlzU3RhdGUgaGFzIGJlZW4gdXBkYXRlZCBzaW5jZSB0aGUgYmVn aW5uaW5nIG9mIHZhY3V1bWluZwogCSAqIHRoZSByZWxhdGlvbi4KIAkgKi8KLQlpZiAoR2xvYmFs VmlzVGVzdElzUmVtb3ZhYmxlWGlkKHByc3RhdGUtPnZpc3Rlc3QsIGRlYWRfYWZ0ZXIpKQorCWlm IChHbG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwocHJzdGF0ZS0+dmlzdGVzdCwgZGVhZF9hZnRlcikp CiAJCXJldHVybiBIRUFQVFVQTEVfREVBRDsKIAogCXJldHVybiByZXM7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3NwZ2lzdC9zcGd2YWN1dW0uYwppbmRleCAyNjc4ZjdhYjc4Mi4uNGI4ZTU3NDcyMzkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwpAQCAtNTM2LDcgKzUzNiw3IEBAIHZhY3V1 bVJlZGlyZWN0QW5kUGxhY2Vob2xkZXIoUmVsYXRpb24gaW5kZXgsIFJlbGF0aW9uIGhlYXByZWws IEJ1ZmZlciBidWZmZXIpCiAJCSAqLwogCQlpZiAoZHQtPnR1cHN0YXRlID09IFNQR0lTVF9SRURJ UkVDVCAmJgogCQkJKCFUcmFuc2FjdGlvbklkSXNWYWxpZChkdC0+eGlkKSB8fAotCQkJIEdsb2Jh bFZpc1Rlc3RJc1JlbW92YWJsZVhpZCh2aXN0ZXN0LCBkdC0+eGlkKSkpCisJCQkgR2xvYmFsVmlz WGlkVmlzaWJsZVRvQWxsKHZpc3Rlc3QsIGR0LT54aWQpKSkKIAkJewogCQkJZHQtPnR1cHN0YXRl ID0gU1BHSVNUX1BMQUNFSE9MREVSOwogCQkJQXNzZXJ0KG9wYXF1ZS0+blJlZGlyZWN0aW9uID4g MCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyBiL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCmluZGV4IGJmOTg3YWVkOGQzLi41MDhi YjM3OWY4NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMK KysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKQEAgLTQxODEsOCArNDE4 MSw3IEBAIEdsb2JhbFZpc1VwZGF0ZSh2b2lkKQogICogU2VlIGNvbW1lbnQgZm9yIEdsb2JhbFZp c1N0YXRlIGZvciBkZXRhaWxzLgogICovCiBib29sCi1HbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVG dWxsWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwKLQkJCQkJCQkJRnVsbFRyYW5zYWN0aW9uSWQg ZnhpZCkKK0dsb2JhbFZpc0Z1bGxYaWRWaXNpYmxlKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgRnVs bFRyYW5zYWN0aW9uSWQgZnhpZCkKIHsKIAkvKgogCSAqIElmIGZ4aWQgaXMgb2xkZXIgdGhhbiBt YXliZV9uZWVkZWQgYm91bmQsIGl0IGRlZmluaXRlbHkgaXMgdmlzaWJsZSB0bwpAQCAtNDIyMyw3 ICs0MjIyLDcgQEAgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlRnVsbFhpZChHbG9iYWxWaXNTdGF0 ZSAqc3RhdGUsCiAgKiByZWxmcm96ZW54aWQpLgogICovCiBib29sCi1HbG9iYWxWaXNUZXN0SXNS ZW1vdmFibGVYaWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCkKK0ds b2JhbFZpc1hpZFZpc2libGVUb0FsbChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9u SWQgeGlkKQogewogCUZ1bGxUcmFuc2FjdGlvbklkIGZ4aWQ7CiAKQEAgLTQyMzcsNyArNDIzNiw3 IEBAIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZChHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIFRy YW5zYWN0aW9uSWQgeGlkKQogCSAqLwogCWZ4aWQgPSBGdWxsWGlkUmVsYXRpdmVUbyhzdGF0ZS0+ ZGVmaW5pdGVseV9uZWVkZWQsIHhpZCk7CiAKLQlyZXR1cm4gR2xvYmFsVmlzVGVzdElzUmVtb3Zh YmxlRnVsbFhpZChzdGF0ZSwgZnhpZCk7CisJcmV0dXJuIEdsb2JhbFZpc0Z1bGxYaWRWaXNpYmxl KHN0YXRlLCBmeGlkKTsKIH0KIAogLyoKQEAgLTQyNTEsMTIgKzQyNTAsMTIgQEAgR2xvYmFsVmlz Q2hlY2tSZW1vdmFibGVGdWxsWGlkKFJlbGF0aW9uIHJlbCwgRnVsbFRyYW5zYWN0aW9uSWQgZnhp ZCkKIAogCXN0YXRlID0gR2xvYmFsVmlzVGVzdEZvcihyZWwpOwogCi0JcmV0dXJuIEdsb2JhbFZp c1Rlc3RJc1JlbW92YWJsZUZ1bGxYaWQoc3RhdGUsIGZ4aWQpOworCXJldHVybiBHbG9iYWxWaXNG dWxsWGlkVmlzaWJsZShzdGF0ZSwgZnhpZCk7CiB9CiAKIC8qCiAgKiBDb252ZW5pZW5jZSB3cmFw cGVyIGFyb3VuZCBHbG9iYWxWaXNUZXN0Rm9yKCkgYW5kCi0gKiBHbG9iYWxWaXNUZXN0SXNSZW1v dmFibGVYaWQoKSwgc2VlIHRoZWlyIGNvbW1lbnRzLgorICogR2xvYmFsVmlzVGVzdElzVmlzaWJs ZVhpZCgpLCBzZWUgdGhlaXIgY29tbWVudHMuCiAgKi8KIGJvb2wKIEdsb2JhbFZpc0NoZWNrUmVt b3ZhYmxlWGlkKFJlbGF0aW9uIHJlbCwgVHJhbnNhY3Rpb25JZCB4aWQpCkBAIC00MjY1LDcgKzQy NjQsNyBAQCBHbG9iYWxWaXNDaGVja1JlbW92YWJsZVhpZChSZWxhdGlvbiByZWwsIFRyYW5zYWN0 aW9uSWQgeGlkKQogCiAJc3RhdGUgPSBHbG9iYWxWaXNUZXN0Rm9yKHJlbCk7CiAKLQlyZXR1cm4g R2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKHN0YXRlLCB4aWQpOworCXJldHVybiBHbG9iYWxW aXNYaWRWaXNpYmxlVG9BbGwoc3RhdGUsIHhpZCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS91dGlscy9zbmFwbWdyLmggYi9zcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmgKaW5k ZXggZDM0NmJlNzE2NDIuLmFlYzA2OTJiNWRiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGls cy9zbmFwbWdyLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvc25hcG1nci5oCkBAIC05Nyw4ICs5 Nyw4IEBAIGV4dGVybiBjaGFyICpFeHBvcnRTbmFwc2hvdChTbmFwc2hvdCBzbmFwc2hvdCk7CiAg Ki8KIHR5cGVkZWYgc3RydWN0IEdsb2JhbFZpc1N0YXRlIEdsb2JhbFZpc1N0YXRlOwogZXh0ZXJu IEdsb2JhbFZpc1N0YXRlICpHbG9iYWxWaXNUZXN0Rm9yKFJlbGF0aW9uIHJlbCk7Ci1leHRlcm4g Ym9vbCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoR2xvYmFsVmlzU3RhdGUgKnN0YXRlLCBU cmFuc2FjdGlvbklkIHhpZCk7Ci1leHRlcm4gYm9vbCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVG dWxsWGlkKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwgRnVsbFRyYW5zYWN0aW9uSWQgZnhpZCk7Citl eHRlcm4gYm9vbCBHbG9iYWxWaXNYaWRWaXNpYmxlVG9BbGwoR2xvYmFsVmlzU3RhdGUgKnN0YXRl LCBUcmFuc2FjdGlvbklkIHhpZCk7CitleHRlcm4gYm9vbCBHbG9iYWxWaXNGdWxsWGlkVmlzaWJs ZShHbG9iYWxWaXNTdGF0ZSAqc3RhdGUsIEZ1bGxUcmFuc2FjdGlvbklkIGZ4aWQpOwogZXh0ZXJu IGJvb2wgR2xvYmFsVmlzQ2hlY2tSZW1vdmFibGVYaWQoUmVsYXRpb24gcmVsLCBUcmFuc2FjdGlv bklkIHhpZCk7CiBleHRlcm4gYm9vbCBHbG9iYWxWaXNDaGVja1JlbW92YWJsZUZ1bGxYaWQoUmVs YXRpb24gcmVsLCBGdWxsVHJhbnNhY3Rpb25JZCBmeGlkKTsKIAotLSAKMi40My4wCgo= --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0014-Use-GlobalVisState-to-determine-page-level-visibi.patch" Content-Disposition: attachment; filename="v6-0014-Use-GlobalVisState-to-determine-page-level-visibi.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu6813 RnJvbSA4NDQ2Nzk2MWUxNTAyNzI1OTNjODVjZGJjNzMyZDEzMTFkZDhhZTc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM4OjI0IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAxNC8yMF0gVXNlIEdsb2JhbFZpc1N0YXRlIHRvIGRldGVybWluZSBwYWdlIGxldmVs CiB2aXNpYmlsaXR5CgpEdXJpbmcgcHJ1bmluZyBhbmQgZHVyaW5nIHZhY3V1bSdzIHRoaXJkIHBo YXNlLCB3ZSB0cnkgdG8gZGV0ZXJtaW5lIGlmCnRoZSB3aG9sZSBwYWdlIGNhbiBiZSBzZXQgYWxs LXZpc2libGUgaW4gdGhlIHZpc2liaWxpdHkgbWFwLiBJbnN0ZWFkIG9mCnVzaW5nIE9sZGVzdFht aW4gdG8gZGV0ZXJtaW5lIGlmIGFsbCB0aGUgdHVwbGVzIG9uIGEgcGFnZSBhcmUgdmlzaWJsZSB0 bwpldmVyeW9uZSwgdXNlIHRoZSBHbG9iYWxWaXNTdGF0ZS4gVGhpcyBhbGxvd3MgdXMgdG8gc3Rh cnQgc2V0dGluZyB0aGUgVk0KZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nIGluIGEgZnV0dXJlIGNv bW1pdC4KCkl0IGlzIHBvc3NpYmxlIGZvciB0aGUgR2xvYmFsVmlzU3RhdGUgdG8gY2hhbmdlIGR1 cmluZyB0aGUgY291cnNlIG9mIGEKdmFjdXVtLiBJbiBhbGwgYnV0IGV4dHJhb3JkaW5hcnkgY2Fz ZXMsIGl0IG1vdmVzIGZvcndhcmQsIG1lYW5pbmcgbW9yZQpwYWdlcyBjb3VsZCBwb3RlbnRpYWxs eSBiZSBzZXQgaW4gdGhlIFZNLgoKQmVjYXVzZSBjb21wYXJpbmcgYSB0cmFuc2FjdGlvbiBJRCB0 byB0aGUgR2xvYmFsVmlzU3RhdGUgcmVxdWlyZXMgbW9yZQpvcGVyYXRpb25zIHRoYW4gY29tcGFy aW5nIGl0IHRvIGFub3RoZXIgc2luZ2xlIHRyYW5zYWN0aW9uIElELCB3ZSBub3cKd2FpdCB1bnRp bCBhZnRlciBleGFtaW5pbmcgYWxsIHRoZSB0dXBsZXMgb24gdGhlIHBhZ2UgYW5kIGlmIHdlIGhh dmUKbWFpbnRhaW5lZCB0aGUgdmlzaWJpbGl0eV9jdXRvZmZfeGlkLCB3ZSBjb21wYXJlIHRoYXQg dG8gdGhlCkdsb2JhbFZpc1N0YXRlIGp1c3Qgb25jZSBwZXIgcGFnZS4gVGhpcyB3b3JrcyBiZWNh dXNlIGlmIHRoZSBwYWdlIGlzCmFsbC12aXNpYmxlIGFuZCBoYXMgbGl2ZSwgY29tbWl0dGVkIHR1 cGxlcyBvbiBpdCwgdGhlCnZpc2liaWxpdHlfY3V0b2ZmX3hpZCB3aWxsIGNvbnRhaW4gdGhlIG5l d2VzdCB4bWluIG9uIHRoZSBwYWdlLiBJZgpldmVyeW9uZSBjYW4gc2VlIGl0LCB0aGUgcGFnZSBp cyB0cnVseSBhbGwtdmlzaWJsZS4KCkRvaW5nIHRoaXMgbWF5IG1lYW4gd2UgZXhhbWluZSBtb3Jl IHR1cGxlcycgeG1pbnMgdGhhbiBiZWZvcmUsIGFzIHdlIG1heQpoYXZlIHNldCBhbGxfdmlzaWJs ZSB0byBmYWxzZSBzb29uZXIgd2hlbiBlbmNvdW50ZXJpbmcgYSBsaXZlIHR1cGxlCm5ld2VyIHRo YW4gT2xkZXN0WG1pbi4gSG93ZXZlciwgdGhlc2UgZXh0cmEgY29tcGFyaXNvbnMgd2VyZSBmb3Vu ZCBub3QKdG8gYmUgc2lnbmlmaWNhbnQgaW4gYSBwcm9maWxlLgotLS0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMgfCAyOCArKysrKysrKysrKysKIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAgICAgICAgfCA0OCArKysrKysrKystLS0tLS0t LS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgICAgICAgfCAxNyAr KysrLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgICAgICB8ICA0 ICstCiA0IGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCmluZGV4IDRlYmM4 YWJkYmViLi5lZGQ1MjlkYzNjMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv aGVhcGFtX3Zpc2liaWxpdHkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1f dmlzaWJpbGl0eS5jCkBAIC0xMTg5LDYgKzExODksMzQgQEAgSGVhcFR1cGxlU2F0aXNmaWVzVmFj dXVtKEhlYXBUdXBsZSBodHVwLCBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCiAJcmV0dXJuIHJl czsKIH0KIAorLyoKKyAqIE5lYXJseSB0aGUgc2FtZSBhcyBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1 dW0sIGJ1dCB1c2VzIGEgR2xvYmFsVmlzU3RhdGUgdG8KKyAqIGRldGVybWluZSB3aGV0aGVyIG9y IG5vdCBhIHR1cGxlIGlzIEhFQVBUVVBMRV9ERUFEIE9yCisgKiBIRUFQVFVQTEVfUkVDRU5UTFlf REVBRC4gSXQgc2VydmVzIHRoZSBzYW1lIHB1cnBvc2UgYnV0IGNhbiBiZSB1c2VkIGJ5CisgKiBj YWxsZXJzIHRoYXQgaGF2ZSBub3QgY2FsY3VsYXRlZCBhIHNpbmdsZSBPbGRlc3RYbWluIHZhbHVl LgorICovCitIVFNWX1Jlc3VsdAorSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtR2xvYmFsVmlzKEhl YXBUdXBsZSBodHVwLCBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKKwkJCQkJCQkJICBCdWZmZXIg YnVmZmVyKQoreworCVRyYW5zYWN0aW9uSWQgZGVhZF9hZnRlciA9IEludmFsaWRUcmFuc2FjdGlv bklkOworCUhUU1ZfUmVzdWx0IHJlczsKKworCXJlcyA9IEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1 bUhvcml6b24oaHR1cCwgYnVmZmVyLCAmZGVhZF9hZnRlcik7CisKKwlpZiAocmVzID09IEhFQVBU VVBMRV9SRUNFTlRMWV9ERUFEKQorCXsKKwkJQXNzZXJ0KFRyYW5zYWN0aW9uSWRJc1ZhbGlkKGRl YWRfYWZ0ZXIpKTsKKworCQlpZiAoR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHZpc3Rlc3QsIGRl YWRfYWZ0ZXIpKQorCQkJcmVzID0gSEVBUFRVUExFX0RFQUQ7CisJfQorCWVsc2UKKwkJQXNzZXJ0 KCFUcmFuc2FjdGlvbklkSXNWYWxpZChkZWFkX2FmdGVyKSk7CisKKwlyZXR1cm4gcmVzOworfQor CiAvKgogICogV29yayBob3JzZSBmb3IgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtIGFuZCBzaW1p bGFyIHJvdXRpbmVzLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggNzE1 ZGZjMTZiYTcuLmFiNzlkOGEzZWQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpA QCAtMTQxLDEwICsxNDEsOSBAQCB0eXBlZGVmIHN0cnVjdAogCSAqIGFsbF92aXNpYmxlIGFuZCBh bGxfZnJvemVuIGluZGljYXRlIGlmIHRoZSBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbgogCSAq IGJpdHMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBhZnRl ciBwcnVuaW5nLgogCSAqCi0JICogdmlzaWJpbGl0eV9jdXRvZmZfeGlkIGlzIHRoZSBuZXdlc3Qg eG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZS4KLQkgKiBUaGUgY2FsbGVyIGNhbiB1c2Ug aXQgYXMgdGhlIGNvbmZsaWN0IGhvcml6b24sIHdoZW4gc2V0dGluZyB0aGUgVk0KLQkgKiBiaXRz LiAgSXQgaXMgb25seSB2YWxpZCBpZiB3ZSBmcm96ZSBzb21lIHR1cGxlcywgYW5kIGFsbF9mcm96 ZW4gaXMKLQkgKiB0cnVlLgorCSAqIHZpc2liaWxpdHlfY3V0b2ZmX3hpZCBpcyB0aGUgbmV3ZXN0 IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuIEl0CisJICogY2FuIGJlIHVzZWQgYXMg dGhlIGNvbmZsaWN0IGhvcml6b24sIHdoZW4gc2V0dGluZyB0aGUgVk0gb3Igd2hlbgorCSAqIGZy ZWV6aW5nIGFsbCB0aGUgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuCiAJICoKIAkgKiBOT1RFOiBh bGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBkb24ndCBpbmNsdWRlIExQX0RFQUQgaXRlbXMgdW50 aWwKIAkgKiBkaXJlY3RseSBiZWZvcmUgdXBkYXRpbmcgdGhlIFZNLiBXZSBpZ25vcmUgTFBfREVB RCBpdGVtcyB3aGVuIGRlY2lkaW5nCkBAIC01NTMsMTQgKzU1MiwxMiBAQCBoZWFwX3BhZ2VfcHJ1 bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAogCS8qCiAJ ICogVGhlIHZpc2liaWxpdHkgY3V0b2ZmIHhpZCBpcyB0aGUgbmV3ZXN0IHhtaW4gb2YgbGl2ZSwg Y29tbWl0dGVkIHR1cGxlcwotCSAqIG9sZGVyIHRoYW4gT2xkZXN0WG1pbiBvbiB0aGUgcGFnZS4g VGhpcyBmaWVsZCBpcyBvbmx5IGtlcHQgdXAtdG8tZGF0ZQotCSAqIGlmIHRoZSBwYWdlIGlzIGFs bC12aXNpYmxlLiBBcyBzb29uIGFzIGEgdHVwbGUgaXMgZW5jb3VudGVyZWQgdGhhdCBpcwotCSAq IG5vdCB2aXNpYmxlIHRvIGFsbCwgdGhpcyBmaWVsZCBpcyB1bm1haW50YWluZWQuIEFzIGxvbmcg YXMgaXQgaXMKLQkgKiBtYWludGFpbmVkLCBpdCBjYW4gYmUgdXNlZCB0byBjYWxjdWxhdGUgdGhl IHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24uCi0JICogVGhpcyBpcyBtb3N0IGxpa2VseSB0byBo YXBwZW4gd2hlbiB1cGRhdGluZyB0aGUgVk0gYW5kL29yIGZyZWV6aW5nIGFsbAotCSAqIGxpdmUg dHVwbGVzIG9uIHRoZSBwYWdlLiBJdCBpcyB1cGRhdGVkIGJlZm9yZSByZXR1cm5pbmcgdG8gdGhl IGNhbGxlcgotCSAqIGJlY2F1c2UgdmFjdXVtIGRvZXMgYXNzZXJ0LWJ1aWxkIG9ubHkgdmFsaWRh dGlvbiBvbiB0aGUgcGFnZSB1c2luZyB0aGlzCi0JICogZmllbGQuCisJICogb24gdGhlIHBhZ2Ug b2xkZXIgdGhhbiB0aGUgdmlzaWJpbGl0eSBob3Jpem9uIHJlcHJlc2VudGVkIGluIHRoZQorCSAq IEdsb2JhbFZpc1N0YXRlLgorCSAqCisJICogSWYgd2UgZW5jb3VudGVyIGFuIHVuY29tbWl0dGVk IHR1cGxlLCB0aGlzIGZpZWxkIGlzIHVubWFpbnRhaW5lZC4gSWYKKwkgKiB0aGUgcGFnZSBpcyBi ZWluZyBzZXQgYWxsLXZpc2libGUgb3Igd2hlbiBmcmVlemluZyBhbGwgbGl2ZSB0dXBsZXMgb24K KwkgKiB0aGUgcGFnZSwgaXQgaXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHNuYXBzaG90IGNvbmZs aWN0IGhvcml6b24uCiAJICovCiAJcHJzdGF0ZS52aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZh bGlkVHJhbnNhY3Rpb25JZDsKIApAQCAtNzU2LDYgKzc1MywxNiBAQCBoZWFwX3BhZ2VfcHJ1bmVf YW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJcHJzdGF0ZS5u ZGVhZCA+IDAgfHwKIAkJcHJzdGF0ZS5udW51c2VkID4gMDsKIAorCS8qCisJICogQWZ0ZXIgcHJv Y2Vzc2luZyBhbGwgdGhlIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLCBpZiB0aGUgbmV3ZXN0IHht aW4KKwkgKiBhbW9uZ3N0IHRoZW0gaXMgbm90IHZpc2libGUgdG8gZXZlcnlvbmUsIHRoZSBwYWdl IGNhbm5vdCBiZQorCSAqIGFsbC12aXNpYmxlLgorCSAqLworCWlmIChwcnN0YXRlLmFsbF92aXNp YmxlICYmCisJCVRyYW5zYWN0aW9uSWRJc05vcm1hbChwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2Zm X3hpZCkgJiYKKwkJIUdsb2JhbFZpc1hpZFZpc2libGVUb0FsbChwcnN0YXRlLnZpc3Rlc3QsIHBy c3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkKSkKKwkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IHBy c3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNlOworCiAJLyoKIAkgKiBFdmVuIGlmIHdlIGRvbid0IHBy dW5lIGFueXRoaW5nLCBpZiB3ZSBmb3VuZCBhIG5ldyB2YWx1ZSBmb3IgdGhlCiAJICogcGRfcHJ1 bmVfeGlkIGZpZWxkIG9yIHRoZSBwYWdlIHdhcyBtYXJrZWQgZnVsbCwgd2Ugd2lsbCB1cGRhdGUg dGhvc2UKQEAgLTEwOTgsMTIgKzExMDUsMTAgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCVRyYW5zYWN0aW9uSWQgZGVidWdf Y3V0b2ZmOwogCQlib29sCQlkZWJ1Z19hbGxfZnJvemVuOwogCi0JCUFzc2VydChjdXRvZmZzKTsK LQogCQlBc3NlcnQocHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0gMCk7CiAKIAkJaWYgKCFoZWFwX3Bh Z2VfaXNfYWxsX3Zpc2libGUocmVsYXRpb24sIGJ1ZmZlciwKLQkJCQkJCQkJCSAgY3V0b2Zmcy0+ T2xkZXN0WG1pbiwKKwkJCQkJCQkJCSAgcHJzdGF0ZS52aXN0ZXN0LAogCQkJCQkJCQkJICAmZGVi dWdfYWxsX2Zyb3plbiwKIAkJCQkJCQkJCSAgJmRlYnVnX2N1dG9mZiwgb2ZmX2xvYykpCiAJCQlB c3NlcnQoZmFsc2UpOwpAQCAtMTYyOCwxOSArMTYzMyw2IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3Vu Y2hhbmdlZF9scF9ub3JtYWwoUGFnZSBwYWdlLCBQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXRO dW1iCiAJCQkJICovCiAJCQkJeG1pbiA9IEhlYXBUdXBsZUhlYWRlckdldFhtaW4oaHR1cCk7CiAK LQkJCQkvKgotCQkJCSAqIEZvciBub3cgYWx3YXlzIHVzZSBwcnN0YXRlLT5jdXRvZmZzIGZvciB0 aGlzIHRlc3QsIGJlY2F1c2UKLQkJCQkgKiB3ZSBvbmx5IHVwZGF0ZSAnYWxsX3Zpc2libGUnIHdo ZW4gZnJlZXppbmcgaXMgcmVxdWVzdGVkLiBXZQotCQkJCSAqIGNvdWxkIHVzZSBHbG9iYWxWaXNU ZXN0SXNSZW1vdmFibGVYaWQgaW5zdGVhZCwgaWYgYQotCQkJCSAqIG5vbi1mcmVlemluZyBjYWxs ZXIgd2FudGVkIHRvIHNldCB0aGUgVk0gYml0LgotCQkJCSAqLwotCQkJCUFzc2VydChwcnN0YXRl LT5jdXRvZmZzKTsKLQkJCQlpZiAoIVRyYW5zYWN0aW9uSWRQcmVjZWRlcyh4bWluLCBwcnN0YXRl LT5jdXRvZmZzLT5PbGRlc3RYbWluKSkKLQkJCQl7Ci0JCQkJCXByc3RhdGUtPmFsbF92aXNpYmxl ID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwotCQkJCQlicmVhazsKLQkJCQl9Ci0KIAkJ CQkvKiBUcmFjayBuZXdlc3QgeG1pbiBvbiBwYWdlLiAqLwogCQkJCWlmIChUcmFuc2FjdGlvbklk Rm9sbG93cyh4bWluLCBwcnN0YXRlLT52aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCiAJCQkJCVRy YW5zYWN0aW9uSWRJc05vcm1hbCh4bWluKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YwppbmRleCA2YTBmYTM3MWEwNi4uNzc3ZWMzMGViODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKQEAgLTQ2NSw3ICs0NjUsNyBAQCBzdGF0aWMgdm9pZCBkZWFkX2l0ZW1zX2Fk ZChMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBPZmZzZXROdW1iZXIgKgog c3RhdGljIHZvaWQgZGVhZF9pdGVtc19yZXNldChMVlJlbFN0YXRlICp2YWNyZWwpOwogc3RhdGlj IHZvaWQgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgYm9v bCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGVfZXhjZXB0X2xwZGVhZChSZWxhdGlvbiByZWwsIEJ1 ZmZlciBidWYsCi0JCQkJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJ CQkJCQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkJCQkJCSAgIE9mZnNl dE51bWJlciAqZGVhZG9mZnNldHMsCiAJCQkJCQkJCQkJCQkgICBpbnQgYWxsb3dlZF9udW1fb2Zm c2V0cywKIAkJCQkJCQkJCQkJCSAgIGJvb2wgKmFsbF9mcm96ZW4sCkBAIC0yNzE2LDcgKzI3MTYs NyBAQCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJl ciBibGtubywgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkgSW52YWxpZE9mZnNldE51bWJlcik7CiAK IAlpZiAoaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlX2V4Y2VwdF9scGRlYWQodmFjcmVsLT5yZWws IGJ1ZmZlciwKLQkJCQkJCQkJCQkJICAgdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sCisJCQkJ CQkJCQkJCSAgIHZhY3JlbC0+dmlzdGVzdCwKIAkJCQkJCQkJCQkJICAgZGVhZG9mZnNldHMsIG51 bV9vZmZzZXRzLAogCQkJCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwgJnZpc2liaWxpdHlfY3V0b2Zm X3hpZCwKIAkJCQkJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtKSkKQEAgLTM0NTksMTMgKzM0NTks MTMgQEAgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCkKICAqLwogYm9vbAog aGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKLQkJCQkJ CSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rl c3QsCiAJCQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKIAkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNp YmlsaXR5X2N1dG9mZl94aWQsCiAJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkK IHsKIAotCXJldHVybiBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGVfZXhjZXB0X2xwZGVhZChyZWws IGJ1ZiwgT2xkZXN0WG1pbiwKKwlyZXR1cm4gaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlX2V4Y2Vw dF9scGRlYWQocmVsLCBidWYsIHZpc3Rlc3QsCiAJCQkJCQkJCQkJCQkgIE5VTEwsIDAsCiAJCQkJ CQkJCQkJCQkgIGFsbF9mcm96ZW4sCiAJCQkJCQkJCQkJCQkgIHZpc2liaWxpdHlfY3V0b2ZmX3hp ZCwKQEAgLTM1MDAsNyArMzUwMCw3IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlv biByZWwsIEJ1ZmZlciBidWYsCiAgKi8KIHN0YXRpYyBib29sCiBoZWFwX3BhZ2VfaXNfYWxsX3Zp c2libGVfZXhjZXB0X2xwZGVhZChSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJCQkg ICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJCQkgICBHbG9iYWxWaXNTdGF0ZSAq dmlzdGVzdCwKIAkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCiAJCQkJCQkJ CQkgICBpbnQgYWxsb3dlZF9udW1fb2Zmc2V0cywKIAkJCQkJCQkJCSAgIGJvb2wgKmFsbF9mcm96 ZW4sCkBAIC0zNTU1LDggKzM1NTUsOCBAQCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGVfZXhjZXB0 X2xwZGVhZChSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCXR1cGxlLnRfbGVuID0gSXRlbUlk R2V0TGVuZ3RoKGl0ZW1pZCk7CiAJCXR1cGxlLnRfdGFibGVPaWQgPSBSZWxhdGlvbkdldFJlbGlk KHJlbCk7CiAKLQkJc3dpdGNoIChIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0oJnR1cGxlLCBPbGRl c3RYbWluLAotCQkJCQkJCQkJCSBidWYpKQorCQlzd2l0Y2ggKEhlYXBUdXBsZVNhdGlzZmllc1Zh Y3V1bUdsb2JhbFZpcygmdHVwbGUsIHZpc3Rlc3QsCisJCQkJCQkJCQkJCQkgIGJ1ZikpCiAJCXsK IAkJCWNhc2UgSEVBUFRVUExFX0xJVkU6CiAJCQkJewpAQCAtMzU3NSw4ICszNTc1LDcgQEAgaGVh cF9wYWdlX2lzX2FsbF92aXNpYmxlX2V4Y2VwdF9scGRlYWQoUmVsYXRpb24gcmVsLCBCdWZmZXIg YnVmLAogCQkJCQkgKiB0aGF0IGV2ZXJ5b25lIHNlZXMgaXQgYXMgY29tbWl0dGVkPwogCQkJCQkg Ki8KIAkJCQkJeG1pbiA9IEhlYXBUdXBsZUhlYWRlckdldFhtaW4odHVwbGUudF9kYXRhKTsKLQkJ CQkJaWYgKCFUcmFuc2FjdGlvbklkUHJlY2VkZXMoeG1pbiwKLQkJCQkJCQkJCQkJICAgT2xkZXN0 WG1pbikpCisJCQkJCWlmICghR2xvYmFsVmlzWGlkVmlzaWJsZVRvQWxsKHZpc3Rlc3QsIHhtaW4p KQogCQkJCQl7CiAJCQkJCQlhbGxfdmlzaWJsZSA9IGZhbHNlOwogCQkJCQkJKmFsbF9mcm96ZW4g PSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9p bmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCAwYjliYjFjOWIxMy4uNDI3OGYzNTFiZGYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvaGVhcGFtLmgKQEAgLTM0Miw3ICszNDIsNyBAQCBleHRlcm4gdm9pZCBoZWFwX2lucGxh Y2VfdW5sb2NrKFJlbGF0aW9uIHJlbGF0aW9uLAogCQkJCQkJCQlIZWFwVHVwbGUgb2xkdHVwLCBC dWZmZXIgYnVmZmVyKTsKIAogZXh0ZXJuIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJl bGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKLQkJCQkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFht aW4sCisJCQkJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJCQkJCQkJCQkgYm9vbCAq YWxsX2Zyb3plbiwKIAkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94 aWQsCiAJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CkBAIC00MTUsNiAr NDE1LDggQEAgZXh0ZXJuIFRNX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNVcGRhdGUoSGVhcFR1 cGxlIGh0dXAsIENvbW1hbmRJZCBjdXJjaWQsCiAJCQkJCQkJCQkJICBCdWZmZXIgYnVmZmVyKTsK IGV4dGVybiBIVFNWX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0oSGVhcFR1cGxlIGh0 dXAsIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAkJCQkJCQkJCQkJQnVmZmVyIGJ1ZmZlcik7 CitleHRlcm4gSFRTVl9SZXN1bHQgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtR2xvYmFsVmlzKEhl YXBUdXBsZSBodHVwLAorCQkJCQkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwgQnVm ZmVyIGJ1ZmZlcik7CiBleHRlcm4gSFRTVl9SZXN1bHQgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVt SG9yaXpvbihIZWFwVHVwbGUgaHR1cCwgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkJCQkJCSAgIFRy YW5zYWN0aW9uSWQgKmRlYWRfYWZ0ZXIpOwogZXh0ZXJuIHZvaWQgSGVhcFR1cGxlU2V0SGludEJp dHMoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLCBCdWZmZXIgYnVmZmVyLAotLSAKMi40My4wCgo= --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0012-Remove-xl_heap_visible-entirely.patch" Content-Disposition: attachment; filename="v6-0012-Remove-xl_heap_visible-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu6511 RnJvbSBhOTM0MWJkYTA1N2Q1MDc2OWI2ZmJiMTA5ZDg0NzMyNGFiODM3ZGU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE4IEp1biAyMDI1IDEyOjMwOjQyIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAxMi8yMF0gUmVtb3ZlIHhsX2hlYXBfdmlzaWJsZSBlbnRpcmVseQoKVGhlcmUgYXJl IG5vdyBubyB1c2VycyBvZiB0aGlzLCBzbyBlbGltaW5hdGUgaXQgZW50aXJlbHkuCi0tLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMgICAgICB8ICAgMyArLQogc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgICB8ICA1NCArLS0tLS0tLQogc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYyAgICB8IDE1NCArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jICAgICB8ICAxMCArLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jICB8IDEwNiArLS0tLS0tLS0tLS0tLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYyAgIHwgIDEwIC0tCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIHwgICAxIC0KIHNyYy9iYWNrZW5k L3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAgICAgfCAgMTIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW1feGxvZy5oICAgICAgICAgfCAgMjAgLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3Mvdmlz aWJpbGl0eW1hcC5oICAgICAgIHwgIDExICstCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0 eW1hcGRlZnMuaCAgIHwgICA5IC0tCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAg ICAgICAgIHwgICAxIC0KIDEzIGZpbGVzIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDM2NSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1h c2suYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vYnVmbWFzay5jCmluZGV4IGJiMjYwY2Zm YTY4Li4xZmZmMDEzODNiMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9i dWZtYXNrLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKQEAgLTU2 LDggKzU2LDcgQEAgbWFza19wYWdlX2hpbnRfYml0cyhQYWdlIHBhZ2UpCiAKIAkvKgogCSAqIER1 cmluZyByZXBsYXksIGlmIHRoZSBwYWdlIExTTiBoYXMgYWR2YW5jZWQgcGFzdCBvdXIgWExPRyBy ZWNvcmQncyBMU04sCi0JICogd2UgZG9uJ3QgbWFyayB0aGUgcGFnZSBhbGwtdmlzaWJsZS4gU2Vl IGhlYXBfeGxvZ192aXNpYmxlKCkgZm9yCi0JICogZGV0YWlscy4KKwkgKiB3ZSBkb24ndCBtYXJr IHRoZSBwYWdlIGFsbC12aXNpYmxlLgogCSAqLwogCVBhZ2VDbGVhckFsbFZpc2libGUocGFnZSk7 CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IDY4ZGI0MzI1Mjg1Li40OGY3Yjg0MTU2 YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl ICJhY2Nlc3MvdmFsaWQuaCIKICNpbmNsdWRlICJhY2Nlc3MvdmlzaWJpbGl0eW1hcC5oIgogI2lu Y2x1ZGUgImFjY2Vzcy94bG9naW5zZXJ0LmgiCisjaW5jbHVkZSAiYWNjZXNzL3hsb2d1dGlscy5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2RhdGFiYXNlX2QuaCIKICNpbmNsdWRlICJjb21tYW5kcy92YWN1dW0uaCIKQEAgLTI1MTIsMTEg KzI1MTMsMTEgQEAgaGVhcF9tdWx0aV9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIFR1cGxlVGFi bGVTbG90ICoqc2xvdHMsIGludCBudHVwbGVzLAogCQl7CiAJCQlQYWdlU2V0QWxsVmlzaWJsZShw YWdlKTsKIAkJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSk7Ci0J CQl2aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUocmVsYXRpb24sCi0JCQkJCQkJCQkgQnVmZmVyR2V0 QmxvY2tOdW1iZXIoYnVmZmVyKSwKLQkJCQkJCQkJCSB2bWJ1ZmZlciwKLQkJCQkJCQkJCSBWSVNJ QklMSVRZTUFQX0FMTF9WSVNJQkxFIHwKLQkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9GUk9a RU4pOworCQkJdmlzaWJpbGl0eW1hcF9zZXQocmVsYXRpb24sCisJCQkJCQkJICBCdWZmZXJHZXRC bG9ja051bWJlcihidWZmZXIpLAorCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkJICBWSVNJQklM SVRZTUFQX0FMTF9WSVNJQkxFIHwKKwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7 CiAJCX0KIAogCQkvKgpAQCAtODc4NCw0OSArODc4NSw2IEBAIGJvdHRvbXVwX3NvcnRfYW5kX3No cmluayhUTV9JbmRleERlbGV0ZU9wICpkZWxzdGF0ZSkKIAlyZXR1cm4gbmJsb2Nrc2Zhdm9yYWJs ZTsKIH0KIAotLyoKLSAqIFBlcmZvcm0gWExvZ0luc2VydCBmb3IgYSBoZWFwLXZpc2libGUgb3Bl cmF0aW9uLiAgJ2Jsb2NrJyBpcyB0aGUgYmxvY2sKLSAqIGJlaW5nIG1hcmtlZCBhbGwtdmlzaWJs ZSwgYW5kIHZtX2J1ZmZlciBpcyB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlCi0gKiBjb3JyZXNw b25kaW5nIHZpc2liaWxpdHkgbWFwIGJsb2NrLiAgQm90aCBzaG91bGQgaGF2ZSBhbHJlYWR5IGJl ZW4gbW9kaWZpZWQKLSAqIGFuZCBkaXJ0aWVkLgotICoKLSAqIHNuYXBzaG90Q29uZmxpY3RIb3Jp em9uIGNvbWVzIGZyb20gdGhlIGxhcmdlc3QgeG1pbiBvbiB0aGUgcGFnZSBiZWluZwotICogbWFy a2VkIGFsbC12aXNpYmxlLiAgUkVETyByb3V0aW5lIHVzZXMgaXQgdG8gZ2VuZXJhdGUgcmVjb3Zl cnkgY29uZmxpY3RzLgotICoKLSAqIElmIGNoZWNrc3VtcyBvciB3YWxfbG9nX2hpbnRzIGFyZSBl bmFibGVkLCB3ZSBtYXkgYWxzbyBnZW5lcmF0ZSBhIGZ1bGwtcGFnZQotICogaW1hZ2Ugb2YgaGVh cF9idWZmZXIuIE90aGVyd2lzZSwgd2Ugb3B0aW1pemUgYXdheSB0aGUgRlBJIChieSBzcGVjaWZ5 aW5nCi0gKiBSRUdCVUZfTk9fSU1BR0UgZm9yIHRoZSBoZWFwIGJ1ZmZlciksIGluIHdoaWNoIGNh c2UgdGhlIGNhbGxlciBzaG91bGQgKm5vdCoKLSAqIHVwZGF0ZSB0aGUgaGVhcCBwYWdlJ3MgTFNO LgotICovCi1YTG9nUmVjUHRyCi1sb2dfaGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVy IGhlYXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVyLAotCQkJCSBUcmFuc2FjdGlvbklkIHNuYXBz aG90Q29uZmxpY3RIb3Jpem9uLCB1aW50OCB2bWZsYWdzKQotewotCXhsX2hlYXBfdmlzaWJsZSB4 bHJlYzsKLQlYTG9nUmVjUHRyCXJlY3B0cjsKLQl1aW50OAkJZmxhZ3M7Ci0KLQlBc3NlcnQoQnVm ZmVySXNWYWxpZChoZWFwX2J1ZmZlcikpOwotCUFzc2VydChCdWZmZXJJc1ZhbGlkKHZtX2J1ZmZl cikpOwotCi0JeGxyZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBzbmFwc2hvdENvbmZsaWN0 SG9yaXpvbjsKLQl4bHJlYy5mbGFncyA9IHZtZmxhZ3M7Ci0JaWYgKFJlbGF0aW9uSXNBY2Nlc3Np YmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKSkKLQkJeGxyZWMuZmxhZ3MgfD0gVklTSUJJTElUWU1B UF9YTE9HX0NBVEFMT0dfUkVMOwotCVhMb2dCZWdpbkluc2VydCgpOwotCVhMb2dSZWdpc3RlckRh dGEoJnhscmVjLCBTaXplT2ZIZWFwVmlzaWJsZSk7Ci0KLQlYTG9nUmVnaXN0ZXJCdWZmZXIoMCwg dm1fYnVmZmVyLCAwKTsKLQotCWZsYWdzID0gUkVHQlVGX1NUQU5EQVJEOwotCWlmICghWExvZ0hp bnRCaXRJc05lZWRlZCgpKQotCQlmbGFncyB8PSBSRUdCVUZfTk9fSU1BR0U7Ci0JWExvZ1JlZ2lz dGVyQnVmZmVyKDEsIGhlYXBfYnVmZmVyLCBmbGFncyk7Ci0KLQlyZWNwdHIgPSBYTG9nSW5zZXJ0 KFJNX0hFQVAyX0lELCBYTE9HX0hFQVAyX1ZJU0lCTEUpOwotCi0JcmV0dXJuIHJlY3B0cjsKLX0K IAogLyoKICAqIFBlcmZvcm0gWExvZ0luc2VydCBmb3IgYSBoZWFwLXVwZGF0ZSBvcGVyYXRpb24u ICBDYWxsZXIgbXVzdCBhbHJlYWR5CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpp bmRleCAxNDU0MWUyZTk0Zi4uNjRmMDZkNDZiZjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtX3hsb2cuYwpAQCAtODIsMTAgKzgyLDYgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9n UmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJbWVtY3B5KCZ2bWZsYWdzLCBtYWluZGF0YXB0ciwgc2l6 ZW9mKHVpbnQ4KSk7CiAJCW1haW5kYXRhcHRyICs9IHNpemVvZih1aW50OCk7CiAKLQkJLyoKLQkJ ICogV2UgZG9uJ3Qgc2V0IFZJU0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JFTCBpbiB0aGUgY29t YmluZWQgcmVjb3JkCi0JCSAqIGJlY2F1c2Ugd2UgYWxyZWFkeSBoYXZlIFhMSFBfSVNfQ0FUQUxP R19SRUwuCi0JCSAqLwogCQlBc3NlcnQoKHZtZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJ VFMpID09IHZtZmxhZ3MpOwogCQkvKiBNdXN0IG5ldmVyIHNldCBhbGxfZnJvemVuIGJpdCB3aXRo b3V0IGFsc28gc2V0dGluZyBhbGxfdmlzaWJsZSBiaXQgKi8KIAkJQXNzZXJ0KHZtZmxhZ3MgIT0g VklTSUJJTElUWU1BUF9BTExfRlJPWkVOKTsKQEAgLTI2Nyw3ICsyNjMsNyBAQCBoZWFwX3hsb2df cHJ1bmVfZnJlZXplKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlSZWxhdGlvbglyZWxuID0g Q3JlYXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3IpOwogCiAJCXZpc2liaWxpdHltYXBfcGlu KHJlbG4sIGJsa25vLCAmdm1idWZmZXIpOwotCQlvbGRfdm1iaXRzID0gdmlzaWJpbGl0eW1hcF9z ZXRfdm1ieXRlKHJlbG4sIGJsa25vLCB2bWJ1ZmZlciwgdm1mbGFncyk7CisJCW9sZF92bWJpdHMg PSB2aXNpYmlsaXR5bWFwX3NldChyZWxuLCBibGtubywgdm1idWZmZXIsIHZtZmxhZ3MpOwogCQkv KiBPbmx5IHNldCBWTSBwYWdlIExTTiBpZiB3ZSBtb2RpZmllZCB0aGUgcGFnZSAqLwogCQlpZiAo b2xkX3ZtYml0cyAhPSB2bWZsYWdzKQogCQkJUGFnZVNldExTTihCdWZmZXJHZXRQYWdlKHZtYnVm ZmVyKSwgbHNuKTsKQEAgLTI3OCwxNDMgKzI3NCw2IEBAIGhlYXBfeGxvZ19wcnVuZV9mcmVlemUo WExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCVVubG9ja1JlbGVhc2VCdWZmZXIodm1idWZmZXIp OwogfQogCi0vKgotICogUmVwbGF5IFhMT0dfSEVBUDJfVklTSUJMRSByZWNvcmRzLgotICoKLSAq IFRoZSBjcml0aWNhbCBpbnRlZ3JpdHkgcmVxdWlyZW1lbnQgaGVyZSBpcyB0aGF0IHdlIG11c3Qg bmV2ZXIgZW5kIHVwIHdpdGgKLSAqIGEgc2l0dWF0aW9uIHdoZXJlIHRoZSB2aXNpYmlsaXR5IG1h cCBiaXQgaXMgc2V0LCBhbmQgdGhlIHBhZ2UtbGV2ZWwKLSAqIFBEX0FMTF9WSVNJQkxFIGJpdCBp cyBjbGVhci4gIElmIHRoYXQgd2VyZSB0byBvY2N1ciwgdGhlbiBhIHN1YnNlcXVlbnQKLSAqIHBh Z2UgbW9kaWZpY2F0aW9uIHdvdWxkIGZhaWwgdG8gY2xlYXIgdGhlIHZpc2liaWxpdHkgbWFwIGJp dC4KLSAqLwotc3RhdGljIHZvaWQKLWhlYXBfeGxvZ192aXNpYmxlKFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQotewotCVhMb2dSZWNQdHIJbHNuID0gcmVjb3JkLT5FbmRSZWNQdHI7Ci0JeGxfaGVh cF92aXNpYmxlICp4bHJlYyA9ICh4bF9oZWFwX3Zpc2libGUgKikgWExvZ1JlY0dldERhdGEocmVj b3JkKTsKLQlCdWZmZXIJCXZtYnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKLQlCdWZmZXIJCWJ1ZmZl cjsKLQlQYWdlCQlwYWdlOwotCVJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yOwotCUJsb2NrTnVtYmVy IGJsa25vOwotCVhMb2dSZWRvQWN0aW9uIGFjdGlvbjsKLQotCUFzc2VydCgoeGxyZWMtPmZsYWdz ICYgVklTSUJJTElUWU1BUF9YTE9HX1ZBTElEX0JJVFMpID09IHhscmVjLT5mbGFncyk7Ci0KLQlY TG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAxLCAmcmxvY2F0b3IsIE5VTEwsICZibGtubyk7Ci0K LQkvKgotCSAqIElmIHRoZXJlIGFyZSBhbnkgSG90IFN0YW5kYnkgdHJhbnNhY3Rpb25zIHJ1bm5p bmcgdGhhdCBoYXZlIGFuIHhtaW4KLQkgKiBob3Jpem9uIG9sZCBlbm91Z2ggdGhhdCB0aGlzIHBh Z2UgaXNuJ3QgYWxsLXZpc2libGUgZm9yIHRoZW0sIHRoZXkKLQkgKiBtaWdodCBpbmNvcnJlY3Rs eSBkZWNpZGUgdGhhdCBhbiBpbmRleC1vbmx5IHNjYW4gY2FuIHNraXAgYSBoZWFwIGZldGNoLgot CSAqCi0JICogTkI6IEl0IG1pZ2h0IGJlIGJldHRlciB0byB0aHJvdyBzb21lIGtpbmQgb2YgInNv ZnQiIGNvbmZsaWN0IGhlcmUgdGhhdAotCSAqIGZvcmNlcyBhbnkgaW5kZXgtb25seSBzY2FuIHRo YXQgaXMgaW4gZmxpZ2h0IHRvIHBlcmZvcm0gaGVhcCBmZXRjaGVzLAotCSAqIHJhdGhlciB0aGFu IGtpbGxpbmcgdGhlIHRyYW5zYWN0aW9uIG91dHJpZ2h0LgotCSAqLwotCWlmIChJbkhvdFN0YW5k YnkpCi0JCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5zbmFwc2hv dENvbmZsaWN0SG9yaXpvbiwKLQkJCQkJCQkJCQkJeGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1B UF9YTE9HX0NBVEFMT0dfUkVMLAotCQkJCQkJCQkJCQlybG9jYXRvcik7Ci0KLQkvKgotCSAqIFJl YWQgdGhlIGhlYXAgcGFnZSwgaWYgaXQgc3RpbGwgZXhpc3RzLiBJZiB0aGUgaGVhcCBmaWxlIGhh cyBkcm9wcGVkIG9yCi0JICogdHJ1bmNhdGVkIGxhdGVyIGluIHJlY292ZXJ5LCB3ZSBkb24ndCBu ZWVkIHRvIHVwZGF0ZSB0aGUgcGFnZSwgYnV0IHdlJ2QKLQkgKiBiZXR0ZXIgc3RpbGwgdXBkYXRl IHRoZSB2aXNpYmlsaXR5IG1hcC4KLQkgKi8KLQlhY3Rpb24gPSBYTG9nUmVhZEJ1ZmZlckZvclJl ZG8ocmVjb3JkLCAxLCAmYnVmZmVyKTsKLQlpZiAoYWN0aW9uID09IEJMS19ORUVEU19SRURPKQot CXsKLQkJLyoKLQkJICogV2UgZG9uJ3QgYnVtcCB0aGUgTFNOIG9mIHRoZSBoZWFwIHBhZ2Ugd2hl biBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5Ci0JCSAqIG1hcCBiaXQgKHVubGVzcyBjaGVja3N1bXMg b3Igd2FsX2hpbnRfYml0cyBpcyBlbmFibGVkLCBpbiB3aGljaAotCQkgKiBjYXNlIHdlIG11c3Qp LiBUaGlzIGV4cG9zZXMgdXMgdG8gdG9ybiBwYWdlIGhhemFyZHMsIGJ1dCBzaW5jZQotCQkgKiB3 ZSdyZSBub3QgaW5zcGVjdGluZyB0aGUgZXhpc3RpbmcgcGFnZSBjb250ZW50cyBpbiBhbnkgd2F5 LCB3ZQotCQkgKiBkb24ndCBjYXJlLgotCQkgKi8KLQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVm ZmVyKTsKLQotCQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQotCQlpZiAoWExvZ0hpbnRCaXRJ c05lZWRlZCgpKQotCQkJUGFnZVNldExTTihwYWdlLCBsc24pOwotCi0JCU1hcmtCdWZmZXJEaXJ0 eShidWZmZXIpOwotCX0KLQllbHNlIGlmIChhY3Rpb24gPT0gQkxLX1JFU1RPUkVEKQotCXsKLQkJ LyoKLQkJICogSWYgaGVhcCBibG9jayB3YXMgYmFja2VkIHVwLCB3ZSBhbHJlYWR5IHJlc3RvcmVk IGl0IGFuZCB0aGVyZSdzCi0JCSAqIG5vdGhpbmcgbW9yZSB0byBkby4gKFRoaXMgY2FuIG9ubHkg aGFwcGVuIHdpdGggY2hlY2tzdW1zIG9yCi0JCSAqIHdhbF9sb2dfaGludHMgZW5hYmxlZC4pCi0J CSAqLwotCX0KLQotCWlmIChCdWZmZXJJc1ZhbGlkKGJ1ZmZlcikpCi0JewotCQlTaXplCQlzcGFj ZSA9IFBhZ2VHZXRGcmVlU3BhY2UoQnVmZmVyR2V0UGFnZShidWZmZXIpKTsKLQotCQlVbmxvY2tS ZWxlYXNlQnVmZmVyKGJ1ZmZlcik7Ci0KLQkJLyoKLQkJICogU2luY2UgRlNNIGlzIG5vdCBXQUwt bG9nZ2VkIGFuZCBvbmx5IHVwZGF0ZWQgaGV1cmlzdGljYWxseSwgaXQKLQkJICogZWFzaWx5IGJl Y29tZXMgc3RhbGUgaW4gc3RhbmRieXMuICBJZiB0aGUgc3RhbmRieSBpcyBsYXRlciBwcm9tb3Rl ZAotCQkgKiBhbmQgcnVucyBWQUNVVU0sIGl0IHdpbGwgc2tpcCB1cGRhdGluZyBpbmRpdmlkdWFs IGZyZWUgc3BhY2UKLQkJICogZmlndXJlcyBmb3IgcGFnZXMgdGhhdCBiZWNhbWUgYWxsLXZpc2li bGUgKG9yIGFsbC1mcm96ZW4sIGRlcGVuZGluZwotCQkgKiBvbiB0aGUgdmFjdXVtIG1vZGUsKSB3 aGljaCBpcyB0cm91Ymxlc29tZSB3aGVuIEZyZWVTcGFjZU1hcFZhY3V1bQotCQkgKiBwcm9wYWdh dGVzIHRvbyBvcHRpbWlzdGljIGZyZWUgc3BhY2UgdmFsdWVzIHRvIHVwcGVyIEZTTSBsYXllcnM7 Ci0JCSAqIGxhdGVyIGluc2VydGVycyB0cnkgdG8gdXNlIHN1Y2ggcGFnZXMgb25seSB0byBmaW5k IG91dCB0aGF0IHRoZXkKLQkJICogYXJlIHVudXNhYmxlLiAgVGhpcyBjYW4gY2F1c2UgbG9uZyBz dGFsbHMgd2hlbiB0aGVyZSBhcmUgbWFueSBzdWNoCi0JCSAqIHBhZ2VzLgotCQkgKgotCQkgKiBG b3Jlc3RhbGwgdGhvc2UgcHJvYmxlbXMgYnkgdXBkYXRpbmcgRlNNJ3MgaWRlYSBhYm91dCBhIHBh Z2UgdGhhdAotCQkgKiBpcyBiZWNvbWluZyBhbGwtdmlzaWJsZSBvciBhbGwtZnJvemVuLgotCQkg KgotCQkgKiBEbyB0aGlzIHJlZ2FyZGxlc3Mgb2YgYSBmdWxsLXBhZ2UgaW1hZ2UgYmVpbmcgYXBw bGllZCwgc2luY2UgdGhlCi0JCSAqIEZTTSBkYXRhIGlzIG5vdCBpbiB0aGUgcGFnZSBhbnl3YXku Ci0JCSAqLwotCQlpZiAoeGxyZWMtPmZsYWdzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKQot CQkJWExvZ1JlY29yZFBhZ2VXaXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtubywgc3BhY2UpOwot CX0KLQotCS8qCi0JICogRXZlbiBpZiB3ZSBza2lwcGVkIHRoZSBoZWFwIHBhZ2UgdXBkYXRlIGR1 ZSB0byB0aGUgTFNOIGludGVybG9jaywgaXQncwotCSAqIHN0aWxsIHNhZmUgdG8gdXBkYXRlIHRo ZSB2aXNpYmlsaXR5IG1hcC4gIEFueSBXQUwgcmVjb3JkIHRoYXQgY2xlYXJzCi0JICogdGhlIHZp c2liaWxpdHkgbWFwIGJpdCBkb2VzIHNvIGJlZm9yZSBjaGVja2luZyB0aGUgcGFnZSBMU04sIHNv IGFueQotCSAqIGJpdHMgdGhhdCBuZWVkIHRvIGJlIGNsZWFyZWQgd2lsbCBzdGlsbCBiZSBjbGVh cmVkLgotCSAqLwotCWlmIChYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZChyZWNvcmQsIDAs IFJCTV9aRVJPX09OX0VSUk9SLCBmYWxzZSwKLQkJCQkJCQkJCSAgJnZtYnVmZmVyKSA9PSBCTEtf TkVFRFNfUkVETykKLQl7Ci0JCVBhZ2UJCXZtcGFnZSA9IEJ1ZmZlckdldFBhZ2Uodm1idWZmZXIp OwotCQlSZWxhdGlvbglyZWxuOwotCQl1aW50OAkJdm1iaXRzOwotCi0JCS8qIGluaXRpYWxpemUg dGhlIHBhZ2UgaWYgaXQgd2FzIHJlYWQgYXMgemVyb3MgKi8KLQkJaWYgKFBhZ2VJc05ldyh2bXBh Z2UpKQotCQkJUGFnZUluaXQodm1wYWdlLCBCTENLU1osIDApOwotCi0JCS8qIHJlbW92ZSBWSVNJ QklMSVRZTUFQX1hMT0dfKiAqLwotCQl2bWJpdHMgPSB4bHJlYy0+ZmxhZ3MgJiBWSVNJQklMSVRZ TUFQX1ZBTElEX0JJVFM7Ci0KLQkJLyoKLQkJICogWExvZ1JlYWRCdWZmZXJGb3JSZWRvRXh0ZW5k ZWQgbG9ja2VkIHRoZSBidWZmZXIuIEJ1dAotCQkgKiB2aXNpYmlsaXR5bWFwX3NldCB3aWxsIGhh bmRsZSBsb2NraW5nIGl0c2VsZi4KLQkJICovCi0JCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZF Ul9MT0NLX1VOTE9DSyk7Ci0KLQkJcmVsbiA9IENyZWF0ZUZha2VSZWxjYWNoZUVudHJ5KHJsb2Nh dG9yKTsKLQkJdmlzaWJpbGl0eW1hcF9waW4ocmVsbiwgYmxrbm8sICZ2bWJ1ZmZlcik7Ci0KLQkJ dmlzaWJpbGl0eW1hcF9zZXQocmVsbiwgYmxrbm8sIEludmFsaWRCdWZmZXIsIGxzbiwgdm1idWZm ZXIsCi0JCQkJCQkgIHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwgdm1iaXRzKTsKLQot CQlSZWxlYXNlQnVmZmVyKHZtYnVmZmVyKTsKLQkJRnJlZUZha2VSZWxjYWNoZUVudHJ5KHJlbG4p OwotCX0KLQllbHNlIGlmIChCdWZmZXJJc1ZhbGlkKHZtYnVmZmVyKSkKLQkJVW5sb2NrUmVsZWFz ZUJ1ZmZlcih2bWJ1ZmZlcik7Ci19Ci0KIC8qCiAgKiBHaXZlbiBhbiAiaW5mb2JpdHMiIGZpZWxk IGZyb20gYW4gWExvZyByZWNvcmQsIHNldCB0aGUgY29ycmVjdCBiaXRzIGluIHRoZQogICogZ2l2 ZW4gaW5mb21hc2sgYW5kIGluZm9tYXNrMiBmb3IgdGhlIHR1cGxlIHRvdWNoZWQgYnkgdGhlIHJl Y29yZC4KQEAgLTc5MSwxNiArNjUwLDE2IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJCVJlbGF0aW9uCXJlbG4gPSBDcmVhdGVGYWtlUmVsY2FjaGVF bnRyeShybG9jYXRvcik7CiAKIAkJdmlzaWJpbGl0eW1hcF9waW4ocmVsbiwgYmxrbm8sICZ2bWJ1 ZmZlcik7Ci0JCXZpc2liaWxpdHltYXBfc2V0X3ZtYnl0ZShyZWxuLCBibGtubywKLQkJCQkJCQkJ IHZtYnVmZmVyLAotCQkJCQkJCQkgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSB8Ci0JCQkJCQkJ CSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOwogCiAJCS8qCiAJCSAqIEl0IGlzIG5vdCBwb3Nz aWJsZSB0aGF0IHRoZSBWTSB3YXMgYWxyZWFkeSBzZXQgZm9yIHRoaXMgaGVhcCBwYWdlLAogCQkg KiBzbyB0aGUgdm1idWZmZXIgbXVzdCBoYXZlIGJlZW4gbW9kaWZpZWQgYW5kIG1hcmtlZCBkaXJ0 eS4KIAkJICovCiAJCUFzc2VydChCdWZmZXJJc0RpcnR5KHZtYnVmZmVyKSk7CisJCXZpc2liaWxp dHltYXBfc2V0KHJlbG4sIGJsa25vLAorCQkJCQkJICB2bWJ1ZmZlciwKKwkJCQkJCSAgVklTSUJJ TElUWU1BUF9BTExfVklTSUJMRSB8CisJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7 CiAJCVBhZ2VTZXRMU04oQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlciksIGxzbik7CiAJCUZyZWVGYWtl UmVsY2FjaGVFbnRyeShyZWxuKTsKIAl9CkBAIC0xMzgwLDkgKzEyMzksNiBAQCBoZWFwMl9yZWRv KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVN X0NMRUFOVVA6CiAJCQloZWFwX3hsb2dfcHJ1bmVfZnJlZXplKHJlY29yZCk7CiAJCQlicmVhazsK LQkJY2FzZSBYTE9HX0hFQVAyX1ZJU0lCTEU6Ci0JCQloZWFwX3hsb2dfdmlzaWJsZShyZWNvcmQp OwotCQkJYnJlYWs7CiAJCWNhc2UgWExPR19IRUFQMl9NVUxUSV9JTlNFUlQ6CiAJCQloZWFwX3hs b2dfbXVsdGlfaW5zZXJ0KHJlY29yZCk7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMKaW5kZXggODIxMjdlODcyOGIuLmZmYzEyMzE0YjQxIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYwpAQCAtOTc5LDggKzk3OSw4IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRf ZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQlpZiAoZG9fc2V0X3Zt KQogCQl7CiAJCQlMb2NrQnVmZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOwot CQkJb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfc2V0X3ZtYnl0ZShyZWxhdGlvbiwgYmxvY2tu bywKLQkJCQkJCQkJCQkJCSAgdm1idWZmZXIsIHZtZmxhZ3MpOworCQkJb2xkX3ZtYml0cyA9IHZp c2liaWxpdHltYXBfc2V0KHJlbGF0aW9uLCBibG9ja25vLAorCQkJCQkJCQkJCSAgIHZtYnVmZmVy LCB2bWZsYWdzKTsKIAogCQkJaWYgKG9sZF92bWJpdHMgPT0gdm1mbGFncykKIAkJCXsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA5MWUyMDk5MDFiOC4uNmEwZmEzNzFhMDYg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTE4ODcsOCArMTg4Nyw4IEBA IGxhenlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBC bG9ja051bWJlciBibGtubywKIAkJCU1hcmtCdWZmZXJEaXJ0eShidWYpOwogCiAJCQlMb2NrQnVm ZmVyKHZtYnVmZmVyLCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOwotCQkJdmlzaWJpbGl0eW1hcF9z ZXRfdm1ieXRlKHZhY3JlbC0+cmVsLCBibGtubywKLQkJCQkJCQkJCSB2bWJ1ZmZlciwgbmV3X3Zt Yml0cyk7CisJCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sCisJCQkJCQkJ ICB2bWJ1ZmZlciwgbmV3X3ZtYml0cyk7CiAKIAkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHZhY3Jl bC0+cmVsKSkKIAkJCXsKQEAgLTI3NTQsOSArMjc1NCw5IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFn ZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAog CQlzZXRfcGRfYWxsX3ZpcyA9IHRydWU7CiAJCUxvY2tCdWZmZXIodm1idWZmZXIsIEJVRkZFUl9M T0NLX0VYQ0xVU0lWRSk7CiAJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwotCQl2aXNpYmlsaXR5 bWFwX3NldF92bWJ5dGUodmFjcmVsLT5yZWwsCi0JCQkJCQkJCSBibGtubywKLQkJCQkJCQkJIHZt YnVmZmVyLCB2bWZsYWdzKTsKKwkJdmlzaWJpbGl0eW1hcF9zZXQodmFjcmVsLT5yZWwsCisJCQkJ CQkgIGJsa25vLAorCQkJCQkJICB2bWJ1ZmZlciwgdm1mbGFncyk7CiAJCWNvbmZsaWN0X3hpZCA9 IHZpc2liaWxpdHlfY3V0b2ZmX3hpZDsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2li aWxpdHltYXAuYwppbmRleCAwYmM2NDIwMzk1OS4uNWVkNTRlMDZkZDQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKQEAgLTE0LDggKzE0LDcgQEAKICAqCQl2aXNpYmls aXR5bWFwX2NsZWFyICAtIGNsZWFyIGJpdHMgZm9yIG9uZSBwYWdlIGluIHRoZSB2aXNpYmlsaXR5 IG1hcAogICoJCXZpc2liaWxpdHltYXBfcGluCSAtIHBpbiBhIG1hcCBwYWdlIGZvciBzZXR0aW5n IGEgYml0CiAgKgkJdmlzaWJpbGl0eW1hcF9waW5fb2sgLSBjaGVjayB3aGV0aGVyIGNvcnJlY3Qg bWFwIHBhZ2UgaXMgYWxyZWFkeSBwaW5uZWQKLSAqCQl2aXNpYmlsaXR5bWFwX3NldAkgLSBzZXQg YSBiaXQgaW4gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdlIGFuZCBsb2cKLSAqICAgICAgdmlzaWJp bGl0eW1hcF9zZXRfdm1ieXRlIC0gc2V0IGEgYml0IGluIGEgcGlubmVkIHBhZ2UKKyAqCQl2aXNp YmlsaXR5bWFwX3NldAkgLSBzZXQgYSBiaXQgaW4gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdlCiAg KgkJdmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzIC0gZ2V0IHN0YXR1cyBvZiBiaXRzCiAgKgkJdmlz aWJpbGl0eW1hcF9jb3VudCAgLSBjb3VudCBudW1iZXIgb2YgYml0cyBzZXQgaW4gdmlzaWJpbGl0 eSBtYXAKICAqCQl2aXNpYmlsaXR5bWFwX3ByZXBhcmVfdHJ1bmNhdGUgLQpAQCAtMjIwLDEwNSAr MjE5LDYgQEAgdmlzaWJpbGl0eW1hcF9waW5fb2soQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVy IHZtYnVmKQogCXJldHVybiBCdWZmZXJJc1ZhbGlkKHZtYnVmKSAmJiBCdWZmZXJHZXRCbG9ja051 bWJlcih2bWJ1ZikgPT0gbWFwQmxvY2s7CiB9CiAKLS8qCi0gKgl2aXNpYmlsaXR5bWFwX3NldCAt IHNldCBiaXQocykgb24gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdlCi0gKgotICogcmVjcHRyIGlz IHRoZSBMU04gb2YgdGhlIFhMT0cgcmVjb3JkIHdlJ3JlIHJlcGxheWluZywgaWYgd2UncmUgaW4g cmVjb3ZlcnksCi0gKiBvciBJbnZhbGlkWExvZ1JlY1B0ciBpbiBub3JtYWwgcnVubmluZy4gIFRo ZSBWTSBwYWdlIExTTiBpcyBhZHZhbmNlZCB0byB0aGUKLSAqIG9uZSBwcm92aWRlZDsgaW4gbm9y bWFsIHJ1bm5pbmcsIHdlIGdlbmVyYXRlIGEgbmV3IFhMT0cgcmVjb3JkIGFuZCBzZXQgdGhlCi0g KiBwYWdlIExTTiB0byB0aGF0IHZhbHVlICh0aG91Z2ggdGhlIGhlYXAgcGFnZSdzIExTTiBtYXkg Km5vdCogYmUgdXBkYXRlZDsKLSAqIHNlZSBiZWxvdykuICBjdXRvZmZfeGlkIGlzIHRoZSBsYXJn ZXN0IHhtaW4gb24gdGhlIHBhZ2UgYmVpbmcgbWFya2VkCi0gKiBhbGwtdmlzaWJsZTsgaXQgaXMg bmVlZGVkIGZvciBIb3QgU3RhbmRieSwgYW5kIGNhbiBiZSBJbnZhbGlkVHJhbnNhY3Rpb25JZAot ICogaWYgdGhlIHBhZ2UgY29udGFpbnMgbm8gdHVwbGVzLiAgSXQgY2FuIGFsc28gYmUgc2V0IHRv IEludmFsaWRUcmFuc2FjdGlvbklkCi0gKiB3aGVuIGEgcGFnZSB0aGF0IGlzIGFscmVhZHkgYWxs LXZpc2libGUgaXMgYmVpbmcgbWFya2VkIGFsbC1mcm96ZW4uCi0gKgotICogQ2FsbGVyIGlzIGV4 cGVjdGVkIHRvIHNldCB0aGUgaGVhcCBwYWdlJ3MgUERfQUxMX1ZJU0lCTEUgYml0IGJlZm9yZSBj YWxsaW5nCi0gKiB0aGlzIGZ1bmN0aW9uLiBFeGNlcHQgaW4gcmVjb3ZlcnksIGNhbGxlciBzaG91 bGQgYWxzbyBwYXNzIHRoZSBoZWFwCi0gKiBidWZmZXIuIFdoZW4gY2hlY2tzdW1zIGFyZSBlbmFi bGVkIGFuZCB3ZSdyZSBub3QgaW4gcmVjb3ZlcnksIHdlIG11c3QgYWRkCi0gKiB0aGUgaGVhcCBi dWZmZXIgdG8gdGhlIFdBTCBjaGFpbiB0byBwcm90ZWN0IGl0IGZyb20gYmVpbmcgdG9ybi4KLSAq Ci0gKiBZb3UgbXVzdCBwYXNzIGEgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGNvcnJlY3QgbWFwIHBh Z2UgdG8gdGhpcyBmdW5jdGlvbi4KLSAqIENhbGwgdmlzaWJpbGl0eW1hcF9waW4gZmlyc3QgdG8g cGluIHRoZSByaWdodCBvbmUuIFRoaXMgZnVuY3Rpb24gZG9lc24ndCBkbwotICogYW55IEkvTy4K LSAqCi0gKiBSZXR1cm5zIHRoZSBzdGF0ZSBvZiB0aGUgcGFnZSdzIFZNIGJpdHMgYmVmb3JlIHNl dHRpbmcgZmxhZ3MuCi0gKi8KLXVpbnQ4Ci12aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWws IEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAotCQkJCSAgWExvZ1JlY1B0ciBy ZWNwdHIsIEJ1ZmZlciB2bUJ1ZiwgVHJhbnNhY3Rpb25JZCBjdXRvZmZfeGlkLAotCQkJCSAgdWlu dDggZmxhZ3MpCi17Ci0JQmxvY2tOdW1iZXIgbWFwQmxvY2sgPSBIRUFQQkxLX1RPX01BUEJMT0NL KGhlYXBCbGspOwotCXVpbnQzMgkJbWFwQnl0ZSA9IEhFQVBCTEtfVE9fTUFQQllURShoZWFwQmxr KTsKLQl1aW50OAkJbWFwT2Zmc2V0ID0gSEVBUEJMS19UT19PRkZTRVQoaGVhcEJsayk7Ci0JUGFn ZQkJcGFnZTsKLQl1aW50OAkgICAqbWFwOwotCXVpbnQ4CQlzdGF0dXM7Ci0KLSNpZmRlZiBUUkFD RV9WSVNJQklMSVRZTUFQCi0JZWxvZyhERUJVRzEsICJ2bV9zZXQgJXMgJWQiLCBSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZShyZWwpLCBoZWFwQmxrKTsKLSNlbmRpZgotCi0JQXNzZXJ0KEluUmVjb3Zl cnkgfHwgWExvZ1JlY1B0cklzSW52YWxpZChyZWNwdHIpKTsKLQlBc3NlcnQoSW5SZWNvdmVyeSB8 fCBQYWdlSXNBbGxWaXNpYmxlKChQYWdlKSBCdWZmZXJHZXRQYWdlKGhlYXBCdWYpKSk7Ci0JQXNz ZXJ0KChmbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgPT0gZmxhZ3MpOwotCi0JLyog TXVzdCBuZXZlciBzZXQgYWxsX2Zyb3plbiBiaXQgd2l0aG91dCBhbHNvIHNldHRpbmcgYWxsX3Zp c2libGUgYml0ICovCi0JQXNzZXJ0KGZsYWdzICE9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7 Ci0KLQkvKiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IGhlYXAgcGFnZSBwaW5uZWQsIGlm IHByZXNlbnQgKi8KLQlpZiAoQnVmZmVySXNWYWxpZChoZWFwQnVmKSAmJiBCdWZmZXJHZXRCbG9j a051bWJlcihoZWFwQnVmKSAhPSBoZWFwQmxrKQotCQllbG9nKEVSUk9SLCAid3JvbmcgaGVhcCBi dWZmZXIgcGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0Iik7Ci0KLQkvKiBDaGVjayB0aGF0IHdl IGhhdmUgdGhlIHJpZ2h0IFZNIHBhZ2UgcGlubmVkICovCi0JaWYgKCFCdWZmZXJJc1ZhbGlkKHZt QnVmKSB8fCBCdWZmZXJHZXRCbG9ja051bWJlcih2bUJ1ZikgIT0gbWFwQmxvY2spCi0JCWVsb2co RVJST1IsICJ3cm9uZyBWTSBidWZmZXIgcGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0Iik7Ci0K LQlwYWdlID0gQnVmZmVyR2V0UGFnZSh2bUJ1Zik7Ci0JbWFwID0gKHVpbnQ4ICopIFBhZ2VHZXRD b250ZW50cyhwYWdlKTsKLQlMb2NrQnVmZmVyKHZtQnVmLCBCVUZGRVJfTE9DS19FWENMVVNJVkUp OwotCi0Jc3RhdHVzID0gKG1hcFttYXBCeXRlXSA+PiBtYXBPZmZzZXQpICYgVklTSUJJTElUWU1B UF9WQUxJRF9CSVRTOwotCWlmIChmbGFncyAhPSBzdGF0dXMpCi0JewotCQlTVEFSVF9DUklUX1NF Q1RJT04oKTsKLQotCQltYXBbbWFwQnl0ZV0gfD0gKGZsYWdzIDw8IG1hcE9mZnNldCk7Ci0JCU1h cmtCdWZmZXJEaXJ0eSh2bUJ1Zik7Ci0KLQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocmVsKSkKLQkJ ewotCQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQocmVjcHRyKSkKLQkJCXsKLQkJCQlBc3NlcnQo IUluUmVjb3ZlcnkpOwotCQkJCXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLCBoZWFwQnVm LCB2bUJ1ZiwgY3V0b2ZmX3hpZCwgZmxhZ3MpOwotCi0JCQkJLyoKLQkJCQkgKiBJZiBkYXRhIGNo ZWNrc3VtcyBhcmUgZW5hYmxlZCAob3Igd2FsX2xvZ19oaW50cz1vbiksIHdlCi0JCQkJICogbmVl ZCB0byBwcm90ZWN0IHRoZSBoZWFwIHBhZ2UgZnJvbSBiZWluZyB0b3JuLgotCQkJCSAqCi0JCQkJ ICogSWYgbm90LCB0aGVuIHdlIG11c3QgKm5vdCogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04u IEluCi0JCQkJICogdGhpcyBjYXNlLCB0aGUgRlBJIGZvciB0aGUgaGVhcCBwYWdlIHdhcyBvbWl0 dGVkIGZyb20gdGhlCi0JCQkJICogV0FMIHJlY29yZCBpbnNlcnRlZCBhYm92ZSwgc28gaXQgd291 bGQgYmUgaW5jb3JyZWN0IHRvCi0JCQkJICogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04uCi0J CQkJICovCi0JCQkJaWYgKFhMb2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJCQl7Ci0JCQkJCVBhZ2UJ CWhlYXBQYWdlID0gQnVmZmVyR2V0UGFnZShoZWFwQnVmKTsKLQotCQkJCQlQYWdlU2V0TFNOKGhl YXBQYWdlLCByZWNwdHIpOwotCQkJCX0KLQkJCX0KLQkJCVBhZ2VTZXRMU04ocGFnZSwgcmVjcHRy KTsKLQkJfQotCi0JCUVORF9DUklUX1NFQ1RJT04oKTsKLQl9Ci0KLQlMb2NrQnVmZmVyKHZtQnVm LCBCVUZGRVJfTE9DS19VTkxPQ0spOwotCXJldHVybiBzdGF0dXM7Ci19Ci0KIC8qCiAgKiBTZXQg ZmxhZ3MgaW4gdGhlIFZNIGJsb2NrIGNvbnRhaW5lZCBpbiB0aGUgcGFzc2VkIGluIHZtQnVmLgog ICoKQEAgLTMzOCw4ICsyMzgsOCBAQCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJs b2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAogICogbWFraW5nIGFueSBjaGFuZ2Vz IG5lZWRlZCB0byB0aGUgYXNzb2NpYXRlZCBoZWFwIHBhZ2UuCiAgKi8KIHVpbnQ4Ci12aXNpYmls aXR5bWFwX3NldF92bWJ5dGUoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLAotCQkJ CQkJIEJ1ZmZlciB2bUJ1ZiwgdWludDggZmxhZ3MpCit2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlv biByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssCisJCQkJICBCdWZmZXIgdm1CdWYsIHVpbnQ4IGZs YWdzKQogewogCUJsb2NrTnVtYmVyIG1hcEJsb2NrID0gSEVBUEJMS19UT19NQVBCTE9DSyhoZWFw QmxrKTsKIAl1aW50MzIJCW1hcEJ5dGUgPSBIRUFQQkxLX1RPX01BUEJZVEUoaGVhcEJsayk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jCmluZGV4IGQ2Yzg2Y2NhYzIwLi5mNzg4 MGE0ZWQ4MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNj LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKQEAgLTM1MSwx MyArMzUxLDYgQEAgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpy ZWNvcmQpCiAJCQl9CiAJCX0KIAl9Ci0JZWxzZSBpZiAoaW5mbyA9PSBYTE9HX0hFQVAyX1ZJU0lC TEUpCi0JewotCQl4bF9oZWFwX3Zpc2libGUgKnhscmVjID0gKHhsX2hlYXBfdmlzaWJsZSAqKSBy ZWM7Ci0KLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICJzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjog JXUsIGZsYWdzOiAweCUwMlgiLAotCQkJCQkJIHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpv biwgeGxyZWMtPmZsYWdzKTsKLQl9CiAJZWxzZSBpZiAoaW5mbyA9PSBYTE9HX0hFQVAyX01VTFRJ X0lOU0VSVCkKIAl7CiAJCXhsX2hlYXBfbXVsdGlfaW5zZXJ0ICp4bHJlYyA9ICh4bF9oZWFwX211 bHRpX2luc2VydCAqKSByZWM7CkBAIC00NjIsOSArNDU1LDYgQEAgaGVhcDJfaWRlbnRpZnkodWlu dDggaW5mbykKIAkJY2FzZSBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9DTEVBTlVQOgogCQkJaWQg PSAiUFJVTkVfVkFDVVVNX0NMRUFOVVAiOwogCQkJYnJlYWs7Ci0JCWNhc2UgWExPR19IRUFQMl9W SVNJQkxFOgotCQkJaWQgPSAiVklTSUJMRSI7Ci0JCQlicmVhazsKIAkJY2FzZSBYTE9HX0hFQVAy X01VTFRJX0lOU0VSVDoKIAkJCWlkID0gIk1VTFRJX0lOU0VSVCI7CiAJCQlicmVhazsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCmluZGV4IGNjMDNmMDcwNmU5Li4yZmRk NGFmOTBhOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNv ZGUuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCkBAIC00 NTQsNyArNDU0LDYgQEAgaGVhcDJfZGVjb2RlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwg WExvZ1JlY29yZEJ1ZmZlciAqYnVmKQogCQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfT05fQUNDRVNT OgogCQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX1NDQU46CiAJCWNhc2UgWExPR19IRUFQ Ml9QUlVORV9WQUNVVU1fQ0xFQU5VUDoKLQkJY2FzZSBYTE9HX0hFQVAyX1ZJU0lCTEU6CiAJCWNh c2UgWExPR19IRUFQMl9MT0NLX1VQREFURUQ6CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyBiL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvaXBjL3N0YW5kYnkuYwppbmRleCA0MjIyYmRhYjA3OC4uYzYxOTY0M2UxMjEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYworKysgYi9zcmMvYmFja2Vu ZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKQEAgLTQ3NSwxMiArNDc1LDEyIEBAIFJlc29sdmVSZWNv dmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhv cml6b24sCiAJICogSWYgd2UgZ2V0IHBhc3NlZCBJbnZhbGlkVHJhbnNhY3Rpb25JZCB0aGVuIHdl IGRvIG5vdGhpbmcgKG5vIGNvbmZsaWN0KS4KIAkgKgogCSAqIFRoaXMgY2FuIGhhcHBlbiB3aGVu IHJlcGxheWluZyBhbHJlYWR5LWFwcGxpZWQgV0FMIHJlY29yZHMgYWZ0ZXIgYQotCSAqIHN0YW5k YnkgY3Jhc2ggb3IgcmVzdGFydCwgb3Igd2hlbiByZXBsYXlpbmcgYW4gWExPR19IRUFQMl9WSVNJ QkxFCi0JICogcmVjb3JkIHRoYXQgbWFya3MgYXMgZnJvemVuIGEgcGFnZSB3aGljaCB3YXMgYWxy ZWFkeSBhbGwtdmlzaWJsZS4gIEl0J3MKLQkgKiBhbHNvIHF1aXRlIGNvbW1vbiB3aXRoIHJlY29y ZHMgZ2VuZXJhdGVkIGR1cmluZyBpbmRleCBkZWxldGlvbgotCSAqIChvcmlnaW5hbCBleGVjdXRp b24gb2YgdGhlIGRlbGV0aW9uIGNhbiByZWFzb24gdGhhdCBhIHJlY292ZXJ5IGNvbmZsaWN0Ci0J ICogd2hpY2ggaXMgc3VmZmljaWVudCBmb3IgdGhlIGRlbGV0aW9uIG9wZXJhdGlvbiBtdXN0IHRh a2UgcGxhY2UgYmVmb3JlCi0JICogcmVwbGF5IG9mIHRoZSBkZWxldGlvbiByZWNvcmQgaXRzZWxm KS4KKwkgKiBzdGFuZGJ5IGNyYXNoIG9yIHJlc3RhcnQsIG9yIHdoZW4gcmVwbGF5aW5nIGEgcmVj b3JkIHRoYXQgbWFya3MgYXMKKwkgKiBmcm96ZW4gYSBwYWdlIHdoaWNoIHdhcyBhbHJlYWR5IG1h cmtlZCBhbGwtdmlzaWJsZSBpbiB0aGUgdmlzaWJpbGl0eQorCSAqIG1hcC4gIEl0J3MgYWxzbyBx dWl0ZSBjb21tb24gd2l0aCByZWNvcmRzIGdlbmVyYXRlZCBkdXJpbmcgaW5kZXgKKwkgKiBkZWxl dGlvbiAob3JpZ2luYWwgZXhlY3V0aW9uIG9mIHRoZSBkZWxldGlvbiBjYW4gcmVhc29uIHRoYXQg YSByZWNvdmVyeQorCSAqIGNvbmZsaWN0IHdoaWNoIGlzIHN1ZmZpY2llbnQgZm9yIHRoZSBkZWxl dGlvbiBvcGVyYXRpb24gbXVzdCB0YWtlIHBsYWNlCisJICogYmVmb3JlIHJlcGxheSBvZiB0aGUg ZGVsZXRpb24gcmVjb3JkIGl0c2VsZikuCiAJICovCiAJaWYgKCFUcmFuc2FjdGlvbklkSXNWYWxp ZChzbmFwc2hvdENvbmZsaWN0SG9yaXpvbikpCiAJCXJldHVybjsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94 bG9nLmgKaW5kZXggY2VhZTljMDgzZmYuLmE2NDY3N2I3YmNhIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt X3hsb2cuaApAQCAtNjAsNyArNjAsNiBAQAogI2RlZmluZSBYTE9HX0hFQVAyX1BSVU5FX09OX0FD Q0VTUwkJMHgxMAogI2RlZmluZSBYTE9HX0hFQVAyX1BSVU5FX1ZBQ1VVTV9TQ0FOCTB4MjAKICNk ZWZpbmUgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUAkweDMwCi0jZGVmaW5lIFhMT0df SEVBUDJfVklTSUJMRQkJMHg0MAogI2RlZmluZSBYTE9HX0hFQVAyX01VTFRJX0lOU0VSVCAweDUw CiAjZGVmaW5lIFhMT0dfSEVBUDJfTE9DS19VUERBVEVEIDB4NjAKICNkZWZpbmUgWExPR19IRUFQ Ml9ORVdfQ0lECQkweDcwCkBAIC00MzgsMjAgKzQzNyw2IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hl YXBfaW5wbGFjZQogCiAjZGVmaW5lIE1pblNpemVPZkhlYXBJbnBsYWNlCShvZmZzZXRvZih4bF9o ZWFwX2lucGxhY2UsIG5tc2dzKSArIHNpemVvZihpbnQpKQogCi0vKgotICogVGhpcyBpcyB3aGF0 IHdlIG5lZWQgdG8ga25vdyBhYm91dCBzZXR0aW5nIGEgdmlzaWJpbGl0eSBtYXAgYml0Ci0gKgot ICogQmFja3VwIGJsayAwOiB2aXNpYmlsaXR5IG1hcCBidWZmZXIKLSAqIEJhY2t1cCBibGsgMTog aGVhcCBidWZmZXIKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF92aXNpYmxlCi17Ci0JVHJh bnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKLQl1aW50OAkJZmxhZ3M7Ci19IHhs X2hlYXBfdmlzaWJsZTsKLQotI2RlZmluZSBTaXplT2ZIZWFwVmlzaWJsZSAob2Zmc2V0b2YoeGxf aGVhcF92aXNpYmxlLCBmbGFncykgKyBzaXplb2YodWludDgpKQotCiB0eXBlZGVmIHN0cnVjdCB4 bF9oZWFwX25ld19jaWQKIHsKIAkvKgpAQCAtNDk1LDExICs0ODAsNiBAQCBleHRlcm4gdm9pZCBo ZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CiBleHRl cm4gY29uc3QgY2hhciAqaGVhcDJfaWRlbnRpZnkodWludDggaW5mbyk7CiBleHRlcm4gdm9pZCBo ZWFwX3hsb2dfbG9naWNhbF9yZXdyaXRlKFhMb2dSZWFkZXJTdGF0ZSAqcik7CiAKLWV4dGVybiBY TG9nUmVjUHRyIGxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZm ZXIsCi0JCQkJCQkJCSAgIEJ1ZmZlciB2bV9idWZmZXIsCi0JCQkJCQkJCSAgIFRyYW5zYWN0aW9u SWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCi0JCQkJCQkJCSAgIHVpbnQ4IHZtZmxhZ3MpOwot CiAvKiBpbiBoZWFwZGVzYy5jLCBzbyBpdCBjYW4gYmUgc2hhcmVkIGJldHdlZW4gZnJvbnRlbmQv YmFja2VuZCBjb2RlICovCiBleHRlcm4gdm9pZCBoZWFwX3hsb2dfZGVzZXJpYWxpemVfcHJ1bmVf YW5kX2ZyZWV6ZShjaGFyICpjdXJzb3IsIHVpbnQ4IGZsYWdzLAogCQkJCQkJCQkJCQkJICAgaW50 ICpucGxhbnMsIHhsaHBfZnJlZXplX3BsYW4gKipwbGFucywKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0 eW1hcC5oCmluZGV4IDk3NzU2NmY2Yjk4Li5jNWIxZTFmN2FkYiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXAuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvdmlz aWJpbGl0eW1hcC5oCkBAIC0xNSw3ICsxNSw2IEBACiAjZGVmaW5lIFZJU0lCSUxJVFlNQVBfSAog CiAjaW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgiCi0jaW5jbHVkZSAiYWNjZXNz L3hsb2dkZWZzLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9ibG9jay5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvYnVmLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsY2FjaGUuaCIKQEAgLTMxLDE0ICszMCw4IEBA IGV4dGVybiBib29sIHZpc2liaWxpdHltYXBfY2xlYXIoUmVsYXRpb24gcmVsLCBCbG9ja051bWJl ciBoZWFwQmxrLAogZXh0ZXJuIHZvaWQgdmlzaWJpbGl0eW1hcF9waW4oUmVsYXRpb24gcmVsLCBC bG9ja051bWJlciBoZWFwQmxrLAogCQkJCQkJCSAgQnVmZmVyICp2bWJ1Zik7CiBleHRlcm4gYm9v bCB2aXNpYmlsaXR5bWFwX3Bpbl9vayhCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgdm1idWYp OwotZXh0ZXJuIHVpbnQ4IHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwKLQkJCQkJCQkg ICBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKLQkJCQkJCQkgICBYTG9nUmVj UHRyIHJlY3B0ciwKLQkJCQkJCQkgICBCdWZmZXIgdm1CdWYsCi0JCQkJCQkJICAgVHJhbnNhY3Rp b25JZCBjdXRvZmZfeGlkLAotCQkJCQkJCSAgIHVpbnQ4IGZsYWdzKTsKLWV4dGVybiB1aW50OCB2 aXNpYmlsaXR5bWFwX3NldF92bWJ5dGUoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxr LAotCQkJCQkJCQkJICBCdWZmZXIgdm1CdWYsIHVpbnQ4IGZsYWdzKTsKK2V4dGVybiB1aW50OCB2 aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssCisJCQkJ CQkJICAgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncyk7CiBleHRlcm4gdWludDggdmlzaWJpbGl0 eW1hcF9nZXRfc3RhdHVzKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVy ICp2bWJ1Zik7CiBleHRlcm4gdm9pZCB2aXNpYmlsaXR5bWFwX2NvdW50KFJlbGF0aW9uIHJlbCwg QmxvY2tOdW1iZXIgKmFsbF92aXNpYmxlLCBCbG9ja051bWJlciAqYWxsX2Zyb3plbik7CiBleHRl cm4gQmxvY2tOdW1iZXIgdmlzaWJpbGl0eW1hcF9wcmVwYXJlX3RydW5jYXRlKFJlbGF0aW9uIHJl bCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oIGIv c3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKaW5kZXggNWFkNWMwMjA4Nzcu LmUwMWJjZTRjOTlmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1h cGRlZnMuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaApAQCAt MjEsMTQgKzIxLDUgQEAKICNkZWZpbmUgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOCTB4MDIKICNk ZWZpbmUgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTCTB4MDMJLyogT1Igb2YgYWxsIHZhbGlkIHZp c2liaWxpdHltYXAKIAkJCQkJCQkJCQkJICogZmxhZ3MgYml0cyAqLwotLyoKLSAqIFRvIGRldGVj dCByZWNvdmVyeSBjb25mbGljdHMgZHVyaW5nIGxvZ2ljYWwgZGVjb2Rpbmcgb24gYSBzdGFuZGJ5 LCB3ZSBuZWVkCi0gKiB0byBrbm93IGlmIGEgdGFibGUgaXMgYSB1c2VyIGNhdGFsb2cgdGFibGUu IEZvciB0aGF0IHdlIGFkZCBhbiBhZGRpdGlvbmFsCi0gKiBiaXQgaW50byB4bF9oZWFwX3Zpc2li bGUuZmxhZ3MsIGluIGFkZGl0aW9uIHRvIHRoZSBhYm92ZS4KLSAqCi0gKiBOQjogVklTSUJJTElU WU1BUF9YTE9HXyogbWF5IG5vdCBiZSBwYXNzZWQgdG8gdmlzaWJpbGl0eW1hcF9zZXQoKS4KLSAq LwotI2RlZmluZSBWSVNJQklMSVRZTUFQX1hMT0dfQ0FUQUxPR19SRUwJMHgwNAotI2RlZmluZSBW SVNJQklMSVRZTUFQX1hMT0dfVkFMSURfQklUUwkoVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTIHwg VklTSUJJTElUWU1BUF9YTE9HX0NBVEFMT0dfUkVMKQogCiAjZW5kaWYJCQkJCQkJLyogVklTSUJJ TElUWU1BUERFRlNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBlNmYyZTkzYjJk Ni4uOThiMWFkYzRlOWUgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC00Mjc0LDcgKzQy NzQsNiBAQCB4bF9oZWFwX3BydW5lCiB4bF9oZWFwX3Jld3JpdGVfbWFwcGluZwogeGxfaGVhcF90 cnVuY2F0ZQogeGxfaGVhcF91cGRhdGUKLXhsX2hlYXBfdmlzaWJsZQogeGxfaW52YWxpZF9wYWdl CiB4bF9pbnZhbGlkX3BhZ2Vfa2V5CiB4bF9pbnZhbGlkYXRpb25zCi0tIAoyLjQzLjAKCg== --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0011-Rename-PruneState.freeze-to-attempt_freeze.patch" Content-Disposition: attachment; filename="v6-0011-Rename-PruneState.freeze-to-attempt_freeze.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu6410 RnJvbSAwN2I3YmMwYmNjZDQxZDkzZTkyZTJkZWU0ZjVhMDIwZGJmM2U1YjBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDMxIEp1bCAyMDI1IDE0OjA3OjUxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAxMS8yMF0gUmVuYW1lIFBydW5lU3RhdGUuZnJlZXplIHRvIGF0dGVtcHRfZnJlZXpl CgpUaGlzIG1ha2VzIGl0IG1vcmUgY2xlYXIgdGhhdCB0aGlzIGlzIHRvIGluZGljYXRlIHRoZSBj YWxsZXIgd291bGQgbGlrZQpoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRvIGNvbnNpZGVy IGZyZWV6aW5nIHR1cGxlcyAtLSBub3QgdGhhdCB3ZQp1bHRpbWF0ZWx5IHdpbGwgZW5kIHVwIGZy ZWV6aW5nIHRoZW0uCgpBbHNvIHJlbmFtZSBsb2NhbCB2YXJpYWJsZSBoaW50X2JpdF9mcGkgdG8g ZGlkX3R1cGxlX2hpbnRfZnBpLiBUaGlzCm1ha2VzIGl0IGNsZWFyIGl0IGlzIGFib3V0IHR1cGxl IGhpbnRzIGFuZCBub3QgcGFnZSBoaW50cyBhbmQgdGhhdCBpdAppbmRpY2F0ZXMgc29tZXRoaW5n IHRoYXQgaGFwcGVuZWQgYW5kIG5vdCBzb21ldGhpbmcgdGhhdCBjb3VsZCBoYXBwZW4uCi0tLQog c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgfCAyMCArKysrKysrKysrLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggY2Y5ZTUyMTVkNmIuLjgyMTI3ZTg3 MjhiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtNDMsNyArNDMsNyBAQCB0 eXBlZGVmIHN0cnVjdAogCS8qIHdoZXRoZXIgb3Igbm90IGRlYWQgaXRlbXMgY2FuIGJlIHNldCBM UF9VTlVTRUQgZHVyaW5nIHBydW5pbmcgKi8KIAlib29sCQltYXJrX3VudXNlZF9ub3c7CiAJLyog d2hldGhlciB0byBhdHRlbXB0IGZyZWV6aW5nIHR1cGxlcyAqLwotCWJvb2wJCWZyZWV6ZTsKKwli b29sCQlhdHRlbXB0X2ZyZWV6ZTsKIAogCS8qCiAJICogV2hldGhlciBvciBub3QgdG8gY29uc2lk ZXIgdXBkYXRpbmcgdGhlIFZNLiBUaGVyZSBpcyBzb21lIGJvb2trZWVwaW5nCkBAIC00NTIsNyAr NDUyLDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1 ZmZlciBidWZmZXIsCiAJYm9vbAkJZG9fc2V0X3ZtOwogCXVpbnQ4CQl2bWZsYWdzID0gMDsKIAl1 aW50OAkJb2xkX3ZtYml0cyA9IDA7Ci0JYm9vbAkJaGludF9iaXRfZnBpOworCWJvb2wJCWRpZF90 dXBsZV9oaW50X2ZwaTsKIAlpbnQ2NAkJZnBpX2JlZm9yZSA9IHBnV2FsVXNhZ2Uud2FsX2ZwaTsK IAlib29sCQlhbGxfZnJvemVuX2V4Y2VwdF9scF9kZWFkID0gZmFsc2U7CiAJYm9vbAkJc2V0X3Bk X2FsbF92aXNpYmxlID0gZmFsc2U7CkBAIC00NjAsNyArNDYwLDcgQEAgaGVhcF9wYWdlX3BydW5l X2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJLyogQ29weSBw YXJhbWV0ZXJzIHRvIHByc3RhdGUgKi8KIAlwcnN0YXRlLnZpc3Rlc3QgPSB2aXN0ZXN0OwogCXBy c3RhdGUubWFya191bnVzZWRfbm93ID0gKG9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfTUFSS19V TlVTRURfTk9XKSAhPSAwOwotCXByc3RhdGUuZnJlZXplID0gKG9wdGlvbnMgJiBIRUFQX1BBR0Vf UFJVTkVfRlJFRVpFKSAhPSAwOworCXByc3RhdGUuYXR0ZW1wdF9mcmVlemUgPSAob3B0aW9ucyAm IEhFQVBfUEFHRV9QUlVORV9GUkVFWkUpICE9IDA7CiAJcHJzdGF0ZS5jb25zaWRlcl91cGRhdGVf dm0gPSAob3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9VUERBVEVfVk0pICE9IDA7CiAJcHJzdGF0 ZS5jdXRvZmZzID0gY3V0b2ZmczsKIApAQCAtNDg1LDcgKzQ4NSw3IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCiAJLyogaW5p dGlhbGl6ZSBwYWdlIGZyZWV6aW5nIHdvcmtpbmcgc3RhdGUgKi8KIAlwcnN0YXRlLnBhZ2Vmcnou ZnJlZXplX3JlcXVpcmVkID0gZmFsc2U7Ci0JaWYgKHByc3RhdGUuZnJlZXplKQorCWlmIChwcnN0 YXRlLmF0dGVtcHRfZnJlZXplKQogCXsKIAkJQXNzZXJ0KG5ld19yZWxmcm96ZW5feGlkICYmIG5l d19yZWxtaW5fbXhpZCk7CiAJCXByc3RhdGUucGFnZWZyei5GcmVlemVQYWdlUmVsZnJvemVuWGlk ID0gKm5ld19yZWxmcm96ZW5feGlkOwpAQCAtNTM1LDcgKzUzNSw3IEBAIGhlYXBfcGFnZV9wcnVu ZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIGJvb2tr ZWVwaW5nLiBJbml0aWFsaXppbmcgYWxsX3Zpc2libGUgdG8gZmFsc2UgYWxsb3dzIHNraXBwaW5n IHRoZSB3b3JrCiAJICogdG8gdXBkYXRlIHRoZW0gaW4gaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFu Z2VkX2xwX25vcm1hbCgpLgogCSAqLwotCWlmIChwcnN0YXRlLmZyZWV6ZSkKKwlpZiAocHJzdGF0 ZS5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCXByc3RhdGUuYWxsX3Zpc2libGUgPSB0cnVlOwogCQlw cnN0YXRlLmFsbF9mcm96ZW4gPSB0cnVlOwpAQCAtNjUzLDcgKzY1Myw3IEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCSAqIElm IGNoZWNrc3VtcyBhcmUgZW5hYmxlZCwgaGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFjdXVtKCkgbWF5 IGhhdmUgY2F1c2VkCiAJICogYW4gRlBJIHRvIGJlIGVtaXR0ZWQuCiAJICovCi0JaGludF9iaXRf ZnBpID0gZnBpX2JlZm9yZSAhPSBwZ1dhbFVzYWdlLndhbF9mcGk7CisJZGlkX3R1cGxlX2hpbnRf ZnBpID0gZnBpX2JlZm9yZSAhPSBwZ1dhbFVzYWdlLndhbF9mcGk7CiAKIAkvKgogCSAqIFByb2Nl c3MgSE9UIGNoYWlucy4KQEAgLTc3MCw3ICs3NzAsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2Zy ZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkgKiBwbGFucyB3ZSBwcmVw YXJlZCwgb3Igbm90LgogCSAqLwogCWRvX2ZyZWV6ZSA9IGZhbHNlOwotCWlmIChwcnN0YXRlLmZy ZWV6ZSkKKwlpZiAocHJzdGF0ZS5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCWlmIChwcnN0YXRlLnBh Z2VmcnouZnJlZXplX3JlcXVpcmVkKQogCQl7CkBAIC04MDMsNyArODAzLDcgQEAgaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQkJ ICovCiAJCQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocmVsYXRpb24pKQogCQkJCXsKLQkJCQkJaWYg KGhpbnRfYml0X2ZwaSkKKwkJCQkJaWYgKGRpZF90dXBsZV9oaW50X2ZwaSkKIAkJCQkJCWRvX2Zy ZWV6ZSA9IHRydWU7CiAJCQkJCWVsc2UgaWYgKGRvX3BydW5lKQogCQkJCQl7CkBAIC0xMTI3LDcg KzExMjcsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlciwKIAlwcmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRlLmxwZGVhZF9p dGVtczsKIAkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFscmVhZHkgZmls bGVkIGluICovCiAKLQlpZiAocHJzdGF0ZS5mcmVlemUpCisJaWYgKHByc3RhdGUuYXR0ZW1wdF9m cmVlemUpCiAJewogCQlpZiAocHJlc3VsdC0+bmZyb3plbiA+IDApCiAJCXsKQEAgLTE3MTQsNyAr MTcxNCw3IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwoUGFnZSBwYWdl LCBQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iCiAJICogdG8gdXBkYXRlIHRoZSBWTSwg d2UgaGF2ZSB0byBjYWxsIGhlYXBfcHJlcGFyZV9mcmVlemVfdHVwbGUoKSBvbiBldmVyeQogCSAq IHR1cGxlIHRvIGtub3cgd2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2lsbCBiZSB0b3RhbGx5IGZy b3plbi4KIAkgKi8KLQlpZiAocHJzdGF0ZS0+ZnJlZXplKQorCWlmIChwcnN0YXRlLT5hdHRlbXB0 X2ZyZWV6ZSkKIAl7CiAJCWJvb2wJCXRvdGFsbHlfZnJvemVuOwogCi0tIAoyLjQzLjAKCg== --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0015-Inline-TransactionIdFollows-Precedes.patch" Content-Disposition: attachment; filename="v6-0015-Inline-TransactionIdFollows-Precedes.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu6914 RnJvbSA1MzZkOTIxYTk0YmIzMjQyNTgzYzk3OTQ0ZTM1MWI2ZjZhMTdkNjAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDA5OjU3OjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAxNS8yMF0gSW5saW5lIFRyYW5zYWN0aW9uSWRGb2xsb3dzL1ByZWNlZGVzKCkKCkNh bGxpbmcgdGhlc2UgZnJvbSBvbi1hY2Nlc3MgcHJ1bmluZyBjb2RlIGhhZCBub3RpY2VhYmxlIG92 ZXJoZWFkIGluIGEKcHJvZmlsZS4gVGhlcmUgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHJlYXNvbiBu b3QgdG8gaW5saW5lIHRoZW0uCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdHJhbnNh bS5jIHwgNjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL3Ry YW5zYW0uaCAgICAgICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMiBmaWxl cyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90cmFuc2FtLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS90cmFuc2FtLmMKaW5kZXggOWEzOTQ1MWEyOWEuLjU1M2Q2NzU2Y2IzIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS90cmFuc2FtLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vdHJhbnNhbS5jCkBAIC0yNzMsNzAgKzI3Myw2IEBAIFRyYW5z YWN0aW9uSWRBYm9ydFRyZWUoVHJhbnNhY3Rpb25JZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rp b25JZCAqeGlkcykKIAkJCQkJCQkgICBUUkFOU0FDVElPTl9TVEFUVVNfQUJPUlRFRCwgSW52YWxp ZFhMb2dSZWNQdHIpOwogfQogCi0vKgotICogVHJhbnNhY3Rpb25JZFByZWNlZGVzIC0tLSBpcyBp ZDEgbG9naWNhbGx5IDwgaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklkUHJlY2VkZXMoVHJh bnNhY3Rpb25JZCBpZDEsIFRyYW5zYWN0aW9uSWQgaWQyKQotewotCS8qCi0JICogSWYgZWl0aGVy IElEIGlzIGEgcGVybWFuZW50IFhJRCB0aGVuIHdlIGNhbiBqdXN0IGRvIHVuc2lnbmVkCi0JICog Y29tcGFyaXNvbi4gIElmIGJvdGggYXJlIG5vcm1hbCwgZG8gYSBtb2R1bG8tMl4zMiBjb21wYXJp c29uLgotCSAqLwotCWludDMyCQlkaWZmOwotCi0JaWYgKCFUcmFuc2FjdGlvbklkSXNOb3JtYWwo aWQxKSB8fCAhVHJhbnNhY3Rpb25JZElzTm9ybWFsKGlkMikpCi0JCXJldHVybiAoaWQxIDwgaWQy KTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBpZDIpOwotCXJldHVybiAoZGlmZiA8IDApOwot fQotCi0vKgotICogVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMgLS0tIGlzIGlkMSBsb2dp Y2FsbHkgPD0gaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlvbklkUHJlY2VkZXNPckVxdWFscyhU cmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJCWRpZmY7Ci0K LQlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3Jt YWwoaWQyKSkKLQkJcmV0dXJuIChpZDEgPD0gaWQyKTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEg LSBpZDIpOwotCXJldHVybiAoZGlmZiA8PSAwKTsKLX0KLQotLyoKLSAqIFRyYW5zYWN0aW9uSWRG b2xsb3dzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID4gaWQyPwotICovCi1ib29sCi1UcmFuc2FjdGlv bklkRm9sbG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50 MzIJCWRpZmY7Ci0KLQlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2Fj dGlvbklkSXNOb3JtYWwoaWQyKSkKLQkJcmV0dXJuIChpZDEgPiBpZDIpOwotCi0JZGlmZiA9IChp bnQzMikgKGlkMSAtIGlkMik7Ci0JcmV0dXJuIChkaWZmID4gMCk7Ci19Ci0KLS8qCi0gKiBUcmFu c2FjdGlvbklkRm9sbG93c09yRXF1YWxzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID49IGlkMj8KLSAq LwotYm9vbAotVHJhbnNhY3Rpb25JZEZvbGxvd3NPckVxdWFscyhUcmFuc2FjdGlvbklkIGlkMSwg VHJhbnNhY3Rpb25JZCBpZDIpCi17Ci0JaW50MzIJCWRpZmY7Ci0KLQlpZiAoIVRyYW5zYWN0aW9u SWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQyKSkKLQkJcmV0dXJu IChpZDEgPj0gaWQyKTsKLQotCWRpZmYgPSAoaW50MzIpIChpZDEgLSBpZDIpOwotCXJldHVybiAo ZGlmZiA+PSAwKTsKLX0KLQogCiAvKgogICogVHJhbnNhY3Rpb25JZExhdGVzdCAtLS0gZ2V0IGxh dGVzdCBYSUQgYW1vbmcgYSBtYWluIHhhY3QgYW5kIGl0cyBjaGlsZHJlbgpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvYWNjZXNzL3RyYW5zYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2Ft LmgKaW5kZXggN2Q4MmNkMmViNTYuLmM5ZTIwNDE4Mjc1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvdHJhbnNhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2FtLmgKQEAg LTI1NSw2ICsyNTUsNzIgQEAgdHlwZWRlZiBzdHJ1Y3QgVHJhbnNhbVZhcmlhYmxlc0RhdGEKIH0g VHJhbnNhbVZhcmlhYmxlc0RhdGE7CiAKIAorCisvKgorICogVHJhbnNhY3Rpb25JZFByZWNlZGVz IC0tLSBpcyBpZDEgbG9naWNhbGx5IDwgaWQyPworICovCitzdGF0aWMgaW5saW5lIGJvb2wKK1Ry YW5zYWN0aW9uSWRQcmVjZWRlcyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIp Cit7CisJLyoKKwkgKiBJZiBlaXRoZXIgSUQgaXMgYSBwZXJtYW5lbnQgWElEIHRoZW4gd2UgY2Fu IGp1c3QgZG8gdW5zaWduZWQKKwkgKiBjb21wYXJpc29uLiAgSWYgYm90aCBhcmUgbm9ybWFsLCBk byBhIG1vZHVsby0yXjMyIGNvbXBhcmlzb24uCisJICovCisJaW50MzIJCWRpZmY7CisKKwlpZiAo IVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklkSXNOb3JtYWwoaWQy KSkKKwkJcmV0dXJuIChpZDEgPCBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlkMSAtIGlkMik7 CisJcmV0dXJuIChkaWZmIDwgMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklkUHJlY2VkZXNP ckVxdWFscyAtLS0gaXMgaWQxIGxvZ2ljYWxseSA8PSBpZDI/CisgKi8KK3N0YXRpYyBpbmxpbmUg Ym9vbAorVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMoVHJhbnNhY3Rpb25JZCBpZDEsIFRy YW5zYWN0aW9uSWQgaWQyKQoreworCWludDMyCQlkaWZmOworCisJaWYgKCFUcmFuc2FjdGlvbklk SXNOb3JtYWwoaWQxKSB8fCAhVHJhbnNhY3Rpb25JZElzTm9ybWFsKGlkMikpCisJCXJldHVybiAo aWQxIDw9IGlkMik7CisKKwlkaWZmID0gKGludDMyKSAoaWQxIC0gaWQyKTsKKwlyZXR1cm4gKGRp ZmYgPD0gMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlvbklkRm9sbG93cyAtLS0gaXMgaWQxIGxv Z2ljYWxseSA+IGlkMj8KKyAqLworc3RhdGljIGlubGluZSBib29sCitUcmFuc2FjdGlvbklkRm9s bG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpCit7CisJaW50MzIJCWRp ZmY7CisKKwlpZiAoIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDEpIHx8ICFUcmFuc2FjdGlvbklk SXNOb3JtYWwoaWQyKSkKKwkJcmV0dXJuIChpZDEgPiBpZDIpOworCisJZGlmZiA9IChpbnQzMikg KGlkMSAtIGlkMik7CisJcmV0dXJuIChkaWZmID4gMCk7Cit9CisKKy8qCisgKiBUcmFuc2FjdGlv bklkRm9sbG93c09yRXF1YWxzIC0tLSBpcyBpZDEgbG9naWNhbGx5ID49IGlkMj8KKyAqLworc3Rh dGljIGlubGluZSBib29sCitUcmFuc2FjdGlvbklkRm9sbG93c09yRXF1YWxzKFRyYW5zYWN0aW9u SWQgaWQxLCBUcmFuc2FjdGlvbklkIGlkMikKK3sKKwlpbnQzMgkJZGlmZjsKKworCWlmICghVHJh bnNhY3Rpb25JZElzTm9ybWFsKGlkMSkgfHwgIVRyYW5zYWN0aW9uSWRJc05vcm1hbChpZDIpKQor CQlyZXR1cm4gKGlkMSA+PSBpZDIpOworCisJZGlmZiA9IChpbnQzMikgKGlkMSAtIGlkMik7CisJ cmV0dXJuIChkaWZmID49IDApOworfQorCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0KICAqCQlleHRl cm4gZGVjbGFyYXRpb25zCiAgKiAtLS0tLS0tLS0tLS0tLS0tCkBAIC0yNzQsMTAgKzM0MCw2IEBA IGV4dGVybiBib29sIFRyYW5zYWN0aW9uSWREaWRBYm9ydChUcmFuc2FjdGlvbklkIHRyYW5zYWN0 aW9uSWQpOwogZXh0ZXJuIHZvaWQgVHJhbnNhY3Rpb25JZENvbW1pdFRyZWUoVHJhbnNhY3Rpb25J ZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25JZCAqeGlkcyk7CiBleHRlcm4gdm9pZCBUcmFu c2FjdGlvbklkQXN5bmNDb21taXRUcmVlKFRyYW5zYWN0aW9uSWQgeGlkLCBpbnQgbnhpZHMsIFRy YW5zYWN0aW9uSWQgKnhpZHMsIFhMb2dSZWNQdHIgbHNuKTsKIGV4dGVybiB2b2lkIFRyYW5zYWN0 aW9uSWRBYm9ydFRyZWUoVHJhbnNhY3Rpb25JZCB4aWQsIGludCBueGlkcywgVHJhbnNhY3Rpb25J ZCAqeGlkcyk7Ci1leHRlcm4gYm9vbCBUcmFuc2FjdGlvbklkUHJlY2VkZXMoVHJhbnNhY3Rpb25J ZCBpZDEsIFRyYW5zYWN0aW9uSWQgaWQyKTsKLWV4dGVybiBib29sIFRyYW5zYWN0aW9uSWRQcmVj ZWRlc09yRXF1YWxzKFRyYW5zYWN0aW9uSWQgaWQxLCBUcmFuc2FjdGlvbklkIGlkMik7Ci1leHRl cm4gYm9vbCBUcmFuc2FjdGlvbklkRm9sbG93cyhUcmFuc2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rp b25JZCBpZDIpOwotZXh0ZXJuIGJvb2wgVHJhbnNhY3Rpb25JZEZvbGxvd3NPckVxdWFscyhUcmFu c2FjdGlvbklkIGlkMSwgVHJhbnNhY3Rpb25JZCBpZDIpOwogZXh0ZXJuIFRyYW5zYWN0aW9uSWQg VHJhbnNhY3Rpb25JZExhdGVzdChUcmFuc2FjdGlvbklkIG1haW54aWQsCiAJCQkJCQkJCQkJIGlu dCBueGlkcywgY29uc3QgVHJhbnNhY3Rpb25JZCAqeGlkcyk7CiBleHRlcm4gWExvZ1JlY1B0ciBU cmFuc2FjdGlvbklkR2V0Q29tbWl0TFNOKFRyYW5zYWN0aW9uSWQgeGlkKTsKLS0gCjIuNDMuMAoK --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0017-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v6-0017-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu6b16 RnJvbSAxN2RhYmZiNmRhZGU1M2FiMWE3MzI3MmVkYzM4M2VkNDgyOTg5MzI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM0OjMwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAxNy8yMF0gQWxsb3cgb24tYWNjZXNzIHBydW5pbmcgdG8gc2V0IHBhZ2VzIGFsbC12 aXNpYmxlCgpNYW55IHF1ZXJpZXMgZG8gbm90IG1vZGlmeSB0aGUgdW5kZXJseWluZyByZWxhdGlv bi4gRm9yIHN1Y2ggcXVlcmllcywgaWYKb24tYWNjZXNzIHBydW5pbmcgb2NjdXJzIGR1cmluZyB0 aGUgc2Nhbiwgd2UgY2FuIGNoZWNrIHdoZXRoZXIgdGhlIHBhZ2UKaGFzIGJlY29tZSBhbGwtdmlz aWJsZSBhbmQgdXBkYXRlIHRoZSB2aXNpYmlsaXR5IG1hcCBhY2NvcmRpbmdseS4KUHJldmlvdXNs eSwgb25seSB2YWN1dW0gbWFya2VkIHBhZ2VzIGFzIGFsbC12aXNpYmxlIG9yIGFsbC1mcm96ZW4u CgpTdXBwb3J0aW5nIHRoaXMgcmVxdWlyZXMgcGFzc2luZyBpbmZvcm1hdGlvbiBhYm91dCB3aGV0 aGVyIHRoZSByZWxhdGlvbgppcyBtb2RpZmllZCBmcm9tIHRoZSBleGVjdXRvciBkb3duIHRvIHRo ZSBzY2FuIGRlc2NyaXB0b3IuCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIG9uLWFjY2VzcyBWTSBz ZXR0aW5nIGZvciBzZXF1ZW50aWFsIHNjYW5zIGFzIHdlbGwKYXMgZm9yIHRoZSB1bmRlcmx5aW5n IGhlYXAgcmVsYXRpb24gaW4gaW5kZXggc2NhbnMgYW5kIGJpdG1hcCBoZWFwCnNjYW5zLgotLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICAgICAgICB8IDE1ICsrKyst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jICAgICAgfCAxNSArKysr LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgICAgICAgIHwgNjMgKysr KysrKysrKysrKystLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYyAgICAg ICAgICAgIHwgNDYgKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJs ZWFtLmMgICAgICAgICAgICB8IDM5ICsrKysrKysrKystLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgIDQgKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNVdGlscy5jICAgICAgICAgICAgICB8ICAyICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVC aXRtYXBIZWFwc2Nhbi5jICAgICB8ICA3ICsrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUlu ZGV4c2Nhbi5jICAgICAgICAgIHwgMTggKysrKy0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl U2Vxc2Nhbi5jICAgICAgICAgICAgfCAyNCArKysrKy0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2Vu YW0uaCAgICAgICAgICAgICAgICAgICAgfCAxMSArKysrCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtLmggICAgICAgICAgICAgICAgICAgfCAyNCArKysrKystCiBzcmMvaW5jbHVkZS9hY2Nlc3Mv cmVsc2Nhbi5oICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2luY2x1ZGUvYWNjZXNzL3Rh YmxlYW0uaCAgICAgICAgICAgICAgICAgIHwgMzAgKysrKysrKystCiBzcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgNiArKwogLi4uL3QvMDM1X3N0YW5kYnlf bG9naWNhbF9kZWNvZGluZy5wbCAgICAgICAgIHwgIDggKystCiAxNiBmaWxlcyBjaGFuZ2VkLCAy NzggaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0u YwppbmRleCA0OGY3Yjg0MTU2YS4uZjkwYjAxNGE5YjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bS5jCkBAIC01NTYsNiArNTU2LDcgQEAgaGVhcF9wcmVwYXJlX3BhZ2VzY2FuKFRhYmxlU2NhbkRl c2Mgc3NjYW4pCiAJQnVmZmVyCQlidWZmZXIgPSBzY2FuLT5yc19jYnVmOwogCUJsb2NrTnVtYmVy IGJsb2NrID0gc2Nhbi0+cnNfY2Jsb2NrOwogCVNuYXBzaG90CXNuYXBzaG90OworCUJ1ZmZlcgkg ICAqdm1idWZmZXIgPSBOVUxMOwogCVBhZ2UJCXBhZ2U7CiAJaW50CQkJbGluZXM7CiAJYm9vbAkJ YWxsX3Zpc2libGU7CkBAIC01NzAsNyArNTcxLDkgQEAgaGVhcF9wcmVwYXJlX3BhZ2VzY2FuKFRh YmxlU2NhbkRlc2Mgc3NjYW4pCiAJLyoKIAkgKiBQcnVuZSBhbmQgcmVwYWlyIGZyYWdtZW50YXRp b24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3NzaWJsZS4KIAkgKi8KLQloZWFwX3BhZ2VfcHJ1 bmVfb3B0KHNjYW4tPnJzX2Jhc2UucnNfcmQsIGJ1ZmZlcik7CisJaWYgKHNzY2FuLT5yc19mbGFn cyAmIFNPX0FMTE9XX1ZNX1NFVCkKKwkJdm1idWZmZXIgPSAmc2Nhbi0+cnNfdm1idWZmZXI7CisJ aGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19iYXNlLnJzX3JkLCBidWZmZXIsIHZtYnVmZmVy KTsKIAogCS8qCiAJICogV2UgbXVzdCBob2xkIHNoYXJlIGxvY2sgb24gdGhlIGJ1ZmZlciBjb250 ZW50IHdoaWxlIGV4YW1pbmluZyB0dXBsZQpAQCAtMTIzNiw2ICsxMjM5LDcgQEAgaGVhcF9iZWdp bnNjYW4oUmVsYXRpb24gcmVsYXRpb24sIFNuYXBzaG90IHNuYXBzaG90LAogCQkJCQkJCQkJCQkJ CQkgIHNpemVvZihUQk1JdGVyYXRlUmVzdWx0KSk7CiAJfQogCisJc2Nhbi0+cnNfdm1idWZmZXIg PSBJbnZhbGlkQnVmZmVyOwogCiAJcmV0dXJuIChUYWJsZVNjYW5EZXNjKSBzY2FuOwogfQpAQCAt MTI3NCw2ICsxMjc4LDEyIEBAIGhlYXBfcmVzY2FuKFRhYmxlU2NhbkRlc2Mgc3NjYW4sIFNjYW5L ZXkga2V5LCBib29sIHNldF9wYXJhbXMsCiAJCXNjYW4tPnJzX2NidWYgPSBJbnZhbGlkQnVmZmVy OwogCX0KIAorCWlmIChCdWZmZXJJc1ZhbGlkKHNjYW4tPnJzX3ZtYnVmZmVyKSkKKwl7CisJCVJl bGVhc2VCdWZmZXIoc2Nhbi0+cnNfdm1idWZmZXIpOworCQlzY2FuLT5yc192bWJ1ZmZlciA9IElu dmFsaWRCdWZmZXI7CisJfQorCiAJLyoKIAkgKiBTT19UWVBFX0JJVE1BUFNDQU4gd291bGQgYmUg Y2xlYW5lZCB1cCBoZXJlLCBidXQgaXQgZG9lcyBub3QgaG9sZCBhbnkKIAkgKiBhZGRpdGlvbmFs IGRhdGEgdnMgYSBub3JtYWwgSGVhcFNjYW4KQEAgLTEzMDYsNiArMTMxNiw5IEBAIGhlYXBfZW5k c2NhbihUYWJsZVNjYW5EZXNjIHNzY2FuKQogCWlmIChCdWZmZXJJc1ZhbGlkKHNjYW4tPnJzX2Ni dWYpKQogCQlSZWxlYXNlQnVmZmVyKHNjYW4tPnJzX2NidWYpOwogCisJaWYgKEJ1ZmZlcklzVmFs aWQoc2Nhbi0+cnNfdm1idWZmZXIpKQorCQlSZWxlYXNlQnVmZmVyKHNjYW4tPnJzX3ZtYnVmZmVy KTsKKwogCS8qCiAJICogTXVzdCBmcmVlIHRoZSByZWFkIHN0cmVhbSBiZWZvcmUgZnJlZWluZyB0 aGUgQnVmZmVyQWNjZXNzU3RyYXRlZ3kuCiAJICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtX2hhbmRsZXIuYwppbmRleCBjYjRiYzM1YzkzZS4uYzY4MjgzZGU2ZjIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtODUsNiArODUsNyBAQCBoZWFwYW1f aW5kZXhfZmV0Y2hfYmVnaW4oUmVsYXRpb24gcmVsKQogCiAJaHNjYW4tPnhzX2Jhc2UucmVsID0g cmVsOwogCWhzY2FuLT54c19jYnVmID0gSW52YWxpZEJ1ZmZlcjsKKwloc2Nhbi0+eHNfdm1idWZm ZXIgPSBJbnZhbGlkQnVmZmVyOwogCiAJcmV0dXJuICZoc2Nhbi0+eHNfYmFzZTsKIH0KQEAgLTk5 LDYgKzEwMCwxMiBAQCBoZWFwYW1faW5kZXhfZmV0Y2hfcmVzZXQoSW5kZXhGZXRjaFRhYmxlRGF0 YSAqc2NhbikKIAkJUmVsZWFzZUJ1ZmZlcihoc2Nhbi0+eHNfY2J1Zik7CiAJCWhzY2FuLT54c19j YnVmID0gSW52YWxpZEJ1ZmZlcjsKIAl9CisKKwlpZiAoQnVmZmVySXNWYWxpZChoc2Nhbi0+eHNf dm1idWZmZXIpKQorCXsKKwkJUmVsZWFzZUJ1ZmZlcihoc2Nhbi0+eHNfdm1idWZmZXIpOworCQlo c2Nhbi0+eHNfdm1idWZmZXIgPSBJbnZhbGlkQnVmZmVyOworCX0KIH0KIAogc3RhdGljIHZvaWQK QEAgLTEzOCw3ICsxNDUsOCBAQCBoZWFwYW1faW5kZXhfZmV0Y2hfdHVwbGUoc3RydWN0IEluZGV4 RmV0Y2hUYWJsZURhdGEgKnNjYW4sCiAJCSAqIFBydW5lIHBhZ2UsIGJ1dCBvbmx5IGlmIHdlIHdl cmVuJ3QgYWxyZWFkeSBvbiB0aGlzIHBhZ2UKIAkJICovCiAJCWlmIChwcmV2X2J1ZiAhPSBoc2Nh bi0+eHNfY2J1ZikKLQkJCWhlYXBfcGFnZV9wcnVuZV9vcHQoaHNjYW4tPnhzX2Jhc2UucmVsLCBo c2Nhbi0+eHNfY2J1Zik7CisJCQloZWFwX3BhZ2VfcHJ1bmVfb3B0KGhzY2FuLT54c19iYXNlLnJl bCwgaHNjYW4tPnhzX2NidWYsCisJCQkJCQkJCXNjYW4tPm1vZGlmaWVzX2Jhc2VfcmVsID8gTlVM TCA6ICZoc2Nhbi0+eHNfdm1idWZmZXIpOwogCX0KIAogCS8qIE9idGFpbiBzaGFyZS1sb2NrIG9u IHRoZSBidWZmZXIgc28gd2UgY2FuIGV4YW1pbmUgdmlzaWJpbGl0eSAqLwpAQCAtMjQ3MSw2ICsy NDc5LDcgQEAgQml0bWFwSGVhcFNjYW5OZXh0QmxvY2soVGFibGVTY2FuRGVzYyBzY2FuLAogCVRC TUl0ZXJhdGVSZXN1bHQgKnRibXJlczsKIAlPZmZzZXROdW1iZXIgb2Zmc2V0c1tUQk1fTUFYX1RV UExFU19QRVJfUEFHRV07CiAJaW50CQkJbm9mZnNldHMgPSAtMTsKKwlCdWZmZXIJICAgKnZtYnVm ZmVyID0gTlVMTDsKIAogCUFzc2VydChzY2FuLT5yc19mbGFncyAmIFNPX1RZUEVfQklUTUFQU0NB Tik7CiAJQXNzZXJ0KGhzY2FuLT5yc19yZWFkX3N0cmVhbSk7CkBAIC0yNTE3LDcgKzI1MjYsOSBA QCBCaXRtYXBIZWFwU2Nhbk5leHRCbG9jayhUYWJsZVNjYW5EZXNjIHNjYW4sCiAJLyoKIAkgKiBQ cnVuZSBhbmQgcmVwYWlyIGZyYWdtZW50YXRpb24gZm9yIHRoZSB3aG9sZSBwYWdlLCBpZiBwb3Nz aWJsZS4KIAkgKi8KLQloZWFwX3BhZ2VfcHJ1bmVfb3B0KHNjYW4tPnJzX3JkLCBidWZmZXIpOwor CWlmIChzY2FuLT5yc19mbGFncyAmIFNPX0FMTE9XX1ZNX1NFVCkKKwkJdm1idWZmZXIgPSAmaHNj YW4tPnJzX3ZtYnVmZmVyOworCWhlYXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfcmQsIGJ1ZmZl ciwgdm1idWZmZXIpOwogCiAJLyoKIAkgKiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9jayBvbiB0aGUg YnVmZmVyIGNvbnRlbnQgd2hpbGUgZXhhbWluaW5nIHR1cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jCmluZGV4IDgwZDA1NWU1Mzc2Li5kYWQzNDFjYjI2NSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTE5OCw5ICsxOTgsMTMgQEAgc3RhdGljIGJvb2wgaWRlbnRp ZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbGF0aW9uLAogICogaWYgdGhlcmUn cyBub3QgYW55IHVzZSBpbiBwcnVuaW5nLgogICoKICAqIENhbGxlciBtdXN0IGhhdmUgcGluIG9u IHRoZSBidWZmZXIsIGFuZCBtdXN0ICpub3QqIGhhdmUgYSBsb2NrIG9uIGl0LgorICoKKyAqIElm IHZtYnVmZmVyIGlzIG5vdCBOVUxMLCBpdCBpcyBva2F5IGZvciBwcnVuaW5nIHRvIHNldCB0aGUg dmlzaWJpbGl0eSBtYXAgaWYKKyAqIHRoZSBwYWdlIGlzIGFsbCB2aXNpYmxlLiBXZSB3aWxsIHRh a2UgY2FyZSBvZiBwaW5uaW5nIGFuZCwgaWYgbmVlZGVkLAorICogcmVhZGluZyBpbiB0aGUgcGFn ZSBvZiB0aGUgdmlzaWJpbGl0eSBtYXAuCiAgKi8KIHZvaWQKLWhlYXBfcGFnZV9wcnVuZV9vcHQo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIpCitoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLCBCdWZmZXIgKnZtYnVmZmVyKQogewogCVBh Z2UJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAJVHJhbnNhY3Rpb25JZCBwcnVuZV94 aWQ7CkBAIC0yNjQsNiArMjY4LDEzIEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVs YXRpb24sIEJ1ZmZlciBidWZmZXIpCiAJCXsKIAkJCU9mZnNldE51bWJlciBkdW1teV9vZmZfbG9j OwogCQkJUHJ1bmVGcmVlemVSZXN1bHQgcHJlc3VsdDsKKwkJCWludAkJCW9wdGlvbnMgPSAwOwor CisJCQlpZiAodm1idWZmZXIpCisJCQl7CisJCQkJdmlzaWJpbGl0eW1hcF9waW4ocmVsYXRpb24s IEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZlciksIHZtYnVmZmVyKTsKKwkJCQlvcHRpb25zID0g SEVBUF9QQUdFX1BSVU5FX1VQREFURV9WTTsKKwkJCX0KIAogCQkJLyoKIAkJCSAqIEZvciBub3cs IHBhc3MgbWFya191bnVzZWRfbm93IGFzIGZhbHNlIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvcgpA QCAtMjcxLDkgKzI4MiwxMCBAQCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9u LCBCdWZmZXIgYnVmZmVyKQogCQkJICogdGhhdCBkdXJpbmcgb24tYWNjZXNzIHBydW5pbmcgd2l0 aCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAqLwogCQkJaGVhcF9wYWdlX3BydW5l X2FuZF9mcmVlemUocmVsYXRpb24sIGJ1ZmZlciwgZmFsc2UsCi0JCQkJCQkJCQkgICBJbnZhbGlk QnVmZmVyLAotCQkJCQkJCQkJICAgdmlzdGVzdCwgMCwKLQkJCQkJCQkJCSAgIE5VTEwsICZwcmVz dWx0LCBQUlVORV9PTl9BQ0NFU1MsICZkdW1teV9vZmZfbG9jLCBOVUxMLCBOVUxMKTsKKwkJCQkJ CQkJCSAgIHZtYnVmZmVyID8gKnZtYnVmZmVyIDogSW52YWxpZEJ1ZmZlciwKKwkJCQkJCQkJCSAg IHZpc3Rlc3QsIG9wdGlvbnMsCisJCQkJCQkJCQkgICBOVUxMLCAmcHJlc3VsdCwgUFJVTkVfT05f QUNDRVNTLAorCQkJCQkJCQkJICAgJmR1bW15X29mZl9sb2MsIE5VTEwsIE5VTEwpOwogCiAJCQkv KgogCQkJICogUmVwb3J0IHRoZSBudW1iZXIgb2YgdHVwbGVzIHJlY2xhaW1lZCB0byBwZ3N0YXRz LiAgVGhpcyBpcwpAQCAtNTEzLDEyICs1MjUsMTcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJICogYWxsLWZyb3plbiBmb3Ig dXNlIGluIG9wcG9ydHVuaXN0aWMgZnJlZXppbmcgYW5kIHRvIHVwZGF0ZSB0aGUgVk0gaWYKIAkg KiB0aGUgY2FsbGVyIHJlcXVlc3RzIGl0LgogCSAqCi0JICogQ3VycmVudGx5LCBvbmx5IFZBQ1VV TSBhdHRlbXB0cyBmcmVlemluZyBhbmQgc2V0dGluZyB0aGUgVk0gYml0cy4gQnV0Ci0JICogb3Ro ZXIgY2FsbGVycyBjb3VsZCBkbyBlaXRoZXIgb25lLiBUaGUgdmlzaWJpbGl0eSBib29ra2VlcGlu ZyBpcwotCSAqIHJlcXVpcmVkIGZvciBvcHBvcnR1bmlzdGljIGZyZWV6aW5nIChpbiBhZGRpdGlv biB0byBzZXR0aW5nIHRoZSBWTQotCSAqIGJpdHMpIGJlY2F1c2Ugd2Ugb25seSBjb25zaWRlciBv cHBvcnR1bmlzdGljYWxseSBmcmVlemluZyB0dXBsZXMgaWYgdGhlCi0JICogd2hvbGUgcGFnZSB3 b3VsZCBiZWNvbWUgYWxsLWZyb3plbiBvciBpZiB0aGUgd2hvbGUgcGFnZSB3aWxsIGJlIGZyb3pl bgotCSAqIGV4Y2VwdCBmb3IgZGVhZCB0dXBsZXMgdGhhdCB3aWxsIGJlIHJlbW92ZWQgYnkgdmFj dXVtLgorCSAqIEN1cnJlbnRseSwgb25seSBWQUNVVU0gYXR0ZW1wdHMgZnJlZXppbmcuIEJ1dCBv dGhlciBjYWxsZXJzIGNvdWxkLiBUaGUKKwkgKiB2aXNpYmlsaXR5IGJvb2trZWVwaW5nIGlzIHJl cXVpcmVkIGZvciBvcHBvcnR1bmlzdGljIGZyZWV6aW5nIChpbgorCSAqIGFkZGl0aW9uIHRvIHNl dHRpbmcgdGhlIFZNIGJpdHMpIGJlY2F1c2Ugd2Ugb25seSBjb25zaWRlcgorCSAqIG9wcG9ydHVu aXN0aWNhbGx5IGZyZWV6aW5nIHR1cGxlcyBpZiB0aGUgd2hvbGUgcGFnZSB3b3VsZCBiZWNvbWUK KwkgKiBhbGwtZnJvemVuIG9yIGlmIHRoZSB3aG9sZSBwYWdlIHdpbGwgYmUgZnJvemVuIGV4Y2Vw dCBmb3IgZGVhZCB0dXBsZXMKKwkgKiB0aGF0IHdpbGwgYmUgcmVtb3ZlZCBieSB2YWN1dW0uIEJ1 dCBpZiBjb25zaWRlcl91cGRhdGVfdm0gaXMgZmFsc2UsCisJICogd2UnbGwgbm90IHNldCB0aGUg Vk0gZXZlbiBpZiB0aGUgcGFnZSBpcyBkaXNjb3ZlcmVkIHRvIGJlIGFsbC12aXNpYmxlLgorCSAq CisJICogSWYgb25seSBIRUFQX1BBR0VfUFJVTkVfVVBEQVRFX1ZNIGlzIHBhc3NlZCBhbmQgbm90 CisJICogSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSwgcHJzdGF0ZS5hbGxfZnJvemVuIG11c3QgYmUg aW5pdGlhbGl6ZWQgdG8gZmFsc2UKKwkgKiBiZWNhdXNlIHdlIHdpbGwgbm90IGNhbGwgaGVhcF9w cmVwYXJlX2ZyZWV6ZV90dXBsZSgpIG9uIGVhY2ggdHVwbGUuCiAJICoKIAkgKiBJZiBvbmx5IHVw ZGF0aW5nIHRoZSBWTSwgd2UgbXVzdCBpbml0aWFsaXplIGFsbF9mcm96ZW4gdG8gZmFsc2UsIGFz CiAJICogaGVhcF9wcmVwYXJlX2ZyZWV6ZV90dXBsZSgpIHdpbGwgbm90IGJlIGNhbGxlZCBmb3Ig ZWFjaCB0dXBsZSBvbiB0aGUKQEAgLTUzMCw3ICs1NDcsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5k X2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkgKiB3aGV0aGVyIG9y IG5vdCB0byBmcmVlemUgYnV0IGJlZm9yZSBkZWNpZGluZyB3aGV0aGVyIG9yIG5vdCB0byB1cGRh dGUKIAkgKiB0aGUgVk0gc28gdGhhdCB3ZSBkb24ndCBzZXQgdGhlIFZNIGJpdCBpbmNvcnJlY3Rs eS4KIAkgKgotCSAqIElmIG5vdCBmcmVlemluZyBvciB1cGRhdGluZyB0aGUgVk0sIHdlIG90aGVy d2lzZSBhdm9pZCB0aGUgZXh0cmEKKwkgKiBJZiBub3QgZnJlZXppbmcgYW5kIG5vdCB1cGRhdGlu ZyB0aGUgVk0sIHdlIGF2b2lkIHRoZSBleHRyYQogCSAqIGJvb2trZWVwaW5nLiBJbml0aWFsaXpp bmcgYWxsX3Zpc2libGUgdG8gZmFsc2UgYWxsb3dzIHNraXBwaW5nIHRoZSB3b3JrCiAJICogdG8g dXBkYXRlIHRoZW0gaW4gaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbCgpLgog CSAqLwpAQCAtODc5LDEyICs4OTYsMzAgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVs YXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCXByc3RhdGUuYWxsX2Zyb3plbiA9IGZh bHNlOwogCX0KIAorCS8qCisJICogSWYgdGhpcyBpcyBhbiBvbi1hY2Nlc3MgY2FsbCBhbmQgd2Un cmUgbm90IGFjdHVhbGx5IHBydW5pbmcsIGF2b2lkCisJICogc2V0dGluZyB0aGUgdmlzaWJpbGl0 eSBtYXAgaWYgaXQgd291bGQgbmV3bHkgZGlydHkgdGhlIGhlYXAgcGFnZSBvciwgaWYKKwkgKiB0 aGUgcGFnZSBpcyBhbHJlYWR5IGRpcnR5LCBpZiBkb2luZyBzbyB3b3VsZCByZXF1aXJlIGluY2x1 ZGluZyBhCisJICogZnVsbC1wYWdlIGltYWdlIChGUEkpIG9mIHRoZSBoZWFwIHBhZ2UgaW4gdGhl IFdBTC4gVGhpcyBzaXR1YXRpb24KKwkgKiBzaG91bGQgYmUgcmFyZSwgYXMgb24tYWNjZXNzIHBy dW5pbmcgaXMgb25seSBhdHRlbXB0ZWQgd2hlbgorCSAqIHBkX3BydW5lX3hpZCBpcyB2YWxpZC4K KwkgKi8KKwlpZiAocmVhc29uID09IFBSVU5FX09OX0FDQ0VTUyAmJgorCQlwcnN0YXRlLmNvbnNp ZGVyX3VwZGF0ZV92bSAmJgorCQlwcnN0YXRlLmFsbF92aXNpYmxlICYmCisJCSFkb19wcnVuZSAm JiAhZG9fZnJlZXplICYmCisJCSghQnVmZmVySXNEaXJ0eShidWZmZXIpIHx8IFhMb2dDaGVja0J1 ZmZlck5lZWRzQmFja3VwKGJ1ZmZlcikpKQorCXsKKwkJcHJzdGF0ZS5jb25zaWRlcl91cGRhdGVf dm0gPSBmYWxzZTsKKwkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IHByc3RhdGUuYWxsX2Zyb3plbiA9 IGZhbHNlOworCX0KKwogCUFzc2VydCghcHJzdGF0ZS5hbGxfZnJvemVuIHx8IHByc3RhdGUuYWxs X3Zpc2libGUpOwogCiAJLyoKLQkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQg YmFzZWQgb24gaW5mb3JtYXRpb24gZnJvbSB0aGUgVk0gKGFzCi0JICogb2YgbGFzdCBoZWFwX3Zh Y19zY2FuX25leHRfYmxvY2soKSBjYWxsKSwgYW5kIGZyb20gYWxsX3Zpc2libGUgYW5kCi0JICog YWxsX2Zyb3plbiB2YXJpYWJsZXMuCisJICogSGFuZGxlIHNldHRpbmcgdmlzaWJpbGl0eSBtYXAg Yml0IGJhc2VkIG9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFZNIChpZgorCSAqIHByb3ZpZGVkLCBl LmcuIGJ5IHZhY3V1bSBmcm9tIHRoZSBsYXN0IGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpCisJ ICogY2FsbCksIGFuZCBmcm9tIGFsbF92aXNpYmxlIGFuZCBhbGxfZnJvemVuIHZhcmlhYmxlcy4K IAkgKi8KIAlpZiAocHJzdGF0ZS5jb25zaWRlcl91cGRhdGVfdm0pCiAJewpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9p bmRleC9pbmRleGFtLmMKaW5kZXggMjE5ZGYxOTcxZGEuLmQ4MDNjMzA3NTE3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9pbmRleC9pbmRleGFtLmMKQEAgLTI3OSw2ICsyNzksMzIgQEAgaW5kZXhfYmVnaW5zY2Fu KFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAlyZXR1cm4gc2NhbjsKIH0KIAorLyoKKyAqIFNpbWls YXIgdG8gaW5kZXhfYmVnaW5zY2FuKCksIGJ1dCBhbGxvd3MgdGhlIGNhbGxlciB0byBpbmRpY2F0 ZSB3aGV0aGVyIHRoZQorICogcXVlcnkgbW9kaWZpZXMgdGhlIHVuZGVybHlpbmcgYmFzZSByZWxh dGlvbi4gVGhpcyBpcyB1c2VkIHdoZW4gdGhlIGNhbGxlcgorICogd2FudHMgdG8gYXR0ZW1wdCBt YXJraW5nIHBhZ2VzIGluIHRoZSBiYXNlIHJlbGF0aW9uIGFzIGFsbC12aXNpYmxlIGluIHRoZQor ICogdmlzaWJpbGl0eSBtYXAgZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nLgorICovCitJbmRleFNj YW5EZXNjCitpbmRleF9iZWdpbnNjYW5fdm1zZXQoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAorCQkJ CQkgIFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCisJCQkJCSAgU25hcHNob3Qgc25hcHNob3QsCisJ CQkJCSAgSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAorCQkJCQkgIGludCBu a2V5cywgaW50IG5vcmRlcmJ5cywgYm9vbCBtb2RpZmllc19iYXNlX3JlbCkKK3sKKwlJbmRleFNj YW5EZXNjIHNjYW47CisKKwlzY2FuID0gaW5kZXhfYmVnaW5zY2FuKGhlYXBSZWxhdGlvbiwKKwkJ CQkJCSAgIGluZGV4UmVsYXRpb24sCisJCQkJCQkgICBzbmFwc2hvdCwKKwkJCQkJCSAgIGluc3Ry dW1lbnQsCisJCQkJCQkgICBua2V5cywgbm9yZGVyYnlzKTsKKworCXNjYW4tPnhzX2hlYXBmZXRj aC0+bW9kaWZpZXNfYmFzZV9yZWwgPSBtb2RpZmllc19iYXNlX3JlbDsKKworCXJldHVybiBzY2Fu OworfQorCiAvKgogICogaW5kZXhfYmVnaW5zY2FuX2JpdG1hcCAtIHN0YXJ0IGEgc2NhbiBvZiBh biBpbmRleCB3aXRoIGFtZ2V0Yml0bWFwCiAgKgpAQCAtNjEwLDYgKzYzNiwyNiBAQCBpbmRleF9i ZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gaGVhcHJlbCwgUmVsYXRpb24gaW5kZXhyZWwsCiAJ cmV0dXJuIHNjYW47CiB9CiAKKy8qCisgKiBQYXJhbGxlbCB2ZXJzaW9uIG9mIGluZGV4X2JlZ2lu c2Nhbl92bXNldCgpCisgKi8KK0luZGV4U2NhbkRlc2MKK2luZGV4X2JlZ2luc2Nhbl9wYXJhbGxl bF92bXNldChSZWxhdGlvbiBoZWFwcmVsLCBSZWxhdGlvbiBpbmRleHJlbCwKKwkJCQkJCQkgICBJ bmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCisJCQkJCQkJICAgaW50IG5rZXlz LCBpbnQgbm9yZGVyYnlzLAorCQkJCQkJCSAgIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2NhbiwK KwkJCQkJCQkgICBib29sIG1vZGlmaWVzX2Jhc2VfcmVsKQoreworCUluZGV4U2NhbkRlc2Mgc2Nh bjsKKworCXNjYW4gPSBpbmRleF9iZWdpbnNjYW5fcGFyYWxsZWwoaGVhcHJlbCwgaW5kZXhyZWws CisJCQkJCQkJCQlpbnN0cnVtZW50LAorCQkJCQkJCQkJbmtleXMsIG5vcmRlcmJ5cywKKwkJCQkJ CQkJCXBzY2FuKTsKKwlzY2FuLT54c19oZWFwZmV0Y2gtPm1vZGlmaWVzX2Jhc2VfcmVsID0gbW9k aWZpZXNfYmFzZV9yZWw7CisJcmV0dXJuIHNjYW47Cit9CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0K ICAqIGluZGV4X2dldG5leHRfdGlkIC0gZ2V0IHRoZSBuZXh0IFRJRCBmcm9tIGEgc2NhbgogICoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jCmluZGV4IGE1NmM1ZWNlYjE0Li42N2RiZjk5ZjVi NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxlYW0uYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jCkBAIC00OSw2ICs0OSwxMCBAQAogY2hh cgkgICAqZGVmYXVsdF90YWJsZV9hY2Nlc3NfbWV0aG9kID0gREVGQVVMVF9UQUJMRV9BQ0NFU1Nf TUVUSE9EOwogYm9vbAkJc3luY2hyb25pemVfc2Vxc2NhbnMgPSB0cnVlOwogCisvKiBIZWxwZXIg Zm9yIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbCgpIGFuZCB0YWJsZV9iZWdpbnNjYW5fcGFyYWxs ZWxfdm1zZXQoKSAqLworc3RhdGljIFRhYmxlU2NhbkRlc2MgdGFibGVfYmVnaW5zY2FuX3BhcmFs bGVsX2NvbW1vbihSZWxhdGlvbiByZWxhdGlvbiwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2Fu LAorCQkJCQkJCQkJCQkJCSB1aW50MzIgZmxhZ3MpOworCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAqIFNsb3QgZnVuY3Rpb25zLgpAQCAtMTYyLDEyICsxNjYsMTQgQEAgdGFibGVfcGFyYWxs ZWxzY2FuX2luaXRpYWxpemUoUmVsYXRpb24gcmVsLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNj YW4sCiAJfQogfQogCi1UYWJsZVNjYW5EZXNjCi10YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVs YXRpb24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikKKy8qCisgKiBDb21t b24gaGVscGVyIGZvciB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoKSBhbmQgdGFibGVfYmVnaW5z Y2FuX3BhcmFsbGVsX3Ztc2V0KCkKKyAqLworc3RhdGljIFRhYmxlU2NhbkRlc2MKK3RhYmxlX2Jl Z2luc2Nhbl9wYXJhbGxlbF9jb21tb24oUmVsYXRpb24gcmVsYXRpb24sIFBhcmFsbGVsVGFibGVT Y2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkJdWludDMyIGZsYWdzKQogewogCVNuYXBzaG90CXNuYXBz aG90OwotCXVpbnQzMgkJZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4gfAotCQlTT19BTExPV19TVFJB VCB8IFNPX0FMTE9XX1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKIAogCUFzc2VydChSZWxGaWxl TG9jYXRvckVxdWFscyhyZWxhdGlvbi0+cmRfbG9jYXRvciwgcHNjYW4tPnBoc19sb2NhdG9yKSk7 CiAKQEAgLTE4OCw2ICsxOTQsMzEgQEAgdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9u IHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4pCiAJCQkJCQkJCQkJCXBzY2Fu LCBmbGFncyk7CiB9CiAKK1RhYmxlU2NhbkRlc2MKK3RhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChS ZWxhdGlvbiByZWxhdGlvbiwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQoreworCXVpbnQz MgkJZmxhZ3MgPSBTT19UWVBFX1NFUVNDQU4gfAorCQlTT19BTExPV19TVFJBVCB8IFNPX0FMTE9X X1NZTkMgfCBTT19BTExPV19QQUdFTU9ERTsKKworCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fcGFy YWxsZWxfY29tbW9uKHJlbGF0aW9uLCBwc2NhbiwgZmxhZ3MpOworfQorCisvKgorICogUGFyYWxs ZWwgdmVyc2lvbiBvZiB0YWJsZV9iZWdpbnNjYW5fdm1zZXQoKQorICovCitUYWJsZVNjYW5EZXNj Cit0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdm1zZXQoUmVsYXRpb24gcmVsYXRpb24sIFBhcmFs bGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkgICBib29sIG1vZGlmaWVzX3JlbCkKK3sK Kwl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9TRVFTQ0FOIHwKKwkJU09fQUxMT1dfU1RSQVQgfCBT T19BTExPV19TWU5DIHwgU09fQUxMT1dfUEFHRU1PREU7CisKKwlpZiAoIW1vZGlmaWVzX3JlbCkK KwkJZmxhZ3MgfD0gU09fQUxMT1dfVk1fU0VUOworCisJcmV0dXJuIHRhYmxlX2JlZ2luc2Nhbl9w YXJhbGxlbF9jb21tb24ocmVsYXRpb24sIHBzY2FuLCBmbGFncyk7Cit9CisKIAogLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICogSW5kZXggc2NhbiByZWxhdGVkIGZ1bmN0aW9ucy4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjTWFpbi5jCmluZGV4IDAzOTE3OThkZDJjLi4wNjU2NzZlYjdjZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjTWFpbi5jCkBAIC05MTcsNiArOTE3LDEwIEBAIEluaXRQbGFuKFF1ZXJ5RGVzYyAqcXVl cnlEZXNjLCBpbnQgZWZsYWdzKQogCQkJCQlicmVhazsKIAkJCX0KIAorCQkJLyogSWYgaXQgaGFz IGEgcm93bWFyaywgdGhlIHJlbGF0aW9uIGlzIG1vZGlmaWVkICovCisJCQllc3RhdGUtPmVzX21v ZGlmaWVkX3JlbGlkcyA9IGJtc19hZGRfbWVtYmVyKGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRz LAorCQkJCQkJCQkJCQkJCQlyYy0+cnRpKTsKKwogCQkJLyogQ2hlY2sgdGhhdCByZWxhdGlvbiBp cyBhIGxlZ2FsIHRhcmdldCBmb3IgbWFya2luZyAqLwogCQkJaWYgKHJlbGF0aW9uKQogCQkJCUNo ZWNrVmFsaWRSb3dNYXJrUmVsKHJlbGF0aW9uLCByYy0+bWFya1R5cGUpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjVXRpbHMuYwppbmRleCBmZGM2NWMyYjQyYi4uMjhhMDZkY2QyNDQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNVdGlscy5jCkBAIC04OTMsNiArODkzLDggQEAgRXhlY0luaXRSZXN1bHRSZWxhdGlvbihF U3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAkJZXN0YXRlLT5l c19yZXN1bHRfcmVsYXRpb25zID0gKFJlc3VsdFJlbEluZm8gKiopCiAJCQlwYWxsb2MwKGVzdGF0 ZS0+ZXNfcmFuZ2VfdGFibGVfc2l6ZSAqIHNpemVvZihSZXN1bHRSZWxJbmZvICopKTsKIAllc3Rh dGUtPmVzX3Jlc3VsdF9yZWxhdGlvbnNbcnRpIC0gMV0gPSByZXN1bHRSZWxJbmZvOworCWVzdGF0 ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzID0gYm1zX2FkZF9tZW1iZXIoZXN0YXRlLT5lc19tb2RpZmll ZF9yZWxpZHMsCisJCQkJCQkJCQkJCQlydGkpOwogCiAJLyoKIAkgKiBTYXZpbmcgaW4gdGhlIGxp c3QgYWxsb3dzIHRvIGF2b2lkIG5lZWRsZXNzbHkgdHJhdmVyc2luZyB0aGUgd2hvbGUKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKaW5kZXggYmYyNGYzZDdmZTAuLmFm NmRiOWY3OTE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVh cHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwpA QCAtMTA1LDExICsxMDUsMTYgQEAgQml0bWFwVGFibGVTY2FuU2V0dXAoQml0bWFwSGVhcFNjYW5T dGF0ZSAqbm9kZSkKIAkgKi8KIAlpZiAoIW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYykKIAl7 CisJCWJvb2wJCW1vZGlmaWVzX3JlbCA9CisJCQlibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2Rl LT5zcy5wcy5wbGFuKS0+c2NhbnJlbGlkLAorCQkJCQkJICBub2RlLT5zcy5wcy5zdGF0ZS0+ZXNf bW9kaWZpZWRfcmVsaWRzKTsKKwogCQlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQkJ dGFibGVfYmVnaW5zY2FuX2JtKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkg ICBub2RlLT5zcy5wcy5zdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJICAgMCwKLQkJCQkJCQkg ICBOVUxMKTsKKwkJCQkJCQkgICBOVUxMLAorCQkJCQkJCSAgIG1vZGlmaWVzX3JlbCk7CiAJfQog CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjLT5zdC5yc190Ym1pdGVyYXRvciA9IHRibWl0 ZXJhdG9yOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4c2Nhbi5jCmluZGV4IDdmY2FhMzdmZTYy Li5jMmZmYmQzYjA4ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4 c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwpAQCAtMTAy LDE2ICsxMDIsMjIgQEAgSW5kZXhOZXh0KEluZGV4U2NhblN0YXRlICpub2RlKQogCiAJaWYgKHNj YW5kZXNjID09IE5VTEwpCiAJeworCisJCWJvb2wJCW1vZGlmaWVzX2Jhc2VfcmVsID0KKwkJCWJt c19pc19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJ CQkgIGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKTsKKwogCQkvKgogCQkgKiBXZSByZWFjaCBo ZXJlIGlmIHRoZSBpbmRleCBzY2FuIGlzIG5vdCBwYXJhbGxlbCwgb3IgaWYgd2UncmUKIAkJICog c2VyaWFsbHkgZXhlY3V0aW5nIGFuIGluZGV4IHNjYW4gdGhhdCB3YXMgcGxhbm5lZCB0byBiZSBw YXJhbGxlbC4KIAkJICovCi0JCXNjYW5kZXNjID0gaW5kZXhfYmVnaW5zY2FuKG5vZGUtPnNzLnNz X2N1cnJlbnRSZWxhdGlvbiwKLQkJCQkJCQkJICAgbm9kZS0+aXNzX1JlbGF0aW9uRGVzYywKLQkJ CQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKLQkJCQkJCQkJICAgJm5vZGUtPmlzc19JbnN0 cnVtZW50LAotCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMsCi0JCQkJCQkJCSAgIG5v ZGUtPmlzc19OdW1PcmRlckJ5S2V5cyk7CisJCXNjYW5kZXNjID0gaW5kZXhfYmVnaW5zY2FuX3Zt c2V0KG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKKwkJCQkJCQkJCQkgbm9kZS0+aXNzX1Jl bGF0aW9uRGVzYywKKwkJCQkJCQkJCQkgZXN0YXRlLT5lc19zbmFwc2hvdCwKKwkJCQkJCQkJCQkg Jm5vZGUtPmlzc19JbnN0cnVtZW50LAorCQkJCQkJCQkJCSBub2RlLT5pc3NfTnVtU2NhbktleXMs CisJCQkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywKKwkJCQkJCQkJCQkgbW9kaWZp ZXNfYmFzZV9yZWwpOwogCiAJCW5vZGUtPmlzc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYwppbmRleCBlZDM1YzU4YzJjMy4uMTVlMTg1MzAyN2IgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYwpAQCAtNjUsMTMgKzY1LDE4IEBAIFNlcU5leHQo U2VxU2NhblN0YXRlICpub2RlKQogCiAJaWYgKHNjYW5kZXNjID09IE5VTEwpCiAJeworCQlib29s CQltb2RpZmllc19yZWwgPQorCQkJYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMu cGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCSAgZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpOwor CiAJCS8qCiAJCSAqIFdlIHJlYWNoIGhlcmUgaWYgdGhlIHNjYW4gaXMgbm90IHBhcmFsbGVsLCBv ciBpZiB3ZSdyZSBzZXJpYWxseQogCQkgKiBleGVjdXRpbmcgYSBzY2FuIHRoYXQgd2FzIHBsYW5u ZWQgdG8gYmUgcGFyYWxsZWwuCiAJCSAqLwotCQlzY2FuZGVzYyA9IHRhYmxlX2JlZ2luc2Nhbihu b2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNo b3QsCi0JCQkJCQkJCSAgIDAsIE5VTEwpOworCQlzY2FuZGVzYyA9IHRhYmxlX2JlZ2luc2Nhbl92 bXNldChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCisJCQkJCQkJCQkJIGVzdGF0ZS0+ZXNf c25hcHNob3QsCisJCQkJCQkJCQkJIDAsIE5VTEwsIG1vZGlmaWVzX3JlbCk7CisKIAkJbm9kZS0+ c3Muc3NfY3VycmVudFNjYW5EZXNjID0gc2NhbmRlc2M7CiAJfQogCkBAIC0zNjIsNiArMzY3LDcg QEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplRFNNKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCSBQ YXJhbGxlbENvbnRleHQgKnBjeHQpCiB7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBub2RlLT5zcy5w cy5zdGF0ZTsKKwlib29sCQltb2RpZmllc19yZWw7CiAJUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBz Y2FuOwogCiAJcHNjYW4gPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywgbm9kZS0+cHNjYW5f bGVuKTsKQEAgLTM2OSw4ICszNzUsMTEgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplRFNNKFNlcVNj YW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJICBwc2NhbiwKIAkJCQkJCQkJICBlc3RhdGUtPmVzX3Nu YXBzaG90KTsKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBs YW5fbm9kZV9pZCwgcHNjYW4pOworCW1vZGlmaWVzX3JlbCA9IGJtc19pc19tZW1iZXIoKChTY2Fu ICopIG5vZGUtPnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCQkJCSBlc3RhdGUtPmVzX21v ZGlmaWVkX3JlbGlkcyk7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFibGVf YmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOwor CQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdm1zZXQobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0 aW9uLCBwc2NhbiwKKwkJCQkJCQkJCSAgIG1vZGlmaWVzX3JlbCk7CiB9CiAKIC8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K QEAgLTQwMCw4ICs0MDksMTMgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplV29ya2VyKFNlcVNjYW5T dGF0ZSAqbm9kZSwKIAkJCQkJCQlQYXJhbGxlbFdvcmtlckNvbnRleHQgKnB3Y3h0KQogewogCVBh cmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKKwlib29sCQltb2RpZmllc19yZWwgPQorCQlibXNf aXNfbWVtYmVyKCgoU2NhbiAqKSBub2RlLT5zcy5wcy5wbGFuKS0+c2NhbnJlbGlkLAorCQkJCQkg IG5vZGUtPnNzLnBzLnN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpOwogCiAJcHNjYW4gPSBzaG1f dG9jX2xvb2t1cChwd2N4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIGZh bHNlKTsKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQotCQl0YWJsZV9iZWdpbnNjYW5f cGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2Nhbik7CisJCXRhYmxlX2Jl Z2luc2Nhbl9wYXJhbGxlbF92bXNldChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCisJCQkJ CQkJCQkgICBwc2NhbiwKKwkJCQkJCQkJCSAgIG1vZGlmaWVzX3JlbCk7CiB9CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5o CmluZGV4IDViMmFiMTgxYjVmLi5iZjI3MmMyYzM3ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL2dlbmFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKQEAgLTE4MCw2 ICsxODAsMTEgQEAgZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuKFJlbGF0aW9u IGhlYXBSZWxhdGlvbiwKIAkJCQkJCQkJCSBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCQkJCSBJ bmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCiAJCQkJCQkJCQkgaW50IG5rZXlz LCBpbnQgbm9yZGVyYnlzKTsKK2V4dGVybiBJbmRleFNjYW5EZXNjIGluZGV4X2JlZ2luc2Nhbl92 bXNldChSZWxhdGlvbiBoZWFwUmVsYXRpb24sCisJCQkJCQkJCQkJICAgUmVsYXRpb24gaW5kZXhS ZWxhdGlvbiwKKwkJCQkJCQkJCQkgICBTbmFwc2hvdCBzbmFwc2hvdCwKKwkJCQkJCQkJCQkgICBJ bmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCisJCQkJCQkJCQkJICAgaW50IG5r ZXlzLCBpbnQgbm9yZGVyYnlzLCBib29sIG1vZGlmaWVzX2hlYXBfcmVsKTsKIGV4dGVybiBJbmRl eFNjYW5EZXNjIGluZGV4X2JlZ2luc2Nhbl9iaXRtYXAoUmVsYXRpb24gaW5kZXhSZWxhdGlvbiwK IAkJCQkJCQkJCQkJU25hcHNob3Qgc25hcHNob3QsCiAJCQkJCQkJCQkJCUluZGV4U2Nhbkluc3Ry dW1lbnRhdGlvbiAqaW5zdHJ1bWVudCwKQEAgLTIwNiw2ICsyMTEsMTIgQEAgZXh0ZXJuIEluZGV4 U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKFJlbGF0aW9uIGhlYXByZWwsCiAJCQkJ CQkJCQkJCSAgSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAogCQkJCQkJCQkJ CQkgIGludCBua2V5cywgaW50IG5vcmRlcmJ5cywKIAkJCQkJCQkJCQkJICBQYXJhbGxlbEluZGV4 U2NhbkRlc2MgcHNjYW4pOworCitleHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW5f cGFyYWxsZWxfdm1zZXQoUmVsYXRpb24gaGVhcHJlbCwgUmVsYXRpb24gaW5kZXhyZWwsCisJCQkJ CQkJCQkJCQkJSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAorCQkJCQkJCQkJ CQkJCWludCBua2V5cywgaW50IG5vcmRlcmJ5cywKKwkJCQkJCQkJCQkJCQlQYXJhbGxlbEluZGV4 U2NhbkRlc2MgcHNjYW4sCisJCQkJCQkJCQkJCQkJYm9vbCBtb2RpZmllc19yZWwpOwogZXh0ZXJu IEl0ZW1Qb2ludGVyIGluZGV4X2dldG5leHRfdGlkKEluZGV4U2NhbkRlc2Mgc2NhbiwKIAkJCQkJ CQkJCSBTY2FuRGlyZWN0aW9uIGRpcmVjdGlvbik7CiBzdHJ1Y3QgVHVwbGVUYWJsZVNsb3Q7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtLmgKaW5kZXggNDI3OGYzNTFiZGYuLjE2Zjc5MDRhMjFlIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBh bS5oCkBAIC05NCw2ICs5NCwxMyBAQCB0eXBlZGVmIHN0cnVjdCBIZWFwU2NhbkRlc2NEYXRhCiAJ ICovCiAJUGFyYWxsZWxCbG9ja1RhYmxlU2NhbldvcmtlckRhdGEgKnJzX3BhcmFsbGVsd29ya2Vy ZGF0YTsKIAorCS8qCisJICogRm9yIHNlcXVlbnRpYWwgc2NhbnMgYW5kIGJpdG1hcCBoZWFwIHNj YW5zLiBJZiB0aGUgcmVsYXRpb24gaXMgbm90CisJICogYmVpbmcgbW9kaWZpZWQsIG9uLWFjY2Vz cyBwcnVuaW5nIG1heSByZWFkIGluIHRoZSBjdXJyZW50IGhlYXAgcGFnZSdzCisJICogY29ycmVz cG9uZGluZyBWTSBibG9jayB0byB0aGlzIGJ1ZmZlci4KKwkgKi8KKwlCdWZmZXIJCXJzX3ZtYnVm ZmVyOworCiAJLyogdGhlc2UgZmllbGRzIG9ubHkgdXNlZCBpbiBwYWdlLWF0LWEtdGltZSBtb2Rl IGFuZCBmb3IgYml0bWFwIHNjYW5zICovCiAJdWludDMyCQlyc19jaW5kZXg7CQkvKiBjdXJyZW50 IHR1cGxlJ3MgaW5kZXggaW4gdmlzdHVwbGVzICovCiAJdWludDMyCQlyc19udHVwbGVzOwkJLyog bnVtYmVyIG9mIHZpc2libGUgdHVwbGVzIG9uIHBhZ2UgKi8KQEAgLTExNiw4ICsxMjMsMTggQEAg dHlwZWRlZiBzdHJ1Y3QgSW5kZXhGZXRjaEhlYXBEYXRhCiB7CiAJSW5kZXhGZXRjaFRhYmxlRGF0 YSB4c19iYXNlOwkvKiBBTSBpbmRlcGVuZGVudCBwYXJ0IG9mIHRoZSBkZXNjcmlwdG9yICovCiAK LQlCdWZmZXIJCXhzX2NidWY7CQkvKiBjdXJyZW50IGhlYXAgYnVmZmVyIGluIHNjYW4sIGlmIGFu eSAqLwotCS8qIE5COiBpZiB4c19jYnVmIGlzIG5vdCBJbnZhbGlkQnVmZmVyLCB3ZSBob2xkIGEg cGluIG9uIHRoYXQgYnVmZmVyICovCisJLyoKKwkgKiBDdXJyZW50IGhlYXAgYnVmZmVyIGluIHNj YW4sIGlmIGFueS4gTkI6IGlmIHhzX2NidWYgaXMgbm90CisJICogSW52YWxpZEJ1ZmZlciwgd2Ug aG9sZCBhIHBpbiBvbiB0aGF0IGJ1ZmZlci4KKwkgKi8KKwlCdWZmZXIJCXhzX2NidWY7CisKKwkv KgorCSAqIEZvciBpbmRleCBzY2FucyB0aGF0IGRvIG5vdCBtb2RpZnkgdGhlIHVuZGVybHlpbmcg aGVhcCB0YWJsZSwgb24tYWNjZXNzCisJICogcHJ1bmluZyBtYXkgcmVhZCBpbiB0aGUgY3VycmVu dCBoZWFwIHBhZ2UncyBjb3JyZXNwb25kaW5nIFZNIGJsb2NrIHRvCisJICogdGhpcyBidWZmZXIu CisJICovCisJQnVmZmVyCQl4c192bWJ1ZmZlcjsKIH0gSW5kZXhGZXRjaEhlYXBEYXRhOwogCiAv KiBSZXN1bHQgY29kZXMgZm9yIEhlYXBUdXBsZVNhdGlzZmllc1ZhY3V1bSAqLwpAQCAtMzc0LDcg KzM5MSw4IEBAIGV4dGVybiBUcmFuc2FjdGlvbklkIGhlYXBfaW5kZXhfZGVsZXRlX3R1cGxlcyhS ZWxhdGlvbiByZWwsCiAKIC8qIGluIGhlYXAvcHJ1bmVoZWFwLmMgKi8KIHN0cnVjdCBHbG9iYWxW aXNTdGF0ZTsKLWV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIpOworZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX29wdChSZWxh dGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKKwkJCQkJCQkJQnVmZmVyICp2bWJ1ZmZlcik7 CiBleHRlcm4gdm9pZCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShSZWxhdGlvbiByZWxhdGlv biwgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkJCSAgIGJvb2wgYmxrX2tub3duX2F2LAogCQkJCQkJ CQkJICAgQnVmZmVyIHZtYnVmZmVyLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Jl bHNjYW4uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgKaW5kZXggYjVlMGZiMzg2YzAu LmY0OTZlMGI0OTM5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcmVsc2Nhbi5oCisr KyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9yZWxzY2FuLmgKQEAgLTEyMSw2ICsxMjEsMTIgQEAgdHlw ZWRlZiBzdHJ1Y3QgUGFyYWxsZWxCbG9ja1RhYmxlU2NhbldvcmtlckRhdGEgKlBhcmFsbGVsQmxv Y2tUYWJsZVNjYW5Xb3JrZXI7CiB0eXBlZGVmIHN0cnVjdCBJbmRleEZldGNoVGFibGVEYXRhCiB7 CiAJUmVsYXRpb24JcmVsOworCisJLyoKKwkgKiBTb21lIG9wdGltaXphdGlvbnMgY2FuIG9ubHkg YmUgcGVyZm9ybWVkIGlmIHRoZSBxdWVyeSBkb2VzIG5vdCBtb2RpZnkKKwkgKiB0aGUgdW5kZXJs eWluZyByZWxhdGlvbi4gVHJhY2sgdGhhdCBoZXJlLgorCSAqLworCWJvb2wJCW1vZGlmaWVzX2Jh c2VfcmVsOwogfSBJbmRleEZldGNoVGFibGVEYXRhOwogCiBzdHJ1Y3QgSW5kZXhTY2FuSW5zdHJ1 bWVudGF0aW9uOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKaW5kZXggMWM5ZTgwMmE2YjEuLjBlOTg2ZDhlZjcy IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy90YWJsZWFtLmgKQEAgLTYyLDYgKzYyLDggQEAgdHlwZWRlZiBlbnVtIFNjYW5P cHRpb25zCiAKIAkvKiB1bnJlZ2lzdGVyIHNuYXBzaG90IGF0IHNjYW4gZW5kPyAqLwogCVNPX1RF TVBfU05BUFNIT1QgPSAxIDw8IDksCisJLyogd2hldGhlciBvciBub3Qgc2NhbiBzaG91bGQgYXR0 ZW1wdCB0byBzZXQgdGhlIFZNICovCisJU09fQUxMT1dfVk1fU0VUID0gMSA8PCAxMCwKIH0JCQlT Y2FuT3B0aW9uczsKIAogLyoKQEAgLTg3Niw2ICs4NzgsMjUgQEAgdGFibGVfYmVnaW5zY2FuKFJl bGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3QsCiAJcmV0dXJuIHJlbC0+cmRfdGFibGVhbS0+ c2Nhbl9iZWdpbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5LCBOVUxMLCBmbGFncyk7CiB9CiAK Ky8qCisgKiBTaW1pbGFyIHRvIHRhYmxlX2JlZ2luc2NhbigpLCBidXQgYWxsb3dzIHRoZSBjYWxs ZXIgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUKKyAqIHF1ZXJ5IG1vZGlmaWVzIHRoZSByZWxhdGlv bi4gVGhpcyBpcyB1c2VkIHdoZW4gdGhlIGNhbGxlciB3YW50cyB0byBhdHRlbXB0CisgKiBtYXJr aW5nIHBhZ2VzIGluIHRoZSByZWxhdGlvbiBhcyBhbGwtdmlzaWJsZSBpbiB0aGUgdmlzaWJpbGl0 eSBtYXAgZHVyaW5nCisgKiBvbi1hY2Nlc3MgcHJ1bmluZy4KKyAqLworc3RhdGljIGlubGluZSBU YWJsZVNjYW5EZXNjCit0YWJsZV9iZWdpbnNjYW5fdm1zZXQoUmVsYXRpb24gcmVsLCBTbmFwc2hv dCBzbmFwc2hvdCwKKwkJCQkJICBpbnQgbmtleXMsIHN0cnVjdCBTY2FuS2V5RGF0YSAqa2V5LCBi b29sIG1vZGlmaWVzX3JlbCkKK3sKKwl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9TRVFTQ0FOIHwK KwkJU09fQUxMT1dfU1RSQVQgfCBTT19BTExPV19TWU5DIHwgU09fQUxMT1dfUEFHRU1PREU7CisK KwlpZiAoIW1vZGlmaWVzX3JlbCkKKwkJZmxhZ3MgfD0gU09fQUxMT1dfVk1fU0VUOworCisJcmV0 dXJuIHJlbC0+cmRfdGFibGVhbS0+c2Nhbl9iZWdpbihyZWwsIHNuYXBzaG90LCBua2V5cywga2V5 LCBOVUxMLCBmbGFncyk7Cit9CisKIC8qCiAgKiBMaWtlIHRhYmxlX2JlZ2luc2NhbigpLCBidXQg Zm9yIHNjYW5uaW5nIGNhdGFsb2cuIEl0J2xsIGF1dG9tYXRpY2FsbHkgdXNlIGEKICAqIHNuYXBz aG90IGFwcHJvcHJpYXRlIGZvciBzY2FubmluZyBjYXRhbG9nIHJlbGF0aW9ucy4KQEAgLTkxMywx MCArOTM0LDEzIEBAIHRhYmxlX2JlZ2luc2Nhbl9zdHJhdChSZWxhdGlvbiByZWwsIFNuYXBzaG90 IHNuYXBzaG90LAogICovCiBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2lu c2Nhbl9ibShSZWxhdGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAotCQkJCSAgIGludCBua2V5 cywgc3RydWN0IFNjYW5LZXlEYXRhICprZXkpCisJCQkJICAgaW50IG5rZXlzLCBzdHJ1Y3QgU2Nh bktleURhdGEgKmtleSwgYm9vbCBtb2RpZmllc19yZWwpCiB7CiAJdWludDMyCQlmbGFncyA9IFNP X1RZUEVfQklUTUFQU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOwogCisJaWYgKCFtb2RpZmllc19y ZWwpCisJCWZsYWdzIHw9IFNPX0FMTE9XX1ZNX1NFVDsKKwogCXJldHVybiByZWwtPnJkX3RhYmxl YW0tPnNjYW5fYmVnaW4ocmVsLCBzbmFwc2hvdCwgbmtleXMsIGtleSwKIAkJCQkJCQkJCSAgIE5V TEwsIGZsYWdzKTsKIH0KQEAgLTExMjUsNiArMTE0OSwxMCBAQCBleHRlcm4gdm9pZCB0YWJsZV9w YXJhbGxlbHNjYW5faW5pdGlhbGl6ZShSZWxhdGlvbiByZWwsCiBleHRlcm4gVGFibGVTY2FuRGVz YyB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gcmVsYXRpb24sCiAJCQkJCQkJCQkJ CSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKTsKIAorZXh0ZXJuIFRhYmxlU2NhbkRlc2Mg dGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsX3Ztc2V0KFJlbGF0aW9uIHJlbGF0aW9uLAorCQkJCQkJ CQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkJCQkJCQlib29sIG1v ZGlmaWVzX3JlbCk7CisKIC8qCiAgKiBSZXN0YXJ0IGEgcGFyYWxsZWwgc2Nhbi4gIENhbGwgdGhp cyBpbiB0aGUgbGVhZGVyIHByb2Nlc3MuICBDYWxsZXIgaXMKICAqIHJlc3BvbnNpYmxlIGZvciBt YWtpbmcgc3VyZSB0aGF0IGFsbCB3b3JrZXJzIGhhdmUgZmluaXNoZWQgdGhlIHNjYW4KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv ZXhlY25vZGVzLmgKaW5kZXggZTEwN2Q2ZTVmODEuLjMyNmQ3ZDc4ODYwIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaApAQCAtNjgwLDYgKzY4MCwxMiBAQCB0eXBlZGVmIHN0cnVjdCBFU3RhdGUKIAkJCQkJ CQkJCSAqIEV4ZWNEb0luaXRpYWxQcnVuaW5nKCkgKi8KIAljb25zdCBjaGFyICplc19zb3VyY2VU ZXh0OwkvKiBTb3VyY2UgdGV4dCBmcm9tIFF1ZXJ5RGVzYyAqLwogCisJLyoKKwkgKiBSVCBpbmRl eGVzIG9mIHJlbGF0aW9ucyBtb2RpZmllZCBieSB0aGUgcXVlcnkgZWl0aGVyIHRocm91Z2gKKwkg KiBVUERBVEUvREVMRVRFL0lOU0VSVC9NRVJHRSBvciBTRUxFQ1QgRk9SIFVQREFURQorCSAqLwor CUJpdG1hcHNldCAgKmVzX21vZGlmaWVkX3JlbGlkczsKKwogCUp1bmtGaWx0ZXIgKmVzX2p1bmtG aWx0ZXI7CS8qIHRvcC1sZXZlbCBqdW5rIGZpbHRlciwgaWYgYW55ICovCiAKIAkvKiBJZiBxdWVy eSBjYW4gaW5zZXJ0L2RlbGV0ZSB0dXBsZXMsIHRoZSBjb21tYW5kIElEIHRvIG1hcmsgdGhlbSB3 aXRoICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2lj YWxfZGVjb2RpbmcucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2ljYWxf ZGVjb2RpbmcucGwKaW5kZXggOTIxODEzNDgzZTMuLjVkMDg2M2E3OTMzIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWNvdmVyeS90LzAzNV9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwKKysrIGIv c3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsCkBAIC05 LDYgKzksNyBAQCB1c2Ugd2FybmluZ3MgRkFUQUwgPT4gJ2FsbCc7CiB1c2UgUG9zdGdyZVNRTDo6 VGVzdDo6Q2x1c3RlcjsKIHVzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKIHVzZSBUZXN0OjpN b3JlOwordXNlIFRpbWU6OkhpUmVzIHF3KHVzbGVlcCk7CiAKIGlmICgkRU5We2VuYWJsZV9pbmpl Y3Rpb25fcG9pbnRzfSBuZSAneWVzJykKIHsKQEAgLTI5NSw2ICsyOTYsNyBAQCB3YWxfbGV2ZWwg PSAnbG9naWNhbCcKIG1heF9yZXBsaWNhdGlvbl9zbG90cyA9IDQKIG1heF93YWxfc2VuZGVycyA9 IDQKIGF1dG92YWN1dW0gPSBvZmYKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24KIH0pOwogJG5v ZGVfcHJpbWFyeS0+ZHVtcF9pbmZvOwogJG5vZGVfcHJpbWFyeS0+c3RhcnQ7CkBAIC03NDQsNyAr NzQ2LDcgQEAgY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsCiAkbG9nc3RhcnQg PSAtcyAkbm9kZV9zdGFuZGJ5LT5sb2dmaWxlOwogCiByZWFjdGl2ZV9zbG90c19jaGFuZ2VfaGZz X2FuZF93YWl0X2Zvcl94bWlucygnc2hhcmVkX3Jvd19yZW1vdmFsXycsCi0JJ25vX2NvbmZsaWN0 XycsIDAsIDEpOworCSdub19jb25mbGljdF8nLCAxLCAwKTsKIAogIyBUaGlzIHNob3VsZCBub3Qg dHJpZ2dlciBhIGNvbmZsaWN0CiB3YWl0X3VudGlsX3ZhY3V1bV9jYW5fcmVtb3ZlKApAQCAtNzU0 LDEyICs3NTYsMTIgQEAgd2FpdF91bnRpbF92YWN1dW1fY2FuX3JlbW92ZSgKIAogIyBtZXNzYWdl IHNob3VsZCBub3QgYmUgaXNzdWVkCiBvayggISRub2RlX3N0YW5kYnktPmxvZ19jb250YWlucygK LQkJImludmFsaWRhdGluZyBvYnNvbGV0ZSBzbG90IFwibm9fY29uZmxpY3RfaW5hY3RpdmVzbG90 XCIiLCAkbG9nc3RhcnQpLAorCQkiaW52YWxpZGF0aW5nIG9ic29sZXRlIHJlcGxpY2F0aW9uIHNs b3QgXCJub19jb25mbGljdF9pbmFjdGl2ZXNsb3RcIiIsICRsb2dzdGFydCksCiAJJ2luYWN0aXZl c2xvdCBzbG90IGludmFsaWRhdGlvbiBpcyBub3QgbG9nZ2VkIHdpdGggdmFjdXVtIG9uIGNvbmZs aWN0X3Rlc3QnCiApOwogCiBvayggISRub2RlX3N0YW5kYnktPmxvZ19jb250YWlucygKLQkJImlu dmFsaWRhdGluZyBvYnNvbGV0ZSBzbG90IFwibm9fY29uZmxpY3RfYWN0aXZlc2xvdFwiIiwgJGxv Z3N0YXJ0KSwKKwkJImludmFsaWRhdGluZyBvYnNvbGV0ZSByZXBsaWNhdGlvbiBzbG90IFwibm9f Y29uZmxpY3RfYWN0aXZlc2xvdFwiIiwgJGxvZ3N0YXJ0KSwKIAknYWN0aXZlc2xvdCBzbG90IGlu dmFsaWRhdGlvbiBpcyBub3QgbG9nZ2VkIHdpdGggdmFjdXVtIG9uIGNvbmZsaWN0X3Rlc3QnCiAp OwogCi0tIAoyLjQzLjAKCg== --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0019-Reorder-heap_page_prune_and_freeze-parameters.patch" Content-Disposition: attachment; filename="v6-0019-Reorder-heap_page_prune_and_freeze-parameters.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu6e18 RnJvbSBkMGQzNTIwYjJlZTA2NGI5MzQ0OWRlZGUxZThmZjg4YjVkYzM1NTEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDMxIEp1bCAyMDI1IDEyOjA4OjE4IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAxOS8yMF0gUmVvcmRlciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSBwYXJhbWV0 ZXJzCgpSZW9yZGVyIHBhcmFtZXRlcnMgc28gdGhhdCBhbGwgb2YgdGhlIG91dHB1dCBwYXJhbWV0 ZXJzIGFyZSB0b2dldGhlciBhdAp0aGUgZW5kIG9mIHRoZSBwYXJhbWV0ZXIgbGlzdC4KLS0tCiBz cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgfCAzOCArKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAgNiAr Ky0tLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oICAgICAgICAgIHwgIDQgKy0tCiAzIGZp bGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggNWQ5NDNiMGM2NGYuLjIwZjRhNjJmYjE2IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMjk3LDEwICsyOTcsMTAgQEAgaGVhcF9w YWdlX3BydW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2 bWJ1ZmZlcikKIAkJCSAqIG5vdCB0aGUgcmVsYXRpb24gaGFzIGluZGV4ZXMsIHNpbmNlIHdlIGNh bm5vdCBzYWZlbHkgZGV0ZXJtaW5lCiAJCQkgKiB0aGF0IGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmlu ZyB3aXRoIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uLgogCQkJICovCi0JCQloZWFwX3BhZ2Vf cHJ1bmVfYW5kX2ZyZWV6ZShyZWxhdGlvbiwgYnVmZmVyLCBmYWxzZSwKKwkJCWhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKHJlbGF0aW9uLCBidWZmZXIsIG9wdGlvbnMsIGZhbHNlLAogCQkJCQkJ CQkJICAgdm1idWZmZXIgPyAqdm1idWZmZXIgOiBJbnZhbGlkQnVmZmVyLAotCQkJCQkJCQkJICAg dmlzdGVzdCwgb3B0aW9ucywKLQkJCQkJCQkJCSAgIE5VTEwsICZwcmVzdWx0LCBQUlVORV9PTl9B Q0NFU1MsCisJCQkJCQkJCQkgICB2aXN0ZXN0LAorCQkJCQkJCQkJICAgTlVMTCwgUFJVTkVfT05f QUNDRVNTLCAmcHJlc3VsdCwKIAkJCQkJCQkJCSAgICZkdW1teV9vZmZfbG9jLCBOVUxMLCBOVUxM KTsKIAogCQkJLyoKQEAgLTY0NSw2ICs2NDUsMTUgQEAgaGVhcF9wYWdlX3dpbGxfZnJlZXplKFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogICogYWxzbyBuZWVkIHRvIGFjY291bnQg Zm9yIGEgcmVkdWN0aW9uIGluIHRoZSBsZW5ndGggb2YgdGhlIGxpbmUgcG9pbnRlcgogICogYXJy YXkgZm9sbG93aW5nIGFycmF5IHRydW5jYXRpb24gYnkgdXMuCiAgKgorICogb3B0aW9uczoKKyAq ICAgTUFSS19VTlVTRURfTk9XIGluZGljYXRlcyB0aGF0IGRlYWQgaXRlbXMgY2FuIGJlIHNldCBM UF9VTlVTRUQgZHVyaW5nCisgKiAgIHBydW5pbmcuCisgKgorICogICBGUkVFWkUgaW5kaWNhdGVz IHRoYXQgd2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMsIGFuZCB3aWxsIHJldHVybgorICogICAn YWxsX3Zpc2libGUnLCAnYWxsX2Zyb3plbicgZmxhZ3MgdG8gdGhlIGNhbGxlci4KKyAqCisgKiAg IFVQREFURV9WTSBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIHNldCB0aGUgcGFnZSdzIHN0YXR1cyBp biB0aGUgVk0uCisgKgogICogSWYgdGhlIEhFQVBfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBzZXQs IHdlIHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzIGlmIGl0J3MKICAqIHJlcXVpcmVkIGluIG9yZGVy IHRvIGFkdmFuY2UgcmVsZnJvemVueGlkIC8gcmVsbWlubXhpZCwgb3IgaWYgaXQncwogICogY29u c2lkZXJlZCBhZHZhbnRhZ2VvdXMgZm9yIG92ZXJhbGwgc3lzdGVtIHBlcmZvcm1hbmNlIHRvIGRv IHNvIG5vdy4gIFRoZQpAQCAtNjYzLDMwICs2NzIsMjEgQEAgaGVhcF9wYWdlX3dpbGxfZnJlZXpl KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogICogY29udGFpbiB0aGUgcmVxdWly ZWQgYmxvY2sgb2YgdGhlIHZpc2liaWxpdHkgbWFwLgogICoKICAqIHZpc3Rlc3QgaXMgdXNlZCB0 byBkaXN0aW5ndWlzaCB3aGV0aGVyIHR1cGxlcyBhcmUgREVBRCBvciBSRUNFTlRMWV9ERUFECi0g KiAoc2VlIGhlYXBfcHJ1bmVfc2F0aXNmaWVzX3ZhY3V1bSkuCi0gKgotICogb3B0aW9uczoKLSAq ICAgTUFSS19VTlVTRURfTk9XIGluZGljYXRlcyB0aGF0IGRlYWQgaXRlbXMgY2FuIGJlIHNldCBM UF9VTlVTRUQgZHVyaW5nCi0gKiAgIHBydW5pbmcuCi0gKgotICogICBGUkVFWkUgaW5kaWNhdGVz IHRoYXQgd2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMsIGFuZCB3aWxsIHJldHVybgotICogICAn YWxsX3Zpc2libGUnLCAnYWxsX2Zyb3plbicgZmxhZ3MgdG8gdGhlIGNhbGxlci4KLSAqCi0gKiAg IFVQREFURV9WTSBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIHNldCB0aGUgcGFnZSdzIHN0YXR1cyBp biB0aGUgVk0uCisgKiAoc2VlIGhlYXBfcHJ1bmVfc2F0aXNmaWVzX3ZhY3V1bSkuIEl0IGlzIGFu IGlucHV0IHBhcmFtZXRlci4KICAqCiAgKiBjdXRvZmZzIGNvbnRhaW5zIHRoZSBmcmVlemUgY3V0 b2ZmcywgZXN0YWJsaXNoZWQgYnkgVkFDVVVNIGF0IHRoZSBiZWdpbm5pbmcKICAqIG9mIHZhY3V1 bWluZyB0aGUgcmVsYXRpb24uICBSZXF1aXJlZCBpZiBIRUFQX1BSVU5FX0ZSRUVaRSBvcHRpb24g aXMgc2V0LgogICogY3V0b2Zmcy0+T2xkZXN0WG1pbiBpcyBhbHNvIHVzZWQgdG8gZGV0ZXJtaW5l IGlmIGRlYWQgdHVwbGVzIGFyZQotICogSEVBUFRVUExFX1JFQ0VOVExZX0RFQUQgb3IgSEVBUFRV UExFX0RFQUQuCisgKiBIRUFQVFVQTEVfUkVDRU5UTFlfREVBRCBvciBIRUFQVFVQTEVfREVBRC4g SXQgaXMgYW4gaW5wdXQgcGFyYW1ldGVyLgorICoKKyAqIHJlYXNvbiBpbmRpY2F0ZXMgd2h5IHRo ZSBwcnVuaW5nIGlzIHBlcmZvcm1lZC4gIEl0IGlzIGluY2x1ZGVkIGluIHRoZSBXQUwKKyAqIHJl Y29yZCBmb3IgZGVidWdnaW5nIGFuZCBhbmFseXNpcyBwdXJwb3NlcywgYnV0IG90aGVyd2lzZSBo YXMgbm8gZWZmZWN0LgogICoKICAqIHByZXN1bHQgY29udGFpbnMgb3V0cHV0IHBhcmFtZXRlcnMg bmVlZGVkIGJ5IGNhbGxlcnMsIHN1Y2ggYXMgdGhlIG51bWJlciBvZgogICogdHVwbGVzIHJlbW92 ZWQgYW5kIHRoZSBvZmZzZXRzIG9mIGRlYWQgaXRlbXMgb24gdGhlIHBhZ2UgYWZ0ZXIgcHJ1bmlu Zy4KICAqIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgaXMgcmVzcG9uc2libGUgZm9yIGlu aXRpYWxpemluZyBpdC4gIFJlcXVpcmVkCiAgKiBieSBhbGwgY2FsbGVycy4KICAqCi0gKiByZWFz b24gaW5kaWNhdGVzIHdoeSB0aGUgcHJ1bmluZyBpcyBwZXJmb3JtZWQuICBJdCBpcyBpbmNsdWRl ZCBpbiB0aGUgV0FMCi0gKiByZWNvcmQgZm9yIGRlYnVnZ2luZyBhbmQgYW5hbHlzaXMgcHVycG9z ZXMsIGJ1dCBvdGhlcndpc2UgaGFzIG5vIGVmZmVjdC4KLSAqCiAgKiBvZmZfbG9jIGlzIHRoZSBv ZmZzZXQgbG9jYXRpb24gcmVxdWlyZWQgYnkgdGhlIGNhbGxlciB0byB1c2UgaW4gZXJyb3IKICAq IGNhbGxiYWNrLgogICoKQEAgLTY5OSwxMyArNjk5LDEzIEBAIGhlYXBfcGFnZV93aWxsX2ZyZWV6 ZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKICAqLwogdm9pZAogaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCisJCQkJ CQkgICBpbnQgb3B0aW9ucywKIAkJCQkJCSAgIGJvb2wgYmxrX2tub3duX2F2LAogCQkJCQkJICAg QnVmZmVyIHZtYnVmZmVyLAogCQkJCQkJICAgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCi0JCQkJ CQkgICBpbnQgb3B0aW9ucywKIAkJCQkJCSAgIHN0cnVjdCBWYWN1dW1DdXRvZmZzICpjdXRvZmZz LAotCQkJCQkJICAgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQsCiAJCQkJCQkgICBQcnVuZVJl YXNvbiByZWFzb24sCisJCQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKIAkJCQkJ CSAgIE9mZnNldE51bWJlciAqb2ZmX2xvYywKIAkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKm5ld19y ZWxmcm96ZW5feGlkLAogCQkJCQkJICAgTXVsdGlYYWN0SWQgKm5ld19yZWxtaW5fbXhpZCkKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA3NzdlYzMwZWI4Mi4uMTIwNzgyZmQ4 ZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTE5OTIsMTEgKzE5OTIs MTEgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAlpZiAodmFjcmVsLT5u aW5kZXhlcyA9PSAwKQogCQlwcnVuZV9vcHRpb25zIHw9IEhFQVBfUEFHRV9QUlVORV9NQVJLX1VO VVNFRF9OT1c7CiAKLQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShyZWwsIGJ1ZiwKKwloZWFw X3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShyZWwsIGJ1ZiwgcHJ1bmVfb3B0aW9ucywKIAkJCQkJCQkg ICBhbGxfdmlzaWJsZV9hY2NvcmRpbmdfdG9fdm0sCiAJCQkJCQkJICAgdm1idWZmZXIsCi0JCQkJ CQkJICAgdmFjcmVsLT52aXN0ZXN0LCBwcnVuZV9vcHRpb25zLAotCQkJCQkJCSAgICZ2YWNyZWwt PmN1dG9mZnMsICZwcmVzdWx0LCBQUlVORV9WQUNVVU1fU0NBTiwKKwkJCQkJCQkgICB2YWNyZWwt PnZpc3Rlc3QsCisJCQkJCQkJICAgJnZhY3JlbC0+Y3V0b2ZmcywgUFJVTkVfVkFDVVVNX1NDQU4s ICZwcmVzdWx0LAogCQkJCQkJCSAgICZ2YWNyZWwtPm9mZm51bSwKIAkJCQkJCQkgICAmdmFjcmVs LT5OZXdSZWxmcm96ZW5YaWQsICZ2YWNyZWwtPk5ld1JlbG1pbk14aWQpOwogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt LmgKaW5kZXggMTZmNzkwNGEyMWUuLjBjNGU1NjA3NjI3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC0z OTQsMTMgKzM5NCwxMyBAQCBzdHJ1Y3QgR2xvYmFsVmlzU3RhdGU7CiBleHRlcm4gdm9pZCBoZWFw X3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAogCQkJCQkJ CQlCdWZmZXIgKnZtYnVmZmVyKTsKIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLAorCQkJCQkJCQkJICAgaW50IG9w dGlvbnMsCiAJCQkJCQkJCQkgICBib29sIGJsa19rbm93bl9hdiwKIAkJCQkJCQkJCSAgIEJ1ZmZl ciB2bWJ1ZmZlciwKIAkJCQkJCQkJCSAgIHN0cnVjdCBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwK LQkJCQkJCQkJCSAgIGludCBvcHRpb25zLAogCQkJCQkJCQkJICAgc3RydWN0IFZhY3V1bUN1dG9m ZnMgKmN1dG9mZnMsCi0JCQkJCQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKIAkJ CQkJCQkJCSAgIFBydW5lUmVhc29uIHJlYXNvbiwKKwkJCQkJCQkJCSAgIFBydW5lRnJlZXplUmVz dWx0ICpwcmVzdWx0LAogCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpvZmZfbG9jLAogCQkJCQkJ CQkJICAgVHJhbnNhY3Rpb25JZCAqbmV3X3JlbGZyb3plbl94aWQsCiAJCQkJCQkJCQkgICBNdWx0 aVhhY3RJZCAqbmV3X3JlbG1pbl9teGlkKTsKLS0gCjIuNDMuMAoK --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0016-Unset-all-visible-sooner-if-not-freezing.patch" Content-Disposition: attachment; filename="v6-0016-Unset-all-visible-sooner-if-not-freezing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu6915 RnJvbSAyZjJiZmMzZDNiNDM2ZjQ2MGFlOTFlNWNiZGM4NDA0MDYzYjkwOTM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE0OjM1OjEzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAxNi8yMF0gVW5zZXQgYWxsLXZpc2libGUgc29vbmVyIGlmIG5vdCBmcmVlemluZwoK SW4gcHJ1bmUvZnJlZXplIGNvZGUsIHdlIGRlbGF5IHVuc2V0dGluZyBhbGwtdmlzaWJsZS9hbGwt ZnJvemVuIGluIHRoZQpwcmVzZW5jZSBvZiBkZWFkIGl0ZW1zIHRvIGFsbG93IG9wcG9ydHVuaXN0 aWNhbGx5IGZyZWV6aW5nIHR1cGxlcyBpZiB0aGUKd2hvbGUgcGFnZSB3b3VsZCBiZSBmcm96ZW4g ZXhjZXB0IGZvciB0aG9zZSBkZWFkIGl0ZW1zIC0tIHdoaWNoIGFyZQpyZW1vdmVkIGxhdGVyIGlu IHZhY3V1bSdzIHRoaXJkIHBoYXNlLgoKRnV0dXJlIGNvbW1pdHMgd2lsbCBhbGxvdyBvbi1hY2Nl c3MgcHJ1bmluZyB0byBzZXQgdGhlIFZNLCB3aGljaCBtZWFucwphbGwtdmlzaWJsZSB3aWxsIGJl IGluaXRpYWxpemVkIHRvIHRydWUgaW5zdGVhZCBvZiBmYWxzZSBhbmQgd2Ugd2lsbCBkbwpleHRy YSBib29ra2VlcGluZyBpbiBoZWFwX3BydW5lX3VuY2hhbmdlZF9scF9ub3JtYWwoKSB0byBrZWVw IHRyYWNrIG9mCndoZXRoZXIgb3Igbm90IHRoZSBwYWdlIGlzIGFsbC12aXNpYmxlLgoKQmVjYXVz ZSBvbi1hY2Nlc3MgcHJ1bmluZyB3aWxsIG5vdCBmcmVlemUgdHVwbGVzLCBpdCBtYWtlcyBzZW5z ZSB0bwp1bnNldCBhbGwtdmlzaWJsZSBhcyBzb29uIGFzIHdlIGVuY291bnRlciBhbiBMUF9ERUFE IGl0ZW0gYW5kCmF2b2lkIGNvbnRpbnVlZCBib29ra2VlcGluZyBzaW5jZSB3ZSBrbm93IHRoZSBw YWdlIGlzIG5vdCBhbGwtdmlzaWJsZQphbmQgd2Ugd29uJ3QgYmUgYWJsZSB0byByZW1vdmUgdGhv c2UgZGVhZCBpdGVtcy4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyB8 IDEwICsrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCBhYjc5ZDhhM2VkOS4u ODBkMDU1ZTUzNzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0xNDkzLDgg KzE0OTMsMTEgQEAgaGVhcF9wcnVuZV9yZWNvcmRfZGVhZChQcnVuZVN0YXRlICpwcnN0YXRlLCBP ZmZzZXROdW1iZXIgb2ZmbnVtLAogCiAJLyoKIAkgKiBEZWxpYmVyYXRlbHkgZGVsYXkgdW5zZXR0 aW5nIGFsbF92aXNpYmxlIHVudGlsIGxhdGVyIGR1cmluZyBwcnVuaW5nLgotCSAqIFJlbW92YWJs ZSBkZWFkIHR1cGxlcyBzaG91bGRuJ3QgcHJlY2x1ZGUgZnJlZXppbmcgdGhlIHBhZ2UuCisJICog UmVtb3ZhYmxlIGRlYWQgdHVwbGVzIHNob3VsZG4ndCBwcmVjbHVkZSBmcmVlemluZyB0aGUgcGFn ZS4gSWYgd2Ugd29uJ3QKKwkgKiBhdHRlbXB0IGZyZWV6aW5nLCBqdXN0IHVuc2V0IGFsbC12aXNp YmxlIG5vdywgdGhvdWdoLgogCSAqLworCWlmICghcHJzdGF0ZS0+YXR0ZW1wdF9mcmVlemUpCisJ CXByc3RhdGUtPmFsbF92aXNpYmxlID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJ LyogUmVjb3JkIHRoZSBkZWFkIG9mZnNldCBmb3IgdmFjdXVtICovCiAJcHJzdGF0ZS0+ZGVhZG9m ZnNldHNbcHJzdGF0ZS0+bHBkZWFkX2l0ZW1zKytdID0gb2ZmbnVtOwpAQCAtMTc1Miw4ICsxNzU1 LDExIEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9kZWFkKFBhZ2UgcGFnZSwgUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyCiAJICogU2ltaWxhcmx5LCBkb24ndCB1bnNl dCBhbGxfdmlzaWJsZSB1bnRpbCBsYXRlciwgYXQgdGhlIGVuZCBvZgogCSAqIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKCkuICBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gYXR0ZW1wdCB0byBmcmVl emUKIAkgKiB0aGUgcGFnZSBhZnRlciBwcnVuaW5nLiAgQXMgbG9uZyBhcyB3ZSB1bnNldCBpdCBi ZWZvcmUgdXBkYXRpbmcgdGhlCi0JICogdmlzaWJpbGl0eSBtYXAsIHRoaXMgd2lsbCBiZSBjb3Jy ZWN0LgorCSAqIHZpc2liaWxpdHkgbWFwLCB0aGlzIHdpbGwgYmUgY29ycmVjdC4gSWYgd2Ugd29u J3QgYXR0ZW1wdCBmcmVlemluZywKKwkgKiB0aG91Z2gsIGp1c3QgdW5zZXQgYWxsLXZpc2libGUg bm93LgogCSAqLworCWlmICghcHJzdGF0ZS0+YXR0ZW1wdF9mcmVlemUpCisJCXByc3RhdGUtPmFs bF92aXNpYmxlID0gcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJLyogUmVjb3JkIHRo ZSBkZWFkIG9mZnNldCBmb3IgdmFjdXVtICovCiAJcHJzdGF0ZS0+ZGVhZG9mZnNldHNbcHJzdGF0 ZS0+bHBkZWFkX2l0ZW1zKytdID0gb2ZmbnVtOwotLSAKMi40My4wCgo= --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0018-Add-helper-functions-to-heap_page_prune_and_freez.patch" Content-Disposition: attachment; filename="v6-0018-Add-helper-functions-to-heap_page_prune_and_freez.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu6d17 RnJvbSBlODBjNDI0MTgyNmE1OGYyMTI2MDE3OThjZDM5OGM0YTMxOGE2NTExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMwIEp1bCAyMDI1IDE4OjUxOjQzIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAxOC8yMF0gQWRkIGhlbHBlciBmdW5jdGlvbnMgdG8gaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUKCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgaGFzIGdvdHRlbiByYXRoZXIg bG9uZy4gSXQgaGFzIHNldmVyYWwKc3RhZ2VzOgoKMSkgc2V0dXAgLSB3aGVyZSB0aGUgUHJ1bmVT dGF0ZWlzIHNldCB1cAoyKSB0dXBsZSBleGFtaW5hdGlvbiAtLSB3aGVyZSB0dXBsZXMgYW5kIGxp bmUgcG9pbnRlcnMgYXJlIGV4YW1pbmVkIHRvCiAgIGRldGVybWluZSB3aGF0IG5lZWRzIHRvIGJl IHBydW5lZCBhbmQgd2hhdCBjb3VsZCBiZSBmcm96ZW4KMykgZXZhbHVhdGlvbiAtLSB3aGVyZSB3 ZSBkZXRlcm1pbmUgYmFzZWQgb24gY2FsbGVyIHByb3ZpZGVkIG9wdGlvbnMsCiAgIGhldXJpc3Rp Y3MsIGFuZCBzdGF0ZSBnYXRoZXJlZCBkdXJpbmcgc3RhZ2UgMiB3aGV0aGVyIG9yIG5vdCB0bwog ICBmcmVlemUgdHVwbGVzIGFuZCBzZXQgdGhlIHBhZ2UgaW4gdGhlIFZNCjQpIGV4ZWN1dGlvbiAt IHdoZXJlIHRoZSBwYWdlIGNoYW5nZXMgYXJlIGFjdHVhbGx5IG1hZGUgYW5kIGxvZ2dlZAoKVGhp cyBjb21taXQgcmVmYWN0b3JzIHRoZSBldmFsdWF0aW9uIHN0YWdlIGludG8gaGVscGVycyB3aGlj aCByZXR1cm4Kd2hldGhlciBvciBub3QgdG8gZnJlZXplIGFuZCBzZXQgdGhlIFZNLgoKRm9yIHRo ZSBwdXJwb3NlcyBvZiBjb21taXR0aW5nLCB0aGlzIGxpa2VseSBzaG91bGRuJ3QgYmUgYSBzZXBh cmF0ZQpjb21taXQuIEJ1dCBJJ20gbm90IHN1cmUgeWV0IHdoZXRoZXIgaXQgbWFrZXMgbW9yZSBz ZW5zZSB0byBkbyB0aGlzCnJlZmFjdG9yaW5nIGVhcmxpZXIgaW4gdGhlIHNldCBmb3IgY2xhcml0 eSBmb3IgdGhlIHJldmlld2VyLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jIHwgNDcxICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAy OTUgaW5zZXJ0aW9ucygrKSwgMTc2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMKaW5kZXggZGFkMzQxY2IyNjUuLjVkOTQzYjBjNjRmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYwpAQCAtMTc5LDYgKzE3OSwyMiBAQCBzdGF0aWMgdm9pZCBoZWFwX3By dW5lX3JlY29yZF91bmNoYW5nZWRfbHBfcmVkaXJlY3QoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zm c2V0TgogCiBzdGF0aWMgdm9pZCBwYWdlX3ZlcmlmeV9yZWRpcmVjdHMoUGFnZSBwYWdlKTsKIAor c3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZm ZXIgYnVmZmVyLAorCQkJCQkJCQkgIGJvb2wgZG9fcHJ1bmUsCisJCQkJCQkJCSAgYm9vbCBkb19o aW50X2Z1bGxfb3JfcHJ1bmFibGUsCisJCQkJCQkJCSAgYm9vbCBkaWRfdHVwbGVfaGludF9mcGks CisJCQkJCQkJCSAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKKwkJCQkJCQkJICBib29sICphbGxfZnJv emVuX2V4Y2VwdF9scF9kZWFkKTsKKworc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfdXBkYXRl X3ZtKFJlbGF0aW9uIHJlbGF0aW9uLAorCQkJCQkJCQkJIEJ1ZmZlciBidWZmZXIsIEJsb2NrTnVt YmVyIGJsb2Nrbm8sIFBhZ2UgcGFnZSwKKwkJCQkJCQkJCSBQcnVuZVJlYXNvbiByZWFzb24sCisJ CQkJCQkJCQkgYm9vbCBkb19wcnVuZSwgYm9vbCBkb19mcmVlemUsCisJCQkJCQkJCQkgYm9vbCBi bGtfa25vd25fYXYsCisJCQkJCQkJCQkgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKKwkJCQkJCQkJCSBC dWZmZXIgKnZtYnVmZmVyLCB1aW50OCAqdm1mbGFncywKKwkJCQkJCQkJCSBib29sICpzZXRfcGRf YWxsX3Zpc2libGUpOworCiBzdGF0aWMgYm9vbCBpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRp b24oUmVsYXRpb24gcmVsYXRpb24sCiAJCQkJCQkJCQkJICAgQmxvY2tOdW1iZXIgaGVhcF9ibGss CiAJCQkJCQkJCQkJICAgQnVmZmVyIGhlYXBfYnVmZmVyLCBQYWdlIGhlYXBfcGFnZSwKQEAgLTM3 Niw2ICszOTIsMjQ5IEBAIGlkZW50aWZ5X2FuZF9maXhfdm1fY29ycnVwdGlvbihSZWxhdGlvbiBy ZWxhdGlvbiwKIAlyZXR1cm4gZmFsc2U7CiB9CiAKKworLyoKKyAqIERldGVybWluZSB3aGV0aGVy IHRvIHNldCB0aGUgdmlzaWJpbGl0eSBtYXAgYml0cyBiYXNlZCBvbiBpbmZvcm1hdGlvbiBmcm9t CisgKiB0aGUgUHJ1bmVTdGF0ZSBhbmQgYmxrX2tub3duX2F2LCB3aGljaCBzb21lIGNhbGxlcnMg d2lsbCBwcm92aWRlIGFmdGVyCisgKiBwcmV2aW91c2x5IGV4YW1pbmluZyB0aGlzIGhlYXAgcGFn ZSdzIFZNIGJpdHMgKGUuZy4gdmFjdXVtIGZyb20gdGhlIGxhc3QKKyAqIGhlYXBfdmFjX3NjYW5f bmV4dF9ibG9jaygpIGNhbGwpLgorICoKKyAqIFdlIHBhc3MgaW4gYmxvY2tubyBhbmQgcGFnZSBl dmVuIHRob3NlIGNhbiBiZSBkZXJpdmVkIGZyb20gYnVmZmVyIHRvIGF2b2lkCisgKiBleHRyYSBC dWZmZXJHZXRCbG9jaygpIGFuZCBCdWZmZXJHZXRCbG9ja051bWJlcigpIGNhbGxzLgorICoKKyAq IFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IGFmdGVyIGRvX2ZyZWV6ZSBoYXMgYmVlbiBkZWNp ZGVkIChhbmQgZG9fcHJ1bmUKKyAqIGhhcyBiZWVuIHNldCksIGFzIHRoZXNlIGZhY3RvciBpbnRv IG91ciBoZXVyaXN0aWMtYmFzZWQgZGVjaXNpb24uCisgKgorICogcHJzdGF0ZSBhbmQgdm1idWZm ZXIgYXJlIGlucHV0L291dHB1dCBmaWVsZHMuIHZtZmxhZ3MgYW5kIGFuZAorICogc2V0X3BkX2Fs bF92aXNpYmxlIGFyZSBvdXRwdXQgZmllbGRzLgorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUg Y2FsbGVyIHNob3VsZCBzZXQgb25lIG9yIGJvdGggb2YgdGhlIFZNIGJpdHMgYW5kIGZhbHNlCisg KiBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBib29sCitoZWFwX3BhZ2Vfd2lsbF91cGRhdGVfdm0o UmVsYXRpb24gcmVsYXRpb24sCisJCQkJCQkgQnVmZmVyIGJ1ZmZlciwgQmxvY2tOdW1iZXIgYmxv Y2tubywgUGFnZSBwYWdlLAorCQkJCQkJIFBydW5lUmVhc29uIHJlYXNvbiwKKwkJCQkJCSBib29s IGRvX3BydW5lLCBib29sIGRvX2ZyZWV6ZSwKKwkJCQkJCSBib29sIGJsa19rbm93bl9hdiwKKwkJ CQkJCSBQcnVuZVN0YXRlICpwcnN0YXRlLAorCQkJCQkJIEJ1ZmZlciAqdm1idWZmZXIsIHVpbnQ4 ICp2bWZsYWdzLAorCQkJCQkJIGJvb2wgKnNldF9wZF9hbGxfdmlzaWJsZSkKK3sKKwlib29sCQlk b19zZXRfdm0gPSBmYWxzZTsKKworCS8qCisJICogSWYgdGhlIGNhbGxlciBzcGVjaWZpZWQgbm90 IHRvIHVwZGF0ZSB0aGUgVk0sIHZhbGlkYXRlIGV2ZXJ5dGhpbmcgaXMgaW4KKwkgKiB0aGUgcmln aHQgc3RhdGUgYW5kIGV4aXQuCisJICovCisJaWYgKCFwcnN0YXRlLT5jb25zaWRlcl91cGRhdGVf dm0pCisJeworCQlBc3NlcnQoIXByc3RhdGUtPmFsbF92aXNpYmxlICYmICFwcnN0YXRlLT5hbGxf ZnJvemVuKTsKKwkJLyogV2UgZG9uJ3Qgc2V0IG9ubHkgdGhlIHBhZ2UgbGV2ZWwgdmlzaWJpbGl0 eSBoaW50ICovCisJCUFzc2VydCghKCpzZXRfcGRfYWxsX3Zpc2libGUpKTsKKwkJQXNzZXJ0KCp2 bWZsYWdzID09IDApOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJLyoKKwkgKiBJZiB0aGlzIGlz IGFuIG9uLWFjY2VzcyBjYWxsIGFuZCB3ZSdyZSBub3QgYWN0dWFsbHkgcHJ1bmluZywgYXZvaWQK KwkgKiBzZXR0aW5nIHRoZSB2aXNpYmlsaXR5IG1hcCBpZiBpdCB3b3VsZCBuZXdseSBkaXJ0eSB0 aGUgaGVhcCBwYWdlIG9yLCBpZgorCSAqIHRoZSBwYWdlIGlzIGFscmVhZHkgZGlydHksIGlmIGRv aW5nIHNvIHdvdWxkIHJlcXVpcmUgaW5jbHVkaW5nIGEKKwkgKiBmdWxsLXBhZ2UgaW1hZ2UgKEZQ SSkgb2YgdGhlIGhlYXAgcGFnZSBpbiB0aGUgV0FMLiBUaGlzIHNpdHVhdGlvbgorCSAqIHNob3Vs ZCBiZSByYXJlLCBhcyBvbi1hY2Nlc3MgcHJ1bmluZyBpcyBvbmx5IGF0dGVtcHRlZCB3aGVuCisJ ICogcGRfcHJ1bmVfeGlkIGlzIHZhbGlkLgorCSAqLworCWlmIChyZWFzb24gPT0gUFJVTkVfT05f QUNDRVNTICYmCisJCXByc3RhdGUtPmNvbnNpZGVyX3VwZGF0ZV92bSAmJgorCQlwcnN0YXRlLT5h bGxfdmlzaWJsZSAmJgorCQkhZG9fcHJ1bmUgJiYgIWRvX2ZyZWV6ZSAmJgorCQkoIUJ1ZmZlcklz RGlydHkoYnVmZmVyKSB8fCBYTG9nQ2hlY2tCdWZmZXJOZWVkc0JhY2t1cChidWZmZXIpKSkKKwl7 CisJCXByc3RhdGUtPmNvbnNpZGVyX3VwZGF0ZV92bSA9IGZhbHNlOworCQlwcnN0YXRlLT5hbGxf dmlzaWJsZSA9IHByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKKwl9CisKKwlBc3NlcnQoIXBy c3RhdGUtPmFsbF9mcm96ZW4gfHwgcHJzdGF0ZS0+YWxsX3Zpc2libGUpOworCisJLyoKKwkgKiBD bGVhciBhbnkgVk0gY29ycnVwdGlvbi4gVGhpcyBkb2VzIG5vdCBuZWVkIHRvIGJlIGluIGEgY3Jp dGljYWwKKwkgKiBzZWN0aW9uLCBzbyB3ZSBkbyBpdCBmaXJzdC4gSWYgUERfQUxMX1ZJU0lCTEUg aXMgaW5jb3JyZWN0bHkgc2V0LCB3ZQorCSAqIG1heSBtYXJrIHRoZSBoZWFwIHBhZ2UgYnVmZmVy IGRpcnR5IGhlcmUgYW5kIGNvdWxkIGVuZCB1cCBkb2luZyBzbworCSAqIGFnYWluIGxhdGVyLiBU aGlzIGlzIG5vdCBhIGNvcnJlY3RuZXNzIGlzc3VlIGFuZCBpcyBpbiB0aGUgcGF0aCBvZiBWTQor CSAqIGNvcnJ1cHRpb24sIHNvIHdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhlIGV4dHJh IHBlcmZvcm1hbmNlCisJICogb3ZlcmhlYWQuCisJICovCisJaWYgKGlkZW50aWZ5X2FuZF9maXhf dm1fY29ycnVwdGlvbihyZWxhdGlvbiwKKwkJCQkJCQkJCSAgIGJsb2Nrbm8sIGJ1ZmZlciwgcGFn ZSwKKwkJCQkJCQkJCSAgIGJsa19rbm93bl9hdiwgcHJzdGF0ZS0+bHBkZWFkX2l0ZW1zLAorCQkJ CQkJCQkJICAgKnZtYnVmZmVyKSkKKwl7CisJCS8qIElmIHdlIGZpeCBjb3JydXB0aW9uLCBkb24n dCB1cGRhdGUgdGhlIFZNIGZ1cnRoZXIgKi8KKwl9CisKKwkvKiBEZXRlcm1pbmUgaWYgd2UgYWN0 dWFsbHkgbmVlZCB0byBzZXQgdGhlIFZNIGFuZCB3aGljaCBiaXRzIHRvIHNldC4gKi8KKwllbHNl IGlmIChwcnN0YXRlLT5hbGxfdmlzaWJsZSAmJgorCQkJICghYmxrX2tub3duX2F2IHx8CisJCQkg IChwcnN0YXRlLT5hbGxfZnJvemVuICYmICFWTV9BTExfRlJPWkVOKHJlbGF0aW9uLCBibG9ja25v LCB2bWJ1ZmZlcikpKSkKKwl7CisJCSp2bWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lC TEU7CisJCWlmIChwcnN0YXRlLT5hbGxfZnJvemVuKQorCQkJKnZtZmxhZ3MgfD0gVklTSUJJTElU WU1BUF9BTExfRlJPWkVOOworCX0KKworCWRvX3NldF92bSA9ICp2bWZsYWdzICYgVklTSUJJTElU WU1BUF9WQUxJRF9CSVRTOworCisJLyoKKwkgKiBEb24ndCBzZXQgUERfQUxMX1ZJU0lCTEUgdW5s ZXNzIHdlIGFsc28gcGxhbiB0byBzZXQgdGhlIFZNLiBXaGlsZSBpdCBpcworCSAqIGNvcnJlY3Qg Zm9yIGEgaGVhcCBwYWdlIHRvIGhhdmUgUERfQUxMX1ZJU0lCTEUgZXZlbiBpZiB0aGUgVk0gaXMg bm90CisJICogc2V0LCB3ZSBzdHJvbmdseSBwcmVmZXIgdG8ga2VlcCB0aGVtIGluIHN5bmMuCisJ ICoKKwkgKiBQcmlvciB0byBQb3N0Z3JlcyAxOSwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUgcGFn ZS1sZXZlbCBiaXQgdG8gYmUgc2V0CisJICogYW5kIHRoZSBWTSBiaXQgdG8gYmUgY2xlYXIuIFRo aXMgY291bGQgaGFwcGVuIGlmIHdlIGNyYXNoZWQgYWZ0ZXIKKwkgKiBzZXR0aW5nIFBEX0FMTF9W SVNJQkxFIGJ1dCBiZWZvcmUgc2V0dGluZyBiaXRzIGluIHRoZSBWTS4KKwkgKi8KKwkqc2V0X3Bk X2FsbF92aXNpYmxlID0gZG9fc2V0X3ZtICYmICFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpOworCXJl dHVybiBkb19zZXRfdm07Cit9CisKKy8qCisgKiBEZWNpZGUgaWYgd2Ugd2FudCB0byBnbyBhaGVh ZCB3aXRoIGZyZWV6aW5nIGFjY29yZGluZyB0byB0aGUgZnJlZXplIHBsYW5zIHdlCisgKiBwcmVw YXJlZCBmb3IgdGhlIGdpdmVuIGJ1ZmZlciBvciBub3QuIElmIHRoZSBjYWxsZXIgc3BlY2lmaWVk IHdlIHNob3VsZCBub3QKKyAqIGZyZWV6ZSB0dXBsZXMsIGl0IGV4aXRzIGVhcmx5LgorICoKKyAq IGRvX3BydW5lLCBkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGUsIGFuZCBkaWRfdHVwbGVfaGludF9m cGkgbXVzdCBhbGwgaGF2ZQorICogYmVlbiBkZWNpZGVkIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVu Y3Rpb24uCisgKgorICogcHJzdGF0ZSBpcyBhbiBpbnB1dC9vdXRwdXQgcGFyYW1ldGVyLiBhbGxf ZnJvemVuX2V4Y2VwdF9scF9kZWFkIGlzIHNldCBhbmQKKyAqIHVzZWQgbGF0ZXIgdG8gZGV0ZXJt aW5lIHRoZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uIGZvciB0aGUgcmVjb3JkLgorICoKKyAq IFJldHVybnMgdHJ1ZSBpZiB3ZSBzaG91bGQgdXNlIG91ciBmcmVlemUgcGxhbnMgYW5kIGZyZWV6 ZSB0dXBsZXMgb24gdGhlIHBhZ2UKKyAqIGFuZCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK3N0YXRp YyBib29sCitoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBi dWZmZXIsCisJCQkJCSAgYm9vbCBkb19wcnVuZSwKKwkJCQkJICBib29sIGRvX2hpbnRfZnVsbF9v cl9wcnVuYWJsZSwKKwkJCQkJICBib29sIGRpZF90dXBsZV9oaW50X2ZwaSwKKwkJCQkJICBQcnVu ZVN0YXRlICpwcnN0YXRlLAorCQkJCQkgIGJvb2wgKmFsbF9mcm96ZW5fZXhjZXB0X2xwX2RlYWQp Cit7CisJYm9vbAkJZG9fZnJlZXplID0gZmFsc2U7CisKKwkvKgorCSAqIElmIHRoZSBjYWxsZXIg c3BlY2lmaWVkIHdlIHNob3VsZCBub3QgYXR0ZW1wdCB0byBmcmVlemUgYW55IHR1cGxlcywKKwkg KiB2YWxpZGF0ZSB0aGF0IGV2ZXJ5dGhpbmcgaXMgaW4gdGhlIHJpZ2h0IHN0YXRlIGFuZCBleGl0 LgorCSAqLworCWlmICghcHJzdGF0ZS0+YXR0ZW1wdF9mcmVlemUpCisJeworCQlBc3NlcnQoIXBy c3RhdGUtPmFsbF9mcm96ZW4gJiYgcHJzdGF0ZS0+bmZyb3plbiA9PSAwKTsKKwkJQXNzZXJ0KHBy c3RhdGUtPmxwZGVhZF9pdGVtcyA9PSAwIHx8ICFwcnN0YXRlLT5hbGxfdmlzaWJsZSk7CisJCUFz c2VydCghKCphbGxfZnJvemVuX2V4Y2VwdF9scF9kZWFkKSk7CisJCXJldHVybiBmYWxzZTsKKwl9 CisKKwlpZiAocHJzdGF0ZS0+cGFnZWZyei5mcmVlemVfcmVxdWlyZWQpCisJeworCQkvKgorCQkg KiBoZWFwX3ByZXBhcmVfZnJlZXplX3R1cGxlIGluZGljYXRlZCB0aGF0IGF0IGxlYXN0IG9uZSBY SUQvTVhJRCBmcm9tCisJCSAqIGJlZm9yZSBGcmVlemVMaW1pdC9NdWx0aVhhY3RDdXRvZmYgaXMg cHJlc2VudC4gIE11c3QgZnJlZXplIHRvCisJCSAqIGFkdmFuY2UgcmVsZnJvemVueGlkL3JlbG1p bm14aWQuCisJCSAqLworCQlkb19mcmVlemUgPSB0cnVlOworCX0KKwllbHNlCisJeworCQkvKgor CQkgKiBPcHBvcnR1bmlzdGljYWxseSBmcmVlemUgdGhlIHBhZ2UgaWYgd2UgYXJlIGdlbmVyYXRp bmcgYW4gRlBJCisJCSAqIGFueXdheSBhbmQgaWYgZG9pbmcgc28gbWVhbnMgdGhhdCB3ZSBjYW4g c2V0IHRoZSBwYWdlIGFsbC1mcm96ZW4KKwkJICogYWZ0ZXJ3YXJkcyAobWlnaHQgbm90IGhhcHBl biB1bnRpbCBWQUNVVU0ncyBmaW5hbCBoZWFwIHBhc3MpLgorCQkgKgorCQkgKiBYWFg6IFByZXZp b3VzbHksIHdlIGtuZXcgaWYgcHJ1bmluZyBlbWl0dGVkIGFuIEZQSSBieSBjaGVja2luZworCQkg KiBwZ1dhbFVzYWdlLndhbF9mcGkgYmVmb3JlIGFuZCBhZnRlciBwcnVuaW5nLiAgT25jZSB0aGUg ZnJlZXplIGFuZAorCQkgKiBwcnVuZSByZWNvcmRzIHdlcmUgY29tYmluZWQsIHRoaXMgaGV1cmlz dGljIGNvdWxkbid0IGJlIHVzZWQKKwkJICogYW55bW9yZS4gIFRoZSBvcHBvcnR1bmlzdGljIGZy ZWV6ZSBoZXVyaXN0aWMgbXVzdCBiZSBpbXByb3ZlZDsKKwkJICogaG93ZXZlciwgZm9yIG5vdywg dHJ5IHRvIGFwcHJveGltYXRlIHRoZSBvbGQgbG9naWMuCisJCSAqLworCQlpZiAocHJzdGF0ZS0+ YWxsX3Zpc2libGUgJiYgcHJzdGF0ZS0+YWxsX2Zyb3plbiAmJiBwcnN0YXRlLT5uZnJvemVuID4g MCkKKwkJeworCQkJLyoKKwkJCSAqIEZyZWV6aW5nIHdvdWxkIG1ha2UgdGhlIHBhZ2UgYWxsLWZy b3plbi4gIEhhdmUgYWxyZWFkeSBlbWl0dGVkCisJCQkgKiBhbiBGUEkgb3Igd2lsbCBkbyBzbyBh bnl3YXk/CisJCQkgKi8KKwkJCWlmIChSZWxhdGlvbk5lZWRzV0FMKHJlbGF0aW9uKSkKKwkJCXsK KwkJCQlpZiAoZGlkX3R1cGxlX2hpbnRfZnBpKQorCQkJCQlkb19mcmVlemUgPSB0cnVlOworCQkJ CWVsc2UgaWYgKGRvX3BydW5lKQorCQkJCXsKKwkJCQkJaWYgKFhMb2dDaGVja0J1ZmZlck5lZWRz QmFja3VwKGJ1ZmZlcikpCisJCQkJCQlkb19mcmVlemUgPSB0cnVlOworCQkJCX0KKwkJCQllbHNl IGlmIChkb19oaW50X2Z1bGxfb3JfcHJ1bmFibGUpCisJCQkJeworCQkJCQlpZiAoWExvZ0hpbnRC aXRJc05lZWRlZCgpICYmIFhMb2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKGJ1ZmZlcikpCisJCQkJ CQlkb19mcmVlemUgPSB0cnVlOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKworCWlmIChkb19mcmVl emUpCisJeworCQkvKgorCQkgKiBWYWxpZGF0ZSB0aGUgdHVwbGVzIHdlIHdpbGwgYmUgZnJlZXpp bmcgYmVmb3JlIGVudGVyaW5nIHRoZQorCQkgKiBjcml0aWNhbCBzZWN0aW9uLgorCQkgKi8KKwkJ aGVhcF9wcmVfZnJlZXplX2NoZWNrcyhidWZmZXIsIHByc3RhdGUtPmZyb3plbiwgcHJzdGF0ZS0+ bmZyb3plbik7CisJfQorCWVsc2UgaWYgKHByc3RhdGUtPm5mcm96ZW4gPiAwKQorCXsKKwkJLyoK KwkJICogVGhlIHBhZ2UgY29udGFpbmVkIHNvbWUgdHVwbGVzIHRoYXQgd2VyZSBub3QgYWxyZWFk eSBmcm96ZW4sIGFuZCB3ZQorCQkgKiBjaG9zZSBub3QgdG8gZnJlZXplIHRoZW0gbm93LiAgVGhl IHBhZ2Ugd29uJ3QgYmUgYWxsLWZyb3plbiB0aGVuLgorCQkgKi8KKwkJQXNzZXJ0KCFwcnN0YXRl LT5wYWdlZnJ6LmZyZWV6ZV9yZXF1aXJlZCk7CisKKwkJcHJzdGF0ZS0+YWxsX2Zyb3plbiA9IGZh bHNlOworCQlwcnN0YXRlLT5uZnJvemVuID0gMDsJLyogYXZvaWQgbWlzY291bnRzIGluIGluc3Ry dW1lbnRhdGlvbiAqLworCX0KKwllbHNlCisJeworCQkvKgorCQkgKiBXZSBoYXZlIG5vIGZyZWV6 ZSBwbGFucyB0byBleGVjdXRlLiAgVGhlIHBhZ2UgbWlnaHQgYWxyZWFkeSBiZQorCQkgKiBhbGwt ZnJvemVuIChwZXJoYXBzIG9ubHkgZm9sbG93aW5nIHBydW5pbmcpLCB0aG91Z2guICBTdWNoIHBh Z2VzCisJCSAqIGNhbiBiZSBtYXJrZWQgYWxsLWZyb3plbiBpbiB0aGUgVk0gYnkgb3VyIGNhbGxl ciwgZXZlbiB0aG91Z2ggbm9uZQorCQkgKiBvZiBpdHMgdHVwbGVzIHdlcmUgbmV3bHkgZnJvemVu IGhlcmUuCisJCSAqLworCX0KKworCS8qCisJICogSXQgd2FzIGNvbnZlbmllbnQgdG8gaWdub3Jl IExQX0RFQUQgaXRlbXMgaW4gYWxsX3Zpc2libGUgZWFybGllciBvbiB0bworCSAqIG1ha2UgdGhl IGNob2ljZSBvZiB3aGV0aGVyIG9yIG5vdCB0byBmcmVlemUgdGhlIHBhZ2UgdW5hZmZlY3RlZCBi eSB0aGUKKwkgKiBzaG9ydC10ZXJtIHByZXNlbmNlIG9mIExQX0RFQUQgaXRlbXMuICBUaGVzZSBM UF9ERUFEIGl0ZW1zIHdlcmUKKwkgKiBlZmZlY3RpdmVseSBhc3N1bWVkIHRvIGJlIExQX1VOVVNF RCBpdGVtcyBpbiB0aGUgbWFraW5nLiAgSXQgZG9lc24ndAorCSAqIG1hdHRlciB3aGljaCB2YWN1 dW0gaGVhcCBwYXNzIChpbml0aWFsIHBhc3Mgb3IgZmluYWwgcGFzcykgZW5kcyB1cAorCSAqIHNl dHRpbmcgdGhlIHBhZ2UgYWxsLWZyb3plbiwgYXMgbG9uZyBhcyB0aGUgb25nb2luZyBWQUNVVU0g ZG9lcyBpdC4KKwkgKgorCSAqIE5vdyB0aGF0IGZyZWV6aW5nIGhhcyBiZWVuIGZpbmFsaXplZCwg dW5zZXQgYWxsX3Zpc2libGUgaWYgdGhlcmUgYXJlCisJICogYW55IExQX0RFQUQgaXRlbXMgb24g dGhlIHBhZ2UuIEl0IG5lZWRzIHRvIHJlZmxlY3QgdGhlIHByZXNlbnQgc3RhdGUgb2YKKwkgKiB0 aGUgcGFnZSB3aGVuIHVzaW5nIGl0IHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0byB1cGRh dGUgdGhlIFZNLgorCSAqCisJICogS2VlcCB0cmFjayBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFn ZSB3YXMgYWxsLWZyb3plbiBleGNlcHQgTFBfREVBRAorCSAqIGl0ZW1zIGZvciB0aGUgcHVycG9z ZXMgb2YgY2FsY3VsYXRpbmcgdGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24sCisJICogdGhv dWdoLgorCSAqLworCSphbGxfZnJvemVuX2V4Y2VwdF9scF9kZWFkID0gcHJzdGF0ZS0+YWxsX2Zy b3plbjsKKwlpZiAocHJzdGF0ZS0+bHBkZWFkX2l0ZW1zID4gMCkKKwl7CisJCXByc3RhdGUtPmFs bF92aXNpYmxlID0gZmFsc2U7CisJCXByc3RhdGUtPmFsbF9mcm96ZW4gPSBmYWxzZTsKKwl9CisK KwlyZXR1cm4gZG9fZnJlZXplOworfQorCisKIC8qCiAgKiBQcnVuZSBhbmQgcmVwYWlyIGZyYWdt ZW50YXRpb24gYW5kIHBvdGVudGlhbGx5IGZyZWV6ZSB0dXBsZXMgb24gdGhlCiAgKiBzcGVjaWZp ZWQgcGFnZS4gSWYgdGhlIHBhZ2UncyB2aXNpYmlsaXR5IHN0YXR1cyBoYXMgY2hhbmdlZCwgdXBk YXRlIGl0IGluCkBAIC03NjYsMjAgKzEwMjUsMzAgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJLyogQ2xlYXIgdGhlIG9mZnNl dCBpbmZvcm1hdGlvbiBvbmNlIHdlIGhhdmUgcHJvY2Vzc2VkIHRoZSBnaXZlbiBwYWdlLiAqLwog CSpvZmZfbG9jID0gSW52YWxpZE9mZnNldE51bWJlcjsKIAotCWRvX3BydW5lID0gcHJzdGF0ZS5u cmVkaXJlY3RlZCA+IDAgfHwKLQkJcHJzdGF0ZS5uZGVhZCA+IDAgfHwKLQkJcHJzdGF0ZS5udW51 c2VkID4gMDsKLQogCS8qCiAJICogQWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIGxpdmUgdHVwbGVz IG9uIHRoZSBwYWdlLCBpZiB0aGUgbmV3ZXN0IHhtaW4KIAkgKiBhbW9uZ3N0IHRoZW0gaXMgbm90 IHZpc2libGUgdG8gZXZlcnlvbmUsIHRoZSBwYWdlIGNhbm5vdCBiZQotCSAqIGFsbC12aXNpYmxl LgorCSAqIGFsbC12aXNpYmxlLiBUaGlzIG11c3QgYmUgZG9uZSBiZWZvcmUgd2UgZGVjaWRlIHdo ZXRoZXIgb3Igbm90IHRvCisJICogb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXplIGJlbG93IGJlY2F1 c2Ugd2UgZG8gbm90IHdhbnQgdG8KKwkgKiBvcHBvcnR1bmlzdGljYWxseSBmcmVlemUgdGhlIHBh Z2UgaWYgdGhlcmUgYXJlIGxpdmUgdHVwbGVzIG5vdCB2aXNpYmxlCisJICogdG8gZXZlcnlvbmUs IHdoaWNoIHdvdWxkIHByZXZlbnQgc2V0dGluZyB0aGUgcGFnZSBmcm96ZW4gaW4gdGhlIFZNLgog CSAqLwogCWlmIChwcnN0YXRlLmFsbF92aXNpYmxlICYmCiAJCVRyYW5zYWN0aW9uSWRJc05vcm1h bChwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkgJiYKIAkJIUdsb2JhbFZpc1hpZFZpc2li bGVUb0FsbChwcnN0YXRlLnZpc3Rlc3QsIHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkKSkK IAkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IHByc3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNlOwogCisJ LyoKKwkgKiBOb3cgZGVjaWRlIGJhc2VkIG9uIGluZm9ybWF0aW9uIGNvbGxlY3RlZCB3aGlsZSBl eGFtaW5pbmcgZXZlcnkgdHVwbGUKKwkgKiB3aGljaCBhY3Rpb25zIHRvIHRha2UuIElmIHRoZXJl IGFyZSBhbnkgcHJ1bmFibGUgdHVwbGVzLCB3ZSdsbCBwcnVuZQorCSAqIHRoZW0uIEhvd2V2ZXIs IHdlIHdpbGwgZGVjaWRlIGJhc2VkIG9uIG9wdGlvbnMgc3BlY2lmaWVkIGJ5IHRoZSBjYWxsZXIK KwkgKiBhbmQgdmFyaW91cyBoZXVyaXN0aWNzIHdoZXRoZXIgb3Igbm90IHRvIGZyZWV6ZSBhbnkg dHVwbGVzIGFuZCB3aGV0aGVyCisJICogb3Igbm90IHRoZSBwYWdlIHNob3VsZCBiZSBzZXQgYWxs LXZpc2libGUvYWxsLWZyb3plbiBpbiB0aGUgVk0uCisJICovCisJZG9fcHJ1bmUgPSBwcnN0YXRl Lm5yZWRpcmVjdGVkID4gMCB8fAorCQlwcnN0YXRlLm5kZWFkID4gMCB8fAorCQlwcnN0YXRlLm51 bnVzZWQgPiAwOworCiAJLyoKIAkgKiBFdmVuIGlmIHdlIGRvbid0IHBydW5lIGFueXRoaW5nLCBp ZiB3ZSBmb3VuZCBhIG5ldyB2YWx1ZSBmb3IgdGhlCiAJICogcGRfcHJ1bmVfeGlkIGZpZWxkIG9y IHRoZSBwYWdlIHdhcyBtYXJrZWQgZnVsbCwgd2Ugd2lsbCB1cGRhdGUgdGhvc2UKQEAgLTc5MCwx ODIgKzEwNTksMzIgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsCiAJCVBhZ2VJc0Z1bGwocGFnZSk7CiAKIAkvKgotCSAqIERlY2lk ZSBpZiB3ZSB3YW50IHRvIGdvIGFoZWFkIHdpdGggZnJlZXppbmcgYWNjb3JkaW5nIHRvIHRoZSBm cmVlemUKLQkgKiBwbGFucyB3ZSBwcmVwYXJlZCwgb3Igbm90LgotCSAqLwotCWRvX2ZyZWV6ZSA9 IGZhbHNlOwotCWlmIChwcnN0YXRlLmF0dGVtcHRfZnJlZXplKQotCXsKLQkJaWYgKHByc3RhdGUu cGFnZWZyei5mcmVlemVfcmVxdWlyZWQpCi0JCXsKLQkJCS8qCi0JCQkgKiBoZWFwX3ByZXBhcmVf ZnJlZXplX3R1cGxlIGluZGljYXRlZCB0aGF0IGF0IGxlYXN0IG9uZSBYSUQvTVhJRAotCQkJICog ZnJvbSBiZWZvcmUgRnJlZXplTGltaXQvTXVsdGlYYWN0Q3V0b2ZmIGlzIHByZXNlbnQuICBNdXN0 Ci0JCQkgKiBmcmVlemUgdG8gYWR2YW5jZSByZWxmcm96ZW54aWQvcmVsbWlubXhpZC4KLQkJCSAq LwotCQkJZG9fZnJlZXplID0gdHJ1ZTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCS8qCi0JCQkgKiBP cHBvcnR1bmlzdGljYWxseSBmcmVlemUgdGhlIHBhZ2UgaWYgd2UgYXJlIGdlbmVyYXRpbmcgYW4g RlBJCi0JCQkgKiBhbnl3YXkgYW5kIGlmIGRvaW5nIHNvIG1lYW5zIHRoYXQgd2UgY2FuIHNldCB0 aGUgcGFnZQotCQkJICogYWxsLWZyb3plbiBhZnRlcndhcmRzIChtaWdodCBub3QgaGFwcGVuIHVu dGlsIFZBQ1VVTSdzIGZpbmFsCi0JCQkgKiBoZWFwIHBhc3MpLgotCQkJICoKLQkJCSAqIFhYWDog UHJldmlvdXNseSwgd2Uga25ldyBpZiBwcnVuaW5nIGVtaXR0ZWQgYW4gRlBJIGJ5IGNoZWNraW5n Ci0JCQkgKiBwZ1dhbFVzYWdlLndhbF9mcGkgYmVmb3JlIGFuZCBhZnRlciBwcnVuaW5nLiAgT25j ZSB0aGUgZnJlZXplCi0JCQkgKiBhbmQgcHJ1bmUgcmVjb3JkcyB3ZXJlIGNvbWJpbmVkLCB0aGlz IGhldXJpc3RpYyBjb3VsZG4ndCBiZQotCQkJICogdXNlZCBhbnltb3JlLiAgVGhlIG9wcG9ydHVu aXN0aWMgZnJlZXplIGhldXJpc3RpYyBtdXN0IGJlCi0JCQkgKiBpbXByb3ZlZDsgaG93ZXZlciwg Zm9yIG5vdywgdHJ5IHRvIGFwcHJveGltYXRlIHRoZSBvbGQgbG9naWMuCi0JCQkgKi8KLQkJCWlm IChwcnN0YXRlLmFsbF92aXNpYmxlICYmIHByc3RhdGUuYWxsX2Zyb3plbiAmJiBwcnN0YXRlLm5m cm96ZW4gPiAwKQotCQkJewotCQkJCS8qCi0JCQkJICogRnJlZXppbmcgd291bGQgbWFrZSB0aGUg cGFnZSBhbGwtZnJvemVuLiAgSGF2ZSBhbHJlYWR5Ci0JCQkJICogZW1pdHRlZCBhbiBGUEkgb3Ig d2lsbCBkbyBzbyBhbnl3YXk/Ci0JCQkJICovCi0JCQkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocmVs YXRpb24pKQotCQkJCXsKLQkJCQkJaWYgKGRpZF90dXBsZV9oaW50X2ZwaSkKLQkJCQkJCWRvX2Zy ZWV6ZSA9IHRydWU7Ci0JCQkJCWVsc2UgaWYgKGRvX3BydW5lKQotCQkJCQl7Ci0JCQkJCQlpZiAo WExvZ0NoZWNrQnVmZmVyTmVlZHNCYWNrdXAoYnVmZmVyKSkKLQkJCQkJCQlkb19mcmVlemUgPSB0 cnVlOwotCQkJCQl9Ci0JCQkJCWVsc2UgaWYgKGRvX2hpbnRfZnVsbF9vcl9wcnVuYWJsZSkKLQkJ CQkJewotCQkJCQkJaWYgKFhMb2dIaW50Qml0SXNOZWVkZWQoKSAmJiBYTG9nQ2hlY2tCdWZmZXJO ZWVkc0JhY2t1cChidWZmZXIpKQotCQkJCQkJCWRvX2ZyZWV6ZSA9IHRydWU7Ci0JCQkJCX0KLQkJ CQl9Ci0JCQl9Ci0JCX0KLQl9Ci0KLQlpZiAoZG9fZnJlZXplKQotCXsKLQkJLyoKLQkJICogVmFs aWRhdGUgdGhlIHR1cGxlcyB3ZSB3aWxsIGJlIGZyZWV6aW5nIGJlZm9yZSBlbnRlcmluZyB0aGUK LQkJICogY3JpdGljYWwgc2VjdGlvbi4KLQkJICovCi0JCWhlYXBfcHJlX2ZyZWV6ZV9jaGVja3Mo YnVmZmVyLCBwcnN0YXRlLmZyb3plbiwgcHJzdGF0ZS5uZnJvemVuKTsKLQl9Ci0JZWxzZSBpZiAo cHJzdGF0ZS5uZnJvemVuID4gMCkKLQl7Ci0JCS8qCi0JCSAqIFRoZSBwYWdlIGNvbnRhaW5lZCBz b21lIHR1cGxlcyB0aGF0IHdlcmUgbm90IGFscmVhZHkgZnJvemVuLCBhbmQgd2UKLQkJICogY2hv c2Ugbm90IHRvIGZyZWV6ZSB0aGVtIG5vdy4gIFRoZSBwYWdlIHdvbid0IGJlIGFsbC1mcm96ZW4g dGhlbi4KLQkJICovCi0JCUFzc2VydCghcHJzdGF0ZS5wYWdlZnJ6LmZyZWV6ZV9yZXF1aXJlZCk7 Ci0KLQkJcHJzdGF0ZS5hbGxfZnJvemVuID0gZmFsc2U7Ci0JCXByc3RhdGUubmZyb3plbiA9IDA7 CS8qIGF2b2lkIG1pc2NvdW50cyBpbiBpbnN0cnVtZW50YXRpb24gKi8KLQl9Ci0JZWxzZQotCXsK LQkJLyoKLQkJICogV2UgaGF2ZSBubyBmcmVlemUgcGxhbnMgdG8gZXhlY3V0ZS4gIFRoZSBwYWdl IG1pZ2h0IGFscmVhZHkgYmUKLQkJICogYWxsLWZyb3plbiAocGVyaGFwcyBvbmx5IGZvbGxvd2lu ZyBwcnVuaW5nKSwgdGhvdWdoLiAgU3VjaCBwYWdlcwotCQkgKiBjYW4gYmUgbWFya2VkIGFsbC1m cm96ZW4gaW4gdGhlIFZNIGJ5IG91ciBjYWxsZXIsIGV2ZW4gdGhvdWdoIG5vbmUKLQkJICogb2Yg aXRzIHR1cGxlcyB3ZXJlIG5ld2x5IGZyb3plbiBoZXJlLgotCQkgKi8KLQl9Ci0KLQkvKgotCSAq IEl0IHdhcyBjb252ZW5pZW50IHRvIGlnbm9yZSBMUF9ERUFEIGl0ZW1zIGluIGFsbF92aXNpYmxl IGVhcmxpZXIgb24gdG8KLQkgKiBtYWtlIHRoZSBjaG9pY2Ugb2Ygd2hldGhlciBvciBub3QgdG8g ZnJlZXplIHRoZSBwYWdlIHVuYWZmZWN0ZWQgYnkgdGhlCi0JICogc2hvcnQtdGVybSBwcmVzZW5j ZSBvZiBMUF9ERUFEIGl0ZW1zLiAgVGhlc2UgTFBfREVBRCBpdGVtcyB3ZXJlCi0JICogZWZmZWN0 aXZlbHkgYXNzdW1lZCB0byBiZSBMUF9VTlVTRUQgaXRlbXMgaW4gdGhlIG1ha2luZy4gIEl0IGRv ZXNuJ3QKLQkgKiBtYXR0ZXIgd2hpY2ggdmFjdXVtIGhlYXAgcGFzcyAoaW5pdGlhbCBwYXNzIG9y IGZpbmFsIHBhc3MpIGVuZHMgdXAKLQkgKiBzZXR0aW5nIHRoZSBwYWdlIGFsbC1mcm96ZW4sIGFz IGxvbmcgYXMgdGhlIG9uZ29pbmcgVkFDVVVNIGRvZXMgaXQuCi0JICoKLQkgKiBOb3cgdGhhdCBm cmVlemluZyBoYXMgYmVlbiBmaW5hbGl6ZWQsIHVuc2V0IGFsbF92aXNpYmxlIGlmIHRoZXJlIGFy ZQotCSAqIGFueSBMUF9ERUFEIGl0ZW1zIG9uIHRoZSBwYWdlLiBJdCBuZWVkcyB0byByZWZsZWN0 IHRoZSBwcmVzZW50IHN0YXRlIG9mCi0JICogdGhlIHBhZ2Ugd2hlbiB1c2luZyBpdCB0byBkZXRl cm1pbmUgd2hldGhlciBvciBub3QgdG8gdXBkYXRlIHRoZSBWTS4KLQkgKgotCSAqIEtlZXAgdHJh Y2sgb2Ygd2hldGhlciBvciBub3QgdGhlIHBhZ2Ugd2FzIGFsbC1mcm96ZW4gZXhjZXB0IExQX0RF QUQKLQkgKiBpdGVtcyBmb3IgdGhlIHB1cnBvc2VzIG9mIGNhbGN1bGF0aW5nIHRoZSBzbmFwc2hv dCBjb25mbGljdCBob3Jpem9uLAotCSAqIHRob3VnaC4KKwkgKiBXZSBtdXN0IGRlY2lkZSB3aGV0 aGVyIG9yIG5vdCB0byBmcmVlemUgYmVmb3JlIGRlY2lkaW5nIGlmIGFuZCB3aGF0IHRvCisJICog c2V0IGluIHRoZSBWTS4KIAkgKi8KLQlhbGxfZnJvemVuX2V4Y2VwdF9scF9kZWFkID0gcHJzdGF0 ZS5hbGxfZnJvemVuOwotCWlmIChwcnN0YXRlLmxwZGVhZF9pdGVtcyA+IDApCi0JewotCQlwcnN0 YXRlLmFsbF92aXNpYmxlID0gZmFsc2U7Ci0JCXByc3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNlOwot CX0KLQotCS8qCi0JICogSWYgdGhpcyBpcyBhbiBvbi1hY2Nlc3MgY2FsbCBhbmQgd2UncmUgbm90 IGFjdHVhbGx5IHBydW5pbmcsIGF2b2lkCi0JICogc2V0dGluZyB0aGUgdmlzaWJpbGl0eSBtYXAg aWYgaXQgd291bGQgbmV3bHkgZGlydHkgdGhlIGhlYXAgcGFnZSBvciwgaWYKLQkgKiB0aGUgcGFn ZSBpcyBhbHJlYWR5IGRpcnR5LCBpZiBkb2luZyBzbyB3b3VsZCByZXF1aXJlIGluY2x1ZGluZyBh Ci0JICogZnVsbC1wYWdlIGltYWdlIChGUEkpIG9mIHRoZSBoZWFwIHBhZ2UgaW4gdGhlIFdBTC4g VGhpcyBzaXR1YXRpb24KLQkgKiBzaG91bGQgYmUgcmFyZSwgYXMgb24tYWNjZXNzIHBydW5pbmcg aXMgb25seSBhdHRlbXB0ZWQgd2hlbgotCSAqIHBkX3BydW5lX3hpZCBpcyB2YWxpZC4KLQkgKi8K LQlpZiAocmVhc29uID09IFBSVU5FX09OX0FDQ0VTUyAmJgotCQlwcnN0YXRlLmNvbnNpZGVyX3Vw ZGF0ZV92bSAmJgotCQlwcnN0YXRlLmFsbF92aXNpYmxlICYmCi0JCSFkb19wcnVuZSAmJiAhZG9f ZnJlZXplICYmCi0JCSghQnVmZmVySXNEaXJ0eShidWZmZXIpIHx8IFhMb2dDaGVja0J1ZmZlck5l ZWRzQmFja3VwKGJ1ZmZlcikpKQotCXsKLQkJcHJzdGF0ZS5jb25zaWRlcl91cGRhdGVfdm0gPSBm YWxzZTsKLQkJcHJzdGF0ZS5hbGxfdmlzaWJsZSA9IHByc3RhdGUuYWxsX2Zyb3plbiA9IGZhbHNl OwotCX0KLQotCUFzc2VydCghcHJzdGF0ZS5hbGxfZnJvemVuIHx8IHByc3RhdGUuYWxsX3Zpc2li bGUpOwotCi0JLyoKLQkgKiBIYW5kbGUgc2V0dGluZyB2aXNpYmlsaXR5IG1hcCBiaXQgYmFzZWQg b24gaW5mb3JtYXRpb24gZnJvbSB0aGUgVk0gKGlmCi0JICogcHJvdmlkZWQsIGUuZy4gYnkgdmFj dXVtIGZyb20gdGhlIGxhc3QgaGVhcF92YWNfc2Nhbl9uZXh0X2Jsb2NrKCkKLQkgKiBjYWxsKSwg YW5kIGZyb20gYWxsX3Zpc2libGUgYW5kIGFsbF9mcm96ZW4gdmFyaWFibGVzLgotCSAqLwotCWlm IChwcnN0YXRlLmNvbnNpZGVyX3VwZGF0ZV92bSkKLQl7Ci0JCS8qCi0JCSAqIENsZWFyIGFueSBW TSBjb3JydXB0aW9uLiBUaGlzIGRvZXMgbm90IG5lZWQgdG8gYmUgaW4gYSBjcml0aWNhbAotCQkg KiBzZWN0aW9uLCBzbyB3ZSBkbyBpdCBmaXJzdC4gSWYgUERfQUxMX1ZJU0lCTEUgaXMgaW5jb3Jy ZWN0bHkgc2V0LAotCQkgKiB3ZSBtYXkgbWFyayB0aGUgaGVhcCBwYWdlIGJ1ZmZlciBkaXJ0eSBo ZXJlIGFuZCBjb3VsZCBlbmQgdXAgZG9pbmcKLQkJICogc28gYWdhaW4gbGF0ZXIuIFRoaXMgaXMg bm90IGEgY29ycmVjdG5lc3MgaXNzdWUgYW5kIGlzIGluIHRoZSBwYXRoCi0JCSAqIG9mIFZNIGNv cnJ1cHRpb24sIHNvIHdlIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhlIGV4dHJhCi0JCSAq IHBlcmZvcm1hbmNlIG92ZXJoZWFkLgotCQkgKi8KLQkJaWYgKGlkZW50aWZ5X2FuZF9maXhfdm1f Y29ycnVwdGlvbihyZWxhdGlvbiwKLQkJCQkJCQkJCQkgICBibG9ja25vLCBidWZmZXIsIHBhZ2Us Ci0JCQkJCQkJCQkJICAgYmxrX2tub3duX2F2LCBwcnN0YXRlLmxwZGVhZF9pdGVtcywgdm1idWZm ZXIpKQotCQl7Ci0JCQkvKiBJZiB3ZSBmaXggY29ycnVwdGlvbiwgZG9uJ3QgdXBkYXRlIHRoZSBW TSBmdXJ0aGVyICovCi0JCX0KLQotCQkvKiBEZXRlcm1pbmUgaWYgd2UgYWN0dWFsbHkgbmVlZCB0 byBzZXQgdGhlIFZNIGFuZCB3aGljaCBiaXRzIHRvIHNldC4gKi8KLQkJZWxzZSBpZiAocHJzdGF0 ZS5hbGxfdmlzaWJsZSAmJgotCQkJCSAoIWJsa19rbm93bl9hdiB8fAotCQkJCSAgKHByc3RhdGUu YWxsX2Zyb3plbiAmJiAhVk1fQUxMX0ZST1pFTihyZWxhdGlvbiwgYmxvY2tubywgJnZtYnVmZmVy KSkpKQotCQl7Ci0JCQl2bWZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7Ci0JCQlp ZiAocHJzdGF0ZS5hbGxfZnJvemVuKQotCQkJCXZtZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExf RlJPWkVOOwotCQl9Ci0JfQotCi0JZG9fc2V0X3ZtID0gdm1mbGFncyAmIFZJU0lCSUxJVFlNQVBf VkFMSURfQklUUzsKLQotCS8qCi0JICogRG9uJ3Qgc2V0IFBEX0FMTF9WSVNJQkxFIHVubGVzcyB3 ZSBhbHNvIHBsYW4gdG8gc2V0IHRoZSBWTS4gV2hpbGUgaXQgaXMKLQkgKiBjb3JyZWN0IGZvciBh IGhlYXAgcGFnZSB0byBoYXZlIFBEX0FMTF9WSVNJQkxFIGV2ZW4gaWYgdGhlIFZNIGlzIG5vdAot CSAqIHNldCwgd2Ugc3Ryb25nbHkgcHJlZmVyIHRvIGtlZXAgdGhlbSBpbiBzeW5jLgotCSAqCi0J ICogUHJpb3IgdG8gUG9zdGdyZXMgMTksIGl0IHdhcyBwb3NzaWJsZSBmb3IgdGhlIHBhZ2UtbGV2 ZWwgYml0IHRvIGJlIHNldAotCSAqIGFuZCB0aGUgVk0gYml0IHRvIGJlIGNsZWFyLiBUaGlzIGNv dWxkIGhhcHBlbiBpZiB3ZSBjcmFzaGVkIGFmdGVyCi0JICogc2V0dGluZyBQRF9BTExfVklTSUJM RSBidXQgYmVmb3JlIHNldHRpbmcgYml0cyBpbiB0aGUgVk0uCi0JICovCi0Jc2V0X3BkX2FsbF92 aXNpYmxlID0gZG9fc2V0X3ZtICYmICFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpOworCWRvX2ZyZWV6 ZSA9IGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShyZWxhdGlvbiwgYnVmZmVyLAorCQkJCQkJCQkJICBk b19wcnVuZSwKKwkJCQkJCQkJCSAgZG9faGludF9mdWxsX29yX3BydW5hYmxlLAorCQkJCQkJCQkJ ICBkaWRfdHVwbGVfaGludF9mcGksCisJCQkJCQkJCQkgICZwcnN0YXRlLAorCQkJCQkJCQkJICAm YWxsX2Zyb3plbl9leGNlcHRfbHBfZGVhZCk7CisKKwlkb19zZXRfdm0gPSBoZWFwX3BhZ2Vfd2ls bF91cGRhdGVfdm0ocmVsYXRpb24sCisJCQkJCQkJCQkJIGJ1ZmZlciwgYmxvY2tubywgcGFnZSwK KwkJCQkJCQkJCQkgcmVhc29uLAorCQkJCQkJCQkJCSBkb19wcnVuZSwgZG9fZnJlZXplLAorCQkJ CQkJCQkJCSBibGtfa25vd25fYXYsCisJCQkJCQkJCQkJICZwcnN0YXRlLAorCQkJCQkJCQkJCSAm dm1idWZmZXIsCisJCQkJCQkJCQkJICZ2bWZsYWdzLCAmc2V0X3BkX2FsbF92aXNpYmxlKTsKIAog CS8qIFNhdmUgdGhlc2UgZm9yIHRoZSBjYWxsZXIgaW4gY2FzZSB3ZSBsYXRlciB6ZXJvIG91dCB2 bWZsYWdzICovCiAJcHJlc3VsdC0+bmV3X3ZtYml0cyA9IHZtZmxhZ3M7CiAKLQkvKiBBbnkgZXJy b3Igd2hpbGUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgaXMgY3JpdGljYWwgKi8KKwkvKgorCSAqIFRp bWUgdG8gYWN0dWFsbHkgbWFrZSB0aGUgY2hhbmdlcyB0byB0aGUgcGFnZSBhbmQgbG9nIHRoZW0u IEFueSBlcnJvcgorCSAqIHdoaWxlIGFwcGx5aW5nIHRoZSBjaGFuZ2VzIGlzIGNyaXRpY2FsLgor CSAqLwogCVNUQVJUX0NSSVRfU0VDVElPTigpOwogCiAJaWYgKGRvX2hpbnRfZnVsbF9vcl9wcnVu YWJsZSkKLS0gCjIuNDMuMAoK --00000000000028fe60063b548d2f Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0020-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v6-0020-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdtcbu6f19 RnJvbSA0MGJjYjYwMWFmMTM0YmZhMTNhZjI5YmFlY2Y1ZDZhNmYyOTllNWQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NiAyMC8yMF0gU2V0IHBkX3BydW5lX3hpZCBvbiBpbnNlcnQKCk5vdyB0aGF0IHdlIGNh biBzZXQgdGhlIFZNIGR1cmluZyByZWFkLW9ubHkgcXVlcmllcywgaXQgbWFrZXMgc2Vuc2UgdG8K c3RhcnQgc2V0dGluZyB0aGUgcGFnZSBwcnVuYWJsZSBoaW50IG9uIGluc2VydC4gVGhpcyB3aWxs IGFsbG93CmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgdG8gYmUgY2FsbGVkIHdoZW4gdGhl IHBhZ2UgaXMgZnVsbCBvcgptb3N0bHkgZnVsbC4KCkZvciB5ZWFycyB0aGVyZSBoYXMgYmVlbiBh IG5vdGUgaW4gaGVhcF9pbnNlcnQoKSBhbmQgaGVhcF9tdWx0aV9pbnNlcnQoKQpwb2ludGluZyBv dXQgdGhhdCBzZXR0aW5nIHBkX3BydW5lX3hpZCB3b3VsZCBoZWxwIGNsZWFuIHVwIGFib3J0ZWQK aW5zZXJ0ZWQgdHVwbGVzIHRoYXQgd291bGQgb3RoZXJ3aXNlIG5vdCBiZSBjbGVhbmVkIHVwIHVu dGlsIHZhY3V1bS4KU28sIHRoYXQncyBhbm90aGVyIGJlbmVmaXQgb2Ygc2V0dGluZyBpdC4KLS0t CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgIHwgMjUgKysrKysrKysrKysr KysrKystLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYyB8IDE1 ICsrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA5IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggZjkwYjAxNGE5YjAuLmUw ZjIyNDUwNTJjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtMjA5NCw2ICsyMDk0LDcg QEAgaGVhcF9pbnNlcnQoUmVsYXRpb24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXAsIENvbW1hbmRJ ZCBjaWQsCiAJVHJhbnNhY3Rpb25JZCB4aWQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25JZCgpOwog CUhlYXBUdXBsZQloZWFwdHVwOwogCUJ1ZmZlcgkJYnVmZmVyOworCVBhZ2UJCXBhZ2U7CiAJQnVm ZmVyCQl2bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7CiAJYm9vbAkJYWxsX3Zpc2libGVfY2xlYXJl ZCA9IGZhbHNlOwogCkBAIC0yMTUzLDE1ICsyMTU0LDE5IEBAIGhlYXBfaW5zZXJ0KFJlbGF0aW9u IHJlbGF0aW9uLCBIZWFwVHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCX0KIAogCS8qCi0JICog WFhYIFNob3VsZCB3ZSBzZXQgUGFnZVNldFBydW5hYmxlIG9uIHRoaXMgcGFnZSA/CisJICogU2V0 IHBkX3BydW5lX3hpZCB0byB0cmlnZ2VyIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgb25j ZSB0aGUgcGFnZQorCSAqIGlzIGZ1bGwgc28gdGhhdCB3ZSBjYW4gc2V0IHRoZSBwYWdlIGFsbC12 aXNpYmxlIGluIHRoZSBWTS4KIAkgKgotCSAqIFRoZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24gbWF5 IGV2ZW50dWFsbHkgYWJvcnQgdGh1cyBtYWtpbmcgdGhpcyB0dXBsZQotCSAqIERFQUQgYW5kIGhl bmNlIGF2YWlsYWJsZSBmb3IgcHJ1bmluZy4gVGhvdWdoIHdlIGRvbid0IHdhbnQgdG8gb3B0aW1p emUKLQkgKiBmb3IgYWJvcnRzLCBpZiBubyBvdGhlciB0dXBsZSBpbiB0aGlzIHBhZ2UgaXMgVVBE QVRFZC9ERUxFVEVkLCB0aGUKLQkgKiBhYm9ydGVkIHR1cGxlIHdpbGwgbmV2ZXIgYmUgcHJ1bmVk IHVudGlsIG5leHQgdmFjdXVtIGlzIHRyaWdnZXJlZC4KKwkgKiBTZXR0aW5nIHBkX3BydW5lX3hp ZCBpcyBhbHNvIGhhbmR5IGlmIHRoZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24KKwkgKiBldmVudHVh bGx5IGFib3J0cyBtYWtpbmcgdGhpcyB0dXBsZSBERUFEIGFuZCBoZW5jZSBhdmFpbGFibGUgZm9y CisJICogcHJ1bmluZy4gSWYgbm8gb3RoZXIgdHVwbGUgaW4gdGhpcyBwYWdlIGlzIFVQREFURWQv REVMRVRFZCwgdGhlIGFib3J0ZWQKKwkgKiB0dXBsZSB3b3VsZCBuZXZlciBvdGhlcndpc2UgYmUg cHJ1bmVkIHVudGlsIG5leHQgdmFjdXVtIGlzIHRyaWdnZXJlZC4KIAkgKgotCSAqIElmIHlvdSBk byBhZGQgUGFnZVNldFBydW5hYmxlIGhlcmUsIGFkZCBpdCBpbiBoZWFwX3hsb2dfaW5zZXJ0IHRv by4KKwkgKiBEb24ndCBzZXQgaXQgaWYgd2UgYXJlIGluIGJvb3RzdHJhcCBtb2RlLCB0aG91Z2gu CiAJICovCisJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKKwlpZiAoVHJhbnNhY3Rpb25J ZElzTm9ybWFsKHhpZCkpCisJCVBhZ2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJTWFya0J1 ZmZlckRpcnR5KGJ1ZmZlcik7CiAKQEAgLTIxNzEsNyArMjE3Niw2IEBAIGhlYXBfaW5zZXJ0KFJl bGF0aW9uIHJlbGF0aW9uLCBIZWFwVHVwbGUgdHVwLCBDb21tYW5kSWQgY2lkLAogCQl4bF9oZWFw X2luc2VydCB4bHJlYzsKIAkJeGxfaGVhcF9oZWFkZXIgeGxoZHI7CiAJCVhMb2dSZWNQdHIJcmVj cHRyOwotCQlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWZmZXIpOwogCQl1aW50OAkJaW5m byA9IFhMT0dfSEVBUF9JTlNFUlQ7CiAJCWludAkJCWJ1ZmZsYWdzID0gMDsKIApAQCAtMjUzNCw4 ICsyNTM4LDEzIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9uLCBUdXBsZVRh YmxlU2xvdCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJfQogCiAJCS8qCi0JCSAqIFhYWCBTaG91 bGQgd2Ugc2V0IFBhZ2VTZXRQcnVuYWJsZSBvbiB0aGlzIHBhZ2UgPyBTZWUgaGVhcF9pbnNlcnQo KQorCQkgKiBTZXQgcGRfcHJ1bmVfeGlkLiBTZWUgaGVhcF9pbnNlcnQoKSBmb3IgbW9yZSBvbiB3 aHkgd2UgZG8gdGhpcyB3aGVuCisJCSAqIGluc2VydGluZyB0dXBsZXMuIFRoaXMgb25seSBtYWtl cyBzZW5zZSBpZiB3ZSBhcmVuJ3QgYWxyZWFkeQorCQkgKiBzZXR0aW5nIHRoZSBwYWdlIGZyb3pl biBpbiB0aGUgVk0uIFdlIGFsc28gZG9uJ3Qgc2V0IGl0IGluCisJCSAqIGJvb3RzdHJhcCBtb2Rl LgogCQkgKi8KKwkJaWYgKCFhbGxfZnJvemVuX3NldCAmJiBUcmFuc2FjdGlvbklkSXNOb3JtYWwo eGlkKSkKKwkJCVBhZ2VTZXRQcnVuYWJsZShwYWdlLCB4aWQpOwogCiAJCU1hcmtCdWZmZXJEaXJ0 eShidWZmZXIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1f eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCA2NGYw NmQ0NmJmMS4uMjM0ZTlhNDAxYjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cu YwpAQCAtNDczLDYgKzQ3MywxMiBAQCBoZWFwX3hsb2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQogCiAJCWZyZWVzcGFjZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBu ZWVkZWQgdG8gdXBkYXRlIEZTTSBiZWxvdyAqLwogCisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBw cnVuYWJsZSB0byB0cmlnZ2VyIG9uLWFjY2VzcyBwcnVuaW5nIGxhdGVyIHdoaWNoIG1heQorCQkg KiBzZXQgdGhlIHBhZ2UgYWxsLXZpc2libGUgaW4gdGhlIFZNLgorCQkgKi8KKwkJUGFnZVNldFBy dW5hYmxlKHBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdl LCBsc24pOwogCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NM RUFSRUQpCkBAIC02MjIsOSArNjI4LDE2IEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9W SVNJQkxFX0NMRUFSRUQpCiAJCQlQYWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwogCi0JCS8qIFhM SF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQgaW1wbGllcyB0aGF0IGFsbCB0dXBsZXMgYXJlIHZpc2li bGUgKi8KKwkJLyoKKwkJICogWExIX0lOU0VSVF9BTExfRlJPWkVOX1NFVCBpbXBsaWVzIHRoYXQg YWxsIHR1cGxlcyBhcmUgdmlzaWJsZS4gSWYKKwkJICogd2UgYXJlIG5vdCBzZXR0aW5nIHRoZSBw YWdlIGZyb3plbiwgdGhlbiBzZXQgdGhlIHBhZ2UncyBwcnVuYWJsZQorCQkgKiBoaW50IHNvIHRo YXQgd2UgdHJpZ2dlciBvbi1hY2Nlc3MgcHJ1bmluZyBsYXRlciB3aGljaCBtYXkgc2V0IHRoZQor CQkgKiBwYWdlIGFsbC12aXNpYmxlIGluIHRoZSBWTS4KKwkJICovCiAJCWlmICh4bHJlYy0+Zmxh Z3MgJiBYTEhfSU5TRVJUX0FMTF9GUk9aRU5fU0VUKQogCQkJUGFnZVNldEFsbFZpc2libGUocGFn ZSk7CisJCWVsc2UKKwkJCVBhZ2VTZXRQcnVuYWJsZShwYWdlLCBYTG9nUmVjR2V0WGlkKHJlY29y ZCkpOwogCiAJCU1hcmtCdWZmZXJEaXJ0eShidWZmZXIpOwogCX0KLS0gCjIuNDMuMAoK --00000000000028fe60063b548d2f--