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 1r1NhM-00ApaL-4f for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Nov 2023 09:21:09 +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 1r1NhK-002cbn-37 for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Nov 2023 09:21:06 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r1NhJ-002cbf-HG for pgsql-hackers@lists.postgresql.org; Fri, 10 Nov 2023 09:21:05 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r1NhD-005i0r-RT for pgsql-hackers@postgresql.org; Fri, 10 Nov 2023 09:21:04 +0000 Received: from [10.4.13.4] (unknown [93.174.131.141]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: a.rybakina@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 2E55CE20FD5; Fri, 10 Nov 2023 12:20:58 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1699608058; bh=obGh7+keb9iARclj2z1CSVe9ogG+vONjjEOHttlc814=; h=Message-ID:Date:User-Agent:Subject:From:To:Cc:References: In-Reply-To:From; b=JUcHr/ptm2xV9/RTENche6Fnab9f3w88jLKpNmyz+kou5gA59wMKVz0bAdaMe+ZPJ VdiP0o4BZGKu1R1yNgLlxTIGq2i395gh5TXzpfQXRNWUHIAE2p9EfbwabODSlpaRDn DfrFNgHCkjpsmeX52pku32y4yJwALjLlcnrS+siTCKu5qk5J2GcMV+qsD6DjS5UWbd jcj5zhwYdA11aShlmw9LdMbpAo98BrB8gOC0LJjZUDSIPhrASEWPYhggJYzMXKic1B S/NN3ocFibL34l/F7iYccfektmvR3HokrjFoaP//hZcmoStZCciKLLnJTImxWSyb1G 00gi9tM76WN7Q== Content-Type: multipart/mixed; boundary="------------Nj0uECegfOic3dszTbxNznin" Message-ID: <421656a9-5df7-41bb-9d58-1c1edbd5dc3e@postgrespro.ru> Date: Fri, 10 Nov 2023 12:20:57 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: POC, WIP: OR-clause support for indexes Content-Language: en-US From: Alena Rybakina To: pgsql-hackers@postgresql.org Cc: Peter Geoghegan , Robert Haas , "Finnerty, Jim" , Marcos Pegoraro , Andrey Lepikhov , teodor@sigaev.ru, Ranier Vilela , Tomas Vondra , Peter Eisentraut , Alexander Korotkov References: <567ED6CA.2040504@sigaev.ru> <89fb769c-7d45-f0c5-a9b3-b706c9661c57@postgrespro.ru> <668892c1-fb11-3a79-ce5e-1c194b7b3263@postgrespro.ru> <16a7e3aa-24c0-4986-8820-ea2857bd7b6b@postgrespro.ru> In-Reply-To: <16a7e3aa-24c0-4986-8820-ea2857bd7b6b@postgrespro.ru> 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. --------------Nj0uECegfOic3dszTbxNznin Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 06.11.2023 16:51, Alena Rybakina wrote: > I also support this approach. I have almost finished writing a patch > that fixes the first problem related to the quadratic complexity of > processing expressions by adding a hash table. > > I also added a check: if the number of groups is equal to the number > of OR expressions, we assume that no expressions need to be converted > and interrupt further execution. > > Now I am trying to fix the last problem in this patch: three tests > have indicated a problem related to incorrect conversion. I don't > think it can be serious, but I haven't figured out where the mistake > is yet. > > I added log like that: ERROR:  unrecognized node type: 0. I fixed this issue and added some cosmetic refactoring. The changes are presented in the or_patch_changes.diff file. -- Regards, Alena Rybakina Postgres Professional --------------Nj0uECegfOic3dszTbxNznin Content-Type: text/x-patch; charset=UTF-8; name="or_patch_changes.diff" Content-Disposition: attachment; filename="or_patch_changes.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDI1YTQyMzVkYmQ5Li40NjIxMmE3N2M2 NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00NCw3ICs0NCw3IEBACiAKIC8q IEdVQyBwYXJhbWV0ZXJzICovCiBib29sCQlUcmFuc2Zvcm1fbnVsbF9lcXVhbHMgPSBmYWxz ZTsKLWJvb2wJCW9yX3RyYW5zZm9ybV9saW1pdCA9IGZhbHNlOworYm9vbAkJZW5hYmxlX29y X3RyYW5zZm9ybWF0aW9uID0gZmFsc2U7CiAKIAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUV4 cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CkBAIC0xMDgsNyAr MTA4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgT3JDbGF1c2VHcm91cEVudHJ5CiAJTGlzdAkJICAg KmNvbnN0czsKIAlPaWQJCQkJc2NhbGFyX3R5cGU7CiAJT2lkCQkJCW9wbm87Ci0JRXhwciAJ CSAgICpleHByOworCU5vZGUgCQkgICAqZXhwcjsKIH0gT3JDbGF1c2VHcm91cEVudHJ5Owog CiBzdGF0aWMgaW50CkBAIC0xODksMTYgKzE4OSwxNiBAQCB0cmFuc2Zvcm1Cb29sRXhwck9y KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQm9vbEV4cHIgKmV4cHJfb3JpZykKIAkJCQkJCQkJCSAg SEFTSF9FTEVNIHwgSEFTSF9GVU5DVElPTiB8IEhBU0hfQ09NUEFSRSk7CiAKIAkvKiBJZiB0 aGlzIGlzIG5vdCBhbiAnT1InIGV4cHJlc3Npb24sIHNraXAgdGhlIHRyYW5zZm9ybWF0aW9u ICovCi0JaWYgKGV4cHJfb3JpZy0+Ym9vbG9wICE9IE9SX0VYUFIgfHwgIW9yX3RyYW5zZm9y bV9saW1pdCB8fCBsZW5fb3JzID09IDEgfHwgIW9yX2dyb3VwX2h0YWIpCisJaWYgKGV4cHJf b3JpZy0+Ym9vbG9wICE9IE9SX0VYUFIgfHwgIWVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiB8 fCBsZW5fb3JzID09IDEgfHwgIW9yX2dyb3VwX2h0YWIpCiAJCXJldHVybiB0cmFuc2Zvcm1C b29sRXhwcihwc3RhdGUsIChCb29sRXhwciAqKSBleHByX29yaWcpOwogCiAJZm9yZWFjaChs YywgZXhwcl9vcmlnLT5hcmdzKQogCXsKIAkJTm9kZQkJCSAgICphcmcgPSBsZmlyc3QobGMp OwotCQlOb2RlCQkJICAgKm9ycXVhbDsKLQkJTm9kZQkJCSAgICpjb25zdF9leHByOwotCQlO b2RlCQkJICAgKm5jb25zdF9leHByOwotCQlPckNsYXVzZUdyb3VwRW50cnkgKmdlbnRyeTsK KwkJTm9kZQkJCSAgICpvcnF1YWwgPSBOVUxMOworCQlOb2RlCQkJICAgKmNvbnN0X2V4cHIg PSBOVUxMOworCQlOb2RlCQkJICAgKm5jb25zdF9leHByID0gTlVMTDsKKwkJT3JDbGF1c2VH cm91cEVudHJ5ICpnZW50cnkgPSBOVUxMOwogCQlib29sCQkJCWZvdW5kOwogCQljaGFyCQkg ICAJICAgKnN0cjsKIApAQCAtMjcwLDcgKzI3MCw3IEBAIHRyYW5zZm9ybUJvb2xFeHByT3Io UGFyc2VTdGF0ZSAqcHN0YXRlLCBCb29sRXhwciAqZXhwcl9vcmlnKQogCQlnZW50cnkgPSBo YXNoX3NlYXJjaChvcl9ncm91cF9odGFiLCAmc3RyLCBIQVNIX0VOVEVSLCAmZm91bmQpOwog CQlnZW50cnktPm5vZGUgPSBuY29uc3RfZXhwcjsKIAkJZ2VudHJ5LT5jb25zdHMgPSBsaXN0 X21ha2UxKGNvbnN0X2V4cHIpOwotCQlnZW50cnktPmV4cHIgPSAoRXhwciAqKSBvcnF1YWw7 CisJCWdlbnRyeS0+ZXhwciA9IG9ycXVhbDsKIAkJZ2VudHJ5LT5oYXNoX2xlZnR2YXJfa2V5 ID0gc3RyOwogCX0KIApAQCAtMjgzLDcgKzI4Myw2IEBAIHRyYW5zZm9ybUJvb2xFeHByT3Io UGFyc2VTdGF0ZSAqcHN0YXRlLCBCb29sRXhwciAqZXhwcl9vcmlnKQogCQkqIHRyYW5zZm9y bWVkIGJvb2wgZXhwcmVzc2lvbi4KIAkJKi8KIAkJaGFzaF9kZXN0cm95KG9yX2dyb3VwX2h0 YWIpOwotCQlsaXN0X2ZyZWUob3JfbGlzdCk7CiAJCXJldHVybiAoTm9kZSAqKSBtYWtlQm9v bEV4cHIoT1JfRVhQUiwgb3JfbGlzdCwgZXhwcl9vcmlnLT5sb2NhdGlvbik7CiAJfQogCWVs c2UKQEAgLTM0NSw5ICszNDQsOSBAQCB0cmFuc2Zvcm1Cb29sRXhwck9yKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQm9vbEV4cHIgKmV4cHJfb3JpZykKIAkJCQkgKiBPSzogY29lcmNlIGFsbCB0 aGUgcmlnaHQtaGFuZCBub24tVmFyIGlucHV0cyB0byB0aGUgY29tbW9uCiAJCQkJICogdHlw ZSBhbmQgYnVpbGQgYW4gQXJyYXlFeHByIGZvciB0aGVtLgogCQkJCSAqLwotCQkJCUxpc3QJ ICAgKmFleHByczsKLQkJCQlBcnJheUV4cHIgICpuZXdhOwotCQkJCVNjYWxhckFycmF5T3BF eHByICpzYW9wZXhwcjsKKwkJCQlMaXN0CSAgICphZXhwcnMgPSBOSUw7CisJCQkJQXJyYXlF eHByICAqbmV3YSA9IE5VTEw7CisJCQkJU2NhbGFyQXJyYXlPcEV4cHIgKnNhb3BleHByID0g TlVMTDsKIAkJCQlMaXN0Q2VsbCAqbDsKIAogCQkJCWFleHBycyA9IE5JTDsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggNTRmZDA5YWJkZTcuLjM0MTFmMDIzZGY4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTA0OSwxMiArMTA0 OSwxMiBAQCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlO VUxMLCBOVUxMLCBOVUxMCiAJfSwKIAl7Ci0JCXsib3JfdHJhbnNmb3JtX2xpbWl0IiwgUEdD X1VTRVJTRVQsIFFVRVJZX1RVTklOR19PVEhFUiwKKwkJeyJlbmFibGVfb3JfdHJhbnNmb3Jt YXRpb24iLCBQR0NfVVNFUlNFVCwgUVVFUllfVFVOSU5HX09USEVSLAogCQkJZ2V0dGV4dF9u b29wKCJUcmFuc2Zvcm0gYSBzZXF1ZW5jZSBvZiBPUiBjbGF1c2VzIHRvIGFuIElOIGV4cHJl c3Npb24uIiksCiAJCQlnZXR0ZXh0X25vb3AoIlRoZSBwbGFubmVyIHdpbGwgcmVwbGFjZSBj bGF1c2VzIGxpa2UgJ3g9YzEgT1IgeD1jMiAuLiIKIAkJCQkJCSAidG8gdGhlIGNsYXVzZSAn eCBJTiAoYzEsYzIsLi4uKSciKQogCQl9LAotCQkmb3JfdHJhbnNmb3JtX2xpbWl0LAorCQkm ZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uLAogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwgTlVM TAogCX0sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAppbmRleCA3YTY5NDNjMTE2Yy4uM2E4 N2RlMDI4NTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgK KysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaApAQCAtMTcsNyArMTcsNyBA QAogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgVHJh bnNmb3JtX251bGxfZXF1YWxzOwotZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgb3JfdHJhbnNm b3JtX2xpbWl0OworZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgZW5hYmxlX29yX3RyYW5zZm9y bWF0aW9uOwogCiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3Rh dGUsIE5vZGUgKmV4cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5vdXQKaW5kZXggMjljMmJjNmEyYjIu LmRiYzhiYzNiZWQwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Ny ZWF0ZV9pbmRleC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVf aW5kZXgub3V0CkBAIC0xODgzLDcgKzE4ODMsNyBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSB0 ZW5rMQogICAgIDEwCiAoMSByb3cpCiAKLVNFVCBvcl90cmFuc2Zvcm1fbGltaXQgPSBvbjsK K1NFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKIEVYUExBSU4gKENPU1RTIE9G RikKIFNFTEVDVCAqIEZST00gdGVuazEKICAgV0hFUkUgdGhvdXNhbmQgPSA0MiBBTkQgKHRl bnRob3VzID0gMSBPUiB0ZW50aG91cyA9IDMgT1IgdGVudGhvdXMgPSA0Mik7CkBAIC0xOTk3 LDcgKzE5OTcsNyBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQogICAgIDEwCiAoMSBy b3cpCiAKLVJFU0VUIG9yX3RyYW5zZm9ybV9saW1pdDsKK1JFU0VUIGVuYWJsZV9vcl90cmFu c2Zvcm1hdGlvbjsKIC0tCiAtLSBDaGVjayBiZWhhdmlvciB3aXRoIGR1cGxpY2F0ZSBpbmRl eCBjb2x1bW4gY29udGVudHMKIC0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2d1Yy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2d1Yy5vdXQKaW5k ZXggYzA1MmIxMTNlZWEuLjBmMmIxYjE2MjAwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2d1Yy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9n dWMub3V0CkBAIC04NjEsNyArODYxLDcgQEAgU0VMRUNUIG5hbWUgRlJPTSB0YWJfc2V0dGlu Z3NfZmxhZ3MKICAgICAgICAgICAgbmFtZSAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgZGVmYXVsdF9zdGF0aXN0aWNzX3RhcmdldAotIG9yX3RyYW5zZm9y bV9saW1pdAorIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbgogKDIgcm93cykKIAogLS0gUnVu dGltZS1jb21wdXRlZCBHVUNzIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSBwcmVzZXQgY2F0ZWdv cnkuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAppbmRleCA5N2I0OTY0ODEyZS4u ZDk2OWIzMWUzZTMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9p bi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dApAQCAtNDIw Nyw3ICs0MjA3LDcgQEAgc2VsZWN0ICogZnJvbSB0ZW5rMSBhIGpvaW4gdGVuazEgYiBvbgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTIgPSA3KQog KDE5IHJvd3MpCiAKLVNFVCBvcl90cmFuc2Zvcm1fbGltaXQgPSBvbjsKK1NFVCBlbmFibGVf b3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKIGV4cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCAq IGZyb20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24KICAgKGEudW5pcXVlMSA9IDEgYW5kIGIu dW5pcXVlMSA9IDIpIG9yCkBAIC00MjU2LDcgKzQyNTYsNyBAQCBzZWxlY3QgKiBmcm9tIHRl bmsxIGEgam9pbiB0ZW5rMSBiIG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRl eCBDb25kOiAodW5pcXVlMSA9IDMpCiAoMTUgcm93cykKIAotUkVTRVQgb3JfdHJhbnNmb3Jt X2xpbWl0OworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOwogLS0KIC0tIHRlc3Qg cGxhY2VtZW50IG9mIG1vdmFibGUgcXVhbHMgaW4gYSBwYXJhbWV0ZXJpemVkIGpvaW4gdHJl ZQogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9u X3BydW5lLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5l Lm91dAppbmRleCAxNzg5ZDNjMWZkNy4uZmU4MTU0MTdjMTMgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVuZS5vdXQKQEAgLTEwMSw3ICsxMDEs NyBAQCBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBu b3QgbnVsbCBhbmQgKGEgPSAnYScgb3IgYSA9ICdjJwogICAgICAgICAgRmlsdGVyOiAoKGEg SVMgTk9UIE5VTEwpIEFORCAoKGEgPSAnYSc6OmJwY2hhcikgT1IgKGEgPSAnYyc6OmJwY2hh cikpKQogKDUgcm93cykKIAotU0VUIG9yX3RyYW5zZm9ybV9saW1pdCA9IG9uOworU0VUIGVu YWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOwogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxl Y3QgKiBmcm9tIGxwIHdoZXJlIGEgPSAnYScgb3IgYSA9ICdjJzsKICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTIyLDcgKzEyMiw3IEBAIGV4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIGlzIG5vdCBudWxsIGFu ZCAoYSA9ICdhJyBvciBhID0gJ2MnCiAgICAgICAgICBGaWx0ZXI6ICgoYSBJUyBOT1QgTlVM TCkgQU5EIChhID0gQU5ZICgne2EsY30nOjpicGNoYXJbXSkpKQogKDUgcm93cykKIAotUkVT RVQgb3JfdHJhbnNmb3JtX2xpbWl0OworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9u OwogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPD4gJ2cn OwogICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTY5Myw3ICs2OTMsNyBAQCBleHBsYWluIChj b3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIChhID0gMSBhbmQgYSA9IDMpIG9y IChhID4gMSBhbmQgYSA9CiAgICAgICAgICBGaWx0ZXI6ICgoKGEgPSAxKSBBTkQgKGEgPSAz KSkgT1IgKChhID4gMSkgQU5EIChhID0gMTUpKSkKICgxMSByb3dzKQogCi1TRVQgb3JfdHJh bnNmb3JtX2xpbWl0ID0gb247CitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0gb247 CiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAxIG9y IGEgPSA3OwogICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgCiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTcwNiwyOSAr NzA2LDI5IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUg YSA9IDEgb3IgYiA9ICdhYic7CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgQXBwZW5kCiAgICAtPiAgU2VxIFNjYW4gb24gcmxw MSBybHBfMQotICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAoKGIpOjp0ZXh0ID0gJ2Fi Jzo6dGV4dCkpCisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkg T1IgKGEgPSAxKSkKICAgIC0+ICBTZXEgU2NhbiBvbiBybHAyIHJscF8yCi0gICAgICAgICBG aWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgICAgICAg IEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEpKQogICAgLT4g IFNlcSBTY2FuIG9uIHJscDNhYmNkIHJscF8zCi0gICAgICAgICBGaWx0ZXI6ICgoYSA9IDEp IE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgICAgICAgIEZpbHRlcjogKCgoYik6 OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEpKQogICAgLT4gIFNlcSBTY2FuIG9uIHJs cDRfMSBybHBfNAotICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAoKGIpOjp0ZXh0ID0g J2FiJzo6dGV4dCkpCisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4 dCkgT1IgKGEgPSAxKSkKICAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzIgcmxwXzUKLSAgICAg ICAgIEZpbHRlcjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9ICdhYic6OnRleHQpKQorICAg ICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9ICdhYic6OnRleHQpIE9SIChhID0gMSkpCiAg ICAtPiAgU2VxIFNjYW4gb24gcmxwNF9kZWZhdWx0IHJscF82Ci0gICAgICAgICBGaWx0ZXI6 ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgICAgICAgIEZpbHRl cjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEpKQogICAgLT4gIFNlcSBT Y2FuIG9uIHJscDVfMSBybHBfNwotICAgICAgICAgRmlsdGVyOiAoKGEgPSAxKSBPUiAoKGIp Ojp0ZXh0ID0gJ2FiJzo6dGV4dCkpCisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0ZXh0ID0g J2FiJzo6dGV4dCkgT1IgKGEgPSAxKSkKICAgIC0+ICBTZXEgU2NhbiBvbiBybHA1X2RlZmF1 bHQgcmxwXzgKLSAgICAgICAgIEZpbHRlcjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9ICdh Yic6OnRleHQpKQorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9ICdhYic6OnRleHQp IE9SIChhID0gMSkpCiAgICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfMTAgcmxwXzkK LSAgICAgICAgIEZpbHRlcjogKChhID0gMSkgT1IgKChiKTo6dGV4dCA9ICdhYic6OnRleHQp KQorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9ICdhYic6OnRleHQpIE9SIChhID0g MSkpCiAgICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfMzAgcmxwXzEwCi0gICAgICAg ICBGaWx0ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgICAg ICAgIEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEpKQogICAg LT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0X251bGwgcmxwXzExCi0gICAgICAgICBGaWx0 ZXI6ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgICAgICAgIEZp bHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEpKQogICAgLT4gIFNl cSBTY2FuIG9uIHJscF9kZWZhdWx0X2RlZmF1bHQgcmxwXzEyCi0gICAgICAgICBGaWx0ZXI6 ICgoYSA9IDEpIE9SICgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSkKKyAgICAgICAgIEZpbHRl cjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEpKQogKDI1IHJvd3MpCiAK IGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+IDIwIGFu ZCBhIDwgMjc7CkBAIC04NDksNyArODQ5LDcgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxl Y3QgKiBmcm9tIHJscCB3aGVyZSAoYSA9IDEgYW5kIGEgPSAzKSBvciAoYSA+IDEgYW5kIGEg PQogICAgICAgICAgRmlsdGVyOiAoKChhID0gMSkgQU5EIChhID0gMykpIE9SICgoYSA+IDEp IEFORCAoYSA9IDE1KSkpCiAoMTEgcm93cykKIAotUkVTRVQgb3JfdHJhbnNmb3JtX2xpbWl0 OworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOwogLS0gbXVsdGktY29sdW1uIGtl eXMKIGNyZWF0ZSB0YWJsZSBtYzNwIChhIGludCwgYiBpbnQsIGMgaW50KSBwYXJ0aXRpb24g YnkgcmFuZ2UgKGEsIGFicyhiKSwgYyk7CiBjcmVhdGUgdGFibGUgbWMzcF9kZWZhdWx0IHBh cnRpdGlvbiBvZiBtYzNwIGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3N5c3ZpZXdzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lz dmlld3Mub3V0CmluZGV4IDI3MTMxM2ViZjg2Li44YTM4MGMyOWE0YyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQKQEAgLTEyMyw2ICsxMjMsNyBAQCBzZWxl Y3QgbmFtZSwgc2V0dGluZyBmcm9tIHBnX3NldHRpbmdzIHdoZXJlIG5hbWUgbGlrZSAnZW5h YmxlJSc7CiAgZW5hYmxlX21lbW9pemUgICAgICAgICAgICAgICAgIHwgb24KICBlbmFibGVf bWVyZ2Vqb2luICAgICAgICAgICAgICAgfCBvbgogIGVuYWJsZV9uZXN0bG9vcCAgICAgICAg ICAgICAgICB8IG9uCisgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uICAgICAgIHwgb2ZmCiAg ZW5hYmxlX3BhcmFsbGVsX2FwcGVuZCAgICAgICAgIHwgb24KICBlbmFibGVfcGFyYWxsZWxf aGFzaCAgICAgICAgICAgfCBvbgogIGVuYWJsZV9wYXJ0aXRpb25fcHJ1bmluZyAgICAgICB8 IG9uCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RpZHNjYW4ub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90aWRzY2FuLm91dAppbmRleCA4YTMxZTJl NjcwZC4uYmU0ZDg4MjAwYjYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvdGlkc2Nhbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90aWRzY2Fu Lm91dApAQCAtNTYsNyArNTYsNyBAQCBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hF UkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7CiAgKDAsMikgfCAgMgogKDIg cm93cykKIAotU0VUIG9yX3RyYW5zZm9ybV9saW1pdCA9IG9uOworU0VUIGVuYWJsZV9vcl90 cmFuc2Zvcm1hdGlvbiA9IG9uOwogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIGN0aWQs ICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAsMiknIE9SICcoMCwxKScgPSBjdGlk OwogICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgIApAQCAtNzIsNyArNzIsNyBAQCBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hF UkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7CiAgKDAsMikgfCAgMgogKDIg cm93cykKIAotUkVTRVQgb3JfdHJhbnNmb3JtX2xpbWl0OworUkVTRVQgZW5hYmxlX29yX3Ry YW5zZm9ybWF0aW9uOwogLS0gY3RpZCA9IFNjYWxhckFycmF5T3AgLSBpbXBsZW1lbnRlZCBh cyB0aWRzY2FuCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRp ZHNjYW4gV0hFUkUgY3RpZCA9IEFOWShBUlJBWVsnKDAsMSknLCAnKDAsMiknXTo6dGlkW10p OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5zcWwKaW5kZXggYTcwOWIyYzFh YmMuLjQ4YmIxYmMwYTBhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVh dGVfaW5kZXguc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5z cWwKQEAgLTczNyw3ICs3MzcsNyBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQogU0VM RUNUIGNvdW50KCopIEZST00gdGVuazEKICAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhv dXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDk5KTsKIAotU0VUIG9yX3RyYW5zZm9ybV9saW1p dCA9IG9uOworU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOwogRVhQTEFJTiAo Q09TVFMgT0ZGKQogU0VMRUNUICogRlJPTSB0ZW5rMQogICBXSEVSRSB0aG91c2FuZCA9IDQy IEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMyBPUiB0ZW50aG91cyA9IDQyKTsK QEAgLTc2Nyw3ICs3NjcsNyBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQogICBXSEVS RSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gNDEgT1Ig dGhvdXNhbmQgPSA5OSBBTkQgdGVudGhvdXMgPSAyKTsKIFNFTEVDVCBjb3VudCgqKSBGUk9N IHRlbmsxCiAgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhv dXNhbmQgPSA0MSBPUiB0aG91c2FuZCA9IDk5IEFORCB0ZW50aG91cyA9IDIpOwotUkVTRVQg b3JfdHJhbnNmb3JtX2xpbWl0OworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOwog CiAtLQogLS0gQ2hlY2sgYmVoYXZpb3Igd2l0aCBkdXBsaWNhdGUgaW5kZXggY29sdW1uIGNv bnRlbnRzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qb2luLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2pvaW4uc3FsCmluZGV4IGQ5NTY2M2I5YzMwLi4zZDA3MmNj ZTQ5OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvam9pbi5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvam9pbi5zcWwKQEAgLTEzOTYsNyArMTM5Niw3IEBAIGV4 cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCAqIGZyb20gdGVuazEgYSBqb2luIHRlbmsxIGIg b24KICAgKGEudW5pcXVlMSA9IDEgYW5kIGIudW5pcXVlMSA9IDIpIG9yCiAgICgoYS51bmlx dWUyID0gMyBvciBhLnVuaXF1ZTIgPSA3KSBhbmQgYi5odW5kcmVkID0gNCk7Ci1TRVQgb3Jf dHJhbnNmb3JtX2xpbWl0ID0gb247CitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0g b247CiBleHBsYWluIChjb3N0cyBvZmYpCiBzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0 ZW5rMSBiIG9uCiAgIChhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1ZTEgPSAyKSBvcgpAQCAt MTQwNSw3ICsxNDA1LDcgQEAgZXhwbGFpbiAoY29zdHMgb2ZmKQogc2VsZWN0ICogZnJvbSB0 ZW5rMSBhIGpvaW4gdGVuazEgYiBvbgogICAoYS51bmlxdWUxIDwgMjAgb3IgYS51bmlxdWUx ID0gMyBvciBhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1ZTEgPSAyKSBvcgogICAoKGEudW5p cXVlMiA9IDMgb3IgYS51bmlxdWUyID0gNykgYW5kIGIuaHVuZHJlZCA9IDQpOwotUkVTRVQg b3JfdHJhbnNmb3JtX2xpbWl0OworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOwog CiAtLQogLS0gdGVzdCBwbGFjZW1lbnQgb2YgbW92YWJsZSBxdWFscyBpbiBhIHBhcmFtZXRl cml6ZWQgam9pbiB0cmVlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0 aXRpb25fcHJ1bmUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3BydW5l LnNxbAppbmRleCA4ODcwOTkxMDU5Mi4uMWUyNzBhZTljMDYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9wcnVuZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcGFydGl0aW9uX3BydW5lLnNxbApAQCAtMjIsMTAgKzIyLDEwIEBAIGV4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIGlzIG51bGw7CiBleHBs YWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSA9ICdhJyBvciBhID0g J2MnOwogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMg bm90IG51bGwgYW5kIChhID0gJ2EnIG9yIGEgPSAnYycpOwogCi1TRVQgb3JfdHJhbnNmb3Jt X2xpbWl0ID0gb247CitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0gb247CiBleHBs YWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSA9ICdhJyBvciBhID0g J2MnOwogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMg bm90IG51bGwgYW5kIChhID0gJ2EnIG9yIGEgPSAnYycpOwotUkVTRVQgb3JfdHJhbnNmb3Jt X2xpbWl0OworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOwogCiBleHBsYWluIChj b3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSA8PiAnZyc7CiBleHBsYWluIChj b3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSA8PiAnYScgYW5kIGEgPD4gJ2Qn OwpAQCAtMTA2LDcgKzEwNiw3IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJv bSBybHAgd2hlcmUgYSA9IDEgYW5kIGEgPSAzOwkvKiBlbXB0eSAqLwogZXhwbGFpbiAoY29z dHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSAoYSA9IDEgYW5kIGEgPSAzKSBvciAo YSA+IDEgYW5kIGEgPSAxNSk7CiAKIAotU0VUIG9yX3RyYW5zZm9ybV9saW1pdCA9IG9uOwor U0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOwogZXhwbGFpbiAoY29zdHMgb2Zm KSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMSBvciBhID0gNzsKIGV4cGxhaW4gKGNv c3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDEgb3IgYiA9ICdhYic7CiBl eHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPiAyMCBhbmQg YSA8IDI3OwpAQCAtMTE5LDcgKzExOSw3IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0 ICogZnJvbSBybHAgd2hlcmUgYSA+IDEgYW5kIGEgPSAxMDsJLyogb25seSBkZWZhdWx0ICov CiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPiAxIGFu ZCBhID49MTU7CS8qIHJscDMgb253YXJkcywgaW5jbHVkaW5nIGRlZmF1bHQgKi8KIGV4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDEgYW5kIGEgPSAz OwkvKiBlbXB0eSAqLwogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3 aGVyZSAoYSA9IDEgYW5kIGEgPSAzKSBvciAoYSA+IDEgYW5kIGEgPSAxNSk7Ci1SRVNFVCBv cl90cmFuc2Zvcm1fbGltaXQ7CitSRVNFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb247CiAK IC0tIG11bHRpLWNvbHVtbiBrZXlzCiBjcmVhdGUgdGFibGUgbWMzcCAoYSBpbnQsIGIgaW50 LCBjIGludCkgcGFydGl0aW9uIGJ5IHJhbmdlIChhLCBhYnMoYiksIGMpOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGlkc2Nhbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC90aWRzY2FuLnNxbAppbmRleCBjNzM1ZTIxOTU4OS4uMDQ5OWJlZGI5ZWIgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpZHNjYW4uc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3RpZHNjYW4uc3FsCkBAIC0yMiwxMSArMjIsMTEgQEAgRVhQTEFJTiAo Q09TVFMgT0ZGKQogU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAn KDAsMiknIE9SICcoMCwxKScgPSBjdGlkOwogU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2Fu IFdIRVJFIGN0aWQgPSAnKDAsMiknIE9SICcoMCwxKScgPSBjdGlkOwogCi1TRVQgb3JfdHJh bnNmb3JtX2xpbWl0ID0gb247CitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0gb247 CiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hF UkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7CiBTRUxFQ1QgY3RpZCwgKiBG Uk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7Ci1S RVNFVCBvcl90cmFuc2Zvcm1fbGltaXQ7CitSRVNFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRp b247CiAKIC0tIGN0aWQgPSBTY2FsYXJBcnJheU9wIC0gaW1wbGVtZW50ZWQgYXMgdGlkc2Nh bgogRVhQTEFJTiAoQ09TVFMgT0ZGKQo= --------------Nj0uECegfOic3dszTbxNznin Content-Type: text/x-patch; charset=UTF-8; name="v8.2-Replace-OR-clause-to-ANY-expressions.patch" Content-Disposition: attachment; filename="v8.2-Replace-OR-clause-to-ANY-expressions.patch" Content-Transfer-Encoding: base64 RnJvbSA0NDE0NDhjOWQ4ZTBjNWI2M2QwZTllYTRkMmRhMDAxYjY0ODMxMWNlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogTW9uLCA2IE5vdiAyMDIzIDE2OjQ4OjAwICswMzAwClN1Ympl Y3Q6IFtQQVRDSF0gUmVwbGFjZSBPUiBjbGF1c2UgdG8gQU5ZIGV4cHJlc3Npb25zLiBSZXBs YWNlIChYPU4xKSBPUgogKFg9TjIpIC4uLiB3aXRoIFggPSBBTlkoTjEsIE4yKSBvbiB0aGUg c3RhZ2Ugb2YgdGhlIG9wdGltaXNlciB3aGVuIHdlIGFyZQogc3RpbGwgd29ya2luZyB3aXRo IGEgdHJlZSBleHByZXNzaW9uLiBGaXJzdGx5LCB3ZSBkbyBub3QgdHJ5IHRvIG1ha2UgYQog dHJhbnNmb3JtYXRpb24gZm9yICJub24tb3IiIGV4cHJlc3Npb25zIG9yIGluZXF1YWxpdGll cyBhbmQgdGhlIGNyZWF0aW9uIG9mIGEKIHJlbGF0aW9uIHdpdGggIm9yIiBleHByZXNzaW9u cyBvY2N1cnMgYWNjb3JkaW5nIHRvIHRoZSBzYW1lIHNjZW5hcmlvLgogU2Vjb25kbHksIHdl IGRvIG5vdCBtYWtlIHRyYW5zZm9ybWF0aW9ucyBpZiB0aGVyZSBhcmUgbGVzcyB0aGFuIHNl dAogb3JfdHJhbnNmb3JtX2xpbWl0LiBUaGlyZGx5LCBpdCBpcyB3b3J0aCBjb25zaWRlcmlu ZyB0aGF0IHdlIGNvbnNpZGVyICJvciIKIGV4cHJlc3Npb25zIG9ubHkgYXQgdGhlIGN1cnJl bnQgbGV2ZWwuCgpBdXRob3JzOiBBbGVuYSBSeWJha2luYSA8bGVuYS5yaWJhY2tpbmFAeWFu ZGV4LnJ1PiwgQW5kcmV5IExlcGlraG92IDxhLmxlcGlraG92QHBvc3RncmVzcHJvLnJ1PgpS ZXZpZXdlZC1ieTogUGV0ZXIgR2VvZ2hlZ2FuIDxwZ0Bib3d0LmllPiwgUmFuaWVyIFZpbGVs YSA8cmFuaWVyLnZmQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFsZXhhbmRlciBLb3JvdGtv diA8YWVrb3JvdGtvdkBnbWFpbC5jb20+LCBSb2JlcnQgSGFhcyA8cm9iZXJ0bWhhYXNAZ21h aWwuY29tPgotLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAg ICAgICB8IDI5OCArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2Mv Z3VjX3RhYmxlcy5jICAgICAgICAgICB8ICAxMCArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfZXhwci5oICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jcmVhdGVfaW5kZXgub3V0ICAgIHwgMTE1ICsrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZ3VjLm91dCAgICAgICAgICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9qb2luLm91dCAgICAgICAgICAgIHwgIDUwICsrKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0IHwgMTc5ICsrKysrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dCAgICAgICAgfCAgIDEg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90aWRzY2FuLm91dCAgICAgICAgIHwgIDE3 ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5zcWwgICAgICAgICB8ICAz MiArKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvam9pbi5zcWwgICAgICAgICAgICAgICAgIHwg IDEwICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9wcnVuZS5zcWwgICAgICB8 ICAyMiArKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGlkc2Nhbi5zcWwgICAgICAgICAgICAg IHwgICA2ICsKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAg ICB8ICAgMSArCiAxNCBmaWxlcyBjaGFuZ2VkLCA3NDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA2NGM1ODJjMzQ0Yy4u NDYyMTJhNzdjNjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTgsNiArMTgs NyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVk ZSAiY29tbW9uL2hhc2hmbi5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIK ICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIK QEAgLTQzLDYgKzQ0LDcgQEAKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGJvb2wJCVRyYW5z Zm9ybV9udWxsX2VxdWFscyA9IGZhbHNlOworYm9vbAkJZW5hYmxlX29yX3RyYW5zZm9ybWF0 aW9uID0gZmFsc2U7CiAKIAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUV4cHJSZWN1cnNlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CkBAIC05OCw3ICsxMDAsMzAxIEBAIHN0 YXRpYyBFeHByICptYWtlX2Rpc3RpbmN0X29wKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAq b3BuYW1lLAogCQkJCQkJCSAgTm9kZSAqbHRyZWUsIE5vZGUgKnJ0cmVlLCBpbnQgbG9jYXRp b24pOwogc3RhdGljIE5vZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIEFfRXhwciAqZGlzdGluY3RhLCBOb2RlICphcmcp OwordHlwZWRlZiBzdHJ1Y3QgT3JDbGF1c2VHcm91cEVudHJ5Cit7CisJY2hhcgkJICAgKmhh c2hfbGVmdHZhcl9rZXk7CisKKwlOb2RlCQkgICAqbm9kZTsKKwlMaXN0CQkgICAqY29uc3Rz OworCU9pZAkJCQlzY2FsYXJfdHlwZTsKKwlPaWQJCQkJb3BubzsKKwlOb2RlIAkJICAgKmV4 cHI7Cit9IE9yQ2xhdXNlR3JvdXBFbnRyeTsKKworc3RhdGljIGludAorb3JfbmFtZV9tYXRj aChjb25zdCB2b2lkICprZXkxLCBjb25zdCB2b2lkICprZXkyLCBTaXplIGtleXNpemUpCit7 CisJY29uc3QgY2hhciAqbmFtZTEgPSAqKGNvbnN0IGNoYXIgKmNvbnN0ICopIGtleTE7CisJ Y29uc3QgY2hhciAqbmFtZTIgPSAqKGNvbnN0IGNoYXIgKmNvbnN0ICopIGtleTI7CisKKwly ZXR1cm4gc3RyY21wKG5hbWUxLCBuYW1lMik7Cit9CisKK3N0YXRpYyB1aW50MzIKK29yX25h bWVfaGFzaChjb25zdCB2b2lkICprZXksIFNpemUga2V5c2l6ZSkKK3sKKwljb25zdCBjaGFy ICpuYW1lID0gKihjb25zdCBjaGFyICpjb25zdCAqKSBrZXk7CisKKwlyZXR1cm4gRGF0dW1H ZXRJbnQzMihoYXNoX2FueSgodW5zaWduZWQgY2hhciAqKW5hbWUsIHN0cmxlbihuYW1lKSkp OworfQorCitzdGF0aWMgY2hhciAqCitnZXRfa2V5X25jb25zdF9ub2RlKE5vZGUgKm5jb25z dF9ub2RlKQoreworCWlmIChJc0EobmNvbnN0X25vZGUsIE9wRXhwcikpCisJeworCQlPcEV4 cHIgCSAgICpjbGF1c2UgPSAoT3BFeHByKikgbmNvbnN0X25vZGU7CisJCU9wRXhwcgkgICAq dGVtcCA9IG1ha2VOb2RlKE9wRXhwcik7CisKKwkJdGVtcC0+b3BubyA9IGNsYXVzZS0+b3Bu bzsKKwkJdGVtcC0+b3BmdW5jaWQgPSBJbnZhbGlkT2lkOworCQl0ZW1wLT5vcHJlc3VsdHR5 cGUgPSBjbGF1c2UtPm9wcmVzdWx0dHlwZTsKKwkJdGVtcC0+b3ByZXRzZXQgPSBjbGF1c2Ut Pm9wcmV0c2V0OworCQl0ZW1wLT5vcGNvbGxpZCA9IGNsYXVzZS0+b3Bjb2xsaWQ7CisJCXRl bXAtPmlucHV0Y29sbGlkID0gY2xhdXNlLT5pbnB1dGNvbGxpZDsKKwkJdGVtcC0+bG9jYXRp b24gPSAtMTsKKworCQl0ZW1wLT5hcmdzID0gbGlzdF9jb3B5KGNsYXVzZS0+YXJncyk7CisJ CXJldHVybiBub2RlVG9TdHJpbmcodGVtcCk7CisJfQorCWVsc2UgaWYgKElzQShuY29uc3Rf bm9kZSwgVmFyKSkKKwl7CisJCVZhcgkgICAqY2xhdXNlID0gKFZhciopIG5jb25zdF9ub2Rl OworCQlWYXIJICAgKnZhciA9IG1ha2VOb2RlKFZhcik7CisKKwkJdmFyLT52YXJubyA9IGNs YXVzZS0+dmFybm87CisJCXZhci0+dmFyYXR0bm8gPSBjbGF1c2UtPnZhcmF0dG5vOworCQl2 YXItPnZhcnR5cGUgPSBjbGF1c2UtPnZhcnR5cGU7CisJCXZhci0+dmFydHlwbW9kID0gY2xh dXNlLT52YXJ0eXBtb2Q7CisJCXZhci0+dmFyY29sbGlkID0gY2xhdXNlLT52YXJjb2xsaWQ7 CisJCXZhci0+dmFybGV2ZWxzdXAgPSBjbGF1c2UtPnZhcmxldmVsc3VwOworCQl2YXItPnZh cmF0dG5vc3luID0gY2xhdXNlLT52YXJhdHRubzsKKwkJdmFyLT5sb2NhdGlvbiA9IC0xOwor CisJCXJldHVybiBub2RlVG9TdHJpbmcodmFyKTsKKwl9CisJZWxzZQorCXsKKwkJcmV0dXJu IE5VTEw7CisJfQorIH0KKworc3RhdGljIE5vZGUgKgordHJhbnNmb3JtQm9vbEV4cHJPcihQ YXJzZVN0YXRlICpwc3RhdGUsIEJvb2xFeHByICpleHByX29yaWcpCit7CisJTGlzdAkJICAg Km9yX2xpc3QgPSBOSUw7CisJTGlzdENlbGwJICAgKmxjOworCUhBU0hDVEwJCQlpbmZvOwor CUhUQUIgCQkgICAqb3JfZ3JvdXBfaHRhYiA9IE5VTEw7CisJaW50IAkJCWxlbl9vcnMgPSBs aXN0X2xlbmd0aChleHByX29yaWctPmFyZ3MpOworCisJTWVtU2V0KCZpbmZvLCAwLCBzaXpl b2YoaW5mbykpOworCWluZm8ua2V5c2l6ZSA9IHNpemVvZihjaGFyICopOworCWluZm8uZW50 cnlzaXplID0gc2l6ZW9mKE9yQ2xhdXNlR3JvdXBFbnRyeSk7CisJaW5mby5oYXNoID0gb3Jf bmFtZV9oYXNoOworCWluZm8ubWF0Y2ggPSBvcl9uYW1lX21hdGNoOworCW9yX2dyb3VwX2h0 YWIgPSBoYXNoX2NyZWF0ZSgiT1IgR3JvdXBzIiwKKwkJCQkJCQkJCSAgbGVuX29ycywKKwkJ CQkJCQkJCSAgJmluZm8sCisJCQkJCQkJCQkgIEhBU0hfRUxFTSB8IEhBU0hfRlVOQ1RJT04g fCBIQVNIX0NPTVBBUkUpOworCisJLyogSWYgdGhpcyBpcyBub3QgYW4gJ09SJyBleHByZXNz aW9uLCBza2lwIHRoZSB0cmFuc2Zvcm1hdGlvbiAqLworCWlmIChleHByX29yaWctPmJvb2xv cCAhPSBPUl9FWFBSIHx8ICFlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gfHwgbGVuX29ycyA9 PSAxIHx8ICFvcl9ncm91cF9odGFiKQorCQlyZXR1cm4gdHJhbnNmb3JtQm9vbEV4cHIocHN0 YXRlLCAoQm9vbEV4cHIgKikgZXhwcl9vcmlnKTsKKworCWZvcmVhY2gobGMsIGV4cHJfb3Jp Zy0+YXJncykKKwl7CisJCU5vZGUJCQkgICAqYXJnID0gbGZpcnN0KGxjKTsKKwkJTm9kZQkJ CSAgICpvcnF1YWwgPSBOVUxMOworCQlOb2RlCQkJICAgKmNvbnN0X2V4cHIgPSBOVUxMOwor CQlOb2RlCQkJICAgKm5jb25zdF9leHByID0gTlVMTDsKKwkJT3JDbGF1c2VHcm91cEVudHJ5 ICpnZW50cnkgPSBOVUxMOworCQlib29sCQkJCWZvdW5kOworCQljaGFyCQkgICAJICAgKnN0 cjsKKworCQkvKiBBdCBmaXJzdCwgdHJhbnNmb3JtIHRoZSBhcmcgYW5kIGV2YWx1YXRlIGNv bnN0YW50IGV4cHJlc3Npb25zLiAqLworCQlvcnF1YWwgPSB0cmFuc2Zvcm1FeHByUmVjdXJz ZShwc3RhdGUsIChOb2RlICopIGFyZyk7CisJCW9ycXVhbCA9IGNvZXJjZV90b19ib29sZWFu KHBzdGF0ZSwgb3JxdWFsLCAiT1IiKTsKKwkJb3JxdWFsID0gZXZhbF9jb25zdF9leHByZXNz aW9ucyhOVUxMLCBvcnF1YWwpOworCisJCWlmICghSXNBKG9ycXVhbCwgT3BFeHByKSkKKwkJ eworCQkJb3JfbGlzdCA9IGxhcHBlbmQob3JfbGlzdCwgb3JxdWFsKTsKKwkJCWNvbnRpbnVl OworCQl9CiAKKwkJLyoKKwkJICogRGV0ZWN0IHRoZSBjb25zdGFudCBzaWRlIG9mIHRoZSBj bGF1c2UuIFJlY2FsbCBub24tY29uc3RhbnQKKwkJICogZXhwcmVzc2lvbiBjYW4gYmUgbWFk ZSBub3Qgb25seSB3aXRoIFZhcnMsIGJ1dCBhbHNvIHdpdGggUGFyYW1zLAorCQkgKiB3aGlj aCBpcyBub3QgYm9uZGVkIHdpdGggYW55IHJlbGF0aW9uLiBUaHVzLCB3ZSBkZXRlY3QgdGhl IGNvbnN0CisJCSAqIHNpZGUgLSBpZiBhbm90aGVyIHNpZGUgaXMgY29uc3RhbnQgdG9vLCB0 aGUgb3JxdWFsIGNvdWxkbid0IGJlCisJCSAqIGFuIE9wRXhwci4KKwkJICogR2V0IHBvaW50 ZXJzIHRvIGNvbnN0YW50IGFuZCBleHByZXNzaW9uIHNpZGVzIG9mIHRoZSBxdWFsLgorCQkg Ki8KKwkJaWYgKElzQShnZXRfbGVmdG9wKG9ycXVhbCksIENvbnN0KSkKKwkJeworCQkJbmNv bnN0X2V4cHIgPSBnZXRfcmlnaHRvcChvcnF1YWwpOworCQkJY29uc3RfZXhwciA9IGdldF9s ZWZ0b3Aob3JxdWFsKTsKKwkJfQorCQllbHNlIGlmIChJc0EoZ2V0X3JpZ2h0b3Aob3JxdWFs KSwgQ29uc3QpKQorCQl7CisJCQljb25zdF9leHByID0gZ2V0X3JpZ2h0b3Aob3JxdWFsKTsK KwkJCW5jb25zdF9leHByID0gZ2V0X2xlZnRvcChvcnF1YWwpOworCQl9CisJCWVsc2UKKwkJ eworCQkJb3JfbGlzdCA9IGxhcHBlbmQob3JfbGlzdCwgb3JxdWFsKTsKKwkJCWNvbnRpbnVl OworCQl9CisKKwkJc3RyID0gZ2V0X2tleV9uY29uc3Rfbm9kZShuY29uc3RfZXhwcik7CisK KwkJaWYgKCFvcF9tZXJnZWpvaW5hYmxlKCgoT3BFeHByICopIG9ycXVhbCktPm9wbm8sIGV4 cHJUeXBlKG5jb25zdF9leHByKSkgfHwgc3RyID09IE5VTEwpCisJCXsKKwkJCW9yX2xpc3Qg PSBsYXBwZW5kKG9yX2xpc3QsIG9ycXVhbCk7CisJCQljb250aW51ZTsKKwkJfQorCisJCS8q CisJCSogQXQgdGhpcyBwb2ludCB3ZSBkZWZpbml0ZWx5IGhhdmUgYSB0cmFuc2Zvcm1hYmxl IGNsYXVzZS4KKwkJKiBDbGFzc2lmeSBpdCBhbmQgYWRkIGludG8gc3BlY2lmaWMgZ3JvdXAg b2YgY2xhdXNlcywgb3IgY3JlYXRlIG5ldworCQkqIGdyb3VwLgorCQkqIFRPRE86IHRvIG1h bmFnZSBjb21wbGV4aXR5IGluIHRoZSBjYXNlIG9mIG1hbnkgZGlmZmVyZW50IGNsYXVzZXMK KwkJKiAoWDE9QzEpIE9SIChYMj1DMiBPUikgLi4uIChYTiA9IENOKSB3ZSBjb3VsZCBpbnZl bnQgc29tZXRoaW5nCisJCSogbGlrZSBhIGhhc2ggdGFibGUuIEJ1dCBhbHNvIHdlIGJlbGll dmUsIHRoYXQgdGhlIGNhc2Ugb2YgbWFueQorCQkqIGRpZmZlcmVudCB2YXJpYWJsZSBzaWRl cyBpcyB2ZXJ5IHJhcmUuCisJCSovCisJCWdlbnRyeSA9IGhhc2hfc2VhcmNoKG9yX2dyb3Vw X2h0YWIsICZzdHIsIEhBU0hfRklORCwgJmZvdW5kKTsKKworCQlpZiAoZm91bmQpCisJCXsK KwkJCWdlbnRyeS0+Y29uc3RzID0gbGFwcGVuZChnZW50cnktPmNvbnN0cywgY29uc3RfZXhw cik7CisJCQkvKgorCQkJCSogVGhlIGNsYXVzZSBjbGFzc2lmaWVkIHN1Y2Nlc3NmdWxseSBh bmQgYWRkZWQgaW50byBleGlzdGVkCisJCQkJKiBjbGF1c2UgZ3JvdXAuCisJCQkJKi8KKwkJ CWNvbnRpbnVlOworCQl9CisKKwkJLyogTmV3IGNsYXVzZSBncm91cCBuZWVkZWQgKi8KKwkJ Z2VudHJ5ID0gaGFzaF9zZWFyY2gob3JfZ3JvdXBfaHRhYiwgJnN0ciwgSEFTSF9FTlRFUiwg JmZvdW5kKTsKKwkJZ2VudHJ5LT5ub2RlID0gbmNvbnN0X2V4cHI7CisJCWdlbnRyeS0+Y29u c3RzID0gbGlzdF9tYWtlMShjb25zdF9leHByKTsKKwkJZ2VudHJ5LT5leHByID0gb3JxdWFs OworCQlnZW50cnktPmhhc2hfbGVmdHZhcl9rZXkgPSBzdHI7CisJfQorCisJaWYgKG9yX2dy b3VwX2h0YWIgJiYgKGhhc2hfZ2V0X251bV9lbnRyaWVzKG9yX2dyb3VwX2h0YWIpIDwgMSB8 fAorCSAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoX2dldF9udW1fZW50cmllcyhvcl9n cm91cF9odGFiKSA9PSBsZW5fb3JzKSkKKwl7CisJCS8qCisJCSogTm8gYW55IHRyYW5zZm9y bWF0aW9ucyBwb3NzaWJsZSB3aXRoIHRoaXMgbGlzdCBvZiBhcmd1bWVudHMuIEhlcmUgd2UK KwkJKiBhbHJlYWR5IG1hZGUgYWxsIHVuZGVybHlpbmcgdHJhbnNmb3JtYXRpb25zLiBUaHVz LCBqdXN0IHJldHVybiB0aGUKKwkJKiB0cmFuc2Zvcm1lZCBib29sIGV4cHJlc3Npb24uCisJ CSovCisJCWhhc2hfZGVzdHJveShvcl9ncm91cF9odGFiKTsKKwkJcmV0dXJuIChOb2RlICop IG1ha2VCb29sRXhwcihPUl9FWFBSLCBvcl9saXN0LCBleHByX29yaWctPmxvY2F0aW9uKTsK Kwl9CisJZWxzZQorCXsKKwkJSEFTSF9TRVFfU1RBVFVTCQloYXNoX3NlcTsKKwkJT3JDbGF1 c2VHcm91cEVudHJ5ICpnZW50cnk7CisKKwkJaGFzaF9zZXFfaW5pdCgmaGFzaF9zZXEsIG9y X2dyb3VwX2h0YWIpOworCisJCS8qIExldCdzIGNvbnZlcnQgZWFjaCBncm91cCBvZiBjbGF1 c2VzIHRvIGFuIElOIG9wZXJhdGlvbi4gKi8KKworCQkvKgorCQkqIEdvIHRocm91Z2ggdGhl IGxpc3Qgb2YgZ3JvdXBzIGFuZCBjb252ZXJ0IGVhY2gsIHdoZXJlIG51bWJlciBvZgorCQkq IGNvbnN0cyBtb3JlIHRoYW4gMS4gdHJpdmlhbCBncm91cHMgbW92ZSB0byBPUi1saXN0IGFn YWluCisJCSovCisKKwkJd2hpbGUgKChnZW50cnkgPSAoT3JDbGF1c2VHcm91cEVudHJ5ICop IGhhc2hfc2VxX3NlYXJjaCgmaGFzaF9zZXEpKSAhPSBOVUxMKQorCQl7CisJCQlMaXN0CQkJ ICAgKmFsbGV4cHJzOworCQkJT2lkCQkJCSAgICBzY2FsYXJfdHlwZTsKKwkJCU9pZAkJCQkJ YXJyYXlfdHlwZTsKKworCQkJQXNzZXJ0KGxpc3RfbGVuZ3RoKGdlbnRyeS0+Y29uc3RzKSA+ IDApOworCisJCQlpZiAobGlzdF9sZW5ndGgoZ2VudHJ5LT5jb25zdHMpID09IDEpCisJCQl7 CisJCQkJLyoKKwkJCQkgKiBPbmx5IG9uZSBlbGVtZW50IGluIHRoZSBjbGFzcy4gUmV0dXJu IHJpbmZvIGludG8gdGhlIEJvb2xFeHByCisJCQkJICogYXJncyBsaXN0IHVuY2hhbmdlZC4K KwkJCQkgKi8KKwkJCQlsaXN0X2ZyZWUoZ2VudHJ5LT5jb25zdHMpOworCQkJCW9yX2xpc3Qg PSBsYXBwZW5kKG9yX2xpc3QsIGdlbnRyeS0+ZXhwcik7CisJCQkJY29udGludWU7CisJCQl9 CisKKwkJCS8qCisJCQkgKiBEbyB0aGUgdHJhbnNmb3JtYXRpb24uCisJCQkgKgorCQkJICog Rmlyc3Qgb2YgYWxsLCB0cnkgdG8gc2VsZWN0IGEgY29tbW9uIHR5cGUgZm9yIHRoZSBhcnJh eSBlbGVtZW50cy4KKwkJCSAqIE5vdGUgdGhhdCBzaW5jZSB0aGUgTEhTJyB0eXBlIGlzIGZp cnN0IGluIHRoZSBsaXN0LCBpdCB3aWxsIGJlCisJCQkgKiBwcmVmZXJyZWQgd2hlbiB0aGVy ZSBpcyBkb3VidCAoZWcsIHdoZW4gYWxsIHRoZSBSSFMgaXRlbXMgYXJlCisJCQkgKiB1bmtu b3duIGxpdGVyYWxzKS4KKwkJCSAqCisJCQkgKiBOb3RlOiB1c2UgbGlzdF9jb25jYXQgaGVy ZSBub3QgbGNvbnMsIHRvIGF2b2lkIGRhbWFnaW5nIHJub252YXJzLgorCQkJICoKKwkJCSAq IEFzIGEgc291cmNlIG9mIGluc2lkZXMsIHVzZSBtYWtlX3NjYWxhcl9hcnJheV9vcCgpCisJ CQkgKi8KKwkJCWFsbGV4cHJzID0gbGlzdF9jb25jYXQobGlzdF9tYWtlMShnZW50cnktPm5v ZGUpLCBnZW50cnktPmNvbnN0cyk7CisJCQlzY2FsYXJfdHlwZSA9IHNlbGVjdF9jb21tb25f dHlwZShOVUxMLCBhbGxleHBycywgTlVMTCwgTlVMTCk7CisKKwkJCWlmIChzY2FsYXJfdHlw ZSAhPSBSRUNPUkRPSUQgJiYgT2lkSXNWYWxpZChzY2FsYXJfdHlwZSkpCisJCQkJYXJyYXlf dHlwZSA9IGdldF9hcnJheV90eXBlKHNjYWxhcl90eXBlKTsKKwkJCWVsc2UKKwkJCQlhcnJh eV90eXBlID0gSW52YWxpZE9pZDsKKworCQkJaWYgKGFycmF5X3R5cGUgIT0gSW52YWxpZE9p ZCkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIE9LOiBjb2VyY2UgYWxsIHRoZSByaWdodC1oYW5k IG5vbi1WYXIgaW5wdXRzIHRvIHRoZSBjb21tb24KKwkJCQkgKiB0eXBlIGFuZCBidWlsZCBh biBBcnJheUV4cHIgZm9yIHRoZW0uCisJCQkJICovCisJCQkJTGlzdAkgICAqYWV4cHJzID0g TklMOworCQkJCUFycmF5RXhwciAgKm5ld2EgPSBOVUxMOworCQkJCVNjYWxhckFycmF5T3BF eHByICpzYW9wZXhwciA9IE5VTEw7CisJCQkJTGlzdENlbGwgKmw7CisKKwkJCQlhZXhwcnMg PSBOSUw7CisKKwkJCQlmb3JlYWNoKGwsIGdlbnRyeS0+Y29uc3RzKQorCQkJCXsKKwkJCQkJ Tm9kZQkgICAqcmV4cHIgPSAoTm9kZSAqKSBsZmlyc3QobCk7CisKKwkJCQkJcmV4cHIgPSBj b2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCByZXhwciwKKwkJCQkJCQkJCQkJCXNjYWxh cl90eXBlLAorCQkJCQkJCQkJCQkJIklOIik7CisJCQkJCWFleHBycyA9IGxhcHBlbmQoYWV4 cHJzLCByZXhwcik7CisJCQkJfQorCisJCQkJbmV3YSA9IG1ha2VOb2RlKEFycmF5RXhwcik7 CisJCQkJLyogYXJyYXlfY29sbGlkIHdpbGwgYmUgc2V0IGJ5IHBhcnNlX2NvbGxhdGUuYyAq LworCQkJCW5ld2EtPmVsZW1lbnRfdHlwZWlkID0gc2NhbGFyX3R5cGU7CisJCQkJbmV3YS0+ YXJyYXlfdHlwZWlkID0gYXJyYXlfdHlwZTsKKwkJCQluZXdhLT5tdWx0aWRpbXMgPSBmYWxz ZTsKKwkJCQluZXdhLT5lbGVtZW50cyA9IGFleHByczsKKwkJCQluZXdhLT5sb2NhdGlvbiA9 IC0xOworCisJCQkJc2FvcGV4cHIgPQorCQkJCQkoU2NhbGFyQXJyYXlPcEV4cHIgKikKKwkJ CQkJCW1ha2Vfc2NhbGFyX2FycmF5X29wKHBzdGF0ZSwKKwkJCQkJCQkJCQkJIGxpc3RfbWFr ZTEobWFrZVN0cmluZygoY2hhciAqKSAiPSIpKSwKKwkJCQkJCQkJCQkJIHRydWUsCisJCQkJ CQkJCQkJCSBnZW50cnktPm5vZGUsCisJCQkJCQkJCQkJCSAoTm9kZSAqKSBuZXdhLAorCQkJ CQkJCQkJCQkgLTEpOworCisJCQkJb3JfbGlzdCA9IGxhcHBlbmQob3JfbGlzdCwgKHZvaWQg Kikgc2FvcGV4cHIpOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCWxpc3RfZnJlZShnZW50 cnktPmNvbnN0cyk7CisJCQkJb3JfbGlzdCA9IGxhcHBlbmQob3JfbGlzdCwgZ2VudHJ5LT5l eHByKTsKKwkJCX0KKwkJCWhhc2hfc2VhcmNoKG9yX2dyb3VwX2h0YWIsICZnZW50cnktPmhh c2hfbGVmdHZhcl9rZXksIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJfQorCQloYXNoX2Rlc3Ry b3kob3JfZ3JvdXBfaHRhYik7CisJfQorCisJLyogT25lIG1vcmUgdHJpY2s6IGFzc2VtYmxl IGNvcnJlY3QgY2xhdXNlICovCisJcmV0dXJuIChOb2RlICopICgobGlzdF9sZW5ndGgob3Jf bGlzdCkgPiAxKSA/CisJCQkJCQltYWtlQm9vbEV4cHIoT1JfRVhQUiwgb3JfbGlzdCwgZXhw cl9vcmlnLT5sb2NhdGlvbikgOgorCQkJCQkJbGluaXRpYWwob3JfbGlzdCkpOworfQogCiAv KgogICogdHJhbnNmb3JtRXhwciAtCkBAIC0yMTIsNyArNTA4LDcgQEAgdHJhbnNmb3JtRXhw clJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQkJfQogCiAJCWNh c2UgVF9Cb29sRXhwcjoKLQkJCXJlc3VsdCA9IHRyYW5zZm9ybUJvb2xFeHByKHBzdGF0ZSwg KEJvb2xFeHByICopIGV4cHIpOworCQkJcmVzdWx0ID0gKE5vZGUgKil0cmFuc2Zvcm1Cb29s RXhwck9yKHBzdGF0ZSwgKEJvb2xFeHByICopIGV4cHIpOwogCQkJYnJlYWs7CiAKIAkJY2Fz ZSBUX0Z1bmNDYWxsOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwppbmRleCBi ZWVkNzJhYmJkNi4uMzQxMWYwMjNkZjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3Rh Ymxlcy5jCkBAIC0xMDQ4LDYgKzEwNDgsMTYgQEAgc3RydWN0IGNvbmZpZ19ib29sIENvbmZp Z3VyZU5hbWVzQm9vbFtdID0KIAkJdHJ1ZSwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCisJ eworCQl7ImVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiIsIFBHQ19VU0VSU0VULCBRVUVSWV9U VU5JTkdfT1RIRVIsCisJCQlnZXR0ZXh0X25vb3AoIlRyYW5zZm9ybSBhIHNlcXVlbmNlIG9m IE9SIGNsYXVzZXMgdG8gYW4gSU4gZXhwcmVzc2lvbi4iKSwKKwkJCWdldHRleHRfbm9vcCgi VGhlIHBsYW5uZXIgd2lsbCByZXBsYWNlIGNsYXVzZXMgbGlrZSAneD1jMSBPUiB4PWMyIC4u IgorCQkJCQkJICJ0byB0aGUgY2xhdXNlICd4IElOIChjMSxjMiwuLi4pJyIpCisJCX0sCisJ CSZlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24sCisJCWZhbHNlLAorCQlOVUxMLCBOVUxMLCBO VUxMCisJfSwKIAl7CiAJCS8qCiAJCSAqIE5vdCBmb3IgZ2VuZXJhbCB1c2UgLS0tIHVzZWQg YnkgU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBhbmQgU0VUCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X2V4cHIuaAppbmRleCA3ZDM4Y2E3NWY3Yi4uM2E4N2RlMDI4NTkgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX2V4cHIuaApAQCAtMTcsNiArMTcsNyBAQAogCiAvKiBHVUMgcGFyYW1ldGVycyAq LwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgVHJhbnNmb3JtX251bGxfZXF1YWxzOworZXh0 ZXJuIFBHRExMSU1QT1JUIGJvb2wgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uOwogCiBleHRl cm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIs IFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NyZWF0ZV9pbmRleC5vdXQKaW5kZXggYWNmZDlkMWY0ZjcuLmRiYzhiYzNiZWQwIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfaW5kZXgub3V0CkBAIC0x ODgzLDYgKzE4ODMsMTIxIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCiAgICAgMTAK ICgxIHJvdykKIAorU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOworRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUICogRlJPTSB0ZW5rMQorICBXSEVSRSB0aG91c2FuZCA9 IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMyBPUiB0ZW50aG91cyA9IDQy KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgSW5kZXggU2NhbiB1c2luZyB0ZW5rMV90aG91c190ZW50aG91cyBvbiB0ZW5rMQorICAg SW5kZXggQ29uZDogKCh0aG91c2FuZCA9IDQyKSBBTkQgKHRlbnRob3VzID0gQU5ZICgnezEs Myw0Mn0nOjppbnRlZ2VyW10pKSkKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVuazEK KyAgV0hFUkUgdGhvdXNhbmQgPSA0MiBBTkQgKHRlbnRob3VzID0gMSBPUiB0ZW50aG91cyA9 IDMgT1IgdGVudGhvdXMgPSA0Mik7CisgdW5pcXVlMSB8IHVuaXF1ZTIgfCB0d28gfCBmb3Vy IHwgdGVuIHwgdHdlbnR5IHwgaHVuZHJlZCB8IHRob3VzYW5kIHwgdHdvdGhvdXNhbmQgfCBm aXZldGhvdXMgfCB0ZW50aG91cyB8IG9kZCB8IGV2ZW4gfCBzdHJpbmd1MSB8IHN0cmluZ3Uy IHwgc3RyaW5nNCAKKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0rLS0tLS0tKy0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLSstLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LQorICAgICAgNDIgfCAgICA1NTMwIHwgICAwIHwgICAgMiB8ICAgMiB8ICAgICAgMiB8ICAg ICAgNDIgfCAgICAgICA0MiB8ICAgICAgICAgIDQyIHwgICAgICAgIDQyIHwgICAgICAgNDIg fCAgODQgfCAgIDg1IHwgUUJBQUFBICAgfCBTRUlBQUEgICB8IE9PT094eAorKDEgcm93KQor CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBX SEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gOTkp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRl bmsxCisgICAgICAgICBSZWNoZWNrIENvbmQ6ICgoaHVuZHJlZCA9IDQyKSBBTkQgKHRob3Vz YW5kID0gQU5ZICgnezQyLDk5fSc6OmludGVnZXJbXSkpKQorICAgICAgICAgLT4gIEJpdG1h cEFuZAorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX2h1 bmRyZWQKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChodW5kcmVkID0gNDIp CisgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNf dGVudGhvdXMKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh0aG91c2FuZCA9 IEFOWSAoJ3s0Miw5OX0nOjppbnRlZ2VyW10pKQorKDggcm93cykKKworU0VMRUNUIGNvdW50 KCopIEZST00gdGVuazEKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0 MiBPUiB0aG91c2FuZCA9IDk5KTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMAorKDEgcm93 KQorCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQor ICBXSEVSRSB0aG91c2FuZCA9IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0g MykgT1IgdGhvdXNhbmQgPSA0MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4g b24gdGVuazEKKyAgICAgICAgIFJlY2hlY2sgQ29uZDogKCgodGhvdXNhbmQgPSA0MikgQU5E ICh0ZW50aG91cyA9IEFOWSAoJ3sxLDN9Jzo6aW50ZWdlcltdKSkpIE9SICh0aG91c2FuZCA9 IDQxKSkKKyAgICAgICAgIC0+ICBCaXRtYXBPcgorICAgICAgICAgICAgICAgLT4gIEJpdG1h cCBJbmRleCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAg ICAgICBJbmRleCBDb25kOiAoKHRob3VzYW5kID0gNDIpIEFORCAodGVudGhvdXMgPSBBTlkg KCd7MSwzfSc6OmludGVnZXJbXSkpKQorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIHRlbmsxX3Rob3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAodGhvdXNhbmQgPSA0MSkKKyg4IHJvd3MpCisKK1NFTEVDVCBjb3VudCgq KSBGUk9NIHRlbmsxCisgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0ZW50aG91cyA9IDEg T1IgdGVudGhvdXMgPSAzKSBPUiB0aG91c2FuZCA9IDQxOworIGNvdW50IAorLS0tLS0tLQor ICAgIDEwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgq KSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIg T1IgdGhvdXNhbmQgPSA5OSBPUiB0ZW50aG91cyA8IDIpIE9SIHRob3VzYW5kID0gNDE7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxCisgICAgICAgICBSZWNoZWNrIENvbmQ6ICgo KGh1bmRyZWQgPSA0MikgQU5EICgodGVudGhvdXMgPCAyKSBPUiAodGhvdXNhbmQgPSBBTlkg KCd7NDIsOTl9Jzo6aW50ZWdlcltdKSkpKSBPUiAodGhvdXNhbmQgPSA0MSkpCisgICAgICAg ICAtPiAgQml0bWFwT3IKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXBBbmQKKyAgICAgICAg ICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV9odW5kcmVkCisg ICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoaHVuZHJlZCA9IDQyKQor ICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcE9yCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh0ZW50aG91 cyA8IDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNj YW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6ICh0aG91c2FuZCA9IEFOWSAoJ3s0Miw5OX0nOjppbnRlZ2Vy W10pKQorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3Ro b3VzX3RlbnRob3VzCisgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodGhvdXNh bmQgPSA0MSkKKygxNCByb3dzKQorCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBX SEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gOTkg T1IgdGVudGhvdXMgPCAyKSBPUiB0aG91c2FuZCA9IDQxOworIGNvdW50IAorLS0tLS0tLQor ICAgIDIwCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgq KSBGUk9NIHRlbmsxCisgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIg T1IgdGhvdXNhbmQgPSA0MSBPUiB0aG91c2FuZCA9IDk5IEFORCB0ZW50aG91cyA9IDIpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAg IC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIHRlbmsxCisgICAgICAgICBSZWNoZWNrIENvbmQ6 ICgoaHVuZHJlZCA9IDQyKSBBTkQgKCgodGhvdXNhbmQgPSA5OSkgQU5EICh0ZW50aG91cyA9 IDIpKSBPUiAodGhvdXNhbmQgPSBBTlkgKCd7NDIsNDF9Jzo6aW50ZWdlcltdKSkpKQorICAg ICAgICAgLT4gIEJpdG1hcEFuZAorICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBT Y2FuIG9uIHRlbmsxX2h1bmRyZWQKKyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 IChodW5kcmVkID0gNDIpCisgICAgICAgICAgICAgICAtPiAgQml0bWFwT3IKKyAgICAgICAg ICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV90aG91c190ZW50 aG91cworICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKCh0aG91c2Fu ZCA9IDk5KSBBTkQgKHRlbnRob3VzID0gMikpCisgICAgICAgICAgICAgICAgICAgICAtPiAg Qml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdGhvdXNfdGVudGhvdXMKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh0aG91c2FuZCA9IEFOWSAoJ3s0Miw0MX0n OjppbnRlZ2VyW10pKQorKDExIHJvd3MpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsx CisgIFdIRVJFIGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQg PSA0MSBPUiB0aG91c2FuZCA9IDk5IEFORCB0ZW50aG91cyA9IDIpOworIGNvdW50IAorLS0t LS0tLQorICAgIDEwCisoMSByb3cpCisKK1JFU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlv bjsKIC0tCiAtLSBDaGVjayBiZWhhdmlvciB3aXRoIGR1cGxpY2F0ZSBpbmRleCBjb2x1bW4g Y29udGVudHMKIC0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2d1 Yy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2d1Yy5vdXQKaW5kZXggMTI3Yzk1 MzI5NzYuLjBmMmIxYjE2MjAwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2d1Yy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ndWMub3V0CkBA IC04NjEsNyArODYxLDggQEAgU0VMRUNUIG5hbWUgRlJPTSB0YWJfc2V0dGluZ3NfZmxhZ3MK ICAgICAgICAgICAgbmFtZSAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgZGVmYXVsdF9zdGF0aXN0aWNzX3RhcmdldAotKDEgcm93KQorIGVuYWJsZV9vcl90 cmFuc2Zvcm1hdGlvbgorKDIgcm93cykKIAogLS0gUnVudGltZS1jb21wdXRlZCBHVUNzIHNo b3VsZCBiZSBwYXJ0IG9mIHRoZSBwcmVzZXQgY2F0ZWdvcnkuCiBTRUxFQ1QgbmFtZSBGUk9N IHRhYl9zZXR0aW5nc19mbGFncwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9qb2luLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKaW5k ZXggZGRjNGU2OTIzMjkuLmQ5NjliMzFlM2UzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2pvaW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv am9pbi5vdXQKQEAgLTQyMDcsNiArNDIwNyw1NiBAQCBzZWxlY3QgKiBmcm9tIHRlbmsxIGEg am9pbiB0ZW5rMSBiIG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25k OiAodW5pcXVlMiA9IDcpCiAoMTkgcm93cykKIAorU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1h dGlvbiA9IG9uOworZXhwbGFpbiAoY29zdHMgb2ZmKQorc2VsZWN0ICogZnJvbSB0ZW5rMSBh IGpvaW4gdGVuazEgYiBvbgorICAoYS51bmlxdWUxID0gMSBhbmQgYi51bmlxdWUxID0gMikg b3IKKyAgKChhLnVuaXF1ZTIgPSAzIG9yIGEudW5pcXVlMiA9IDcpIGFuZCBiLmh1bmRyZWQg PSA0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTmVzdGVkIExvb3AKKyAgIEpv aW4gRmlsdGVyOiAoKChhLnVuaXF1ZTEgPSAxKSBBTkQgKGIudW5pcXVlMSA9IDIpKSBPUiAo KGEudW5pcXVlMiA9IEFOWSAoJ3szLDd9Jzo6aW50ZWdlcltdKSkgQU5EIChiLmh1bmRyZWQg PSA0KSkpCisgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiB0ZW5rMSBiCisgICAgICAgICBS ZWNoZWNrIENvbmQ6ICgodW5pcXVlMSA9IDIpIE9SIChodW5kcmVkID0gNCkpCisgICAgICAg ICAtPiAgQml0bWFwT3IKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBv biB0ZW5rMV91bmlxdWUxCisgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAodW5p cXVlMSA9IDIpCisgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVu azFfaHVuZHJlZAorICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGh1bmRyZWQg PSA0KQorICAgLT4gIE1hdGVyaWFsaXplCisgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2Nh biBvbiB0ZW5rMSBhCisgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6ICgodW5pcXVlMSA9 IDEpIE9SICh1bmlxdWUyID0gQU5ZICgnezMsN30nOjppbnRlZ2VyW10pKSkKKyAgICAgICAg ICAgICAgIC0+ICBCaXRtYXBPcgorICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJ bmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6ICh1bmlxdWUxID0gMSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBC aXRtYXAgSW5kZXggU2NhbiBvbiB0ZW5rMV91bmlxdWUyCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAodW5pcXVlMiA9IEFOWSAoJ3szLDd9Jzo6aW50ZWdlcltd KSkKKygxNyByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpCitzZWxlY3QgKiBmcm9tIHRl bmsxIGEgam9pbiB0ZW5rMSBiIG9uCisgIChhLnVuaXF1ZTEgPCAyMCBvciBhLnVuaXF1ZTEg PSAzIG9yIGEudW5pcXVlMSA9IDEgYW5kIGIudW5pcXVlMSA9IDIpIG9yCisgICgoYS51bmlx dWUyID0gMyBvciBhLnVuaXF1ZTIgPSA3KSBhbmQgYi5odW5kcmVkID0gNCk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE5lc3RlZCBM b29wCisgICBKb2luIEZpbHRlcjogKChhLnVuaXF1ZTEgPCAyMCkgT1IgKChhLnVuaXF1ZTEg PSAxKSBBTkQgKGIudW5pcXVlMSA9IDIpKSBPUiAoKGEudW5pcXVlMiA9IEFOWSAoJ3szLDd9 Jzo6aW50ZWdlcltdKSkgQU5EIChiLmh1bmRyZWQgPSA0KSkgT1IgKGEudW5pcXVlMSA9IDMp KQorICAgLT4gIFNlcSBTY2FuIG9uIHRlbmsxIGIKKyAgIC0+ICBNYXRlcmlhbGl6ZQorICAg ICAgICAgLT4gIEJpdG1hcCBIZWFwIFNjYW4gb24gdGVuazEgYQorICAgICAgICAgICAgICAg UmVjaGVjayBDb25kOiAoKHVuaXF1ZTEgPCAyMCkgT1IgKHVuaXF1ZTEgPSAxKSBPUiAodW5p cXVlMiA9IEFOWSAoJ3szLDd9Jzo6aW50ZWdlcltdKSkgT1IgKHVuaXF1ZTEgPSAzKSkKKyAg ICAgICAgICAgICAgIC0+ICBCaXRtYXBPcgorICAgICAgICAgICAgICAgICAgICAgLT4gIEJp dG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUxIDwgMjApCisgICAgICAgICAgICAgICAgICAg ICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gdGVuazFfdW5pcXVlMQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKHVuaXF1ZTEgPSAxKQorICAgICAgICAgICAg ICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6ICh1bmlxdWUyID0gQU5ZICgnezMs N30nOjppbnRlZ2VyW10pKQorICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIHRlbmsxX3VuaXF1ZTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIElu ZGV4IENvbmQ6ICh1bmlxdWUxID0gMykKKygxNSByb3dzKQorCitSRVNFVCBlbmFibGVfb3Jf dHJhbnNmb3JtYXRpb247CiAtLQogLS0gdGVzdCBwbGFjZW1lbnQgb2YgbW92YWJsZSBxdWFs cyBpbiBhIHBhcmFtZXRlcml6ZWQgam9pbiB0cmVlCiAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0CmluZGV4IDlhNGM0OGMwNTU2Li5m ZTgxNTQxN2MxMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0 aXRpb25fcHJ1bmUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0 aW9uX3BydW5lLm91dApAQCAtMTAxLDYgKzEwMSwyOCBAQCBleHBsYWluIChjb3N0cyBvZmYp IHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBub3QgbnVsbCBhbmQgKGEgPSAnYScgb3Ig YSA9ICdjJwogICAgICAgICAgRmlsdGVyOiAoKGEgSVMgTk9UIE5VTEwpIEFORCAoKGEgPSAn YSc6OmJwY2hhcikgT1IgKGEgPSAnYyc6OmJwY2hhcikpKQogKDUgcm93cykKIAorU0VUIGVu YWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxl Y3QgKiBmcm9tIGxwIHdoZXJlIGEgPSAnYScgb3IgYSA9ICdjJzsKKyAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZAorICAgLT4gIFNlcSBTY2Fu IG9uIGxwX2FkIGxwXzEKKyAgICAgICAgIEZpbHRlcjogKGEgPSBBTlkgKCd7YSxjfSc6OmJw Y2hhcltdKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBscF9iYyBscF8yCisgICAgICAgICBGaWx0 ZXI6IChhID0gQU5ZICgne2EsY30nOjpicGNoYXJbXSkpCisoNSByb3dzKQorCitleHBsYWlu IChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBub3QgbnVsbCBhbmQg KGEgPSAnYScgb3IgYSA9ICdjJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFwcGVuZAorICAgLT4gIFNlcSBTY2FuIG9uIGxwX2FkIGxwXzEKKyAgICAgICAgIEZp bHRlcjogKChhIElTIE5PVCBOVUxMKSBBTkQgKGEgPSBBTlkgKCd7YSxjfSc6OmJwY2hhcltd KSkpCisgICAtPiAgU2VxIFNjYW4gb24gbHBfYmMgbHBfMgorICAgICAgICAgRmlsdGVyOiAo KGEgSVMgTk9UIE5VTEwpIEFORCAoYSA9IEFOWSAoJ3thLGN9Jzo6YnBjaGFyW10pKSkKKyg1 IHJvd3MpCisKK1JFU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbjsKIGV4cGxhaW4gKGNv c3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIDw+ICdnJzsKICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCkBAIC02NzEsNiArNjkzLDE2MyBAQCBleHBsYWluIChjb3N0cyBvZmYpIHNl bGVjdCAqIGZyb20gcmxwIHdoZXJlIChhID0gMSBhbmQgYSA9IDMpIG9yIChhID4gMSBhbmQg YSA9CiAgICAgICAgICBGaWx0ZXI6ICgoKGEgPSAxKSBBTkQgKGEgPSAzKSkgT1IgKChhID4g MSkgQU5EIChhID0gMTUpKSkKICgxMSByb3dzKQogCitTRVQgZW5hYmxlX29yX3RyYW5zZm9y bWF0aW9uID0gb247CitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdo ZXJlIGEgPSAxIG9yIGEgPSA3OworICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBTZXEgU2NhbiBvbiBybHAyIHJscAorICAgRmlsdGVyOiAoYSA9IEFOWSAoJ3sxLDd9Jzo6 aW50ZWdlcltdKSkKKygyIHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICog ZnJvbSBybHAgd2hlcmUgYSA9IDEgb3IgYiA9ICdhYic7CisgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAt PiAgU2VxIFNjYW4gb24gcmxwMSBybHBfMQorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4 dCA9ICdhYic6OnRleHQpIE9SIChhID0gMSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwMiBy bHBfMgorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9ICdhYic6OnRleHQpIE9SIChh ID0gMSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwM2FiY2QgcmxwXzMKKyAgICAgICAgIEZp bHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEpKQorICAgLT4gIFNl cSBTY2FuIG9uIHJscDRfMSBybHBfNAorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9 ICdhYic6OnRleHQpIE9SIChhID0gMSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF8yIHJs cF81CisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkgT1IgKGEg PSAxKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0X2RlZmF1bHQgcmxwXzYKKyAgICAgICAg IEZpbHRlcjogKCgoYik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEpKQorICAgLT4g IFNlcSBTY2FuIG9uIHJscDVfMSBybHBfNworICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4 dCA9ICdhYic6OnRleHQpIE9SIChhID0gMSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNV9k ZWZhdWx0IHJscF84CisgICAgICAgICBGaWx0ZXI6ICgoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4 dCkgT1IgKGEgPSAxKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHBfZGVmYXVsdF8xMCBybHBf OQorICAgICAgICAgRmlsdGVyOiAoKChiKTo6dGV4dCA9ICdhYic6OnRleHQpIE9SIChhID0g MSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfMzAgcmxwXzEwCisgICAgICAg ICBGaWx0ZXI6ICgoKGIpOjp0ZXh0ID0gJ2FiJzo6dGV4dCkgT1IgKGEgPSAxKSkKKyAgIC0+ ICBTZXEgU2NhbiBvbiBybHBfZGVmYXVsdF9udWxsIHJscF8xMQorICAgICAgICAgRmlsdGVy OiAoKChiKTo6dGV4dCA9ICdhYic6OnRleHQpIE9SIChhID0gMSkpCisgICAtPiAgU2VxIFNj YW4gb24gcmxwX2RlZmF1bHRfZGVmYXVsdCBybHBfMTIKKyAgICAgICAgIEZpbHRlcjogKCgo Yik6OnRleHQgPSAnYWInOjp0ZXh0KSBPUiAoYSA9IDEpKQorKDI1IHJvd3MpCisKK2V4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+IDIwIGFuZCBhIDwg Mjc7CisgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBT ZXEgU2NhbiBvbiBybHA0XzEgcmxwXzEKKyAgICAgICAgIEZpbHRlcjogKChhID4gMjApIEFO RCAoYSA8IDI3KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA0XzIgcmxwXzIKKyAgICAgICAg IEZpbHRlcjogKChhID4gMjApIEFORCAoYSA8IDI3KSkKKyg1IHJvd3MpCisKK2V4cGxhaW4g KGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDI5OworICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBTZXEgU2NhbiBvbiBybHA0X2RlZmF1bHQgcmxwCisgICBGaWx0ZXI6IChhID0gMjkpCiso MiByb3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJl IGEgPj0gMjk7CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFw cGVuZAorICAgLT4gIFNlcSBTY2FuIG9uIHJscDRfZGVmYXVsdCBybHBfMQorICAgICAgICAg RmlsdGVyOiAoYSA+PSAyOSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHA1XzEgcmxwXzIKKyAg ICAgICAgIEZpbHRlcjogKGEgPj0gMjkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNV9kZWZh dWx0IHJscF8zCisgICAgICAgICBGaWx0ZXI6IChhID49IDI5KQorICAgLT4gIFNlcSBTY2Fu IG9uIHJscF9kZWZhdWx0XzMwIHJscF80CisgICAgICAgICBGaWx0ZXI6IChhID49IDI5KQor ICAgLT4gIFNlcSBTY2FuIG9uIHJscF9kZWZhdWx0X2RlZmF1bHQgcmxwXzUKKyAgICAgICAg IEZpbHRlcjogKGEgPj0gMjkpCisoMTEgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2ZmKSBz ZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhIDwgMSBvciAoYSA+IDIwIGFuZCBhIDwgMjUpOwor ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBBcHBlbmQKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAxIHJscF8xCisgICAgICAgICBG aWx0ZXI6ICgoYSA8IDEpIE9SICgoYSA+IDIwKSBBTkQgKGEgPCAyNSkpKQorICAgLT4gIFNl cSBTY2FuIG9uIHJscDRfMSBybHBfMgorICAgICAgICAgRmlsdGVyOiAoKGEgPCAxKSBPUiAo KGEgPiAyMCkgQU5EIChhIDwgMjUpKSkKKyg1IHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9m Zikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDIwIG9yIGEgPSA0MDsKKyAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZAorICAg LT4gIFNlcSBTY2FuIG9uIHJscDRfMSBybHBfMQorICAgICAgICAgRmlsdGVyOiAoYSA9IEFO WSAoJ3syMCw0MH0nOjppbnRlZ2VyW10pKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDVfZGVm YXVsdCBybHBfMgorICAgICAgICAgRmlsdGVyOiAoYSA9IEFOWSAoJ3syMCw0MH0nOjppbnRl Z2VyW10pKQorKDUgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9t IHJscDMgd2hlcmUgYSA9IDIwOyAgIC8qIGVtcHR5ICovCisgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZXN1bHQKKyAgIE9uZS1U aW1lIEZpbHRlcjogZmFsc2UKKygyIHJvd3MpCisKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2Vs ZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+IDEgYW5kIGEgPSAxMDsJLyogb25seSBkZWZhdWx0 ICovCisgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfMTAgcmxw CisgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA9IDEwKSkKKygyIHJvd3MpCisKK2V4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+IDEgYW5kIGEgPj0x NTsJLyogcmxwMyBvbndhcmRzLCBpbmNsdWRpbmcgZGVmYXVsdCAqLworICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZAorICAgLT4gIFNlcSBTY2Fu IG9uIHJscDNhYmNkIHJscF8xCisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+ PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwM2VmZ2ggcmxwXzIKKyAgICAgICAgIEZp bHRlcjogKChhID4gMSkgQU5EIChhID49IDE1KSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAz bnVsbHh5IHJscF8zCisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkp CisgICAtPiAgU2VxIFNjYW4gb24gcmxwM19kZWZhdWx0IHJscF80CisgICAgICAgICBGaWx0 ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF8x IHJscF81CisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAt PiAgU2VxIFNjYW4gb24gcmxwNF8yIHJscF82CisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEp IEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNF9kZWZhdWx0IHJscF83 CisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2Vx IFNjYW4gb24gcmxwNV8xIHJscF84CisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAo YSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwNV9kZWZhdWx0IHJscF85CisgICAg ICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFORCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4g b24gcmxwX2RlZmF1bHRfMzAgcmxwXzEwCisgICAgICAgICBGaWx0ZXI6ICgoYSA+IDEpIEFO RCAoYSA+PSAxNSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxwX2RlZmF1bHRfZGVmYXVsdCBy bHBfMTEKKyAgICAgICAgIEZpbHRlcjogKChhID4gMSkgQU5EIChhID49IDE1KSkKKygyMyBy b3dzKQorCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEg PSAxIGFuZCBhID0gMzsJLyogZW1wdHkgKi8KKyAgICAgICAgUVVFUlkgUExBTiAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAgT25lLVRpbWUgRmls dGVyOiBmYWxzZQorKDIgcm93cykKKworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBm cm9tIHJscCB3aGVyZSAoYSA9IDEgYW5kIGEgPSAzKSBvciAoYSA+IDEgYW5kIGEgPSAxNSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBwZW5kCisgICAtPiAgU2VxIFNj YW4gb24gcmxwMiBybHBfMQorICAgICAgICAgRmlsdGVyOiAoKChhID0gMSkgQU5EIChhID0g MykpIE9SICgoYSA+IDEpIEFORCAoYSA9IDE1KSkpCisgICAtPiAgU2VxIFNjYW4gb24gcmxw M2FiY2QgcmxwXzIKKyAgICAgICAgIEZpbHRlcjogKCgoYSA9IDEpIEFORCAoYSA9IDMpKSBP UiAoKGEgPiAxKSBBTkQgKGEgPSAxNSkpKQorICAgLT4gIFNlcSBTY2FuIG9uIHJscDNlZmdo IHJscF8zCisgICAgICAgICBGaWx0ZXI6ICgoKGEgPSAxKSBBTkQgKGEgPSAzKSkgT1IgKChh ID4gMSkgQU5EIChhID0gMTUpKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAzbnVsbHh5IHJs cF80CisgICAgICAgICBGaWx0ZXI6ICgoKGEgPSAxKSBBTkQgKGEgPSAzKSkgT1IgKChhID4g MSkgQU5EIChhID0gMTUpKSkKKyAgIC0+ICBTZXEgU2NhbiBvbiBybHAzX2RlZmF1bHQgcmxw XzUKKyAgICAgICAgIEZpbHRlcjogKCgoYSA9IDEpIEFORCAoYSA9IDMpKSBPUiAoKGEgPiAx KSBBTkQgKGEgPSAxNSkpKQorKDExIHJvd3MpCisKK1JFU0VUIGVuYWJsZV9vcl90cmFuc2Zv cm1hdGlvbjsKIC0tIG11bHRpLWNvbHVtbiBrZXlzCiBjcmVhdGUgdGFibGUgbWMzcCAoYSBp bnQsIGIgaW50LCBjIGludCkgcGFydGl0aW9uIGJ5IHJhbmdlIChhLCBhYnMoYiksIGMpOwog Y3JlYXRlIHRhYmxlIG1jM3BfZGVmYXVsdCBwYXJ0aXRpb24gb2YgbWMzcCBkZWZhdWx0Owpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dAppbmRleCAyNzEzMTNlYmY4 Ni4uOGEzODBjMjlhNGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c3lzdmlld3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mu b3V0CkBAIC0xMjMsNiArMTIzLDcgQEAgc2VsZWN0IG5hbWUsIHNldHRpbmcgZnJvbSBwZ19z ZXR0aW5ncyB3aGVyZSBuYW1lIGxpa2UgJ2VuYWJsZSUnOwogIGVuYWJsZV9tZW1vaXplICAg ICAgICAgICAgICAgICB8IG9uCiAgZW5hYmxlX21lcmdlam9pbiAgICAgICAgICAgICAgIHwg b24KICBlbmFibGVfbmVzdGxvb3AgICAgICAgICAgICAgICAgfCBvbgorIGVuYWJsZV9vcl90 cmFuc2Zvcm1hdGlvbiAgICAgICB8IG9mZgogIGVuYWJsZV9wYXJhbGxlbF9hcHBlbmQgICAg ICAgICB8IG9uCiAgZW5hYmxlX3BhcmFsbGVsX2hhc2ggICAgICAgICAgIHwgb24KICBlbmFi bGVfcGFydGl0aW9uX3BydW5pbmcgICAgICAgfCBvbgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC90aWRzY2FuLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvdGlkc2Nhbi5vdXQKaW5kZXggZjEzM2I1YTRhYzcuLmJlNGQ4ODIwMGI2IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RpZHNjYW4ub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGlkc2Nhbi5vdXQKQEAgLTU2LDYgKzU2LDIzIEBAIFNF TEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVSRSBjdGlkID0gJygwLDIpJyBPUiAnKDAs MSknID0gY3RpZDsKICAoMCwyKSB8ICAyCiAoMiByb3dzKQogCitTRVQgZW5hYmxlX29yX3Ry YW5zZm9ybWF0aW9uID0gb247CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY3RpZCwg KiBGUk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7 CisgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgVGlkIFNjYW4gb24gdGlkc2NhbgorICAgVElEIENvbmQ6IChjdGlkID0gQU5Z ICgneyIoMCwyKSIsIigwLDEpIn0nOjp0aWRbXSkpCisoMiByb3dzKQorCitTRUxFQ1QgY3Rp ZCwgKiBGUk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0 aWQ7CisgY3RpZCAgfCBpZCAKKy0tLS0tLS0rLS0tLQorICgwLDEpIHwgIDEKKyAoMCwyKSB8 ICAyCisoMiByb3dzKQorCitSRVNFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb247CiAtLSBj dGlkID0gU2NhbGFyQXJyYXlPcCAtIGltcGxlbWVudGVkIGFzIHRpZHNjYW4KIEVYUExBSU4g KENPU1RTIE9GRikKIFNFTEVDVCBjdGlkLCAqIEZST00gdGlkc2NhbiBXSEVSRSBjdGlkID0g QU5ZKEFSUkFZWycoMCwxKScsICcoMCwyKSddOjp0aWRbXSk7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfaW5kZXguc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY3JlYXRlX2luZGV4LnNxbAppbmRleCBkNDljZTlmMzAwNy4uNDhiYjFiYzBhMGEgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNxbApAQCAtNzM3LDYgKzczNywz OCBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQogU0VMRUNUIGNvdW50KCopIEZST00g dGVuazEKICAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91 c2FuZCA9IDk5KTsKIAorU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUICogRlJPTSB0ZW5rMQorICBXSEVSRSB0aG91c2Fu ZCA9IDQyIEFORCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMyBPUiB0ZW50aG91cyA9 IDQyKTsKK1NFTEVDVCAqIEZST00gdGVuazEKKyAgV0hFUkUgdGhvdXNhbmQgPSA0MiBBTkQg KHRlbnRob3VzID0gMSBPUiB0ZW50aG91cyA9IDMgT1IgdGVudGhvdXMgPSA0Mik7CisKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJF IGh1bmRyZWQgPSA0MiBBTkQgKHRob3VzYW5kID0gNDIgT1IgdGhvdXNhbmQgPSA5OSk7CitT RUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0 aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gOTkpOworCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSB0aG91c2FuZCA9IDQyIEFO RCAodGVudGhvdXMgPSAxIE9SIHRlbnRob3VzID0gMykgT1IgdGhvdXNhbmQgPSA0MTsKK1NF TEVDVCBjb3VudCgqKSBGUk9NIHRlbmsxCisgIFdIRVJFIHRob3VzYW5kID0gNDIgQU5EICh0 ZW50aG91cyA9IDEgT1IgdGVudGhvdXMgPSAzKSBPUiB0aG91c2FuZCA9IDQxOworCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQorICBXSEVSRSBo dW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0gOTkgT1IgdGVu dGhvdXMgPCAyKSBPUiB0aG91c2FuZCA9IDQxOworU0VMRUNUIGNvdW50KCopIEZST00gdGVu azEKKyAgV0hFUkUgaHVuZHJlZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2Fu ZCA9IDk5IE9SIHRlbnRob3VzIDwgMikgT1IgdGhvdXNhbmQgPSA0MTsKKworRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gdGVuazEKKyAgV0hFUkUgaHVuZHJl ZCA9IDQyIEFORCAodGhvdXNhbmQgPSA0MiBPUiB0aG91c2FuZCA9IDQxIE9SIHRob3VzYW5k ID0gOTkgQU5EIHRlbnRob3VzID0gMik7CitTRUxFQ1QgY291bnQoKikgRlJPTSB0ZW5rMQor ICBXSEVSRSBodW5kcmVkID0gNDIgQU5EICh0aG91c2FuZCA9IDQyIE9SIHRob3VzYW5kID0g NDEgT1IgdGhvdXNhbmQgPSA5OSBBTkQgdGVudGhvdXMgPSAyKTsKK1JFU0VUIGVuYWJsZV9v cl90cmFuc2Zvcm1hdGlvbjsKKwogLS0KIC0tIENoZWNrIGJlaGF2aW9yIHdpdGggZHVwbGlj YXRlIGluZGV4IGNvbHVtbiBjb250ZW50cwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2pvaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvam9pbi5zcWwKaW5k ZXggYTQxNzg3ZDFmMWUuLjNkMDcyY2NlNDk4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9qb2luLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qb2luLnNxbApA QCAtMTM5Niw2ICsxMzk2LDE2IEBAIGV4cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCAqIGZy b20gdGVuazEgYSBqb2luIHRlbmsxIGIgb24KICAgKGEudW5pcXVlMSA9IDEgYW5kIGIudW5p cXVlMSA9IDIpIG9yCiAgICgoYS51bmlxdWUyID0gMyBvciBhLnVuaXF1ZTIgPSA3KSBhbmQg Yi5odW5kcmVkID0gNCk7CitTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0gb247Citl eHBsYWluIChjb3N0cyBvZmYpCitzZWxlY3QgKiBmcm9tIHRlbmsxIGEgam9pbiB0ZW5rMSBi IG9uCisgIChhLnVuaXF1ZTEgPSAxIGFuZCBiLnVuaXF1ZTEgPSAyKSBvcgorICAoKGEudW5p cXVlMiA9IDMgb3IgYS51bmlxdWUyID0gNykgYW5kIGIuaHVuZHJlZCA9IDQpOworZXhwbGFp biAoY29zdHMgb2ZmKQorc2VsZWN0ICogZnJvbSB0ZW5rMSBhIGpvaW4gdGVuazEgYiBvbgor ICAoYS51bmlxdWUxIDwgMjAgb3IgYS51bmlxdWUxID0gMyBvciBhLnVuaXF1ZTEgPSAxIGFu ZCBiLnVuaXF1ZTEgPSAyKSBvcgorICAoKGEudW5pcXVlMiA9IDMgb3IgYS51bmlxdWUyID0g NykgYW5kIGIuaHVuZHJlZCA9IDQpOworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9u OwogCiAtLQogLS0gdGVzdCBwbGFjZW1lbnQgb2YgbW92YWJsZSBxdWFscyBpbiBhIHBhcmFt ZXRlcml6ZWQgam9pbiB0cmVlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9w YXJ0aXRpb25fcHJ1bmUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3By dW5lLnNxbAppbmRleCA3YmYzOTIwODI3Zi4uMWUyNzBhZTljMDYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9wcnVuZS5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcGFydGl0aW9uX3BydW5lLnNxbApAQCAtMjEsNiArMjEsMTIgQEAgZXhw bGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgaXMgbm90IG51bGw7 CiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gbHAgd2hlcmUgYSBpcyBudWxs OwogZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPSAnYScg b3IgYSA9ICdjJzsKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVy ZSBhIGlzIG5vdCBudWxsIGFuZCAoYSA9ICdhJyBvciBhID0gJ2MnKTsKKworU0VUIGVuYWJs ZV9vcl90cmFuc2Zvcm1hdGlvbiA9IG9uOworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3Qg KiBmcm9tIGxwIHdoZXJlIGEgPSAnYScgb3IgYSA9ICdjJzsKK2V4cGxhaW4gKGNvc3RzIG9m Zikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIGlzIG5vdCBudWxsIGFuZCAoYSA9ICdhJyBv ciBhID0gJ2MnKTsKK1JFU0VUIGVuYWJsZV9vcl90cmFuc2Zvcm1hdGlvbjsKKwogZXhwbGFp biAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPD4gJ2cnOwogZXhwbGFp biAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIGxwIHdoZXJlIGEgPD4gJ2EnIGFuZCBhIDw+ ICdkJzsKIGV4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBscCB3aGVyZSBhIG5v dCBpbiAoJ2EnLCAnZCcpOwpAQCAtOTksNiArMTA1LDIyIEBAIGV4cGxhaW4gKGNvc3RzIG9m Zikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA+IDEgYW5kIGEgPj0xNTsJLyogcmxwMyBv bndhcmRzLCBpCiBleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJl IGEgPSAxIGFuZCBhID0gMzsJLyogZW1wdHkgKi8KIGV4cGxhaW4gKGNvc3RzIG9mZikgc2Vs ZWN0ICogZnJvbSBybHAgd2hlcmUgKGEgPSAxIGFuZCBhID0gMykgb3IgKGEgPiAxIGFuZCBh ID0gMTUpOwogCisKK1NFVCBlbmFibGVfb3JfdHJhbnNmb3JtYXRpb24gPSBvbjsKK2V4cGxh aW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgYSA9IDEgb3IgYSA9IDc7 CitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAxIG9y IGIgPSAnYWInOworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVy ZSBhID4gMjAgYW5kIGEgPCAyNzsKK2V4cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJv bSBybHAgd2hlcmUgYSA9IDI5OworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9t IHJscCB3aGVyZSBhID49IDI5OworZXhwbGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9t IHJscCB3aGVyZSBhIDwgMSBvciAoYSA+IDIwIGFuZCBhIDwgMjUpOworZXhwbGFpbiAoY29z dHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID0gMjAgb3IgYSA9IDQwOworZXhw bGFpbiAoY29zdHMgb2ZmKSBzZWxlY3QgKiBmcm9tIHJscDMgd2hlcmUgYSA9IDIwOyAgIC8q IGVtcHR5ICovCitleHBsYWluIChjb3N0cyBvZmYpIHNlbGVjdCAqIGZyb20gcmxwIHdoZXJl IGEgPiAxIGFuZCBhID0gMTA7CS8qIG9ubHkgZGVmYXVsdCAqLworZXhwbGFpbiAoY29zdHMg b2ZmKSBzZWxlY3QgKiBmcm9tIHJscCB3aGVyZSBhID4gMSBhbmQgYSA+PTE1OwkvKiBybHAz IG9ud2FyZHMsIGluY2x1ZGluZyBkZWZhdWx0ICovCitleHBsYWluIChjb3N0cyBvZmYpIHNl bGVjdCAqIGZyb20gcmxwIHdoZXJlIGEgPSAxIGFuZCBhID0gMzsJLyogZW1wdHkgKi8KK2V4 cGxhaW4gKGNvc3RzIG9mZikgc2VsZWN0ICogZnJvbSBybHAgd2hlcmUgKGEgPSAxIGFuZCBh ID0gMykgb3IgKGEgPiAxIGFuZCBhID0gMTUpOworUkVTRVQgZW5hYmxlX29yX3RyYW5zZm9y bWF0aW9uOworCiAtLSBtdWx0aS1jb2x1bW4ga2V5cwogY3JlYXRlIHRhYmxlIG1jM3AgKGEg aW50LCBiIGludCwgYyBpbnQpIHBhcnRpdGlvbiBieSByYW5nZSAoYSwgYWJzKGIpLCBjKTsK IGNyZWF0ZSB0YWJsZSBtYzNwX2RlZmF1bHQgcGFydGl0aW9uIG9mIG1jM3AgZGVmYXVsdDsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpZHNjYW4uc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvdGlkc2Nhbi5zcWwKaW5kZXggMzEzZTBmYjliNjcuLjA0OTliZWRi OWViIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90aWRzY2FuLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC90aWRzY2FuLnNxbApAQCAtMjIsNiArMjIsMTIgQEAg RVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIGN0aWQsICogRlJPTSB0aWRzY2FuIFdIRVJF IGN0aWQgPSAnKDAsMiknIE9SICcoMCwxKScgPSBjdGlkOwogU0VMRUNUIGN0aWQsICogRlJP TSB0aWRzY2FuIFdIRVJFIGN0aWQgPSAnKDAsMiknIE9SICcoMCwxKScgPSBjdGlkOwogCitT RVQgZW5hYmxlX29yX3RyYW5zZm9ybWF0aW9uID0gb247CitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hFUkUgY3RpZCA9ICcoMCwyKScgT1Ig JygwLDEpJyA9IGN0aWQ7CitTRUxFQ1QgY3RpZCwgKiBGUk9NIHRpZHNjYW4gV0hFUkUgY3Rp ZCA9ICcoMCwyKScgT1IgJygwLDEpJyA9IGN0aWQ7CitSRVNFVCBlbmFibGVfb3JfdHJhbnNm b3JtYXRpb247CisKIC0tIGN0aWQgPSBTY2FsYXJBcnJheU9wIC0gaW1wbGVtZW50ZWQgYXMg dGlkc2NhbgogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIGN0aWQsICogRlJPTSB0aWRz Y2FuIFdIRVJFIGN0aWQgPSBBTlkoQVJSQVlbJygwLDEpJywgJygwLDIpJ106OnRpZFtdKTsK ZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggYmY1MGEzMjExOTguLjg3ZjI5Njc2 NDhiIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysg Yi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTY0MCw2ICsxNjQwLDcg QEAgTnVtZXJpY1ZhcgogT01fdWludDMyCiBPUAogT1NBUGVyR3JvdXBTdGF0ZQorT3JDbGF1 c2VHcm91cEVudHJ5CiBPU0FQZXJRdWVyeVN0YXRlCiBPU0luZm8KIE9TU0xDaXBoZXIKLS0g CjIuMzQuMQoK --------------Nj0uECegfOic3dszTbxNznin--