Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gQCDb-0002s3-2H for pgsql-hackers@arkaria.postgresql.org; Fri, 23 Nov 2018 14:14:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1gQCDZ-0002JG-HU for pgsql-hackers@arkaria.postgresql.org; Fri, 23 Nov 2018 14:14:01 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gQCDZ-0002J5-1B for pgsql-hackers@lists.postgresql.org; Fri, 23 Nov 2018 14:14:01 +0000 Received: from mail.postgrespro.ru ([93.174.131.138]) by magus.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1gQCDV-0007oK-E4 for pgsql-hackers@postgresql.org; Fri, 23 Nov 2018 14:14:00 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.postgrespro.ru (Postfix) with ESMTP id 9080F21CBA52; Fri, 23 Nov 2018 17:13:55 +0300 (MSK) X-Virus-Scanned: Debian amavisd-new at postgrespro.ru X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=x tagged_above=-99 required=4 WHITELISTED tests=[] autolearn=unavailable Received: from Zloj-machine (gw.postgrespro.ru [93.174.131.141]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id 42A9A21CBA51; Fri, 23 Nov 2018 17:13:55 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1542982435; bh=mlhO86KZ2IHJ4QU+Sn0CiBvqJ5tP+r6aAjCr7PNTq/c=; h=Subject:From:To:Cc:Date:In-Reply-To:References; b=iRWVsHEpJ5HoMj0PCoCDWOzjgUagz9NYo0cL18ljSBhLHzHKj0lDM1efy4zHVIPpS 2PKfgcckYySG6seUcpgHKPj+6qY7rMUGAgYaOMi/ZY1Sp0bScbYNQyFt71hAswfdTu v9eqAtxzJhq4NhxLf0NeU1VDoDnDcBUlbMb8c3us= Message-ID: <2239fec8b8369bb845ecce8d8504adf6c0214ce5.camel@postgrespro.ru> Subject: Re: Psql patch to show access methods info From: Sergey Cherkashin To: Alvaro Herrera Cc: Michael Paquier , Nikita Glukhov , pgsql-hackers@postgresql.org Date: Fri, 23 Nov 2018 17:13:24 +0300 In-Reply-To: <20181120134241.36tjfswliqimvncv@alvherre.pgsql> References: <20181120134241.36tjfswliqimvncv@alvherre.pgsql> Organization: Postgres Professional Content-Type: multipart/mixed; boundary="=-q5MTxHn4NRpdUTmz/HSU" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=-q5MTxHn4NRpdUTmz/HSU Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit > \dA{f,p,fo,fp,oc} > Please explain what these are. We adhere to the following logic f - families fo - operators in families fp - procedures in families p - access method properties oc - operator classes > I think this is two patches -- one being the \dip/\dicp part, the > other > the \dA additions. Let's deal with them separately? The attached patches are applied sequentially: first 0003- psql_add_am_info.patch, then 0003-psql_add_index_info.patch. Best regards, Sergey Cherkashin. --=-q5MTxHn4NRpdUTmz/HSU Content-Disposition: attachment; filename="0003-psql_add_am_info.patch" Content-Type: text/x-patch; name="0003-psql_add_am_info.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKaW5kZXggYzEzNGJjYTgwOS4uZTI1NDEyYjdjZSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK QEAgLTY3NSw3ICs2NzUsNyBAQAogICAgc2VhcmNoIGFuZCBvcmRlcmluZyBwdXJwb3Nlcy4pCiAg IDwvcGFyYT4KIAotICA8dGFibGU+CisgIDx0YWJsZSBpZD0iY2F0YWxvZy1wZy1hbW9wLXRhYmxl Ij4KICAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19hbW9wPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90 aXRsZT4KIAogICAgPHRncm91cCBjb2xzPSI0Ij4KQEAgLTgxOCw3ICs4MTgsNyBAQAogICAgaXMg b25lIHJvdyBmb3IgZWFjaCBzdXBwb3J0IGZ1bmN0aW9uIGJlbG9uZ2luZyB0byBhbiBvcGVyYXRv ciBmYW1pbHkuCiAgIDwvcGFyYT4KIAotICA8dGFibGU+CisgIDx0YWJsZSBpZD0iY2F0YWxvZy1w Zy1hbXByb2MtdGFibGUiPgogICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2FtcHJvYzwvc3RydWN0 bmFtZT4gQ29sdW1uczwvdGl0bGU+CiAKICAgIDx0Z3JvdXAgY29scz0iNCI+CkBAIC00NDIxLDcg KzQ0MjEsNyBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50 Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgT3BlcmF0b3IgY2xhc3NlcyBh cmUgZGVzY3JpYmVkIGF0IGxlbmd0aCBpbiA8eHJlZiBsaW5rZW5kPSJ4aW5kZXgiLz4uCiAgIDwv cGFyYT4KIAotICA8dGFibGU+CisgIDx0YWJsZSBpZD0iY2F0YWxvZy1wZy1vcGNsYXNzLXRhYmxl Ij4KICAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19vcGNsYXNzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5z PC90aXRsZT4KIAogICAgPHRncm91cCBjb2xzPSI0Ij4KQEAgLTQ2ODMsNyArNDY4Myw3IEBAIFND UkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNl YWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICBPcGVyYXRvciBmYW1pbGllcyBhcmUgZGVzY3JpYmVk IGF0IGxlbmd0aCBpbiA8eHJlZiBsaW5rZW5kPSJ4aW5kZXgiLz4uCiAgIDwvcGFyYT4KIAotICA8 dGFibGU+CisgIDx0YWJsZSBpZD0iY2F0YWxvZy1wZy1vcGZhbWlseS10YWJsZSI+CiAgICA8dGl0 bGU+PHN0cnVjdG5hbWU+cGdfb3BmYW1pbHk8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgog CiAgICA8dGdyb3VwIGNvbHM9IjQiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wc3Fs LXJlZi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IDZlNmQwZjQy ZDEuLmZjZGUwMWIyZDQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAgLTEyMDQsNiArMTIwNCwx MDUgQEAgdGVzdGRiPSZndDsKICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVu dHJ5PgogCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT4KKyAgICAgICAgICA8 bGl0ZXJhbD5cZEFmCisgICAgICAgICAgWyA8bGluayBsaW5rZW5kPSJhcHAtcHNxbC1wYXR0ZXJu cyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFjY2Vzcy1tZXRob2QtcGF0dGVybjwv cmVwbGFjZWFibGU+PC9saW5rPgorICAgICAgICAgICAgWzxsaW5rIGxpbmtlbmQ9ImFwcC1wc3Fs LXBhdHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3BlcmF0b3ItZmFtaWx5 LXBhdHRlcm48L3JlcGxhY2VhYmxlPjwvbGluaz5dXQorICAgICAgICAgIDwvbGl0ZXJhbD4KKyAg ICAgICAgPC90ZXJtPgorCisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAg ICAgIExpc3RzIG9wZXJhdG9yIGZhbWlsaWVzICg8eHJlZiBsaW5rZW5kPSJjYXRhbG9nLXBnLW9w ZmFtaWx5LXRhYmxlIi8+KS4KKyAgICAgICAgSWYgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmFjY2Vzcy1tZXRob2QtcGF0dGVybjwvcmVwbGFjZWFibGU+CisgICAgICAgIGlzIHNwZWNp ZmllZCwgb25seSBmYW1pbGllcyB3aG9zZSBhY2Nlc3MgbWV0aG9kIG5hbWUgbWF0Y2hlcyB0aGUg cGF0dGVybgorICAgICAgICBhcmUgc2hvd24uIElmCisgICAgICAgIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5vcGVyYXRvci1mYW1pbHktcGF0dGVybjwvcmVwbGFjZWFibGU+CisgICAg ICAgIGlzIHNwZWNpZmllZCwgb25seSBvcGVyYXRvciBmYW1pbGllcyBhc3NvY2lhdGVkIHdpdGgg d2hvc2UgbmFtZSBtYXRjaGVzCisgICAgICAgIHRoZSBwYXR0ZXJuIGFyZSBzaG93bi4gSWYgPGxp dGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlCisgICAgICAgIGNvbW1hbmQgbmFt ZSwgZWFjaCBvcGVyYXRvciBmYW1pbHkgaXMgbGlzdGVkIHdpdGggaXQncyBvd25lci4KKyAgICAg ICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisK KyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPgorICAgICAgICAgIDxsaXRlcmFs PlxkQWZvCisgICAgICAgICAgICBbPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hY2Nlc3MtbWV0aG9kLXBhdHRlcm48L3JlcGxh Y2VhYmxlPjwvbGluaz4KKyAgICAgICAgICAgICAgWzxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBh dHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3BlcmF0b3ItZmFtaWx5LXBh dHRlcm48L3JlcGxhY2VhYmxlPjwvbGluaz5dXQorICAgICAgICAgIDwvbGl0ZXJhbD4KKyAgICAg ICAgPC90ZXJtPgorCisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAg IExpc3RzIG9wZXJhdG9ycyAoPHhyZWYgbGlua2VuZD0iY2F0YWxvZy1wZy1hbW9wLXRhYmxlIi8+ KSBhc3NvY2lhdGVkCisgICAgICAgIHdpdGggYWNjZXNzIG1ldGhvZCBvcGVyYXRvciBmYW1pbGll cy4gSWYKKyAgICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFjY2Vzcy1tZXRo b2QtcGF0dHRlcm48L3JlcGxhY2VhYmxlPiBpcworICAgICAgICBzcGVjaWZpZWQsIG9ubHkgb3Bl cmF0b3JzIGFzc29jaWF0ZWQgd2l0aCBhY2Nlc3MgbWV0aG9kIHdob3NlIG5hbWUKKyAgICAgICAg bWF0Y2hlcyBwYXR0ZXJuIGFyZSBzaG93bi4gSWYKKyAgICAgICAgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm9wZXJhdG9yLWZhbWlseS1wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMKKyAg ICAgICAgc3BlY2lmaWVkLCBvbmx5IG9wZXJhdG9ycyBhc3NvY2lhdGVkIHdpdGggZmFtaWxpZXMg d2hvc2UgbmFtZSBtYXRjaGVzCisgICAgICAgIHRoZSBwYXR0ZXJuIGFyZSBzaG93bi4KKyAgICAg ICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisK KyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPgorICAgICAgICAgIDxsaXRlcmFs PlxkQWZwCisgICAgICAgICAgICBbPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hY2Nlc3MtbWV0aG9kLXBhdHRlcm48L3JlcGxh Y2VhYmxlPjwvbGluaz4KKyAgICAgICAgICAgICAgWzxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBh dHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3BlcmF0b3ItZmFtaWx5LXBh dHRlcm48L3JlcGxhY2VhYmxlPjwvbGluaz5dXQorICAgICAgICAgIDwvbGl0ZXJhbD4KKyAgICAg ICAgPC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICBM aXN0IHByb2NlZHVyZXMgKDx4cmVmIGxpbmtlbmQ9ImNhdGFsb2ctcGctYW1wcm9jLXRhYmxlIi8+ KSBhc3NvY2lhdGVkCisgICAgICAgIHdpdGggYWNjZXNzIG1ldGhvZCBvcGVyYXRvciBmYW1pbGll cy4KKyAgICAgICAgSWYgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFjY2Vzcy1tZXRo b2QtcGF0dHRlcm48L3JlcGxhY2VhYmxlPgorICAgICAgICBpcyBzcGVjaWZpZWQsIG9ubHkgcHJv Y2VkdXJlcyBhc3NvY2lhdGVkIHdpdGggYWNjZXNzIG1ldGhvZCB3aG9zZSBuYW1lCisgICAgICAg IG1hdGNoZXMgcGF0dGVybiBhcmUgc2hvd24uCisgICAgICAgIElmIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5vcGVyYXRvci1mYW1pbHktcGF0dGVybjwvcmVwbGFjZWFibGU+CisgICAg ICAgIGlzIHNwZWNpZmllZCwgb25seSBwcm9jZWR1cmVzIGFzc29jaWF0ZWQgd2l0aCBmYW1pbGll cyB3aG9zZSBuYW1lCisgICAgICAgIG1hdGNoZXMgdGhlIHBhdHRlcm4gYXJlIHNob3duLgorICAg ICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+CisgICAgICAgICAgPGxpdGVy YWw+XGRBb2MKKyAgICAgICAgICAgIFs8bGluayBsaW5rZW5kPSJhcHAtcHNxbC1wYXR0ZXJucyI+ PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFjY2Vzcy1tZXRob2QtcGF0dGVybjwvcmVw bGFjZWFibGU+PC9saW5rPgorICAgICAgICAgICAgICBbPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwt cGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcGVyYXRvci1jbGFzcy1w YXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+XV0KKyAgICAgICAgICA8L2xpdGVyYWw+CisgICAg ICAgIDwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAg U2hvd3MgaW5kZXggYWNjZXNzIG1ldGhvZCBvcGVyYXRvciBjbGFzc2VzIGxpc3RlZCBpbgorICAg ICAgICA8eHJlZiBsaW5rZW5kPSJjYXRhbG9nLXBnLW9wY2xhc3MtdGFibGUiLz4uCisgICAgICAg IElmIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hY2Nlc3MtbWV0aG9kLXBhdHR0ZXJu PC9yZXBsYWNlYWJsZT4KKyAgICAgICAgaXMgc3BlY2lmaWVkLCBvbmx5IG9wZXJhdG9yIGNsYXNz ZXMgYXNzb2NpYXRlZCB3aXRoIGFjY2VzcyBtZXRob2Qgd2hvc2UKKyAgICAgICAgbmFtZSBtYXRj aGVzIHBhdHRlcm4gYXJlIHNob3duLgorICAgICAgICBJZiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+b3BlcmF0b3ItY2xhc3MtcGF0dGVybjwvcmVwbGFjZWFibGU+CisgICAgICAgIGlz IHNwZWNpZmllZCwgb25seSBwcm9jZWR1cmVzIGFzc29jaWF0ZWQgd2l0aCBmYW1pbGllcyB3aG9z ZSBuYW1lCisgICAgICAgIG1hdGNoZXMgdGhlIHBhdHRlcm4gYXJlIHNob3duLgorICAgICAgICA8 L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGRBcCBbIDxsaW5rIGxp bmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGF0dGVybjwvcmVwbGFjZWFibGU+PC9saW5rPiBdPC9saXRlcmFsPjwvdGVybT4KKworICAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICBTaG93cyBhY2Nlc3MgbWV0aG9k IHByb3BlcnRpZXMgbGlzdGVkIGluCisgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9ucy1p bmZvLWluZGV4YW0tcHJvcHMiLz4uCisgICAgICAgIElmIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMgc3BlY2lmaWVkLAorICAgICAgICBvbmx5 IGFjY2VzcyBtZXRob2RzIHdob3NlIG5hbWVzIG1hdGNoIHRoZSBwYXR0ZXJuIGFyZSBzaG93bi4K KyAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50 cnk+CisKICAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxkYlsr XSBbIDxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+PC9saW5rPiBdPC9saXRlcmFsPjwvdGVy bT4KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9j b21tYW5kLmMKaW5kZXggZWU4OGUxY2E1Yy4uNGQwZjYxOTE4NiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC03MTksNyAr NzE5LDIzIEBAIGV4ZWNfY29tbWFuZF9kKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBh Y3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpjbWQpCiAJCQkJCXN1Y2Nlc3MgPSBsaXN0VGFibGVz KCJ0dm1zRSIsIE5VTEwsIHNob3dfdmVyYm9zZSwgc2hvd19zeXN0ZW0pOwogCQkJCWJyZWFrOwog CQkJY2FzZSAnQSc6Ci0JCQkJc3VjY2VzcyA9IGRlc2NyaWJlQWNjZXNzTWV0aG9kcyhwYXR0ZXJu LCBzaG93X3ZlcmJvc2UpOworCQkJCXsKKwkJCQkJY2hhcgkgICAqcGF0dGVybjIgPSBwc3FsX3Nj YW5fc2xhc2hfb3B0aW9uKHNjYW5fc3RhdGUsIE9UX05PUk1BTCwgTlVMTCwgdHJ1ZSk7CisKKwkJ CQkJaWYgKHN0cm5jbXAoY21kLCAiZEFwIiwgMykgPT0gMCkKKwkJCQkJCXN1Y2Nlc3MgPSBkZXNj cmliZUFjY2Vzc01ldGhvZFByb3BlcnRpZXMocGF0dGVybik7CisJCQkJCWVsc2UgaWYgKHN0cm5j bXAoY21kLCAiZEFmbyIsIDQpID09IDApCisJCQkJCQlzdWNjZXNzID0gbGlzdEZhbWlseUNsYXNz T3BlcmF0b3JzKHBhdHRlcm4sIHBhdHRlcm4yKTsKKwkJCQkJZWxzZSBpZiAoc3RybmNtcChjbWQs ICJkQWZwIiwgNCkgPT0gMCkKKwkJCQkJCXN1Y2Nlc3MgPSBsaXN0T3BlcmF0b3JGYW1pbHlQcm9j ZWR1cmVzKHBhdHRlcm4sIHBhdHRlcm4yKTsKKwkJCQkJZWxzZSBpZiAoc3RybmNtcChjbWQsICJk QWYiLCAzKSA9PSAwKQorCQkJCQkJc3VjY2VzcyA9IGxpc3RBY2Nlc3NNZXRob2RPcGVyYXRvckZh bWlsaWVzKHBhdHRlcm4sIHBhdHRlcm4yLCBzaG93X3ZlcmJvc2UpOworCQkJCQllbHNlIGlmIChz dHJuY21wKGNtZCwgImRBb2MiLCA0KSA9PSAwKQorCQkJCQkJc3VjY2VzcyA9IGRlc2NyaWJlQWNj ZXNzTWV0aG9kT3BlcmF0b3JDbGFzc2VzKHBhdHRlcm4sIHBhdHRlcm4yLCBzaG93X3ZlcmJvc2Up OworCQkJCQllbHNlCisJCQkJCQlzdWNjZXNzID0gZGVzY3JpYmVBY2Nlc3NNZXRob2RzKHBhdHRl cm4sIHNob3dfdmVyYm9zZSk7CisJCQkJCWZyZWUocGF0dGVybjIpOworCQkJCX0KIAkJCQlicmVh azsKIAkJCWNhc2UgJ2EnOgogCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZUFnZ3JlZ2F0ZXMocGF0dGVy biwgc2hvd192ZXJib3NlLCBzaG93X3N5c3RlbSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDBhMTgxYjAxZDkuLmQw OTA0MDEzZDkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCkBAIC01NjExLDMgKzU2MTEsMzYwIEBAIHByaW50QUNMQ29sdW1u KFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgY2hhciAqY29sbmFtZSkKIAkJCQkJCSAgInBnX2NhdGFs b2cuYXJyYXlfdG9fc3RyaW5nKCVzLCAnXFxuJykgQVMgXCIlc1wiIiwKIAkJCQkJCSAgY29sbmFt ZSwgZ2V0dGV4dF9ub29wKCJBY2Nlc3MgcHJpdmlsZWdlcyIpKTsKIH0KKworLyoKKyAqIFxkQXAK KyAqIERlc2NyaWJlcyBhY2Nlc3MgbWV0aG9kIHByb3BlcnRpZXMuCisgKgorICogVGFrZXMgYW4g b3B0aW9uYWwgcmVnZXhwIHRvIHNlbGVjdCBwYXJ0aWN1bGFyIGFjY2VzcyBtZXRob2RzCisgKi8K K2Jvb2wKK2Rlc2NyaWJlQWNjZXNzTWV0aG9kUHJvcGVydGllcyhjb25zdCBjaGFyICpwYXR0ZXJu KQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVzOworCXByaW50UXVl cnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2Nv bHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwor CWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJ CSAgcHNldC5zdmVyc2lvbiA+PSA5MDYwMCA/CisJCQkJCSAgIlNFTEVDVCBhLmFtbmFtZSBBUyBc IiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19pbmRleGFtX2hhc19wcm9wZXJ0eShh Lm9pZCwgJ2Nhbl9vcmRlcicpIEFTIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBn X2luZGV4YW1faGFzX3Byb3BlcnR5KGEub2lkLCAnY2FuX3VuaXF1ZScpIEFTIFwiJXNcIixcbiIK KwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2luZGV4YW1faGFzX3Byb3BlcnR5KGEub2lkLCAnY2Fu X211bHRpX2NvbCcpIEFTIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2luZGV4 YW1faGFzX3Byb3BlcnR5KGEub2lkLCAnY2FuX2V4Y2x1ZGUnKSBBUyBcIiVzXCIsXG4iCisJCQkJ CSAgOgorCQkJCQkgICJTRUxFQ1QgYS5hbW5hbWUgQVMgXCIlc1wiLFxuIgorCQkJCQkgICIgIGEu YW1jYW5vcmRlciBBUyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgYS5hbWNhbnVuaXF1ZSBBUyBcIiVz XCIsXG4iCisJCQkJCSAgIiAgYS5hbWNhbm11bHRpY29sIEFTIFwiJXNcIixcbiIKKwkJCQkJICAi ICBhLmFtZ2V0dHVwbGUgPD4gMCBBUyBcIiVzXCIsXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgi QU0gTmFtZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiQ2FuIG9yZGVyIiksCisJCQkJCSAgZ2V0 dGV4dF9ub29wKCJDYW4gdW5pcXVlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDYW4gbXVsdGkg Y29sIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJDYW4gZXhjbHVkZSIpKTsKKworCWFwcGVuZFBR RXhwQnVmZmVyKCZidWYsCisJCQkJCSAgcHNldC5zdmVyc2lvbiA+PSAxMTAwMDAKKwkJCQkJCT8g InBnX2NhdGFsb2cucGdfaW5kZXhhbV9oYXNfcHJvcGVydHkoYS5vaWQsICdjYW5faW5jbHVkZScp IEFTIFwiJXNcIiIKKwkJCQkJCTogIkZBTFNFIEFTIFwiJXNcIiIsCisJCQkJCSAgZ2V0dGV4dF9u b29wKCJDYW4gaW5jbHVkZSIpKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJ CQkgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX2FtIGFcbiIpOworCisJcHJvY2Vzc1NRTE5hbWVQYXR0 ZXJuKHBzZXQuZGIsICZidWYsIHBhdHRlcm4sIGZhbHNlLCBmYWxzZSwKKwkJCQkJCSAgTlVMTCwg ImFtbmFtZSIsIE5VTEwsIE5VTEwpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9S REVSIEJZIDE7Iik7CisJcmVzID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZl cigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJuIGZhbHNlOworCisJbXlvcHQubnVsbFByaW50 ID0gTlVMTDsKKwlteW9wdC50aXRsZSA9IF8oIkFjY2VzcyBtZXRob2QgcHJvcGVydGllcyIpOwor CW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOworCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5z ID0gdHJhbnNsYXRlX2NvbHVtbnM7CisJbXlvcHQubl90cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0 aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsKKworCXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQu cXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKworCVBRY2xlYXIocmVzKTsKKwlyZXR1 cm4gdHJ1ZTsKK30KKworLyoKKyAqIFxkQWYKKyAqIExpc3RzIG9wZXJhdG9yIGZhbWlsaWVzIGFz c29jaWF0ZWQgd2l0aCBhY2Nlc3MgbWV0aG9kLgorICoKKyAqIFRha2VzIGFuIG9wdGlvbmFsIHJl Z2V4cCB0byBzZWxlY3QgcGFydGljdWxhciBhY2Nlc3MgbWV0aG9kcworICogYW5kIG9wZXJhdG9y IGZhbWlsaWVzCisgKi8KK2Jvb2wKK2xpc3RBY2Nlc3NNZXRob2RPcGVyYXRvckZhbWlsaWVzKGNv bnN0IGNoYXIgKmFjY2Vzc19tZXRob2RfcGF0dGVybiwKKwkJCQkJCQkJIGNvbnN0IGNoYXIgKmZh bWlseV9wYXR0ZXJuLCBib29sIHZlcmJvc2UpCit7CisJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKwlQ R3Jlc3VsdCAgICpyZXM7CisJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKKwlib29s CQloYXZlX3doZXJlID0gZmFsc2U7CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVt bnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisKKwlpbml0UFFFeHBCdWZmZXIo JmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1RcbiIKKwkJ CQkJICAiICBhbS5hbW5hbWUgQVMgXCIlc1wiLFxuIgorCQkJCQkgICIgIG5zLm5zcG5hbWUgQVMg XCIlc1wiLFxuIgorCQkJCQkgICIgIG9mLm9wZm5hbWUgQVMgXCIlc1wiXG4iLAorCQkJCQkgIGdl dHRleHRfbm9vcCgiQWNjZXNzIG1ldGhvZCIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1h IiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIikpOworCWlmICh2ZXJib3NlKQorCQlhcHBl bmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLCAgdXNyLnVzZW5hbWUgQVMgXCIlc1wiXG4i LAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIikpOworCWFwcGVuZFBRRXhwQnVmZmVyKCZi dWYsCisJCQkJCSAgIiAgRlJPTSBwZ19jYXRhbG9nLnBnX29wZmFtaWx5IG9mXG4iCisJCQkJCSAg IiAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfYW0gYW0gT04gYW0ub2lkID0gb2Yub3BmbWV0aG9k XG4iCisJCQkJCSAgIiAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG5zIE9OIG9m Lm9wZm5hbWVzcGFjZSA9IG5zLm9pZFxuIik7CisJaWYgKHZlcmJvc2UpCisJCWFwcGVuZFBRRXhw QnVmZmVyKCZidWYsCisJCQkJCQkgICIgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3VzZXIgdXNy IE9OIG9mLm9wZm93bmVyID0gdXNyLnVzZXN5c2lkXG4iKTsKKwlpZiAoYWNjZXNzX21ldGhvZF9w YXR0ZXJuKQorCQloYXZlX3doZXJlID0gcHJvY2Vzc1NRTE5hbWVQYXR0ZXJuKHBzZXQuZGIsICZi dWYsIGFjY2Vzc19tZXRob2RfcGF0dGVybiwKKwkJCQkJCQkJCQkgICBmYWxzZSwgZmFsc2UsICJh bS5hbW5hbWUiLAorCQkJCQkJCQkJCSAgICJhbS5hbW5hbWUiLCBOVUxMLCBOVUxMKTsKKwlpZiAo ZmFtaWx5X3BhdHRlcm4pCisJCXByb2Nlc3NTUUxOYW1lUGF0dGVybihwc2V0LmRiLCAmYnVmLCBm YW1pbHlfcGF0dGVybiwgaGF2ZV93aGVyZSwgZmFsc2UsCisJCQkJCQkJICAibnMubnNwbmFtZSIs ICJvZi5vcGZuYW1lIiwgTlVMTCwgTlVMTCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVm LCAiT1JERVIgQlkgMSwgMjsiKTsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0ZXJt UFFFeHBCdWZmZXIoJmJ1Zik7CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCW15b3B0 Lm51bGxQcmludCA9IE5VTEw7CisJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIG9wZXJhdG9yIGZh bWlsaWVzIik7CisJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisJbXlvcHQudHJhbnNs YXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKKwlteW9wdC5uX3RyYW5zbGF0ZV9jb2x1 bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJcHJpbnRRdWVyeShyZXMsICZt eW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCisJUFFjbGVhcihy ZXMpOworCXJldHVybiB0cnVlOworCit9CisKKy8qCisgKiBcZEFmbworICogTGlzdHMgb3BlcmF0 b3JzIGFzc29jaWF0ZWQgd2l0aCBhY2Nlc3MgbWV0aG9kIG9wZXJhdG9yIGZhbWlsaWVzLgorICoK KyAqIFRha2VzIGFuIG9wdGlvbmFsIHJlZ2V4cCB0byBzZWxlY3QgcGFydGljdWxhciBhY2Nlc3Mg bWV0aG9kcworICogYW5kIG9wZXJhdG9yIGZhbWlsaWVzCisgKi8KK2Jvb2wKK2xpc3RGYW1pbHlD bGFzc09wZXJhdG9ycyhjb25zdCBjaGFyICphY2Nlc3NfbWV0aG9kX3BhdHRlcm4sCisJCQkJCQkg Y29uc3QgY2hhciAqZmFtaWx5X3BhdHRlcm4pCit7CisJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKwlQ R3Jlc3VsdCAgICpyZXM7CisJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKKwlib29s CQloYXZlX3doZXJlID0gZmFsc2U7CisKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29s dW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJCQkJ IGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2V9OworCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOwor CisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiU0VMRUNUIERJU1RJTkNUXG4iCisJ CQkJCSAgIiAgYW0uYW1uYW1lIEFTIFwiJXNcIixcbiIKKwkJCQkJICAiICBuc2YubnNwbmFtZSBB UyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgb2Yub3BmbmFtZSBBUyBcIiVzXCIsXG4iCisJCQkJCSAg IiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZShvLmFtb3BsZWZ0dHlwZSwgTlVMTCkgQVMgXCIlc1wi LFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUoby5hbW9wcmlnaHR0eXBlLCBO VUxMKSBBUyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgby5hbW9wc3RyYXRlZ3kgQVMgXCIlc1wiLFxu IgorCQkJCQkgICIgIENBU0UgV0hFTiBwZ19jYXRhbG9nLnBnX29wZXJhdG9yX2lzX3Zpc2libGUo b3Aub2lkKSBcbiIKKwkJCQkJICAiICAgIFRIRU4gb3Aub3BybmFtZTo6cGdfY2F0YWxvZy50ZXh0 IFxuIgorCQkJCQkgICIgICAgRUxTRSBvLmFtb3BvcHI6OnBnX2NhdGFsb2cucmVnb3Blcjo6cGdf Y2F0YWxvZy50ZXh0IFxuIgorCQkJCQkgICIgIEVORCBBUyBcIiVzXCIsXG4iCisJCQkJCSAgIiAg Q0FTRSBvLmFtb3BwdXJwb3NlXG4iCisJCQkJCSAgIiAgICBXSEVOICdvJyBUSEVOICclcydcbiIK KwkJCQkJICAiICAgIFdIRU4gJ3MnIFRIRU4gJyVzJ1xuIgorCQkJCQkgICIgIEVORCBBUyBcIiVz XCIsXG4iCisJCQkJCSAgIiAgb2ZzLm9wZm5hbWUgQVMgXCIlc1wiXG4iCisJCQkJCSAgIkZST00g cGdfY2F0YWxvZy5wZ19hbW9wIG9cbiIKKwkJCQkJICAiICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5w Z19vcGVyYXRvciBvcCBPTiBvcC5vaWQgPSBvLmFtb3BvcHJcbiIKKwkJCQkJICAiICBMRUZUIEpP SU4gcGdfY2F0YWxvZy5wZ19vcGZhbWlseSBvZiBPTiBvZi5vaWQgPSBvLmFtb3BmYW1pbHlcbiIK KwkJCQkJICAiICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19vcGZhbWlseSBvZnMgT04gb2ZzLm9p ZCA9IG8uYW1vcHNvcnRmYW1pbHlcbiIKKwkJCQkJICAiICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5w Z19hbSBhbSBPTiBhbS5vaWQgPSBvZi5vcGZtZXRob2QgQU5EIGFtLm9pZCA9IG8uYW1vcG1ldGhv ZFxuIgorCQkJCQkgICIgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuc2YgT04g b2Yub3BmbmFtZXNwYWNlID0gbnNmLm9pZFxuIiwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkFNIiks CisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPcGZhbWlseSBTY2hlbWEiKSwKKwkJCQkJICBnZXR0ZXh0 X25vb3AoIk9wZmFtaWx5IE5hbWUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkxlZnQgdHlwZSIp LAorCQkJCQkgIGdldHRleHRfbm9vcCgiUmlnaHQgdHlwZSIpLAorCQkJCQkgIGdldHRleHRfbm9v cCgiU3RyYXRlZ3kiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk9wZXJhdG9yIiksCisJCQkJCSAg Z2V0dGV4dF9ub29wKCJvcmRlcmluZyIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgic2VhcmNoIiks CisJCQkJCSAgZ2V0dGV4dF9ub29wKCJQdXJwb3NlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJT b3J0IGZhbWlseSIpKTsKKworCWlmIChhY2Nlc3NfbWV0aG9kX3BhdHRlcm4pCisJCWhhdmVfd2hl cmUgPSBwcm9jZXNzU1FMTmFtZVBhdHRlcm4ocHNldC5kYiwgJmJ1ZiwgYWNjZXNzX21ldGhvZF9w YXR0ZXJuLAorCQkJCQkJCQkJCSAgIGZhbHNlLCBmYWxzZSwgTlVMTCwgImFtLmFtbmFtZSIsCisJ CQkJCQkJCQkJICAgTlVMTCwgTlVMTCk7CisKKwlpZiAoZmFtaWx5X3BhdHRlcm4pCisJCXByb2Nl c3NTUUxOYW1lUGF0dGVybihwc2V0LmRiLCAmYnVmLCBmYW1pbHlfcGF0dGVybiwgaGF2ZV93aGVy ZSwgZmFsc2UsCisJCQkJCQkJICAibnNmLm5zcG5hbWUiLCAib2Yub3BmbmFtZSIsIE5VTEwsIE5V TEwpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDEsIDIsIDMsIDQs IDUsIDY7Iik7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJdGVybVBRRXhwQnVmZmVy KCZidWYpOworCWlmICghcmVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwlteW9wdC5udWxsUHJpbnQg PSBOVUxMOworCW15b3B0LnRpdGxlID0gXygiTGlzdCBvcGVyYXRvcnMgb2YgZmFtaWx5IHJlbGF0 ZWQgdG8gYWNjZXNzIG1ldGhvZCIpOworCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwor CW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7CisJbXlvcHQubl90 cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsKKworCXByaW50 UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsK KworCVBRY2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIFxkQWZwCisgKiBM aXN0cyBwcm9jZWR1cmVzIGFzc29jaWF0ZWQgd2l0aCBhY2Nlc3MgbWV0aG9kIG9wZXJhdG9yIGZh bWlsaWVzLgorICoKKyAqIFRha2VzIGFuIG9wdGlvbmFsIHJlZ2V4cCB0byBzZWxlY3QgcGFydGlj dWxhciBhY2Nlc3MgbWV0aG9kcworICogYW5kIG9wZXJhdG9yIGZhbWlsaWVzCisgKi8KK2Jvb2wK K2xpc3RPcGVyYXRvckZhbWlseVByb2NlZHVyZXMoY29uc3QgY2hhciAqYWNjZXNzX21ldGhvZF9w YXR0ZXJuLAorCQkJCQkJCSBjb25zdCBjaGFyICpmYW1pbHlfcGF0dGVybikKK3sKKwlQUUV4cEJ1 ZmZlckRhdGEgYnVmOworCVBHcmVzdWx0ICAgKnJlczsKKwlwcmludFF1ZXJ5T3B0IG15b3B0ID0g cHNldC5wb3B0OworCWJvb2wJCWhhdmVfd2hlcmUgPSBmYWxzZTsKKwlzdGF0aWMgY29uc3QgYm9v bCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlfTsKKworCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCXByaW50ZlBR RXhwQnVmZmVyKCZidWYsCisJCQkJCSAgIlNFTEVDVCBESVNUSU5DVFxuIgorCQkJCQkgICIgIGFt LmFtbmFtZSBBUyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgbnMubnNwbmFtZSBBUyBcIiVzXCIsXG4i CisJCQkJCSAgIiAgb2Yub3BmbmFtZSBBUyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxv Zy5mb3JtYXRfdHlwZShhcC5hbXByb2NsZWZ0dHlwZSwgTlVMTCkgQVMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUoYXAuYW1wcm9jcmlnaHR0eXBlLCBOVUxMKSBB UyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgYXAuYW1wcm9jbnVtIEFTIFwiJXNcIixcbiIKKwkJCQkJ ICAiICBhcC5hbXByb2M6OnBnX2NhdGFsb2cucmVncHJvYzo6cGdfY2F0YWxvZy50ZXh0IHx8XG4i CisJCQkJCSAgIiAgICAnKCcgfHwgcGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25fYXJndW1lbnRz KGFwLmFtcHJvYykgfHwgJyknIEFTIFwiJXNcIlxuIgorCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cu cGdfYW1wcm9jIGFwXG4iCisJCQkJCSAgIiAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfb3BmYW1p bHkgb2YgT04gb2Yub2lkID0gYXAuYW1wcm9jZmFtaWx5XG4iCisJCQkJCSAgIiAgTEVGVCBKT0lO IHBnX2NhdGFsb2cucGdfYW0gYW0gT04gYW0ub2lkID0gb2Yub3BmbWV0aG9kXG4iCisJCQkJCSAg IiAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG5zIE9OIG9mLm9wZm5hbWVzcGFj ZSA9IG5zLm9pZFxuIiwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkFNIiksCisJCQkJCSAgZ2V0dGV4 dF9ub29wKCJGYW1pbHkgc2NoZW1hIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJGYW1pbHkgbmFt ZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTGVmdCIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgi UmlnaHQiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk51bWJlciIpLAorCQkJCQkgIGdldHRleHRf bm9vcCgiUHJvYyBuYW1lIikpOworCisJaWYgKGFjY2Vzc19tZXRob2RfcGF0dGVybikKKwkJaGF2 ZV93aGVyZSA9IHByb2Nlc3NTUUxOYW1lUGF0dGVybihwc2V0LmRiLCAmYnVmLCBhY2Nlc3NfbWV0 aG9kX3BhdHRlcm4sCisJCQkJCQkJCQkJICAgZmFsc2UsIGZhbHNlLCBOVUxMLCAiYW0uYW1uYW1l IiwKKwkJCQkJCQkJCQkgICBOVUxMLCBOVUxMKTsKKwlpZiAoZmFtaWx5X3BhdHRlcm4pCisJCXBy b2Nlc3NTUUxOYW1lUGF0dGVybihwc2V0LmRiLCAmYnVmLCBmYW1pbHlfcGF0dGVybiwgaGF2ZV93 aGVyZSwgZmFsc2UsCisJCQkJCQkJICAibnMubnNwbmFtZSIsICJvZi5vcGZuYW1lIiwgTlVMTCwg TlVMTCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJCQkJICJPUkRFUiBCWSAx LCAyLCAzLCA0LCA1LCA2OyIpOworCisJcmVzID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCXRlcm1Q UUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJuIGZhbHNlOworCisJbXlvcHQu bnVsbFByaW50ID0gTlVMTDsKKwlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2Ygb3BlcmF0b3IgZmFt aWx5IHByb2NlZHVyZXMiKTsKKwlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKKwlteW9w dC50cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOworCW15b3B0Lm5fdHJhbnNs YXRlX2NvbHVtbnMgPSBsZW5ndGhvZih0cmFuc2xhdGVfY29sdW1ucyk7CisKKwlwcmludFF1ZXJ5 KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisKKwlQ UWNsZWFyKHJlcyk7CisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBcZEFvYworICogTGlzdCBp bmRleCBhY2Nlc3MgbWV0aG9kIG9wZXJhdG9yIGNsYXNzZXMuCisgKiBUYWtlcyBhbiBvcHRpb25h bCByZWdleHAgdG8gc2VsZWN0IHBhcnRpY3VsYXIgYWNjZXNzIG1ldGhvZCBhbmQgb3BlcmF0b3Ig Y2xhc3MuCisgKi8KK2Jvb2wKK2Rlc2NyaWJlQWNjZXNzTWV0aG9kT3BlcmF0b3JDbGFzc2VzKGNv bnN0IGNoYXIgKmFjY2Vzc19tZXRob2RfcGF0dGVybiwKKwkJCQkJCQkJCWNvbnN0IGNoYXIgKm9w Y2xhc3NfcGF0dGVybiwgYm9vbCB2ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJ UEdyZXN1bHQgICAqcmVzOworCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisJYm9v bAkJaGF2ZV93aGVyZSA9IGZhbHNlOworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1 bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAorCQkJCQkJCQkJCQkg ZmFsc2UsIGZhbHNlLCBmYWxzZX07CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlwcmlu dGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1QiCisJCQkJCSAgIiAgYW0uYW1uYW1l IEFTIFwiJXNcIixcbiIKKwkJCQkJICAiICBuLm5zcG5hbWUgQVMgXCIlc1wiLFxuIgorCQkJCQkg ICIgIGMub3BjbmFtZSBBUyBcIiVzXCIsXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiQWNjZXNz IG1ldGhvZCIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiksCisJCQkJCSAgZ2V0dGV4 dF9ub29wKCJOYW1lIikpOworCWlmICh2ZXJib3NlKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LAorCQkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChjLm9wY293bmVyKSBBUyBc IiVzXCIsXG4iLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIikpOworCWFwcGVuZFBRRXhw QnVmZmVyKCZidWYsCisJCQkJCSAgIiAgKENBU0UgV0hFTiBwZ19jYXRhbG9nLnBnX29wZmFtaWx5 X2lzX3Zpc2libGUob2Yub2lkKSBUSEVOICcnIEVMU0Ugb2ZuLm5zcG5hbWUgfHwgJy4nIEVORCkg fHwgb2Yub3BmbmFtZSBBUyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgYy5vcGNpbnR5cGU6OnBnX2Nh dGFsb2cucmVndHlwZSBBUyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgYy5vcGNkZWZhdWx0IEFTIFwi JXNcIixcbiIKKwkJCQkJICAiICAoQ0FTRSBXSEVOIGMub3Bja2V5dHlwZSA9IDAgT1IgYy5vcGNr ZXl0eXBlID0gYy5vcGNpbnR5cGVcbiIKKwkJCQkJICAiICAgIFRIRU4gTlVMTFxuIgorCQkJCQkg ICIgICAgRUxTRSBjLm9wY2tleXR5cGVcbiIKKwkJCQkJICAiICBFTkQpOjpwZ19jYXRhbG9nLnJl Z3R5cGUgQVMgXCIlc1wiXG4iCisJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19vcGNsYXNzIGNc biIKKwkJCQkJICAiICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19hbSBhbSBvbiBhbS5vaWQgPSBj Lm9wY21ldGhvZFxuIgorCQkJCQkgICIgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFj ZSBuIE9OIG4ub2lkID0gYy5vcGNuYW1lc3BhY2VcbiIKKwkJCQkJICAiICBMRUZUIEpPSU4gcGdf Y2F0YWxvZy5wZ19vcGZhbWlseSBvZiBPTiBvZi5vaWQgPSBjLm9wY2ZhbWlseVxuIgorCQkJCQkg ICIgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBvZm4gT04gb2ZuLm9pZCA9IG9m Lm9wZm5hbWVzcGFjZVxuIiwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkZhbWlseSIpLAorCQkJCQkg IGdldHRleHRfbm9vcCgiSW5kZXhlZCB0eXBlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJJcyBk ZWZhdWx0IiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJTdG9yZWQgdHlwZSIpKTsKKworCWlmIChh Y2Nlc3NfbWV0aG9kX3BhdHRlcm4pCisJCWhhdmVfd2hlcmUgPSBwcm9jZXNzU1FMTmFtZVBhdHRl cm4ocHNldC5kYiwgJmJ1ZiwgYWNjZXNzX21ldGhvZF9wYXR0ZXJuLAorCQkJCQkJCQkJCSAgIGZh bHNlLCBmYWxzZSwgTlVMTCwgImFtLmFtbmFtZSIsIE5VTEwsIE5VTEwpOworCWlmIChvcGNsYXNz X3BhdHRlcm4pCisJCXByb2Nlc3NTUUxOYW1lUGF0dGVybihwc2V0LmRiLCAmYnVmLCBvcGNsYXNz X3BhdHRlcm4sIGhhdmVfd2hlcmUsIGZhbHNlLAorCQkJCQkJCSAgIm4ubnNwbmFtZSIsICJjLm9w Y25hbWUiLCBOVUxMLCBOVUxMKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRF UiBCWSAxLDIsMzsiKTsKKwlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJdGVybVBRRXhwQnVm ZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwlteW9wdC5udWxsUHJp bnQgPSBOVUxMOworCW15b3B0LnRpdGxlID0gXygiSW5kZXggYWNjZXNzIG1ldGhvZCBvcGVyYXRv ciBjbGFzc2VzIik7CisJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisJbXlvcHQudHJh bnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKKwlteW9wdC5uX3RyYW5zbGF0ZV9j b2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJcHJpbnRRdWVyeShyZXMs ICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCisJUFFjbGVh cihyZXMpOworCXJldHVybiB0cnVlOworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmggYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAppbmRleCBhNGNjNWVmYWUwLi4zM2VlODFj NDg1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuaApAQCAtMTExLDQgKzExMSwyNSBAQCBib29sCQlkZXNjcmliZVB1YmxpY2F0 aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKTsKIC8qIFxkUnMgKi8KIGJvb2wJCWRlc2NyaWJlU3Vi c2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpOwogCisvKiBcZEFm ICovCitleHRlcm4gYm9vbCBsaXN0QWNjZXNzTWV0aG9kT3BlcmF0b3JGYW1pbGllcyhjb25zdCBj aGFyICphY2Nlc3NfbWV0aG9kX3BhdHRlcm4sCisJCQkJCQkJCQkJCSBjb25zdCBjaGFyICpmYW1p bHlfcGF0dGVybiwKKwkJCQkJCQkJCQkJIGJvb2wgdmVyYm9zZSk7CisKKy8qIFxkQWZwICovCitl eHRlcm4gYm9vbCBsaXN0T3BlcmF0b3JGYW1pbHlQcm9jZWR1cmVzKGNvbnN0IGNoYXIgKmFjY2Vz c19tZXRob2RfcGF0dGVybiwKKwkJCQkJCQkJCQkgY29uc3QgY2hhciAqZmFtaWx5X3BhdHRlcm4p OworCisvKiBcZEFmbyAqLworZXh0ZXJuIGJvb2wgbGlzdEZhbWlseUNsYXNzT3BlcmF0b3JzKGNv bnN0IGNoYXIgKmFjY2Vzc01ldGhvZF9wYXR0ZXJuLAorCQkJCQkJCQkJIGNvbnN0IGNoYXIgKmZh bWlseV9wYXR0ZXJuKTsKKworLyogXGRBcCAqLworZXh0ZXJuIGJvb2wgZGVzY3JpYmVBY2Nlc3NN ZXRob2RQcm9wZXJ0aWVzKGNvbnN0IGNoYXIgKnBhdHRlcm4pOworCisvKiBcZEFvYyAqLworZXh0 ZXJuIGJvb2wgZGVzY3JpYmVBY2Nlc3NNZXRob2RPcGVyYXRvckNsYXNzZXMoY29uc3QgY2hhciAq YWNjZXNzX21ldGhvZF9wYXR0ZXJuLAorCQkJCQkJCQkJCQkJY29uc3QgY2hhciAqb3BjbGFzc19w YXR0ZXJuLAorCQkJCQkJCQkJCQkJYm9vbCB2ZXJib3NlKTsKKwogI2VuZGlmCQkJCQkJCS8qIERF U0NSSUJFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMvYmluL3Bz cWwvaGVscC5jCmluZGV4IDU4NmFlYmRkZDMuLjNkNmRlMTZmMGIgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjI0LDYgKzIyNCwx MSBAQCBzbGFzaFVzYWdlKHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikKIAlmcHJpbnRmKG91dHB1 dCwgXygiICBcXGRbUytdICBOQU1FICAgICAgICAgICBkZXNjcmliZSB0YWJsZSwgdmlldywgc2Vx dWVuY2UsIG9yIGluZGV4XG4iKSk7CiAJZnByaW50ZihvdXRwdXQsIF8oIiAgXFxkYVtTXSAgW1BB VFRFUk5dICAgICAgbGlzdCBhZ2dyZWdhdGVzXG4iKSk7CiAJZnByaW50ZihvdXRwdXQsIF8oIiAg XFxkQVsrXSAgW1BBVFRFUk5dICAgICAgbGlzdCBhY2Nlc3MgbWV0aG9kc1xuIikpOworCWZwcmlu dGYob3V0cHV0LCBfKCIgIFxcZEFmWytdIFtBTVBUUk4gW09QRlBUUk5dXSBsaXN0IG9wZXJhdG9y IGZhbWlsaWVzIG9mIGFjY2VzcyBtZXRob2RcbiIpKTsKKwlmcHJpbnRmKG91dHB1dCwgXygiICBc XGRBZnAgICBbQU1QVFJOIFtPUEZQVFJOXV0gbGlzdCBwcm9jZWR1cmVzIG9mIG9wZXJhdG9yIGZh bWlseSByZWxhdGVkIHRvIGFjY2VzcyBtZXRob2RcbiIpKTsKKwlmcHJpbnRmKG91dHB1dCwgXygi ICBcXGRBZm8gICBbQU1QVFJOIFtPUEZQVFJOXV0gbGlzdCBvcGVyYXRvcnMgb2YgZmFtaWx5IHJl bGF0ZWQgdG8gYWNjZXNzIG1ldGhvZFxuIikpOworCWZwcmludGYob3V0cHV0LCBfKCIgIFxcZEFv Y1srXVtBTVBUUk4gW09QQ1BUUk5dXSBsaXN0IG9wZXJhdG9yIGNsYXNzZXMgb2YgaW5kZXggYWNj ZXNzIG1ldGhvZHNcbiIpKTsKKwlmcHJpbnRmKG91dHB1dCwgXygiICBcXGRBcCAgICBbUEFUVEVS Tl0gICAgICBsaXN0IGFjY2VzcyBtZXRob2RzIHdpdGggcHJvcGVydGllc1xuIikpOwogCWZwcmlu dGYob3V0cHV0LCBfKCIgIFxcZGJbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgdGFibGVzcGFjZXNc biIpKTsKIAlmcHJpbnRmKG91dHB1dCwgXygiICBcXGRjW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0 IGNvbnZlcnNpb25zXG4iKSk7CiAJZnByaW50ZihvdXRwdXQsIF8oIiAgXFxkQ1srXSAgW1BBVFRF Uk5dICAgICAgbGlzdCBjYXN0c1xuIikpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IDlkYmQ1NTUxNjYu LjZjMWM2YjkxOGQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYworKysg Yi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAgLTQ2MCw2ICs0NjAsMjMgQEAgc3RhdGlj IGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl9saXN0X29mX3JlbGF0aW9ucyA9IHsKIAkucmVz dWx0ID0gInBnX2NhdGFsb2cucXVvdGVfaWRlbnQoYy5yZWxuYW1lKSIsCiB9OwogCitzdGF0aWMg Y29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2Zfb3BlcmF0b3JfZmFtaWxpZXMgPSB7 CisJLyogbWluX3NlcnZlcl92ZXJzaW9uICovCisJMCwKKwkvKiBjYXRuYW1lICovCisJInBnX2Nh dGFsb2cucGdfb3BmYW1pbHkgYyIsCisJLyogc2VsY29uZGl0aW9uICovCisJTlVMTCwKKwkvKiB2 aXNjb25kaXRpb24gKi8KKwkidHJ1ZSIsCisJLyogbmFtZXNwYWNlICovCisJImMub3BmbmFtZXNw YWNlIiwKKwkvKiByZXN1bHQgKi8KKwkicGdfY2F0YWxvZy5xdW90ZV9pZGVudChjLm9wZm5hbWUp IiwKKwkvKiBxdWFscmVzdWx0ICovCisJTlVMTAorfTsKKwogLyogUmVsYXRpb25zIHN1cHBvcnRp bmcgSU5TRVJULCBVUERBVEUgb3IgREVMRVRFICovCiBzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkg UXVlcnlfZm9yX2xpc3Rfb2ZfdXBkYXRhYmxlcyA9IHsKIAkuY2F0bmFtZSA9ICJwZ19jYXRhbG9n LnBnX2NsYXNzIGMiLApAQCAtMTMyOSw3ICsxMzQ2LDggQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0 IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJIlxcYSIsCiAJCSJcXGNvbm5lY3Qi LCAiXFxjb25uaW5mbyIsICJcXEMiLCAiXFxjZCIsICJcXGNvcHkiLAogCQkiXFxjb3B5cmlnaHQi LCAiXFxjcm9zc3RhYnZpZXciLAotCQkiXFxkIiwgIlxcZGEiLCAiXFxkQSIsICJcXGRiIiwgIlxc ZGMiLCAiXFxkQyIsICJcXGRkIiwgIlxcZGRwIiwgIlxcZEQiLAorCQkiXFxkIiwgIlxcZGEiLCAi XFxkQSIsICJcXGRBcCIsICJcXGRBZiIsICJcXGRBZm8iLCAiXFxkQWZwIiwgIlxcZEFvYyIsCisJ CSJcXGRiIiwgIlxcZGMiLCAiXFxkQyIsICJcXGRkIiwgIlxcZGRwIiwgIlxcZEQiLAogCQkiXFxk ZXMiLCAiXFxkZXQiLCAiXFxkZXUiLCAiXFxkZXciLCAiXFxkRSIsICJcXGRmIiwKIAkJIlxcZEYi LCAiXFxkRmQiLCAiXFxkRnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRpIiwgIlxcZGwiLCAiXFxk TCIsCiAJCSJcXGRtIiwgIlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxcZHAiLApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggMzgxOGNmZWE3ZS4uOWQ1MzQ0ZDM5MiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC0zMjQzLDMgKzMyNDMsMTU4IEBAIGxhc3QgZXJyb3Ig bWVzc2FnZTogZGl2aXNpb24gYnkgemVybwogXGVjaG8gJ2xhc3QgZXJyb3IgY29kZTonIDpMQVNU X0VSUk9SX1NRTFNUQVRFCiBsYXN0IGVycm9yIGNvZGU6IDIyMDEyCiBcdW5zZXQgRkVUQ0hfQ09V TlQKKy0tIGNoZWNrIHByaW50aW5nIGluZm8gYWJvdXQgYWNjZXNzIG1ldGhvZHMKK1xkQQorTGlz dCBvZiBhY2Nlc3MgbWV0aG9kcworICBOYW1lICB8IFR5cGUgIAorLS0tLS0tLS0rLS0tLS0tLQor IGJyaW4gICB8IEluZGV4CisgYnRyZWUgIHwgSW5kZXgKKyBnaW4gICAgfCBJbmRleAorIGdpc3Qg ICB8IEluZGV4CisgaGFzaCAgIHwgSW5kZXgKKyBzcGdpc3QgfCBJbmRleAorKDYgcm93cykKKwor XGRBIGdpbgorTGlzdCBvZiBhY2Nlc3MgbWV0aG9kcworIE5hbWUgfCBUeXBlICAKKy0tLS0tLSst LS0tLS0tCisgZ2luICB8IEluZGV4CisoMSByb3cpCisKK1xkQSBmb28KK0xpc3Qgb2YgYWNjZXNz IG1ldGhvZHMKKyBOYW1lIHwgVHlwZSAKKy0tLS0tLSstLS0tLS0KKygwIHJvd3MpCisKK1xkQXAg Z2luCisgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgbWV0aG9kIHByb3BlcnRpZXMK KyBBTSBOYW1lIHwgQ2FuIG9yZGVyIHwgQ2FuIHVuaXF1ZSB8IENhbiBtdWx0aSBjb2wgfCBDYW4g ZXhjbHVkZSB8IENhbiBpbmNsdWRlIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgZ2luICAgICB8 IGYgICAgICAgICB8IGYgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBm CisoMSByb3cpCisKK1xkQXAgZm9vCisgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2Nlc3Mg bWV0aG9kIHByb3BlcnRpZXMKKyBBTSBOYW1lIHwgQ2FuIG9yZGVyIHwgQ2FuIHVuaXF1ZSB8IENh biBtdWx0aSBjb2wgfCBDYW4gZXhjbHVkZSB8IENhbiBpbmNsdWRlIAorLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCisoMCByb3dzKQorCitcZEFmIGdpbgorICAgICAgICAgIExpc3Qgb2Ygb3BlcmF0b3Ig ZmFtaWxpZXMKKyBBY2Nlc3MgbWV0aG9kIHwgICBTY2hlbWEgICB8ICAgICAgTmFtZSAgICAgIAor LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tCisgZ2luICAgICAg ICAgICB8IHBnX2NhdGFsb2cgfCBhcnJheV9vcHMKKyBnaW4gICAgICAgICAgIHwgcGdfY2F0YWxv ZyB8IHRzdmVjdG9yX29wcworIGdpbiAgICAgICAgICAgfCBwZ19jYXRhbG9nIHwganNvbmJfb3Bz CisgZ2luICAgICAgICAgICB8IHBnX2NhdGFsb2cgfCBqc29uYl9wYXRoX29wcworKDQgcm93cykK KworXGRBZiBmb28KKyAgIExpc3Qgb2Ygb3BlcmF0b3IgZmFtaWxpZXMKKyBBY2Nlc3MgbWV0aG9k IHwgU2NoZW1hIHwgTmFtZSAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0KKygwIHJv d3MpCisKK1xkQWZvIGJyaW4gdXVpZF9taW5tYXhfb3BzCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb3BlcmF0b3JzIG9mIGZhbWlseSByZWxhdGVkIHRvIGFjY2VzcyBtZXRo b2QKKyAgQU0gIHwgT3BmYW1pbHkgU2NoZW1hIHwgIE9wZmFtaWx5IE5hbWUgIHwgTGVmdCB0eXBl IHwgUmlnaHQgdHlwZSB8IFN0cmF0ZWd5IHwgT3BlcmF0b3IgfCBQdXJwb3NlIHwgU29ydCBmYW1p bHkgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLQorIGJyaW4gfCBwZ19jYXRhbG9nICAgICAgfCB1dWlkX21pbm1heF9vcHMgfCB1dWlkICAg ICAgfCB1dWlkICAgICAgIHwgICAgICAgIDEgfCA8ICAgICAgICB8IHNlYXJjaCAgfCAKKyBicmlu IHwgcGdfY2F0YWxvZyAgICAgIHwgdXVpZF9taW5tYXhfb3BzIHwgdXVpZCAgICAgIHwgdXVpZCAg ICAgICB8ICAgICAgICAyIHwgPD0gICAgICAgfCBzZWFyY2ggIHwgCisgYnJpbiB8IHBnX2NhdGFs b2cgICAgICB8IHV1aWRfbWlubWF4X29wcyB8IHV1aWQgICAgICB8IHV1aWQgICAgICAgfCAgICAg ICAgMyB8ID0gICAgICAgIHwgc2VhcmNoICB8IAorIGJyaW4gfCBwZ19jYXRhbG9nICAgICAgfCB1 dWlkX21pbm1heF9vcHMgfCB1dWlkICAgICAgfCB1dWlkICAgICAgIHwgICAgICAgIDQgfCA+PSAg ICAgICB8IHNlYXJjaCAgfCAKKyBicmluIHwgcGdfY2F0YWxvZyAgICAgIHwgdXVpZF9taW5tYXhf b3BzIHwgdXVpZCAgICAgIHwgdXVpZCAgICAgICB8ICAgICAgICA1IHwgPiAgICAgICAgfCBzZWFy Y2ggIHwgCisoNSByb3dzKQorCitcZEFmbyBicmluIGJhcgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvcGVyYXRvcnMgb2YgZmFtaWx5IHJlbGF0ZWQgdG8gYWNjZXNzIG1ldGhv ZAorIEFNIHwgT3BmYW1pbHkgU2NoZW1hIHwgT3BmYW1pbHkgTmFtZSB8IExlZnQgdHlwZSB8IFJp Z2h0IHR5cGUgfCBTdHJhdGVneSB8IE9wZXJhdG9yIHwgUHVycG9zZSB8IFNvcnQgZmFtaWx5IAor LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorKDAg cm93cykKKworXGRBZm8gZm9vIGJhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvcGVyYXRvcnMgb2YgZmFtaWx5IHJlbGF0ZWQgdG8gYWNjZXNzIG1ldGhvZAorIEFNIHwgT3Bm YW1pbHkgU2NoZW1hIHwgT3BmYW1pbHkgTmFtZSB8IExlZnQgdHlwZSB8IFJpZ2h0IHR5cGUgfCBT dHJhdGVneSB8IE9wZXJhdG9yIHwgUHVycG9zZSB8IFNvcnQgZmFtaWx5IAorLS0tLSstLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworXGRB Zm8gKiBwZ19jYXRhbG9nLmpzb25iX3BhdGhfb3BzCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvcGVyYXRvcnMgb2YgZmFtaWx5IHJlbGF0ZWQgdG8gYWNjZXNzIG1ldGhvZAor IEFNICB8IE9wZmFtaWx5IFNjaGVtYSB8IE9wZmFtaWx5IE5hbWUgIHwgTGVmdCB0eXBlIHwgUmln aHQgdHlwZSB8IFN0cmF0ZWd5IHwgT3BlcmF0b3IgfCBQdXJwb3NlIHwgU29ydCBmYW1pbHkgCist LS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBn aW4gfCBwZ19jYXRhbG9nICAgICAgfCBqc29uYl9wYXRoX29wcyB8IGpzb25iICAgICB8IGpzb25i ICAgICAgfCAgICAgICAgNyB8IEA+ICAgICAgIHwgc2VhcmNoICB8IAorKDEgcm93KQorCitcZEFm cCBicmluIHV1aWRfbWlubWF4X29wcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIG9wZXJhdG9yIGZhbWlseSBwcm9jZWR1cmVzCisgIEFNICB8 IEZhbWlseSBzY2hlbWEgfCAgIEZhbWlseSBuYW1lICAgfCBMZWZ0IHwgUmlnaHQgfCBOdW1iZXIg fCAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2MgbmFtZSAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0r LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBicmluIHwgcGdfY2F0YWxvZyAgICB8IHV1aWRfbWlu bWF4X29wcyB8IHV1aWQgfCB1dWlkICB8ICAgICAgMSB8IGJyaW5fbWlubWF4X29wY2luZm8oaW50 ZXJuYWwpCisgYnJpbiB8IHBnX2NhdGFsb2cgICAgfCB1dWlkX21pbm1heF9vcHMgfCB1dWlkIHwg dXVpZCAgfCAgICAgIDIgfCBicmluX21pbm1heF9hZGRfdmFsdWUoaW50ZXJuYWwsIGludGVybmFs LCBpbnRlcm5hbCwgaW50ZXJuYWwpCisgYnJpbiB8IHBnX2NhdGFsb2cgICAgfCB1dWlkX21pbm1h eF9vcHMgfCB1dWlkIHwgdXVpZCAgfCAgICAgIDMgfCBicmluX21pbm1heF9jb25zaXN0ZW50KGlu dGVybmFsLCBpbnRlcm5hbCwgaW50ZXJuYWwpCisgYnJpbiB8IHBnX2NhdGFsb2cgICAgfCB1dWlk X21pbm1heF9vcHMgfCB1dWlkIHwgdXVpZCAgfCAgICAgIDQgfCBicmluX21pbm1heF91bmlvbihp bnRlcm5hbCwgaW50ZXJuYWwsIGludGVybmFsKQorKDQgcm93cykKKworXGRBZnAgYnJpbiBiYXIK KyAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygb3BlcmF0b3IgZmFtaWx5IHByb2NlZHVyZXMKKyBB TSB8IEZhbWlseSBzY2hlbWEgfCBGYW1pbHkgbmFtZSB8IExlZnQgfCBSaWdodCB8IE51bWJlciB8 IFByb2MgbmFtZSAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1xkQWZwIGZvbyBiYXIKKyAg ICAgICAgICAgICAgICAgIExpc3Qgb2Ygb3BlcmF0b3IgZmFtaWx5IHByb2NlZHVyZXMKKyBBTSB8 IEZhbWlseSBzY2hlbWEgfCBGYW1pbHkgbmFtZSB8IExlZnQgfCBSaWdodCB8IE51bWJlciB8IFBy b2MgbmFtZSAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1xkQWZwICogcGdfY2F0YWxvZy51 dWlkX29wcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygb3BlcmF0b3Ig ZmFtaWx5IHByb2NlZHVyZXMKKyAgQU0gICB8IEZhbWlseSBzY2hlbWEgfCBGYW1pbHkgbmFtZSB8 IExlZnQgfCBSaWdodCB8IE51bWJlciB8ICAgICAgICAgICAgUHJvYyBuYW1lICAgICAgICAgICAg IAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgYnRyZWUgfCBwZ19j YXRhbG9nICAgIHwgdXVpZF9vcHMgICAgfCB1dWlkIHwgdXVpZCAgfCAgICAgIDEgfCB1dWlkX2Nt cCh1dWlkLCB1dWlkKQorIGJ0cmVlIHwgcGdfY2F0YWxvZyAgICB8IHV1aWRfb3BzICAgIHwgdXVp ZCB8IHV1aWQgIHwgICAgICAyIHwgdXVpZF9zb3J0c3VwcG9ydChpbnRlcm5hbCkKKyBoYXNoICB8 IHBnX2NhdGFsb2cgICAgfCB1dWlkX29wcyAgICB8IHV1aWQgfCB1dWlkICB8ICAgICAgMSB8IHV1 aWRfaGFzaCh1dWlkKQorIGhhc2ggIHwgcGdfY2F0YWxvZyAgICB8IHV1aWRfb3BzICAgIHwgdXVp ZCB8IHV1aWQgIHwgICAgICAyIHwgdXVpZF9oYXNoX2V4dGVuZGVkKHV1aWQsIGJpZ2ludCkKKyg0 IHJvd3MpCisKK1xkQW9jIGJyaW4gcGcqLm9pZCoKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJbmRleCBhY2Nlc3MgbWV0aG9kIG9wZXJhdG9yIGNsYXNzZXMKKyBBY2Nlc3MgbWV0 aG9kIHwgICBTY2hlbWEgICB8ICAgICAgTmFtZSAgICAgIHwgICAgIEZhbWlseSAgICAgfCBJbmRl eGVkIHR5cGUgfCBJcyBkZWZhdWx0IHwgU3RvcmVkIHR5cGUgCistLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGJyaW4gICAgICAgICAgfCBwZ19jYXRhbG9n IHwgb2lkX21pbm1heF9vcHMgfCBvaWRfbWlubWF4X29wcyB8IG9pZCAgICAgICAgICB8IHQgICAg ICAgICAgfCAKKygxIHJvdykKKworXGRBKworICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBhY2Nlc3MgbWV0aG9kcworICBOYW1lICB8IFR5cGUgIHwgICBIYW5kbGVyICAgfCAgICAgICAg ICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgYnJpbiAg IHwgSW5kZXggfCBicmluaGFuZGxlciB8IGJsb2NrIHJhbmdlIGluZGV4IChCUklOKSBhY2Nlc3Mg bWV0aG9kCisgYnRyZWUgIHwgSW5kZXggfCBidGhhbmRsZXIgICB8IGItdHJlZSBpbmRleCBhY2Nl c3MgbWV0aG9kCisgZ2luICAgIHwgSW5kZXggfCBnaW5oYW5kbGVyICB8IEdJTiBpbmRleCBhY2Nl c3MgbWV0aG9kCisgZ2lzdCAgIHwgSW5kZXggfCBnaXN0aGFuZGxlciB8IEdpU1QgaW5kZXggYWNj ZXNzIG1ldGhvZAorIGhhc2ggICB8IEluZGV4IHwgaGFzaGhhbmRsZXIgfCBoYXNoIGluZGV4IGFj Y2VzcyBtZXRob2QKKyBzcGdpc3QgfCBJbmRleCB8IHNwZ2hhbmRsZXIgIHwgU1AtR2lTVCBpbmRl eCBhY2Nlc3MgbWV0aG9kCisoNiByb3dzKQorCitcZEErIGdpbgorICAgICAgICAgICAgICAgTGlz dCBvZiBhY2Nlc3MgbWV0aG9kcworIE5hbWUgfCBUeXBlICB8ICBIYW5kbGVyICAgfCAgICAgICBE ZXNjcmlwdGlvbiAgICAgICAKKy0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgZ2luICB8IEluZGV4IHwgZ2luaGFuZGxlciB8IEdJTiBpbmRleCBh Y2Nlc3MgbWV0aG9kCisoMSByb3cpCisKK1xkQSsgZm9vCisgICAgICAgTGlzdCBvZiBhY2Nlc3Mg bWV0aG9kcworIE5hbWUgfCBUeXBlIHwgSGFuZGxlciB8IERlc2NyaXB0aW9uIAorLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworXGRBZisgZm9vCisgICAg ICAgTGlzdCBvZiBvcGVyYXRvciBmYW1pbGllcworIEFjY2VzcyBtZXRob2QgfCBTY2hlbWEgfCBO YW1lIHwgT3duZXIgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0KKygw IHJvd3MpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKaW5kZXggYjQ1ZGE5YmI4ZC4uZWM1YTY3M2Y5MiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHNxbC5zcWwKQEAgLTY4OCwzICs2ODgsMjYgQEAgc2VsZWN0IDEvKDE1LXVu aXF1ZTIpIGZyb20gdGVuazEgb3JkZXIgYnkgdW5pcXVlMiBsaW1pdCAxOTsKIFxlY2hvICdsYXN0 IGVycm9yIGNvZGU6JyA6TEFTVF9FUlJPUl9TUUxTVEFURQogCiBcdW5zZXQgRkVUQ0hfQ09VTlQK KworLS0gY2hlY2sgcHJpbnRpbmcgaW5mbyBhYm91dCBhY2Nlc3MgbWV0aG9kcworXGRBCitcZEEg Z2luCitcZEEgZm9vCitcZEFwIGdpbgorXGRBcCBmb28KK1xkQWYgZ2luCitcZEFmIGZvbworXGRB Zm8gYnJpbiB1dWlkX21pbm1heF9vcHMKK1xkQWZvIGJyaW4gYmFyCitcZEFmbyBmb28gYmFyCitc ZEFmbyAqIHBnX2NhdGFsb2cuanNvbmJfcGF0aF9vcHMKK1xkQWZwIGJyaW4gdXVpZF9taW5tYXhf b3BzCitcZEFmcCBicmluIGJhcgorXGRBZnAgZm9vIGJhcgorXGRBZnAgKiBwZ19jYXRhbG9nLnV1 aWRfb3BzCitcZEFvYyBicmluIHBnKi5vaWQqCisKK1xkQSsKK1xkQSsgZ2luCitcZEErIGZvbwor XGRBZisgZm9vCg== --=-q5MTxHn4NRpdUTmz/HSU Content-Disposition: attachment; filename="0003-psql_add_index_info.patch" Content-Type: text/x-patch; name="0003-psql_add_index_info.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCBmY2RlMDFiMmQ0Li5lODhjNjJjMWMzIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9wc3FsLXJlZi5zZ21sCkBAIC0xNDUwLDYgKzE0NTAsMzQgQEAgdGVzdGRiPSZndDsKICAgICAg ICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5cZGlwIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBz cWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBs YWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgorCisgICAgICAgIDxsaXN0aXRlbT4K KyAgICAgICAgPHBhcmE+CisgICAgICAgIFNob3dzIGluZGV4IHByb3BlcnRpZXMgbGlzdGVkIGlu CisgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9ucy1pbmZvLWluZGV4LXByb3BzIi8+Lgor ICAgICAgICBJZiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFj ZWFibGU+IGlzCisgICAgICAgIHNwZWNpZmllZCwgb25seSBhY2Nlc3MgbWV0aG9kcyB3aG9zZSBu YW1lcyBtYXRjaCB0aGUgcGF0dGVybiBhcmUgc2hvd24uCisgICAgICAgIDwvcGFyYT4KKyAgICAg ICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgICA8dGVybT4KKyAgICAgICAgICA8bGl0ZXJhbD5cZGljcCBbIDxsaW5rIGxp bmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGF0dGVybjwvcmVwbGFjZWFibGU+PC9saW5rPl0KKyAgICAgICAgICA8L2xpdGVyYWw+CisgICAg ICAgIDwvdGVybT4KKworICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAg ICBTaG93cyBpbmRleCBjb2x1bW4gcHJvcGVydGllcyBsaXN0ZWQgaW4KKyAgICAgICAgPHhyZWYg bGlua2VuZD0iZnVuY3Rpb25zLWluZm8taW5kZXgtY29sdW1uLXByb3BzIi8+LgorICAgICAgICBJ ZiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+IGlz CisgICAgICAgIHNwZWNpZmllZCwgb25seSBhY2Nlc3MgbWV0aG9kcyB3aG9zZSBuYW1lcyBtYXRj aCB0aGUgcGF0dGVybiBhcmUgc2hvd24uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgogCiAgICAgICA8dmFybGlzdGVudHJ5PgogICAg ICAgICA8dGVybT48bGl0ZXJhbD5cZGVzWytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0 dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJs ZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Nv bW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggNGQwZjYxOTE4Ni4uZDI1MzA4 OWI0MCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3Bz cWwvY29tbWFuZC5jCkBAIC04MDUsNiArODA1LDE2IEBAIGV4ZWNfY29tbWFuZF9kKFBzcWxTY2Fu U3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpjbWQpCiAJ CQljYXNlICd2JzoKIAkJCWNhc2UgJ20nOgogCQkJY2FzZSAnaSc6CisJCQkJaWYgKHN0cm5jbXAo Y21kLCAiZGlwIiwgMykgPT0gMCkKKwkJCQl7CisJCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZUluZGV4 UHJvcGVydGllcyhwYXR0ZXJuLCBzaG93X3N5c3RlbSk7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJ CQllbHNlIGlmIChzdHJuY21wKGNtZCwgImRpY3AiLCA0KSA9PSAwKQorCQkJCXsKKwkJCQkJc3Vj Y2VzcyA9IGRlc2NyaWJlSW5kZXhDb2x1bW5Qcm9wZXJ0aWVzKHBhdHRlcm4sIHNob3dfc3lzdGVt KTsKKwkJCQkJYnJlYWs7CisJCQkJfQogCQkJY2FzZSAncyc6CiAJCQljYXNlICdFJzoKIAkJCQlz dWNjZXNzID0gbGlzdFRhYmxlcygmY21kWzFdLCBwYXR0ZXJuLCBzaG93X3ZlcmJvc2UsIHNob3df c3lzdGVtKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMKaW5kZXggZDA5MDQwMTNkOS4uYTA2YjdlMDI2NyAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAg LTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nhc3RfZC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfY2xhc3NfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGVmYXVsdF9hY2xf ZC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfaW5kZXguaCIKICNpbmNsdWRlICJmZV91dGlscy9z dHJpbmdfdXRpbHMuaCIKIAogI2luY2x1ZGUgImNvbW1vbi5oIgpAQCAtNDQsNiArNDUsOSBAQCBz dGF0aWMgYm9vbCBkZXNjcmliZU9uZVRTQ29uZmlnKGNvbnN0IGNoYXIgKm9pZCwgY29uc3QgY2hh ciAqbnNwbmFtZSwKIAkJCQkJY29uc3QgY2hhciAqcG5zcG5hbWUsIGNvbnN0IGNoYXIgKnByc25h bWUpOwogc3RhdGljIHZvaWQgcHJpbnRBQ0xDb2x1bW4oUFFFeHBCdWZmZXIgYnVmLCBjb25zdCBj aGFyICpjb2xuYW1lKTsKIHN0YXRpYyBib29sIGxpc3RPbmVFeHRlbnNpb25Db250ZW50cyhjb25z dCBjaGFyICpleHRuYW1lLCBjb25zdCBjaGFyICpvaWQpOworc3RhdGljIGJvb2wgZGVzY3JpYmVP bmVJbmRleENvbHVtblByb3BlcnRpZXMoY29uc3QgY2hhciAqb2lkLCBjb25zdCBjaGFyICpuc3Bu YW1lLAorCQkJCQkJCQkgY29uc3QgY2hhciAqaWR4bmFtZSwgY29uc3QgY2hhciAqYW1uYW1lLAor CQkJCQkJCQkgY29uc3QgY2hhciAqdGFibmFtZSk7CiAKIAogLyotLS0tLS0tLS0tLS0tLS0tCkBA IC01OTY4LDMgKzU5NzIsMjY0IEBAIGRlc2NyaWJlQWNjZXNzTWV0aG9kT3BlcmF0b3JDbGFzc2Vz KGNvbnN0IGNoYXIgKmFjY2Vzc19tZXRob2RfcGF0dGVybiwKIAlQUWNsZWFyKHJlcyk7CiAJcmV0 dXJuIHRydWU7CiB9CisKKy8qCisgKiBcZGlwCisgKiBEZXNjcmliZXMgaW5kZXggcHJvcGVydGll cy4KKyAqCisgKiBUYWtlcyBhbiBvcHRpb25hbCByZWdleHAgdG8gc2VsZWN0IHBhcnRpY3VsYXIg aW5kZXguCisgKi8KK2Jvb2wKK2Rlc2NyaWJlSW5kZXhQcm9wZXJ0aWVzKGNvbnN0IGNoYXIgKnBh dHRlcm4sIGJvb2wgc2hvd1N5c3RlbSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEgYnVmOworCVBHcmVz dWx0ICAgKnJlczsKKwlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OworCisJc3RhdGlj IGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisK KwlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1QiCisJCQkJCSAgIiAgbi5u c3BuYW1lIEFTIFwiJXNcIixcbiIKKwkJCQkJICAiICBjLnJlbG5hbWUgQVMgXCIlc1wiLFxuIgor CQkJCQkgICIgIGFtLmFtbmFtZSBBUyBcIiVzXCIsXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgi U2NoZW1hIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJCQkJCSAgZ2V0dGV4dF9u b29wKCJBY2Nlc3MgbWV0aG9kIikpOworCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCXBz ZXQuc3ZlcnNpb24gPj0gOTA2MDAgPworCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfaW5kZXhfaGFz X3Byb3BlcnR5KGMub2lkLCAnY2x1c3RlcmFibGUnKSBBUyBcIiVzXCIsXG4iCisJCQkJCSAgIiAg cGdfY2F0YWxvZy5wZ19pbmRleF9oYXNfcHJvcGVydHkoYy5vaWQsICdpbmRleF9zY2FuJykgQVMg XCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfaW5kZXhfaGFzX3Byb3BlcnR5KGMu b2lkLCAnYml0bWFwX3NjYW4nKSAgQVMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cu cGdfaW5kZXhfaGFzX3Byb3BlcnR5KGMub2lkLCAnYmFja3dhcmRfc2NhbicpIEFTIFwiJXNcIlxu IgorCQkJCQkgIDoKKwkJCQkJICAiICBhbS5hbWNsdXN0ZXJhYmxlIEFTIFwiJXNcIixcbiIKKwkJ CQkJICAiICBhbS5hbWdldHR1cGxlIDw+IDAgQVMgXCIlc1wiLFxuIgorCQkJCQkgICIgIGFtLmFt Z2V0Yml0bWFwIDw+IDAgQVMgXCIlc1wiLFxuIgorCQkJCQkgICIgIGFtLmFtY2FuYmFja3dhcmQg QVMgXCIlc1wiXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiQ2x1c3RlcmFibGUiKSwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIkluZGV4IHNjYW4iKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkJpdG1h cCBzY2FuIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJCYWNrd2FyZCBzY2FuIikpOworCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBj XG4iCisJCQkJCSAgIiAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5v aWQgPSBjLnJlbG5hbWVzcGFjZVxuIgorCQkJCQkgICIgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBn X2FtIGFtIE9OIGFtLm9pZCA9IGMucmVsYW1cbiIKKwkJCQkJICAiV0hFUkUgYy5yZWxraW5kPSdp J1xuIgorCQkJCQkgICIgIEFORCBuLm5zcG5hbWUgIX4gJ3BnX3RvYXN0J1xuIik7CisKKwlpZiAo IXNob3dTeXN0ZW0gJiYgIXBhdHRlcm4pCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJ CQkJCQkJICIgIEFORCBuLm5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnXG4iCisJCQkJCQkJICIgIEFO RCBuLm5zcG5hbWUgPD4gJ2luZm9ybWF0aW9uX3NjaGVtYSdcbiIpOworCisJcHJvY2Vzc1NRTE5h bWVQYXR0ZXJuKHBzZXQuZGIsICZidWYsIHBhdHRlcm4sIHRydWUsIGZhbHNlLAorCQkJCQkJICAi bi5uc3BuYW1lIiwgImMucmVsbmFtZSIsIE5VTEwsIE5VTEwpOworCisJYXBwZW5kUFFFeHBCdWZm ZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDE7Iik7CisJcmVzID0gUFNRTGV4ZWMoYnVmLmRhdGEpOwor CXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJuIGZhbHNlOworCisJ bXlvcHQubnVsbFByaW50ID0gTlVMTDsKKwlteW9wdC50aXRsZSA9IF8oIkluZGV4IHByb3BlcnRp ZXMiKTsKKwlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKKwlteW9wdC50cmFuc2xhdGVf Y29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOworCW15b3B0Lm5fdHJhbnNsYXRlX2NvbHVtbnMg PSBsZW5ndGhvZih0cmFuc2xhdGVfY29sdW1ucyk7CisKKwlwcmludFF1ZXJ5KHJlcywgJm15b3B0 LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisKKwlQUWNsZWFyKHJlcyk7 CisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBcZGljcAorICogRGVzY3JpYmVzIGluZGV4IGlu ZGV4IGNvbHVtbiBwcm9wZXJ0aWVzLgorICoKKyAqIFRha2VzIGFuIG9wdGlvbmFsIHJlZ2V4cCB0 byBzZWxlY3QgcGFydGljdWxhciBpbmRleC4KKyAqLworYm9vbAorZGVzY3JpYmVJbmRleENvbHVt blByb3BlcnRpZXMoY29uc3QgY2hhciAqaW5kZXhfcGF0dGVybiwgYm9vbCBzaG93U3lzdGVtKQor eworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVzOworCWludAkJCWk7CisK Kwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJ CQkgICJTRUxFQ1QgRElTVElOQ1QgYy5vaWQsXG4iCisJCQkJCSAgIiAgbi5uc3BuYW1lLFxuIgor CQkJCQkgICIgIGMucmVsbmFtZSxcbiIKKwkJCQkJICAiICBhbS5hbW5hbWUsXG4iCisJCQkJCSAg IiAgYzIucmVsbmFtZVxuIgorCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgor CQkJCQkgICIgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0g cmVsbmFtZXNwYWNlXG4iCisJCQkJCSAgIiAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfYW0gYW0g T04gYW0ub2lkID0gYy5yZWxhbVxuIgorCQkJCQkgICIgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBn X2luZGV4IGkgT04gaS5pbmRleHJlbGlkID0gYy5vaWRcbiIKKwkJCQkJICAiICBMRUZUIEpPSU4g cGdfY2F0YWxvZy5wZ19jbGFzcyBjMiBPTiBpLmluZHJlbGlkID0gYzIub2lkXG4iKTsKKworCWFw cGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJXSEVSRSBjLnJlbGtpbmQ9J2knXG4iKTsKKworCWlm ICghc2hvd1N5c3RlbSAmJiAhaW5kZXhfcGF0dGVybikKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwgIkFORCBuLm5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnXG4iCisJCQkJCQkJICJBTkQgbi5u c3BuYW1lIDw+ICdpbmZvcm1hdGlvbl9zY2hlbWEnXG4iKTsKKworCXByb2Nlc3NTUUxOYW1lUGF0 dGVybihwc2V0LmRiLCAmYnVmLCBpbmRleF9wYXR0ZXJuLCB0cnVlLCBmYWxzZSwKKwkJCQkJCSAg Im4ubnNwbmFtZSIsICJjLnJlbG5hbWUiLCBOVUxMLAorCQkJCQkJICAicGdfY2F0YWxvZy5wZ190 YWJsZV9pc192aXNpYmxlKGMub2lkKSIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1Ziwg Ik9SREVSIEJZIDIsIDM7Iik7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJdGVybVBR RXhwQnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoUFFu dHVwbGVzKHJlcykgPT0gMCkKKwl7CisJCWlmICghcHNldC5xdWlldCkKKwkJeworCQkJaWYgKGlu ZGV4X3BhdHRlcm4pCisJCQkJcHNxbF9lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBpbmRleCBuYW1l ZCBcIiVzXCJcbiIsCisJCQkJCQkgICBpbmRleF9wYXR0ZXJuKTsKKwkJCWVsc2UKKwkJCQlwc3Fs X2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHJlbGF0aW9ucy5cbiIpOworCQl9CisJCVBRY2xlYXIo cmVzKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBQUW50dXBsZXMo cmVzKTsgaSsrKQorCXsKKwkJY29uc3QgY2hhciAqb2lkID0gUFFnZXR2YWx1ZShyZXMsIGksIDAp OworCQljb25zdCBjaGFyICpuc3BuYW1lID0gUFFnZXR2YWx1ZShyZXMsIGksIDEpOworCQljb25z dCBjaGFyICppZHhuYW1lID0gUFFnZXR2YWx1ZShyZXMsIGksIDIpOworCQljb25zdCBjaGFyICph bW5hbWUgPSBQUWdldHZhbHVlKHJlcywgaSwgMyk7CisJCWNvbnN0IGNoYXIgKnRhYm5hbWUgPSBQ UWdldHZhbHVlKHJlcywgaSwgNCk7CisKKwkJaWYgKCFkZXNjcmliZU9uZUluZGV4Q29sdW1uUHJv cGVydGllcyhvaWQsIG5zcG5hbWUsIGlkeG5hbWUsIGFtbmFtZSwKKwkJCQkJCQkJCQkJICB0YWJu YW1lKSkKKwkJeworCQkJUFFjbGVhcihyZXMpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJCWlm IChjYW5jZWxfcHJlc3NlZCkKKwkJeworCQkJUFFjbGVhcihyZXMpOworCQkJcmV0dXJuIGZhbHNl OworCQl9CisJfQorCisJUFFjbGVhcihyZXMpOworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMg Ym9vbAorZGVzY3JpYmVPbmVJbmRleENvbHVtblByb3BlcnRpZXMoY29uc3QgY2hhciAqb2lkLAor CQkJCQkJCQkgY29uc3QgY2hhciAqbnNwbmFtZSwKKwkJCQkJCQkJIGNvbnN0IGNoYXIgKmlkeG5h bWUsCisJCQkJCQkJCSBjb25zdCBjaGFyICphbW5hbWUsCisJCQkJCQkJCSBjb25zdCBjaGFyICp0 YWJuYW1lKQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVzOworCXBy aW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisJY2hhcgkgICAqZm9vdGVyc1szXSA9IHtO VUxMLCBOVUxMfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2Zh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJCQkJIGZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlw cmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCSAgIlNFTEVDVFxuIgorCQkJCSAgIiAgYS5hdHRu YW1lIEFTIFwiJXNcIixcbiIKKwkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X2luZGV4ZGVmKGku aW5kZXhyZWxpZCwgYS5hdHRudW0sIHRydWUpIEFTIFwiJXNcIixcbiIKKwkJCQkgICIgIENBU0Ug V0hFTiBwZ19jYXRhbG9nLnBnX29wY2xhc3NfaXNfdmlzaWJsZShvLm9pZCkgVEhFTiAnJyBFTFNF IG4ubnNwbmFtZSB8fCAnLicgRU5EIHx8IG8ub3BjbmFtZSBBUyBcIiVzXCIsXG4iLAorCQkJCSAg Z2V0dGV4dF9ub29wKCJDb2x1bW4gbmFtZSIpLAorCQkJCSAgZ2V0dGV4dF9ub29wKCJFeHByIiks CisJCQkJICBnZXR0ZXh0X25vb3AoIk9wY2xhc3MiKSk7CisKKwlpZiAocHNldC5zdmVyc2lvbiA+ PSA5MDYwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiICBDQVNFXG4iCisJ CQkJCSAgIiAgICBXSEVOIHBnX2NhdGFsb2cucGdfaW5kZXhfY29sdW1uX2hhc19wcm9wZXJ0eShj Lm9pZCwgYS5hdHRudW0sICdvcmRlcmFibGUnKSA9IHRydWUgXG4iCisJCQkJCSAgIiAgICBUSEVO IHBnX2NhdGFsb2cucGdfaW5kZXhfY29sdW1uX2hhc19wcm9wZXJ0eShjLm9pZCwgYS5hdHRudW0s ICdhc2MnKVxuIgorCQkJCQkgICIgICAgRUxTRSBOVUxMIgorCQkJCQkgICIgIEVORCBBUyBcIiVz XCIsIgorCQkJCQkgICIgIENBU0VcbiIKKwkJCQkJICAiICAgIFdIRU4gcGdfY2F0YWxvZy5wZ19p bmRleF9jb2x1bW5faGFzX3Byb3BlcnR5KGMub2lkLCBhLmF0dG51bSwgJ29yZGVyYWJsZScpID0g dHJ1ZSBcbiIKKwkJCQkJICAiICAgIFRIRU4gcGdfY2F0YWxvZy5wZ19pbmRleF9jb2x1bW5faGFz X3Byb3BlcnR5KGMub2lkLCBhLmF0dG51bSwgJ251bGxzX2ZpcnN0JylcbiIKKwkJCQkJICAiICAg IEVMU0UgTlVMTCIKKwkJCQkJICAiICBFTkQgQVMgXCIlc1wiLCIKKwkJCQkJICAiICBwZ19jYXRh bG9nLnBnX2luZGV4X2NvbHVtbl9oYXNfcHJvcGVydHkoYy5vaWQsIGEuYXR0bnVtLCAnb3JkZXJh YmxlJykgQVMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfaW5kZXhfY29sdW1u X2hhc19wcm9wZXJ0eShjLm9pZCwgYS5hdHRudW0sICdkaXN0YW5jZV9vcmRlcmFibGUnKSBBUyBc IiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19pbmRleF9jb2x1bW5faGFzX3Byb3Bl cnR5KGMub2lkLCBhLmF0dG51bSwgJ3JldHVybmFibGUnKSBBUyBcIiVzXCIsXG4iCisJCQkJCSAg IiAgcGdfY2F0YWxvZy5wZ19pbmRleF9jb2x1bW5faGFzX3Byb3BlcnR5KGMub2lkLCBhLmF0dG51 bSwgJ3NlYXJjaF9hcnJheScpIEFTIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBn X2luZGV4X2NvbHVtbl9oYXNfcHJvcGVydHkoYy5vaWQsIGEuYXR0bnVtLCAnc2VhcmNoX251bGxz JykgQVMgXCIlc1wiXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiQVNDIiksCisJCQkJCSAgZ2V0 dGV4dF9ub29wKCJOdWxscyBmaXJzdCIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiT3JkZXJhYmxl IiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJEaXN0YW5jZSBvcmRlcmFibGUiKSwKKwkJCQkJICBn ZXR0ZXh0X25vb3AoIlJldHVybmFibGUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlNlYXJjaCBh cnJheSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU2VhcmNoIG51bGxzIikpOworCWVsc2UKKwkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiICBDQVNFIFdIRU4gYW0uYW1jYW5vcmRl ciBUSEVOIChpLmluZG9wdGlvblthLmF0dG51bSAtIDFdICYgJWQpID0gIDAgRUxTRSBOVUxMIEVO RCBBUyBcIiVzXCIsXG4iIC8qIElORE9QVElPTl9ERVNDICovCisJCQkJCSAgIiAgQ0FTRSBXSEVO IGFtLmFtY2Fub3JkZXIgVEhFTiAoaS5pbmRvcHRpb25bYS5hdHRudW0gLSAxXSAmICVkKSA8PiAw IEVMU0UgTlVMTCBFTkQgQVMgXCIlc1wiLFxuIiAvKiBJTkRPUFRJT05fTlVMTFNfRklSU1QgKi8K KwkJCQkJICAiICBhbS5hbWNhbm9yZGVyIEFTIFwiJXNcIixcbiIKKwkJCQkJICAiICBhbS5hbWNh bm9yZGVyYnlvcCBBUyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgYW0uYW1zZWFyY2hhcnJheSBBUyBc IiVzXCIsXG4iCisJCQkJCSAgIiAgYW0uYW1zZWFyY2hudWxscyBBUyBcIiVzXCJcbiIsCisJCQkJ CSAgSU5ET1BUSU9OX0RFU0MsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJBU0MiKSwKKwkJCQkJICBJ TkRPUFRJT05fTlVMTFNfRklSU1QsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJOdWxscyBmaXJzdCIp LAorCQkJCQkgIGdldHRleHRfbm9vcCgiT3JkZXJhYmxlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29w KCJEaXN0YW5jZSBvcmRlcmFibGUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlNlYXJjaCBhcnJh eSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU2VhcmNoIG51bGxzIikpOworCisJYXBwZW5kUFFF eHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNcbiIKKwkJ CQkJICAiICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19pbmRleCBpIE9OIGkuaW5kZXhyZWxpZCA9 IGMub2lkXG4iCisJCQkJCSAgIiAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIGEg T04gYS5hdHRyZWxpZCA9IGMub2lkXG4iCisJCQkJCSAgIiAgTEVGVCBKT0lOIHBnX2NhdGFsb2cu cGdfb3BjbGFzcyBvIE9OIG8ub2lkID0gKGkuaW5kY2xhc3M6OnBnX2NhdGFsb2cub2lkW10pW2Eu YXR0bnVtIC0gMV1cbiIKKwkJCQkJICAiICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3Bh Y2UgbiBPTiBuLm9pZCA9IG8ub3BjbmFtZXNwYWNlXG4iKTsKKwlpZiAocHNldC5zdmVyc2lvbiA8 IDkwNjAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICIgIExFRlQgSk9JTiBw Z19jYXRhbG9nLnBnX2FtIGFtIE9OIGFtLm9pZCA9IGMucmVsYW1cbiIpOworCWFwcGVuZFBRRXhw QnVmZmVyKCZidWYsCisJCQkJCSAgIldIRVJFIGMub2lkID0gJXNcbiIKKwkJCQkJICAiT1JERVIg QlkgYS5hdHRudW0iLAorCQkJCQkgIG9pZCk7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7 CisJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1cm4gZmFsc2U7CisJ aWYgKFBRbnR1cGxlcyhyZXMpID09IDApCisJeworCQlQUWNsZWFyKHJlcyk7CisJCXJldHVybiB0 cnVlOworCX0KKworCW15b3B0Lm51bGxQcmludCA9IE5VTEw7CisJbXlvcHQudGl0bGUgPSBwc3By aW50ZihfKCJJbmRleCAlcy4lcyIpLCBuc3BuYW1lLCBpZHhuYW1lKTsKKwlmb290ZXJzWzBdID0g cHNwcmludGYoXygiVGFibGU6ICVzIiksIHRhYm5hbWUpOworCWZvb3RlcnNbMV0gPSBwc3ByaW50 ZihfKCJBY2Nlc3MgbWV0aG9kOiAlcyIpLCBhbW5hbWUpOworCW15b3B0LmZvb3RlcnMgPSBmb290 ZXJzOworCW15b3B0LnRvcHQuZGVmYXVsdF9mb290ZXIgPSBmYWxzZTsKKwlteW9wdC50cmFuc2xh dGVfaGVhZGVyID0gdHJ1ZTsKKwlteW9wdC50cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9j b2x1bW5zOworCW15b3B0Lm5fdHJhbnNsYXRlX2NvbHVtbnMgPSBsZW5ndGhvZih0cmFuc2xhdGVf Y29sdW1ucyk7CisKKwlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFs c2UsIHBzZXQubG9nZmlsZSk7CisJUFFjbGVhcihyZXMpOworCXJldHVybiB0cnVlOworfQpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUu aAppbmRleCAzM2VlODFjNDg1Li4wNTc4NjNmZjAyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTMyLDQgKzEzMiwx MSBAQCBleHRlcm4gYm9vbCBkZXNjcmliZUFjY2Vzc01ldGhvZE9wZXJhdG9yQ2xhc3Nlcyhjb25z dCBjaGFyICphY2Nlc3NfbWV0aG9kX3BhdHRlcgogCQkJCQkJCQkJCQkJY29uc3QgY2hhciAqb3Bj bGFzc19wYXR0ZXJuLAogCQkJCQkJCQkJCQkJYm9vbCB2ZXJib3NlKTsKIAorLyogXGRpcCAqLwor ZXh0ZXJuIGJvb2wgZGVzY3JpYmVJbmRleFByb3BlcnRpZXMoY29uc3QgY2hhciAqcGF0dGVybiwg Ym9vbCBzaG93U3lzdGVtKTsKKworLyogXGRpY3AgKi8KK2V4dGVybiBib29sIGRlc2NyaWJlSW5k ZXhDb2x1bW5Qcm9wZXJ0aWVzKGNvbnN0IGNoYXIgKmluZGV4UGF0dGVybiwKKwkJCQkJCQkJCQkg IGJvb2wgc2hvd1N5c3RlbSk7CisKICNlbmRpZgkJCQkJCQkvKiBERVNDUklCRV9IICovCmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRleCAz ZDZkZTE2ZjBiLi4wNGY4MjRiOTFlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvaGVscC5jCisr KyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKQEAgLTI0Nyw2ICsyNDcsOCBAQCBzbGFzaFVzYWdlKHVu c2lnbmVkIHNob3J0IGludCBwYWdlcikKIAlmcHJpbnRmKG91dHB1dCwgXygiICBcXGRGdFsrXSBb UEFUVEVSTl0gICAgICBsaXN0IHRleHQgc2VhcmNoIHRlbXBsYXRlc1xuIikpOwogCWZwcmludGYo b3V0cHV0LCBfKCIgIFxcZGdbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qgcm9sZXNcbiIpKTsKIAlm cHJpbnRmKG91dHB1dCwgXygiICBcXGRpW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IGluZGV4ZXNc biIpKTsKKwlmcHJpbnRmKG91dHB1dCwgXygiICBcXGRpcFtTXSBbUEFUVEVSTl0gICAgICBsaXN0 IGluZGV4ZXMgd2l0aCBwcm9wZXJ0aWVzXG4iKSk7CisJZnByaW50ZihvdXRwdXQsIF8oIiAgXFxk aWNwW1NdW1BBVFRFUk5dICAgICAgc2hvdyBpbmRleCBjb2x1bW4gcHJvcGVydGllc1xuIikpOwog CWZwcmludGYob3V0cHV0LCBfKCIgIFxcZGwgICAgICAgICAgICAgICAgICAgIGxpc3QgbGFyZ2Ug b2JqZWN0cywgc2FtZSBhcyBcXGxvX2xpc3RcbiIpKTsKIAlmcHJpbnRmKG91dHB1dCwgXygiICBc XGRMW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IHByb2NlZHVyYWwgbGFuZ3VhZ2VzXG4iKSk7CiAJ ZnByaW50ZihvdXRwdXQsIF8oIiAgXFxkbVtTK10gW1BBVFRFUk5dICAgICAgbGlzdCBtYXRlcmlh bGl6ZWQgdmlld3NcbiIpKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUu YyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCA2YzFjNmI5MThkLi45MWZhZmVi ZGFlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0xMzQ5LDggKzEzNDksOCBAQCBwc3FsX2NvbXBsZXRp b24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkiXFxkIiwgIlxcZGEi LCAiXFxkQSIsICJcXGRBcCIsICJcXGRBZiIsICJcXGRBZm8iLCAiXFxkQWZwIiwgIlxcZEFvYyIs CiAJCSJcXGRiIiwgIlxcZGMiLCAiXFxkQyIsICJcXGRkIiwgIlxcZGRwIiwgIlxcZEQiLAogCQki XFxkZXMiLCAiXFxkZXQiLCAiXFxkZXUiLCAiXFxkZXciLCAiXFxkRSIsICJcXGRmIiwKLQkJIlxc ZEYiLCAiXFxkRmQiLCAiXFxkRnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRpIiwgIlxcZGwiLCAi XFxkTCIsCi0JCSJcXGRtIiwgIlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxcZHAiLAorCQkiXFxk RiIsICJcXGRGZCIsICJcXGRGcCIsICJcXGRGdCIsICJcXGRnIiwgIlxcZGkiLCAiXFxkaWNwIiwg IlxcZGlwIiwKKwkJIlxcZGwiLCAiXFxkTCIsICJcXGRtIiwgIlxcZG4iLCAiXFxkbyIsICJcXGRP IiwgIlxcZHAiLAogCQkiXFxkcmRzIiwgIlxcZFJzIiwgIlxcZFJwIiwgIlxcZHMiLCAiXFxkUyIs CiAJCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxkeSIsCiAJCSJc XGUiLCAiXFxlY2hvIiwgIlxcZWYiLCAiXFxlbGlmIiwgIlxcZWxzZSIsICJcXGVuY29kaW5nIiwK QEAgLTM0MzIsNiArMzQzMiwxMCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwg aW50IHN0YXJ0LCBpbnQgZW5kKQogCX0KIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGRhKiIp KQogCQlDT01QTEVURV9XSVRIX1ZFUlNJT05FRF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfYWdncmVnYXRlcywgTlVMTCk7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkQWYqIikp CisJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfYWNjZXNzX21ldGhvZHMp OworCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZEFmKiIsIE1hdGNoQW55KSkKKwkJQ09NUExF VEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfb3BlcmF0b3JfZmFtaWxpZXMs IE5VTEwpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZEEqIikpCiAJCUNPTVBMRVRFX1dJ VEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfYWNjZXNzX21ldGhvZHMpOwogCWVsc2UgaWYgKFRh aWxNYXRjaGVzQ1MoIlxcZGIqIikpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2luZGV4aW5nLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvaW5kZXhpbmcub3V0 CmluZGV4IDNlNjFmNTBlN2MuLmMzMzkyZDFkMzcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvaW5kZXhpbmcub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv aW5kZXhpbmcub3V0CkBAIC0xNDA0LDMgKzE0MDQsMjAgQEAgaW5zZXJ0IGludG8gY292aWR4cGFy dCB2YWx1ZXMgKDQsIDEpOwogaW5zZXJ0IGludG8gY292aWR4cGFydCB2YWx1ZXMgKDQsIDEpOwog RVJST1I6ICBkdXBsaWNhdGUga2V5IHZhbHVlIHZpb2xhdGVzIHVuaXF1ZSBjb25zdHJhaW50ICJj b3ZpZHhwYXJ0NF9hX2JfaWR4IgogREVUQUlMOiAgS2V5IChhKT0oNCkgYWxyZWFkeSBleGlzdHMu CistLSBUZXN0IHBzcWwgY29tbWFuZCBmb3IgZGlzcGxheWluZyBpbmZvcm1hdGlvbiBhYm91dCBp bmRleGVzLgorXGRpcCBicmluaWR4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSW5kZXggcHJvcGVydGllcworIFNjaGVtYSB8ICBOYW1lICAgfCBBY2Nlc3MgbWV0aG9kIHwg Q2x1c3RlcmFibGUgfCBJbmRleCBzY2FuIHwgQml0bWFwIHNjYW4gfCBCYWNrd2FyZCBzY2FuIAor LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IGJyaW5pZHggfCBi cmluICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgIHwgdCAgICAgICAgICAgfCBm CisoMSByb3cpCisKK1xkaWNwIGJvdGhhcnJheWlkeAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggcHVibGljLmJvdGhhcnJheWlkeAorIENv bHVtbiBuYW1lIHwgRXhwciB8ICBPcGNsYXNzICB8IEFTQyB8IE51bGxzIGZpcnN0IHwgT3JkZXJh YmxlIHwgRGlzdGFuY2Ugb3JkZXJhYmxlIHwgUmV0dXJuYWJsZSB8IFNlYXJjaCBhcnJheSB8IFNl YXJjaCBudWxscyAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgaSAgICAgICAgICAgfCBpICAgIHwgYXJyYXlf b3BzIHwgICAgIHwgICAgICAgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgIHwgZiAgICAgICAgICAgIHwgZgorIHQgICAgICAgICAgIHwgdCAgICB8IGFy cmF5X29wcyB8ICAgICB8ICAgICAgICAgICAgIHwgZiAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICB8IGYKK1RhYmxlOiBhcnJheV9pbmRleF9v cF90ZXN0CitBY2Nlc3MgbWV0aG9kOiBnaW4KKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvaW5kZXhpbmcuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvaW5kZXhpbmcuc3FsCmlu ZGV4IDQwMGI3ZWI3YmEuLmJmODc1ZDk4MmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2luZGV4aW5nLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9pbmRleGluZy5zcWwK QEAgLTc1MywzICs3NTMsNyBAQCBjcmVhdGUgdW5pcXVlIGluZGV4IG9uIGNvdmlkeHBhcnQ0IChh KTsKIGFsdGVyIHRhYmxlIGNvdmlkeHBhcnQgYXR0YWNoIHBhcnRpdGlvbiBjb3ZpZHhwYXJ0NCBm b3IgdmFsdWVzIGluICg0KTsKIGluc2VydCBpbnRvIGNvdmlkeHBhcnQgdmFsdWVzICg0LCAxKTsK IGluc2VydCBpbnRvIGNvdmlkeHBhcnQgdmFsdWVzICg0LCAxKTsKKworLS0gVGVzdCBwc3FsIGNv bW1hbmQgZm9yIGRpc3BsYXlpbmcgaW5mb3JtYXRpb24gYWJvdXQgaW5kZXhlcy4KK1xkaXAgYnJp bmlkeAorXGRpY3AgYm90aGFycmF5aWR4Cg== --=-q5MTxHn4NRpdUTmz/HSU--