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 1phX4G-00076x-Cn for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Mar 2023 14:46:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1phX4E-0004Oy-KN for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Mar 2023 14:46:26 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1phX4D-0004Oo-O8 for pgsql-hackers@lists.postgresql.org; Wed, 29 Mar 2023 14:46:26 +0000 Received: from new2-smtp.messagingengine.com ([66.111.4.224]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1phX49-0005JH-KR for pgsql-hackers@lists.postgresql.org; Wed, 29 Mar 2023 14:46:25 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailnew.nyi.internal (Postfix) with ESMTP id B73CE581F8B; Wed, 29 Mar 2023 10:46:18 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 29 Mar 2023 10:46:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; t=1680101178; x=1680108378; bh=aWjxm2aTJsi3s 5t+jgUTXGlEi0QavEKmKqgiXmH3QSg=; b=AGG28/T6AtKckyWQ83qTUNtUlyyar TVTq/2klGSimaGq5unUqJTaDa1qlqge/zv5U14MKbCGir3hQpBJBpB/AFca6EEDv 784TV6hr9j0y0EeTtBsVSfSBLd+kvaWa7OzD6dEClp696JCYLydBSdZb1tvLShGo JmzQqjzMb7v4Sep897FDRwaNLyYhNPARaHULmKO0Vt2Yxbf+OTWrwhOzhqEsLb2P kUvqFfzOSPuHbpoo/2z5OLyF63k7nm/ysFN4hS7N0uRaVGUpqsJ2dg9ZvHWIM4io qVnLVz2/AknO/Bak46PBQk5tD6fHfT/pN3pJN1/4xJw3BiNEWkZp/t88w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvdehiedgkeduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptgfkffggfgfuhffvfhgjsehmtderredtfeejnecuhfhrohhmpefrvghtvghr ucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgvihhsvghnthhrrghuthesvghnthgvrh hprhhishgvuggsrdgtohhmqeenucggtffrrghtthgvrhhnpeekteetfeehvefhvdeltdef geeluedtkeekkeevieefueffveejueejheffjeeijeenucevlhhushhtvghrufhiiigvpe dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghuthes vghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 29 Mar 2023 10:46:17 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------o7sdlQDZpenUgX1AKLb7E0pb" Message-ID: <81b461c4-edab-5d8c-2f88-203108425340@enterprisedb.com> Date: Wed, 29 Mar 2023 16:46:16 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: cataloguing NOT NULL constraints Content-Language: en-US From: Peter Eisentraut To: Alvaro Herrera , Pg Hackers References: <20230315224440.cz3brr6323fcrxs6@alvherre.pgsql> In-Reply-To: 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. --------------o7sdlQDZpenUgX1AKLb7E0pb Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 27.03.23 15:55, Peter Eisentraut wrote: > The information schema should be updated.  I think the following views: > > - CHECK_CONSTRAINTS > - CONSTRAINT_COLUMN_USAGE > - DOMAIN_CONSTRAINTS > - TABLE_CONSTRAINTS > > It looks like these have no test coverage; maybe that could be addressed > at the same time. Here are patches for this. I haven't included the expected files for the tests; this should be checked again that output is correct or the changes introduced by this patch set are as expected. The reason we didn't have tests for this before was probably in part because the information schema made up names for not-null constraints involving OIDs, so the test wouldn't have been stable. Feel free to integrate this, or we can add it on afterwards. --------------o7sdlQDZpenUgX1AKLb7E0pb Content-Type: text/plain; charset=UTF-8; name="0001-Add-tests-for-information-schema-constraints.patch.nocfbot" Content-Disposition: attachment; filename*0="0001-Add-tests-for-information-schema-constraints.patch.nocf"; filename*1="bot" Content-Transfer-Encoding: base64 RnJvbSA4Y2I1ZjgxMTc2ZTA2ZGRlZDg4ZDQ5MTc5ZGViZGRhYjk5MmZmMWNlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAyOSBNYXIgMjAyMyAxNjo0MjoxNiArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMS8yXSBBZGQgdGVzdHMgZm9yIGluZm9ybWF0aW9uIHNjaGVtYSBjb25zdHJh aW50cyB2aWV3cwoKLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb25zdHJhaW50cy5zcWwg fCAxNiArKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9kb21haW4uc3Fs ICAgICAgfCAyNCArKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwg NDAgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nv bnN0cmFpbnRzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbnN0cmFpbnRzLnNxbApp bmRleCBhZTQyN2QyNWU5Li4wYzhmNjgxYjUxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9jb25zdHJhaW50cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29u c3RyYWludHMuc3FsCkBAIC01ODksNiArNTg5LDIyIEBAIENSRUFURSBUQUJMRSBub3RudWxs X3RibDMgKGEgSU5URUdFUiBOT1QgTlVMTCwgQ0hFQ0sgKGEgSVMgTk9UIE5VTEwpKTsKIEFM VEVSIFRBQkxFIG5vdG51bGxfdGJsMyBEUk9QIENPTlNUUkFJTlQgcGs7CiBcZCBub3RudWxs X3RibDMKIAorLS0KKy0tIEluZm9ybWF0aW9uIHNjaGVtYQorLS0KKworU0VMRUNUICogRlJP TSBpbmZvcm1hdGlvbl9zY2hlbWEuY2hlY2tfY29uc3RyYWludHMKKyAgV0hFUkUgY29uc3Ry YWludF9zY2hlbWEgPSAncHVibGljJworICBPUkRFUiBCWSBjb25zdHJhaW50X25hbWU7CisK K1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbnN0cmFpbnRfY29sdW1uX3Vz YWdlCisgIFdIRVJFIGNvbnN0cmFpbnRfc2NoZW1hID0gJ3B1YmxpYycKKyAgT1JERVIgQlkg dGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGNvbnN0cmFpbnRfbmFtZTsKKworU0VMRUNUICog RlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVfY29uc3RyYWludHMKKyAgV0hFUkUgY29u c3RyYWludF9zY2hlbWEgPSAncHVibGljJworICBPUkRFUiBCWSBjb25zdHJhaW50X25hbWU7 CisKIC0tIENvbW1lbnRzCiAtLSBTZXR1cCBhIGxvdy1sZXZlbCByb2xlIHRvIGVuZm9yY2Ug bm9uLXN1cGVydXNlciBjaGVja3MuCiBDUkVBVEUgUk9MRSByZWdyZXNzX2NvbnN0cmFpbnRf Y29tbWVudHM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kb21haW4uc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZG9tYWluLnNxbAppbmRleCA3NTcwMzk0MGY5Li4z MDk2YjM3N2ViIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kb21haW4uc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RvbWFpbi5zcWwKQEAgLTgxMiwzICs4MTIs MjcgQEAgQ1JFQVRFIFRBQkxFIHRoZXRoaW5ncyAoc3R1ZmYgdGhpbmdzKTsKIGFsdGVyIGRv bWFpbiB0ZXN0ZG9tYWluMSByZW5hbWUgY29uc3RyYWludCB1bnNpZ25lZCB0byB1bnNpZ25l ZF9mb287CiBhbHRlciBkb21haW4gdGVzdGRvbWFpbjEgZHJvcCBjb25zdHJhaW50IHVuc2ln bmVkX2ZvbzsKIGRyb3AgZG9tYWluIHRlc3Rkb21haW4xOworCisKKy0tCistLSBJbmZvcm1h dGlvbiBzY2hlbWEKKy0tCisKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNv bHVtbl9kb21haW5fdXNhZ2UKKyAgV0hFUkUgZG9tYWluX3NjaGVtYSA9ICdwdWJsaWMnIEFO RCB0YWJsZV9zY2hlbWEgPSAncHVibGljJworICBPUkRFUiBCWSBkb21haW5fbmFtZTsKKwor U0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuZG9tYWluX2NvbnN0cmFpbnRzCisg IFdIRVJFIGRvbWFpbl9zY2hlbWEgPSAncHVibGljJworICBPUkRFUiBCWSBjb25zdHJhaW50 X25hbWU7CisKK1NFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmRvbWFpbnMKKyAg V0hFUkUgZG9tYWluX3NjaGVtYSA9ICdwdWJsaWMnCisgIE9SREVSIEJZIGRvbWFpbl9uYW1l OworCitTRUxFQ1QgKiBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5jaGVja19jb25zdHJhaW50 cworICBXSEVSRSAoY29uc3RyYWludF9zY2hlbWEsIGNvbnN0cmFpbnRfbmFtZSkKKyAgICAg ICAgSU4gKFNFTEVDVCBjb25zdHJhaW50X3NjaGVtYSwgY29uc3RyYWludF9uYW1lCisgICAg ICAgICAgICBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5kb21haW5fY29uc3RyYWludHMKKyAg ICAgICAgICAgIFdIRVJFIGRvbWFpbl9zY2hlbWEgPSAncHVibGljJykKKyAgT1JERVIgQlkg Y29uc3RyYWludF9uYW1lOwotLSAKMi40MC4wCgo= --------------o7sdlQDZpenUgX1AKLb7E0pb Content-Type: text/plain; charset=UTF-8; name="0002-Update-information-schema-for-catalogued-not.patch.nocfbot" Content-Disposition: attachment; filename*0="0002-Update-information-schema-for-catalogued-not.patch.nocf"; filename*1="bot" Content-Transfer-Encoding: base64 RnJvbSAwOTM5MDVmYjliZGRkMDczYjkzMTI4ODkzZWNjZWFlNWRhNjgwMWQ1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAyOSBNYXIgMjAyMyAxNjo0MjozNyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMi8yXSBVcGRhdGUgaW5mb3JtYXRpb24gc2NoZW1hIGZvciBjYXRhbG9ndWVk IG5vdC1udWxsCiBjb25zdHJhaW50cwoKLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL2luZm9y bWF0aW9uX3NjaGVtYS5zcWwgfCA1NyArKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwKaW5kZXggMDU1NWU5YmMwMy4u NDE0ZmQwYzZiYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlv bl9zY2hlbWEuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2No ZW1hLnNxbApAQCAtNDM1LDMxICs0MzUsMTUgQEAgQ1JFQVRFIFZJRVcgY2hlY2tfY29uc3Ry YWludHMgQVMKICAgICBTRUxFQ1QgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3FsX2lk ZW50aWZpZXIpIEFTIGNvbnN0cmFpbnRfY2F0YWxvZywKICAgICAgICAgICAgQ0FTVChycy5u c3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBjb25zdHJhaW50X3NjaGVtYSwKICAgICAg ICAgICAgQ0FTVChjb24uY29ubmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29uc3RyYWlu dF9uYW1lLAotICAgICAgICAgICBDQVNUKHN1YnN0cmluZyhwZ19nZXRfY29uc3RyYWludGRl Zihjb24ub2lkKSBmcm9tIDcpIEFTIGNoYXJhY3Rlcl9kYXRhKQorICAgICAgICAgICBDQVNU KENBU0UgY29uLmNvbnR5cGUgV0hFTiAnYycgVEhFTiBsZWZ0KHN1YnN0cmluZyhwZ19nZXRf Y29uc3RyYWludGRlZihjb24ub2lkKSBmcm9tIDgpLCAtMSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFdIRU4gJ24nIFRIRU4gc3Vic3RyaW5nKHBnX2dldF9jb25zdHJh aW50ZGVmKGNvbi5vaWQpIGZyb20gMTApIHx8ICcgSVMgTk9UIE5VTEwnIEVORCBBUyBjaGFy YWN0ZXJfZGF0YSkKICAgICAgICAgICAgICBBUyBjaGVja19jbGF1c2UKICAgICBGUk9NIHBn X2NvbnN0cmFpbnQgY29uCiAgICAgICAgICAgIExFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3Bh Y2UgcnMgT04gKHJzLm9pZCA9IGNvbi5jb25uYW1lc3BhY2UpCiAgICAgICAgICAgIExFRlQg T1VURVIgSk9JTiBwZ19jbGFzcyBjIE9OIChjLm9pZCA9IGNvbi5jb25yZWxpZCkKICAgICAg ICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3R5cGUgdCBPTiAodC5vaWQgPSBjb24uY29udHlw aWQpCiAgICAgV0hFUkUgcGdfaGFzX3JvbGUoY29hbGVzY2UoYy5yZWxvd25lciwgdC50eXBv d25lciksICdVU0FHRScpCi0gICAgICBBTkQgY29uLmNvbnR5cGUgPSAnYycKLQotICAgIFVO SU9OCi0gICAgLS0gbm90LW51bGwgY29uc3RyYWludHMKLQotICAgIFNFTEVDVCBDQVNUKGN1 cnJlbnRfZGF0YWJhc2UoKSBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29uc3RyYWludF9jYXRh bG9nLAotICAgICAgICAgICBDQVNUKG4ubnNwbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMg Y29uc3RyYWludF9zY2hlbWEsCi0gICAgICAgICAgIENBU1QoQ0FTVChuLm9pZCBBUyB0ZXh0 KSB8fCAnXycgfHwgQ0FTVChyLm9pZCBBUyB0ZXh0KSB8fCAnXycgfHwgQ0FTVChhLmF0dG51 bSBBUyB0ZXh0KSB8fCAnX25vdF9udWxsJyBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29uc3Ry YWludF9uYW1lLCAtLSBYWFgKLSAgICAgICAgICAgQ0FTVChhLmF0dG5hbWUgfHwgJyBJUyBO T1QgTlVMTCcgQVMgY2hhcmFjdGVyX2RhdGEpCi0gICAgICAgICAgICAgQVMgY2hlY2tfY2xh dXNlCi0gICAgRlJPTSBwZ19uYW1lc3BhY2UgbiwgcGdfY2xhc3MgciwgcGdfYXR0cmlidXRl IGEKLSAgICBXSEVSRSBuLm9pZCA9IHIucmVsbmFtZXNwYWNlCi0gICAgICBBTkQgci5vaWQg PSBhLmF0dHJlbGlkCi0gICAgICBBTkQgYS5hdHRudW0gPiAwCi0gICAgICBBTkQgTk9UIGEu YXR0aXNkcm9wcGVkCi0gICAgICBBTkQgYS5hdHRub3RudWxsCi0gICAgICBBTkQgci5yZWxr aW5kIElOICgncicsICdwJykKLSAgICAgIEFORCBwZ19oYXNfcm9sZShyLnJlbG93bmVyLCAn VVNBR0UnKTsKKyAgICAgIEFORCBjb24uY29udHlwZSBJTiAoJ2MnLCAnbicpOwogCiBHUkFO VCBTRUxFQ1QgT04gY2hlY2tfY29uc3RyYWludHMgVE8gUFVCTElDOwogCkBAIC04MjIsNyAr ODA2LDcgQEAgQ1JFQVRFIFZJRVcgY29uc3RyYWludF9jb2x1bW5fdXNhZ2UgQVMKICAgICAg ICAgICAgIEFORCBkLmNsYXNzaWQgPSAncGdfY2F0YWxvZy5wZ19jb25zdHJhaW50Jzo6cmVn Y2xhc3MKICAgICAgICAgICAgIEFORCBkLm9iamlkID0gYy5vaWQKICAgICAgICAgICAgIEFO RCBjLmNvbm5hbWVzcGFjZSA9IG5jLm9pZAotICAgICAgICAgICAgQU5EIGMuY29udHlwZSA9 ICdjJworICAgICAgICAgICAgQU5EIGMuY29udHlwZSBJTiAoJ2MnLCAnbicpCiAgICAgICAg ICAgICBBTkQgci5yZWxraW5kIElOICgncicsICdwJykKICAgICAgICAgICAgIEFORCBOT1Qg YS5hdHRpc2Ryb3BwZWQKIApAQCAtMTgzMiw2ICsxODE2LDcgQEAgQ1JFQVRFIFZJRVcgdGFi bGVfY29uc3RyYWludHMgQVMKICAgICAgICAgICAgQ0FTVChyLnJlbG5hbWUgQVMgc3FsX2lk ZW50aWZpZXIpIEFTIHRhYmxlX25hbWUsCiAgICAgICAgICAgIENBU1QoCiAgICAgICAgICAg ICAgQ0FTRSBjLmNvbnR5cGUgV0hFTiAnYycgVEhFTiAnQ0hFQ0snCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgV0hFTiAnbicgVEhFTiAnQ0hFQ0snCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgV0hFTiAnZicgVEhFTiAnRk9SRUlHTiBLRVknCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgV0hFTiAncCcgVEhFTiAnUFJJTUFSWSBLRVknCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgV0hFTiAndScgVEhFTiAnVU5JUVVFJyBFTkQKQEAgLTE4NTYs MzggKzE4NDEsNiBAQCBDUkVBVEUgVklFVyB0YWJsZV9jb25zdHJhaW50cyBBUwogICAgICAg ICAgIEFORCBjLmNvbnR5cGUgTk9UIElOICgndCcsICd4JykgIC0tIGlnbm9yZSBub25zdGFu ZGFyZCBjb25zdHJhaW50cwogICAgICAgICAgIEFORCByLnJlbGtpbmQgSU4gKCdyJywgJ3An KQogICAgICAgICAgIEFORCAoTk9UIHBnX2lzX290aGVyX3RlbXBfc2NoZW1hKG5yLm9pZCkp Ci0gICAgICAgICAgQU5EIChwZ19oYXNfcm9sZShyLnJlbG93bmVyLCAnVVNBR0UnKQotICAg ICAgICAgICAgICAgLS0gU0VMRUNUIHByaXZpbGVnZSBvbWl0dGVkLCBwZXIgU1FMIHN0YW5k YXJkCi0gICAgICAgICAgICAgICBPUiBoYXNfdGFibGVfcHJpdmlsZWdlKHIub2lkLCAnSU5T RVJULCBVUERBVEUsIERFTEVURSwgVFJVTkNBVEUsIFJFRkVSRU5DRVMsIFRSSUdHRVInKQot ICAgICAgICAgICAgICAgT1IgaGFzX2FueV9jb2x1bW5fcHJpdmlsZWdlKHIub2lkLCAnSU5T RVJULCBVUERBVEUsIFJFRkVSRU5DRVMnKSApCi0KLSAgICBVTklPTiBBTEwKLQotICAgIC0t IG5vdC1udWxsIGNvbnN0cmFpbnRzCi0KLSAgICBTRUxFQ1QgQ0FTVChjdXJyZW50X2RhdGFi YXNlKCkgQVMgc3FsX2lkZW50aWZpZXIpIEFTIGNvbnN0cmFpbnRfY2F0YWxvZywKLSAgICAg ICAgICAgQ0FTVChuci5uc3BuYW1lIEFTIHNxbF9pZGVudGlmaWVyKSBBUyBjb25zdHJhaW50 X3NjaGVtYSwKLSAgICAgICAgICAgQ0FTVChDQVNUKG5yLm9pZCBBUyB0ZXh0KSB8fCAnXycg fHwgQ0FTVChyLm9pZCBBUyB0ZXh0KSB8fCAnXycgfHwgQ0FTVChhLmF0dG51bSBBUyB0ZXh0 KSB8fCAnX25vdF9udWxsJyBBUyBzcWxfaWRlbnRpZmllcikgQVMgY29uc3RyYWludF9uYW1l LCAtLSBYWFgKLSAgICAgICAgICAgQ0FTVChjdXJyZW50X2RhdGFiYXNlKCkgQVMgc3FsX2lk ZW50aWZpZXIpIEFTIHRhYmxlX2NhdGFsb2csCi0gICAgICAgICAgIENBU1QobnIubnNwbmFt ZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgdGFibGVfc2NoZW1hLAotICAgICAgICAgICBDQVNU KHIucmVsbmFtZSBBUyBzcWxfaWRlbnRpZmllcikgQVMgdGFibGVfbmFtZSwKLSAgICAgICAg ICAgQ0FTVCgnQ0hFQ0snIEFTIGNoYXJhY3Rlcl9kYXRhKSBBUyBjb25zdHJhaW50X3R5cGUs Ci0gICAgICAgICAgIENBU1QoJ05PJyBBUyB5ZXNfb3Jfbm8pIEFTIGlzX2RlZmVycmFibGUs Ci0gICAgICAgICAgIENBU1QoJ05PJyBBUyB5ZXNfb3Jfbm8pIEFTIGluaXRpYWxseV9kZWZl cnJlZCwKLSAgICAgICAgICAgQ0FTVCgnWUVTJyBBUyB5ZXNfb3Jfbm8pIEFTIGVuZm9yY2Vk LAotICAgICAgICAgICBDQVNUKE5VTEwgQVMgeWVzX29yX25vKSBBUyBudWxsc19kaXN0aW5j dAotCi0gICAgRlJPTSBwZ19uYW1lc3BhY2UgbnIsCi0gICAgICAgICBwZ19jbGFzcyByLAot ICAgICAgICAgcGdfYXR0cmlidXRlIGEKLQotICAgIFdIRVJFIG5yLm9pZCA9IHIucmVsbmFt ZXNwYWNlCi0gICAgICAgICAgQU5EIHIub2lkID0gYS5hdHRyZWxpZAotICAgICAgICAgIEFO RCBhLmF0dG5vdG51bGwKLSAgICAgICAgICBBTkQgYS5hdHRudW0gPiAwCi0gICAgICAgICAg QU5EIE5PVCBhLmF0dGlzZHJvcHBlZAotICAgICAgICAgIEFORCByLnJlbGtpbmQgSU4gKCdy JywgJ3AnKQotICAgICAgICAgIEFORCAoTk9UIHBnX2lzX290aGVyX3RlbXBfc2NoZW1hKG5y Lm9pZCkpCiAgICAgICAgICAgQU5EIChwZ19oYXNfcm9sZShyLnJlbG93bmVyLCAnVVNBR0Un KQogICAgICAgICAgICAgICAgLS0gU0VMRUNUIHByaXZpbGVnZSBvbWl0dGVkLCBwZXIgU1FM IHN0YW5kYXJkCiAgICAgICAgICAgICAgICBPUiBoYXNfdGFibGVfcHJpdmlsZWdlKHIub2lk LCAnSU5TRVJULCBVUERBVEUsIERFTEVURSwgVFJVTkNBVEUsIFJFRkVSRU5DRVMsIFRSSUdH RVInKQotLSAKMi40MC4wCgo= --------------o7sdlQDZpenUgX1AKLb7E0pb--