Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kDZrn-00072w-0o for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Sep 2020 21:00:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kDZrl-0001bw-LC for pgsql-hackers@arkaria.postgresql.org; Wed, 02 Sep 2020 21:00:25 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kDZrl-0001bo-2j for pgsql-hackers@lists.postgresql.org; Wed, 02 Sep 2020 21:00:25 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kDZrf-0006vb-Ep for pgsql-hackers@lists.postgresql.org; Wed, 02 Sep 2020 21:00:24 +0000 Received: from mail.postgrespro.ru (cyclops.postgrespro.ru [93.174.131.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id A088821C1D87; Thu, 3 Sep 2020 00:00:17 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1599080417; bh=DdLoyzZLOBqHYN71McK1wZsFDbSmPaHe04pO+Rxmf3Q=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=DXB+pOGMGN1+Lrv9r8zvGCDakOQDM7PFL8Vl98i9V41tE5nyUJkxscTGIqoyDJeFe mDKwOp18JDqnA4l4fiOg2DGHd/MVJbPLNYAjs/OVzUnonDqrnM3pwqo8G1y1Htit9L 23+R0bFheVM6eF6IbFbfGDa7+y8FA3PxIbZEe36U= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_2649d5b7d06298c9fe864b2c58503088" Content-Transfer-Encoding: 7bit Date: Thu, 03 Sep 2020 00:00:17 +0300 From: Alexey Kondratov To: Justin Pryzby Cc: Michael Paquier , Alvaro Herrera , Masahiko Sawada , Steve Singer , pgsql-hackers@lists.postgresql.org, Robert Haas , Alexander Korotkov , Masahiko Sawada , Jose Luis Tallon Subject: Re: Allow CLUSTER, VACUUM FULL and REINDEX to change tablespace on the fly In-Reply-To: <20200902045644.GC20149@telsasoft.com> References: <20200901154354.GD5450@telsasoft.com> <20200901154830.GA8891@alvherre.pgsql> <20200902010012.GE1489@paquier.xyz> <20200902022410.GA20149@telsasoft.com> <20200902045644.GC20149@telsasoft.com> User-Agent: Roundcube Webmail/1.4.0 Message-ID: X-Sender: a.kondratov@postgrespro.ru List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=_2649d5b7d06298c9fe864b2c58503088 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2020-09-02 07:56, Justin Pryzby wrote: > > Done in the attached, which is also rebased on 1d6541666. > > And added RelationAssumeNewRelfilenode() as I mentioned - but I'm > hoping to > hear from Michael about any reason not to call > RelationSetNewRelfilenode() > instead of directly calling the things it would itself call. The latest patch set immediately got a conflict with Michael's fixup 01767533, so I've rebased it first of all. + Prints a progress report as each table is clustered. + I think that we can remove this comment completely as it is already explained in the docs later. + | CLUSTER opt_verbose '(' vac_analyze_option_list ')' qualified_name cluster_index_specification + { What's the point in allowing a mixture of old options with new parenthesized option list? VACUUM doesn't do so. I can understand it for REINDEX CONCURRENTLY, since parenthesized options were already there, but not for CLUSTER. With v23 it is possible to write: CLUSTER VERBOSE (VERBOSE) table USING ... which is untidy. Furthermore, 'CLUSTER VERBOSE (' is tab-completed to 'CLUSTER VERBOSE (USING'. That way I propose to only allow either new options or old similarly to the VACUUM. See attached 0002. - COMPLETE_WITH("VERBOSE"); + COMPLETE_WITH("TABLESPACE|VERBOSE"); Tab completion in the CLUSTER was broken for parenthesized options, so I've fixed it in the 0005. Also, I noticed that you used vac_analyze_option_list instead of reindex_option_list and I checked other option lists in the grammar. I've found that explain_option_list and vac_analyze_option_list are identical, so it makes sense to leave just one of them and rename it to, e.g., common_option_list in order to use it everywhere needed (REINDEX, VACUUM, EXPLAIN, CLUSTER, ANALYZE). The whole grammar is already complicated enough to keep the exact duplicates and new options will be added to the lists in the backend code, not parser. What do you think? It is done in the 0007 attached. I think it should be applied altogether with 0001 or before/after, but I put this as the last patch in the set in order to easier discard it if others would disagree. Otherwise, everything seems to be working fine. Cannot find any problems so far. Regards -- Alexey Kondratov Postgres Professional https://www.postgrespro.com Russian Postgres Company --=_2649d5b7d06298c9fe864b2c58503088 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v24-0007-Refactor-gram.y-in-order-to-add-a-common-parenth.patch Content-Disposition: attachment; filename=v24-0007-Refactor-gram.y-in-order-to-add-a-common-parenth.patch; size=6098 RnJvbSA4ZDQzNTdmNWFjZTU2N2QyOTMzMzUzYzhhNDQwOGNmMTM5YTBkMjExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgS29uZHJhdG92IDxrb25kcmF0b3YuYWxla3NleUBn bWFpbC5jb20+CkRhdGU6IFdlZCwgMiBTZXAgMjAyMCAyMzowNToxNiArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjI0IDcvN10gUmVmYWN0b3IgZ3JhbS55IGluIG9yZGVyIHRvIGFkZCBhIGNvbW1vbgog cGFyZW50aGVzaXplZCBvcHRpb24gbGlzdAoKUHJldmlvdXNseSB0aGVyZSB3ZXJlIHR3byBpZGVu dGljYWwgb3B0aW9uIGxpc3RzCihleHBsYWluX29wdGlvbl9saXN0IGFuZCB2YWNfYW5hbHl6ZV9v cHRpb25fbGlzdCkgKyB2ZXJ5IHNpbWlsYXIKcmVpbmRleF9vcHRpb25fbGlzdC4gIE5vdywgdW5p ZmllZCBwYXJlbnRoZXNpemVkIG9wdGlvbiBsaXN0cwphZGRlZCBhbHNvIHRvIFJFSU5ERVggYW5k IENMVVNURVIuICBJdCBkb2VzIG5vdCBzZWVtIHRvIG1ha2UKc2Vuc2UgdG8gbWFpbnRhaW4gaWRl bnRpY2FsIG9wdGlvbiBsaXN0cyBpbiB0aGUgZ3JhbW1hciwgc2luY2UKYWxsIG5ldyBvcHRpb25z IGFyZSBhZGRlZCBhbmQgcGFyc2VkIGluIHRoZSBiYWNrZW5kIGNvZGUuCgpUaGF0IHdheSwgbmV3 IGNvbW1vbl9vcHRpb25fbGlzdCBhZGRlZCBpbiBvcmRlciB0byByZXBsYWNlIGFsbApleHBsYWlu X29wdGlvbl9saXN0LCB2YWNfYW5hbHl6ZV9vcHRpb25fbGlzdCBhbmQgcmVpbmRleF9vcHRpb25f bGlzdC4KLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IHwgNjcgKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygr KSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNWFiN2Y3YmE3My4uYmU1MjMxNDU2 YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CkBAIC0zMTUsMTAgKzMxNSwxMCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJl Y3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVl cnkpOwogCQkJCWNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW0gYWx0ZXJfZXh0ZW5zaW9uX29wdF9p dGVtCiAKICV0eXBlIDxpdmFsPglvcHRfbG9jayBsb2NrX3R5cGUgY2FzdF9jb250ZXh0Ci0ldHlw ZSA8c3RyPgkJdmFjX2FuYWx5emVfb3B0aW9uX25hbWUKLSV0eXBlIDxkZWZlbHQ+CXZhY19hbmFs eXplX29wdGlvbl9lbGVtCi0ldHlwZSA8bGlzdD4JdmFjX2FuYWx5emVfb3B0aW9uX2xpc3QKLSV0 eXBlIDxub2RlPgl2YWNfYW5hbHl6ZV9vcHRpb25fYXJnCisldHlwZSA8c3RyPgkJY29tbW9uX29w dGlvbl9uYW1lCisldHlwZSA8ZGVmZWx0Pgljb21tb25fb3B0aW9uX2VsZW0KKyV0eXBlIDxsaXN0 Pgljb21tb25fb3B0aW9uX2xpc3QKKyV0eXBlIDxub2RlPgljb21tb25fb3B0aW9uX2FyZwogJXR5 cGUgPGRlZmVsdD4JZHJvcF9vcHRpb24KICV0eXBlIDxib29sZWFuPglvcHRfb3JfcmVwbGFjZSBv cHRfbm8KIAkJCQlvcHRfZ3JhbnRfZ3JhbnRfb3B0aW9uIG9wdF9ncmFudF9hZG1pbl9vcHRpb24K QEAgLTUxMywxMCArNTEzLDYgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0 KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2Rl PglnZW5lcmljX29wdGlvbl9hcmcKICV0eXBlIDxkZWZlbHQ+CWdlbmVyaWNfb3B0aW9uX2VsZW0g YWx0ZXJfZ2VuZXJpY19vcHRpb25fZWxlbQogJXR5cGUgPGxpc3Q+CWdlbmVyaWNfb3B0aW9uX2xp c3QgYWx0ZXJfZ2VuZXJpY19vcHRpb25fbGlzdAotJXR5cGUgPHN0cj4JCWV4cGxhaW5fb3B0aW9u X25hbWUKLSV0eXBlIDxub2RlPglleHBsYWluX29wdGlvbl9hcmcKLSV0eXBlIDxkZWZlbHQ+CWV4 cGxhaW5fb3B0aW9uX2VsZW0KLSV0eXBlIDxsaXN0PglleHBsYWluX29wdGlvbl9saXN0CiAKICV0 eXBlIDxpdmFsPglyZWluZGV4X3RhcmdldF90eXBlIHJlaW5kZXhfdGFyZ2V0X211bHRpdGFibGUK IApAQCAtODE5Niw3ICs4MTkyLDcgQEAgUmVpbmRleFN0bXQ6CiAJCQkJCQkJCW1ha2VEZWZFbGVt KCJjb25jdXJyZW50bHkiLCAoTm9kZSAqKW1ha2VTdHJpbmcoImNvbmN1cnJlbnRseSIpLCBAMykp OwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9Ci0JCQl8IFJFSU5ERVggJygnIHZhY19hbmFs eXplX29wdGlvbl9saXN0ICcpJyByZWluZGV4X3RhcmdldF90eXBlIG9wdF9jb25jdXJyZW50bHkg cXVhbGlmaWVkX25hbWUKKwkJCXwgUkVJTkRFWCAnKCcgY29tbW9uX29wdGlvbl9saXN0ICcpJyBy ZWluZGV4X3RhcmdldF90eXBlIG9wdF9jb25jdXJyZW50bHkgcXVhbGlmaWVkX25hbWUKIAkJCQl7 CiAJCQkJCVJlaW5kZXhTdG10ICpuID0gbWFrZU5vZGUoUmVpbmRleFN0bXQpOwogCQkJCQluLT5r aW5kID0gJDU7CkBAIC04MjA4LDcgKzgyMDQsNyBAQCBSZWluZGV4U3RtdDoKIAkJCQkJCQkJbWFr ZURlZkVsZW0oImNvbmN1cnJlbnRseSIsIChOb2RlICopbWFrZVN0cmluZygiY29uY3VycmVudGx5 IiksIEA2KSk7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0KLQkJCXwgUkVJTkRFWCAnKCcg dmFjX2FuYWx5emVfb3B0aW9uX2xpc3QgJyknIHJlaW5kZXhfdGFyZ2V0X211bHRpdGFibGUgb3B0 X2NvbmN1cnJlbnRseSBuYW1lCisJCQl8IFJFSU5ERVggJygnIGNvbW1vbl9vcHRpb25fbGlzdCAn KScgcmVpbmRleF90YXJnZXRfbXVsdGl0YWJsZSBvcHRfY29uY3VycmVudGx5IG5hbWUKIAkJCQl7 CiAJCQkJCVJlaW5kZXhTdG10ICpuID0gbWFrZU5vZGUoUmVpbmRleFN0bXQpOwogCQkJCQluLT5r aW5kID0gJDU7CkBAIC0xMDM5OCw3ICsxMDM5NCw3IEBAIENsdXN0ZXJTdG10OgogCQkJCQkkJCA9 IChOb2RlKiluOwogCQkJCX0KIAotCQkJfCBDTFVTVEVSICcoJyB2YWNfYW5hbHl6ZV9vcHRpb25f bGlzdCAnKScgcXVhbGlmaWVkX25hbWUgY2x1c3Rlcl9pbmRleF9zcGVjaWZpY2F0aW9uCisJCQl8 IENMVVNURVIgJygnIGNvbW1vbl9vcHRpb25fbGlzdCAnKScgcXVhbGlmaWVkX25hbWUgY2x1c3Rl cl9pbmRleF9zcGVjaWZpY2F0aW9uCiAJCQkJewogCQkJCQlDbHVzdGVyU3RtdCAqbiA9IG1ha2VO b2RlKENsdXN0ZXJTdG10KTsKIAkJCQkJbi0+cmVsYXRpb24gPSAkNTsKQEAgLTEwNDY0LDcgKzEw NDYwLDcgQEAgVmFjdXVtU3RtdDogVkFDVVVNIG9wdF9mdWxsIG9wdF9mcmVlemUgb3B0X3ZlcmJv c2Ugb3B0X2FuYWx5emUgb3B0X3ZhY3V1bV9yZWxhdGkKIAkJCQkJbi0+aXNfdmFjdXVtY21kID0g dHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQotCQkJfCBWQUNVVU0gJygnIHZhY19h bmFseXplX29wdGlvbl9saXN0ICcpJyBvcHRfdmFjdXVtX3JlbGF0aW9uX2xpc3QKKwkJCXwgVkFD VVVNICcoJyBjb21tb25fb3B0aW9uX2xpc3QgJyknIG9wdF92YWN1dW1fcmVsYXRpb25fbGlzdAog CQkJCXsKIAkJCQkJVmFjdXVtU3RtdCAqbiA9IG1ha2VOb2RlKFZhY3V1bVN0bXQpOwogCQkJCQlu LT5vcHRpb25zID0gJDM7CkBAIC0xMDQ4NSw3ICsxMDQ4MSw3IEBAIEFuYWx5emVTdG10OiBhbmFs eXplX2tleXdvcmQgb3B0X3ZlcmJvc2Ugb3B0X3ZhY3V1bV9yZWxhdGlvbl9saXN0CiAJCQkJCW4t PmlzX3ZhY3V1bWNtZCA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9Ci0JCQl8 IGFuYWx5emVfa2V5d29yZCAnKCcgdmFjX2FuYWx5emVfb3B0aW9uX2xpc3QgJyknIG9wdF92YWN1 dW1fcmVsYXRpb25fbGlzdAorCQkJfCBhbmFseXplX2tleXdvcmQgJygnIGNvbW1vbl9vcHRpb25f bGlzdCAnKScgb3B0X3ZhY3V1bV9yZWxhdGlvbl9saXN0CiAJCQkJewogCQkJCQlWYWN1dW1TdG10 ICpuID0gbWFrZU5vZGUoVmFjdXVtU3RtdCk7CiAJCQkJCW4tPm9wdGlvbnMgPSAkMzsKQEAgLTEw NDk1LDEyICsxMDQ5MSwxMiBAQCBBbmFseXplU3RtdDogYW5hbHl6ZV9rZXl3b3JkIG9wdF92ZXJi b3NlIG9wdF92YWN1dW1fcmVsYXRpb25fbGlzdAogCQkJCX0KIAkJOwogCi12YWNfYW5hbHl6ZV9v cHRpb25fbGlzdDoKLQkJCXZhY19hbmFseXplX29wdGlvbl9lbGVtCitjb21tb25fb3B0aW9uX2xp c3Q6CisJCQljb21tb25fb3B0aW9uX2VsZW0KIAkJCQl7CiAJCQkJCSQkID0gbGlzdF9tYWtlMSgk MSk7CiAJCQkJfQotCQkJfCB2YWNfYW5hbHl6ZV9vcHRpb25fbGlzdCAnLCcgdmFjX2FuYWx5emVf b3B0aW9uX2VsZW0KKwkJCXwgY29tbW9uX29wdGlvbl9saXN0ICcsJyBjb21tb25fb3B0aW9uX2Vs ZW0KIAkJCQl7CiAJCQkJCSQkID0gbGFwcGVuZCgkMSwgJDMpOwogCQkJCX0KQEAgLTEwNTExLDE5 ICsxMDUwNywxOSBAQCBhbmFseXplX2tleXdvcmQ6CiAJCQl8IEFOQUxZU0UgLyogQnJpdGlzaCAq LwkJCQkJe30KIAkJOwogCi12YWNfYW5hbHl6ZV9vcHRpb25fZWxlbToKLQkJCXZhY19hbmFseXpl X29wdGlvbl9uYW1lIHZhY19hbmFseXplX29wdGlvbl9hcmcKK2NvbW1vbl9vcHRpb25fZWxlbToK KwkJCWNvbW1vbl9vcHRpb25fbmFtZSBjb21tb25fb3B0aW9uX2FyZwogCQkJCXsKIAkJCQkJJCQg PSBtYWtlRGVmRWxlbSgkMSwgJDIsIEAxKTsKIAkJCQl9CiAJCTsKIAotdmFjX2FuYWx5emVfb3B0 aW9uX25hbWU6Citjb21tb25fb3B0aW9uX25hbWU6CiAJCQlOb25SZXNlcnZlZFdvcmQJCQkJCQkJ eyAkJCA9ICQxOyB9CiAJCQl8IGFuYWx5emVfa2V5d29yZAkJCQkJCXsgJCQgPSAiYW5hbHl6ZSI7 IH0KIAkJOwogCi12YWNfYW5hbHl6ZV9vcHRpb25fYXJnOgorY29tbW9uX29wdGlvbl9hcmc6CiAJ CQlvcHRfYm9vbGVhbl9vcl9zdHJpbmcJCQkJCXsgJCQgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQx KTsgfQogCQkJfCBOdW1lcmljT25seQkJCXsgJCQgPSAoTm9kZSAqKSAkMTsgfQogCQkJfCAvKiBF TVBUWSAqLwkJIAkJCQkJeyAkJCA9IE5VTEw7IH0KQEAgLTEwNjA1LDcgKzEwNjAxLDcgQEAgRXhw bGFpblN0bXQ6CiAJCQkJCW4tPm9wdGlvbnMgPSBsaXN0X21ha2UxKG1ha2VEZWZFbGVtKCJ2ZXJi b3NlIiwgTlVMTCwgQDIpKTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJfCBFWFBM QUlOICcoJyBleHBsYWluX29wdGlvbl9saXN0ICcpJyBFeHBsYWluYWJsZVN0bXQKKwkJfCBFWFBM QUlOICcoJyBjb21tb25fb3B0aW9uX2xpc3QgJyknIEV4cGxhaW5hYmxlU3RtdAogCQkJCXsKIAkJ CQkJRXhwbGFpblN0bXQgKm4gPSBtYWtlTm9kZShFeHBsYWluU3RtdCk7CiAJCQkJCW4tPnF1ZXJ5 ID0gJDU7CkBAIC0xMDYyNiwzNSArMTA2MjIsNiBAQCBFeHBsYWluYWJsZVN0bXQ6CiAJCQl8IEV4 ZWN1dGVTdG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KIAkJOwogCi1leHBs YWluX29wdGlvbl9saXN0OgotCQkJZXhwbGFpbl9vcHRpb25fZWxlbQotCQkJCXsKLQkJCQkJJCQg PSBsaXN0X21ha2UxKCQxKTsKLQkJCQl9Ci0JCQl8IGV4cGxhaW5fb3B0aW9uX2xpc3QgJywnIGV4 cGxhaW5fb3B0aW9uX2VsZW0KLQkJCQl7Ci0JCQkJCSQkID0gbGFwcGVuZCgkMSwgJDMpOwotCQkJ CX0KLQkJOwotCi1leHBsYWluX29wdGlvbl9lbGVtOgotCQkJZXhwbGFpbl9vcHRpb25fbmFtZSBl eHBsYWluX29wdGlvbl9hcmcKLQkJCQl7Ci0JCQkJCSQkID0gbWFrZURlZkVsZW0oJDEsICQyLCBA MSk7Ci0JCQkJfQotCQk7Ci0KLWV4cGxhaW5fb3B0aW9uX25hbWU6Ci0JCQlOb25SZXNlcnZlZFdv cmQJCQl7ICQkID0gJDE7IH0KLQkJCXwgYW5hbHl6ZV9rZXl3b3JkCQl7ICQkID0gImFuYWx5emUi OyB9Ci0JCTsKLQotZXhwbGFpbl9vcHRpb25fYXJnOgotCQkJb3B0X2Jvb2xlYW5fb3Jfc3RyaW5n CXsgJCQgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQxKTsgfQotCQkJfCBOdW1lcmljT25seQkJCXsg JCQgPSAoTm9kZSAqKSAkMTsgfQotCQkJfCAvKiBFTVBUWSAqLwkJCXsgJCQgPSBOVUxMOyB9Ci0J CTsKLQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICoJCVFVRVJZOgotLSAKMi4xOS4xCgo= --=_2649d5b7d06298c9fe864b2c58503088 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v24-0006-Implement-vacuum-full-cluster-INDEX_TABLESPACE-t.patch Content-Disposition: attachment; filename=v24-0006-Implement-vacuum-full-cluster-INDEX_TABLESPACE-t.patch; size=19716 RnJvbSA3MDBmZGEyYzczYTg5MjVlZDM1MWMzNzU1YjQ3Nzc2YTAxZTI5YWQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdXN0aW4gUHJ5emJ5IDxwcnl6YnlqQHRlbHNhc29mdC5jb20+ CkRhdGU6IFR1ZSwgMzEgTWFyIDIwMjAgMjA6MzU6NDEgLTA1MDAKU3ViamVjdDogW1BBVENIIHYy NCA2LzddIEltcGxlbWVudCB2YWN1dW0gZnVsbC9jbHVzdGVyIChJTkRFWF9UQUJMRVNQQUNFCiA8 dGFibGVzcGFjZT4pCgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvY2x1c3Rlci5zZ21sICAgICAgICAg ICAgIHwgMTIgKysrKy0KIGRvYy9zcmMvc2dtbC9yZWYvdmFjdXVtLnNnbWwgICAgICAgICAgICAg IHwgMTIgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIuYyAgICAgICAgICAgIHwg NjUgKysrKysrKysrKysrKystLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL21hdHZpZXcu YyAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAg ICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jICAgICAgICAgICAg IHwgNDcgKysrKysrKy0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVt LmMgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jbHVzdGVyLmggICAgICAgICAg ICB8ICA0ICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCAgICAgICAgICAgICB8ICA1 ICstCiBzcmMvdGVzdC9yZWdyZXNzL2lucHV0L3RhYmxlc3BhY2Uuc291cmNlICB8IDEzICsrKysr CiBzcmMvdGVzdC9yZWdyZXNzL291dHB1dC90YWJsZXNwYWNlLnNvdXJjZSB8IDIwICsrKysrKysK IDExIGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCA2MCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NsdXN0ZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvY2x1c3Rlci5zZ21sCmluZGV4IGIxOThhNzYwNWMuLjlkZWQxZjY0N2QgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvY2x1c3Rlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY2x1 c3Rlci5zZ21sCkBAIC0yOCw2ICsyOCw3IEBAIENMVVNURVIgW1ZFUkJPU0VdIFsgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uCiAKICAg ICBWRVJCT1NFIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxh Y2VhYmxlPiBdCiAgICAgVEFCTEVTUEFDRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmV3X3RhYmxlc3BhY2U8L3JlcGxhY2VhYmxlPgorICAgIElOREVYX1RBQkxFU1BBQ0UgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld190YWJsZXNwYWNlPC9yZXBsYWNlYWJsZT4KIAog PC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgpAQCAtMTA1LDYgKzEwNiwxNSBAQCBDTFVT VEVSIFtWRVJCT1NFXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwv cmVwbGFjZWFibGU+IFssIC4uLgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4K IAorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5JTkRFWF9UQUJMRVNQQUNF PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgU3Bl Y2lmaWVzIHRoYXQgdGhlIHRhYmxlJ3MgaW5kZXhlcyB3aWxsIGJlIHJlYnVpbHQgb24gYSBuZXcg dGFibGVzcGFjZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgogICAgIDxsaXN0aXRl bT4KQEAgLTE0MSw3ICsxNTEsNyBAQCBDTFVTVEVSIFtWRVJCT1NFXSBbICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLgogICAgIDx0ZXJt PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfdGFibGVzcGFjZTwvcmVwbGFjZWFi bGU+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+Ci0gICAgICBUaGUgdGFibGVz cGFjZSB3aGVyZSB0aGUgdGFibGUgd2lsbCBiZSByZWJ1aWx0LgorICAgICAgVGhlIHRhYmxlc3Bh Y2Ugd2hlcmUgdGhlIHRhYmxlIG9yIGl0cyBpbmRleGVzIHdpbGwgYmUgcmVidWlsdC4KICAgICAg PC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvdmFjdXVtLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3ZhY3V1bS5z Z21sCmluZGV4IDI0MDhiNTliYjIuLjY0NjE3NDY5NjggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvdmFjdXVtLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi92YWN1dW0uc2dtbApAQCAt MzYsNiArMzYsNyBAQCBWQUNVVU0gWyBGVUxMIF0gWyBGUkVFWkUgXSBbIFZFUkJPU0UgXSBbIEFO QUxZWkUgXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldAogICAgIFRSVU5DQVRFIFsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxhY2VhYmxlPiBdCiAgICAg UEFSQUxMRUwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmludGVnZXI8L3JlcGxhY2Vh YmxlPgogICAgIFRBQkxFU1BBQ0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld190 YWJsZXNwYWNlPC9yZXBsYWNlYWJsZT4KKyAgICBJTkRFWF9UQUJMRVNQQUNFIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfdGFibGVzcGFjZTwvcmVwbGFjZWFibGU+CiAKIDxwaHJh c2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9hbmRfY29sdW1uczwv cmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCkBAIC0yNjUsNiArMjY2LDE1IEBAIFZBQ1VVTSBb IEZVTEwgXSBbIEZSRUVaRSBdIFsgVkVSQk9TRSBdIFsgQU5BTFlaRSBdIFsgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPklOREVYX1RBQkxFU1BBQ0U8L2xp dGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBTcGVjaWZp ZXMgdGhhdCB0aGUgcmVsYXRpb24ncyBpbmRleGVzIHdpbGwgYmUgcmVidWlsdCBvbiBhIG5ldyB0 YWJsZXNwYWNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5ib29sZWFuPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpA QCAtMzE0LDcgKzMyNCw3IEBAIFZBQ1VVTSBbIEZVTEwgXSBbIEZSRUVaRSBdIFsgVkVSQk9TRSBd IFsgQU5BTFlaRSBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0CiAgICAgPHRlcm0+PHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld190YWJsZXNwYWNlPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KLSAgICAgIFRoZSB0YWJsZXNwYWNl IHdoZXJlIHRoZSByZWxhdGlvbiB3aWxsIGJlIHJlYnVpbHQuCisgICAgICBUaGUgdGFibGVzcGFj ZSB3aGVyZSB0aGUgcmVsYXRpb24gb3IgaXRzIGluZGV4ZXMgd2lsbCBiZSByZWJ1aWx0LgogICAg ICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY2x1c3Rlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv Y2x1c3Rlci5jCmluZGV4IGU5NGY3MzQxNGYuLjYwMmUzY2Y3ZjUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jbHVz dGVyLmMKQEAgLTcxLDcgKzcxLDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAogCiBzdGF0aWMgdm9pZCBy ZWJ1aWxkX3JlbGF0aW9uKFJlbGF0aW9uIE9sZEhlYXAsIE9pZCBpbmRleE9pZCwKLQkJCQkJCQkg T2lkIE5ld1RhYmxlU3BhY2VPaWQsIGJvb2wgaXNUb3BMZXZlbCwgYm9vbCB2ZXJib3NlKTsKKwkJ CQkJCQkgT2lkIE5ld1RhYmxlU3BhY2VPaWQsIE9pZCBOZXdJZHhUYWJsZVNwYWNlT2lkLAorCQkJ CQkJCSBib29sIGlzVG9wTGV2ZWwsIGJvb2wgdmVyYm9zZSk7CiBzdGF0aWMgdm9pZCBjb3B5X3Rh YmxlX2RhdGEoT2lkIE9JRE5ld0hlYXAsIE9pZCBPSURPbGRIZWFwLCBPaWQgT0lET2xkSW5kZXgs CiAJCQkJCQkJYm9vbCBpc1RvcExldmVsLCBib29sIHZlcmJvc2UsCiAJCQkJCQkJYm9vbCAqcFN3 YXBUb2FzdEJ5Q29udGVudCwKQEAgLTEwOSw5ICsxMTAsMTEgQEAgY2x1c3RlcihQYXJzZVN0YXRl ICpwc3RhdGUsIENsdXN0ZXJTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiB7CiAJTGlzdENl bGwJKmxjOwogCWludAkJCW9wdGlvbnMgPSAwOwotCS8qIE5hbWUgYW5kIE9pZCBvZiB0YWJsZXNw YWNlIHRvIHVzZSBmb3IgY2x1c3RlcmVkIHJlbGF0aW9uLiAqLwotCWNoYXIJCSp0YWJsZXNwYWNl TmFtZSA9IE5VTEw7Ci0JT2lkCQkJdGFibGVzcGFjZU9pZCA9IEludmFsaWRPaWQ7CisJLyogTmFt ZSBhbmQgT2lkIG9mIHRhYmxlc3BhY2VzIHRvIHVzZSBmb3IgY2x1c3RlcmVkIHJlbGF0aW9ucy4g Ki8KKwljaGFyCQkqdGFibGVzcGFjZU5hbWUgPSBOVUxMLAorCQkJCSppZHh0YWJsZXNwYWNlTmFt ZSA9IE5VTEw7CisJT2lkCQkJdGFibGVzcGFjZU9pZCwKKwkJCQlpZHh0YWJsZXNwYWNlT2lkOwog CiAJLyogUGFyc2UgbGlzdCBvZiBnZW5lcmljIHBhcmFtZXRlcnMgbm90IGhhbmRsZWQgYnkgdGhl IHBhcnNlciAqLwogCWZvcmVhY2gobGMsIHN0bXQtPnBhcmFtcykKQEAgLTEyNSw2ICsxMjgsOCBA QCBjbHVzdGVyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2x1c3RlclN0bXQgKnN0bXQsIGJvb2wgaXNU b3BMZXZlbCkKIAkJCQlvcHRpb25zICY9IH5DTFVPUFRfVkVSQk9TRTsKIAkJZWxzZSBpZiAoc3Ry Y21wKG9wdC0+ZGVmbmFtZSwgInRhYmxlc3BhY2UiKSA9PSAwKQogCQkJdGFibGVzcGFjZU5hbWUg PSBkZWZHZXRTdHJpbmcob3B0KTsKKwkJZWxzZSBpZiAoc3RyY21wKG9wdC0+ZGVmbmFtZSwgImlu ZGV4X3RhYmxlc3BhY2UiKSA9PSAwKQorCQkJaWR4dGFibGVzcGFjZU5hbWUgPSBkZWZHZXRTdHJp bmcob3B0KTsKIAkJZWxzZQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLApAQCAtMTMzLDE4ICsxMzgsMTEgQEAgY2x1c3RlcihQYXJzZVN0YXRl ICpwc3RhdGUsIENsdXN0ZXJTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBvcHQtPmxvY2F0aW9uKSkpOwogCX0KIAotCS8qIFNlbGVj dCB0YWJsZXNwYWNlIE9pZCB0byB1c2UuICovCi0JaWYgKHRhYmxlc3BhY2VOYW1lKQotCXsKLQkJ dGFibGVzcGFjZU9pZCA9IGdldF90YWJsZXNwYWNlX29pZCh0YWJsZXNwYWNlTmFtZSwgZmFsc2Up OwotCi0JCS8qIENhbid0IG1vdmUgYSBub24tc2hhcmVkIHJlbGF0aW9uIGludG8gcGdfZ2xvYmFs ICovCi0JCWlmICh0YWJsZXNwYWNlT2lkID09IEdMT0JBTFRBQkxFU1BBQ0VfT0lEKQotCQkJZXJl cG9ydChFUlJPUiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAotCQkJCQkgZXJybXNnKCJjYW5ub3QgbW92ZSBub24tc2hhcmVkIHJlbGF0aW9uIHRvIHRhYmxl c3BhY2UgXCIlc1wiIiwKLQkJCQkJCQl0YWJsZXNwYWNlTmFtZSkpKTsKLQl9CisJLyogR2V0IHRh Ymxlc3BhY2VzIHRvIHVzZS4gKi8KKwl0YWJsZXNwYWNlT2lkID0gdGFibGVzcGFjZU5hbWUgPwor CQlnZXRfdGFibGVzcGFjZV9vaWQodGFibGVzcGFjZU5hbWUsIGZhbHNlKSA6IEludmFsaWRPaWQ7 CisJaWR4dGFibGVzcGFjZU9pZCA9IGlkeHRhYmxlc3BhY2VOYW1lID8KKwkJZ2V0X3RhYmxlc3Bh Y2Vfb2lkKGlkeHRhYmxlc3BhY2VOYW1lLCBmYWxzZSkgOiBJbnZhbGlkT2lkOwogCiAJaWYgKHN0 bXQtPnJlbGF0aW9uICE9IE5VTEwpCiAJewpAQCAtMjE1LDcgKzIxMyw3IEBAIGNsdXN0ZXIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBDbHVzdGVyU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCQl0 YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CiAKIAkJLyogRG8gdGhlIGpvYi4gKi8KLQkJY2x1c3Rl cl9yZWwodGFibGVPaWQsIGluZGV4T2lkLCB0YWJsZXNwYWNlT2lkLCBvcHRpb25zLCBpc1RvcExl dmVsKTsKKwkJY2x1c3Rlcl9yZWwodGFibGVPaWQsIGluZGV4T2lkLCB0YWJsZXNwYWNlT2lkLCBp ZHh0YWJsZXNwYWNlT2lkLCBvcHRpb25zLCBpc1RvcExldmVsKTsKIAl9CiAJZWxzZQogCXsKQEAg LTI2NCw3ICsyNjIsNyBAQCBjbHVzdGVyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2x1c3RlclN0bXQg KnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAkJCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRUcmFuc2Fj dGlvblNuYXBzaG90KCkpOwogCQkJLyogRG8gdGhlIGpvYi4gKi8KIAkJCWNsdXN0ZXJfcmVsKHJ2 dGMtPnRhYmxlT2lkLCBydnRjLT5pbmRleE9pZCwgdGFibGVzcGFjZU9pZCwKLQkJCQkJCW9wdGlv bnMgfCBDTFVPUFRfUkVDSEVDSywKKwkJCQkJCWlkeHRhYmxlc3BhY2VPaWQsIG9wdGlvbnMgfCBD TFVPUFRfUkVDSEVDSywKIAkJCQkJCWlzVG9wTGV2ZWwpOwogCQkJUG9wQWN0aXZlU25hcHNob3Qo KTsKIAkJCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOwpAQCAtMjk1LDExICsyOTMsMTIgQEAg Y2x1c3RlcihQYXJzZVN0YXRlICpwc3RhdGUsIENsdXN0ZXJTdG10ICpzdG10LCBib29sIGlzVG9w TGV2ZWwpCiAgKiBpbnN0ZWFkIG9mIGluZGV4IG9yZGVyLiAgVGhpcyBpcyB0aGUgbmV3IGltcGxl bWVudGF0aW9uIG9mIFZBQ1VVTSBGVUxMLAogICogYW5kIGVycm9yIG1lc3NhZ2VzIHNob3VsZCBy ZWZlciB0byB0aGUgb3BlcmF0aW9uIGFzIFZBQ1VVTSBub3QgQ0xVU1RFUi4KICAqCi0gKiAidGFi bGVzcGFjZU9pZCIgaXMgdGhlIHRhYmxlc3BhY2Ugd2hlcmUgdGhlIHJlbGF0aW9uIHdpbGwgYmUg cmVidWlsdCwgb3IKLSAqIEludmFsaWRPaWQgdG8gdXNlIGl0cyBjdXJyZW50IHRhYmxlc3BhY2Uu CisgKiAidGFibGVzcGFjZU9pZCIgYW5kICJpZHh0YWJsZXNwYWNlT2lkIiBhcmUgdGhlIHRhYmxl c3BhY2VzIHdoZXJlIHRoZSByZWxhdGlvbgorICogYW5kIGl0cyBpbmRleGVzIHdpbGwgYmUgcmVi dWlsdCwgb3IgSW52YWxpZE9pZCB0byB1c2UgdGhlaXIgY3VycmVudAorICogdGFibGVzcGFjZXMu CiAgKi8KIHZvaWQKLWNsdXN0ZXJfcmVsKE9pZCB0YWJsZU9pZCwgT2lkIGluZGV4T2lkLCBPaWQg dGFibGVzcGFjZU9pZCwgaW50IG9wdGlvbnMsIGJvb2wgaXNUb3BMZXZlbCkKK2NsdXN0ZXJfcmVs KE9pZCB0YWJsZU9pZCwgT2lkIGluZGV4T2lkLCBPaWQgdGFibGVzcGFjZU9pZCwgT2lkIGlkeHRh Ymxlc3BhY2VPaWQsIGludCBvcHRpb25zLCBib29sIGlzVG9wTGV2ZWwpCiB7CiAJUmVsYXRpb24J T2xkSGVhcDsKIAlib29sCQl2ZXJib3NlID0gKChvcHRpb25zICYgQ0xVT1BUX1ZFUkJPU0UpICE9 IDApOwpAQCAtNDY2LDcgKzQ2NSw3IEBAIGNsdXN0ZXJfcmVsKE9pZCB0YWJsZU9pZCwgT2lkIGlu ZGV4T2lkLCBPaWQgdGFibGVzcGFjZU9pZCwgaW50IG9wdGlvbnMsIGJvb2wgaXNUCiAJVHJhbnNm ZXJQcmVkaWNhdGVMb2Nrc1RvSGVhcFJlbGF0aW9uKE9sZEhlYXApOwogCiAJLyogcmVidWlsZF9y ZWxhdGlvbiBkb2VzIGFsbCB0aGUgZGlydHkgd29yayAqLwotCXJlYnVpbGRfcmVsYXRpb24oT2xk SGVhcCwgaW5kZXhPaWQsIHRhYmxlc3BhY2VPaWQsIGlzVG9wTGV2ZWwsIHZlcmJvc2UpOworCXJl YnVpbGRfcmVsYXRpb24oT2xkSGVhcCwgaW5kZXhPaWQsIHRhYmxlc3BhY2VPaWQsIGlkeHRhYmxl c3BhY2VPaWQsIGlzVG9wTGV2ZWwsIHZlcmJvc2UpOwogCiAJLyogTkI6IHJlYnVpbGRfcmVsYXRp b24gZG9lcyB0YWJsZV9jbG9zZSgpIG9uIE9sZEhlYXAgKi8KIApAQCAtNjE2LDEwICs2MTUsMTEg QEAgbWFya19pbmRleF9jbHVzdGVyZWQoUmVsYXRpb24gcmVsLCBPaWQgaW5kZXhPaWQsIGJvb2wg aXNfaW50ZXJuYWwpCiAgKiBOQjogdGhpcyByb3V0aW5lIGNsb3NlcyBPbGRIZWFwIGF0IHRoZSBy aWdodCB0aW1lOyBjYWxsZXIgc2hvdWxkIG5vdC4KICAqLwogc3RhdGljIHZvaWQKLXJlYnVpbGRf cmVsYXRpb24oUmVsYXRpb24gT2xkSGVhcCwgT2lkIGluZGV4T2lkLCBPaWQgTmV3VGFibGVzcGFj ZU9pZCwgYm9vbCBpc1RvcExldmVsLCBib29sIHZlcmJvc2UpCityZWJ1aWxkX3JlbGF0aW9uKFJl bGF0aW9uIE9sZEhlYXAsIE9pZCBpbmRleE9pZCwgT2lkIE5ld1RhYmxlc3BhY2VPaWQsIE9pZCBO ZXdJZHhUYWJsZXNwYWNlT2lkLCBib29sIGlzVG9wTGV2ZWwsIGJvb2wgdmVyYm9zZSkKIHsKIAlP aWQJCQl0YWJsZU9pZCA9IFJlbGF0aW9uR2V0UmVsaWQoT2xkSGVhcCk7CiAJT2lkCQkJdGFibGVT cGFjZSA9IE9sZEhlYXAtPnJkX3JlbC0+cmVsdGFibGVzcGFjZTsKKwlPaWQJCQlpZHh0YWJsZVNw YWNlOwogCU9pZAkJCU9JRE5ld0hlYXA7CiAJY2hhcgkJcmVscGVyc2lzdGVuY2U7CiAJYm9vbAkJ aXNfc3lzdGVtX2NhdGFsb2c7CkBAIC02MjksNyArNjI5LDIwIEBAIHJlYnVpbGRfcmVsYXRpb24o UmVsYXRpb24gT2xkSGVhcCwgT2lkIGluZGV4T2lkLCBPaWQgTmV3VGFibGVzcGFjZU9pZCwgYm9v bCBpc1RvCiAKIAkvKiBVc2UgbmV3IHRhYmxlc3BhY2UgaWYgcGFzc2VkLiAqLwogCWlmIChPaWRJ c1ZhbGlkKE5ld1RhYmxlc3BhY2VPaWQpKQorCXsKIAkJdGFibGVTcGFjZSA9IE5ld1RhYmxlc3Bh Y2VPaWQ7CisJCS8qIEl0J3Mgbm90IGEgc2hhcmVkIGNhdGFsb2csIHNvIHJlZnVzZSB0byBtb3Zl IGl0IHRvIHNoYXJlZCB0YWJsZXNwYWNlICovCisJCWlmICh0YWJsZVNwYWNlID09IEdMT0JBTFRB QkxFU1BBQ0VfT0lEKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgbW92ZSBub24tc2hh cmVkIHJlbGF0aW9uIHRvIHRhYmxlc3BhY2UgXCIlc1wiIiwKKwkJCQkJCQlnZXRfdGFibGVzcGFj ZV9uYW1lKHRhYmxlU3BhY2UpKSkpOworCX0KKworCWlmIChPaWRJc1ZhbGlkKE5ld0lkeFRhYmxl c3BhY2VPaWQpKQorCQlpZHh0YWJsZVNwYWNlID0gTmV3SWR4VGFibGVzcGFjZU9pZDsKKwllbHNl CisJCWlkeHRhYmxlU3BhY2UgPSBnZXRfcmVsX3RhYmxlc3BhY2UoaW5kZXhPaWQpOwogCiAJLyog TWFyayB0aGUgY29ycmVjdCBpbmRleCBhcyBjbHVzdGVyZWQgKi8KIAlpZiAoT2lkSXNWYWxpZChp bmRleE9pZCkpCkBAIC02NTgsNyArNjcxLDcgQEAgcmVidWlsZF9yZWxhdGlvbihSZWxhdGlvbiBP bGRIZWFwLCBPaWQgaW5kZXhPaWQsIE9pZCBOZXdUYWJsZXNwYWNlT2lkLCBib29sIGlzVG8KIAlm aW5pc2hfaGVhcF9zd2FwKHRhYmxlT2lkLCBPSUROZXdIZWFwLCBpc19zeXN0ZW1fY2F0YWxvZywK IAkJCQkJIHN3YXBfdG9hc3RfYnlfY29udGVudCwgZmFsc2UsIHRydWUsCiAJCQkJCSBmcm96ZW5Y aWQsIGN1dG9mZk11bHRpLAotCQkJCQkgcmVscGVyc2lzdGVuY2UpOworCQkJCQkgcmVscGVyc2lz dGVuY2UsIGlkeHRhYmxlU3BhY2UpOwogfQogCiAKQEAgLTE0MDcsNyArMTQyMCw3IEBAIGZpbmlz aF9oZWFwX3N3YXAoT2lkIE9JRE9sZEhlYXAsIE9pZCBPSUROZXdIZWFwLAogCQkJCSBib29sIGlz X2ludGVybmFsLAogCQkJCSBUcmFuc2FjdGlvbklkIGZyb3plblhpZCwKIAkJCQkgTXVsdGlYYWN0 SWQgY3V0b2ZmTXVsdGksCi0JCQkJIGNoYXIgbmV3cmVscGVyc2lzdGVuY2UpCisJCQkJIGNoYXIg bmV3cmVscGVyc2lzdGVuY2UsIE9pZCBpZHh0YWJsZVNwYWNlKQogewogCU9iamVjdEFkZHJlc3Mg b2JqZWN0OwogCU9pZAkJCW1hcHBlZF90YWJsZXNbNF07CkBAIC0xNDY5LDcgKzE0ODIsNyBAQCBm aW5pc2hfaGVhcF9zd2FwKE9pZCBPSURPbGRIZWFwLCBPaWQgT0lETmV3SGVhcCwKIAlwZ3N0YXRf cHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NMVVNURVJfUEhBU0UsCiAJCQkJCQkJCSBQ Uk9HUkVTU19DTFVTVEVSX1BIQVNFX1JFQlVJTERfSU5ERVgpOwogCi0JcmVpbmRleF9yZWxhdGlv bihPSURPbGRIZWFwLCBJbnZhbGlkT2lkLCByZWluZGV4X2ZsYWdzLCAwKTsKKwlyZWluZGV4X3Jl bGF0aW9uKE9JRE9sZEhlYXAsIGlkeHRhYmxlU3BhY2UsIHJlaW5kZXhfZmxhZ3MsIDApOwogCiAJ LyogUmVwb3J0IHRoYXQgd2UgYXJlIG5vdyBkb2luZyBjbGVhbiB1cCAqLwogCXBnc3RhdF9wcm9n cmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1NfQ0xVU1RFUl9QSEFTRSwKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL21hdHZpZXcuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21hdHZp ZXcuYwppbmRleCBmODBhOWU5NmE5Li42OGVhMDdjYWU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9tYXR2aWV3LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWF0dmlldy5j CkBAIC04NDQsNyArODQ0LDggQEAgc3RhdGljIHZvaWQKIHJlZnJlc2hfYnlfaGVhcF9zd2FwKE9p ZCBtYXR2aWV3T2lkLCBPaWQgT0lETmV3SGVhcCwgY2hhciByZWxwZXJzaXN0ZW5jZSkKIHsKIAlm aW5pc2hfaGVhcF9zd2FwKG1hdHZpZXdPaWQsIE9JRE5ld0hlYXAsIGZhbHNlLCBmYWxzZSwgdHJ1 ZSwgdHJ1ZSwKLQkJCQkJIFJlY2VudFhtaW4sIFJlYWROZXh0TXVsdGlYYWN0SWQoKSwgcmVscGVy c2lzdGVuY2UpOworCQkJCQkgUmVjZW50WG1pbiwgUmVhZE5leHRNdWx0aVhhY3RJZCgpLCByZWxw ZXJzaXN0ZW5jZSwKKwkJCQkJIEludmFsaWRPaWQpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwppbmRleCBjMWY1MDU0MDQyLi5kODFhNTUzNmU4IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwpAQCAtNTA1Myw3ICs1MDUzLDcgQEAgQVRSZXdyaXRlVGFibGVzKEFsdGVyVGFibGVT dG10ICpwYXJzZXRyZWUsIExpc3QgKip3cXVldWUsIExPQ0tNT0RFIGxvY2ttb2RlLAogCQkJCQkJ CSAhT2lkSXNWYWxpZCh0YWItPm5ld1RhYmxlU3BhY2UpLAogCQkJCQkJCSBSZWNlbnRYbWluLAog CQkJCQkJCSBSZWFkTmV4dE11bHRpWGFjdElkKCksCi0JCQkJCQkJIHBlcnNpc3RlbmNlKTsKKwkJ CQkJCQkgcGVyc2lzdGVuY2UsIEludmFsaWRPaWQpOwogCQl9CiAJCWVsc2UKIAkJewpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy92YWN1dW0uYwppbmRleCAwN2Q1MGJlYTBkLi41ZTg0MzM2MDBmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1 dW0uYwpAQCAtMTA5LDkgKzEwOSw5IEBAIEV4ZWNWYWN1dW0oUGFyc2VTdGF0ZSAqcHN0YXRlLCBW YWN1dW1TdG10ICp2YWNzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJYm9vbAkJZGlzYWJsZV9wYWdl X3NraXBwaW5nID0gZmFsc2U7CiAJTGlzdENlbGwgICAqbGM7CiAKLQkvKiBOYW1lIGFuZCBPaWQg b2YgdGFibGVzcGFjZSB0byB1c2UgZm9yIHJlbGF0aW9ucyBhZnRlciBWQUNVVU0gRlVMTC4gKi8K LQljaGFyCQkqdGFibGVzcGFjZW5hbWUgPSBOVUxMOwotCU9pZCAJCXRhYmxlc3BhY2VPaWQgPSBJ bnZhbGlkT2lkOworCS8qIFRhYmxlc3BhY2UgdG8gdXNlIGZvciByZWxhdGlvbnMgYWZ0ZXIgVkFD VVVNIEZVTEwuICovCisJY2hhcgkJKnRhYmxlc3BhY2VuYW1lID0gTlVMTCwKKwkJCQkqaWR4dGFi bGVzcGFjZW5hbWUgPSBOVUxMOwogCiAJLyogU2V0IGRlZmF1bHQgdmFsdWUgKi8KIAlwYXJhbXMu aW5kZXhfY2xlYW51cCA9IFZBQ09QVF9URVJOQVJZX0RFRkFVTFQ7CkBAIC0xNTEsNiArMTUxLDgg QEAgRXhlY1ZhY3V1bShQYXJzZVN0YXRlICpwc3RhdGUsIFZhY3V1bVN0bXQgKnZhY3N0bXQsIGJv b2wgaXNUb3BMZXZlbCkKIAkJCXBhcmFtcy50cnVuY2F0ZSA9IGdldF92YWNvcHRfdGVybmFyeV92 YWx1ZShvcHQpOwogCQllbHNlIGlmIChzdHJjbXAob3B0LT5kZWZuYW1lLCAidGFibGVzcGFjZSIp ID09IDApCiAJCQl0YWJsZXNwYWNlbmFtZSA9IGRlZkdldFN0cmluZyhvcHQpOworCQllbHNlIGlm IChzdHJjbXAob3B0LT5kZWZuYW1lLCAiaW5kZXhfdGFibGVzcGFjZSIpID09IDApCisJCQlpZHh0 YWJsZXNwYWNlbmFtZSA9IGRlZkdldFN0cmluZyhvcHQpOwogCQllbHNlIGlmIChzdHJjbXAob3B0 LT5kZWZuYW1lLCAicGFyYWxsZWwiKSA9PSAwKQogCQl7CiAJCQlpZiAob3B0LT5hcmcgPT0gTlVM TCkKQEAgLTIxMSwyNiArMjEzLDE4IEBAIEV4ZWNWYWN1dW0oUGFyc2VTdGF0ZSAqcHN0YXRlLCBW YWN1dW1TdG10ICp2YWNzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coIlZBQ1VVTSBGVUxMIGNhbm5v dCBiZSBwZXJmb3JtZWQgaW4gcGFyYWxsZWwiKSkpOwogCi0JLyogR2V0IHRhYmxlc3BhY2UgT2lk IHRvIHVzZS4gKi8KLQlpZiAodGFibGVzcGFjZW5hbWUpCi0JewotCQlpZiAoKHBhcmFtcy5vcHRp b25zICYgVkFDT1BUX0ZVTEwpID09IDApCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCWVycm1zZygiaW5jb21wYXRp YmxlIFRBQkxFU1BBQ0Ugb3B0aW9uIiksCi0JCQkJCWVycmRldGFpbCgiWW91IGNhbiBvbmx5IHVz ZSBUQUJMRVNQQUNFIHdpdGggVkFDVVVNIEZVTEwuIikpKTsKLQotCQl0YWJsZXNwYWNlT2lkID0g Z2V0X3RhYmxlc3BhY2Vfb2lkKHRhYmxlc3BhY2VuYW1lLCBmYWxzZSk7Ci0KLQkJLyogQ2FuJ3Qg bW92ZSBhIG5vbi1zaGFyZWQgcmVsYXRpb24gaW50byBwZ19nbG9iYWwgKi8KLQkJaWYgKHRhYmxl c3BhY2VPaWQgPT0gR0xPQkFMVEFCTEVTUEFDRV9PSUQpCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCWVycm1zZygi Y2Fubm90IG1vdmUgbm9uLXNoYXJlZCByZWxhdGlvbiB0byB0YWJsZXNwYWNlIFwiJXNcIiIsCi0J CQkJCQkJdGFibGVzcGFjZW5hbWUpKSk7CisJaWYgKChwYXJhbXMub3B0aW9ucyAmIFZBQ09QVF9G VUxMKSA9PSAwICYmCisJCSh0YWJsZXNwYWNlbmFtZSB8fCBpZHh0YWJsZXNwYWNlbmFtZSkpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAorCQkJCWVycm1zZygiaW5jb21wYXRpYmxlIFRBQkxFU1BBQ0Ugb3B0aW9uIiksCisJCQkJ ZXJyZGV0YWlsKCJZb3UgY2FuIG9ubHkgdXNlIFRBQkxFU1BBQ0Ugd2l0aCBWQUNVVU0gRlVMTC4i KSkpOwogCi0JfQotCXBhcmFtcy50YWJsZXNwYWNlX29pZCA9IHRhYmxlc3BhY2VPaWQ7CisJLyog R2V0IHRhYmxlc3BhY2UgT2lkcyB0byB1c2UuICovCisJcGFyYW1zLnRhYmxlc3BhY2Vfb2lkID0g dGFibGVzcGFjZW5hbWUgPworCQlnZXRfdGFibGVzcGFjZV9vaWQodGFibGVzcGFjZW5hbWUsIGZh bHNlKSA6IEludmFsaWRPaWQ7CisJcGFyYW1zLmlkeHRhYmxlc3BhY2Vfb2lkID0gaWR4dGFibGVz cGFjZW5hbWUgPworCQlnZXRfdGFibGVzcGFjZV9vaWQoaWR4dGFibGVzcGFjZW5hbWUsIGZhbHNl KSA6IEludmFsaWRPaWQ7CiAKIAkvKgogCSAqIE1ha2Ugc3VyZSBWQUNPUFRfQU5BTFlaRSBpcyBz cGVjaWZpZWQgaWYgYW55IGNvbHVtbiBsaXN0cyBhcmUgcHJlc2VudC4KQEAgLTE3NTUsOCArMTc0 OSw3IEBAIHZhY3V1bV9yZWwoT2lkIHJlbGlkLCBSYW5nZVZhciAqcmVsYXRpb24sIFZhY3V1bVBh cmFtcyAqcGFyYW1zKQogCVJlbGF0aW9uCW9uZXJlbDsKIAlMb2NrUmVsSWQJb25lcmVsaWQ7CiAJ T2lkCQkJdG9hc3RfcmVsaWQsCi0JCQkJc2F2ZV91c2VyaWQsCi0JCQkJdGFibGVzcGFjZU9pZCA9 IEludmFsaWRPaWQ7CisJCQkJc2F2ZV91c2VyaWQ7CiAJaW50CQkJc2F2ZV9zZWNfY29udGV4dDsK IAlpbnQJCQlzYXZlX25lc3RsZXZlbDsKIApAQCAtMTkwMCwxNCArMTg5MywxMyBAQCB2YWN1dW1f cmVsKE9pZCByZWxpZCwgUmFuZ2VWYXIgKnJlbGF0aW9uLCBWYWN1dW1QYXJhbXMgKnBhcmFtcykK IAkJT2lkSXNWYWxpZChwYXJhbXMtPnRhYmxlc3BhY2Vfb2lkKSAmJgogCQlJc1N5c3RlbVJlbGF0 aW9uKG9uZXJlbCkgJiYgIWFsbG93U3lzdGVtVGFibGVNb2RzKQogCXsKKwkJcGFyYW1zLT50YWJs ZXNwYWNlX29pZCA9IEludmFsaWRPaWQ7CiAJCWVyZXBvcnQoV0FSTklORywKIAkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJZXJybXNnKCJza2lwcGluZyB0 YWJsZXNwYWNlIGNoYW5nZSBvZiBcIiVzXCIiLAogCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUob25lcmVsKSksCiAJCQkJZXJyZGV0YWlsKCJDYW5ub3QgbW92ZSBzeXN0ZW0gcmVsYXRpb24s IG9ubHkgVkFDVVVNIGlzIHBlcmZvcm1lZC4iKSkpOwogCX0KLQllbHNlCi0JCXRhYmxlc3BhY2VP aWQgPSBwYXJhbXMtPnRhYmxlc3BhY2Vfb2lkOwogCiAJLyoKIAkgKiBHZXQgYSBzZXNzaW9uLWxl dmVsIGxvY2sgdG9vLiBUaGlzIHdpbGwgcHJvdGVjdCBvdXIgYWNjZXNzIHRvIHRoZQpAQCAtMTk3 OCw3ICsxOTcwLDggQEAgdmFjdXVtX3JlbChPaWQgcmVsaWQsIFJhbmdlVmFyICpyZWxhdGlvbiwg VmFjdXVtUGFyYW1zICpwYXJhbXMpCiAJCQljbHVzdGVyX29wdGlvbnMgfD0gQ0xVT1BUX1ZFUkJP U0U7CiAKIAkJLyogVkFDVVVNIEZVTEwgaXMgbm93IGEgdmFyaWFudCBvZiBDTFVTVEVSOyBzZWUg Y2x1c3Rlci5jICovCi0JCWNsdXN0ZXJfcmVsKHJlbGlkLCBJbnZhbGlkT2lkLCB0YWJsZXNwYWNl T2lkLCBjbHVzdGVyX29wdGlvbnMsIHRydWUpOworCQljbHVzdGVyX3JlbChyZWxpZCwgSW52YWxp ZE9pZCwgcGFyYW1zLT50YWJsZXNwYWNlX29pZCwKKwkJCQlwYXJhbXMtPmlkeHRhYmxlc3BhY2Vf b2lkLCBjbHVzdGVyX29wdGlvbnMsIHRydWUpOwogCX0KIAllbHNlCiAJCXRhYmxlX3JlbGF0aW9u X3ZhY3V1bShvbmVyZWwsIHBhcmFtcywgdmFjX3N0cmF0ZWd5KTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9h dXRvdmFjdXVtLmMKaW5kZXggZTIzMWNlODFlYy4uY2MxMmM1OWNhNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1h c3Rlci9hdXRvdmFjdXVtLmMKQEAgLTI5MDEsNiArMjkwMSw3IEBAIHRhYmxlX3JlY2hlY2tfYXV0 b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRhYmxlX3RvYXN0X21hcCwKIAkJdGFiLT5hdF9wYXJhbXMu aXNfd3JhcGFyb3VuZCA9IHdyYXBhcm91bmQ7CiAJCXRhYi0+YXRfcGFyYW1zLmxvZ19taW5fZHVy YXRpb24gPSBsb2dfbWluX2R1cmF0aW9uOwogCQl0YWItPmF0X3BhcmFtcy50YWJsZXNwYWNlX29p ZCA9IEludmFsaWRPaWQ7CisJCXRhYi0+YXRfcGFyYW1zLmlkeHRhYmxlc3BhY2Vfb2lkID0gSW52 YWxpZE9pZDsKIAkJdGFiLT5hdF92YWN1dW1fY29zdF9saW1pdCA9IHZhY19jb3N0X2xpbWl0Owog CQl0YWItPmF0X3ZhY3V1bV9jb3N0X2RlbGF5ID0gdmFjX2Nvc3RfZGVsYXk7CiAJCXRhYi0+YXRf cmVsbmFtZSA9IE5VTEw7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jbHVzdGVy LmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jbHVzdGVyLmgKaW5kZXggYTY0YjdlODRkYS4uNjhi ODMxYWYyMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvY2x1c3Rlci5oCisrKyBi L3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NsdXN0ZXIuaApAQCAtMjEsNiArMjEsNyBAQAogCiBleHRl cm4gdm9pZCBjbHVzdGVyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2x1c3RlclN0bXQgKnN0bXQsIGJv b2wgaXNUb3BMZXZlbCk7CiBleHRlcm4gdm9pZCBjbHVzdGVyX3JlbChPaWQgdGFibGVPaWQsIE9p ZCBpbmRleE9pZCwgT2lkIHRhYmxlc3BhY2VPaWQsCisJCQkJCQlPaWQgaW5kZXh0YWJsZXNwYWNl T2lkLAogCQkJCQkJaW50IG9wdGlvbnMsIGJvb2wgaXNUb3BMZXZlbCk7CiBleHRlcm4gdm9pZCBj aGVja19pbmRleF9pc19jbHVzdGVyYWJsZShSZWxhdGlvbiBPbGRIZWFwLCBPaWQgaW5kZXhPaWQs CiAJCQkJCQkJCQkgICBib29sIHJlY2hlY2ssIExPQ0tNT0RFIGxvY2ttb2RlKTsKQEAgLTM1LDYg KzM2LDcgQEAgZXh0ZXJuIHZvaWQgZmluaXNoX2hlYXBfc3dhcChPaWQgT0lET2xkSGVhcCwgT2lk IE9JRE5ld0hlYXAsCiAJCQkJCQkJIGJvb2wgaXNfaW50ZXJuYWwsCiAJCQkJCQkJIFRyYW5zYWN0 aW9uSWQgZnJvemVuWGlkLAogCQkJCQkJCSBNdWx0aVhhY3RJZCBtaW5NdWx0aSwKLQkJCQkJCQkg Y2hhciBuZXdyZWxwZXJzaXN0ZW5jZSk7CisJCQkJCQkJIGNoYXIgbmV3cmVscGVyc2lzdGVuY2Us CisJCQkJCQkJIE9pZCBpZHh0YWJsZXNwYWNlT2lkKTsKIAogI2VuZGlmCQkJCQkJCS8qIENMVVNU RVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggYi9zcmMv aW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAppbmRleCBiNmU5NDRkM2E1Li5hNWQwYjMxYWIyIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAorKysgYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy92YWN1dW0uaApAQCAtMjI5LDggKzIyOSw5IEBAIHR5cGVkZWYgc3RydWN0IFZh Y3V1bVBhcmFtcwogCSAqIGRpc2FibGVkLgogCSAqLwogCWludAkJCW53b3JrZXJzOwotCU9pZAkJ CXRhYmxlc3BhY2Vfb2lkOyAvKiB0YWJsZXNwYWNlIHRvIHVzZSBmb3IgcmVsYXRpb25zCi0JCQkJ CQkJCSAqIHJlYnVpbHQgYnkgVkFDVVVNIEZVTEwgKi8KKwkvKiB0YWJsZXNwYWNlcyB0byB1c2Ug Zm9yIHJlbGF0aW9ucyByZWJ1aWx0IGJ5IFZBQ1VVTSBGVUxMICovCisJT2lkCQkJdGFibGVzcGFj ZV9vaWQ7CisJT2lkCQkJaWR4dGFibGVzcGFjZV9vaWQ7CiB9IFZhY3V1bVBhcmFtczsKIAogLyog R1VDIHBhcmFtZXRlcnMgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvaW5wdXQvdGFi bGVzcGFjZS5zb3VyY2UgYi9zcmMvdGVzdC9yZWdyZXNzL2lucHV0L3RhYmxlc3BhY2Uuc291cmNl CmluZGV4IGViOWRmY2MwZjQuLjRjZjc5YWI0YmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvaW5wdXQvdGFibGVzcGFjZS5zb3VyY2UKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9pbnB1dC90 YWJsZXNwYWNlLnNvdXJjZQpAQCAtODAsNiArODAsMTkgQEAgUkVJTkRFWCAoVEFCTEVTUEFDRSBw Z19kZWZhdWx0KSBUQUJMRSBDT05DVVJSRU5UTFkgcmVncmVzc190YmxzcGFjZV90ZXN0X3RibDsg LS0KIFNFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MKIFdIRVJFIHJlbHRhYmxlc3BhY2U9KFNF TEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3NfdGJsc3Bh Y2UnKTsKIAorLS0gY2hlY2sgQ0xVU1RFUiB3aXRoIElOREVYX1RBQkxFU1BBQ0UgY2hhbmdlIHRv IG5vbi1kZWZhdWx0IGxvY2F0aW9uCitDTFVTVEVSIChJTkRFWF9UQUJMRVNQQUNFIHJlZ3Jlc3Nf dGJsc3BhY2UpIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmwgVVNJTkcgcmVncmVzc190YmxzcGFj ZV90ZXN0X3RibF9pZHg7IC0tIG9rCistLSBjaGVjayByZWxhdGlvbnMgbW92ZWQgdG8gbmV3IHRh Ymxlc3BhY2UKK1NFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MKK1dIRVJFIHJlbHRhYmxlc3Bh Y2U9KFNFTEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3Nf dGJsc3BhY2UnKQorT1JERVIgQlkgcmVsbmFtZTsKKy0tIGNoZWNrIFZBQ1VVTSB3aXRoIElOREVY X1RBQkxFU1BBQ0UgY2hhbmdlCitWQUNVVU0gKEZVTEwsIEFOQUxZU0UsIEZSRUVaRSwgSU5ERVhf VEFCTEVTUEFDRSBwZ19kZWZhdWx0KSByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsOyAtLSBvawor LS0gY2hlY2sgcmVsYXRpb25zIG1vdmVkIGJhY2sgdG8gcGdfZGVmYXVsdAorU0VMRUNUIHJlbG5h bWUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVsdGFibGVzcGFjZT0oU0VMRUNUIG9pZCBGUk9NIHBn X3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0ncmVncmVzc190YmxzcGFjZScpOworCisKIC0tIGNy ZWF0ZSBhIHNjaGVtYSB3ZSBjYW4gdXNlCiBDUkVBVEUgU0NIRU1BIHRlc3RzY2hlbWE7CiAKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvb3V0cHV0L3RhYmxlc3BhY2Uuc291cmNlIGIvc3Jj L3Rlc3QvcmVncmVzcy9vdXRwdXQvdGFibGVzcGFjZS5zb3VyY2UKaW5kZXggNzg5YTBlNTZjYy4u YmM3MjQwNmI4ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9vdXRwdXQvdGFibGVzcGFj ZS5zb3VyY2UKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9vdXRwdXQvdGFibGVzcGFjZS5zb3VyY2UK QEAgLTExNCw2ICsxMTQsMjYgQEAgV0hFUkUgcmVsdGFibGVzcGFjZT0oU0VMRUNUIG9pZCBGUk9N IHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0ncmVncmVzc190YmxzcGEKIC0tLS0tLS0tLQog KDAgcm93cykKIAorLS0gY2hlY2sgQ0xVU1RFUiB3aXRoIElOREVYX1RBQkxFU1BBQ0UgY2hhbmdl IHRvIG5vbi1kZWZhdWx0IGxvY2F0aW9uCitDTFVTVEVSIChJTkRFWF9UQUJMRVNQQUNFIHJlZ3Jl c3NfdGJsc3BhY2UpIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmwgVVNJTkcgcmVncmVzc190Ymxz cGFjZV90ZXN0X3RibF9pZHg7IC0tIG9rCistLSBjaGVjayByZWxhdGlvbnMgbW92ZWQgdG8gbmV3 IHRhYmxlc3BhY2UKK1NFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MKK1dIRVJFIHJlbHRhYmxl c3BhY2U9KFNFTEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jl c3NfdGJsc3BhY2UnKQorT1JERVIgQlkgcmVsbmFtZTsKKyAgICAgICAgICAgIHJlbG5hbWUgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3RibHNw YWNlX3Rlc3RfdGJsX2lkeAorKDEgcm93KQorCistLSBjaGVjayBWQUNVVU0gd2l0aCBJTkRFWF9U QUJMRVNQQUNFIGNoYW5nZQorVkFDVVVNIChGVUxMLCBBTkFMWVNFLCBGUkVFWkUsIElOREVYX1RB QkxFU1BBQ0UgcGdfZGVmYXVsdCkgcmVncmVzc190YmxzcGFjZV90ZXN0X3RibDsgLS0gb2sKKy0t IGNoZWNrIHJlbGF0aW9ucyBtb3ZlZCBiYWNrIHRvIHBnX2RlZmF1bHQKK1NFTEVDVCByZWxuYW1l IEZST00gcGdfY2xhc3MKK1dIRVJFIHJlbHRhYmxlc3BhY2U9KFNFTEVDVCBvaWQgRlJPTSBwZ190 YWJsZXNwYWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3NfdGJsc3BhY2UnKTsKKyByZWxuYW1lIAor LS0tLS0tLS0tCisoMCByb3dzKQorCiAtLSBjcmVhdGUgYSBzY2hlbWEgd2UgY2FuIHVzZQogQ1JF QVRFIFNDSEVNQSB0ZXN0c2NoZW1hOwogLS0gdHJ5IGEgdGFibGUKLS0gCjIuMTkuMQoK --=_2649d5b7d06298c9fe864b2c58503088 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v24-0005-Allow-CLUSTER-and-VACUUM-FULL-to-change-tablespa.patch Content-Disposition: attachment; filename=v24-0005-Allow-CLUSTER-and-VACUUM-FULL-to-change-tablespa.patch; size=24190 RnJvbSBjNDBhNmE4M2RjMjkwMjNmNzljNzEwYWNjYmU1NTdkZmE4ZDAxNTAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgS29uZHJhdG92IDxrb25kcmF0b3YuYWxla3NleUBn bWFpbC5jb20+CkRhdGU6IFR1ZSwgMjQgTWFyIDIwMjAgMTg6MTY6MDYgKzAzMDAKU3ViamVjdDog W1BBVENIIHYyNCA1LzddIEFsbG93IENMVVNURVIgYW5kIFZBQ1VVTSBGVUxMIHRvIGNoYW5nZSB0 YWJsZXNwYWNlCgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvY2x1c3Rlci5zZ21sICAgICAgICAgICAg IHwgMTkgKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi92YWN1dW0uc2dtbCAgICAgICAgICAgICAg fCAyMCArKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMgICAgICAgICAgICB8 IDYzICsrKysrKysrKysrKysrKysrKysrLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYyAgICAgICAgICB8ICA1ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYyAgICAg ICAgICAgICB8IDU0ICsrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgIHwgIDUgKy0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3Zh Y3V1bS5jICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAg ICAgICAgfCAgOSArKystCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jbHVzdGVyLmggICAgICAgICAg ICB8ICA0ICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCAgICAgICAgICAgICB8ICAy ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvaW5wdXQvdGFibGVzcGFjZS5zb3VyY2UgIHwgMjMgKysrKysr KystCiBzcmMvdGVzdC9yZWdyZXNzL291dHB1dC90YWJsZXNwYWNlLnNvdXJjZSB8IDM3ICsrKysr KysrKysrKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDIyMyBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NsdXN0ZXIuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY2x1c3Rlci5zZ21sCmluZGV4IGU2ZWJjZTI3ZTYuLmIxOThhNzYwNWMgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY2x1c3Rlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvY2x1c3Rlci5zZ21sCkBAIC0yNyw2ICsyNyw3IEBAIENMVVNURVIgW1ZFUkJPU0VdIFsg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4gWywg Li4uCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcHRpb248 L3JlcGxhY2VhYmxlPiBjYW4gYmUgb25lIG9mOjwvcGhyYXNlPgogCiAgICAgVkVSQk9TRSBbIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5ib29sZWFuPC9yZXBsYWNlYWJsZT4gXQorICAg IFRBQkxFU1BBQ0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld190YWJsZXNwYWNl PC9yZXBsYWNlYWJsZT4KIAogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgpAQCAtOTUs NiArOTYsMTUgQEAgQ0xVU1RFUiBbVkVSQk9TRV0gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi4KICAgICA8L2xpc3RpdGVtPgogICAg PC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+ VEFCTEVTUEFDRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFNwZWNpZmllcyB0aGF0IHRoZSB0YWJsZSB3aWxsIGJlIHJlYnVpbHQgb24gYSBuZXcg dGFibGVzcGFjZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgogICAgIDxsaXN0aXRl bT4KQEAgLTEyNiw2ICsxMzYsMTUgQEAgQ0xVU1RFUiBbVkVSQk9TRV0gWyAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi4KICAgICAgPC9w YXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3Rl bnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3RhYmxl c3BhY2U8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhlIHRhYmxlc3BhY2Ugd2hlcmUgdGhlIHRhYmxlIHdpbGwgYmUgcmVidWlsdC4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KICAgPC92YXJp YWJsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi92 YWN1dW0uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvdmFjdXVtLnNnbWwKaW5kZXggYTQ4Zjc1YWQ3 Yi4uMjQwOGI1OWJiMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi92YWN1dW0uc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL3ZhY3V1bS5zZ21sCkBAIC0zNSw2ICszNSw3IEBAIFZBQ1VV TSBbIEZVTEwgXSBbIEZSRUVaRSBdIFsgVkVSQk9TRSBdIFsgQU5BTFlaRSBdIFsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0CiAgICAgSU5ERVhfQ0xFQU5VUCBbIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5ib29sZWFuPC9yZXBsYWNlYWJsZT4gXQogICAgIFRSVU5DQVRFIFsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxhY2VhYmxlPiBdCiAgICAg UEFSQUxMRUwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmludGVnZXI8L3JlcGxhY2Vh YmxlPgorICAgIFRBQkxFU1BBQ0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld190 YWJsZXNwYWNlPC9yZXBsYWNlYWJsZT4KIAogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnRhYmxlX2FuZF9jb2x1bW5zPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+ CiAKQEAgLTI1NSw2ICsyNTYsMTUgQEAgVkFDVVVNIFsgRlVMTCBdIFsgRlJFRVpFIF0gWyBWRVJC T1NFIF0gWyBBTkFMWVpFIF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXQKICAgICA8L2xp c3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PGxpdGVyYWw+VEFCTEVTUEFDRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIFNwZWNpZmllcyB0aGF0IHRoZSByZWxhdGlvbiB3aWxsIGJlIHJl YnVpbHQgb24gYSBuZXcgdGFibGVzcGFjZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KQEAgLTI5OSw2ICszMDksMTYgQEAgVkFDVVVNIFsgRlVMTCBdIFsgRlJF RVpFIF0gWyBWRVJCT1NFIF0gWyBBTkFMWVpFIF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXQKICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmV3X3RhYmxlc3BhY2U8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgVGhlIHRhYmxlc3BhY2Ugd2hlcmUgdGhlIHJlbGF0aW9uIHdpbGwg YmUgcmVidWlsdC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKwogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jbHVz dGVyLmMKaW5kZXggZWFkMmMxY2Q0Yi4uZTk0ZjczNDE0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvY2x1c3Rlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIu YwpAQCAtMzMsMTEgKzMzLDEzIEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNp bmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0u aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9n L3RvYXN0aW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY2x1c3Rlci5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Byb2dyZXNzLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL3ZhY3V1bS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgog I2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKQEAgLTY5LDcgKzcxLDcgQEAgdHlwZWRl ZiBzdHJ1Y3QKIAogCiBzdGF0aWMgdm9pZCByZWJ1aWxkX3JlbGF0aW9uKFJlbGF0aW9uIE9sZEhl YXAsIE9pZCBpbmRleE9pZCwKLQkJCQkJCQkgYm9vbCBpc1RvcExldmVsLCBib29sIHZlcmJvc2Up OworCQkJCQkJCSBPaWQgTmV3VGFibGVTcGFjZU9pZCwgYm9vbCBpc1RvcExldmVsLCBib29sIHZl cmJvc2UpOwogc3RhdGljIHZvaWQgY29weV90YWJsZV9kYXRhKE9pZCBPSUROZXdIZWFwLCBPaWQg T0lET2xkSGVhcCwgT2lkIE9JRE9sZEluZGV4LAogCQkJCQkJCWJvb2wgaXNUb3BMZXZlbCwgYm9v bCB2ZXJib3NlLAogCQkJCQkJCWJvb2wgKnBTd2FwVG9hc3RCeUNvbnRlbnQsCkBAIC0xMDcsNiAr MTA5LDkgQEAgY2x1c3RlcihQYXJzZVN0YXRlICpwc3RhdGUsIENsdXN0ZXJTdG10ICpzdG10LCBi b29sIGlzVG9wTGV2ZWwpCiB7CiAJTGlzdENlbGwJKmxjOwogCWludAkJCW9wdGlvbnMgPSAwOwor CS8qIE5hbWUgYW5kIE9pZCBvZiB0YWJsZXNwYWNlIHRvIHVzZSBmb3IgY2x1c3RlcmVkIHJlbGF0 aW9uLiAqLworCWNoYXIJCSp0YWJsZXNwYWNlTmFtZSA9IE5VTEw7CisJT2lkCQkJdGFibGVzcGFj ZU9pZCA9IEludmFsaWRPaWQ7CiAKIAkvKiBQYXJzZSBsaXN0IG9mIGdlbmVyaWMgcGFyYW1ldGVy cyBub3QgaGFuZGxlZCBieSB0aGUgcGFyc2VyICovCiAJZm9yZWFjaChsYywgc3RtdC0+cGFyYW1z KQpAQCAtMTE4LDYgKzEyMyw4IEBAIGNsdXN0ZXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDbHVzdGVy U3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCQkJCW9wdGlvbnMgfD0gQ0xVT1BUX1ZFUkJP U0U7CiAJCQllbHNlCiAJCQkJb3B0aW9ucyAmPSB+Q0xVT1BUX1ZFUkJPU0U7CisJCWVsc2UgaWYg KHN0cmNtcChvcHQtPmRlZm5hbWUsICJ0YWJsZXNwYWNlIikgPT0gMCkKKwkJCXRhYmxlc3BhY2VO YW1lID0gZGVmR2V0U3RyaW5nKG9wdCk7CiAJCWVsc2UKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKQEAgLTEyNiw2ICsxMzMsMTkgQEAgY2x1 c3RlcihQYXJzZVN0YXRlICpwc3RhdGUsIENsdXN0ZXJTdG10ICpzdG10LCBib29sIGlzVG9wTGV2 ZWwpCiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBvcHQtPmxvY2F0aW9uKSkpOwog CX0KIAorCS8qIFNlbGVjdCB0YWJsZXNwYWNlIE9pZCB0byB1c2UuICovCisJaWYgKHRhYmxlc3Bh Y2VOYW1lKQorCXsKKwkJdGFibGVzcGFjZU9pZCA9IGdldF90YWJsZXNwYWNlX29pZCh0YWJsZXNw YWNlTmFtZSwgZmFsc2UpOworCisJCS8qIENhbid0IG1vdmUgYSBub24tc2hhcmVkIHJlbGF0aW9u IGludG8gcGdfZ2xvYmFsICovCisJCWlmICh0YWJsZXNwYWNlT2lkID09IEdMT0JBTFRBQkxFU1BB Q0VfT0lEKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgbW92ZSBub24tc2hhcmVkIHJl bGF0aW9uIHRvIHRhYmxlc3BhY2UgXCIlc1wiIiwKKwkJCQkJCQl0YWJsZXNwYWNlTmFtZSkpKTsK Kwl9CisKIAlpZiAoc3RtdC0+cmVsYXRpb24gIT0gTlVMTCkKIAl7CiAJCS8qIFRoaXMgaXMgdGhl IHNpbmdsZS1yZWxhdGlvbiBjYXNlLiAqLwpAQCAtMTk1LDcgKzIxNSw3IEBAIGNsdXN0ZXIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBDbHVzdGVyU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCQl0 YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CiAKIAkJLyogRG8gdGhlIGpvYi4gKi8KLQkJY2x1c3Rl cl9yZWwodGFibGVPaWQsIGluZGV4T2lkLCBvcHRpb25zLCBpc1RvcExldmVsKTsKKwkJY2x1c3Rl cl9yZWwodGFibGVPaWQsIGluZGV4T2lkLCB0YWJsZXNwYWNlT2lkLCBvcHRpb25zLCBpc1RvcExl dmVsKTsKIAl9CiAJZWxzZQogCXsKQEAgLTI0Myw3ICsyNjMsNyBAQCBjbHVzdGVyKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQ2x1c3RlclN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAkJCS8qIGZ1 bmN0aW9ucyBpbiBpbmRleGVzIG1heSB3YW50IGEgc25hcHNob3Qgc2V0ICovCiAJCQlQdXNoQWN0 aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hvdCgpKTsKIAkJCS8qIERvIHRoZSBqb2Iu ICovCi0JCQljbHVzdGVyX3JlbChydnRjLT50YWJsZU9pZCwgcnZ0Yy0+aW5kZXhPaWQsCisJCQlj bHVzdGVyX3JlbChydnRjLT50YWJsZU9pZCwgcnZ0Yy0+aW5kZXhPaWQsIHRhYmxlc3BhY2VPaWQs CiAJCQkJCQlvcHRpb25zIHwgQ0xVT1BUX1JFQ0hFQ0ssCiAJCQkJCQlpc1RvcExldmVsKTsKIAkJ CVBvcEFjdGl2ZVNuYXBzaG90KCk7CkBAIC0yNzQsOSArMjk0LDEyIEBAIGNsdXN0ZXIoUGFyc2VT dGF0ZSAqcHN0YXRlLCBDbHVzdGVyU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogICogSWYg aW5kZXhPaWQgaXMgSW52YWxpZE9pZCwgdGhlIHRhYmxlIHdpbGwgYmUgcmV3cml0dGVuIGluIHBo eXNpY2FsIG9yZGVyCiAgKiBpbnN0ZWFkIG9mIGluZGV4IG9yZGVyLiAgVGhpcyBpcyB0aGUgbmV3 IGltcGxlbWVudGF0aW9uIG9mIFZBQ1VVTSBGVUxMLAogICogYW5kIGVycm9yIG1lc3NhZ2VzIHNo b3VsZCByZWZlciB0byB0aGUgb3BlcmF0aW9uIGFzIFZBQ1VVTSBub3QgQ0xVU1RFUi4KKyAqCisg KiAidGFibGVzcGFjZU9pZCIgaXMgdGhlIHRhYmxlc3BhY2Ugd2hlcmUgdGhlIHJlbGF0aW9uIHdp bGwgYmUgcmVidWlsdCwgb3IKKyAqIEludmFsaWRPaWQgdG8gdXNlIGl0cyBjdXJyZW50IHRhYmxl c3BhY2UuCiAgKi8KIHZvaWQKLWNsdXN0ZXJfcmVsKE9pZCB0YWJsZU9pZCwgT2lkIGluZGV4T2lk LCBpbnQgb3B0aW9ucywgYm9vbCBpc1RvcExldmVsKQorY2x1c3Rlcl9yZWwoT2lkIHRhYmxlT2lk LCBPaWQgaW5kZXhPaWQsIE9pZCB0YWJsZXNwYWNlT2lkLCBpbnQgb3B0aW9ucywgYm9vbCBpc1Rv cExldmVsKQogewogCVJlbGF0aW9uCU9sZEhlYXA7CiAJYm9vbAkJdmVyYm9zZSA9ICgob3B0aW9u cyAmIENMVU9QVF9WRVJCT1NFKSAhPSAwKTsKQEAgLTM3Niw2ICszOTksMjMgQEAgY2x1c3Rlcl9y ZWwoT2lkIHRhYmxlT2lkLCBPaWQgaW5kZXhPaWQsIGludCBvcHRpb25zLCBib29sIGlzVG9wTGV2 ZWwpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBl cnJtc2coImNhbm5vdCBjbHVzdGVyIGEgc2hhcmVkIGNhdGFsb2ciKSkpOwogCisJaWYgKE9pZElz VmFsaWQodGFibGVzcGFjZU9pZCkgJiYKKwkJIWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lz dGVtUmVsYXRpb24oT2xkSGVhcCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coInBlcm1pc3Npb24gZGVu aWVkOiBcIiVzXCIgaXMgYSBzeXN0ZW0gY2F0YWxvZyIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShPbGRIZWFwKSkpKTsKKworCS8qCisJICogV2UgY2Fubm90IHN1cHBvcnQgbW92aW5n IG1hcHBlZCByZWxhdGlvbnMgaW50byBkaWZmZXJlbnQgdGFibGVzcGFjZXMuCisJICogKEluIHBh cnRpY3VsYXIgdGhpcyBlbGltaW5hdGVzIGFsbCBzaGFyZWQgY2F0YWxvZ3MuKQorCSAqLworCWlm IChPaWRJc1ZhbGlkKHRhYmxlc3BhY2VPaWQpICYmIFJlbGF0aW9uSXNNYXBwZWQoT2xkSGVhcCkp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJCSBlcnJtc2coImNhbm5vdCBjaGFuZ2UgdGFibGVzcGFjZSBvZiBtYXBwZWQg cmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKE9sZEhlYXAp KSkpOworCiAJLyoKIAkgKiBEb24ndCBwcm9jZXNzIHRlbXAgdGFibGVzIG9mIG90aGVyIGJhY2tl bmRzIC4uLiB0aGVpciBsb2NhbCBidWZmZXIKIAkgKiBtYW5hZ2VyIGlzIG5vdCBnb2luZyB0byBj b3BlLgpAQCAtNDI2LDcgKzQ2Niw3IEBAIGNsdXN0ZXJfcmVsKE9pZCB0YWJsZU9pZCwgT2lkIGlu ZGV4T2lkLCBpbnQgb3B0aW9ucywgYm9vbCBpc1RvcExldmVsKQogCVRyYW5zZmVyUHJlZGljYXRl TG9ja3NUb0hlYXBSZWxhdGlvbihPbGRIZWFwKTsKIAogCS8qIHJlYnVpbGRfcmVsYXRpb24gZG9l cyBhbGwgdGhlIGRpcnR5IHdvcmsgKi8KLQlyZWJ1aWxkX3JlbGF0aW9uKE9sZEhlYXAsIGluZGV4 T2lkLCBpc1RvcExldmVsLCB2ZXJib3NlKTsKKwlyZWJ1aWxkX3JlbGF0aW9uKE9sZEhlYXAsIGlu ZGV4T2lkLCB0YWJsZXNwYWNlT2lkLCBpc1RvcExldmVsLCB2ZXJib3NlKTsKIAogCS8qIE5COiBy ZWJ1aWxkX3JlbGF0aW9uIGRvZXMgdGFibGVfY2xvc2UoKSBvbiBPbGRIZWFwICovCiAKQEAgLTU3 Niw3ICs2MTYsNyBAQCBtYXJrX2luZGV4X2NsdXN0ZXJlZChSZWxhdGlvbiByZWwsIE9pZCBpbmRl eE9pZCwgYm9vbCBpc19pbnRlcm5hbCkKICAqIE5COiB0aGlzIHJvdXRpbmUgY2xvc2VzIE9sZEhl YXAgYXQgdGhlIHJpZ2h0IHRpbWU7IGNhbGxlciBzaG91bGQgbm90LgogICovCiBzdGF0aWMgdm9p ZAotcmVidWlsZF9yZWxhdGlvbihSZWxhdGlvbiBPbGRIZWFwLCBPaWQgaW5kZXhPaWQsIGJvb2wg aXNUb3BMZXZlbCwgYm9vbCB2ZXJib3NlKQorcmVidWlsZF9yZWxhdGlvbihSZWxhdGlvbiBPbGRI ZWFwLCBPaWQgaW5kZXhPaWQsIE9pZCBOZXdUYWJsZXNwYWNlT2lkLCBib29sIGlzVG9wTGV2ZWws IGJvb2wgdmVyYm9zZSkKIHsKIAlPaWQJCQl0YWJsZU9pZCA9IFJlbGF0aW9uR2V0UmVsaWQoT2xk SGVhcCk7CiAJT2lkCQkJdGFibGVTcGFjZSA9IE9sZEhlYXAtPnJkX3JlbC0+cmVsdGFibGVzcGFj ZTsKQEAgLTU4Nyw2ICs2MjcsMTAgQEAgcmVidWlsZF9yZWxhdGlvbihSZWxhdGlvbiBPbGRIZWFw LCBPaWQgaW5kZXhPaWQsIGJvb2wgaXNUb3BMZXZlbCwgYm9vbCB2ZXJib3NlKQogCVRyYW5zYWN0 aW9uSWQgZnJvemVuWGlkOwogCU11bHRpWGFjdElkIGN1dG9mZk11bHRpOwogCisJLyogVXNlIG5l dyB0YWJsZXNwYWNlIGlmIHBhc3NlZC4gKi8KKwlpZiAoT2lkSXNWYWxpZChOZXdUYWJsZXNwYWNl T2lkKSkKKwkJdGFibGVTcGFjZSA9IE5ld1RhYmxlc3BhY2VPaWQ7CisKIAkvKiBNYXJrIHRoZSBj b3JyZWN0IGluZGV4IGFzIGNsdXN0ZXJlZCAqLwogCWlmIChPaWRJc1ZhbGlkKGluZGV4T2lkKSkK IAkJbWFya19pbmRleF9jbHVzdGVyZWQoT2xkSGVhcCwgaW5kZXhPaWQsIHRydWUpOwpAQCAtMTAz Miw2ICsxMDc2LDEzIEBAIHN3YXBfcmVsYXRpb25fZmlsZXMoT2lkIHIxLCBPaWQgcjIsIGJvb2wg dGFyZ2V0X2lzX3BnX2NsYXNzLAogCQkgKi8KIAkJQXNzZXJ0KCF0YXJnZXRfaXNfcGdfY2xhc3Mp OwogCisJCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyMSwgcmVs Zm9ybTEpICYmCisJCQlyZWxmb3JtMS0+cmVsdGFibGVzcGFjZSAhPSByZWxmb3JtMi0+cmVsdGFi bGVzcGFjZSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZG SUNJRU5UX1BSSVZJTEVHRSksCisJCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkOiBcIiVz XCIgaXMgYSBzeXN0ZW0gY2F0YWxvZyIsCisJCQkJCQkJZ2V0X3JlbF9uYW1lKHIxKSkpKTsKKwog CQlzd2FwdGVtcCA9IHJlbGZvcm0xLT5yZWxmaWxlbm9kZTsKIAkJcmVsZm9ybTEtPnJlbGZpbGVu b2RlID0gcmVsZm9ybTItPnJlbGZpbGVub2RlOwogCQlyZWxmb3JtMi0+cmVsZmlsZW5vZGUgPSBz d2FwdGVtcDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggY2M1ZmQ0NmExZC4uYzFmNTA1 NDA0MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTEzMTIyLDggKzEzMTIyLDkgQEAg QVRFeGVjU2V0VGFibGVTcGFjZShPaWQgdGFibGVPaWQsIE9pZCBuZXdUYWJsZVNwYWNlLCBMT0NL TU9ERSBsb2NrbW9kZSkKIAlpZiAoUmVsYXRpb25Jc01hcHBlZChyZWwpKQogCQllcmVwb3J0KEVS Uk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkg ZXJybXNnKCJjYW5ub3QgbW92ZSBzeXN0ZW0gcmVsYXRpb24gXCIlc1wiIiwKLQkJCQkJCVJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQkJIGVycm1zZygiY2Fubm90IGNoYW5nZSB0 YWJsZXNwYWNlIG9mIG1hcHBlZCByZWxhdGlvbiBcIiVzXCIiLAorCQkJCQkgUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUocmVsKSkpKTsKKwogCiAJLyogQ2FuJ3QgbW92ZSBhIG5vbi1zaGFyZWQgcmVs YXRpb24gaW50byBwZ19nbG9iYWwgKi8KIAlpZiAobmV3VGFibGVTcGFjZSA9PSBHTE9CQUxUQUJM RVNQQUNFX09JRCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKaW5kZXggZGRlZWM4NzBkOC4uMDdkNTBiZWEw ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKQEAgLTMxLDEzICszMSwxNiBAQAogI2luY2x1ZGUgImFj Y2Vzcy90YWJsZWFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJh Y2Nlc3MveGFjdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNh dGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfaW5oZXJpdHMuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVz cGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2NsdXN0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRl ICJjb21tYW5kcy92YWN1dW0uaCIKKyNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5j bHVkZSAicGdzdGF0LmgiCkBAIC0xMDYsNiArMTA5LDEwIEBAIEV4ZWNWYWN1dW0oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBWYWN1dW1TdG10ICp2YWNzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJYm9vbAkJ ZGlzYWJsZV9wYWdlX3NraXBwaW5nID0gZmFsc2U7CiAJTGlzdENlbGwgICAqbGM7CiAKKwkvKiBO YW1lIGFuZCBPaWQgb2YgdGFibGVzcGFjZSB0byB1c2UgZm9yIHJlbGF0aW9ucyBhZnRlciBWQUNV VU0gRlVMTC4gKi8KKwljaGFyCQkqdGFibGVzcGFjZW5hbWUgPSBOVUxMOworCU9pZCAJCXRhYmxl c3BhY2VPaWQgPSBJbnZhbGlkT2lkOworCiAJLyogU2V0IGRlZmF1bHQgdmFsdWUgKi8KIAlwYXJh bXMuaW5kZXhfY2xlYW51cCA9IFZBQ09QVF9URVJOQVJZX0RFRkFVTFQ7CiAJcGFyYW1zLnRydW5j YXRlID0gVkFDT1BUX1RFUk5BUllfREVGQVVMVDsKQEAgLTE0Miw2ICsxNDksOCBAQCBFeGVjVmFj dXVtKFBhcnNlU3RhdGUgKnBzdGF0ZSwgVmFjdXVtU3RtdCAqdmFjc3RtdCwgYm9vbCBpc1RvcExl dmVsKQogCQkJcGFyYW1zLmluZGV4X2NsZWFudXAgPSBnZXRfdmFjb3B0X3Rlcm5hcnlfdmFsdWUo b3B0KTsKIAkJZWxzZSBpZiAoc3RyY21wKG9wdC0+ZGVmbmFtZSwgInRydW5jYXRlIikgPT0gMCkK IAkJCXBhcmFtcy50cnVuY2F0ZSA9IGdldF92YWNvcHRfdGVybmFyeV92YWx1ZShvcHQpOworCQll bHNlIGlmIChzdHJjbXAob3B0LT5kZWZuYW1lLCAidGFibGVzcGFjZSIpID09IDApCisJCQl0YWJs ZXNwYWNlbmFtZSA9IGRlZkdldFN0cmluZyhvcHQpOwogCQllbHNlIGlmIChzdHJjbXAob3B0LT5k ZWZuYW1lLCAicGFyYWxsZWwiKSA9PSAwKQogCQl7CiAJCQlpZiAob3B0LT5hcmcgPT0gTlVMTCkK QEAgLTIwMiw2ICsyMTEsMjcgQEAgRXhlY1ZhY3V1bShQYXJzZVN0YXRlICpwc3RhdGUsIFZhY3V1 bVN0bXQgKnZhY3N0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygiVkFDVVVNIEZVTEwgY2Fubm90IGJl IHBlcmZvcm1lZCBpbiBwYXJhbGxlbCIpKSk7CiAKKwkvKiBHZXQgdGFibGVzcGFjZSBPaWQgdG8g dXNlLiAqLworCWlmICh0YWJsZXNwYWNlbmFtZSkKKwl7CisJCWlmICgocGFyYW1zLm9wdGlvbnMg JiBWQUNPUFRfRlVMTCkgPT0gMCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJZXJybXNnKCJpbmNvbXBhdGlibGUg VEFCTEVTUEFDRSBvcHRpb24iKSwKKwkJCQkJZXJyZGV0YWlsKCJZb3UgY2FuIG9ubHkgdXNlIFRB QkxFU1BBQ0Ugd2l0aCBWQUNVVU0gRlVMTC4iKSkpOworCisJCXRhYmxlc3BhY2VPaWQgPSBnZXRf dGFibGVzcGFjZV9vaWQodGFibGVzcGFjZW5hbWUsIGZhbHNlKTsKKworCQkvKiBDYW4ndCBtb3Zl IGEgbm9uLXNoYXJlZCByZWxhdGlvbiBpbnRvIHBnX2dsb2JhbCAqLworCQlpZiAodGFibGVzcGFj ZU9pZCA9PSBHTE9CQUxUQUJMRVNQQUNFX09JRCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJZXJybXNnKCJjYW5u b3QgbW92ZSBub24tc2hhcmVkIHJlbGF0aW9uIHRvIHRhYmxlc3BhY2UgXCIlc1wiIiwKKwkJCQkJ CQl0YWJsZXNwYWNlbmFtZSkpKTsKKworCX0KKwlwYXJhbXMudGFibGVzcGFjZV9vaWQgPSB0YWJs ZXNwYWNlT2lkOworCiAJLyoKIAkgKiBNYWtlIHN1cmUgVkFDT1BUX0FOQUxZWkUgaXMgc3BlY2lm aWVkIGlmIGFueSBjb2x1bW4gbGlzdHMgYXJlIHByZXNlbnQuCiAJICovCkBAIC0xNzI0LDggKzE3 NTQsOSBAQCB2YWN1dW1fcmVsKE9pZCByZWxpZCwgUmFuZ2VWYXIgKnJlbGF0aW9uLCBWYWN1dW1Q YXJhbXMgKnBhcmFtcykKIAlMT0NLTU9ERQlsbW9kZTsKIAlSZWxhdGlvbglvbmVyZWw7CiAJTG9j a1JlbElkCW9uZXJlbGlkOwotCU9pZAkJCXRvYXN0X3JlbGlkOwotCU9pZAkJCXNhdmVfdXNlcmlk OworCU9pZAkJCXRvYXN0X3JlbGlkLAorCQkJCXNhdmVfdXNlcmlkLAorCQkJCXRhYmxlc3BhY2VP aWQgPSBJbnZhbGlkT2lkOwogCWludAkJCXNhdmVfc2VjX2NvbnRleHQ7CiAJaW50CQkJc2F2ZV9u ZXN0bGV2ZWw7CiAKQEAgLTE4NjEsNiArMTg5MiwyMyBAQCB2YWN1dW1fcmVsKE9pZCByZWxpZCwg UmFuZ2VWYXIgKnJlbGF0aW9uLCBWYWN1dW1QYXJhbXMgKnBhcmFtcykKIAkJcmV0dXJuIHRydWU7 CiAJfQogCisJLyoKKwkgKiBXZSBjYW5ub3Qgc3VwcG9ydCBtb3Zpbmcgc3lzdGVtIHJlbGF0aW9u cyBpbnRvIGRpZmZlcmVudCB0YWJsZXNwYWNlcywKKwkgKiB1bmxlc3MgYWxsb3dfc3lzdGVtX3Rh YmxlX21vZHM9MS4KKwkgKi8KKwlpZiAocGFyYW1zLT5vcHRpb25zICYgVkFDT1BUX0ZVTEwgJiYK KwkJT2lkSXNWYWxpZChwYXJhbXMtPnRhYmxlc3BhY2Vfb2lkKSAmJgorCQlJc1N5c3RlbVJlbGF0 aW9uKG9uZXJlbCkgJiYgIWFsbG93U3lzdGVtVGFibGVNb2RzKQorCXsKKwkJZXJlcG9ydChXQVJO SU5HLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQll cnJtc2coInNraXBwaW5nIHRhYmxlc3BhY2UgY2hhbmdlIG9mIFwiJXNcIiIsCisJCQkJCQlSZWxh dGlvbkdldFJlbGF0aW9uTmFtZShvbmVyZWwpKSwKKwkJCQllcnJkZXRhaWwoIkNhbm5vdCBtb3Zl IHN5c3RlbSByZWxhdGlvbiwgb25seSBWQUNVVU0gaXMgcGVyZm9ybWVkLiIpKSk7CisJfQorCWVs c2UKKwkJdGFibGVzcGFjZU9pZCA9IHBhcmFtcy0+dGFibGVzcGFjZV9vaWQ7CisKIAkvKgogCSAq IEdldCBhIHNlc3Npb24tbGV2ZWwgbG9jayB0b28uIFRoaXMgd2lsbCBwcm90ZWN0IG91ciBhY2Nl c3MgdG8gdGhlCiAJICogcmVsYXRpb24gYWNyb3NzIG11bHRpcGxlIHRyYW5zYWN0aW9ucywgc28g dGhhdCB3ZSBjYW4gdmFjdXVtIHRoZQpAQCAtMTkzMCw3ICsxOTc4LDcgQEAgdmFjdXVtX3JlbChP aWQgcmVsaWQsIFJhbmdlVmFyICpyZWxhdGlvbiwgVmFjdXVtUGFyYW1zICpwYXJhbXMpCiAJCQlj bHVzdGVyX29wdGlvbnMgfD0gQ0xVT1BUX1ZFUkJPU0U7CiAKIAkJLyogVkFDVVVNIEZVTEwgaXMg bm93IGEgdmFyaWFudCBvZiBDTFVTVEVSOyBzZWUgY2x1c3Rlci5jICovCi0JCWNsdXN0ZXJfcmVs KHJlbGlkLCBJbnZhbGlkT2lkLCBjbHVzdGVyX29wdGlvbnMsIHRydWUpOworCQljbHVzdGVyX3Jl bChyZWxpZCwgSW52YWxpZE9pZCwgdGFibGVzcGFjZU9pZCwgY2x1c3Rlcl9vcHRpb25zLCB0cnVl KTsKIAl9CiAJZWxzZQogCQl0YWJsZV9yZWxhdGlvbl92YWN1dW0ob25lcmVsLCBwYXJhbXMsIHZh Y19zdHJhdGVneSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA1MjVkZmI4MTMyLi41YWI3ZjdiYTczIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTEwNDM4LDggKzEwNDM4LDkgQEAgY2x1c3Rlcl9pbmRleF9zcGVjaWZpY2F0 aW9uOgogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICoJCVFVRVJZOgotICoJCQkJVkFDVVVN Ci0gKgkJCQlBTkFMWVpFCisgKgkJCQlWQUNVVU0gW0ZVTExdIFtGUkVFWkVdIFtWRVJCT1NFXSBb QU5BTFlaRV0gWyA8dGFibGVfYW5kX2NvbHVtbnM+IFssIC4uLl0gXQorICoJCQkJVkFDVVVNIFso b3B0aW9ucyldIFsgPHRhYmxlX2FuZF9jb2x1bW5zPiBbLCAuLi5dIF0KKyAqCQkJCUFOQUxZWkUg W1ZFUkJPU0VdIFsgPHRhYmxlX2FuZF9jb2x1bW5zPiBbLCAuLi5dIF0KICAqCiAgKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3Zh Y3V1bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKaW5kZXggMWI4Y2Q3 YmFjZC4uZTIzMWNlODFlYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRv dmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTI5 MDAsNiArMjkwMCw3IEBAIHRhYmxlX3JlY2hlY2tfYXV0b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRh YmxlX3RvYXN0X21hcCwKIAkJdGFiLT5hdF9wYXJhbXMubXVsdGl4YWN0X2ZyZWV6ZV90YWJsZV9h Z2UgPSBtdWx0aXhhY3RfZnJlZXplX3RhYmxlX2FnZTsKIAkJdGFiLT5hdF9wYXJhbXMuaXNfd3Jh cGFyb3VuZCA9IHdyYXBhcm91bmQ7CiAJCXRhYi0+YXRfcGFyYW1zLmxvZ19taW5fZHVyYXRpb24g PSBsb2dfbWluX2R1cmF0aW9uOworCQl0YWItPmF0X3BhcmFtcy50YWJsZXNwYWNlX29pZCA9IElu dmFsaWRPaWQ7CiAJCXRhYi0+YXRfdmFjdXVtX2Nvc3RfbGltaXQgPSB2YWNfY29zdF9saW1pdDsK IAkJdGFiLT5hdF92YWN1dW1fY29zdF9kZWxheSA9IHZhY19jb3N0X2RlbGF5OwogCQl0YWItPmF0 X3JlbG5hbWUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j IGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IDVkMmNkODhkZTkuLjdjNWJhMjM4 YmUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAgLTIyODQsNyArMjI4NCw5IEBAIHBzcWxfY29tcGxldGlv bihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCSAqIG9uZSB3b3JkLCBz byB0aGUgYWJvdmUgdGVzdCBpcyBjb3JyZWN0LgogCQkgKi8KIAkJaWYgKGVuZHNfd2l0aChwcmV2 X3dkLCAnKCcpIHx8IGVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQotCQkJQ09NUExFVEVfV0lUSCgi VkVSQk9TRSIpOworCQkJQ09NUExFVEVfV0lUSCgiVEFCTEVTUEFDRSIsICJWRVJCT1NFIik7CisJ CWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJUQUJMRVNQQUNFIikpCisJCQlDT01QTEVURV9XSVRIX1FV RVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc3BhY2VzKTsKIAl9CiAKIC8qIENPTU1FTlQgKi8K QEAgLTM3MTEsOSArMzcxMywxMiBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwg aW50IHN0YXJ0LCBpbnQgZW5kKQogCQlpZiAoZW5kc193aXRoKHByZXZfd2QsICcoJykgfHwgZW5k c193aXRoKHByZXZfd2QsICcsJykpCiAJCQlDT01QTEVURV9XSVRIKCJGVUxMIiwgIkZSRUVaRSIs ICJBTkFMWVpFIiwgIlZFUkJPU0UiLAogCQkJCQkJICAiRElTQUJMRV9QQUdFX1NLSVBQSU5HIiwg IlNLSVBfTE9DS0VEIiwKLQkJCQkJCSAgIklOREVYX0NMRUFOVVAiLCAiVFJVTkNBVEUiLCAiUEFS QUxMRUwiKTsKKwkJCQkJCSAgIklOREVYX0NMRUFOVVAiLCAiVFJVTkNBVEUiLCAiUEFSQUxMRUwi LAorCQkJCQkJICAiVEFCTEVTUEFDRSIpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiRlVMTHxG UkVFWkV8QU5BTFlaRXxWRVJCT1NFfERJU0FCTEVfUEFHRV9TS0lQUElOR3xTS0lQX0xPQ0tFRHxJ TkRFWF9DTEVBTlVQfFRSVU5DQVRFIikpCiAJCQlDT01QTEVURV9XSVRIKCJPTiIsICJPRkYiKTsK KwkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlRBQkxFU1BBQ0UiKSkKKwkJCUNPTVBMRVRFX1dJVEhf UVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzcGFjZXMpOwogCX0KIAllbHNlIGlmIChIZWFk TWF0Y2hlcygiVkFDVVVNIikgJiYgVGFpbE1hdGNoZXMoIigiKSkKIAkJLyogIlZBQ1VVTSAoIiBz aG91bGQgYmUgY2F1Z2h0IGFib3ZlLCBzbyBhc3N1bWUgd2Ugd2FudCBjb2x1bW5zICovCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jbHVzdGVyLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9jbHVzdGVyLmgKaW5kZXggYzc2MWI5NTc1YS4uYTY0YjdlODRkYSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvY2x1c3Rlci5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L2NsdXN0ZXIuaApAQCAtMjAsOCArMjAsOCBAQAogCiAKIGV4dGVybiB2b2lkIGNsdXN0ZXIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBDbHVzdGVyU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKTsKLWV4 dGVybiB2b2lkIGNsdXN0ZXJfcmVsKE9pZCB0YWJsZU9pZCwgT2lkIGluZGV4T2lkLCBpbnQgb3B0 aW9ucywKLQkJCQkJCWJvb2wgaXNUb3BMZXZlbCk7CitleHRlcm4gdm9pZCBjbHVzdGVyX3JlbChP aWQgdGFibGVPaWQsIE9pZCBpbmRleE9pZCwgT2lkIHRhYmxlc3BhY2VPaWQsCisJCQkJCQlpbnQg b3B0aW9ucywgYm9vbCBpc1RvcExldmVsKTsKIGV4dGVybiB2b2lkIGNoZWNrX2luZGV4X2lzX2Ns dXN0ZXJhYmxlKFJlbGF0aW9uIE9sZEhlYXAsIE9pZCBpbmRleE9pZCwKIAkJCQkJCQkJCSAgIGJv b2wgcmVjaGVjaywgTE9DS01PREUgbG9ja21vZGUpOwogZXh0ZXJuIHZvaWQgbWFya19pbmRleF9j bHVzdGVyZWQoUmVsYXRpb24gcmVsLCBPaWQgaW5kZXhPaWQsIGJvb2wgaXNfaW50ZXJuYWwpOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggYi9zcmMvaW5jbHVkZS9j b21tYW5kcy92YWN1dW0uaAppbmRleCBkOTQ3NWM5OTg5Li5iNmU5NDRkM2E1IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5k cy92YWN1dW0uaApAQCAtMjI5LDYgKzIyOSw4IEBAIHR5cGVkZWYgc3RydWN0IFZhY3V1bVBhcmFt cwogCSAqIGRpc2FibGVkLgogCSAqLwogCWludAkJCW53b3JrZXJzOworCU9pZAkJCXRhYmxlc3Bh Y2Vfb2lkOyAvKiB0YWJsZXNwYWNlIHRvIHVzZSBmb3IgcmVsYXRpb25zCisJCQkJCQkJCSAqIHJl YnVpbHQgYnkgVkFDVVVNIEZVTEwgKi8KIH0gVmFjdXVtUGFyYW1zOwogCiAvKiBHVUMgcGFyYW1l dGVycyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9pbnB1dC90YWJsZXNwYWNlLnNv dXJjZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvaW5wdXQvdGFibGVzcGFjZS5zb3VyY2UKaW5kZXggMjMw Y2Y0NjgzMy4uZWI5ZGZjYzBmNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9pbnB1dC90 YWJsZXNwYWNlLnNvdXJjZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2lucHV0L3RhYmxlc3BhY2Uu c291cmNlCkBAIC0xNyw3ICsxNyw3IEBAIEFMVEVSIFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFj ZSBTRVQgKHNvbWVfbm9uZXhpc3RlbnRfcGFyYW1ldGVyID0gdHJ1ZSk7ICAtLSBmCiBBTFRFUiBU QUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UgUkVTRVQgKHJhbmRvbV9wYWdlX2Nvc3QgPSAyLjAp OyAtLSBmYWlsCiBBTFRFUiBUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UgUkVTRVQgKHJhbmRv bV9wYWdlX2Nvc3QsIGVmZmVjdGl2ZV9pb19jb25jdXJyZW5jeSk7IC0tIG9rCiAKLS0tIGNyZWF0 ZSB0YWJsZSB0byB0ZXN0IFJFSU5ERVggd2l0aCBUQUJMRVNQQUNFIGNoYW5nZQorLS0gY3JlYXRl IHRhYmxlIHRvIHRlc3QgUkVJTkRFWCwgQ0xVU1RFUiBhbmQgVkFDVVVNIEZVTEwgd2l0aCBUQUJM RVNQQUNFIGNoYW5nZQogQ1JFQVRFIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmwgKG51 bTEgYmlnaW50LCBudW0yIGRvdWJsZSBwcmVjaXNpb24sIG51bTMgZG91YmxlIHByZWNpc2lvbik7 CiBJTlNFUlQgSU5UTyByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsIChudW0xLCBudW0yLCBudW0z KQogICBTRUxFQ1Qgcm91bmQocmFuZG9tKCkqMTAwKSwgcmFuZG9tKCksIHJhbmRvbSgpKjQyCkBA IC00NywxMSArNDcsMzIgQEAgUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBU QUJMRSBDT05DVVJSRU5UTFkgcGdfYW07IC0tIGZhaWwKIFJFSU5ERVggKFRBQkxFU1BBQ0UgcGdf Z2xvYmFsKSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsX2lkeDsgLS0gZmFpbAogUkVJ TkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBUQUJMRSBwZ19hbTsgLS0gZmFpbAog CistLSBjaGVjayB0aGF0IGFsbCBpbmRleGVzIG1vdmVkIHRvIG5ldyB0YWJsZXNwYWNlCitTRUxF Q1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzCitXSEVSRSByZWx0YWJsZXNwYWNlPShTRUxFQ1Qgb2lk IEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBzcGNuYW1lPSdyZWdyZXNzX3RibHNwYWNlJykKK09S REVSIEJZIHJlbG5hbWU7CisKKy0tIGNoZWNrIENMVVNURVIgd2l0aCBUQUJMRVNQQUNFIGNoYW5n ZQorQ0xVU1RFUiAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSByZWdyZXNzX3RibHNwYWNl X3Rlc3RfdGJsIFVTSU5HIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmxfaWR4OyAtLSBvaworQ0xV U1RFUiAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBwZ19hdXRoaWQgVVNJTkcgcGdfYXV0 aGlkX3JvbG5hbWVfaW5kZXg7IC0tIGZhaWwKK0NMVVNURVIgKFRBQkxFU1BBQ0UgcGdfZ2xvYmFs KSByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsIFVTSU5HIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90 YmxfaWR4OyAtLSBmYWlsCisKIC0tIGNoZWNrIHRoYXQgYWxsIHJlbGF0aW9ucyBtb3ZlZCB0byBu ZXcgdGFibGVzcGFjZQogU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcwogV0hFUkUgcmVsdGFi bGVzcGFjZT0oU0VMRUNUIG9pZCBGUk9NIHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0ncmVn cmVzc190YmxzcGFjZScpCiBPUkRFUiBCWSByZWxuYW1lOwogCistLSBjaGVjayBWQUNVVU0gd2l0 aCBUQUJMRVNQQUNFIGNoYW5nZQorVkFDVVVNIChGVUxMLCBBTkFMWVNFLCBGUkVFWkUsIFRBQkxF U1BBQ0UgcGdfZGVmYXVsdCkgcmVncmVzc190YmxzcGFjZV90ZXN0X3RibDsgLS0gb2sKK1ZBQ1VV TSAoRlVMTCwgVEFCTEVTUEFDRSBwZ19kZWZhdWx0KSBwZ19hdXRoaWQ7IC0tIHNraXAgd2l0aCB3 YXJuaW5nCitWQUNVVU0gKEFOQUxZU0UsIFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCk7IC0tIGZhaWwK K1ZBQ1VVTSAoRlVMTCwgVEFCTEVTUEFDRSBwZ19nbG9iYWwpIHJlZ3Jlc3NfdGJsc3BhY2VfdGVz dF90Ymw7IC0tIGZhaWwKKworLS0gY2hlY2sgdGhhdCBhbGwgdGFibGVzIG1vdmVkIGJhY2sgdG8g cGdfZGVmYXVsdAorU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVsdGFibGVz cGFjZT0oU0VMRUNUIG9pZCBGUk9NIHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0ncmVncmVz c190YmxzcGFjZScpCitPUkRFUiBCWSByZWxuYW1lOworCiAtLSBtb3ZlIGluZGV4ZXMgYmFjayB0 byBwZ19kZWZhdWx0IHRhYmxlc3BhY2UKIFJFSU5ERVggKFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCkg VEFCTEUgQ09OQ1VSUkVOVExZIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90Ymw7IC0tIG9rCiAKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvb3V0cHV0L3RhYmxlc3BhY2Uuc291cmNlIGIvc3Jj L3Rlc3QvcmVncmVzcy9vdXRwdXQvdGFibGVzcGFjZS5zb3VyY2UKaW5kZXggZWM1NzQyZGY5OC4u Nzg5YTBlNTZjYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9vdXRwdXQvdGFibGVzcGFj ZS5zb3VyY2UKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9vdXRwdXQvdGFibGVzcGFjZS5zb3VyY2UK QEAgLTIwLDcgKzIwLDcgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgcGFyYW1ldGVyICJzb21lX25v bmV4aXN0ZW50X3BhcmFtZXRlciIKIEFMVEVSIFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSBS RVNFVCAocmFuZG9tX3BhZ2VfY29zdCA9IDIuMCk7IC0tIGZhaWwKIEVSUk9SOiAgUkVTRVQgbXVz dCBub3QgaW5jbHVkZSB2YWx1ZXMgZm9yIHBhcmFtZXRlcnMKIEFMVEVSIFRBQkxFU1BBQ0UgcmVn cmVzc190YmxzcGFjZSBSRVNFVCAocmFuZG9tX3BhZ2VfY29zdCwgZWZmZWN0aXZlX2lvX2NvbmN1 cnJlbmN5KTsgLS0gb2sKLS0tIGNyZWF0ZSB0YWJsZSB0byB0ZXN0IFJFSU5ERVggd2l0aCBUQUJM RVNQQUNFIGNoYW5nZQorLS0gY3JlYXRlIHRhYmxlIHRvIHRlc3QgUkVJTkRFWCwgQ0xVU1RFUiBh bmQgVkFDVVVNIEZVTEwgd2l0aCBUQUJMRVNQQUNFIGNoYW5nZQogQ1JFQVRFIFRBQkxFIHJlZ3Jl c3NfdGJsc3BhY2VfdGVzdF90YmwgKG51bTEgYmlnaW50LCBudW0yIGRvdWJsZSBwcmVjaXNpb24s IG51bTMgZG91YmxlIHByZWNpc2lvbik7CiBJTlNFUlQgSU5UTyByZWdyZXNzX3RibHNwYWNlX3Rl c3RfdGJsIChudW0xLCBudW0yLCBudW0zKQogICBTRUxFQ1Qgcm91bmQocmFuZG9tKCkqMTAwKSwg cmFuZG9tKCksIHJhbmRvbSgpKjQyCkBAIC02MSw5ICs2MSw0NCBAQCBSRUlOREVYIChUQUJMRVNQ QUNFIHBnX2dsb2JhbCkgSU5ERVggcmVncmVzc190YmxzcGFjZV90ZXN0X3RibF9pZHg7IC0tIGZh aWwKIEVSUk9SOiAgY2Fubm90IG1vdmUgbm9uLXNoYXJlZCByZWxhdGlvbiB0byB0YWJsZXNwYWNl ICJwZ19nbG9iYWwiCiBSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxF IHBnX2FtOyAtLSBmYWlsCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkOiAicGdfYW1fbmFtZV9p bmRleCIgaXMgYSBzeXN0ZW0gY2F0YWxvZworLS0gY2hlY2sgdGhhdCBhbGwgaW5kZXhlcyBtb3Zl ZCB0byBuZXcgdGFibGVzcGFjZQorU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcworV0hFUkUg cmVsdGFibGVzcGFjZT0oU0VMRUNUIG9pZCBGUk9NIHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFt ZT0ncmVncmVzc190YmxzcGFjZScpCitPUkRFUiBCWSByZWxuYW1lOworICAgICAgICAgICAgcmVs bmFtZSAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGJsc3BhY2VfdGVzdF90YmxfaWR4CisoMSByb3cpCisKKy0tIGNoZWNrIENMVVNURVIgd2l0 aCBUQUJMRVNQQUNFIGNoYW5nZQorQ0xVU1RFUiAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNl KSByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsIFVTSU5HIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90 YmxfaWR4OyAtLSBvaworQ0xVU1RFUiAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBwZ19h dXRoaWQgVVNJTkcgcGdfYXV0aGlkX3JvbG5hbWVfaW5kZXg7IC0tIGZhaWwKK0VSUk9SOiAgY2Fu bm90IGNsdXN0ZXIgYSBzaGFyZWQgY2F0YWxvZworQ0xVU1RFUiAoVEFCTEVTUEFDRSBwZ19nbG9i YWwpIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmwgVVNJTkcgcmVncmVzc190YmxzcGFjZV90ZXN0 X3RibF9pZHg7IC0tIGZhaWwKK0VSUk9SOiAgY2Fubm90IG1vdmUgbm9uLXNoYXJlZCByZWxhdGlv biB0byB0YWJsZXNwYWNlICJwZ19nbG9iYWwiCiAtLSBjaGVjayB0aGF0IGFsbCByZWxhdGlvbnMg bW92ZWQgdG8gbmV3IHRhYmxlc3BhY2UKIFNFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MKIFdI RVJFIHJlbHRhYmxlc3BhY2U9KFNFTEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJFIHNw Y25hbWU9J3JlZ3Jlc3NfdGJsc3BhY2UnKQorT1JERVIgQlkgcmVsbmFtZTsKKyAgICAgICAgICAg IHJlbG5hbWUgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBy ZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsCisgcmVncmVzc190YmxzcGFjZV90ZXN0X3RibF9pZHgK KygyIHJvd3MpCisKKy0tIGNoZWNrIFZBQ1VVTSB3aXRoIFRBQkxFU1BBQ0UgY2hhbmdlCitWQUNV VU0gKEZVTEwsIEFOQUxZU0UsIEZSRUVaRSwgVEFCTEVTUEFDRSBwZ19kZWZhdWx0KSByZWdyZXNz X3RibHNwYWNlX3Rlc3RfdGJsOyAtLSBvaworVkFDVVVNIChGVUxMLCBUQUJMRVNQQUNFIHBnX2Rl ZmF1bHQpIHBnX2F1dGhpZDsgLS0gc2tpcCB3aXRoIHdhcm5pbmcKK1dBUk5JTkc6ICBza2lwcGlu ZyB0YWJsZXNwYWNlIGNoYW5nZSBvZiAicGdfYXV0aGlkIgorREVUQUlMOiAgQ2Fubm90IG1vdmUg c3lzdGVtIHJlbGF0aW9uLCBvbmx5IFZBQ1VVTSBpcyBwZXJmb3JtZWQuCitWQUNVVU0gKEFOQUxZ U0UsIFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCk7IC0tIGZhaWwKK0VSUk9SOiAgaW5jb21wYXRpYmxl IFRBQkxFU1BBQ0Ugb3B0aW9uCitERVRBSUw6ICBZb3UgY2FuIG9ubHkgdXNlIFRBQkxFU1BBQ0Ug d2l0aCBWQUNVVU0gRlVMTC4KK1ZBQ1VVTSAoRlVMTCwgVEFCTEVTUEFDRSBwZ19nbG9iYWwpIHJl Z3Jlc3NfdGJsc3BhY2VfdGVzdF90Ymw7IC0tIGZhaWwKK0VSUk9SOiAgY2Fubm90IG1vdmUgbm9u LXNoYXJlZCByZWxhdGlvbiB0byB0YWJsZXNwYWNlICJwZ19nbG9iYWwiCistLSBjaGVjayB0aGF0 IGFsbCB0YWJsZXMgbW92ZWQgYmFjayB0byBwZ19kZWZhdWx0CitTRUxFQ1QgcmVsbmFtZSBGUk9N IHBnX2NsYXNzCitXSEVSRSByZWx0YWJsZXNwYWNlPShTRUxFQ1Qgb2lkIEZST00gcGdfdGFibGVz cGFjZSBXSEVSRSBzcGNuYW1lPSdyZWdyZXNzX3RibHNwYWNlJykKIE9SREVSIEJZIHJlbG5hbWU7 CiAgICAgICAgICAgICByZWxuYW1lICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0tIAoyLjE5LjEKCg== --=_2649d5b7d06298c9fe864b2c58503088 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v24-0004-Allow-REINDEX-to-change-tablespace.patch Content-Disposition: attachment; filename=v24-0004-Allow-REINDEX-to-change-tablespace.patch; size=30331 RnJvbSBiY2VjZGE0NzEwMWZjZmUyYjk4ZDc0ODFlNjRjNjM3YmNkZjcxNTQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgS29uZHJhdG92IDxrb25kcmF0b3YuYWxla3NleUBn bWFpbC5jb20+CkRhdGU6IE1vbiwgMjMgTWFyIDIwMjAgMjE6MTA6MjkgKzAzMDAKU3ViamVjdDog W1BBVENIIHYyNCA0LzddIEFsbG93IFJFSU5ERVggdG8gY2hhbmdlIHRhYmxlc3BhY2UKClJFSU5E RVggYWxyZWFkeSBkb2VzIGZ1bGwgcmVsYXRpb24gcmV3cml0ZSwgdGhpcyBwYXRjaCBhZGRzIGEK cG9zc2liaWxpdHkgdG8gc3BlY2lmeSBhIG5ldyB0YWJsZXNwYWNlIHdoZXJlIG5ldyByZWxmaWxl bm9kZQp3aWxsIGJlIGNyZWF0ZWQuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9yZWluZGV4LnNnbWwg ICAgICAgICAgICAgfCAgMjIgKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyAgICAg ICAgICAgICAgIHwgMTAyICsrKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL2NsdXN0ZXIuYyAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9p bmRleGNtZHMuYyAgICAgICAgICB8ICA3NyArKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvdGNvcC91 dGlsaXR5LmMgICAgICAgICAgICAgICAgfCAgMTMgKy0tCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmMgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9pbmRleC5o ICAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oICAg ICAgICAgICAgIHwgICA2ICstCiBzcmMvdGVzdC9yZWdyZXNzL2lucHV0L3RhYmxlc3BhY2Uuc291 cmNlICB8ICA0NSArKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL291dHB1dC90YWJsZXNwYWNl LnNvdXJjZSB8ICA2MSArKysrKysrKysrKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAzMTEgaW5zZXJ0 aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9y ZWluZGV4LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3JlaW5kZXguc2dtbAppbmRleCBhMzJlMTky YTg3Li5iNzdiZmExY2RhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3JlaW5kZXguc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3JlaW5kZXguc2dtbApAQCAtMjYsNiArMjYsNyBAQCBS RUlOREVYIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNl YWJsZT4gWywgLi4uXSApIF0geyBJTgogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4gY2FuIGJlIG9uZSBvZjo8L3BocmFzZT4K IAogICAgIFZFUkJPU0UgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwv cmVwbGFjZWFibGU+IF0KKyAgICBUQUJMRVNQQUNFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uZXdfdGFibGVzcGFjZTwvcmVwbGFjZWFibGU+CiA8L3N5bm9wc2lzPgogIDwvcmVmc3lu b3BzaXNkaXY+CiAKQEAgLTE2MCw2ICsxNjEsMTkgQEAgUkVJTkRFWCBbICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdIHsgSU4K ICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PGxpdGVyYWw+VEFCTEVTUEFDRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgc3BlY2lmaWVzIHRoYXQgaW5kZXhlcyB3 aWxsIGJlIHJlYnVpbHQgb24gYSBuZXcgdGFibGVzcGFjZS4KKyAgICAgIENhbm5vdCBiZSB1c2Vk IHdpdGggIm1hcHBlZCIgcmVsYXRpb25zLiBJZiA8bGl0ZXJhbD5TQ0hFTUE8L2xpdGVyYWw+LAor ICAgICAgPGxpdGVyYWw+REFUQUJBU0U8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlNZU1RFTTwvbGl0 ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGVuCisgICAgICBhbGwgdW5zdWl0YWJsZSByZWxhdGlvbnMg d2lsbCBiZSBza2lwcGVkIGFuZCBhIHNpbmdsZSA8bGl0ZXJhbD5XQVJOSU5HPC9saXRlcmFsPgor ICAgICAgd2lsbCBiZSBnZW5lcmF0ZWQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVy YWw+VkVSQk9TRTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtMTk2LDYgKzIx MCwxNCBAQCBSRUlOREVYIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9u PC9yZXBsYWNlYWJsZT4gWywgLi4uXSApIF0geyBJTgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zh cmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmV3X3RhYmxlc3BhY2U8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIHRhYmxlc3BhY2Ugd2hlcmUgaW5k ZXhlcyB3aWxsIGJlIHJlYnVpbHQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CiAgIDwvdmFyaWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv aW5kZXguYwppbmRleCAxZDY2MmU5YWY0Li45ODRiNWU3YmQ3IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL2luZGV4LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCkBA IC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3Byb2dyZXNzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRz LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3RyaWdnZXIuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgpAQCAtMTIxOCw5ICsxMjE5LDEzIEBAIGluZGV4X2NyZWF0ZShSZWxhdGlvbiBo ZWFwUmVsYXRpb24sCiAgKiBDcmVhdGUgY29uY3VycmVudGx5IGFuIGluZGV4IGJhc2VkIG9uIHRo ZSBkZWZpbml0aW9uIG9mIHRoZSBvbmUgcHJvdmlkZWQgYnkKICAqIGNhbGxlci4gIFRoZSBpbmRl eCBpcyBpbnNlcnRlZCBpbnRvIGNhdGFsb2dzIGFuZCBuZWVkcyB0byBiZSBidWlsdCBsYXRlcgog ICogb24uICBUaGlzIGlzIGNhbGxlZCBkdXJpbmcgY29uY3VycmVudCByZWluZGV4IHByb2Nlc3Np bmcuCisgKgorICogInRhYmxlc3BhY2VPaWQiIGlzIHRoZSBuZXcgdGFibGVzcGFjZSB0byB1c2Ug Zm9yIHRoaXMgaW5kZXguICBJZgorICogSW52YWxpZE9pZCwgdXNlIHRoZSB0YWJsZXNwYWNlIGlu LXVzZSBpbnN0ZWFkLgogICovCiBPaWQKLWluZGV4X2NvbmN1cnJlbnRseV9jcmVhdGVfY29weShS ZWxhdGlvbiBoZWFwUmVsYXRpb24sIE9pZCBvbGRJbmRleElkLCBjb25zdCBjaGFyICpuZXdOYW1l KQoraW5kZXhfY29uY3VycmVudGx5X2NyZWF0ZV9jb3B5KFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwg T2lkIG9sZEluZGV4SWQsCisJCQkJCQkJICAgT2lkIHRhYmxlc3BhY2VPaWQsIGNvbnN0IGNoYXIg Km5ld05hbWUpCiB7CiAJUmVsYXRpb24JaW5kZXhSZWxhdGlvbjsKIAlJbmRleEluZm8gICpvbGRJ bmZvLApAQCAtMTM1MCw3ICsxMzU1LDggQEAgaW5kZXhfY29uY3VycmVudGx5X2NyZWF0ZV9jb3B5 KFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwgT2lkIG9sZEluZGV4SWQsIGNvbnN0IGNoYXIKIAkJCQkJ CQkgIG5ld0luZm8sCiAJCQkJCQkJICBpbmRleENvbE5hbWVzLAogCQkJCQkJCSAgaW5kZXhSZWxh dGlvbi0+cmRfcmVsLT5yZWxhbSwKLQkJCQkJCQkgIGluZGV4UmVsYXRpb24tPnJkX3JlbC0+cmVs dGFibGVzcGFjZSwKKwkJCQkJCQkgIE9pZElzVmFsaWQodGFibGVzcGFjZU9pZCkgPworCQkJCQkJ CQl0YWJsZXNwYWNlT2lkIDogaW5kZXhSZWxhdGlvbi0+cmRfcmVsLT5yZWx0YWJsZXNwYWNlLAog CQkJCQkJCSAgaW5kZXhSZWxhdGlvbi0+cmRfaW5kY29sbGF0aW9uLAogCQkJCQkJCSAgaW5kY2xh c3MtPnZhbHVlcywKIAkJCQkJCQkgIGluZGNvbG9wdGlvbnMtPnZhbHVlcywKQEAgLTM0MTgsMTAg KzM0MjQsMTIgQEAgSW5kZXhHZXRSZWxhdGlvbihPaWQgaW5kZXhJZCwgYm9vbCBtaXNzaW5nX29r KQogCiAvKgogICogcmVpbmRleF9pbmRleCAtIFRoaXMgcm91dGluZSBpcyB1c2VkIHRvIHJlY3Jl YXRlIGEgc2luZ2xlIGluZGV4CisgKgorICogU2VlIGNvbW1lbnRzIG9mIHJlaW5kZXhfcmVsYXRp b24oKSBmb3IgZGV0YWlscyBhYm91dCAidGFibGVzcGFjZU9pZCIuCiAgKi8KIHZvaWQKLXJlaW5k ZXhfaW5kZXgoT2lkIGluZGV4SWQsIGJvb2wgc2tpcF9jb25zdHJhaW50X2NoZWNrcywgY2hhciBw ZXJzaXN0ZW5jZSwKLQkJCSAgaW50IG9wdGlvbnMpCityZWluZGV4X2luZGV4KE9pZCBpbmRleElk LCBPaWQgdGFibGVzcGFjZU9pZCwgYm9vbCBza2lwX2NvbnN0cmFpbnRfY2hlY2tzLAorCQkJICBj aGFyIHBlcnNpc3RlbmNlLCBpbnQgb3B0aW9ucykKIHsKIAlSZWxhdGlvbglpUmVsLAogCQkJCWhl YXBSZWxhdGlvbjsKQEAgLTM0MzAsNiArMzQzOCw3IEBAIHJlaW5kZXhfaW5kZXgoT2lkIGluZGV4 SWQsIGJvb2wgc2tpcF9jb25zdHJhaW50X2NoZWNrcywgY2hhciBwZXJzaXN0ZW5jZSwKIAl2b2xh dGlsZSBib29sIHNraXBwZWRfY29uc3RyYWludCA9IGZhbHNlOwogCVBHUlVzYWdlCXJ1MDsKIAli b29sCQlwcm9ncmVzcyA9IChvcHRpb25zICYgUkVJTkRFWE9QVF9SRVBPUlRfUFJPR1JFU1MpICE9 IDA7CisJYm9vbAkJc2V0X3RhYmxlc3BhY2UgPSBPaWRJc1ZhbGlkKHRhYmxlc3BhY2VPaWQpOwog CiAJcGdfcnVzYWdlX2luaXQoJnJ1MCk7CiAKQEAgLTM0ODAsNiArMzQ4OSwzNSBAQCByZWluZGV4 X2luZGV4KE9pZCBpbmRleElkLCBib29sIHNraXBfY29uc3RyYWludF9jaGVja3MsIGNoYXIgcGVy c2lzdGVuY2UsCiAJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCByZWxhdGlvbiBraW5kIGZvciBp bmRleCBcIiVzXCIiLAogCQkJIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGlSZWwpKTsKIAorCS8q CisJICogV2UgZG9uJ3Qgc3VwcG9ydCBtb3Zpbmcgc3lzdGVtIHJlbGF0aW9ucyBpbnRvIGRpZmZl cmVudCB0YWJsZXNwYWNlcywKKwkgKiB1bmxlc3MgYWxsb3dfc3lzdGVtX3RhYmxlX21vZHM9MS4K KwkgKi8KKwlpZiAoc2V0X3RhYmxlc3BhY2UgJiYKKwkJIWFsbG93U3lzdGVtVGFibGVNb2RzICYm IElzU3lzdGVtUmVsYXRpb24oaVJlbCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkgZXJybXNnKCJwZXJtaXNzaW9u IGRlbmllZDogXCIlc1wiIGlzIGEgc3lzdGVtIGNhdGFsb2ciLAorCQkJCQkJUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUoaVJlbCkpKSk7CisKKwkvKgorCSAqIFdlIGNhbm5vdCBzdXBwb3J0IG1vdmlu ZyBtYXBwZWQgcmVsYXRpb25zIGludG8gZGlmZmVyZW50IHRhYmxlc3BhY2VzLgorCSAqIChJbiBw YXJ0aWN1bGFyIHRoaXMgZWxpbWluYXRlcyBhbGwgc2hhcmVkIGNhdGFsb2dzLikKKwkgKi8KKwlp ZiAoc2V0X3RhYmxlc3BhY2UgJiYgUmVsYXRpb25Jc01hcHBlZChpUmVsKSkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJ IGVycm1zZygiY2Fubm90IGNoYW5nZSB0YWJsZXNwYWNlIG9mIG1hcHBlZCByZWxhdGlvbiBcIiVz XCIiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoaVJlbCkpKSk7CisKKwkvKiBJdCdz IG5vdCBhIHNoYXJlZCBjYXRhbG9nLCBzbyByZWZ1c2UgdG8gbW92ZSBpdCB0byBzaGFyZWQgdGFi bGVzcGFjZSAqLworCWlmICh0YWJsZXNwYWNlT2lkID09IEdMT0JBTFRBQkxFU1BBQ0VfT0lEKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgbW92ZSBub24tc2hhcmVkIHJlbGF0aW9uIHRvIHRh Ymxlc3BhY2UgXCIlc1wiIiwKKwkJCQkJIGdldF90YWJsZXNwYWNlX25hbWUodGFibGVzcGFjZU9p ZCkpKSk7CisKKwogCS8qCiAJICogRG9uJ3QgYWxsb3cgcmVpbmRleCBvbiB0ZW1wIHRhYmxlcyBv ZiBvdGhlciBiYWNrZW5kcyAuLi4gdGhlaXIgbG9jYWwKIAkgKiBidWZmZXIgbWFuYWdlciBpcyBu b3QgZ29pbmcgdG8gY29wZS4KQEAgLTM1MDYsNiArMzU0NCw0OSBAQCByZWluZGV4X2luZGV4KE9p ZCBpbmRleElkLCBib29sIHNraXBfY29uc3RyYWludF9jaGVja3MsIGNoYXIgcGVyc2lzdGVuY2Us CiAJICovCiAJQ2hlY2tUYWJsZU5vdEluVXNlKGlSZWwsICJSRUlOREVYIElOREVYIik7CiAKKwlp ZiAodGFibGVzcGFjZU9pZCA9PSBNeURhdGFiYXNlVGFibGVTcGFjZSkKKwkJdGFibGVzcGFjZU9p ZCA9IEludmFsaWRPaWQ7CisKKwkvKgorCSAqIFNldCB0aGUgbmV3IHRhYmxlc3BhY2UgZm9yIHRo ZSByZWxhdGlvbi4gIERvIHRoYXQgb25seSBpbiB0aGUKKwkgKiBjYXNlIHdoZXJlIHRoZSByZWlu ZGV4IGNhbGxlciB3aXNoZXMgdG8gZW5mb3JjZSBhIG5ldyB0YWJsZXNwYWNlLgorCSAqLworCWlm IChzZXRfdGFibGVzcGFjZSAmJgorCQl0YWJsZXNwYWNlT2lkICE9IGlSZWwtPnJkX3JlbC0+cmVs dGFibGVzcGFjZSkKKwl7CisJCVJlbGF0aW9uCQlwZ19jbGFzczsKKwkJRm9ybV9wZ19jbGFzcwly ZF9yZWw7CisJCUhlYXBUdXBsZQkJdHVwbGU7CisKKwkJLyogRmlyc3QgZ2V0IGEgbW9kaWZpYWJs ZSBjb3B5IG9mIHRoZSByZWxhdGlvbidzIHBnX2NsYXNzIHJvdyAqLworCQlwZ19jbGFzcyA9IHRh YmxlX29wZW4oUmVsYXRpb25SZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQl0dXBs ZSA9IFNlYXJjaFN5c0NhY2hlQ29weTEoUkVMT0lELCBPYmplY3RJZEdldERhdHVtKGluZGV4SWQp KTsKKwkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciByZWxhdGlvbiAldSIsIGluZGV4SWQpOworCQlyZF9yZWwgPSAo Rm9ybV9wZ19jbGFzcykgR0VUU1RSVUNUKHR1cGxlKTsKKworCQkvKgorCQkgKiBNYXJrIHRoZSBy ZWxhdGlvbiBhcyByZWFkeSB0byBiZSBkcm9wcGVkIGF0IHRyYW5zYWN0aW9uIGNvbW1pdCwKKwkJ ICogYmVmb3JlIG1ha2luZyB2aXNpYmxlIHRoZSBuZXcgdGFibGVzcGFjZSBjaGFuZ2Ugc28gYXMg dGhpcyB3b24ndAorCQkgKiBtaXNzIHRoaW5ncy4KKwkJICovCisJCVJlbGF0aW9uRHJvcFN0b3Jh Z2UoaVJlbCk7CisKKwkJLyogVXBkYXRlIHRoZSBwZ19jbGFzcyByb3cgKi8KKwkJcmRfcmVsLT5y ZWx0YWJsZXNwYWNlID0gdGFibGVzcGFjZU9pZDsKKwkJQ2F0YWxvZ1R1cGxlVXBkYXRlKHBnX2Ns YXNzLCAmdHVwbGUtPnRfc2VsZiwgdHVwbGUpOworCisJCWhlYXBfZnJlZXR1cGxlKHR1cGxlKTsK KworCQl0YWJsZV9jbG9zZShwZ19jbGFzcywgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJUmVsYXRp b25Bc3N1bWVOZXdSZWxmaWxlbm9kZShpUmVsKTsKKworCQkvKiBNYWtlIHN1cmUgdGhlIHJlbHRh Ymxlc3BhY2UgY2hhbmdlIGlzIHZpc2libGUgKi8KKwkJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQo KTsKKwl9CisKIAkvKgogCSAqIEFsbCBwcmVkaWNhdGUgbG9ja3Mgb24gdGhlIGluZGV4IGFyZSBh Ym91dCB0byBiZSBtYWRlIGludmFsaWQuIFByb21vdGUKIAkgKiB0aGVtIHRvIHJlbGF0aW9uIGxv Y2tzIG9uIHRoZSBoZWFwLgpAQCAtMzYzNyw2ICszNzE4LDkgQEAgcmVpbmRleF9pbmRleChPaWQg aW5kZXhJZCwgYm9vbCBza2lwX2NvbnN0cmFpbnRfY2hlY2tzLCBjaGFyIHBlcnNpc3RlbmNlLAog ICogcmVpbmRleF9yZWxhdGlvbiAtIFRoaXMgcm91dGluZSBpcyB1c2VkIHRvIHJlY3JlYXRlIGFs bCBpbmRleGVzCiAgKiBvZiBhIHJlbGF0aW9uIChhbmQgb3B0aW9uYWxseSBpdHMgdG9hc3QgcmVs YXRpb24gdG9vLCBpZiBhbnkpLgogICoKKyAqICJ0YWJsZXNwYWNlT2lkIiBpcyB0aGUgdGFibGVz cGFjZSB3aGVyZSB0aGUgcmVsYXRpb24ncyBpbmRleGVzIHdpbGwgYmUKKyAqIHJlYnVpbHQsIG9y IEludmFsaWRPaWQgdG8ga2VlcCBlYWNoIGluZGV4IG9uIGl0cyBjdXJyZW50IHRhYmxlc3BhY2Uu CisgKgogICogImZsYWdzIiBpcyBhIGJpdG1hc2sgdGhhdCBjYW4gaW5jbHVkZSBhbnkgY29tYmlu YXRpb24gb2YgdGhlc2UgYml0czoKICAqCiAgKiBSRUlOREVYX1JFTF9QUk9DRVNTX1RPQVNUOiBp ZiB0cnVlLCBwcm9jZXNzIHRoZSB0b2FzdCB0YWJsZSB0b28gKGlmIGFueSkuCkBAIC0zNjY5LDcg KzM3NTMsNyBAQCByZWluZGV4X2luZGV4KE9pZCBpbmRleElkLCBib29sIHNraXBfY29uc3RyYWlu dF9jaGVja3MsIGNoYXIgcGVyc2lzdGVuY2UsCiAgKiBpbmRleCByZWJ1aWxkLgogICovCiBib29s Ci1yZWluZGV4X3JlbGF0aW9uKE9pZCByZWxpZCwgaW50IGZsYWdzLCBpbnQgb3B0aW9ucykKK3Jl aW5kZXhfcmVsYXRpb24oT2lkIHJlbGlkLCBPaWQgdGFibGVzcGFjZU9pZCwgaW50IGZsYWdzLCBp bnQgb3B0aW9ucykKIHsKIAlSZWxhdGlvbglyZWw7CiAJT2lkCQkJdG9hc3RfcmVsaWQ7CkBAIC0z NzY0LDcgKzM4NDgsOCBAQCByZWluZGV4X3JlbGF0aW9uKE9pZCByZWxpZCwgaW50IGZsYWdzLCBp bnQgb3B0aW9ucykKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJcmVpbmRleF9pbmRleChpbmRleE9p ZCwgIShmbGFncyAmIFJFSU5ERVhfUkVMX0NIRUNLX0NPTlNUUkFJTlRTKSwKKwkJcmVpbmRleF9p bmRleChpbmRleE9pZCwgdGFibGVzcGFjZU9pZCwKKwkJCQkJICAhKGZsYWdzICYgUkVJTkRFWF9S RUxfQ0hFQ0tfQ09OU1RSQUlOVFMpLAogCQkJCQkgIHBlcnNpc3RlbmNlLCBvcHRpb25zKTsKIAog CQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwpAQCAtMzc5NCw4ICszODc5LDExIEBAIHJlaW5k ZXhfcmVsYXRpb24oT2lkIHJlbGlkLCBpbnQgZmxhZ3MsIGludCBvcHRpb25zKQogCQkvKgogCQkg KiBOb3RlIHRoYXQgdGhpcyBzaG91bGQgZmFpbCBpZiB0aGUgdG9hc3QgcmVsYXRpb24gaXMgbWlz c2luZywgc28KIAkJICogcmVzZXQgUkVJTkRFWE9QVF9NSVNTSU5HX09LLgorCQkgKgorCQkgKiBF dmVuIGlmIHRhYmxlIHdhcyBtb3ZlZCB0byBuZXcgdGFibGVzcGFjZSwgbm9ybWFsbHkgdG9hc3Qg Y2Fubm90IG1vdmUuCiAJCSAqLwotCQlyZXN1bHQgfD0gcmVpbmRleF9yZWxhdGlvbih0b2FzdF9y ZWxpZCwgZmxhZ3MsCisJCU9pZCB0b2FzdHRhYmxlc3BhY2VPaWQgPSBhbGxvd1N5c3RlbVRhYmxl TW9kcyA/IHRhYmxlc3BhY2VPaWQgOiBJbnZhbGlkT2lkOworCQlyZXN1bHQgfD0gcmVpbmRleF9y ZWxhdGlvbih0b2FzdF9yZWxpZCwgdG9hc3R0YWJsZXNwYWNlT2lkLCBmbGFncywKIAkJCQkJCQkJ ICAgb3B0aW9ucyAmIH4oUkVJTkRFWE9QVF9NSVNTSU5HX09LKSk7CiAJfQogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9j bHVzdGVyLmMKaW5kZXggNGEzNjc4ODMxZC4uZWFkMmMxY2Q0YiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvY2x1c3Rlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0 ZXIuYwpAQCAtMTQxOCw3ICsxNDE4LDcgQEAgZmluaXNoX2hlYXBfc3dhcChPaWQgT0lET2xkSGVh cCwgT2lkIE9JRE5ld0hlYXAsCiAJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVT U19DTFVTVEVSX1BIQVNFLAogCQkJCQkJCQkgUFJPR1JFU1NfQ0xVU1RFUl9QSEFTRV9SRUJVSUxE X0lOREVYKTsKIAotCXJlaW5kZXhfcmVsYXRpb24oT0lET2xkSGVhcCwgcmVpbmRleF9mbGFncywg MCk7CisJcmVpbmRleF9yZWxhdGlvbihPSURPbGRIZWFwLCBJbnZhbGlkT2lkLCByZWluZGV4X2Zs YWdzLCAwKTsKIAogCS8qIFJlcG9ydCB0aGF0IHdlIGFyZSBub3cgZG9pbmcgY2xlYW4gdXAgKi8K IAlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NMVVNURVJfUEhBU0UsCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2luZGV4Y21kcy5jCmluZGV4IDljOWI3ZTcyYTQuLjk4MGVmNWFjZTcgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2luZGV4Y21kcy5jCkBAIC04Nyw3ICs4Nyw3IEBAIHN0YXRpYyBjaGFyICpDaG9v c2VJbmRleE5hbWVBZGRpdGlvbihMaXN0ICpjb2xuYW1lcyk7CiBzdGF0aWMgTGlzdCAqQ2hvb3Nl SW5kZXhDb2x1bW5OYW1lcyhMaXN0ICppbmRleEVsZW1zKTsKIHN0YXRpYyB2b2lkIFJhbmdlVmFy Q2FsbGJhY2tGb3JSZWluZGV4SW5kZXgoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJ CQkJCQlPaWQgcmVsSWQsIE9pZCBvbGRSZWxJZCwgdm9pZCAqYXJnKTsKLXN0YXRpYyBib29sIFJl aW5kZXhSZWxhdGlvbkNvbmN1cnJlbnRseShPaWQgcmVsYXRpb25PaWQsIGludCBvcHRpb25zKTsK K3N0YXRpYyBib29sIFJlaW5kZXhSZWxhdGlvbkNvbmN1cnJlbnRseShPaWQgcmVsYXRpb25PaWQs IE9pZCB0YWJsZXNwYWNlT2lkLCBpbnQgb3B0aW9ucyk7CiBzdGF0aWMgdm9pZCBSZWluZGV4UGFy dGl0aW9uZWRJbmRleChSZWxhdGlvbiBwYXJlbnRJZHgpOwogc3RhdGljIHZvaWQgdXBkYXRlX3Jl bGlzcGFydGl0aW9uKE9pZCByZWxhdGlvbklkLCBib29sIG5ld3ZhbCk7CiBzdGF0aWMgYm9vbCBD b21wYXJlT3BjbGFzc09wdGlvbnMoRGF0dW0gKm9wdHMxLCBEYXR1bSAqb3B0czIsIGludCBuYXR0 cyk7CkBAIC0yNDIwLDExICsyNDIwLDEyIEBAIENob29zZUluZGV4Q29sdW1uTmFtZXMoTGlzdCAq aW5kZXhFbGVtcykKICAqCQlSZWNyZWF0ZSBhIHNwZWNpZmljIGluZGV4LgogICovCiB2b2lkCi1S ZWluZGV4SW5kZXgoUmVpbmRleFN0bXQgKnN0bXQsIGludCBvcHRpb25zKQorUmVpbmRleEluZGV4 KFJlaW5kZXhTdG10ICpzdG10LCBpbnQgb3B0aW9ucywgY2hhciAqdGFibGVzcGFjZSkKIHsKIAlS YW5nZVZhciAqaW5kZXhSZWxhdGlvbiA9IHN0bXQtPnJlbGF0aW9uOwogCXN0cnVjdCBSZWluZGV4 SW5kZXhDYWxsYmFja1N0YXRlIHN0YXRlOwogCU9pZAkJCWluZE9pZDsKKwlPaWQJCQl0YWJsZXNw YWNlT2lkID0gSW52YWxpZE9pZDsKIAlSZWxhdGlvbglpcmVsOwogCWNoYXIJCXBlcnNpc3RlbmNl OwogCkBAIC0yNDU5LDEyICsyNDYwLDE3IEBAIFJlaW5kZXhJbmRleChSZWluZGV4U3RtdCAqc3Rt dCwgaW50IG9wdGlvbnMpCiAJfQogCiAJcGVyc2lzdGVuY2UgPSBpcmVsLT5yZF9yZWwtPnJlbHBl cnNpc3RlbmNlOworCisJLyogRGVmaW5lIG5ldyB0YWJsZXNwYWNlT2lkIGlmIHJlcXVlc3RlZCAq LworCWlmICh0YWJsZXNwYWNlKQorCQl0YWJsZXNwYWNlT2lkID0gZ2V0X3RhYmxlc3BhY2Vfb2lk KHRhYmxlc3BhY2UsIGZhbHNlKTsKKwogCWluZGV4X2Nsb3NlKGlyZWwsIE5vTG9jayk7CiAKIAlp ZiAoc3RhdGUuY29uY3VycmVudCAmJiBwZXJzaXN0ZW5jZSAhPSBSRUxQRVJTSVNURU5DRV9URU1Q KQotCQlSZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkoaW5kT2lkLCBvcHRpb25zKTsKKwkJUmVp bmRleFJlbGF0aW9uQ29uY3VycmVudGx5KGluZE9pZCwgdGFibGVzcGFjZU9pZCwgb3B0aW9ucyk7 CiAJZWxzZQotCQlyZWluZGV4X2luZGV4KGluZE9pZCwgZmFsc2UsIHBlcnNpc3RlbmNlLAorCQly ZWluZGV4X2luZGV4KGluZE9pZCwgdGFibGVzcGFjZU9pZCwgZmFsc2UsIHBlcnNpc3RlbmNlLAog CQkJCQkgIG9wdGlvbnMgfCBSRUlOREVYT1BUX1JFUE9SVF9QUk9HUkVTUyk7CiB9CiAKQEAgLTI1 NDMsMTIgKzI1NDksMTMgQEAgUmFuZ2VWYXJDYWxsYmFja0ZvclJlaW5kZXhJbmRleChjb25zdCBS YW5nZVZhciAqcmVsYXRpb24sCiAgKgkJUmVjcmVhdGUgYWxsIGluZGV4ZXMgb2YgYSB0YWJsZSAo YW5kIG9mIGl0cyB0b2FzdCB0YWJsZSwgaWYgYW55KQogICovCiBPaWQKLVJlaW5kZXhUYWJsZShS ZWluZGV4U3RtdCAqc3RtdCwgaW50IG9wdGlvbnMpCitSZWluZGV4VGFibGUoUmVpbmRleFN0bXQg KnN0bXQsIGludCBvcHRpb25zLCBjaGFyICp0YWJsZXNwYWNlKQogewogCVJhbmdlVmFyICpyZWxh dGlvbiA9IHN0bXQtPnJlbGF0aW9uOwogCU9pZAkJCWhlYXBPaWQ7CiAJYm9vbAkJcmVzdWx0Owog CWJvb2wJCWNvbmN1cnJlbnQgPSAob3B0aW9ucyAmIFJFSU5ERVhPUFRfQ09OQ1VSUkVOVCk7CisJ T2lkIAkJdGFibGVzcGFjZU9pZCA9IEludmFsaWRPaWQ7CiAKIAkvKgogCSAqIFRoZSBsb2NrIGxl dmVsIHVzZWQgaGVyZSBzaG91bGQgbWF0Y2ggcmVpbmRleF9yZWxhdGlvbigpLgpAQCAtMjU2Myw5 ICsyNTcwLDEzIEBAIFJlaW5kZXhUYWJsZShSZWluZGV4U3RtdCAqc3RtdCwgaW50IG9wdGlvbnMp CiAJCQkJCQkJCQkgICAwLAogCQkJCQkJCQkJICAgUmFuZ2VWYXJDYWxsYmFja093bnNUYWJsZSwg TlVMTCk7CiAKKwkvKiBEZWZpbmUgbmV3IHRhYmxlc3BhY2VPaWQgaWYgcmVxdWVzdGVkICovCisJ aWYgKHRhYmxlc3BhY2UpCisJCXRhYmxlc3BhY2VPaWQgPSBnZXRfdGFibGVzcGFjZV9vaWQodGFi bGVzcGFjZSwgZmFsc2UpOworCiAJaWYgKGNvbmN1cnJlbnQgJiYgZ2V0X3JlbF9wZXJzaXN0ZW5j ZShoZWFwT2lkKSAhPSBSRUxQRVJTSVNURU5DRV9URU1QKQogCXsKLQkJcmVzdWx0ID0gUmVpbmRl eFJlbGF0aW9uQ29uY3VycmVudGx5KGhlYXBPaWQsIG9wdGlvbnMpOworCQlyZXN1bHQgPSBSZWlu ZGV4UmVsYXRpb25Db25jdXJyZW50bHkoaGVhcE9pZCwgdGFibGVzcGFjZU9pZCwgb3B0aW9ucyk7 CiAKIAkJaWYgKCFyZXN1bHQpCiAJCQllcmVwb3J0KE5PVElDRSwKQEAgLTI1NzUsNiArMjU4Niw3 IEBAIFJlaW5kZXhUYWJsZShSZWluZGV4U3RtdCAqc3RtdCwgaW50IG9wdGlvbnMpCiAJZWxzZQog CXsKIAkJcmVzdWx0ID0gcmVpbmRleF9yZWxhdGlvbihoZWFwT2lkLAorCQkJCQkJCQkgIHRhYmxl c3BhY2VPaWQsCiAJCQkJCQkJCSAgUkVJTkRFWF9SRUxfUFJPQ0VTU19UT0FTVCB8CiAJCQkJCQkJ CSAgUkVJTkRFWF9SRUxfQ0hFQ0tfQ09OU1RSQUlOVFMsCiAJCQkJCQkJCSAgb3B0aW9ucyB8IFJF SU5ERVhPUFRfUkVQT1JUX1BST0dSRVNTKTsKQEAgLTI1OTYsMTEgKzI2MDgsMTIgQEAgUmVpbmRl eFRhYmxlKFJlaW5kZXhTdG10ICpzdG10LCBpbnQgb3B0aW9ucykKICAqIFRoYXQgbWVhbnMgdGhp cyBtdXN0IG5vdCBiZSBjYWxsZWQgd2l0aGluIGEgdXNlciB0cmFuc2FjdGlvbiBibG9jayEKICAq Lwogdm9pZAotUmVpbmRleE11bHRpcGxlVGFibGVzKFJlaW5kZXhTdG10ICpzdG10LCBpbnQgb3B0 aW9ucykKK1JlaW5kZXhNdWx0aXBsZVRhYmxlcyhSZWluZGV4U3RtdCAqc3RtdCwgaW50IG9wdGlv bnMsIGNoYXIgKnRhYmxlc3BhY2UpCiB7CiAJY29uc3QgY2hhciAqb2JqZWN0TmFtZSA9IHN0bXQt Pm5hbWU7CiAJUmVpbmRleE9iamVjdFR5cGUgb2JqZWN0S2luZCA9IHN0bXQtPmtpbmQ7CiAJT2lk CQkJb2JqZWN0T2lkOworCU9pZAkJCXRhYmxlc3BhY2VPaWQgPSBJbnZhbGlkT2lkOwogCVJlbGF0 aW9uCXJlbGF0aW9uUmVsYXRpb247CiAJVGFibGVTY2FuRGVzYyBzY2FuOwogCVNjYW5LZXlEYXRh IHNjYW5fa2V5c1sxXTsKQEAgLTI2MTIsNiArMjYyNSw4IEBAIFJlaW5kZXhNdWx0aXBsZVRhYmxl cyhSZWluZGV4U3RtdCAqc3RtdCwgaW50IG9wdGlvbnMpCiAJaW50CQkJbnVtX2tleXM7CiAJYm9v bAkJY29uY3VycmVudF93YXJuaW5nID0gZmFsc2U7CiAJYm9vbAkJY29uY3VycmVudCA9IChvcHRp b25zICYgUkVJTkRFWE9QVF9DT05DVVJSRU5UKTsKKwlib29sCQl0YWJsZXNwYWNlX3dhcm5pbmcg PSBmYWxzZTsKKwlib29sCQltYXBwZWRfd2FybmluZyA9IGZhbHNlOwogCiAJQXNzZXJ0QXJnKG9i amVjdE5hbWUpOwogCUFzc2VydChvYmplY3RLaW5kID09IFJFSU5ERVhfT0JKRUNUX1NDSEVNQSB8 fApAQCAtMjY1MCw2ICsyNjY1LDEwIEBAIFJlaW5kZXhNdWx0aXBsZVRhYmxlcyhSZWluZGV4U3Rt dCAqc3RtdCwgaW50IG9wdGlvbnMpCiAJCQkJCQkgICBvYmplY3ROYW1lKTsKIAl9CiAKKwkvKiBE ZWZpbmUgbmV3IHRhYmxlc3BhY2VPaWQgaWYgcmVxdWVzdGVkICovCisJaWYgKHRhYmxlc3BhY2Up CisJCXRhYmxlc3BhY2VPaWQgPSBnZXRfdGFibGVzcGFjZV9vaWQodGFibGVzcGFjZSwgZmFsc2Up OworCiAJLyoKIAkgKiBDcmVhdGUgYSBtZW1vcnkgY29udGV4dCB0aGF0IHdpbGwgc3Vydml2ZSBm b3JjZWQgdHJhbnNhY3Rpb24gY29tbWl0cyB3ZQogCSAqIGRvIGJlbG93LiAgU2luY2UgaXQgaXMg YSBjaGlsZCBvZiBQb3J0YWxDb250ZXh0LCBpdCB3aWxsIGdvIGF3YXkKQEAgLTI3NDAsNiArMjc1 OSwzNSBAQCBSZWluZGV4TXVsdGlwbGVUYWJsZXMoUmVpbmRleFN0bXQgKnN0bXQsIGludCBvcHRp b25zKQogCQkJY29udGludWU7CiAJCX0KIAorCQlpZiAoT2lkSXNWYWxpZCh0YWJsZXNwYWNlT2lk KSAmJgorCQkJSXNTeXN0ZW1DbGFzcyhyZWxpZCwgY2xhc3N0dXBsZSkpCisJCXsKKwkJCWlmICgh YWxsb3dTeXN0ZW1UYWJsZU1vZHMpCisJCQl7CisJCQkJLyogU2tpcCBhbGwgc3lzdGVtIHJlbGF0 aW9ucywgaWYgbm90IGFsbG93U3lzdGVtVGFibGVNb2RzICovCisJCQkJaWYgKCF0YWJsZXNwYWNl X3dhcm5pbmcpCisJCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RF X0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCQkJCSBlcnJtc2coImNhbm5vdCBjaGFuZ2Ug dGFibGVzcGFjZSBvZiBpbmRleGVzIG9uIHN5c3RlbSByZWxhdGlvbnMsIHNraXBwaW5nIGFsbCIp KSk7CisJCQkJdGFibGVzcGFjZV93YXJuaW5nID0gdHJ1ZTsKKwkJCQljb250aW51ZTsKKwkJCX0K KwkJCWVsc2UgaWYgKCFPaWRJc1ZhbGlkKGNsYXNzdHVwbGUtPnJlbGZpbGVub2RlKSkKKwkJCXsK KwkJCQkvKgorCQkJCSAqIFNraXAgYWxsIG1hcHBlZCByZWxhdGlvbnMgaWYgVEFCTEVTUEFDRSBp cyBzcGVjaWZpZWQuCisJCQkJICogT2lkSXNWYWxpZChyZWxmaWxlbm9kZSkgY2hlY2tzIHRoYXQs IHNpbWlsYXIgdG8KKwkJCQkgKiBSZWxhdGlvbklzTWFwcGVkKCkuCisJCQkJICovCisJCQkJaWYg KCFtYXBwZWRfd2FybmluZykKKwkJCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y2hhbmdlIHRhYmxlc3BhY2Ugb2YgaW5kZXhlcyBvbiBtYXBwZWQgcmVsYXRpb25zLCBza2lwcGlu ZyBhbGwiKSkpOworCQkJCW1hcHBlZF93YXJuaW5nID0gdHJ1ZTsKKwkJCQljb250aW51ZTsKKwkJ CX0KKwkJfQorCiAJCS8qIFNhdmUgdGhlIGxpc3Qgb2YgcmVsYXRpb24gT0lEcyBpbiBwcml2YXRl IGNvbnRleHQgKi8KIAkJb2xkID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKHByaXZhdGVfY29udGV4 dCk7CiAKQEAgLTI3ODIsNiArMjgzMCw3IEBAIFJlaW5kZXhNdWx0aXBsZVRhYmxlcyhSZWluZGV4 U3RtdCAqc3RtdCwgaW50IG9wdGlvbnMpCiAJCWlmIChjb25jdXJyZW50ICYmIGdldF9yZWxfcGVy c2lzdGVuY2UocmVsaWQpICE9IFJFTFBFUlNJU1RFTkNFX1RFTVApCiAJCXsKIAkJCSh2b2lkKSBS ZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkocmVsaWQsCisJCQkJCQkJCQkJCSAgIHRhYmxlc3Bh Y2VPaWQsCiAJCQkJCQkJCQkJCSAgIG9wdGlvbnMgfAogCQkJCQkJCQkJCQkgICBSRUlOREVYT1BU X01JU1NJTkdfT0spOwogCQkJLyogUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5KCkgZG9lcyB0 aGUgdmVyYm9zZSBvdXRwdXQgKi8KQEAgLTI3OTEsNiArMjg0MCw3IEBAIFJlaW5kZXhNdWx0aXBs ZVRhYmxlcyhSZWluZGV4U3RtdCAqc3RtdCwgaW50IG9wdGlvbnMpCiAJCQlib29sCQlyZXN1bHQ7 CiAKIAkJCXJlc3VsdCA9IHJlaW5kZXhfcmVsYXRpb24ocmVsaWQsCisJCQkJCQkJCQkgIHRhYmxl c3BhY2VPaWQsCiAJCQkJCQkJCQkgIFJFSU5ERVhfUkVMX1BST0NFU1NfVE9BU1QgfAogCQkJCQkJ CQkJICBSRUlOREVYX1JFTF9DSEVDS19DT05TVFJBSU5UUywKIAkJCQkJCQkJCSAgb3B0aW9ucyB8 CkBAIC0yODI1LDYgKzI4NzUsOSBAQCBSZWluZGV4TXVsdGlwbGVUYWJsZXMoUmVpbmRleFN0bXQg KnN0bXQsIGludCBvcHRpb25zKQogICogaXRzZWxmIHdpbGwgYmUgcmVidWlsdC4gIElmICdyZWxh dGlvbk9pZCcgYmVsb25ncyB0byBhIHBhcnRpdGlvbmVkIHRhYmxlCiAgKiB0aGVuIHdlIGlzc3Vl IGEgd2FybmluZyB0byBtZW50aW9uIHRoZXNlIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KICAqCisg KiAndGFibGVzcGFjZU9pZCcgaXMgdGhlIHRhYmxlc3BhY2Ugd2hlcmUgdGhlIHJlbGF0aW9uJ3Mg aW5kZXhlcyB3aWxsIGJlCisgKiByZWJ1aWx0LgorICoKICAqIFRoZSBsb2NrcyB0YWtlbiBvbiBw YXJlbnQgdGFibGVzIGFuZCBpbnZvbHZlZCBpbmRleGVzIGFyZSBrZXB0IHVudGlsIHRoZQogICog dHJhbnNhY3Rpb24gaXMgY29tbWl0dGVkLCBhdCB3aGljaCBwb2ludCBhIHNlc3Npb24gbG9jayBp cyB0YWtlbiBvbiBlYWNoCiAgKiByZWxhdGlvbi4gIEJvdGggb2YgdGhlc2UgcHJvdGVjdCBhZ2Fp bnN0IGNvbmN1cnJlbnQgc2NoZW1hIGNoYW5nZXMuCkBAIC0yODM5LDcgKzI4OTIsNyBAQCBSZWlu ZGV4TXVsdGlwbGVUYWJsZXMoUmVpbmRleFN0bXQgKnN0bXQsIGludCBvcHRpb25zKQogICogYW55 d2F5LCBhbmQgYSBub24tY29uY3VycmVudCByZWluZGV4IGlzIG1vcmUgZWZmaWNpZW50LgogICov CiBzdGF0aWMgYm9vbAotUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5KE9pZCByZWxhdGlvbk9p ZCwgaW50IG9wdGlvbnMpCitSZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkoT2lkIHJlbGF0aW9u T2lkLCBPaWQgdGFibGVzcGFjZU9pZCwgaW50IG9wdGlvbnMpCiB7CiAJTGlzdAkgICAqaGVhcFJl bGF0aW9uSWRzID0gTklMOwogCUxpc3QJICAgKmluZGV4SWRzID0gTklMOwpAQCAtMzA5MCw2ICsz MTQzLDEzIEBAIFJlaW5kZXhSZWxhdGlvbkNvbmN1cnJlbnRseShPaWQgcmVsYXRpb25PaWQsIGlu dCBvcHRpb25zKQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCisJLyogSXQncyBub3QgYSBzaGFyZWQg Y2F0YWxvZywgc28gcmVmdXNlIHRvIG1vdmUgaXQgdG8gc2hhcmVkIHRhYmxlc3BhY2UgKi8KKwlp ZiAodGFibGVzcGFjZU9pZCA9PSBHTE9CQUxUQUJMRVNQQUNFX09JRCkKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVy cm1zZygiY2Fubm90IG1vdmUgbm9uLXNoYXJlZCByZWxhdGlvbiB0byB0YWJsZXNwYWNlIFwiJXNc IiIsCisJCQkJCSBnZXRfdGFibGVzcGFjZV9uYW1lKHRhYmxlc3BhY2VPaWQpKSkpOworCiAJQXNz ZXJ0KGhlYXBSZWxhdGlvbklkcyAhPSBOSUwpOwogCiAJLyotLS0tLQpAQCAtMzE1NCw2ICszMjE0 LDcgQEAgUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5KE9pZCByZWxhdGlvbk9pZCwgaW50IG9w dGlvbnMpCiAJCS8qIENyZWF0ZSBuZXcgaW5kZXggZGVmaW5pdGlvbiBiYXNlZCBvbiBnaXZlbiBp bmRleCAqLwogCQluZXdJbmRleElkID0gaW5kZXhfY29uY3VycmVudGx5X2NyZWF0ZV9jb3B5KGhl YXBSZWwsCiAJCQkJCQkJCQkJCQkJaW5kZXhJZCwKKwkJCQkJCQkJCQkJCQl0YWJsZXNwYWNlT2lk LAogCQkJCQkJCQkJCQkJCWNvbmN1cnJlbnROYW1lKTsKIAogCQkvKgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwppbmRleCAzZTU3YzdmOWUxLi5jYzVmZDQ2YTFkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwpAQCAtMTg4Niw3ICsxODg2LDcgQEAgRXhlY3V0ZVRydW5jYXRlR3V0cyhMaXN0ICpl eHBsaWNpdF9yZWxzLCBMaXN0ICpyZWxpZHMsIExpc3QgKnJlbGlkc19sb2dnZWQsCiAJCQkvKgog CQkJICogUmVjb25zdHJ1Y3QgdGhlIGluZGV4ZXMgdG8gbWF0Y2gsIGFuZCB3ZSdyZSBkb25lLgog CQkJICovCi0JCQlyZWluZGV4X3JlbGF0aW9uKGhlYXBfcmVsaWQsIFJFSU5ERVhfUkVMX1BST0NF U1NfVE9BU1QsIDApOworCQkJcmVpbmRleF9yZWxhdGlvbihoZWFwX3JlbGlkLCBJbnZhbGlkT2lk LCBSRUlOREVYX1JFTF9QUk9DRVNTX1RPQVNULCAwKTsKIAkJfQogCiAJCXBnc3RhdF9jb3VudF90 cnVuY2F0ZShyZWwpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCAwYjIxYTZjYzUzLi5hNzI3ZTgyZTE1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYwpAQCAtNTI4LDcgKzUyOCw3IEBAIFByb2Nlc3NVdGlsaXR5KFBsYW5uZWRT dG10ICpwc3RtdCwKIAogLyogUGFyc2UgcGFyYW1zIG5vdCBwYXJzZWQgYnkgdGhlIGdyYW1tYXIg Ki8KIHN0YXRpYwotdm9pZCBwYXJzZV9yZWluZGV4X3BhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUs IFJlaW5kZXhTdG10ICpzdG10LCBpbnQgKm9wdGlvbnMpCit2b2lkIHBhcnNlX3JlaW5kZXhfcGFy YW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmVpbmRleFN0bXQgKnN0bXQsIGludCAqb3B0aW9ucywg Y2hhciAqKnRhYmxlc3BhY2UpCiB7CiAJTGlzdENlbGwgKmxjOwogCWZvcmVhY2gobGMsIHN0bXQt PnBhcmFtcykKQEAgLTU0NCw2ICs1NDQsOCBAQCB2b2lkIHBhcnNlX3JlaW5kZXhfcGFyYW1zKFBh cnNlU3RhdGUgKnBzdGF0ZSwgUmVpbmRleFN0bXQgKnN0bXQsIGludCAqb3B0aW9ucykKIAkJfQog CQllbHNlIGlmIChzdHJjbXAob3B0LT5kZWZuYW1lLCAiY29uY3VycmVudGx5IikgPT0gMCkgLy8g R2V0Qm9vbGVhbiA/CiAJCQkqb3B0aW9ucyB8PSBSRUlOREVYT1BUX0NPTkNVUlJFTlQ7CisJCWVs c2UgaWYgKHN0cmNtcChvcHQtPmRlZm5hbWUsICJ0YWJsZXNwYWNlIikgPT0gMCkKKwkJCSp0YWJs ZXNwYWNlID0gZGVmR2V0U3RyaW5nKG9wdCk7CiAJCWVsc2UKIAkJCWVyZXBvcnQoRVJST1IsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKQEAgLTk0Niw4ICs5NDgsOSBAQCBz dGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVkU3RtdCAqcHN0bXQsCiAJCQl7CiAJCQkJUmVp bmRleFN0bXQgKnN0bXQgPSAoUmVpbmRleFN0bXQgKikgcGFyc2V0cmVlOwogCQkJCWludCBvcHRp b25zID0gMDsKKwkJCQljaGFyICp0YWJsZXNwYWNlID0gTlVMTDsKIAotCQkJCXBhcnNlX3JlaW5k ZXhfcGFyYW1zKHBzdGF0ZSwgc3RtdCwgJm9wdGlvbnMpOworCQkJCXBhcnNlX3JlaW5kZXhfcGFy YW1zKHBzdGF0ZSwgc3RtdCwgJm9wdGlvbnMsICZ0YWJsZXNwYWNlKTsKIAkJCQlpZiAob3B0aW9u cyAmIFJFSU5ERVhPUFRfQ09OQ1VSUkVOVCkKIAkJCQkJUHJldmVudEluVHJhbnNhY3Rpb25CbG9j ayhpc1RvcExldmVsLAogCQkJCQkJCQkJCQkgICJSRUlOREVYIENPTkNVUlJFTlRMWSIpOwpAQCAt OTU1LDEwICs5NTgsMTAgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkoUGxhbm5lZFN0bXQgKnBz dG10LAogCQkJCXN3aXRjaCAoc3RtdC0+a2luZCkKIAkJCQl7CiAJCQkJCWNhc2UgUkVJTkRFWF9P QkpFQ1RfSU5ERVg6Ci0JCQkJCQlSZWluZGV4SW5kZXgoc3RtdCwgb3B0aW9ucyk7CisJCQkJCQlS ZWluZGV4SW5kZXgoc3RtdCwgb3B0aW9ucywgdGFibGVzcGFjZSk7CiAJCQkJCQlicmVhazsKIAkJ CQkJY2FzZSBSRUlOREVYX09CSkVDVF9UQUJMRToKLQkJCQkJCVJlaW5kZXhUYWJsZShzdG10LCBv cHRpb25zKTsKKwkJCQkJCVJlaW5kZXhUYWJsZShzdG10LCBvcHRpb25zLCB0YWJsZXNwYWNlKTsK IAkJCQkJCWJyZWFrOwogCQkJCQljYXNlIFJFSU5ERVhfT0JKRUNUX1NDSEVNQToKIAkJCQkJY2Fz ZSBSRUlOREVYX09CSkVDVF9TWVNURU06CkBAIC05NzQsNyArOTc3LDcgQEAgc3RhbmRhcmRfUHJv Y2Vzc1V0aWxpdHkoUGxhbm5lZFN0bXQgKnBzdG10LAogCQkJCQkJCQkJCQkJICAoc3RtdC0+a2lu ZCA9PSBSRUlOREVYX09CSkVDVF9TQ0hFTUEpID8gIlJFSU5ERVggU0NIRU1BIiA6CiAJCQkJCQkJ CQkJCQkgIChzdG10LT5raW5kID09IFJFSU5ERVhfT0JKRUNUX1NZU1RFTSkgPyAiUkVJTkRFWCBT WVNURU0iIDoKIAkJCQkJCQkJCQkJCSAgIlJFSU5ERVggREFUQUJBU0UiKTsKLQkJCQkJCVJlaW5k ZXhNdWx0aXBsZVRhYmxlcyhzdG10LCBvcHRpb25zKTsKKwkJCQkJCVJlaW5kZXhNdWx0aXBsZVRh YmxlcyhzdG10LCBvcHRpb25zLCB0YWJsZXNwYWNlKTsKIAkJCQkJCWJyZWFrOwogCQkJCQlkZWZh dWx0OgogCQkJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLApk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jCmluZGV4IDI0NTkxOWFlYWQuLjVkMmNkODhkZTkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmMKQEAgLTM0ODIsNyArMzQ4Miw5IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0 LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCSAqIG9uZSB3b3JkLCBzbyB0aGUgYWJvdmUgdGVzdCBp cyBjb3JyZWN0LgogCQkgKi8KIAkJaWYgKGVuZHNfd2l0aChwcmV2X3dkLCAnKCcpIHx8IGVuZHNf d2l0aChwcmV2X3dkLCAnLCcpKQotCQkJQ09NUExFVEVfV0lUSCgiQ09OQ1VSUkVOVExZIiwgIlZF UkJPU0UiKTsKKwkJCUNPTVBMRVRFX1dJVEgoIkNPTkNVUlJFTlRMWSIsICJUQUJMRVNQQUNFIiwg IlZFUkJPU0UiKTsKKwkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlRBQkxFU1BBQ0UiKSkKKwkJCUNP TVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzcGFjZXMpOwogCX0KIAog LyogU0VDVVJJVFkgTEFCRUwgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvaW5k ZXguaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvaW5kZXguaAppbmRleCBmNThlODY3NWYzLi5kNWFm NGVhODlkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2luZGV4LmgKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9pbmRleC5oCkBAIC04MCw2ICs4MCw3IEBAIGV4dGVybiBPaWQJaW5k ZXhfY3JlYXRlKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAogZXh0ZXJuIE9pZAlpbmRleF9jb25j dXJyZW50bHlfY3JlYXRlX2NvcHkoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCQkJCQkJCSAg IE9pZCBvbGRJbmRleElkLAorCQkJCQkJCQkJCSAgIE9pZCB0YWJsZXNwYWNlT2lkLAogCQkJCQkJ CQkJCSAgIGNvbnN0IGNoYXIgKm5ld05hbWUpOwogCiBleHRlcm4gdm9pZCBpbmRleF9jb25jdXJy ZW50bHlfYnVpbGQoT2lkIGhlYXBSZWxhdGlvbklkLApAQCAtMTMzLDcgKzEzNCw3IEBAIGV4dGVy biB2b2lkIGluZGV4X3NldF9zdGF0ZV9mbGFncyhPaWQgaW5kZXhJZCwgSW5kZXhTdGF0ZUZsYWdz QWN0aW9uIGFjdGlvbik7CiAKIGV4dGVybiBPaWQJSW5kZXhHZXRSZWxhdGlvbihPaWQgaW5kZXhJ ZCwgYm9vbCBtaXNzaW5nX29rKTsKIAotZXh0ZXJuIHZvaWQgcmVpbmRleF9pbmRleChPaWQgaW5k ZXhJZCwgYm9vbCBza2lwX2NvbnN0cmFpbnRfY2hlY2tzLAorZXh0ZXJuIHZvaWQgcmVpbmRleF9p bmRleChPaWQgaW5kZXhJZCwgT2lkIHRhYmxlc3BhY2VPaWQsIGJvb2wgc2tpcF9jb25zdHJhaW50 X2NoZWNrcywKIAkJCQkJCSAgY2hhciByZWxwZXJzaXN0ZW5jZSwgaW50IG9wdGlvbnMpOwogCiAv KiBGbGFnIGJpdHMgZm9yIHJlaW5kZXhfcmVsYXRpb24oKTogKi8KQEAgLTE0Myw3ICsxNDQsNyBA QCBleHRlcm4gdm9pZCByZWluZGV4X2luZGV4KE9pZCBpbmRleElkLCBib29sIHNraXBfY29uc3Ry YWludF9jaGVja3MsCiAjZGVmaW5lIFJFSU5ERVhfUkVMX0ZPUkNFX0lOREVYRVNfVU5MT0dHRUQJ MHgwOAogI2RlZmluZSBSRUlOREVYX1JFTF9GT1JDRV9JTkRFWEVTX1BFUk1BTkVOVCAweDEwCiAK LWV4dGVybiBib29sIHJlaW5kZXhfcmVsYXRpb24oT2lkIHJlbGlkLCBpbnQgZmxhZ3MsIGludCBv cHRpb25zKTsKK2V4dGVybiBib29sIHJlaW5kZXhfcmVsYXRpb24oT2lkIHJlbGlkLCBPaWQgdGFi bGVzcGFjZU9pZCwgaW50IGZsYWdzLCBpbnQgb3B0aW9ucyk7CiAKIGV4dGVybiBib29sIFJlaW5k ZXhJc1Byb2Nlc3NpbmdIZWFwKE9pZCBoZWFwT2lkKTsKIGV4dGVybiBib29sIFJlaW5kZXhJc1By b2Nlc3NpbmdJbmRleChPaWQgaW5kZXhPaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvZGVmcmVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZyZW0uaAppbmRleCBmZWRi YmMxN2UwLi41OGJkMDI5YmUyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZy ZW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZyZW0uaApAQCAtMzQsOSArMzQsOSBA QCBleHRlcm4gT2JqZWN0QWRkcmVzcyBEZWZpbmVJbmRleChPaWQgcmVsYXRpb25JZCwKIAkJCQkJ CQkJIGJvb2wgY2hlY2tfbm90X2luX3VzZSwKIAkJCQkJCQkJIGJvb2wgc2tpcF9idWlsZCwKIAkJ CQkJCQkJIGJvb2wgcXVpZXQpOwotZXh0ZXJuIHZvaWQgUmVpbmRleEluZGV4KFJlaW5kZXhTdG10 ICpzdG10LCBpbnQgb3B0aW9ucyk7Ci1leHRlcm4gT2lkCVJlaW5kZXhUYWJsZShSZWluZGV4U3Rt dCAqc3RtdCwgaW50IG9wdGlvbnMpOwotZXh0ZXJuIHZvaWQgUmVpbmRleE11bHRpcGxlVGFibGVz KFJlaW5kZXhTdG10ICpzdG10LCBpbnQgb3B0aW9ucyk7CitleHRlcm4gdm9pZCBSZWluZGV4SW5k ZXgoUmVpbmRleFN0bXQgKnN0bXQsIGludCBvcHRpb25zLCBjaGFyICp0YWJsZXNwYWNlKTsKK2V4 dGVybiBPaWQJUmVpbmRleFRhYmxlKFJlaW5kZXhTdG10ICpzdG10LCBpbnQgb3B0aW9ucywgY2hh ciAqdGFibGVzcGFjZSk7CitleHRlcm4gdm9pZCBSZWluZGV4TXVsdGlwbGVUYWJsZXMoUmVpbmRl eFN0bXQgKnN0bXQsIGludCBvcHRpb25zLCBjaGFyICp0YWJsZXNwYWNlKTsKIGV4dGVybiBjaGFy ICptYWtlT2JqZWN0TmFtZShjb25zdCBjaGFyICpuYW1lMSwgY29uc3QgY2hhciAqbmFtZTIsCiAJ CQkJCQkJY29uc3QgY2hhciAqbGFiZWwpOwogZXh0ZXJuIGNoYXIgKkNob29zZVJlbGF0aW9uTmFt ZShjb25zdCBjaGFyICpuYW1lMSwgY29uc3QgY2hhciAqbmFtZTIsCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2lucHV0L3RhYmxlc3BhY2Uuc291cmNlIGIvc3JjL3Rlc3QvcmVncmVzcy9p bnB1dC90YWJsZXNwYWNlLnNvdXJjZQppbmRleCBhNWY2MWEzNWRjLi4yMzBjZjQ2ODMzIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2lucHV0L3RhYmxlc3BhY2Uuc291cmNlCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvaW5wdXQvdGFibGVzcGFjZS5zb3VyY2UKQEAgLTE3LDYgKzE3LDQ4IEBA IEFMVEVSIFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSBTRVQgKHNvbWVfbm9uZXhpc3RlbnRf cGFyYW1ldGVyID0gdHJ1ZSk7ICAtLSBmCiBBTFRFUiBUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3Bh Y2UgUkVTRVQgKHJhbmRvbV9wYWdlX2Nvc3QgPSAyLjApOyAtLSBmYWlsCiBBTFRFUiBUQUJMRVNQ QUNFIHJlZ3Jlc3NfdGJsc3BhY2UgUkVTRVQgKHJhbmRvbV9wYWdlX2Nvc3QsIGVmZmVjdGl2ZV9p b19jb25jdXJyZW5jeSk7IC0tIG9rCiAKKy0tIGNyZWF0ZSB0YWJsZSB0byB0ZXN0IFJFSU5ERVgg d2l0aCBUQUJMRVNQQUNFIGNoYW5nZQorQ1JFQVRFIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVz dF90YmwgKG51bTEgYmlnaW50LCBudW0yIGRvdWJsZSBwcmVjaXNpb24sIG51bTMgZG91YmxlIHBy ZWNpc2lvbik7CitJTlNFUlQgSU5UTyByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsIChudW0xLCBu dW0yLCBudW0zKQorICBTRUxFQ1Qgcm91bmQocmFuZG9tKCkqMTAwKSwgcmFuZG9tKCksIHJhbmRv bSgpKjQyCisgIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwMDAwKSBzKGkpOworQ1JFQVRFIElO REVYIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmxfaWR4IE9OIHJlZ3Jlc3NfdGJsc3BhY2VfdGVz dF90YmwgKG51bTEpOworCistLSBjaGVjayB0aGF0IFJFSU5ERVggd2l0aCBUQUJMRVNQQUNFIGNo YW5nZSBpcyB0cmFuc2FjdGlvbmFsCitCRUdJTjsKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVz c190YmxzcGFjZSkgSU5ERVggcmVncmVzc190YmxzcGFjZV90ZXN0X3RibF9pZHg7CitSRUlOREVY IChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVz dF90Ymw7CitST0xMQkFDSzsKK1NFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MKK1dIRVJFIHJl bHRhYmxlc3BhY2U9KFNFTEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJFIHNwY25hbWU9 J3JlZ3Jlc3NfdGJsc3BhY2UnKTsKKworLS0gZmlyc3QsIGxldCB1cyByZWluZGV4IGFuZCBtb3Zl IHRoZSBlbnRpcmUgZGF0YWJhc2UsIGFmdGVyIHRoYXQgcmV0dXJuIGV2ZXJ5dGhpbmcgYmFjawor UkVJTkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBEQVRBQkFTRSByZWdyZXNzaW9u OyAtLSBvayB3aXRoIHdhcm5pbmcKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCkgREFU QUJBU0UgcmVncmVzc2lvbjsgLS0gb2sgd2l0aCB3YXJuaW5nCitTRUxFQ1QgcmVsbmFtZSBGUk9N IHBnX2NsYXNzCitXSEVSRSByZWx0YWJsZXNwYWNlPShTRUxFQ1Qgb2lkIEZST00gcGdfdGFibGVz cGFjZSBXSEVSRSBzcGNuYW1lPSdyZWdyZXNzX3RibHNwYWNlJyk7CisKKy0tIGNoZWNrIFJFSU5E RVggd2l0aCBUQUJMRVNQQUNFIGNoYW5nZQorUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3Ri bHNwYWNlKSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsX2lkeDsgLS0gb2sKK1JFSU5E RVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgVEFCTEUgcmVncmVzc190YmxzcGFjZV90 ZXN0X3RibDsgLS0gb2sKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgVEFC TEUgcGdfYXV0aGlkOyAtLSBmYWlsCitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3Bh Y2UpIFNZU1RFTSBDT05DVVJSRU5UTFkgcG9zdGdyZXM7IC0tIGZhaWwKK1JFSU5ERVggKFRBQkxF U1BBQ0UgcmVncmVzc190YmxzcGFjZSkgVEFCTEUgQ09OQ1VSUkVOVExZIHBnX2FtOyAtLSBmYWls CitSRUlOREVYIChUQUJMRVNQQUNFIHBnX2dsb2JhbCkgSU5ERVggcmVncmVzc190YmxzcGFjZV90 ZXN0X3RibF9pZHg7IC0tIGZhaWwKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFj ZSkgVEFCTEUgcGdfYW07IC0tIGZhaWwKKworLS0gY2hlY2sgdGhhdCBhbGwgcmVsYXRpb25zIG1v dmVkIHRvIG5ldyB0YWJsZXNwYWNlCitTRUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzCitXSEVS RSByZWx0YWJsZXNwYWNlPShTRUxFQ1Qgb2lkIEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBzcGNu YW1lPSdyZWdyZXNzX3RibHNwYWNlJykKK09SREVSIEJZIHJlbG5hbWU7CisKKy0tIG1vdmUgaW5k ZXhlcyBiYWNrIHRvIHBnX2RlZmF1bHQgdGFibGVzcGFjZQorUkVJTkRFWCAoVEFCTEVTUEFDRSBw Z19kZWZhdWx0KSBUQUJMRSBDT05DVVJSRU5UTFkgcmVncmVzc190YmxzcGFjZV90ZXN0X3RibDsg LS0gb2sKKworLS0gY2hlY2sgdGhhdCBhbGwgcmVsYXRpb25zIG1vdmVkIGJhY2sgdG8gcGdfZGVm YXVsdAorU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVsdGFibGVzcGFjZT0o U0VMRUNUIG9pZCBGUk9NIHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0ncmVncmVzc190Ymxz cGFjZScpOworCiAtLSBjcmVhdGUgYSBzY2hlbWEgd2UgY2FuIHVzZQogQ1JFQVRFIFNDSEVNQSB0 ZXN0c2NoZW1hOwogCkBAIC0yNzksNiArMzIxLDkgQEAgQUxURVIgVEFCTEUgQUxMIElOIFRBQkxF U1BBQ0UgcmVncmVzc190YmxzcGFjZV9yZW5hbWVkIFNFVCBUQUJMRVNQQUNFIHBnX2RlZmF1bHQK IC0tIFNob3VsZCBzdWNjZWVkCiBEUk9QIFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZV9yZW5h bWVkOwogCitEUk9QIElOREVYIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmxfaWR4OworRFJPUCBU QUJMRSByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsOworCiBEUk9QIFNDSEVNQSB0ZXN0c2NoZW1h IENBU0NBREU7CiAKIERST1AgUk9MRSByZWdyZXNzX3RhYmxlc3BhY2VfdXNlcjE7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL291dHB1dC90YWJsZXNwYWNlLnNvdXJjZSBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvb3V0cHV0L3RhYmxlc3BhY2Uuc291cmNlCmluZGV4IDE2MmI1OTFiMzEuLmVjNTc0 MmRmOTggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvb3V0cHV0L3RhYmxlc3BhY2Uuc291 cmNlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvb3V0cHV0L3RhYmxlc3BhY2Uuc291cmNlCkBAIC0y MCw2ICsyMCw2NSBAQCBFUlJPUjogIHVucmVjb2duaXplZCBwYXJhbWV0ZXIgInNvbWVfbm9uZXhp c3RlbnRfcGFyYW1ldGVyIgogQUxURVIgVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlIFJFU0VU IChyYW5kb21fcGFnZV9jb3N0ID0gMi4wKTsgLS0gZmFpbAogRVJST1I6ICBSRVNFVCBtdXN0IG5v dCBpbmNsdWRlIHZhbHVlcyBmb3IgcGFyYW1ldGVycwogQUxURVIgVEFCTEVTUEFDRSByZWdyZXNz X3RibHNwYWNlIFJFU0VUIChyYW5kb21fcGFnZV9jb3N0LCBlZmZlY3RpdmVfaW9fY29uY3VycmVu Y3kpOyAtLSBvaworLS0gY3JlYXRlIHRhYmxlIHRvIHRlc3QgUkVJTkRFWCB3aXRoIFRBQkxFU1BB Q0UgY2hhbmdlCitDUkVBVEUgVEFCTEUgcmVncmVzc190YmxzcGFjZV90ZXN0X3RibCAobnVtMSBi aWdpbnQsIG51bTIgZG91YmxlIHByZWNpc2lvbiwgbnVtMyBkb3VibGUgcHJlY2lzaW9uKTsKK0lO U0VSVCBJTlRPIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmwgKG51bTEsIG51bTIsIG51bTMpCisg IFNFTEVDVCByb3VuZChyYW5kb20oKSoxMDApLCByYW5kb20oKSwgcmFuZG9tKCkqNDIKKyAgRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAwMDApIHMoaSk7CitDUkVBVEUgSU5ERVggcmVncmVzc190 YmxzcGFjZV90ZXN0X3RibF9pZHggT04gcmVncmVzc190YmxzcGFjZV90ZXN0X3RibCAobnVtMSk7 CistLSBjaGVjayB0aGF0IFJFSU5ERVggd2l0aCBUQUJMRVNQQUNFIGNoYW5nZSBpcyB0cmFuc2Fj dGlvbmFsCitCRUdJTjsKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgSU5E RVggcmVncmVzc190YmxzcGFjZV90ZXN0X3RibF9pZHg7CitSRUlOREVYIChUQUJMRVNQQUNFIHJl Z3Jlc3NfdGJsc3BhY2UpIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90Ymw7CitST0xMQkFD SzsKK1NFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MKK1dIRVJFIHJlbHRhYmxlc3BhY2U9KFNF TEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3NfdGJsc3Bh Y2UnKTsKKyByZWxuYW1lIAorLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBmaXJzdCwgbGV0IHVz IHJlaW5kZXggYW5kIG1vdmUgdGhlIGVudGlyZSBkYXRhYmFzZSwgYWZ0ZXIgdGhhdCByZXR1cm4g ZXZlcnl0aGluZyBiYWNrCitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIERB VEFCQVNFIHJlZ3Jlc3Npb247IC0tIG9rIHdpdGggd2FybmluZworV0FSTklORzogIGNhbm5vdCBj aGFuZ2UgdGFibGVzcGFjZSBvZiBpbmRleGVzIG9uIHN5c3RlbSByZWxhdGlvbnMsIHNraXBwaW5n IGFsbAorUkVJTkRFWCAoVEFCTEVTUEFDRSBwZ19kZWZhdWx0KSBEQVRBQkFTRSByZWdyZXNzaW9u OyAtLSBvayB3aXRoIHdhcm5pbmcKK1dBUk5JTkc6ICBjYW5ub3QgY2hhbmdlIHRhYmxlc3BhY2Ug b2YgaW5kZXhlcyBvbiBzeXN0ZW0gcmVsYXRpb25zLCBza2lwcGluZyBhbGwKK1NFTEVDVCByZWxu YW1lIEZST00gcGdfY2xhc3MKK1dIRVJFIHJlbHRhYmxlc3BhY2U9KFNFTEVDVCBvaWQgRlJPTSBw Z190YWJsZXNwYWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3NfdGJsc3BhY2UnKTsKKyByZWxuYW1l IAorLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBjaGVjayBSRUlOREVYIHdpdGggVEFCTEVTUEFD RSBjaGFuZ2UKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgSU5ERVggcmVn cmVzc190YmxzcGFjZV90ZXN0X3RibF9pZHg7IC0tIG9rCitSRUlOREVYIChUQUJMRVNQQUNFIHJl Z3Jlc3NfdGJsc3BhY2UpIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90Ymw7IC0tIG9rCitS RUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxFIHBnX2F1dGhpZDsgLS0g ZmFpbAorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZDogInBnX2F1dGhpZF9yb2xuYW1lX2luZGV4 IiBpcyBhIHN5c3RlbSBjYXRhbG9nCitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3Bh Y2UpIFNZU1RFTSBDT05DVVJSRU5UTFkgcG9zdGdyZXM7IC0tIGZhaWwKK0VSUk9SOiAgY2Fubm90 IHJlaW5kZXggc3lzdGVtIGNhdGFsb2dzIGNvbmN1cnJlbnRseQorUkVJTkRFWCAoVEFCTEVTUEFD RSByZWdyZXNzX3RibHNwYWNlKSBUQUJMRSBDT05DVVJSRU5UTFkgcGdfYW07IC0tIGZhaWwKK0VS Uk9SOiAgY2Fubm90IHJlaW5kZXggc3lzdGVtIGNhdGFsb2dzIGNvbmN1cnJlbnRseQorUkVJTkRF WCAoVEFCTEVTUEFDRSBwZ19nbG9iYWwpIElOREVYIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90Ymxf aWR4OyAtLSBmYWlsCitFUlJPUjogIGNhbm5vdCBtb3ZlIG5vbi1zaGFyZWQgcmVsYXRpb24gdG8g dGFibGVzcGFjZSAicGdfZ2xvYmFsIgorUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNw YWNlKSBUQUJMRSBwZ19hbTsgLS0gZmFpbAorRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZDogInBn X2FtX25hbWVfaW5kZXgiIGlzIGEgc3lzdGVtIGNhdGFsb2cKKy0tIGNoZWNrIHRoYXQgYWxsIHJl bGF0aW9ucyBtb3ZlZCB0byBuZXcgdGFibGVzcGFjZQorU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19j bGFzcworV0hFUkUgcmVsdGFibGVzcGFjZT0oU0VMRUNUIG9pZCBGUk9NIHBnX3RhYmxlc3BhY2Ug V0hFUkUgc3BjbmFtZT0ncmVncmVzc190YmxzcGFjZScpCitPUkRFUiBCWSByZWxuYW1lOworICAg ICAgICAgICAgcmVsbmFtZSAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmxfaWR4CisoMSByb3cpCisKKy0tIG1vdmUg aW5kZXhlcyBiYWNrIHRvIHBnX2RlZmF1bHQgdGFibGVzcGFjZQorUkVJTkRFWCAoVEFCTEVTUEFD RSBwZ19kZWZhdWx0KSBUQUJMRSBDT05DVVJSRU5UTFkgcmVncmVzc190YmxzcGFjZV90ZXN0X3Ri bDsgLS0gb2sKKy0tIGNoZWNrIHRoYXQgYWxsIHJlbGF0aW9ucyBtb3ZlZCBiYWNrIHRvIHBnX2Rl ZmF1bHQKK1NFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MKK1dIRVJFIHJlbHRhYmxlc3BhY2U9 KFNFTEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3NfdGJs c3BhY2UnKTsKKyByZWxuYW1lIAorLS0tLS0tLS0tCisoMCByb3dzKQorCiAtLSBjcmVhdGUgYSBz Y2hlbWEgd2UgY2FuIHVzZQogQ1JFQVRFIFNDSEVNQSB0ZXN0c2NoZW1hOwogLS0gdHJ5IGEgdGFi bGUKQEAgLTczNiw2ICs3OTUsOCBAQCBBTFRFUiBUQUJMRSBBTEwgSU4gVEFCTEVTUEFDRSByZWdy ZXNzX3RibHNwYWNlX3JlbmFtZWQgU0VUIFRBQkxFU1BBQ0UgcGdfZGVmYXVsdAogTk9USUNFOiAg bm8gbWF0Y2hpbmcgcmVsYXRpb25zIGluIHRhYmxlc3BhY2UgInJlZ3Jlc3NfdGJsc3BhY2VfcmVu YW1lZCIgZm91bmQKIC0tIFNob3VsZCBzdWNjZWVkCiBEUk9QIFRBQkxFU1BBQ0UgcmVncmVzc190 YmxzcGFjZV9yZW5hbWVkOworRFJPUCBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsX2lk eDsKK0RST1AgVEFCTEUgcmVncmVzc190YmxzcGFjZV90ZXN0X3RibDsKIERST1AgU0NIRU1BIHRl c3RzY2hlbWEgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gNiBvdGhlciBvYmpl Y3RzCiBERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHRlc3RzY2hlbWEuZm9vCi0tIAoy LjE5LjEKCg== --=_2649d5b7d06298c9fe864b2c58503088 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v24-0003-Deprecate-ReindexStmt-concurrent-and-options.patch Content-Disposition: attachment; filename=v24-0003-Deprecate-ReindexStmt-concurrent-and-options.patch; size=16330 RnJvbSBmOGM5YTkzOTE4YzU3ZTAyNzZhNGMxNDA4YzhlYzM1MTk3MjEyMjY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdXN0aW4gUHJ5emJ5IDxwcnl6YnlqQHRlbHNhc29mdC5jb20+ CkRhdGU6IFR1ZSwgMTEgQXVnIDIwMjAgMDE6NDE6MDkgLTA1MDAKU3ViamVjdDogW1BBVENIIHYy NCAzLzddIERlcHJlY2F0ZSBSZWluZGV4U3RtdC0+Y29uY3VycmVudCBhbmQgb3B0aW9ucwoKLi5z aW5jZSBwYXJlbnRoZXNpemVkIHN5bnRheCBpcyB0aGUgbW9kZXJuIHN5bnRheCwgcmVtb3ZlIHRo ZSBzcGVjaWFsIGZpZWxkIGZvcgpoYW5kbGluZyBub25wYXJlbnRoZXNpemVkLCBib29sZWFuLW9u bHkgb3B0aW9uLgoKU2hvdWxkIGJlIHNxdWlzaGVkIHdpdGggcHJldmlvdXMgY29tbWl0LgotLS0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIuYyAgIHwgMTEgKysrKy0tLS0tCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyB8IDM4ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiBzcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYyAgICB8ICAzIC0tLQogc3JjL2Jh Y2tlbmQvbm9kZXMvZXF1YWxmdW5jcy5jICAgfCAgMyAtLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgICAgICAgIHwgMzEgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jICAgICAgIHwgMjEgKysrKysrKysrLS0tLS0tLS0tCiBzcmMvaW5jbHVk ZS9jb21tYW5kcy9kZWZyZW0uaCAgICB8ICA2ICsrLS0tCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggICB8ICA4ICsrKy0tLS0KIDggZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygr KSwgNjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY2x1 c3Rlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY2x1c3Rlci5jCmluZGV4IGE0MmRmZTk4ZjQu LjRhMzY3ODgzMWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMKQEAgLTEwNSw3ICsxMDUsOCBAQCBz dGF0aWMgTGlzdCAqZ2V0X3RhYmxlc190b19jbHVzdGVyKE1lbW9yeUNvbnRleHQgY2x1c3Rlcl9j b250ZXh0KTsKIHZvaWQKIGNsdXN0ZXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDbHVzdGVyU3RtdCAq c3RtdCwgYm9vbCBpc1RvcExldmVsKQogewotCUxpc3RDZWxsICpsYzsKKwlMaXN0Q2VsbAkqbGM7 CisJaW50CQkJb3B0aW9ucyA9IDA7CiAKIAkvKiBQYXJzZSBsaXN0IG9mIGdlbmVyaWMgcGFyYW1l dGVycyBub3QgaGFuZGxlZCBieSB0aGUgcGFyc2VyICovCiAJZm9yZWFjaChsYywgc3RtdC0+cGFy YW1zKQpAQCAtMTE0LDkgKzExNSw5IEBAIGNsdXN0ZXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDbHVz dGVyU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCiAJCWlmIChzdHJjbXAob3B0LT5kZWZu YW1lLCAidmVyYm9zZSIpID09IDApCiAJCQlpZiAoZGVmR2V0Qm9vbGVhbihvcHQpKQotCQkJCXN0 bXQtPm9wdGlvbnMgfD0gQ0xVT1BUX1ZFUkJPU0U7CisJCQkJb3B0aW9ucyB8PSBDTFVPUFRfVkVS Qk9TRTsKIAkJCWVsc2UKLQkJCQlzdG10LT5vcHRpb25zICY9IH5DTFVPUFRfVkVSQk9TRTsKKwkJ CQlvcHRpb25zICY9IH5DTFVPUFRfVkVSQk9TRTsKIAkJZWxzZQogCQkJZXJlcG9ydChFUlJPUiwK IAkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtMTk0LDcgKzE5NSw3IEBA IGNsdXN0ZXIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDbHVzdGVyU3RtdCAqc3RtdCwgYm9vbCBpc1Rv cExldmVsKQogCQl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CiAKIAkJLyogRG8gdGhlIGpvYi4g Ki8KLQkJY2x1c3Rlcl9yZWwodGFibGVPaWQsIGluZGV4T2lkLCBzdG10LT5vcHRpb25zLCBpc1Rv cExldmVsKTsKKwkJY2x1c3Rlcl9yZWwodGFibGVPaWQsIGluZGV4T2lkLCBvcHRpb25zLCBpc1Rv cExldmVsKTsKIAl9CiAJZWxzZQogCXsKQEAgLTI0Myw3ICsyNDQsNyBAQCBjbHVzdGVyKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ2x1c3RlclN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAkJCVB1 c2hBY3RpdmVTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOwogCQkJLyogRG8gdGhl IGpvYi4gKi8KIAkJCWNsdXN0ZXJfcmVsKHJ2dGMtPnRhYmxlT2lkLCBydnRjLT5pbmRleE9pZCwK LQkJCQkJCXN0bXQtPm9wdGlvbnMgfCBDTFVPUFRfUkVDSEVDSywKKwkJCQkJCW9wdGlvbnMgfCBD TFVPUFRfUkVDSEVDSywKIAkJCQkJCWlzVG9wTGV2ZWwpOwogCQkJUG9wQWN0aXZlU25hcHNob3Qo KTsKIAkJCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMu YwppbmRleCBlODM4M2ZlZWE3Li45YzliN2U3MmE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMu YwpAQCAtMjQyMCw3ICsyNDIwLDcgQEAgQ2hvb3NlSW5kZXhDb2x1bW5OYW1lcyhMaXN0ICppbmRl eEVsZW1zKQogICoJCVJlY3JlYXRlIGEgc3BlY2lmaWMgaW5kZXguCiAgKi8KIHZvaWQKLVJlaW5k ZXhJbmRleChSZWluZGV4U3RtdCAqc3RtdCkKK1JlaW5kZXhJbmRleChSZWluZGV4U3RtdCAqc3Rt dCwgaW50IG9wdGlvbnMpCiB7CiAJUmFuZ2VWYXIgKmluZGV4UmVsYXRpb24gPSBzdG10LT5yZWxh dGlvbjsKIAlzdHJ1Y3QgUmVpbmRleEluZGV4Q2FsbGJhY2tTdGF0ZSBzdGF0ZTsKQEAgLTI0Mzgs MTAgKzI0MzgsMTAgQEAgUmVpbmRleEluZGV4KFJlaW5kZXhTdG10ICpzdG10KQogCSAqIHVwZ3Jh ZGUgdGhlIGxvY2ssIGJ1dCB0aGF0J3MgT0ssIGJlY2F1c2Ugb3RoZXIgc2Vzc2lvbnMgY2FuJ3Qg aG9sZAogCSAqIGxvY2tzIG9uIG91ciB0ZW1wb3JhcnkgdGFibGUuCiAJICovCi0Jc3RhdGUuY29u Y3VycmVudCA9IHN0bXQtPmNvbmN1cnJlbnQ7CisJc3RhdGUuY29uY3VycmVudCA9IChvcHRpb25z ICYgUkVJTkRFWE9QVF9DT05DVVJSRU5UKTsKIAlzdGF0ZS5sb2NrZWRfdGFibGVfb2lkID0gSW52 YWxpZE9pZDsKIAlpbmRPaWQgPSBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoaW5kZXhSZWxhdGlv biwKLQkJCQkJCQkJCSAgc3RtdC0+Y29uY3VycmVudCA/IFNoYXJlVXBkYXRlRXhjbHVzaXZlTG9j ayA6IEFjY2Vzc0V4Y2x1c2l2ZUxvY2ssCisJCQkJCQkJCQkgIHN0YXRlLmNvbmN1cnJlbnQgPyBT aGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sgOiBBY2Nlc3NFeGNsdXNpdmVMb2NrLAogCQkJCQkJCQkJ ICAwLAogCQkJCQkJCQkJICBSYW5nZVZhckNhbGxiYWNrRm9yUmVpbmRleEluZGV4LAogCQkJCQkJ CQkJICAmc3RhdGUpOwpAQCAtMjQ2MSwxMSArMjQ2MSwxMSBAQCBSZWluZGV4SW5kZXgoUmVpbmRl eFN0bXQgKnN0bXQpCiAJcGVyc2lzdGVuY2UgPSBpcmVsLT5yZF9yZWwtPnJlbHBlcnNpc3RlbmNl OwogCWluZGV4X2Nsb3NlKGlyZWwsIE5vTG9jayk7CiAKLQlpZiAoc3RtdC0+Y29uY3VycmVudCAm JiBwZXJzaXN0ZW5jZSAhPSBSRUxQRVJTSVNURU5DRV9URU1QKQotCQlSZWluZGV4UmVsYXRpb25D b25jdXJyZW50bHkoaW5kT2lkLCBzdG10LT5vcHRpb25zKTsKKwlpZiAoc3RhdGUuY29uY3VycmVu dCAmJiBwZXJzaXN0ZW5jZSAhPSBSRUxQRVJTSVNURU5DRV9URU1QKQorCQlSZWluZGV4UmVsYXRp b25Db25jdXJyZW50bHkoaW5kT2lkLCBvcHRpb25zKTsKIAllbHNlCiAJCXJlaW5kZXhfaW5kZXgo aW5kT2lkLCBmYWxzZSwgcGVyc2lzdGVuY2UsCi0JCQkJCSAgc3RtdC0+b3B0aW9ucyB8IFJFSU5E RVhPUFRfUkVQT1JUX1BST0dSRVNTKTsKKwkJCQkJICBvcHRpb25zIHwgUkVJTkRFWE9QVF9SRVBP UlRfUFJPR1JFU1MpOwogfQogCiAvKgpAQCAtMjU0MywxMSArMjU0MywxMiBAQCBSYW5nZVZhckNh bGxiYWNrRm9yUmVpbmRleEluZGV4KGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwKICAqCQlSZWNy ZWF0ZSBhbGwgaW5kZXhlcyBvZiBhIHRhYmxlIChhbmQgb2YgaXRzIHRvYXN0IHRhYmxlLCBpZiBh bnkpCiAgKi8KIE9pZAotUmVpbmRleFRhYmxlKFJlaW5kZXhTdG10ICpzdG10KQorUmVpbmRleFRh YmxlKFJlaW5kZXhTdG10ICpzdG10LCBpbnQgb3B0aW9ucykKIHsKIAlSYW5nZVZhciAqcmVsYXRp b24gPSBzdG10LT5yZWxhdGlvbjsKIAlPaWQJCQloZWFwT2lkOwogCWJvb2wJCXJlc3VsdDsKKwli b29sCQljb25jdXJyZW50ID0gKG9wdGlvbnMgJiBSRUlOREVYT1BUX0NPTkNVUlJFTlQpOwogCiAJ LyoKIAkgKiBUaGUgbG9jayBsZXZlbCB1c2VkIGhlcmUgc2hvdWxkIG1hdGNoIHJlaW5kZXhfcmVs YXRpb24oKS4KQEAgLTI1NTgsMTMgKzI1NTksMTMgQEAgUmVpbmRleFRhYmxlKFJlaW5kZXhTdG10 ICpzdG10KQogCSAqIGxvY2tzIG9uIG91ciB0ZW1wb3JhcnkgdGFibGUuCiAJICovCiAJaGVhcE9p ZCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChyZWxhdGlvbiwKLQkJCQkJCQkJCSAgIHN0bXQt PmNvbmN1cnJlbnQgPyBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sgOiBTaGFyZUxvY2ssCisJCQkJ CQkJCQkgICBjb25jdXJyZW50ID8gU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrIDogU2hhcmVMb2Nr LAogCQkJCQkJCQkJICAgMCwKIAkJCQkJCQkJCSAgIFJhbmdlVmFyQ2FsbGJhY2tPd25zVGFibGUs IE5VTEwpOwogCi0JaWYgKHN0bXQtPmNvbmN1cnJlbnQgJiYgZ2V0X3JlbF9wZXJzaXN0ZW5jZSho ZWFwT2lkKSAhPSBSRUxQRVJTSVNURU5DRV9URU1QKQorCWlmIChjb25jdXJyZW50ICYmIGdldF9y ZWxfcGVyc2lzdGVuY2UoaGVhcE9pZCkgIT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKIAl7Ci0JCXJl c3VsdCA9IFJlaW5kZXhSZWxhdGlvbkNvbmN1cnJlbnRseShoZWFwT2lkLCBzdG10LT5vcHRpb25z KTsKKwkJcmVzdWx0ID0gUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5KGhlYXBPaWQsIG9wdGlv bnMpOwogCiAJCWlmICghcmVzdWx0KQogCQkJZXJlcG9ydChOT1RJQ0UsCkBAIC0yNTc2LDcgKzI1 NzcsNyBAQCBSZWluZGV4VGFibGUoUmVpbmRleFN0bXQgKnN0bXQpCiAJCXJlc3VsdCA9IHJlaW5k ZXhfcmVsYXRpb24oaGVhcE9pZCwKIAkJCQkJCQkJICBSRUlOREVYX1JFTF9QUk9DRVNTX1RPQVNU IHwKIAkJCQkJCQkJICBSRUlOREVYX1JFTF9DSEVDS19DT05TVFJBSU5UUywKLQkJCQkJCQkJICBz dG10LT5vcHRpb25zIHwgUkVJTkRFWE9QVF9SRVBPUlRfUFJPR1JFU1MpOworCQkJCQkJCQkgIG9w dGlvbnMgfCBSRUlOREVYT1BUX1JFUE9SVF9QUk9HUkVTUyk7CiAJCWlmICghcmVzdWx0KQogCQkJ ZXJlcG9ydChOT1RJQ0UsCiAJCQkJCShlcnJtc2coInRhYmxlIFwiJXNcIiBoYXMgbm8gaW5kZXhl cyB0byByZWluZGV4IiwKQEAgLTI1OTUsNyArMjU5Niw3IEBAIFJlaW5kZXhUYWJsZShSZWluZGV4 U3RtdCAqc3RtdCkKICAqIFRoYXQgbWVhbnMgdGhpcyBtdXN0IG5vdCBiZSBjYWxsZWQgd2l0aGlu IGEgdXNlciB0cmFuc2FjdGlvbiBibG9jayEKICAqLwogdm9pZAotUmVpbmRleE11bHRpcGxlVGFi bGVzKFJlaW5kZXhTdG10ICpzdG10KQorUmVpbmRleE11bHRpcGxlVGFibGVzKFJlaW5kZXhTdG10 ICpzdG10LCBpbnQgb3B0aW9ucykKIHsKIAljb25zdCBjaGFyICpvYmplY3ROYW1lID0gc3RtdC0+ bmFtZTsKIAlSZWluZGV4T2JqZWN0VHlwZSBvYmplY3RLaW5kID0gc3RtdC0+a2luZDsKQEAgLTI2 MTAsMTMgKzI2MTEsMTQgQEAgUmVpbmRleE11bHRpcGxlVGFibGVzKFJlaW5kZXhTdG10ICpzdG10 KQogCUxpc3RDZWxsICAgKmw7CiAJaW50CQkJbnVtX2tleXM7CiAJYm9vbAkJY29uY3VycmVudF93 YXJuaW5nID0gZmFsc2U7CisJYm9vbAkJY29uY3VycmVudCA9IChvcHRpb25zICYgUkVJTkRFWE9Q VF9DT05DVVJSRU5UKTsKIAogCUFzc2VydEFyZyhvYmplY3ROYW1lKTsKIAlBc3NlcnQob2JqZWN0 S2luZCA9PSBSRUlOREVYX09CSkVDVF9TQ0hFTUEgfHwKIAkJICAgb2JqZWN0S2luZCA9PSBSRUlO REVYX09CSkVDVF9TWVNURU0gfHwKIAkJICAgb2JqZWN0S2luZCA9PSBSRUlOREVYX09CSkVDVF9E QVRBQkFTRSk7CiAKLQlpZiAob2JqZWN0S2luZCA9PSBSRUlOREVYX09CSkVDVF9TWVNURU0gJiYg c3RtdC0+Y29uY3VycmVudCkKKwlpZiAob2JqZWN0S2luZCA9PSBSRUlOREVYX09CSkVDVF9TWVNU RU0gJiYgY29uY3VycmVudCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygiY2Fubm90IHJlaW5kZXggc3lz dGVtIGNhdGFsb2dzIGNvbmN1cnJlbnRseSIpKSk7CkBAIC0yNzI3LDcgKzI3MjksNyBAQCBSZWlu ZGV4TXVsdGlwbGVUYWJsZXMoUmVpbmRleFN0bXQgKnN0bXQpCiAJCSAqIFNraXAgc3lzdGVtIHRh Ymxlcywgc2luY2UgaW5kZXhfY3JlYXRlKCkgd291bGQgcmVqZWN0IGluZGV4aW5nIHRoZW0KIAkJ ICogY29uY3VycmVudGx5IChhbmQgaXQgd291bGQgbGlrZWx5IGZhaWwgaWYgd2UgdHJpZWQpLgog CQkgKi8KLQkJaWYgKHN0bXQtPmNvbmN1cnJlbnQgJiYKKwkJaWYgKGNvbmN1cnJlbnQgJiYKIAkJ CUlzQ2F0YWxvZ1JlbGF0aW9uT2lkKHJlbGlkKSkKIAkJewogCQkJaWYgKCFjb25jdXJyZW50X3dh cm5pbmcpCkBAIC0yNzc3LDEwICsyNzc5LDEwIEBAIFJlaW5kZXhNdWx0aXBsZVRhYmxlcyhSZWlu ZGV4U3RtdCAqc3RtdCkKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJaWYgKHN0bXQtPmNvbmN1cnJl bnQgJiYgZ2V0X3JlbF9wZXJzaXN0ZW5jZShyZWxpZCkgIT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkK KwkJaWYgKGNvbmN1cnJlbnQgJiYgZ2V0X3JlbF9wZXJzaXN0ZW5jZShyZWxpZCkgIT0gUkVMUEVS U0lTVEVOQ0VfVEVNUCkKIAkJewogCQkJKHZvaWQpIFJlaW5kZXhSZWxhdGlvbkNvbmN1cnJlbnRs eShyZWxpZCwKLQkJCQkJCQkJCQkJICAgc3RtdC0+b3B0aW9ucyB8CisJCQkJCQkJCQkJCSAgIG9w dGlvbnMgfAogCQkJCQkJCQkJCQkgICBSRUlOREVYT1BUX01JU1NJTkdfT0spOwogCQkJLyogUmVp bmRleFJlbGF0aW9uQ29uY3VycmVudGx5KCkgZG9lcyB0aGUgdmVyYm9zZSBvdXRwdXQgKi8KIAkJ fQpAQCAtMjc5MSwxMSArMjc5MywxMSBAQCBSZWluZGV4TXVsdGlwbGVUYWJsZXMoUmVpbmRleFN0 bXQgKnN0bXQpCiAJCQlyZXN1bHQgPSByZWluZGV4X3JlbGF0aW9uKHJlbGlkLAogCQkJCQkJCQkJ ICBSRUlOREVYX1JFTF9QUk9DRVNTX1RPQVNUIHwKIAkJCQkJCQkJCSAgUkVJTkRFWF9SRUxfQ0hF Q0tfQ09OU1RSQUlOVFMsCi0JCQkJCQkJCQkgIHN0bXQtPm9wdGlvbnMgfAorCQkJCQkJCQkJICBv cHRpb25zIHwKIAkJCQkJCQkJCSAgUkVJTkRFWE9QVF9SRVBPUlRfUFJPR1JFU1MgfAogCQkJCQkJ CQkJICBSRUlOREVYT1BUX01JU1NJTkdfT0spOwogCi0JCQlpZiAocmVzdWx0ICYmIChzdG10LT5v cHRpb25zICYgUkVJTkRFWE9QVF9WRVJCT1NFKSkKKwkJCWlmIChyZXN1bHQgJiYgKG9wdGlvbnMg JiBSRUlOREVYT1BUX1ZFUkJPU0UpKQogCQkJCWVyZXBvcnQoSU5GTywKIAkJCQkJCShlcnJtc2co InRhYmxlIFwiJXMuJXNcIiB3YXMgcmVpbmRleGVkIiwKIAkJCQkJCQkJZ2V0X25hbWVzcGFjZV9u YW1lKGdldF9yZWxfbmFtZXNwYWNlKHJlbGlkKSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9u b2Rlcy9jb3B5ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL2NvcHlmdW5jcy5jCmluZGV4IDcx NTQ4YWNjMGMuLjJhNzNmMWNiNmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL2NvcHlm dW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL2NvcHlmdW5jcy5jCkBAIC0zMzU3LDcgKzMz NTcsNiBAQCBfY29weUNsdXN0ZXJTdG10KGNvbnN0IENsdXN0ZXJTdG10ICpmcm9tKQogCiAJQ09Q WV9OT0RFX0ZJRUxEKHJlbGF0aW9uKTsKIAlDT1BZX1NUUklOR19GSUVMRChpbmRleG5hbWUpOwot CUNPUFlfU0NBTEFSX0ZJRUxEKG9wdGlvbnMpOwogCUNPUFlfTk9ERV9GSUVMRChwYXJhbXMpOwog CiAJcmV0dXJuIG5ld25vZGU7CkBAIC00NDUwLDkgKzQ0NDksNyBAQCBfY29weVJlaW5kZXhTdG10 KGNvbnN0IFJlaW5kZXhTdG10ICpmcm9tKQogCUNPUFlfU0NBTEFSX0ZJRUxEKGtpbmQpOwogCUNP UFlfTk9ERV9GSUVMRChyZWxhdGlvbik7CiAJQ09QWV9TVFJJTkdfRklFTEQobmFtZSk7Ci0JQ09Q WV9TQ0FMQVJfRklFTEQob3B0aW9ucyk7CiAJQ09QWV9OT0RFX0ZJRUxEKHBhcmFtcyk7Ci0JQ09Q WV9TQ0FMQVJfRklFTEQoY29uY3VycmVudCk7CiAKIAlyZXR1cm4gbmV3bm9kZTsKIH0KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL2VxdWFsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVz L2VxdWFsZnVuY3MuYwppbmRleCBkZTQ4YTQyY2RkLi4zYzZjNDBhNTBkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvZXF1 YWxmdW5jcy5jCkBAIC0xMjE2LDcgKzEyMTYsNiBAQCBfZXF1YWxDbHVzdGVyU3RtdChjb25zdCBD bHVzdGVyU3RtdCAqYSwgY29uc3QgQ2x1c3RlclN0bXQgKmIpCiB7CiAJQ09NUEFSRV9OT0RFX0ZJ RUxEKHJlbGF0aW9uKTsKIAlDT01QQVJFX1NUUklOR19GSUVMRChpbmRleG5hbWUpOwotCUNPTVBB UkVfU0NBTEFSX0ZJRUxEKG9wdGlvbnMpOwogCUNPTVBBUkVfTk9ERV9GSUVMRChwYXJhbXMpOwog CiAJcmV0dXJuIHRydWU7CkBAIC0yMTM1LDkgKzIxMzQsNyBAQCBfZXF1YWxSZWluZGV4U3RtdChj b25zdCBSZWluZGV4U3RtdCAqYSwgY29uc3QgUmVpbmRleFN0bXQgKmIpCiAJQ09NUEFSRV9TQ0FM QVJfRklFTEQoa2luZCk7CiAJQ09NUEFSRV9OT0RFX0ZJRUxEKHJlbGF0aW9uKTsKIAlDT01QQVJF X1NUUklOR19GSUVMRChuYW1lKTsKLQlDT01QQVJFX1NDQUxBUl9GSUVMRChvcHRpb25zKTsKIAlD T01QQVJFX05PREVfRklFTEQocGFyYW1zKTsKLQlDT01QQVJFX1NDQUxBUl9GSUVMRChjb25jdXJy ZW50KTsKIAogCXJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYzViZTk0YWY0NS4uNTI1 ZGZiODEzMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC04MTc2LDQwICs4MTc2LDQ4IEBAIFJlaW5kZXhTdG10 OgogCQkJCXsKIAkJCQkJUmVpbmRleFN0bXQgKm4gPSBtYWtlTm9kZShSZWluZGV4U3RtdCk7CiAJ CQkJCW4tPmtpbmQgPSAkMjsKLQkJCQkJbi0+Y29uY3VycmVudCA9ICQzOwogCQkJCQluLT5yZWxh dGlvbiA9ICQ0OwogCQkJCQluLT5uYW1lID0gTlVMTDsKIAkJCQkJbi0+cGFyYW1zID0gTklMOwor CQkJCQlpZiAoJDMpCisJCQkJCQluLT5wYXJhbXMgPSBsYXBwZW5kKG4tPnBhcmFtcywKKwkJCQkJ CQkJbWFrZURlZkVsZW0oImNvbmN1cnJlbnRseSIsIChOb2RlICopbWFrZVN0cmluZygiY29uY3Vy cmVudGx5IiksIEAzKSk7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0KIAkJCXwgUkVJTkRF WCByZWluZGV4X3RhcmdldF9tdWx0aXRhYmxlIG9wdF9jb25jdXJyZW50bHkgbmFtZQogCQkJCXsK IAkJCQkJUmVpbmRleFN0bXQgKm4gPSBtYWtlTm9kZShSZWluZGV4U3RtdCk7CiAJCQkJCW4tPmtp bmQgPSAkMjsKLQkJCQkJbi0+Y29uY3VycmVudCA9ICQzOwogCQkJCQluLT5uYW1lID0gJDQ7CiAJ CQkJCW4tPnJlbGF0aW9uID0gTlVMTDsKIAkJCQkJbi0+cGFyYW1zID0gTklMOworCQkJCQlpZiAo JDMpCisJCQkJCQluLT5wYXJhbXMgPSBsYXBwZW5kKG4tPnBhcmFtcywKKwkJCQkJCQkJbWFrZURl ZkVsZW0oImNvbmN1cnJlbnRseSIsIChOb2RlICopbWFrZVN0cmluZygiY29uY3VycmVudGx5Iiks IEAzKSk7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0KIAkJCXwgUkVJTkRFWCAnKCcgdmFj X2FuYWx5emVfb3B0aW9uX2xpc3QgJyknIHJlaW5kZXhfdGFyZ2V0X3R5cGUgb3B0X2NvbmN1cnJl bnRseSBxdWFsaWZpZWRfbmFtZQogCQkJCXsKIAkJCQkJUmVpbmRleFN0bXQgKm4gPSBtYWtlTm9k ZShSZWluZGV4U3RtdCk7CiAJCQkJCW4tPmtpbmQgPSAkNTsKLQkJCQkJbi0+Y29uY3VycmVudCA9 ICQ2OwogCQkJCQluLT5yZWxhdGlvbiA9ICQ3OwogCQkJCQluLT5uYW1lID0gTlVMTDsKIAkJCQkJ bi0+cGFyYW1zID0gJDM7CisJCQkJCWlmICgkNikKKwkJCQkJCW4tPnBhcmFtcyA9IGxhcHBlbmQo bi0+cGFyYW1zLAorCQkJCQkJCQltYWtlRGVmRWxlbSgiY29uY3VycmVudGx5IiwgKE5vZGUgKilt YWtlU3RyaW5nKCJjb25jdXJyZW50bHkiKSwgQDYpKTsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJ CQkJfQogCQkJfCBSRUlOREVYICcoJyB2YWNfYW5hbHl6ZV9vcHRpb25fbGlzdCAnKScgcmVpbmRl eF90YXJnZXRfbXVsdGl0YWJsZSBvcHRfY29uY3VycmVudGx5IG5hbWUKIAkJCQl7CiAJCQkJCVJl aW5kZXhTdG10ICpuID0gbWFrZU5vZGUoUmVpbmRleFN0bXQpOwogCQkJCQluLT5raW5kID0gJDU7 Ci0JCQkJCW4tPmNvbmN1cnJlbnQgPSAkNjsKIAkJCQkJbi0+bmFtZSA9ICQ3OwogCQkJCQluLT5y ZWxhdGlvbiA9IE5VTEw7CiAJCQkJCW4tPnBhcmFtcyA9ICQzOworCQkJCQlpZiAoJDYpCisJCQkJ CQluLT5wYXJhbXMgPSBsYXBwZW5kKG4tPnBhcmFtcywKKwkJCQkJCQkJbWFrZURlZkVsZW0oImNv bmN1cnJlbnRseSIsIChOb2RlICopbWFrZVN0cmluZygiY29uY3VycmVudGx5IiksIEA2KSk7CiAJ CQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0KIAkJOwpAQCAtMTAzODQsMTAgKzEwMzkyLDkgQEAg Q2x1c3RlclN0bXQ6CiAJCQkJCUNsdXN0ZXJTdG10ICpuID0gbWFrZU5vZGUoQ2x1c3RlclN0bXQp OwogCQkJCQluLT5yZWxhdGlvbiA9ICQzOwogCQkJCQluLT5pbmRleG5hbWUgPSAkNDsKLQkJCQkJ bi0+b3B0aW9ucyA9IDA7Ci0JCQkJCWlmICgkMikKLQkJCQkJCW4tPm9wdGlvbnMgfD0gQ0xVT1BU X1ZFUkJPU0U7CiAJCQkJCW4tPnBhcmFtcyA9IE5JTDsKKwkJCQkJaWYgKCQyKQorCQkJCQkJbi0+ cGFyYW1zID0gbGFwcGVuZChuLT5wYXJhbXMsIG1ha2VEZWZFbGVtKCJ2ZXJib3NlIiwgTlVMTCwg QDIpKTsKIAkJCQkJJCQgPSAoTm9kZSopbjsKIAkJCQl9CiAKQEAgLTEwNDA0LDEwICsxMDQxMSw5 IEBAIENsdXN0ZXJTdG10OgogCQkJCQlDbHVzdGVyU3RtdCAqbiA9IG1ha2VOb2RlKENsdXN0ZXJT dG10KTsKIAkJCQkJbi0+cmVsYXRpb24gPSBOVUxMOwogCQkJCQluLT5pbmRleG5hbWUgPSBOVUxM OwotCQkJCQluLT5vcHRpb25zID0gMDsKLQkJCQkJaWYgKCQyKQotCQkJCQkJbi0+b3B0aW9ucyB8 PSBDTFVPUFRfVkVSQk9TRTsKIAkJCQkJbi0+cGFyYW1zID0gTklMOworCQkJCQlpZiAoJDIpCisJ CQkJCQluLT5wYXJhbXMgPSBsYXBwZW5kKG4tPnBhcmFtcywgbWFrZURlZkVsZW0oInZlcmJvc2Ui LCBOVUxMLCBAMikpOwogCQkJCQkkJCA9IChOb2RlKiluOwogCQkJCX0KIAkJCS8qIGtlcHQgZm9y IHByZS04LjMgY29tcGF0aWJpbGl0eSAqLwpAQCAtMTA0MTYsMTAgKzEwNDIyLDkgQEAgQ2x1c3Rl clN0bXQ6CiAJCQkJCUNsdXN0ZXJTdG10ICpuID0gbWFrZU5vZGUoQ2x1c3RlclN0bXQpOwogCQkJ CQluLT5yZWxhdGlvbiA9ICQ1OwogCQkJCQluLT5pbmRleG5hbWUgPSAkMzsKLQkJCQkJbi0+b3B0 aW9ucyA9IDA7Ci0JCQkJCWlmICgkMikKLQkJCQkJCW4tPm9wdGlvbnMgfD0gQ0xVT1BUX1ZFUkJP U0U7CiAJCQkJCW4tPnBhcmFtcyA9IE5JTDsKKwkJCQkJaWYgKCQyKQorCQkJCQkJbi0+cGFyYW1z ID0gbGFwcGVuZChuLT5wYXJhbXMsIG1ha2VEZWZFbGVtKCJ2ZXJib3NlIiwgTlVMTCwgQDIpKTsK IAkJCQkJJCQgPSAoTm9kZSopbjsKIAkJCQl9CiAJCTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggMGUwNzRk Nzc0NS4uMGIyMWE2Y2M1MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMK KysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTUyOCw3ICs1MjgsNyBAQCBQcm9j ZXNzVXRpbGl0eShQbGFubmVkU3RtdCAqcHN0bXQsCiAKIC8qIFBhcnNlIHBhcmFtcyBub3QgcGFy c2VkIGJ5IHRoZSBncmFtbWFyICovCiBzdGF0aWMKLXZvaWQgcGFyc2VfcmVpbmRleF9wYXJhbXMo UGFyc2VTdGF0ZSAqcHN0YXRlLCBSZWluZGV4U3RtdCAqc3RtdCkKK3ZvaWQgcGFyc2VfcmVpbmRl eF9wYXJhbXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZWluZGV4U3RtdCAqc3RtdCwgaW50ICpvcHRp b25zKQogewogCUxpc3RDZWxsICpsYzsKIAlmb3JlYWNoKGxjLCBzdG10LT5wYXJhbXMpCkBAIC01 MzgsMTIgKzUzOCwxMiBAQCB2b2lkIHBhcnNlX3JlaW5kZXhfcGFyYW1zKFBhcnNlU3RhdGUgKnBz dGF0ZSwgUmVpbmRleFN0bXQgKnN0bXQpCiAJCWlmIChzdHJjbXAob3B0LT5kZWZuYW1lLCAidmVy Ym9zZSIpID09IDApCiAJCXsKIAkJCWlmIChkZWZHZXRCb29sZWFuKG9wdCkpCi0JCQkJc3RtdC0+ b3B0aW9ucyB8PSBSRUlOREVYT1BUX1ZFUkJPU0U7CisJCQkJKm9wdGlvbnMgfD0gUkVJTkRFWE9Q VF9WRVJCT1NFOwogCQkJZWxzZQotCQkJCXN0bXQtPm9wdGlvbnMgJj0gflJFSU5ERVhPUFRfVkVS Qk9TRTsKKwkJCQkqb3B0aW9ucyAmPSB+UkVJTkRFWE9QVF9WRVJCT1NFOwogCQl9Ci0JCWVsc2Ug aWYgKHN0cmNtcChvcHQtPmRlZm5hbWUsICJjb25jdXJyZW50bHkiKSA9PSAwKQotCQkJc3RtdC0+ Y29uY3VycmVudCA9IHRydWU7CisJCWVsc2UgaWYgKHN0cmNtcChvcHQtPmRlZm5hbWUsICJjb25j dXJyZW50bHkiKSA9PSAwKSAvLyBHZXRCb29sZWFuID8KKwkJCSpvcHRpb25zIHw9IFJFSU5ERVhP UFRfQ09OQ1VSUkVOVDsKIAkJZWxzZQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUo RVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtOTQ1LDE5ICs5NDUsMjAgQEAgc3RhbmRhcmRfUHJv Y2Vzc1V0aWxpdHkoUGxhbm5lZFN0bXQgKnBzdG10LAogCQljYXNlIFRfUmVpbmRleFN0bXQ6CiAJ CQl7CiAJCQkJUmVpbmRleFN0bXQgKnN0bXQgPSAoUmVpbmRleFN0bXQgKikgcGFyc2V0cmVlOwor CQkJCWludCBvcHRpb25zID0gMDsKIAotCQkJCWlmIChzdG10LT5jb25jdXJyZW50KQorCQkJCXBh cnNlX3JlaW5kZXhfcGFyYW1zKHBzdGF0ZSwgc3RtdCwgJm9wdGlvbnMpOworCQkJCWlmIChvcHRp b25zICYgUkVJTkRFWE9QVF9DT05DVVJSRU5UKQogCQkJCQlQcmV2ZW50SW5UcmFuc2FjdGlvbkJs b2NrKGlzVG9wTGV2ZWwsCiAJCQkJCQkJCQkJCSAgIlJFSU5ERVggQ09OQ1VSUkVOVExZIik7CiAK LQkJCQlwYXJzZV9yZWluZGV4X3BhcmFtcyhwc3RhdGUsIHN0bXQpOwogCQkJCXN3aXRjaCAoc3Rt dC0+a2luZCkKIAkJCQl7CiAJCQkJCWNhc2UgUkVJTkRFWF9PQkpFQ1RfSU5ERVg6Ci0JCQkJCQlS ZWluZGV4SW5kZXgoc3RtdCk7CisJCQkJCQlSZWluZGV4SW5kZXgoc3RtdCwgb3B0aW9ucyk7CiAJ CQkJCQlicmVhazsKIAkJCQkJY2FzZSBSRUlOREVYX09CSkVDVF9UQUJMRToKLQkJCQkJCVJlaW5k ZXhUYWJsZShzdG10KTsKKwkJCQkJCVJlaW5kZXhUYWJsZShzdG10LCBvcHRpb25zKTsKIAkJCQkJ CWJyZWFrOwogCQkJCQljYXNlIFJFSU5ERVhfT0JKRUNUX1NDSEVNQToKIAkJCQkJY2FzZSBSRUlO REVYX09CSkVDVF9TWVNURU06CkBAIC05NzMsNyArOTc0LDcgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0 aWxpdHkoUGxhbm5lZFN0bXQgKnBzdG10LAogCQkJCQkJCQkJCQkJICAoc3RtdC0+a2luZCA9PSBS RUlOREVYX09CSkVDVF9TQ0hFTUEpID8gIlJFSU5ERVggU0NIRU1BIiA6CiAJCQkJCQkJCQkJCQkg IChzdG10LT5raW5kID09IFJFSU5ERVhfT0JKRUNUX1NZU1RFTSkgPyAiUkVJTkRFWCBTWVNURU0i IDoKIAkJCQkJCQkJCQkJCSAgIlJFSU5ERVggREFUQUJBU0UiKTsKLQkJCQkJCVJlaW5kZXhNdWx0 aXBsZVRhYmxlcyhzdG10KTsKKwkJCQkJCVJlaW5kZXhNdWx0aXBsZVRhYmxlcyhzdG10LCBvcHRp b25zKTsKIAkJCQkJCWJyZWFrOwogCQkJCQlkZWZhdWx0OgogCQkJCQkJZWxvZyhFUlJPUiwgInVu cmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvZGVmcmVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZyZW0uaAppbmRleCBhOTdj MDBhMDJlLi5mZWRiYmMxN2UwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZy ZW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZyZW0uaApAQCAtMzQsOSArMzQsOSBA QCBleHRlcm4gT2JqZWN0QWRkcmVzcyBEZWZpbmVJbmRleChPaWQgcmVsYXRpb25JZCwKIAkJCQkJ CQkJIGJvb2wgY2hlY2tfbm90X2luX3VzZSwKIAkJCQkJCQkJIGJvb2wgc2tpcF9idWlsZCwKIAkJ CQkJCQkJIGJvb2wgcXVpZXQpOwotZXh0ZXJuIHZvaWQgUmVpbmRleEluZGV4KFJlaW5kZXhTdG10 ICpzdG10KTsKLWV4dGVybiBPaWQJUmVpbmRleFRhYmxlKFJlaW5kZXhTdG10ICpzdG10KTsKLWV4 dGVybiB2b2lkIFJlaW5kZXhNdWx0aXBsZVRhYmxlcyhSZWluZGV4U3RtdCAqc3RtdCk7CitleHRl cm4gdm9pZCBSZWluZGV4SW5kZXgoUmVpbmRleFN0bXQgKnN0bXQsIGludCBvcHRpb25zKTsKK2V4 dGVybiBPaWQJUmVpbmRleFRhYmxlKFJlaW5kZXhTdG10ICpzdG10LCBpbnQgb3B0aW9ucyk7Citl eHRlcm4gdm9pZCBSZWluZGV4TXVsdGlwbGVUYWJsZXMoUmVpbmRleFN0bXQgKnN0bXQsIGludCBv cHRpb25zKTsKIGV4dGVybiBjaGFyICptYWtlT2JqZWN0TmFtZShjb25zdCBjaGFyICpuYW1lMSwg Y29uc3QgY2hhciAqbmFtZTIsCiAJCQkJCQkJY29uc3QgY2hhciAqbGFiZWwpOwogZXh0ZXJuIGNo YXIgKkNob29zZVJlbGF0aW9uTmFtZShjb25zdCBjaGFyICpuYW1lMSwgY29uc3QgY2hhciAqbmFt ZTIsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggNGUzMTg4ZmY4Ny4uYTUyNDQwMmI5MSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzIxMCw4ICszMjEwLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg Q2x1c3RlclN0bXQKIAlOb2RlVGFnCQl0eXBlOwogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyog cmVsYXRpb24gYmVpbmcgaW5kZXhlZCwgb3IgTlVMTCBpZiBhbGwgKi8KIAljaGFyCSAgICppbmRl eG5hbWU7CQkvKiBvcmlnaW5hbCBpbmRleCBkZWZpbmVkICovCi0JaW50CQkJb3B0aW9uczsJCS8q IE9SIG9mIENsdXN0ZXJPcHRpb24gZmxhZ3MgKi8KLQlMaXN0CQkqcGFyYW1zOwkJLyogUGFyYW1z IG5vdCBmdXJ0aGVyIHBhcnNlZCBieSB0aGUgZ3JhbW1hciAqLworCUxpc3QJCSpwYXJhbXM7CQkv KiBsaXN0IG9mIERlZkVsZW0gbm9kZXMgKi8KIH0gQ2x1c3RlclN0bXQ7CiAKIC8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KQEAgLTMzNTQsNiArMzM1Myw3IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0 cmFpbnRzU2V0U3RtdAogI2RlZmluZSBSRUlOREVYT1BUX1ZFUkJPU0UgKDEgPDwgMCkgLyogcHJp bnQgcHJvZ3Jlc3MgaW5mbyAqLwogI2RlZmluZSBSRUlOREVYT1BUX1JFUE9SVF9QUk9HUkVTUyAo MSA8PCAxKSAvKiByZXBvcnQgcGdzdGF0IHByb2dyZXNzICovCiAjZGVmaW5lIFJFSU5ERVhPUFRf TUlTU0lOR19PSyAoMSA8PCAyKQkvKiBza2lwIG1pc3NpbmcgcmVsYXRpb25zICovCisjZGVmaW5l IFJFSU5ERVhPUFRfQ09OQ1VSUkVOVCAoMSA8PCAzKSAvKiByZWluZGV4IENPTkNVUlJFTlRMWSAq LwogCiB0eXBlZGVmIGVudW0gUmVpbmRleE9iamVjdFR5cGUKIHsKQEAgLTMzNzEsOSArMzM3MSw3 IEBAIHR5cGVkZWYgc3RydWN0IFJlaW5kZXhTdG10CiAJCQkJCQkJCSAqIGV0Yy4gKi8KIAlSYW5n ZVZhciAgICpyZWxhdGlvbjsJCS8qIFRhYmxlIG9yIGluZGV4IHRvIHJlaW5kZXggKi8KIAljb25z dCBjaGFyICpuYW1lOwkJCS8qIG5hbWUgb2YgZGF0YWJhc2UgdG8gcmVpbmRleCAqLwotCWludAkJ CW9wdGlvbnM7CQkvKiBSZWluZGV4IG9wdGlvbnMgZmxhZ3MgKi8KLQlMaXN0CQkqcGFyYW1zOwkJ LyogUGFyYW1zIG5vdCBmdXJ0aGVyIHBhcnNlZCBieSB0aGUgZ3JhbW1lciAqLwotCWJvb2wJCWNv bmN1cnJlbnQ7CQkvKiByZWluZGV4IGNvbmN1cnJlbnRseT8gKi8KKwlMaXN0CQkqcGFyYW1zOwkJ LyogbGlzdCBvZiBEZWZFbGVtIG5vZGVzICovCiB9IFJlaW5kZXhTdG10OwogCiAvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0tIAoyLjE5LjEKCg== --=_2649d5b7d06298c9fe864b2c58503088 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v24-0002-Allow-either-new-or-old-option-syntax-for-CLUSTE.patch Content-Disposition: attachment; filename=v24-0002-Allow-either-new-or-old-option-syntax-for-CLUSTE.patch; size=2412 RnJvbSAwZTEzMWUxN2VjODU3N2EzNmNiMzA3YmUzMTU0OWM2NTFkM2IyZmQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgS29uZHJhdG92IDxrb25kcmF0b3YuYWxla3NleUBn bWFpbC5jb20+CkRhdGU6IFdlZCwgMiBTZXAgMjAyMCAxMzozNjowMyArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjI0IDIvN10gQWxsb3cgZWl0aGVyIG5ldyBvciBvbGQgb3B0aW9uIHN5bnRheCBmb3Ig Q0xVU1RFUiBhbmQKIGNsZWFuIHVwIGl0cyBkb2MKCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jbHVz dGVyLnNnbWwgfCAgMSAtCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICB8IDEwICsrKyst LS0tLS0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyAgIHwgIDMgKy0tCiAzIGZpbGVzIGNo YW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvcmVmL2NsdXN0ZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY2x1c3Rlci5zZ21s CmluZGV4IDExMGZiMzA4M2UuLmU2ZWJjZTI3ZTYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvY2x1c3Rlci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY2x1c3Rlci5zZ21sCkBAIC05 MSw3ICs5MSw2IEBAIENMVVNURVIgW1ZFUkJPU0VdIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uCiAgICAgPGxpc3RpdGVtPgogICAg ICA8cGFyYT4KICAgICAgIFByaW50cyBhIHByb2dyZXNzIHJlcG9ydCBhcyBlYWNoIHRhYmxlIGlz IGNsdXN0ZXJlZC4KLTwhLS0gV2hlbiBzcGVjaWZpZWQgd2l0aGluIHBhcmVudGhlc2lzLCA8bGl0 ZXJhbD5WRVJCT1NFPC9saXRlcmFsPiBtYXkgYmUgZm9sbG93ZWQgYnkgYSBib29sZWFuIC4uLi0t PgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggYjkwOWIxNjFhNi4uYzViZTk0YWY0NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xMDM5 MSwxNCArMTAzOTEsMTIgQEAgQ2x1c3RlclN0bXQ6CiAJCQkJCSQkID0gKE5vZGUqKW47CiAJCQkJ fQogCi0JCQl8IENMVVNURVIgb3B0X3ZlcmJvc2UgJygnIHZhY19hbmFseXplX29wdGlvbl9saXN0 ICcpJyBxdWFsaWZpZWRfbmFtZSBjbHVzdGVyX2luZGV4X3NwZWNpZmljYXRpb24KKwkJCXwgQ0xV U1RFUiAnKCcgdmFjX2FuYWx5emVfb3B0aW9uX2xpc3QgJyknIHF1YWxpZmllZF9uYW1lIGNsdXN0 ZXJfaW5kZXhfc3BlY2lmaWNhdGlvbgogCQkJCXsKIAkJCQkJQ2x1c3RlclN0bXQgKm4gPSBtYWtl Tm9kZShDbHVzdGVyU3RtdCk7Ci0JCQkJCW4tPnJlbGF0aW9uID0gJDY7Ci0JCQkJCW4tPmluZGV4 bmFtZSA9ICQ3OwotCQkJCQlpZiAoJDIpCi0JCQkJCQluLT5vcHRpb25zIHw9IENMVU9QVF9WRVJC T1NFOwotCQkJCQluLT5wYXJhbXMgPSAkNDsKKwkJCQkJbi0+cmVsYXRpb24gPSAkNTsKKwkJCQkJ bi0+aW5kZXhuYW1lID0gJDY7CisJCQkJCW4tPnBhcmFtcyA9ICQzOwogCQkJCQkkJCA9IChOb2Rl KiluOwogCQkJCX0KIAkJCXwgQ0xVU1RFUiBvcHRfdmVyYm9zZQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4 IGRlODU3NzJmZjkuLjI0NTkxOWFlYWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAgLTIyNjAsOCArMjI2 MCw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBl bmQpCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ0xVU1RFUiIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9jbHVzdGVyYWJsZXMsICJVTklPTiBTRUxFQ1QgJ1ZF UkJPU0UnIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ0xVU1RFUiIsICJWRVJCT1NFIikgfHwKLQkJ CU1hdGNoZXMoIkNMVVNURVIiLCAiVkVSQk9TRSIsICIoKikiKSB8fAotCQkJTWF0Y2hlcygiQ0xV U1RFUiIsICIoKikiKSkKKwkJCSBNYXRjaGVzKCJDTFVTVEVSIiwgIigqKSIpKQogCQlDT01QTEVU RV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9jbHVzdGVyYWJsZXMsIE5VTEwp OwogCS8qIElmIHdlIGhhdmUgQ0xVU1RFUiA8c3RoPiwgdGhlbiBhZGQgIlVTSU5HIiAqLwogCWVs c2UgaWYgKE1hdGNoZXMoIkNMVVNURVIiLCBNYXRjaEFueUV4Y2VwdCgiVkVSQk9TRXxPTnwofCgq KSIpKSkKLS0gCjIuMTkuMQoK --=_2649d5b7d06298c9fe864b2c58503088 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v24-0001-Change-REINDEX-CLUSTER-to-accept-an-option-list.patch Content-Disposition: attachment; filename=v24-0001-Change-REINDEX-CLUSTER-to-accept-an-option-list.patch; size=24198 RnJvbSBhOGYzYzdlY2FjZTczMjk0ZWIyOTM3MWY0MmYzNjUzYWY4MzAyYzJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdXN0aW4gUHJ5emJ5IDxwcnl6YnlqQHRlbHNhc29mdC5jb20+ CkRhdGU6IEZyaSwgMjcgTWFyIDIwMjAgMTc6NTA6NDYgLTA1MDAKU3ViamVjdDogW1BBVENIIHYy NCAxLzddIENoYW5nZSBSRUlOREVYL0NMVVNURVIgdG8gYWNjZXB0IGFuIG9wdGlvbiBsaXN0Cgou Lmxpa2UgRVhQTEFJTiAoLi4pLCBWQUNVVU0gKC4uKSwgYW5kIEFOQUxZWkUgKC4uKS4KCkNoYW5n ZSBkb2NzIGluIHRoZSBzdHlsZSBvZiBWQUNVVU0uICBTZWUgYWxzbzogNTJkY2ZkYTQ4Nzc4ZDE2 NjgzYzY0Y2E0MzcyMjk5YTA5OWExNWI5NgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvY2x1c3Rlci5z Z21sICAgIHwgMjggKysrKysrKysrKysrKysrKysrLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3JlaW5k ZXguc2dtbCAgICB8IDQzICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9jbHVzdGVyLmMgICB8IDIzICsrKysrKysrKysrKysrKystCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyB8IDQxICsrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLQogc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMgICAgfCAgMiArKwogc3JjL2JhY2tl bmQvbm9kZXMvZXF1YWxmdW5jcy5jICAgfCAgMiArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSAgICAgICAgfCAzNSArKysrKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMgICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKy0tLQogc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgfCAyMyArKysrKysrKysrKysrLS0tLQogc3JjL2lu Y2x1ZGUvY29tbWFuZHMvY2x1c3Rlci5oICAgfCAgMyArKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRz L2RlZnJlbS5oICAgIHwgIDcgKysrLS0tCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgg ICB8ICAyICsrCiAxMiBmaWxlcyBjaGFuZ2VkLCAxNzkgaW5zZXJ0aW9ucygrKSwgNjYgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jbHVzdGVyLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NsdXN0ZXIuc2dtbAppbmRleCA0ZGE2MGQ4ZDU2Li4xMTBmYjMwODNlIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NsdXN0ZXIuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NsdXN0ZXIuc2dtbApAQCAtMjEsOCArMjEsMTMgQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1DTFVTVEVSIFtWRVJCT1NF XSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+ IFsgVVNJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X25hbWU8L3JlcGxh Y2VhYmxlPiBdCi1DTFVTVEVSIFtWRVJCT1NFXQorQ0xVU1RFUiBbVkVSQk9TRV0gWyAoIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkg XSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+ IFsgVVNJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X25hbWU8L3JlcGxh Y2VhYmxlPiBdCitDTFVTVEVSIFtWRVJCT1NFXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdCisKKzxwaHJhc2U+d2hlcmUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBi ZSBvbmUgb2Y6PC9waHJhc2U+CisKKyAgICBWRVJCT1NFIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxhY2VhYmxlPiBdCisKIDwvc3lub3BzaXM+CiAgPC9yZWZz eW5vcHNpc2Rpdj4KIApAQCAtODEsNiArODYsMTYgQEAgQ0xVU1RFUiBbVkVSQk9TRV0KICAgPHRp dGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogCiAgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlZFUkJPU0U8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBQcmludHMgYSBwcm9ncmVzcyByZXBvcnQgYXMg ZWFjaCB0YWJsZSBpcyBjbHVzdGVyZWQuCis8IS0tIFdoZW4gc3BlY2lmaWVkIHdpdGhpbiBwYXJl bnRoZXNpcywgPGxpdGVyYWw+VkVSQk9TRTwvbGl0ZXJhbD4gbWF5IGJlIGZvbGxvd2VkIGJ5IGEg Ym9vbGVhbiAuLi4tLT4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgogICAgIDxsaXN0 aXRlbT4KQEAgLTEwMCwxMCArMTE1LDE1IEBAIENMVVNURVIgW1ZFUkJPU0VdCiAgICA8L3Zhcmxp c3RlbnRyeT4KIAogICAgPHZhcmxpc3RlbnRyeT4KLSAgICA8dGVybT48bGl0ZXJhbD5WRVJCT1NF PC9saXRlcmFsPjwvdGVybT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBh cmE+Ci0gICAgICBQcmludHMgYSBwcm9ncmVzcyByZXBvcnQgYXMgZWFjaCB0YWJsZSBpcyBjbHVz dGVyZWQuCisgICAgICBTcGVjaWZpZXMgd2hldGhlciB0aGUgc2VsZWN0ZWQgb3B0aW9uIHNob3Vs ZCBiZSB0dXJuZWQgb24gb3Igb2ZmLgorICAgICAgWW91IGNhbiB3cml0ZSA8bGl0ZXJhbD5UUlVF PC9saXRlcmFsPiwgPGxpdGVyYWw+T048L2xpdGVyYWw+LCBvcgorICAgICAgPGxpdGVyYWw+MTwv bGl0ZXJhbD4gdG8gZW5hYmxlIHRoZSBvcHRpb24sIGFuZCA8bGl0ZXJhbD5GQUxTRTwvbGl0ZXJh bD4sCisgICAgICA8bGl0ZXJhbD5PRkY8L2xpdGVyYWw+LCBvciA8bGl0ZXJhbD4wPC9saXRlcmFs PiB0byBkaXNhYmxlIGl0LiAgVGhlCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IHZhbHVlIGNhbiBhbHNvCisgICAgICBiZSBvbWl0dGVk LCBpbiB3aGljaCBjYXNlIDxsaXRlcmFsPlRSVUU8L2xpdGVyYWw+IGlzIGFzc3VtZWQuCiAgICAg IDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmL3JlaW5kZXguc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcmVpbmRl eC5zZ21sCmluZGV4IGMxNmYyMjNlNGUuLmEzMmUxOTJhODcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvcmVpbmRleC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcmVpbmRleC5zZ21s CkBAIC0yNSw3ICsyNSw3IEBAIFJFSU5ERVggWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSB7IElOCiAKIDxwaHJhc2U+d2hl cmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IGNh biBiZSBvbmUgb2Y6PC9waHJhc2U+CiAKLSAgICBWRVJCT1NFCisgICAgVkVSQk9TRSBbIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5ib29sZWFuPC9yZXBsYWNlYWJsZT4gXQogPC9zeW5v cHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0xNDEsMTkgKzE0MSw2IEBAIFJFSU5ERVgg WyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBb LCAuLi5dICkgXSB7IElOCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCi0g ICA8dmFybGlzdGVudHJ5PgotICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+Ci0gICAgPGxpc3RpdGVtPgotICAgICA8cGFyYT4K LSAgICAgIFRoZSBuYW1lIG9mIHRoZSBzcGVjaWZpYyBpbmRleCwgdGFibGUsIG9yIGRhdGFiYXNl IHRvIGJlCi0gICAgICByZWluZGV4ZWQuICBJbmRleCBhbmQgdGFibGUgbmFtZXMgY2FuIGJlIHNj aGVtYS1xdWFsaWZpZWQuCi0gICAgICBQcmVzZW50bHksIDxjb21tYW5kPlJFSU5ERVggREFUQUJB U0U8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5SRUlOREVYIFNZU1RFTTwvY29tbWFuZD4KLSAgICAg IGNhbiBvbmx5IHJlaW5kZXggdGhlIGN1cnJlbnQgZGF0YWJhc2UsIHNvIHRoZWlyIHBhcmFtZXRl ciBtdXN0IG1hdGNoCi0gICAgICB0aGUgY3VycmVudCBkYXRhYmFzZSdzIG5hbWUuCi0gICAgIDwv cGFyYT4KLSAgICA8L2xpc3RpdGVtPgotICAgPC92YXJsaXN0ZW50cnk+Ci0KICAgIDx2YXJsaXN0 ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+Q09OQ1VSUkVOVExZPC9saXRlcmFsPjwvdGVybT4K ICAgICA8bGlzdGl0ZW0+CkBAIC0xODEsNiArMTY4LDM0IEBAIFJFSU5ERVggWyAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSB7 IElOCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CisK KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgVGhlIG5hbWUgb2YgdGhlIHNwZWNpZmljIGluZGV4LCB0YWJsZSwgb3IgZGF0YWJh c2UgdG8gYmUKKyAgICAgIHJlaW5kZXhlZC4gIEluZGV4IGFuZCB0YWJsZSBuYW1lcyBjYW4gYmUg c2NoZW1hLXF1YWxpZmllZC4KKyAgICAgIFByZXNlbnRseSwgPGNvbW1hbmQ+UkVJTkRFWCBEQVRB QkFTRTwvY29tbWFuZD4gYW5kIDxjb21tYW5kPlJFSU5ERVggU1lTVEVNPC9jb21tYW5kPgorICAg ICAgY2FuIG9ubHkgcmVpbmRleCB0aGUgY3VycmVudCBkYXRhYmFzZSwgc28gdGhlaXIgcGFyYW1l dGVyIG11c3QgbWF0Y2gKKyAgICAgIHRoZSBjdXJyZW50IGRhdGFiYXNlJ3MgbmFtZS4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVh bjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBTcGVjaWZpZXMgd2hldGhlciB0aGUgc2VsZWN0ZWQgb3B0aW9uIHNob3VsZCBiZSB0dXJuZWQg b24gb3Igb2ZmLgorICAgICAgWW91IGNhbiB3cml0ZSA8bGl0ZXJhbD5UUlVFPC9saXRlcmFsPiwg PGxpdGVyYWw+T048L2xpdGVyYWw+LCBvcgorICAgICAgPGxpdGVyYWw+MTwvbGl0ZXJhbD4gdG8g ZW5hYmxlIHRoZSBvcHRpb24sIGFuZCA8bGl0ZXJhbD5GQUxTRTwvbGl0ZXJhbD4sCisgICAgICA8 bGl0ZXJhbD5PRkY8L2xpdGVyYWw+LCBvciA8bGl0ZXJhbD4wPC9saXRlcmFsPiB0byBkaXNhYmxl IGl0LiAgVGhlCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwv cmVwbGFjZWFibGU+IHZhbHVlIGNhbiBhbHNvCisgICAgICBiZSBvbWl0dGVkLCBpbiB3aGljaCBj YXNlIDxsaXRlcmFsPlRSVUU8L2xpdGVyYWw+IGlzIGFzc3VtZWQuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgPC92YXJpYWJsZWxpc3Q+CiAg PC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY2x1c3Rlci5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY2x1c3Rlci5jCmluZGV4IDBkNjQ3ZTkxMmMuLmE0MmRm ZTk4ZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NsdXN0ZXIuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9jbHVzdGVyLmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy90b2FzdGluZy5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2NsdXN0ZXIuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNp bmNsdWRlICJjb21tYW5kcy9wcm9ncmVzcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21k cy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ZhY3V1bS5oIgpAQCAtMTAyLDggKzEwMywyOCBAQCBz dGF0aWMgTGlzdCAqZ2V0X3RhYmxlc190b19jbHVzdGVyKE1lbW9yeUNvbnRleHQgY2x1c3Rlcl9j b250ZXh0KTsKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIHZvaWQKLWNsdXN0ZXIoQ2x1c3Rl clN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKK2NsdXN0ZXIoUGFyc2VTdGF0ZSAqcHN0YXRl LCBDbHVzdGVyU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogeworCUxpc3RDZWxsICpsYzsK KworCS8qIFBhcnNlIGxpc3Qgb2YgZ2VuZXJpYyBwYXJhbWV0ZXJzIG5vdCBoYW5kbGVkIGJ5IHRo ZSBwYXJzZXIgKi8KKwlmb3JlYWNoKGxjLCBzdG10LT5wYXJhbXMpCisJeworCQlEZWZFbGVtCSpv cHQgPSAoRGVmRWxlbSAqKSBsZmlyc3QobGMpOworCisJCWlmIChzdHJjbXAob3B0LT5kZWZuYW1l LCAidmVyYm9zZSIpID09IDApCisJCQlpZiAoZGVmR2V0Qm9vbGVhbihvcHQpKQorCQkJCXN0bXQt Pm9wdGlvbnMgfD0gQ0xVT1BUX1ZFUkJPU0U7CisJCQllbHNlCisJCQkJc3RtdC0+b3B0aW9ucyAm PSB+Q0xVT1BUX1ZFUkJPU0U7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJj b2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygidW5yZWNvZ25pemVkIENM VVNURVIgb3B0aW9uIFwiJXNcIiIsCisJCQkJCQkgb3B0LT5kZWZuYW1lKSwKKwkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIG9wdC0+bG9jYXRpb24pKSk7CisJfQorCiAJaWYgKHN0bXQt PnJlbGF0aW9uICE9IE5VTEwpCiAJewogCQkvKiBUaGlzIGlzIHRoZSBzaW5nbGUtcmVsYXRpb24g Y2FzZS4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggYjNhOTIzODFmOS4uZTgzODNm ZWVhNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKQEAgLTI0MjAsOCArMjQyMCw5IEBAIENo b29zZUluZGV4Q29sdW1uTmFtZXMoTGlzdCAqaW5kZXhFbGVtcykKICAqCQlSZWNyZWF0ZSBhIHNw ZWNpZmljIGluZGV4LgogICovCiB2b2lkCi1SZWluZGV4SW5kZXgoUmFuZ2VWYXIgKmluZGV4UmVs YXRpb24sIGludCBvcHRpb25zLCBib29sIGNvbmN1cnJlbnQpCitSZWluZGV4SW5kZXgoUmVpbmRl eFN0bXQgKnN0bXQpCiB7CisJUmFuZ2VWYXIgKmluZGV4UmVsYXRpb24gPSBzdG10LT5yZWxhdGlv bjsKIAlzdHJ1Y3QgUmVpbmRleEluZGV4Q2FsbGJhY2tTdGF0ZSBzdGF0ZTsKIAlPaWQJCQlpbmRP aWQ7CiAJUmVsYXRpb24JaXJlbDsKQEAgLTI0MzcsMTAgKzI0MzgsMTAgQEAgUmVpbmRleEluZGV4 KFJhbmdlVmFyICppbmRleFJlbGF0aW9uLCBpbnQgb3B0aW9ucywgYm9vbCBjb25jdXJyZW50KQog CSAqIHVwZ3JhZGUgdGhlIGxvY2ssIGJ1dCB0aGF0J3MgT0ssIGJlY2F1c2Ugb3RoZXIgc2Vzc2lv bnMgY2FuJ3QgaG9sZAogCSAqIGxvY2tzIG9uIG91ciB0ZW1wb3JhcnkgdGFibGUuCiAJICovCi0J c3RhdGUuY29uY3VycmVudCA9IGNvbmN1cnJlbnQ7CisJc3RhdGUuY29uY3VycmVudCA9IHN0bXQt PmNvbmN1cnJlbnQ7CiAJc3RhdGUubG9ja2VkX3RhYmxlX29pZCA9IEludmFsaWRPaWQ7CiAJaW5k T2lkID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGluZGV4UmVsYXRpb24sCi0JCQkJCQkJCQkg IGNvbmN1cnJlbnQgPyBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sgOiBBY2Nlc3NFeGNsdXNpdmVM b2NrLAorCQkJCQkJCQkJICBzdG10LT5jb25jdXJyZW50ID8gU2hhcmVVcGRhdGVFeGNsdXNpdmVM b2NrIDogQWNjZXNzRXhjbHVzaXZlTG9jaywKIAkJCQkJCQkJCSAgMCwKIAkJCQkJCQkJCSAgUmFu Z2VWYXJDYWxsYmFja0ZvclJlaW5kZXhJbmRleCwKIAkJCQkJCQkJCSAgJnN0YXRlKTsKQEAgLTI0 NjAsMTEgKzI0NjEsMTEgQEAgUmVpbmRleEluZGV4KFJhbmdlVmFyICppbmRleFJlbGF0aW9uLCBp bnQgb3B0aW9ucywgYm9vbCBjb25jdXJyZW50KQogCXBlcnNpc3RlbmNlID0gaXJlbC0+cmRfcmVs LT5yZWxwZXJzaXN0ZW5jZTsKIAlpbmRleF9jbG9zZShpcmVsLCBOb0xvY2spOwogCi0JaWYgKGNv bmN1cnJlbnQgJiYgcGVyc2lzdGVuY2UgIT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKLQkJUmVpbmRl eFJlbGF0aW9uQ29uY3VycmVudGx5KGluZE9pZCwgb3B0aW9ucyk7CisJaWYgKHN0bXQtPmNvbmN1 cnJlbnQgJiYgcGVyc2lzdGVuY2UgIT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKKwkJUmVpbmRleFJl bGF0aW9uQ29uY3VycmVudGx5KGluZE9pZCwgc3RtdC0+b3B0aW9ucyk7CiAJZWxzZQogCQlyZWlu ZGV4X2luZGV4KGluZE9pZCwgZmFsc2UsIHBlcnNpc3RlbmNlLAotCQkJCQkgIG9wdGlvbnMgfCBS RUlOREVYT1BUX1JFUE9SVF9QUk9HUkVTUyk7CisJCQkJCSAgc3RtdC0+b3B0aW9ucyB8IFJFSU5E RVhPUFRfUkVQT1JUX1BST0dSRVNTKTsKIH0KIAogLyoKQEAgLTI1NDIsOCArMjU0Myw5IEBAIFJh bmdlVmFyQ2FsbGJhY2tGb3JSZWluZGV4SW5kZXgoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAog ICoJCVJlY3JlYXRlIGFsbCBpbmRleGVzIG9mIGEgdGFibGUgKGFuZCBvZiBpdHMgdG9hc3QgdGFi bGUsIGlmIGFueSkKICAqLwogT2lkCi1SZWluZGV4VGFibGUoUmFuZ2VWYXIgKnJlbGF0aW9uLCBp bnQgb3B0aW9ucywgYm9vbCBjb25jdXJyZW50KQorUmVpbmRleFRhYmxlKFJlaW5kZXhTdG10ICpz dG10KQogeworCVJhbmdlVmFyICpyZWxhdGlvbiA9IHN0bXQtPnJlbGF0aW9uOwogCU9pZAkJCWhl YXBPaWQ7CiAJYm9vbAkJcmVzdWx0OwogCkBAIC0yNTU2LDEzICsyNTU4LDEzIEBAIFJlaW5kZXhU YWJsZShSYW5nZVZhciAqcmVsYXRpb24sIGludCBvcHRpb25zLCBib29sIGNvbmN1cnJlbnQpCiAJ ICogbG9ja3Mgb24gb3VyIHRlbXBvcmFyeSB0YWJsZS4KIAkgKi8KIAloZWFwT2lkID0gUmFuZ2VW YXJHZXRSZWxpZEV4dGVuZGVkKHJlbGF0aW9uLAotCQkJCQkJCQkJICAgY29uY3VycmVudCA/IFNo YXJlVXBkYXRlRXhjbHVzaXZlTG9jayA6IFNoYXJlTG9jaywKKwkJCQkJCQkJCSAgIHN0bXQtPmNv bmN1cnJlbnQgPyBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sgOiBTaGFyZUxvY2ssCiAJCQkJCQkJ CQkgICAwLAogCQkJCQkJCQkJICAgUmFuZ2VWYXJDYWxsYmFja093bnNUYWJsZSwgTlVMTCk7CiAK LQlpZiAoY29uY3VycmVudCAmJiBnZXRfcmVsX3BlcnNpc3RlbmNlKGhlYXBPaWQpICE9IFJFTFBF UlNJU1RFTkNFX1RFTVApCisJaWYgKHN0bXQtPmNvbmN1cnJlbnQgJiYgZ2V0X3JlbF9wZXJzaXN0 ZW5jZShoZWFwT2lkKSAhPSBSRUxQRVJTSVNURU5DRV9URU1QKQogCXsKLQkJcmVzdWx0ID0gUmVp bmRleFJlbGF0aW9uQ29uY3VycmVudGx5KGhlYXBPaWQsIG9wdGlvbnMpOworCQlyZXN1bHQgPSBS ZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkoaGVhcE9pZCwgc3RtdC0+b3B0aW9ucyk7CiAKIAkJ aWYgKCFyZXN1bHQpCiAJCQllcmVwb3J0KE5PVElDRSwKQEAgLTI1NzQsNyArMjU3Niw3IEBAIFJl aW5kZXhUYWJsZShSYW5nZVZhciAqcmVsYXRpb24sIGludCBvcHRpb25zLCBib29sIGNvbmN1cnJl bnQpCiAJCXJlc3VsdCA9IHJlaW5kZXhfcmVsYXRpb24oaGVhcE9pZCwKIAkJCQkJCQkJICBSRUlO REVYX1JFTF9QUk9DRVNTX1RPQVNUIHwKIAkJCQkJCQkJICBSRUlOREVYX1JFTF9DSEVDS19DT05T VFJBSU5UUywKLQkJCQkJCQkJICBvcHRpb25zIHwgUkVJTkRFWE9QVF9SRVBPUlRfUFJPR1JFU1Mp OworCQkJCQkJCQkgIHN0bXQtPm9wdGlvbnMgfCBSRUlOREVYT1BUX1JFUE9SVF9QUk9HUkVTUyk7 CiAJCWlmICghcmVzdWx0KQogCQkJZXJlcG9ydChOT1RJQ0UsCiAJCQkJCShlcnJtc2coInRhYmxl IFwiJXNcIiBoYXMgbm8gaW5kZXhlcyB0byByZWluZGV4IiwKQEAgLTI1OTMsOSArMjU5NSwxMCBA QCBSZWluZGV4VGFibGUoUmFuZ2VWYXIgKnJlbGF0aW9uLCBpbnQgb3B0aW9ucywgYm9vbCBjb25j dXJyZW50KQogICogVGhhdCBtZWFucyB0aGlzIG11c3Qgbm90IGJlIGNhbGxlZCB3aXRoaW4gYSB1 c2VyIHRyYW5zYWN0aW9uIGJsb2NrIQogICovCiB2b2lkCi1SZWluZGV4TXVsdGlwbGVUYWJsZXMo Y29uc3QgY2hhciAqb2JqZWN0TmFtZSwgUmVpbmRleE9iamVjdFR5cGUgb2JqZWN0S2luZCwKLQkJ CQkJICBpbnQgb3B0aW9ucywgYm9vbCBjb25jdXJyZW50KQorUmVpbmRleE11bHRpcGxlVGFibGVz KFJlaW5kZXhTdG10ICpzdG10KQogeworCWNvbnN0IGNoYXIgKm9iamVjdE5hbWUgPSBzdG10LT5u YW1lOworCVJlaW5kZXhPYmplY3RUeXBlIG9iamVjdEtpbmQgPSBzdG10LT5raW5kOwogCU9pZAkJ CW9iamVjdE9pZDsKIAlSZWxhdGlvbglyZWxhdGlvblJlbGF0aW9uOwogCVRhYmxlU2NhbkRlc2Mg c2NhbjsKQEAgLTI2MTMsNyArMjYxNiw3IEBAIFJlaW5kZXhNdWx0aXBsZVRhYmxlcyhjb25zdCBj aGFyICpvYmplY3ROYW1lLCBSZWluZGV4T2JqZWN0VHlwZSBvYmplY3RLaW5kLAogCQkgICBvYmpl Y3RLaW5kID09IFJFSU5ERVhfT0JKRUNUX1NZU1RFTSB8fAogCQkgICBvYmplY3RLaW5kID09IFJF SU5ERVhfT0JKRUNUX0RBVEFCQVNFKTsKIAotCWlmIChvYmplY3RLaW5kID09IFJFSU5ERVhfT0JK RUNUX1NZU1RFTSAmJiBjb25jdXJyZW50KQorCWlmIChvYmplY3RLaW5kID09IFJFSU5ERVhfT0JK RUNUX1NZU1RFTSAmJiBzdG10LT5jb25jdXJyZW50KQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJjYW5u b3QgcmVpbmRleCBzeXN0ZW0gY2F0YWxvZ3MgY29uY3VycmVudGx5IikpKTsKQEAgLTI3MjQsNyAr MjcyNyw3IEBAIFJlaW5kZXhNdWx0aXBsZVRhYmxlcyhjb25zdCBjaGFyICpvYmplY3ROYW1lLCBS ZWluZGV4T2JqZWN0VHlwZSBvYmplY3RLaW5kLAogCQkgKiBTa2lwIHN5c3RlbSB0YWJsZXMsIHNp bmNlIGluZGV4X2NyZWF0ZSgpIHdvdWxkIHJlamVjdCBpbmRleGluZyB0aGVtCiAJCSAqIGNvbmN1 cnJlbnRseSAoYW5kIGl0IHdvdWxkIGxpa2VseSBmYWlsIGlmIHdlIHRyaWVkKS4KIAkJICovCi0J CWlmIChjb25jdXJyZW50ICYmCisJCWlmIChzdG10LT5jb25jdXJyZW50ICYmCiAJCQlJc0NhdGFs b2dSZWxhdGlvbk9pZChyZWxpZCkpCiAJCXsKIAkJCWlmICghY29uY3VycmVudF93YXJuaW5nKQpA QCAtMjc3NCwxMCArMjc3NywxMCBAQCBSZWluZGV4TXVsdGlwbGVUYWJsZXMoY29uc3QgY2hhciAq b2JqZWN0TmFtZSwgUmVpbmRleE9iamVjdFR5cGUgb2JqZWN0S2luZCwKIAkJCWNvbnRpbnVlOwog CQl9CiAKLQkJaWYgKGNvbmN1cnJlbnQgJiYgZ2V0X3JlbF9wZXJzaXN0ZW5jZShyZWxpZCkgIT0g UkVMUEVSU0lTVEVOQ0VfVEVNUCkKKwkJaWYgKHN0bXQtPmNvbmN1cnJlbnQgJiYgZ2V0X3JlbF9w ZXJzaXN0ZW5jZShyZWxpZCkgIT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKIAkJewogCQkJKHZvaWQp IFJlaW5kZXhSZWxhdGlvbkNvbmN1cnJlbnRseShyZWxpZCwKLQkJCQkJCQkJCQkJICAgb3B0aW9u cyB8CisJCQkJCQkJCQkJCSAgIHN0bXQtPm9wdGlvbnMgfAogCQkJCQkJCQkJCQkgICBSRUlOREVY T1BUX01JU1NJTkdfT0spOwogCQkJLyogUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5KCkgZG9l cyB0aGUgdmVyYm9zZSBvdXRwdXQgKi8KIAkJfQpAQCAtMjc4OCwxMSArMjc5MSwxMSBAQCBSZWlu ZGV4TXVsdGlwbGVUYWJsZXMoY29uc3QgY2hhciAqb2JqZWN0TmFtZSwgUmVpbmRleE9iamVjdFR5 cGUgb2JqZWN0S2luZCwKIAkJCXJlc3VsdCA9IHJlaW5kZXhfcmVsYXRpb24ocmVsaWQsCiAJCQkJ CQkJCQkgIFJFSU5ERVhfUkVMX1BST0NFU1NfVE9BU1QgfAogCQkJCQkJCQkJICBSRUlOREVYX1JF TF9DSEVDS19DT05TVFJBSU5UUywKLQkJCQkJCQkJCSAgb3B0aW9ucyB8CisJCQkJCQkJCQkgIHN0 bXQtPm9wdGlvbnMgfAogCQkJCQkJCQkJICBSRUlOREVYT1BUX1JFUE9SVF9QUk9HUkVTUyB8CiAJ CQkJCQkJCQkgIFJFSU5ERVhPUFRfTUlTU0lOR19PSyk7CiAKLQkJCWlmIChyZXN1bHQgJiYgKG9w dGlvbnMgJiBSRUlOREVYT1BUX1ZFUkJPU0UpKQorCQkJaWYgKHJlc3VsdCAmJiAoc3RtdC0+b3B0 aW9ucyAmIFJFSU5ERVhPUFRfVkVSQk9TRSkpCiAJCQkJZXJlcG9ydChJTkZPLAogCQkJCQkJKGVy cm1zZygidGFibGUgXCIlcy4lc1wiIHdhcyByZWluZGV4ZWQiLAogCQkJCQkJCQlnZXRfbmFtZXNw YWNlX25hbWUoZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL25vZGVzL2NvcHlmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKaW5k ZXggODljNDA5ZGU2Ni4uNzE1NDhhY2MwYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMv Y29weWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKQEAgLTMzNTgs NiArMzM1OCw3IEBAIF9jb3B5Q2x1c3RlclN0bXQoY29uc3QgQ2x1c3RlclN0bXQgKmZyb20pCiAJ Q09QWV9OT0RFX0ZJRUxEKHJlbGF0aW9uKTsKIAlDT1BZX1NUUklOR19GSUVMRChpbmRleG5hbWUp OwogCUNPUFlfU0NBTEFSX0ZJRUxEKG9wdGlvbnMpOworCUNPUFlfTk9ERV9GSUVMRChwYXJhbXMp OwogCiAJcmV0dXJuIG5ld25vZGU7CiB9CkBAIC00NDUwLDYgKzQ0NTEsNyBAQCBfY29weVJlaW5k ZXhTdG10KGNvbnN0IFJlaW5kZXhTdG10ICpmcm9tKQogCUNPUFlfTk9ERV9GSUVMRChyZWxhdGlv bik7CiAJQ09QWV9TVFJJTkdfRklFTEQobmFtZSk7CiAJQ09QWV9TQ0FMQVJfRklFTEQob3B0aW9u cyk7CisJQ09QWV9OT0RFX0ZJRUxEKHBhcmFtcyk7CiAJQ09QWV9TQ0FMQVJfRklFTEQoY29uY3Vy cmVudCk7CiAKIAlyZXR1cm4gbmV3bm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVz L2VxdWFsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL2VxdWFsZnVuY3MuYwppbmRleCBlM2Yz M2M0MGJlLi5kZTQ4YTQyY2RkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1 bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvZXF1YWxmdW5jcy5jCkBAIC0xMjE3LDYgKzEy MTcsNyBAQCBfZXF1YWxDbHVzdGVyU3RtdChjb25zdCBDbHVzdGVyU3RtdCAqYSwgY29uc3QgQ2x1 c3RlclN0bXQgKmIpCiAJQ09NUEFSRV9OT0RFX0ZJRUxEKHJlbGF0aW9uKTsKIAlDT01QQVJFX1NU UklOR19GSUVMRChpbmRleG5hbWUpOwogCUNPTVBBUkVfU0NBTEFSX0ZJRUxEKG9wdGlvbnMpOwor CUNPTVBBUkVfTk9ERV9GSUVMRChwYXJhbXMpOwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC0yMTM1 LDYgKzIxMzYsNyBAQCBfZXF1YWxSZWluZGV4U3RtdChjb25zdCBSZWluZGV4U3RtdCAqYSwgY29u c3QgUmVpbmRleFN0bXQgKmIpCiAJQ09NUEFSRV9OT0RFX0ZJRUxEKHJlbGF0aW9uKTsKIAlDT01Q QVJFX1NUUklOR19GSUVMRChuYW1lKTsKIAlDT01QQVJFX1NDQUxBUl9GSUVMRChvcHRpb25zKTsK KwlDT01QQVJFX05PREVfRklFTEQocGFyYW1zKTsKIAlDT01QQVJFX1NDQUxBUl9GSUVMRChjb25j dXJyZW50KTsKIAogCXJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZGJiNDdkNDk4Mi4uYjkw OWIxNjFhNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01MTksNyArNTE5LDYgQEAgc3RhdGljIE5vZGUgKm1h a2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUg KnF1ZXJ5KTsKICV0eXBlIDxsaXN0PglleHBsYWluX29wdGlvbl9saXN0CiAKICV0eXBlIDxpdmFs PglyZWluZGV4X3RhcmdldF90eXBlIHJlaW5kZXhfdGFyZ2V0X211bHRpdGFibGUKLSV0eXBlIDxp dmFsPglyZWluZGV4X29wdGlvbl9saXN0IHJlaW5kZXhfb3B0aW9uX2VsZW0KIAogJXR5cGUgPG5v ZGU+CWNvcHlfZ2VuZXJpY19vcHRfYXJnIGNvcHlfZ2VuZXJpY19vcHRfYXJnX2xpc3RfaXRlbQog JXR5cGUgPGRlZmVsdD4JY29weV9nZW5lcmljX29wdF9lbGVtCkBAIC04MTgwLDcgKzgxNzksNyBA QCBSZWluZGV4U3RtdDoKIAkJCQkJbi0+Y29uY3VycmVudCA9ICQzOwogCQkJCQluLT5yZWxhdGlv biA9ICQ0OwogCQkJCQluLT5uYW1lID0gTlVMTDsKLQkJCQkJbi0+b3B0aW9ucyA9IDA7CisJCQkJ CW4tPnBhcmFtcyA9IE5JTDsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBSRUlO REVYIHJlaW5kZXhfdGFyZ2V0X211bHRpdGFibGUgb3B0X2NvbmN1cnJlbnRseSBuYW1lCkBAIC04 MTkwLDI3ICs4MTg5LDI3IEBAIFJlaW5kZXhTdG10OgogCQkJCQluLT5jb25jdXJyZW50ID0gJDM7 CiAJCQkJCW4tPm5hbWUgPSAkNDsKIAkJCQkJbi0+cmVsYXRpb24gPSBOVUxMOwotCQkJCQluLT5v cHRpb25zID0gMDsKKwkJCQkJbi0+cGFyYW1zID0gTklMOwogCQkJCQkkJCA9IChOb2RlICopbjsK IAkJCQl9Ci0JCQl8IFJFSU5ERVggJygnIHJlaW5kZXhfb3B0aW9uX2xpc3QgJyknIHJlaW5kZXhf dGFyZ2V0X3R5cGUgb3B0X2NvbmN1cnJlbnRseSBxdWFsaWZpZWRfbmFtZQorCQkJfCBSRUlOREVY ICcoJyB2YWNfYW5hbHl6ZV9vcHRpb25fbGlzdCAnKScgcmVpbmRleF90YXJnZXRfdHlwZSBvcHRf Y29uY3VycmVudGx5IHF1YWxpZmllZF9uYW1lCiAJCQkJewogCQkJCQlSZWluZGV4U3RtdCAqbiA9 IG1ha2VOb2RlKFJlaW5kZXhTdG10KTsKIAkJCQkJbi0+a2luZCA9ICQ1OwogCQkJCQluLT5jb25j dXJyZW50ID0gJDY7CiAJCQkJCW4tPnJlbGF0aW9uID0gJDc7CiAJCQkJCW4tPm5hbWUgPSBOVUxM OwotCQkJCQluLT5vcHRpb25zID0gJDM7CisJCQkJCW4tPnBhcmFtcyA9ICQzOwogCQkJCQkkJCA9 IChOb2RlICopbjsKIAkJCQl9Ci0JCQl8IFJFSU5ERVggJygnIHJlaW5kZXhfb3B0aW9uX2xpc3Qg JyknIHJlaW5kZXhfdGFyZ2V0X211bHRpdGFibGUgb3B0X2NvbmN1cnJlbnRseSBuYW1lCisJCQl8 IFJFSU5ERVggJygnIHZhY19hbmFseXplX29wdGlvbl9saXN0ICcpJyByZWluZGV4X3RhcmdldF9t dWx0aXRhYmxlIG9wdF9jb25jdXJyZW50bHkgbmFtZQogCQkJCXsKIAkJCQkJUmVpbmRleFN0bXQg Km4gPSBtYWtlTm9kZShSZWluZGV4U3RtdCk7CiAJCQkJCW4tPmtpbmQgPSAkNTsKIAkJCQkJbi0+ Y29uY3VycmVudCA9ICQ2OwogCQkJCQluLT5uYW1lID0gJDc7CiAJCQkJCW4tPnJlbGF0aW9uID0g TlVMTDsKLQkJCQkJbi0+b3B0aW9ucyA9ICQzOworCQkJCQluLT5wYXJhbXMgPSAkMzsKIAkJCQkJ JCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQk7CkBAIC04MjIzLDEzICs4MjIyLDYgQEAgcmVpbmRl eF90YXJnZXRfbXVsdGl0YWJsZToKIAkJCXwgU1lTVEVNX1AJCQkJeyAkJCA9IFJFSU5ERVhfT0JK RUNUX1NZU1RFTTsgfQogCQkJfCBEQVRBQkFTRQkJCQl7ICQkID0gUkVJTkRFWF9PQkpFQ1RfREFU QUJBU0U7IH0KIAkJOwotcmVpbmRleF9vcHRpb25fbGlzdDoKLQkJCXJlaW5kZXhfb3B0aW9uX2Vs ZW0JCQkJCQkJCXsgJCQgPSAkMTsgfQotCQkJfCByZWluZGV4X29wdGlvbl9saXN0ICcsJyByZWlu ZGV4X29wdGlvbl9lbGVtCXsgJCQgPSAkMSB8ICQzOyB9Ci0JCTsKLXJlaW5kZXhfb3B0aW9uX2Vs ZW06Ci0JCQlWRVJCT1NFCXsgJCQgPSBSRUlOREVYT1BUX1ZFUkJPU0U7IH0KLQkJOwogCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKICAqCkBAIC0xMDM4MCw2ICsxMDM3Miw3IEBAIENyZWF0ZUNvbnZl cnNpb25TdG10OgogICoKICAqCQlRVUVSWToKICAqCQkJCUNMVVNURVIgW1ZFUkJPU0VdIDxxdWFs aWZpZWRfbmFtZT4gWyBVU0lORyA8aW5kZXhfbmFtZT4gXQorICoJCQkJQ0xVU1RFUiBbVkVSQk9T RV0gWyhvcHRpb25zKV0gPHF1YWxpZmllZF9uYW1lPiBbIFVTSU5HIDxpbmRleF9uYW1lPiBdCiAg KgkJCQlDTFVTVEVSIFtWRVJCT1NFXQogICoJCQkJQ0xVU1RFUiBbVkVSQk9TRV0gPGluZGV4X25h bWU+IE9OIDxxdWFsaWZpZWRfbmFtZT4gKGZvciBwcmUtOC4zKQogICoKQEAgLTEwMzk0LDYgKzEw Mzg3LDE4IEBAIENsdXN0ZXJTdG10OgogCQkJCQluLT5vcHRpb25zID0gMDsKIAkJCQkJaWYgKCQy KQogCQkJCQkJbi0+b3B0aW9ucyB8PSBDTFVPUFRfVkVSQk9TRTsKKwkJCQkJbi0+cGFyYW1zID0g TklMOworCQkJCQkkJCA9IChOb2RlKiluOworCQkJCX0KKworCQkJfCBDTFVTVEVSIG9wdF92ZXJi b3NlICcoJyB2YWNfYW5hbHl6ZV9vcHRpb25fbGlzdCAnKScgcXVhbGlmaWVkX25hbWUgY2x1c3Rl cl9pbmRleF9zcGVjaWZpY2F0aW9uCisJCQkJeworCQkJCQlDbHVzdGVyU3RtdCAqbiA9IG1ha2VO b2RlKENsdXN0ZXJTdG10KTsKKwkJCQkJbi0+cmVsYXRpb24gPSAkNjsKKwkJCQkJbi0+aW5kZXhu YW1lID0gJDc7CisJCQkJCWlmICgkMikKKwkJCQkJCW4tPm9wdGlvbnMgfD0gQ0xVT1BUX1ZFUkJP U0U7CisJCQkJCW4tPnBhcmFtcyA9ICQ0OwogCQkJCQkkJCA9IChOb2RlKiluOwogCQkJCX0KIAkJ CXwgQ0xVU1RFUiBvcHRfdmVyYm9zZQpAQCAtMTA0MDQsNiArMTA0MDksNyBAQCBDbHVzdGVyU3Rt dDoKIAkJCQkJbi0+b3B0aW9ucyA9IDA7CiAJCQkJCWlmICgkMikKIAkJCQkJCW4tPm9wdGlvbnMg fD0gQ0xVT1BUX1ZFUkJPU0U7CisJCQkJCW4tPnBhcmFtcyA9IE5JTDsKIAkJCQkJJCQgPSAoTm9k ZSopbjsKIAkJCQl9CiAJCQkvKiBrZXB0IGZvciBwcmUtOC4zIGNvbXBhdGliaWxpdHkgKi8KQEAg LTEwNDE1LDYgKzEwNDIxLDcgQEAgQ2x1c3RlclN0bXQ6CiAJCQkJCW4tPm9wdGlvbnMgPSAwOwog CQkJCQlpZiAoJDIpCiAJCQkJCQluLT5vcHRpb25zIHw9IENMVU9QVF9WRVJCT1NFOworCQkJCQlu LT5wYXJhbXMgPSBOSUw7CiAJCQkJCSQkID0gKE5vZGUqKW47CiAJCQkJfQogCQk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0 eS5jCmluZGV4IDYxNTRkMmM4YzYuLjBlMDc0ZDc3NDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC01MjYs NiArNTI2LDMzIEBAIFByb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwKIAkJCQkJCQkJ ZGVzdCwgcWMpOwogfQogCisvKiBQYXJzZSBwYXJhbXMgbm90IHBhcnNlZCBieSB0aGUgZ3JhbW1h ciAqLworc3RhdGljCit2b2lkIHBhcnNlX3JlaW5kZXhfcGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUmVpbmRleFN0bXQgKnN0bXQpCit7CisJTGlzdENlbGwgKmxjOworCWZvcmVhY2gobGMsIHN0 bXQtPnBhcmFtcykKKwl7CisJCURlZkVsZW0gICAgKm9wdCA9IChEZWZFbGVtICopIGxmaXJzdChs Yyk7CisKKwkJaWYgKHN0cmNtcChvcHQtPmRlZm5hbWUsICJ2ZXJib3NlIikgPT0gMCkKKwkJewor CQkJaWYgKGRlZkdldEJvb2xlYW4ob3B0KSkKKwkJCQlzdG10LT5vcHRpb25zIHw9IFJFSU5ERVhP UFRfVkVSQk9TRTsKKwkJCWVsc2UKKwkJCQlzdG10LT5vcHRpb25zICY9IH5SRUlOREVYT1BUX1ZF UkJPU0U7CisJCX0KKwkJZWxzZSBpZiAoc3RyY21wKG9wdC0+ZGVmbmFtZSwgImNvbmN1cnJlbnRs eSIpID09IDApCisJCQlzdG10LT5jb25jdXJyZW50ID0gdHJ1ZTsKKwkJZWxzZQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJy bXNnKCJ1bnJlY29nbml6ZWQgUkVJTkRFWCBvcHRpb24gXCIlc1wiIiwKKwkJCQkJCSBvcHQtPmRl Zm5hbWUpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgb3B0LT5sb2NhdGlvbikp KTsKKwl9Cit9CisKIC8qCiAgKiBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eSBpdHNlbGYgZGVhbHMg b25seSB3aXRoIHV0aWxpdHkgY29tbWFuZHMgZm9yCiAgKiB3aGljaCB3ZSBkbyBub3QgcHJvdmlk ZSBldmVudCB0cmlnZ2VyIHN1cHBvcnQuICBDb21tYW5kcyB0aGF0IGRvIGhhdmUKQEAgLTgxOCw3 ICs4NDUsNyBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVkU3RtdCAqcHN0bXQsCiAJ CQlicmVhazsKIAogCQljYXNlIFRfQ2x1c3RlclN0bXQ6Ci0JCQljbHVzdGVyKChDbHVzdGVyU3Rt dCAqKSBwYXJzZXRyZWUsIGlzVG9wTGV2ZWwpOworCQkJY2x1c3Rlcihwc3RhdGUsIChDbHVzdGVy U3RtdCAqKSBwYXJzZXRyZWUsIGlzVG9wTGV2ZWwpOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBUX1Zh Y3V1bVN0bXQ6CkBAIC05MjMsMTMgKzk1MCwxNCBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQ bGFubmVkU3RtdCAqcHN0bXQsCiAJCQkJCVByZXZlbnRJblRyYW5zYWN0aW9uQmxvY2soaXNUb3BM ZXZlbCwKIAkJCQkJCQkJCQkJICAiUkVJTkRFWCBDT05DVVJSRU5UTFkiKTsKIAorCQkJCXBhcnNl X3JlaW5kZXhfcGFyYW1zKHBzdGF0ZSwgc3RtdCk7CiAJCQkJc3dpdGNoIChzdG10LT5raW5kKQog CQkJCXsKIAkJCQkJY2FzZSBSRUlOREVYX09CSkVDVF9JTkRFWDoKLQkJCQkJCVJlaW5kZXhJbmRl eChzdG10LT5yZWxhdGlvbiwgc3RtdC0+b3B0aW9ucywgc3RtdC0+Y29uY3VycmVudCk7CisJCQkJ CQlSZWluZGV4SW5kZXgoc3RtdCk7CiAJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBSRUlOREVYX09C SkVDVF9UQUJMRToKLQkJCQkJCVJlaW5kZXhUYWJsZShzdG10LT5yZWxhdGlvbiwgc3RtdC0+b3B0 aW9ucywgc3RtdC0+Y29uY3VycmVudCk7CisJCQkJCQlSZWluZGV4VGFibGUoc3RtdCk7CiAJCQkJ CQlicmVhazsKIAkJCQkJY2FzZSBSRUlOREVYX09CSkVDVF9TQ0hFTUE6CiAJCQkJCWNhc2UgUkVJ TkRFWF9PQkpFQ1RfU1lTVEVNOgpAQCAtOTQ1LDcgKzk3Myw3IEBAIHN0YW5kYXJkX1Byb2Nlc3NV dGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwKIAkJCQkJCQkJCQkJCSAgKHN0bXQtPmtpbmQgPT0g UkVJTkRFWF9PQkpFQ1RfU0NIRU1BKSA/ICJSRUlOREVYIFNDSEVNQSIgOgogCQkJCQkJCQkJCQkJ ICAoc3RtdC0+a2luZCA9PSBSRUlOREVYX09CSkVDVF9TWVNURU0pID8gIlJFSU5ERVggU1lTVEVN IiA6CiAJCQkJCQkJCQkJCQkgICJSRUlOREVYIERBVEFCQVNFIik7Ci0JCQkJCQlSZWluZGV4TXVs dGlwbGVUYWJsZXMoc3RtdC0+bmFtZSwgc3RtdC0+a2luZCwgc3RtdC0+b3B0aW9ucywgc3RtdC0+ Y29uY3VycmVudCk7CisJCQkJCQlSZWluZGV4TXVsdGlwbGVUYWJsZXMoc3RtdCk7CiAJCQkJCQli cmVhazsKIAkJCQkJZGVmYXVsdDoKIAkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2Jq ZWN0IHR5cGU6ICVkIiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBi L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCBmNDE3ODVmMTFjLi5kZTg1NzcyZmY5 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0yMjU5LDIxICsyMjU5LDM0IEBAIHBzcWxfY29tcGxldGlv bihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAvKiBDTFVTVEVSICovCiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQ0xVU1RFUiIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVS WShRdWVyeV9mb3JfbGlzdF9vZl9jbHVzdGVyYWJsZXMsICJVTklPTiBTRUxFQ1QgJ1ZFUkJPU0Un Iik7Ci0JZWxzZSBpZiAoTWF0Y2hlcygiQ0xVU1RFUiIsICJWRVJCT1NFIikpCisJZWxzZSBpZiAo TWF0Y2hlcygiQ0xVU1RFUiIsICJWRVJCT1NFIikgfHwKKwkJCU1hdGNoZXMoIkNMVVNURVIiLCAi VkVSQk9TRSIsICIoKikiKSB8fAorCQkJTWF0Y2hlcygiQ0xVU1RFUiIsICIoKikiKSkKIAkJQ09N UExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfY2x1c3RlcmFibGVzLCBO VUxMKTsKIAkvKiBJZiB3ZSBoYXZlIENMVVNURVIgPHN0aD4sIHRoZW4gYWRkICJVU0lORyIgKi8K LQllbHNlIGlmIChNYXRjaGVzKCJDTFVTVEVSIiwgTWF0Y2hBbnlFeGNlcHQoIlZFUkJPU0V8T04i KSkpCisJZWxzZSBpZiAoTWF0Y2hlcygiQ0xVU1RFUiIsIE1hdGNoQW55RXhjZXB0KCJWRVJCT1NF fE9OfCh8KCopIikpKQogCQlDT01QTEVURV9XSVRIKCJVU0lORyIpOwogCS8qIElmIHdlIGhhdmUg Q0xVU1RFUiBWRVJCT1NFIDxzdGg+LCB0aGVuIGFkZCAiVVNJTkciICovCi0JZWxzZSBpZiAoTWF0 Y2hlcygiQ0xVU1RFUiIsICJWRVJCT1NFIiwgTWF0Y2hBbnkpKQorCWVsc2UgaWYgKE1hdGNoZXMo IkNMVVNURVIiLCAiVkVSQk9TRXwoKikiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIlVT SU5HIik7CiAJLyogSWYgd2UgaGF2ZSBDTFVTVEVSIDxzdGg+IFVTSU5HLCB0aGVuIGFkZCB0aGUg aW5kZXggYXMgd2VsbCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNMVVNURVIiLCBNYXRjaEFueSwg IlVTSU5HIikgfHwKLQkJCSBNYXRjaGVzKCJDTFVTVEVSIiwgIlZFUkJPU0UiLCBNYXRjaEFueSwg IlVTSU5HIikpCisJCQkgTWF0Y2hlcygiQ0xVU1RFUiIsICJWRVJCT1NFfCgqKSIsIE1hdGNoQW55 LCAiVVNJTkciKSkKIAl7CiAJCWNvbXBsZXRpb25faW5mb19jaGFycCA9IHByZXYyX3dkOwogCQlD T01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9pbmRleF9vZl90YWJsZSk7CiAJfQorCWVsc2Ug aWYgKEhlYWRNYXRjaGVzKCJDTFVTVEVSIiwgIigqIikgJiYKKwkJCSAhSGVhZE1hdGNoZXMoIkNM VVNURVIiLCAiKCopIikpCisJeworCQkvKgorCQkgKiBUaGlzIGZpcmVzIGlmIHdlJ3JlIGluIGFu IHVuZmluaXNoZWQgcGFyZW50aGVzaXplZCBvcHRpb24gbGlzdC4KKwkJICogZ2V0X3ByZXZpb3Vz X3dvcmRzIHRyZWF0cyBhIGNvbXBsZXRlZCBwYXJlbnRoZXNpemVkIG9wdGlvbiBsaXN0IGFzCisJ CSAqIG9uZSB3b3JkLCBzbyB0aGUgYWJvdmUgdGVzdCBpcyBjb3JyZWN0LgorCQkgKi8KKwkJaWYg KGVuZHNfd2l0aChwcmV2X3dkLCAnKCcpIHx8IGVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQkJ Q09NUExFVEVfV0lUSCgiVkVSQk9TRSIpOworCX0KIAogLyogQ09NTUVOVCAqLwogCWVsc2UgaWYg KE1hdGNoZXMoIkNPTU1FTlQiKSkKQEAgLTM0NzAsNyArMzQ4Myw3IEBAIHBzcWxfY29tcGxldGlv bihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCSAqIG9uZSB3b3JkLCBz byB0aGUgYWJvdmUgdGVzdCBpcyBjb3JyZWN0LgogCQkgKi8KIAkJaWYgKGVuZHNfd2l0aChwcmV2 X3dkLCAnKCcpIHx8IGVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQotCQkJQ09NUExFVEVfV0lUSCgi VkVSQk9TRSIpOworCQkJQ09NUExFVEVfV0lUSCgiQ09OQ1VSUkVOVExZIiwgIlZFUkJPU0UiKTsK IAl9CiAKIC8qIFNFQ1VSSVRZIExBQkVMICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9jbHVzdGVyLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jbHVzdGVyLmgKaW5kZXggMWVi MTQ0MjA0Yi4uYzc2MWI5NTc1YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvY2x1 c3Rlci5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NsdXN0ZXIuaApAQCAtMTQsMTEgKzE0 LDEyIEBACiAjZGVmaW5lIENMVVNURVJfSAogCiAjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5o IgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sb2Nr LmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsY2FjaGUuaCIKIAogCi1leHRlcm4gdm9pZCBjbHVzdGVy KENsdXN0ZXJTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpOworZXh0ZXJuIHZvaWQgY2x1c3Rl cihQYXJzZVN0YXRlICpwc3RhdGUsIENsdXN0ZXJTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwp OwogZXh0ZXJuIHZvaWQgY2x1c3Rlcl9yZWwoT2lkIHRhYmxlT2lkLCBPaWQgaW5kZXhPaWQsIGlu dCBvcHRpb25zLAogCQkJCQkJYm9vbCBpc1RvcExldmVsKTsKIGV4dGVybiB2b2lkIGNoZWNrX2lu ZGV4X2lzX2NsdXN0ZXJhYmxlKFJlbGF0aW9uIE9sZEhlYXAsIE9pZCBpbmRleE9pZCwKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvZGVmcmVtLmgKaW5kZXggYzI2YTEwMmIxNy4uYTk3YzAwYTAyZSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVm cmVtLmgKQEAgLTM0LDEwICszNCw5IEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIERlZmluZUluZGV4 KE9pZCByZWxhdGlvbklkLAogCQkJCQkJCQkgYm9vbCBjaGVja19ub3RfaW5fdXNlLAogCQkJCQkJ CQkgYm9vbCBza2lwX2J1aWxkLAogCQkJCQkJCQkgYm9vbCBxdWlldCk7Ci1leHRlcm4gdm9pZCBS ZWluZGV4SW5kZXgoUmFuZ2VWYXIgKmluZGV4UmVsYXRpb24sIGludCBvcHRpb25zLCBib29sIGNv bmN1cnJlbnQpOwotZXh0ZXJuIE9pZAlSZWluZGV4VGFibGUoUmFuZ2VWYXIgKnJlbGF0aW9uLCBp bnQgb3B0aW9ucywgYm9vbCBjb25jdXJyZW50KTsKLWV4dGVybiB2b2lkIFJlaW5kZXhNdWx0aXBs ZVRhYmxlcyhjb25zdCBjaGFyICpvYmplY3ROYW1lLCBSZWluZGV4T2JqZWN0VHlwZSBvYmplY3RL aW5kLAotCQkJCQkJCQkgIGludCBvcHRpb25zLCBib29sIGNvbmN1cnJlbnQpOworZXh0ZXJuIHZv aWQgUmVpbmRleEluZGV4KFJlaW5kZXhTdG10ICpzdG10KTsKK2V4dGVybiBPaWQJUmVpbmRleFRh YmxlKFJlaW5kZXhTdG10ICpzdG10KTsKK2V4dGVybiB2b2lkIFJlaW5kZXhNdWx0aXBsZVRhYmxl cyhSZWluZGV4U3RtdCAqc3RtdCk7CiBleHRlcm4gY2hhciAqbWFrZU9iamVjdE5hbWUoY29uc3Qg Y2hhciAqbmFtZTEsIGNvbnN0IGNoYXIgKm5hbWUyLAogCQkJCQkJCWNvbnN0IGNoYXIgKmxhYmVs KTsKIGV4dGVybiBjaGFyICpDaG9vc2VSZWxhdGlvbk5hbWUoY29uc3QgY2hhciAqbmFtZTEsIGNv bnN0IGNoYXIgKm5hbWUyLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGQ1MmM1NjMzMDUuLjRl MzE4OGZmODcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTMyMTEsNiArMzIxMSw3IEBAIHR5 cGVkZWYgc3RydWN0IENsdXN0ZXJTdG10CiAJUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxh dGlvbiBiZWluZyBpbmRleGVkLCBvciBOVUxMIGlmIGFsbCAqLwogCWNoYXIJICAgKmluZGV4bmFt ZTsJCS8qIG9yaWdpbmFsIGluZGV4IGRlZmluZWQgKi8KIAlpbnQJCQlvcHRpb25zOwkJLyogT1Ig b2YgQ2x1c3Rlck9wdGlvbiBmbGFncyAqLworCUxpc3QJCSpwYXJhbXM7CQkvKiBQYXJhbXMgbm90 IGZ1cnRoZXIgcGFyc2VkIGJ5IHRoZSBncmFtbWFyICovCiB9IENsdXN0ZXJTdG10OwogCiAvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMzcxLDYgKzMzNzIsNyBAQCB0eXBlZGVmIHN0cnVj dCBSZWluZGV4U3RtdAogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyogVGFibGUgb3IgaW5kZXgg dG8gcmVpbmRleCAqLwogCWNvbnN0IGNoYXIgKm5hbWU7CQkJLyogbmFtZSBvZiBkYXRhYmFzZSB0 byByZWluZGV4ICovCiAJaW50CQkJb3B0aW9uczsJCS8qIFJlaW5kZXggb3B0aW9ucyBmbGFncyAq LworCUxpc3QJCSpwYXJhbXM7CQkvKiBQYXJhbXMgbm90IGZ1cnRoZXIgcGFyc2VkIGJ5IHRoZSBn cmFtbWVyICovCiAJYm9vbAkJY29uY3VycmVudDsJCS8qIHJlaW5kZXggY29uY3VycmVudGx5PyAq LwogfSBSZWluZGV4U3RtdDsKIAoKYmFzZS1jb21taXQ6IGZkNWUzYjI5MTQxNWU2Y2Y1NTQwOGFm MTI4MjU4NWM5NDU0NjRjOGYKLS0gCjIuMTkuMQoK --=_2649d5b7d06298c9fe864b2c58503088--