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 1nW7dN-0008Au-AG for pgsql-bugs@arkaria.postgresql.org; Mon, 21 Mar 2022 02:19:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nW7dL-0006Tw-QR for pgsql-bugs@arkaria.postgresql.org; Mon, 21 Mar 2022 02:18:59 +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 1nW35s-0005o3-T6 for pgsql-bugs@lists.postgresql.org; Sun, 20 Mar 2022 21:28:09 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nW35p-0003w0-E5 for pgsql-bugs@lists.postgresql.org; Sun, 20 Mar 2022 21:28:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Message-ID:Date:Reply-To:Cc:From:To:Subject: MIME-Version:Content-Type:Sender:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=TFxHgFBA7wP5n1L4wyVWIjURc6Pn4HB1qBkEErFfLtA=; b=0FK7rLtQShsLQ/kF3Gtc4h34so w5yYDpA62RQWWFOvgl0+iBRsMvXZUrTXT/ehsBit5twhYrYzU2Gr7ftRdl/RRxIbozl/A+BK/2KXb 2DgMVSBj1WfUiOWJjakNoOtcrSMphlP+RroHWfnJlsfq0ed/AwKHcyKet9uPhR1evyZ/tNC6K3/T1 CJW6IZp3NuikwjFGygyLkqmZKabJhq/Fcyrl73oPf+YVVNIy3Xn+LzQ7rKct1EFetNtjQwsxjnSWz LV/CL4GsKuZzyEZcHrVZM9r1koHLK1+A+wSSI88O8OOtrQ2PIgfDyyw6bIZ8r6PivB848+UyBZKCE 6qFAq2Dg==; Received: from wrigleys.postgresql.org ([2a02:c0:301:0:ffff::34]) by mahout.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nW35o-0001Up-IC for pgsql-bugs@lists.postgresql.org; Sun, 20 Mar 2022 21:28:04 +0000 Received: from localhost ([127.0.0.1] helo=wrigleys.postgresql.org) by wrigleys.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1nW35m-002UeM-Fn for pgsql-bugs@lists.postgresql.org; Sun, 20 Mar 2022 21:28:02 +0000 Content-Type: multipart/mixed; boundary="===============2765903651706027456==" MIME-Version: 1.0 Subject: BUG #17442: Wrong partition pruning when using prepared statement and huge RAM consumption To: pgsql-bugs@lists.postgresql.org From: PG Bug reporting form Cc: damir.ciganovic.jankovic@gmail.com Reply-To: damir.ciganovic.jankovic@gmail.com, pgsql-bugs@lists.postgresql.org Date: Sun, 20 Mar 2022 21:27:35 +0000 Message-ID: <17442-40d918cb37eeee0c@postgresql.org> X-Auto-Response-Suppress: All Auto-Submitted: auto-generated List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --===============2765903651706027456== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJzaXRlOgoKQnVnIHJl ZmVyZW5jZTogICAgICAxNzQ0MgpMb2dnZWQgYnk6ICAgICAgICAgIERhbWlyIENpZ2Fub3ZpxIct SmFua292acSHCkVtYWlsIGFkZHJlc3M6ICAgICAgZGFtaXIuY2lnYW5vdmljLmphbmtvdmljQGdt YWlsLmNvbQpQb3N0Z3JlU1FMIHZlcnNpb246IDEzLjUKT3BlcmF0aW5nIHN5c3RlbTogICBXaW5k b3dzIDEwLCBDZW50T1MgNwpEZXNjcmlwdGlvbjogICAgICAgIAoKV2UgaGF2ZSB1cGdyYWRlZCBQ b3N0Z3JlcyBmcm9tIDExLjEyIHRvIDEzLjUgYW5kIGhhdmUgc3RhcnRlZCB0byBleHBlcmllbmNl CnNvbWUgcHJvYmxlbXMgd2l0aCBvbmUgcXVlcnkuIEFmdGVyIGFuYWx5c2lzIHdlIGhhdmUgZm91 bmQgMiBwcm9ibGVtcyBhbmQgSQphbSByZXBvcnRpbmcgdGhlbSBib3RoIGF0IHRoZSBzYW1lIHRp bWUgYmVjYXVzZSB0aGV5IG1pZ2h0IGJlIGNvbm5lY3RlZC4gV2UKYXJlIHVzaW5nIEphdmEgYW5k IHBvc3RncmVzIGpkYmMgZHJpdmVyLCBidXQgd2UgaGF2ZSBtYW5hZ2VkIHRvIHJlcHJvZHVjZQp0 aGUgcHJvYmxlbSB3aXRoIHBzcWwuIEFsc28sIEkgY2Fubm90IHNoYXJlIG91ciBvcmlnaW5hbCB0 YWJsZSwgYnV0IHVzaW5nCmR1bW15IGRhdGEgc2hvdWxkIGJlIGVub3VnaCBob3BlZnVsbHkuDQoN Ci0tIFN0YXJ0aW5nIFNjaGVtYS4NCkRST1AgVEFCTEUgSUYgRVhJU1RTIHRlc3Q7DQpEUk9QIFRZ UEUgSUYgRVhJU1RTIHRlc3RfZW51bTsNCkRFQUxMT0NBVEUgbXlfcHJlcGFyZWRfc3RhdGVtZW50 Ow0KREVBTExPQ0FURSBteV9wcmVwYXJlZF9zdGF0ZW1lbnRfd2l0aF9lbnVtX2lubGluZWQ7DQpE RUFMTE9DQVRFIG15X3ByZXBhcmVkX3N0YXRlbWVudF9tdWx0aV9wYXJ0aXRpb247DQpEUk9QIEZV TkNUSU9OIElGIEVYSVNUUyBjcmVhdGVfdGVzdF9wYXJ0aXRpb25zOw0KIA0KQ1JFQVRFIFRZUEUg dGVzdF9lbnVtIEFTIEVOVU0gKCdGSVJTVCcsICdTRUNPTkQnKTsNCi0tIE5PVEU6IFBhcnRpdGlv bnMgYXJlIGJ5IHJhbmdlIHdpdGggMiB2YWx1ZXMsIG9uZSBpcyBlbnVtLCBvdGhlciBpcwp0aW1l c3RhbXANCkNSRUFURSBUQUJMRSB0ZXN0IChlbnVtX2NvbCB0ZXN0X2VudW0sIHRpbWVzdGFtcF9j b2wgdGltZXN0YW1wLCBzb21lX2lkIGludCwKc3RhdHVzIGludCkgUEFSVElUSU9OIEJZIFJBTkdF IChlbnVtX2NvbCwgdGltZXN0YW1wX2NvbCk7DQogDQoxLiBDYXNlOiBXcm9uZyBwYXJ0aXRpb24g cHJ1bmluZw0KLS0gQ3JlYXRlIDQgcGFydGl0aW9ucyBvZiB0ZXN0IHRhYmxlOg0KQ1JFQVRFIFRB QkxFIHRlc3RfRklSU1RfMSBQQVJUSVRJT04gT0YgdGVzdCBGT1IgVkFMVUVTIEZST00gKCdGSVJT VCcsCicyMDIyLTAxLTAxJykgVE8gKCdGSVJTVCcsICcyMDIyLTAxLTAyJyk7DQpDUkVBVEUgVEFC TEUgdGVzdF9GSVJTVF8yIFBBUlRJVElPTiBPRiB0ZXN0IEZPUiBWQUxVRVMgRlJPTSAoJ0ZJUlNU JywKJzIwMjItMDEtMDInKSBUTyAoJ0ZJUlNUJywgJzIwMjItMDEtMDMnKTsNCiANCkNSRUFURSBU QUJMRSB0ZXN0X1NFQ09ORF8xIFBBUlRJVElPTiBPRiB0ZXN0IEZPUiBWQUxVRVMgRlJPTSAoJ1NF Q09ORCcsCicyMDIyLTAxLTAxJykgVE8gKCdTRUNPTkQnLCAnMjAyMi0wMS0wMicpOw0KQ1JFQVRF IFRBQkxFIHRlc3RfU0VDT05EXzIgUEFSVElUSU9OIE9GIHRlc3QgRk9SIFZBTFVFUyBGUk9NICgn U0VDT05EJywKJzIwMjItMDEtMDInKSBUTyAoJ1NFQ09ORCcsICcyMDIyLTAxLTAzJyk7DQoNCi0t IEFuYWx5emVzIEFMTCA0IHBhcnRpdGlvbnMgZXZlbiB0aG91Z2ggd2Ugc3BlY2lmaWVkIHRoYXQg d2Ugd2FudCBvbmx5CidGSVJTVCcuIFNob3VsZCBoYXZlIGFuYWx5emVkIG9ubHkgdGVzdF9GSVJT VF8xLiBOT1RFOiBzYW1lIHJlc3VsdCB3aXRoCkVYUExBSU4gQU5BTFlaRQ0KUFJFUEFSRSBteV9w cmVwYXJlZF9zdGF0ZW1lbnQodGV4dCwgdGV4dCwgdGV4dCkgQVMgVVBEQVRFIHRlc3QgU0VUIHNv bWVfaWQgPQo1IFdIRVJFIHRpbWVzdGFtcF9jb2wgPj0gQ0FTVCgkMSBBUyB0aW1lc3RhbXAoNikp IEFORCB0aW1lc3RhbXBfY29sIDwKQ0FTVCgkMiBBUyB0aW1lc3RhbXAoNikpIEFORCBlbnVtX2Nv bCA9ICQzOjp0ZXN0X2VudW07DQpFWFBMQUlOIEVYRUNVVEUgbXlfcHJlcGFyZWRfc3RhdGVtZW50 KCcyMDIyLTAxLTAxIDAxOjAwOjAwJywgJzIwMjItMDEtMDEKMDI6MDA6MDAnLCAnRklSU1QnKTsN Cg0KLS0gQW5hbHl6ZXMgYm90aCB0ZXN0X0ZJUlNUXzEgYW5kIHRlc3RfRklSU1RfMiBkZXNwaXRl IGxvb2tpbmcgZm9yIG9ubHkKJzIwMjItMDEtMDEnLiBOT1RFOiBzYW1lIHJlc3VsdCB3aXRoIEVY UExBSU4gQU5BTFlaRQ0KUFJFUEFSRSBteV9wcmVwYXJlZF9zdGF0ZW1lbnRfd2l0aF9lbnVtX2lu bGluZWQodGV4dCwgdGV4dCkgQVMgVVBEQVRFIHRlc3QKU0VUIHNvbWVfaWQgPSA1IFdIRVJFIHRp bWVzdGFtcF9jb2wgPj0gQ0FTVCgkMSBBUyB0aW1lc3RhbXAoNikpIEFORAp0aW1lc3RhbXBfY29s IDwgQ0FTVCgkMiBBUyB0aW1lc3RhbXAoNikpIEFORCBlbnVtX2NvbCA9ICdGSVJTVCc7DQpFWFBM QUlOIEVYRUNVVEUgbXlfcHJlcGFyZWRfc3RhdGVtZW50X3dpdGhfZW51bV9pbmxpbmVkKCcyMDIy LTAxLTAxCjAxOjAwOjAwJywgJzIwMjItMDEtMDEgMDI6MDA6MDAnKTsNCg0KVGhpcyBjYXVzZXMg b3VyIHF1ZXJ5IHRvIGJlIHJlYWxseSBzbG93LiBXaGF0IEkgbm90aWNlZCBpcyB0aGF0IHRoaXMg YWxzbwpoYXBwZW5zIG9uIDExLjEyLCBidXQgd2UgZGlkbid0IG5vdGljZSB0aGlzIHVudGlsIHNl Y29uZCBwcm9ibGVtIHN0YXJ0ZWQgdG8KYXBwZWFyIChiZWxvdykNCg0KMi4gQ2FzZTogSHVnZSBS QU0gY29uc3VtcHRpb24NCk9uY2Ugd2UgaGF2ZSBkZXBsb3llZCBvdXIgdmVyc2lvbiB3aXRoIFBv c3RncmVzIDEzLjUgaW5zdGFsbGVkIHdlIG5vdGljZWQKaHVnZSBzcGlrZXMgaW4gUkFNIHVzYWdl IHRoYXQgd2VyZSB0YWtlbiB1bnRpbCB3ZSBoYXZlIGtpbGxlZCAoY2xvc2VkKQpjb25uZWN0aW9u IHRoYXQgaGFzIGV4ZWN1dGVkIHRoZSBwcm9ibGVtYXRpYyBxdWVyeS4gRm9yIGV4YW1wbGUsIG1h Y2hpbmUKd2VudCBmcm9tIDEwIEdCIHRvIGFyb3VuZCAyNiBHQiBSQU0gdXNhZ2Ugd2hlbiBxdWVy eSB3YXMgZXhlY3V0ZWQgYnkgb25lCmNvbm5lY3Rpb24gYW5kIHRoZW4gdG8gYXJvdW5kIDQyIEdC IFJBTSB3aGVuIHF1ZXJ5IHdhcyBleGVjdXRlZCBieSBvdGhlcgpjb25uZWN0aW9uLiAgT3VyIG9u bHkgY29uZmlndXJhdGlvbiB0aGF0IGNvdWxkIG1hdGNoIHRoZXNlIDE2R0IganVtcHMgaXMKIm1h eF93YWxfc2l6ZSA9IDE2R0IiLCBidXQgSSBhbSBub3Qgc3VyZSBpZiBpdCBoYXMgYW55dGhpbmcg d2l0aCB0aGF0LiBJZgp5b3UgbmVlZCBhbnkgb3RoZXIgY29uZmlnIHBhcmFtZXRlciwgcGxlYXNl IHRlbGwgbWUuDQoNCkl0IGlzIGEgYml0IGhhcmQgdG8gZ2V0IGV4YWN0IHF1ZXJ5IHRoYXQgcHJv ZHVjZXMgdGhlIHNhbWUgc3Bpa2Ugd2l0aCBkdW1teQpkYXRhLCBidXQgd2hhdCBJIG5vdGljZWQg aXMgdGhhdCBQb3N0Z3JlcyB0YWtlcyBhIGxvbmcgdGltZSB0byBldmVuIEV4cGxhaW4KdGhlIHF1 ZXJ5LCB3aXRob3V0IGV4ZWN1dGluZyBpdC4gDQpJIG5vdGljZWQgYWxzbyB0aGF0IGlmIHRoZXJl IGFyZSBubyBwYXJ0aXRpb25zLCBleHBsYWluIGRvZXMgbm90IGhhdmUgYQpwcm9ibGVtIHdpdGgg dGhhdCwgYnV0IGlmIHRoZXJlIGFyZSBtYW55IHBhcnRpdGlvbnMgKG9uIG91ciBwcm9kdWN0aW9u IHdlCmhhdmUgYXJvdW5kIDExMDAgcGFydGl0aW9ucyBvZiB0aGF0IHRhYmxlKSwgcXVlcnkgc3Rh cnRzIHRvIGdvIHdpbGQuDQoNCg0KVGhpcyBpcyBob3cgSSB0cmllZCB0byByZXByb2R1Y2U6DQoN Ci0tIERST1AgdGFibGVzIHVzZWQgaW4gcHJldmlvdXMgZXhhbXBsZToNCkRST1AgVEFCTEUgdGVz dF9GSVJTVF8xOw0KRFJPUCBUQUJMRSB0ZXN0X0ZJUlNUXzI7DQpEUk9QIFRBQkxFIHRlc3RfU0VD T05EXzE7DQpEUk9QIFRBQkxFIHRlc3RfU0VDT05EXzI7DQoNCi0tIFRoaXMgaXMgYSBoZWxwZXIg ZnVuY3Rpb24gdGhhdCB3aWxsIGNyZWF0ZSBwYXJ0aXRpb24gZm9yIGV2ZXJ5IDEwCm1pbnV0ZXMu IEl0IHdpbGwgY3JlYXRlIGZvciBib3RoIHRlc3RfZW51bSB2YWx1ZXMgKEZJUlNUIGFuZCBTRUNP TkQpLiBVc2FnZQpvZiBtZXRob2QgaXMgdG8gZGVmaW5lIHN0YXJ0aW5nIGFuZCBlbmQgdGltZXN0 YW1wIGFuZCBmdW5jdGlvbiB3aWxsIGNyZWF0ZQpwYXJ0aXRpb25zIGZyb20gc3RhcnQgdG8gZW5k DQpjcmVhdGUgb3IgcmVwbGFjZSBmdW5jdGlvbiBjcmVhdGVfdGVzdF9wYXJ0aXRpb25zKGZyb21f dGltZXN0YW1wIHRpbWVzdGFtcAp3aXRob3V0IHRpbWUgem9uZSwgdG9fdGltZXN0YW1wIHRpbWVz dGFtcCB3aXRob3V0IHRpbWUgem9uZSkgcmV0dXJucyB2b2lkDQogICAgbGFuZ3VhZ2UgcGxwZ3Nx bA0KYXMNCiQkDQpkZWNsYXJlDQogICAgc3RhcnRfb2ZfcmFuZ2VfdGltZXN0YW1wIHRpbWVzdGFt cCA6PSBmcm9tX3RpbWVzdGFtcDsNCgllbmRfb2ZfcmFuZ2VfdGltZXN0YW1wIHRpbWVzdGFtcCA6 PSBmcm9tX3RpbWVzdGFtcCArICcxMAptaW51dGVzJzo6aW50ZXJ2YWw7DQoJY291bnRlciBpbnQg Oj0gMTsNCmJlZ2luDQogICAgd2hpbGUgc3RhcnRfb2ZfcmFuZ2VfdGltZXN0YW1wIDwgdG9fdGlt ZXN0YW1wIGxvb3ANCiAgICAgICAgICAgIGV4ZWN1dGUgJ2NyZWF0ZSB0YWJsZSB0ZXN0X0ZJUlNU XycgfHwgY291bnRlciB8fCBFJyBwYXJ0aXRpb24gb2YKdGVzdCBmb3IgdmFsdWVzIGZyb20gKFwn RklSU1RcJywgXCcnIHx8IHN0YXJ0X29mX3JhbmdlX3RpbWVzdGFtcCB8fCBFJ1wnKSB0bwooXCdG SVJTVFwnLCBcJycgfHwgZW5kX29mX3JhbmdlX3RpbWVzdGFtcCB8fCBFJ1wnKSc7DQoJCQlleGVj dXRlICdjcmVhdGUgdGFibGUgdGVzdF9TRUNPTkRfJyB8fCBjb3VudGVyIHx8IEUnIHBhcnRpdGlv biBvZiB0ZXN0CmZvciB2YWx1ZXMgZnJvbSAoXCdTRUNPTkRcJywgXCcnIHx8IHN0YXJ0X29mX3Jh bmdlX3RpbWVzdGFtcCB8fCBFJ1wnKSB0bwooXCdTRUNPTkRcJywgXCcnIHx8IGVuZF9vZl9yYW5n ZV90aW1lc3RhbXAgfHwgRSdcJyknOw0KICAgICAgICAgICAgc3RhcnRfb2ZfcmFuZ2VfdGltZXN0 YW1wID0gZW5kX29mX3JhbmdlX3RpbWVzdGFtcDsNCgkJCWVuZF9vZl9yYW5nZV90aW1lc3RhbXAg PSBlbmRfb2ZfcmFuZ2VfdGltZXN0YW1wICsgJzEwCm1pbnV0ZXMnOjppbnRlcnZhbDsNCgkJCWNv dW50ZXIgPSBjb3VudGVyICsgMTsNCiAgICAgICAgZW5kIGxvb3A7DQplbmQNCiQkOw0KDQpTRUxF Q1QgY3JlYXRlX3Rlc3RfcGFydGl0aW9ucygnMjAyMi0wMS0wMScsICcyMDIyLTAxLTA1Jyk7DQoN Ci0tICBJIGtub3cgdGhhdCB0aGlzIGlzIGEgYml0IHRvbyBjb21wbGV4IHRvIHVzZSBmb3IgYW4g ZXhhbXBsZSwgYnV0IGl0IHdhcwpoYXJkIGZvciBtZSB0byByZXBsaWNhdGUgc2FtZSBlZmZlY3Qg d2l0aCBhIChkdW1teSkgdGFibGUgZGlmZmVyZW50IHRoYW4gb3VyCnJlYWwgdGFibGUuIA0KLS0g V2hhdCB3ZSBhcmUgZG9pbmcgaGVyZSBpcyBzZWxlY3Rpbmcgc29tZSByb3dzIGZyb20gdGVzdCB0 YWJsZSBhbmQgdGhlbgp1cGRhdGluZyBvdGhlciByb3dzIGluIHRoaXMgdGVzdCB0YWJsZSBiYXNl ZCBvbiBzZWxlY3RlZCBjb2x1bW5zDQpQUkVQQVJFIG15X3ByZXBhcmVkX3N0YXRlbWVudF9tdWx0 aV9wYXJ0aXRpb24odGV4dCwgdGV4dCwgdGV4dCwgdGV4dCkgQVMKV0lUSCAiaWRfY29sbGVjdGlv biIgQVMgKFNFTEVDVCBzb21lX2lkIEFTIHNvbWVfaWRfY3RlLCBzdGF0dXMgQVMgc3RhdHVzX2N0 ZQpGUk9NIHRlc3Qgd2hlcmUgdGltZXN0YW1wX2NvbCA+PSBDQVNUKCQxIEFTIHRpbWVzdGFtcCg2 KSkgQU5EIHRpbWVzdGFtcF9jb2wKPCBDQVNUKCQyIEFTIHRpbWVzdGFtcCg2KSkpIFVQREFURSB0 ZXN0IFNFVCBzdGF0dXMgPQoiaWRfY29sbGVjdGlvbiIuc3RhdHVzX2N0ZSBGUk9NICJpZF9jb2xs ZWN0aW9uIiBXSEVSRSB0aW1lc3RhbXBfY29sID49CkNBU1QoJDMgQVMgdGltZXN0YW1wKDYpKSBB TkQgdGltZXN0YW1wX2NvbCA8IENBU1QoJDQgQVMgdGltZXN0YW1wKDYpKSBBTkQKZW51bV9jb2wg PSAnRklSU1QnIEFORCBzb21lX2lkID0gImlkX2NvbGxlY3Rpb24iLnNvbWVfaWRfY3RlOw0KDQpF WFBMQUlOIEVYRUNVVEUgbXlfcHJlcGFyZWRfc3RhdGVtZW50X211bHRpX3BhcnRpdGlvbignMjAy Mi0wMS0wMSAwMTowMDowMCcsCicyMDIyLTAxLTAxIDAyOjAwOjAwJywgJzIwMjItMDEtMDEgMDY6 MDA6MDAnLCAnMjAyMi0wMS0wMSAwNzowMDowMCcpOw0KDQpXaGVuIEkgZXhlY3V0ZSBleHBsYWlu IHdpdGggY29tbWFuZCBhYm92ZS4gSXQgdGFrZXMgcmVhbGx5IGxvbmcgdGltZSB0bwpleGVjdXRl LiBOb3RlIHRoYXQgb24gMTEuMTIgUG9zdGdyZXMsIHRoaXMgZXhlY3V0ZXMgYWxtb3N0IGluc3Rh bnRseS4gTXkKdGVzdGluZyBtYWNoaW5lIFJBTSByYWlzZXMgZm9yIDItMyBHQiB3aGlsZSBleGVj dXRpbmcgdGhpcyBleHBsYWluIChjZW50T1MKNykuIA0KV2hlbiBleGVjdXRlIHNhbWUgb24gbXkg V2luZG93cyBtYWNoaW5lLCBJIGRvbid0IHNlZSBhbnkgUkFNIGNvbnN1bXB0aW9uCmlzc3Vlcywg YnV0IEkgZG9uJ3QgZ2V0IGFueSByZXN1bHQganVzdCB0aGlzIGFuZCBJIGhhdmUgdG8gcmVzdGFy dApzZXNzaW9uOg0KYGBgDQpzZXJ2ZXIgY2xvc2VkIHRoZSBjb25uZWN0aW9uIHVuZXhwZWN0ZWRs eQ0KICAgICAgICBUaGlzIHByb2JhYmx5IG1lYW5zIHRoZSBzZXJ2ZXIgdGVybWluYXRlZCBhYm5v cm1hbGx5DQogICAgICAgIGJlZm9yZSBvciB3aGlsZSBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0Lg0K VGhlIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciB3YXMgbG9zdC4gQXR0ZW1wdGluZyByZXNldDog RmFpbGVkLg0KYGBgDQoNClRoaXMgUkFNIGNvbnN1bXB0aW9uIG1heSBiZSByZWxhdGVkIHRvIHBh cnRpdGlvbiBwcnVuaW5nLCBidXQgSSByZWFsbHkgZG9uJ3QKa25vdywgSSBob3BlIHlvdSBjYW4g Y2xlYXIgdGhpbmdzIHVwIGEgYml0IGZvciBtZS4gDQoNCk1PUkUgQkFDS0dST1VORDogDQoxLiBX aGlsZSBteSBxdWVyeSBoZXJlIGxvb2tzIGxpa2UgIldpdGggWCBhcyAoU0VMRUNUKSAtPiBVUERB VEUgIiwgbXkKb3JpZ2luYWwgcXVlcnkgbG9va3MgbGlrZSAiQ3JlYXRlIHVubG9nZ2VkIHRhYmxl IEFTIChXaXRoIFggYXMgKFNFTEVDVCksCndpdGggWSBhcyBVUERBVEUgcmV0dXJuaW5nICogLT4g U0VMRUNUIEZST00gWSIgd2hpY2ggYmFzaWNhbGx5IG1lYW5zIHRoYXQgSQphbSB1cGRhdGluZyB0 YWJsZSBhbmQgY3JlYXRpbmcgbmV3IHRhYmxlIHdpdGggdXBkYXRlZCByZWNvcmRzLiBJIGhhdmUg dHJpZWQKdG8gc2ltcGxpZnkgaXQsIGhvcGVmdWxseSBJIHN1Y2NlZWRlZC4NCjIuIEN1cnJlbnQg d29ya2Fyb3VuZCBpcyB0byBub3QgdXNlIHByZXBhcmVkIHN0YXRlbWVudCBpbnNpZGUgYXBwbGlj YXRpb24KdGhhdCBpcyBleGVjdXRpbmcgdGhpcyBwcm9ibGVtYXRpYyBxdWVyeSwgYnV0IHdlIHdv dWxkIHByZWZlciB0byB1c2UgdGhlbSBpZgp0aGlzIHdvdWxkIGJlIGZpeGVkLg0KDQpUaGFuayB5 b3UgaW4gYWR2YW5jZSwgRGFtaXIKCg== --===============2765903651706027456==--