Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n2tOQ-000407-Gw for pgsql-hackers@arkaria.postgresql.org; Thu, 30 Dec 2021 11:14:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1n2tOO-0002zP-RV for pgsql-hackers@arkaria.postgresql.org; Thu, 30 Dec 2021 11:14:44 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n2tOO-0002zG-7j for pgsql-hackers@lists.postgresql.org; Thu, 30 Dec 2021 11:14:44 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1n2tOF-0001uz-R6 for pgsql-hackers@lists.postgresql.org; Thu, 30 Dec 2021 11:14:43 +0000 Received: from falcon-note (cyclops.postgrespro.ru [93.174.131.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id 4CEAC21C718D; Thu, 30 Dec 2021 14:14:32 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1640862872; bh=HSTKJNQP/4DWg0YpZAeksRUJTO7vBLN58r0oNNLz6IU=; h=Subject:From:To:Cc:Date; b=YxGgM0U9s3gbD8c6ja8Q4mqQsykGU1oMQcEVX7iI/7tFLqaOjDbeYbDJwz5q9vAMV 6yiskXZXTNF7KnmyNm/mGUfg9a1/fqMQdR1MC9UnjClzRJpVDXsp8SIUEPWq3kLKWv UZYQvyqmA9DWS6H89VNQH6vURf4aaHxPAqzfXNww= Message-ID: Subject: Fix BUG #17335: Duplicate result rows in Gather node From: Yura Sokolov To: pgsql-hackers@lists.postgresql.org Cc: David Rowley Date: Thu, 30 Dec 2021 14:14:32 +0300 Organization: PostgresPro Content-Type: multipart/mixed; boundary="=-31yFc6p3iaQUNWLY0hwT" User-Agent: Evolution 3.36.5-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-31yFc6p3iaQUNWLY0hwT Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Good day, hackers. Problem: - Append path is created with explicitely parallel_aware = true - It has two child, one is trivial, other is parallel_aware = false . Trivial child is dropped. - Gather/GatherMerge path takes Append path as a child and thinks its child is parallel_aware = true. - But Append path is removed at the last since it has only one child. - Now Gather/GatherMerge thinks its child is parallel_aware, but it is not. Gather/GatherMerge runs its child twice: in a worker and in a leader, and gathers same rows twice. Reproduction code attached (repro.sql. Included as a test as well). Suggested quick (and valid) fix in the patch attached: - If Append has single child, then copy its parallel awareness. Bug were introduced with commit 8edd0e79460b414b1d971895312e549e95e12e4f "Suppress Append and MergeAppend plan nodes that have a single child." During discussion, it were supposed [1] those fields should be copied: > I haven't looked into whether this does the right things for parallel > planning --- possibly create_[merge]append_path need to propagate up > parallel-related path fields from the single child? But it were not so obvious [2]. Better fix could contain removing Gather/GatherMerge node as well if its child is not parallel aware. Bug is reported in https://postgr.es/m/flat/17335-4dc92e1aea3a78af%40postgresql.org Since no way to add thread from pgsql-bugs to commitfest, I write here. [1] https://postgr.es/m/17500.1551669976%40sss.pgh.pa.us [2] https://postgr.es/m/CAKJS1f_Wt_tL3S32R3wpU86zQjuHfbnZbFt0eqm%3DqcRFcdbLvw%40mail.gmail.com ---- regards Yura Sokolov y.sokolov@postgrespro.ru funny.falcon@gmail.com --=-31yFc6p3iaQUNWLY0hwT Content-Disposition: attachment; filename*0=v1-0001-Quick-fix-to-duplicate-result-rows-after-Append-p.pat; filename*1=ch Content-Type: text/x-patch; name="v1-0001-Quick-fix-to-duplicate-result-rows-after-Append-p.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA0N2M2ZTE2MWRlNGZjOWQyZDZlZmY0NWY0MjdlYmY0OWI0YzlkMTFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZdXJhIFNva29sb3YgPHkuc29rb2xvdkBwb3N0Z3Jlc3Byby5y dT4KRGF0ZTogTW9uLCAyMCBEZWMgMjAyMSAxMTo0ODoxMCArMDMwMApTdWJqZWN0OiBbUEFUQ0gg djFdIFF1aWNrIGZpeCB0byBkdXBsaWNhdGUgcmVzdWx0IHJvd3MgYWZ0ZXIgQXBwZW5kIHBhdGgK IHJlbW92YWwuCgpJdCBjb3VsZCBoYXBwZW4gQXBwZW5kIHBhdGggaXMgY3JlYXRlZCB3aXRoICJw YXJhbGxlbF9hd2FyZSIgZmxhZywKYnV0IGl0cyBzaW5nbGUgY2hpbGQgaXMgbm90LiBBcHBlbmQg cGF0aCBwYXJlbnQgKEdhdGhlciBvciBHYXRoZXIgTWVyZ2UpCnRoaW5rcyBpdHMgY2hpbGQgaXMg cGFyYWxsZWxfYXdhcmUsIGJ1dCBhZnRlciBBcHBlbmQgcGF0aCByZW1vdmFsIEdhdGhlcidzCmNo aWxkIGJlY29tZSBub3QgcGFyYWxsZWxfYXdhcmUuIFRoZW4gd2hlbiBHYXRoZXIvR2F0aGVyIE1l cmdlIGRlY2lkZXMKdG8gcnVuIGNoaWxkIGluIHNldmVyYWwgd29ya2VycyBvciB3b3JrZXIgKyBs ZWFkZXIgcGFydGljaXBhdGlvbiwgaXQKZ2F0aGVycyBkdXBsaWNhdGUgcmVzdWx0IHJvd3MgZnJv bSBzZXZlcmFsIGNoaWxkIHBhdGggaW52b2NhdGlvbnMuCgpXaXRoIHRoaXMgZml4IEFwcGVuZCBw YXRoIGNvcGllcyBpdHMgc2luZ2xlIGNoaWxkIHBhcmFsbGVsX2F3YXJlIC8gY29zdCAvCndvcmtl cnMgdmFsdWVzLgoKQ29waWVkIGBudW1fd29ya2VycyA9PSAwYCB0cmlnZ2VycyBhc3NlcnQgYG51 bV93b3JrZXJzID4gMGAgaW4KY29zdF9nYXRoZXJfbWVyZ2UgZnVuY3Rpb24uIEJ1dCBjaGFuZ2lu ZyB0aGlzIGFzc2VydCB0byBgbnVtX3dvcmtlcnMgPj0gMGAKZG9lc24ndCBsZWFkIHRvIGFueSBy dW50aW1lIGFuZC9vciBsb2dpY2FsIGVycm9yLgoKRml4ZXMgYnVnIDE3MzM1Cmh0dHBzOi8vcG9z dGdyLmVzL20vZmxhdC8xNzMzNS00ZGM5MmUxYWVhM2E3OGFmJTQwcG9zdGdyZXNxbC5vcmcKLS0t CiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9jb3N0c2l6ZS5jICAgICAgICAgfCAgIDIgKy0K IHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMgICAgICAgICB8ICAgMyArCiAu Li4vZXhwZWN0ZWQvZ2F0aGVyX3JlbW92ZWRfYXBwZW5kLm91dCAgICAgICAgfCAxMzEgKysrKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAg ICAgfCAgIDEgKwogLi4uL3JlZ3Jlc3Mvc3FsL2dhdGhlcl9yZW1vdmVkX2FwcGVuZC5zcWwgICAg IHwgIDgyICsrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDIxOCBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9nYXRoZXJfcmVtb3ZlZF9hcHBlbmQub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZ2F0aGVyX3JlbW92ZWRfYXBwZW5kLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL29wdGltaXplci9wYXRoL2Nvc3RzaXplLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGF0aC9jb3N0c2l6ZS5jCmluZGV4IDFlNGQ0MDRmMDI0Li45OTQ5YzNhYjU1NSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvY29zdHNpemUuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGF0aC9jb3N0c2l6ZS5jCkBAIC00NDAsNyArNDQwLDcgQEAgY29zdF9nYXRo ZXJfbWVyZ2UoR2F0aGVyTWVyZ2VQYXRoICpwYXRoLCBQbGFubmVySW5mbyAqcm9vdCwKIAkgKiBi ZSBvdmVyZ2VuZXJvdXMgc2luY2UgdGhlIGxlYWRlciB3aWxsIGRvIGxlc3Mgd29yayB0aGFuIG90 aGVyIHdvcmtlcnMKIAkgKiBpbiB0eXBpY2FsIGNhc2VzLCBidXQgd2UnbGwgZ28gd2l0aCBpdCBm b3Igbm93LgogCSAqLwotCUFzc2VydChwYXRoLT5udW1fd29ya2VycyA+IDApOworCUFzc2VydChw YXRoLT5udW1fd29ya2VycyA+PSAwKTsKIAlOID0gKGRvdWJsZSkgcGF0aC0+bnVtX3dvcmtlcnMg KyAxOwogCWxvZ04gPSBMT0cyKE4pOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvdXRpbC9wYXRobm9kZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUu YwppbmRleCBhZjVlOGRmMjZiNC4uMmZmNDY3ODkzN2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL3BhdGhub2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0 aWwvcGF0aG5vZGUuYwpAQCAtMTM0MCw2ICsxMzQwLDkgQEAgY3JlYXRlX2FwcGVuZF9wYXRoKFBs YW5uZXJJbmZvICpyb290LAogCQlwYXRobm9kZS0+cGF0aC5zdGFydHVwX2Nvc3QgPSBjaGlsZC0+ c3RhcnR1cF9jb3N0OwogCQlwYXRobm9kZS0+cGF0aC50b3RhbF9jb3N0ID0gY2hpbGQtPnRvdGFs X2Nvc3Q7CiAJCXBhdGhub2RlLT5wYXRoLnBhdGhrZXlzID0gY2hpbGQtPnBhdGhrZXlzOworCQlw YXRobm9kZS0+cGF0aC5wYXJhbGxlbF9hd2FyZSA9IGNoaWxkLT5wYXJhbGxlbF9hd2FyZTsKKwkJ cGF0aG5vZGUtPnBhdGgucGFyYWxsZWxfc2FmZSA9IGNoaWxkLT5wYXJhbGxlbF9zYWZlOworCQlw YXRobm9kZS0+cGF0aC5wYXJhbGxlbF93b3JrZXJzID0gY2hpbGQtPnBhcmFsbGVsX3dvcmtlcnM7 CiAJfQogCWVsc2UKIAkJY29zdF9hcHBlbmQocGF0aG5vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9nYXRoZXJfcmVtb3ZlZF9hcHBlbmQub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9nYXRoZXJfcmVtb3ZlZF9hcHBlbmQub3V0Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNmU4NjFjZTU5ZAotLS0gL2Rldi9udWxsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2F0aGVyX3JlbW92ZWRfYXBwZW5kLm91dApAQCAt MCwwICsxLDEzMSBAQAorLS0gVGVzdCBjb3JyZWN0bmVzcyBvZiBwYXJhbGxlbCBxdWVyeSBleGVj dXRpb24gYWZ0ZXIgcmVtb3ZhbAorLS0gb2YgQXBwZW5kIHBhdGggZHVlIHRvIHNpbmdsZSBub24t dHJpdmlhbCBjaGlsZC4KK0RST1AgVEFCTEUgSUYgRVhJU1RTIGdhdGhlcl9hcHBlbmRfMSwgZ2F0 aGVyX2FwcGVuZF8yOworTk9USUNFOiAgdGFibGUgImdhdGhlcl9hcHBlbmRfMSIgZG9lcyBub3Qg ZXhpc3QsIHNraXBwaW5nCitOT1RJQ0U6ICB0YWJsZSAiZ2F0aGVyX2FwcGVuZF8yIiBkb2VzIG5v dCBleGlzdCwgc2tpcHBpbmcKK0NSRUFURSBUQUJMRSBnYXRoZXJfYXBwZW5kXzEgKAorICAgIGZr IGludCwKKyAgICBmIGJvb2wKKyk7CitJTlNFUlQgSU5UTyBnYXRoZXJfYXBwZW5kXzEgKGZrLCBm KSBTRUxFQ1QgaSwgaSU1MD0wIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwMDApIGFzIGk7CitD UkVBVEUgSU5ERVggZ2F0aGVyX2FwcGVuZF8xX2l4IG9uIGdhdGhlcl9hcHBlbmRfMSAoZik7CitD UkVBVEUgVEFCTEUgZ2F0aGVyX2FwcGVuZF8yICgKKyAgICBmayBpbnQsCisgICAgdmFsIHNlcmlh bAorKTsKK0lOU0VSVCBJTlRPIGdhdGhlcl9hcHBlbmRfMiAoZmspIFNFTEVDVCBmayBmcm9tIGdh dGhlcl9hcHBlbmRfMSwgZ2VuZXJhdGVfc2VyaWVzKDEsIDUpIGFzIGk7CitBTkFMWVpFIGdhdGhl cl9hcHBlbmRfMSwgZ2F0aGVyX2FwcGVuZF8yOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Bl cl9nYXRoZXIgPSAwOworLS0gRmluZCBjb3JyZWN0IHJvd3MgY291bnQKK1NFTEVDVCBjb3VudCgx KQorRlJPTSAoCisgIFNFTEVDVCBmayBGUk9NIGdhdGhlcl9hcHBlbmRfMSBXSEVSRSBmCisgIFVO SU9OIEFMTAorICBTRUxFQ1QgZmsgRlJPTSBnYXRoZXJfYXBwZW5kXzEgV0hFUkUgZmFsc2UKKykg YXMgdAorTEVGVCBPVVRFUiBKT0lOIGdhdGhlcl9hcHBlbmRfMgorVVNJTkcgKGZrKTsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgIDIwMAorKDEgcm93KQorCitTRVQgcGFyYWxsZWxfc2V0dXBfY29zdCA9 IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDAuMTsKK1NFVCBtaW5fcGFyYWxsZWxfdGFi bGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0g MjsKK1NFTEVDVCBjb3VudCgxKQorRlJPTSAoCisgIFNFTEVDVCBmayBGUk9NIGdhdGhlcl9hcHBl bmRfMSBXSEVSRSBmCisgIFVOSU9OIEFMTAorICBTRUxFQ1QgZmsgRlJPTSBnYXRoZXJfYXBwZW5k XzEgV0hFUkUgZmFsc2UKKykgYXMgdAorTEVGVCBPVVRFUiBKT0lOIGdhdGhlcl9hcHBlbmRfMgor VVNJTkcgKGZrKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDIwMAorKDEgcm93KQorCitFWFBMQUlO IChBTkFMWVpFIHRydWUsIENPU1RTIGZhbHNlLCBUSU1JTkcgZmFsc2UsIFNVTU1BUlkgZmFsc2Us IFZFUkJPU0UgZmFsc2UsIEJVRkZFUlMgZmFsc2UpCitTRUxFQ1QgY291bnQoMSkKK0ZST00gKAor ICBTRUxFQ1QgZmsgRlJPTSBnYXRoZXJfYXBwZW5kXzEgV0hFUkUgZgorICBVTklPTiBBTEwKKyAg U0VMRUNUIGZrIEZST00gZ2F0aGVyX2FwcGVuZF8xIFdIRVJFIGZhbHNlCispIGFzIHQKK0xFRlQg T1VURVIgSk9JTiBnYXRoZXJfYXBwZW5kXzIKK1VTSU5HIChmayk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEZpbmFsaXplIEFnZ3JlZ2F0ZSAoYWN0dWFsIHJv d3M9MSBsb29wcz0xKQorICAgLT4gIEdhdGhlciAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQorICAg ICAgICAgV29ya2VycyBQbGFubmVkOiAxCisgICAgICAgICBXb3JrZXJzIExhdW5jaGVkOiAxCisg ICAgICAgICBTaW5nbGUgQ29weTogdHJ1ZQorICAgICAgICAgLT4gIFBhcnRpYWwgQWdncmVnYXRl IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgSGFz aCBMZWZ0IEpvaW4gKGFjdHVhbCByb3dzPTIwMCBsb29wcz0xKQorICAgICAgICAgICAgICAgICAg ICAgSGFzaCBDb25kOiAoZ2F0aGVyX2FwcGVuZF8xLmZrID0gZ2F0aGVyX2FwcGVuZF8yLmZrKQor ICAgICAgICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZ2F0aGVyX2FwcGVuZF8x X2l4IG9uIGdhdGhlcl9hcHBlbmRfMSAoYWN0dWFsIHJvd3M9NDAgbG9vcHM9MSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChmID0gdHJ1ZSkKKyAgICAgICAgICAgICAg ICAgICAgIC0+ICBQYXJhbGxlbCBIYXNoIChhY3R1YWwgcm93cz0xMDAwMCBsb29wcz0xKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgQnVja2V0czogMTYzODQgIEJhdGNoZXM6IDEgIE1lbW9y eSBVc2FnZTogNTQ0a0IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBQYXJhbGxlbCBT ZXEgU2NhbiBvbiBnYXRoZXJfYXBwZW5kXzIgKGFjdHVhbCByb3dzPTEwMDAwIGxvb3BzPTEpCiso MTMgcm93cykKKworLS0gUmVzdWx0IHJvd3MgaW4gcm9vdCBub2RlIHNob3VsZCBiZSBlcXVhbCB0 byBub24tcGFyYWxsZWwgY291bnQKK0VYUExBSU4gKEFOQUxZWkUgdHJ1ZSwgQ09TVFMgZmFsc2Us IFRJTUlORyBmYWxzZSwgU1VNTUFSWSBmYWxzZSwgVkVSQk9TRSBmYWxzZSwgQlVGRkVSUyBmYWxz ZSkKK1NFTEVDVCB2YWwKK0ZST00gKAorICBTRUxFQ1QgZmsgRlJPTSBnYXRoZXJfYXBwZW5kXzEg V0hFUkUgZgorICBVTklPTiBBTEwKKyAgU0VMRUNUIGZrIEZST00gZ2F0aGVyX2FwcGVuZF8xIFdI RVJFIGZhbHNlCispIGFzIHQKK0xFRlQgT1VURVIgSk9JTiBnYXRoZXJfYXBwZW5kXzIKK1VTSU5H IChmaykKK09SREVSIEJZIHZhbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgR2F0 aGVyIE1lcmdlIChhY3R1YWwgcm93cz0yMDAgbG9vcHM9MSkKKyAgIFdvcmtlcnMgUGxhbm5lZDog MAorICAgV29ya2VycyBMYXVuY2hlZDogMAorICAgLT4gIFNvcnQgKGFjdHVhbCByb3dzPTIwMCBs b29wcz0xKQorICAgICAgICAgU29ydCBLZXk6IGdhdGhlcl9hcHBlbmRfMi52YWwKKyAgICAgICAg IFNvcnQgTWV0aG9kOiBxdWlja3NvcnQgIE1lbW9yeTogMjVrQgorICAgICAgICAgLT4gIFBhcmFs bGVsIEhhc2ggTGVmdCBKb2luIChhY3R1YWwgcm93cz0yMDAgbG9vcHM9MSkKKyAgICAgICAgICAg ICAgIEhhc2ggQ29uZDogKGdhdGhlcl9hcHBlbmRfMS5mayA9IGdhdGhlcl9hcHBlbmRfMi5maykK KyAgICAgICAgICAgICAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIGdhdGhlcl9hcHBlbmRfMV9peCBv biBnYXRoZXJfYXBwZW5kXzEgKGFjdHVhbCByb3dzPTQwIGxvb3BzPTEpCisgICAgICAgICAgICAg ICAgICAgICBJbmRleCBDb25kOiAoZiA9IHRydWUpCisgICAgICAgICAgICAgICAtPiAgUGFyYWxs ZWwgSGFzaCAoYWN0dWFsIHJvd3M9MTAwMDAgbG9vcHM9MSkKKyAgICAgICAgICAgICAgICAgICAg IEJ1Y2tldHM6IDE2Mzg0ICBCYXRjaGVzOiAxICBNZW1vcnkgVXNhZ2U6IDUxOWtCCisgICAgICAg ICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgU2VxIFNjYW4gb24gZ2F0aGVyX2FwcGVuZF8yIChh Y3R1YWwgcm93cz0xMDAwMCBsb29wcz0xKQorKDEzIHJvd3MpCisKKy0tIFJlc3VsdCByb3dzIGlu IHJvb3Qgbm9kZSBzaG91bGQgYmUgZXF1YWwgdG8gbm9uLXBhcmFsbGVsIGNvdW50CitFWFBMQUlO IChBTkFMWVpFIHRydWUsIENPU1RTIGZhbHNlLCBUSU1JTkcgZmFsc2UsIFNVTU1BUlkgZmFsc2Us IFZFUkJPU0UgZmFsc2UsIEJVRkZFUlMgZmFsc2UpCitTRUxFQ1QgdmFsCitGUk9NICgKKyAgU0VM RUNUIGZrIEZST00gZ2F0aGVyX2FwcGVuZF8xIFdIRVJFIGYKKyAgVU5JT04gQUxMCisgIFNFTEVD VCBmayBGUk9NIGdhdGhlcl9hcHBlbmRfMSBXSEVSRSBmYWxzZQorKSBhcyB0CitMRUZUIE9VVEVS IEpPSU4gZ2F0aGVyX2FwcGVuZF8yCitVU0lORyAoZmspCitPUkRFUiBCWSB2YWw7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEdhdGhlciBNZXJnZSAoYWN0dWFsIHJvd3M9MjAwIGxv b3BzPTEpCisgICBXb3JrZXJzIFBsYW5uZWQ6IDAKKyAgIFdvcmtlcnMgTGF1bmNoZWQ6IDAKKyAg IC0+ICBTb3J0IChhY3R1YWwgcm93cz0yMDAgbG9vcHM9MSkKKyAgICAgICAgIFNvcnQgS2V5OiBn YXRoZXJfYXBwZW5kXzIudmFsCisgICAgICAgICBTb3J0IE1ldGhvZDogcXVpY2tzb3J0ICBNZW1v cnk6IDI1a0IKKyAgICAgICAgIC0+ICBQYXJhbGxlbCBIYXNoIExlZnQgSm9pbiAoYWN0dWFsIHJv d3M9MjAwIGxvb3BzPTEpCisgICAgICAgICAgICAgICBIYXNoIENvbmQ6IChnYXRoZXJfYXBwZW5k XzEuZmsgPSBnYXRoZXJfYXBwZW5kXzIuZmspCisgICAgICAgICAgICAgICAtPiAgSW5kZXggU2Nh biB1c2luZyBnYXRoZXJfYXBwZW5kXzFfaXggb24gZ2F0aGVyX2FwcGVuZF8xIChhY3R1YWwgcm93 cz00MCBsb29wcz0xKQorICAgICAgICAgICAgICAgICAgICAgSW5kZXggQ29uZDogKGYgPSB0cnVl KQorICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIEhhc2ggKGFjdHVhbCByb3dzPTEwMDAwIGxv b3BzPTEpCisgICAgICAgICAgICAgICAgICAgICBCdWNrZXRzOiAxNjM4NCAgQmF0Y2hlczogMSAg TWVtb3J5IFVzYWdlOiA1MTlrQgorICAgICAgICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIFNl cSBTY2FuIG9uIGdhdGhlcl9hcHBlbmRfMiAoYWN0dWFsIHJvd3M9MTAwMDAgbG9vcHM9MSkKKygx MyByb3dzKQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxl IGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCA1YjBjNzNkN2UzNy4u ODRmMmY4MTI1NWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTAwLDYgKzEw MCw3IEBAIHRlc3Q6IHJ1bGVzIHBzcWwgcHNxbF9jcm9zc3RhYiBhbXV0aWxzIHN0YXRzX2V4dCBj b2xsYXRlLmxpbnV4LnV0ZjgKIHRlc3Q6IHNlbGVjdF9wYXJhbGxlbAogdGVzdDogd3JpdGVfcGFy YWxsZWwKIHRlc3Q6IHZhY3V1bV9wYXJhbGxlbAordGVzdDogZ2F0aGVyX3JlbW92ZWRfYXBwZW5k CiAKICMgbm8gcmVsYXRpb24gcmVsYXRlZCB0ZXN0cyBjYW4gYmUgcHV0IGluIHRoaXMgZ3JvdXAK IHRlc3Q6IHB1YmxpY2F0aW9uIHN1YnNjcmlwdGlvbgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvZ2F0aGVyX3JlbW92ZWRfYXBwZW5kLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2dhdGhlcl9yZW1vdmVkX2FwcGVuZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLmRmMWI3OTZhNGY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvZ2F0aGVyX3JlbW92ZWRfYXBwZW5kLnNxbApAQCAtMCwwICsxLDgyIEBACistLSBUZXN0 IGNvcnJlY3RuZXNzIG9mIHBhcmFsbGVsIHF1ZXJ5IGV4ZWN1dGlvbiBhZnRlciByZW1vdmFsCist LSBvZiBBcHBlbmQgcGF0aCBkdWUgdG8gc2luZ2xlIG5vbi10cml2aWFsIGNoaWxkLgorCitEUk9Q IFRBQkxFIElGIEVYSVNUUyBnYXRoZXJfYXBwZW5kXzEsIGdhdGhlcl9hcHBlbmRfMjsKKworQ1JF QVRFIFRBQkxFIGdhdGhlcl9hcHBlbmRfMSAoCisgICAgZmsgaW50LAorICAgIGYgYm9vbAorKTsK KworSU5TRVJUIElOVE8gZ2F0aGVyX2FwcGVuZF8xIChmaywgZikgU0VMRUNUIGksIGklNTA9MCBm cm9tIGdlbmVyYXRlX3NlcmllcygxLCAyMDAwKSBhcyBpOworCitDUkVBVEUgSU5ERVggZ2F0aGVy X2FwcGVuZF8xX2l4IG9uIGdhdGhlcl9hcHBlbmRfMSAoZik7CisKK0NSRUFURSBUQUJMRSBnYXRo ZXJfYXBwZW5kXzIgKAorICAgIGZrIGludCwKKyAgICB2YWwgc2VyaWFsCispOworCitJTlNFUlQg SU5UTyBnYXRoZXJfYXBwZW5kXzIgKGZrKSBTRUxFQ1QgZmsgZnJvbSBnYXRoZXJfYXBwZW5kXzEs IGdlbmVyYXRlX3NlcmllcygxLCA1KSBhcyBpOworCitBTkFMWVpFIGdhdGhlcl9hcHBlbmRfMSwg Z2F0aGVyX2FwcGVuZF8yOworCitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlciA9 IDA7CisKKy0tIEZpbmQgY29ycmVjdCByb3dzIGNvdW50CitTRUxFQ1QgY291bnQoMSkKK0ZST00g KAorICBTRUxFQ1QgZmsgRlJPTSBnYXRoZXJfYXBwZW5kXzEgV0hFUkUgZgorICBVTklPTiBBTEwK KyAgU0VMRUNUIGZrIEZST00gZ2F0aGVyX2FwcGVuZF8xIFdIRVJFIGZhbHNlCispIGFzIHQKK0xF RlQgT1VURVIgSk9JTiBnYXRoZXJfYXBwZW5kXzIKK1VTSU5HIChmayk7CisKK1NFVCBwYXJhbGxl bF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMC4xOworU0VUIG1p bl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJz X3Blcl9nYXRoZXIgPSAyOworCitTRUxFQ1QgY291bnQoMSkKK0ZST00gKAorICBTRUxFQ1QgZmsg RlJPTSBnYXRoZXJfYXBwZW5kXzEgV0hFUkUgZgorICBVTklPTiBBTEwKKyAgU0VMRUNUIGZrIEZS T00gZ2F0aGVyX2FwcGVuZF8xIFdIRVJFIGZhbHNlCispIGFzIHQKK0xFRlQgT1VURVIgSk9JTiBn YXRoZXJfYXBwZW5kXzIKK1VTSU5HIChmayk7CisKK0VYUExBSU4gKEFOQUxZWkUgdHJ1ZSwgQ09T VFMgZmFsc2UsIFRJTUlORyBmYWxzZSwgU1VNTUFSWSBmYWxzZSwgVkVSQk9TRSBmYWxzZSwgQlVG RkVSUyBmYWxzZSkKK1NFTEVDVCBjb3VudCgxKQorRlJPTSAoCisgIFNFTEVDVCBmayBGUk9NIGdh dGhlcl9hcHBlbmRfMSBXSEVSRSBmCisgIFVOSU9OIEFMTAorICBTRUxFQ1QgZmsgRlJPTSBnYXRo ZXJfYXBwZW5kXzEgV0hFUkUgZmFsc2UKKykgYXMgdAorTEVGVCBPVVRFUiBKT0lOIGdhdGhlcl9h cHBlbmRfMgorVVNJTkcgKGZrKTsKKworLS0gUmVzdWx0IHJvd3MgaW4gcm9vdCBub2RlIHNob3Vs ZCBiZSBlcXVhbCB0byBub24tcGFyYWxsZWwgY291bnQKK0VYUExBSU4gKEFOQUxZWkUgdHJ1ZSwg Q09TVFMgZmFsc2UsIFRJTUlORyBmYWxzZSwgU1VNTUFSWSBmYWxzZSwgVkVSQk9TRSBmYWxzZSwg QlVGRkVSUyBmYWxzZSkKK1NFTEVDVCB2YWwKK0ZST00gKAorICBTRUxFQ1QgZmsgRlJPTSBnYXRo ZXJfYXBwZW5kXzEgV0hFUkUgZgorICBVTklPTiBBTEwKKyAgU0VMRUNUIGZrIEZST00gZ2F0aGVy X2FwcGVuZF8xIFdIRVJFIGZhbHNlCispIGFzIHQKK0xFRlQgT1VURVIgSk9JTiBnYXRoZXJfYXBw ZW5kXzIKK1VTSU5HIChmaykKK09SREVSIEJZIHZhbDsKKworLS0gUmVzdWx0IHJvd3MgaW4gcm9v dCBub2RlIHNob3VsZCBiZSBlcXVhbCB0byBub24tcGFyYWxsZWwgY291bnQKK0VYUExBSU4gKEFO QUxZWkUgdHJ1ZSwgQ09TVFMgZmFsc2UsIFRJTUlORyBmYWxzZSwgU1VNTUFSWSBmYWxzZSwgVkVS Qk9TRSBmYWxzZSwgQlVGRkVSUyBmYWxzZSkKK1NFTEVDVCB2YWwKK0ZST00gKAorICBTRUxFQ1Qg ZmsgRlJPTSBnYXRoZXJfYXBwZW5kXzEgV0hFUkUgZgorICBVTklPTiBBTEwKKyAgU0VMRUNUIGZr IEZST00gZ2F0aGVyX2FwcGVuZF8xIFdIRVJFIGZhbHNlCispIGFzIHQKK0xFRlQgT1VURVIgSk9J TiBnYXRoZXJfYXBwZW5kXzIKK1VTSU5HIChmaykKK09SREVSIEJZIHZhbDsKLS0gCjIuMzQuMQoK --=-31yFc6p3iaQUNWLY0hwT Content-Type: application/sql; name="repro.sql" Content-Disposition: attachment; filename="repro.sql" Content-Transfer-Encoding: base64 LS0gVGVzdCBjb3JyZWN0bmVzcyBvZiBwYXJhbGxlbCBxdWVyeSBleGVjdXRpb24gYWZ0ZXIgcmVt b3ZhbAotLSBvZiBBcHBlbmQgcGF0aCBkdWUgdG8gc2luZ2xlIG5vbi10cml2aWFsIGNoaWxkLgoK LS0gSXQgaXMgKHdlcmUpIGJyb2tlbiBzaW5jZSBjb21taXQgOGVkZDBlNzk0NjBiNDE0YjFkOTcx ODk1MzEyZTU0OWU5NWUxMmU0ZgotLSAiU3VwcHJlc3MgQXBwZW5kIGFuZCBNZXJnZUFwcGVuZCBw bGFuIG5vZGVzIHRoYXQgaGF2ZSBhIHNpbmdsZSBjaGlsZC4iCi0tIGllIFBvc3RncmVTUUwgdjEy LgoKLS0gUGxhbnMgYmVsb3cgZm9yIGJyb2tlbiB2ZXJzaW9uLgoKRFJPUCBUQUJMRSBJRiBFWElT VFMgZ2F0aGVyX2FwcGVuZF8xLCBnYXRoZXJfYXBwZW5kXzI7CgpDUkVBVEUgVEFCTEUgZ2F0aGVy X2FwcGVuZF8xICgKICAgIGZrIGludCwKICAgIGYgYm9vbAopOwoKSU5TRVJUIElOVE8gZ2F0aGVy X2FwcGVuZF8xIChmaywgZikgU0VMRUNUIGksIGklNTA9MCBmcm9tIGdlbmVyYXRlX3Nlcmllcygx LCAyMDAwKSBhcyBpOwoKQ1JFQVRFIElOREVYIGdhdGhlcl9hcHBlbmRfMV9peCBvbiBnYXRoZXJf YXBwZW5kXzEgKGYpOwoKQ1JFQVRFIFRBQkxFIGdhdGhlcl9hcHBlbmRfMiAoCiAgICBmayBpbnQs CiAgICB2YWwgc2VyaWFsCik7CgpJTlNFUlQgSU5UTyBnYXRoZXJfYXBwZW5kXzIgKGZrKSBTRUxF Q1QgZmsgZnJvbSBnYXRoZXJfYXBwZW5kXzEsIGdlbmVyYXRlX3NlcmllcygxLCA1KSBhcyBpOwoK QU5BTFlaRSBnYXRoZXJfYXBwZW5kXzEsIGdhdGhlcl9hcHBlbmRfMjsKClNFVCBtYXhfcGFyYWxs ZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMDsKCi0tIEZpbmQgY29ycmVjdCByb3dzIGNvdW50ClNF TEVDVCBjb3VudCgxKQpGUk9NICgKICBTRUxFQ1QgZmsgRlJPTSBnYXRoZXJfYXBwZW5kXzEgV0hF UkUgZgogIFVOSU9OIEFMTAogIFNFTEVDVCBmayBGUk9NIGdhdGhlcl9hcHBlbmRfMSBXSEVSRSBm YWxzZQopIGFzIHQKTEVGVCBPVVRFUiBKT0lOIGdhdGhlcl9hcHBlbmRfMgpVU0lORyAoZmspOwot LSBjb3VudAotLS0tLS0tLS0KLS0gICAyMDAKLS0oMSByb3cpCgpTRVQgcGFyYWxsZWxfc2V0dXBf Y29zdCA9IDA7ClNFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMC4xOwpTRVQgbWluX3BhcmFsbGVs X3RhYmxlX3NjYW5fc2l6ZSA9IDA7ClNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVy ID0gMjsKClNFTEVDVCBjb3VudCgxKQpGUk9NICgKICBTRUxFQ1QgZmsgRlJPTSBnYXRoZXJfYXBw ZW5kXzEgV0hFUkUgZgogIFVOSU9OIEFMTAogIFNFTEVDVCBmayBGUk9NIGdhdGhlcl9hcHBlbmRf MSBXSEVSRSBmYWxzZQopIGFzIHQKTEVGVCBPVVRFUiBKT0lOIGdhdGhlcl9hcHBlbmRfMgpVU0lO RyAoZmspOwotLSBjb3VudAotLS0tLS0tLS0KLS0gICA0MDAKLS0oMSByb3cpCgpFWFBMQUlOIChB TkFMWVpFIHRydWUsIENPU1RTIGZhbHNlLCBUSU1JTkcgZmFsc2UsIFNVTU1BUlkgZmFsc2UsIFZF UkJPU0UgZmFsc2UsIEJVRkZFUlMgZmFsc2UpClNFTEVDVCBjb3VudCgxKQpGUk9NICgKICBTRUxF Q1QgZmsgRlJPTSBnYXRoZXJfYXBwZW5kXzEgV0hFUkUgZgogIFVOSU9OIEFMTAogIFNFTEVDVCBm ayBGUk9NIGdhdGhlcl9hcHBlbmRfMSBXSEVSRSBmYWxzZQopIGFzIHQKTEVGVCBPVVRFUiBKT0lO IGdhdGhlcl9hcHBlbmRfMgpVU0lORyAoZmspOwoKLS0gRmluYWxpemUgQWdncmVnYXRlIChhY3R1 YWwgcm93cz0xIGxvb3BzPTEpCi0tICAgLT4gIEdhdGhlciAoYWN0dWFsIHJvd3M9MiBsb29wcz0x KQotLSAgICAgICAgIFdvcmtlcnMgUGxhbm5lZDogMQotLSAgICAgICAgIFdvcmtlcnMgTGF1bmNo ZWQ6IDEKLS0gICAgICAgICAtPiAgUGFydGlhbCBBZ2dyZWdhdGUgKGFjdHVhbCByb3dzPTEgbG9v cHM9MikKLS0gICAgICAgICAgICAgICAtPiAgUGFyYWxsZWwgSGFzaCBMZWZ0IEpvaW4gKGFjdHVh bCByb3dzPTIwMCBsb29wcz0yKQotLSAgICAgICAgICAgICAgICAgICAgIEhhc2ggQ29uZDogKGdh dGhlcl9hcHBlbmRfMS5mayA9IGdhdGhlcl9hcHBlbmRfMi5maykKLS0gICAgICAgICAgICAgICAg ICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBnYXRoZXJfYXBwZW5kXzFfaXggb24gZ2F0aGVyX2Fw cGVuZF8xIChhY3R1YWwgcm93cz00MCBsb29wcz0yKQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIEluZGV4IENvbmQ6IChmID0gdHJ1ZSkKLS0gICAgICAgICAgICAgICAgICAgICAtPiAgUGFy YWxsZWwgSGFzaCAoYWN0dWFsIHJvd3M9NTAwMCBsb29wcz0yKQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgIEJ1Y2tldHM6IDE2Mzg0ICBCYXRjaGVzOiAxICBNZW1vcnkgVXNhZ2U6IDU0NGtC Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIGdh dGhlcl9hcHBlbmRfMiAoYWN0dWFsIHJvd3M9NTAwMCBsb29wcz0yKQoKCi0tIFJlc3VsdCByb3dz IGluIHJvb3Qgbm9kZSBzaG91bGQgYmUgZXF1YWwgdG8gbm9uLXBhcmFsbGVsIGNvdW50CkVYUExB SU4gKEFOQUxZWkUgdHJ1ZSwgQ09TVFMgZmFsc2UsIFRJTUlORyBmYWxzZSwgU1VNTUFSWSBmYWxz ZSwgVkVSQk9TRSBmYWxzZSwgQlVGRkVSUyBmYWxzZSkKU0VMRUNUIHZhbApGUk9NICgKICBTRUxF Q1QgZmsgRlJPTSBnYXRoZXJfYXBwZW5kXzEgV0hFUkUgZgogIFVOSU9OIEFMTAogIFNFTEVDVCBm ayBGUk9NIGdhdGhlcl9hcHBlbmRfMSBXSEVSRSBmYWxzZQopIGFzIHQKTEVGVCBPVVRFUiBKT0lO IGdhdGhlcl9hcHBlbmRfMgpVU0lORyAoZmspCk9SREVSIEJZIHZhbDsKCi0tIEdhdGhlciBNZXJn ZSAoYWN0dWFsIHJvd3M9NDAwIGxvb3BzPTEpCi0tICAgV29ya2VycyBQbGFubmVkOiAxCi0tICAg V29ya2VycyBMYXVuY2hlZDogMQotLSAgIC0+ICBTb3J0IChhY3R1YWwgcm93cz0yMDAgbG9vcHM9 MikKLS0gICAgICAgICBTb3J0IEtleTogZ2F0aGVyX2FwcGVuZF8yLnZhbAotLSAgICAgICAgIFNv cnQgTWV0aG9kOiBxdWlja3NvcnQgIE1lbW9yeTogMjVrQgotLSAgICAgICAgIFdvcmtlciAwOiAg U29ydCBNZXRob2Q6IHF1aWNrc29ydCAgTWVtb3J5OiAyNWtCCi0tICAgICAgICAgLT4gIFBhcmFs bGVsIEhhc2ggTGVmdCBKb2luIChhY3R1YWwgcm93cz0yMDAgbG9vcHM9MikKLS0gICAgICAgICAg ICAgICBIYXNoIENvbmQ6IChnYXRoZXJfYXBwZW5kXzEuZmsgPSBnYXRoZXJfYXBwZW5kXzIuZmsp Ci0tICAgICAgICAgICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZ2F0aGVyX2FwcGVuZF8xX2l4 IG9uIGdhdGhlcl9hcHBlbmRfMSAoYWN0dWFsIHJvd3M9NDAgbG9vcHM9MikKLS0gICAgICAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoZiA9IHRydWUpCi0tICAgICAgICAgICAgICAgLT4gIFBh cmFsbGVsIEhhc2ggKGFjdHVhbCByb3dzPTUwMDAgbG9vcHM9MikKLS0gICAgICAgICAgICAgICAg ICAgICBCdWNrZXRzOiAxNjM4NCAgQmF0Y2hlczogMSAgTWVtb3J5IFVzYWdlOiA1NDRrQgotLSAg ICAgICAgICAgICAgICAgICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiBnYXRoZXJfYXBwZW5k XzIgKGFjdHVhbCByb3dzPTUwMDAgbG9vcHM9MikKCi0tIFJlc3VsdCByb3dzIGluIHJvb3Qgbm9k ZSBzaG91bGQgYmUgZXF1YWwgdG8gbm9uLXBhcmFsbGVsIGNvdW50CkVYUExBSU4gKEFOQUxZWkUg dHJ1ZSwgQ09TVFMgZmFsc2UsIFRJTUlORyBmYWxzZSwgU1VNTUFSWSBmYWxzZSwgVkVSQk9TRSBm YWxzZSwgQlVGRkVSUyBmYWxzZSkKU0VMRUNUIHZhbApGUk9NICgKICBTRUxFQ1QgZmsgRlJPTSBn YXRoZXJfYXBwZW5kXzEgV0hFUkUgZgogIFVOSU9OIEFMTAogIFNFTEVDVCBmayBGUk9NIGdhdGhl cl9hcHBlbmRfMSBXSEVSRSBmYWxzZQopIGFzIHQKTEVGVCBPVVRFUiBKT0lOIGdhdGhlcl9hcHBl bmRfMgpVU0lORyAoZmspCk9SREVSIEJZIHZhbDsKCi0tIEdhdGhlciBNZXJnZSAoYWN0dWFsIHJv d3M9NDAwIGxvb3BzPTEpCi0tICAgV29ya2VycyBQbGFubmVkOiAxCi0tICAgV29ya2VycyBMYXVu Y2hlZDogMQotLSAgIC0+ICBTb3J0IChhY3R1YWwgcm93cz0yMDAgbG9vcHM9MikKLS0gICAgICAg ICBTb3J0IEtleTogZ2F0aGVyX2FwcGVuZF8yLnZhbAotLSAgICAgICAgIFNvcnQgTWV0aG9kOiBx dWlja3NvcnQgIE1lbW9yeTogMjVrQgotLSAgICAgICAgIFdvcmtlciAwOiAgU29ydCBNZXRob2Q6 IHF1aWNrc29ydCAgTWVtb3J5OiAyNWtCCi0tICAgICAgICAgLT4gIFBhcmFsbGVsIEhhc2ggTGVm dCBKb2luIChhY3R1YWwgcm93cz0yMDAgbG9vcHM9MikKLS0gICAgICAgICAgICAgICBIYXNoIENv bmQ6IChnYXRoZXJfYXBwZW5kXzEuZmsgPSBnYXRoZXJfYXBwZW5kXzIuZmspCi0tICAgICAgICAg ICAgICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgZ2F0aGVyX2FwcGVuZF8xX2l4IG9uIGdhdGhlcl9h cHBlbmRfMSAoYWN0dWFsIHJvd3M9NDAgbG9vcHM9MikKLS0gICAgICAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoZiA9IHRydWUpCi0tICAgICAgICAgICAgICAgLT4gIFBhcmFsbGVsIEhhc2gg KGFjdHVhbCByb3dzPTUwMDAgbG9vcHM9MikKLS0gICAgICAgICAgICAgICAgICAgICBCdWNrZXRz OiAxNjM4NCAgQmF0Y2hlczogMSAgTWVtb3J5IFVzYWdlOiA1NDRrQgotLSAgICAgICAgICAgICAg ICAgICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiBnYXRoZXJfYXBwZW5kXzIgKGFjdHVhbCBy b3dzPTUwMDAgbG9vcHM9MikKCg== --=-31yFc6p3iaQUNWLY0hwT--