Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1f0xMW-00032A-7s for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Mar 2018 22:46:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1f0xMU-0001fI-Ks for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Mar 2018 22:46:38 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1f0xMU-0001f9-7l for pgsql-hackers@lists.postgresql.org; Tue, 27 Mar 2018 22:46:38 +0000 Received: from mail.postgrespro.ru ([93.174.131.138]) by magus.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1f0xMP-0001LU-IQ for pgsql-hackers@lists.postgresql.org; Tue, 27 Mar 2018 22:46:37 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.postgrespro.ru (Postfix) with ESMTP id BF7F721C275A; Wed, 28 Mar 2018 01:46:31 +0300 (MSK) X-Virus-Scanned: Debian amavisd-new at postgrespro.ru X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=x tagged_above=-99 required=4 WHITELISTED tests=[] autolearn=unavailable Received: from mail.postgrespro.ru (cyclops.l.postgrespro.ru [192.168.27.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id 86F3621C175A; Wed, 28 Mar 2018 01:46:31 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1522190791; bh=cFnI+rZGhP9NEXPifOES34DkqrjQY4tY3dffDLs1RUc=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=LeyDraVQpAO7esrOClE1so3fa/RN049nnIVqPwWVNkXsHBhDSPQg4P1PWWTimtbVE 2uFXTo2+76gZkxGgR2UcSfm0Y0gKCRt9SncLEDmKYjg4xGSmvmJRR9qAWv8GOmpPtU i9abrGzRSN6G0fsq+byTJ2yC9CekKA9K0wJjrbbU= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_010e1769837132c3565c0d3c9836e912" Date: Wed, 28 Mar 2018 01:46:31 +0300 From: Dmitry Ivanov To: Thomas Munro Cc: Aleksandr Parfenov , David Steele , Aleksander Alekseev , PostgreSQL Hackers Subject: Re: new function for tsquery creartion Organization: Postgres Professional In-Reply-To: <9153fb21831d0ba7c832960f37df2688@postgrespro.ru> References: <20180302030605.5ur6ktkb2vyb46pb@alap3.anarazel.de> <152025433949.1548.16466871234054596674.pgcf@coridan.postgresql.org> <34280367-0dab-7f73-8d7c-d21c7276814b@pgmasters.net> <8df9de83119eb295f3424c573d64ff84@postgrespro.ru> <20180326092405.71820cf2@asp437-24-g082ur> <6754a224654a4f0339195b83b133d551@postgrespro.ru> <9153fb21831d0ba7c832960f37df2688@postgrespro.ru> Message-ID: <9e6f3d4f5e93e72807b1b27c75b98c51@postgrespro.ru> X-Sender: d.ivanov@postgrespro.ru User-Agent: Roundcube Webmail/1.2.4 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=_010e1769837132c3565c0d3c9836e912 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed > select websearch_to_tsquery('simple', 'abc or!def'); > websearch_to_tsquery > ---------------------- > 'abc' | 'def' > (1 row) This is wrong ofc, I've attached the fixed version. -- Dmitry Ivanov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company --=_010e1769837132c3565c0d3c9836e912 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=websearch_to_tsquery_v2.diff Content-Disposition: attachment; filename=websearch_to_tsquery_v2.diff; size=28716 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3RzZWFyY2gvdG9fdHNhbnkuYyBiL3NyYy9iYWNrZW5k L3RzZWFyY2gvdG9fdHNhbnkuYwppbmRleCBlYTU5NDdhM2E4Li5iZGYwNTIzNmNmIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90c2VhcmNoL3RvX3RzYW55LmMKKysrIGIvc3JjL2JhY2tlbmQvdHNl YXJjaC90b190c2FueS5jCkBAIC0zOTAsNyArMzkwLDggQEAgYWRkX3RvX3RzdmVjdG9yKHZvaWQg Kl9zdGF0ZSwgY2hhciAqZWxlbV92YWx1ZSwgaW50IGVsZW1fbGVuKQogICogYW5kIGRpZmZlcmVu dCB2YXJpYW50cyBhcmUgT1JlZCB0b2dldGhlci4KICAqLwogc3RhdGljIHZvaWQKLXB1c2h2YWxf bW9ycGgoRGF0dW0gb3BhcXVlLCBUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsIGNoYXIgKnN0cnZh bCwgaW50IGxlbnZhbCwgaW50MTYgd2VpZ2h0LCBib29sIHByZWZpeCkKK3B1c2h2YWxfbW9ycGgo RGF0dW0gb3BhcXVlLCBUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsIGNoYXIgKnN0cnZhbCwgaW50 IGxlbnZhbCwKKwkJCSAgaW50MTYgd2VpZ2h0LCBib29sIHByZWZpeCwgYm9vbCBmb3JjZV9waHJh c2UpCiB7CiAJaW50MzIJCWNvdW50ID0gMDsKIAlQYXJzZWRUZXh0CXByczsKQEAgLTQyMyw3ICs0 MjQsMTIgQEAgcHVzaHZhbF9tb3JwaChEYXR1bSBvcGFxdWUsIFRTUXVlcnlQYXJzZXJTdGF0ZSBz dGF0ZSwgY2hhciAqc3RydmFsLCBpbnQgbGVudmFsLAogCQkJCQkvKiBwdXQgcGxhY2Vob2xkZXJz IGZvciBlYWNoIG1pc3Npbmcgc3RvcCB3b3JkICovCiAJCQkJCXB1c2hTdG9wKHN0YXRlKTsKIAkJ CQkJaWYgKGNudHBvcykKLQkJCQkJCXB1c2hPcGVyYXRvcihzdGF0ZSwgZGF0YS0+cW9wZXJhdG9y LCAxKTsKKwkJCQkJeworCQkJCQkJaWYgKGZvcmNlX3BocmFzZSkKKwkJCQkJCQlwdXNoT3BlcmF0 b3Ioc3RhdGUsIE9QX1BIUkFTRSwgMSk7CisJCQkJCQllbHNlCisJCQkJCQkJcHVzaE9wZXJhdG9y KHN0YXRlLCBkYXRhLT5xb3BlcmF0b3IsIDEpOworCQkJCQl9CiAJCQkJCWNudHBvcysrOwogCQkJ CQlwb3MrKzsKIAkJCQl9CkBAIC00NjQsNyArNDcwLDEwIEBAIHB1c2h2YWxfbW9ycGgoRGF0dW0g b3BhcXVlLCBUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsIGNoYXIgKnN0cnZhbCwgaW50IGxlbnZh bCwKIAkJCWlmIChjbnRwb3MpCiAJCQl7CiAJCQkJLyogZGlzdGFuY2UgbWF5IGJlIHVzZWZ1bCAq LwotCQkJCXB1c2hPcGVyYXRvcihzdGF0ZSwgZGF0YS0+cW9wZXJhdG9yLCAxKTsKKwkJCQlpZiAo Zm9yY2VfcGhyYXNlKQorCQkJCQlwdXNoT3BlcmF0b3Ioc3RhdGUsIE9QX1BIUkFTRSwgMSk7CisJ CQkJZWxzZQorCQkJCQlwdXNoT3BlcmF0b3Ioc3RhdGUsIGRhdGEtPnFvcGVyYXRvciwgMSk7CiAJ CQl9CiAKIAkJCWNudHBvcysrOwpAQCAtNDkwLDYgKzQ5OSw3IEBAIHRvX3RzcXVlcnlfYnlpZChQ R19GVU5DVElPTl9BUkdTKQogCXF1ZXJ5ID0gcGFyc2VfdHNxdWVyeSh0ZXh0X3RvX2NzdHJpbmco aW4pLAogCQkJCQkJICBwdXNodmFsX21vcnBoLAogCQkJCQkJICBQb2ludGVyR2V0RGF0dW0oJmRh dGEpLAorCQkJCQkJICBmYWxzZSwKIAkJCQkJCSAgZmFsc2UpOwogCiAJUEdfUkVUVVJOX1RTUVVF UlkocXVlcnkpOwpAQCAtNTIwLDcgKzUzMCw4IEBAIHBsYWludG9fdHNxdWVyeV9ieWlkKFBHX0ZV TkNUSU9OX0FSR1MpCiAJcXVlcnkgPSBwYXJzZV90c3F1ZXJ5KHRleHRfdG9fY3N0cmluZyhpbiks CiAJCQkJCQkgIHB1c2h2YWxfbW9ycGgsCiAJCQkJCQkgIFBvaW50ZXJHZXREYXR1bSgmZGF0YSks Ci0JCQkJCQkgIHRydWUpOworCQkJCQkJICB0cnVlLAorCQkJCQkJICBmYWxzZSk7CiAKIAlQR19S RVRVUk5fUE9JTlRFUihxdWVyeSk7CiB9CkBAIC01NTEsNyArNTYyLDggQEAgcGhyYXNldG9fdHNx dWVyeV9ieWlkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcXVlcnkgPSBwYXJzZV90c3F1ZXJ5KHRleHRf dG9fY3N0cmluZyhpbiksCiAJCQkJCQkgIHB1c2h2YWxfbW9ycGgsCiAJCQkJCQkgIFBvaW50ZXJH ZXREYXR1bSgmZGF0YSksCi0JCQkJCQkgIHRydWUpOworCQkJCQkJICB0cnVlLAorCQkJCQkJICBm YWxzZSk7CiAKIAlQR19SRVRVUk5fVFNRVUVSWShxdWVyeSk7CiB9CkBAIC01NjcsMyArNTc5LDM2 IEBAIHBocmFzZXRvX3RzcXVlcnkoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCQkJCQlPYmplY3RJ ZEdldERhdHVtKGNmZ0lkKSwKIAkJCQkJCQkJCQlQb2ludGVyR2V0RGF0dW0oaW4pKSk7CiB9CisK K0RhdHVtCit3ZWJzZWFyY2hfdG9fdHNxdWVyeV9ieWlkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJ dGV4dAkgICAqaW4gPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwlNb3JwaE9wYXF1ZQlkYXRhOwor CVRTUXVlcnkJCXF1ZXJ5ID0gTlVMTDsKKworCWRhdGEuY2ZnX2lkID0gUEdfR0VUQVJHX09JRCgw KTsKKworCWRhdGEucW9wZXJhdG9yID0gT1BfQU5EOworCisJcXVlcnkgPSBwYXJzZV90c3F1ZXJ5 KHRleHRfdG9fY3N0cmluZyhpbiksCisJCQkJCQkgIHB1c2h2YWxfbW9ycGgsCisJCQkJCQkgIFBv aW50ZXJHZXREYXR1bSgmZGF0YSksCisJCQkJCQkgIGZhbHNlLAorCQkJCQkJICB0cnVlKTsKKwor CVBHX1JFVFVSTl9UU1FVRVJZKHF1ZXJ5KTsKK30KKworRGF0dW0KK3dlYnNlYXJjaF90b190c3F1 ZXJ5KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJdGV4dAkgICAqaW4gPSBQR19HRVRBUkdfVEVYVF9Q UCgwKTsKKwlPaWQJCQljZmdJZDsKKworCWNmZ0lkID0gZ2V0VFNDdXJyZW50Q29uZmlnKHRydWUp OworCVBHX1JFVFVSTl9EQVRVTShEaXJlY3RGdW5jdGlvbkNhbGwyKHdlYnNlYXJjaF90b190c3F1 ZXJ5X2J5aWQsCisJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShjZmdJZCksCisJCQkJCQkJCQkJ UG9pbnRlckdldERhdHVtKGluKSkpOworCit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvdHNxdWVyeS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnkuYwppbmRleCAx Y2NiZjc5MDMwLi5hNWJlYzNmMzMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv dHNxdWVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c3F1ZXJ5LmMKQEAgLTMyLDEy ICszMiwyNCBAQCBjb25zdCBpbnQJdHNlYXJjaF9vcF9wcmlvcml0eVtPUF9DT1VOVF0gPQogCTMJ CQkJCQkJLyogT1BfUEhSQVNFICovCiB9OwogCisvKgorICogcGFyc2VyJ3Mgc3RhdGVzCisgKi8K K3R5cGVkZWYgZW51bQoreworCVdBSVRPUEVSQU5EID0gMSwKKwlXQUlUT1BFUkFUT1IgPSAyLAor CVdBSVRGSVJTVE9QRVJBTkQgPSAzLAorCVdBSVRTSU5HTEVPUEVSQU5EID0gNCwKKwlJTlFVT1RF UyA9IDUgLyogZm9yIHF1b3RlZCBwaHJhc2VzIGluIHdlYiBzZWFyY2ggKi8KK30gdHNfcGFyc2Vy c3RhdGU7CisKIHN0cnVjdCBUU1F1ZXJ5UGFyc2VyU3RhdGVEYXRhCiB7CiAJLyogU3RhdGUgZm9y IGdldHRva2VuX3F1ZXJ5ICovCiAJY2hhcgkgICAqYnVmZmVyOwkJCS8qIGVudGlyZSBzdHJpbmcg d2UgYXJlIHNjYW5uaW5nICovCiAJY2hhcgkgICAqYnVmOwkJCS8qIGN1cnJlbnQgc2NhbiBwb2lu dCAqLwotCWludAkJCXN0YXRlOworCXRzX3BhcnNlcnN0YXRlIHN0YXRlOwogCWludAkJCWNvdW50 OwkJCS8qIG5lc3RpbmcgY291bnQsIGluY3JlbWVudGVkIGJ5ICgsCiAJCQkJCQkJCSAqIGRlY3Jl bWVudGVkIGJ5ICkgKi8KIApAQCAtNTcsMTIgKzY5LDYgQEAgc3RydWN0IFRTUXVlcnlQYXJzZXJT dGF0ZURhdGEKIAlUU1ZlY3RvclBhcnNlU3RhdGUgdmFsc3RhdGU7CiB9OwogCi0vKiBwYXJzZXIn cyBzdGF0ZXMgKi8KLSNkZWZpbmUgV0FJVE9QRVJBTkQgMQotI2RlZmluZSBXQUlUT1BFUkFUT1IJ MgotI2RlZmluZSBXQUlURklSU1RPUEVSQU5EIDMKLSNkZWZpbmUgV0FJVFNJTkdMRU9QRVJBTkQg NAotCiAvKgogICogc3Vicm91dGluZSB0byBwYXJzZSB0aGUgbW9kaWZpZXJzICh3ZWlnaHQgYW5k IHByZWZpeCBmbGFnIGN1cnJlbnRseSkKICAqIHBhcnQsIGxpa2UgJzpBQionIG9mIGEgcXVlcnku CkBAIC0xOTcsNiArMjAzLDIxIEBAIGVycjoKIAlyZXR1cm4gYnVmOwogfQogCisvKgorICogUGFy c2UgT1Igb3BlcmF0b3IgdXNlZCBpbiB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgpLgorICovCitzdGF0 aWMgYm9vbAorcGFyc2Vfb3Jfb3BlcmF0b3IoY2hhciAqYnVmKQoreworCXJldHVybiAodF9pc2Vx KCZidWZbMF0sICdvJykgfHwgdF9pc2VxKCZidWZbMF0sICdPJykpICYmCisJCSAgICh0X2lzZXEo JmJ1ZlsxXSwgJ3InKSB8fCB0X2lzZXEoJmJ1ZlsxXSwgJ1InKSkgJiYKKwkJICAgKGJ1ZlsyXSAh PSAnXDAnICYmCisJCQkJIXRfaXNlcSgmYnVmWzJdLCAnLScpICYmCisJCQkJIXRfaXNlcSgmYnVm WzJdLCAnXycpICYmCisJCQkJIXRfaXNhbHBoYSgmYnVmWzJdKSAmJgorCQkJCSF0X2lzZGlnaXQo JmJ1ZlsyXSkpOworfQorCiAvKgogICogdG9rZW4gdHlwZXMgZm9yIHBhcnNpbmcKICAqLwpAQCAt MjIwLDggKzI0MSw4IEBAIHR5cGVkZWYgZW51bQogICovCiBzdGF0aWMgdHNfdG9rZW50eXBlCiBn ZXR0b2tlbl9xdWVyeShUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCi0JCQkgICBpbnQ4ICpvcGVy YXRvciwKLQkJCSAgIGludCAqbGVudmFsLCBjaGFyICoqc3RydmFsLCBpbnQxNiAqd2VpZ2h0LCBi b29sICpwcmVmaXgpCisJCQkgICBpbnQ4ICpvcGVyYXRvciwgaW50ICpsZW52YWwsIGNoYXIgKipz dHJ2YWwsCisJCQkgICBpbnQxNiAqd2VpZ2h0LCBib29sICpwcmVmaXgsIGJvb2wgaXN3ZWIpCiB7 CiAJKndlaWdodCA9IDA7CiAJKnByZWZpeCA9IGZhbHNlOwpAQCAtMjMyLDcgKzI1Myw4IEBAIGdl dHRva2VuX3F1ZXJ5KFRTUXVlcnlQYXJzZXJTdGF0ZSBzdGF0ZSwKIAkJewogCQkJY2FzZSBXQUlU RklSU1RPUEVSQU5EOgogCQkJY2FzZSBXQUlUT1BFUkFORDoKLQkJCQlpZiAodF9pc2VxKHN0YXRl LT5idWYsICchJykpCisJCQkJaWYgKHRfaXNlcShzdGF0ZS0+YnVmLCAnIScpIHx8CisJCQkJCShp c3dlYiAmJiB0X2lzZXEoc3RhdGUtPmJ1ZiwgJy0nKSkpCiAJCQkJewogCQkJCQkoc3RhdGUtPmJ1 ZikrKzsgLyogY2FuIHNhZmVseSArKywgdF9pc2VxIGd1YXJhbnRlZSB0aGF0CiAJCQkJCQkJCQkg KiBwZ19tYmxlbigpPT0xICovCkBAIC0yNDksMTEgKzI3MSw1NSBAQCBnZXR0b2tlbl9xdWVyeShU U1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJCQkJfQogCQkJCWVsc2UgaWYgKHRfaXNlcShzdGF0 ZS0+YnVmLCAnOicpKQogCQkJCXsKKwkJCQkJaWYgKGlzd2ViKQorCQkJCQl7CisJCQkJCQkvKiBp dCBkb2Vzbid0IG1lYW4gYW55dGhpbmcgKi8KKwkJCQkJCShzdGF0ZS0+YnVmKSsrOworCQkJCQkJ Y29udGludWU7CisJCQkJCX0KKwogCQkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKIAkJCQkJCQkgZXJybXNnKCJzeW50YXggZXJyb3IgaW4g dHNxdWVyeTogXCIlc1wiIiwKIAkJCQkJCQkJCXN0YXRlLT5idWZmZXIpKSk7CiAJCQkJfQorCQkJ CWVsc2UgaWYgKGlzd2ViICYmIHRfaXNlcShzdGF0ZS0+YnVmLCAnKScpKQorCQkJCXsKKwkJCQkJ aWYgKHN0YXRlLT5jb3VudCA9PSAwKQorCQkJCQl7CisJCQkJCQkvKiB3ZWIgc2VhcmNoIHRvbGVy YXRlcyB1c2VsZXNzIGNsb3NpbmcgcGFyYW50aGVzZXMgKi8KKwkJCQkJCShzdGF0ZS0+YnVmKSsr OworCQkJCQkJY29udGludWU7CisJCQkJCX0KKwkJCQkJKHN0YXRlLT5idWYpKys7CisJCQkJCXN0 YXRlLT5jb3VudC0tOworCQkJCQlyZXR1cm4gUFRfQ0xPU0U7CisJCQkJfQorCQkJCWVsc2UgaWYg KGlzd2ViICYmCisJCQkJCQkJKHRfaXNlcShzdGF0ZS0+YnVmLCAnJicpIHx8CisJCQkJCQkJIHRf aXNlcShzdGF0ZS0+YnVmLCAnfCcpIHx8CisJCQkJCQkJIHRfaXNlcShzdGF0ZS0+YnVmLCAnPCcp KSkKKwkJCQl7CisJCQkJCS8qIG9yIGVsc2UgZ2V0dG9rZW5fdHN2ZWN0b3IoKSB3aWxsIHJhaXNl IGFuIGVycm9yICovCisJCQkJCShzdGF0ZS0+YnVmKSsrOworCQkJCQljb250aW51ZTsKKwkJCQl9 CisJCQkJZWxzZSBpZiAoaXN3ZWIgJiYgdF9pc2VxKHN0YXRlLT5idWYsICciJykpCisJCQkJewor CQkJCQkvKiBxdW90ZWQgdGV4dCBzaG91bGQgYmUgb3JkZXJlZCAoPC0+KSAqLworCQkJCQljaGFy ICpxdW90ZSA9IHN0cmNocihzdGF0ZS0+YnVmICsgMSwgJyInKTsKKwkJCQkJaWYgKHF1b3RlID09 IE5VTEwpCisJCQkJCXsKKwkJCQkJCS8qIHdlYiBzZWFyY2ggdG9sZXJhdGVzIG1pc3NpbmcgcXVv dGVzIHRvbyAqLworCQkJCQkJc3RhdGUtPmJ1ZisrOworCQkJCQkJY29udGludWU7CisJCQkJCX0K KwkJCQkJKnN0cnZhbCA9IHN0YXRlLT5idWYgKyAxOworCQkJCQkqbGVudmFsID0gcXVvdGUgLSAq c3RydmFsOworCQkJCQlzdGF0ZS0+YnVmID0gcXVvdGUgKyAxOworCQkJCQlzdGF0ZS0+c3RhdGUg PSBJTlFVT1RFUzsKKwkJCQkJcmV0dXJuIFBUX1ZBTDsKKwkJCQl9CiAJCQkJZWxzZSBpZiAoIXRf aXNzcGFjZShzdGF0ZS0+YnVmKSkKIAkJCQl7CiAJCQkJCS8qCkBAIC0yNjksNiArMzM1LDE2IEBA IGdldHRva2VuX3F1ZXJ5KFRTUXVlcnlQYXJzZXJTdGF0ZSBzdGF0ZSwKIAkJCQkJfQogCQkJCQll bHNlIGlmIChzdGF0ZS0+c3RhdGUgPT0gV0FJVEZJUlNUT1BFUkFORCkKIAkJCQkJCXJldHVybiBQ VF9FTkQ7CisJCQkJCWVsc2UgaWYgKGlzd2ViKQorCQkJCQl7CisJCQkJCQlpZiAoc3RhdGUtPmNv dW50ID4gMCkKKwkJCQkJCQkvKiBkZWNyZW1lbnQgcGVyIGVhY2ggcGFyZW50aGVzZXMgbGV2ZWwg KHNlZSBQVF9PUEVOKSAqLworCQkJCQkJCXN0YXRlLT5jb3VudC0tOworCQkJCQkJZWxzZQorCQkJ CQkJCS8qIGZpbmFsbHksIHdlIGhhdmUgdG8gcHJvdmlkZSBhbiBvcGVyYW5kICovCisJCQkJCQkJ cHVzaFN0b3Aoc3RhdGUpOworCQkJCQkJcmV0dXJuIFBUX0VORDsKKwkJCQkJfQogCQkJCQllbHNl CiAJCQkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9F UlJPUiksCkBAIC0yOTEsMjYgKzM2Nyw2MSBAQCBnZXR0b2tlbl9xdWVyeShUU1F1ZXJ5UGFyc2Vy U3RhdGUgc3RhdGUsCiAJCQkJCShzdGF0ZS0+YnVmKSsrOwogCQkJCQlyZXR1cm4gUFRfT1BSOwog CQkJCX0KLQkJCQllbHNlIGlmICh0X2lzZXEoc3RhdGUtPmJ1ZiwgJzwnKSkKKwkJCQllbHNlIGlm IChpc3dlYiAmJiBwYXJzZV9vcl9vcGVyYXRvcihzdGF0ZS0+YnVmKSkKIAkJCQl7CiAJCQkJCXN0 YXRlLT5zdGF0ZSA9IFdBSVRPUEVSQU5EOwotCQkJCQkqb3BlcmF0b3IgPSBPUF9QSFJBU0U7Ci0J CQkJCS8qIHdlaWdodCB2YXIgaXMgdXNlZCBhcyBzdG9yYWdlIGZvciBkaXN0YW5jZSAqLwotCQkJ CQlzdGF0ZS0+YnVmID0gcGFyc2VfcGhyYXNlX29wZXJhdG9yKHN0YXRlLT5idWYsIHdlaWdodCk7 Ci0JCQkJCWlmICgqd2VpZ2h0IDwgMCkKKwkJCQkJKm9wZXJhdG9yID0gT1BfT1I7CisJCQkJCShz dGF0ZS0+YnVmKSArPSAyOyAvKiBzdHJsZW4oIk9SIikgKi8KKwkJCQkJcmV0dXJuIFBUX09QUjsK KwkJCQl9CisJCQkJZWxzZSBpZiAodF9pc2VxKHN0YXRlLT5idWYsICc8JykpCisJCQkJeworCQkJ CQlpbnQxNglkaXN0YW5jZTsKKwkJCQkJY2hhciAgICpwaHJhc2UgPSBwYXJzZV9waHJhc2Vfb3Bl cmF0b3Ioc3RhdGUtPmJ1ZiwgJmRpc3RhbmNlKTsKKwkJCQkJaWYgKGRpc3RhbmNlIDwgMCkKKwkJ CQkJeworCQkJCQkJaWYgKGlzd2ViKQorCQkJCQkJeworCQkJCQkJCS8qIHdlYiBzZWFyY2ggdG9s ZXJhdGVzIGJyb2tlbiBwaHJhc2Ugb3BlcmF0b3IgKi8KKwkJCQkJCQkoc3RhdGUtPmJ1ZikrKzsK KwkJCQkJCQljb250aW51ZTsKKwkJCQkJCX0KIAkJCQkJCXJldHVybiBQVF9FUlI7CisJCQkJCX0K KwkJCQkJc3RhdGUtPmJ1ZiA9IHBocmFzZTsKKwkJCQkJKm9wZXJhdG9yID0gT1BfUEhSQVNFOwor CQkJCQkqd2VpZ2h0ID0gZGlzdGFuY2U7IC8qIHdlaWdodCB2YXIgaXMgdXNlZCBhcyBzdG9yYWdl IGZvciBkaXN0YW5jZSAqLworCQkJCQlzdGF0ZS0+c3RhdGUgPSBXQUlUT1BFUkFORDsKIAkJCQkJ cmV0dXJuIFBUX09QUjsKIAkJCQl9CiAJCQkJZWxzZSBpZiAodF9pc2VxKHN0YXRlLT5idWYsICcp JykpCiAJCQkJeworCQkJCQlpZiAoaXN3ZWIgJiYgc3RhdGUtPmNvdW50ID09IDApCisJCQkJCXsK KwkJCQkJCS8qIHdlYiBzZWFyY2ggdG9sZXJhdGVzIHVzZWxlc3MgY2xvc2luZyBwYXJlbnRoZXNl cyAqLworCQkJCQkJKHN0YXRlLT5idWYpKys7CisJCQkJCQljb250aW51ZTsKKwkJCQkJfQogCQkJ CQkoc3RhdGUtPmJ1ZikrKzsKIAkJCQkJc3RhdGUtPmNvdW50LS07CiAJCQkJCXJldHVybiAoc3Rh dGUtPmNvdW50IDwgMCkgPyBQVF9FUlIgOiBQVF9DTE9TRTsKIAkJCQl9CiAJCQkJZWxzZSBpZiAo KihzdGF0ZS0+YnVmKSA9PSAnXDAnKQotCQkJCQlyZXR1cm4gKHN0YXRlLT5jb3VudCkgPyBQVF9F UlIgOiBQVF9FTkQ7CisJCQkJeworCQkJCQkvKiB3ZWIgc2VhcmNoIHRvbGVyYXRlcyB1bmV4cGVj dGVkIGVuZCBvZiBsaW5lICovCisJCQkJCXJldHVybiAoIWlzd2ViICYmIHN0YXRlLT5jb3VudCkg PyBQVF9FUlIgOiBQVF9FTkQ7CisJCQkJfQogCQkJCWVsc2UgaWYgKCF0X2lzc3BhY2Uoc3RhdGUt PmJ1ZikpCisJCQkJeworCQkJCQlpZiAoaXN3ZWIpCisJCQkJCXsKKwkJCQkJCS8qIHB1dCBpbXBs aWNpdCBBTkQgaWYgdGhlcmUncyBubyBvcGVyYXRvciAqLworCQkJCQkJKm9wZXJhdG9yID0gT1Bf QU5EOworCQkJCQkJc3RhdGUtPnN0YXRlID0gV0FJVE9QRVJBTkQ7CisJCQkJCQlyZXR1cm4gUFRf T1BSOworCQkJCQl9CiAJCQkJCXJldHVybiBQVF9FUlI7CisJCQkJfQogCQkJCWJyZWFrOwogCQkJ Y2FzZSBXQUlUU0lOR0xFT1BFUkFORDoKIAkJCQlpZiAoKihzdGF0ZS0+YnVmKSA9PSAnXDAnKQpA QCAtMzIwLDkgKzQzMSwxMCBAQCBnZXR0b2tlbl9xdWVyeShUU1F1ZXJ5UGFyc2VyU3RhdGUgc3Rh dGUsCiAJCQkJc3RhdGUtPmJ1ZiArPSBzdHJsZW4oc3RhdGUtPmJ1Zik7CiAJCQkJc3RhdGUtPmNv dW50Kys7CiAJCQkJcmV0dXJuIFBUX1ZBTDsKLQkJCWRlZmF1bHQ6Ci0JCQkJcmV0dXJuIFBUX0VS UjsKLQkJCQlicmVhazsKKwkJCWNhc2UgSU5RVU9URVM6CisJCQkJLyogcGhyYXNlIHNob3VsZCBi ZSBmb2xsb3dlZCBieSBhbiBvcGVyYXRvciAqLworCQkJCXN0YXRlLT5zdGF0ZSA9IFdBSVRPUEVS QVRPUjsKKwkJCQljb250aW51ZTsKIAkJfQogCQlzdGF0ZS0+YnVmICs9IHBnX21ibGVuKHN0YXRl LT5idWYpOwogCX0KQEAgLTQ3NSw3ICs1ODcsOCBAQCBjbGVhbk9wU3RhY2soVFNRdWVyeVBhcnNl clN0YXRlIHN0YXRlLAogc3RhdGljIHZvaWQKIG1ha2Vwb2woVFNRdWVyeVBhcnNlclN0YXRlIHN0 YXRlLAogCQlQdXNoRnVuY3Rpb24gcHVzaHZhbCwKLQkJRGF0dW0gb3BhcXVlKQorCQlEYXR1bSBv cGFxdWUsCisJCWJvb2wgaXN3ZWIpCiB7CiAJaW50OAkJb3BlcmF0b3IgPSAwOwogCXRzX3Rva2Vu dHlwZSB0eXBlOwpAQCAtNDg5LDE5ICs2MDIsMjEgQEAgbWFrZXBvbChUU1F1ZXJ5UGFyc2VyU3Rh dGUgc3RhdGUsCiAJLyogc2luY2UgdGhpcyBmdW5jdGlvbiByZWN1cnNlcywgaXQgY291bGQgYmUg ZHJpdmVuIHRvIHN0YWNrIG92ZXJmbG93ICovCiAJY2hlY2tfc3RhY2tfZGVwdGgoKTsKIAotCXdo aWxlICgodHlwZSA9IGdldHRva2VuX3F1ZXJ5KHN0YXRlLCAmb3BlcmF0b3IsICZsZW52YWwsICZz dHJ2YWwsICZ3ZWlnaHQsICZwcmVmaXgpKSAhPSBQVF9FTkQpCisJd2hpbGUgKCh0eXBlID0gZ2V0 dG9rZW5fcXVlcnkoc3RhdGUsICZvcGVyYXRvciwgJmxlbnZhbCwgJnN0cnZhbCwKKwkJCQkJCQkJ ICAmd2VpZ2h0LCAmcHJlZml4LCBpc3dlYikpICE9IFBUX0VORCkKIAl7CiAJCXN3aXRjaCAodHlw ZSkKIAkJewogCQkJY2FzZSBQVF9WQUw6Ci0JCQkJcHVzaHZhbChvcGFxdWUsIHN0YXRlLCBzdHJ2 YWwsIGxlbnZhbCwgd2VpZ2h0LCBwcmVmaXgpOworCQkJCXB1c2h2YWwob3BhcXVlLCBzdGF0ZSwg c3RydmFsLCBsZW52YWwsIHdlaWdodCwgcHJlZml4LAorCQkJCQkJc3RhdGUtPnN0YXRlID09IElO UVVPVEVTIC8qIGZvcmNlIHBocmFzZSBvcGVyYXRvciAqLyk7CiAJCQkJYnJlYWs7CiAJCQljYXNl IFBUX09QUjoKIAkJCQljbGVhbk9wU3RhY2soc3RhdGUsIG9wc3RhY2ssICZsZW5zdGFjaywgb3Bl cmF0b3IpOwogCQkJCXB1c2hPcFN0YWNrKG9wc3RhY2ssICZsZW5zdGFjaywgb3BlcmF0b3IsIHdl aWdodCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBUX09QRU46Ci0JCQkJbWFrZXBvbChzdGF0ZSwg cHVzaHZhbCwgb3BhcXVlKTsKKwkJCQltYWtlcG9sKHN0YXRlLCBwdXNodmFsLCBvcGFxdWUsIGlz d2ViKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFRfQ0xPU0U6CiAJCQkJY2xlYW5PcFN0YWNrKHN0 YXRlLCBvcHN0YWNrLCAmbGVuc3RhY2ssIE9QX09SIC8qIGxvd2VzdCAqLyApOwpAQCAtNjA1LDcg KzcyMCw4IEBAIFRTUXVlcnkKIHBhcnNlX3RzcXVlcnkoY2hhciAqYnVmLAogCQkJICBQdXNoRnVu Y3Rpb24gcHVzaHZhbCwKIAkJCSAgRGF0dW0gb3BhcXVlLAotCQkJICBib29sIGlzcGxhaW4pCisJ CQkgIGJvb2wgaXNwbGFpbiwKKwkJCSAgYm9vbCBpc3dlYikKIHsKIAlzdHJ1Y3QgVFNRdWVyeVBh cnNlclN0YXRlRGF0YSBzdGF0ZTsKIAlpbnQJCQlpOwpAQCAtNjMyLDcgKzc0OCw3IEBAIHBhcnNl X3RzcXVlcnkoY2hhciAqYnVmLAogCSooc3RhdGUuY3Vyb3ApID0gJ1wwJzsKIAogCS8qIHBhcnNl IHF1ZXJ5ICYgbWFrZSBwb2xpc2ggbm90YXRpb24gKHBvc3RmaXgsIGJ1dCBpbiByZXZlcnNlIG9y ZGVyKSAqLwotCW1ha2Vwb2woJnN0YXRlLCBwdXNodmFsLCBvcGFxdWUpOworCW1ha2Vwb2woJnN0 YXRlLCBwdXNodmFsLCBvcGFxdWUsIGlzd2ViKTsKIAogCWNsb3NlX3RzdmVjdG9yX3BhcnNlcihz dGF0ZS52YWxzdGF0ZSk7CiAKQEAgLTcwMyw3ICs4MTksNyBAQCBwYXJzZV90c3F1ZXJ5KGNoYXIg KmJ1ZiwKIAogc3RhdGljIHZvaWQKIHB1c2h2YWxfYXNpcyhEYXR1bSBvcGFxdWUsIFRTUXVlcnlQ YXJzZXJTdGF0ZSBzdGF0ZSwgY2hhciAqc3RydmFsLCBpbnQgbGVudmFsLAotCQkJIGludDE2IHdl aWdodCwgYm9vbCBwcmVmaXgpCisJCQkgaW50MTYgd2VpZ2h0LCBib29sIHByZWZpeCwgYm9vbCBp c3BocmFzZSkKIHsKIAlwdXNoVmFsdWUoc3RhdGUsIHN0cnZhbCwgbGVudmFsLCB3ZWlnaHQsIHBy ZWZpeCk7CiB9CkBAIC03MTYsNyArODMyLDcgQEAgdHNxdWVyeWluKFBHX0ZVTkNUSU9OX0FSR1Mp CiB7CiAJY2hhcgkgICAqaW4gPSBQR19HRVRBUkdfQ1NUUklORygwKTsKIAotCVBHX1JFVFVSTl9U U1FVRVJZKHBhcnNlX3RzcXVlcnkoaW4sIHB1c2h2YWxfYXNpcywgUG9pbnRlckdldERhdHVtKE5V TEwpLCBmYWxzZSkpOworCVBHX1JFVFVSTl9UU1FVRVJZKHBhcnNlX3RzcXVlcnkoaW4sIHB1c2h2 YWxfYXNpcywgUG9pbnRlckdldERhdHVtKE5VTEwpLCBmYWxzZSwgZmFsc2UpKTsKIH0KIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmgKaW5kZXggYmZjOTAwOThmOC4uMDBmMWE4NWFlNyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmgKQEAgLTQ5NTAsNiArNDk1MCw4IEBAIERBVEEoaW5zZXJ0IE9JRCA9IDM3NDcg KCAgcGxhaW50b190c3F1ZXJ5CVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAgMCBmIGYgZiB0IGYgaSBz CiBERVNDUigidHJhbnNmb3JtIHRvIHRzcXVlcnkiKTsKIERBVEEoaW5zZXJ0IE9JRCA9IDUwMDYg KCAgcGhyYXNldG9fdHNxdWVyeQlQR05TUCBQR1VJRCAxMiAxMDAgMCAwIDAgZiBmIGYgdCBmIGkg cyAyIDAgMzYxNSAiMzczNCAyNSIgX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXyBw aHJhc2V0b190c3F1ZXJ5X2J5aWQgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CiBERVNDUigidHJh bnNmb3JtIHRvIHRzcXVlcnkiKTsKK0RBVEEoaW5zZXJ0IE9JRCA9IDg4ODkgKCAgd2Vic2VhcmNo X3RvX3RzcXVlcnkJUEdOU1AgUEdVSUQgMTIgMTAwIDAgMCAwIGYgZiBmICB0IGYgaSBzIDIgMCAz NjE1ICIzNzM0IDI1IiBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIHdlYnNlYXJj aF90b190c3F1ZXJ5X2J5aWQgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CitERVNDUigidHJhbnNm b3JtIHRvIHRzcXVlcnkiKTsKIERBVEEoaW5zZXJ0IE9JRCA9IDM3NDkgKCAgdG9fdHN2ZWN0b3IJ CVBHTlNQIFBHVUlEIDEyIDEwMCAwIDAgMCBmIGYgZiB0IGYgcyBzIDEgMCAzNjE0ICIyNSIgX251 bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXyB0b190c3ZlY3RvciBfbnVsbF8gX251bGxf IF9udWxsXyApKTsKIERFU0NSKCJ0cmFuc2Zvcm0gdG8gdHN2ZWN0b3IiKTsKIERBVEEoaW5zZXJ0 IE9JRCA9IDM3NTAgKCAgdG9fdHNxdWVyeQkJUEdOU1AgUEdVSUQgMTIgMTAwIDAgMCAwIGYgZiBm IHQgZiBzIHMgMSAwIDM2MTUgIjI1IiBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxf IHRvX3RzcXVlcnkgX251bGxfIF9udWxsXyBfbnVsbF8gKSk7CkBAIC00OTU4LDYgKzQ5NjAsOCBA QCBEQVRBKGluc2VydCBPSUQgPSAzNzUxICggIHBsYWludG9fdHNxdWVyeQlQR05TUCBQR1VJRCAx MiAxMDAgMCAwIDAgZiBmIGYgdCBmIHMgcwogREVTQ1IoInRyYW5zZm9ybSB0byB0c3F1ZXJ5Iik7 CiBEQVRBKGluc2VydCBPSUQgPSA1MDAxICggIHBocmFzZXRvX3RzcXVlcnkJUEdOU1AgUEdVSUQg MTIgMTAwIDAgMCAwIGYgZiBmIHQgZiBzIHMgMSAwIDM2MTUgIjI1IiBfbnVsbF8gX251bGxfIF9u dWxsXyBfbnVsbF8gX251bGxfIHBocmFzZXRvX3RzcXVlcnkgX251bGxfIF9udWxsXyBfbnVsbF8g KSk7CiBERVNDUigidHJhbnNmb3JtIHRvIHRzcXVlcnkiKTsKK0RBVEEoaW5zZXJ0IE9JRCA9IDg4 OTAgKCAgd2Vic2VhcmNoX3RvX3RzcXVlcnkJUEdOU1AgUEdVSUQgMTIgMTAwIDAgMCAwIGYgZiBm IHQgZiBzIHMgMSAwIDM2MTUgIjI1IiBfbnVsbF8gX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxf IHdlYnNlYXJjaF90b190c3F1ZXJ5IF9udWxsXyBfbnVsbF8gX251bGxfICkpOworREVTQ1IoInRy YW5zZm9ybSB0byB0c3F1ZXJ5Iik7CiBEQVRBKGluc2VydCBPSUQgPSA0MjA5ICggIHRvX3RzdmVj dG9yCQlQR05TUCBQR1VJRCAxMiAxMDAgMCAwIDAgZiBmIGYgdCBmIHMgcyAxIDAgMzYxNCAiMzgw MiIgX251bGxfIF9udWxsXyBfbnVsbF8gX251bGxfIF9udWxsXyBqc29uYl90b190c3ZlY3RvciBf bnVsbF8gX251bGxfIF9udWxsXyApKTsKIERFU0NSKCJ0cmFuc2Zvcm0ganNvbmIgdG8gdHN2ZWN0 b3IiKTsKIERBVEEoaW5zZXJ0IE9JRCA9IDQyMTAgKCAgdG9fdHN2ZWN0b3IJCVBHTlNQIFBHVUlE IDEyIDEwMCAwIDAgMCBmIGYgZiB0IGYgcyBzIDEgMCAzNjE0ICIxMTQiIF9udWxsXyBfbnVsbF8g X251bGxfIF9udWxsXyBfbnVsbF8ganNvbl90b190c3ZlY3RvciBfbnVsbF8gX251bGxfIF9udWxs XyApKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3RzZWFyY2gvdHNfdXRpbHMuaCBiL3NyYy9p bmNsdWRlL3RzZWFyY2gvdHNfdXRpbHMuaAppbmRleCBmOGRkY2U1ZWNiLi4wOThjOWI5MDkxIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS90c2VhcmNoL3RzX3V0aWxzLmgKKysrIGIvc3JjL2luY2x1 ZGUvdHNlYXJjaC90c191dGlscy5oCkBAIC00NCwxMSArNDQsMTIgQEAgdHlwZWRlZiB2b2lkICgq UHVzaEZ1bmN0aW9uKSAoRGF0dW0gb3BhcXVlLCBUU1F1ZXJ5UGFyc2VyU3RhdGUgc3RhdGUsCiAJ CQkJCQkJICBjaGFyICp0b2tlbiwgaW50IHRva2VubGVuLAogCQkJCQkJCSAgaW50MTYgdG9rZW53 ZWlnaHRzLAkvKiBiaXRtYXAgYXMgZGVzY3JpYmVkIGluCiAJCQkJCQkJCQkJCQkJICogUXVlcnlP cGVyYW5kIHN0cnVjdCAqLwotCQkJCQkJCSAgYm9vbCBwcmVmaXgpOworCQkJCQkJCSAgYm9vbCBw cmVmaXgsCisJCQkJCQkJICBib29sIGlzcGhyYXNlKTsKIAogZXh0ZXJuIFRTUXVlcnkgcGFyc2Vf dHNxdWVyeShjaGFyICpidWYsCiAJCQkgIFB1c2hGdW5jdGlvbiBwdXNodmFsLAotCQkJICBEYXR1 bSBvcGFxdWUsIGJvb2wgaXNwbGFpbik7CisJCQkgIERhdHVtIG9wYXF1ZSwgYm9vbCBpc3BsYWlu LCBib29sIGlzd2ViKTsKIAogLyogRnVuY3Rpb25zIGZvciB1c2UgYnkgUHVzaEZ1bmN0aW9uIGlt cGxlbWVudGF0aW9ucyAqLwogZXh0ZXJuIHZvaWQgcHVzaFZhbHVlKFRTUXVlcnlQYXJzZXJTdGF0 ZSBzdGF0ZSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHNlYXJjaC5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RzZWFyY2gub3V0CmluZGV4IGQ2M2ZiMTJm MWQuLjA2MTAwNzY4YTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHNl YXJjaC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90c2VhcmNoLm91dApAQCAt MTY3MiwzICsxNjcyLDQwOCBAQCBzZWxlY3QgKiBmcm9tIHBocmFzZV9pbmRleF90ZXN0IHdoZXJl IGZ0cyBAQCBwaHJhc2V0b190c3F1ZXJ5KCdlbmdsaXNoJywgJ2ZhdCBjYQogKDEgcm93KQogCiBz ZXQgZW5hYmxlX3NlcXNjYW4gPSBvbjsKKy0tIHRlc3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkgZnVu Y3Rpb24KK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnKCknKTsKK05PVElDRTogIHRleHQt c2VhcmNoIHF1ZXJ5IGNvbnRhaW5zIG9ubHkgc3RvcCB3b3JkcyBvciBkb2Vzbid0IGNvbnRhaW4g bGV4ZW1lcywgaWdub3JlZAorIHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIAorKDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJygoKSkn KTsKK05PVElDRTogIHRleHQtc2VhcmNoIHF1ZXJ5IGNvbnRhaW5zIG9ubHkgc3RvcCB3b3JkcyBv ciBkb2Vzbid0IGNvbnRhaW4gbGV4ZW1lcywgaWdub3JlZAorIHdlYnNlYXJjaF90b190c3F1ZXJ5 IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNo X3RvX3RzcXVlcnkoJygpKCkoKScpOworTk9USUNFOiAgdGV4dC1zZWFyY2ggcXVlcnkgY29udGFp bnMgb25seSBzdG9wIHdvcmRzIG9yIGRvZXNuJ3QgY29udGFpbiBsZXhlbWVzLCBpZ25vcmVkCisg d2Vic2VhcmNoX3RvX3RzcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cp CisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnYWJjICgpJyk7Cisgd2Vic2VhcmNoX3Rv X3RzcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2FiYycKKygxIHJvdykKKworc2Vs ZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCcoKSBhYmMnKTsKKyB3ZWJzZWFyY2hfdG9fdHNxdWVy eSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAnYWJjJworKDEgcm93KQorCitzZWxlY3Qgd2Vi c2VhcmNoX3RvX3RzcXVlcnkoJ2FiYyAmICgpJyk7Cisgd2Vic2VhcmNoX3RvX3RzcXVlcnkgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2FiYycKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJj aF90b190c3F1ZXJ5KCcoKSAmIGFiYycpOworIHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICdhYmMnCisoMSByb3cpCisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9f dHNxdWVyeSgnKCcpOworTk9USUNFOiAgdGV4dC1zZWFyY2ggcXVlcnkgY29udGFpbnMgb25seSBz dG9wIHdvcmRzIG9yIGRvZXNuJ3QgY29udGFpbiBsZXhlbWVzLCBpZ25vcmVkCisgd2Vic2VhcmNo X3RvX3RzcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK3NlbGVj dCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnKCgnKTsKK05PVElDRTogIHRleHQtc2VhcmNoIHF1ZXJ5 IGNvbnRhaW5zIG9ubHkgc3RvcCB3b3JkcyBvciBkb2Vzbid0IGNvbnRhaW4gbGV4ZW1lcywgaWdu b3JlZAorIHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAor KDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJygoKCAgKSkgYWJjIG9yIGRl ZicpOworIHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdh YmMnIHwgJ2RlZicKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCcpKScp OworTk9USUNFOiAgdGV4dC1zZWFyY2ggcXVlcnkgZG9lc24ndCBjb250YWluIGxleGVtZXM6ICIp KSIKKyB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygx IHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCcpJyk7CitOT1RJQ0U6ICB0ZXh0 LXNlYXJjaCBxdWVyeSBkb2Vzbid0IGNvbnRhaW4gbGV4ZW1lczogIikiCisgd2Vic2VhcmNoX3Rv X3RzcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK3NlbGVjdCB3 ZWJzZWFyY2hfdG9fdHNxdWVyeSgnKSgnKTsKK05PVElDRTogIHRleHQtc2VhcmNoIHF1ZXJ5IGNv bnRhaW5zIG9ubHkgc3RvcCB3b3JkcyBvciBkb2Vzbid0IGNvbnRhaW4gbGV4ZW1lcywgaWdub3Jl ZAorIHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEg cm93KQorCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJyYgKSggfCcpOworTk9USUNFOiAg dGV4dC1zZWFyY2ggcXVlcnkgY29udGFpbnMgb25seSBzdG9wIHdvcmRzIG9yIGRvZXNuJ3QgY29u dGFpbiBsZXhlbWVzLCBpZ25vcmVkCisgd2Vic2VhcmNoX3RvX3RzcXVlcnkgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgn YWJjICkoIGRlZicpOworIHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICdhYmMnICYgJ2RlZicKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1 ZXJ5KCdhYmMgfCApKCAmIGRlZicpOworIHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICdhYmMnIHwgJ2RlZicKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJj aF90b190c3F1ZXJ5KCcmIGFiYycpOworIHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICdhYmMnCisoMSByb3cpCisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNx dWVyeSgnYWJjICYnKTsKKyB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAnYWJjJworKDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ3wg YWJjJyk7Cisgd2Vic2VhcmNoX3RvX3RzcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg J2FiYycKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdhYmMgfCcpOwor IHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdhYmMnCiso MSByb3cpCisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnPCBhYmMnKTsKKyB3ZWJzZWFy Y2hfdG9fdHNxdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAnYWJjJworKDEgcm93KQor CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ2FiYyA8Jyk7Cisgd2Vic2VhcmNoX3RvX3Rz cXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2FiYycKKygxIHJvdykKKworc2VsZWN0 IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdhOjo6YicpOworIHdlYnNlYXJjaF90b190c3F1ZXJ5IAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdiJworKDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNo X3RvX3RzcXVlcnkoJ015IGJyYW5kIG5ldyBzbWFydHBob25lJyk7CisgICAgIHdlYnNlYXJjaF90 b190c3F1ZXJ5ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2JyYW5k JyAmICduZXcnICYgJ3NtYXJ0cGhvbicKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190 c3F1ZXJ5KCdNeSBicmFuZCAibmV3IHNtYXJ0cGhvbmUiJyk7CisgICAgICB3ZWJzZWFyY2hfdG9f dHNxdWVyeSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdicmFu ZCcgJiAnbmV3JyA8LT4gJ3NtYXJ0cGhvbicKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90 b190c3F1ZXJ5KCdNeSBicmFuZCAibmV3IC1zbWFydHBob25lIicpOworICAgICAgd2Vic2VhcmNo X3RvX3RzcXVlcnkgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAn YnJhbmQnICYgJ25ldycgPC0+ICdzbWFydHBob24nCisoMSByb3cpCisKK3NlbGVjdCB3ZWJzZWFy Y2hfdG9fdHNxdWVyeSgnTXkgYnJhbmQ6QiAibmV3IC1zbWFydHBob25lIicpOworICAgICAgIHdl YnNlYXJjaF90b190c3F1ZXJ5ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgJ2JyYW5kJzpCICYgJ25ldycgPC0+ICdzbWFydHBob24nCisoMSByb3cpCisKK3Nl bGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnTXkgYnJhbmQ6WiAibmV3IC1zbWFydHBob25lIicp OworICAgICAgICAgd2Vic2VhcmNoX3RvX3RzcXVlcnkgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAnYnJhbmQnICYgJ3onICYgJ25ldycgPC0+ICdz bWFydHBob24nCisoMSByb3cpCisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnTXkgJiAo YnJhbmQgKCJuZXcgLXNtYXJ0cGhvbmUiJyk7CisgICAgICB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdicmFuZCcgJiAnbmV3 JyA8LT4gJ3NtYXJ0cGhvbicKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5 KCdNeSAmIChicmFuZCAoIm5ldykgLXNtYXJ0cGhvbmUiJyk7CisgICAgICB3ZWJzZWFyY2hfdG9f dHNxdWVyeSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdicmFu ZCcgJiAnbmV3JyA8LT4gJ3NtYXJ0cGhvbicKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90 b190c3F1ZXJ5KCdzaW1wbGUnLCAnY2F0IG9yIHJhdCcpOworIHdlYnNlYXJjaF90b190c3F1ZXJ5 IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdjYXQnIHwgJ3JhdCcKKygxIHJvdykKKworc2Vs ZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCAnY2F0IE9SIHJhdCcpOworIHdlYnNl YXJjaF90b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdjYXQnIHwgJ3JhdCcK KygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCAnY2F0ICJP UiIgcmF0Jyk7Cisgd2Vic2VhcmNoX3RvX3RzcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgJ2NhdCcgJiAnb3InICYgJ3JhdCcKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190 c3F1ZXJ5KCdzaW1wbGUnLCAnY2F0IE9SJyk7Cisgd2Vic2VhcmNoX3RvX3RzcXVlcnkgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgJ2NhdCcgJiAnb3InCisoMSByb3cpCisKK3NlbGVjdCB3ZWJz ZWFyY2hfdG9fdHNxdWVyeSgnc2ltcGxlJywgJ09SIHJhdCcpOworIHdlYnNlYXJjaF90b190c3F1 ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdvcicgJiAncmF0JworKDEgcm93KQorCitz ZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ3NpbXBsZScsICciZmF0IGNhdCBPUiByYXQiJyk7 CisgICAgICAgIHdlYnNlYXJjaF90b190c3F1ZXJ5ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICdmYXQnIDwtPiAnY2F0JyA8LT4gJ29yJyA8LT4gJ3JhdCcK KygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCAnZmF0IChj YXQgT1IgcmF0Jyk7CisgICB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICdmYXQnICYgKCAnY2F0JyB8ICdyYXQnICkKKygxIHJvdykKKworc2Vs ZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCAnZmF0KnJhdCcpOworIHdlYnNlYXJj aF90b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdmYXQnICYgJ3JhdCcKKygx IHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCAnZmF0LXJhdCcp OworICAgd2Vic2VhcmNoX3RvX3RzcXVlcnkgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAnZmF0LXJhdCcgJiAnZmF0JyAmICdyYXQnCisoMSByb3cpCisKK3NlbGVjdCB3ZWJzZWFy Y2hfdG9fdHNxdWVyeSgnc2ltcGxlJywgJ2ZhdF9yYXQnKTsKKyB3ZWJzZWFyY2hfdG9fdHNxdWVy eSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAnZmF0JyAmICdyYXQnCisoMSByb3cpCisKKy0t IE9SIGlzIGFuIG9wZXJhdG9yIGhlcmUgLi4uCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnko J3NpbXBsZScsICdmYXQgb3IocmF0Jyk7Cisgd2Vic2VhcmNoX3RvX3RzcXVlcnkgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgJ2ZhdCcgfCAncmF0JworKDEgcm93KQorCitzZWxlY3Qgd2Vic2Vh cmNoX3RvX3RzcXVlcnkoJ3NpbXBsZScsICdmYXQgb3IpcmF0Jyk7Cisgd2Vic2VhcmNoX3RvX3Rz cXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2ZhdCcgfCAncmF0JworKDEgcm93KQor CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ3NpbXBsZScsICdmYXQgb3ImcmF0Jyk7Cisg d2Vic2VhcmNoX3RvX3RzcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2ZhdCcgfCAn cmF0JworKDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ3NpbXBsZScsICdm YXQgb3J8cmF0Jyk7Cisgd2Vic2VhcmNoX3RvX3RzcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgJ2ZhdCcgfCAncmF0JworKDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVl cnkoJ3NpbXBsZScsICdmYXQgb3IhcmF0Jyk7Cisgd2Vic2VhcmNoX3RvX3RzcXVlcnkgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgJ2ZhdCcgfCAhJ3JhdCcKKygxIHJvdykKKworc2VsZWN0IHdl YnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCAnZmF0IG9yPHJhdCcpOworIHdlYnNlYXJjaF90 b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdmYXQnIHwgJ3JhdCcKKygxIHJv dykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCAnZmF0IG9yPnJhdCcp OworIHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICdmYXQn IHwgJ3JhdCcKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUn LCAnZmF0IG9yICcpOworIHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICdmYXQnCisoMSByb3cpCisKKy0tIC4uLiBidXQgbm90IGhlcmUKK3NlbGVjdCB3ZWJz ZWFyY2hfdG9fdHNxdWVyeSgnc2ltcGxlJywgJ2FiYyBvcmFuZ2UnKTsKKyB3ZWJzZWFyY2hfdG9f dHNxdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAnYWJjJyAmICdvcmFuZ2UnCisoMSBy b3cpCisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnc2ltcGxlJywgJ2FiYyBvctGC0LXR gdGCJyk7Cisgd2Vic2VhcmNoX3RvX3RzcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg J2FiYycgJiAnb3LRgtC10YHRgicKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1 ZXJ5KCdzaW1wbGUnLCAnYWJjIE9SMTIzNCcpOworIHdlYnNlYXJjaF90b190c3F1ZXJ5IAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICdhYmMnICYgJ29yMTIzNCcKKygxIHJvdykKKworc2VsZWN0 IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCAnYWJjIG9yLWFiYycpOworICAgICAgd2Vi c2VhcmNoX3RvX3RzcXVlcnkgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAnYWJjJyAmICdvci1hYmMnICYgJ29yJyAmICdhYmMnCisoMSByb3cpCisKK3NlbGVjdCB3 ZWJzZWFyY2hfdG9fdHNxdWVyeSgnc2ltcGxlJywgJ2FiYyBPUl9hYmMnKTsKKyB3ZWJzZWFyY2hf dG9fdHNxdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAnYWJjJyAmICdvcicgJiAnYWJj JworKDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ3NpbXBsZScsICdhYmMg b3InKTsKKyB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAn YWJjJyAmICdvcicKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1w bGUnLCAnb3IgT1Igb3InKTsKKyB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAnb3InIHwgJ29yJworKDEgcm93KQorCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3Rz cXVlcnkoJ2VuZ2xpc2gnLCAnIkEgZmF0IGNhdCIgaGFzIGp1c3QgZWF0ZW4gYSAtcmF0LicpOwor ICAgICAgICB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAnZmF0JyA8LT4gJ2NhdCcgJiAnZWF0ZW4nICYgISdyYXQnCiso MSByb3cpCisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnZW5nbGlzaCcsICciQSBmYXQg Y2F0IiBoYXMganVzdCBlYXRlbiBPUiAhcmF0LicpOworICAgICAgICB3ZWJzZWFyY2hfdG9fdHNx dWVyeSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAnZmF0 JyA8LT4gJ2NhdCcgJiAnZWF0ZW4nIHwgISdyYXQnCisoMSByb3cpCisKK3NlbGVjdCB3ZWJzZWFy Y2hfdG9fdHNxdWVyeSgnZW5nbGlzaCcsICciQSBmYXQgY2F0IiBoYXMganVzdCAoK2VhdGVuIE9S IC1yYXQpJyk7CisgICAgICAgICAgd2Vic2VhcmNoX3RvX3RzcXVlcnkgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgJ2ZhdCcgPC0+ICdjYXQnICYg KCAnZWF0ZW4nIHwgISdyYXQnICkKKygxIHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1 ZXJ5KCdlbmdsaXNoJywgJ3RoaXMgaXMgLS0tLWZpbmUnKTsKKyB3ZWJzZWFyY2hfdG9fdHNxdWVy eSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAhISEhJ2ZpbmUnCisoMSByb3cpCisKK3NlbGVj dCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnZW5nbGlzaCcsICcoKCkpICkpKSkgdGhpcyB8fHwgaXMg JiYgLSEtZmluZSwgImRlYXIgZnJpZW5kIiBPUiBnb29kJyk7CisgICAgICAgICAgIHdlYnNlYXJj aF90b190c3F1ZXJ5ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICEhISdmaW5lJyAmICdkZWFyJyA8LT4gJ2ZyaWVuZCcgfCAnZ29vZCcKKygx IHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdlbmdsaXNoJywgJ2FuIG9sZCA8 LT4gY2F0ICIgaXMgZmluZSAmJiYgdG9vJyk7CisgICB3ZWJzZWFyY2hfdG9fdHNxdWVyeSAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAnb2xkJyA8LT4gJ2NhdCcgJiAnZmluZScKKygx IHJvdykKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdlbmdsaXNoJywgJyJBIHRoZSIg T1IganVzdCBvbicpOworTk9USUNFOiAgdGV4dC1zZWFyY2ggcXVlcnkgY29udGFpbnMgb25seSBz dG9wIHdvcmRzIG9yIGRvZXNuJ3QgY29udGFpbiBsZXhlbWVzLCBpZ25vcmVkCisgd2Vic2VhcmNo X3RvX3RzcXVlcnkgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK3NlbGVj dCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgncnVzc2lhbicsICci0YLQvtC70YHRgtCw0Y8g0LrQvtGI 0LrQsCIg0YHRitC10LvQsCDQutGA0YvRgdGDJyk7CisgICAgICAgICB3ZWJzZWFyY2hfdG9fdHNx dWVyeSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAn 0YLQvtC70YHRgicgPC0+ICfQutC+0YjQuicgJiAn0YHRitC10LsnICYgJ9C60YDRi9GBJworKDEg cm93KQorCitzZWxlY3QgdG9fdHN2ZWN0b3IoJ3J1c3NpYW4nLCAn0YHRitC10LvQsCDRgtC+0LvR gdGC0LDRjyDQutC+0YjQutCwINC60YDRi9GB0YMnKSBAQAord2Vic2VhcmNoX3RvX3RzcXVlcnko J3J1c3NpYW4nLCAnItGC0L7Qu9GB0YLQsNGPINC60L7RiNC60LAiINGB0YrQtdC70LAg0LrRgNGL 0YHRgycpOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworc2VsZWN0IHRv X3RzdmVjdG9yKCdydXNzaWFuJywgJ9GB0YrQtdC70LAg0YLQvtC70YHRgtCw0Y8g0YHQtdGA0LDR jyDQutC+0YjQutCwINC60YDRi9GB0YMnKSBAQAord2Vic2VhcmNoX3RvX3RzcXVlcnkoJ3J1c3Np YW4nLCAnItGC0L7Qu9GB0YLQsNGPINC60L7RiNC60LAiINGB0YrQtdC70LAg0LrRgNGL0YHRgycp OworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvdHNlYXJjaC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90c2Vh cmNoLnNxbAppbmRleCAxYzg1MjBiM2U5Li4xYmY5ZjgwYTljIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC90c2VhcmNoLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90c2Vh cmNoLnNxbApAQCAtNTM5LDMgKzUzOSw4OCBAQCBjcmVhdGUgaW5kZXggcGhyYXNlX2luZGV4X3Rl c3RfaWR4IG9uIHBocmFzZV9pbmRleF90ZXN0IHVzaW5nIGdpbihmdHMpOwogc2V0IGVuYWJsZV9z ZXFzY2FuID0gb2ZmOwogc2VsZWN0ICogZnJvbSBwaHJhc2VfaW5kZXhfdGVzdCB3aGVyZSBmdHMg QEAgcGhyYXNldG9fdHNxdWVyeSgnZW5nbGlzaCcsICdmYXQgY2F0Jyk7CiBzZXQgZW5hYmxlX3Nl cXNjYW4gPSBvbjsKKworLS0gdGVzdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSBmdW5jdGlvbgorc2Vs ZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCcoKScpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1 ZXJ5KCcoKCkpJyk7CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJygpKCkoKScpOworc2Vs ZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdhYmMgKCknKTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9f dHNxdWVyeSgnKCkgYWJjJyk7CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ2FiYyAmICgp Jyk7CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJygpICYgYWJjJyk7CisKK3NlbGVjdCB3 ZWJzZWFyY2hfdG9fdHNxdWVyeSgnKCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCco KCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCcoKCggICkpIGFiYyBvciBkZWYnKTsK K3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnKSknKTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9f dHNxdWVyeSgnKScpOworCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJykoJyk7CitzZWxl Y3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJyYgKSggfCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190 c3F1ZXJ5KCdhYmMgKSggZGVmJyk7CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ2FiYyB8 ICkoICYgZGVmJyk7CisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnJiBhYmMnKTsKK3Nl bGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnYWJjICYnKTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9f dHNxdWVyeSgnfCBhYmMnKTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnYWJjIHwnKTsK K3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnPCBhYmMnKTsKK3NlbGVjdCB3ZWJzZWFyY2hf dG9fdHNxdWVyeSgnYWJjIDwnKTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnYTo6OmIn KTsKKworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdNeSBicmFuZCBuZXcgc21hcnRwaG9u ZScpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdNeSBicmFuZCAibmV3IHNtYXJ0cGhv bmUiJyk7CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ015IGJyYW5kICJuZXcgLXNtYXJ0 cGhvbmUiJyk7CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ015IGJyYW5kOkIgIm5ldyAt c21hcnRwaG9uZSInKTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnTXkgYnJhbmQ6WiAi bmV3IC1zbWFydHBob25lIicpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdNeSAmIChi cmFuZCAoIm5ldyAtc21hcnRwaG9uZSInKTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgn TXkgJiAoYnJhbmQgKCJuZXcpIC1zbWFydHBob25lIicpOworCitzZWxlY3Qgd2Vic2VhcmNoX3Rv X3RzcXVlcnkoJ3NpbXBsZScsICdjYXQgb3IgcmF0Jyk7CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3Rz cXVlcnkoJ3NpbXBsZScsICdjYXQgT1IgcmF0Jyk7CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVl cnkoJ3NpbXBsZScsICdjYXQgIk9SIiByYXQnKTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVy eSgnc2ltcGxlJywgJ2NhdCBPUicpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1w bGUnLCAnT1IgcmF0Jyk7CisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnc2ltcGxlJywg JyJmYXQgY2F0IE9SIHJhdCInKTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnc2ltcGxl JywgJ2ZhdCAoY2F0IE9SIHJhdCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1w bGUnLCAnZmF0KnJhdCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCAn ZmF0LXJhdCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCAnZmF0X3Jh dCcpOworCistLSBPUiBpcyBhbiBvcGVyYXRvciBoZXJlIC4uLgorc2VsZWN0IHdlYnNlYXJjaF90 b190c3F1ZXJ5KCdzaW1wbGUnLCAnZmF0IG9yKHJhdCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190 c3F1ZXJ5KCdzaW1wbGUnLCAnZmF0IG9yKXJhdCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1 ZXJ5KCdzaW1wbGUnLCAnZmF0IG9yJnJhdCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5 KCdzaW1wbGUnLCAnZmF0IG9yfHJhdCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdz aW1wbGUnLCAnZmF0IG9yIXJhdCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1w bGUnLCAnZmF0IG9yPHJhdCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUn LCAnZmF0IG9yPnJhdCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1wbGUnLCAn ZmF0IG9yICcpOworCistLSAuLi4gYnV0IG5vdCBoZXJlCitzZWxlY3Qgd2Vic2VhcmNoX3RvX3Rz cXVlcnkoJ3NpbXBsZScsICdhYmMgb3JhbmdlJyk7CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3RzcXVl cnkoJ3NpbXBsZScsICdhYmMgb3LRgtC10YHRgicpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1 ZXJ5KCdzaW1wbGUnLCAnYWJjIE9SMTIzNCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5 KCdzaW1wbGUnLCAnYWJjIG9yLWFiYycpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdz aW1wbGUnLCAnYWJjIE9SX2FiYycpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdzaW1w bGUnLCAnYWJjIG9yJyk7CisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnc2ltcGxlJywg J29yIE9SIG9yJyk7CisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnZW5nbGlzaCcsICci QSBmYXQgY2F0IiBoYXMganVzdCBlYXRlbiBhIC1yYXQuJyk7CitzZWxlY3Qgd2Vic2VhcmNoX3Rv X3RzcXVlcnkoJ2VuZ2xpc2gnLCAnIkEgZmF0IGNhdCIgaGFzIGp1c3QgZWF0ZW4gT1IgIXJhdC4n KTsKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVyeSgnZW5nbGlzaCcsICciQSBmYXQgY2F0IiBo YXMganVzdCAoK2VhdGVuIE9SIC1yYXQpJyk7CisKK3NlbGVjdCB3ZWJzZWFyY2hfdG9fdHNxdWVy eSgnZW5nbGlzaCcsICd0aGlzIGlzIC0tLS1maW5lJyk7CitzZWxlY3Qgd2Vic2VhcmNoX3RvX3Rz cXVlcnkoJ2VuZ2xpc2gnLCAnKCgpKSApKSkpIHRoaXMgfHx8IGlzICYmIC0hLWZpbmUsICJkZWFy IGZyaWVuZCIgT1IgZ29vZCcpOworc2VsZWN0IHdlYnNlYXJjaF90b190c3F1ZXJ5KCdlbmdsaXNo JywgJ2FuIG9sZCA8LT4gY2F0ICIgaXMgZmluZSAmJiYgdG9vJyk7CisKK3NlbGVjdCB3ZWJzZWFy Y2hfdG9fdHNxdWVyeSgnZW5nbGlzaCcsICciQSB0aGUiIE9SIGp1c3Qgb24nKTsKK3NlbGVjdCB3 ZWJzZWFyY2hfdG9fdHNxdWVyeSgncnVzc2lhbicsICci0YLQvtC70YHRgtCw0Y8g0LrQvtGI0LrQ sCIg0YHRitC10LvQsCDQutGA0YvRgdGDJyk7CisKK3NlbGVjdCB0b190c3ZlY3RvcigncnVzc2lh bicsICfRgdGK0LXQu9CwINGC0L7Qu9GB0YLQsNGPINC60L7RiNC60LAg0LrRgNGL0YHRgycpIEBA Cit3ZWJzZWFyY2hfdG9fdHNxdWVyeSgncnVzc2lhbicsICci0YLQvtC70YHRgtCw0Y8g0LrQvtGI 0LrQsCIg0YHRitC10LvQsCDQutGA0YvRgdGDJyk7CisKK3NlbGVjdCB0b190c3ZlY3RvcigncnVz c2lhbicsICfRgdGK0LXQu9CwINGC0L7Qu9GB0YLQsNGPINGB0LXRgNCw0Y8g0LrQvtGI0LrQsCDQ utGA0YvRgdGDJykgQEAKK3dlYnNlYXJjaF90b190c3F1ZXJ5KCdydXNzaWFuJywgJyLRgtC+0LvR gdGC0LDRjyDQutC+0YjQutCwIiDRgdGK0LXQu9CwINC60YDRi9GB0YMnKTsK --=_010e1769837132c3565c0d3c9836e912--