Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pHjXH-0002uD-1j for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Jan 2023 10:49:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pHjXF-0000LG-Pp for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Jan 2023 10:49:45 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pHjXF-0000L1-DM for pgsql-hackers@lists.postgresql.org; Tue, 17 Jan 2023 10:49:45 +0000 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pHjX8-0002sj-9H for pgsql-hackers@lists.postgresql.org; Tue, 17 Jan 2023 10:49:45 +0000 Received: by mail-wr1-x435.google.com with SMTP id r9so7341507wrw.4 for ; Tue, 17 Jan 2023 02:49:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:from:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=Eup6xlLlXEinvXI7zAAZdy2q+2qflK4aTmUJQ+YrEw8=; b=gYKTUjEXAKPenDlcDj7GYCoBJP7acRU3+UOn2OFMgPfp5sDMd8vgsrsyiPje7zTiyk E8i0zpQ+zY8DlKw4v2eUPTYf8gNmPtVTQ4V+tXRfvmizriikHxmaVIl/K2lI+6jiRlwx atHLjB5HduuI003OOyeIFZH8DijdRZiaatszHFUbin1lCYnBh62CKo2l3FL2gnnhlp0k lbOAN8VIrHc3xO6rykMOnMDg3HlrOJvSK1OycRVZR8NHrEqzjcmINsPfltcgCa3ncl5m 4nEGsXjzVmMnaa1Lb1uT148hKqktBJyWHXDxvE8diWARU/VimJcQSBSfMe/TuN8YRfBn KGRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:from:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Eup6xlLlXEinvXI7zAAZdy2q+2qflK4aTmUJQ+YrEw8=; b=TTE74kK47yBesgkRXquVFGUeK8MMtLiGZYwSK5MhHducL35usvveYOQ+oM3mv/XjnF mhB2Oy+JHv4Eq31RMVVy2ysTAnpQ34YdBxw7LrbVbzwTsWoKSWlU9WQMD+kQLTPpAJOp Z38EUj0ZQItvE5Hvd3QPLkYFRXlUwmL4DcuLevyl454/9MZtO3IOo9iKmkEF4QBfgZc0 oFsaKOGU1RMKUqVHbuppRt2cCh4ds73eyJYNHawmUU74+jCXOTG1THNp2+9MvsDTqJ7r yhFZ2+zKURtTIaMthH1t/DOIH//mW7AxqFX9z1oLBuezx632Qv1PqwMEWp81mBRFLpko 3r8Q== X-Gm-Message-State: AFqh2kp65mk/LSDU/aIcMnefSlYYaPEf6Jz6VpRnxhQmzsT5HkmCSJ8m v7m2oQC8a924EAfZ5OZDEfxuNRDKgsN5qQ== X-Google-Smtp-Source: AMrXdXtRHnBMxu25HEwGW3/tBU8ooQ/SzOI8Mxb1OBASelAvAQzGC2NiiEqk9cszl+A3uAheWmM+Dg== X-Received: by 2002:adf:de10:0:b0:2bc:8555:5d19 with SMTP id b16-20020adfde10000000b002bc85555d19mr2590961wrm.12.1673952576297; Tue, 17 Jan 2023 02:49:36 -0800 (PST) Received: from [192.168.6.236] ([54.239.6.186]) by smtp.gmail.com with ESMTPSA id o15-20020a5d62cf000000b002bbedd60a9asm22825936wrv.77.2023.01.17.02.49.35 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 17 Jan 2023 02:49:35 -0800 (PST) Content-Type: multipart/mixed; boundary="------------5kEPY43FaZhefhvH95QAzpVQ" Message-ID: <846724b5-0723-f4c2-8b13-75301ec7509e@gmail.com> Date: Tue, 17 Jan 2023 11:48:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Content-Language: en-US From: "Drouvot, Bertrand" Subject: Helper functions for wait_for_catchup() in Cluster.pm To: PostgreSQL Hackers List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------5kEPY43FaZhefhvH95QAzpVQ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi hackers, please find attached a patch proposal to define $SUBJECT. The idea has been raised in [1], where we are adding more calls to wait_for_catchup() in 'replay' mode. The current code already has 25 of those, so the proposed patch is defining a new wait_for_replay_catchup() function. While at it, adding also: - wait_for_write_catchup(): called 5 times - wait_for_sent_catchup() and wait_for_flush_catchup() for consistency purpose (while there is currently no occurrences of wait_for_catchup() in 'sent' or 'flush' mode.). Looking forward to your feedback, Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com [1]: https://www.postgresql.org/message-id/20230106034036.2m4qnn7ep7b5ipet%40awork3.anarazel.de --------------5kEPY43FaZhefhvH95QAzpVQ Content-Type: text/plain; charset=UTF-8; name="v1-0001-wait_for_catchup_helper_functions.patch" Content-Disposition: attachment; filename="v1-0001-wait_for_catchup_helper_functions.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfcmV3aW5kL3QvMDA3X3N0YW5kYnlfc291cmNlLnBs IGIvc3JjL2Jpbi9wZ19yZXdpbmQvdC8wMDdfc3RhbmRieV9zb3VyY2UucGwKaW5kZXggNTI2 NDRjMmMwZC4uMGE3ZTJkNDUyMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19yZXdpbmQvdC8w MDdfc3RhbmRieV9zb3VyY2UucGwKKysrIGIvc3JjL2Jpbi9wZ19yZXdpbmQvdC8wMDdfc3Rh bmRieV9zb3VyY2UucGwKQEAgLTc1LDggKzc1LDggQEAgJG5vZGVfYS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCiAkbm9kZV9hLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NIRUNLUE9JTlQn KTsKIAogbXkgJGxzbiA9ICRub2RlX2EtPmxzbignd3JpdGUnKTsKLSRub2RlX2EtPndhaXRf Zm9yX2NhdGNodXAoJ25vZGVfYicsICd3cml0ZScsICRsc24pOwotJG5vZGVfYi0+d2FpdF9m b3JfY2F0Y2h1cCgnbm9kZV9jJywgJ3dyaXRlJywgJGxzbik7Ciskbm9kZV9hLT53YWl0X2Zv cl93cml0ZV9jYXRjaHVwKCdub2RlX2InLCAkbHNuKTsKKyRub2RlX2ItPndhaXRfZm9yX3dy aXRlX2NhdGNodXAoJ25vZGVfYycsICRsc24pOwogCiAjIFByb21vdGUgQwogIwpAQCAtMTYw LDcgKzE2MCw3IEBAIGluIEEsIGFmdGVyIEMgd2FzIHByb21vdGVkCiAkbm9kZV9hLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKIAkiSU5TRVJUIElOVE8gdGJsMSB2YWx1ZXMgKCdpbiBBLCBh ZnRlciByZXdpbmQnKSIpOwogCi0kbm9kZV9iLT53YWl0X2Zvcl9jYXRjaHVwKCdub2RlX2Mn LCAncmVwbGF5JywgJG5vZGVfYS0+bHNuKCd3cml0ZScpKTsKKyRub2RlX2ItPndhaXRfZm9y X3JlcGxheV9jYXRjaHVwKCdub2RlX2MnLCAkbm9kZV9hLT5sc24oJ3dyaXRlJykpOwogCiBj aGVja19xdWVyeSgKIAknU0VMRUNUICogRlJPTSB0YmwxJywKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L21vZHVsZXMvYnJpbi90LzAyX3dhbF9jb25zaXN0ZW5jeS5wbCBiL3NyYy90ZXN0L21v ZHVsZXMvYnJpbi90LzAyX3dhbF9jb25zaXN0ZW5jeS5wbAppbmRleCA1OTgzZWYyMDhlLi44 ZDFkYzY4MTk0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2JyaW4vdC8wMl93YWxf Y29uc2lzdGVuY3kucGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9icmluL3QvMDJfd2FsX2Nv bnNpc3RlbmN5LnBsCkBAIC03MCw2ICs3MCw2IEBAIG15ICgkcmV0LCAkb3V0LCAkZXJyKSA9 ICR3aGlza2V5LT5wc3FsKAogCX0pOwogY21wX29rKCRvdXQsICc+PScsIDEpOwogCi0kd2hp c2tleS0+d2FpdF9mb3JfY2F0Y2h1cCgkY2hhcmxpZSwgJ3JlcGxheScsICR3aGlza2V5LT5s c24oJ2luc2VydCcpKTsKKyR3aGlza2V5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkY2hh cmxpZSwgJHdoaXNrZXktPmxzbignaW5zZXJ0JykpOwogCiBkb25lX3Rlc3RpbmcoKTsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0gYi9z cmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtCmluZGV4IDA0OTIxY2Ez YTMuLjNlM2FlZWEwYzYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9U ZXN0L0NsdXN0ZXIucG0KKysrIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvQ2x1 c3Rlci5wbQpAQCAtMjcxMSw2ICsyNzExLDcwIEBAIHN1YiB3YWl0X2Zvcl9jYXRjaHVwCiAK ID1wb2QKIAorPWl0ZW0gJG5vZGUtPndhaXRfZm9yX2ZsdXNoX2NhdGNodXAoc3RhbmRieV9u YW1lLCB0YXJnZXRfbHNuKQorCitIZWxwZXIgZnVuY3Rpb24gZm9yIHdhaXRfZm9yX2NhdGNo dXAgd2hlbiB3YWl0aW5nIGZvciB0aGUgZmx1c2hfbHNuIGNvbHVtbgordG8gY2F0Y2h1cC4K KworPWN1dAorCitzdWIgd2FpdF9mb3JfZmx1c2hfY2F0Y2h1cAoreworCW15ICgkc2VsZiwg JHN0YW5kYnlfbmFtZSwgJHRhcmdldF9sc24pID0gQF87CisKKwkkc2VsZi0+d2FpdF9mb3Jf Y2F0Y2h1cCgkc3RhbmRieV9uYW1lLCAnZmx1c2gnLCAkdGFyZ2V0X2xzbik7Cit9CisKKz1w b2QKKworPWl0ZW0gJG5vZGUtPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKHN0YW5kYnlfbmFt ZSwgdGFyZ2V0X2xzbikKKworSGVscGVyIGZ1bmN0aW9uIGZvciB3YWl0X2Zvcl9jYXRjaHVw IHdoZW4gd2FpdGluZyBmb3IgdGhlIHJlcGxheV9sc24gY29sdW1uCit0byBjYXRjaHVwLgor Cis9Y3V0CisKK3N1YiB3YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cAoreworCW15ICgkc2VsZiwg JHN0YW5kYnlfbmFtZSwgJHRhcmdldF9sc24pID0gQF87CisKKwkkc2VsZi0+d2FpdF9mb3Jf Y2F0Y2h1cCgkc3RhbmRieV9uYW1lLCAncmVwbGF5JywgJHRhcmdldF9sc24pOworfQorCis9 cG9kCisKKz1pdGVtICRub2RlLT53YWl0X2Zvcl9zZW50X2NhdGNodXAoc3RhbmRieV9uYW1l LCB0YXJnZXRfbHNuKQorCitIZWxwZXIgZnVuY3Rpb24gZm9yIHdhaXRfZm9yX2NhdGNodXAg d2hlbiB3YWl0aW5nIGZvciB0aGUgc2VudF9sc24gY29sdW1uCit0byBjYXRjaHVwLgorCis9 Y3V0CisKK3N1YiB3YWl0X2Zvcl9zZW50X2NhdGNodXAKK3sKKwlteSAoJHNlbGYsICRzdGFu ZGJ5X25hbWUsICR0YXJnZXRfbHNuKSA9IEBfOworCisJJHNlbGYtPndhaXRfZm9yX2NhdGNo dXAoJHN0YW5kYnlfbmFtZSwgJ3NlbnQnLCAkdGFyZ2V0X2xzbik7Cit9CisKKz1wb2QKKwor PWl0ZW0gJG5vZGUtPndhaXRfZm9yX3dyaXRlX2NhdGNodXAoc3RhbmRieV9uYW1lLCB0YXJn ZXRfbHNuKQorCitIZWxwZXIgZnVuY3Rpb24gZm9yIHdhaXRfZm9yX2NhdGNodXAgd2hlbiB3 YWl0aW5nIGZvciB0aGUgd3JpdGVfbHNuIGNvbHVtbgordG8gY2F0Y2h1cC4KKworPWN1dAor CitzdWIgd2FpdF9mb3Jfd3JpdGVfY2F0Y2h1cAoreworCW15ICgkc2VsZiwgJHN0YW5kYnlf bmFtZSwgJHRhcmdldF9sc24pID0gQF87CisKKwkkc2VsZi0+d2FpdF9mb3JfY2F0Y2h1cCgk c3RhbmRieV9uYW1lLCAnd3JpdGUnLCAkdGFyZ2V0X2xzbik7Cit9CisKKz1wb2QKKwogPWl0 ZW0gJG5vZGUtPndhaXRfZm9yX3Nsb3RfY2F0Y2h1cChzbG90X25hbWUsIG1vZGUsIHRhcmdl dF9sc24pCiAKIFdhaXQgZm9yIHRoZSBuYW1lZCByZXBsaWNhdGlvbiBzbG90IHRvIGVxdWFs IG9yIHBhc3MgdGhlIHN1cHBsaWVkIHRhcmdldF9sc24uCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWNvdmVyeS90LzAwMV9zdHJlYW1fcmVwLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8w MDFfc3RyZWFtX3JlcC5wbAppbmRleCAyM2E5MGRkODViLi5jOTBmOWM4MzgzIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAwMV9zdHJlYW1fcmVwLnBsCisrKyBiL3NyYy90 ZXN0L3JlY292ZXJ5L3QvMDAxX3N0cmVhbV9yZXAucGwKQEAgLTQ4LDggKzQ4LDggQEAgJG5v ZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAKICMgV2FpdCBmb3Igc3RhbmRi eXMgdG8gY2F0Y2ggdXAKIG15ICRwcmltYXJ5X2xzbiA9ICRub2RlX3ByaW1hcnktPmxzbign d3JpdGUnKTsKLSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRi eV8xLCAncmVwbGF5JywgJHByaW1hcnlfbHNuKTsKLSRub2RlX3N0YW5kYnlfMS0+d2FpdF9m b3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5XzIsICdyZXBsYXknLCAkcHJpbWFyeV9sc24pOwor JG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJG5vZGVfc3RhbmRieV8x LCAkcHJpbWFyeV9sc24pOworJG5vZGVfc3RhbmRieV8xLT53YWl0X2Zvcl9yZXBsYXlfY2F0 Y2h1cCgkbm9kZV9zdGFuZGJ5XzIsICRwcmltYXJ5X2xzbik7CiAKIG15ICRyZXN1bHQgPQog ICAkbm9kZV9zdGFuZGJ5XzEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50 KCopIEZST00gdGFiX2ludCIpOwpAQCAtNjcsOCArNjcsOCBAQCAkbm9kZV9wcmltYXJ5LT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKIAogIyBXYWl0IGZvciBzdGFuZGJ5cyB0byBjYXRjaCB1 cAogJHByaW1hcnlfbHNuID0gJG5vZGVfcHJpbWFyeS0+bHNuKCd3cml0ZScpOwotJG5vZGVf cHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5XzEsICdyZXBsYXknLCAk cHJpbWFyeV9sc24pOwotJG5vZGVfc3RhbmRieV8xLT53YWl0X2Zvcl9jYXRjaHVwKCRub2Rl X3N0YW5kYnlfMiwgJ3JlcGxheScsICRwcmltYXJ5X2xzbik7Ciskbm9kZV9wcmltYXJ5LT53 YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5XzEsICRwcmltYXJ5X2xzbik7 Ciskbm9kZV9zdGFuZGJ5XzEtPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5k YnlfMiwgJHByaW1hcnlfbHNuKTsKIAogJHJlc3VsdCA9ICRub2RlX3N0YW5kYnlfMS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNlcTEiKTsKIHByaW50ICJzdGFu ZGJ5IDE6ICRyZXN1bHRcbiI7CkBAIC0zNzMsOSArMzczLDggQEAgc3ViIHJlcGxheV9jaGVj awogCQknSU5TRVJUIElOVE8gcmVwbGF5ZWQodmFsKSBTRUxFQ1QgY29hbGVzY2UobWF4KHZh bCksMCkgKyAxIEFTIG5ld3ZhbCBGUk9NIHJlcGxheWVkIFJFVFVSTklORyB2YWwnCiAJKTsK IAlteSAkcHJpbWFyeV9sc24gPSAkbm9kZV9wcmltYXJ5LT5sc24oJ3dyaXRlJyk7Ci0JJG5v ZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5XzEsICdyZXBsYXkn LCAkcHJpbWFyeV9sc24pOwotCSRub2RlX3N0YW5kYnlfMS0+d2FpdF9mb3JfY2F0Y2h1cCgk bm9kZV9zdGFuZGJ5XzIsICdyZXBsYXknLAotCQkkcHJpbWFyeV9sc24pOworCSRub2RlX3By aW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnlfMSwgJHByaW1h cnlfbHNuKTsKKwkkbm9kZV9zdGFuZGJ5XzEtPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRu b2RlX3N0YW5kYnlfMiwgJHByaW1hcnlfbHNuKTsKIAogCSRub2RlX3N0YW5kYnlfMS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCiAJCXFxW1NFTEVDVCAxIEZST00gcmVwbGF5ZWQgV0hFUkUg dmFsID0gJG5ld3ZhbF0pCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAxMF9s b2dpY2FsX2RlY29kaW5nX3RpbWVsaW5lcy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDEw X2xvZ2ljYWxfZGVjb2RpbmdfdGltZWxpbmVzLnBsCmluZGV4IGViMWEzYjZlZjguLjJjZDhi MWEyNDYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDEwX2xvZ2ljYWxfZGVj b2RpbmdfdGltZWxpbmVzLnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDEwX2xvZ2lj YWxfZGVjb2RpbmdfdGltZWxpbmVzLnBsCkBAIC0xMzUsNyArMTM1LDcgQEAgY21wX29rKAog CSd4bWluIG9uIHBoeXNpY2FsIHNsb3QgbXVzdCBub3QgYmUgbG93ZXIgdGhhbiBjYXRhbG9n X3htaW4nKTsKIAogJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdDSEVD S1BPSU5UJyk7Ci0kbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3JlcGxp Y2EsICd3cml0ZScpOworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3Jfd3JpdGVfY2F0Y2h1cCgk bm9kZV9yZXBsaWNhKTsKIAogIyBCb29tLCBjcmFzaAogJG5vZGVfcHJpbWFyeS0+c3RvcCgn aW1tZWRpYXRlJyk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAyN19zdHJl YW1fcmVncmVzcy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDI3X3N0cmVhbV9yZWdyZXNz LnBsCmluZGV4IDY5ZDZkZGYyODEuLjNlNzVjYjU5M2EgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDI3X3N0cmVhbV9yZWdyZXNzLnBsCisrKyBiL3NyYy90ZXN0L3JlY292 ZXJ5L3QvMDI3X3N0cmVhbV9yZWdyZXNzLnBsCkBAIC04Niw4ICs4Niw3IEBAICRub2RlX3By aW1hcnktPnBzcWwoJ3JlZ3Jlc3Npb24nLAogCSJzZWxlY3Qgc2V0dmFsKHNlcXJlbGlkLCBu ZXh0dmFsKHNlcXJlbGlkKSkgZnJvbSBwZ19zZXF1ZW5jZSIpOwogCiAjIFdhaXQgZm9yIHN0 YW5kYnkgdG8gY2F0Y2ggdXAKLSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5v ZGVfc3RhbmRieV8xLCAncmVwbGF5JywKLQkkbm9kZV9wcmltYXJ5LT5sc24oJ2luc2VydCcp KTsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5k YnlfMSwgJG5vZGVfcHJpbWFyeS0+bHNuKCdpbnNlcnQnKSk7CiAKICMgUGVyZm9ybSBhIGxv Z2ljYWwgZHVtcCBvZiBwcmltYXJ5IGFuZCBzdGFuZGJ5LCBhbmQgY2hlY2sgdGhhdCB0aGV5 IG1hdGNoCiBjb21tYW5kX29rKApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8w MzBfc3RhdHNfY2xlYW51cF9yZXBsaWNhLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzBf c3RhdHNfY2xlYW51cF9yZXBsaWNhLnBsCmluZGV4IGYxMTIxZTRiMTIuLjc2YWJiYWU4MDcg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDMwX3N0YXRzX2NsZWFudXBfcmVw bGljYS5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzMF9zdGF0c19jbGVhbnVwX3Jl cGxpY2EucGwKQEAgLTM5LDcgKzM5LDcgQEAgZHJvcF9mdW5jdGlvbl9ieV9vaWQoJ3Bvc3Rn cmVzJywgJGZ1bmNvaWQpOwogCiAkc2VjdCA9ICdwb3N0IGRyb3AnOwogbXkgJHByaW1hcnlf bHNuID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVfcHJpbWFyeS0+d2Fp dF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHByaW1hcnlfbHNuKTsK KyRub2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnks ICRwcmltYXJ5X2xzbik7CiB0ZXN0X3N0YW5kYnlfZnVuY190YWJfc3RhdHNfc3RhdHVzKCdw b3N0Z3JlcycsCiAJJGRib2lkLCAkdGFibGVvaWQsICRmdW5jb2lkLCAnZicpOwogCkBAIC01 MCw3ICs1MCw3IEBAICRzZWN0ID0gInNjaGVtYSBjcmVhdGlvbiI7CiAKICRub2RlX3ByaW1h cnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFNDSEVNQSBkcm9wX3NjaGVtYV90 ZXN0MSIpOwogJHByaW1hcnlfbHNuID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpOwot JG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5 JywgJHByaW1hcnlfbHNuKTsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRj aHVwKCRub2RlX3N0YW5kYnksICRwcmltYXJ5X2xzbik7CiAKICgkZGJvaWQsICR0YWJsZW9p ZCwgJGZ1bmNvaWQpID0KICAgcG9wdWxhdGVfc3RhbmRieV9zdGF0cygncG9zdGdyZXMnLCAn ZHJvcF9zY2hlbWFfdGVzdDEnKTsKQEAgLTYyLDcgKzYyLDcgQEAgJG5vZGVfcHJpbWFyeS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNDSEVNQSBkcm9wX3NjaGVtYV90ZXN0MSBD QVNDQURFIik7CiAkc2VjdCA9ICJwb3N0IHNjaGVtYSBkcm9wIjsKIAogJHByaW1hcnlfbHNu ID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVfcHJpbWFyeS0+d2FpdF9m b3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHByaW1hcnlfbHNuKTsKKyRu b2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnksICRw cmltYXJ5X2xzbik7CiAKICMgdmVyaWZ5IHRhYmxlIGFuZCBmdW5jdGlvbiBzdGF0cyByZW1v dmVkIGZyb20gc3RhbmRieQogdGVzdF9zdGFuZGJ5X2Z1bmNfdGFiX3N0YXRzX3N0YXR1cygn cG9zdGdyZXMnLApAQCAtNzUsNyArNzUsNyBAQCAkc2VjdCA9ICJjcmVhdGVkYiI7CiAKICRu b2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIERBVEFCQVNFIHRl c3QiKTsKICRwcmltYXJ5X2xzbiA9ICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKTsKLSRu b2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScs ICRwcmltYXJ5X2xzbik7Ciskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1 cCgkbm9kZV9zdGFuZGJ5LCAkcHJpbWFyeV9sc24pOwogCiAoJGRib2lkLCAkdGFibGVvaWQs ICRmdW5jb2lkKSA9IHBvcHVsYXRlX3N0YW5kYnlfc3RhdHMoJ3Rlc3QnLCAncHVibGljJyk7 CiAKQEAgLTg2LDcgKzg2LDcgQEAgdGVzdF9zdGFuZGJ5X2RiX3N0YXRzX3N0YXR1cygndGVz dCcsICRkYm9pZCwgJ3QnKTsKICRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiRFJPUCBEQVRBQkFTRSB0ZXN0Iik7CiAkc2VjdCAgICAgICAgPSAicG9zdCBkcm9wZGIi OwogJHByaW1hcnlfbHNuID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVf cHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHBy aW1hcnlfbHNuKTsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRu b2RlX3N0YW5kYnksICRwcmltYXJ5X2xzbik7CiAKICMgVGVzdCB0aGF0IHRoZSBzdGF0cyB3 ZXJlIGNsZWFuZWQgdXAgb24gc3RhbmRieQogIyBOb3RlIHRoYXQgdGhpcyBjb25uZWN0cyB0 byAncG9zdGdyZXMnIGJ1dCBwcm92aWRlcyB0aGUgZGJvaWQgb2YgZHJvcHBlZCBkYgpAQCAt MTM4LDcgKzEzOCw3IEBAIHN1YiBwb3B1bGF0ZV9zdGFuZGJ5X3N0YXRzCiAJCSJDUkVBVEUg RlVOQ1RJT04gJHNjaGVtYS5kcm9wX2Z1bmNfdGVzdDEoKSBSRVRVUk5TIFZPSUQgQVMgJ3Nl bGVjdCAyOycgTEFOR1VBR0UgU1FMIElNTVVUQUJMRSIKIAkpOwogCW15ICRwcmltYXJ5X2xz biA9ICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKTsKLQkkbm9kZV9wcmltYXJ5LT53YWl0 X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkcHJpbWFyeV9sc24pOwor CSRub2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnks ICRwcmltYXJ5X2xzbik7CiAKIAkjIGNvbGxlY3Qgb2JqZWN0IG9pZHMKIAlteSAkZGJvaWQg PSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJGNvbm5lY3RfZGIsCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWNvdmVyeS90LzAzMV9yZWNvdmVyeV9jb25mbGljdC5wbCBiL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDMxX3JlY292ZXJ5X2NvbmZsaWN0LnBsCmluZGV4IDg3NWFmYjhlM2Mu LjkwMGU4NjJkNGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDMxX3JlY292 ZXJ5X2NvbmZsaWN0LnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDMxX3JlY292ZXJ5 X2NvbmZsaWN0LnBsCkBAIC02NCw3ICs2NCw3IEBAIElOU0VSVCBJTlRPICR0YWJsZTEgU0VM RUNUIGkgJSAzLCAwIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMjApIGk7CiBDUkVBVEUgVEFC TEUgJHt0YWJsZTJ9KGEgaW50LCBiIGludCk7CiBdKTsKIG15ICRwcmltYXJ5X2xzbiA9ICRu b2RlX3ByaW1hcnktPmxzbignZmx1c2gnKTsKLSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2Nh dGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRwcmltYXJ5X2xzbik7Ciskbm9kZV9w cmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAkcHJpbWFy eV9sc24pOwogCiAKICMgYSBsb25ncnVubmluZyBwc3FsIHRoYXQgd2UgY2FuIHVzZSB0byB0 cmlnZ2VyIGNvbmZsaWN0cwpAQCAtOTgsNyArOTgsNyBAQCAkbm9kZV9wcmltYXJ5LT5zYWZl X3BzcWwoCiAJXSk7CiAKICRwcmltYXJ5X2xzbiA9ICRub2RlX3ByaW1hcnktPmxzbignZmx1 c2gnKTsKLSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwg J3JlcGxheScsICRwcmltYXJ5X2xzbik7Ciskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9yZXBs YXlfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAkcHJpbWFyeV9sc24pOwogCiBteSAkY3Vyc29y MSA9ICJ0ZXN0X3JlY292ZXJ5X2NvbmZsaWN0X2N1cnNvciI7CiAKQEAgLTEyNSw3ICsxMjUs NyBAQCAkbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJHRlc3RfZGIsIHFxW1ZBQ1VVTSAkdGFi bGUxO10pOwogIyBlbmNvdW50ZXJpbmcgdGhlIHJlY292ZXJ5IGNvbmZsaWN0IHdoaWNoIGNh dXNlcyB0aGUgZGlzY29ubmVjdCBhbmQgY2hlY2tpbmcKICMgdGhlIGxvZ2ZpbGUgZm9yIHRo ZSB0ZXJtaW5hdGVkIGNvbm5lY3Rpb24uCiAkcHJpbWFyeV9sc24gPSAkbm9kZV9wcmltYXJ5 LT5sc24oJ2ZsdXNoJyk7Ci0kbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2Rl X3N0YW5kYnksICdyZXBsYXknLCAkcHJpbWFyeV9sc24pOworJG5vZGVfcHJpbWFyeS0+d2Fp dF9mb3JfcmVwbGF5X2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJHByaW1hcnlfbHNuKTsKIAog Y2hlY2tfY29uZmxpY3RfbG9nKCJVc2VyIHdhcyBob2xkaW5nIHNoYXJlZCBidWZmZXIgcGlu IGZvciB0b28gbG9uZyIpOwogcmVjb25uZWN0X2FuZF9jbGVhcigpOwpAQCAtMTM5LDcgKzEz OSw3IEBAICRleHBlY3RlZF9jb25mbGljdHMrKzsKICRub2RlX3ByaW1hcnktPnNhZmVfcHNx bCgkdGVzdF9kYiwKIAlxcVtJTlNFUlQgSU5UTyAkdGFibGUxIFNFTEVDVCBpLCAwIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsMjApIGldKTsKICRwcmltYXJ5X2xzbiA9ICRub2RlX3ByaW1h cnktPmxzbignZmx1c2gnKTsKLSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5v ZGVfc3RhbmRieSwgJ3JlcGxheScsICRwcmltYXJ5X2xzbik7Ciskbm9kZV9wcmltYXJ5LT53 YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAkcHJpbWFyeV9sc24pOwog CiAjIERFQ0xBUkUgYW5kIEZFVENIIGZyb20gY3Vyc29yIG9uIHRoZSBzdGFuZGJ5CiAkcHNx bF9zdGFuZGJ5e3N0ZGlufSAuPSBxcVsKQEAgLTE2MSw3ICsxNjEsNyBAQCAkbm9kZV9wcmlt YXJ5LT5zYWZlX3BzcWwoJHRlc3RfZGIsIHFxW1ZBQ1VVTSAkdGFibGUxO10pOwogCiAjIFdh aXQgZm9yIGF0dGVtcHRlZCByZXBsYXkgb2YgUFJVTkUgcmVjb3JkcwogJHByaW1hcnlfbHNu ID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVfcHJpbWFyeS0+d2FpdF9m b3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHByaW1hcnlfbHNuKTsKKyRu b2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnksICRw cmltYXJ5X2xzbik7CiAKIGNoZWNrX2NvbmZsaWN0X2xvZygKIAkiVXNlciBxdWVyeSBtaWdo dCBoYXZlIG5lZWRlZCB0byBzZWUgcm93IHZlcnNpb25zIHRoYXQgbXVzdCBiZSByZW1vdmVk Iik7CkBAIC0xODUsNyArMTg1LDcgQEAgb2socHVtcF91bnRpbF9zdGFuZGJ5KHFyL14xJC9t KSwgIiRzZWN0OiBjb25mbGljdGluZyBsb2NrIGFjcXVpcmVkIik7CiAkbm9kZV9wcmltYXJ5 LT5zYWZlX3BzcWwoJHRlc3RfZGIsIHFxW0RST1AgVEFCTEUgJHRhYmxlMTtdKTsKIAogJHBy aW1hcnlfbHNuID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVfcHJpbWFy eS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHByaW1hcnlf bHNuKTsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0 YW5kYnksICRwcmltYXJ5X2xzbik7CiAKIGNoZWNrX2NvbmZsaWN0X2xvZygiVXNlciB3YXMg aG9sZGluZyBhIHJlbGF0aW9uIGxvY2sgZm9yIHRvbyBsb25nIik7CiByZWNvbm5lY3RfYW5k X2NsZWFyKCk7CkBAIC0yMTQsNyArMjE0LDcgQEAgb2socHVtcF91bnRpbF9zdGFuZGJ5KHFy L142MDAwJC9tKSwKICRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgkdGVzdF9kYiwgcXFbRFJP UCBUQUJMRVNQQUNFICR0YWJsZXNwYWNlMTtdKTsKIAogJHByaW1hcnlfbHNuID0gJG5vZGVf cHJpbWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1 cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHByaW1hcnlfbHNuKTsKKyRub2RlX3ByaW1h cnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnksICRwcmltYXJ5X2xz bik7CiAKIGNoZWNrX2NvbmZsaWN0X2xvZygKIAkiVXNlciB3YXMgb3IgbWlnaHQgaGF2ZSBi ZWVuIHVzaW5nIHRhYmxlc3BhY2UgdGhhdCBtdXN0IGJlIGRyb3BwZWQiKTsKQEAgLTI1Niw3 ICsyNTYsNyBAQCBTRUxFQ1QgdHhpZF9jdXJyZW50KCk7CiBdKTsKIAogJHByaW1hcnlfbHNu ID0gJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpOwotJG5vZGVfcHJpbWFyeS0+d2FpdF9m b3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJHByaW1hcnlfbHNuKTsKKyRu b2RlX3ByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRub2RlX3N0YW5kYnksICRw cmltYXJ5X2xzbik7CiAKICRwc3FsX3N0YW5kYnl7c3RkaW59IC49IHFxWwogICAgIEJFR0lO OwpAQCAtMjgzLDcgKzI4Myw3IEBAIFNFTEVDVCAnd2FpdGluZycgRlJPTSBwZ19sb2NrcyBX SEVSRSBsb2NrdHlwZSA9ICdyZWxhdGlvbicgQU5EIE5PVCBncmFudGVkOwogIyBwc3FsIGlz IHdhaXRpbmcgb24gbG9jawogJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCR0ZXN0X2RiLCBx cVtWQUNVVU0gJHRhYmxlMTtdKTsKICRwcmltYXJ5X2xzbiA9ICRub2RlX3ByaW1hcnktPmxz bignZmx1c2gnKTsKLSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3Rh bmRieSwgJ3JlcGxheScsICRwcmltYXJ5X2xzbik7Ciskbm9kZV9wcmltYXJ5LT53YWl0X2Zv cl9yZXBsYXlfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAkcHJpbWFyeV9sc24pOwogCiBjaGVj a19jb25mbGljdF9sb2coIlVzZXIgdHJhbnNhY3Rpb24gY2F1c2VkIGJ1ZmZlciBkZWFkbG9j ayB3aXRoIHJlY292ZXJ5LiIpOwogcmVjb25uZWN0X2FuZF9jbGVhcigpOwpAQCAtMzEyLDcg KzMxMiw3IEBAICRzZWN0ID0gImRhdGFiYXNlIGNvbmZsaWN0IjsKICRub2RlX3ByaW1hcnkt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcVtEUk9QIERBVEFCQVNFICR0ZXN0X2RiO10pOwog CiAkcHJpbWFyeV9sc24gPSAkbm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJyk7Ci0kbm9kZV9w cmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkcHJp bWFyeV9sc24pOworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJG5v ZGVfc3RhbmRieSwgJHByaW1hcnlfbHNuKTsKIAogY2hlY2tfY29uZmxpY3RfbG9nKCJVc2Vy IHdhcyBjb25uZWN0ZWQgdG8gYSBkYXRhYmFzZSB0aGF0IG11c3QgYmUgZHJvcHBlZCIpOwog CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzM19yZXBsYXlfdHNwX2Ryb3Bz LnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzNfcmVwbGF5X3RzcF9kcm9wcy5wbAppbmRl eCA4OTZiMjgyYmQ0Li41OGYxNDJmNDU5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWNvdmVy eS90LzAzM19yZXBsYXlfdHNwX2Ryb3BzLnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3Qv MDMzX3JlcGxheV90c3BfZHJvcHMucGwKQEAgLTQyLDggKzQyLDcgQEAgc3ViIHRlc3RfdGFi bGVzcGFjZQogCSRub2RlX3N0YW5kYnktPnN0YXJ0OwogCiAJIyBNYWtlIHN1cmUgdGhlIGNv bm5lY3Rpb24gaXMgbWFkZQotCSRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5v ZGVfc3RhbmRieSwgJ3dyaXRlJywKLQkJJG5vZGVfcHJpbWFyeS0+bHNuKCd3cml0ZScpKTsK Kwkkbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl93cml0ZV9jYXRjaHVwKCRub2RlX3N0YW5kYnks ICRub2RlX3ByaW1hcnktPmxzbignd3JpdGUnKSk7CiAKIAkjIERvIGltbWVkaWF0ZSBzaHV0 ZG93biBqdXN0IGFmdGVyIGEgc2VxdWVuY2Ugb2YgQ1JFQVRFIERBVEFCQVNFIC8gRFJPUAog CSMgREFUQUJBU0UgLyBEUk9QIFRBQkxFU1BBQ0UuIFRoaXMgY2F1c2VzIENSRUFURSBEQVRB QkFTRSBXQUwgcmVjb3JkcwpAQCAtNjUsOCArNjQsNyBAQCBzdWIgdGVzdF90YWJsZXNwYWNl CiAJJHF1ZXJ5ID1+IHMvPFNUUkFURUdZPi8kc3RyYXRlZ3kvZzsKIAogCSRub2RlX3ByaW1h cnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAkcXVlcnkpOwotCSRub2RlX3ByaW1hcnktPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3dyaXRlJywKLQkJJG5vZGVfcHJpbWFy eS0+bHNuKCd3cml0ZScpKTsKKwkkbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl93cml0ZV9jYXRj aHVwKCRub2RlX3N0YW5kYnksICRub2RlX3ByaW1hcnktPmxzbignd3JpdGUnKSk7CiAKIAkj IHNob3cgImNyZWF0ZSBtaXNzaW5nIGRpcmVjdG9yeSIgbG9nIG1lc3NhZ2UKIAkkbm9kZV9z dGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK --------------5kEPY43FaZhefhvH95QAzpVQ--