Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tuNVj-007u2S-00 for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Mar 2025 03:20:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tuNVg-006TPH-PP for pgsql-hackers@arkaria.postgresql.org; Tue, 18 Mar 2025 03:20:56 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tuNVg-006TP9-7R for pgsql-hackers@lists.postgresql.org; Tue, 18 Mar 2025 03:20:56 +0000 Received: from mail-ua1-x936.google.com ([2607:f8b0:4864:20::936]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tuNVd-003Qrg-2i for pgsql-hackers@postgresql.org; Tue, 18 Mar 2025 03:20:55 +0000 Received: by mail-ua1-x936.google.com with SMTP id a1e0cc1a2514c-86b9b1def28so4646169241.3 for ; Mon, 17 Mar 2025 20:20:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742268053; x=1742872853; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=MOnzD9jA/tv1UzjjB/nQsMQt3+4A2raeNGdxANozpw0=; b=PhzR6El7OxfUZij+WSWn/WaCZRfOMxJfZ8P222dDMcbCYOInwlkslJk2fcSFjQ8O29 XKWG1con8Bb289UldIlDoO2OaDV00bDwN2VtI88Z3MmtINdaUaZilzsLoess9Wlhe+Ye GHP0jMBCMtGWqWbqYufw/y4pnhxPRHFaag06MUVR1zfzie7KDANiHjtRteqwBEC3xdfX v7gdo9bmdS+dBqkTtOzLQCkbLz9o9KSX9wCk4sLCy43LDIiUB+EoNoAdNUYFULMEm+87 VC5khQ28GmuYjAQbaqZYyGoH0cquIsA0T9baWTqhdNwHG3Ifn8cBxctAt+cmZONUjdlr IoqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742268053; x=1742872853; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=MOnzD9jA/tv1UzjjB/nQsMQt3+4A2raeNGdxANozpw0=; b=SymbNzD9E4Sa8R54I9ni2uafNn1E+17OXX0uhTSyyr0RIvTnv1aUPBUPMQBvERavut W++yxOvcUIj0l7+T48hbzCoC1v9gryXQP20wVad1+g3uY5dXX6Jw/ZA/LAwO8SY4lH3a vZA+hdu11gJ8WhGQX8a96G4B6wMj40JvmDqAksXlLUK7ZVFjYW6aQlHlJXDjQ2uvuutt 6oifor2XNm2DWjTn2krmW6gOppODOZshmv/rhvBT/UpDUo2Z0Q1Qm0lqxzkqp7n9inO9 NtdfAFmRtIV6xjR0a6lswBuPX2sNEwTan85CU5PXkGaLDpSw8Z1GoJHfKD31tQfOvepE bhlw== X-Gm-Message-State: AOJu0YxvlmZtHZBTm0mxoso1Gffh72Dp2jOREEvr9H5bCSzBsTOQ7+pV 2CqNhU6TS5wHcoTVcewBrVzQIC0vc1c/s1w0GmfBadHOau/+xDtoFmzjvZ0vnwkhApI4F8V5PXj skVcQqfOZTPdgvLPU3S+5tGo1pJ9BzKMLtEo= X-Gm-Gg: ASbGncucMYFgdS3NM23F0vjZo1ODXUg/Ie3xME+mPke87If/bubWDd7qBZyuRhf8BIp LzUYi78Ho0x2FBwd5Mf/0JV9Cum0Thqyjm7GmxrmK5ak9R2x53YXPcTgdmGprVmZ90NjqOVIYtJ E95+cvKJGt2uBHf3MfT2YT4ObgvyIxjFYtJyS8wXOXdjm5dVJpbhGmTJpGzne8QKbMAuct X-Google-Smtp-Source: AGHT+IEVEI3Qucuw5sqj3+aFdIlTTReUNPioz3h9v9J1nCLlL75hdOzuJbAFDdbZ0uUZ8NW1tHr86AZE64+GFzhRTlE= X-Received: by 2002:a05:6102:4b0e:b0:4c1:94df:9aea with SMTP id ada2fe7eead31-4c4d90fdae0mr2130491137.15.1742268053143; Mon, 17 Mar 2025 20:20:53 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: jian he Date: Tue, 18 Mar 2025 11:20:16 +0800 X-Gm-Features: AQ5f1Jr7Z7kR_CMFdYLSGAjIOP8zuWcBB5t4MBFc5-ivBmlMgeWaZzZD2lT4APE Message-ID: Subject: Re: add function argument name to substring and substr To: "David G. Johnston" Cc: PostgreSQL-development Content-Type: multipart/mixed; boundary="00000000000069613a063095646c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000069613a063095646c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Feb 18, 2025 at 6:13=E2=80=AFAM David G. Johnston wrote: > > Table 9.9 limits itself to those functions defined in the SQL standard; w= hich are basically the ones that use keywords instead of commas. > > The substring(string, start, count) function you note is already covered = in Table 9.10 but we spell it substr(...) > > I don't think adding yet more spellings of this same function is warrante= d or desirable at this point. ok. > I'd maybe add a note if substring(,,,) works to substr saying that substr= ing is a valid alias. I could be convinced to just document though. > it seems already in the doc. substr ( string text, start integer [, count integer ] ) =E2=86=92 text Extracts the substring of string starting at the start'th character, and extending for count characters if that is specified. (Same as substring(string from start for count).) substr ( bytes bytea, start integer [, count integer ] ) =E2=86=92 bytea Extracts the substring of bytes starting at the start'th byte, and extending for count bytes if that is specified. (Same as substring(bytes from start for count).) new patch attached. main changes: 1. change 3 argument func argument from (string text, pattern text, escape_character text) to (string text, pattern text, escape text) 2. add synopsis section in 9.7.3. POSIX Regular Expressions for function substring. we only have the synopsis section for function substring in 9.7.2 section, now add it to 9.7.3. also add an example about using named natation call substring: substring(string=3D>'foobar', pattern=3D> 'o.b') the patch is small, I just put the \df substring \df substr (before and after patch) output into the commit message. --00000000000069613a063095646c Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0001-add-argument-name-to-function-substring-and-subst.patch" Content-Disposition: attachment; filename="v2-0001-add-argument-name-to-function-substring-and-subst.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m8dx7qwc0 RnJvbSBmMGI0OWNjZDI3ZDQxZmYxYmQxNjE5Mjg0NjU2ZWZjYjFkM2MzZTBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTggTWFyIDIwMjUgMTE6MTM6MTEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy IDEvMV0gYWRkIGFyZ3VtZW50IG5hbWUgdG8gZnVuY3Rpb24gc3Vic3RyaW5nIGFuZCBzdWJzdHIK CnZpc3VhbCBjaGFuZ2VzLgpiZWZvcmUKClxkZiBzdWJzdHIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgZnVuY3Rpb25zCiAgIFNjaGVtYSAgIHwgIE5hbWUgIHwgUmVzdWx0IGRh dGEgdHlwZSB8ICAgQXJndW1lbnQgZGF0YSB0eXBlcyAgIHwgVHlwZQotLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t CiBwZ19jYXRhbG9nIHwgc3Vic3RyIHwgYnl0ZWEgICAgICAgICAgICB8IGJ5dGVhLCBpbnRlZ2Vy ICAgICAgICAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0ciB8IGJ5dGVhICAgICAgICAgICAg fCBieXRlYSwgaW50ZWdlciwgaW50ZWdlciB8IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHIgfCB0 ZXh0ICAgICAgICAgICAgIHwgdGV4dCwgaW50ZWdlciAgICAgICAgICAgfCBmdW5jCiBwZ19jYXRh bG9nIHwgc3Vic3RyIHwgdGV4dCAgICAgICAgICAgICB8IHRleHQsIGludGVnZXIsIGludGVnZXIg IHwgZnVuYwooNCByb3dzKQoKbm93CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIGZ1bmN0aW9ucwogICBTY2hlbWEgICB8ICBOYW1lICB8IFJlc3VsdCBkYXRhIHR5 cGUgfCAgICAgICAgICAgIEFyZ3VtZW50IGRhdGEgdHlwZXMgICAgICAgICAgICB8IFR5cGUKLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLQogcGdfY2F0YWxvZyB8IHN1YnN0ciB8IGJ5 dGVhICAgICAgICAgICAgfCBieXRlcyBieXRlYSwgc3RhcnQgaW50ZWdlciAgICAgICAgICAgICAg ICB8IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHIgfCBieXRlYSAgICAgICAgICAgIHwgYnl0ZXMg Ynl0ZWEsIHN0YXJ0IGludGVnZXIsIGNvdW50IGludGVnZXIgfCBmdW5jCiBwZ19jYXRhbG9nIHwg c3Vic3RyIHwgdGV4dCAgICAgICAgICAgICB8IHN0cmluZyB0ZXh0LCBzdGFydCBpbnRlZ2VyICAg ICAgICAgICAgICAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0ciB8IHRleHQgICAgICAgICAg ICAgfCBzdHJpbmcgdGV4dCwgc3RhcnQgaW50ZWdlciwgY291bnQgaW50ZWdlciB8IGZ1bmMKKDQg cm93cykKCmJlZm9yZQpcZGYgc3Vic3RyaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBmdW5jdGlvbnMKICAgU2NoZW1hICAgfCAgIE5hbWUgICAgfCBSZXN1bHQgZGF0YSB0 eXBlIHwgICBBcmd1bWVudCBkYXRhIHR5cGVzICAgfCBUeXBlCi0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0K IHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcgfCBiaXQgICAgICAgICAgICAgIHwgYml0LCBpbnRlZ2Vy ICAgICAgICAgICAgfCBmdW5jCiBwZ19jYXRhbG9nIHwgc3Vic3RyaW5nIHwgYml0ICAgICAgICAg ICAgICB8IGJpdCwgaW50ZWdlciwgaW50ZWdlciAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0 cmluZyB8IGJ5dGVhICAgICAgICAgICAgfCBieXRlYSwgaW50ZWdlciAgICAgICAgICB8IGZ1bmMK IHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcgfCBieXRlYSAgICAgICAgICAgIHwgYnl0ZWEsIGludGVn ZXIsIGludGVnZXIgfCBmdW5jCiBwZ19jYXRhbG9nIHwgc3Vic3RyaW5nIHwgdGV4dCAgICAgICAg ICAgICB8IHRleHQsIGludGVnZXIgICAgICAgICAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0 cmluZyB8IHRleHQgICAgICAgICAgICAgfCB0ZXh0LCBpbnRlZ2VyLCBpbnRlZ2VyICB8IGZ1bmMK IHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcgfCB0ZXh0ICAgICAgICAgICAgIHwgdGV4dCwgdGV4dCAg ICAgICAgICAgICAgfCBmdW5jCiBwZ19jYXRhbG9nIHwgc3Vic3RyaW5nIHwgdGV4dCAgICAgICAg ICAgICB8IHRleHQsIHRleHQsIHRleHQgICAgICAgIHwgZnVuYwooOCByb3dzKQoKbm93CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBmdW5jdGlvbnMKICAgU2No ZW1hICAgfCAgIE5hbWUgICAgfCBSZXN1bHQgZGF0YSB0eXBlIHwgICAgICAgICAgICBBcmd1bWVu dCBkYXRhIHR5cGVzICAgICAgICAgICAgfCBUeXBlCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0KIHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcgfCBiaXQgICAgICAgICAgICAgIHwg Yml0cyBiaXQsIHN0YXJ0IGludGVnZXIgICAgICAgICAgICAgICAgICAgfCBmdW5jCiBwZ19jYXRh bG9nIHwgc3Vic3RyaW5nIHwgYml0ICAgICAgICAgICAgICB8IGJpdHMgYml0LCBzdGFydCBpbnRl Z2VyLCBjb3VudCBpbnRlZ2VyICAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0cmluZyB8IGJ5 dGVhICAgICAgICAgICAgfCBieXRlcyBieXRlYSwgc3RhcnQgaW50ZWdlciAgICAgICAgICAgICAg ICB8IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcgfCBieXRlYSAgICAgICAgICAgIHwgYnl0 ZXMgYnl0ZWEsIHN0YXJ0IGludGVnZXIsIGNvdW50IGludGVnZXIgfCBmdW5jCiBwZ19jYXRhbG9n IHwgc3Vic3RyaW5nIHwgdGV4dCAgICAgICAgICAgICB8IHN0cmluZyB0ZXh0LCBwYXR0ZXJuIHRl eHQgICAgICAgICAgICAgICAgIHwgZnVuYwogcGdfY2F0YWxvZyB8IHN1YnN0cmluZyB8IHRleHQg ICAgICAgICAgICAgfCBzdHJpbmcgdGV4dCwgcGF0dGVybiB0ZXh0LCBlc2NhcGUgdGV4dCAgICB8 IGZ1bmMKIHBnX2NhdGFsb2cgfCBzdWJzdHJpbmcgfCB0ZXh0ICAgICAgICAgICAgIHwgc3RyaW5n IHRleHQsIHN0YXJ0IGludGVnZXIgICAgICAgICAgICAgICAgfCBmdW5jCiBwZ19jYXRhbG9nIHwg c3Vic3RyaW5nIHwgdGV4dCAgICAgICAgICAgICB8IHN0cmluZyB0ZXh0LCBzdGFydCBpbnRlZ2Vy LCBjb3VudCBpbnRlZ2VyIHwgZnVuYwooOCByb3dzKQotLS0KIGRvYy9zcmMvc2dtbC9mdW5jLnNn bWwgICAgICAgICAgICAgICAgICAgfCAyMyArKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL2Jh Y2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbCB8ICAyICstCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgIHwgMTIgKysrKysrKysrKysrCiAzIGZpbGVzIGNo YW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKaW5kZXggMWMzODEw ZTFhMDQuLmJlNDdlMDY3MjdkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKQEAgLTU4MTYsNyArNTgxNiw3IEBAIHN1YnN0cmlu Zyg8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4gZnJvbSA8cmVwbGFjZWFibGU+cGF0 dGVybjwvcmVwbGFjZWFiCiA8L3N5bm9wc2lzPgogICAgIG9yIGFzIGEgcGxhaW4gdGhyZWUtYXJn dW1lbnQgZnVuY3Rpb246CiA8c3lub3BzaXM+Ci1zdWJzdHJpbmcoPHJlcGxhY2VhYmxlPnN0cmlu ZzwvcmVwbGFjZWFibGU+LCA8cmVwbGFjZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+LCA8cmVw bGFjZWFibGU+ZXNjYXBlLWNoYXJhY3RlcjwvcmVwbGFjZWFibGU+KQorc3Vic3RyaW5nKDxyZXBs YWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlPnBhdHRlcm48L3JlcGxh Y2VhYmxlPiwgPHJlcGxhY2VhYmxlPmVzY2FwZTwvcmVwbGFjZWFibGU+KQogPC9zeW5vcHNpcz4K ICAgICBBcyB3aXRoIDxsaXRlcmFsPlNJTUlMQVIgVE88L2xpdGVyYWw+LCB0aGUKICAgICBzcGVj aWZpZWQgcGF0dGVybiBtdXN0IG1hdGNoIHRoZSBlbnRpcmUgZGF0YSBzdHJpbmcsIG9yIGVsc2Ug dGhlCkBAIC02MDIwLDExICs2MDIwLDE3IEBAIHN1YnN0cmluZygnZm9vYmFyJyBzaW1pbGFyICcj Im9fYiMiJScgZXNjYXBlICcjJykgICAgPGxpbmVhbm5vdGF0aW9uPk5VTEw8L2xpbmVhCiAgICAg PC9wYXJhPgogCiAgICAgPHBhcmE+Ci0gICAgIFRoZSA8ZnVuY3Rpb24+c3Vic3RyaW5nPC9mdW5j dGlvbj4gZnVuY3Rpb24gd2l0aCB0d28gcGFyYW1ldGVycywKLSAgICAgPGZ1bmN0aW9uPnN1YnN0 cmluZyg8cmVwbGFjZWFibGU+c3RyaW5nPC9yZXBsYWNlYWJsZT4gZnJvbQotICAgICA8cmVwbGFj ZWFibGU+cGF0dGVybjwvcmVwbGFjZWFibGU+KTwvZnVuY3Rpb24+LCBwcm92aWRlcyBleHRyYWN0 aW9uIG9mIGEKLSAgICAgc3Vic3RyaW5nCi0gICAgIHRoYXQgbWF0Y2hlcyBhIFBPU0lYIHJlZ3Vs YXIgZXhwcmVzc2lvbiBwYXR0ZXJuLiAgSXQgcmV0dXJucyBudWxsIGlmCisgICAgIFRoZSA8ZnVu Y3Rpb24+c3Vic3RyaW5nPC9mdW5jdGlvbj4gZnVuY3Rpb24gd2l0aCB0d28gcGFyYW1ldGVycyBw cm92aWRlcyBleHRyYWN0aW9uIG9mIGEKKyAgICAgc3Vic3RyaW5nIHRoYXQgbWF0Y2hlcyBhIFBP U0lYIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuLgorICAgICBJdCBoYXMgc3ludGF4OgorPHN5 bm9wc2lzPgorc3Vic3RyaW5nKDxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiBmcm9t IDxyZXBsYWNlYWJsZT5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4pCis8L3N5bm9wc2lzPgorICAgICBJ dCBjYW4gYWxzbyB3cml0dGVuIGFzIGEgcGxhaW4gdHdvLWFyZ3VtZW50IGZ1bmN0aW9uOgorPHN5 bm9wc2lzPgorc3Vic3RyaW5nKDxyZXBsYWNlYWJsZT5zdHJpbmc8L3JlcGxhY2VhYmxlPiwgPHJl cGxhY2VhYmxlPnBhdHRlcm48L3JlcGxhY2VhYmxlPikKKzwvc3lub3BzaXM+CisgICAgIEl0IHJl dHVybnMgbnVsbCBpZgogICAgICB0aGVyZSBpcyBubyBtYXRjaCwgb3RoZXJ3aXNlIHRoZSBmaXJz dCBwb3J0aW9uIG9mIHRoZSB0ZXh0IHRoYXQgbWF0Y2hlZCB0aGUKICAgICAgcGF0dGVybi4gIEJ1 dCBpZiB0aGUgcGF0dGVybiBjb250YWlucyBhbnkgcGFyZW50aGVzZXMsIHRoZSBwb3J0aW9uCiAg ICAgIG9mIHRoZSB0ZXh0IHRoYXQgbWF0Y2hlZCB0aGUgZmlyc3QgcGFyZW50aGVzaXplZCBzdWJl eHByZXNzaW9uICh0aGUKQEAgLTYwMzksOCArNjA0NSw5IEBAIHN1YnN0cmluZygnZm9vYmFyJyBz aW1pbGFyICcjIm9fYiMiJScgZXNjYXBlICcjJykgICAgPGxpbmVhbm5vdGF0aW9uPk5VTEw8L2xp bmVhCiAgICA8cGFyYT4KICAgICBTb21lIGV4YW1wbGVzOgogPHByb2dyYW1saXN0aW5nPgotc3Vi c3RyaW5nKCdmb29iYXInIGZyb20gJ28uYicpICAgICA8bGluZWFubm90YXRpb24+b29iPC9saW5l YW5ub3RhdGlvbj4KLXN1YnN0cmluZygnZm9vYmFyJyBmcm9tICdvKC4pYicpICAgPGxpbmVhbm5v dGF0aW9uPm88L2xpbmVhbm5vdGF0aW9uPgorc3Vic3RyaW5nKCdmb29iYXInIGZyb20gJ28uYicp ICAgICAgICAgICAgICAgICAgIDxsaW5lYW5ub3RhdGlvbj5vb2I8L2xpbmVhbm5vdGF0aW9uPgor c3Vic3RyaW5nKHN0cmluZz0+J2Zvb2JhcicsIHBhdHRlcm49PiAnby5iJykgICAgIDxsaW5lYW5u b3RhdGlvbj5vb2I8L2xpbmVhbm5vdGF0aW9uPgorc3Vic3RyaW5nKCdmb29iYXInIGZyb20gJ28o LiliJykgICAgICAgICAgICAgICAgIDxsaW5lYW5ub3RhdGlvbj5vPC9saW5lYW5ub3RhdGlvbj4K IDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICA8L3BhcmE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9ucy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3Rl bV9mdW5jdGlvbnMuc3FsCmluZGV4IDU2NmYzMDhlNDQzLi41NDRiNTQ5YWU3NCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbAorKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCkBAIC00Miw3ICs0Miw3IEBAIENSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHJwYWQodGV4dCwgaW50ZWdlcikKICBJTU1VVEFCTEUgUEFS QUxMRUwgU0FGRSBTVFJJQ1QgQ09TVCAxCiBSRVRVUk4gcnBhZCgkMSwgJDIsICcgJyk7CiAKLUNS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OICJzdWJzdHJpbmciKHRleHQsIHRleHQsIHRleHQpCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiAic3Vic3RyaW5nIihzdHJpbmcgdGV4dCwgcGF0dGVy biB0ZXh0LCBlc2NhcGUgdGV4dCkKICBSRVRVUk5TIHRleHQKICBMQU5HVUFHRSBzcWwKICBJTU1V VEFCTEUgUEFSQUxMRUwgU0FGRSBTVFJJQ1QgQ09TVCAxCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApp bmRleCA4OTA4MjJlYWY3OS4uMWUwMjNjNjQ2NWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApA QCAtMzY2OCw2ICszNjY4LDcgQEAKICAgcHJvc3JjID0+ICdydHJpbScgfSwKIHsgb2lkID0+ICc4 NzcnLCBkZXNjciA9PiAnZXh0cmFjdCBwb3J0aW9uIG9mIHN0cmluZycsCiAgIHByb25hbWUgPT4g J3N1YnN0cicsIHByb3JldHR5cGUgPT4gJ3RleHQnLCBwcm9hcmd0eXBlcyA9PiAndGV4dCBpbnQ0 IGludDQnLAorICBwcm9hcmduYW1lcyA9PiAne3N0cmluZywgc3RhcnQsIGNvdW50fScsCiAgIHBy b3NyYyA9PiAndGV4dF9zdWJzdHInIH0sCiB7IG9pZCA9PiAnODc4JywgZGVzY3IgPT4gJ21hcCBh IHNldCBvZiBjaGFyYWN0ZXJzIGFwcGVhcmluZyBpbiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICd0 cmFuc2xhdGUnLCBwcm9yZXR0eXBlID0+ICd0ZXh0JywgcHJvYXJndHlwZXMgPT4gJ3RleHQgdGV4 dCB0ZXh0JywKQEAgLTM2ODYsNiArMzY4Nyw3IEBACiAgIHByb3NyYyA9PiAncnRyaW0xJyB9LAog eyBvaWQgPT4gJzg4MycsIGRlc2NyID0+ICdleHRyYWN0IHBvcnRpb24gb2Ygc3RyaW5nJywKICAg cHJvbmFtZSA9PiAnc3Vic3RyJywgcHJvcmV0dHlwZSA9PiAndGV4dCcsIHByb2FyZ3R5cGVzID0+ ICd0ZXh0IGludDQnLAorICBwcm9hcmduYW1lcyA9PiAne3N0cmluZywgc3RhcnR9JywKICAgcHJv c3JjID0+ICd0ZXh0X3N1YnN0cl9ub19sZW4nIH0sCiB7IG9pZCA9PiAnODg0JywgZGVzY3IgPT4g J3RyaW0gc2VsZWN0ZWQgY2hhcmFjdGVycyBmcm9tIGJvdGggZW5kcyBvZiBzdHJpbmcnLAogICBw cm9uYW1lID0+ICdidHJpbScsIHByb3JldHR5cGUgPT4gJ3RleHQnLCBwcm9hcmd0eXBlcyA9PiAn dGV4dCB0ZXh0JywKQEAgLTM2OTYsOSArMzY5OCwxMSBAQAogCiB7IG9pZCA9PiAnOTM2JywgZGVz Y3IgPT4gJ2V4dHJhY3QgcG9ydGlvbiBvZiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICdzdWJzdHJp bmcnLCBwcm9yZXR0eXBlID0+ICd0ZXh0JywgcHJvYXJndHlwZXMgPT4gJ3RleHQgaW50NCBpbnQ0 JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzdHJpbmcsIHN0YXJ0LCBjb3VudH0nLAogICBwcm9zcmMg PT4gJ3RleHRfc3Vic3RyJyB9LAogeyBvaWQgPT4gJzkzNycsIGRlc2NyID0+ICdleHRyYWN0IHBv cnRpb24gb2Ygc3RyaW5nJywKICAgcHJvbmFtZSA9PiAnc3Vic3RyaW5nJywgcHJvcmV0dHlwZSA9 PiAndGV4dCcsIHByb2FyZ3R5cGVzID0+ICd0ZXh0IGludDQnLAorICBwcm9hcmduYW1lcyA9PiAn e3N0cmluZywgc3RhcnR9JywKICAgcHJvc3JjID0+ICd0ZXh0X3N1YnN0cl9ub19sZW4nIH0sCiB7 IG9pZCA9PiAnMjA4NycsCiAgIGRlc2NyID0+ICdyZXBsYWNlIGFsbCBvY2N1cnJlbmNlcyBpbiBz dHJpbmcgb2Ygb2xkX3N1YnN0ciB3aXRoIG5ld19zdWJzdHInLApAQCAtNDExNiw2ICs0MTIwLDcg QEAKICAgcHJvc3JjID0+ICdiaXRjYXQnIH0sCiB7IG9pZCA9PiAnMTY4MCcsIGRlc2NyID0+ICdl eHRyYWN0IHBvcnRpb24gb2YgYml0c3RyaW5nJywKICAgcHJvbmFtZSA9PiAnc3Vic3RyaW5nJywg cHJvcmV0dHlwZSA9PiAnYml0JywgcHJvYXJndHlwZXMgPT4gJ2JpdCBpbnQ0IGludDQnLAorICBw cm9hcmduYW1lcyA9PiAne2JpdHMsIHN0YXJ0LCBjb3VudH0nLAogICBwcm9zcmMgPT4gJ2JpdHN1 YnN0cicgfSwKIHsgb2lkID0+ICcxNjgxJywgZGVzY3IgPT4gJ2JpdHN0cmluZyBsZW5ndGgnLAog ICBwcm9uYW1lID0+ICdsZW5ndGgnLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywgcHJvYXJndHlwZXMg PT4gJ2JpdCcsCkBAIC00MTQ1LDYgKzQxNTAsNyBAQAogICBwcm9zcmMgPT4gJ2JpdHBvc2l0aW9u JyB9LAogeyBvaWQgPT4gJzE2OTknLCBkZXNjciA9PiAnZXh0cmFjdCBwb3J0aW9uIG9mIGJpdHN0 cmluZycsCiAgIHByb25hbWUgPT4gJ3N1YnN0cmluZycsIHByb3JldHR5cGUgPT4gJ2JpdCcsIHBy b2FyZ3R5cGVzID0+ICdiaXQgaW50NCcsCisgIHByb2FyZ25hbWVzID0+ICd7Yml0cywgc3RhcnR9 JywKICAgcHJvc3JjID0+ICdiaXRzdWJzdHJfbm9fbGVuJyB9LAogCiB7IG9pZCA9PiAnMzAzMCcs IGRlc2NyID0+ICdzdWJzdGl0dXRlIHBvcnRpb24gb2YgYml0c3RyaW5nJywKQEAgLTYyMzksMTUg KzYyNDUsMTkgQEAKICAgcHJvc3JjID0+ICdieXRlYWNhdCcgfSwKIHsgb2lkID0+ICcyMDEyJywg ZGVzY3IgPT4gJ2V4dHJhY3QgcG9ydGlvbiBvZiBzdHJpbmcnLAogICBwcm9uYW1lID0+ICdzdWJz dHJpbmcnLCBwcm9yZXR0eXBlID0+ICdieXRlYScsCisgIHByb2FyZ25hbWVzID0+ICd7Ynl0ZXMs IHN0YXJ0LCBjb3VudH0nLAogICBwcm9hcmd0eXBlcyA9PiAnYnl0ZWEgaW50NCBpbnQ0JywgcHJv c3JjID0+ICdieXRlYV9zdWJzdHInIH0sCiB7IG9pZCA9PiAnMjAxMycsIGRlc2NyID0+ICdleHRy YWN0IHBvcnRpb24gb2Ygc3RyaW5nJywKICAgcHJvbmFtZSA9PiAnc3Vic3RyaW5nJywgcHJvcmV0 dHlwZSA9PiAnYnl0ZWEnLCBwcm9hcmd0eXBlcyA9PiAnYnl0ZWEgaW50NCcsCisgIHByb2FyZ25h bWVzID0+ICd7Ynl0ZXMsIHN0YXJ0fScsCiAgIHByb3NyYyA9PiAnYnl0ZWFfc3Vic3RyX25vX2xl bicgfSwKIHsgb2lkID0+ICcyMDg1JywgZGVzY3IgPT4gJ2V4dHJhY3QgcG9ydGlvbiBvZiBzdHJp bmcnLAogICBwcm9uYW1lID0+ICdzdWJzdHInLCBwcm9yZXR0eXBlID0+ICdieXRlYScsIHByb2Fy Z3R5cGVzID0+ICdieXRlYSBpbnQ0IGludDQnLAorICBwcm9hcmduYW1lcyA9PiAne2J5dGVzLCBz dGFydCwgY291bnR9JywKICAgcHJvc3JjID0+ICdieXRlYV9zdWJzdHInIH0sCiB7IG9pZCA9PiAn MjA4NicsIGRlc2NyID0+ICdleHRyYWN0IHBvcnRpb24gb2Ygc3RyaW5nJywKICAgcHJvbmFtZSA9 PiAnc3Vic3RyJywgcHJvcmV0dHlwZSA9PiAnYnl0ZWEnLCBwcm9hcmd0eXBlcyA9PiAnYnl0ZWEg aW50NCcsCisgIHByb2FyZ25hbWVzID0+ICd7Ynl0ZXMsIHN0YXJ0fScsCiAgIHByb3NyYyA9PiAn Ynl0ZWFfc3Vic3RyX25vX2xlbicgfSwKIHsgb2lkID0+ICcyMDE0JywgZGVzY3IgPT4gJ3Bvc2l0 aW9uIG9mIHN1YnN0cmluZycsCiAgIHByb25hbWUgPT4gJ3Bvc2l0aW9uJywgcHJvcmV0dHlwZSA9 PiAnaW50NCcsIHByb2FyZ3R5cGVzID0+ICdieXRlYSBieXRlYScsCkBAIC02NDM2LDkgKzY0NDYs MTEgQEAKIAogeyBvaWQgPT4gJzIwNzMnLCBkZXNjciA9PiAnZXh0cmFjdCB0ZXh0IG1hdGNoaW5n IHJlZ3VsYXIgZXhwcmVzc2lvbicsCiAgIHByb25hbWUgPT4gJ3N1YnN0cmluZycsIHByb3JldHR5 cGUgPT4gJ3RleHQnLCBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0JywKKyAgcHJvYXJnbmFtZXMg PT4gJ3tzdHJpbmcsIHBhdHRlcm59JywKICAgcHJvc3JjID0+ICd0ZXh0cmVnZXhzdWJzdHInIH0s CiB7IG9pZCA9PiAnMjA3NCcsIGRlc2NyID0+ICdleHRyYWN0IHRleHQgbWF0Y2hpbmcgU1FMIHJl Z3VsYXIgZXhwcmVzc2lvbicsCiAgIHByb25hbWUgPT4gJ3N1YnN0cmluZycsIHByb2xhbmcgPT4g J3NxbCcsIHByb3JldHR5cGUgPT4gJ3RleHQnLAorICBwcm9hcmduYW1lcyA9PiAne3N0cmluZywg cGF0dGVybiwgZXNjYXBlfScsCiAgIHByb2FyZ3R5cGVzID0+ICd0ZXh0IHRleHQgdGV4dCcsIHBy b3NyYyA9PiAnc2VlIHN5c3RlbV9mdW5jdGlvbnMuc3FsJyB9LAogCiB7IG9pZCA9PiAnMjA3NScs IGRlc2NyID0+ICdjb252ZXJ0IGludDggdG8gYml0c3RyaW5nJywKLS0gCjIuMzQuMQoK --00000000000069613a063095646c--