From unknown Mon Aug 18 00:05:29 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#32427 <32427@debbugs.gnu.org> To: bug#32427 <32427@debbugs.gnu.org> Subject: Status: several issues found by covscan in diffutils-3.6 Reply-To: bug#32427 <32427@debbugs.gnu.org> Date: Mon, 18 Aug 2025 07:05:29 +0000 retitle 32427 several issues found by covscan in diffutils-3.6 reassign 32427 diffutils submitter 32427 than severity 32427 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 13 11:17:05 2018 Received: (at submit) by debbugs.gnu.org; 13 Aug 2018 15:17:05 +0000 Received: from localhost ([127.0.0.1]:49861 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fpEaf-0006MC-DJ for submit@debbugs.gnu.org; Mon, 13 Aug 2018 11:17:05 -0400 Received: from eggs.gnu.org ([208.118.235.92]:51436) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fp8SR-00070J-HR for submit@debbugs.gnu.org; Mon, 13 Aug 2018 04:44:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fp8SF-0007Kn-WE for submit@debbugs.gnu.org; Mon, 13 Aug 2018 04:44:06 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:58971) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fp8SF-0007Kf-Jo for submit@debbugs.gnu.org; Mon, 13 Aug 2018 04:43:59 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52557) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fp8S8-0000ua-TS for bug-diffutils@gnu.org; Mon, 13 Aug 2018 04:43:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fp8S2-0007I6-JN for bug-diffutils@gnu.org; Mon, 13 Aug 2018 04:43:52 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:48162 helo=mx1.redhat.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fp8S2-0007Hp-19 for bug-diffutils@gnu.org; Mon, 13 Aug 2018 04:43:46 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id ECD5B40200A7 for ; Mon, 13 Aug 2018 08:43:44 +0000 (UTC) Received: from karlsruhe.str.redhat.com (karlsruhe.str.redhat.com [10.33.200.25]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1C3061C5B7 for ; Mon, 13 Aug 2018 08:43:43 +0000 (UTC) To: bug-diffutils@gnu.org From: than Subject: several issues found by covscan in diffutils-3.6 Message-ID: Date: Mon, 13 Aug 2018 10:43:43 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------9D0E01F36EDD216997B7BE0F" Content-Language: de-DE X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Mon, 13 Aug 2018 08:43:45 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Mon, 13 Aug 2018 08:43:45 +0000 (UTC) for IP:'10.11.54.5' DOMAIN:'int-mx05.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'than@redhat.com' RCPT:'' X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Mon, 13 Aug 2018 11:17:04 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" This is a multi-part message in MIME format. --------------9D0E01F36EDD216997B7BE0F Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Covscan found a large number of issues in diffutils-3.6. The Coverity covscan result is attached. Best Regards, Than --------------9D0E01F36EDD216997B7BE0F Content-Type: text/plain; charset=UTF-8; name="scan-results.err" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="scan-results.err" RXJyb3I6IE5PX0VGRkVDVCAoQ1dFLTM5OCk6CmRpZmZ1dGlscy0zLjYvbGliL2FueXRvc3Ry LmM6NDE6IHVuc2lnbmVkX2NvbXBhcmU6IFRoaXMgbGVzcy10aGFuLXplcm8gY29tcGFyaXNv biBvZiBhbiB1bnNpZ25lZCB2YWx1ZSBpcyBuZXZlciB0cnVlLiAiaSA8IDBVIi4KIyAgIDM5 fCAgICAgKnAgPSAwOwojICAgNDB8ICAgCiMgICA0MXwtPiAgIGlmIChpIDwgMCkKIyAgIDQy fCAgICAgICB7CiMgICA0M3wgICAgICAgICBkbwoKRXJyb3I6IE5PX0VGRkVDVCAoQ1dFLTM5 OCk6CmRpZmZ1dGlscy0zLjYvbGliL2FueXRvc3RyLmM6NDE6IHVuc2lnbmVkX2NvbXBhcmU6 IFRoaXMgbGVzcy10aGFuLXplcm8gY29tcGFyaXNvbiBvZiBhbiB1bnNpZ25lZCB2YWx1ZSBp cyBuZXZlciB0cnVlLiAiaSA8IDBVTCIuCiMgICAzOXwgICAgICpwID0gMDsKIyAgIDQwfCAg IAojICAgNDF8LT4gICBpZiAoaSA8IDApCiMgICA0MnwgICAgICAgewojICAgNDN8ICAgICAg ICAgZG8KCkVycm9yOiBVTklOSVQgKENXRS00NTcpOgpkaWZmdXRpbHMtMy42L2xpYi9kaWZm c2VxLmg6Mzc3OiB2YXJfZGVjbDogRGVjbGFyaW5nIHZhcmlhYmxlICJmeGJlc3QiIHdpdGhv dXQgaW5pdGlhbGl6ZXIuCmRpZmZ1dGlscy0zLjYvbGliL2RpZmZzZXEuaDo0MjA6IHVuaW5p dF91c2U6IFVzaW5nIHVuaW5pdGlhbGl6ZWQgdmFsdWUgImZ4YmVzdCIuCiMgIDQxOHwgICAg ICAgICAgICAgaWYgKCh4bGltICsgeWxpbSkgLSBieHliZXN0IDwgZnh5YmVzdCAtICh4b2Zm ICsgeW9mZikpCiMgIDQxOXwgICAgICAgICAgICAgICB7CiMgIDQyMHwtPiAgICAgICAgICAg ICAgIHBhcnQtPnhtaWQgPSBmeGJlc3Q7CiMgIDQyMXwgICAgICAgICAgICAgICAgIHBhcnQt PnltaWQgPSBmeHliZXN0IC0gZnhiZXN0OwojICA0MjJ8ICAgICAgICAgICAgICAgICBwYXJ0 LT5sb19taW5pbWFsID0gdHJ1ZTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpkaWZmdXRp bHMtMy42L2xpYi9kaWZmc2VxLmg6NDIxOjM2OiB3YXJuaW5nOiAnZnhiZXN0JyBtYXkgYmUg dXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XbWF5YmUtdW5pbml0aWFs aXplZF0KIyAgICAgICAgICAgICAgIHBhcnQtPnltaWQgPSBmeHliZXN0IC0gZnhiZXN0Owoj ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+Xn5+fn5+fn4KZGlmZnV0aWxz LTMuNi9saWIvZGlmZnNlcS5oOjM3NzoxODogbm90ZTogJ2Z4YmVzdCcgd2FzIGRlY2xhcmVk IGhlcmUKIyAgICAgICAgICAgT0ZGU0VUIGZ4YmVzdCBJRl9MSU5UICg9IDApOwojICAgICAg ICAgICAgICAgICAgXn5+fn5+CiMgIDQxOXwgICAgICAgICAgICAgICB7CiMgIDQyMHwgICAg ICAgICAgICAgICAgIHBhcnQtPnhtaWQgPSBmeGJlc3Q7CiMgIDQyMXwtPiAgICAgICAgICAg ICAgIHBhcnQtPnltaWQgPSBmeHliZXN0IC0gZnhiZXN0OwojICA0MjJ8ICAgICAgICAgICAg ICAgICBwYXJ0LT5sb19taW5pbWFsID0gdHJ1ZTsKIyAgNDIzfCAgICAgICAgICAgICAgICAg cGFydC0+aGlfbWluaW1hbCA9IGZhbHNlOwoKRXJyb3I6IFVOSU5JVCAoQ1dFLTQ1Nyk6CmRp ZmZ1dGlscy0zLjYvbGliL2RpZmZzZXEuaDozNzk6IHZhcl9kZWNsOiBEZWNsYXJpbmcgdmFy aWFibGUgImJ4YmVzdCIgd2l0aG91dCBpbml0aWFsaXplci4KZGlmZnV0aWxzLTMuNi9saWIv ZGlmZnNlcS5oOjQyNzogdW5pbml0X3VzZTogVXNpbmcgdW5pbml0aWFsaXplZCB2YWx1ZSAi YnhiZXN0Ii4KIyAgNDI1fCAgICAgICAgICAgICBlbHNlCiMgIDQyNnwgICAgICAgICAgICAg ICB7CiMgIDQyN3wtPiAgICAgICAgICAgICAgIHBhcnQtPnhtaWQgPSBieGJlc3Q7CiMgIDQy OHwgICAgICAgICAgICAgICAgIHBhcnQtPnltaWQgPSBieHliZXN0IC0gYnhiZXN0OwojICA0 Mjl8ICAgICAgICAgICAgICAgICBwYXJ0LT5sb19taW5pbWFsID0gZmFsc2U7CgpFcnJvcjog Q09NUElMRVJfV0FSTklORzoKZGlmZnV0aWxzLTMuNi9zcmMvYW5hbHl6ZS5jOjM1OiBpbmNs dWRlZF9mcm9tOiBJbmNsdWRlZCBmcm9tIGhlcmUuCmRpZmZ1dGlscy0zLjYvbGliL2RpZmZz ZXEuaDogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2NvbXBhcmVzZXEnCmRpZmZ1dGlscy0z LjYvbGliL2RpZmZzZXEuaDo0Mjg6MzY6IHdhcm5pbmc6ICdieGJlc3QnIG1heSBiZSB1c2Vk IHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdtYXliZS11bmluaXRpYWxpemVk XQojICAgICAgICAgICAgICAgcGFydC0+eW1pZCA9IGJ4eWJlc3QgLSBieGJlc3Q7CiMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5efn5+fn5+fgpkaWZmdXRpbHMtMy42 L2xpYi9kaWZmc2VxLmg6Mzc5OjE4OiBub3RlOiAnYnhiZXN0JyB3YXMgZGVjbGFyZWQgaGVy ZQojICAgICAgICAgICBPRkZTRVQgYnhiZXN0IElGX0xJTlQgKD0gMCk7CiMgICAgICAgICAg ICAgICAgICBefn5+fn4KIyAgNDI2fCAgICAgICAgICAgICAgIHsKIyAgNDI3fCAgICAgICAg ICAgICAgICAgcGFydC0+eG1pZCA9IGJ4YmVzdDsKIyAgNDI4fC0+ICAgICAgICAgICAgICAg cGFydC0+eW1pZCA9IGJ4eWJlc3QgLSBieGJlc3Q7CiMgIDQyOXwgICAgICAgICAgICAgICAg IHBhcnQtPmxvX21pbmltYWwgPSBmYWxzZTsKIyAgNDMwfCAgICAgICAgICAgICAgICAgcGFy dC0+aGlfbWluaW1hbCA9IHRydWU7CgpFcnJvcjogREVBRENPREUgKENXRS01NjEpOgpkaWZm dXRpbHMtMy42L2xpYi9kaXJuYW1lLWxncGwuYzozNDogYXNzaWdubWVudDogQXNzaWduaW5n OiAicHJlZml4X2xlbmd0aCIgPSAiMFVMIi4KZGlmZnV0aWxzLTMuNi9saWIvZGlybmFtZS1s Z3BsLmM6Mzg6IGNvbnN0OiBBdCBjb25kaXRpb24gInByZWZpeF9sZW5ndGggIT0gMFVMIiwg dGhlIHZhbHVlIG9mICJwcmVmaXhfbGVuZ3RoIiBtdXN0IGJlIGVxdWFsIHRvIDAuCmRpZmZ1 dGlscy0zLjYvbGliL2Rpcm5hbWUtbGdwbC5jOjM4OiBkZWFkX2Vycm9yX2NvbmRpdGlvbjog VGhlIGNvbmRpdGlvbiAicHJlZml4X2xlbmd0aCAhPSAwVUwiIGNhbm5vdCBiZSB0cnVlLgpk aWZmdXRpbHMtMy42L2xpYi9kaXJuYW1lLWxncGwuYzozODogZGVhZF9lcnJvcl9saW5lOiBF eGVjdXRpb24gY2Fubm90IHJlYWNoIHRoZSBleHByZXNzaW9uICIwIiBpbnNpZGUgdGhpcyBz dGF0ZW1lbnQ6ICJwcmVmaXhfbGVuZ3RoICs9ICgocHJlZml4X2wuLi4iLgojICAgMzZ8ICAg CiMgICAzN3wgICAgIC8qIEFkdmFuY2UgcHJlZml4X2xlbmd0aCBiZXlvbmQgaW1wb3J0YW50 IGxlYWRpbmcgc2xhc2hlcy4gICovCiMgICAzOHwtPiAgIHByZWZpeF9sZW5ndGggKz0gKHBy ZWZpeF9sZW5ndGggIT0gMAojICAgMzl8ICAgICAgICAgICAgICAgICAgICAgICA/IChGSUxF X1NZU1RFTV9EUklWRV9QUkVGSVhfQ0FOX0JFX1JFTEFUSVZFCiMgICA0MHwgICAgICAgICAg ICAgICAgICAgICAgICAgICYmIElTU0xBU0ggKGZpbGVbcHJlZml4X2xlbmd0aF0pKQoKRXJy b3I6IFJFU09VUkNFX0xFQUsgKENXRS03NzIpOgpkaWZmdXRpbHMtMy42L2xpYi9mcmVvcGVu LXNhZmVyLmM6NDI6IG9wZW5fZm46IFJldHVybmluZyBoYW5kbGUgb3BlbmVkIGJ5ICJvcGVu Ii4gW05vdGU6IFRoZSBzb3VyY2UgY29kZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZnVuY3Rp b24gaGFzIGJlZW4gb3ZlcnJpZGRlbiBieSBhIHVzZXIgbW9kZWwuXQpkaWZmdXRpbHMtMy42 L2xpYi9mcmVvcGVuLXNhZmVyLmM6NDI6IHZhcl9hc3NpZ246IEFzc2lnbmluZzogInZhbHVl IiA9IGhhbmRsZSByZXR1cm5lZCBmcm9tICJvcGVuKCIvZGV2L251bGwiLCAwKSIuCmRpZmZ1 dGlscy0zLjYvbGliL2ZyZW9wZW4tc2FmZXIuYzo1MjogbGVha2VkX2hhbmRsZTogSGFuZGxl IHZhcmlhYmxlICJ2YWx1ZSIgZ29pbmcgb3V0IG9mIHNjb3BlIGxlYWtzIHRoZSBoYW5kbGUu CiMgICA1MHwgICAgICAgICByZXR1cm4gZmFsc2U7CiMgICA1MXwgICAgICAgfQojICAgNTJ8 LT4gICByZXR1cm4gdHJ1ZTsKIyAgIDUzfCAgIH0KIyAgIDU0fCAgIAoKRXJyb3I6IENMQU5H X1dBUk5JTkc6CmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjI0MzoyMzogd2Fy bmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ29sZF9yZXNf cHRyJwojICAgICAgICAgICAgICAgICAgICAgIHN0cmNweSAocmVzX3B0ciArIHJlc19zaXpl IC0gKGwyICsgMSkgLSAobDEgKyAxKSwgYnVmMSk7CiMgICAgICAgICAgICAgICAgICAgICAg XgpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzo1ODg6Nzogbm90ZTogQXNzdW1p bmcgJ2NvZGVzZXQnIGlzIG5vdCBlcXVhbCB0byBOVUxMCiMgIGlmIChjb2Rlc2V0ID09IE5V TEwpCiMgICAgICBefn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFy c2V0LmM6NTg4OjM6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAgaWYgKGNvZGVzZXQg PT0gTlVMTCkKIyAgXgpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzo1OTM6MTg6 IG5vdGU6IENhbGxpbmcgJ2dldF9jaGFyc2V0X2FsaWFzZXMnCiMgIGZvciAoYWxpYXNlcyA9 IGdldF9jaGFyc2V0X2FsaWFzZXMgKCk7CiMgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MTMwOjc6IG5v dGU6IEFzc3VtaW5nICdjcCcgaXMgZXF1YWwgdG8gTlVMTAojICBpZiAoY3AgPT0gTlVMTCkK IyAgICAgIF5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MTMw OjM6IG5vdGU6IFRha2luZyB0cnVlIGJyYW5jaAojICBpZiAoY3AgPT0gTlVMTCkKIyAgXgpk aWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoxNDE6MTE6IG5vdGU6IEFzc3VtaW5n ICdkaXInIGlzIG5vdCBlcXVhbCB0byBOVUxMCiMgICAgICBpZiAoZGlyID09IE5VTEwgfHwg ZGlyWzBdID09ICdcMCcpCiMgICAgICAgICAgXn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9s aWIvbG9jYWxjaGFyc2V0LmM6MTQxOjExOiBub3RlOiBMZWZ0IHNpZGUgb2YgJ3x8JyBpcyBm YWxzZQpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoxNDE6MjY6IG5vdGU6IEFz c3VtaW5nIHRoZSBjb25kaXRpb24gaXMgZmFsc2UKIyAgICAgIGlmIChkaXIgPT0gTlVMTCB8 fCBkaXJbMF0gPT0gJ1wwJykKIyAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fgpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoxNDE6Nzogbm90ZTogVGFr aW5nIGZhbHNlIGJyYW5jaAojICAgICAgaWYgKGRpciA9PSBOVUxMIHx8IGRpclswXSA9PSAn XDAnKQojICAgICAgXgpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoxNDg6MjY6 IG5vdGU6IEFzc3VtaW5nICdkaXJfbGVuJyBpcyA8PSAwCiMgICAgICAgIGludCBhZGRfc2xh c2ggPSAoZGlyX2xlbiA+IDAgJiYgIUlTU0xBU0ggKGRpcltkaXJfbGVuIC0gMV0pKTsKIyAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L2xpYi9s b2NhbGNoYXJzZXQuYzoxNDg6Mzg6IG5vdGU6IExlZnQgc2lkZSBvZiAnJiYnIGlzIGZhbHNl CiMgICAgICAgIGludCBhZGRfc2xhc2ggPSAoZGlyX2xlbiA+IDAgJiYgIUlTU0xBU0ggKGRp cltkaXJfbGVuIC0gMV0pKTsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjE1MDoxMzogbm90ZTogQXNz dW1pbmcgJ2ZpbGVfbmFtZScgaXMgbm90IGVxdWFsIHRvIE5VTEwKIyAgICAgICAgaWYgKGZp bGVfbmFtZSAhPSBOVUxMKQojICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0 aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MTUwOjk6IG5vdGU6IFRha2luZyB0cnVlIGJy YW5jaAojICAgICAgICBpZiAoZmlsZV9uYW1lICE9IE5VTEwpCiMgICAgICAgIF4KZGlmZnV0 aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MTUzOjEzOiBub3RlOiBUYWtpbmcgZmFsc2Ug YnJhbmNoCiMgICAgICAgICAgICBpZiAoYWRkX3NsYXNoKQojICAgICAgICAgICAgXgpkaWZm dXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoxNjE6Nzogbm90ZTogVGFraW5nIGZhbHNl IGJyYW5jaAojICAgICAgaWYgKGZpbGVfbmFtZSA9PSBOVUxMKQojICAgICAgXgpkaWZmdXRp bHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoxNzc6MTU6IG5vdGU6IEFzc3VtaW5nICdmZCcg aXMgPj0gMAojICAgICAgICAgIGlmIChmZCA8IDApCiMgICAgICAgICAgICAgIF5+fn5+fgpk aWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoxNzc6MTE6IG5vdGU6IFRha2luZyBm YWxzZSBicmFuY2gKIyAgICAgICAgICBpZiAoZmQgPCAwKQojICAgICAgICAgIF4KZGlmZnV0 aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MTg1OjE5OiBub3RlOiBBc3N1bWluZyAnZnAn IGlzIG5vdCBlcXVhbCB0byBOVUxMCiMgICAgICAgICAgICAgIGlmIChmcCA9PSBOVUxMKQoj ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNo YXJzZXQuYzoxODU6MTU6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAgICAgICAgICAg ICAgaWYgKGZwID09IE5VTEwpCiMgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9saWIv bG9jYWxjaGFyc2V0LmM6MTk3OjE5OiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyB0cnVlLiAg RW50ZXJpbmcgbG9vcCBib2R5CiMgICAgICAgICAgICAgICAgICBmb3IgKDs7KQojICAgICAg ICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoyMDY6MjM6 IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAgICAgICAgICAgICAgICAgICAgICBpZiAo YyA9PSBFT0YpCiMgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L2xpYi9s b2NhbGNoYXJzZXQuYzoyMDg6Mjc6IG5vdGU6IEFzc3VtaW5nIHRoZSBjb25kaXRpb24gaXMg ZmFsc2UKIyAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXG4nIHx8IGMgPT0gJyAn IHx8IGMgPT0gJ1x0JykKIyAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CmRp ZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjIwODoyNzogbm90ZTogTGVmdCBzaWRl IG9mICd8fCcgaXMgZmFsc2UKZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MjA4 OjQwOiBub3RlOiBBc3N1bWluZyB0aGUgY29uZGl0aW9uIGlzIGZhbHNlCiMgICAgICAgICAg ICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJyB8fCBjID09ICcgJyB8fCBjID09ICdcdCcpCiMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fgpkaWZmdXRp bHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoyMDg6Mjc6IG5vdGU6IExlZnQgc2lkZSBvZiAn fHwnIGlzIGZhbHNlCiMgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJyB8fCBj ID09ICcgJyB8fCBjID09ICdcdCcpCiMgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZGlm ZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MjA4OjUyOiBub3RlOiBBc3N1bWluZyB0 aGUgY29uZGl0aW9uIGlzIGZhbHNlCiMgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0g J1xuJyB8fCBjID09ICcgJyB8fCBjID09ICdcdCcpCiMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9s aWIvbG9jYWxjaGFyc2V0LmM6MjA4OjIzOiBub3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMg ICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJyB8fCBjID09ICcgJyB8fCBjID09 ICdcdCcpCiMgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L2xpYi9sb2Nh bGNoYXJzZXQuYzoyMTA6Mjc6IG5vdGU6IEFzc3VtaW5nIHRoZSBjb25kaXRpb24gaXMgZmFs c2UKIyAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnIycpCiMgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5j OjIxMDoyMzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAgICAgICAgICAgICAg ICAgIGlmIChjID09ICcjJykKIyAgICAgICAgICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0z LjYvbGliL2xvY2FsY2hhcnNldC5jOjIyMToyNzogbm90ZTogQXNzdW1pbmcgdGhlIGNvbmRp dGlvbiBpcyBmYWxzZQojICAgICAgICAgICAgICAgICAgICAgIGlmIChmc2NhbmYgKGZwLCAi JTUwcyAlNTBzIiwgYnVmMSwgYnVmMikgPCAyKQojICAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0z LjYvbGliL2xvY2FsY2hhcnNldC5jOjIyMToyMzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5j aAojICAgICAgICAgICAgICAgICAgICAgIGlmIChmc2NhbmYgKGZwLCAiJTUwcyAlNTBzIiwg YnVmMSwgYnVmMikgPCAyKQojICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMu Ni9saWIvbG9jYWxjaGFyc2V0LmM6MjI2OjIzOiBub3RlOiBUYWtpbmcgdHJ1ZSBicmFuY2gK IyAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzX3NpemUgPT0gMCkKIyAgICAgICAgICAg ICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjIyOTo0Njog bm90ZTogTWVtb3J5IGlzIGFsbG9jYXRlZAojICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXNfcHRyID0gKGNoYXIgKikgbWFsbG9jIChyZXNfc2l6ZSArIDEpOwojICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ CmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjIzNjoyNzogbm90ZTogQXNzdW1p bmcgJ3Jlc19wdHInIGlzIG5vdCBlcXVhbCB0byBOVUxMCiMgICAgICAgICAgICAgICAgICAg ICAgaWYgKHJlc19wdHIgPT0gTlVMTCkKIyAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjIzNjoyMzog bm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAgICAgICAgICAgICAgICAgIGlmIChy ZXNfcHRyID09IE5VTEwpCiMgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42 L2xpYi9sb2NhbGNoYXJzZXQuYzoxOTc6MTk6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIHRy dWUuICBFbnRlcmluZyBsb29wIGJvZHkKIyAgICAgICAgICAgICAgICAgIGZvciAoOzspCiMg ICAgICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjIw NjoyNzogbm90ZTogQXNzdW1pbmcgdGhlIGNvbmRpdGlvbiBpcyBmYWxzZQojICAgICAgICAg ICAgICAgICAgICAgIGlmIChjID09IEVPRikKIyAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MjA2OjIzOiBub3Rl OiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0g RU9GKQojICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxj aGFyc2V0LmM6MjA4OjI3OiBub3RlOiBBc3N1bWluZyB0aGUgY29uZGl0aW9uIGlzIGZhbHNl CiMgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJyB8fCBjID09ICcgJyB8fCBj ID09ICdcdCcpCiMgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fgpkaWZmdXRp bHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoyMDg6Mjc6IG5vdGU6IExlZnQgc2lkZSBvZiAn fHwnIGlzIGZhbHNlCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjIwODo0MDog bm90ZTogQXNzdW1pbmcgdGhlIGNvbmRpdGlvbiBpcyBmYWxzZQojICAgICAgICAgICAgICAg ICAgICAgIGlmIChjID09ICdcbicgfHwgYyA9PSAnICcgfHwgYyA9PSAnXHQnKQojICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn4KZGlmZnV0aWxzLTMu Ni9saWIvbG9jYWxjaGFyc2V0LmM6MjA4OjI3OiBub3RlOiBMZWZ0IHNpZGUgb2YgJ3x8JyBp cyBmYWxzZQojICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdcbicgfHwgYyA9PSAn ICcgfHwgYyA9PSAnXHQnKQojICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmZ1dGls cy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjIwODo1Mjogbm90ZTogQXNzdW1pbmcgdGhlIGNv bmRpdGlvbiBpcyBmYWxzZQojICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdcbicg fHwgYyA9PSAnICcgfHwgYyA9PSAnXHQnKQojICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvbGliL2xv Y2FsY2hhcnNldC5jOjIwODoyMzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAg ICAgICAgICAgICAgICAgIGlmIChjID09ICdcbicgfHwgYyA9PSAnICcgfHwgYyA9PSAnXHQn KQojICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFy c2V0LmM6MjEwOjI3OiBub3RlOiBBc3N1bWluZyB0aGUgY29uZGl0aW9uIGlzIGZhbHNlCiMg ICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJyMnKQojICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fgpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoyMTA6 MjM6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAgICAgICAgICAgICAgICAgICAgICBp ZiAoYyA9PSAnIycpCiMgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L2xp Yi9sb2NhbGNoYXJzZXQuYzoyMjE6Mjc6IG5vdGU6IEFzc3VtaW5nIHRoZSBjb25kaXRpb24g aXMgZmFsc2UKIyAgICAgICAgICAgICAgICAgICAgICBpZiAoZnNjYW5mIChmcCwgIiU1MHMg JTUwcyIsIGJ1ZjEsIGJ1ZjIpIDwgMikKIyAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L2xp Yi9sb2NhbGNoYXJzZXQuYzoyMjE6MjM6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAg ICAgICAgICAgICAgICAgICAgICBpZiAoZnNjYW5mIChmcCwgIiU1MHMgJTUwcyIsIGJ1ZjEs IGJ1ZjIpIDwgMikKIyAgICAgICAgICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvbGli L2xvY2FsY2hhcnNldC5jOjIyNjoyNzogbm90ZTogQXNzdW1pbmcgJ3Jlc19zaXplJyBpcyBl cXVhbCB0byAwCiMgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc19zaXplID09IDApCiMg ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9s aWIvbG9jYWxjaGFyc2V0LmM6MjI2OjIzOiBub3RlOiBUYWtpbmcgdHJ1ZSBicmFuY2gKIyAg ICAgICAgICAgICAgICAgICAgICBpZiAocmVzX3NpemUgPT0gMCkKIyAgICAgICAgICAgICAg ICAgICAgICBeCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjIzNjoyNzogbm90 ZTogQXNzdW1pbmcgJ3Jlc19wdHInIGlzIG5vdCBlcXVhbCB0byBOVUxMCiMgICAgICAgICAg ICAgICAgICAgICAgaWYgKHJlc19wdHIgPT0gTlVMTCkKIyAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5j OjIzNjoyMzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAgICAgICAgICAgICAg ICAgIGlmIChyZXNfcHRyID09IE5VTEwpCiMgICAgICAgICAgICAgICAgICAgICAgXgpkaWZm dXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoyNDM6MjM6IG5vdGU6IFBvdGVudGlhbCBs ZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdvbGRfcmVzX3B0cicKIyAgICAgICAgICAg ICAgICAgICAgICBzdHJjcHkgKHJlc19wdHIgKyByZXNfc2l6ZSAtIChsMiArIDEpIC0gKGwx ICsgMSksIGJ1ZjEpOwojICAgICAgICAgICAgICAgICAgICAgIF4KIyAgMjQxfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiMgIDI0MnwgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CiMgIDI0M3wtPiAgICAgICAgICAgICAgICAgICAgICAgc3RyY3B5IChyZXNf cHRyICsgcmVzX3NpemUgLSAobDIgKyAxKSAtIChsMSArIDEpLCBidWYxKTsKIyAgMjQ0fCAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJjcHkgKHJlc19wdHIgKyByZXNfc2l6ZSAtIChs MiArIDEpLCBidWYyKTsKIyAgMjQ1fCAgICAgICAgICAgICAgICAgICAgICAgfQoKRXJyb3I6 IENIRUNLRURfUkVUVVJOIChDV0UtMjUyKToKZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFy c2V0LmM6MjQ2OiBjaGVja19yZXR1cm46IENhbGxpbmcgImZjbG9zZSIgd2l0aG91dCBjaGVj a2luZyByZXR1cm4gdmFsdWUgKGFzIGlzIGRvbmUgZWxzZXdoZXJlIDcgb3V0IG9mIDggdGlt ZXMpLgpkaWZmdXRpbHMtMy42L2xpYi9leGNsdWRlLmM6NjkxOiBleGFtcGxlX2NoZWNrZWQ6 IEV4YW1wbGUgMTogImZjbG9zZShpbikiIGhhcyBpdHMgdmFsdWUgY2hlY2tlZCBpbiAiZmNs b3NlKGluKSAhPSAwIi4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6MTU2OiBleGFtcGxlX2No ZWNrZWQ6IEV4YW1wbGUgMjogImZjbG9zZShzdGRvdXQpIiBoYXMgaXRzIHZhbHVlIGNoZWNr ZWQgaW4gImZjbG9zZShzdGRvdXQpICE9IDAiLgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmLmM6 ODg2OiBleGFtcGxlX2NoZWNrZWQ6IEV4YW1wbGUgMzogImZjbG9zZShzdGRvdXQpIiBoYXMg aXRzIHZhbHVlIGNoZWNrZWQgaW4gImZjbG9zZShzdGRvdXQpICE9IDAiLgpkaWZmdXRpbHMt My42L3NyYy9kaWZmMy5jOjQ3MDogZXhhbXBsZV9jaGVja2VkOiBFeGFtcGxlIDQ6ICJmY2xv c2Uoc3Rkb3V0KSIgaGFzIGl0cyB2YWx1ZSBjaGVja2VkIGluICJmY2xvc2Uoc3Rkb3V0KSAh PSAwIi4KZGlmZnV0aWxzLTMuNi9zcmMvc2RpZmYuYzoxNjg6IGV4YW1wbGVfY2hlY2tlZDog RXhhbXBsZSA1OiAiZmNsb3NlKHN0ZG91dCkiIGhhcyBpdHMgdmFsdWUgY2hlY2tlZCBpbiAi ZmNsb3NlKHN0ZG91dCkgIT0gMCIuCiMgIDI0NHwgICAgICAgICAgICAgICAgICAgICAgICAg c3RyY3B5IChyZXNfcHRyICsgcmVzX3NpemUgLSAobDIgKyAxKSwgYnVmMik7CiMgIDI0NXwg ICAgICAgICAgICAgICAgICAgICAgIH0KIyAgMjQ2fC0+ICAgICAgICAgICAgICAgICAgIGZj bG9zZSAoZnApOwojICAyNDd8ICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc19zaXplID09 IDApCiMgIDI0OHwgICAgICAgICAgICAgICAgICAgICAgIGNwID0gIiI7CgpFcnJvcjogQ0xB TkdfV0FSTklORzoKZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MjQ4OjI2OiB3 YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncmVzX3B0 cicKIyAgICAgICAgICAgICAgICAgICAgY3AgPSAiIjsKIyAgICAgICAgICAgICAgICAgICAg ICAgICBeCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjU4ODo3OiBub3RlOiBB c3N1bWluZyAnY29kZXNldCcgaXMgbm90IGVxdWFsIHRvIE5VTEwKIyAgaWYgKGNvZGVzZXQg PT0gTlVMTCkKIyAgICAgIF5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L2xpYi9sb2Nh bGNoYXJzZXQuYzo1ODg6Mzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICBpZiAoY29k ZXNldCA9PSBOVUxMKQojICBeCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjU5 MzoxODogbm90ZTogQ2FsbGluZyAnZ2V0X2NoYXJzZXRfYWxpYXNlcycKIyAgZm9yIChhbGlh c2VzID0gZ2V0X2NoYXJzZXRfYWxpYXNlcyAoKTsKIyAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoxMzA6 Nzogbm90ZTogQXNzdW1pbmcgJ2NwJyBpcyBlcXVhbCB0byBOVUxMCiMgIGlmIChjcCA9PSBO VUxMKQojICAgICAgXn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQu YzoxMzA6Mzogbm90ZTogVGFraW5nIHRydWUgYnJhbmNoCiMgIGlmIChjcCA9PSBOVUxMKQoj ICBeCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjE0MToxMTogbm90ZTogQXNz dW1pbmcgJ2RpcicgaXMgbm90IGVxdWFsIHRvIE5VTEwKIyAgICAgIGlmIChkaXIgPT0gTlVM TCB8fCBkaXJbMF0gPT0gJ1wwJykKIyAgICAgICAgICBefn5+fn5+fn5+fgpkaWZmdXRpbHMt My42L2xpYi9sb2NhbGNoYXJzZXQuYzoxNDE6MTE6IG5vdGU6IExlZnQgc2lkZSBvZiAnfHwn IGlzIGZhbHNlCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjE0MToyNjogbm90 ZTogQXNzdW1pbmcgdGhlIGNvbmRpdGlvbiBpcyBmYWxzZQojICAgICAgaWYgKGRpciA9PSBO VUxMIHx8IGRpclswXSA9PSAnXDAnKQojICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjE0MTo3OiBub3Rl OiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgICAgICBpZiAoZGlyID09IE5VTEwgfHwgZGlyWzBd ID09ICdcMCcpCiMgICAgICBeCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjE0 ODoyNjogbm90ZTogQXNzdW1pbmcgJ2Rpcl9sZW4nIGlzIDw9IDAKIyAgICAgICAgaW50IGFk ZF9zbGFzaCA9IChkaXJfbGVuID4gMCAmJiAhSVNTTEFTSCAoZGlyW2Rpcl9sZW4gLSAxXSkp OwojICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYv bGliL2xvY2FsY2hhcnNldC5jOjE0ODozODogbm90ZTogTGVmdCBzaWRlIG9mICcmJicgaXMg ZmFsc2UKIyAgICAgICAgaW50IGFkZF9zbGFzaCA9IChkaXJfbGVuID4gMCAmJiAhSVNTTEFT SCAoZGlyW2Rpcl9sZW4gLSAxXSkpOwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MTUwOjEzOiBub3Rl OiBBc3N1bWluZyAnZmlsZV9uYW1lJyBpcyBub3QgZXF1YWwgdG8gTlVMTAojICAgICAgICBp ZiAoZmlsZV9uYW1lICE9IE5VTEwpCiMgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgpk aWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoxNTA6OTogbm90ZTogVGFraW5nIHRy dWUgYnJhbmNoCiMgICAgICAgIGlmIChmaWxlX25hbWUgIT0gTlVMTCkKIyAgICAgICAgXgpk aWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoxNTM6MTM6IG5vdGU6IFRha2luZyBm YWxzZSBicmFuY2gKIyAgICAgICAgICAgIGlmIChhZGRfc2xhc2gpCiMgICAgICAgICAgICBe CmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjE2MTo3OiBub3RlOiBUYWtpbmcg ZmFsc2UgYnJhbmNoCiMgICAgICBpZiAoZmlsZV9uYW1lID09IE5VTEwpCiMgICAgICBeCmRp ZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjE3NzoxNTogbm90ZTogQXNzdW1pbmcg J2ZkJyBpcyA+PSAwCiMgICAgICAgICAgaWYgKGZkIDwgMCkKIyAgICAgICAgICAgICAgXn5+ fn5+CmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjE3NzoxMTogbm90ZTogVGFr aW5nIGZhbHNlIGJyYW5jaAojICAgICAgICAgIGlmIChmZCA8IDApCiMgICAgICAgICAgXgpk aWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoxODU6MTk6IG5vdGU6IEFzc3VtaW5n ICdmcCcgaXMgbm90IGVxdWFsIHRvIE5VTEwKIyAgICAgICAgICAgICAgaWYgKGZwID09IE5V TEwpCiMgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvbGliL2xv Y2FsY2hhcnNldC5jOjE4NToxNTogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAg ICAgICAgICBpZiAoZnAgPT0gTlVMTCkKIyAgICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42 L2xpYi9sb2NhbGNoYXJzZXQuYzoxOTc6MTk6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIHRy dWUuICBFbnRlcmluZyBsb29wIGJvZHkKIyAgICAgICAgICAgICAgICAgIGZvciAoOzspCiMg ICAgICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjIw NjoyMzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAgICAgICAgICAgICAgICAg IGlmIChjID09IEVPRikKIyAgICAgICAgICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYv bGliL2xvY2FsY2hhcnNldC5jOjIwODoyNzogbm90ZTogQXNzdW1pbmcgdGhlIGNvbmRpdGlv biBpcyBmYWxzZQojICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICdcbicgfHwgYyA9 PSAnICcgfHwgYyA9PSAnXHQnKQojICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MjA4OjI3OiBub3RlOiBMZWZ0 IHNpZGUgb2YgJ3x8JyBpcyBmYWxzZQpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQu YzoyMDg6NDA6IG5vdGU6IEFzc3VtaW5nIHRoZSBjb25kaXRpb24gaXMgZmFsc2UKIyAgICAg ICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXG4nIHx8IGMgPT0gJyAnIHx8IGMgPT0gJ1x0 JykKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+CmRp ZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjIwODoyNzogbm90ZTogTGVmdCBzaWRl IG9mICd8fCcgaXMgZmFsc2UKIyAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXG4n IHx8IGMgPT0gJyAnIHx8IGMgPT0gJ1x0JykKIyAgICAgICAgICAgICAgICAgICAgICAgICAg XgpkaWZmdXRpbHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoyMDg6NTI6IG5vdGU6IEFzc3Vt aW5nIHRoZSBjb25kaXRpb24gaXMgZmFsc2UKIyAgICAgICAgICAgICAgICAgICAgICBpZiAo YyA9PSAnXG4nIHx8IGMgPT0gJyAnIHx8IGMgPT0gJ1x0JykKIyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fgpkaWZmdXRpbHMt My42L2xpYi9sb2NhbGNoYXJzZXQuYzoyMDg6MjM6IG5vdGU6IFRha2luZyBmYWxzZSBicmFu Y2gKIyAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXG4nIHx8IGMgPT0gJyAnIHx8 IGMgPT0gJ1x0JykKIyAgICAgICAgICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvbGli L2xvY2FsY2hhcnNldC5jOjIxMDoyNzogbm90ZTogQXNzdW1pbmcgdGhlIGNvbmRpdGlvbiBp cyBmYWxzZQojICAgICAgICAgICAgICAgICAgICAgIGlmIChjID09ICcjJykKIyAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFy c2V0LmM6MjEwOjIzOiBub3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgICAgICAgICAgICAg ICAgICAgICAgaWYgKGMgPT0gJyMnKQojICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZnV0 aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MjIxOjI3OiBub3RlOiBBc3N1bWluZyB0aGUg Y29uZGl0aW9uIGlzIGZhbHNlCiMgICAgICAgICAgICAgICAgICAgICAgaWYgKGZzY2FuZiAo ZnAsICIlNTBzICU1MHMiLCBidWYxLCBidWYyKSA8IDIpCiMgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0 aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MjIxOjIzOiBub3RlOiBUYWtpbmcgZmFsc2Ug YnJhbmNoCiMgICAgICAgICAgICAgICAgICAgICAgaWYgKGZzY2FuZiAoZnAsICIlNTBzICU1 MHMiLCBidWYxLCBidWYyKSA8IDIpCiMgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmdXRp bHMtMy42L2xpYi9sb2NhbGNoYXJzZXQuYzoyMjY6MjM6IG5vdGU6IFRha2luZyB0cnVlIGJy YW5jaAojICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNfc2l6ZSA9PSAwKQojICAgICAg ICAgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MjI5 OjQ2OiBub3RlOiBNZW1vcnkgaXMgYWxsb2NhdGVkCiMgICAgICAgICAgICAgICAgICAgICAg ICAgIHJlc19wdHIgPSAoY2hhciAqKSBtYWxsb2MgKHJlc19zaXplICsgMSk7CiMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MjM2OjI3OiBub3RlOiBB c3N1bWluZyAncmVzX3B0cicgaXMgbm90IGVxdWFsIHRvIE5VTEwKIyAgICAgICAgICAgICAg ICAgICAgICBpZiAocmVzX3B0ciA9PSBOVUxMKQojICAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6MjM2 OjIzOiBub3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgICAgICAgICAgICAgICAgICAgICAg aWYgKHJlc19wdHIgPT0gTlVMTCkKIyAgICAgICAgICAgICAgICAgICAgICBeCmRpZmZ1dGls cy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjE5NzoxOTogbm90ZTogTG9vcCBjb25kaXRpb24g aXMgdHJ1ZS4gIEVudGVyaW5nIGxvb3AgYm9keQojICAgICAgICAgICAgICAgICAgZm9yICg7 OykKIyAgICAgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0 LmM6MjA2OjI3OiBub3RlOiBBc3N1bWluZyB0aGUgY29uZGl0aW9uIGlzIHRydWUKIyAgICAg ICAgICAgICAgICAgICAgICBpZiAoYyA9PSBFT0YpCiMgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjIwNjoyMzog bm90ZTogVGFraW5nIHRydWUgYnJhbmNoCiMgICAgICAgICAgICAgICAgICAgICAgaWYgKGMg PT0gRU9GKQojICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9saWIvbG9j YWxjaGFyc2V0LmM6MjA3OjI1OiBub3RlOiAgRXhlY3V0aW9uIGNvbnRpbnVlcyBvbiBsaW5l IDI0NgojICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiMgICAgICAgICAgICAgICAg ICAgICAgICBeCmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjI0NzoyMzogbm90 ZTogQXNzdW1pbmcgJ3Jlc19zaXplJyBpcyBlcXVhbCB0byAwCiMgICAgICAgICAgICAgICAg ICBpZiAocmVzX3NpemUgPT0gMCkKIyAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+CmRpZmZ1dGlscy0zLjYvbGliL2xvY2FsY2hhcnNldC5jOjI0NzoxOTogbm90ZTogVGFr aW5nIHRydWUgYnJhbmNoCiMgICAgICAgICAgICAgICAgICBpZiAocmVzX3NpemUgPT0gMCkK IyAgICAgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9saWIvbG9jYWxjaGFyc2V0LmM6 MjQ4OjI2OiBub3RlOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAn cmVzX3B0cicKIyAgICAgICAgICAgICAgICAgICAgY3AgPSAiIjsKIyAgICAgICAgICAgICAg ICAgICAgICAgICBeCiMgIDI0NnwgICAgICAgICAgICAgICAgICAgICBmY2xvc2UgKGZwKTsK IyAgMjQ3fCAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNfc2l6ZSA9PSAwKQojICAyNDh8 LT4gICAgICAgICAgICAgICAgICAgICBjcCA9ICIiOwojICAyNDl8ICAgICAgICAgICAgICAg ICAgICAgZWxzZQojICAyNTB8ICAgICAgICAgICAgICAgICAgICAgICB7CgpFcnJvcjogREVB RENPREUgKENXRS01NjEpOgpkaWZmdXRpbHMtMy42L2xpYi9ta3RpbWUuYzoxMDc6IGFzc2ln bm1lbnQ6IEFzc2lnbmluZzogIm9uZSIgPSAiMUwiLgpkaWZmdXRpbHMtMy42L2xpYi9ta3Rp bWUuYzoxMDg6IGNvbnN0OiBBdCBjb25kaXRpb24gIigtb25lID4+IDEpID09IDB4ZmZmZmZm ZmZmZmZmZmZmZkwiLCB0aGUgdmFsdWUgb2YgIm9uZSIgbXVzdCBiZSBlcXVhbCB0byAxLgpk aWZmdXRpbHMtMy42L2xpYi9ta3RpbWUuYzoxMDg6IGRlYWRfZXJyb3JfY29uZGl0aW9uOiBU aGUgY29uZGl0aW9uICIoLW9uZSA+PiAxKSA9PSAweGZmZmZmZmZmZmZmZmZmZmZMIiBtdXN0 IGJlIHRydWUuCmRpZmZ1dGlscy0zLjYvbGliL21rdGltZS5jOjEwODogZGVhZF9lcnJvcl9s aW5lOiBFeGVjdXRpb24gY2Fubm90IHJlYWNoIHRoZSBleHByZXNzaW9uICJhIC8gKG9uZSA8 PCBiKSIgaW5zaWRlIHRoaXMgc3RhdGVtZW50OiAicmV0dXJuICgoLW9uZSA+PiAxKSA9PSAw eGZmLi4uIi4KIyAgMTA2fCAgIHsKIyAgMTA3fCAgICAgbG9uZ19pbnQgb25lID0gMTsKIyAg MTA4fC0+ICAgcmV0dXJuICgtb25lID4+IDEgPT0gLTEKIyAgMTA5fCAgIAkgID8gYSA+PiBi CiMgIDExMHwgICAJICA6IGEgLyAob25lIDw8IGIpIC0gKGEgJSAob25lIDw8IGIpIDwgMCkp OwoKRXJyb3I6IENPTlNUQU5UX0VYUFJFU1NJT05fUkVTVUxUIChDV0UtMzk4KToKZGlmZnV0 aWxzLTMuNi9saWIvbWt0aW1lLmM6MjcwOiByZXN1bHRfaW5kZXBlbmRlbnRfb2Zfb3BlcmFu ZHM6ICIqdCA8IC05MjIzMzcyMDM2ODU0Nzc1ODA4TCAvKiBta3RpbWVfbWluICovIiBpcyBh bHdheXMgZmFsc2UgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWVzIG9mIGl0cyBvcGVyYW5kcy4g VGhpcyBvY2N1cnMgYXMgdGhlIGxvZ2ljYWwgb3BlcmFuZCBvZiAiaWYiLgojICAyNjh8ICAg ewojICAyNjl8ICAgICBzdHJ1Y3QgdG0gKnI7CiMgIDI3MHwtPiAgIGlmICgqdCA8IG1rdGlt ZV9taW4pCiMgIDI3MXwgICAgICAgKnQgPSBta3RpbWVfbWluOwojICAyNzJ8ICAgICBlbHNl IGlmIChta3RpbWVfbWF4IDwgKnQpCgpFcnJvcjogQ09OU1RBTlRfRVhQUkVTU0lPTl9SRVNV TFQgKENXRS0zOTgpOgpkaWZmdXRpbHMtMy42L2xpYi9ta3RpbWUuYzoyNzI6IHJlc3VsdF9p bmRlcGVuZGVudF9vZl9vcGVyYW5kczogIjkyMjMzNzIwMzY4NTQ3NzU4MDdMIC8qIG1rdGlt ZV9tYXggKi8gPCAqdCIgaXMgYWx3YXlzIGZhbHNlIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVl cyBvZiBpdHMgb3BlcmFuZHMuIFRoaXMgb2NjdXJzIGFzIHRoZSBsb2dpY2FsIG9wZXJhbmQg b2YgImlmIi4KIyAgMjcwfCAgICAgaWYgKCp0IDwgbWt0aW1lX21pbikKIyAgMjcxfCAgICAg ICAqdCA9IG1rdGltZV9taW47CiMgIDI3MnwtPiAgIGVsc2UgaWYgKG1rdGltZV9tYXggPCAq dCkKIyAgMjczfCAgICAgICAqdCA9IG1rdGltZV9tYXg7CiMgIDI3NHwgICAgIHIgPSBjb252 ZXJ0X3RpbWUgKGNvbnZlcnQsICp0LCB0cCk7CgpFcnJvcjogQ09OU1RBTlRfRVhQUkVTU0lP Tl9SRVNVTFQgKENXRS0zOTgpOgpkaWZmdXRpbHMtMy42L2xpYi9ta3RpbWUuYzo0NzI6IHJl c3VsdF9pbmRlcGVuZGVudF9vZl9vcGVyYW5kczogIi05MjIzMzcyMDM2ODU0Nzc1ODA4TCAv KiBta3RpbWVfbWluICovIDw9IHQiIGlzIGFsd2F5cyB0cnVlIHJlZ2FyZGxlc3Mgb2YgdGhl IHZhbHVlcyBvZiBpdHMgb3BlcmFuZHMuIFRoaXMgb2NjdXJzIGFzIHRoZSBsb2dpY2FsIGZp cnN0IG9wZXJhbmQgb2YgIiYmIi4KIyAgNDcwfCAgICAgICAgIHNlY19hZGp1c3RtZW50ICs9 IHNlY19yZXF1ZXN0ZWQ7CiMgIDQ3MXwgICAgICAgICBpZiAoSU5UX0FERF9XUkFQViAodCwg c2VjX2FkanVzdG1lbnQsICZ0KQojICA0NzJ8LT4gCSAgfHwgISAobWt0aW1lX21pbiA8PSB0 ICYmIHQgPD0gbWt0aW1lX21heCkKIyAgNDczfCAgIAkgIHx8ICEgY29udmVydF90aW1lIChj b252ZXJ0LCB0LCAmdG0pKQojICA0NzR8ICAgCXJldHVybiAtMTsKCkVycm9yOiBDT05TVEFO VF9FWFBSRVNTSU9OX1JFU1VMVCAoQ1dFLTM5OCk6CmRpZmZ1dGlscy0zLjYvbGliL3F1b3Rl YXJnLmM6NjUzOiBzYW1lX29uX2JvdGhfc2lkZXM6ICI5MSA9PSA5MSIgaXMgYWx3YXlzIHRy dWUgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWVzIG9mIGl0cyBvcGVyYW5kcyBiZWNhdXNlIHRo b3NlIG9wZXJhbmRzIGFyZSBpZGVudGljYWwuIFRoaXMgb2NjdXJzIGFzIHRoZSBsb2dpY2Fs IGZpcnN0IG9wZXJhbmQgb2YgIiYmIi4KIyAgNjUxfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEluIHByYWN0aWNlIHRoZSBwcm9ibGVtIGlzIGxpbWl0ZWQgdG8gQVNDSUkKIyAg NjUyfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJzID49ICdAJyB0aGF0IGFy ZSBzaGVsbCBzcGVjaWFsIGNoYXJzLiAgKi8KIyAgNjUzfC0+ICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICgnWycgPT0gMHg1YiAmJiBlbGlkZV9vdXRlcl9xdW90ZXMKIyAgNjU0fCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBxdW90aW5nX3N0eWxlID09IHNoZWxs X2Fsd2F5c19xdW90aW5nX3N0eWxlKQojICA2NTV8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7CgpFcnJvcjogTk9fRUZGRUNUIChDV0UtMzk4KToKZGlmZnV0aWxzLTMuNi9saWIv c3RyZnRpbWUuYzo2NjA6IGJhZF9tZW1zZXQ6IEZ1bmN0aW9uICJtZW1zZXQiIHdpdGggZmls bCB2YWx1ZSAiJzAnIiAodGhlIHplcm8gY2hhcmFjdGVyKSBpbiAibWVtc2V0KHAsIDQ4LCBf ZGVsdGEpIi4KZGlmZnV0aWxzLTMuNi9saWIvc3RyZnRpbWUuYzo2NjA6IHJlbWVkaWF0aW9u OiBEaWQgeW91IGludGVuZCB0byB1c2UgMCAodGhlIHZhbHVlIHplcm8pPwojICA2NTh8ICAg ICAgICAgaWYgKCpmICE9IExfKCclJykpCiMgIDY1OXwgICAgICAgICAgIHsKIyAgNjYwfC0+ ICAgICAgICAgICBhZGQxICgqZik7CiMgIDY2MXwgICAgICAgICAgICAgY29udGludWU7CiMg IDY2MnwgICAgICAgICAgIH0KCkVycm9yOiBDUFBDSEVDS19XQVJOSU5HOgpkaWZmdXRpbHMt My42L2xpYi9zdHJmdGltZS5jOjY2MDogZXJyb3JbaW52YWxpZEZ1bmN0aW9uQXJnXTogSW52 YWxpZCBtZW1zZXQoKSBhcmd1bWVudCBuciAzLiBUaGUgdmFsdWUgaXMgLTIgYnV0IHRoZSB2 YWxpZCB2YWx1ZXMgYXJlICcwOicuCiMgIDY1OHwgICAgICAgICBpZiAoKmYgIT0gTF8oJyUn KSkKIyAgNjU5fCAgICAgICAgICAgewojICA2NjB8LT4gICAgICAgICAgIGFkZDEgKCpmKTsK IyAgNjYxfCAgICAgICAgICAgICBjb250aW51ZTsKIyAgNjYyfCAgICAgICAgICAgfQoKRXJy b3I6IE5PX0VGRkVDVCAoQ1dFLTM5OCk6CmRpZmZ1dGlscy0zLjYvbGliL3N0cmZ0aW1lLmM6 NzcxOiBiYWRfbWVtc2V0OiBGdW5jdGlvbiAibWVtc2V0IiB3aXRoIGZpbGwgdmFsdWUgIicw JyIgKHRoZSB6ZXJvIGNoYXJhY3RlcikgaW4gIm1lbXNldChwLCA0OCwgX2RlbHRhKSIuCmRp ZmZ1dGlscy0zLjYvbGliL3N0cmZ0aW1lLmM6NzcxOiByZW1lZGlhdGlvbjogRGlkIHlvdSBp bnRlbmQgdG8gdXNlIDAgKHRoZSB2YWx1ZSB6ZXJvKT8KIyAgNzY5fCAgICAgICAgICAgICBp ZiAobW9kaWZpZXIgIT0gMCkKIyAgNzcwfCAgICAgICAgICAgICAgIGdvdG8gYmFkX2Zvcm1h dDsKIyAgNzcxfC0+ICAgICAgICAgICBhZGQxICgqZik7CiMgIDc3MnwgICAgICAgICAgICAg YnJlYWs7CiMgIDc3M3wgICAKCkVycm9yOiBOT19FRkZFQ1QgKENXRS0zOTgpOgpkaWZmdXRp bHMtMy42L2xpYi9zdHJmdGltZS5jOjg1NTogYmFkX21lbXNldDogRnVuY3Rpb24gIm1lbXNl dCIgd2l0aCBmaWxsIHZhbHVlICInMCciICh0aGUgemVybyBjaGFyYWN0ZXIpIGluICJtZW1z ZXQocCwgNDgsIF9kZWx0YSkiLgpkaWZmdXRpbHMtMy42L2xpYi9zdHJmdGltZS5jOjg1NTog cmVtZWRpYXRpb246IERpZCB5b3UgaW50ZW5kIHRvIHVzZSAwICh0aGUgdmFsdWUgemVybyk/ CiMgIDg1M3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHAsIHRvX3VwcGNhc2UsIHR6c2V0X2NhbGxlZAojICA4NTR8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhX2FyZ3MgTE9DQUxFX0FS Ryk7CiMgIDg1NXwtPiAgICAgICAgICAgICBhZGQgKGxlbiwgX19zdHJmdGltZV9pbnRlcm5h bCAocCwKIyAgODU2fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTVFJGVElNRV9BUkcgKG1heHNpemUgLSBpKQojICA4NTd8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmZtdCwKCkVycm9yOiBOT19FRkZF Q1QgKENXRS0zOTgpOgpkaWZmdXRpbHMtMy42L2xpYi9zdHJmdGltZS5jOjg5MDogYmFkX21l bXNldDogRnVuY3Rpb24gIm1lbXNldCIgd2l0aCBmaWxsIHZhbHVlICInMCciICh0aGUgemVy byBjaGFyYWN0ZXIpIGluICJtZW1zZXQocCwgNDgsIF9kZWx0YSkiLgpkaWZmdXRpbHMtMy42 L2xpYi9zdHJmdGltZS5jOjg5MDogcmVtZWRpYXRpb246IERpZCB5b3UgaW50ZW5kIHRvIHVz ZSAwICh0aGUgdmFsdWUgemVybyk/CiMgIDg4OHwgICAgICAgICAgICAgICBsZW4gPSBzdHJm dGltZSAodWJ1Ziwgc2l6ZW9mIHVidWYsIHVmbXQsIHRwKTsKIyAgODg5fCAgICAgICAgICAg ICAgIGlmIChsZW4gIT0gMCkKIyAgODkwfC0+ICAgICAgICAgICAgICAgY3B5IChsZW4gLSAx LCB1YnVmICsgMSk7CiMgIDg5MXwgICAgICAgICAgICAgfQojICA4OTJ8ICAgICAgICAgICAg IGJyZWFrOwoKRXJyb3I6IE5PX0VGRkVDVCAoQ1dFLTM5OCk6CmRpZmZ1dGlscy0zLjYvbGli L3N0cmZ0aW1lLmM6MTAyODogYmFkX21lbXNldDogRnVuY3Rpb24gIm1lbXNldCIgd2l0aCBm aWxsIHZhbHVlICInMCciICh0aGUgemVybyBjaGFyYWN0ZXIpIGluICJtZW1zZXQocCwgNDgs IF9kZWx0YSkiLgpkaWZmdXRpbHMtMy42L2xpYi9zdHJmdGltZS5jOjEwMjg6IHJlbWVkaWF0 aW9uOiBEaWQgeW91IGludGVuZCB0byB1c2UgMCAodGhlIHZhbHVlIHplcm8pPwojIDEwMjZ8 ICAgICAgICAgICAgICAgewojIDEwMjd8ICAgICAgICAgICAgICAgICBpZiAoc2lnbl9jaGFy KQojIDEwMjh8LT4gICAgICAgICAgICAgICAgIGFkZDEgKHNpZ25fY2hhcik7CiMgMTAyOXwg ICAgICAgICAgICAgICB9CiMgMTAzMHwgICAgICAgICAgICAgZWxzZQoKRXJyb3I6IE5PX0VG RkVDVCAoQ1dFLTM5OCk6CmRpZmZ1dGlscy0zLjYvbGliL3N0cmZ0aW1lLmM6MTA0NzogYmFk X21lbXNldDogRnVuY3Rpb24gIm1lbXNldCIgd2l0aCBmaWxsIHZhbHVlICInMCciICh0aGUg emVybyBjaGFyYWN0ZXIpIGluICJtZW1zZXQocCwgNDgsIF9kZWx0YSkiLgpkaWZmdXRpbHMt My42L2xpYi9zdHJmdGltZS5jOjEwNDc6IHJlbWVkaWF0aW9uOiBEaWQgeW91IGludGVuZCB0 byB1c2UgMCAodGhlIHZhbHVlIHplcm8pPwojIDEwNDV8ICAgICAgICAgICAgICAgICAgICAg ICAgIHdpZHRoID0gd2lkdGggPiBwYWRkaW5nID8gd2lkdGggLSBwYWRkaW5nIDogMDsKIyAx MDQ2fCAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2lnbl9jaGFyKQojIDEwNDd8LT4g ICAgICAgICAgICAgICAgICAgICAgICAgYWRkMSAoc2lnbl9jaGFyKTsKIyAxMDQ4fCAgICAg ICAgICAgICAgICAgICAgICAgfQojIDEwNDl8ICAgICAgICAgICAgICAgICAgICAgZWxzZQoK RXJyb3I6IE5PX0VGRkVDVCAoQ1dFLTM5OCk6CmRpZmZ1dGlscy0zLjYvbGliL3N0cmZ0aW1l LmM6MTA1NTogYmFkX21lbXNldDogRnVuY3Rpb24gIm1lbXNldCIgd2l0aCBmaWxsIHZhbHVl ICInMCciICh0aGUgemVybyBjaGFyYWN0ZXIpIGluICJtZW1zZXQocCwgNDgsIF9kZWx0YSki LgpkaWZmdXRpbHMtMy42L2xpYi9zdHJmdGltZS5jOjEwNTU6IHJlbWVkaWF0aW9uOiBEaWQg eW91IGludGVuZCB0byB1c2UgMCAodGhlIHZhbHVlIHplcm8pPwojIDEwNTN8ICAgCiMgMTA1 NHwgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNpZ25fY2hhcikKIyAxMDU1fC0+ICAg ICAgICAgICAgICAgICAgICAgICAgIGFkZDEgKHNpZ25fY2hhcik7CiMgMTA1NnwgICAKIyAx MDU3fCAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocCkKCkVycm9yOiBOT19FRkZFQ1Qg KENXRS0zOTgpOgpkaWZmdXRpbHMtMy42L2xpYi9zdHJmdGltZS5jOjEwNTg6IGJhZF9tZW1z ZXQ6IEZ1bmN0aW9uICJtZW1zZXQiIHdpdGggZmlsbCB2YWx1ZSAiJzAnIiAodGhlIHplcm8g Y2hhcmFjdGVyKSBpbiAibWVtc2V0KHAsIDQ4LCBwYWRkaW5nKSIuCmRpZmZ1dGlscy0zLjYv bGliL3N0cmZ0aW1lLmM6MTA1ODogcmVtZWRpYXRpb246IERpZCB5b3UgaW50ZW5kIHRvIHVz ZSAwICh0aGUgdmFsdWUgemVybyk/CiMgMTA1NnwgICAKIyAxMDU3fCAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAocCkKIyAxMDU4fC0+ICAgICAgICAgICAgICAgICAgICAgICAgIG1l bXNldF96ZXJvIChwLCBwYWRkaW5nKTsKIyAxMDU5fCAgICAgICAgICAgICAgICAgICAgICAg ICBpICs9IHBhZGRpbmc7CiMgMTA2MHwgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgg PSAwOwoKRXJyb3I6IE5PX0VGRkVDVCAoQ1dFLTM5OCk6CmRpZmZ1dGlscy0zLjYvbGliL3N0 cmZ0aW1lLmM6MTA2NjogYmFkX21lbXNldDogRnVuY3Rpb24gIm1lbXNldCIgd2l0aCBmaWxs IHZhbHVlICInMCciICh0aGUgemVybyBjaGFyYWN0ZXIpIGluICJtZW1zZXQocCwgNDgsIF9k ZWx0YSkiLgpkaWZmdXRpbHMtMy42L2xpYi9zdHJmdGltZS5jOjEwNjY6IHJlbWVkaWF0aW9u OiBEaWQgeW91IGludGVuZCB0byB1c2UgMCAodGhlIHZhbHVlIHplcm8pPwojIDEwNjR8ICAg ICAgICAgICAgICAgICAgIHsKIyAxMDY1fCAgICAgICAgICAgICAgICAgICAgIGlmIChzaWdu X2NoYXIpCiMgMTA2NnwtPiAgICAgICAgICAgICAgICAgICAgIGFkZDEgKHNpZ25fY2hhcik7 CiMgMTA2N3wgICAgICAgICAgICAgICAgICAgfQojIDEwNjh8ICAgICAgICAgICAgICAgfQoK RXJyb3I6IE5PX0VGRkVDVCAoQ1dFLTM5OCk6CmRpZmZ1dGlscy0zLjYvbGliL3N0cmZ0aW1l LmM6MTA3MDogYmFkX21lbXNldDogRnVuY3Rpb24gIm1lbXNldCIgd2l0aCBmaWxsIHZhbHVl ICInMCciICh0aGUgemVybyBjaGFyYWN0ZXIpIGluICJtZW1zZXQocCwgNDgsIF9kZWx0YSki LgpkaWZmdXRpbHMtMy42L2xpYi9zdHJmdGltZS5jOjEwNzA6IHJlbWVkaWF0aW9uOiBEaWQg eW91IGludGVuZCB0byB1c2UgMCAodGhlIHZhbHVlIHplcm8pPwojIDEwNjh8ICAgICAgICAg ICAgICAgfQojIDEwNjl8ICAgCiMgMTA3MHwtPiAgICAgICAgICAgY3B5IChidWYgKyBzaXpl b2YgKGJ1ZikgLyBzaXplb2YgKGJ1ZlswXSkgLSBidWZwLCBidWZwKTsKIyAxMDcxfCAgICAg ICAgICAgICBicmVhazsKIyAxMDcyfCAgIAoKRXJyb3I6IE5PX0VGRkVDVCAoQ1dFLTM5OCk6 CmRpZmZ1dGlscy0zLjYvbGliL3N0cmZ0aW1lLmM6MTE0MTogYmFkX21lbXNldDogRnVuY3Rp b24gIm1lbXNldCIgd2l0aCBmaWxsIHZhbHVlICInMCciICh0aGUgemVybyBjaGFyYWN0ZXIp IGluICJtZW1zZXQocCwgNDgsIF9kZWx0YSkiLgpkaWZmdXRpbHMtMy42L2xpYi9zdHJmdGlt ZS5jOjExNDE6IHJlbWVkaWF0aW9uOiBEaWQgeW91IGludGVuZCB0byB1c2UgMCAodGhlIHZh bHVlIHplcm8pPwojIDExMzl8ICAgCiMgMTE0MHwgICAgICAgICAgIGNhc2UgTF8oJ24nKToK IyAxMTQxfC0+ICAgICAgICAgICBhZGQxIChMXygnXG4nKSk7CiMgMTE0MnwgICAgICAgICAg ICAgYnJlYWs7CiMgMTE0M3wgICAKCkVycm9yOiBOT19FRkZFQ1QgKENXRS0zOTgpOgpkaWZm dXRpbHMtMy42L2xpYi9zdHJmdGltZS5jOjEyMzM6IGJhZF9tZW1zZXQ6IEZ1bmN0aW9uICJt ZW1zZXQiIHdpdGggZmlsbCB2YWx1ZSAiJzAnIiAodGhlIHplcm8gY2hhcmFjdGVyKSBpbiAi bWVtc2V0KHAsIDQ4LCBfZGVsdGEpIi4KZGlmZnV0aWxzLTMuNi9saWIvc3RyZnRpbWUuYzox MjMzOiByZW1lZGlhdGlvbjogRGlkIHlvdSBpbnRlbmQgdG8gdXNlIDAgKHRoZSB2YWx1ZSB6 ZXJvKT8KIyAxMjMxfCAgIAojIDEyMzJ8ICAgICAgICAgICBjYXNlIExfKCd0Jyk6CiMgMTIz M3wtPiAgICAgICAgICAgYWRkMSAoTF8oJ1x0JykpOwojIDEyMzR8ICAgICAgICAgICAgIGJy ZWFrOwojIDEyMzV8ICAgCgpFcnJvcjogTk9fRUZGRUNUIChDV0UtMzk4KToKZGlmZnV0aWxz LTMuNi9saWIvc3RyZnRpbWUuYzoxMzc5OiBiYWRfbWVtc2V0OiBGdW5jdGlvbiAibWVtc2V0 IiB3aXRoIGZpbGwgdmFsdWUgIicwJyIgKHRoZSB6ZXJvIGNoYXJhY3RlcikgaW4gIm1lbXNl dChwLCA0OCwgX2RlbHRhKSIuCmRpZmZ1dGlscy0zLjYvbGliL3N0cmZ0aW1lLmM6MTM3OTog cmVtZWRpYXRpb246IERpZCB5b3UgaW50ZW5kIHRvIHVzZSAwICh0aGUgdmFsdWUgemVybyk/ CiMgMTM3N3wgICAgICAgICAgICAgfQojIDEzNzh8ICAgI2Vsc2UKIyAxMzc5fC0+ICAgICAg ICAgICBjcHkgKHN0cmxlbiAoem9uZSksIHpvbmUpOwojIDEzODB8ICAgI2VuZGlmCiMgMTM4 MXwgICAgICAgICAgICAgYnJlYWs7CgpFcnJvcjogTk9fRUZGRUNUIChDV0UtMzk4KToKZGlm ZnV0aWxzLTMuNi9saWIvc3RyZnRpbWUuYzoxNDk0OiBiYWRfbWVtc2V0OiBGdW5jdGlvbiAi bWVtc2V0IiB3aXRoIGZpbGwgdmFsdWUgIicwJyIgKHRoZSB6ZXJvIGNoYXJhY3RlcikgaW4g Im1lbXNldChwLCA0OCwgX2RlbHRhKSIuCmRpZmZ1dGlscy0zLjYvbGliL3N0cmZ0aW1lLmM6 MTQ5NDogcmVtZWRpYXRpb246IERpZCB5b3UgaW50ZW5kIHRvIHVzZSAwICh0aGUgdmFsdWUg emVybyk/CiMgMTQ5MnwgICAgICAgICAgICAgICBmb3IgKGZsZW4gPSAxOyBmWzEgLSBmbGVu XSAhPSBMXygnJScpOyBmbGVuKyspCiMgMTQ5M3wgICAgICAgICAgICAgICAgIGNvbnRpbnVl OwojIDE0OTR8LT4gICAgICAgICAgICAgY3B5IChmbGVuLCAmZlsxIC0gZmxlbl0pOwojIDE0 OTV8ICAgICAgICAgICAgIH0KIyAxNDk2fCAgICAgICAgICAgICBicmVhazsKCkVycm9yOiBD T01QSUxFUl9XQVJOSU5HOgpkaWZmdXRpbHMtMy42L2xpYi90cmltLmM6IHNjb3BlX2hpbnQ6 IEluIGZ1bmN0aW9uICd0cmltMicKZGlmZnV0aWxzLTMuNi9saWIvdHJpbS5jOjEwMzoxNjog d2FybmluZzogJ3InIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlv biBbLVdtYXliZS11bmluaXRpYWxpemVkXQojICAgICAgICAgICAgICpyID0gJ1wwJzsKIyAg ICAgICAgICAgICB+fn5efn5+fn4KIyAgMTAxfCAgIAojICAxMDJ8ICAgICAgICAgICAgIGlm IChzdGF0ZSA9PSAyKQojICAxMDN8LT4gICAgICAgICAgICAgKnIgPSAnXDAnOwojICAxMDR8 ICAgICAgICAgICB9CiMgIDEwNXwgICAgICAgfQoKRXJyb3I6IEZPUldBUkRfTlVMTCAoQ1dF LTQ3Nik6CmRpZmZ1dGlscy0zLjYvbGliL3Zhc25wcmludGYuYzoxODQ4OiBhc3NpZ25femVy bzogQXNzaWduaW5nOiAicmVzdWx0IiA9ICJOVUxMIi4KZGlmZnV0aWxzLTMuNi9saWIvdmFz bnByaW50Zi5jOjE4OTQ6IHZhcl9kZXJlZl9tb2RlbDogUGFzc2luZyBudWxsIHBvaW50ZXIg InJlc3VsdCArIGxlbmd0aCIgdG8gIm1lbWNweSIsIHdoaWNoIGRlcmVmZXJlbmNlcyBpdC4g W05vdGU6IFRoZSBzb3VyY2UgY29kZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZnVuY3Rpb24g aGFzIGJlZW4gb3ZlcnJpZGRlbiBieSBhIGJ1aWx0aW4gbW9kZWwuXQojIDE4OTJ8ICAgICAg ICAgICAgICAgaWYgKHNpemVvZiAoRkNIQVJfVCkgPT0gc2l6ZW9mIChEQ0hBUl9UKSkKIyAx ODkzfCAgICAgICAgICAgICAgICAgewojIDE4OTR8LT4gICAgICAgICAgICAgICAgIERDSEFS X0NQWSAocmVzdWx0ICsgbGVuZ3RoLCAoY29uc3QgRENIQVJfVCAqKSBjcCwgbik7CiMgMTg5 NXwgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gYXVnbWVudGVkX2xlbmd0aDsKIyAxODk2 fCAgICAgICAgICAgICAgICAgfQoKRXJyb3I6IEZPUldBUkRfTlVMTCAoQ1dFLTQ3Nik6CmRp ZmZ1dGlscy0zLjYvbGliL3Zhc25wcmludGYuYzoxODQ4OiBhc3NpZ25femVybzogQXNzaWdu aW5nOiAicmVzdWx0IiA9ICJOVUxMIi4KZGlmZnV0aWxzLTMuNi9saWIvdmFzbnByaW50Zi5j OjE5MTY6IHZhcl9kZXJlZl9vcDogRGVyZWZlcmVuY2luZyBudWxsIHBvaW50ZXIgInJlc3Vs dCIuCiMgMTkxNHwgICAgICAgICAgICAgICBhdWdtZW50ZWRfbGVuZ3RoID0geHN1bSAobGVu Z3RoLCAxKTsKIyAxOTE1fCAgICAgICAgICAgICAgIEVOU1VSRV9BTExPQ0FUSU9OIChhdWdt ZW50ZWRfbGVuZ3RoKTsKIyAxOTE2fC0+ICAgICAgICAgICAgIHJlc3VsdFtsZW5ndGhdID0g JyUnOwojIDE5MTd8ICAgICAgICAgICAgICAgbGVuZ3RoID0gYXVnbWVudGVkX2xlbmd0aDsK IyAxOTE4fCAgICAgICAgICAgICB9CgpFcnJvcjogRk9SV0FSRF9OVUxMIChDV0UtNDc2KToK ZGlmZnV0aWxzLTMuNi9saWIvdmFzbnByaW50Zi5jOjE4NDg6IGFzc2lnbl96ZXJvOiBBc3Np Z25pbmc6ICJyZXN1bHQiID0gIk5VTEwiLgpkaWZmdXRpbHMtMy42L2xpYi92YXNucHJpbnRm LmM6NDkzNjogdmFyX2RlcmVmX29wOiBEZXJlZmVyZW5jaW5nIG51bGwgcG9pbnRlciAicmVz dWx0Ii4KIyA0OTM0fCAgICAgICAgICAgICAgICAgICAvKiBQcmVwYXJlIGNoZWNraW5nIHdo ZXRoZXIgc25wcmludGYgcmV0dXJucyB0aGUgY291bnQKIyA0OTM1fCAgICAgICAgICAgICAg ICAgICAgICB2aWEgJW4uICAqLwojIDQ5MzZ8LT4gICAgICAgICAgICAgICAgICooVENIQVJf VCAqKSAocmVzdWx0ICsgbGVuZ3RoKSA9ICdcMCc7CiMgNDkzN3wgICAjZW5kaWYKIyA0OTM4 fCAgIAoKRXJyb3I6IEZPUldBUkRfTlVMTCAoQ1dFLTQ3Nik6CmRpZmZ1dGlscy0zLjYvbGli L3Zhc25wcmludGYuYzoxODQ4OiBhc3NpZ25femVybzogQXNzaWduaW5nOiAicmVzdWx0IiA9 ICJOVUxMIi4KZGlmZnV0aWxzLTMuNi9saWIvdmFzbnByaW50Zi5jOjU1NTE6IHZhcl9kZXJl Zl9vcDogRGVyZWZlcmVuY2luZyBudWxsIHBvaW50ZXIgInJlc3VsdCIuCiMgNTU0OXwgICAg ICAgLyogQWRkIHRoZSBmaW5hbCBOVUwuICAqLwojIDU1NTB8ICAgICAgIEVOU1VSRV9BTExP Q0FUSU9OICh4c3VtIChsZW5ndGgsIDEpKTsKIyA1NTUxfC0+ICAgICByZXN1bHRbbGVuZ3Ro XSA9ICdcMCc7CiMgNTU1MnwgICAKIyA1NTUzfCAgICAgICBpZiAocmVzdWx0ICE9IHJlc3Vs dGJ1ZiAmJiBsZW5ndGggKyAxIDwgYWxsb2NhdGVkKQoKRXJyb3I6IENQUENIRUNLX1dBUk5J TkcgKENXRS00MDEpOgpkaWZmdXRpbHMtMy42L2xpYi94bWFsbG9jLmM6ODY6IGVycm9yW2xl YWtOb1ZhckZ1bmN0aW9uQ2FsbF06IEFsbG9jYXRpb24gd2l0aCB4bWFsbG9jLCBtZW1zZXQg ZG9lc24ndCByZWxlYXNlIGl0LgojICAgODR8ICAgeHphbGxvYyAoc2l6ZV90IHMpCiMgICA4 NXwgICB7CiMgICA4NnwtPiAgIHJldHVybiBtZW1zZXQgKHhtYWxsb2MgKHMpLCAwLCBzKTsK IyAgIDg3fCAgIH0KIyAgIDg4fCAgIAoKRXJyb3I6IENQUENIRUNLX1dBUk5JTkcgKENXRS00 MDEpOgpkaWZmdXRpbHMtMy42L2xpYi94bWFsbG9jLmM6MTEzOiBlcnJvcltsZWFrTm9WYXJG dW5jdGlvbkNhbGxdOiBBbGxvY2F0aW9uIHdpdGggeG1hbGxvYywgbWVtY3B5IGRvZXNuJ3Qg cmVsZWFzZSBpdC4KIyAgMTExfCAgIHhtZW1kdXAgKHZvaWQgY29uc3QgKnAsIHNpemVfdCBz KQojICAxMTJ8ICAgewojICAxMTN8LT4gICByZXR1cm4gbWVtY3B5ICh4bWFsbG9jIChzKSwg cCwgcyk7CiMgIDExNHwgICB9CiMgIDExNXwgICAKCkVycm9yOiBCQURfRlJFRSAoQ1dFLTc2 Myk6CmRpZmZ1dGlscy0zLjYvc3JjL2FuYWx5emUuYzo2OTE6IG9mZnNldF9mcmVlOiAiZnJl ZSIgZnJlZXMgYWRkcmVzcyBvZmZzZXQgZnJvbSAiY21wLT5maWxlW2ZdLmxpbmJ1ZiIuCiMg IDY4OXwgICAJewojICA2OTB8ICAgCSAgZnJlZSAoY21wLT5maWxlW2ZdLmVxdWl2cyk7CiMg IDY5MXwtPiAJICBmcmVlIChjbXAtPmZpbGVbZl0ubGluYnVmICsgY21wLT5maWxlW2ZdLmxp bmJ1Zl9iYXNlKTsKIyAgNjkyfCAgIAl9CiMgIDY5M3wgICAKCkVycm9yOiBDTEFOR19XQVJO SU5HOgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo1Mzg6Njogd2FybmluZzogMm5kIGZ1bmN0 aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQojICAgICAgICAg ICAgICAgICAgICAgICAgICBwcmludGYgKCIlKnMgJTNvICUzb1xuIiwKIyAgICAgICAgICAg ICAgICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzozOTc6Mzogbm90ZTog J29mZnNldF93aWR0aCcgZGVjbGFyZWQgd2l0aG91dCBhbiBpbml0aWFsIHZhbHVlCiMgIGlu dCBvZmZzZXRfd2lkdGggSUZfTElOVCAoPSAwKTsKIyAgXn5+fn5+fn5+fn5+fn5+fgpkaWZm dXRpbHMtMy42L3NyYy9jbXAuYzozOTk6Nzogbm90ZTogQXNzdW1pbmcgJ2NvbXBhcmlzb25f dHlwZScgaXMgbm90IGVxdWFsIHRvIHR5cGVfYWxsX2RpZmZzCiMgIGlmIChjb21wYXJpc29u X3R5cGUgPT0gdHlwZV9hbGxfZGlmZnMpCiMgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6Mzk5OjM6IG5vdGU6IFRha2lu ZyBmYWxzZSBicmFuY2gKIyAgaWYgKGNvbXBhcmlzb25fdHlwZSA9PSB0eXBlX2FsbF9kaWZm cykKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0MTU6Mzogbm90ZTogTG9vcCBjb25k aXRpb24gaXMgdHJ1ZS4gIEVudGVyaW5nIGxvb3AgYm9keQojICBmb3IgKGYgPSAwOyBmIDwg MjsgZisrKQojICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQxODoxMTogbm90ZTogQXNz dW1pbmcgJ2lnJyBpcyAwCiMgICAgICBpZiAoaWcgJiYgZmlsZV9wb3NpdGlvbiAoZikgPT0g LTEpCiMgICAgICAgICAgXn4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDE4OjE0OiBub3Rl OiBMZWZ0IHNpZGUgb2YgJyYmJyBpcyBmYWxzZQojICAgICAgaWYgKGlnICYmIGZpbGVfcG9z aXRpb24gKGYpID09IC0xKQojICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21w LmM6NDE1OjM6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIHRydWUuICBFbnRlcmluZyBsb29w IGJvZHkKIyAgZm9yIChmID0gMDsgZiA8IDI7IGYrKykKIyAgXgpkaWZmdXRpbHMtMy42L3Ny Yy9jbXAuYzo0MTg6MTE6IG5vdGU6IEFzc3VtaW5nICdpZycgaXMgMAojICAgICAgaWYgKGln ICYmIGZpbGVfcG9zaXRpb24gKGYpID09IC0xKQojICAgICAgICAgIF5+CmRpZmZ1dGlscy0z LjYvc3JjL2NtcC5jOjQxODoxNDogbm90ZTogTGVmdCBzaWRlIG9mICcmJicgaXMgZmFsc2UK IyAgICAgIGlmIChpZyAmJiBmaWxlX3Bvc2l0aW9uIChmKSA9PSAtMSkKIyAgICAgICAgICAg ICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQxNTozOiBub3RlOiBMb29wIGNvbmRpdGlv biBpcyBmYWxzZS4gRXhlY3V0aW9uIGNvbnRpbnVlcyBvbiBsaW5lIDQzOQojICBmb3IgKGYg PSAwOyBmIDwgMjsgZisrKQojICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ0MToxMTog bm90ZTogQXNzdW1pbmcgJ3JlbWFpbmluZycgaXMgZXF1YWwgdG8gVUlOVE1BWF9NQVgKIyAg ICAgIGlmIChyZW1haW5pbmcgIT0gVUlOVE1BWF9NQVgpCiMgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ0MTo3OiBub3RlOiBU YWtpbmcgZmFsc2UgYnJhbmNoCiMgICAgICBpZiAocmVtYWluaW5nICE9IFVJTlRNQVhfTUFY KQojICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NDk6MTE6IG5vdGU6IEFzc3Vt aW5nICdyZWFkMCcgaXMgbm90IGVxdWFsIHRvIFNJWkVfTUFYCiMgICAgICBpZiAocmVhZDAg PT0gU0laRV9NQVgpCiMgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMu Ni9zcmMvY21wLmM6NDQ5Ojc6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAgICAgIGlm IChyZWFkMCA9PSBTSVpFX01BWCkKIyAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6 NDUyOjExOiBub3RlOiBBc3N1bWluZyAncmVhZDEnIGlzIG5vdCBlcXVhbCB0byBTSVpFX01B WAojICAgICAgaWYgKHJlYWQxID09IFNJWkVfTUFYKQojICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ1Mjo3OiBub3RlOiBUYWtpbmcgZmFs c2UgYnJhbmNoCiMgICAgICBpZiAocmVhZDEgPT0gU0laRV9NQVgpCiMgICAgICBeCmRpZmZ1 dGlscy0zLjYvc3JjL2NtcC5jOjQ1ODoxMTogbm90ZTogQXNzdW1pbmcgdGhlIGNvbmRpdGlv biBpcyBmYWxzZQojICAgICAgaWYgKG1lbWNtcCAoYnVmMCwgYnVmMSwgc21hbGxlcikgPT0g MCkKIyAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0 aWxzLTMuNi9zcmMvY21wLmM6NDU4Ojc6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAg ICAgIGlmIChtZW1jbXAgKGJ1ZjAsIGJ1ZjEsIHNtYWxsZXIpID09IDApCiMgICAgICBeCmRp ZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ3MDoxMTogbm90ZTogQXNzdW1pbmcgJ2NvbXBhcmlz b25fdHlwZScgaXMgbm90IGVxdWFsIHRvIHR5cGVfZmlyc3RfZGlmZgojICAgICAgaWYgKGNv bXBhcmlzb25fdHlwZSA9PSB0eXBlX2ZpcnN0X2RpZmYgJiYgZmlyc3RfZGlmZiAhPSAwKQoj ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxz LTMuNi9zcmMvY21wLmM6NDcwOjQ2OiBub3RlOiBMZWZ0IHNpZGUgb2YgJyYmJyBpcyBmYWxz ZQojICAgICAgaWYgKGNvbXBhcmlzb25fdHlwZSA9PSB0eXBlX2ZpcnN0X2RpZmYgJiYgZmly c3RfZGlmZiAhPSAwKQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NzY6Nzogbm90ZTogVGFraW5nIHRy dWUgYnJhbmNoCiMgICAgICBpZiAoZmlyc3RfZGlmZiA8IHNtYWxsZXIpCiMgICAgICBeCmRp ZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ3ODo0OiBub3RlOiBDb250cm9sIGp1bXBzIHRvICdj YXNlIHR5cGVfYWxsX2RpZmZzOicgIGF0IGxpbmUgNTI2CiMgICAgICAgICAgc3dpdGNoIChj b21wYXJpc29uX3R5cGUpCiMgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo1 MzE6NTogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAgICAgICAgICAgICAgaWYg KGMwICE9IGMxKQojICAgICAgICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAu Yzo1NTQ6MTU6IG5vdGU6IEFzc3VtaW5nICdmaXJzdF9kaWZmJyBpcyA+PSAnc21hbGxlcicK IyAgICAgICAgICAgICAgd2hpbGUgKGZpcnN0X2RpZmYgPCBzbWFsbGVyKTsKIyAgICAgICAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2Nt cC5jOjUyNzo4OiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyBmYWxzZS4gIEV4aXRpbmcgbG9v cAojICAgICAgICAgICAgICBkbwojICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3Jj L2NtcC5jOjU1Njo4OiBub3RlOiAgRXhlY3V0aW9uIGNvbnRpbnVlcyBvbiBsaW5lIDU2NAoj ICAgICAgICAgICAgICBicmVhazsKIyAgICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L3Ny Yy9jbXAuYzo1NjQ6MTE6IG5vdGU6IEFzc3VtaW5nICdyZWFkMCcgaXMgZXF1YWwgdG8gJ3Jl YWQxJwojICAgICAgaWYgKHJlYWQwICE9IHJlYWQxKQojICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjU2NDo3OiBub3RlOiBUYWtpbmcgZmFsc2Ug YnJhbmNoCiMgICAgICBpZiAocmVhZDAgIT0gcmVhZDEpCiMgICAgICBeCmRpZmZ1dGlscy0z LjYvc3JjL2NtcC5jOjYwMzoxMDogbm90ZTogTGVmdCBzaWRlIG9mICcmJicgaXMgdHJ1ZQoj ICB3aGlsZSAoZGlmZmVyaW5nIDw9IDAgJiYgcmVhZDAgPT0gYnVmX3NpemUpOwojICAgICAg ICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo2MDM6Mjg6IG5vdGU6IEFzc3VtaW5nICdy ZWFkMCcgaXMgZXF1YWwgdG8gJ2J1Zl9zaXplJwojICB3aGlsZSAoZGlmZmVyaW5nIDw9IDAg JiYgcmVhZDAgPT0gYnVmX3NpemUpOwojICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDM3OjM6IG5vdGU6IExv b3AgY29uZGl0aW9uIGlzIHRydWUuIEV4ZWN1dGlvbiBjb250aW51ZXMgb24gbGluZSA0MzkK IyAgZG8KIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NDE6Nzogbm90ZTogVGFraW5n IGZhbHNlIGJyYW5jaAojICAgICAgaWYgKHJlbWFpbmluZyAhPSBVSU5UTUFYX01BWCkKIyAg ICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDQ5OjExOiBub3RlOiBBc3N1bWluZyAn cmVhZDAnIGlzIG5vdCBlcXVhbCB0byBTSVpFX01BWAojICAgICAgaWYgKHJlYWQwID09IFNJ WkVfTUFYKQojICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3Jj L2NtcC5jOjQ0OTo3OiBub3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgICAgICBpZiAocmVh ZDAgPT0gU0laRV9NQVgpCiMgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ1Mjox MTogbm90ZTogQXNzdW1pbmcgJ3JlYWQxJyBpcyBub3QgZXF1YWwgdG8gU0laRV9NQVgKIyAg ICAgIGlmIChyZWFkMSA9PSBTSVpFX01BWCkKIyAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NTI6Nzogbm90ZTogVGFraW5nIGZhbHNlIGJy YW5jaAojICAgICAgaWYgKHJlYWQxID09IFNJWkVfTUFYKQojICAgICAgXgpkaWZmdXRpbHMt My42L3NyYy9jbXAuYzo0NTg6MTE6IG5vdGU6IEFzc3VtaW5nIHRoZSBjb25kaXRpb24gaXMg ZmFsc2UKIyAgICAgIGlmIChtZW1jbXAgKGJ1ZjAsIGJ1ZjEsIHNtYWxsZXIpID09IDApCiMg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0z LjYvc3JjL2NtcC5jOjQ1ODo3OiBub3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgICAgICBp ZiAobWVtY21wIChidWYwLCBidWYxLCBzbWFsbGVyKSA9PSAwKQojICAgICAgXgpkaWZmdXRp bHMtMy42L3NyYy9jbXAuYzo0NzA6MTE6IG5vdGU6IEFzc3VtaW5nICdjb21wYXJpc29uX3R5 cGUnIGlzIG5vdCBlcXVhbCB0byB0eXBlX2ZpcnN0X2RpZmYKIyAgICAgIGlmIChjb21wYXJp c29uX3R5cGUgPT0gdHlwZV9maXJzdF9kaWZmICYmIGZpcnN0X2RpZmYgIT0gMCkKIyAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYv c3JjL2NtcC5jOjQ3MDo0Njogbm90ZTogTGVmdCBzaWRlIG9mICcmJicgaXMgZmFsc2UKIyAg ICAgIGlmIChjb21wYXJpc29uX3R5cGUgPT0gdHlwZV9maXJzdF9kaWZmICYmIGZpcnN0X2Rp ZmYgIT0gMCkKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDc2Ojc6IG5vdGU6IFRha2luZyB0cnVlIGJy YW5jaAojICAgICAgaWYgKGZpcnN0X2RpZmYgPCBzbWFsbGVyKQojICAgICAgXgpkaWZmdXRp bHMtMy42L3NyYy9jbXAuYzo0Nzg6NDogbm90ZTogQ29udHJvbCBqdW1wcyB0byAnY2FzZSB0 eXBlX2FsbF9kaWZmczonICBhdCBsaW5lIDUyNgojICAgICAgICAgIHN3aXRjaCAoY29tcGFy aXNvbl90eXBlKQojICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NTMxOjU6 IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAgICAgICAgICAgICAgICAgIGlmIChjMCAh PSBjMSkKIyAgICAgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NTU0 OjE1OiBub3RlOiBBc3N1bWluZyAnZmlyc3RfZGlmZicgaXMgPj0gJ3NtYWxsZXInCiMgICAg ICAgICAgICAgIHdoaWxlIChmaXJzdF9kaWZmIDwgc21hbGxlcik7CiMgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo1 Mjc6ODogbm90ZTogTG9vcCBjb25kaXRpb24gaXMgZmFsc2UuICBFeGl0aW5nIGxvb3AKIyAg ICAgICAgICAgICAgZG8KIyAgICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAu Yzo1NTY6ODogbm90ZTogIEV4ZWN1dGlvbiBjb250aW51ZXMgb24gbGluZSA1NjQKIyAgICAg ICAgICAgICAgYnJlYWs7CiMgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21w LmM6NTY0OjExOiBub3RlOiBBc3N1bWluZyAncmVhZDAnIGlzIGVxdWFsIHRvICdyZWFkMScK IyAgICAgIGlmIChyZWFkMCAhPSByZWFkMSkKIyAgICAgICAgICBefn5+fn5+fn5+fn5+fgpk aWZmdXRpbHMtMy42L3NyYy9jbXAuYzo1NjQ6Nzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5j aAojICAgICAgaWYgKHJlYWQwICE9IHJlYWQxKQojICAgICAgXgpkaWZmdXRpbHMtMy42L3Ny Yy9jbXAuYzo2MDM6MTA6IG5vdGU6IExlZnQgc2lkZSBvZiAnJiYnIGlzIHRydWUKIyAgd2hp bGUgKGRpZmZlcmluZyA8PSAwICYmIHJlYWQwID09IGJ1Zl9zaXplKTsKIyAgICAgICAgIF4K ZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NjAzOjI4OiBub3RlOiBBc3N1bWluZyAncmVhZDAn IGlzIGVxdWFsIHRvICdidWZfc2l6ZScKIyAgd2hpbGUgKGRpZmZlcmluZyA8PSAwICYmIHJl YWQwID09IGJ1Zl9zaXplKTsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQzNzozOiBub3RlOiBMb29wIGNv bmRpdGlvbiBpcyB0cnVlLiBFeGVjdXRpb24gY29udGludWVzIG9uIGxpbmUgNDM5CiMgIGRv CiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDQxOjc6IG5vdGU6IFRha2luZyBmYWxz ZSBicmFuY2gKIyAgICAgIGlmIChyZW1haW5pbmcgIT0gVUlOVE1BWF9NQVgpCiMgICAgICBe CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ0OToxMTogbm90ZTogQXNzdW1pbmcgJ3JlYWQw JyBpcyBub3QgZXF1YWwgdG8gU0laRV9NQVgKIyAgICAgIGlmIChyZWFkMCA9PSBTSVpFX01B WCkKIyAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9jbXAu Yzo0NDk6Nzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAgaWYgKHJlYWQwID09 IFNJWkVfTUFYKQojICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NTI6MTE6IG5v dGU6IEFzc3VtaW5nICdyZWFkMScgaXMgbm90IGVxdWFsIHRvIFNJWkVfTUFYCiMgICAgICBp ZiAocmVhZDEgPT0gU0laRV9NQVgpCiMgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KZGlm ZnV0aWxzLTMuNi9zcmMvY21wLmM6NDUyOjc6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gK IyAgICAgIGlmIChyZWFkMSA9PSBTSVpFX01BWCkKIyAgICAgIF4KZGlmZnV0aWxzLTMuNi9z cmMvY21wLmM6NDU4OjExOiBub3RlOiBBc3N1bWluZyB0aGUgY29uZGl0aW9uIGlzIGZhbHNl CiMgICAgICBpZiAobWVtY21wIChidWYwLCBidWYxLCBzbWFsbGVyKSA9PSAwKQojICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3Ny Yy9jbXAuYzo0NTg6Nzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAgaWYgKG1l bWNtcCAoYnVmMCwgYnVmMSwgc21hbGxlcikgPT0gMCkKIyAgICAgIF4KZGlmZnV0aWxzLTMu Ni9zcmMvY21wLmM6NDcwOjExOiBub3RlOiBBc3N1bWluZyAnY29tcGFyaXNvbl90eXBlJyBp cyBub3QgZXF1YWwgdG8gdHlwZV9maXJzdF9kaWZmCiMgICAgICBpZiAoY29tcGFyaXNvbl90 eXBlID09IHR5cGVfZmlyc3RfZGlmZiAmJiBmaXJzdF9kaWZmICE9IDApCiMgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9j bXAuYzo0NzA6NDY6IG5vdGU6IExlZnQgc2lkZSBvZiAnJiYnIGlzIGZhbHNlCiMgICAgICBp ZiAoY29tcGFyaXNvbl90eXBlID09IHR5cGVfZmlyc3RfZGlmZiAmJiBmaXJzdF9kaWZmICE9 IDApCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRp ZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ3Njo3OiBub3RlOiBUYWtpbmcgdHJ1ZSBicmFuY2gK IyAgICAgIGlmIChmaXJzdF9kaWZmIDwgc21hbGxlcikKIyAgICAgIF4KZGlmZnV0aWxzLTMu Ni9zcmMvY21wLmM6NDc4OjQ6IG5vdGU6IENvbnRyb2wganVtcHMgdG8gJ2Nhc2UgdHlwZV9h bGxfZGlmZnM6JyAgYXQgbGluZSA1MjYKIyAgICAgICAgICBzd2l0Y2ggKGNvbXBhcmlzb25f dHlwZSkKIyAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjUzMTo1OiBub3Rl OiBUYWtpbmcgdHJ1ZSBicmFuY2gKIyAgICAgICAgICAgICAgICAgIGlmIChjMCAhPSBjMSkK IyAgICAgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NTM1OjEzOiBu b3RlOiBBc3N1bWluZyAnb3B0X3ByaW50X2J5dGVzJyBpcyAwCiMgICAgICAgICAgICAgICAg ICAgICAgaWYgKCFvcHRfcHJpbnRfYnl0ZXMpCiMgICAgICAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NTM1Ojk6IG5vdGU6 IFRha2luZyB0cnVlIGJyYW5jaAojICAgICAgICAgICAgICAgICAgICAgIGlmICghb3B0X3By aW50X2J5dGVzKQojICAgICAgICAgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMv Y21wLmM6NTM4OjY6IG5vdGU6IDJuZCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVu aW5pdGlhbGl6ZWQgdmFsdWUKIyAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmICgi JSpzICUzbyAlM29cbiIsCiMgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNTM2fCAg IAkJCXsKIyAgNTM3fCAgIAkJCSAgLyogU2VlIFBPU0lYIGZvciB0aGlzIGZvcm1hdC4gICov CiMgIDUzOHwtPiAJCQkgIHByaW50ZiAoIiUqcyAlM28gJTNvXG4iLAojICA1Mzl8ICAgCQkJ CSAgb2Zmc2V0X3dpZHRoLCBieXRlX251bSwgYzAsIGMxKTsKIyAgNTQwfCAgIAkJCX0KCkVy cm9yOiBDTEFOR19XQVJOSU5HOgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo1NDc6Njogd2Fy bmluZzogMm5kIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2 YWx1ZQojICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYgKCIlKnMgJTNvICUtNHMg JTNvICVzXG4iLAojICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYv c3JjL2NtcC5jOjM5NzozOiBub3RlOiAnb2Zmc2V0X3dpZHRoJyBkZWNsYXJlZCB3aXRob3V0 IGFuIGluaXRpYWwgdmFsdWUKIyAgaW50IG9mZnNldF93aWR0aCBJRl9MSU5UICg9IDApOwoj ICBefn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjM5OTo3OiBub3Rl OiBBc3N1bWluZyAnY29tcGFyaXNvbl90eXBlJyBpcyBub3QgZXF1YWwgdG8gdHlwZV9hbGxf ZGlmZnMKIyAgaWYgKGNvbXBhcmlzb25fdHlwZSA9PSB0eXBlX2FsbF9kaWZmcykKIyAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9j bXAuYzozOTk6Mzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICBpZiAoY29tcGFyaXNv bl90eXBlID09IHR5cGVfYWxsX2RpZmZzKQojICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5j OjQxNTozOiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyB0cnVlLiAgRW50ZXJpbmcgbG9vcCBi b2R5CiMgIGZvciAoZiA9IDA7IGYgPCAyOyBmKyspCiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMv Y21wLmM6NDE4OjExOiBub3RlOiBBc3N1bWluZyAnaWcnIGlzIDAKIyAgICAgIGlmIChpZyAm JiBmaWxlX3Bvc2l0aW9uIChmKSA9PSAtMSkKIyAgICAgICAgICBefgpkaWZmdXRpbHMtMy42 L3NyYy9jbXAuYzo0MTg6MTQ6IG5vdGU6IExlZnQgc2lkZSBvZiAnJiYnIGlzIGZhbHNlCiMg ICAgICBpZiAoaWcgJiYgZmlsZV9wb3NpdGlvbiAoZikgPT0gLTEpCiMgICAgICAgICAgICAg XgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0MTU6Mzogbm90ZTogTG9vcCBjb25kaXRpb24g aXMgdHJ1ZS4gIEVudGVyaW5nIGxvb3AgYm9keQojICBmb3IgKGYgPSAwOyBmIDwgMjsgZisr KQojICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQxODoxMTogbm90ZTogQXNzdW1pbmcg J2lnJyBpcyAwCiMgICAgICBpZiAoaWcgJiYgZmlsZV9wb3NpdGlvbiAoZikgPT0gLTEpCiMg ICAgICAgICAgXn4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDE4OjE0OiBub3RlOiBMZWZ0 IHNpZGUgb2YgJyYmJyBpcyBmYWxzZQojICAgICAgaWYgKGlnICYmIGZpbGVfcG9zaXRpb24g KGYpID09IC0xKQojICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDE1 OjM6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIGZhbHNlLiBFeGVjdXRpb24gY29udGludWVz IG9uIGxpbmUgNDM5CiMgIGZvciAoZiA9IDA7IGYgPCAyOyBmKyspCiMgIF4KZGlmZnV0aWxz LTMuNi9zcmMvY21wLmM6NDQxOjExOiBub3RlOiBBc3N1bWluZyAncmVtYWluaW5nJyBpcyBl cXVhbCB0byBVSU5UTUFYX01BWAojICAgICAgaWYgKHJlbWFpbmluZyAhPSBVSU5UTUFYX01B WCkKIyAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9z cmMvY21wLmM6NDQxOjc6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAgICAgIGlmIChy ZW1haW5pbmcgIT0gVUlOVE1BWF9NQVgpCiMgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2Nt cC5jOjQ0OToxMTogbm90ZTogQXNzdW1pbmcgJ3JlYWQwJyBpcyBub3QgZXF1YWwgdG8gU0la RV9NQVgKIyAgICAgIGlmIChyZWFkMCA9PSBTSVpFX01BWCkKIyAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NDk6Nzogbm90ZTogVGFraW5n IGZhbHNlIGJyYW5jaAojICAgICAgaWYgKHJlYWQwID09IFNJWkVfTUFYKQojICAgICAgXgpk aWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NTI6MTE6IG5vdGU6IEFzc3VtaW5nICdyZWFkMScg aXMgbm90IGVxdWFsIHRvIFNJWkVfTUFYCiMgICAgICBpZiAocmVhZDEgPT0gU0laRV9NQVgp CiMgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6 NDUyOjc6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAgICAgIGlmIChyZWFkMSA9PSBT SVpFX01BWCkKIyAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDU4OjExOiBub3Rl OiBBc3N1bWluZyB0aGUgY29uZGl0aW9uIGlzIGZhbHNlCiMgICAgICBpZiAobWVtY21wIChi dWYwLCBidWYxLCBzbWFsbGVyKSA9PSAwKQojICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NTg6Nzogbm90ZTog VGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAgaWYgKG1lbWNtcCAoYnVmMCwgYnVmMSwgc21h bGxlcikgPT0gMCkKIyAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDcwOjExOiBu b3RlOiBBc3N1bWluZyAnY29tcGFyaXNvbl90eXBlJyBpcyBub3QgZXF1YWwgdG8gdHlwZV9m aXJzdF9kaWZmCiMgICAgICBpZiAoY29tcGFyaXNvbl90eXBlID09IHR5cGVfZmlyc3RfZGlm ZiAmJiBmaXJzdF9kaWZmICE9IDApCiMgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NzA6NDY6IG5vdGU6IExl ZnQgc2lkZSBvZiAnJiYnIGlzIGZhbHNlCiMgICAgICBpZiAoY29tcGFyaXNvbl90eXBlID09 IHR5cGVfZmlyc3RfZGlmZiAmJiBmaXJzdF9kaWZmICE9IDApCiMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5j OjQ3Njo3OiBub3RlOiBUYWtpbmcgdHJ1ZSBicmFuY2gKIyAgICAgIGlmIChmaXJzdF9kaWZm IDwgc21hbGxlcikKIyAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDc4OjQ6IG5v dGU6IENvbnRyb2wganVtcHMgdG8gJ2Nhc2UgdHlwZV9hbGxfZGlmZnM6JyAgYXQgbGluZSA1 MjYKIyAgICAgICAgICBzd2l0Y2ggKGNvbXBhcmlzb25fdHlwZSkKIyAgICAgICAgICBeCmRp ZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjUzMTo1OiBub3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNo CiMgICAgICAgICAgICAgICAgICBpZiAoYzAgIT0gYzEpCiMgICAgICAgICAgICAgICAgICBe CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjU1NDoxNTogbm90ZTogQXNzdW1pbmcgJ2ZpcnN0 X2RpZmYnIGlzID49ICdzbWFsbGVyJwojICAgICAgICAgICAgICB3aGlsZSAoZmlyc3RfZGlm ZiA8IHNtYWxsZXIpOwojICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NTI3Ojg6IG5vdGU6IExvb3AgY29uZGl0aW9u IGlzIGZhbHNlLiAgRXhpdGluZyBsb29wCiMgICAgICAgICAgICAgIGRvCiMgICAgICAgICAg ICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NTU2Ojg6IG5vdGU6ICBFeGVjdXRpb24g Y29udGludWVzIG9uIGxpbmUgNTY0CiMgICAgICAgICAgICAgIGJyZWFrOwojICAgICAgICAg ICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjU2NDoxMTogbm90ZTogQXNzdW1pbmcg J3JlYWQwJyBpcyBlcXVhbCB0byAncmVhZDEnCiMgICAgICBpZiAocmVhZDAgIT0gcmVhZDEp CiMgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NTY0 Ojc6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAgICAgIGlmIChyZWFkMCAhPSByZWFk MSkKIyAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NjAzOjEwOiBub3RlOiBMZWZ0 IHNpZGUgb2YgJyYmJyBpcyB0cnVlCiMgIHdoaWxlIChkaWZmZXJpbmcgPD0gMCAmJiByZWFk MCA9PSBidWZfc2l6ZSk7CiMgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjYw MzoyODogbm90ZTogQXNzdW1pbmcgJ3JlYWQwJyBpcyBlcXVhbCB0byAnYnVmX3NpemUnCiMg IHdoaWxlIChkaWZmZXJpbmcgPD0gMCAmJiByZWFkMCA9PSBidWZfc2l6ZSk7CiMgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3Ny Yy9jbXAuYzo0Mzc6Mzogbm90ZTogTG9vcCBjb25kaXRpb24gaXMgdHJ1ZS4gRXhlY3V0aW9u IGNvbnRpbnVlcyBvbiBsaW5lIDQzOQojICBkbwojICBeCmRpZmZ1dGlscy0zLjYvc3JjL2Nt cC5jOjQ0MTo3OiBub3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgICAgICBpZiAocmVtYWlu aW5nICE9IFVJTlRNQVhfTUFYKQojICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0 NDk6MTE6IG5vdGU6IEFzc3VtaW5nICdyZWFkMCcgaXMgbm90IGVxdWFsIHRvIFNJWkVfTUFY CiMgICAgICBpZiAocmVhZDAgPT0gU0laRV9NQVgpCiMgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDQ5Ojc6IG5vdGU6IFRha2luZyBmYWxz ZSBicmFuY2gKIyAgICAgIGlmIChyZWFkMCA9PSBTSVpFX01BWCkKIyAgICAgIF4KZGlmZnV0 aWxzLTMuNi9zcmMvY21wLmM6NDUyOjExOiBub3RlOiBBc3N1bWluZyAncmVhZDEnIGlzIG5v dCBlcXVhbCB0byBTSVpFX01BWAojICAgICAgaWYgKHJlYWQxID09IFNJWkVfTUFYKQojICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ1Mjo3 OiBub3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgICAgICBpZiAocmVhZDEgPT0gU0laRV9N QVgpCiMgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ1ODoxMTogbm90ZTogQXNz dW1pbmcgdGhlIGNvbmRpdGlvbiBpcyBmYWxzZQojICAgICAgaWYgKG1lbWNtcCAoYnVmMCwg YnVmMSwgc21hbGxlcikgPT0gMCkKIyAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDU4Ojc6IG5vdGU6IFRha2lu ZyBmYWxzZSBicmFuY2gKIyAgICAgIGlmIChtZW1jbXAgKGJ1ZjAsIGJ1ZjEsIHNtYWxsZXIp ID09IDApCiMgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ3MDoxMTogbm90ZTog QXNzdW1pbmcgJ2NvbXBhcmlzb25fdHlwZScgaXMgbm90IGVxdWFsIHRvIHR5cGVfZmlyc3Rf ZGlmZgojICAgICAgaWYgKGNvbXBhcmlzb25fdHlwZSA9PSB0eXBlX2ZpcnN0X2RpZmYgJiYg Zmlyc3RfZGlmZiAhPSAwKQojICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDcwOjQ2OiBub3RlOiBMZWZ0IHNp ZGUgb2YgJyYmJyBpcyBmYWxzZQojICAgICAgaWYgKGNvbXBhcmlzb25fdHlwZSA9PSB0eXBl X2ZpcnN0X2RpZmYgJiYgZmlyc3RfZGlmZiAhPSAwKQojICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NzY6 Nzogbm90ZTogVGFraW5nIHRydWUgYnJhbmNoCiMgICAgICBpZiAoZmlyc3RfZGlmZiA8IHNt YWxsZXIpCiMgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ3ODo0OiBub3RlOiBD b250cm9sIGp1bXBzIHRvICdjYXNlIHR5cGVfYWxsX2RpZmZzOicgIGF0IGxpbmUgNTI2CiMg ICAgICAgICAgc3dpdGNoIChjb21wYXJpc29uX3R5cGUpCiMgICAgICAgICAgXgpkaWZmdXRp bHMtMy42L3NyYy9jbXAuYzo1MzE6NTogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAg ICAgICAgICAgICAgICAgaWYgKGMwICE9IGMxKQojICAgICAgICAgICAgICAgICAgXgpkaWZm dXRpbHMtMy42L3NyYy9jbXAuYzo1NTQ6MTU6IG5vdGU6IEFzc3VtaW5nICdmaXJzdF9kaWZm JyBpcyA+PSAnc21hbGxlcicKIyAgICAgICAgICAgICAgd2hpbGUgKGZpcnN0X2RpZmYgPCBz bWFsbGVyKTsKIyAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CmRp ZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjUyNzo4OiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyBm YWxzZS4gIEV4aXRpbmcgbG9vcAojICAgICAgICAgICAgICBkbwojICAgICAgICAgICAgICBe CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjU1Njo4OiBub3RlOiAgRXhlY3V0aW9uIGNvbnRp bnVlcyBvbiBsaW5lIDU2NAojICAgICAgICAgICAgICBicmVhazsKIyAgICAgICAgICAgICAg XgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo1NjQ6MTE6IG5vdGU6IEFzc3VtaW5nICdyZWFk MCcgaXMgZXF1YWwgdG8gJ3JlYWQxJwojICAgICAgaWYgKHJlYWQwICE9IHJlYWQxKQojICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjU2NDo3OiBu b3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgICAgICBpZiAocmVhZDAgIT0gcmVhZDEpCiMg ICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjYwMzoxMDogbm90ZTogTGVmdCBzaWRl IG9mICcmJicgaXMgdHJ1ZQojICB3aGlsZSAoZGlmZmVyaW5nIDw9IDAgJiYgcmVhZDAgPT0g YnVmX3NpemUpOwojICAgICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo2MDM6Mjg6 IG5vdGU6IEFzc3VtaW5nICdyZWFkMCcgaXMgZXF1YWwgdG8gJ2J1Zl9zaXplJwojICB3aGls ZSAoZGlmZmVyaW5nIDw9IDAgJiYgcmVhZDAgPT0gYnVmX3NpemUpOwojICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvY21w LmM6NDM3OjM6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIHRydWUuIEV4ZWN1dGlvbiBjb250 aW51ZXMgb24gbGluZSA0MzkKIyAgZG8KIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0 NDE6Nzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAgaWYgKHJlbWFpbmluZyAh PSBVSU5UTUFYX01BWCkKIyAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDQ5OjEx OiBub3RlOiBBc3N1bWluZyAncmVhZDAnIGlzIG5vdCBlcXVhbCB0byBTSVpFX01BWAojICAg ICAgaWYgKHJlYWQwID09IFNJWkVfTUFYKQojICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ0OTo3OiBub3RlOiBUYWtpbmcgZmFsc2UgYnJh bmNoCiMgICAgICBpZiAocmVhZDAgPT0gU0laRV9NQVgpCiMgICAgICBeCmRpZmZ1dGlscy0z LjYvc3JjL2NtcC5jOjQ1MjoxMTogbm90ZTogQXNzdW1pbmcgJ3JlYWQxJyBpcyBub3QgZXF1 YWwgdG8gU0laRV9NQVgKIyAgICAgIGlmIChyZWFkMSA9PSBTSVpFX01BWCkKIyAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NTI6Nzogbm90 ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAgaWYgKHJlYWQxID09IFNJWkVfTUFYKQoj ICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NTg6MTE6IG5vdGU6IEFzc3VtaW5n IHRoZSBjb25kaXRpb24gaXMgZmFsc2UKIyAgICAgIGlmIChtZW1jbXAgKGJ1ZjAsIGJ1ZjEs IHNtYWxsZXIpID09IDApCiMgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ1ODo3OiBub3RlOiBUYWtpbmcgZmFs c2UgYnJhbmNoCiMgICAgICBpZiAobWVtY21wIChidWYwLCBidWYxLCBzbWFsbGVyKSA9PSAw KQojICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0NzA6MTE6IG5vdGU6IEFzc3Vt aW5nICdjb21wYXJpc29uX3R5cGUnIGlzIG5vdCBlcXVhbCB0byB0eXBlX2ZpcnN0X2RpZmYK IyAgICAgIGlmIChjb21wYXJpc29uX3R5cGUgPT0gdHlwZV9maXJzdF9kaWZmICYmIGZpcnN0 X2RpZmYgIT0gMCkKIyAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjQ3MDo0Njogbm90ZTogTGVmdCBzaWRlIG9m ICcmJicgaXMgZmFsc2UKIyAgICAgIGlmIChjb21wYXJpc29uX3R5cGUgPT0gdHlwZV9maXJz dF9kaWZmICYmIGZpcnN0X2RpZmYgIT0gMCkKIyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NDc2Ojc6IG5v dGU6IFRha2luZyB0cnVlIGJyYW5jaAojICAgICAgaWYgKGZpcnN0X2RpZmYgPCBzbWFsbGVy KQojICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9jbXAuYzo0Nzg6NDogbm90ZTogQ29udHJv bCBqdW1wcyB0byAnY2FzZSB0eXBlX2FsbF9kaWZmczonICBhdCBsaW5lIDUyNgojICAgICAg ICAgIHN3aXRjaCAoY29tcGFyaXNvbl90eXBlKQojICAgICAgICAgIF4KZGlmZnV0aWxzLTMu Ni9zcmMvY21wLmM6NTMxOjU6IG5vdGU6IFRha2luZyB0cnVlIGJyYW5jaAojICAgICAgICAg ICAgICAgICAgaWYgKGMwICE9IGMxKQojICAgICAgICAgICAgICAgICAgXgpkaWZmdXRpbHMt My42L3NyYy9jbXAuYzo1MzU6MTM6IG5vdGU6IEFzc3VtaW5nICdvcHRfcHJpbnRfYnl0ZXMn IGlzIG5vdCBlcXVhbCB0byAwCiMgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRfcHJp bnRfYnl0ZXMpCiMgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4K ZGlmZnV0aWxzLTMuNi9zcmMvY21wLmM6NTM1Ojk6IG5vdGU6IFRha2luZyBmYWxzZSBicmFu Y2gKIyAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdF9wcmludF9ieXRlcykKIyAgICAg ICAgICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2NtcC5jOjU0Nzo2OiBub3Rl OiAybmQgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVl CiMgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZiAoIiUqcyAlM28gJS00cyAlM28g JXNcbiIsCiMgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNTQ1fCAgIAkJCSAgc3By aW50YyAoczAsIGMwKTsKIyAgNTQ2fCAgIAkJCSAgc3ByaW50YyAoczEsIGMxKTsKIyAgNTQ3 fC0+IAkJCSAgcHJpbnRmICgiJSpzICUzbyAlLTRzICUzbyAlc1xuIiwKIyAgNTQ4fCAgIAkJ CQkgIG9mZnNldF93aWR0aCwgYnl0ZV9udW0sIGMwLCBzMCwgYzEsIHMxKTsKIyAgNTQ5fCAg IAkJCX0KCkVycm9yOiBGT1JXQVJEX05VTEwgKENXRS00NzYpOgpkaWZmdXRpbHMtMy42L3Ny Yy9kaWZmLmM6ODI2OiB2YXJfY29tcGFyZV9vcDogQ29tcGFyaW5nICJyZWdleHBzIiB0byBu dWxsIGltcGxpZXMgdGhhdCAicmVnZXhwcyIgbWlnaHQgYmUgbnVsbC4KZGlmZnV0aWxzLTMu Ni9zcmMvZGlmZi5jOjg0NjogdmFyX2RlcmVmX21vZGVsOiBQYXNzaW5nIG51bGwgcG9pbnRl ciAicmVnZXhwcyArIGxlbiIgdG8gIm1lbWNweSIsIHdoaWNoIGRlcmVmZXJlbmNlcyBpdC4g W05vdGU6IFRoZSBzb3VyY2UgY29kZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZnVuY3Rpb24g aGFzIGJlZW4gb3ZlcnJpZGRlbiBieSBhIGJ1aWx0aW4gbW9kZWwuXQojICA4NDR8ICAgCSAg cmVnZXhwc1tsZW4rK10gPSAnfCc7CiMgIDg0NXwgICAJfQojICA4NDZ8LT4gICAgICAgbWVt Y3B5IChyZWdleHBzICsgbGVuLCBwYXR0ZXJuLCBwYXRsZW4gKyAxKTsKIyAgODQ3fCAgICAg ICB9CiMgIDg0OHwgICB9CgpFcnJvcjogUkVTT1VSQ0VfTEVBSyAoQ1dFLTc3Mik6CmRpZmZ1 dGlscy0zLjYvc3JjL2RpZmYzLmM6NzgzOiBhbGxvY19mbjogU3RvcmFnZSBpcyByZXR1cm5l ZCBmcm9tIGFsbG9jYXRpb24gZnVuY3Rpb24gImNyZWF0ZV9kaWZmM19ibG9jayIuCmRpZmZ1 dGlscy0zLjYvc3JjL2RpZmYzLmM6OTA5OjMwOiBhbGxvY19mbjogU3RvcmFnZSBpcyByZXR1 cm5lZCBmcm9tIGFsbG9jYXRpb24gZnVuY3Rpb24gInhtYWxsb2MiLgpkaWZmdXRpbHMtMy42 L2xpYi94bWFsbG9jLmM6NDE6MTE6IGFsbG9jX2ZuOiBTdG9yYWdlIGlzIHJldHVybmVkIGZy b20gYWxsb2NhdGlvbiBmdW5jdGlvbiAibWFsbG9jIi4KZGlmZnV0aWxzLTMuNi9saWIveG1h bGxvYy5jOjQxOjExOiB2YXJfYXNzaWduOiBBc3NpZ25pbmc6ICJwIiA9ICJtYWxsb2Mobiki LgpkaWZmdXRpbHMtMy42L2xpYi94bWFsbG9jLmM6NDQ6MzogcmV0dXJuX2FsbG9jOiBSZXR1 cm5pbmcgYWxsb2NhdGVkIG1lbW9yeSAicCIuCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6 OTA5OjMwOiB2YXJfYXNzaWduOiBBc3NpZ25pbmc6ICJyZXN1bHQiID0gInhtYWxsb2MoMTEy VUwpIi4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo5NjE6MzogcmV0dXJuX2FsbG9jOiBS ZXR1cm5pbmcgYWxsb2NhdGVkIG1lbW9yeSAicmVzdWx0Ii4KZGlmZnV0aWxzLTMuNi9zcmMv ZGlmZjMuYzo3ODM6IHZhcl9hc3NpZ246IEFzc2lnbmluZzogInJlc3VsdCIgPSBzdG9yYWdl IHJldHVybmVkIGZyb20gImNyZWF0ZV9kaWZmM19ibG9jayhsb3dbMF0sIGhpZ2hbMF0sIGxv d1sxXSwgaGlnaFsxXSwgbG93YywgaGlnaGMpIi4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMu Yzo3OTg6IGxlYWtlZF9zdG9yYWdlOiBWYXJpYWJsZSAicmVzdWx0IiBnb2luZyBvdXQgb2Yg c2NvcGUgbGVha3MgdGhlIHN0b3JhZ2UgaXQgcG9pbnRzIHRvLgojICA3OTZ8ICAgCQkJICAg ICAgRF9MRU5BUlJBWSAocmVzdWx0LCBGSUxFQykgKyByZXN1bHRfb2Zmc2V0LAojICA3OTd8 ICAgCQkJICAgICAgRF9OVU1MSU5FUyAocHRyLCBGQykpKQojICA3OTh8LT4gCSAgcmV0dXJu IDA7CiMgIDc5OXwgICAgICAgICB9CiMgIDgwMHwgICAKCkVycm9yOiBSRVNPVVJDRV9MRUFL IChDV0UtNzcyKToKZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo3ODM6IGFsbG9jX2ZuOiBT dG9yYWdlIGlzIHJldHVybmVkIGZyb20gYWxsb2NhdGlvbiBmdW5jdGlvbiAiY3JlYXRlX2Rp ZmYzX2Jsb2NrIi4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo5MDk6MzA6IGFsbG9jX2Zu OiBTdG9yYWdlIGlzIHJldHVybmVkIGZyb20gYWxsb2NhdGlvbiBmdW5jdGlvbiAieG1hbGxv YyIuCmRpZmZ1dGlscy0zLjYvbGliL3htYWxsb2MuYzo0MToxMTogYWxsb2NfZm46IFN0b3Jh Z2UgaXMgcmV0dXJuZWQgZnJvbSBhbGxvY2F0aW9uIGZ1bmN0aW9uICJtYWxsb2MiLgpkaWZm dXRpbHMtMy42L2xpYi94bWFsbG9jLmM6NDE6MTE6IHZhcl9hc3NpZ246IEFzc2lnbmluZzog InAiID0gIm1hbGxvYyhuKSIuCmRpZmZ1dGlscy0zLjYvbGliL3htYWxsb2MuYzo0NDozOiBy ZXR1cm5fYWxsb2M6IFJldHVybmluZyBhbGxvY2F0ZWQgbWVtb3J5ICJwIi4KZGlmZnV0aWxz LTMuNi9zcmMvZGlmZjMuYzo5MDk6MzA6IHZhcl9hc3NpZ246IEFzc2lnbmluZzogInJlc3Vs dCIgPSAieG1hbGxvYygxMTJVTCkiLgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjk2MToz OiByZXR1cm5fYWxsb2M6IFJldHVybmluZyBhbGxvY2F0ZWQgbWVtb3J5ICJyZXN1bHQiLgpk aWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjc4MzogdmFyX2Fzc2lnbjogQXNzaWduaW5nOiAi cmVzdWx0IiA9IHN0b3JhZ2UgcmV0dXJuZWQgZnJvbSAiY3JlYXRlX2RpZmYzX2Jsb2NrKGxv d1swXSwgaGlnaFswXSwgbG93WzFdLCBoaWdoWzFdLCBsb3djLCBoaWdoYykiLgpkaWZmdXRp bHMtMy42L3NyYy9kaWZmMy5jOjgyNzogbGVha2VkX3N0b3JhZ2U6IFZhcmlhYmxlICJyZXN1 bHQiIGdvaW5nIG91dCBvZiBzY29wZSBsZWFrcyB0aGUgc3RvcmFnZSBpdCBwb2ludHMgdG8u CiMgIDgyNXwgICAJCQkJRF9MRU5BUlJBWSAocmVzdWx0LCBGSUxFMCArIGQpICsgcmVzdWx0 X29mZnNldCwKIyAgODI2fCAgIAkJCQlEX05VTUxJTkVTIChwdHIsIEZPKSkpCiMgIDgyN3wt PiAJICAgIHJldHVybiAwOwojICA4Mjh8ICAgCiMgIDgyOXwgICAJICAvKiBDYXRjaCB0aGUg bGluZXMgYmV0d2VlbiBoZXJlIGFuZCB0aGUgbmV4dCBkaWZmICovCgpFcnJvcjogQ09NUElM RVJfV0FSTklORzoKZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzogc2NvcGVfaGludDogSW4g ZnVuY3Rpb24gJ3Byb2Nlc3NfZGlmZicKZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzoxMDkx OjE1OiB3YXJuaW5nOiAnYnB0cicgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlz IGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgICAqbGFzdF9ibG9jayA9IGJw dHI7CiMgICB+fn5+fn5+fn5+fn5efn5+fn4KIyAxMDg5fCAgIAojIDEwOTB8ICAgICAqYmxv Y2tfbGlzdF9lbmQgPSBOVUxMOwojIDEwOTF8LT4gICAqbGFzdF9ibG9jayA9IGJwdHI7CiMg MTA5MnwgICAgIHJldHVybiBibG9ja19saXN0OwojIDEwOTN8ICAgfQoKRXJyb3I6IENMQU5H X1dBUk5JTkc6CmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6MTA5MToxNTogd2FybmluZzog QXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKIyAgKmxhc3RfYmxvY2sg PSBicHRyOwojICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6Mjc2 OjEwOiBub3RlOiBBc3N1bWluZyB0aGUgY29uZGl0aW9uIGlzIGZhbHNlCiMgIHdoaWxlICgo YyA9IGdldG9wdF9sb25nIChhcmdjLCBhcmd2LCAiYWVpbXZ4M0FFTDpUWCIsIGxvbmdvcHRz LCAwKSkgIT0gLTEpCiMgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMv ZGlmZjMuYzoyNzY6Mzogbm90ZTogTG9vcCBjb25kaXRpb24gaXMgZmFsc2UuIEV4ZWN1dGlv biBjb250aW51ZXMgb24gbGluZSAzNDMKIyAgd2hpbGUgKChjID0gZ2V0b3B0X2xvbmcgKGFy Z2MsIGFyZ3YsICJhZWltdngzQUVMOlRYIiwgbG9uZ29wdHMsIDApKSAhPSAtMSkKIyAgXgpk aWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjM0ODo3OiBub3RlOiBMZWZ0IHNpZGUgb2YgJ3x8 JyBpcyBmYWxzZQojICBpZiAoaW5jb21wYXQgPiAxICAvKiBFbnN1cmUgYXQgbW9zdCBvbmUg b2YgLUFlRXhYMy4gICovCiMgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6MzQ4 Ojc6IG5vdGU6IExlZnQgc2lkZSBvZiAnfHwnIGlzIGZhbHNlCmRpZmZ1dGlscy0zLjYvc3Jj L2RpZmYzLmM6MzUwOjIxOiBub3RlOiBMZWZ0IHNpZGUgb2YgJyYmJyBpcyBmYWxzZQojICAg ICAgfHwgKHRhZ19jb3VudCAmJiAhIGZsYWdnaW5nKSkgLyogLUwgcmVxdWlyZXMgb25lIG9m IC1BRVguICAqLwojICAgICAgICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2Rp ZmYzLmM6MzUzOjM6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAgaWYgKGFyZ2MgLSBv cHRpbmQgIT0gMykKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjM2MzozOiBub3Rl OiBMb29wIGNvbmRpdGlvbiBpcyB0cnVlLiAgRW50ZXJpbmcgbG9vcCBib2R5CiMgIGZvciAo aSA9IHRhZ19jb3VudDsgaSA8IDM7IGkrKykKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZm My5jOjM2MzozOiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyB0cnVlLiAgRW50ZXJpbmcgbG9v cCBib2R5CmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6MzYzOjM6IG5vdGU6IExvb3AgY29u ZGl0aW9uIGlzIHRydWUuICBFbnRlcmluZyBsb29wIGJvZHkKZGlmZnV0aWxzLTMuNi9zcmMv ZGlmZjMuYzozNjM6Mzogbm90ZTogTG9vcCBjb25kaXRpb24gaXMgZmFsc2UuIEV4ZWN1dGlv biBjb250aW51ZXMgb24gbGluZSAzODIKZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzozODQ6 Mzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICBpZiAoU1RSRVEgKGZpbGVbY29tbW9u XSwgIi0iKSkKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjM5ODozOiBub3RlOiBM b29wIGNvbmRpdGlvbiBpcyB0cnVlLiAgRW50ZXJpbmcgbG9vcCBib2R5CiMgIGZvciAoaSA9 IDA7IGkgPCAzOyBpKyspCiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzozOTg6Mzog bm90ZTogTG9vcCBjb25kaXRpb24gaXMgdHJ1ZS4gIEVudGVyaW5nIGxvb3AgYm9keQpkaWZm dXRpbHMtMy42L3NyYy9kaWZmMy5jOjM5ODozOiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyB0 cnVlLiAgRW50ZXJpbmcgbG9vcCBib2R5CmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6Mzk4 OjM6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIGZhbHNlLiBFeGVjdXRpb24gY29udGludWVz IG9uIGxpbmUgNDAxCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NDAxOjM6IG5vdGU6IExv b3AgY29uZGl0aW9uIGlzIHRydWUuICBFbnRlcmluZyBsb29wIGJvZHkKIyAgZm9yIChpID0g MDsgaSA8IDM7IGkrKykKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQwMjo1OiBu b3RlOiBUYWtpbmcgdHJ1ZSBicmFuY2gKIyAgICBpZiAoISBTVFJFUSAoZmlsZVtpXSwgIi0i KSkKIyAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NDA0OjY6IG5vdGU6IEFzc3Vt aW5nIHRoZSBjb25kaXRpb24gaXMgZmFsc2UKIyAgICAgICAgaWYgKHN0YXQgKGZpbGVbaV0s ICZzdGF0YikgPCAwKQojICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K ZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo0MDQ6Mjogbm90ZTogVGFraW5nIGZhbHNlIGJy YW5jaAojICAgICAgICBpZiAoc3RhdCAoZmlsZVtpXSwgJnN0YXRiKSA8IDApCiMgICAgICAg IF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo0MDY6Nzogbm90ZTogVGFraW5nIGZhbHNl IGJyYW5jaAojICAgICAgICBlbHNlIGlmIChTX0lTRElSIChzdGF0Yi5zdF9tb2RlKSkKIyAg ICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NDAxOjM6IG5vdGU6IExv b3AgY29uZGl0aW9uIGlzIHRydWUuICBFbnRlcmluZyBsb29wIGJvZHkKIyAgZm9yIChpID0g MDsgaSA8IDM7IGkrKykKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQwMjo1OiBu b3RlOiBUYWtpbmcgdHJ1ZSBicmFuY2gKIyAgICBpZiAoISBTVFJFUSAoZmlsZVtpXSwgIi0i KSkKIyAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NDA0OjY6IG5vdGU6IEFzc3Vt aW5nIHRoZSBjb25kaXRpb24gaXMgZmFsc2UKIyAgICAgICAgaWYgKHN0YXQgKGZpbGVbaV0s ICZzdGF0YikgPCAwKQojICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K ZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo0MDQ6Mjogbm90ZTogVGFraW5nIGZhbHNlIGJy YW5jaAojICAgICAgICBpZiAoc3RhdCAoZmlsZVtpXSwgJnN0YXRiKSA8IDApCiMgICAgICAg IF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo0MDY6Nzogbm90ZTogVGFraW5nIGZhbHNl IGJyYW5jaAojICAgICAgICBlbHNlIGlmIChTX0lTRElSIChzdGF0Yi5zdF9tb2RlKSkKIyAg ICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NDAxOjM6IG5vdGU6IExv b3AgY29uZGl0aW9uIGlzIHRydWUuICBFbnRlcmluZyBsb29wIGJvZHkKIyAgZm9yIChpID0g MDsgaSA8IDM7IGkrKykKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQwMjo1OiBu b3RlOiBUYWtpbmcgdHJ1ZSBicmFuY2gKIyAgICBpZiAoISBTVFJFUSAoZmlsZVtpXSwgIi0i KSkKIyAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NDA0OjY6IG5vdGU6IEFzc3Vt aW5nIHRoZSBjb25kaXRpb24gaXMgZmFsc2UKIyAgICAgICAgaWYgKHN0YXQgKGZpbGVbaV0s ICZzdGF0YikgPCAwKQojICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K ZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo0MDQ6Mjogbm90ZTogVGFraW5nIGZhbHNlIGJy YW5jaAojICAgICAgICBpZiAoc3RhdCAoZmlsZVtpXSwgJnN0YXRiKSA8IDApCiMgICAgICAg IF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo0MDY6Nzogbm90ZTogVGFraW5nIGZhbHNl IGJyYW5jaAojICAgICAgICBlbHNlIGlmIChTX0lTRElSIChzdGF0Yi5zdF9tb2RlKSkKIyAg ICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NDAxOjM6IG5vdGU6IExv b3AgY29uZGl0aW9uIGlzIGZhbHNlLiBFeGVjdXRpb24gY29udGludWVzIG9uIGxpbmUgNDEy CiMgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspCiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlm ZjMuYzo0MjA6MTM6IG5vdGU6IENhbGxpbmcgJ3Byb2Nlc3NfZGlmZicKIyAgdGhyZWFkMSA9 IHByb2Nlc3NfZGlmZiAoZmlsZVtyZXZfbWFwcGluZ1tGSUxFMV1dLCBjb21tb25uYW1lLCAm bGFzdF9ibG9jaywgJmIxKTsKIyAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRp bHMtMy42L3NyYy9kaWZmMy5jOjk5OTozOiBub3RlOiAnYnB0cicgZGVjbGFyZWQgd2l0aG91 dCBhbiBpbml0aWFsIHZhbHVlCiMgIHN0cnVjdCBkaWZmX2Jsb2NrICpicHRyIElGX0xJTlQg KD0gTlVMTCk7CiMgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3Jj L2RpZmYzLmM6MTAwODoxMDogbm90ZTogQXNzdW1pbmcgJ3NjYW5fZGlmZicgaXMgPj0gJ2Rp ZmZfbGltaXQnCiMgIHdoaWxlIChzY2FuX2RpZmYgPCBkaWZmX2xpbWl0KQojICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjEwMDg6 Mzogbm90ZTogTG9vcCBjb25kaXRpb24gaXMgZmFsc2UuIEV4ZWN1dGlvbiBjb250aW51ZXMg b24gbGluZSAxMDkwCiMgIHdoaWxlIChzY2FuX2RpZmYgPCBkaWZmX2xpbWl0KQojICBeCmRp ZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6MTA5MToxNTogbm90ZTogQXNzaWduZWQgdmFsdWUg aXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKIyAgKmxhc3RfYmxvY2sgPSBicHRyOwojICAgICAg ICAgICAgICBeIH5+fn4KIyAxMDg5fCAgIAojIDEwOTB8ICAgICAqYmxvY2tfbGlzdF9lbmQg PSBOVUxMOwojIDEwOTF8LT4gICAqbGFzdF9ibG9jayA9IGJwdHI7CiMgMTA5MnwgICAgIHJl dHVybiBibG9ja19saXN0OwojIDEwOTN8ICAgfQoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CmRp ZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6MTQ1ODoxMDogd2FybmluZzogQXJyYXkgYWNjZXNz IHJlc3VsdHMgaW4gYSBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UKIyAgICAgICAgICAgICAg ICAgIGNwID0gRF9SRUxOVU0gKHB0ciwgcmVhbGZpbGUsIGxpbmUpOwojICAgICAgICAgICAg ICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6MTA5OjM6IG5vdGU6IGV4 cGFuZGVkIGZyb20gbWFjcm8gJ0RfUkVMTlVNJwojICAoKGRpZmYpLT5saW5lc1tmaWxlbnVt XVtsaW5lbnVtXSkKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjI3NjoxMDogbm90 ZTogQXNzdW1pbmcgdGhlIGNvbmRpdGlvbiBpcyBmYWxzZQojICB3aGlsZSAoKGMgPSBnZXRv cHRfbG9uZyAoYXJnYywgYXJndiwgImFlaW12eDNBRUw6VFgiLCBsb25nb3B0cywgMCkpICE9 IC0xKQojICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6 Mjc2OjM6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIGZhbHNlLiBFeGVjdXRpb24gY29udGlu dWVzIG9uIGxpbmUgMzQzCiMgIHdoaWxlICgoYyA9IGdldG9wdF9sb25nIChhcmdjLCBhcmd2 LCAiYWVpbXZ4M0FFTDpUWCIsIGxvbmdvcHRzLCAwKSkgIT0gLTEpCiMgIF4KZGlmZnV0aWxz LTMuNi9zcmMvZGlmZjMuYzozNDg6Nzogbm90ZTogTGVmdCBzaWRlIG9mICd8fCcgaXMgZmFs c2UKIyAgaWYgKGluY29tcGF0ID4gMSAgLyogRW5zdXJlIGF0IG1vc3Qgb25lIG9mIC1BZUV4 WDMuICAqLwojICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjM0ODo3OiBub3Rl OiBMZWZ0IHNpZGUgb2YgJ3x8JyBpcyBmYWxzZQpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5j OjM1MDoyMTogbm90ZTogTGVmdCBzaWRlIG9mICcmJicgaXMgZmFsc2UKIyAgICAgIHx8ICh0 YWdfY291bnQgJiYgISBmbGFnZ2luZykpIC8qIC1MIHJlcXVpcmVzIG9uZSBvZiAtQUVYLiAg Ki8KIyAgICAgICAgICAgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjM1 MzozOiBub3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgIGlmIChhcmdjIC0gb3B0aW5kICE9 IDMpCiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzozNjM6Mzogbm90ZTogTG9vcCBj b25kaXRpb24gaXMgdHJ1ZS4gIEVudGVyaW5nIGxvb3AgYm9keQojICBmb3IgKGkgPSB0YWdf Y291bnQ7IGkgPCAzOyBpKyspCiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzozNjM6 Mzogbm90ZTogTG9vcCBjb25kaXRpb24gaXMgdHJ1ZS4gIEVudGVyaW5nIGxvb3AgYm9keQpk aWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjM2MzozOiBub3RlOiBMb29wIGNvbmRpdGlvbiBp cyB0cnVlLiAgRW50ZXJpbmcgbG9vcCBib2R5CmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6 MzYzOjM6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIGZhbHNlLiBFeGVjdXRpb24gY29udGlu dWVzIG9uIGxpbmUgMzgyCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6Mzg0OjM6IG5vdGU6 IFRha2luZyBmYWxzZSBicmFuY2gKIyAgaWYgKFNUUkVRIChmaWxlW2NvbW1vbl0sICItIikp CiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzozOTg6Mzogbm90ZTogTG9vcCBjb25k aXRpb24gaXMgdHJ1ZS4gIEVudGVyaW5nIGxvb3AgYm9keQojICBmb3IgKGkgPSAwOyBpIDwg MzsgaSsrKQojICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6Mzk4OjM6IG5vdGU6IExv b3AgY29uZGl0aW9uIGlzIHRydWUuICBFbnRlcmluZyBsb29wIGJvZHkKZGlmZnV0aWxzLTMu Ni9zcmMvZGlmZjMuYzozOTg6Mzogbm90ZTogTG9vcCBjb25kaXRpb24gaXMgdHJ1ZS4gIEVu dGVyaW5nIGxvb3AgYm9keQpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjM5ODozOiBub3Rl OiBMb29wIGNvbmRpdGlvbiBpcyBmYWxzZS4gRXhlY3V0aW9uIGNvbnRpbnVlcyBvbiBsaW5l IDQwMQpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQwMTozOiBub3RlOiBMb29wIGNvbmRp dGlvbiBpcyB0cnVlLiAgRW50ZXJpbmcgbG9vcCBib2R5CiMgIGZvciAoaSA9IDA7IGkgPCAz OyBpKyspCiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo0MDI6NTogbm90ZTogVGFr aW5nIHRydWUgYnJhbmNoCiMgICAgaWYgKCEgU1RSRVEgKGZpbGVbaV0sICItIikpCiMgICAg XgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQwNDo2OiBub3RlOiBBc3N1bWluZyB0aGUg Y29uZGl0aW9uIGlzIGZhbHNlCiMgICAgICAgIGlmIChzdGF0IChmaWxlW2ldLCAmc3RhdGIp IDwgMCkKIyAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGls cy0zLjYvc3JjL2RpZmYzLmM6NDA0OjI6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAg ICAgICAgaWYgKHN0YXQgKGZpbGVbaV0sICZzdGF0YikgPCAwKQojICAgICAgICBeCmRpZmZ1 dGlscy0zLjYvc3JjL2RpZmYzLmM6NDA2Ojc6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gK IyAgICAgICAgZWxzZSBpZiAoU19JU0RJUiAoc3RhdGIuc3RfbW9kZSkpCiMgICAgICAgICAg ICAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQwMTozOiBub3RlOiBMb29wIGNvbmRp dGlvbiBpcyB0cnVlLiAgRW50ZXJpbmcgbG9vcCBib2R5CiMgIGZvciAoaSA9IDA7IGkgPCAz OyBpKyspCiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo0MDI6NTogbm90ZTogVGFr aW5nIHRydWUgYnJhbmNoCiMgICAgaWYgKCEgU1RSRVEgKGZpbGVbaV0sICItIikpCiMgICAg XgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQwNDo2OiBub3RlOiBBc3N1bWluZyB0aGUg Y29uZGl0aW9uIGlzIGZhbHNlCiMgICAgICAgIGlmIChzdGF0IChmaWxlW2ldLCAmc3RhdGIp IDwgMCkKIyAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGls cy0zLjYvc3JjL2RpZmYzLmM6NDA0OjI6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAg ICAgICAgaWYgKHN0YXQgKGZpbGVbaV0sICZzdGF0YikgPCAwKQojICAgICAgICBeCmRpZmZ1 dGlscy0zLjYvc3JjL2RpZmYzLmM6NDA2Ojc6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gK IyAgICAgICAgZWxzZSBpZiAoU19JU0RJUiAoc3RhdGIuc3RfbW9kZSkpCiMgICAgICAgICAg ICAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQwMTozOiBub3RlOiBMb29wIGNvbmRp dGlvbiBpcyB0cnVlLiAgRW50ZXJpbmcgbG9vcCBib2R5CiMgIGZvciAoaSA9IDA7IGkgPCAz OyBpKyspCiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo0MDI6NTogbm90ZTogVGFr aW5nIHRydWUgYnJhbmNoCiMgICAgaWYgKCEgU1RSRVEgKGZpbGVbaV0sICItIikpCiMgICAg XgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQwNDo2OiBub3RlOiBBc3N1bWluZyB0aGUg Y29uZGl0aW9uIGlzIGZhbHNlCiMgICAgICAgIGlmIChzdGF0IChmaWxlW2ldLCAmc3RhdGIp IDwgMCkKIyAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGls cy0zLjYvc3JjL2RpZmYzLmM6NDA0OjI6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gKIyAg ICAgICAgaWYgKHN0YXQgKGZpbGVbaV0sICZzdGF0YikgPCAwKQojICAgICAgICBeCmRpZmZ1 dGlscy0zLjYvc3JjL2RpZmYzLmM6NDA2Ojc6IG5vdGU6IFRha2luZyBmYWxzZSBicmFuY2gK IyAgICAgICAgZWxzZSBpZiAoU19JU0RJUiAoc3RhdGIuc3RfbW9kZSkpCiMgICAgICAgICAg ICAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQwMTozOiBub3RlOiBMb29wIGNvbmRp dGlvbiBpcyBmYWxzZS4gRXhlY3V0aW9uIGNvbnRpbnVlcyBvbiBsaW5lIDQxMgojICBmb3Ig KGkgPSAwOyBpIDwgMzsgaSsrKQojICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NDI2 OjExOiBub3RlOiBDYWxsaW5nICdtYWtlXzN3YXlfZGlmZicKIyAgZGlmZjMgPSBtYWtlXzN3 YXlfZGlmZiAodGhyZWFkMCwgdGhyZWFkMSk7CiMgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NjQ3OjEwOiBu b3RlOiBBc3N1bWluZyB0aGUgY29uZGl0aW9uIGlzIGZhbHNlCiMgIHdoaWxlIChjdXJyZW50 WzBdIHx8IGN1cnJlbnRbMV0pCiMgICAgICAgICBefn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYv c3JjL2RpZmYzLmM6NjQ3OjEwOiBub3RlOiBMZWZ0IHNpZGUgb2YgJ3x8JyBpcyBmYWxzZQpk aWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjY0NzozOiBub3RlOiBMb29wIGNvbmRpdGlvbiBp cyB0cnVlLiAgRW50ZXJpbmcgbG9vcCBib2R5CiMgIHdoaWxlIChjdXJyZW50WzBdIHx8IGN1 cnJlbnRbMV0pCiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo2NTI6Nzogbm90ZTog VGFraW5nIHRydWUgYnJhbmNoCiMgICAgICBpZiAoIWN1cnJlbnRbMF0pCiMgICAgICBeCmRp ZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NjgwOjc6IG5vdGU6IExlZnQgc2lkZSBvZiAnJiYn IGlzIGZhbHNlCiMgICAgICAgICAgICAgJiYgRF9MT1dMSU5FIChvdGhlcl9kaWZmLCBGQykg PD0gaGlnaF93YXRlcl9tYXJrICsgMSkKIyAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYv c3JjL2RpZmYzLmM6NzE3OjE4OiBub3RlOiBDYWxsaW5nICd1c2luZ190b19kaWZmM19ibG9j aycKIyAgICAgIHRtcGJsb2NrID0gdXNpbmdfdG9fZGlmZjNfYmxvY2sgKHVzaW5nLCBsYXN0 X3VzaW5nLAojICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NzcwOjM6IG5vdGU6IExv b3AgY29uZGl0aW9uIGlzIHRydWUuICBFbnRlcmluZyBsb29wIGJvZHkKIyAgZm9yIChkID0g MDsgZCA8IDI7IGQrKykKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjc3MTo1OiBu b3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgICAgaWYgKHVzaW5nW2RdKQojICAgIF4KZGlm ZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo3NzA6Mzogbm90ZTogTG9vcCBjb25kaXRpb24gaXMg dHJ1ZS4gIEVudGVyaW5nIGxvb3AgYm9keQojICBmb3IgKGQgPSAwOyBkIDwgMjsgZCsrKQoj ICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NzcxOjU6IG5vdGU6IFRha2luZyB0cnVl IGJyYW5jaAojICAgIGlmICh1c2luZ1tkXSkKIyAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2Rp ZmYzLmM6NzcwOjM6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIGZhbHNlLiBFeGVjdXRpb24g Y29udGludWVzIG9uIGxpbmUgNzgzCiMgIGZvciAoZCA9IDA7IGQgPCAyOyBkKyspCiMgIF4K ZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo3ODM6MTI6IG5vdGU6IENhbGxpbmcgJ2NyZWF0 ZV9kaWZmM19ibG9jaycKIyAgcmVzdWx0ID0gY3JlYXRlX2RpZmYzX2Jsb2NrIChsb3dbMF0s IGhpZ2hbMF0sIGxvd1sxXSwgaGlnaFsxXSwgbG93YywgaGlnaGMpOwojICAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo5MTI6Mzogbm90ZTogQXNz dW1pbmcgcG9pbnRlciB2YWx1ZSBpcyBudWxsCiMgIEQzX1RZUEUgKHJlc3VsdCkgPSBFUlJP UjsKIyAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYz LmM6MTIzOjIzOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdEM19UWVBFJwojI2RlZmlu ZSBEM19UWVBFKGRpZmYpICAgKChkaWZmKS0+Y29ycmVzcG9uZCkKIyAgICAgICAgICAgICAg ICAgICAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo5MjU6Nzogbm90ZTogQXNz dW1pbmcgJ251bWxpbmVzJyBpcyAwCiMgIGlmIChudW1saW5lcykKIyAgICAgIF5+fn5+fn5+ CmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6OTI1OjM6IG5vdGU6IFRha2luZyBmYWxzZSBi cmFuY2gKIyAgaWYgKG51bWxpbmVzKQojICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6 OTM3Ojc6IG5vdGU6IEFzc3VtaW5nICdudW1saW5lcycgaXMgMAojICBpZiAobnVtbGluZXMp CiMgICAgICBefn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjkzNzozOiBub3Rl OiBUYWtpbmcgZmFsc2UgYnJhbmNoCiMgIGlmIChudW1saW5lcykKIyAgXgpkaWZmdXRpbHMt My42L3NyYy9kaWZmMy5jOjk0OTo3OiBub3RlOiBBc3N1bWluZyAnbnVtbGluZXMnIGlzIDAK IyAgaWYgKG51bWxpbmVzKQojICAgICAgXn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvZGlm ZjMuYzo5NDk6Mzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICBpZiAobnVtbGluZXMp CiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo3ODM6MTI6IG5vdGU6IFJldHVybmlu ZyBmcm9tICdjcmVhdGVfZGlmZjNfYmxvY2snCiMgIHJlc3VsdCA9IGNyZWF0ZV9kaWZmM19i bG9jayAobG93WzBdLCBoaWdoWzBdLCBsb3dbMV0sIGhpZ2hbMV0sIGxvd2MsIGhpZ2hjKTsK IyAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6Nzg4 OjM6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIHRydWUuICBFbnRlcmluZyBsb29wIGJvZHkK IyAgZm9yIChkID0gMDsgZCA8IDI7IGQrKykKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZm My5jOjc4OTo1OiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyBmYWxzZS4gRXhlY3V0aW9uIGNv bnRpbnVlcyBvbiBsaW5lIDc4OAojICAgIGZvciAocHRyID0gdXNpbmdbZF07IHB0cjsgcHRy ID0gRF9ORVhUIChwdHIpKQojICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo3ODg6 Mzogbm90ZTogTG9vcCBjb25kaXRpb24gaXMgdHJ1ZS4gIEVudGVyaW5nIGxvb3AgYm9keQoj ICBmb3IgKGQgPSAwOyBkIDwgMjsgZCsrKQojICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYz LmM6Nzg5OjU6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIHRydWUuICBFbnRlcmluZyBsb29w IGJvZHkKIyAgICBmb3IgKHB0ciA9IHVzaW5nW2RdOyBwdHI7IHB0ciA9IERfTkVYVCAocHRy KSkKIyAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NzkzOjI6IG5vdGU6IFRha2lu ZyBmYWxzZSBicmFuY2gKIyAgICAgICAgaWYgKCFjb3B5X3N0cmluZ2xpc3QgKERfTElORUFS UkFZIChwdHIsIEZDKSwKIyAgICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjc4 OTo1OiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyBmYWxzZS4gRXhlY3V0aW9uIGNvbnRpbnVl cyBvbiBsaW5lIDc4OAojICAgIGZvciAocHRyID0gdXNpbmdbZF07IHB0cjsgcHRyID0gRF9O RVhUIChwdHIpKQojICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo3ODg6Mzogbm90 ZTogTG9vcCBjb25kaXRpb24gaXMgZmFsc2UuIEV4ZWN1dGlvbiBjb250aW51ZXMgb24gbGlu ZSA4MDQKIyAgZm9yIChkID0gMDsgZCA8IDI7IGQrKykKIyAgXgpkaWZmdXRpbHMtMy42L3Ny Yy9kaWZmMy5jOjgwNDozOiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyB0cnVlLiAgRW50ZXJp bmcgbG9vcCBib2R5CiMgIGZvciAoZCA9IDA7IGQgPCAyOyBkKyspCiMgIF4KZGlmZnV0aWxz LTMuNi9zcmMvZGlmZjMuYzo4MTA6MTU6IG5vdGU6ICc/JyBjb25kaXRpb24gaXMgZmFsc2UK IyAgICAgICAgICAgaSArIGxvIDwgKHUgPyBEX0xPV0xJTkUgKHUsIEZPKSA6IGhpICsgMSk7 CiMgICAgICAgICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6ODA5 Ojc6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIGZhbHNlLiBFeGVjdXRpb24gY29udGludWVz IG9uIGxpbmUgODE3CiMgICAgICBmb3IgKGkgPSAwOwojICAgICAgXgpkaWZmdXRpbHMtMy42 L3NyYy9kaWZmMy5jOjgxNzo3OiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyBmYWxzZS4gRXhl Y3V0aW9uIGNvbnRpbnVlcyBvbiBsaW5lIDgwNAojICAgICAgZm9yIChwdHIgPSB1OyBwdHI7 IHB0ciA9IERfTkVYVCAocHRyKSkKIyAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMu Yzo4MDQ6Mzogbm90ZTogTG9vcCBjb25kaXRpb24gaXMgdHJ1ZS4gIEVudGVyaW5nIGxvb3Ag Ym9keQojICBmb3IgKGQgPSAwOyBkIDwgMjsgZCsrKQojICBeCmRpZmZ1dGlscy0zLjYvc3Jj L2RpZmYzLmM6ODEwOjE1OiBub3RlOiAnPycgY29uZGl0aW9uIGlzIHRydWUKIyAgICAgICAg ICAgaSArIGxvIDwgKHUgPyBEX0xPV0xJTkUgKHUsIEZPKSA6IGhpICsgMSk7CiMgICAgICAg ICAgICAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6ODA5Ojc6IG5vdGU6 IExvb3AgY29uZGl0aW9uIGlzIGZhbHNlLiBFeGVjdXRpb24gY29udGludWVzIG9uIGxpbmUg ODE3CiMgICAgICBmb3IgKGkgPSAwOwojICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZm My5jOjgxNzo3OiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyB0cnVlLiAgRW50ZXJpbmcgbG9v cCBib2R5CiMgICAgICBmb3IgKHB0ciA9IHU7IHB0cjsgcHRyID0gRF9ORVhUIChwdHIpKQoj ICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjgyMjo0OiBub3RlOiBUYWtpbmcg ZmFsc2UgYnJhbmNoCiMgICAgICAgICAgaWYgKCFjb3B5X3N0cmluZ2xpc3QgKERfTElORUFS UkFZIChwdHIsIEZPKSwKIyAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6 ODMxOjQ6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIGZhbHNlLiBFeGVjdXRpb24gY29udGlu dWVzIG9uIGxpbmUgODE3CiMgICAgICAgICAgZm9yIChpID0gRF9ISUdITElORSAocHRyLCBG TykgKyAxIC0gbG87CiMgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjgx Nzo3OiBub3RlOiBMb29wIGNvbmRpdGlvbiBpcyBmYWxzZS4gRXhlY3V0aW9uIGNvbnRpbnVl cyBvbiBsaW5lIDgwNAojICAgICAgZm9yIChwdHIgPSB1OyBwdHI7IHB0ciA9IERfTkVYVCAo cHRyKSkKIyAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo4MDQ6Mzogbm90ZTog TG9vcCBjb25kaXRpb24gaXMgZmFsc2UuIEV4ZWN1dGlvbiBjb250aW51ZXMgb24gbGluZSA4 NDMKIyAgZm9yIChkID0gMDsgZCA8IDI7IGQrKykKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9k aWZmMy5jOjg0MzozOiBub3RlOiBUYWtpbmcgdHJ1ZSBicmFuY2gKIyAgaWYgKCF1c2luZ1sw XSkKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjcxNzoxODogbm90ZTogUmV0dXJu aW5nIGZyb20gJ3VzaW5nX3RvX2RpZmYzX2Jsb2NrJwojICAgICAgdG1wYmxvY2sgPSB1c2lu Z190b19kaWZmM19ibG9jayAodXNpbmcsIGxhc3RfdXNpbmcsCiMgICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMu Ni9zcmMvZGlmZjMuYzo3MjE6Nzogbm90ZTogVGFraW5nIGZhbHNlIGJyYW5jaAojICAgICAg aWYgKCF0bXBibG9jaykKIyAgICAgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo2NDc6 MTA6IG5vdGU6IExlZnQgc2lkZSBvZiAnfHwnIGlzIGZhbHNlCiMgIHdoaWxlIChjdXJyZW50 WzBdIHx8IGN1cnJlbnRbMV0pCiMgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYz LmM6NjQ3OjM6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIGZhbHNlLiBFeGVjdXRpb24gY29u dGludWVzIG9uIGxpbmUgNzMxCiMgIHdoaWxlIChjdXJyZW50WzBdIHx8IGN1cnJlbnRbMV0p CiMgIF4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzo0MjY6MTE6IG5vdGU6IFJldHVybmlu ZyBmcm9tICdtYWtlXzN3YXlfZGlmZicKIyAgZGlmZjMgPSBtYWtlXzN3YXlfZGlmZiAodGhy ZWFkMCwgdGhyZWFkMSk7CiMgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6NDMxOjc6IG5vdGU6IEFzc3VtaW5n ICdlZHNjcmlwdCcgaXMgMAojICBpZiAoZWRzY3JpcHQpCiMgICAgICBefn5+fn5+fgpkaWZm dXRpbHMtMy42L3NyYy9kaWZmMy5jOjQzMTozOiBub3RlOiBUYWtpbmcgZmFsc2UgYnJhbmNo CiMgIGlmIChlZHNjcmlwdCkKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQzNTox Mjogbm90ZTogQXNzdW1pbmcgJ21lcmdlJyBpcyAwCiMgIGVsc2UgaWYgKG1lcmdlKQojICAg ICAgICAgICBefn5+fgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjQzNTo4OiBub3RlOiBU YWtpbmcgZmFsc2UgYnJhbmNoCiMgIGVsc2UgaWYgKG1lcmdlKQojICAgICAgIF4KZGlmZnV0 aWxzLTMuNi9zcmMvZGlmZjMuYzo0NDY6Nzogbm90ZTogQ2FsbGluZyAnb3V0cHV0X2RpZmYz JwojICAgICAgb3V0cHV0X2RpZmYzIChzdGRvdXQsIGRpZmYzLCBtYXBwaW5nLCByZXZfbWFw cGluZyk7CiMgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjEzOTk6Mjk6IG5vdGU6IEFz c3VtaW5nICdpbml0aWFsX3RhYicgaXMgMAojICBjaGFyIGNvbnN0ICpsaW5lX3ByZWZpeCA9 IGluaXRpYWxfdGFiID8gIlx0IiA6ICIgICI7CiMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn4KZGlmZnV0aWxzLTMuNi9zcmMvZGlmZjMuYzoxMzk5OjI5OiBub3Rl OiAnPycgY29uZGl0aW9uIGlzIGZhbHNlCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6MTQw MTo4OiBub3RlOiBWYWx1ZSBhc3NpZ25lZCB0byAncHRyJwojICBmb3IgKHB0ciA9IGRpZmY7 IHB0cjsgcHRyID0gRF9ORVhUIChwdHIpKQojICAgICAgIF5+fn5+fn5+fn4KZGlmZnV0aWxz LTMuNi9zcmMvZGlmZjMuYzoxNDAxOjM6IG5vdGU6IExvb3AgY29uZGl0aW9uIGlzIHRydWUu ICBFbnRlcmluZyBsb29wIGJvZHkKIyAgZm9yIChwdHIgPSBkaWZmOyBwdHI7IHB0ciA9IERf TkVYVCAocHRyKSkKIyAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjE0MDU6Nzogbm90 ZTogQ29udHJvbCBqdW1wcyB0byAnY2FzZSBESUZGXzJORDonICBhdCBsaW5lIDE0MTMKIyAg ICAgIHN3aXRjaCAocHRyLT5jb3JyZXNwb25kKQojICAgICAgXgpkaWZmdXRpbHMtMy42L3Ny Yy9kaWZmMy5jOjE0MTk6MTY6IG5vdGU6IEFzc3VtaW5nICdvZGRvbmVvdXQnIGlzIGVxdWFs IHRvIDAKIyAgICAgICAgICBkb250cHJpbnQgPSBvZGRvbmVvdXQgPT0gMDsKIyAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5j OjE0MjA6NDogbm90ZTogIEV4ZWN1dGlvbiBjb250aW51ZXMgb24gbGluZSAxNDI0CiMgICAg ICAgICAgYnJlYWs7CiMgICAgICAgICAgXgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjE0 Mjc6Nzogbm90ZTogTG9vcCBjb25kaXRpb24gaXMgdHJ1ZS4gIEVudGVyaW5nIGxvb3AgYm9k eQojICAgICAgZm9yIChpID0gMDsgaSA8IDM7CiMgICAgICBeCmRpZmZ1dGlscy0zLjYvc3Jj L2RpZmYzLmM6MTQzNzo0OiBub3RlOiBDb250cm9sIGp1bXBzIHRvICdjYXNlIDA6JyAgYXQg bGluZSAxNDQyCiMgICAgICAgICAgc3dpdGNoIChsb3d0IC0gaGlnaHQpCiMgICAgICAgICAg XgpkaWZmdXRpbHMtMy42L3NyYy9kaWZmMy5jOjE0NDQ6ODogbm90ZTogIEV4ZWN1dGlvbiBj b250aW51ZXMgb24gbGluZSAxNDUwCiMgICAgICAgICAgICAgIGJyZWFrOwojICAgICAgICAg ICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6MTQ1MDo0OiBub3RlOiBUYWtpbmcg ZmFsc2UgYnJhbmNoCiMgICAgICAgICAgaWYgKGkgPT0gZG9udHByaW50KSBjb250aW51ZTsK IyAgICAgICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6MTQ1Mjo0OiBub3RlOiBU YWtpbmcgdHJ1ZSBicmFuY2gKIyAgICAgICAgICBpZiAobG93dCA8PSBoaWdodCkKIyAgICAg ICAgICBeCmRpZmZ1dGlscy0zLjYvc3JjL2RpZmYzLmM6MTQ1ODoxMDogbm90ZTogQXJyYXkg YWNjZXNzIHJlc3VsdHMgaW4gYSBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UKIyAgICAgICAg ICAgICAgICAgIGNwID0gRF9SRUxOVU0gKHB0ciwgcmVhbGZpbGUsIGxpbmUpOwojICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KZGlmZnV0 aWxzLTMuNi9zcmMvZGlmZjMuYzoxMDk6Mzogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAn RF9SRUxOVU0nCiMgICgoZGlmZiktPmxpbmVzW2ZpbGVudW1dW2xpbmVudW1dKQojICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIyAxNDU2fCAgIAkJewojIDE0NTd8ICAg CQkgIGZwdXRzIChsaW5lX3ByZWZpeCwgb3V0cHV0ZmlsZSk7CiMgMTQ1OHwtPiAJCSAgY3Ag PSBEX1JFTE5VTSAocHRyLCByZWFsZmlsZSwgbGluZSk7CiMgMTQ1OXwgICAJCSAgbGVuZ3Ro ID0gRF9SRUxMRU4gKHB0ciwgcmVhbGZpbGUsIGxpbmUpOwojIDE0NjB8ICAgCQkgIGZ3cml0 ZSAoY3AsIHNpemVvZiAoY2hhciksIGxlbmd0aCwgb3V0cHV0ZmlsZSk7CgpFcnJvcjogREVB RENPREUgKENXRS01NjEpOgpkaWZmdXRpbHMtMy42L3NyYy9pZmRlZi5jOjMxODogY29uZF9h dF9sZWFzdDogQ29uZGl0aW9uICIodW5zaWduZWQgaW50KWMgLSA0OFUgPD0gOVUiLCB0YWtp bmcgZmFsc2UgYnJhbmNoLiBOb3cgdGhlIHZhbHVlIG9mICJjIiBpcyBhdCBsZWFzdCA1OC4K ZGlmZnV0aWxzLTMuNi9zcmMvaWZkZWYuYzozMjA6IGF0X2xlYXN0OiBBdCBjb25kaXRpb24g ImMgPT0gJy4nIiwgdGhlIHZhbHVlIG9mICJjIiBtdXN0IGJlIGF0IGxlYXN0IDU4LgpkaWZm dXRpbHMtMy42L3NyYy9pZmRlZi5jOjMyMDogZGVhZF9lcnJvcl9jb25kaXRpb246IFRoZSBj b25kaXRpb24gImMgPT0gJy4nIiBjYW5ub3QgYmUgdHJ1ZS4KZGlmZnV0aWxzLTMuNi9zcmMv aWZkZWYuYzozMjE6IGRlYWRfZXJyb3JfbGluZTogRXhlY3V0aW9uIGNhbm5vdCByZWFjaCB0 aGlzIHN0YXRlbWVudDogIndoaWxlICgodW5zaWduZWQgaW50KShjID0gKi4uLiIuCiMgIDMx OXwgICAgICAgYyA9ICpmKys7CiMgIDMyMHwgICAgIGlmIChjID09ICcuJykKIyAgMzIxfC0+ ICAgICB3aGlsZSAoSVNESUdJVCAoYyA9ICpmKyspKQojICAzMjJ8ICAgICAgICAgY29udGlu dWU7CiMgIDMyM3wgICAgIGMxID0gKmYrKzsKCkVycm9yOiBSRVNPVVJDRV9MRUFLIChDV0Ut NzcyKToKZGlmZnV0aWxzLTMuNi9zcmMvaWZkZWYuYzozNjg6IGFsbG9jX2ZuOiBTdG9yYWdl IGlzIHJldHVybmVkIGZyb20gYWxsb2NhdGlvbiBmdW5jdGlvbiAieG1hbGxvYyIuCmRpZmZ1 dGlscy0zLjYvbGliL3htYWxsb2MuYzo0MToxMTogYWxsb2NfZm46IFN0b3JhZ2UgaXMgcmV0 dXJuZWQgZnJvbSBhbGxvY2F0aW9uIGZ1bmN0aW9uICJtYWxsb2MiLgpkaWZmdXRpbHMtMy42 L2xpYi94bWFsbG9jLmM6NDE6MTE6IHZhcl9hc3NpZ246IEFzc2lnbmluZzogInAiID0gIm1h bGxvYyhuKSIuCmRpZmZ1dGlscy0zLjYvbGliL3htYWxsb2MuYzo0NDozOiByZXR1cm5fYWxs b2M6IFJldHVybmluZyBhbGxvY2F0ZWQgbWVtb3J5ICJwIi4KZGlmZnV0aWxzLTMuNi9zcmMv aWZkZWYuYzozNjg6IHZhcl9hc3NpZ246IEFzc2lnbmluZzogImZvcm1hdCIgPSBzdG9yYWdl IHJldHVybmVkIGZyb20gInhtYWxsb2Moc3BlY19wcmVmaXhfbGVuICsgcElfbGVuICsgMlVM KSIuCmRpZmZ1dGlscy0zLjYvc3JjL2lmZGVmLmM6MzcwOiB2YXJfYXNzaWduOiBBc3NpZ25p bmc6ICJwIiA9ICJmb3JtYXQiLgpkaWZmdXRpbHMtMy42L3NyYy9pZmRlZi5jOjM3MTogbm9l c2NhcGU6IFJlc291cmNlICJmb3JtYXQiIGlzIG5vdCBmcmVlZCBvciBwb2ludGVkLXRvIGlu ICJtZW1jcHkiLiBbTm90ZTogVGhlIHNvdXJjZSBjb2RlIGltcGxlbWVudGF0aW9uIG9mIHRo ZSBmdW5jdGlvbiBoYXMgYmVlbiBvdmVycmlkZGVuIGJ5IGEgYnVpbHRpbiBtb2RlbC5dCmRp ZmZ1dGlscy0zLjYvc3JjL2lmZGVmLmM6MzcyOiBub2VzY2FwZTogUmVzb3VyY2UgImZvcm1h dCArIHNwZWNfcHJlZml4X2xlbiIgaXMgbm90IGZyZWVkIG9yIHBvaW50ZWQtdG8gaW4gIm1l bWNweSIuIFtOb3RlOiBUaGUgc291cmNlIGNvZGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGZ1 bmN0aW9uIGhhcyBiZWVuIG92ZXJyaWRkZW4gYnkgYSBidWlsdGluIG1vZGVsLl0KZGlmZnV0 aWxzLTMuNi9zcmMvaWZkZWYuYzozNzU6IG5vZXNjYXBlOiBSZXNvdXJjZSAiZm9ybWF0IiBp cyBub3QgZnJlZWQgb3IgcG9pbnRlZC10byBpbiAiZnByaW50ZiIuIFtOb3RlOiBUaGUgc291 cmNlIGNvZGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIGZ1bmN0aW9uIGhhcyBiZWVuIG92ZXJy aWRkZW4gYnkgYSBidWlsdGluIG1vZGVsLl0KZGlmZnV0aWxzLTMuNi9zcmMvaWZkZWYuYzoz Nzk6IGxlYWtlZF9zdG9yYWdlOiBWYXJpYWJsZSAicCIgZ29pbmcgb3V0IG9mIHNjb3BlIGxl YWtzIHRoZSBzdG9yYWdlIGl0IHBvaW50cyB0by4KZGlmZnV0aWxzLTMuNi9zcmMvaWZkZWYu YzozNzk6IGxlYWtlZF9zdG9yYWdlOiBWYXJpYWJsZSAiZm9ybWF0IiBnb2luZyBvdXQgb2Yg c2NvcGUgbGVha3MgdGhlIHN0b3JhZ2UgaXQgcG9pbnRzIHRvLgojICAzNzd8ICAgCSAgICBm cmVlIChmb3JtYXQpOwojICAzNzh8ICAgI2VuZGlmCiMgIDM3OXwtPiAJICB9CiMgIDM4MHwg ICAgICAgICB9CiMgIDM4MXwgICAgICAgICBicmVhazsKCkVycm9yOiBDT01QSUxFUl9XQVJO SU5HOgpkaWZmdXRpbHMtMy42L3NyYy9zZGlmZi5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlv biAnZWRpdCcKZGlmZnV0aWxzLTMuNi9zcmMvc2RpZmYuYzo4Njg6MTE6IHdhcm5pbmc6ICdj bWQxJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XbWF5 YmUtdW5pbml0aWFsaXplZF0KIyAgICAgICBpbnQgY21kMSBJRl9MSU5UICg9IDApOwojICAg ICAgICAgICBefn5+CiMgIDg2NnwgICAgICAgewojICA4Njd8ICAgICAgICAgaW50IGNtZDAg SUZfTElOVCAoPSAwKTsKIyAgODY4fC0+ICAgICAgIGludCBjbWQxIElGX0xJTlQgKD0gMCk7 CiMgIDg2OXwgICAgICAgICBib29sIGdvdGNtZCA9IGZhbHNlOwojICA4NzB8ICAgCgpFcnJv cjogVU5JTklUIChDV0UtNDU3KToKZGlmZnV0aWxzLTMuNi9zcmMvc2RpZmYuYzo4Njg6IHZh cl9kZWNsOiBEZWNsYXJpbmcgdmFyaWFibGUgImNtZDEiIHdpdGhvdXQgaW5pdGlhbGl6ZXIu CmRpZmZ1dGlscy0zLjYvc3JjL3NkaWZmLmM6OTY1OiB1bmluaXRfdXNlOiBVc2luZyB1bmlu aXRpYWxpemVkIHZhbHVlICJjbWQxIi4KIyAgOTYzfCAgIAkgICAgICBwZXJyb3JfZmF0YWwg KHRtcG5hbWUpOwojICA5NjR8ICAgCiMgIDk2NXwtPiAJICAgIHN3aXRjaCAoY21kMSkKIyAg OTY2fCAgIAkgICAgICB7CiMgIDk2N3wgICAJICAgICAgY2FzZSAnZCc6CgpFcnJvcjogU0VD VVJFX1RFTVAgKENXRS0zNzcpOgpkaWZmdXRpbHMtMy42L3NyYy9zZGlmZi5jOjExNjk6IHNl Y3VyZV90ZW1wOiBDYWxsaW5nICJta3N0ZW1wIiB3aXRob3V0IHNlY3VyZWx5IHNldHRpbmcg dW1hc2sgZmlyc3QuCiMgMTE2N3wgICAgIGludCBmZDsKIyAxMTY4fCAgICAgc3ByaW50ZiAo YnVmLCAiJXMvc2RpZmZYWFhYWFgiLCBkaXIpOwojIDExNjl8LT4gICBmZCA9IG1rc3RlbXAg KGJ1Zik7CiMgMTE3MHwgICAgIGlmICgwIDw9IGZkKQojIDExNzF8ICAgICAgIHRtcG5hbWUg PSBidWY7CgpFcnJvcjogUkVTT1VSQ0VfTEVBSyAoQ1dFLTc3Mik6CmRpZmZ1dGlscy0zLjYv c3JjL3NkaWZmLmM6MTE2NjogYWxsb2NfZm46IFN0b3JhZ2UgaXMgcmV0dXJuZWQgZnJvbSBh bGxvY2F0aW9uIGZ1bmN0aW9uICJ4bWFsbG9jIi4KZGlmZnV0aWxzLTMuNi9saWIveG1hbGxv Yy5jOjQxOjExOiBhbGxvY19mbjogU3RvcmFnZSBpcyByZXR1cm5lZCBmcm9tIGFsbG9jYXRp b24gZnVuY3Rpb24gIm1hbGxvYyIuCmRpZmZ1dGlscy0zLjYvbGliL3htYWxsb2MuYzo0MTox MTogdmFyX2Fzc2lnbjogQXNzaWduaW5nOiAicCIgPSAibWFsbG9jKG4pIi4KZGlmZnV0aWxz LTMuNi9saWIveG1hbGxvYy5jOjQ0OjM6IHJldHVybl9hbGxvYzogUmV0dXJuaW5nIGFsbG9j YXRlZCBtZW1vcnkgInAiLgpkaWZmdXRpbHMtMy42L3NyYy9zZGlmZi5jOjExNjY6IHZhcl9h c3NpZ246IEFzc2lnbmluZzogImJ1ZiIgPSBzdG9yYWdlIHJldHVybmVkIGZyb20gInhtYWxs b2Moc3RybGVuKGRpcikgKyAxVUwgKyA1VUwgKyA2VUwgKyAxVUwpIi4KZGlmZnV0aWxzLTMu Ni9zcmMvc2RpZmYuYzoxMTY4OiBub2VzY2FwZTogUmVzb3VyY2UgImJ1ZiIgaXMgbm90IGZy ZWVkIG9yIHBvaW50ZWQtdG8gaW4gInNwcmludGYiLiBbTm90ZTogVGhlIHNvdXJjZSBjb2Rl IGltcGxlbWVudGF0aW9uIG9mIHRoZSBmdW5jdGlvbiBoYXMgYmVlbiBvdmVycmlkZGVuIGJ5 IGEgYnVpbHRpbiBtb2RlbC5dCmRpZmZ1dGlscy0zLjYvc3JjL3NkaWZmLmM6MTE2OTogbm9l c2NhcGU6IFJlc291cmNlICJidWYiIGlzIG5vdCBmcmVlZCBvciBwb2ludGVkLXRvIGluICJt a3N0ZW1wIi4KZGlmZnV0aWxzLTMuNi9zcmMvc2RpZmYuYzoxMTcyOiBsZWFrZWRfc3RvcmFn ZTogVmFyaWFibGUgImJ1ZiIgZ29pbmcgb3V0IG9mIHNjb3BlIGxlYWtzIHRoZSBzdG9yYWdl IGl0IHBvaW50cyB0by4KIyAxMTcwfCAgICAgaWYgKDAgPD0gZmQpCiMgMTE3MXwgICAgICAg dG1wbmFtZSA9IGJ1ZjsKIyAxMTcyfC0+ICAgcmV0dXJuIGZkOwojIDExNzN8ICAgfQoKRXJy b3I6IFJFU09VUkNFX0xFQUsgKENXRS03NzIpOgpkaWZmdXRpbHMtMy42L3NyYy91dGlsLmM6 NTk0OiBhbGxvY19mbjogU3RvcmFnZSBpcyByZXR1cm5lZCBmcm9tIGFsbG9jYXRpb24gZnVu Y3Rpb24gInhzdHJkdXAiLgpkaWZmdXRpbHMtMy42L2xpYi94bWFsbG9jLmM6MTIxOjM6IGFs bG9jX2ZuOiBTdG9yYWdlIGlzIHJldHVybmVkIGZyb20gYWxsb2NhdGlvbiBmdW5jdGlvbiAi eG1lbWR1cCIuCmRpZmZ1dGlscy0zLjYvbGliL3htYWxsb2MuYzoxMTM6MzogYWxsb2NfZm46 IFN0b3JhZ2UgaXMgcmV0dXJuZWQgZnJvbSBhbGxvY2F0aW9uIGZ1bmN0aW9uICJ4bWFsbG9j Ii4KZGlmZnV0aWxzLTMuNi9saWIveG1hbGxvYy5jOjQxOjExOiBhbGxvY19mbjogU3RvcmFn ZSBpcyByZXR1cm5lZCBmcm9tIGFsbG9jYXRpb24gZnVuY3Rpb24gIm1hbGxvYyIuCmRpZmZ1 dGlscy0zLjYvbGliL3htYWxsb2MuYzo0MToxMTogdmFyX2Fzc2lnbjogQXNzaWduaW5nOiAi cCIgPSAibWFsbG9jKG4pIi4KZGlmZnV0aWxzLTMuNi9saWIveG1hbGxvYy5jOjQ0OjM6IHJl dHVybl9hbGxvYzogUmV0dXJuaW5nIGFsbG9jYXRlZCBtZW1vcnkgInAiLgpkaWZmdXRpbHMt My42L2xpYi94bWFsbG9jLmM6MTEzOjM6IGlkZW50aXR5X3RyYW5zZmVyOiBQYXNzaW5nICJ4 bWFsbG9jKHMpIiBhcyBhcmd1bWVudCAxIHRvIGZ1bmN0aW9uICJtZW1jcHkiLCB3aGljaCBy ZXR1cm5zIHRoYXQgYXJndW1lbnQuIFtOb3RlOiBUaGUgc291cmNlIGNvZGUgaW1wbGVtZW50 YXRpb24gb2YgdGhlIGZ1bmN0aW9uIGhhcyBiZWVuIG92ZXJyaWRkZW4gYnkgYSBidWlsdGlu IG1vZGVsLl0KZGlmZnV0aWxzLTMuNi9saWIveG1hbGxvYy5jOjExMzozOiByZXR1cm5fYWxs b2NfZm46IERpcmVjdGx5IHJldHVybmluZyBzdG9yYWdlIGFsbG9jYXRlZCBieSAibWVtY3B5 Ii4KZGlmZnV0aWxzLTMuNi9saWIveG1hbGxvYy5jOjEyMTozOiByZXR1cm5fYWxsb2NfZm46 IERpcmVjdGx5IHJldHVybmluZyBzdG9yYWdlIGFsbG9jYXRlZCBieSAieG1lbWR1cCIuCmRp ZmZ1dGlscy0zLjYvc3JjL3V0aWwuYzo1OTQ6IHZhcl9hc3NpZ246IEFzc2lnbmluZzogImNv bG9yX2J1ZiIgPSBzdG9yYWdlIHJldHVybmVkIGZyb20gInhzdHJkdXAocCkiLgpkaWZmdXRp bHMtMy42L3NyYy91dGlsLmM6NTk0OiB2YXJfYXNzaWduOiBBc3NpZ25pbmc6ICJidWYiID0g ImNvbG9yX2J1ZiIuCmRpZmZ1dGlscy0zLjYvc3JjL3V0aWwuYzo3MDI6IGxlYWtlZF9zdG9y YWdlOiBWYXJpYWJsZSAiYnVmIiBnb2luZyBvdXQgb2Ygc2NvcGUgbGVha3MgdGhlIHN0b3Jh Z2UgaXQgcG9pbnRzIHRvLgpkaWZmdXRpbHMtMy42L3NyYy91dGlsLmM6NzAyOiBsZWFrZWRf c3RvcmFnZTogVmFyaWFibGUgImNvbG9yX2J1ZiIgZ29pbmcgb3V0IG9mIHNjb3BlIGxlYWtz IHRoZSBzdG9yYWdlIGl0IHBvaW50cyB0by4KIyAgNzAwfCAgICAgICAgIGNvbG9yc19lbmFi bGVkID0gZmFsc2U7CiMgIDcwMXwgICAgICAgfQojICA3MDJ8LT4gfQojICA3MDN8ICAgCiMg IDcwNHwgICBzdGF0aWMgdm9pZAo= --------------9D0E01F36EDD216997B7BE0F-- From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 13 15:07:12 2018 Received: (at 32427-done) by debbugs.gnu.org; 13 Aug 2018 19:07:13 +0000 Received: from localhost ([127.0.0.1]:49930 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fpIBM-0003oy-O7 for submit@debbugs.gnu.org; Mon, 13 Aug 2018 15:07:12 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:37746) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fpIBK-0003oj-VJ for 32427-done@debbugs.gnu.org; Mon, 13 Aug 2018 15:07:11 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id F2BFA1600CC; Mon, 13 Aug 2018 12:07:04 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 7aOVTCbzQcfg; Mon, 13 Aug 2018 12:07:04 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 4833D160057; Mon, 13 Aug 2018 12:07:04 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id IJq2vuFlHmA6; Mon, 13 Aug 2018 12:07:04 -0700 (PDT) Received: from [192.168.1.9] (unknown [47.154.30.119]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 065251600CC; Mon, 13 Aug 2018 12:07:03 -0700 (PDT) Subject: Re: [bug-diffutils] bug#32427: several issues found by covscan in diffutils-3.6 To: than , 32427-done@debbugs.gnu.org References: From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: Date: Mon, 13 Aug 2018 12:07:03 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 32427-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) than wrote: > Covscan found a large number of issues in diffutils-3.6. My goodness, that is a large number of issues. However, after I looked at the first 100 lines' worth, I found that every last issue was a false alarm. If you know of a real bug buried deep in there somewhere please let us know. In the meantime I'm going to boldly close this bug report. You might also want to let the covscan authors know that their tool is crying wolf waaaay too often. From unknown Mon Aug 18 00:05:29 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 11 Sep 2018 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator