Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rZqNN-006i2s-97 for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Feb 2024 10:50:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rZqNM-00GsK9-Cb for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Feb 2024 10:50:56 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rZqNL-00GsK1-Qq for pgsql-hackers@lists.postgresql.org; Tue, 13 Feb 2024 10:50:56 +0000 Received: from mail-yb1-xb2b.google.com ([2607:f8b0:4864:20::b2b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rZqNJ-006WiW-8e for pgsql-hackers@postgresql.org; Tue, 13 Feb 2024 10:50:54 +0000 Received: by mail-yb1-xb2b.google.com with SMTP id 3f1490d57ef6-dcc73148611so628215276.3 for ; Tue, 13 Feb 2024 02:50:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707821452; x=1708426252; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=2BxPmePzQCVX6ZRYeDPwG7Vz415PZc8XTk0fohr5yC8=; b=X8Empbh0PyoXcPNLdbq9u1+WroIEvEG2orvz1lshLE1NyJb5p6oJDnFDFzZFEKaqBS 04UoDlmgEgW+9OWnC7ckVhVvgcIH5YBx/dpK/EuV+dyNPJsgtF0NxoiSk5nA71tr8ofF 7D4gm2jZ4mTcbOELeGexWFszdqWIY/wsSt2Y87UPmW89d8nS6+pReK2FORqbH71yniBz 3PZliQ0jlLw5w+9MAY4YMurfnfBRDLmn7pVQutEeIU2sd8/BpuyrU87vaun7jQ19SXFf RAAbb6wbbvvX1wGdaIOyoiM2Yc1U26Mv362jmgjW5+BgAMMdWhjMje4mE/0x5ZdEvxEd ucSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707821452; x=1708426252; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=2BxPmePzQCVX6ZRYeDPwG7Vz415PZc8XTk0fohr5yC8=; b=F4Bvh8gb1OsFEi6q6yTEXFbDdTixDAWHdnIK4atTj7aycJkKH+Rtmu+CbFa40GWnGO Ar7/eVNHew/HsMyi7vsOa78I7gTtTtefdee8qYjKkZz22vqtTnGP1EfGnVowE3/odpJb QZRzTUPn0s3OJ0FdnI+8v+FQSz7YeutIriijwNMHKatp/Fkzy+ZTxKk86vnqOGDo186N QdTrYHhiLejCOl5ypeGhdYmg5VPuV/DDPqtb6ny9dfZjoHGj8BsKqogoV/sXerhlo6Hc CqP/MYMJrL/5RNRXaWsCUYCXxUh72JNlpSXeGwJ06CbHqjcUzJvZVoFWPYLyavfE/FyK I3XQ== X-Forwarded-Encrypted: i=1; AJvYcCV27EoSe+p4AQYYmqJzmvTfEKQ/n7SumEbYnvaXgDmTV0JmNF0t9FKp1JNXkjB3pyf55cpvxVoo7g88URsSCVsUcMp+5UZwZThCT6g3 X-Gm-Message-State: AOJu0YxNRMlH7bKGaeymN2/5QbJfDHMOtw0fG0v+cCdxFD9uMJrNZ6rw v9gqoLNaSMhVJxHcQpWjwuMtejT1obAJupAHAaS+HC8UddUabgGYXHm1VZE3+g59z1TAMmvTuQM tugzksencoFDtd5J5gc2ngW9Tfn8= X-Google-Smtp-Source: AGHT+IGpizZrten83B06quLYGofuCPar2xmoh50IEwn1Op7Pw3uJrGuv+OZaL1Hy11XK0gK2dD24yV0u5Tb5SX+haa8= X-Received: by 2002:a25:6b04:0:b0:dc2:48af:bf17 with SMTP id g4-20020a256b04000000b00dc248afbf17mr7071232ybc.62.1707821452456; Tue, 13 Feb 2024 02:50:52 -0800 (PST) MIME-Version: 1.0 References: <247851.1668293143@sss.pgh.pa.us> <602d6b44-c734-4f7f-8999-99b6cac9bf17@yandex.ru> <00de47dd-7a38-4225-a47e-65a8ba6de8d3@yandex.ru> In-Reply-To: From: Alexander Korotkov Date: Tue, 13 Feb 2024 12:50:40 +0200 Message-ID: Subject: Re: A new strategy for pull-up correlated ANY_SUBLINK To: vignesh C Cc: Alena Rybakina , Andy Fan , pgsql-hackers , Tom Lane , Richard Guo , Andrey Lepikhov Content-Type: multipart/mixed; boundary="00000000000003af310611412bea" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000003af310611412bea Content-Type: text/plain; charset="UTF-8" Hi! > If the changes of Alena are ok, can you merge the changes and post an > updated version so that CFBot can apply the patch and verify the > changes. As currently CFBot is trying to apply only Alena's changes > and failing with the following at [1]: I think this is a very nice and pretty simple optimization. I've merged the changes by Alena, and slightly revised the code changes in convert_ANY_sublink_to_join(). I'm going to push this if there are no objections. ------ Regards, Alexander Korotkov --00000000000003af310611412bea Content-Type: application/octet-stream; name="0001-Pull-up-ANY-SUBLINK-with-the-necessary-lateral-su-v6.patch" Content-Disposition: attachment; filename="0001-Pull-up-ANY-SUBLINK-with-the-necessary-lateral-su-v6.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lsk8pztc0 RnJvbSBmZDg4MzRmOGU2NTFjNDdmZDRlZTAzYjlmZTg0ZWM4N2ZlMzNhNTNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmR5IEZhbiA8emhpaHVpLmZhbjEyMTNAZ21haWwuY29tPgpE YXRlOiBGcmksIDEzIE9jdCAyMDIzIDE0OjM5OjM0ICswODAwClN1YmplY3Q6IFtQQVRDSF0gUHVs bCB1cCBBTlktU1VCTElOSyB3aXRoIHRoZSBuZWNlc3NhcnkgbGF0ZXJhbCBzdXBwb3J0LgoKRm9y IEFOWS1TVUJMSU5LLCB3ZSBhZG9wdGVkIGEgdHdvLXN0YWdlIHB1bGwtdXAgYXBwcm9hY2ggdG8g aGFuZGxlCmRpZmZlcmVudCB0eXBlcyBvZiBzY2VuYXJpb3MuIEluIHRoZSBmaXJzdCBzdGFnZSwg dGhlIHN1YmxpbmsgaXMgcHVsbGVkIHVwCmFzIGEgc3VicXVlcnkuIEJlY2F1c2Ugb2YgdGhpcywg d2hlbiB3cml0aW5nIHRoaXMgY29kZSwgd2UgZGlkIG5vdCBoYXZlCnRoZSBhYmlsaXR5IHRvIHBl cmZvcm0gbGF0ZXJhbCBqb2lucywgYW5kIHRoZXJlZm9yZSwgd2Ugd2VyZSB1bmFibGUgdG8KcHVs bCB1cCBWYXIgd2l0aCB2YXJsZXZlbHN1cD0xLiBOb3cgdGhhdCB3ZSBoYXZlIHRoZSBhYmlsaXR5 IHRvIHVzZQpsYXRlcmFsIGpvaW5zLCB3ZSBjYW4gZWxpbWluYXRlIHRoaXMgbGltaXRhdGlvbi4K CkF1dGhvcjogQW5keSBGYW4gPHpoaWh1aS5mYW4xMjEzQGdtYWlsLmNvbT4KClJldmlld2VkLWJ5 OiBUb20gTGFuZSA8dGdsQHNzcy5wZ2gucGEudXM+ClJldmlld2VkLWJ5OiBSaWNoYXJkIEd1byA8 Z3VvZmVuZ2xpbnV4QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFsZW5hIFJ5YmFraW5hIDxsZW5h LnJpYmFja2luYUB5YW5kZXgucnU+ClJldmlld2VkLWJ5OiBBbmRyZXkgTGVwaWtob3YgPGEubGVw aWtob3ZAcG9zdGdyZXNwcm8ucnU+Ci0tLQogLi4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0 Z3Jlc19mZHcub3V0ICAgIHwgICA2ICstCiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdy ZXNfZmR3LnNxbCAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3N1YnNl bGVjdC5jICAgICAgICB8ICAxNyArKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5v dXQgICAgICAgICAgICB8ICAxNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzZWxl Y3Qub3V0ICAgICAgIHwgMTI2ICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvam9pbi5zcWwgICAgICAgICAgICAgICAgIHwgICA4ICstCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9zdWJzZWxlY3Quc3FsICAgICAgICAgICAgfCAgMzcgKysrKysKIDcgZmlsZXMgY2hhbmdlZCwg MTkyIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIv cG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVz X2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CmluZGV4IGI1YTM4YWViMjE0Li5jMzU1ZThm M2Y3ZCAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNf ZmR3Lm91dAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcu b3V0CkBAIC0xMTg5NCw3ICsxMTg5NCw3IEBAIENSRUFURSBGT1JFSUdOIFRBQkxFIGZvcmVpZ25f dGJsIChiIGludCkKIENSRUFURSBGT1JFSUdOIFRBQkxFIGZvcmVpZ25fdGJsMiAoKSBJTkhFUklU UyAoZm9yZWlnbl90YmwpCiAgIFNFUlZFUiBsb29wYmFjayBPUFRJT05TICh0YWJsZV9uYW1lICdi YXNlX3RibCcpOwogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQotU0VMRUNUIGEgRlJPTSBi YXNlX3RibCBXSEVSRSBhIElOIChTRUxFQ1QgYSBGUk9NIGZvcmVpZ25fdGJsKTsKK1NFTEVDVCBh IEZST00gYmFzZV90YmwgV0hFUkUgKGEsIHJhbmRvbSgpID4gMCkgSU4gKFNFTEVDVCBhLCByYW5k b20oKSA+IDAgRlJPTSBmb3JlaWduX3RibCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICBTZXEgU2NhbiBvbiBwdWJsaWMuYmFzZV90YmwKQEAgLTExOTAyLDcg KzExOTAyLDcgQEAgU0VMRUNUIGEgRlJPTSBiYXNlX3RibCBXSEVSRSBhIElOIChTRUxFQ1QgYSBG Uk9NIGZvcmVpZ25fdGJsKTsKICAgIEZpbHRlcjogKFN1YlBsYW4gMSkKICAgIFN1YlBsYW4gMQog ICAgICAtPiAgUmVzdWx0Ci0gICAgICAgICAgIE91dHB1dDogYmFzZV90YmwuYQorICAgICAgICAg ICBPdXRwdXQ6IGJhc2VfdGJsLmEsIChyYW5kb20oKSA+ICcwJzo6ZG91YmxlIHByZWNpc2lvbikK ICAgICAgICAgICAgLT4gIEFwcGVuZAogICAgICAgICAgICAgICAgICAtPiAgQXN5bmMgRm9yZWln biBTY2FuIG9uIHB1YmxpYy5mb3JlaWduX3RibCBmb3JlaWduX3RibF8xCiAgICAgICAgICAgICAg ICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBOVUxMIEZST00gcHVibGljLmJhc2VfdGJsCkBA IC0xMTkxMCw3ICsxMTkxMCw3IEBAIFNFTEVDVCBhIEZST00gYmFzZV90YmwgV0hFUkUgYSBJTiAo U0VMRUNUIGEgRlJPTSBmb3JlaWduX3RibCk7CiAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90 ZSBTUUw6IFNFTEVDVCBOVUxMIEZST00gcHVibGljLmJhc2VfdGJsCiAoMTEgcm93cykKIAotU0VM RUNUIGEgRlJPTSBiYXNlX3RibCBXSEVSRSBhIElOIChTRUxFQ1QgYSBGUk9NIGZvcmVpZ25fdGJs KTsKK1NFTEVDVCBhIEZST00gYmFzZV90YmwgV0hFUkUgKGEsIHJhbmRvbSgpID4gMCkgSU4gKFNF TEVDVCBhLCByYW5kb20oKSA+IDAgRlJPTSBmb3JlaWduX3RibCk7CiAgYSAKIC0tLQogIDEKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsIGIvY29u dHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKaW5kZXggZjQxMGMzZGI0ZTYu LjgxMmU3NjQ2ZTE2IDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdy ZXNfZmR3LnNxbAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNx bApAQCAtMzk4OCw4ICszOTg4LDggQEAgQ1JFQVRFIEZPUkVJR04gVEFCTEUgZm9yZWlnbl90Ymwy ICgpIElOSEVSSVRTIChmb3JlaWduX3RibCkKICAgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRh YmxlX25hbWUgJ2Jhc2VfdGJsJyk7CiAKIEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKLVNF TEVDVCBhIEZST00gYmFzZV90YmwgV0hFUkUgYSBJTiAoU0VMRUNUIGEgRlJPTSBmb3JlaWduX3Ri bCk7Ci1TRUxFQ1QgYSBGUk9NIGJhc2VfdGJsIFdIRVJFIGEgSU4gKFNFTEVDVCBhIEZST00gZm9y ZWlnbl90YmwpOworU0VMRUNUIGEgRlJPTSBiYXNlX3RibCBXSEVSRSAoYSwgcmFuZG9tKCkgPiAw KSBJTiAoU0VMRUNUIGEsIHJhbmRvbSgpID4gMCBGUk9NIGZvcmVpZ25fdGJsKTsKK1NFTEVDVCBh IEZST00gYmFzZV90YmwgV0hFUkUgKGEsIHJhbmRvbSgpID4gMCkgSU4gKFNFTEVDVCBhLCByYW5k b20oKSA+IDAgRlJPTSBmb3JlaWduX3RibCk7CiAKIC0tIENsZWFuIHVwCiBEUk9QIEZPUkVJR04g VEFCTEUgZm9yZWlnbl90YmwgQ0FTQ0FERTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3N1YnNlbGVjdC5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc3Vic2Vs ZWN0LmMKaW5kZXggMzExNWQ3OWFkOTguLjQ3ZTE0NzIzZDJiIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9zdWJzZWxlY3QuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9zdWJzZWxlY3QuYwpAQCAtMTI3OCwxNCArMTI3OCwyMyBAQCBjb252ZXJ0X0FOWV9z dWJsaW5rX3RvX2pvaW4oUGxhbm5lckluZm8gKnJvb3QsIFN1YkxpbmsgKnN1YmxpbmssCiAJTGlz dAkgICAqc3VicXVlcnlfdmFyczsKIAlOb2RlCSAgICpxdWFsczsKIAlQYXJzZVN0YXRlICpwc3Rh dGU7CisJUmVsaWRzCQlzdWJfcmVmX291dGVyX3JlbGlkczsKKwlib29sCQl1c2VfbGF0ZXJhbDsK IAogCUFzc2VydChzdWJsaW5rLT5zdWJMaW5rVHlwZSA9PSBBTllfU1VCTElOSyk7CiAKIAkvKgot CSAqIFRoZSBzdWItc2VsZWN0IG11c3Qgbm90IHJlZmVyIHRvIGFueSBWYXJzIG9mIHRoZSBwYXJl bnQgcXVlcnkuIChWYXJzIG9mCi0JICogaGlnaGVyIGxldmVscyBzaG91bGQgYmUgb2theSwgdGhv dWdoLikKKwkgKiBJZiB0aGUgc3ViLXNlbGVjdCByZWZlcnMgdG8gYW55IFZhcnMgb2YgdGhlIHBh cmVudCBxdWVyeSwgd2Ugc28gbGV0J3MKKwkgKiBjb25zaWRlcmluZyBpdCBhcyBMQVRFUkFMLiAg KFZhcnMgb2YgaGlnaGVyIGxldmVscyBkb24ndCBtYXR0ZXIgaGVyZS4pCiAJICovCi0JaWYgKGNv bnRhaW5fdmFyc19vZl9sZXZlbCgoTm9kZSAqKSBzdWJzZWxlY3QsIDEpKQorCXN1Yl9yZWZfb3V0 ZXJfcmVsaWRzID0gcHVsbF92YXJub3Nfb2ZfbGV2ZWwoTlVMTCwgKE5vZGUgKikgc3Vic2VsZWN0 LCAxKTsKKwl1c2VfbGF0ZXJhbCA9ICFibXNfaXNfZW1wdHkoc3ViX3JlZl9vdXRlcl9yZWxpZHMp OworCisJLyoKKwkgKiBDaGVjayB0aGF0IHN1Yi1zZWxlY3QgcmVmZXJzIG5vdGhpbmcgb3V0c2lk ZSBvZiBhdmFpbGFibGVfcmVscyBvZiB0aGUKKwkgKiBwYXJlbnQgcXVlcnkuCisJICovCisJaWYg KCFibXNfaXNfc3Vic2V0KHN1Yl9yZWZfb3V0ZXJfcmVsaWRzLCBhdmFpbGFibGVfcmVscykpCiAJ CXJldHVybiBOVUxMOwogCiAJLyoKQEAgLTEzMjMsNyArMTMzMiw3IEBAIGNvbnZlcnRfQU5ZX3N1 YmxpbmtfdG9fam9pbihQbGFubmVySW5mbyAqcm9vdCwgU3ViTGluayAqc3VibGluaywKIAluc2l0 ZW0gPSBhZGRSYW5nZVRhYmxlRW50cnlGb3JTdWJxdWVyeShwc3RhdGUsCiAJCQkJCQkJCQkJICAg c3Vic2VsZWN0LAogCQkJCQkJCQkJCSAgIG1ha2VBbGlhcygiQU5ZX3N1YnF1ZXJ5IiwgTklMKSwK LQkJCQkJCQkJCQkgICBmYWxzZSwKKwkJCQkJCQkJCQkgICB1c2VfbGF0ZXJhbCwKIAkJCQkJCQkJ CQkgICBmYWxzZSk7CiAJcnRlID0gbnNpdGVtLT5wX3J0ZTsKIAlwYXJzZS0+cnRhYmxlID0gbGFw cGVuZChwYXJzZS0+cnRhYmxlLCBydGUpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9qb2luLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKaW5k ZXggOWMwOGQwMTM0Y2EuLjBjMmNiYTg5MjEzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2pvaW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5v dXQKQEAgLTUyNzcsNyArNTI3Nyw3IEBAIHJlc2V0IGVuYWJsZV9uZXN0bG9vcDsKIGV4cGxhaW4g KGNvc3RzIG9mZikKIHNlbGVjdCBhLnVuaXF1ZTEsIGIudW5pcXVlMgogICBmcm9tIG9uZWsgYSBs ZWZ0IGpvaW4gb25layBiIG9uIGEudW5pcXVlMSA9IGIudW5pcXVlMgotICB3aGVyZSBiLnVuaXF1 ZTIgPSBhbnkgKHNlbGVjdCBxMSBmcm9tIGludDhfdGJsIGMgd2hlcmUgYy5xMSA8IGIudW5pcXVl MSk7CisgIHdoZXJlIChiLnVuaXF1ZTIsIHJhbmRvbSgpID4gMCkgPSBhbnkgKHNlbGVjdCBxMSwg cmFuZG9tKCkgPiAwIGZyb20gaW50OF90YmwgYyB3aGVyZSBjLnExIDwgYi51bmlxdWUxKTsKICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBIYXNoIEpvaW4KQEAgLTUyOTMsNyArNTI5Myw3IEBAIHNlbGVjdCBhLnVuaXF1ZTEsIGIu dW5pcXVlMgogCiBzZWxlY3QgYS51bmlxdWUxLCBiLnVuaXF1ZTIKICAgZnJvbSBvbmVrIGEgbGVm dCBqb2luIG9uZWsgYiBvbiBhLnVuaXF1ZTEgPSBiLnVuaXF1ZTIKLSAgd2hlcmUgYi51bmlxdWUy ID0gYW55IChzZWxlY3QgcTEgZnJvbSBpbnQ4X3RibCBjIHdoZXJlIGMucTEgPCBiLnVuaXF1ZTEp OworICB3aGVyZSAoYi51bmlxdWUyLCByYW5kb20oKSA+IDApID0gYW55IChzZWxlY3QgcTEsIHJh bmRvbSgpID4gMCBmcm9tIGludDhfdGJsIGMgd2hlcmUgYy5xMSA8IGIudW5pcXVlMSk7CiAgdW5p cXVlMSB8IHVuaXF1ZTIgCiAtLS0tLS0tLS0rLS0tLS0tLS0tCiAgICAgIDEyMyB8ICAgICAxMjMK QEAgLTgyMTAsMTIgKzgyMTAsMTIgQEAgc2VsZWN0ICogZnJvbSAodmFsdWVzICgwKSwgKDEpKSB2 KGlkKSwKIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20gaW50OF90YmwgdDEsCiAgICAgICAgICBsYXRl cmFsIChzZWxlY3QgKiBmcm9tCiAgICAgICAgICAgICAgICAgICAgIChzZWxlY3QgKiBmcm9tIGlu dDhfdGJsIHQyCi0gICAgICAgICAgICAgICAgICAgICB3aGVyZSBxMSA9IGFueSAoc2VsZWN0IHEy IGZyb20gaW50OF90YmwgdDMKKyAgICAgICAgICAgICAgICAgICAgIHdoZXJlIChxMSwgcmFuZG9t KCkgPiAwKSA9IGFueSAoc2VsZWN0IHEyLCByYW5kb20oKSA+IDAgZnJvbSBpbnQ4X3RibCB0Mwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXJlIHEyID0gKHNlbGVjdCBn cmVhdGVzdCh0MS5xMSx0Mi5xMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhbmQgKHNlbGVjdCB2LmlkPTApKSBvZmZzZXQgMCkgc3MyKSBzcwogICAgICAgICAgd2hl cmUgdDEucTEgPSBzcy5xMikgc3MwOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIE5lc3RlZCBMb29w CiAgICBPdXRwdXQ6ICIqVkFMVUVTKiIuY29sdW1uMSwgdDEucTEsIHQxLnEyLCBzczIucTEsIHNz Mi5xMgogICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5pbnQ4X3RibCB0MQpAQCAtODIzMiw3ICs4 MjMyLDcgQEAgbGF0ZXJhbCAoc2VsZWN0ICogZnJvbSBpbnQ4X3RibCB0MSwKICAgICAgICAgICAg ICAgICAgICAgIEZpbHRlcjogKFN1YlBsYW4gMykKICAgICAgICAgICAgICAgICAgICAgIFN1YlBs YW4gMwogICAgICAgICAgICAgICAgICAgICAgICAtPiAgUmVzdWx0Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE91dHB1dDogdDMucTIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg T3V0cHV0OiB0My5xMiwgKHJhbmRvbSgpID4gJzAnOjpkb3VibGUgcHJlY2lzaW9uKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPbmUtVGltZSBGaWx0ZXI6ICQ0CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluaXRQbGFuIDEgKHJldHVybnMgJDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLT4gIFJlc3VsdApAQCAtODI0OSw3ICs4MjQ5LDcgQEAgc2VsZWN0ICog ZnJvbSAodmFsdWVzICgwKSwgKDEpKSB2KGlkKSwKIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20gaW50 OF90YmwgdDEsCiAgICAgICAgICBsYXRlcmFsIChzZWxlY3QgKiBmcm9tCiAgICAgICAgICAgICAg ICAgICAgIChzZWxlY3QgKiBmcm9tIGludDhfdGJsIHQyCi0gICAgICAgICAgICAgICAgICAgICB3 aGVyZSBxMSA9IGFueSAoc2VsZWN0IHEyIGZyb20gaW50OF90YmwgdDMKKyAgICAgICAgICAgICAg ICAgICAgIHdoZXJlIChxMSwgcmFuZG9tKCkgPiAwKSA9IGFueSAoc2VsZWN0IHEyLCByYW5kb20o KSA+IDAgZnJvbSBpbnQ4X3RibCB0MwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHdoZXJlIHEyID0gKHNlbGVjdCBncmVhdGVzdCh0MS5xMSx0Mi5xMikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgKHNlbGVjdCB2LmlkPTApKSBvZmZzZXQg MCkgc3MyKSBzcwogICAgICAgICAgd2hlcmUgdDEucTEgPSBzcy5xMikgc3MwOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzZWxlY3Qub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zdWJzZWxlY3Qub3V0CmluZGV4IGEzYTRkMDNkMTA0Li5lNDFiNzI4ZGY4 MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzZWxlY3Qub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2VsZWN0Lm91dApAQCAtMTkyNiwzICsx OTI2LDEyOSBAQCBzZWxlY3QgKiBmcm9tIHggZm9yIHVwZGF0ZTsKICAgIE91dHB1dDogc3Vic2Vs ZWN0X3RibC5mMSwgc3Vic2VsZWN0X3RibC5mMiwgc3Vic2VsZWN0X3RibC5mMwogKDIgcm93cykK IAorLS0gUHVsbC11cCB0aGUgZGlyZWN0LWNvcnJlbGF0ZWQgQU5ZX1NVQkxJTksKK2V4cGxhaW4g KGNvc3RzIG9mZikKK3NlbGVjdCAqIGZyb20gdGVuazEgQSB3aGVyZSBodW5kcmVkIGluIChzZWxl Y3QgaHVuZHJlZCBmcm9tIHRlbmsyIEIgd2hlcmUgQi5vZGQgPSBBLm9kZCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEhhc2ggSm9pbgorICAgSGFzaCBDb25kOiAoKGEub2RkID0gYi5vZGQpIEFORCAoYS5odW5kcmVk ID0gYi5odW5kcmVkKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMSBhCisgICAtPiAgSGFzaAor ICAgICAgICAgLT4gIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgICAgICAgIEdyb3VwIEtleTogYi5v ZGQsIGIuaHVuZHJlZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHRlbmsyIGIKKyg3 IHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9mZikKK3NlbGVjdCAqIGZyb20gdGVuazEgQSB3aGVy ZSBleGlzdHMKKyhzZWxlY3QgMSBmcm9tIHRlbmsyIEIKK3doZXJlIEEuaHVuZHJlZCBpbiAoc2Vs ZWN0IEMuaHVuZHJlZCBGUk9NIHRlbmsyIEMKK1dIRVJFIGMub2RkID0gYi5vZGQpKTsKKyAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgTmVzdGVkIExvb3AgU2VtaSBKb2luCisgICBKb2luIEZpbHRlcjogKFN1YlBsYW4g MSkKKyAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMSBhCisgICAtPiAgTWF0ZXJpYWxpemUKKyAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMiBiCisgICBTdWJQbGFuIDEKKyAgICAgLT4gIFNlcSBT Y2FuIG9uIHRlbmsyIGMKKyAgICAgICAgICAgRmlsdGVyOiAob2RkID0gYi5vZGQpCisoOCByb3dz KQorCistLSB3ZSBzaG91bGQgb25seSB0cnkgdG8gcHVsbCB1cCB0aGUgc3VibGluayBpbnRvIFJI UyBvZiBhIGxlZnQgam9pbgorLS0gYnV0IGEuaHVuZHJlZCBpcyBub3QgYXZhaWFibGUuCitleHBs YWluIChjb3N0cyBvZmYpCitTRUxFQ1QgKiBGUk9NIHRlbmsxIEEgTEVGVCBKT0lOIHRlbmsyIEIK K09OIEEuaHVuZHJlZCBpbiAoU0VMRUNUIGMuaHVuZHJlZCBGUk9NIHRlbmsyIEMgV0hFUkUgYy5v ZGQgPSBiLm9kZCk7CisgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29wIExlZnQgSm9pbgorICAgSm9p biBGaWx0ZXI6IChTdWJQbGFuIDEpCisgICAtPiAgU2VxIFNjYW4gb24gdGVuazEgYQorICAgLT4g IE1hdGVyaWFsaXplCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdGVuazIgYgorICAgU3ViUGxh biAxCisgICAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMiBjCisgICAgICAgICAgIEZpbHRlcjogKG9k ZCA9IGIub2RkKQorKDggcm93cykKKworLS0gd2Ugc2hvdWxkIG9ubHkgdHJ5IHRvIHB1bGwgdXAg dGhlIHN1YmxpbmsgaW50byBSSFMgb2YgYSBsZWZ0IGpvaW4KKy0tIGJ1dCBhLm9kZCBpcyBub3Qg YXZhaWFibGUgZm9yIHRoaXMuCitleHBsYWluIChjb3N0cyBvZmYpCitTRUxFQ1QgKiBGUk9NIHRl bmsxIEEgTEVGVCBKT0lOIHRlbmsyIEIKK09OIEIuaHVuZHJlZCBpbiAoU0VMRUNUIGMuaHVuZHJl ZCBGUk9NIHRlbmsyIEMgV0hFUkUgYy5vZGQgPSBhLm9kZCk7CisgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3Rl ZCBMb29wIExlZnQgSm9pbgorICAgSm9pbiBGaWx0ZXI6IChTdWJQbGFuIDEpCisgICAtPiAgU2Vx IFNjYW4gb24gdGVuazEgYQorICAgLT4gIE1hdGVyaWFsaXplCisgICAgICAgICAtPiAgU2VxIFNj YW4gb24gdGVuazIgYgorICAgU3ViUGxhbiAxCisgICAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMiBj CisgICAgICAgICAgIEZpbHRlcjogKG9kZCA9IGEub2RkKQorKDggcm93cykKKworLS0gc2hvdWxk IGJlIGFibGUgdG8gcHVsbCB1cCBzaW5jZSBhbGwgdGhlIHJlZmVyZW5jZXMgaXMgYXZhaWxhYmxl CitleHBsYWluIChjb3N0cyBvZmYpCitTRUxFQ1QgKiBGUk9NIHRlbmsxIEEgTEVGVCBKT0lOIHRl bmsyIEIKK09OIEIuaHVuZHJlZCBpbiAoU0VMRUNUIGMuaHVuZHJlZCBGUk9NIHRlbmsyIEMgV0hF UkUgYy5vZGQgPSBiLm9kZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5l c3RlZCBMb29wIExlZnQgSm9pbgorICAgLT4gIFNlcSBTY2FuIG9uIHRlbmsxIGEKKyAgIC0+ICBN YXRlcmlhbGl6ZQorICAgICAgICAgLT4gIEhhc2ggSm9pbgorICAgICAgICAgICAgICAgSGFzaCBD b25kOiAoKGIub2RkID0gYy5vZGQpIEFORCAoYi5odW5kcmVkID0gYy5odW5kcmVkKSkKKyAgICAg ICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMiBiCisgICAgICAgICAgICAgICAtPiAgSGFz aAorICAgICAgICAgICAgICAgICAgICAgLT4gIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdyb3VwIEtleTogYy5vZGQsIGMuaHVuZHJlZAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHRlbmsyIGMKKygxMCByb3dzKQorCistLSB3ZSBj YW4gcHVsbCB1cCB0aGUgc3VibGluayBpbnRvIHRoZSBpbm5lciBKb2luRXhwci4KK2V4cGxhaW4g KGNvc3RzIG9mZikKK1NFTEVDVCAqIEZST00gdGVuazEgQSBJTk5FUiBKT0lOIHRlbmsyIEIKK09O IEEuaHVuZHJlZCBpbiAoU0VMRUNUIGMuaHVuZHJlZCBGUk9NIHRlbmsyIEMgV0hFUkUgYy5vZGQg PSBiLm9kZCk7CisgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg SGFzaCBKb2luCisgICBIYXNoIENvbmQ6IChjLm9kZCA9IGIub2RkKQorICAgLT4gIEhhc2ggSm9p bgorICAgICAgICAgSGFzaCBDb25kOiAoYS5odW5kcmVkID0gYy5odW5kcmVkKQorICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHRlbmsxIGEKKyAgICAgICAgIC0+ICBIYXNoCisgICAgICAgICAgICAg ICAtPiAgSGFzaEFnZ3JlZ2F0ZQorICAgICAgICAgICAgICAgICAgICAgR3JvdXAgS2V5OiBjLm9k ZCwgYy5odW5kcmVkCisgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdGVuazIg YworICAgLT4gIEhhc2gKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB0ZW5rMiBiCisoMTEgcm93 cykKKworLS0gd2UgY2FuIHB1bGwgdXAgdGhlIGFnZ3JlZ2F0ZSBzdWJsaW5rIGludG8gUkhTIG9m IGEgbGVmdCBqb2luLgorZXhwbGFpbiAoY29zdHMgb2ZmKQorU0VMRUNUICogRlJPTSB0ZW5rMSBB IExFRlQgSk9JTiB0ZW5rMiBCCitPTiBCLmh1bmRyZWQgaW4gKFNFTEVDVCBtaW4oYy5odW5kcmVk KSBGUk9NIHRlbmsyIEMgV0hFUkUgYy5vZGQgPSBiLm9kZCk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBMb29w IExlZnQgSm9pbgorICAgLT4gIFNlcSBTY2FuIG9uIHRlbmsxIGEKKyAgIC0+ICBNYXRlcmlhbGl6 ZQorICAgICAgICAgLT4gIE5lc3RlZCBMb29wCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gdGVuazIgYgorICAgICAgICAgICAgICAgLT4gIE1lbW9pemUKKyAgICAgICAgICAgICAgICAg ICAgIENhY2hlIEtleTogYi5odW5kcmVkLCBiLm9kZAorICAgICAgICAgICAgICAgICAgICAgQ2Fj aGUgTW9kZTogYmluYXJ5CisgICAgICAgICAgICAgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBv biAiQU5ZX3N1YnF1ZXJ5IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoYi5o dW5kcmVkID0gIkFOWV9zdWJxdWVyeSIubWluKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg LT4gIFJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5pdFBsYW4gMSAo cmV0dXJucyAkMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIExpbWl0 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2Fu IHVzaW5nIHRlbmsyX2h1bmRyZWQgb24gdGVuazIgYworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJlZCBJUyBOT1QgTlVMTCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAo b2RkID0gYi5vZGQpCisoMTYgcm93cykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvam9pbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qb2luLnNxbAppbmRleCBlMWRiMjAy NWRiNi4uMjU3ZjcyN2EyYmUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pvaW4u c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pvaW4uc3FsCkBAIC0xODY0LDExICsxODY0 LDExIEBAIHJlc2V0IGVuYWJsZV9uZXN0bG9vcDsKIGV4cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVj dCBhLnVuaXF1ZTEsIGIudW5pcXVlMgogICBmcm9tIG9uZWsgYSBsZWZ0IGpvaW4gb25layBiIG9u IGEudW5pcXVlMSA9IGIudW5pcXVlMgotICB3aGVyZSBiLnVuaXF1ZTIgPSBhbnkgKHNlbGVjdCBx MSBmcm9tIGludDhfdGJsIGMgd2hlcmUgYy5xMSA8IGIudW5pcXVlMSk7CisgIHdoZXJlIChiLnVu aXF1ZTIsIHJhbmRvbSgpID4gMCkgPSBhbnkgKHNlbGVjdCBxMSwgcmFuZG9tKCkgPiAwIGZyb20g aW50OF90YmwgYyB3aGVyZSBjLnExIDwgYi51bmlxdWUxKTsKIAogc2VsZWN0IGEudW5pcXVlMSwg Yi51bmlxdWUyCiAgIGZyb20gb25layBhIGxlZnQgam9pbiBvbmVrIGIgb24gYS51bmlxdWUxID0g Yi51bmlxdWUyCi0gIHdoZXJlIGIudW5pcXVlMiA9IGFueSAoc2VsZWN0IHExIGZyb20gaW50OF90 YmwgYyB3aGVyZSBjLnExIDwgYi51bmlxdWUxKTsKKyAgd2hlcmUgKGIudW5pcXVlMiwgcmFuZG9t KCkgPiAwKSA9IGFueSAoc2VsZWN0IHExLCByYW5kb20oKSA+IDAgZnJvbSBpbnQ4X3RibCBjIHdo ZXJlIGMucTEgPCBiLnVuaXF1ZTEpOwogCiAtLQogLS0gdGVzdCBmdWxsLWpvaW4gc3RyZW5ndGgg cmVkdWN0aW9uCkBAIC0zMDM4LDcgKzMwMzgsNyBAQCBzZWxlY3QgKiBmcm9tICh2YWx1ZXMgKDAp LCAoMSkpIHYoaWQpLAogbGF0ZXJhbCAoc2VsZWN0ICogZnJvbSBpbnQ4X3RibCB0MSwKICAgICAg ICAgIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20KICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdCAq IGZyb20gaW50OF90YmwgdDIKLSAgICAgICAgICAgICAgICAgICAgIHdoZXJlIHExID0gYW55IChz ZWxlY3QgcTIgZnJvbSBpbnQ4X3RibCB0MworICAgICAgICAgICAgICAgICAgICAgd2hlcmUgKHEx LCByYW5kb20oKSA+IDApID0gYW55IChzZWxlY3QgcTIsIHJhbmRvbSgpID4gMCBmcm9tIGludDhf dGJsIHQzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlcmUgcTIgPSAo c2VsZWN0IGdyZWF0ZXN0KHQxLnExLHQyLnEyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFuZCAoc2VsZWN0IHYuaWQ9MCkpIG9mZnNldCAwKSBzczIpIHNzCiAgICAg ICAgICB3aGVyZSB0MS5xMSA9IHNzLnEyKSBzczA7CkBAIC0zMDQ3LDcgKzMwNDcsNyBAQCBzZWxl Y3QgKiBmcm9tICh2YWx1ZXMgKDApLCAoMSkpIHYoaWQpLAogbGF0ZXJhbCAoc2VsZWN0ICogZnJv bSBpbnQ4X3RibCB0MSwKICAgICAgICAgIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20KICAgICAgICAg ICAgICAgICAgICAgKHNlbGVjdCAqIGZyb20gaW50OF90YmwgdDIKLSAgICAgICAgICAgICAgICAg ICAgIHdoZXJlIHExID0gYW55IChzZWxlY3QgcTIgZnJvbSBpbnQ4X3RibCB0MworICAgICAgICAg ICAgICAgICAgICAgd2hlcmUgKHExLCByYW5kb20oKSA+IDApID0gYW55IChzZWxlY3QgcTIsIHJh bmRvbSgpID4gMCBmcm9tIGludDhfdGJsIHQzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgd2hlcmUgcTIgPSAoc2VsZWN0IGdyZWF0ZXN0KHQxLnExLHQyLnEyKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCAoc2VsZWN0IHYuaWQ9MCkpIG9m ZnNldCAwKSBzczIpIHNzCiAgICAgICAgICB3aGVyZSB0MS5xMSA9IHNzLnEyKSBzczA7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzZWxlY3Quc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc3Vic2VsZWN0LnNxbAppbmRleCBiZDJlMzllZmQ0OC4uMmYzNjAxYTA1ODIgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNlbGVjdC5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc3Vic2VsZWN0LnNxbApAQCAtOTY4LDMgKzk2OCw0MCBAQCBzZWxlY3Qg KiBmcm9tICh3aXRoIHggYXMgKHNlbGVjdCAyIGFzIHkpIHNlbGVjdCAqIGZyb20geCkgc3M7CiBl eHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCiB3aXRoIHggYXMgKHNlbGVjdCAqIGZyb20gc3Vi c2VsZWN0X3RibCkKIHNlbGVjdCAqIGZyb20geCBmb3IgdXBkYXRlOworCistLSBQdWxsLXVwIHRo ZSBkaXJlY3QtY29ycmVsYXRlZCBBTllfU1VCTElOSworZXhwbGFpbiAoY29zdHMgb2ZmKQorc2Vs ZWN0ICogZnJvbSB0ZW5rMSBBIHdoZXJlIGh1bmRyZWQgaW4gKHNlbGVjdCBodW5kcmVkIGZyb20g dGVuazIgQiB3aGVyZSBCLm9kZCA9IEEub2RkKTsKKworZXhwbGFpbiAoY29zdHMgb2ZmKQorc2Vs ZWN0ICogZnJvbSB0ZW5rMSBBIHdoZXJlIGV4aXN0cworKHNlbGVjdCAxIGZyb20gdGVuazIgQgor d2hlcmUgQS5odW5kcmVkIGluIChzZWxlY3QgQy5odW5kcmVkIEZST00gdGVuazIgQworV0hFUkUg Yy5vZGQgPSBiLm9kZCkpOworCistLSB3ZSBzaG91bGQgb25seSB0cnkgdG8gcHVsbCB1cCB0aGUg c3VibGluayBpbnRvIFJIUyBvZiBhIGxlZnQgam9pbgorLS0gYnV0IGEuaHVuZHJlZCBpcyBub3Qg YXZhaWFibGUuCitleHBsYWluIChjb3N0cyBvZmYpCitTRUxFQ1QgKiBGUk9NIHRlbmsxIEEgTEVG VCBKT0lOIHRlbmsyIEIKK09OIEEuaHVuZHJlZCBpbiAoU0VMRUNUIGMuaHVuZHJlZCBGUk9NIHRl bmsyIEMgV0hFUkUgYy5vZGQgPSBiLm9kZCk7CisKKy0tIHdlIHNob3VsZCBvbmx5IHRyeSB0byBw dWxsIHVwIHRoZSBzdWJsaW5rIGludG8gUkhTIG9mIGEgbGVmdCBqb2luCistLSBidXQgYS5vZGQg aXMgbm90IGF2YWlhYmxlIGZvciB0aGlzLgorZXhwbGFpbiAoY29zdHMgb2ZmKQorU0VMRUNUICog RlJPTSB0ZW5rMSBBIExFRlQgSk9JTiB0ZW5rMiBCCitPTiBCLmh1bmRyZWQgaW4gKFNFTEVDVCBj Lmh1bmRyZWQgRlJPTSB0ZW5rMiBDIFdIRVJFIGMub2RkID0gYS5vZGQpOworCistLSBzaG91bGQg YmUgYWJsZSB0byBwdWxsIHVwIHNpbmNlIGFsbCB0aGUgcmVmZXJlbmNlcyBpcyBhdmFpbGFibGUK K2V4cGxhaW4gKGNvc3RzIG9mZikKK1NFTEVDVCAqIEZST00gdGVuazEgQSBMRUZUIEpPSU4gdGVu azIgQgorT04gQi5odW5kcmVkIGluIChTRUxFQ1QgYy5odW5kcmVkIEZST00gdGVuazIgQyBXSEVS RSBjLm9kZCA9IGIub2RkKTsKKworLS0gd2UgY2FuIHB1bGwgdXAgdGhlIHN1YmxpbmsgaW50byB0 aGUgaW5uZXIgSm9pbkV4cHIuCitleHBsYWluIChjb3N0cyBvZmYpCitTRUxFQ1QgKiBGUk9NIHRl bmsxIEEgSU5ORVIgSk9JTiB0ZW5rMiBCCitPTiBBLmh1bmRyZWQgaW4gKFNFTEVDVCBjLmh1bmRy ZWQgRlJPTSB0ZW5rMiBDIFdIRVJFIGMub2RkID0gYi5vZGQpOworCistLSB3ZSBjYW4gcHVsbCB1 cCB0aGUgYWdncmVnYXRlIHN1YmxpbmsgaW50byBSSFMgb2YgYSBsZWZ0IGpvaW4uCitleHBsYWlu IChjb3N0cyBvZmYpCitTRUxFQ1QgKiBGUk9NIHRlbmsxIEEgTEVGVCBKT0lOIHRlbmsyIEIKK09O IEIuaHVuZHJlZCBpbiAoU0VMRUNUIG1pbihjLmh1bmRyZWQpIEZST00gdGVuazIgQyBXSEVSRSBj Lm9kZCA9IGIub2RkKTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjM5LjMgKEFw cGxlIEdpdC0xNDUpCgo= --00000000000003af310611412bea--