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.98.2) (envelope-from ) id 1xBYI2-00000003GEf-3s4b for pgsql-hackers@arkaria.postgresql.org; Tue, 29 Sep 2026 13:54:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.98.2) (envelope-from ) id 1xBYI1-0000000F57n-44IP for pgsql-hackers@arkaria.postgresql.org; Tue, 29 Sep 2026 13:54:37 +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.98.2) (envelope-from ) id 1xBYI1-0000000F57X-1EEQ for pgsql-hackers@lists.postgresql.org; Tue, 29 Sep 2026 13:54:37 +0000 Received: from mail-vs2-x28.google.com ([2a00:1450:4864:3a::28]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1xBYHx-00000001scE-3JYR for pgsql-hackers@lists.postgresql.org; Tue, 29 Sep 2026 13:54:36 +0000 Received: by mail-vs2-x28.google.com with SMTP id 71dfb90a1353d-5d47358f856so83251e0c.3 for ; Tue, 29 Sep 2026 06:54:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790690073; x=1791294873; darn=lists.postgresql.org; h=in-reply-to:fcc:content-language:references:user-agent:mime-version :from:subject:cc:to:message-id:date:content-type:from:to:cc:subject :date:message-id:reply-to:content-type; bh=ytmDC1SlPRDXUYsgwGW/E3h40s1FvAw4MVLqJzHRjAU=; b=lpR1y1DmgBIeS8/CFJUpnuIEvyKLRWXZkZDHKdIr1zTayH8yod5CYjIEtYo/HErcuW Qmi+RbNxr9ocSItaYE/61LHEmaDHLh5g2b22kVqk98hDkvbms7GnKA6xB9SBBPrbNa8V RrCInfwagw/ryZWtaxfJ7SWtTdyXafnhgtD52sUZm3ci2DzYg/Qk4qSzK1hqrPizCtZt +fBEAFqhBkHxUL6BLg5aRaqqoypFJRNaw/2L+2LrYPeCGkg+Cyl/d5MEdMfiTnguKnvH f7wZz+H5BAJbbYu/BmS7EwS/xbof3UyoLJWI0eTf14AkoXArbgjYy1ygNtgbwMt3qeFw +BfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790690073; x=1791294873; h=in-reply-to:fcc:content-language:references:user-agent:mime-version :from:subject:cc:to:message-id:date:content-type:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ytmDC1SlPRDXUYsgwGW/E3h40s1FvAw4MVLqJzHRjAU=; b=hs1uzj/N78xrtmHgSimwx1jk5y95A/vODSeQLySUrFKzQbVPQkYX0C2NntXAarliGA Ndyu4VqVIP1naFjRCTcEXOGOQuJXY6vE4Qd4MZeEVBV1C0xx6JqXCGgNDSLNWrX6JbCO 2BoVxIGlCuAxt2WbzLQpDy4CgUwktSQOp4Uuu3Jgr1Tx501wrHPBWx3Zk5i46BOxGMk9 aKrgVtMgzz9qRlykoVtoBtupdeY78tO2Tmd4IvGFt0UpvaTdCVlNhg4W3bICYoQhCPv1 ennUAWEBeTWkf11a+PMW38TL4wtr5TbruRMf9y0u8LQBK/+5GjNtaT4ySNC76MOeGsDj WYoA== X-Gm-Message-State: AFq9FYKDnefAsNClrkMmlckYificTZsgjRPbdegvvz73kST74ZH/jJpU xK2A2nMw8822UMEbDp2uXCbhKwZrZx0czAfH1Ln/pXGL5Wj/jQYSOq67 X-Gm-Gg: AYBFou3Q81y5T3hj6dCBl7CimRh7PWaAQjuYyoqStlxEVeyUVUGXp9fQSCfMSk6BLKi qVguQ1/fzuTXV+bHCU6B4oD1qioDvKEVj6z7nUJVEiJMSfrb4+aIcziV8rUaLhQqMPA6wdSovwi vNfwcEMuv3Dd4gtIQ4QTqXtQ5jGERPbzRciptrZsm52Q8fB71yb78if+e2yTpS5CPivtAsaa4Wi c8Qryco/wHL1C+HPPpo75AbQcI5MET8D3WJOp/l3CqJtP0ov7CSrp1sDeQT/5cw2ZypNdiEdGww YZ6xZQb3gyPOGF+1zocK4afjCtE0KFuIUritIwuLO9Zucs13RwwXkQ8BDdM3xE+I2TF3plf5WZ6 TS5Jl96WjSNB5Y87AtgAm5bw5sktohtLOGzqiv8uK5S9uhuIGe+esYgWiU6u6MjntYT5FZq9peG H14gAbWp5zJRjWtC1EuV+Tjjz9V6RtgKwHF0cTqFUn3Ty6pypoYiKE8XZspC/6O7eBKKxvHnK/I 2Gl/iacCIinyaJg/5TW X-Received: by 2002:a05:6122:c95:b0:5bf:7f98:9657 with SMTP id 71dfb90a1353d-5cb098076f0mr6775615e0c.6.1790690072755; Tue, 29 Sep 2026 06:54:32 -0700 (PDT) Received: from localhost ([2804:14d:32a7:4273:ac6b:aaa4:756e:c2eb]) by smtp.gmail.com with ESMTPSA id 71dfb90a1353d-5d43f4e79cbsm607692e0c.5.2026.09.29.06.54.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 29 Sep 2026 06:54:32 -0700 (PDT) Content-Type: multipart/mixed; boundary=ad2e00d5df6769e2f82d74ebe9be7f14218fd9d5fac6ef7d0d98960c790d Date: Tue, 29 Sep 2026 10:54:28 -0300 Message-Id: To: "Zsolt Parragi" Cc: , "Ayush Tiwari" Subject: Re: [PATCH v1] Fix for Bug#19724 - ALTER TYPE ... ALTER ATTRIBUTE triggers internal error for base type of domain with check From: "Matheus Alcantara" MIME-Version: 1.0 User-Agent: Mozilla Thunderbird References: Content-Language: en-US X-Mozilla-Draft-Info: internal/draft; vcard=0; receipt=0; DSN=0; uuencode=0; attachmentreminder=0; deliveryformat=1 X-Identity-Key: id3 Fcc: imap://matheusssilv97%40gmail.com@imap.gmail.com/[Gmail]/Sent Mail In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --ad2e00d5df6769e2f82d74ebe9be7f14218fd9d5fac6ef7d0d98960c790d Content-Type: multipart/alternative; boundary=f1394aea255708730cc87e3ccc8fdb92e7d7833b32e9d25624bd6b5e7b8b --f1394aea255708730cc87e3ccc8fdb92e7d7833b32e9d25624bd6b5e7b8b Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8 Thank you for reviewing the patch! On 28/09/26 20:02, Zsolt Parragi wrote: > Hello >=20 > + /* > + * Check it's a domain and check user has permission for ALTER DOMAIN. > + * When re-adding a constraint during ALTER TABLE, skip the permission > + * check since the constraint already existed, and the user altering a > + * column it depends on need not own the domain. > + */ > + if (is_readd) > + Assert(typTup->typtype =3D=3D TYPTYPE_DOMAIN); > + else > + checkDomainOwner(tup); >=20 > That assertion can fire with two concurrent sessions, it should be a > proper error message, similar to what's inside checkDomainOwner. >=20 > See the following isolation test: >=20 > setup > { > CREATE TYPE ct AS (i int); > CREATE DOMAIN d AS ct CONSTRAINT d_check CHECK ((VALUE).i > 0); > CREATE TABLE t2 (x int CONSTRAINT t2_check CHECK ((row(x)::ct).i > 0))= ; > INSERT INTO t2 VALUES (1); > } >=20 > teardown > { > DROP TABLE IF EXISTS t2; > DROP TYPE IF EXISTS d CASCADE; > DROP DOMAIN IF EXISTS d_old CASCADE; > DROP TYPE IF EXISTS ct CASCADE; > } >=20 > session s1 > step a_alter { ALTER TYPE ct ALTER ATTRIBUTE i TYPE bigint; } >=20 > session s2 > step b_begin { BEGIN; SELECT count(*) FROM t2; } > step b_commit { COMMIT; } >=20 > session s3 > step c_swap { ALTER DOMAIN d RENAME TO d_old; CREATE TYPE d AS (z int); } >=20 > permutation b_begin a_alter c_swap b_commit >=20 >=20 Good catch. I've changed to use ereport like checkDomainOwner(). But I don't think that's enough. The underlying issue is that the re-add looks the domain up by the name saved in its definition, so the name can point to a different type by the time the constraint is re-added. In your isolation test example, if c_swap creates a new domain instead (CREATE DOMAIN d AS ct), the type check passes, the ALTER succeeds, and d_check silently ends up on the new domain, while the original (now d_old) loses it. Note that this isn't new with the patch. What 0003 changes is that without the ownership check, it also works when the domain belongs to someone other than the user running the ALTER. We may try to capture the domain oid above AlterDomainAddConstraint, while the old constraint still exists and re-add the constraint to that OID instead of resolving the name again. But I think that it will require more code to write which would make it harder for back patching. Looking for thoughts here. > + if (!con->skip_validation) > + tab->domain_constraints =3D > + lappend_oid(tab->domain_constraints, > + constrAddr.objectId); >=20 > This can be uninitialized, AlterDomainAddConstraint doesn't guarantee > a write. I think this could use both a Assert(con->contype =3D=3D > CONSTR_CHECK); and initalizating constrAddr to InvalidObjectAddress. Fixed. -- Matheus Alcantara EDB: https://www.enterprisedb.com --f1394aea255708730cc87e3ccc8fdb92e7d7833b32e9d25624bd6b5e7b8b-- --ad2e00d5df6769e2f82d74ebe9be7f14218fd9d5fac6ef7d0d98960c790d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v3-0001-Fix-ALTER-TYPE-.-ALTER-ATTRIBUTE-on-types-used-in.patch Content-Type: text/plain; charset=utf-8; name=v3-0001-Fix-ALTER-TYPE-.-ALTER-ATTRIBUTE-on-types-used-in.patch RnJvbSBhMTI5NmFkYWQ2OTIzMDU5Mjc0ZmFkMzVkZTUzMjAwYjViMTM3MmMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaXRpbiBNb3RpYW5pIDxuaXRpbm1vdGlhbmlAZ29vZ2xlLmNv bT4KRGF0ZTogTW9uLCAyOCBTZXAgMjAyNiAxMjo0OTozMyArMDAwMApTdWJqZWN0OiBbUEFUQ0gg djMgMS8zXSBGaXggQUxURVIgVFlQRSAuLi4gQUxURVIgQVRUUklCVVRFIG9uIHR5cGVzIHVzZWQg aW4KIGRvbWFpbiBjb25zdHJhaW50cy4KCkNvbW1pdCBhZjIwZTJkNzIgdXBkYXRlZCBBTFRFUiBU QUJMRSAvIFRZUEUgdG8gcmVidWlsZCBkb21haW4gY29uc3RyYWludHMKd2hlbiBhbiBhdHRyaWJ1 dGUgb2YgYSBjb21wb3NpdGUgdHlwZSBpcyBhbHRlcmVkLiBIb3dldmVyLCBpdCBhc3N1bWVkIHRo YXQKdGhlIGRvbWFpbidzIGJhc2UgdHlwZSB3YXMgYWx3YXlzIHRoZSBjb21wb3NpdGUgdHlwZSBi ZWluZyBhbHRlcmVkLCBjYWxsaW5nCmdldF90eXBfdHlwcmVsaWQoZ2V0QmFzZVR5cGUoY29uLT5j b250eXBpZCkpLiBJZiB0aGUgZG9tYWluIHdhcyBkZWZpbmVkCm92ZXIgYSBzY2FsYXIgdHlwZSAo c3VjaCBhcyBpbnQgb3IgZmxvYXQ4KSB3aG9zZSBDSEVDSyBleHByZXNzaW9uIHJlZmVyZW5jZWQK dGhlIGNvbXBvc2l0ZSB0eXBlLCBnZXRfdHlwX3R5cHJlbGlkKCkgcmV0dXJuZWQgSW52YWxpZE9p ZCwgdHJpZ2dlcmluZwphbiBpbnRlcm5hbCAiY291bGQgbm90IGlkZW50aWZ5IHJlbGF0aW9uIGFz c29jaWF0ZWQgd2l0aCBjb25zdHJhaW50IiBlcnJvci4KCkZpeCBieSBhdHRhY2hpbmcgdGhlIGRl ZmVycmVkIGRvbWFpbiBjb25zdHJhaW50IHJlYnVpbGQgY29tbWFuZCB0byB0aGUKdGFibGUgYmVp bmcgYWx0ZXJlZCAodGFiLT5yZWxpZCkgcmF0aGVyIHRoYW4gYXR0ZW1wdGluZyB0byBkZXJpdmUg YSByZWxhdGlvbgpPSUQgZnJvbSB0aGUgZG9tYWluJ3MgYmFzZSB0eXBlLiBEb21haW5zIGRvIG5v dCBoYXZlIHBnX2NsYXNzIHJlbGF0aW9ucyBvZgp0aGVpciBvd24sIGFuZCB0aGUgcmVidWlsZCBj b21tYW5kIChBbHRlckRvbWFpblN0bXQpIGlzIHNlbGYtY29udGFpbmVkLgoKUmVwb3J0ZWQtYnk6 IEFsZXhhbmRlciBMYWtoaW4KQnVnOiAjMTk3MjQKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyAgICAgfCAxMCArKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZG9t YWluLm91dCB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2RvbWFpbi5zcWwgICAgICB8IDMzICsrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBj aGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKaW5kZXggMDI3NGQ4OTJmMmUuLmM4YmMxOTNhMmFiIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYwpAQCAtMTYxNDEsMTAgKzE2MTQxLDEyIEBAIEFUUG9zdEFsdGVyVHlwZUNsZWFu dXAoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBMT0NLTU9ERSBsb2NrbW9k ZSkKIAkJCXJlbGlkID0gY29uLT5jb25yZWxpZDsKIAkJZWxzZQogCQl7Ci0JCQkvKiBtdXN0IGJl IGEgZG9tYWluIGNvbnN0cmFpbnQgKi8KLQkJCXJlbGlkID0gZ2V0X3R5cF90eXByZWxpZChnZXRC YXNlVHlwZShjb24tPmNvbnR5cGlkKSk7Ci0JCQlpZiAoIU9pZElzVmFsaWQocmVsaWQpKQotCQkJ CWVsb2coRVJST1IsICJjb3VsZCBub3QgaWRlbnRpZnkgcmVsYXRpb24gYXNzb2NpYXRlZCB3aXRo IGNvbnN0cmFpbnQgJXUiLCBvbGRJZCk7CisJCQkvKgorCQkJICogTXVzdCBiZSBhIGRvbWFpbiBj b25zdHJhaW50LiAgRG9tYWlucyBkb24ndCBoYXZlIHRoZWlyIG93bgorCQkJICogcmVsYXRpb25z LCBzbyBhdHRhY2ggdGhlIHJlYnVpbGQgc3RlcCB0byB0aGUgdGFibGUgYmVpbmcKKwkJCSAqIGFs dGVyZWQuCisJCQkgKi8KKwkJCXJlbGlkID0gdGFiLT5yZWxpZDsKIAkJfQogCQljb25mcmVsaWQg PSBjb24tPmNvbmZyZWxpZDsKIAkJY29uaXNsb2NhbCA9IGNvbi0+Y29uaXNsb2NhbDsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZG9tYWluLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZG9tYWluLm91dAppbmRleCA2MmE0OGE1MjNhMi4uZGU2MGE5MGMwNDUg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZG9tYWluLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RvbWFpbi5vdXQKQEAgLTQzMiw2ICs0MzIsNTYgQEAg c2VsZWN0IGNvbm5hbWUsIG9ial9kZXNjcmlwdGlvbihvaWQsICdwZ19jb25zdHJhaW50JykgZnJv bSBwZ19jb25zdHJhaW50CiAKIGRyb3AgdHlwZSBjb21wdHlwZSBjYXNjYWRlOwogTk9USUNFOiAg ZHJvcCBjYXNjYWRlcyB0byB0eXBlIGRjb21wdHlwZQorLS0gcmVncmVzc2lvbiB0ZXN0cyBmb3Ig YnVnICMxOTcyNAorLS0gdGVzdCBzY2VuYXJpbyBmcm9tIGJ1ZyByZXBvcnQsIHBsdXMgZmFpbHVy ZSB3aGVuIGNoYW5naW5nIGludCB0byB0ZXh0CitjcmVhdGUgdHlwZSBydCBhcyAoaSBpbnQpOwor Y3JlYXRlIGRvbWFpbiBkdCBhcyBpbnQgY2hlY2sgKChyb3codmFsdWUpOjpydCkuaSA+IDApOwor YWx0ZXIgdHlwZSBydCBhbHRlciBhdHRyaWJ1dGUgaSB0eXBlIHRleHQ7ICAtLSBmYWlsCitFUlJP UjogIG9wZXJhdG9yIGRvZXMgbm90IGV4aXN0OiB0ZXh0ID4gaW50ZWdlcgorREVUQUlMOiAgTm8g b3BlcmF0b3Igb2YgdGhhdCBuYW1lIGFjY2VwdHMgdGhlIGdpdmVuIGFyZ3VtZW50IHR5cGVzLgor SElOVDogIFlvdSBtaWdodCBuZWVkIHRvIGFkZCBleHBsaWNpdCB0eXBlIGNhc3RzLgorYWx0ZXIg dHlwZSBydCBhbHRlciBhdHRyaWJ1dGUgaSB0eXBlIGJpZ2ludDsKK3NlbGVjdCAxOjpkdDsKKyBk dCAKKy0tLS0KKyAgMQorKDEgcm93KQorCitzZWxlY3QgKC0xKTo6ZHQ7ICAtLSBmYWlsCitFUlJP UjogIHZhbHVlIGZvciBkb21haW4gZHQgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZHRfY2hl Y2siCitkcm9wIGRvbWFpbiBkdDsKK2Ryb3AgdHlwZSBydCBjYXNjYWRlOworLS0gdGVzdCBzaWxs eSBleGFtcGxlIGZyb20gVG9tIExhbmUncyAyMDE3IGVtYWlsIChkb21haW4gb3ZlciBmbG9hdDgp CitjcmVhdGUgdHlwZSBjb21wdHlwZSBhcyAociBmbG9hdDgsIGkgZmxvYXQ4KTsKK2NyZWF0ZSBk b21haW4gc2lsbHkgYXMgZmxvYXQ4IGNoZWNrICgocm93KHZhbHVlLCAwKTo6Y29tcHR5cGUpLnIg PiAwKTsKK2FsdGVyIHR5cGUgY29tcHR5cGUgYWx0ZXIgYXR0cmlidXRlIHIgdHlwZSBiaWdpbnQ7 CitzZWxlY3QgMS4wOjpzaWxseTsKKyBzaWxseSAKKy0tLS0tLS0KKyAgICAgMQorKDEgcm93KQor CitzZWxlY3QgKC0xLjApOjpzaWxseTsgIC0tIGZhaWwKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFp biBzaWxseSB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJzaWxseV9jaGVjayIKK2Ryb3AgZG9t YWluIHNpbGx5OworZHJvcCB0eXBlIGNvbXB0eXBlIGNhc2NhZGU7CistLSB0ZXN0IGRvbWFpbiBj b25zdHJhaW50IHJlZmVyZW5jaW5nIG11bHRpcGxlIGNvbXBvc2l0ZSB0eXBlcworY3JlYXRlIHR5 cGUgcjEgYXMgKGEgaW50KTsKK2NyZWF0ZSB0eXBlIHIyIGFzIChiIGludCk7CitjcmVhdGUgZG9t YWluIGR0X211bHRpIGFzIGludCBjaGVjayAoKHJvdyh2YWx1ZSk6OnIxKS5hID4gMCBhbmQgKHJv dyh2YWx1ZSk6OnIyKS5iID4gMCk7CithbHRlciB0eXBlIHIxIGFsdGVyIGF0dHJpYnV0ZSBhIHR5 cGUgYmlnaW50OworYWx0ZXIgdHlwZSByMiBhbHRlciBhdHRyaWJ1dGUgYiB0eXBlIGJpZ2ludDsK K3NlbGVjdCAxOjpkdF9tdWx0aTsKKyBkdF9tdWx0aSAKKy0tLS0tLS0tLS0KKyAgICAgICAgMQor KDEgcm93KQorCitzZWxlY3QgKC0xKTo6ZHRfbXVsdGk7ICAtLSBmYWlsCitFUlJPUjogIHZhbHVl IGZvciBkb21haW4gZHRfbXVsdGkgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZHRfbXVsdGlf Y2hlY2siCitkcm9wIGRvbWFpbiBkdF9tdWx0aTsKK2Ryb3AgdHlwZSByMSBjYXNjYWRlOworZHJv cCB0eXBlIHIyIGNhc2NhZGU7CiAtLSBUZXN0IGRvbWFpbnMgb3ZlciBhcnJheXMgb2YgY29tcG9z aXRlCiBjcmVhdGUgdHlwZSBjb21wdHlwZSBhcyAociBmbG9hdDgsIGkgZmxvYXQ4KTsKIGNyZWF0 ZSBkb21haW4gZGNvbXB0eXBlYSBhcyBjb21wdHlwZVtdOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZG9tYWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RvbWFpbi5zcWwK aW5kZXggYjhmNWE2Mzk3MTIuLjEyNDBmOTQyMmJkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9kb21haW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RvbWFpbi5zcWwK QEAgLTIxOSw2ICsyMTksMzkgQEAgc2VsZWN0IGNvbm5hbWUsIG9ial9kZXNjcmlwdGlvbihvaWQs ICdwZ19jb25zdHJhaW50JykgZnJvbSBwZ19jb25zdHJhaW50CiAKIGRyb3AgdHlwZSBjb21wdHlw ZSBjYXNjYWRlOwogCistLSByZWdyZXNzaW9uIHRlc3RzIGZvciBidWcgIzE5NzI0CisKKy0tIHRl c3Qgc2NlbmFyaW8gZnJvbSBidWcgcmVwb3J0LCBwbHVzIGZhaWx1cmUgd2hlbiBjaGFuZ2luZyBp bnQgdG8gdGV4dAorY3JlYXRlIHR5cGUgcnQgYXMgKGkgaW50KTsKK2NyZWF0ZSBkb21haW4gZHQg YXMgaW50IGNoZWNrICgocm93KHZhbHVlKTo6cnQpLmkgPiAwKTsKK2FsdGVyIHR5cGUgcnQgYWx0 ZXIgYXR0cmlidXRlIGkgdHlwZSB0ZXh0OyAgLS0gZmFpbAorYWx0ZXIgdHlwZSBydCBhbHRlciBh dHRyaWJ1dGUgaSB0eXBlIGJpZ2ludDsKK3NlbGVjdCAxOjpkdDsKK3NlbGVjdCAoLTEpOjpkdDsg IC0tIGZhaWwKK2Ryb3AgZG9tYWluIGR0OworZHJvcCB0eXBlIHJ0IGNhc2NhZGU7CisKKy0tIHRl c3Qgc2lsbHkgZXhhbXBsZSBmcm9tIFRvbSBMYW5lJ3MgMjAxNyBlbWFpbCAoZG9tYWluIG92ZXIg ZmxvYXQ4KQorY3JlYXRlIHR5cGUgY29tcHR5cGUgYXMgKHIgZmxvYXQ4LCBpIGZsb2F0OCk7Citj cmVhdGUgZG9tYWluIHNpbGx5IGFzIGZsb2F0OCBjaGVjayAoKHJvdyh2YWx1ZSwgMCk6OmNvbXB0 eXBlKS5yID4gMCk7CithbHRlciB0eXBlIGNvbXB0eXBlIGFsdGVyIGF0dHJpYnV0ZSByIHR5cGUg YmlnaW50Oworc2VsZWN0IDEuMDo6c2lsbHk7CitzZWxlY3QgKC0xLjApOjpzaWxseTsgIC0tIGZh aWwKK2Ryb3AgZG9tYWluIHNpbGx5OworZHJvcCB0eXBlIGNvbXB0eXBlIGNhc2NhZGU7CisKKy0t IHRlc3QgZG9tYWluIGNvbnN0cmFpbnQgcmVmZXJlbmNpbmcgbXVsdGlwbGUgY29tcG9zaXRlIHR5 cGVzCitjcmVhdGUgdHlwZSByMSBhcyAoYSBpbnQpOworY3JlYXRlIHR5cGUgcjIgYXMgKGIgaW50 KTsKK2NyZWF0ZSBkb21haW4gZHRfbXVsdGkgYXMgaW50IGNoZWNrICgocm93KHZhbHVlKTo6cjEp LmEgPiAwIGFuZCAocm93KHZhbHVlKTo6cjIpLmIgPiAwKTsKK2FsdGVyIHR5cGUgcjEgYWx0ZXIg YXR0cmlidXRlIGEgdHlwZSBiaWdpbnQ7CithbHRlciB0eXBlIHIyIGFsdGVyIGF0dHJpYnV0ZSBi IHR5cGUgYmlnaW50Oworc2VsZWN0IDE6OmR0X211bHRpOworc2VsZWN0ICgtMSk6OmR0X211bHRp OyAgLS0gZmFpbAorZHJvcCBkb21haW4gZHRfbXVsdGk7Citkcm9wIHR5cGUgcjEgY2FzY2FkZTsK K2Ryb3AgdHlwZSByMiBjYXNjYWRlOworCiAKIC0tIFRlc3QgZG9tYWlucyBvdmVyIGFycmF5cyBv ZiBjb21wb3NpdGUKIAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --ad2e00d5df6769e2f82d74ebe9be7f14218fd9d5fac6ef7d0d98960c790d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v3-0002-Validate-re-added-domain-constraints-after-ALTER-.patch Content-Type: text/plain; charset=utf-8; name=v3-0002-Validate-re-added-domain-constraints-after-ALTER-.patch RnJvbSAxY2Y1ZDYzY2QyZWJjMWYwZTQ4MjY3OTRlYzMwODM4MmIxZTk5NTJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0ubWU+CkRh dGU6IE1vbiwgMjggU2VwIDIwMjYgMTU6MDU6MzYgLTAzMDAKU3ViamVjdDogW1BBVENIIHYzIDIv M10gVmFsaWRhdGUgcmUtYWRkZWQgZG9tYWluIGNvbnN0cmFpbnRzIGFmdGVyIEFMVEVSIFRBQkxF CiByZXdyaXRlcwoKV2hlbiBBTFRFUiBUQUJMRSAuLi4gQUxURVIgQ09MVU1OIFRZUEUgKG9yIEFM VEVSIFRZUEUgLi4uIEFMVEVSCkFUVFJJQlVURSkgcmVidWlsZHMgYSBkb21haW4gQ0hFQ0sgY29u c3RyYWludCB3aG9zZSBleHByZXNzaW9uIGRlcGVuZHMKb24gdGhlIGFsdGVyZWQgY29sdW1uLCB0 aGUgY29uc3RyYWludCB3YXMgcmUtYWRkZWQgdGhyb3VnaApBbHRlckRvbWFpbkFkZENvbnN0cmFp bnQoKSwgd2hpY2ggdmFsaWRhdGVzIGl0IGltbWVkaWF0ZWx5IGFnYWluc3QgYWxsCmNvbHVtbnMg b2YgdGhlIGRvbWFpbi4gVGhhdCBoYXBwZW5zIGR1cmluZyBQaGFzZSAyLCBiZWZvcmUgUGhhc2Ug MyBoYXMKcmV3cml0dGVuIHRoZSBhZmZlY3RlZCB0YWJsZXMsIHNvIGFueSB0YWJsZSB0aGF0IGlz IHBlbmRpbmcgYSByZXdyaXRlCmFuZCBoYXMgYSBjb2x1bW4gb2YgdGhlIGRvbWFpbiB3YXMgc2Nh bm5lZCB1c2luZyBpdHMgbmV3IHR1cGxlCmRlc2NyaXB0b3Igb3ZlciBpdHMgb2xkIGhlYXAuIFRo aXMgY291bGQgcHJvZHVjZSBnYXJiYWdlIHZhbHVlcywKc3B1cmlvdXMgImNvbnRhaW5zIHZhbHVl cyB0aGF0IHZpb2xhdGUgdGhlIG5ldyBjb25zdHJhaW50IiBlcnJvcnMsIG9yCndvcnNlLCBlLmcu ICJ0eXBlIHdpdGggT0lEIDQyOTQ5NjcyOTUgZG9lcyBub3QgZXhpc3QiIHdoZW4gdGhlIGRvbWFp biBpcwpvdmVyIGEgY29tcG9zaXRlIHR5cGUuCgpGaXggYnkgc2tpcHBpbmcgdmFsaWRhdGlvbiBp biBBbHRlckRvbWFpbkFkZENvbnN0cmFpbnQoKSB3aGVuIHJlLWFkZGluZwphIGNvbnN0cmFpbnQs IGFuZCBpbnN0ZWFkIGhhdmluZyBBVEV4ZWNDbWQoKSByZW1lbWJlciB0aGUgcmVidWlsdApjb25z dHJhaW50IHNvIHRoYXQgQVRSZXdyaXRlVGFibGVzKCkgdmFsaWRhdGVzIGl0IG9uY2UgYWxsIHRh YmxlcyBoYXZlCmJlZW4gcmV3cml0dGVuLiBDb25zdHJhaW50cyB0aGF0IHdlcmUgTk9UIFZBTElE IGFyZSBub3QgdmFsaWRhdGVkLCBhcwpiZWZvcmUuCgpUaGlzIHByb2JsZW0gZGF0ZXMgYmFjayB0 byBhZjIwZTJkNzIsIHdoaWNoIGFkZGVkIHJlYnVpbGRpbmcgb2YgZG9tYWluCmNvbnN0cmFpbnRz LCBidXQgd2FzIHByZXZpb3VzbHkgb25seSByZWFjaGFibGUgd2l0aCBkb21haW5zIG92ZXIKY29t cG9zaXRlIHR5cGVzLCBzaW5jZSBvdGhlciBkb21haW5zIGhpdCB0aGUgImNvdWxkIG5vdCBpZGVu dGlmeQpyZWxhdGlvbiBhc3NvY2lhdGVkIHdpdGggY29uc3RyYWludCIgZXJyb3IgaW5zdGVhZC4K LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgfCA1OSArKysrKysrKysr KysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYyAgICAgIHwgMTEgKystLQog c3JjL2luY2x1ZGUvY29tbWFuZHMvdHlwZWNtZHMuaCAgICAgIHwgIDEgKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9kb21haW4ub3V0IHwgOTkgKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZG9tYWluLnNxbCAgICAgIHwgNjMgKysrKysrKysrKysr KysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDIyNCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggYzhiYzE5M2EyYWIuLmQ5M2MyZTBkNDUy IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTk4LDYgKzE5OCw4IEBAIHR5cGVkZWYg c3RydWN0IEFsdGVyZWRUYWJsZUluZm8KIAlib29sCQljaGdQZXJzaXN0ZW5jZTsgLyogVCBpZiBT RVQgTE9HR0VEL1VOTE9HR0VEIGlzIHVzZWQgKi8KIAljaGFyCQluZXdyZWxwZXJzaXN0ZW5jZTsJ LyogaWYgYWJvdmUgaXMgdHJ1ZSAqLwogCUV4cHIJICAgKnBhcnRpdGlvbl9jb25zdHJhaW50Owkv KiBmb3IgYXR0YWNoIHBhcnRpdGlvbiB2YWxpZGF0aW9uICovCisJLyogT0lEcyBvZiByZS1hZGRl ZCBkb21haW4gQ0hFQ0sgY29uc3RyYWludHMgdG8gdmFsaWRhdGUgaW4gUGhhc2UgMyAqLworCUxp c3QJICAgKmRvbWFpbl9jb25zdHJhaW50czsKIAkvKiB0cnVlLCBpZiB2YWxpZGF0aW5nIGRlZmF1 bHQgZHVlIHRvIHNvbWUgb3RoZXIgYXR0YWNoL2RldGFjaCAqLwogCWJvb2wJCXZhbGlkYXRlX2Rl ZmF1bHQ7CiAJLyogT2JqZWN0cyB0byByZWJ1aWxkIGFmdGVyIGNvbXBsZXRpbmcgQUxURVIgVFlQ RSBvcGVyYXRpb25zICovCkBAIC01NTM1LDExICs1NTM3LDI4IEBAIEFURXhlY0NtZChMaXN0ICoq d3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsCiAJCQlicmVhazsKIAkJY2FzZSBBVF9SZUFk ZERvbWFpbkNvbnN0cmFpbnQ6CS8qIFJlLWFkZCBwcmUtZXhpc3RpbmcgZG9tYWluIGNoZWNrCiAJ CQkJCQkJCQkJICogY29uc3RyYWludCAqLwotCQkJYWRkcmVzcyA9Ci0JCQkJQWx0ZXJEb21haW5B ZGRDb25zdHJhaW50KCgoQWx0ZXJEb21haW5TdG10ICopIGNtZC0+ZGVmKS0+dHlwZU5hbWUsCi0J CQkJCQkJCQkJICgoQWx0ZXJEb21haW5TdG10ICopIGNtZC0+ZGVmKS0+ZGVmLAotCQkJCQkJCQkJ CSBOVUxMLCB0cnVlKTsKLQkJCWJyZWFrOworCQkJeworCQkJCUFsdGVyRG9tYWluU3RtdCAqc3Rt dCA9IChBbHRlckRvbWFpblN0bXQgKikgY21kLT5kZWY7CisJCQkJQ29uc3RyYWludCAqY29uID0g Y2FzdE5vZGUoQ29uc3RyYWludCwgc3RtdC0+ZGVmKTsKKwkJCQlPYmplY3RBZGRyZXNzIGNvbnN0 ckFkZHIgPSBJbnZhbGlkT2JqZWN0QWRkcmVzczsKKworCQkJCS8qIG9ubHkgQ0hFQ0sgY29uc3Ry YWludHMgY2FuIGRlcGVuZCBvbiBhIGNvbHVtbiAqLworCQkJCUFzc2VydChjb24tPmNvbnR5cGUg PT0gQ09OU1RSX0NIRUNLKTsKKworCQkJCWFkZHJlc3MgPSBBbHRlckRvbWFpbkFkZENvbnN0cmFp bnQoc3RtdC0+dHlwZU5hbWUsIHN0bXQtPmRlZiwKKwkJCQkJCQkJCQkJCSAgICZjb25zdHJBZGRy LCB0cnVlKTsKKworCQkJCS8qCisJCQkJICogQWx0ZXJEb21haW5BZGRDb25zdHJhaW50IGRvZXNu J3QgdmFsaWRhdGUgcmUtYWRkZWQKKwkJCQkgKiBjb25zdHJhaW50cywgc2luY2UgdGFibGVzIHVz aW5nIHRoZSBkb21haW4gbWF5IG5vdCBoYXZlCisJCQkJICogYmVlbiByZXdyaXR0ZW4geWV0LiBU ZWxsIFBoYXNlIDMgdG8gZG8gaXQuCisJCQkJICovCisJCQkJaWYgKCFjb24tPnNraXBfdmFsaWRh dGlvbikKKwkJCQkJdGFiLT5kb21haW5fY29uc3RyYWludHMgPQorCQkJCQkJbGFwcGVuZF9vaWQo dGFiLT5kb21haW5fY29uc3RyYWludHMsCisJCQkJCQkJCQljb25zdHJBZGRyLm9iamVjdElkKTsK KwkJCQlicmVhazsKKwkJCX0KIAkJY2FzZSBBVF9SZUFkZENvbW1lbnQ6CS8qIFJlLWFkZCBleGlz dGluZyBjb21tZW50ICovCiAJCQlhZGRyZXNzID0gQ29tbWVudE9iamVjdCgoQ29tbWVudFN0bXQg KikgY21kLT5kZWYpOwogCQkJYnJlYWs7CkBAIC02MTYwLDYgKzYxNzksMzYgQEAgQVRSZXdyaXRl VGFibGVzKEFsdGVyVGFibGVTdG10ICpwYXJzZXRyZWUsIExpc3QgKip3cXVldWUsIExPQ0tNT0RF IGxvY2ttb2RlLAogCQkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwogCX0KIAorCS8qCisJICog VmFsaWRhdGUgcmUtYWRkZWQgZG9tYWluIENIRUNLIGNvbnN0cmFpbnRzLiAgVGhpcyBtdXN0IHdh aXQgdW50aWwgYWxsCisJICogdGFibGVzIGhhdmUgYmVlbiByZXdyaXR0ZW4sIHNpbmNlIGFueSBv ZiB0aGVtIG1pZ2h0IGNvbnRhaW4gY29sdW1ucyBvZgorCSAqIHRoZSBkb21haW4uIERvbid0IHNr aXAgcmVsYXRpb25zIHdpdGhvdXQgc3RvcmFnZSBzaW5jZSB0aGUgd29yayBxdWV1ZQorCSAqIGVu dHJ5IG1pZ2h0IGJlIGZvciBhIHN0YW5kYWxvbmUgY29tcG9zaXRlIHR5cGUuCisJICovCisJZm9y ZWFjaChsdGFiLCAqd3F1ZXVlKQorCXsKKwkJQWx0ZXJlZFRhYmxlSW5mbyAqdGFiID0gKEFsdGVy ZWRUYWJsZUluZm8gKikgbGZpcnN0KGx0YWIpOworCisJCWZvcmVhY2hfb2lkKGNvbm9pZCwgdGFi LT5kb21haW5fY29uc3RyYWludHMpCisJCXsKKwkJCUhlYXBUdXBsZQl0dXA7CisJCQlGb3JtX3Bn X2NvbnN0cmFpbnQgY29uOworCQkJRGF0dW0JCWNvbmJpbjsKKworCQkJdHVwID0gU2VhcmNoU3lz Q2FjaGUxKENPTlNUUk9JRCwgT2JqZWN0SWRHZXREYXR1bShjb25vaWQpKTsKKwkJCWlmICghSGVh cFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciBjb25zdHJhaW50ICV1IiwgY29ub2lkKTsKKwkJCWNvbiA9IChGb3JtX3BnX2NvbnN0cmFp bnQpIEdFVFNUUlVDVCh0dXApOworCisJCQljb25iaW4gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxs KENPTlNUUk9JRCwgdHVwLAorCQkJCQkJCQkJCQlBbnVtX3BnX2NvbnN0cmFpbnRfY29uYmluKTsK KwkJCXZhbGlkYXRlRG9tYWluQ2hlY2tDb25zdHJhaW50KGNvbi0+Y29udHlwaWQsCisJCQkJCQkJ CQkJICBUZXh0RGF0dW1HZXRDU3RyaW5nKGNvbmJpbikpOworCisJCQlSZWxlYXNlU3lzQ2FjaGUo dHVwKTsKKwkJfQorCX0KKwogCS8qIEZpbmFsbHksIHJ1biBhbnkgYWZ0ZXJTdG10cyB0aGF0IHdl cmUgcXVldWVkIHVwICovCiAJZm9yZWFjaChsdGFiLCAqd3F1ZXVlKQogCXsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 eXBlY21kcy5jCmluZGV4IDk5YTBhZTIyMjhlLi5kMDM0OTA3OWExZSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 eXBlY21kcy5jCkBAIC0xMjgsNyArMTI4LDYgQEAgc3RhdGljIE9pZAlmaW5kVHlwZVN1YnNjcmlw dGluZ0Z1bmN0aW9uKExpc3QgKnByb2NuYW1lLCBPaWQgdHlwZU9pZCk7CiBzdGF0aWMgT2lkCWZp bmRSYW5nZVN1Yk9wY2xhc3MoTGlzdCAqb3BjbmFtZSwgT2lkIHN1YnR5cGUpOwogc3RhdGljIE9p ZAlmaW5kUmFuZ2VDYW5vbmljYWxGdW5jdGlvbihMaXN0ICpwcm9jbmFtZSwgT2lkIHR5cGVPaWQp Owogc3RhdGljIE9pZAlmaW5kUmFuZ2VTdWJ0eXBlRGlmZkZ1bmN0aW9uKExpc3QgKnByb2NuYW1l LCBPaWQgc3VidHlwZSk7Ci1zdGF0aWMgdm9pZCB2YWxpZGF0ZURvbWFpbkNoZWNrQ29uc3RyYWlu dChPaWQgZG9tYWlub2lkLCBjb25zdCBjaGFyICpjY2Jpbik7CiBzdGF0aWMgdm9pZCB2YWxpZGF0 ZURvbWFpbk5vdE51bGxDb25zdHJhaW50KE9pZCBkb21haW5vaWQpOwogc3RhdGljIExpc3QgKmdl dF9yZWxzX3dpdGhfZG9tYWluKE9pZCBkb21haW5PaWQsIExPQ0tNT0RFIGxvY2ttb2RlKTsKIHN0 YXRpYyB2b2lkIGNoZWNrRW51bU93bmVyKEhlYXBUdXBsZSB0dXApOwpAQCAtMzAyOSwxMyArMzAy OCwxNyBAQCBBbHRlckRvbWFpbkFkZENvbnN0cmFpbnQoTGlzdCAqbmFtZXMsIE5vZGUgKm5ld0Nv bnN0cmFpbnQsCiAJCQkJCQkJCQkJIGNvbnN0ciwgTmFtZVN0cih0eXBUdXAtPnR5cG5hbWUpLCBj b25zdHJBZGRyLAogCQkJCQkJCQkJCSBpc19yZWFkZCk7CiAKLQogCQkvKgogCQkgKiBJZiByZXF1 ZXN0ZWQgdG8gdmFsaWRhdGUgdGhlIGNvbnN0cmFpbnQsIHRlc3QgYWxsIHZhbHVlcyBzdG9yZWQg aW4KIAkJICogdGhlIGF0dHJpYnV0ZXMgYmFzZWQgb24gdGhlIGRvbWFpbiB0aGUgY29uc3RyYWlu dCBpcyBiZWluZyBhZGRlZAogCQkgKiB0by4KKwkJICoKKwkJICogV2hlbiByZS1hZGRpbmcgYSBj b25zdHJhaW50IGR1cmluZyBBTFRFUiBUQUJMRSwgdGhlIHRhYmxlcyB1c2luZworCQkgKiB0aGUg ZG9tYWluIG1pZ2h0IG5vdCBoYXZlIGJlZW4gcmV3cml0dGVuIHRvIG1hdGNoIHRoZWlyIG5ldwor CQkgKiBjYXRhbG9nIGRlZmluaXRpb25zIHlldCwgc28gdGhlIGNhbGxlciBtdXN0IGRvIHRoZSB2 YWxpZGF0aW9uIGFmdGVyCisJCSAqIGl0cyByZXdyaXRlIHBoYXNlIGluc3RlYWQuCiAJCSAqLwot CQlpZiAoIWNvbnN0ci0+c2tpcF92YWxpZGF0aW9uKQorCQlpZiAoIWNvbnN0ci0+c2tpcF92YWxp ZGF0aW9uICYmICFpc19yZWFkZCkKIAkJCXZhbGlkYXRlRG9tYWluQ2hlY2tDb25zdHJhaW50KGRv bWFpbm9pZCwgY2NiaW4pOwogCiAJCS8qCkBAIC0zMjQ5LDcgKzMyNTIsNyBAQCB2YWxpZGF0ZURv bWFpbk5vdE51bGxDb25zdHJhaW50KE9pZCBkb21haW5vaWQpCiAgKiBWZXJpZnkgdGhhdCBhbGwg Y29sdW1ucyBjdXJyZW50bHkgdXNpbmcgdGhlIGRvbWFpbiBzYXRpc2Z5IHRoZSBnaXZlbiBjaGVj awogICogY29uc3RyYWludCBleHByZXNzaW9uLgogICovCi1zdGF0aWMgdm9pZAordm9pZAogdmFs aWRhdGVEb21haW5DaGVja0NvbnN0cmFpbnQoT2lkIGRvbWFpbm9pZCwgY29uc3QgY2hhciAqY2Ni aW4pCiB7CiAJRXhwcgkgICAqZXhwciA9IChFeHByICopIHN0cmluZ1RvTm9kZShjY2Jpbik7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90eXBlY21kcy5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvdHlwZWNtZHMuaAppbmRleCAyMTEyYjRhZGRkMi4uYTA2NzY1MWY2ZjkgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3R5cGVjbWRzLmgKKysrIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvdHlwZWNtZHMuaApAQCAtMzgsNiArMzgsNyBAQCBleHRlcm4gT2JqZWN0QWRkcmVz cyBBbHRlckRvbWFpbkFkZENvbnN0cmFpbnQoTGlzdCAqbmFtZXMsIE5vZGUgKm5ld0NvbnN0cmFp bnQsCiAJCQkJCQkJCQkJCSAgT2JqZWN0QWRkcmVzcyAqY29uc3RyQWRkciwKIAkJCQkJCQkJCQkJ ICBib29sIGlzX3JlYWRkKTsKIGV4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyRG9tYWluVmFsaWRh dGVDb25zdHJhaW50KExpc3QgKm5hbWVzLCBjb25zdCBjaGFyICpjb25zdHJOYW1lKTsKK2V4dGVy biB2b2lkIHZhbGlkYXRlRG9tYWluQ2hlY2tDb25zdHJhaW50KE9pZCBkb21haW5vaWQsIGNvbnN0 IGNoYXIgKmNjYmluKTsKIGV4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyRG9tYWluRHJvcENvbnN0 cmFpbnQoTGlzdCAqbmFtZXMsIGNvbnN0IGNoYXIgKmNvbnN0ck5hbWUsCiAJCQkJCQkJCQkJCSAg IERyb3BCZWhhdmlvciBiZWhhdmlvciwgYm9vbCBtaXNzaW5nX29rKTsKIApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kb21haW4ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9kb21haW4ub3V0CmluZGV4IGRlNjBhOTBjMDQ1Li4xNGYyYzkyODcwMCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kb21haW4ub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZG9tYWluLm91dApAQCAtNDgyLDYgKzQ4MiwxMDUgQEAgRVJST1I6 ICB2YWx1ZSBmb3IgZG9tYWluIGR0X211bHRpIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImR0 X211bHRpX2NoZWNrIgogZHJvcCBkb21haW4gZHRfbXVsdGk7CiBkcm9wIHR5cGUgcjEgY2FzY2Fk ZTsKIGRyb3AgdHlwZSByMiBjYXNjYWRlOworLS0gQSBkb21haW4gY29uc3RyYWludCByZWJ1aWx0 IGJ5IEFMVEVSIENPTFVNTiBUWVBFIG11c3Qgbm90IGJlIHZhbGlkYXRlZAorLS0gdW50aWwgdGFi bGVzIHVzaW5nIHRoZSBkb21haW4gaGF2ZSBiZWVuIHJld3JpdHRlbi4gIChUaGVzZSB0ZXN0cyBh dm9pZAorLS0gUk9XKHZhbHVlKTo6ZG9tcndfdCwgc2luY2UgdGhlIHJlYnVpbHQgZXhwcmVzc2lv biB3b3VsZCB0aGVuIGNvbnRhaW4gYQorLS0gTlVMTCBjb2VyY2VkIHRvIHRoZSBkb21haW4gaXRz ZWxmLikKK2NyZWF0ZSBmdW5jdGlvbiBkb21yd19zaG93KGludCkgcmV0dXJucyBib29sIGxhbmd1 YWdlIHBscGdzcWwgYXMKKyAgJCQgYmVnaW4gcmFpc2Ugbm90aWNlICdkb21haW4gY2hlY2sgc2Vl cyB2YWx1ZSAlJywgJDE7IHJldHVybiB0cnVlOyBlbmQgJCQ7CitjcmVhdGUgdGFibGUgZG9tcndf dCAoYyBpbnQpOworY3JlYXRlIGRvbWFpbiBkb21yd19kdCBhcyBpbnQKKyAgY2hlY2sgKGRvbXJ3 X3Nob3codmFsdWUpIGFuZCAobnVsbDo6ZG9tcndfdCkuYyBpcyBudWxsKTsKK2FsdGVyIHRhYmxl IGRvbXJ3X3QgYWRkIGNvbHVtbiBkIGRvbXJ3X2R0OworaW5zZXJ0IGludG8gZG9tcndfdCB2YWx1 ZXMgKDEsIDUpLCAoMiwgNyk7CitOT1RJQ0U6ICBkb21haW4gY2hlY2sgc2VlcyB2YWx1ZSA1CitO T1RJQ0U6ICBkb21haW4gY2hlY2sgc2VlcyB2YWx1ZSA3CithbHRlciB0YWJsZSBkb21yd190IGFs dGVyIGNvbHVtbiBjIHR5cGUgYmlnaW50OyAgLS0gc2hvdWxkIHNlZSA1IGFuZCA3CitOT1RJQ0U6 ICBkb21haW4gY2hlY2sgc2VlcyB2YWx1ZSA1CitOT1RJQ0U6ICBkb21haW4gY2hlY2sgc2VlcyB2 YWx1ZSA3CitzZWxlY3QgKiBmcm9tIGRvbXJ3X3Q7CisgYyB8IGQgCistLS0rLS0tCisgMSB8IDUK KyAyIHwgNworKDIgcm93cykKKworc2VsZWN0IGNvbnZhbGlkYXRlZCBmcm9tIHBnX2NvbnN0cmFp bnQgd2hlcmUgY29udHlwaWQgPSAnZG9tcndfZHQnOjpyZWd0eXBlOworIGNvbnZhbGlkYXRlZCAK Ky0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitkcm9wIGRvbWFpbiBkb21yd19kdCBjYXNj YWRlOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjb2x1bW4gZCBvZiB0YWJsZSBkb21yd190 Citkcm9wIHRhYmxlIGRvbXJ3X3Q7CistLSBzYW1lLCBkb21haW4gb3ZlciBjb21wb3NpdGUKK2Ny ZWF0ZSB0eXBlIGRvbXJ3X2N0IGFzIChqIGludCk7CitjcmVhdGUgdGFibGUgZG9tcndfdCAoYyBp bnQpOworY3JlYXRlIGRvbWFpbiBkb21yd19kdCBhcyBkb21yd19jdAorICBjaGVjayAoZG9tcndf c2hvdygodmFsdWUpLmopIGFuZCAobnVsbDo6ZG9tcndfdCkuYyBpcyBudWxsKTsKK2FsdGVyIHRh YmxlIGRvbXJ3X3QgYWRkIGNvbHVtbiBkIGRvbXJ3X2R0OworaW5zZXJ0IGludG8gZG9tcndfdCB2 YWx1ZXMgKDEsIHJvdyg1KSksICgyLCByb3coNykpOworTk9USUNFOiAgZG9tYWluIGNoZWNrIHNl ZXMgdmFsdWUgNQorTk9USUNFOiAgZG9tYWluIGNoZWNrIHNlZXMgdmFsdWUgNworYWx0ZXIgdGFi bGUgZG9tcndfdCBhbHRlciBjb2x1bW4gYyB0eXBlIGJpZ2ludDsgIC0tIHNob3VsZCBzZWUgNSBh bmQgNworTk9USUNFOiAgZG9tYWluIGNoZWNrIHNlZXMgdmFsdWUgNQorTk9USUNFOiAgZG9tYWlu IGNoZWNrIHNlZXMgdmFsdWUgNworc2VsZWN0ICogZnJvbSBkb21yd190OworIGMgfCAgZCAgCist LS0rLS0tLS0KKyAxIHwgKDUpCisgMiB8ICg3KQorKDIgcm93cykKKworZHJvcCBkb21haW4gZG9t cndfZHQgY2FzY2FkZTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gY29sdW1uIGQgb2YgdGFi bGUgZG9tcndfdAorZHJvcCB0YWJsZSBkb21yd190OworZHJvcCB0eXBlIGRvbXJ3X2N0OworZHJv cCBmdW5jdGlvbiBkb21yd19zaG93KGludCk7CistLSBkb21haW4gY29sdW1uIGluIGFuIGluaGVy aXRhbmNlIGNoaWxkIHRoYXQgaXMgcmV3cml0dGVuIGJ5IHJlY3Vyc2lvbgorY3JlYXRlIHRhYmxl IGRvbXJ3X3AgKGMgaW50KTsKK2NyZWF0ZSBkb21haW4gZG9tcndfZHQgYXMgaW50IGNoZWNrICgo cm93KHZhbHVlKTo6ZG9tcndfcCkuYyA+IDApOworY3JlYXRlIHRhYmxlIGRvbXJ3X2NoIChkIGRv bXJ3X2R0KSBpbmhlcml0cyAoZG9tcndfcCk7CitpbnNlcnQgaW50byBkb21yd19jaCB2YWx1ZXMg KDEsIDUpLCAoMiwgNyk7CithbHRlciB0YWJsZSBkb21yd19wIGFsdGVyIGNvbHVtbiBjIHR5cGUg YmlnaW50Oworc2VsZWN0ICogZnJvbSBkb21yd19jaDsKKyBjIHwgZCAKKy0tLSstLS0KKyAxIHwg NQorIDIgfCA3CisoMiByb3dzKQorCitkcm9wIGRvbWFpbiBkb21yd19kdCBjYXNjYWRlOworTk9U SUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjb2x1bW4gZCBvZiB0YWJsZSBkb21yd19jaAorZHJvcCB0 YWJsZSBkb21yd19wIGNhc2NhZGU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGRv bXJ3X2NoCistLSBhIHJlYnVpbHQgY29uc3RyYWludCB0aGF0IHJlamVjdHMgc3RvcmVkIHZhbHVl cyBtdXN0IHN0aWxsIGJlIGVuZm9yY2VkLAorLS0gZXZlbiB3aGVuIHRoZSBhbHRlcmVkIG9iamVj dCBpcyBhIHN0YW5kYWxvbmUgY29tcG9zaXRlIHR5cGUKK2NyZWF0ZSB0eXBlIGRvbXJ3X3J0IGFz IChpIGludCk7CitjcmVhdGUgZG9tYWluIGRvbXJ3X2R0IGFzIGludCBjaGVjayAoKHJvdyh2YWx1 ZSk6OmRvbXJ3X3J0KS5pIGlzIG5vdCBudWxsKTsKK2NyZWF0ZSB0YWJsZSBkb21yd191ICh4IGRv bXJ3X2R0KTsKK2luc2VydCBpbnRvIGRvbXJ3X3UgdmFsdWVzICg0MDAwMCk7CithbHRlciB0eXBl IGRvbXJ3X3J0IGFsdGVyIGF0dHJpYnV0ZSBpIHR5cGUgc21hbGxpbnQ7ICAtLSBmYWlsCitFUlJP UjogIHNtYWxsaW50IG91dCBvZiByYW5nZQorZHJvcCB0YWJsZSBkb21yd191OworLS0gYSBOT1Qg VkFMSUQgY29uc3RyYWludCBpcyBub3QgdmFsaWRhdGVkIGFuZCBzdGF5cyBOT1QgVkFMSUQKK2Fs dGVyIGRvbWFpbiBkb21yd19kdCBkcm9wIGNvbnN0cmFpbnQgZG9tcndfZHRfY2hlY2s7CitjcmVh dGUgdGFibGUgZG9tcndfdSAoeCBkb21yd19kdCk7CitpbnNlcnQgaW50byBkb21yd191IHZhbHVl cyAoNDAwMDApOworYWx0ZXIgZG9tYWluIGRvbXJ3X2R0IGFkZCBjb25zdHJhaW50IGRvbXJ3X252 CisgIGNoZWNrICgocm93KHZhbHVlKTo6ZG9tcndfcnQpLmkgaXMgbm90IG51bGwpIG5vdCB2YWxp ZDsKK2FsdGVyIHR5cGUgZG9tcndfcnQgYWx0ZXIgYXR0cmlidXRlIGkgdHlwZSBzbWFsbGludDsK K3NlbGVjdCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpLCBjb252YWxpZGF0ZWQgZnJvbSBwZ19j b25zdHJhaW50CisgIHdoZXJlIGNvbnR5cGlkID0gJ2RvbXJ3X2R0Jzo6cmVndHlwZTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAg ICAgICAgICB8IGNvbnZhbGlkYXRlZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBD SEVDSyAoKChST1coKFZBTFVFKTo6c21hbGxpbnQpOjpkb21yd19ydCkuaSBJUyBOT1QgTlVMTCkp IE5PVCBWQUxJRCB8IGYKKygxIHJvdykKKworZHJvcCB0YWJsZSBkb21yd191OworZHJvcCBkb21h aW4gZG9tcndfZHQ7Citkcm9wIHR5cGUgZG9tcndfcnQ7CiAtLSBUZXN0IGRvbWFpbnMgb3ZlciBh cnJheXMgb2YgY29tcG9zaXRlCiBjcmVhdGUgdHlwZSBjb21wdHlwZSBhcyAociBmbG9hdDgsIGkg ZmxvYXQ4KTsKIGNyZWF0ZSBkb21haW4gZGNvbXB0eXBlYSBhcyBjb21wdHlwZVtdOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZG9tYWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2RvbWFpbi5zcWwKaW5kZXggMTI0MGY5NDIyYmQuLmI2ZTQ1MmQ2ZWJiIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kb21haW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2RvbWFpbi5zcWwKQEAgLTI1Miw2ICsyNTIsNjkgQEAgZHJvcCBkb21haW4gZHRfbXVsdGk7 CiBkcm9wIHR5cGUgcjEgY2FzY2FkZTsKIGRyb3AgdHlwZSByMiBjYXNjYWRlOwogCistLSBBIGRv bWFpbiBjb25zdHJhaW50IHJlYnVpbHQgYnkgQUxURVIgQ09MVU1OIFRZUEUgbXVzdCBub3QgYmUg dmFsaWRhdGVkCistLSB1bnRpbCB0YWJsZXMgdXNpbmcgdGhlIGRvbWFpbiBoYXZlIGJlZW4gcmV3 cml0dGVuLiAgKFRoZXNlIHRlc3RzIGF2b2lkCistLSBST1codmFsdWUpOjpkb21yd190LCBzaW5j ZSB0aGUgcmVidWlsdCBleHByZXNzaW9uIHdvdWxkIHRoZW4gY29udGFpbiBhCistLSBOVUxMIGNv ZXJjZWQgdG8gdGhlIGRvbWFpbiBpdHNlbGYuKQorY3JlYXRlIGZ1bmN0aW9uIGRvbXJ3X3Nob3co aW50KSByZXR1cm5zIGJvb2wgbGFuZ3VhZ2UgcGxwZ3NxbCBhcworICAkJCBiZWdpbiByYWlzZSBu b3RpY2UgJ2RvbWFpbiBjaGVjayBzZWVzIHZhbHVlICUnLCAkMTsgcmV0dXJuIHRydWU7IGVuZCAk JDsKK2NyZWF0ZSB0YWJsZSBkb21yd190IChjIGludCk7CitjcmVhdGUgZG9tYWluIGRvbXJ3X2R0 IGFzIGludAorICBjaGVjayAoZG9tcndfc2hvdyh2YWx1ZSkgYW5kIChudWxsOjpkb21yd190KS5j IGlzIG51bGwpOworYWx0ZXIgdGFibGUgZG9tcndfdCBhZGQgY29sdW1uIGQgZG9tcndfZHQ7Citp bnNlcnQgaW50byBkb21yd190IHZhbHVlcyAoMSwgNSksICgyLCA3KTsKK2FsdGVyIHRhYmxlIGRv bXJ3X3QgYWx0ZXIgY29sdW1uIGMgdHlwZSBiaWdpbnQ7ICAtLSBzaG91bGQgc2VlIDUgYW5kIDcK K3NlbGVjdCAqIGZyb20gZG9tcndfdDsKK3NlbGVjdCBjb252YWxpZGF0ZWQgZnJvbSBwZ19jb25z dHJhaW50IHdoZXJlIGNvbnR5cGlkID0gJ2RvbXJ3X2R0Jzo6cmVndHlwZTsKK2Ryb3AgZG9tYWlu IGRvbXJ3X2R0IGNhc2NhZGU7Citkcm9wIHRhYmxlIGRvbXJ3X3Q7CisKKy0tIHNhbWUsIGRvbWFp biBvdmVyIGNvbXBvc2l0ZQorY3JlYXRlIHR5cGUgZG9tcndfY3QgYXMgKGogaW50KTsKK2NyZWF0 ZSB0YWJsZSBkb21yd190IChjIGludCk7CitjcmVhdGUgZG9tYWluIGRvbXJ3X2R0IGFzIGRvbXJ3 X2N0CisgIGNoZWNrIChkb21yd19zaG93KCh2YWx1ZSkuaikgYW5kIChudWxsOjpkb21yd190KS5j IGlzIG51bGwpOworYWx0ZXIgdGFibGUgZG9tcndfdCBhZGQgY29sdW1uIGQgZG9tcndfZHQ7Citp bnNlcnQgaW50byBkb21yd190IHZhbHVlcyAoMSwgcm93KDUpKSwgKDIsIHJvdyg3KSk7CithbHRl ciB0YWJsZSBkb21yd190IGFsdGVyIGNvbHVtbiBjIHR5cGUgYmlnaW50OyAgLS0gc2hvdWxkIHNl ZSA1IGFuZCA3CitzZWxlY3QgKiBmcm9tIGRvbXJ3X3Q7Citkcm9wIGRvbWFpbiBkb21yd19kdCBj YXNjYWRlOworZHJvcCB0YWJsZSBkb21yd190OworZHJvcCB0eXBlIGRvbXJ3X2N0OworZHJvcCBm dW5jdGlvbiBkb21yd19zaG93KGludCk7CisKKy0tIGRvbWFpbiBjb2x1bW4gaW4gYW4gaW5oZXJp dGFuY2UgY2hpbGQgdGhhdCBpcyByZXdyaXR0ZW4gYnkgcmVjdXJzaW9uCitjcmVhdGUgdGFibGUg ZG9tcndfcCAoYyBpbnQpOworY3JlYXRlIGRvbWFpbiBkb21yd19kdCBhcyBpbnQgY2hlY2sgKChy b3codmFsdWUpOjpkb21yd19wKS5jID4gMCk7CitjcmVhdGUgdGFibGUgZG9tcndfY2ggKGQgZG9t cndfZHQpIGluaGVyaXRzIChkb21yd19wKTsKK2luc2VydCBpbnRvIGRvbXJ3X2NoIHZhbHVlcyAo MSwgNSksICgyLCA3KTsKK2FsdGVyIHRhYmxlIGRvbXJ3X3AgYWx0ZXIgY29sdW1uIGMgdHlwZSBi aWdpbnQ7CitzZWxlY3QgKiBmcm9tIGRvbXJ3X2NoOworZHJvcCBkb21haW4gZG9tcndfZHQgY2Fz Y2FkZTsKK2Ryb3AgdGFibGUgZG9tcndfcCBjYXNjYWRlOworCistLSBhIHJlYnVpbHQgY29uc3Ry YWludCB0aGF0IHJlamVjdHMgc3RvcmVkIHZhbHVlcyBtdXN0IHN0aWxsIGJlIGVuZm9yY2VkLAor LS0gZXZlbiB3aGVuIHRoZSBhbHRlcmVkIG9iamVjdCBpcyBhIHN0YW5kYWxvbmUgY29tcG9zaXRl IHR5cGUKK2NyZWF0ZSB0eXBlIGRvbXJ3X3J0IGFzIChpIGludCk7CitjcmVhdGUgZG9tYWluIGRv bXJ3X2R0IGFzIGludCBjaGVjayAoKHJvdyh2YWx1ZSk6OmRvbXJ3X3J0KS5pIGlzIG5vdCBudWxs KTsKK2NyZWF0ZSB0YWJsZSBkb21yd191ICh4IGRvbXJ3X2R0KTsKK2luc2VydCBpbnRvIGRvbXJ3 X3UgdmFsdWVzICg0MDAwMCk7CithbHRlciB0eXBlIGRvbXJ3X3J0IGFsdGVyIGF0dHJpYnV0ZSBp IHR5cGUgc21hbGxpbnQ7ICAtLSBmYWlsCitkcm9wIHRhYmxlIGRvbXJ3X3U7CisKKy0tIGEgTk9U IFZBTElEIGNvbnN0cmFpbnQgaXMgbm90IHZhbGlkYXRlZCBhbmQgc3RheXMgTk9UIFZBTElECith bHRlciBkb21haW4gZG9tcndfZHQgZHJvcCBjb25zdHJhaW50IGRvbXJ3X2R0X2NoZWNrOworY3Jl YXRlIHRhYmxlIGRvbXJ3X3UgKHggZG9tcndfZHQpOworaW5zZXJ0IGludG8gZG9tcndfdSB2YWx1 ZXMgKDQwMDAwKTsKK2FsdGVyIGRvbWFpbiBkb21yd19kdCBhZGQgY29uc3RyYWludCBkb21yd19u dgorICBjaGVjayAoKHJvdyh2YWx1ZSk6OmRvbXJ3X3J0KS5pIGlzIG5vdCBudWxsKSBub3QgdmFs aWQ7CithbHRlciB0eXBlIGRvbXJ3X3J0IGFsdGVyIGF0dHJpYnV0ZSBpIHR5cGUgc21hbGxpbnQ7 CitzZWxlY3QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSwgY29udmFsaWRhdGVkIGZyb20gcGdf Y29uc3RyYWludAorICB3aGVyZSBjb250eXBpZCA9ICdkb21yd19kdCc6OnJlZ3R5cGU7Citkcm9w IHRhYmxlIGRvbXJ3X3U7Citkcm9wIGRvbWFpbiBkb21yd19kdDsKK2Ryb3AgdHlwZSBkb21yd19y dDsKKwogCiAtLSBUZXN0IGRvbWFpbnMgb3ZlciBhcnJheXMgb2YgY29tcG9zaXRlCiAKLS0gCjIu NTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --ad2e00d5df6769e2f82d74ebe9be7f14218fd9d5fac6ef7d0d98960c790d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v3-0003-Don-t-require-ownership-when-rebuilding-constrain.patch Content-Type: text/plain; charset=utf-8; name=v3-0003-Don-t-require-ownership-when-rebuilding-constrain.patch RnJvbSAwNmEzNTlhOTg5YjMxMjRhM2FjY2E1MGQyMmY4NzhmZmVlNzJlNzc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0ubWU+CkRh dGU6IE1vbiwgMjggU2VwIDIwMjYgMTU6MTg6NTYgLTAzMDAKU3ViamVjdDogW1BBVENIIHYzIDMv M10gRG9uJ3QgcmVxdWlyZSBvd25lcnNoaXAgd2hlbiByZWJ1aWxkaW5nIGNvbnN0cmFpbnRzIGlu CiBBTFRFUiBUQUJMRQoKV2hlbiBBTFRFUiBUQUJMRSAuLi4gQUxURVIgQ09MVU1OIFRZUEUgKG9y IEFMVEVSIFRZUEUgLi4uIEFMVEVSCkFUVFJJQlVURSkgcmVidWlsZHMgYSBjb25zdHJhaW50IHRo YXQgZGVwZW5kcyBvbiB0aGUgYWx0ZXJlZCBjb2x1bW4sCml0IGRyb3BzIHRoZSBjb25zdHJhaW50 IGFuZCByZS1jcmVhdGVzIGl0IGZyb20gaXRzIHNhdmVkIGRlZmluaXRpb24uCkZvciBkb21haW4g Q0hFQ0sgY29uc3RyYWludHMgdGhlIHJlLWNyZWF0aW9uIGdvZXMgdGhyb3VnaApBbHRlckRvbWFp bkFkZENvbnN0cmFpbnQoKSwgd2hpY2ggY2FsbHMgY2hlY2tEb21haW5Pd25lcigpLCBhbmQgYW55 CmNvbW1lbnQgb24gYSB0YWJsZSBvciBkb21haW4gY29uc3RyYWludCBpcyByZXN0b3JlZCB3aXRo CkNvbW1lbnRPYmplY3QoKSwgd2hpY2ggcmVxdWlyZXMgb3duZXJzaGlwIG9mIHRoZSBjb25zdHJh aW50J3MgdGFibGUgb3IKZG9tYWluLiAgU28gYSB1c2VyIGFsdGVyaW5nIGEgdHlwZSBvciB0YWJs ZSB0aGV5IG93biB3b3VsZCBmYWlsIHdpdGgKIm11c3QgYmUgb3duZXIgb2YgdHlwZSAuLi4iIG9y ICJtdXN0IGJlIG93bmVyIG9mIHJlbGF0aW9uIC4uLiIgaWYKYW5vdGhlciB1c2VyJ3MgZG9tYWlu IG9yIHRhYmxlIGhhcyBhIGNvbnN0cmFpbnQgdGhhdCBkZXBlbmRzIG9uIGl0LgpTaW5jZSB0eXBl cyBncmFudCBVU0FHRSB0byBQVUJMSUMgYnkgZGVmYXVsdCwgYW55IHVzZXIgY291bGQgY3JlYXRl CnN1Y2ggYSBkZXBlbmRlbmN5IGFuZCBibG9jayB0aGUgb3duZXIgZnJvbSBhbHRlcmluZyB0aGVp ciBvd24gdHlwZS4KClRoZXNlIGNoZWNrcyBkb24ndCBtYWtlIHNlbnNlIGhlcmU6IHRoZSB1c2Vy IGlzbid0IGNob29zaW5nIHRvIGFkZCBhCmNvbnN0cmFpbnQgb3IgY29tbWVudCwganVzdCByZXN0 b3Jpbmcgb25lcyB0aGF0IGFscmVhZHkgZXhpc3RlZCwgYW5kCnRoZSBtYXRjaGluZyBkcm9wIGlz IGFscmVhZHkgZG9uZSB3aXRob3V0IGFueSBwZXJtaXNzaW9uIGNoZWNrcy4KUmVidWlsZGluZyBh IHRhYmxlIGNvbnN0cmFpbnQgd2l0aG91dCBhIGNvbW1lbnQgYWxzbyBkb2Vzbid0IGNoZWNrCm93 bmVyc2hpcC4KCkZpeCBieSBza2lwcGluZyB0aGUgb3duZXJzaGlwIGNoZWNrIGluIEFsdGVyRG9t YWluQWRkQ29uc3RyYWludCgpIHdoZW4KaXNfcmVhZGQgaXMgc2V0LCBhcyB3ZSBhbHJlYWR5IGRv IGZvciB0aGUgVVNBR0UgY2hlY2sgb24gdHlwZXMgdXNlZApieSB0aGUgZXhwcmVzc2lvbiwgYW5k IGJ5IHJlc3RvcmluZyBjb21tZW50cyBkaXJlY3RseSB3aXRoCkNyZWF0ZUNvbW1lbnRzKCkgaW5z dGVhZCBvZiBDb21tZW50T2JqZWN0KCkuCgpUaGUgZG9tYWluIHBhcnQgb2YgdGhpcyBkYXRlcyBi YWNrIHRvIGFmMjBlMmQ3Miwgd2hpY2ggYWRkZWQKcmVidWlsZGluZyBvZiBkb21haW4gY29uc3Ry YWludHMuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgIHwgMjIgKysr KysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYyAgICAgIHwgMjQg KysrKysrKysrKysrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RvbWFpbi5vdXQg fCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9k b21haW4uc3FsICAgICAgfCAzMSArKysrKysrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFu Z2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCmluZGV4IGQ5M2MyZTBkNDUyLi4xYTViYjUzZTFmMyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKQEAgLTU1NjAsNyArNTU2MCwyNyBAQCBBVEV4ZWNDbWQoTGlzdCAqKndxdWV1ZSwg QWx0ZXJlZFRhYmxlSW5mbyAqdGFiLAogCQkJCWJyZWFrOwogCQkJfQogCQljYXNlIEFUX1JlQWRk Q29tbWVudDoJLyogUmUtYWRkIGV4aXN0aW5nIGNvbW1lbnQgKi8KLQkJCWFkZHJlc3MgPSBDb21t ZW50T2JqZWN0KChDb21tZW50U3RtdCAqKSBjbWQtPmRlZik7CisJCQl7CisJCQkJQ29tbWVudFN0 bXQgKnN0bXQgPSAoQ29tbWVudFN0bXQgKikgY21kLT5kZWY7CisJCQkJUmVsYXRpb24JY29tcmVs OworCisJCQkJLyoKKwkJCQkgKiBEb24ndCB1c2UgQ29tbWVudE9iamVjdCgpLCBzaW5jZSB0aGF0 IHJlcXVpcmVzIG93bmVyc2hpcCBvZgorCQkJCSAqIHRoZSBjb25zdHJhaW50J3MgdGFibGUgb3Ig ZG9tYWluLCB3aGljaCB0aGUgdXNlciBhbHRlcmluZyBhCisJCQkJICogY29sdW1uIHRoZSBjb25z dHJhaW50IGRlcGVuZHMgb24gbmVlZCBub3QgaGF2ZS4gV2UncmUganVzdAorCQkJCSAqIHJlc3Rv cmluZyBhIGNvbW1lbnQgdGhhdCBhbHJlYWR5IGV4aXN0ZWQuCisJCQkJICovCisJCQkJQXNzZXJ0 KHN0bXQtPm9ianR5cGUgPT0gT0JKRUNUX1RBQkNPTlNUUkFJTlQgfHwKKwkJCQkJICAgc3RtdC0+ b2JqdHlwZSA9PSBPQkpFQ1RfRE9NQ09OU1RSQUlOVCk7CisJCQkJYWRkcmVzcyA9IGdldF9vYmpl Y3RfYWRkcmVzcyhzdG10LT5vYmp0eXBlLCBzdG10LT5vYmplY3QsCisJCQkJCQkJCQkJCSAmY29t cmVsLAorCQkJCQkJCQkJCQkgU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrLAorCQkJCQkJCQkJCQkg ZmFsc2UpOworCQkJCUNyZWF0ZUNvbW1lbnRzKGFkZHJlc3Mub2JqZWN0SWQsIGFkZHJlc3MuY2xh c3NJZCwKKwkJCQkJCQkgICBhZGRyZXNzLm9iamVjdFN1YklkLCBzdG10LT5jb21tZW50KTsKKwkJ CQlpZiAoY29tcmVsICE9IE5VTEwpCisJCQkJCXJlbGF0aW9uX2Nsb3NlKGNvbXJlbCwgTm9Mb2Nr KTsKKwkJCX0KIAkJCWJyZWFrOwogCQljYXNlIEFUX0FkZEluZGV4Q29uc3RyYWludDogLyogQURE IENPTlNUUkFJTlQgVVNJTkcgSU5ERVggKi8KIAkJCWFkZHJlc3MgPSBBVEV4ZWNBZGRJbmRleENv bnN0cmFpbnQodGFiLCByZWwsIChJbmRleFN0bXQgKikgY21kLT5kZWYsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlw ZWNtZHMuYwppbmRleCBkMDM0OTA3OWExZS4uN2U5ODQ2YmRhMGUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlw ZWNtZHMuYwpAQCAtMzAwNCw4ICszMDA0LDIyIEBAIEFsdGVyRG9tYWluQWRkQ29uc3RyYWludChM aXN0ICpuYW1lcywgTm9kZSAqbmV3Q29uc3RyYWludCwKIAkJZWxvZyhFUlJPUiwgImNhY2hlIGxv b2t1cCBmYWlsZWQgZm9yIHR5cGUgJXUiLCBkb21haW5vaWQpOwogCXR5cFR1cCA9IChGb3JtX3Bn X3R5cGUpIEdFVFNUUlVDVCh0dXApOwogCi0JLyogQ2hlY2sgaXQncyBhIGRvbWFpbiBhbmQgY2hl Y2sgdXNlciBoYXMgcGVybWlzc2lvbiBmb3IgQUxURVIgRE9NQUlOICovCi0JY2hlY2tEb21haW5P d25lcih0dXApOworCS8qCisJICogQ2hlY2sgaXQncyBhIGRvbWFpbiBhbmQgY2hlY2sgdXNlciBo YXMgcGVybWlzc2lvbiBmb3IgQUxURVIgRE9NQUlOLgorCSAqIFdoZW4gcmUtYWRkaW5nIGEgY29u c3RyYWludCBkdXJpbmcgQUxURVIgVEFCTEUsIHNraXAgdGhlIHBlcm1pc3Npb24KKwkgKiBjaGVj ayBzaW5jZSB0aGUgY29uc3RyYWludCBhbHJlYWR5IGV4aXN0ZWQsIGFuZCB0aGUgdXNlciBhbHRl cmluZyBhCisJICogY29sdW1uIGl0IGRlcGVuZHMgb24gbmVlZCBub3Qgb3duIHRoZSBkb21haW4u CisJICovCisJaWYgKGlzX3JlYWRkKQorCXsKKwkJaWYgKHR5cFR1cC0+dHlwdHlwZSAhPSBUWVBU WVBFX0RPTUFJTikKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JP TkdfT0JKRUNUX1RZUEUpLAorCQkJCQkgZXJybXNnKCIlcyBpcyBub3QgYSBkb21haW4iLAorCQkJ CQkJCWZvcm1hdF90eXBlX2JlKHR5cFR1cC0+b2lkKSkpKTsKKwl9CisJZWxzZQorCQljaGVja0Rv bWFpbk93bmVyKHR1cCk7CiAKIAlpZiAoIUlzQShuZXdDb25zdHJhaW50LCBDb25zdHJhaW50KSkK IAkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKQEAgLTMwMzQsOSAr MzA0OCw5IEBAIEFsdGVyRG9tYWluQWRkQ29uc3RyYWludChMaXN0ICpuYW1lcywgTm9kZSAqbmV3 Q29uc3RyYWludCwKIAkJICogdG8uCiAJCSAqCiAJCSAqIFdoZW4gcmUtYWRkaW5nIGEgY29uc3Ry YWludCBkdXJpbmcgQUxURVIgVEFCTEUsIHRoZSB0YWJsZXMgdXNpbmcKLQkJICogdGhlIGRvbWFp biBtaWdodCBub3QgaGF2ZSBiZWVuIHJld3JpdHRlbiB0byBtYXRjaCB0aGVpciBuZXcKLQkJICog Y2F0YWxvZyBkZWZpbml0aW9ucyB5ZXQsIHNvIHRoZSBjYWxsZXIgbXVzdCBkbyB0aGUgdmFsaWRh dGlvbiBhZnRlcgotCQkgKiBpdHMgcmV3cml0ZSBwaGFzZSBpbnN0ZWFkLgorCQkgKiB0aGUgZG9t YWluIG1pZ2h0IG5vdCBoYXZlIGJlZW4gcmV3cml0dGVuIHRvIG1hdGNoIHRoZWlyIG5ldyBjYXRh bG9nCisJCSAqIGRlZmluaXRpb25zIHlldCwgc28gdGhlIGNhbGxlciBtdXN0IGRvIHRoZSB2YWxp ZGF0aW9uIGFmdGVyIGl0cworCQkgKiByZXdyaXRlIHBoYXNlIGluc3RlYWQuCiAJCSAqLwogCQlp ZiAoIWNvbnN0ci0+c2tpcF92YWxpZGF0aW9uICYmICFpc19yZWFkZCkKIAkJCXZhbGlkYXRlRG9t YWluQ2hlY2tDb25zdHJhaW50KGRvbWFpbm9pZCwgY2NiaW4pOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9kb21haW4ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9kb21haW4ub3V0CmluZGV4IDE0ZjJjOTI4NzAwLi5lNDljNWRhY2FiMyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kb21haW4ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZG9tYWluLm91dApAQCAtNTgxLDYgKzU4MSw0NCBAQCBzZWxlY3QgcGdfZ2V0 X2NvbnN0cmFpbnRkZWYob2lkKSwgY29udmFsaWRhdGVkIGZyb20gcGdfY29uc3RyYWludAogZHJv cCB0YWJsZSBkb21yd191OwogZHJvcCBkb21haW4gZG9tcndfZHQ7CiBkcm9wIHR5cGUgZG9tcndf cnQ7CistLSBSZWJ1aWxkaW5nIGEgY29uc3RyYWludCAoYW5kIGl0cyBjb21tZW50KSBvd25lZCBi eSBzb21lb25lIGVsc2UgbXVzdCBub3QKKy0tIHJlcXVpcmUgb3duZXJzaGlwIG9mIHRoZSBjb25z dHJhaW50J3MgZG9tYWluIG9yIHRhYmxlCitjcmVhdGUgcm9sZSByZWdyZXNzX2RvbXJ3X3R5cGVv d25lcjsKK2NyZWF0ZSByb2xlIHJlZ3Jlc3NfZG9tcndfY29ub3duZXI7CitncmFudCBjcmVhdGUg b24gc2NoZW1hIHB1YmxpYyB0byByZWdyZXNzX2RvbXJ3X3R5cGVvd25lciwgcmVncmVzc19kb21y d19jb25vd25lcjsKK3NldCByb2xlIHJlZ3Jlc3NfZG9tcndfdHlwZW93bmVyOworY3JlYXRlIHR5 cGUgZG9tcndfcnQgYXMgKGkgaW50KTsKK3NldCByb2xlIHJlZ3Jlc3NfZG9tcndfY29ub3duZXI7 CitjcmVhdGUgZG9tYWluIGRvbXJ3X2R0MSBhcyBpbnQKKyAgY29uc3RyYWludCBkb21yd19kdDFf Y2hlY2sgY2hlY2sgKChyb3codmFsdWUpOjpkb21yd19ydCkuaSA+IDApOworY29tbWVudCBvbiBj b25zdHJhaW50IGRvbXJ3X2R0MV9jaGVjayBvbiBkb21haW4gZG9tcndfZHQxIGlzICdkb21haW4g b3ZlciBpbnQnOworY3JlYXRlIGRvbWFpbiBkb21yd19kdDIgYXMgZG9tcndfcnQKKyAgY29uc3Ry YWludCBkb21yd19kdDJfY2hlY2sgY2hlY2sgKCh2YWx1ZSkuaSA+IDApOworY29tbWVudCBvbiBj b25zdHJhaW50IGRvbXJ3X2R0Ml9jaGVjayBvbiBkb21haW4gZG9tcndfZHQyIGlzICdkb21haW4g b3ZlciBjb21wb3NpdGUnOworY3JlYXRlIHRhYmxlIGRvbXJ3X3QgKHggaW50CisgIGNvbnN0cmFp bnQgZG9tcndfdF9jaGVjayBjaGVjayAoKHJvdyh4KTo6ZG9tcndfcnQpLmkgPiAwKSk7Citjb21t ZW50IG9uIGNvbnN0cmFpbnQgZG9tcndfdF9jaGVjayBvbiBkb21yd190IGlzICd0YWJsZSBjb25z dHJhaW50JzsKK3NldCByb2xlIHJlZ3Jlc3NfZG9tcndfdHlwZW93bmVyOworYWx0ZXIgdHlwZSBk b21yd19ydCBhbHRlciBhdHRyaWJ1dGUgaSB0eXBlIGJpZ2ludDsKK3Jlc2V0IHJvbGU7CitzZWxl Y3QgY29ubmFtZSwgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSwgb2JqX2Rlc2NyaXB0aW9uKG9p ZCwgJ3BnX2NvbnN0cmFpbnQnKQorICBmcm9tIHBnX2NvbnN0cmFpbnQgd2hlcmUgY29ubmFtZSBs aWtlICdkb21yd1xfJScgb3JkZXIgYnkgY29ubmFtZTsKKyAgICAgY29ubmFtZSAgICAgfCAgICAg ICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgICAgfCAgICBvYmpfZGVz Y3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGRvbXJ3 X2R0MV9jaGVjayB8IENIRUNLICgoKFJPVygoVkFMVUUpOjpiaWdpbnQpOjpkb21yd19ydCkuaSA+ IDApKSB8IGRvbWFpbiBvdmVyIGludAorIGRvbXJ3X2R0Ml9jaGVjayB8IENIRUNLICgoKFZBTFVF KS5pID4gMCkpICAgICAgICAgICAgICAgICAgICAgICAgICB8IGRvbWFpbiBvdmVyIGNvbXBvc2l0 ZQorIGRvbXJ3X3RfY2hlY2sgICB8IENIRUNLICgoKFJPVygoeCk6OmJpZ2ludCk6OmRvbXJ3X3J0 KS5pID4gMCkpICAgICB8IHRhYmxlIGNvbnN0cmFpbnQKKygzIHJvd3MpCisKK3NlbGVjdCAoLTEp Ojpkb21yd19kdDE7ICAtLSBmYWlsCitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gZG9tcndfZHQx IHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImRvbXJ3X2R0MV9jaGVjayIKK2Ryb3AgdGFibGUg ZG9tcndfdDsKK2Ryb3AgZG9tYWluIGRvbXJ3X2R0MTsKK2Ryb3AgZG9tYWluIGRvbXJ3X2R0MjsK K2Ryb3AgdHlwZSBkb21yd19ydDsKK3Jldm9rZSBjcmVhdGUgb24gc2NoZW1hIHB1YmxpYyBmcm9t IHJlZ3Jlc3NfZG9tcndfdHlwZW93bmVyLCByZWdyZXNzX2RvbXJ3X2Nvbm93bmVyOworZHJvcCBy b2xlIHJlZ3Jlc3NfZG9tcndfdHlwZW93bmVyOworZHJvcCByb2xlIHJlZ3Jlc3NfZG9tcndfY29u b3duZXI7CiAtLSBUZXN0IGRvbWFpbnMgb3ZlciBhcnJheXMgb2YgY29tcG9zaXRlCiBjcmVhdGUg dHlwZSBjb21wdHlwZSBhcyAociBmbG9hdDgsIGkgZmxvYXQ4KTsKIGNyZWF0ZSBkb21haW4gZGNv bXB0eXBlYSBhcyBjb21wdHlwZVtdOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv ZG9tYWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RvbWFpbi5zcWwKaW5kZXggYjZlNDUy ZDZlYmIuLmU5MTRiNjkxM2VlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kb21h aW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RvbWFpbi5zcWwKQEAgLTMxNSw2ICsz MTUsMzcgQEAgZHJvcCB0YWJsZSBkb21yd191OwogZHJvcCBkb21haW4gZG9tcndfZHQ7CiBkcm9w IHR5cGUgZG9tcndfcnQ7CiAKKy0tIFJlYnVpbGRpbmcgYSBjb25zdHJhaW50IChhbmQgaXRzIGNv bW1lbnQpIG93bmVkIGJ5IHNvbWVvbmUgZWxzZSBtdXN0IG5vdAorLS0gcmVxdWlyZSBvd25lcnNo aXAgb2YgdGhlIGNvbnN0cmFpbnQncyBkb21haW4gb3IgdGFibGUKK2NyZWF0ZSByb2xlIHJlZ3Jl c3NfZG9tcndfdHlwZW93bmVyOworY3JlYXRlIHJvbGUgcmVncmVzc19kb21yd19jb25vd25lcjsK K2dyYW50IGNyZWF0ZSBvbiBzY2hlbWEgcHVibGljIHRvIHJlZ3Jlc3NfZG9tcndfdHlwZW93bmVy LCByZWdyZXNzX2RvbXJ3X2Nvbm93bmVyOworc2V0IHJvbGUgcmVncmVzc19kb21yd190eXBlb3du ZXI7CitjcmVhdGUgdHlwZSBkb21yd19ydCBhcyAoaSBpbnQpOworc2V0IHJvbGUgcmVncmVzc19k b21yd19jb25vd25lcjsKK2NyZWF0ZSBkb21haW4gZG9tcndfZHQxIGFzIGludAorICBjb25zdHJh aW50IGRvbXJ3X2R0MV9jaGVjayBjaGVjayAoKHJvdyh2YWx1ZSk6OmRvbXJ3X3J0KS5pID4gMCk7 Citjb21tZW50IG9uIGNvbnN0cmFpbnQgZG9tcndfZHQxX2NoZWNrIG9uIGRvbWFpbiBkb21yd19k dDEgaXMgJ2RvbWFpbiBvdmVyIGludCc7CitjcmVhdGUgZG9tYWluIGRvbXJ3X2R0MiBhcyBkb21y d19ydAorICBjb25zdHJhaW50IGRvbXJ3X2R0Ml9jaGVjayBjaGVjayAoKHZhbHVlKS5pID4gMCk7 Citjb21tZW50IG9uIGNvbnN0cmFpbnQgZG9tcndfZHQyX2NoZWNrIG9uIGRvbWFpbiBkb21yd19k dDIgaXMgJ2RvbWFpbiBvdmVyIGNvbXBvc2l0ZSc7CitjcmVhdGUgdGFibGUgZG9tcndfdCAoeCBp bnQKKyAgY29uc3RyYWludCBkb21yd190X2NoZWNrIGNoZWNrICgocm93KHgpOjpkb21yd19ydCku aSA+IDApKTsKK2NvbW1lbnQgb24gY29uc3RyYWludCBkb21yd190X2NoZWNrIG9uIGRvbXJ3X3Qg aXMgJ3RhYmxlIGNvbnN0cmFpbnQnOworc2V0IHJvbGUgcmVncmVzc19kb21yd190eXBlb3duZXI7 CithbHRlciB0eXBlIGRvbXJ3X3J0IGFsdGVyIGF0dHJpYnV0ZSBpIHR5cGUgYmlnaW50OworcmVz ZXQgcm9sZTsKK3NlbGVjdCBjb25uYW1lLCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpLCBvYmpf ZGVzY3JpcHRpb24ob2lkLCAncGdfY29uc3RyYWludCcpCisgIGZyb20gcGdfY29uc3RyYWludCB3 aGVyZSBjb25uYW1lIGxpa2UgJ2RvbXJ3XF8lJyBvcmRlciBieSBjb25uYW1lOworc2VsZWN0ICgt MSk6OmRvbXJ3X2R0MTsgIC0tIGZhaWwKK2Ryb3AgdGFibGUgZG9tcndfdDsKK2Ryb3AgZG9tYWlu IGRvbXJ3X2R0MTsKK2Ryb3AgZG9tYWluIGRvbXJ3X2R0MjsKK2Ryb3AgdHlwZSBkb21yd19ydDsK K3Jldm9rZSBjcmVhdGUgb24gc2NoZW1hIHB1YmxpYyBmcm9tIHJlZ3Jlc3NfZG9tcndfdHlwZW93 bmVyLCByZWdyZXNzX2RvbXJ3X2Nvbm93bmVyOworZHJvcCByb2xlIHJlZ3Jlc3NfZG9tcndfdHlw ZW93bmVyOworZHJvcCByb2xlIHJlZ3Jlc3NfZG9tcndfY29ub3duZXI7CisKIAogLS0gVGVzdCBk b21haW5zIG92ZXIgYXJyYXlzIG9mIGNvbXBvc2l0ZQogCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0x NTUpCgo= --ad2e00d5df6769e2f82d74ebe9be7f14218fd9d5fac6ef7d0d98960c790d--