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 1l2F2w-0002Cz-Dx for pgsql-hackers@arkaria.postgresql.org; Wed, 20 Jan 2021 15:05:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l2F2v-00013d-1A for pgsql-hackers@arkaria.postgresql.org; Wed, 20 Jan 2021 15:05:21 +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 1l2F2u-00013W-Fn for pgsql-hackers@lists.postgresql.org; Wed, 20 Jan 2021 15:05:20 +0000 Received: from mail-io1-xd31.google.com ([2607:f8b0:4864:20::d31]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1l2F2s-0005vt-0P for pgsql-hackers@postgresql.org; Wed, 20 Jan 2021 15:05:19 +0000 Received: by mail-io1-xd31.google.com with SMTP id y19so47417996iov.2 for ; Wed, 20 Jan 2021 07:05:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:cc:subject:from:to:date:message-id:in-reply-to; bh=9eadhvitsZb7k5qhleyDyi2IBp4CfN8x0RNc+MuqLCY=; b=OfiBca4GHvVzf/gwAntXzWxalYMgJi5MeOjrGfS//3f01Wt2nOdOn6yb5vV//89tek SH4al6Kc8F2Zgri05ypaPxJTQN0mPvAIeScj6zPEbwwrg2sGi3FXVpxE48+yAwh1Wuxd bFCCDzXWOFTkZ4oqM3iIgtY8+bLBbO+kIsni2Rzk6oC/oHWOu5KLLloiBMdzKM4adyWy dFf0ZxWcVCgA/1Xhwb88ZiAKuRbO7y3LXOwvJuNvYnGnYKR3bkV0j53G5HZLB4eummX/ 6pQOeytl3RADGYYMe6PhyQj6K46aqjIGpJAJh7IaUFENb5T2pr5dEqsASlfAoeTrgMCZ LVwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:cc:subject:from:to:date:message-id :in-reply-to; bh=9eadhvitsZb7k5qhleyDyi2IBp4CfN8x0RNc+MuqLCY=; b=UgvIyIq05lOi1rk0pmNjtnDY3Va4wukO0Sbz/IroJ5ybkrnkk5Dpfhcx8aIZ0tEtWA TQzAsW+d8jnTJdqEE9sYEXZOMzO3zUhh7XdV1vsUEp9EBKUAOrFCm6OulJ7CNpyRwX+l 6Xca5BpJQ7omtaAn206eEuCtuy7L0a6ei4sTLVDLS7YlXi//5xTU3GAtYM56RSMNbBrx batqwYHu2kMUxCL78MsBd9TRk89uUFO0uQz9rfyat9A5JM4VW8iqgKu6SFyh+UlrL5mK Ms6uPyTTSBPtSrR3DMGYYgKPzIRnIzEt/rC0BbzfLFwbfd9UrTnfA/7nzb3zwyJMgA0A h/9A== X-Gm-Message-State: AOAM531hVSN4XagdhyAwGCSkKHI3+JpJgxee6X24nTPv6YdUY8NGg8tC 4n5fjOchLxtzmS7jP81eptY= X-Google-Smtp-Source: ABdhPJzqLaTfMGx42Y/erxhV1S/fCWh5O9cIWsRnI1Z8XZimUji3nrHQSv8hLf3y2aD+W61aVEchAA== X-Received: by 2002:a92:db4e:: with SMTP id w14mr4768489ilq.101.1611155117314; Wed, 20 Jan 2021 07:05:17 -0800 (PST) Received: from localhost ([68.235.43.45]) by smtp.gmail.com with ESMTPSA id a5sm1184017ilq.60.2021.01.20.07.05.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 20 Jan 2021 07:05:16 -0800 (PST) Content-Type: multipart/mixed; boundary=f83f5285abeeeb7f66987d5a3882db81f1305d0de735fd0414103a0e5fb5 Mime-Version: 1.0 Cc: "Tom Lane" , "Andres Freund" , "Alexander Korotkov" , "Justin Pryzby" , "David Steele" , "Nikita Glukhov" , "Alvaro Herrera" , "David Fetter" , "Thomas Munro" , "Oleksandr Shulgin" , "Robert Haas" , "Michael Paquier" , "Oleg Bartunov" , "Peter Eisentraut" , "PostgreSQL Hackers" Subject: Re: [HACKERS] [PATCH] Generic type subscripting From: "Dian M Fay" To: "Pavel Stehule" , "Dmitry Dolgov" <9erthalion6@gmail.com> Date: Wed, 20 Jan 2021 09:58:43 -0500 Message-Id: In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --f83f5285abeeeb7f66987d5a3882db81f1305d0de735fd0414103a0e5fb5 Content-Type: multipart/alternative; boundary=360841a392490ac371071ae519dc1105bf0bea9eb12bcd1e0eda51809d03 --360841a392490ac371071ae519dc1105bf0bea9eb12bcd1e0eda51809d03 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8 On Tue Jan 19, 2021 at 1:42 PM EST, Pavel Stehule wrote: > Hi > > I found minor issues. > > Doc - missing tag > > and three whitespaces issues > > see attached patch > > Following sentence is hard to read due long nested example > > If the > + path contradicts structure of modified jsonb for any > individual > + value (e.g. path val['a']['b']['c'] assumes keys > + 'a' and 'b' have object values > + assigned to them, but if val['a'] or > + val['b'] is null, a string, or a number, then the > path > + contradicts with the existing structure), an error is raised even if > other > + values do conform. > > It can be divided into two sentences - predicate, and example. > > Regards > > Pavel Here's a full editing pass on the documentation, with v45 and Pavel's doc-whitespaces-fix.patch applied. I also corrected a typo in one of the added hints. --360841a392490ac371071ae519dc1105bf0bea9eb12bcd1e0eda51809d03-- --f83f5285abeeeb7f66987d5a3882db81f1305d0de735fd0414103a0e5fb5 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-Revise-jsonb-subscripting-documentation.patch Content-Type: text/plain; charset=utf-8; name=0001-Revise-jsonb-subscripting-documentation.patch RnJvbSAwODZhMzRjYTg2MGU4NTEzNDg0ZDgyOWRiMWNiM2YwYzE3YzRlYzFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWFuIE0gRmF5IDxkaWFuLm0uZmF5QGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCAxOSBKYW4gMjAyMSAyMzo0NDoyMyAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIFJldmlz ZSBqc29uYiBzdWJzY3JpcHRpbmcgZG9jdW1lbnRhdGlvbgoKLS0tCiBkb2Mvc3JjL3NnbWwvanNv bi5zZ21sICAgICAgICAgICAgICB8IDEwMSArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiBz cmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9qc29uYi5vdXQgfCAgIDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNDkgaW5z ZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2pz b24uc2dtbCBiL2RvYy9zcmMvc2dtbC9qc29uLnNnbWwKaW5kZXggNGUxOWZlNGZiOC4uZWIzOTUy MTkzYSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2pzb24uc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvanNvbi5zZ21sCkBAIC02MDUsOTcgKzYwNSw5MCBAQCBTRUxFQ1QgamRvYy0mZ3Q7J2d1aWQn LCBqZG9jLSZndDsnbmFtZScgRlJPTSBhcGkgV0hFUkUgamRvYyBAJmd0OyAneyJ0YWdzIjogWyJx dQogIDxzZWN0MiBpZD0ianNvbmItc3Vic2NyaXB0aW5nIj4KICAgPHRpdGxlPjx0eXBlPmpzb25i PC90eXBlPiBTdWJzY3JpcHRpbmc8L3RpdGxlPgogICA8cGFyYT4KLSAgIDx0eXBlPmpzb25iPC90 eXBlPiBkYXRhIHR5cGUgc3VwcG9ydHMgYXJyYXktc3R5bGUgc3Vic2NyaXB0aW5nIGV4cHJlc3Np b25zCi0gICB0byBleHRyYWN0IG9yIHVwZGF0ZSBwYXJ0aWN1bGFyIGVsZW1lbnRzLiBJdCdzIHBv c3NpYmxlIHRvIHVzZSBtdWx0aXBsZQotICAgc3Vic2NyaXB0aW5nIGV4cHJlc3Npb25zIHRvIGV4 dHJhY3QgbmVzdGVkIHZhbHVlcy4gSW4gdGhpcyBjYXNlLCBhIGNoYWluIG9mCi0gICBzdWJzY3Jp cHRpbmcgZXhwcmVzc2lvbnMgZm9sbG93cyB0aGUgc2FtZSBydWxlcyBhcyB0aGUKLSAgIDxsaXRl cmFsPnBhdGg8L2xpdGVyYWw+IGFyZ3VtZW50IGluIDxsaXRlcmFsPmpzb25iX3NldDwvbGl0ZXJh bD4gZnVuY3Rpb24sCi0gICBlLmcuIGluIGNhc2Ugb2YgYXJyYXlzIGl0IGlzIGEgMC1iYXNlZCBv cGVyYXRpb24gb3IgdGhhdCBuZWdhdGl2ZSBpbnRlZ2VycwotICAgdGhhdCBhcHBlYXIgaW4gPGxp dGVyYWw+cGF0aDwvbGl0ZXJhbD4gY291bnQgZnJvbSB0aGUgZW5kIG9mIEpTT04gYXJyYXlzLgot ICAgVGhlIHJlc3VsdCBvZiBzdWJzY3JpcHRpbmcgZXhwcmVzc2lvbnMgaXMgYWx3YXlzIGpzb25i IGRhdGEgdHlwZS4KKyAgIFRoZSA8dHlwZT5qc29uYjwvdHlwZT4gZGF0YSB0eXBlIHN1cHBvcnRz IGFycmF5LXN0eWxlIHN1YnNjcmlwdGluZyBleHByZXNzaW9ucworICAgdG8gZXh0cmFjdCBhbmQg bW9kaWZ5IGVsZW1lbnRzLiBOZXN0ZWQgdmFsdWVzIGNhbiBiZSBpbmRpY2F0ZWQgYnkgY2hhaW5p bmcKKyAgIHN1YnNjcmlwdGluZyBleHByZXNzaW9ucywgZm9sbG93aW5nIHRoZSBzYW1lIHJ1bGVz IGFzIHRoZSA8bGl0ZXJhbD5wYXRoPC9saXRlcmFsPgorICAgYXJndW1lbnQgaW4gdGhlIDxsaXRl cmFsPmpzb25iX3NldDwvbGl0ZXJhbD4gZnVuY3Rpb24uIElmIGEgPHR5cGU+anNvbmI8L3R5cGU+ CisgICB2YWx1ZSBpcyBhbiBhcnJheSwgbnVtZXJpYyBzdWJzY3JpcHRzIHN0YXJ0IGF0IHplcm8s IGFuZCBuZWdhdGl2ZSBpbnRlZ2VycyBjb3VudAorICAgYmFja3dhcmRzIGZyb20gdGhlIGxhc3Qg ZWxlbWVudCBvZiB0aGUgYXJyYXkuIFNsaWNlIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVk LgorICAgVGhlIHJlc3VsdCBvZiBhIHN1YnNjcmlwdGluZyBleHByZXNzaW9uIGlzIGFsd2F5cyBv ZiB0aGUganNvbmIgZGF0YSB0eXBlLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CiAgICA8Y29tbWFu ZD5VUERBVEU8L2NvbW1hbmQ+IHN0YXRlbWVudHMgbWF5IHVzZSBzdWJzY3JpcHRpbmcgaW4gdGhl Ci0gICA8bGl0ZXJhbD5TRVQ8L2xpdGVyYWw+IGNsYXVzZSB0byBtb2RpZnkgPHR5cGU+anNvbmI8 L3R5cGU+IHZhbHVlcy4gRXZlcnkKLSAgIGFmZmVjdGVkIHZhbHVlIG11c3QgY29uZm9ybSB0byB0 aGUgcGF0aCBkZWZpbmVkIGJ5IHRoZSBzdWJzY3JpcHQocykuIElmIHRoZQotICAgcGF0aCBjb250 cmFkaWN0cyBzdHJ1Y3R1cmUgb2YgbW9kaWZpZWQgPHR5cGU+anNvbmI8L3R5cGU+IGZvciBhbnkg aW5kaXZpZHVhbAotICAgdmFsdWUgKGUuZy4gcGF0aCA8bGl0ZXJhbD52YWxbJ2EnXVsnYiddWydj J108L2xpdGVyYWw+IGFzc3VtZXMga2V5cwotICAgPGxpdGVyYWw+J2EnPC9saXRlcmFsPiBhbmQg PGxpdGVyYWw+J2InPC9saXRlcmFsPiBoYXZlIG9iamVjdCB2YWx1ZXMKLSAgIGFzc2lnbmVkIHRv IHRoZW0sIGJ1dCBpZiA8bGl0ZXJhbD52YWxbJ2EnXTwvbGl0ZXJhbD4gb3IKLSAgIDxsaXRlcmFs PnZhbFsnYiddPC9saXRlcmFsPiBpcyBudWxsLCBhIHN0cmluZywgb3IgYSBudW1iZXIsIHRoZW4g dGhlIHBhdGgKLSAgIGNvbnRyYWRpY3RzIHdpdGggdGhlIGV4aXN0aW5nIHN0cnVjdHVyZSksIGFu IGVycm9yIGlzIHJhaXNlZCBldmVuIGlmIG90aGVyCi0gICB2YWx1ZXMgZG8gY29uZm9ybS4KKyAg IDxsaXRlcmFsPlNFVDwvbGl0ZXJhbD4gY2xhdXNlIHRvIG1vZGlmeSA8dHlwZT5qc29uYjwvdHlw ZT4gdmFsdWVzLiBPYmplY3QKKyAgIHZhbHVlcyBiZWluZyB0cmF2ZXJzZWQgbXVzdCBleGlzdCBh cyBzcGVjaWZpZWQgYnkgdGhlIHN1YnNjcmlwdCBwYXRoLiBGb3IKKyAgIGluc3RhbmNlLCB0aGUg cGF0aCA8bGl0ZXJhbD52YWxbJ2EnXVsnYiddWydjJ108L2xpdGVyYWw+IGFzc3VtZXMgdGhhdAor ICAgPGxpdGVyYWw+dmFsPC9saXRlcmFsPiwgPGxpdGVyYWw+dmFsWydhJ108L2xpdGVyYWw+LCBh bmQgPGxpdGVyYWw+dmFsWydhJ11bJ2InXTwvbGl0ZXJhbD4KKyAgIGFyZSBhbGwgb2JqZWN0cyBp biBldmVyeSByZWNvcmQgYmVpbmcgdXBkYXRlZCAoPGxpdGVyYWw+dmFsWydhJ11bJ2InXTwvbGl0 ZXJhbD4KKyAgIG1heSBvciBtYXkgbm90IGNvbnRhaW4gYSBmaWVsZCBuYW1lZCA8bGl0ZXJhbD5j PC9saXRlcmFsPiwgYXMgbG9uZyBhcyBpdCdzIGFuCisgICBvYmplY3QpLiBJZiBhbnkgaW5kaXZp ZHVhbCA8bGl0ZXJhbD52YWw8L2xpdGVyYWw+LCA8bGl0ZXJhbD52YWxbJ2EnXTwvbGl0ZXJhbD4s CisgICBvciA8bGl0ZXJhbD52YWxbJ2EnXVsnYiddPC9saXRlcmFsPiBpcyBhIG5vbi1vYmplY3Qg c3VjaCBhcyBhIHN0cmluZywgYSBudW1iZXIsCisgICBvciA8bGl0ZXJhbD5OVUxMPC9saXRlcmFs PiwgYW4gZXJyb3IgaXMgcmFpc2VkIGV2ZW4gaWYgb3RoZXIgdmFsdWVzIGRvIGNvbmZvcm0uCisg ICBBcnJheSB2YWx1ZXMgYXJlIG5vdCBzdWJqZWN0IHRvIHRoaXMgcmVzdHJpY3Rpb24sIGFzIGRl dGFpbGVkIGJlbG93LgogICA8L3BhcmE+Ci0gIDxwYXJhPgogCisgIDxwYXJhPgogICAgQW4gZXhh bXBsZSBvZiBzdWJzY3JpcHRpbmcgc3ludGF4OgorCiA8cHJvZ3JhbWxpc3Rpbmc+Ci0tLSBFeHRy YWN0IHZhbHVlIGJ5IGtleQorLS0gRXh0cmFjdCBvYmplY3QgdmFsdWUgYnkga2V5CiBTRUxFQ1Qg KCd7ImEiOiAxfSc6Ompzb25iKVsnYSddOwogCi0tLSBFeHRyYWN0IG5lc3RlZCB2YWx1ZSBieSBr ZXkgcGF0aAorLS0gRXh0cmFjdCBuZXN0ZWQgb2JqZWN0IHZhbHVlIGJ5IGtleSBwYXRoCiBTRUxF Q1QgKCd7ImEiOiB7ImIiOiB7ImMiOiAxfX19Jzo6anNvbmIpWydhJ11bJ2InXVsnYyddOwogCi0t LSBFeHRyYWN0IGVsZW1lbnQgYnkgaW5kZXgKKy0tIEV4dHJhY3QgYXJyYXkgZWxlbWVudCBieSBp bmRleAogU0VMRUNUICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV07CiAKLS0tIFVwZGF0ZSB2 YWx1ZSBieSBrZXksIG5vdGUgdGhlIHNpbmdsZSBxdW90ZXMgLSB0aGUgYXNzaWduZWQgdmFsdWUK LS0tIG5lZWRzIHRvIGJlIG9mIGpzb25iIHR5cGUgYXMgd2VsbAorLS0gVXBkYXRlIG9iamVjdCB2 YWx1ZSBieSBrZXkuIE5vdGUgdGhlIHF1b3RlcyBhcm91bmQgJzEnOiB0aGUgYXNzaWduZWQKKy0t IHZhbHVlIG11c3QgYmUgb2YgdGhlIGpzb25iIHR5cGUgYXMgd2VsbAogVVBEQVRFIHRhYmxlX25h bWUgU0VUIGpzb25iX2ZpZWxkWydrZXknXSA9ICcxJzsKIAotLS0gVGhpcyB3aWxsIHJhaXNlIGFu IGVycm9yIGlmIGpzb25iX2ZpZWxkIGlzIHsiYSI6IDF9CistLSBUaGlzIHdpbGwgcmFpc2UgYW4g ZXJyb3IgaWYgYW55IHJlY29yZCdzIGpzb25iX2ZpZWxkWydhJ11bJ2InXSBpcyBzb21ldGhpbmcK Ky0tIG90aGVyIHRoYW4gYW4gb2JqZWN0LiBGb3IgZXhhbXBsZSwgdGhlIHZhbHVlIHsiYSI6IDF9 IGhhcyBubyAnYicga2V5LgogVVBEQVRFIHRhYmxlX25hbWUgU0VUIGpzb25iX2ZpZWxkWydhJ11b J2InXVsnYyddID0gJzEnOwogCi0tLSBTZWxlY3QgcmVjb3JkcyB1c2luZyB3aGVyZSBjbGF1c2Ug d2l0aCBzdWJzY3JpcHRpbmcuIFNpbmNlIHRoZSByZXN1bHQgb2YKLS0tIHN1YnNjcmlwdGluZyBp cyBqc29uYiBhbmQgd2UgYmFzaWNhbGx5IHdhbnQgdG8gY29tcGFyZSB0d28ganNvbmIgb2JqZWN0 cywgd2UKLS0tIG5lZWQgdG8gcHV0IHRoZSB2YWx1ZSBpbiBkb3VibGUgcXVvdGVzIHRvIGJlIGFi bGUgdG8gY29udmVydCBpdCB0byBqc29uYi4KKy0tIEZpbHRlciByZWNvcmRzIHVzaW5nIGEgV0hF UkUgY2xhdXNlIHdpdGggc3Vic2NyaXB0aW5nLiBTaW5jZSB0aGUgcmVzdWx0IG9mCistLSBzdWJz Y3JpcHRpbmcgaXMganNvbmIsIHRoZSB2YWx1ZSB3ZSBjb21wYXJlIGl0IGFnYWluc3QgbXVzdCBh bHNvIGJlIGpzb25iLgorLS0gVGhlIGRvdWJsZSBxdW90ZXMgbWFrZSAidmFsdWUiIGFsc28gYSB2 YWxpZCBqc29uYiBzdHJpbmcuCiBTRUxFQ1QgKiBGUk9NIHRhYmxlX25hbWUgV0hFUkUganNvbmJf ZmllbGRbJ2tleSddID0gJyJ2YWx1ZSInOwogPC9wcm9ncmFtbGlzdGluZz4KIAotICBTdWJzY3Jp cHRpbmcgZm9yIDx0eXBlPmpzb25iPC90eXBlPiBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlIGV4cHJl c3Npb25zLAotICBldmVuIGlmIGl0IGNvbnRhaW5zIGFuIGFycmF5LgorICAgPHR5cGU+anNvbmI8 L3R5cGU+IGFzc2lnbm1lbnQgdmlhIHN1YnNjcmlwdGluZyBoYW5kbGVzIGEgZmV3IGVkZ2UgY2Fz ZXMKKyAgIGRpZmZlcmVudGx5IGZyb20gPGxpdGVyYWw+anNvbmJfc2V0PC9saXRlcmFsPi4gV2hl biBhIHNvdXJjZSA8dHlwZT5qc29uYjwvdHlwZT4KKyAgIGlzIDxsaXRlcmFsPk5VTEw8L2xpdGVy YWw+LCBhc3NpZ25tZW50IHZpYSBzdWJzY3JpcHRpbmcgd2lsbCBwcm9jZWVkIGFzIGlmCisgICBp dCB3YXMgYW4gZW1wdHkgSlNPTiBvYmplY3Q6CiAKLSAgSW4gY2FzZSBpZiBzb3VyY2UgPHR5cGU+ anNvbmI8L3R5cGU+IGlzIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCBhc3NpZ25tZW50Ci0gIHZp YSBzdWJzY3JpcHRpbmcgd2lsbCBwcm9jZWVkIGFzIGlmIGl0IHdhcyBhbiBlbXB0eSBKU09OIG9i amVjdDoKIDxwcm9ncmFtbGlzdGluZz4KLS0tIElmIGpzb25iX2ZpZWxkIGhlcmUgaXMgTlVMTCwg dGhlIHJlc3VsdCBpcyB7ImEiOiAxfQorLS0gV2hlcmUganNvbmJfZmllbGQgd2FzIE5VTEwsIGl0 IGlzIG5vdyB7ImEiOiAxfQogVVBEQVRFIHRhYmxlX25hbWUgU0VUIGpzb25iX2ZpZWxkWydhJ10g PSAnMSc7CiAKLS0tIElmIGpzb25iX2ZpZWxkIGhlcmUgaXMgTlVMTCwgdGhlIHJlc3VsdCBpcyBb MV0KKy0tIFdoZXJlIGpzb25iX2ZpZWxkIHdhcyBOVUxMLCBpdCBpcyBub3cgWzFdCiBVUERBVEUg dGFibGVfbmFtZSBTRVQganNvbmJfZmllbGRbMF0gPSAnMSc7CiA8L3Byb2dyYW1saXN0aW5nPgog Ci0gICBKc29uYiBhc3NpZ25tZW50IHZpYSBzdWJzY3JpcHRpbmcgaGFuZGxlcyBmZXcgZWRnZSBj YXNlcyBkaWZmZXJlbnRseQotICAgZnJvbSA8bGl0ZXJhbD5qc29uYl9zZXQ8L2xpdGVyYWw+LiBX aGVuIGFzc2lnbmluZyB0byB0aGUganNvbmIgYXJyYXkKLSAgIHRvIHRoZSBzcGVjaWZpZWQgaW5k ZXgsIGJ1dCB0aGVyZSBhcmUgbm8gb3RoZXIgZWxlbWVudHMgcHJlc2VudCwgdGhlCi0gICByZXN1 bHQgd2lsbCBiZSBhIGpzb25iIGFycmF5IHdpdGggdGhlIGV3biB2YWx1ZSBieSBzcGVjaWZpZWQg aW5kZXggYW5kCi0gICA8dHlwZT5udWxsPC90eXBlPiBlbGVtZW50cyBmcm9tIHRoZSBmaXJzdCBp bmRleCB0byB0aGUgc3BlY2lmaWVkIGluZGV4LgotCi08cHJvZ3JhbWxpc3Rpbmc+Ci0tLSBJZiBq c29uYl9maWVsZCBpcyBbXSwgdGhlIHJlc3VsdCBpcyBbbnVsbCwgbnVsbCwgMl0KLVVQREFURSB0 YWJsZV9uYW1lIFNFVCBqc29uYl9maWVsZFsyXSA9ICcyJzsKLTwvcHJvZ3JhbWxpc3Rpbmc+Ci0K LSAgIFdoZW4gYXNzaWduaW5nIHRvIHRoZSBqc29uYiBhcnJheSB0byB0aGUgc3BlY2lmaWVkIGlu ZGV4LCBidXQgcG9zaXRpb24KLSAgIG9mIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIGFycmF5IGlz IGxlc3MgdGhhbiB0aGUgc3BlY2lmaWVkIGluZGV4LCB0aGUKLSAgIHJlc3VsdCB3aWxsIGJlIGEg anNvbmIgYXJyYXkgd2l0aCB0aGUgbmV3IHZhbHVlIGJ5IHNwZWNpZmllZCBpbmRleCBhbmQKLSAg IDx0eXBlPm51bGw8L3R5cGU+IGVsZW1lbnRzIGZyb20gdGhlIGxhc3QgaW5kZXggdG8gdGhlIHNw ZWNpZmllZCBpbmRleC4KKyAgIElmIGFuIGluZGV4IGlzIHNwZWNpZmllZCBmb3IgYW4gYXJyYXkg Y29udGFpbmluZyB0b28gZmV3IGVsZW1lbnRzLAorICAgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4g ZWxlbWVudHMgd2lsbCBiZSBhcHBlbmRlZCB1bnRpbCB0aGUgaW5kZXggaXMgcmVhY2hhYmxlCisg ICBhbmQgdGhlIHZhbHVlIGNhbiBiZSBzZXQuCiAKIDxwcm9ncmFtbGlzdGluZz4KLS0tIElmIGpz b25iX2ZpZWxkIGlzIFswXSwgdGhlIHJlc3VsdCBpcyBbMCwgbnVsbCwgMl0KKy0tIFdoZXJlIGpz b25iX2ZpZWxkIHdhcyBbXSwgaXQgaXMgbm93IFtudWxsLCBudWxsLCAyXTsKKy0tIHdoZXJlIGpz b25iX2ZpZWxkIHdhcyBbMF0sIGl0IGlzIG5vdyBbMCwgbnVsbCwgMl0KIFVQREFURSB0YWJsZV9u YW1lIFNFVCBqc29uYl9maWVsZFsyXSA9ICcyJzsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAKLSAgIFdo ZW4gYXNzaWduaW5nIHVzaW5nIHRoZSBwYXRoIHdoaWNoIGlzIG5vdCBwcmVzZW50IGluIHRoZSBz b3VyY2UganNvbmIsCi0gICB0aGUgcmVzdWx0IHdpbGwgYmUgYSBqc29uYiB3aXRoIHRoZSBzcGVj aWZpZWQgcGF0aCBjcmVhdGVkIGFuZCB0aGUgbmV3Ci0gICB2YWx1ZSBhdCB0aGUgZW5kIG9mIHRo ZSBwYXRoLgorICAgQSA8dHlwZT5qc29uYjwvdHlwZT4gdmFsdWUgd2lsbCBhY2NlcHQgYXNzaWdu bWVudHMgdG8gbm9uZXhpc3RlbnQgc3Vic2NyaXB0CisgICBwYXRocyBhcyBsb25nIGFzIHRoZSBu b25leGlzdGVudCBlbGVtZW50cyBiZWluZyB0cmF2ZXJzZWQgYXJlIGFsbCBhcnJheXMuIFNpbmNl CisgICB0aGUgZmluYWwgc3Vic2NyaXB0IGlzIG5vdCB0cmF2ZXJzZWQsIGl0IG1heSBiZSBhbiBv YmplY3Qga2V5LiBOZXN0ZWQgYXJyYXlzCisgICB3aWxsIGJlIGNyZWF0ZWQgYW5kIDxsaXRlcmFs Pk5VTEw8L2xpdGVyYWw+LXBhZGRlZCBhY2NvcmRpbmcgdG8gdGhlIHBhdGggdW50aWwKKyAgIHRo ZSB2YWx1ZSBjYW4gYmUgcGxhY2VkIGFwcHJvcHJpYXRlbHkuCiAKIDxwcm9ncmFtbGlzdGluZz4K LS0tIElmIGpzb25iX2ZpZWxkIGlzIHt9LCB0aGUgcmVzdWx0IGlzIHsnYSc6IFt7J2InOiAxfV19 CistLSBXaGVyZSBqc29uYl9maWVsZCB3YXMge30sIGl0IGlzIG5vdyB7J2EnOiBbeydiJzogMX1d fQogVVBEQVRFIHRhYmxlX25hbWUgU0VUIGpzb25iX2ZpZWxkWydhJ11bMF1bJ2InXSA9ICcxJzsK IAotLS0gSWYganNvbmJfZmllbGQgaXMgW10sIHRoZSByZXN1bHQgaXMgW3snYSc6IDF9XQorLS0g V2hlcmUganNvbmJfZmllbGQgd2FzIFtdLCBpdCBpcyBub3cgW3snYSc6IDF9XQogVVBEQVRFIHRh YmxlX25hbWUgU0VUIGpzb25iX2ZpZWxkWzBdWydhJ10gPSAnMSc7CiA8L3Byb2dyYW1saXN0aW5n PgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKaW5kZXggNjQ5NzlmM2E1Yi4uNTIzNzQxNGJl NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwpAQCAtMTE2LDcgKzExNiw3IEBAIGpzb25i X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCQkJCWVyZXBv cnQoRVJST1IsCiAJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCiAJ CQkJCQkJIGVycm1zZygic3Vic2NyaXB0IHR5cGUgaXMgbm90IHN1cHBvcnRlZCIpLAotCQkJCQkJ CSBlcnJoaW50KCJKc29uYiBzdWJzY3JpcHQgbXVzdCBiZSBjb2VyY2V0IHRvIGVpdGhlciBpbnRl Z2VyIG9yIHRleHQiKSwKKwkJCQkJCQkgZXJyaGludCgiSnNvbmIgc3Vic2NyaXB0IG11c3QgYmUg Y29lcmNlZCB0byBlaXRoZXIgaW50ZWdlciBvciB0ZXh0IiksCiAJCQkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKIAkJCX0KIAkJCWVsc2UK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKaW5kZXggMGRmODA4YzM2ZC4uMWQzMzQ1Nzc4 OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKQEAgLTQ3OTQsNyArNDc5NCw3IEBA IHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzEuMF07CiBFUlJPUjogIHN1YnNjcmlw dCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQKIExJTkUgMTogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0n Ojpqc29uYilbMS4wXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgotSElOVDogIEpzb25iIHN1YnNjcmlwdCBtdXN0IGJlIGNvZXJjZXQgdG8gZWl0aGVyIGludGVn ZXIgb3IgdGV4dAorSElOVDogIEpzb25iIHN1YnNjcmlwdCBtdXN0IGJlIGNvZXJjZWQgdG8gZWl0 aGVyIGludGVnZXIgb3IgdGV4dAogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMl07 CiAganNvbmIgCiAtLS0tLS0tCi0tIAoyLjMwLjAKCg== --f83f5285abeeeb7f66987d5a3882db81f1305d0de735fd0414103a0e5fb5--