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 1oiKig-0007fg-MD for pgsql-bugs@arkaria.postgresql.org; Tue, 11 Oct 2022 19:15:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oiKie-0001NF-9n for pgsql-bugs@arkaria.postgresql.org; Tue, 11 Oct 2022 19:15:12 +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 1oiK03-0003bl-UW for pgsql-bugs@lists.postgresql.org; Tue, 11 Oct 2022 18:29:08 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oiK00-0004Hu-Tr for pgsql-bugs@lists.postgresql.org; Tue, 11 Oct 2022 18:29: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=oT30h7H5UUtgrKYzrhkYiH8SMin8GpexJSWwhPF44Es=; b=u2Hxuqzm2CTVwtIawaZume6Viz 6ElVLe4IgdVUpbETkRB1GBErL8cZmngn2iv3geSFBrpH6IYnl3Os88f5nJpqZSAWvNUUjiVSFQwur Jo/TXuXcGGHhu6/klhB/wQo6FKEciXckII18KKuUQOXgUDrPXmF7hSL65HrQLeggnhjF3I9Tl6cD8 WWctjaw6RB+e0SpBgfYu8uyMBUaPZunExFYZH+nGQd3ExL+XtXfsTP9WWmtu8MOxhI2U393peCete kNpsd5vWrR4ZX/9ZhApRfvY5HvPCps1/EF2giCH/mTYfRiwgw2ijiDQmIfEBbYqO3Dh/epyLOoGWS mnXJnm4A==; 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 1oiJzz-0001m9-EV for pgsql-bugs@lists.postgresql.org; Tue, 11 Oct 2022 18:29:03 +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 1oiJzy-0054XA-2a for pgsql-bugs@lists.postgresql.org; Tue, 11 Oct 2022 18:29:02 +0000 Content-Type: multipart/mixed; boundary="===============2645183612809075784==" MIME-Version: 1.0 Subject: BUG #17635: The behavior of quote_ident differs from what the doc specifies To: pgsql-bugs@lists.postgresql.org From: PG Bug reporting form Cc: bryn@yugabyte.com Reply-To: bryn@yugabyte.com, pgsql-bugs@lists.postgresql.org Date: Tue, 11 Oct 2022 18:28:51 +0000 Message-ID: <17635-bd4f9739f88ec6a9@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 --===============2645183612809075784== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJzaXRlOgoKQnVnIHJl ZmVyZW5jZTogICAgICAxNzYzNQpMb2dnZWQgYnk6ICAgICAgICAgIEJyeW4gTGxld2VsbHluCkVt YWlsIGFkZHJlc3M6ICAgICAgYnJ5bkB5dWdhYnl0ZS5jb20KUG9zdGdyZVNRTCB2ZXJzaW9uOiAx NC41Ck9wZXJhdGluZyBzeXN0ZW06ICAgbWFjT1MgQmlnIFN1ciBWZXJzaW9uIDExLjcuCkRlc2Ny aXB0aW9uOiAgICAgICAgCgpTVU1NQVJZDQotLS0tLS0tDQoNClRoZSBxdW90ZV9pZGVudCBkb2Mg aGVyZToNCg0KaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9mdW5jdGlvbnMtc3Ry aW5nLmh0bWwjRlVOQ1RJT05TLVNUUklORy1PVEhFUg0KDQpzYXlzIHRoaXM6DQoNCsKrDQpSZXR1 cm4gdGhlIGdpdmVuIHN0cmluZyBzdWl0YWJseSBxdW90ZWQgdG8gYmUgdXNlZCBhcyBhbiBpZGVu dGlmaWVyIGluIGFuClNRTCBzdGF0ZW1lbnQgc3RyaW5nLiBRdW90ZXMgYXJlIGFkZGVkIG9ubHkg aWYgbmVjZXNzYXJ5Li4uIA0KwrsNCg0KQnV0IHRlc3RzIHNob3cgdGhhdCB0aGUgcmV0dXJuZWQg dGV4dCBpcyBvZnRlbiBkb3VibGUtcXVvdGVkIHdoZW4gdGhpcyBpcwpOT1QgbmVjZXNzYXJ5Lg0K DQpFTlZJUk9OTUVOVA0KLS0tLS0tLS0tLS0NCg0KIHNlbGVjdCB2ZXJzaW9uKCk7IOKGkg0KDQog UG9zdGdyZVNRTCAxNC41IChIb21lYnJldykgb24geDg2XzY0LWFwcGxlLWRhcndpbjIwLjYuMCwN CiBjb21waWxlZCBieSBBcHBsZSBjbGFuZyB2ZXJzaW9uIDEzLjAuMCAoY2xhbmctMTMwMC4wLjI5 LjMwKSwgNjQtYml0DQoNCkknbSB1c2luZyBhIE1hYyBCb29rIHdpdGggbWFjT1MgQmlnIFN1ciBW ZXJzaW9uIDExLjcuDQoNClRFU0NBU0UNCi0tLS0tLS0NCg0KVHJ5IHRoaXMgdXNpbmcgcHNxbC4g SXQgd29ya3MgaW4gdGhlIGNsdXN0ZXIgdGhhdCB5b3UgZ2V0IGltbWVkaWF0ZWx5CmZvbGxvd2lu ZyBhIHVzZSBvZiBpbml0ZGIuIEJ1dCB5b3UgY2FuIHJ1biBpdCBmcm9tIGFueSBzdGFydGluZyBw b2ludCBhcwpsb25nIGFzIHlvdSBjb25uZWN0IGFzIGEgcm9sZSB0aGF0IGFsbG93cyBjcmVhdGlu ZyBhIHRlbXBvcmFyeSBmdW5jdGlvbi4NCg0KwqsNCmNyZWF0ZSBmdW5jdGlvbiBwZ190ZW1wLmYo KQ0KICByZXR1cm5zIHRhYmxlKHogdGV4dCkNCiAgbGFuZ3VhZ2UgcGxwZ3NxbA0KYXMgJGJvZHkk DQpkZWNsYXJlDQogIGogICAgICAgICAgICAgICAgICAgaW50ICAgIG5vdCBudWxsIDo9IDA7DQog IG4gICAgICAgICAgICAgICAgICAgdGV4dCAgIG5vdCBudWxsIDo9ICcnOw0KICBuYW1lX3RleHRz IGNvbnN0YW50IHRleHRbXSBub3QgbnVsbCA6PQ0KICAgIGFycmF5WyflhpzmsJEnLCAgICAnYsO4 bmRlcicsICAgJ9GE0LXRgNC80LXRgNGLJywgICAn4KSV4KS/4KS44KS+4KSo4KWL4KSCJywgICAn ZG9nIGhvdXNlJ107DQoNCiAgLyoNCiAgICBIZXJlLCAiZXhwZWN0ZWQiIG1lYW5zIHdoYXQgZW1w aXJpY2FsIHRlc3RzIGhhdmUgc2hvd24gYW5kIG5vdA0KICAgIHdoYXQgdGhlIFBHIGRvYyB0ZWxs cyB5b3UgdG8gZXhwZWN0Lg0KICAqLw0KICBleHBlY3RlZF9pZGVudGZpZXJfdGV4dHMgY29uc3Rh bnQgdGV4dFtdIG5vdCBudWxsIDo9DQogICAgYXJyYXlbJyLlhpzmsJEiJywgJyJiw7huZGVyIics ICci0YTQtdGA0LzQtdGA0YsiJywgJyLgpJXgpL/gpLjgpL7gpKjgpYvgpIIiJywgJyJkb2cgaG91 c2UiJ107DQoNCiAgc3RtdCBjb25zdGFudCB0ZXh0IG5vdCBudWxsIDo9ICdkZWFsbG9jYXRlID8n Ow0KYmVnaW4NCiAgZGVhbGxvY2F0ZSBhbGw7DQogIGZvciBqIGluIGFycmF5X2xvd2VyKG5hbWVf dGV4dHMsIDEpLi5hcnJheV91cHBlcihuYW1lX3RleHRzLCAxKSBsb29wDQogICAgbiA6PSBuYW1l X3RleHRzW2pdOw0KICAgIGFzc2VydCBxdW90ZV9pZGVudChuKSA9IGV4cGVjdGVkX2lkZW50Zmll cl90ZXh0c1tqXSwgJ0FjdHVhbCAhPQpleHBlY3RlZCc7DQogICAgYXNzZXJ0IHF1b3RlX2lkZW50 KG4pID0gZm9ybWF0KCclSScsIG4pLCAgICAgICAgICAgICAncXVvdGVfaWRlbnQoKSAhPQpmb3Jt YXQoKSc7DQoNCiAgICBiZWdpbg0KICAgICAgZXhlY3V0ZSByZXBsYWNlKHN0bXQsICc/Jywgbik7 DQogICAgZXhjZXB0aW9uDQogICAgICB3aGVuIGludmFsaWRfc3FsX3N0YXRlbWVudF9uYW1lIHRo ZW4NCiAgICAgICAgeiA6PSAnRG9lcyBub3QgbmVlZCBkb3VibGUgcXVvdGVzOiAnfHxuOyByZXR1 cm4gbmV4dDsNCiAgICAgIHdoZW4gc3ludGF4X2Vycm9yIHRoZW4NCiAgICAgICAgeiA6PSAnTmVl ZHMgZG91YmxlIHF1b3RlczogICAgICAgICAnfHxuOyByZXR1cm4gbmV4dDsNCiAgICBlbmQ7DQog IGVuZCBsb29wOw0KZW5kOw0KJGJvZHkkOw0KDQpcdCBvbg0KXG8gb3V0cHV0LnR4dA0Kc2VsZWN0 IHBnX3RlbXAuZigpOw0KXG8NClx0IG9mZg0KwrsNCg0KSGVyZSBpcyBvdXRwdXQudHh0Og0KDQrC qw0KIERvZXMgbm90IG5lZWQgZG91YmxlIHF1b3Rlczog5Yac5rCRDQogRG9lcyBub3QgbmVlZCBk b3VibGUgcXVvdGVzOiBiw7huZGVyDQogRG9lcyBub3QgbmVlZCBkb3VibGUgcXVvdGVzOiDRhNC1 0YDQvNC10YDRiw0KIERvZXMgbm90IG5lZWQgZG91YmxlIHF1b3Rlczog4KSV4KS/4KS44KS+4KSo 4KWL4KSCDQogTmVlZHMgZG91YmxlIHF1b3RlczogICAgICAgICBkb2cgaG91c2UNCsK7DQoNCg0K VGhpcyBzaG93cyB0aGF0IChkb3VibGUpIHF1b3RlcyBhcmUgKHNvbWV0aW1lcykgYWRkZWQgd2hl biB0aGV5IGFyZSBOT1QKbmVjZXNzYXJ5Lg0KDQpJdCBsb29rcyBsaWtlIGRvdWJsZSBxdW90ZXMg YXJlIEFMV0FZUyBhZGRlZCB3aGVuZXZlciB0aGUgaW5wdXQgbmFtZSB0ZXh0CmNvbnRhaW5zIGFu eSBub24tQVNDSUkoNykgY2hhcmFjdGVyIC0tIGlycmVzcGVjdGl2ZSBvZiB3aGV0aGVyIHRoZSBp bnB1dApicmVha3MgdGhlIHVzdWFsIHJ1bGVzIGZvciB3aGVuIGl0IGNhbiBiZSB1c2VkICJhcyBp cyIgaW4gdGhlIHJvbGUgb2YgYW4gU1FMCmlkZW50aWZpZXIgdGV4dC4NCg0KU0lNUExFIEZJWDog VFJFQVQgVEhJUyBBUyBKVVNUIEEgRE9DIEJVRw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KDQpVc2UgbmV3IHdvcmRpbmcgbGlrZSB0aGlzOg0KDQrCqw0KVGhlIGlu cHV0IGlzIHRoZSB0ZXh0IG9mIGFuIG9iamVjdCBuYW1lIChsaWtlIHlvdSBzZWUsIGZvciBleGFt cGxlLCBpbgpwZ19jbGFzcy5yZWxuYW1lKS4gVGhlIG91dHB1dCBpcyB0aGUgdGV4dCBvZiB0aGUg U1FMIGlkZW50aWZpZXIsIGZvciB1c2UKd2l0aGluIHRoZSB0ZXh0IG9mIGFuIFNRTCBzdGF0ZW1l bnQgb3IgUEwvcGdTUUwgc291cmNlIGNvZGUsIHRvIGRlc2lnbmF0ZQp0aGUgb2JqZWN0IHdpdGgg dGhlIGdpdmVuIG5hbWUuIFNvbWV0aW1lcywgdGhlIHRleHQgb2YgdGhlIGlucHV0IG5hbWUgY2Fu IGJlCnVzZWQgImFzIGlzIiBhcyB0aGUgdGV4dCBvZiB0aGUgY29ycmVzcG9uZGluZyBTUUwgaWRl bnRpZmllci4gRm9yIGV4YW1wbGUsCmlmIGEgcGdfY2xhc3MgcXVlcnkgc2hvd3MgcmVsbmFtZSAo Zm9yIGEgdGFibGUpIGxpa2UgdGhpczoNCg0KIHNvbWVfdGFibGUNCg0KdGhlbiB0aGlzIFNRTCBz dGF0ZW1lbnQgdGV4dCBpcyBsZWdhbCBhbmQgY29ycmVjdDoNCg0KIGRyb3AgdGFibGUgc29tZV90 YWJsZTsNCg0KSG93ZXZlciwgdGhpcyBTUUwgc3RhdGVtZW50IHRleHQgaXMgYWxzbyBsZWdhbCBh bmQgY29ycmVjdDoNCg0KIGRyb3AgdGFibGUgInNvbWVfdGFibGUiOw0KDQpIZXJlLCB0aGUgZG91 YmxlIHF1b3RlcyBhcmUgbmVpdGhlciBuZWNlc3Nhcnkgbm9yIGhhcm1mdWwuIEluIGNvbnRyYXN0 LCBpZiBhCnBnX2NsYXNzIHF1ZXJ5IHNob3dzIHJlbG5hbWUgbGlrZSB0aGlzOg0KDQogc29tZSB0 YWJsZQ0KDQp0aGVuIHRoZSBjb3JyZWN0IFNRTCBzdGF0ZW1lbnQgdGV4dCByZXF1aXJlcyB0aGUg dXNlIG9mIGRvdWJsZS1xdW90aW5nOg0KDQogZHJvcCB0YWJsZSAic29tZV90YWJsZSI7DQoNClRo ZSBTUUwgaWRlbnRpZmllciB0ZXh0IHRoYXQgcXVvdGVfaWRlbnQgcmV0dXJucyBpcyBhbHdheXMg YSBsZWdhbCBzcGVsbGluZwpvZiBhbiBTUUwgaWRlbnRpZmllciB0aGF0IHdpbGwgY29ycmVjdGx5 IGRlc2lnbmF0ZSB0aGUgb2JqZWN0IHRoYXQgdGhlIGlucHV0Cm5hbWVzLiBTb21ldGltZXMsIHRo ZSBpbnB1dCB0ZXh0IGlzIHJldHVybmVkICJhcyBpcyIuIEJ1dCBvZnRlbiwgc3Vycm91bmRpbmcK ZG91YmxlIHF1b3RlcyBhcmUgYWRkZWQgd2hlbiB0aGV5IGFyZSBub3QgbmVlZGVkLiBUaGlzIGhh cHBlbnMgd2hlbmV2ZXIgdGhlCmlucHV0IHRleHQgY29udGFpbnMgYSBub24tQVNDSUkoNykgY2hh cmFjdGVyLiBIZXJlIGlzIGEgc2ltcGxlIGV4YW1wbGU6DQoNCiBzZWxlY3QgcXVvdGVfaWRlbnQo J2LDuG5kZXInKTsg4oaSICJiw7huZGVyIg0KDQpIb3dldmVyLCB0aGUgU1FMIHN0YXRlbWVudCB0 ZXh0IHRoYXQgdXNlcyB0aGUgdGV4dCBvZiB0aGUgbmFtZSAiYXMgaXMiIHJ1bnMKd2l0aG91dCBl cnJvciBhbmQgaGFzIHRoZSBpbnRlbmRlZCBlZmZlY3Q6DQoNCiBjcmVhdGUgdGFibGUgYsO4bmRl cihuIGludCk7DQoNCkVtYmVkZGVkIHF1b3RlcyBhcmUgcHJvcGVybHkgZG91YmxlZC4NCg0KVGhl IHJ1bGVzIHRoYXQgc3BlY2lmeSB3aGVuIGRvdWJsZS1xdW90aW5nIGlzIGVzc2VudGlhbCBhcmUg Z2l2ZW4gaW4gc2VjdGlvbgpbNC4xLjEuIElkZW50aWZpZXJzIGFuZCBLZXkKV29yZHNdKGh0dHBz Oi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zcWwtc3ludGF4LWxleGljYWwuaHRt bCNTUUwtU1lOVEFYLUlERU5USUZJRVJTKS4NCsK7DQoNClRoZSBhY2NvdW50IG9mIHF1b3RlX2lk ZW50IHdvdWxkIGJlbmVmaXQgZnJvbSBhbiB4LXJlZiB0byB0aGUgYWNjb3VudCBvZiB0aGUKZm9y bWF0IGZ1bmN0aW9uIHRvIHNheSB0aGF0IGJvdGggZnVuY3Rpb25zIGhhdmUgdGhlIHNhbWUgcHVy cG9zZSAodG8gZm9ybQp0aGUgdGV4dCBvZiBhIGxlZ2FsIGFuZCBjb3JyZWN0IFNRTCBpZGVudGlm aWVyIGZyb20gdGhlIHRleHQgb2YgdGhlIG5hbWUgb2YKYW4gb2JqZWN0IHRoYXQgaXMgdG8gYmUg ZGVzaWduYXRlZCkuIEFuZCBpdCBzaG91bGQgc2F5IHRoYXQgdGhlIGJlaGF2aW9yCncuci50LiBv dmVyLXplYWxvdXMgZG91YmxlLXF1b3RpbmcgaXMgaWRlbnRpY2FsLiBDb3JyZXNwb25kaW5nbHks IHRoZQphY2NvdW50IG9mIHRoZSBmb3JtYXQgZnVuY3Rpb24gd291bGQgYmVuZWZpdCBmcm9tIGFu IHgtcmVmIHRvIHRoaXMgYWNjb3VudApvZiBxdW90ZV9pZGVudC4NCg0KUFJFRkVSUkVEIEZJWDog VFJFQVQgVEhFIERPQyBBUyBUSEUgU1BFQyBPRiBXSEFUJ1MgSU5URU5ERUQgQU5EIEZJWCBUSEUg Q09ERQpUTyBNQVRDSCBJVA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpUaGUg a2V5IHBhcnQgb2YgdGhlIHNwZWNpZmllZCBiZWhhdmlvciBpcyAiUXVvdGVzIGFyZSBhZGRlZCBP TkxZIGlmCm5lY2Vzc2FyeSIgKG15IGVtcGhhc2lzKS4gSWYgdGhlIHF1b3RlX2lkZW50IGJlaGF2 aW9yIGlzIGNoYW5nZWQgdG8gbWVldAp0aGlzLCB0aGVuIGl0IHdvdWxkIGJlIHRyaXZpYWwgZm9y IGEgdXNlciB0byBpbXBsZW1lbnQgYSBsYW5ndWFnZSBTUUwKZnVuY3Rpb24gdGh1czoNCg0KICBm dW5jdGlvbiBpc19leG90aWMobmFtZSBpbiB0ZXh0KSByZXR1cm5zIGJvb2xlYW4NCg0KSGVyZSwg ImV4b3RpYyIgZGVub3RlcyB0aGUga2luZCBvZiBuYW1lIHRleHQgdGhhdCByZXF1aXJlcyBkb3Vi bGUtcXVvdGluZyB0bwpmb3JtIHRoZSBTUUwgaWRlbnRpZmllciB0ZXh0IHRoYXQgZGVub3RlcyBp dC4gKEl0IHdvdWxkIGJlIHVzZWZ1bCB0byBkZWZpbmUKdGhpcyB0ZXJtIGluIHRoZSBQRyBkb2Mg YW5kIHRvIGRlZmluZSwgc2F5LCAic2ltcGxlIiBmb3IgdGhlIGtpbmQgb2YgbmFtZQp0ZXh0IHRo YXQgZG9lcyBub3QgcmVxdWlyZSwgYnV0IGRvZXMgYWxsb3csIGRvdWJsZS1xdW90aW5nIHRvIGZv cm0gdGhlIFNRTAppZGVudGlmaWVyIHRleHQgdGhhdCBkZW5vdGVzIGl0LikNCg0KQSB2ZXJ5IGxh cmdlIGJvZHkgb2YgYW5lY2RvdGFsIGV2aWRlbmNlIHNob3dzIHRoYXQgZGV2ZWxvcG1lbnQgc2hv cHMgb3V0bGF3CnRoZSB1c2Ugb2YgZXhvdGljIG5hbWVzLiBJZiBxdW90ZV9pZGVudCBiZWhhdmVk IGFzIHRoZSBjdXJyZW50IGRvYwpzcGVjaWZpZXMsIHRoZW4gaXQgd291ZCBiZSB0cml2aWFsIHRv IHBvbGljZSB0aGlzIHJ1bGU6DQoNCiBzZWxlY3QgZXhpc3RzKA0KICAgICBzZWxlY3QgMQ0KICAg ICBmcm9tIHBnX2NsYXNzDQogICAgIHdoZXJlIHJlbG5hbWUgIT0gcXVvdGVfaWRlbnQocmVsbmFt ZSkNCiAgICk6OnRleHQgYXMgImV4b3RpYyBuYW1lKHMpIGZvdW5kIjsNCg0KKEhlcmUsIHBnX2Ns YXNzIGlzIGFuIGV4YW1wbGUuIE90aGVyIGNhdGFsb2cgdGFibGVzIHdvdWxkIGhhdmUgdG8gYmUg cXVlcmllZAp0b28uKQ0KDQpBcyBpdCBoYXBwZW5zLCB0aGUgY3VycmVudCBQRyB1c2VzIG9ubHkg QVNDSUkoNykgbmFtZSB0ZXh0cyBhbmQgc28gdGhpcwpxdWVyeSByZXR1cm5zIGZhbHNlLiBJZiBh IHVzZXIgY3JlYXRlcyBhbiBvYmplY3QgdGh1cyAoc3RpbGwgdXNpbmcgb25seQpBU0NJSSg3KToN Cg0KIGNyZWF0ZSB0YWJsZSAibXkgdGFibGUiKG4gaW50KTsNCg0KdGhlbiB0aGlzIHF1ZXJ5Og0K DQogc2VsZWN0IHJlbG5hbWUgYXMgImV4b3RpYyBuYW1lcyINCiBmcm9tIHBnX2NsYXNzDQogd2hl cmUgcmVsbmFtZSAhPSBxdW90ZV9pZGVudChyZWxuYW1lKQ0KIG9yZGVyIGJ5IDE7DQoNCnByb2R1 Y2VzIHRoaXMgcmVzdWx0Og0KDQogIGV4b3RpYyBuYW1lcyANCiAtLS0tLS0tLS0tLS0tLQ0KICBt eSB0YWJsZQ0KDQpIb3dldmVyLCBpdCdzIG9idmlvdXNseSBwcm9uZSB0byBmYWxzZSBuZWdhdGl2 ZXMsIGFzIHRoaXMgc2hvd3M6DQoNCiBjcmVhdGUgdGFibGUgYsO4bmRlcihuIGludCk7DQoNCiBz ZWxlY3QgcmVsbmFtZSBhcyAiZXhvdGljIG5hbWVzIg0KIGZyb20gcGdfY2xhc3MNCiB3aGVyZSBy ZWxuYW1lICE9IHF1b3RlX2lkZW50KHJlbG5hbWUpDQogb3JkZXIgYnkgMTsNCg0KVGhpcyBpcyB0 aGUgbmV3IHJlc3VsdC4NCg0KICBleG90aWMgbmFtZXMgDQogLS0tLS0tLS0tLS0tLS0NCiAgYsO4 bmRlcg0KICBteSB0YWJsZQ0KDQpCdXQgdGhlIG5hbWUgd2l0aCB0aGUgdGV4dCBiw7huZGVyIGlz IE5PVCBleG90aWMuCgo= --===============2645183612809075784==--