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.96) (envelope-from ) id 1vV0Lt-00BkJm-33 for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Dec 2025 04:38:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vV0Ls-00FVgn-1f for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Dec 2025 04:38:29 +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.96) (envelope-from ) id 1vV0Lr-00FVgf-15 for pgsql-hackers@lists.postgresql.org; Mon, 15 Dec 2025 04:38:28 +0000 Received: from mail-vk1-xa33.google.com ([2607:f8b0:4864:20::a33]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vV0Lo-000izy-31 for pgsql-hackers@lists.postgresql.org; Mon, 15 Dec 2025 04:38:26 +0000 Received: by mail-vk1-xa33.google.com with SMTP id 71dfb90a1353d-559966a86caso731195e0c.2 for ; Sun, 14 Dec 2025 20:38:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765773504; x=1766378304; darn=lists.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=P5Gzj76URxeR7C5uMpV9FOoCfge/BvPhOk/iMdMNlL4=; b=nReObXcLSKtooYm2oO9CZrsgcoynZ3IhFeIy3ixcophno5Qqg0F3nWvBS6F0dBC6mX 4Dq1BTFfhlzKQnRm741rVzdxJHjWroxW6zmywDq16y0lU+8/j2zu4iiagmQ+NOsqcpUJ yT2qnFw8Wg25+1gPQn5BLKs1affLipQO7pXKRDmlGeMEKYrXsfjVeVNZjl93rvdDhEr2 YrcYoc27A94J+8K/VfxPxkvW28Egkj580kWpcwInHqxh3u3HN0DkkVK8iQ6ZAJFnugUy H0lwsK0Uwsu8m3L3uIftlAD5qBKIHahT1t53Xn8YwhOhuB/7yRAdE5hbmRZiUvjSGPV+ edOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765773504; x=1766378304; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=P5Gzj76URxeR7C5uMpV9FOoCfge/BvPhOk/iMdMNlL4=; b=RINiXdpzdCl+7W2LA4peqjEa+qO9LCgJYdwUmBrhaRerbBLZHgCrKmxC5pgg8F4aqz Fubmq8sQ+xMYUMIh7fgMx/A46HwMiABf3DPTeE2K4MfVOKwYHXsS0toL8d1V6cWhhszD GuIMtESbshH124tjPavezDrEANDrdZdbaJNEGovJWFxU9jsSgwPSSG+JuXB+sEuZU6vX 69qN7EsL3UJgkqTItpjseKBPiSfANxYGTtx9o4SN0i2r8nv6rGvalznOgRpNSTwGIhFr 9UkbMsuLgVdz34kpt2j3VhouzexSh0//vWeq+TFiICJ1C4qkhCpWUIe/OCFSu1UD0dYL /nHQ== X-Forwarded-Encrypted: i=1; AJvYcCUG/etLoeavhQkfKSqi7GgrAQlTsF2mcnDFfSSwv/a1PqRiKo9GUi9O80UQVnTj6AB0YBKmngmrm2f1riJM@lists.postgresql.org X-Gm-Message-State: AOJu0YyG0QDESMbYxDktKp3i3IxiTiIYQinO+Vhtu6jLRqtWIngTjtEi eGpQV8o5GGZGU8AdulRUo8EgMU9vT2zfWEGTYAeNb0BdJ9DfaGRXyq/XsNoDPaUUHPY532HZNVI 22Abih7MpokmxkexFfv7xEla5LtF+Kjxu9Y+bqYA= X-Gm-Gg: AY/fxX5ZfYmjYCWjny1193hprV/NH94ZLeEfYWDg0Y712KB1nMwdF0AfhyXZXggxH1A wDNjXdqy0Uup6kRDGO4fznLPbhKS59mwvzZvnyOqUpu9LyAgnzFyrGlOLs1RKKt0jk1SSrrok4l BQnMkb7mZLw/9EgTNhA0Aw0lBmwPbf1w9IDKT+OGH6gqqsEraG3ojYqOM3WFycnM/DLxUWZ21qb 2Y0OeFcOZMwzrYP73PUPewj1jsQE9LNFdgJkiu/i9S5oxQ3X3HRAfrWubuw2h6n9Hax4fJXcBtK GOdNk/XDJMaUiqkDE1qvEo6zBJ95y1nT5kiJEbvBgMpcAEgR+HXfpjanKjnLncVrxjl+ALTAVzv 27ZDnsNK1WJPdAAjJWbakjMA4uX0Tb5OjsUvHmIOPdX57tjNS6GBbDenOAr1DKzT1qtLp9FQEB8 rOvNjylLFZ X-Google-Smtp-Source: AGHT+IHa2gwEQ0pChYwgUB+QAOCWQGb7ma4VueBerTeXj5HyOQykwiI4dn16gEdZWiYInhMvK/VmO6ofDXgLFiP67GU= X-Received: by 2002:a05:6102:4485:b0:5dd:c569:a797 with SMTP id ada2fe7eead31-5e8277b1e85mr2704558137.23.1765773503596; Sun, 14 Dec 2025 20:38:23 -0800 (PST) MIME-Version: 1.0 References: <04afcd1f-ed7d-4c0a-add1-50e3719ccbf9@postgresfriends.org> <762ae707-7fdc-43d8-a77a-3a10d12ce21d@postgresfriends.org> In-Reply-To: From: jian he Date: Mon, 15 Dec 2025 12:37:43 +0800 X-Gm-Features: AQt7F2q4YdX9rCPD8j5UnIfP28ed4J3-uHU8RTiVzIgRXEvF8GoeSj62Q6n1C38 Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Kirill Reshke Cc: Corey Huinker , Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000070083a0645f62eb4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000070083a0645f62eb4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable hi. On Wed, Dec 10, 2025 at 9:32=E2=80=AFPM Kirill Reshke wrote: > > Hi! > > Overall, I think this patch is doing a good thing. Also, are we > holding it until the next SQL standard release, because sql/23 leaks > this feature? > > Below are my 2c. > > 1) > First of all, I would prefer the `Bumps catversion` comment in the > commit msg of v15-0022. > ok. > 2) > In v15-0006, if dont understand when memory allocated by > `result =3D (macaddr *) palloc0(sizeof(macaddr));` will be freed. Does > it persist until the query ends? I tried to get OOM with a query that > errors out macaddr8 casts repeatedly, but failed. > if ((addr->d !=3D 0xFF) || (addr->e !=3D 0xFE)) - ereport(ERROR, + ereturn(fcinfo->context, (Datum) 0, (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), errmsg("macaddr8 data out of range to convert to macaddr"), errhint("Only addresses that have FF and FE as values in the " the change is minor, changing ereport to ereturn. The whole refactoring does not related to OOM errror, OOM errors will behave exactly as they did previously. > 3) > > * When error_safe set to true, we will evaluate the constant expressio= n in a > > * error safe way. If the evaluation fails, return NULL instead of thro= wing > > * error. > > Somebody has to say it - s/error_safe set/error_safe is set/, also > s/throwing error/throwing an error/ > sure. mainly rebase due to recent palloc_object, palloc_array conflict. -- jian https://www.enterprisedb.com/ --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Disposition: attachment; filename="v16-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq2o1 RnJvbSA2MWE4YTE3ZThlYWM4ZTEzMWU3NTFhNjQzZTY5NTU1ZWRhMzRjOGZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTAgRGVjIDIwMjUgMTY6MTU6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAyMy8yM10gZXJyb3Igc2FmZSBmb3IgdXNlciBkZWZpbmVkIENSRUFURSBDQVNUCgpwZ19jYXN0 LmNhc3RlcnJvcnNhZmUgY29sdW1uIHRvIGluZGljYXRlIGNhc3RmdW5jIGlzIGVycm9yIHNhZmUg b3Igbm90LgoKY2hhbmdlIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgdG8gaW5kaWNh dGUgdGhhdCBtb3N0IG9mIHRoZSBzeXN0ZW0gY2FzdApmdW5jdGlvbiBzdXBwb3J0IHNvZnQgZXJy b3IgZXZhbHVhdGlvbi4KClRoZSBTQUZFIGtleXdvcmQgaXMgaW50cm9kdWNlZCBmb3IgYWxsb3cg dXNlci1kZWZpbmVkIENSRUFURSBDQVNUIGNhbiBhbHNvIGJlCmV2YWx1YXRlZCBpbiBzb2Z0LWVy cm9yLiBub3cgdGhlIHN5bm9wc2lzIG9mIENSRUFURSBDQVNUIGlzOgpDUkVBVEUgQ0FTVCAoc291 cmNlX3R5cGUgQVMgdGFyZ2V0X3R5cGUpCiAgICBXSVRIIFtTQUZFXSBGVU5DVElPTiBmdW5jdGlv bl9uYW1lIFsgKGFyZ3VtZW50X3R5cGUgWywgLi4uXSkgXQogICAgWyBBUyBBU1NJR05NRU5UIHwg QVMgSU1QTElDSVQgXQoKVGhlIGZvbGxvd2luZyBjYXN0IGluIGNpdGV4dCwgaHN0b3JlIG1vZHVs ZSByZWZhY3RvcmVkIHRvIGVycm9yIHNhZmU6CkNBU1QgKGJwY2hhciBBUyBjaXRleHQpCkNBU1Qg KGJvb2xlYW4gQVMgY2l0ZXh0KQpDQVNUIChpbmV0IEFTIGNpdGV4dCkKQ0FTVCAodGV4dFtdIEFT IGhzdG9yZSkKQ0FTVCAoaHN0b3JlIEFTIGpzb24pCkNBU1QgKGhzdG9yZSBBUyBqc29uYikKCmRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFp eE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogY29udHJpYi9jaXRl eHQvY2l0ZXh0LS0xLjQuc3FsICAgICAgICAgICAgfCAgIDYgKy0KIGNvbnRyaWIvY2l0ZXh0L2V4 cGVjdGVkL2NpdGV4dC5vdXQgICAgICAgIHwgIDI0ICstCiBjb250cmliL2NpdGV4dC9leHBlY3Rl ZC9jaXRleHRfMS5vdXQgICAgICB8ICAyNCArLQogY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5z cWwgICAgICAgICAgICAgfCAgIDUgKy0KIGNvbnRyaWIvaHN0b3JlL2V4cGVjdGVkL2hzdG9yZS5v dXQgICAgICAgIHwgIDM3ICsrKwogY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjItLTEuMy5zcWwg ICAgICAgfCAgIDIgKy0KIGNvbnRyaWIvaHN0b3JlL2hzdG9yZS0tMS40LnNxbCAgICAgICAgICAg IHwgICA2ICstCiBjb250cmliL2hzdG9yZS9oc3RvcmVfaW8uYyAgICAgICAgICAgICAgICB8ICAg OCArLQogY29udHJpYi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwgICAgICAgICAgICAgfCAgMTEgKwog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgfCAgMTUgKwogZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfY2FzdC5zZ21sICAgICAgICAgfCAgMTQgKy0KIGRvYy9zcmMvc2dt bC9zeW50YXguc2dtbCAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX2Nhc3QuYyAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv ZnVuY3Rpb25jbWRzLmMgICAgICAgfCAgIDkgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVj bWRzLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAg ICAgICAgICAgIHwgIDE4ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAg ICAgICB8ICAxMCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCAgICAgICAgICAg fCAzMzAgKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0 LmggICAgICAgICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAg ICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQgfCAg IDggKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgIHwgIDI0ICst CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgICAgICB8ICAgNSArCiAyNCBm aWxlcyBjaGFuZ2VkLCAzNTMgaW5zZXJ0aW9ucygrKSwgMjE4IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2NvbnRyaWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbCBiL2NvbnRyaWIvY2l0ZXh0L2Np dGV4dC0tMS40LnNxbAppbmRleCA3YjA2MTk4OTM1Mi4uNWM4NzgyMDM4OGYgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbAorKysgYi9jb250cmliL2NpdGV4dC9jaXRl eHQtLTEuNC5zcWwKQEAgLTg1LDkgKzg1LDkgQEAgQ1JFQVRFIENBU1QgKGNpdGV4dCBBUyB2YXJj aGFyKSBXSVRIT1VUIEZVTkNUSU9OIEFTIElNUExJQ0lUOwogQ1JFQVRFIENBU1QgKGNpdGV4dCBB UyBicGNoYXIpICBXSVRIT1VUIEZVTkNUSU9OIEFTIEFTU0lHTk1FTlQ7CiBDUkVBVEUgQ0FTVCAo dGV4dCBBUyBjaXRleHQpICAgIFdJVEhPVVQgRlVOQ1RJT04gQVMgQVNTSUdOTUVOVDsKIENSRUFU RSBDQVNUICh2YXJjaGFyIEFTIGNpdGV4dCkgV0lUSE9VVCBGVU5DVElPTiBBUyBBU1NJR05NRU5U OwotQ1JFQVRFIENBU1QgKGJwY2hhciBBUyBjaXRleHQpICBXSVRIIEZVTkNUSU9OIGNpdGV4dChi cGNoYXIpICBBUyBBU1NJR05NRU5UOwotQ1JFQVRFIENBU1QgKGJvb2xlYW4gQVMgY2l0ZXh0KSBX SVRIIEZVTkNUSU9OIGNpdGV4dChib29sZWFuKSBBUyBBU1NJR05NRU5UOwotQ1JFQVRFIENBU1Qg KGluZXQgQVMgY2l0ZXh0KSAgICBXSVRIIEZVTkNUSU9OIGNpdGV4dChpbmV0KSAgICBBUyBBU1NJ R05NRU5UOworQ1JFQVRFIENBU1QgKGJwY2hhciBBUyBjaXRleHQpICBXSVRIIFNBRkUgRlVOQ1RJ T04gY2l0ZXh0KGJwY2hhcikgIEFTIEFTU0lHTk1FTlQ7CitDUkVBVEUgQ0FTVCAoYm9vbGVhbiBB UyBjaXRleHQpIFdJVEggU0FGRSBGVU5DVElPTiBjaXRleHQoYm9vbGVhbikgQVMgQVNTSUdOTUVO VDsKK0NSRUFURSBDQVNUIChpbmV0IEFTIGNpdGV4dCkgICAgV0lUSCBTQUZFIEZVTkNUSU9OIGNp dGV4dChpbmV0KSAgICBBUyBBU1NJR05NRU5UOwogCiAtLQogLS0gT3BlcmF0b3IgRnVuY3Rpb25z LgpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dCBiL2NvbnRy aWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQKaW5kZXggMzNkYTE5ZDhkZjQuLmJlMzI4NzE1 NDkyIDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0CisrKyBi L2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQKQEAgLTEwLDExICsxMCwxMiBAQCBX SEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsKIC0tLS0t LS0tKy0tLS0tLS0tLQogKDAgcm93cykKIAotU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBj aXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCi1FUlJPUjog IGNhbm5vdCBjYXN0IHR5cGUgY2hhcmFjdGVyIHRvIGNpdGV4dCB3aGVuIERFRkFVTFQgZXhwcmVz c2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgotTElORSAx OiBTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0kuLi4KLSAgICAgICAgICAgICAgICAgICAgXgotSElOVDogIFNhZmUgdHlwZSBjYXN0IGZv ciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkCitTRUxFQ1QgQ0FTVCgn YWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgY2l0ZXh0IAorLS0tLS0tLS0KKyBhYmMKKygxIHJvdykKKwogLS0gVGVzdCB0aGUgb3BlcmF0 b3JzIGFuZCBpbmRleGluZyBmdW5jdGlvbnMKIC0tIFRlc3QgPSBhbmQgPD4uCiBTRUxFQ1QgJ2En OjpjaXRleHQgPSAnYSc6OmNpdGV4dCBBUyB0OwpAQCAtNTIzLDYgKzUyNCwxMiBAQCBTRUxFQ1Qg dHJ1ZTo6Y2l0ZXh0ID0gJ3RydWUnIEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxFQ1QgQ0FTVCh0 cnVlIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY2l0ZXh0 IAorLS0tLS0tLS0KKyB0cnVlCisoMSByb3cpCisKIFNFTEVDVCAndHJ1ZSc6OmNpdGV4dDo6Ym9v bGVhbiA9IHRydWUgQVMgdDsKICB0IAogLS0tCkBAIC03ODcsNiArNzk0LDEzIEBAIFNFTEVDVCAn MTkyLjE2OC4xMDAuMTI4Jzo6Y2l0ZXh0OjppbmV0ID0gJzE5Mi4xNjguMTAwLjEyOCc6OmluZXQg QVMgdDsKICB0CiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKGluZXQgJzE5Mi4xNjguMTAwLjEyOCcg QVMgY2l0ZXh0CisgICAgICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSA9 ICcxOTIuMTY4LjEwMC4xMjgvMzInIEFTIHQ7CisgdCAKKy0tLQorIHQKKygxIHJvdykKKwogU0VM RUNUICcwODowMDoyYjowMTowMjowMyc6Om1hY2FkZHI6OmNpdGV4dCA9ICcwODowMDoyYjowMTow MjowMycgQVMgdDsKICB0IAogLS0tCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9leHBlY3Rl ZC9jaXRleHRfMS5vdXQgYi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQKaW5k ZXggNjQ3ZWVhMTkxNDIuLmU5Zjg0NTRjNjYyIDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9l eHBlY3RlZC9jaXRleHRfMS5vdXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0 XzEub3V0CkBAIC0xMCwxMSArMTAsMTIgQEAgV0hFUkUgb3BjLm9pZCA+PSAxNjM4NCBBTkQgTk9U IGFtdmFsaWRhdGUob3BjLm9pZCk7CiAtLS0tLS0tLSstLS0tLS0tLS0KICgwIHJvd3MpCiAKLVNF TEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsgLS1lcnJvcgotRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0 byBjaXRleHQgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4u IE9OIENPTlZFUlNJT04gRVJST1IKLUxJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBB UyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJLi4uCi0gICAgICAgICAgICAgICAgICAg IF4KLUhJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3Qg eWV0IHN1cHBvcnRlZAorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgYWJjCiso MSByb3cpCisKIC0tIFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAt LSBUZXN0ID0gYW5kIDw+LgogU0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsK QEAgLTUyMyw2ICs1MjQsMTIgQEAgU0VMRUNUIHRydWU6OmNpdGV4dCA9ICd0cnVlJyBBUyB0Owog IHQKICgxIHJvdykKIAorU0VMRUNUIENBU1QodHJ1ZSBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgdHJ1ZQorKDEgcm93KQor CiBTRUxFQ1QgJ3RydWUnOjpjaXRleHQ6OmJvb2xlYW4gPSB0cnVlIEFTIHQ7CiAgdCAKIC0tLQpA QCAtNzg3LDYgKzc5NCwxMyBAQCBTRUxFQ1QgJzE5Mi4xNjguMTAwLjEyOCc6OmNpdGV4dDo6aW5l dCA9ICcxOTIuMTY4LjEwMC4xMjgnOjppbmV0IEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxFQ1Qg Q0FTVChpbmV0ICcxOTIuMTY4LjEwMC4xMjgnIEFTIGNpdGV4dAorICAgICAgICAgICBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgPSAnMTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0Owor IHQgCistLS0KKyB0CisoMSByb3cpCisKIFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjptYWNh ZGRyOjpjaXRleHQgPSAnMDg6MDA6MmI6MDE6MDI6MDMnIEFTIHQ7CiAgdCAKIC0tLQpkaWZmIC0t Z2l0IGEvY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5zcWwgYi9jb250cmliL2NpdGV4dC9zcWwv Y2l0ZXh0LnNxbAppbmRleCA5OTc5NDQ5N2Q0Ny4uNjJmODNkNzQ5ZjkgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsCisrKyBiL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRl eHQuc3FsCkBAIC05LDcgKzksNyBAQCBTRUxFQ1QgYW1uYW1lLCBvcGNuYW1lCiBGUk9NIHBnX29w Y2xhc3Mgb3BjIExFRlQgSk9JTiBwZ19hbSBhbSBPTiBhbS5vaWQgPSBvcGNtZXRob2QKIFdIRVJF IG9wYy5vaWQgPj0gMTYzODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogCi1TRUxFQ1Qg Q0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKIAogLS0gVGVzdCB0aGUgb3BlcmF0b3JzIGFu ZCBpbmRleGluZyBmdW5jdGlvbnMKIApAQCAtMTY1LDYgKzE2NSw3IEBAIFNFTEVDVCBuYW1lIEZS T00gc3J0IFdIRVJFIG5hbWUgU0lNSUxBUiBUTyAnJUEuKic7CiAKIC0tIEV4cGxpY2l0IGNhc3Rz LgogU0VMRUNUIHRydWU6OmNpdGV4dCA9ICd0cnVlJyBBUyB0OworU0VMRUNUIENBU1QodHJ1ZSBB UyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwogU0VMRUNUICd0cnVl Jzo6Y2l0ZXh0Ojpib29sZWFuID0gdHJ1ZSBBUyB0OwogCiBTRUxFQ1QgNDo6Y2l0ZXh0ID0gJzQn IEFTIHQ7CkBAIC0yMjQsNiArMjI1LDggQEAgU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgvMjUnOjpj aXRleHQ6OmNpZHIgPSAnMTkyLjE2OC4xMDAuMTI4LzI1Jzo6Y2lkciBBUyB0OwogCiBTRUxFQ1Qg JzE5Mi4xNjguMTAwLjEyOCc6OmluZXQ6OmNpdGV4dCA9ICcxOTIuMTY4LjEwMC4xMjgvMzInIEFT IHQ7CiBTRUxFQ1QgJzE5Mi4xNjguMTAwLjEyOCc6OmNpdGV4dDo6aW5ldCA9ICcxOTIuMTY4LjEw MC4xMjgnOjppbmV0IEFTIHQ7CitTRUxFQ1QgQ0FTVChpbmV0ICcxOTIuMTY4LjEwMC4xMjgnIEFT IGNpdGV4dAorICAgICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgPSAn MTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0OwogCiBTRUxFQ1QgJzA4OjAwOjJiOjAxOjAyOjAzJzo6 bWFjYWRkcjo6Y2l0ZXh0ID0gJzA4OjAwOjJiOjAxOjAyOjAzJyBBUyB0OwogU0VMRUNUICcwODow MDoyYjowMTowMjowMyc6OmNpdGV4dDo6bWFjYWRkciA9ICcwODowMDoyYjowMTowMjowMyc6Om1h Y2FkZHIgQVMgdDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3JlL2V4cGVjdGVkL2hzdG9yZS5v dXQgYi9jb250cmliL2hzdG9yZS9leHBlY3RlZC9oc3RvcmUub3V0CmluZGV4IDE4MzZjOWFjZjM5 Li4yNjIyMTM3Y2JmOSAxMDA2NDQKLS0tIGEvY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQvaHN0b3Jl Lm91dAorKysgYi9jb250cmliL2hzdG9yZS9leHBlY3RlZC9oc3RvcmUub3V0CkBAIC04NDEsMTIg Kzg0MSwyOCBAQCBzZWxlY3QgJ3t9Jzo6dGV4dFtdOjpoc3RvcmU7CiAKIHNlbGVjdCBBUlJBWVsn YScsJ2cnLCdiJywnaCcsJ2FzZCddOjpoc3RvcmU7CiBFUlJPUjogIGFycmF5IG11c3QgaGF2ZSBl dmVuIG51bWJlciBvZiBlbGVtZW50cworc2VsZWN0IENBU1QoQVJSQVlbJ2EnLCdnJywnYicsJ2gn LCdhc2QnXSBBUyBoc3RvcmUKKyAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCBBUlJBWVsnYScsJ2cn LCdiJywnaCcsJ2FzZCcsJ2knXTo6aHN0b3JlOwogICAgICAgICAgICAgIGFycmF5ICAgICAgICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgImEiPT4iZyIsICJiIj0+ ImgiLCAiYXNkIj0+ImkiCiAoMSByb3cpCiAKK3NlbGVjdCBBUlJBWVsnYScsJ2cnLCdiJywnaCcs bnVsbCwnaSddOjpoc3RvcmU7CitFUlJPUjogIG51bGwgdmFsdWUgbm90IGFsbG93ZWQgZm9yIGhz dG9yZSBrZXkKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycsJ2InLCdoJyxudWxsLCdpJ10gQVMg aHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5 IAorLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgQVJSQVlbWydhJywnZyddLFsnYicsJ2gn XSxbJ2FzZCcsJ2knXV06OmhzdG9yZTsKICAgICAgICAgICAgICBhcnJheSAgICAgICAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtODU1LDYgKzg3MSwxMyBAQCBz ZWxlY3QgQVJSQVlbWydhJywnZyddLFsnYicsJ2gnXSxbJ2FzZCcsJ2knXV06OmhzdG9yZTsKIAog c2VsZWN0IEFSUkFZW1snYScsJ2cnLCdiJ10sWydoJywnYXNkJywnaSddXTo6aHN0b3JlOwogRVJS T1I6ICBhcnJheSBtdXN0IGhhdmUgdHdvIGNvbHVtbnMKK3NlbGVjdCBDQVNUKEFSUkFZW1snYScs J2cnLCdiJ10sWydoJywnYXNkJywnaSddXSBBUyBoc3RvcmUKKyAgICAgICBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKIHNl bGVjdCBBUlJBWVtbWydhJywnZyddLFsnYicsJ2gnXSxbJ2FzZCcsJ2knXV1dOjpoc3RvcmU7CiBF UlJPUjogIHdyb25nIG51bWJlciBvZiBhcnJheSBzdWJzY3JpcHRzCiBzZWxlY3QgaHN0b3JlKCd7 fSc6OnRleHRbXSk7CkBAIC0xNTUzLDYgKzE1NzYsMTMgQEAgc2VsZWN0IGNhc3QoIGhzdG9yZSAg JyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwg Zj0KICB7ImIiOiAidCIsICJjIjogbnVsbCwgImQiOiAiMTIzNDUiLCAiZSI6ICIwMTIzNDUiLCAi ZiI6ICIxLjIzNCIsICJnIjogIjIuMzQ1ZSs0IiwgImEga2V5IjogIjEifQogKDEgcm93KQogCitz ZWxlY3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4g MTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbgorICAg ICAgICAgICAgZGVmYXVsdCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3IpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb24gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHsiYiI6ICJ0IiwgImMiOiBudWxsLCAiZCI6ICIxMjM0NSIsICJlIjog IjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImciOiAiMi4zNDVlKzQiLCAiYSBrZXkiOiAiMSJ9Ciso MSByb3cpCisKIHNlbGVjdCBoc3RvcmVfdG9fanNvbl9sb29zZSgnImEga2V5IiA9PjEsIGIgPT4g dCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0 NWUrNCwgaD0+ICIyMDE2LTAxLTAxIicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBoc3RvcmVfdG9fanNvbl9sb29zZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTU3MSw2ICsxNjAxLDEzIEBAIHNlbGVjdCBjYXN0KCBo c3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAw MTIzNDUsIGY9CiAgeyJiIjogInQiLCAiYyI6IG51bGwsICJkIjogIjEyMzQ1IiwgImUiOiAiMDEy MzQ1IiwgImYiOiAiMS4yMzQiLCAiZyI6ICIyLjM0NWUrNCIsICJhIGtleSI6ICIxIn0KICgxIHJv dykKIAorc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVs bCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpz b25iCisgICAgICAgICAgICBkZWZhdWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbmIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJiIjogInQiLCAiYyI6IG51bGwsICJkIjogIjEyMzQ1 IiwgImUiOiAiMDEyMzQ1IiwgImYiOiAiMS4yMzQiLCAiZyI6ICIyLjM0NWUrNCIsICJhIGtleSI6 ICIxIn0KKygxIHJvdykKKwogc2VsZWN0IGhzdG9yZV90b19qc29uYl9sb29zZSgnImEga2V5IiA9 PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQs IGc9PiAyLjM0NWUrNCwgaD0+ICIyMDE2LTAxLTAxIicpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaHN0b3JlX3RvX2pzb25iX2xvb3NlICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvY29udHJpYi9oc3RvcmUvaHN0b3Jl LS0xLjItLTEuMy5zcWwgYi9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuMi0tMS4zLnNxbAppbmRl eCAwYTcwNTYwMTViNy4uY2JiMWExMzllNjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2hz dG9yZS0tMS4yLS0xLjMuc3FsCisrKyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZS0tMS4yLS0xLjMu c3FsCkBAIC05LDcgKzksNyBAQCBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ2hzdG9yZV90b19qc29u YicKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVDsKIAogQ1JFQVRFIENBU1QgKGhzdG9yZSBB UyBqc29uYikKLSAgV0lUSCBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmIoaHN0b3JlKTsKKyAgV0lU SCBTQUZFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uYihoc3RvcmUpOwogCiBDUkVBVEUgRlVOQ1RJ T04gaHN0b3JlX3RvX2pzb25iX2xvb3NlKGhzdG9yZSkKIFJFVFVSTlMganNvbmIKZGlmZiAtLWdp dCBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZS0tMS40LnNxbCBiL2NvbnRyaWIvaHN0b3JlL2hzdG9y ZS0tMS40LnNxbAppbmRleCA0Mjk0ZDE0Y2ViNS4uNDUxYzJlZDgxODcgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvaHN0b3JlL2hzdG9yZS0tMS40LnNxbAorKysgYi9jb250cmliL2hzdG9yZS9oc3RvcmUt LTEuNC5zcWwKQEAgLTIzMiw3ICsyMzIsNyBAQCBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ2hzdG9y ZV9mcm9tX2FycmF5JwogTEFOR1VBR0UgQyBJTU1VVEFCTEUgU1RSSUNUIFBBUkFMTEVMIFNBRkU7 CiAKIENSRUFURSBDQVNUICh0ZXh0W10gQVMgaHN0b3JlKQotICBXSVRIIEZVTkNUSU9OIGhzdG9y ZSh0ZXh0W10pOworICBXSVRIIFNBRkUgRlVOQ1RJT04gaHN0b3JlKHRleHRbXSk7CiAKIENSRUFU RSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbihoc3RvcmUpCiBSRVRVUk5TIGpzb24KQEAgLTI0MCw3 ICsyNDAsNyBAQCBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ2hzdG9yZV90b19qc29uJwogTEFOR1VB R0UgQyBJTU1VVEFCTEUgU1RSSUNUIFBBUkFMTEVMIFNBRkU7CiAKIENSRUFURSBDQVNUIChoc3Rv cmUgQVMganNvbikKLSAgV0lUSCBGVU5DVElPTiBoc3RvcmVfdG9fanNvbihoc3RvcmUpOworICBX SVRIIFNBRkUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb24oaHN0b3JlKTsKIAogQ1JFQVRFIEZVTkNU SU9OIGhzdG9yZV90b19qc29uX2xvb3NlKGhzdG9yZSkKIFJFVFVSTlMganNvbgpAQCAtMjUzLDcg KzI1Myw3IEBAIEFTICdNT0RVTEVfUEFUSE5BTUUnLCAnaHN0b3JlX3RvX2pzb25iJwogTEFOR1VB R0UgQyBJTU1VVEFCTEUgU1RSSUNUIFBBUkFMTEVMIFNBRkU7CiAKIENSRUFURSBDQVNUIChoc3Rv cmUgQVMganNvbmIpCi0gIFdJVEggRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iKGhzdG9yZSk7Cisg IFdJVEggU0FGRSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmIoaHN0b3JlKTsKIAogQ1JFQVRFIEZV TkNUSU9OIGhzdG9yZV90b19qc29uYl9sb29zZShoc3RvcmUpCiBSRVRVUk5TIGpzb25iCmRpZmYg LS1naXQgYS9jb250cmliL2hzdG9yZS9oc3RvcmVfaW8uYyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9y ZV9pby5jCmluZGV4IDM0ZTM5MTg4MTFjLi5mNTE2NjY3OTc4MyAxMDA2NDQKLS0tIGEvY29udHJp Yi9oc3RvcmUvaHN0b3JlX2lvLmMKKysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX2lvLmMKQEAg LTczOCwyMCArNzM4LDIwIEBAIGhzdG9yZV9mcm9tX2FycmF5KFBHX0ZVTkNUSU9OX0FSR1MpCiAK IAkJY2FzZSAxOgogCQkJaWYgKChBUlJfRElNUyhpbl9hcnJheSlbMF0pICUgMikKLQkJCQllcmVw b3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0FSUkFZX1NVQlNDUklQVF9FUlJPUiksCiAJCQkJCQkgZXJybXNn KCJhcnJheSBtdXN0IGhhdmUgZXZlbiBudW1iZXIgb2YgZWxlbWVudHMiKSkpOwogCQkJYnJlYWs7 CiAKIAkJY2FzZSAyOgogCQkJaWYgKChBUlJfRElNUyhpbl9hcnJheSlbMV0pICE9IDIpCi0JCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAog CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BUlJBWV9TVUJTQ1JJUFRfRVJST1IpLAogCQkJCQkJIGVy cm1zZygiYXJyYXkgbXVzdCBoYXZlIHR3byBjb2x1bW5zIikpKTsKIAkJCWJyZWFrOwogCiAJCWRl ZmF1bHQ6Ci0JCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAo RGF0dW0pIDAsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfQVJSQVlfU1VCU0NSSVBUX0VSUk9SKSwK IAkJCQkJIGVycm1zZygid3JvbmcgbnVtYmVyIG9mIGFycmF5IHN1YnNjcmlwdHMiKSkpOwogCX0K QEAgLTc3Miw3ICs3NzIsNyBAQCBoc3RvcmVfZnJvbV9hcnJheShQR19GVU5DVElPTl9BUkdTKQog CWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKQogCXsKIAkJaWYgKGluX251bGxzW2kgKiAyXSkK LQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAw LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAogCQkJCQkg ZXJybXNnKCJudWxsIHZhbHVlIG5vdCBhbGxvd2VkIGZvciBoc3RvcmUga2V5IikpKTsKIApkaWZm IC0tZ2l0IGEvY29udHJpYi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwgYi9jb250cmliL2hzdG9yZS9z cWwvaHN0b3JlLnNxbAppbmRleCBlZmVmOTEyOTJhMy4uOGZhNDY2MzBkNmQgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvaHN0b3JlL3NxbC9oc3RvcmUuc3FsCisrKyBiL2NvbnRyaWIvaHN0b3JlL3NxbC9o c3RvcmUuc3FsCkBAIC0xOTIsOSArMTkyLDE2IEBAIHNlbGVjdCBwZ19jb2x1bW5fc2l6ZShzbGlj ZShoc3RvcmUgJ2FhPT4xLCBiPT4yLCBjPT4zJywgQVJSQVlbJ2MnLCdiJywnYWEnXSkpCiAtLSBh cnJheSBpbnB1dAogc2VsZWN0ICd7fSc6OnRleHRbXTo6aHN0b3JlOwogc2VsZWN0IEFSUkFZWydh JywnZycsJ2InLCdoJywnYXNkJ106OmhzdG9yZTsKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycs J2InLCdoJywnYXNkJ10gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOwogc2VsZWN0IEFSUkFZWydhJywnZycsJ2InLCdoJywnYXNkJywnaSddOjpoc3Rv cmU7CitzZWxlY3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLG51bGwsJ2knXTo6aHN0b3JlOworc2Vs ZWN0IENBU1QoQVJSQVlbJ2EnLCdnJywnYicsJ2gnLG51bGwsJ2knXSBBUyBoc3RvcmUKKyAgICAg ICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CiBzZWxlY3QgQVJSQVlbWydhJywn ZyddLFsnYicsJ2gnXSxbJ2FzZCcsJ2knXV06OmhzdG9yZTsKIHNlbGVjdCBBUlJBWVtbJ2EnLCdn JywnYiddLFsnaCcsJ2FzZCcsJ2knXV06OmhzdG9yZTsKK3NlbGVjdCBDQVNUKEFSUkFZW1snYScs J2cnLCdiJ10sWydoJywnYXNkJywnaSddXSBBUyBoc3RvcmUKKyAgICAgICBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CiBzZWxlY3QgQVJSQVlbW1snYScsJ2cnXSxbJ2InLCdoJ10s Wydhc2QnLCdpJ11dXTo6aHN0b3JlOwogc2VsZWN0IGhzdG9yZSgne30nOjp0ZXh0W10pOwogc2Vs ZWN0IGhzdG9yZShBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddKTsKQEAgLTM2MywxMCArMzcw LDE0IEBAIHNlbGVjdCBjb3VudCgqKSBmcm9tIHRlc3Roc3RvcmUgd2hlcmUgaCA9ICdwb3M9Pjk4 LCBsaW5lPT4zNzEsIG5vZGU9PkNCQSwgaW5kZXhlCiAtLSBqc29uIGFuZCBqc29uYgogc2VsZWN0 IGhzdG9yZV90b19qc29uKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0 NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0Jyk7CiBzZWxlY3QgY2FzdCgg aHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4g MDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbik7CitzZWxlY3QgY2FzdCgg aHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4g MDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbgorICAgICAgICAgICAgZGVm YXVsdCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3IpOwogc2VsZWN0IGhzdG9yZV90b19qc29uX2xv b3NlKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIz NDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0LCBoPT4gIjIwMTYtMDEtMDEiJyk7CiAKIHNlbGVj dCBoc3RvcmVfdG9fanNvbmIoJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEy MzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnKTsKIHNlbGVjdCBjYXN0 KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9 PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0JyBhcyBqc29uYik7CitzZWxlY3QgY2Fz dCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUg PT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbmIKKyAgICAgICAgICAg IGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKIHNlbGVjdCBoc3RvcmVfdG9fanNv bmJfbG9vc2UoJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+ IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSInKTsKIAog Y3JlYXRlIHRhYmxlIHRlc3RfanNvbl9hZ2cgKGYxIHRleHQsIGYyIGhzdG9yZSk7CmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sCmluZGV4IDJmYzYzNDQyOTgwLi44ZmNhMzUzNGYzMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTE4 NDksNiArMTg0OSwyMSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9u IGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgIDxsaXRlcmFs PmI8L2xpdGVyYWw+IG1lYW5zIHRoYXQgdGhlIHR5cGVzIGFyZSBiaW5hcnktY29lcmNpYmxlLCB0 aHVzIG5vIGNvbnZlcnNpb24gaXMgcmVxdWlyZWQuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPmNhc3RlcnJvcnNhZmU8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAg IDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhpcyBmbGFnIGluZGljYXRlcyB3aGV0 aGVyIHRoZSA8c3RydWN0ZmllbGQ+Y2FzdGZ1bmM8L3N0cnVjdGZpZWxkPiBmdW5jdGlvbgorICAg ICAgICBpcyBlcnJvci1zYWZlLiBJdCBpcyBtZWFuaW5nZnVsIG9ubHkgd2hlbiA8c3RydWN0Zmll bGQ+Y2FzdGZ1bmM8L3N0cnVjdGZpZWxkPgorICAgICAgICBpcyBub3QgemVyby4gVXNlci1kZWZp bmVkIGNhc3RzIGNhbiBzZXQgaXQKKyAgICAgICAgdG8gPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4g dmlhIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVjYXN0Ij5DUkVBVEUgQ0FTVDwvbGluaz4uCisg ICAgICAgIEZvciBlcnJvci1zYWZlIHR5cGUgY2FzdCwgc2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1z eW50YXgtdHlwZS1jYXN0cy1zYWZlIi8+LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvZW50cnk+ CisgICAgIDwvcm93PgorCiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY2FzdC5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfY2FzdC5zZ21sCmluZGV4IGJhZDc1YmMxZGNlLi44ODhkNzE0MmU0MiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY2FzdC5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbApAQCAtMjIsNyArMjIsNyBAQCBQb3N0Z3JlU1FM IGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBDUkVBVEUgQ0FT VCAoPHJlcGxhY2VhYmxlPnNvdXJjZV90eXBlPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxl PnRhcmdldF90eXBlPC9yZXBsYWNlYWJsZT4pCi0gICAgV0lUSCBGVU5DVElPTiA8cmVwbGFjZWFi bGU+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+IFsgKDxyZXBsYWNlYWJsZT5hcmd1bWVudF90 eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSkgXQorICAgIFdJVEggW1NBRkVdIEZVTkNUSU9OIDxy ZXBsYWNlYWJsZT5mdW5jdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4gWyAoPHJlcGxhY2VhYmxlPmFy Z3VtZW50X3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dKSBdCiAgICAgWyBBUyBBU1NJR05NRU5U IHwgQVMgSU1QTElDSVQgXQogCiBDUkVBVEUgQ0FTVCAoPHJlcGxhY2VhYmxlPnNvdXJjZV90eXBl PC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnRhcmdldF90eXBlPC9yZXBsYWNlYWJsZT4p CkBAIC0xOTQsNiArMTk0LDE4IEBAIFNFTEVDVCBDQVNUICggMiBBUyBudW1lcmljICkgKyA0LjA7 CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFybGlzdGVu dHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5TQUZFPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxp c3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGZ1bmN0aW9uIHVzZWQgdG8gcGVyZm9y bSB0aGUgY2FzdCBzdXBwb3J0IHNvZnQtZXJyb3IgZXZhbHVhdGlvbiwKKyAgICAgICBDdXJyZW50 bHksIG9ubHkgZnVuY3Rpb25zIHdyaXR0ZW4gaW4gQyBvciB0aGUgaW50ZXJuYWwgbGFuZ3VhZ2Ug YXJlIHN1cHBvcnRlZC4KKyAgICAgICBBbiBhbHRlcm5hdGUgZXhwcmVzc2lvbiBjYW4gYmUgc3Bl Y2lmaWVkIHRvIGJlIGV2YWx1YXRlZCBpZiB0aGUgY2FzdAorICAgICAgIGVycm9yIG9jY3Vycy4g IFNlZSA8bGluayBsaW5rZW5kPSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSI+c2FmZSB0eXBl IGNhc3Q8L2xpbms+LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFy bGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgPHRlcm0+PGxpdGVyYWw+PHJl cGxhY2VhYmxlPmZ1bmN0aW9uX25hbWU8L3JlcGxhY2VhYmxlPlsoPHJlcGxhY2VhYmxlPmFyZ3Vt ZW50X3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dKV08L2xpdGVyYWw+PC90ZXJtPgogCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3ludGF4LnNn bWwKaW5kZXggMzJhZjllYTA2MWMuLjI0ZDFkYzZkZTBiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvc3ludGF4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCkBAIC0yMTc2LDgg KzIxNzYsNyBAQCBDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBB UyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+CiA8L3N5bm9wc2lzPgogICAgIElmIHRo ZSB0eXBlIGNhc3QgZmFpbHMsIGluc3RlYWQgb2YgZXJyb3Igb3V0LCBldmFsdWF0aW9uIGZhbGxz IGJhY2sgdG8gdGhlCiAgICAgZGVmYXVsdCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+IHNwZWNpZmllZCBpbiB0aGUgPGxpdGVyYWw+T04gRVJST1I8L2xpdGVyYWw+IGNsYXVz ZS4KLSAgICBBdCBwcmVzZW50LCB0aGlzIG9ubHkgc3VwcG9ydCBidWlsdC1pbiB0eXBlIGNhc3Rz OyBzZWUgPHhyZWYgbGlua2VuZD0iY2F0YWxvZy1wZy1jYXN0Ii8+LgotICAgIFVzZXItZGVmaW5l ZCB0eXBlIGNhc3RzIGNyZWF0ZWQgd2l0aCA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCI+ Q1JFQVRFIENBU1Q8L2xpbms+IGFyZSBub3Qgc3VwcG9ydGVkLgorICAgIFVzZXItZGVmaW5lZCB0 eXBlIGNhc3RzIGNyZWF0ZWQgd2l0aCA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCI+Q1JF QVRFIENBU1Q8L2xpbms+IGFyZSBzdXBwb3J0ZWQgdG9vLgogICA8L3BhcmE+CiAKICAgICA8cGFy YT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2FzdC5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggMTc3M2M5YzU0OTEuLjQxMTZiMTcwOGIwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX2Nhc3QuYwpAQCAtNDgsNyArNDgsOCBAQAogT2JqZWN0QWRkcmVzcwogQ2FzdENy ZWF0ZShPaWQgc291cmNldHlwZWlkLCBPaWQgdGFyZ2V0dHlwZWlkLAogCQkgICBPaWQgZnVuY2lk LCBPaWQgaW5jYXN0aWQsIE9pZCBvdXRjYXN0aWQsCi0JCSAgIGNoYXIgY2FzdGNvbnRleHQsIGNo YXIgY2FzdG1ldGhvZCwgRGVwZW5kZW5jeVR5cGUgYmVoYXZpb3IpCisJCSAgIGNoYXIgY2FzdGNv bnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgYm9vbCBjYXN0ZXJyb3JzYWZlLAorCQkgICBEZXBlbmRl bmN5VHlwZSBiZWhhdmlvcikKIHsKIAlSZWxhdGlvbglyZWxhdGlvbjsKIAlIZWFwVHVwbGUJdHVw bGU7CkBAIC04NCw2ICs4NSw3IEBAIENhc3RDcmVhdGUoT2lkIHNvdXJjZXR5cGVpZCwgT2lkIHRh cmdldHR5cGVpZCwKIAl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RmdW5jIC0gMV0gPSBPYmplY3RJ ZEdldERhdHVtKGZ1bmNpZCk7CiAJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0Y29udGV4dCAtIDFd ID0gQ2hhckdldERhdHVtKGNhc3Rjb250ZXh0KTsKIAl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3Rt ZXRob2QgLSAxXSA9IENoYXJHZXREYXR1bShjYXN0bWV0aG9kKTsKKwl2YWx1ZXNbQW51bV9wZ19j YXN0X2Nhc3RlcnJvcnNhZmUgLSAxXSA9IEJvb2xHZXREYXR1bShjYXN0ZXJyb3JzYWZlKTsKIAog CXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsYXRpb24pLCB2YWx1 ZXMsIG51bGxzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZnVuY3Rpb25j bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9mdW5jdGlvbmNtZHMuYwppbmRleCA4YTQzNWNk OTNkYi4uMGJjOTM3M2M3ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0 aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jCkBAIC0x NjY3LDYgKzE2NjcsMTMgQEAgQ3JlYXRlQ2FzdChDcmVhdGVDYXN0U3RtdCAqc3RtdCkKIAkJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKIAkJCQkJIGVycm1z ZygiY2FzdCBmdW5jdGlvbiBtdXN0IG5vdCByZXR1cm4gYSBzZXQiKSkpOwogCisJCWlmIChzdG10 LT5zYWZlICYmCisJCQlwcm9jc3RydWN0LT5wcm9sYW5nICE9IElOVEVSTkFMbGFuZ3VhZ2VJZCAm JgorCQkJcHJvY3N0cnVjdC0+cHJvbGFuZyAhPSBDbGFuZ3VhZ2VJZCkKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQll cnJtc2coIlNhZmUgdHlwZSBjYXN0IGZ1bmN0aW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgZm9yIEMg YW5kIGludGVybmFsIGxhbmd1YWdlcyIpKTsKKwogCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwog CX0KIAllbHNlCkBAIC0xNzk1LDcgKzE4MDIsNyBAQCBDcmVhdGVDYXN0KENyZWF0ZUNhc3RTdG10 ICpzdG10KQogCX0KIAogCW15c2VsZiA9IENhc3RDcmVhdGUoc291cmNldHlwZWlkLCB0YXJnZXR0 eXBlaWQsIGZ1bmNpZCwgaW5jYXN0aWQsIG91dGNhc3RpZCwKLQkJCQkJCWNhc3Rjb250ZXh0LCBj YXN0bWV0aG9kLCBERVBFTkRFTkNZX05PUk1BTCk7CisJCQkJCQljYXN0Y29udGV4dCwgY2FzdG1l dGhvZCwgc3RtdC0+c2FmZSwgREVQRU5ERU5DWV9OT1JNQUwpOwogCXJldHVybiBteXNlbGY7CiB9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDBlYjhlMGEyYmIwLi4zNmQ0NDMyMDVmNCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0xNzU0LDYgKzE3NTQsNyBAQCBEZWZpbmVSYW5n ZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVJhbmdlU3RtdCAqc3RtdCkKIAkvKiBDcmVhdGUg Y2FzdCBmcm9tIHRoZSByYW5nZSB0eXBlIHRvIGl0cyBtdWx0aXJhbmdlIHR5cGUgKi8KIAlDYXN0 Q3JlYXRlKHR5cG9pZCwgbXVsdGlyYW5nZU9pZCwgY2FzdEZ1bmNPaWQsIEludmFsaWRPaWQsIElu dmFsaWRPaWQsCiAJCQkgICBDT0VSQ0lPTl9DT0RFX0VYUExJQ0lULCBDT0VSQ0lPTl9NRVRIT0Rf RlVOQ1RJT04sCisJCQkgICBmYWxzZSwKIAkJCSAgIERFUEVOREVOQ1lfSU5URVJOQUwpOwogCiAJ cGZyZWUobXVsdGlyYW5nZUFycmF5TmFtZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA5ZTY1NzM0NDRjYy4u NjYxZDExZTU3ZGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMzUzLDcgKzM1Myw3IEBAIHN0YXRpYyBOb2Rl ICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBO b2RlICpxdWVyeSk7CiAldHlwZSA8ZGVmZWx0Pglkcm9wX29wdGlvbgogJXR5cGUgPGJvb2xlYW4+ CW9wdF9vcl9yZXBsYWNlIG9wdF9ubwogCQkJCW9wdF9ncmFudF9ncmFudF9vcHRpb24KLQkJCQlv cHRfbm93YWl0IG9wdF9pZl9leGlzdHMgb3B0X3dpdGhfZGF0YQorCQkJCW9wdF9ub3dhaXQgb3B0 X3NhZmUgb3B0X2lmX2V4aXN0cyBvcHRfd2l0aF9kYXRhCiAJCQkJb3B0X3RyYW5zYWN0aW9uX2No YWluCiAldHlwZSA8bGlzdD4JZ3JhbnRfcm9sZV9vcHRfbGlzdAogJXR5cGUgPGRlZmVsdD4JZ3Jh bnRfcm9sZV9vcHQKQEAgLTc3NCw3ICs3NzQsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog CVJFU0VUIFJFU1BFQ1RfUCBSRVNUQVJUIFJFU1RSSUNUIFJFVFVSTiBSRVRVUk5JTkcgUkVUVVJO UyBSRVZPS0UgUklHSFQgUk9MRSBST0xMQkFDSyBST0xMVVAKIAlST1VUSU5FIFJPVVRJTkVTIFJP VyBST1dTIFJVTEUKIAotCVNBVkVQT0lOVCBTQ0FMQVIgU0NIRU1BIFNDSEVNQVMgU0NST0xMIFNF QVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QKKwlTQUZFIFNBVkVQT0lOVCBTQ0FMQVIgU0NI RU1BIFNDSEVNQVMgU0NST0xMIFNFQVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QKIAlTRVFV RU5DRSBTRVFVRU5DRVMKIAlTRVJJQUxJWkFCTEUgU0VSVkVSIFNFU1NJT04gU0VTU0lPTl9VU0VS IFNFVCBTRVRTIFNFVE9GIFNIQVJFIFNIT1cKIAlTSU1JTEFSIFNJTVBMRSBTS0lQIFNNQUxMSU5U IFNOQVBTSE9UIFNPTUUgU09VUkNFIFNRTF9QIFNUQUJMRSBTVEFOREFMT05FX1AKQEAgLTkyOTEs MTQgKzkyOTEsMTUgQEAgZG9zdG10X29wdF9pdGVtOgogICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwog CiBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENBU1QgJygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcp JwotCQkJCQlXSVRIIEZVTkNUSU9OIGZ1bmN0aW9uX3dpdGhfYXJndHlwZXMgY2FzdF9jb250ZXh0 CisJCQkJCVdJVEggb3B0X3NhZmUgRlVOQ1RJT04gZnVuY3Rpb25fd2l0aF9hcmd0eXBlcyBjYXN0 X2NvbnRleHQKIAkJCQl7CiAJCQkJCUNyZWF0ZUNhc3RTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRl Q2FzdFN0bXQpOwogCiAJCQkJCW4tPnNvdXJjZXR5cGUgPSAkNDsKIAkJCQkJbi0+dGFyZ2V0dHlw ZSA9ICQ2OwotCQkJCQluLT5mdW5jID0gJDEwOwotCQkJCQluLT5jb250ZXh0ID0gKENvZXJjaW9u Q29udGV4dCkgJDExOworCQkJCQluLT5zYWZlID0gJDk7CisJCQkJCW4tPmZ1bmMgPSAkMTE7CisJ CQkJCW4tPmNvbnRleHQgPSAoQ29lcmNpb25Db250ZXh0KSAkMTI7CiAJCQkJCW4tPmlub3V0ID0g ZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC05MzA5LDYgKzkzMTAsNyBA QCBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENBU1QgJygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcp JwogCiAJCQkJCW4tPnNvdXJjZXR5cGUgPSAkNDsKIAkJCQkJbi0+dGFyZ2V0dHlwZSA9ICQ2Owor CQkJCQluLT5zYWZlID0gZmFsc2U7CiAJCQkJCW4tPmZ1bmMgPSBOVUxMOwogCQkJCQluLT5jb250 ZXh0ID0gKENvZXJjaW9uQ29udGV4dCkgJDEwOwogCQkJCQluLT5pbm91dCA9IGZhbHNlOwpAQCAt OTMyMSw2ICs5MzIzLDcgQEAgQ3JlYXRlQ2FzdFN0bXQ6IENSRUFURSBDQVNUICcoJyBUeXBlbmFt ZSBBUyBUeXBlbmFtZSAnKScKIAogCQkJCQluLT5zb3VyY2V0eXBlID0gJDQ7CiAJCQkJCW4tPnRh cmdldHR5cGUgPSAkNjsKKwkJCQkJbi0+c2FmZSA9IGZhbHNlOwogCQkJCQluLT5mdW5jID0gTlVM TDsKIAkJCQkJbi0+Y29udGV4dCA9IChDb2VyY2lvbkNvbnRleHQpICQxMDsKIAkJCQkJbi0+aW5v dXQgPSB0cnVlOwpAQCAtOTMzMyw2ICs5MzM2LDkgQEAgY2FzdF9jb250ZXh0OiAgQVMgSU1QTElD SVRfUAkJCQkJeyAkJCA9IENPRVJDSU9OX0lNUExJQ0lUOyB9CiAJCXwgLypFTVBUWSovCQkJCQkJ CQl7ICQkID0gQ09FUkNJT05fRVhQTElDSVQ7IH0KIAkJOwogCitvcHRfc2FmZTogU0FGRQkJCQkJ CXsgJCQgPSB0cnVlOyB9CisJCXwgLypFTVBUWSovCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOwog CiBEcm9wQ2FzdFN0bXQ6IERST1AgQ0FTVCBvcHRfaWZfZXhpc3RzICcoJyBUeXBlbmFtZSBBUyBU eXBlbmFtZSAnKScgb3B0X2Ryb3BfYmVoYXZpb3IKIAkJCQl7CkBAIC0xODEwOCw2ICsxODExNCw3 IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgUk9VVElORVMKIAkJCXwgUk9XUwogCQkJfCBS VUxFCisJCQl8IFNBRkUKIAkJCXwgU0FWRVBPSU5UCiAJCQl8IFNDQUxBUgogCQkJfCBTQ0hFTUEK QEAgLTE4NzQ0LDYgKzE4NzUxLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBST1cKIAkJ CXwgUk9XUwogCQkJfCBSVUxFCisJCQl8IFNBRkUKIAkJCXwgU0FWRVBPSU5UCiAJCQl8IFNDQUxB UgogCQkJfCBTQ0hFTUEKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGExMGVjNjRhNzA4Li4x ZTFmYTViMWYyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC0zMDUxLDcgKzMwNTEsNiBA QCBDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4 cHIsIE5vZGUgKnNvdXJjZWV4cHIsIE9pZAogewogCUhlYXBUdXBsZQl0dXBsZTsKIAlib29sIAll cnJvcnNhZmUgPSB0cnVlOwotCWJvb2wJdXNlcmRlZmluZWQgPSBmYWxzZTsKIAlPaWQJCWlucHV0 QmFzZVR5cGU7CiAJT2lkCQl0YXJnZXRCYXNlVHlwZTsKIAlPaWQgCWlucHV0RWxlbWVudFR5cGU7 CkBAIC0zMTIzLDExICszMTIyLDggQEAgQ29lcmNpb25FcnJvclNhZmVDaGVjayhQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmNhc3RleHByLCBOb2RlICpzb3VyY2VleHByLCBPaWQKIAkJewogCQkJ Rm9ybV9wZ19jYXN0IGNhc3RGb3JtID0gKEZvcm1fcGdfY2FzdCkgR0VUU1RSVUNUKHR1cGxlKTsK IAotCQkJaWYgKGNhc3RGb3JtLT5vaWQgPiBGaXJzdFVucGlubmVkT2JqZWN0SWQpCi0JCQl7CisJ CQlpZiAoT2lkSXNWYWxpZChjYXN0Rm9ybS0+Y2FzdGZ1bmMpICYmICFjYXN0Rm9ybS0+Y2FzdGVy cm9yc2FmZSkKIAkJCQllcnJvcnNhZmUgPSBmYWxzZTsKLQkJCQl1c2VyZGVmaW5lZCA9IHRydWU7 Ci0JCQl9CiAKIAkJCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CiAJCX0KQEAgLTMxNDEsOSArMzEz Nyw3IEBAIENvZXJjaW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpj YXN0ZXhwciwgTm9kZSAqc291cmNlZXhwciwgT2lkCiAJCQkJCSAgIGZvcm1hdF90eXBlX2JlKHRh cmdldFR5cGUpLAogCQkJCQkgICAiREVGQVVMVCIsCiAJCQkJCSAgICJDQVNUIC4uLiBPTiBDT05W RVJTSU9OIEVSUk9SIiksCi0JCQkJdXNlcmRlZmluZWQKLQkJCQk/IGVycmhpbnQoIlNhZmUgdHlw ZSBjYXN0IGZvciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIikKLQkJ CQk6IGVycmhpbnQoIkV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBu b3QgZXJyb3Igc2FmZSIpLAorCQkJCWVycmhpbnQoIkV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBi dXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Igc2FmZSIpLAogCQkJCXBhcnNlcl9lcnJwb3NpdGlv bihwc3RhdGUsIGV4cHJMb2NhdGlvbihzb3VyY2VleHByKSkpOwogfQogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19j YXN0LmRhdAppbmRleCBmYmZkNjY5NTg3Zi4uY2E1MmNmY2QwODYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19j YXN0LmRhdApAQCAtMTksNjUgKzE5LDY1IEBACiAjIGludDItPmludDQtPmludDgtPm51bWVyaWMt PmZsb2F0NC0+ZmxvYXQ4LCB3aGlsZSBjYXN0cyBpbiB0aGUKICMgcmV2ZXJzZSBkaXJlY3Rpb24g YXJlIGFzc2lnbm1lbnQtb25seS4KIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQg PT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50OCknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0 NChpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBj YXN0ZnVuYyA9PiAnZmxvYXQ4KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJn ZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhpbnQ4KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoaW50Mikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0 NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2Fz dHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChpbnQyKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVy aWMoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNh c3RmdW5jID0+ICdpbnQ4KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQg PT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQn LCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGludDQpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdm bG9hdDgoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnbnVtZXJp YycsIGNhc3RmdW5jID0+ICdudW1lcmljKGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0Jywg Y2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGZsb2F0NCknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIo ZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBj YXN0ZnVuYyA9PiAnaW50NChmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRh cmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChmbG9hdDQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsCi0gIGNhc3RmdW5jID0+ICdu dW1lcmljKGZsb2F0NCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0NCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGZsb2F0 OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1 bmMgPT4gJ2ludDIoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQg PT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxv YXQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChmbG9hdDgp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsCi0gIGNh c3RmdW5jID0+ICdudW1lcmljKGZsb2F0OCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0OCknLCBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9 PiAnaW50OChudW1lcmljKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIobnVtZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1l cmljJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KG51bWVyaWMpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsCi0gIGNhc3Rm dW5jID0+ICdmbG9hdDQobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdmbG9hdDQobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsCi0gIGNhc3RmdW5j ID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3RmdW5jID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnbW9uZXknLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251 bWVyaWMobW9uZXkpJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAogeyBjYXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnbW9uZXknLCBjYXN0 ZnVuYyA9PiAnbW9uZXkobnVtZXJpYyknLApAQCAtODksMTMgKzg5LDEzIEBACiAKICMgQWxsb3cg ZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4gaW50NCBhbmQgYm9vbAogeyBjYXN0c291cmNlID0+ ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnYm9vbCcsIGNhc3RmdW5jID0+ICdib29sKGludDQpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAn aW50NChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4geGlkOCBhbmQg eGlkCiB7IGNhc3Rzb3VyY2UgPT4gJ3hpZDgnLCBjYXN0dGFyZ2V0ID0+ICd4aWQnLCBjYXN0ZnVu YyA9PiAneGlkKHhpZDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIAogIyBPSUQgY2F0ZWdvcnk6IGFsbG93IGltcGxpY2l0IGNvbnZlcnNp b24gZnJvbSBhbnkgaW50ZWdyYWwgdHlwZSAoaW5jbHVkaW5nCiAjIGludDgsIHRvIHN1cHBvcnQg T0lEIGxpdGVyYWxzID4gMkcpIHRvIE9JRCwgYXMgd2VsbCBhcyBhc3NpZ25tZW50IGNvZXJjaW9u CkBAIC0xMDYsMTMgKzEwNiwxMyBAQAogIyBjYXN0cyBmcm9tIHRleHQgYW5kIHZhcmNoYXIgdG8g cmVnY2xhc3MsIHdoaWNoIGV4aXN0IG1haW5seSB0byBzdXBwb3J0CiAjIGxlZ2FjeSBmb3JtcyBv ZiBuZXh0dmFsKCkgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zLgogeyBjYXN0c291cmNlID0+ICdpbnQ4 JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDInLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnMCcs CkBAIC0xMjAsMTMgKzEyMCwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRh cmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0 dGFyZ2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAncmVncHJvY2VkdXJlJywgY2Fz dGZ1bmMgPT4gJzAnLApAQCAtMTM4LDEzICsxMzgsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVn cHJvY2VkdXJlJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5j ID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3Jl Z3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Jl Z3Byb2NlZHVyZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAn b2lkJywgY2FzdHRhcmdldCA9PiAncmVnb3BlcicsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE1Miwx MyArMTUyLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdv aWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXIn LCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4g J3JlZ29wZXInLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQn LCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXIn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICcw JywKQEAgLTE3MCwxMyArMTcwLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXJhdG9yJywg Y2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFy Z2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQyJywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQy KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBj YXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0b3InLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTg0LDEzICsxODQsMTMgQEAKIHsg Y2FzdHNvdXJjZSA9PiAncmVnY2xhc3MnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4g J29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNh c3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdl dCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdj bGFzcycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywg Y2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTk4LDEz ICsxOTgsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2FzdHRhcmdldCA9 PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdj b2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0 YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMg PT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3R0YXJnZXQg PT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVn dHlwZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTIxMiwxMyArMjEyLDEzIEBACiB7IGNhc3Rzb3Vy Y2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAn aW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBl JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4Jywg Y2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4g J3JlZ2NvbmZpZycsIGNhc3RmdW5jID0+ICcwJywKQEAgLTIyNiwxMyArMjI2LDEzIEBACiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4g J29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBj YXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0 ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRh cmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdy ZWdjb25maWcnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29p ZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0y NDAsMzEgKzI0MCwzMSBAQAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdHRh cmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ ICdyZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDIn LCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50Mikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdHRhcmdldCA9PiAnaW50OCcs IGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5Jywg Y2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRh cmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAncmVnY2xhc3MnLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAncmVnY2xh c3MnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0ZnVuYyA9PiAn b2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0 ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0 YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI3MiwxMyArMjcy LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJnZXQgPT4gJ29p ZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNw YWNlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0 ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAncmVnbmFtZXNwYWNlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0dGFyZ2V0ID0+ICdp bnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFi YXNlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjg2LDEzICsyODYsMTMgQEAKIHsgY2FzdHNvdXJj ZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJ29p ZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNh c3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywgY2Fz dHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIApAQCAtMzAyLDU3ICsz MDIsNTcgQEAKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXIn LCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn YicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNh c3RmdW5jID0+ICd0ZXh0KGJwY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFy Z2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoYnBjaGFyKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAn Y2hhcicsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChjaGFyKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAn YnBjaGFyKGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNo YXInLCBjYXN0ZnVuYyA9PiAndGV4dChjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ25hbWUnLCBjYXN0 dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQobmFtZSknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICduYW1lJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJ2JwY2hhcihuYW1l KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ25hbWUnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1 bmMgPT4gJ3ZhcmNoYXIobmFtZSknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9 PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFy JywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hh cih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICduYW1lJywgY2Fz dGZ1bmMgPT4gJ25hbWUodGV4dCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0 ID0+ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUoYnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Zh cmNoYXInLCBjYXN0dGFyZ2V0ID0+ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUodmFyY2hhcikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog CiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGJ5dGVhIGFuZCBpbnRlZ2VyIHR5 cGVzCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3Rm dW5jID0+ICdieXRlYShpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ ICdieXRlYScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgn LCBjYXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQ4KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQy KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNh c3RmdW5jID0+ICdpbnQ0KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdl dCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQg Y29lcmNpb25zIGJldHdlZW4gaW50NCBhbmQgImNoYXIiCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXIn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoY2hhciknLAotICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKGlu dDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIAogIyBwZ19ub2RlX3RyZWUgY2FuIGJlIGNvZXJjZWQgdG8sIGJ1dCBub3QgZnJvbSwgdGV4 dAogeyBjYXN0c291cmNlID0+ICdwZ19ub2RlX3RyZWUnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0Jywg Y2FzdGZ1bmMgPT4gJzAnLApAQCAtMzc4LDczICszNzgsNzMgQEAKIAogIyBEYXRldGltZSBjYXRl Z29yeQogeyBjYXN0c291cmNlID0+ICdkYXRlJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wJywK LSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcChkYXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcChkYXRlKScsIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdkYXRlJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wdHonLAot ICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHooZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eihkYXRlKScsIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAnaW50ZXJ2YWwnLCBj YXN0ZnVuYyA9PiAnaW50ZXJ2YWwodGltZSknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRh cmdldCA9PiAndGltZXR6JywgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1lKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ2RhdGUnLAotICBjYXN0ZnVuYyA9PiAnZGF0 ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLAotICBjYXN0ZnVuYyA9PiAndGltZSh0 aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Rp bWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6JywKLSAgY2FzdGZ1bmMgPT4gJ3Rp bWVzdGFtcHR6KHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAnZGF0ZScsCi0gIGNh c3RmdW5jID0+ICdkYXRlKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wdHopJywgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAndGltZScsCi0g IGNhc3RmdW5jID0+ICd0aW1lKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wdHopJywgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAndGltZXN0 YW1wJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcCh0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAo dGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2Fz dHRhcmdldCA9PiAndGltZXR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1lc3RhbXB0eikn LCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ ICd0aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludGVydmFs JywgY2FzdHRhcmdldCA9PiAndGltZScsIGNhc3RmdW5jID0+ICd0aW1lKGludGVydmFsKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAn dGltZSh0aW1ldHopJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIAogIyBHZW9tZXRyaWMgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAncG9p bnQnLCBjYXN0dGFyZ2V0ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KHBvaW50KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnbHNlZycsIGNhc3R0YXJnZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50 KGxzZWcpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdwYXRoJywgY2FzdHRhcmdldCA9PiAncG9seWdvbicsIGNh c3RmdW5jID0+ICdwb2x5Z29uKHBhdGgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBjYXN0dGFyZ2V0 ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChib3gpJywKLSAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gn LCBjYXN0dGFyZ2V0ID0+ICdsc2VnJywgY2FzdGZ1bmMgPT4gJ2xzZWcoYm94KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9seWdvbicsIGNhc3RmdW5jID0+ICdwb2x5Z29u KGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ2NpcmNsZScsIGNhc3Rm dW5jID0+ICdjaXJjbGUoYm94KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQg PT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50KHBvbHlnb24pJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdw b2x5Z29uJywgY2FzdHRhcmdldCA9PiAncGF0aCcsIGNhc3RmdW5jID0+ICdwYXRoJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4gJ2JveChw b2x5Z29uKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ2NpcmNsZScs Ci0gIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdvbiknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdvbiknLCBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3Rm dW5jID0+ICdwb2ludChjaXJjbGUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0 ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KGNpcmNsZSknLAotICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpcmNs ZScsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLAotICBjYXN0ZnVuYyA9PiAncG9seWdvbihjaXJj bGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVu YyA9PiAncG9seWdvbihjaXJjbGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJ30sCiAKICMgTUFDIGFkZHJlc3MgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnbWFjYWRk cicsIGNhc3R0YXJnZXQgPT4gJ21hY2FkZHI4JywgY2FzdGZ1bmMgPT4gJ21hY2FkZHI4JywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnbWFjYWRkcjgnLCBjYXN0dGFyZ2V0ID0+ICdtYWNhZGRyJywgY2FzdGZ1bmMg PT4gJ21hY2FkZHInLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogCiAjIElORVQgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNh c3R0YXJnZXQgPT4gJ2luZXQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJn ZXQgPT4gJ2NpZHInLCBjYXN0ZnVuYyA9PiAnY2lkcicsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQml0U3RyaW5nIGNhdGVnb3J5CiB7 IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmJpdCcsIGNhc3RmdW5jID0+ ICcwJywKQEAgLTQ1NCwxMyArNDU0LDEzIEBACiAKICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgYmV0 d2VlbiBiaXQgYW5kIGludDQsIGludDgKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJn ZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoaW50OCxpbnQ0KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9PiAnYml0KGludDQsaW50NCkn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4g J2ludDgoYml0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBj YXN0ZnVuYyA9PiAnaW50NChiaXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJv bSBURVhUCiAjIFdlIG5lZWQgZW50cmllcyBoZXJlIG9ubHkgZm9yIGEgZmV3IHNwZWNpYWxpemVk IGNhc2VzIHdoZXJlIHRoZSBiZWhhdmlvcgpAQCAtNDcxLDY4ICs0NzEsNjggQEAKICMgYmVoYXZp b3Igd2lsbCBlbnN1ZSB3aGVuIHRoZSBhdXRvbWF0aWMgY2FzdCBpcyBhcHBsaWVkIGluc3RlYWQg b2YgdGhlCiAjIHBnX2Nhc3QgZW50cnkhCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFy Z2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bmV0JywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4 dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0 ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwK IHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIHRvIGFuZCBmcm9tIFZBUkNIQVIKICMgV2Ug c3VwcG9ydCBhbGwgdGhlIHNhbWUgY2FzdHMgYXMgZm9yIFRFWFQuCiB7IGNhc3Rzb3VyY2UgPT4g J2NpZHInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5j ID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ3Zh cmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNh c3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNh c3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNh c3RzIHRvIGFuZCBmcm9tIEJQQ0hBUgogIyBXZSBzdXBwb3J0IGFsbCB0aGUgc2FtZSBjYXN0cyBh cyBmb3IgVEVYVC4KIHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hh cicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0 YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGJvb2wp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAneG1sJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4 bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogCiAjIExlbmd0aC1jb2VyY2lvbiBmdW5jdGlvbnMKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFy JywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywKICAgY2FzdGZ1bmMgPT4gJ2JwY2hhcihicGNoYXIs aW50NCxib29sKScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsCiAgIGNhc3RmdW5jID0+ ICd2YXJjaGFyKHZhcmNoYXIsaW50NCxib29sKScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAndGltZScsIGNh c3RmdW5jID0+ICd0aW1lKHRpbWUsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBj YXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXAnLAogICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVz dGFtcCxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6JywKICAgY2Fz dGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KHRpbWVzdGFtcHR6LGludDQpJywgY2FzdGNvbnRleHQgPT4g J2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludGVydmFsJywgY2FzdHRhcmdl dCA9PiAnaW50ZXJ2YWwnLAogICBjYXN0ZnVuYyA9PiAnaW50ZXJ2YWwoaW50ZXJ2YWwsaW50NCkn LCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGlt ZXR6JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1l dHosaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3RmdW5jID0+ICd0aW1ldHoodGltZXR6LGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2JpdCcsIGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoYml0LGludDQsYm9v bCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICd2YXJiaXQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJiaXQnLCBjYXN0 ZnVuYyA9PiAndmFyYml0JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4g J251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhudW1lcmljLGludDQpJywgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJp YyhudW1lcmljLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMganNvbiB0by9mcm9tIGpzb25iCiB7IGNhc3Rz b3VyY2UgPT4gJ2pzb24nLCBjYXN0dGFyZ2V0ID0+ICdqc29uYicsIGNhc3RmdW5jID0+ICcwJywK QEAgLTU0MiwzNiArNTQyLDM2IEBACiAKICMganNvbmIgdG8gbnVtZXJpYyBhbmQgYm9vbCB0eXBl cwogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2Jvb2wnLCBjYXN0ZnVu YyA9PiAnYm9vbChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4g J251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhqc29uYiknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdq c29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50Mihqc29uYiknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAn aW50NChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDgn LCBjYXN0ZnVuYyA9PiAnaW50OChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0 YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoanNvbmIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4 KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiAKICMgcmFuZ2UgdG8gbXVsdGlyYW5nZQogeyBjYXN0c291cmNlID0+ICdpbnQ0cmFu Z2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdpbnQ0 bXVsdGlyYW5nZShpbnQ0cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDhyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ2ludDhtdWx0aXJh bmdlJywKICAgY2FzdGZ1bmMgPT4gJ2ludDhtdWx0aXJhbmdlKGludDhyYW5nZSknLCBjYXN0Y29u dGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtcmFuZ2UnLCBj YXN0dGFyZ2V0ID0+ICdudW1tdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ251bW11bHRpcmFu Z2UobnVtcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2RhdGVyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ2RhdGVtdWx0aXJhbmdlJywKICAg Y2FzdGZ1bmMgPT4gJ2RhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAn ZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndHNyYW5nZScsIGNhc3R0YXJnZXQg PT4gJ3RzbXVsdGlyYW5nZScsCi0gIGNhc3RmdW5jID0+ICd0c211bHRpcmFuZ2UodHNyYW5nZSkn LCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ ICd0c211bHRpcmFuZ2UodHNyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndHN0enJh bmdlJywgY2FzdHRhcmdldCA9PiAndHN0em11bHRpcmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAndHN0 em11bHRpcmFuZ2UodHN0enJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2Nhc3QuaAppbmRleCA2YTBjYTMzNzE1My4uYmY0NzU0NGY2NzUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfY2FzdC5oCkBAIC00Nyw2ICs0NywxMCBAQCBDQVRBTE9HKHBnX2Nhc3QsMjYw NSxDYXN0UmVsYXRpb25JZCkKIAogCS8qIGNhc3QgbWV0aG9kICovCiAJY2hhcgkJY2FzdG1ldGhv ZDsKKworCS8qIGNhc3QgZnVuY3Rpb24gZXJyb3Igc2FmZSAqLworCWJvb2wJCWNhc3RlcnJvcnNh ZmUgQktJX0RFRkFVTFQoZik7CisKIH0gRm9ybURhdGFfcGdfY2FzdDsKIAogLyogLS0tLS0tLS0t LS0tLS0tLQpAQCAtMTAxLDYgKzEwNSw3IEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIENhc3RDcmVh dGUoT2lkIHNvdXJjZXR5cGVpZCwKIAkJCQkJCQkJT2lkIG91dGNhc3RpZCwKIAkJCQkJCQkJY2hh ciBjYXN0Y29udGV4dCwKIAkJCQkJCQkJY2hhciBjYXN0bWV0aG9kLAorCQkJCQkJCQlib29sIGNh c3RlcnJvcnNhZmUsCiAJCQkJCQkJCURlcGVuZGVuY3lUeXBlIGJlaGF2aW9yKTsKIAogI2VuZGlm CQkJCQkJCS8qIFBHX0NBU1RfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDgyYjBmYjgz YjRiLi5lOTk0OTkxOTZjYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDE1NSw2ICs0MTU1 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlQ2FzdFN0bXQKIAlPYmplY3RXaXRoQXJncyAqZnVu YzsKIAlDb2VyY2lvbkNvbnRleHQgY29udGV4dDsKIAlib29sCQlpbm91dDsKKwlib29sCQlzYWZl OwogfSBDcmVhdGVDYXN0U3RtdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oCmluZGV4IDVkNGZlMjdlZjk2Li5mMmZmNjA5MWZkMiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApA QCAtMzk2LDYgKzM5Niw3IEBAIFBHX0tFWVdPUkQoInJvdXRpbmVzIiwgUk9VVElORVMsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJvdyIsIFJPVywgQ09MX05B TUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJvd3MiLCBST1dTLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJydWxlIiwgUlVMRSwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgic2FmZSIsIFNBRkUsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNhdmVwb2ludCIsIFNBVkVQ T0lOVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgic2NhbGFy IiwgU0NBTEFSLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJz Y2hlbWEiLCBTQ0hFTUEsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKaW5kZXggMDA1NGVkMGVmNjcuLjFlMzJj MDQxYjlmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0 Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dApAQCAt ODEsNiArODEsMTIgQEAgTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjYXN0IGZyb20gaW50ZWdl ciB0byBjYXN0dGVzdHR5cGUKIC0tIFRyeSBpdCB3aXRoIGEgZnVuY3Rpb24gdGhhdCByZXF1aXJl cyBhbiBpbXBsaWNpdCBjYXN0CiBDUkVBVEUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBS RVRVUk5TIHRleHQgTEFOR1VBR0UgU1FMIEFTCiAkJCBTRUxFQ1QgKCdiYXInOjp0ZXh0IHx8ICQx Ojp0ZXh0KTsgJCQ7CitDUkVBVEUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dF9wbHBnKGludDQpIFJF VFVSTlMgdGV4dCBMQU5HVUFHRSBwbHBnc3FsIEFTCiskJCBCRUdJTiBSRVRVUk4gKCdiYXInOjp0 ZXh0IHx8ICQxOjp0ZXh0KTsgRU5EICQkOworQ1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0 eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBBUyBJTVBMSUNJVDsg LS0gZXJyb3IKK0VSUk9SOiAgU2FmZSB0eXBlIGNhc3QgZnVuY3Rpb25zIGFyZSBvbmx5IHN1cHBv cnRlZCBmb3IgQyBhbmQgaW50ZXJuYWwgbGFuZ3VhZ2VzCitDUkVBVEUgQ0FTVCAoaW50NCBBUyBj YXN0dGVzdHR5cGUpIFdJVEggU0FGRSBGVU5DVElPTiBiYXJfaW50NF90ZXh0X3BscGcoaW50NCkg QVMgSU1QTElDSVQ7IC0tIGVycm9yCitFUlJPUjogIFNhZmUgdHlwZSBjYXN0IGZ1bmN0aW9ucyBh cmUgb25seSBzdXBwb3J0ZWQgZm9yIEMgYW5kIGludGVybmFsIGxhbmd1YWdlcwogQ1JFQVRFIENB U1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50 NCkgQVMgSU1QTElDSVQ7CiBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91 bGQgd29yayBub3cKICBjYXN0dGVzdHR5cGUgCkBAIC05Miw3ICs5OCw3IEBAIFNFTEVDVCBDQVNU KDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsgLS0gZXJyCiBFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgaW50ZWdlciB0byBjYXN0dGVz dHR5cGUgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9O IENPTlZFUlNJT04gRVJST1IKIExJTkUgMTogU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0 dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFLi4uCiAgICAgICAgICAgICAgICAgICAgIF4K LUhJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0 IHN1cHBvcnRlZAorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlv biBpcyBub3QgZXJyb3Igc2FmZQogLS0gY2hlY2sgZGVwZW5kZW5jaWVzIGdlbmVyYXRlZCBmb3Ig dGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQp IGFzIG9iaiwKICAgICAgICBwZ19kZXNjcmliZV9vYmplY3QocmVmY2xhc3NpZCwgcmVmb2JqaWQs IHJlZm9ianN1YmlkKSBhcyBvYmpyZWYsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29wcl9zYW5pdHkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2Fu aXR5Lm91dAppbmRleCBhMzU3ZTFkMGMwZS4uODFlYTI0NDg1OWYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dApAQCAtOTQzLDggKzk0Myw4IEBAIFNFTEVDVCAqCiBG Uk9NIHBnX2Nhc3QgYwogV0hFUkUgY2FzdHNvdXJjZSA9IDAgT1IgY2FzdHRhcmdldCA9IDAgT1Ig Y2FzdGNvbnRleHQgTk9UIElOICgnZScsICdhJywgJ2knKQogICAgIE9SIGNhc3RtZXRob2QgTk9U IElOICgnZicsICdiJyAsJ2knKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNh c3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwg Y2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1l dGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCBy b3dzKQogCiAtLSBDaGVjayB0aGF0IGNhc3RmdW5jIGlzIG5vbnplcm8gb25seSBmb3IgY2FzdCBt ZXRob2RzIHRoYXQgbmVlZCBhIGZ1bmN0aW9uLApAQCAtOTUzLDggKzk1Myw4IEBAIFNFTEVDVCAq CiBGUk9NIHBnX2Nhc3QgYwogV0hFUkUgKGNhc3RtZXRob2QgPSAnZicgQU5EIGNhc3RmdW5jID0g MCkKICAgIE9SIChjYXN0bWV0aG9kIElOICgnYicsICdpJykgQU5EIGNhc3RmdW5jIDw+IDApOwot IG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8 IGNhc3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdl dCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAK Ky0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIExvb2sgZm9yIGNh c3RzIHRvL2Zyb20gdGhlIHNhbWUgdHlwZSB0aGF0IGFyZW4ndCBsZW5ndGggY29lcmNpb24gZnVu Y3Rpb25zLgpAQCAtOTYzLDE1ICs5NjMsMTUgQEAgV0hFUkUgKGNhc3RtZXRob2QgPSAnZicgQU5E IGNhc3RmdW5jID0gMCkKIFNFTEVDVCAqCiBGUk9NIHBnX2Nhc3QgYwogV0hFUkUgY2FzdHNvdXJj ZSA9IGNhc3R0YXJnZXQgQU5EIGNhc3RmdW5jID0gMDsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2Fz dHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250 ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tCiAoMCByb3dzKQogCiBTRUxFQ1QgYy4qCiBGUk9NIHBnX2Nhc3QgYywgcGdfcHJvYyBw CiBXSEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5EIHAucHJvbmFyZ3MgPCAyIEFORCBjYXN0c291 cmNlID0gY2FzdHRhcmdldDsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3Rm dW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2Fz dHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhv ZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dz KQogCiAtLSBMb29rIGZvciBjYXN0IGZ1bmN0aW9ucyB0aGF0IGRvbid0IGhhdmUgdGhlIHJpZ2h0 IHNpZ25hdHVyZS4gIFRoZQpAQCAtOTg5LDggKzk4OSw4IEBAIFdIRVJFIGMuY2FzdGZ1bmMgPSBw Lm9pZCBBTkQKICAgICAgICAgICAgICBPUiAoYy5jYXN0c291cmNlID0gJ2NoYXJhY3Rlcic6OnJl Z3R5cGUgQU5ECiAgICAgICAgICAgICAgICAgIHAucHJvYXJndHlwZXNbMF0gPSAndGV4dCc6OnJl Z3R5cGUpKQogICAgICBPUiBOT1QgYmluYXJ5X2NvZXJjaWJsZShwLnByb3JldHR5cGUsIGMuY2Fz dHRhcmdldCkpOwotIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBj YXN0Y29udGV4dCB8IGNhc3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNl IHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2Fz dGVycm9yc2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIFNF TEVDVCBjLioKQEAgLTk5OCw4ICs5OTgsOCBAQCBGUk9NIHBnX2Nhc3QgYywgcGdfcHJvYyBwCiBX SEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5ECiAgICAgKChwLnByb25hcmdzID4gMSBBTkQgcC5w cm9hcmd0eXBlc1sxXSAhPSAnaW50NCc6OnJlZ3R5cGUpIE9SCiAgICAgIChwLnByb25hcmdzID4g MiBBTkQgcC5wcm9hcmd0eXBlc1syXSAhPSAnYm9vbCc6OnJlZ3R5cGUpKTsKLSBvaWQgfCBjYXN0 c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9k IAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVu YyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBMb29rIGZvciBiaW5hcnkgY29tcGF0 aWJsZSBjYXN0cyB0aGF0IGRvIG5vdCBoYXZlIHRoZSByZXZlcnNlCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9j cmVhdGVfY2FzdC5zcWwKaW5kZXggMGExNWE3OTVkODcuLjMwYTBmZjA3N2M5IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02MCw2ICs2MCwxMSBAQCBEUk9QIEZVTkNUSU9O IGludDRfY2FzdHRlc3R0eXBlKGludDQpIENBU0NBREU7CiBDUkVBVEUgRlVOQ1RJT04gYmFyX2lu dDRfdGV4dChpbnQ0KSBSRVRVUk5TIHRleHQgTEFOR1VBR0UgU1FMIEFTCiAkJCBTRUxFQ1QgKCdi YXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgJCQ7CiAKK0NSRUFURSBGVU5DVElPTiBiYXJfaW50NF90 ZXh0X3BscGcoaW50NCkgUkVUVVJOUyB0ZXh0IExBTkdVQUdFIHBscGdzcWwgQVMKKyQkIEJFR0lO IFJFVFVSTiAoJ2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyBFTkQgJCQ7CisKK0NSRUFURSBDQVNU IChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBTQUZFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQo aW50NCkgQVMgSU1QTElDSVQ7IC0tIGVycm9yCitDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVz dHR5cGUpIFdJVEggU0FGRSBGVU5DVElPTiBiYXJfaW50NF90ZXh0X3BscGcoaW50NCkgQVMgSU1Q TElDSVQ7IC0tIGVycm9yCiBDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEgg RlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBBUyBJTVBMSUNJVDsKIFNFTEVDVCAxMjM0Ojpp bnQ0OjpjYXN0dGVzdHR5cGU7IC0tIFNob3VsZCB3b3JrIG5vdwogU0VMRUNUIENBU1QoMTIzNDo6 aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAt LSBlcnJvcgotLSAKMi4zNC4xCgo= --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0021-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v16-0021-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq2u3 RnJvbSA3ZGRiMTgxYzc2ZDhjZmUzYjg3NGUxN2FjYmI0OGI4YTcyZmI4NGEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMTMgRGVjIDIwMjUgMjI6NTc6MjEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAyMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBnZW9tZXRyeSBkYXRhIHR5cGUKCnNlbGVj dCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBwcC5wcm9zcmMKZnJv bSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVuYwpqb2lu IHBnX3R5cGUgcHQgb24gcHQub2lkID0gY2FzdHNvdXJjZQpqb2luIHBnX3R5cGUgcHQxIG9uIHB0 MS5vaWQgPSBjYXN0dGFyZ2V0CmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kICBwdC50eXBhcnJheSA8 PiAwCmFuZCBwdC50eXBuYW1lc3BhY2UgPSAncGdfY2F0YWxvZyc6OnJlZ25hbWVzcGFjZQphbmQg cHQxLnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCAocHQudHlw Y2F0ZWdvcnkgID0gJ0cnIG9yIHB0MS50eXBjYXRlZ29yeSAgPSAnRycpCm9yZGVyIGJ5IGNhc3Rz b3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCAgICBwcm9zcmMKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0KIHBvaW50ICAgICAgfCBib3ggICAgICAgIHwgcG9pbnRfYm94CiBsc2VnICAgICAgIHwgcG9p bnQgICAgICB8IGxzZWdfY2VudGVyCiBwYXRoICAgICAgIHwgcG9seWdvbiAgICB8IHBhdGhfcG9s eQogYm94ICAgICAgICB8IHBvaW50ICAgICAgfCBib3hfY2VudGVyCiBib3ggICAgICAgIHwgbHNl ZyAgICAgICB8IGJveF9kaWFnb25hbAogYm94ICAgICAgICB8IHBvbHlnb24gICAgfCBib3hfcG9s eQogYm94ICAgICAgICB8IGNpcmNsZSAgICAgfCBib3hfY2lyY2xlCiBwb2x5Z29uICAgIHwgcG9p bnQgICAgICB8IHBvbHlfY2VudGVyCiBwb2x5Z29uICAgIHwgcGF0aCAgICAgICB8IHBvbHlfcGF0 aAogcG9seWdvbiAgICB8IGJveCAgICAgICAgfCBwb2x5X2JveAogcG9seWdvbiAgICB8IGNpcmNs ZSAgICAgfCBwb2x5X2NpcmNsZQogY2lyY2xlICAgICB8IHBvaW50ICAgICAgfCBjaXJjbGVfY2Vu dGVyCiBjaXJjbGUgICAgIHwgYm94ICAgICAgICB8IGNpcmNsZV9ib3gKIGNpcmNsZSAgICAgfCBw b2x5Z29uICAgIHwKKDE0IHJvd3MpCgphbHJlYWR5IGVycm9yIHNhZmU6IHBvaW50X2JveCwgYm94 X2RpYWdvbmFsLCBib3hfcG9seSwgcG9seV9wYXRoLCBwb2x5X2JveCwKY2lyY2xlX2NlbnRlcgpU aGlzIHBhdGNoIG1ha2UgdGhlc2UgZnVuY3Rpb25zIGVycm9yIHNhZmU6IHBhdGhfcG9seSwgbHNl Z19jZW50ZXIsIGJveF9jZW50ZXIsCmJveF9jaXJjbGUsIHBvbHlfY2VudGVyLCBwb2x5X2NpcmNs ZSwgY2lyY2xlX2JveAoKY2FuIG5vdCBlcnJvciBzYWZlOiBjYXN0IGNpcmNsZSB0byBwb2x5Z29u LCBiZWNhdXNlIGl0J3MgYSBTUUwgZnVuY3Rpb24KZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9DQUNKdWZ4SENNenJIT1c9d1JlOEwzMHJNaEIzc2p3QXYxTEU5MjhGYTdzeE11MVR4LWdA bWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgMTk0 ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUzIGlu c2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9nZW9fb3BzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4 IDVjM2I5ZTJlZDYwLi44MzRmNDI4NDE1OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2dlb19vcHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC03 Nyw3ICs3Nyw4IEBAIGVudW0gcGF0aF9kZWxpbQogCiAvKiBSb3V0aW5lcyBmb3IgcG9pbnRzICov CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfY29uc3RydWN0KFBvaW50ICpyZXN1bHQsIGZsb2F0 OCB4LCBmbG9hdDggeSk7Ci1zdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfYWRkX3BvaW50KFBvaW50 ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSB2b2lkIHBv aW50X2FkZF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyLAorCQkJ CSAgIE5vZGUgKmVzY29udGV4dCk7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfc3ViX3BvaW50 KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwogc3RhdGljIGlubGluZSB2 b2lkIHBvaW50X211bF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQy KTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9kaXZfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9p bnQgKnB0MSwgUG9pbnQgKnB0Mik7CkBAIC0xMDgsNyArMTA5LDcgQEAgc3RhdGljIGZsb2F0OCBs c2VnX2Nsb3NlcHRfbHNlZyhQb2ludCAqcmVzdWx0LCBMU0VHICpvbl9sc2VnLCBMU0VHICp0b19s c2VnKTsKIAogLyogUm91dGluZXMgZm9yIGJveGVzICovCiBzdGF0aWMgaW5saW5lIHZvaWQgYm94 X2NvbnN0cnVjdChCT1ggKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7Ci1zdGF0aWMg dm9pZCBib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gpOworc3RhdGljIHZvaWQgYm94X2Nu KFBvaW50ICpjZW50ZXIsIEJPWCAqYm94LCBOb2RlKiBlc2NvbnRleHQpOwogc3RhdGljIGJvb2wg Ym94X292KEJPWCAqYm94MSwgQk9YICpib3gyKTsKIHN0YXRpYyBmbG9hdDggYm94X2FyKEJPWCAq Ym94KTsKIHN0YXRpYyBmbG9hdDggYm94X2h0KEJPWCAqYm94KTsKQEAgLTEyNSw3ICsxMjYsNyBA QCBzdGF0aWMgZmxvYXQ4IGNpcmNsZV9hcihDSVJDTEUgKmNpcmNsZSk7CiAKIC8qIFJvdXRpbmVz IGZvciBwb2x5Z29ucyAqLwogc3RhdGljIHZvaWQgbWFrZV9ib3VuZF9ib3goUE9MWUdPTiAqcG9s eSk7Ci1zdGF0aWMgdm9pZCBwb2x5X3RvX2NpcmNsZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAq cG9seSk7CitzdGF0aWMgYm9vbCBwb2x5X3RvX2NpcmNsZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdP TiAqcG9seSwgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBib29sIGxzZWdfaW5zaWRlX3BvbHko UG9pbnQgKmEsIFBvaW50ICpiLCBQT0xZR09OICpwb2x5LCBpbnQgc3RhcnQpOwogc3RhdGljIGJv b2wgcG9seV9jb250YWluX3BvbHkoUE9MWUdPTiAqY29udGFpbnNfcG9seSwgUE9MWUdPTiAqY29u dGFpbmVkX3BvbHkpOwogc3RhdGljIGJvb2wgcGxpc3Rfc2FtZShpbnQgbnB0cywgUG9pbnQgKnAx LCBQb2ludCAqcDIpOwpAQCAtODM2LDggKzgzNyw4IEBAIGJveF9kaXN0YW5jZShQR19GVU5DVElP Tl9BUkdTKQogCVBvaW50CQlhLAogCQkJCWI7CiAKLQlib3hfY24oJmEsIGJveDEpOwotCWJveF9j bigmYiwgYm94Mik7CisJYm94X2NuKCZhLCBib3gxLCBOVUxMKTsKKwlib3hfY24oJmIsIGJveDIs IE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChwb2ludF9kdCgmYSwgJmIsIE5VTEwpKTsKIH0K QEAgLTg1MSw3ICs4NTIsOSBAQCBib3hfY2VudGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQk9YCQkg ICAqYm94ID0gUEdfR0VUQVJHX0JPWF9QKDApOwogCVBvaW50CSAgICpyZXN1bHQgPSBwYWxsb2Nf b2JqZWN0KFBvaW50KTsKIAotCWJveF9jbihyZXN1bHQsIGJveCk7CisJYm94X2NuKHJlc3VsdCwg Ym94LCBmY2luZm8tPmNvbnRleHQpOworCWlmICgoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8t PmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJl c3VsdCk7CiB9CkBAIC04NjksMTMgKzg3MiwyNiBAQCBib3hfYXIoQk9YICpib3gpCiAvKgkJYm94 X2NuCS0JCXN0b3JlcyB0aGUgY2VudGVycG9pbnQgb2YgdGhlIGJveCBpbnRvICpjZW50ZXIuCiAg Ki8KIHN0YXRpYyB2b2lkCi1ib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gpCitib3hfY24o UG9pbnQgKmNlbnRlciwgQk9YICpib3gsIE5vZGUgKmVzY29udGV4dCkKIHsKLQljZW50ZXItPngg PSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueCwgYm94LT5sb3cueCksIDIuMCk7Ci0J Y2VudGVyLT55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLnksIGJveC0+bG93Lnkp LCAyLjApOworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0gZmxvYXQ4X3BsX3NhZmUo Ym94LT5oaWdoLngsIGJveC0+bG93LngsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0ND VVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuOworCisJY2VudGVyLT54ID0gZmxvYXQ4X2Rpdl9z YWZlKHgsIDIuMCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRl eHQpKQorCQlyZXR1cm47CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLnksIGJveC0+ bG93LnksIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkK KwkJcmV0dXJuOworCisJY2VudGVyLT55ID0gZmxvYXQ4X2Rpdl9zYWZlKHksIDIuMCwgZXNjb250 ZXh0KTsKIH0KIAotCiAvKgkJYm94X3dkCS0JCXJldHVybnMgdGhlIHdpZHRoIChsZW5ndGgpIG9m IHRoZSBib3gKICAqCQkJCQkJCQkgIChob3Jpem9udGFsIG1hZ25pdHVkZSkuCiAgKi8KQEAgLTIz MjgsMTMgKzIzNDQsMzEgQEAgbHNlZ19jZW50ZXIoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlMU0VH CSAgICpsc2VnID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlQb2ludAkgICAqcmVzdWx0OworCWZs b2F0OAkJeDsKKwlmbG9hdDgJCXk7CiAKIAlyZXN1bHQgPSBwYWxsb2Nfb2JqZWN0KFBvaW50KTsK IAotCXJlc3VsdC0+eCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGxzZWctPnBbMF0ueCwgbHNlZy0+ cFsxXS54KSwgMi4wKTsKLQlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChsc2VnLT5w WzBdLnksIGxzZWctPnBbMV0ueSksIDIuMCk7CisJeCA9IGZsb2F0OF9wbF9zYWZlKGxzZWctPnBb MF0ueCwgbHNlZy0+cFsxXS54LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKworCXJlc3VsdC0+eCA9IGZs b2F0OF9kaXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1Jf T0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJeSA9IGZsb2F0OF9w bF9zYWZlKGxzZWctPnBbMF0ueSwgbHNlZy0+cFsxXS55LCBmY2luZm8tPmNvbnRleHQpOworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKwor CXJlc3VsdC0+eSA9IGZsb2F0OF9kaXZfc2FmZSh5LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwog CiAJUEdfUkVUVVJOX1BPSU5UX1AocmVzdWx0KTsKKworZmFpbDoKKwlQR19SRVRVUk5fTlVMTCgp OwogfQogCiAKQEAgLTMyODgsNyArMzMyMiw3IEBAIGJveF9pbnRlcnB0X2xzZWcoUG9pbnQgKnJl c3VsdCwgQk9YICpib3gsIExTRUcgKmxzZWcpCiAKIAlpZiAocmVzdWx0ICE9IE5VTEwpCiAJewot CQlib3hfY24oJnBvaW50LCBib3gpOworCQlib3hfY24oJnBvaW50LCBib3gsIE5VTEwpOwogCQls c2VnX2Nsb3NlcHRfcG9pbnQocmVzdWx0LCBsc2VnLCAmcG9pbnQpOwogCX0KIApAQCAtNDExOSwx MSArNDE1MywyMCBAQCBjb25zdHJ1Y3RfcG9pbnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCiBzdGF0 aWMgaW5saW5lIHZvaWQKLXBvaW50X2FkZF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQx LCBQb2ludCAqcHQyKQorcG9pbnRfYWRkX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEs IFBvaW50ICpwdDIsIE5vZGUgKmVzY29udGV4dCkKIHsKLQlwb2ludF9jb25zdHJ1Y3QocmVzdWx0 LAotCQkJCQlmbG9hdDhfcGwocHQxLT54LCBwdDItPngpLAotCQkJCQlmbG9hdDhfcGwocHQxLT55 LCBwdDItPnkpKTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9wbF9z YWZlKHB0MS0+eCwgcHQyLT54LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVE KGVzY29udGV4dCkpCisJCXJldHVybjsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShwdDEtPnksIHB0 Mi0+eSwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQor CQlyZXR1cm47CisKKwlwb2ludF9jb25zdHJ1Y3QocmVzdWx0LCB4LCB5KTsKIH0KIAogRGF0dW0K QEAgLTQxMzUsNyArNDE3OCw3IEBAIHBvaW50X2FkZChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVz dWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlwb2ludF9hZGRfcG9pbnQocmVzdWx0LCBw MSwgcDIpOworCXBvaW50X2FkZF9wb2ludChyZXN1bHQsIHAxLCBwMiwgTlVMTCk7CiAKIAlQR19S RVRVUk5fUE9JTlRfUChyZXN1bHQpOwogfQpAQCAtNDI0Nyw4ICs0MjkwLDggQEAgYm94X2FkZChQ R19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChCT1gpOwogCi0JcG9p bnRfYWRkX3BvaW50KCZyZXN1bHQtPmhpZ2gsICZib3gtPmhpZ2gsIHApOwotCXBvaW50X2FkZF9w b2ludCgmcmVzdWx0LT5sb3csICZib3gtPmxvdywgcCk7CisJcG9pbnRfYWRkX3BvaW50KCZyZXN1 bHQtPmhpZ2gsICZib3gtPmhpZ2gsIHAsIE5VTEwpOworCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0 LT5sb3csICZib3gtPmxvdywgcCwgTlVMTCk7CiAKIAlQR19SRVRVUk5fQk9YX1AocmVzdWx0KTsK IH0KQEAgLTQ0MTEsNyArNDQ1NCw3IEBAIHBhdGhfYWRkX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJ aW50CQkJaTsKIAogCWZvciAoaSA9IDA7IGkgPCBwYXRoLT5ucHRzOyBpKyspCi0JCXBvaW50X2Fk ZF9wb2ludCgmcGF0aC0+cFtpXSwgJnBhdGgtPnBbaV0sIHBvaW50KTsKKwkJcG9pbnRfYWRkX3Bv aW50KCZwYXRoLT5wW2ldLCAmcGF0aC0+cFtpXSwgcG9pbnQsIE5VTEwpOwogCiAJUEdfUkVUVVJO X1BBVEhfUChwYXRoKTsKIH0KQEAgLTQ0NjksNyArNDUxMiw3IEBAIHBhdGhfcG9seShQR19GVU5D VElPTl9BUkdTKQogCiAJLyogVGhpcyBpcyBub3QgdmVyeSBjb25zaXN0ZW50IC0tLSBvdGhlciBz aW1pbGFyIGNhc2VzIHJldHVybiBOVUxMIC4uLiAqLwogCWlmICghcGF0aC0+Y2xvc2VkKQotCQll cmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJ CShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCSBlcnJtc2co Im9wZW4gcGF0aCBjYW5ub3QgYmUgY29udmVydGVkIHRvIHBvbHlnb24iKSkpOwogCkBAIC00NTE5 LDcgKzQ1NjIsOSBAQCBwb2x5X2NlbnRlcihQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0g cGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlwb2x5X3RvX2NpcmNsZSgmY2lyY2xlLCBwb2x5KTsK KwlpZiAoIXBvbHlfdG9fY2lyY2xlKCZjaXJjbGUsIHBvbHksIGZjaW5mby0+Y29udGV4dCkpCisJ CVBHX1JFVFVSTl9OVUxMKCk7CisKIAkqcmVzdWx0ID0gY2lyY2xlLmNlbnRlcjsKIAogCVBHX1JF VFVSTl9QT0lOVF9QKHJlc3VsdCk7CkBAIC00OTgxLDcgKzUwMjYsNyBAQCBjaXJjbGVfYWRkX3B0 KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBwYWxsb2Nfb2JqZWN0KENJUkNMRSk7CiAK LQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmY2lyY2xlLT5jZW50ZXIsIHBvaW50 KTsKKwlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmY2lyY2xlLT5jZW50ZXIsIHBv aW50LCBOVUxMKTsKIAlyZXN1bHQtPnJhZGl1cyA9IGNpcmNsZS0+cmFkaXVzOwogCiAJUEdfUkVU VVJOX0NJUkNMRV9QKHJlc3VsdCk7CkBAIC01MjAyLDE0ICs1MjQ3LDMwIEBAIGNpcmNsZV9ib3go UEdfRlVOQ1RJT05fQVJHUykKIAogCWJveCA9IHBhbGxvY19vYmplY3QoQk9YKTsKIAotCWRlbHRh ID0gZmxvYXQ4X2RpdihjaXJjbGUtPnJhZGl1cywgc3FydCgyLjApKTsKKwlkZWx0YSA9IGZsb2F0 OF9kaXZfc2FmZShjaXJjbGUtPnJhZGl1cywgc3FydCgyLjApLCBmY2luZm8tPmNvbnRleHQpOwor CWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsK IAotCWJveC0+aGlnaC54ID0gZmxvYXQ4X3BsKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQli b3gtPmxvdy54ID0gZmxvYXQ4X21pKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmhp Z2gueSA9IGZsb2F0OF9wbChjaXJjbGUtPmNlbnRlci55LCBkZWx0YSk7Ci0JYm94LT5sb3cueSA9 IGZsb2F0OF9taShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSk7CisJYm94LT5oaWdoLnggPSBmbG9h dDhfcGxfc2FmZShjaXJjbGUtPmNlbnRlci54LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlp ZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisK Kwlib3gtPmxvdy54ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueCwgZGVsdGEsIGZj aW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0 KSkKKwkJZ290byBmYWlsOworCisJYm94LT5oaWdoLnkgPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUt PmNlbnRlci55LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NV UlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy55ID0gZmxv YXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueSwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwog CiAJUEdfUkVUVVJOX0JPWF9QKGJveCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0K IAogLyogYm94X2NpcmNsZSgpCkBAIC01MjIwLDE1ICs1MjgxLDM1IEBAIGJveF9jaXJjbGUoUEdf RlVOQ1RJT05fQVJHUykKIHsKIAlCT1gJCSAgICpib3ggPSBQR19HRVRBUkdfQk9YX1AoMCk7CiAJ Q0lSQ0xFCSAgICpjaXJjbGU7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCWNpcmNsZSA9 IHBhbGxvY19vYmplY3QoQ0lSQ0xFKTsKIAotCWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2 KGZsb2F0OF9wbChib3gtPmhpZ2gueCwgYm94LT5sb3cueCksIDIuMCk7Ci0JY2lyY2xlLT5jZW50 ZXIueSA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBib3gtPmxvdy55KSwgMi4w KTsKKwl4ID0gZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLngsIGJveC0+bG93LngsIGZjaW5mby0+ Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJ Z290byBmYWlsOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIs ICZib3gtPmhpZ2gsIE5VTEwpOworCWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUo eCwgMi4wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5m by0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShib3gtPmhp Z2gueSwgYm94LT5sb3cueSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NV UlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwljaXJjbGUtPmNlbnRlci55 ID0gZmxvYXQ4X2Rpdl9zYWZlKHksIDIuMCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9F UlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwljaXJjbGUt PnJhZGl1cyA9IHBvaW50X2R0KCZjaXJjbGUtPmNlbnRlciwgJmJveC0+aGlnaCwgZmNpbmZvLT5j b250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQln b3RvIGZhaWw7CiAKIAlQR19SRVRVUk5fQ0lSQ0xFX1AoY2lyY2xlKTsKKworZmFpbDoKKwlQR19S RVRVUk5fTlVMTCgpOwogfQogCiAKQEAgLTUyOTIsMTAgKzUzNzMsMTEgQEAgY2lyY2xlX3BvbHko UEdfRlVOQ1RJT05fQVJHUykKICAqIFhYWCBUaGlzIGFsZ29yaXRobSBzaG91bGQgdXNlIHdlaWdo dGVkIG1lYW5zIG9mIGxpbmUgc2VnbWVudHMKICAqCXJhdGhlciB0aGFuIHN0cmFpZ2h0IGF2ZXJh Z2UgdmFsdWVzIG9mIHBvaW50cyAtIHRnbCA5Ny8wMS8yMS4KICAqLwotc3RhdGljIHZvaWQKLXBv bHlfdG9fY2lyY2xlKENJUkNMRSAqcmVzdWx0LCBQT0xZR09OICpwb2x5KQorc3RhdGljIGJvb2wK K3BvbHlfdG9fY2lyY2xlKENJUkNMRSAqcmVzdWx0LCBQT0xZR09OICpwb2x5LCBOb2RlICplc2Nv bnRleHQpCiB7CiAJaW50CQkJaTsKKwlmbG9hdDgJCXg7CiAKIAlBc3NlcnQocG9seS0+bnB0cyA+ IDApOwogCkBAIC01MzA0LDE0ICs1Mzg2LDQzIEBAIHBvbHlfdG9fY2lyY2xlKENJUkNMRSAqcmVz dWx0LCBQT0xZR09OICpwb2x5KQogCXJlc3VsdC0+cmFkaXVzID0gMDsKIAogCWZvciAoaSA9IDA7 IGkgPCBwb2x5LT5ucHRzOyBpKyspCi0JCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5jZW50ZXIs ICZyZXN1bHQtPmNlbnRlciwgJnBvbHktPnBbaV0pOwotCXJlc3VsdC0+Y2VudGVyLnggPSBmbG9h dDhfZGl2KHJlc3VsdC0+Y2VudGVyLngsIHBvbHktPm5wdHMpOwotCXJlc3VsdC0+Y2VudGVyLnkg PSBmbG9hdDhfZGl2KHJlc3VsdC0+Y2VudGVyLnksIHBvbHktPm5wdHMpOworCXsKKwkJcG9pbnRf YWRkX3BvaW50KCZyZXN1bHQtPmNlbnRlciwKKwkJCQkJCSZyZXN1bHQtPmNlbnRlciwKKwkJCQkJ CSZwb2x5LT5wW2ldLAorCQkJCQkJZXNjb250ZXh0KTsKKwkJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoZXNjb250ZXh0KSkKKwkJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXN1bHQtPmNlbnRlci54 ID0gZmxvYXQ4X2Rpdl9zYWZlKHJlc3VsdC0+Y2VudGVyLngsCisJCQkJCQkJCQkgICBwb2x5LT5u cHRzLAorCQkJCQkJCQkJICAgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChl c2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXN1bHQtPmNlbnRlci55ID0gZmxvYXQ4 X2Rpdl9zYWZlKHJlc3VsdC0+Y2VudGVyLnksCisJCQkJCQkJCQkgICBwb2x5LT5ucHRzLAorCQkJ CQkJCQkJICAgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gZmFsc2U7CiAKIAlmb3IgKGkgPSAwOyBpIDwgcG9seS0+bnB0czsgaSsrKQot CQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9wbChyZXN1bHQtPnJhZGl1cywKLQkJCQkJCQkJICAg cG9pbnRfZHQoJnBvbHktPnBbaV0sICZyZXN1bHQtPmNlbnRlciwgTlVMTCkpOwotCXJlc3VsdC0+ cmFkaXVzID0gZmxvYXQ4X2RpdihyZXN1bHQtPnJhZGl1cywgcG9seS0+bnB0cyk7CisJeworCQl4 ID0gcG9pbnRfZHQoJnBvbHktPnBbaV0sICZyZXN1bHQtPmNlbnRlciwgZXNjb250ZXh0KTsKKwkJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJCXJldHVybiBmYWxzZTsKKwor CQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9wbF9zYWZlKHJlc3VsdC0+cmFkaXVzLCB4LCBlc2Nv bnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJu IGZhbHNlOworCX0KKworCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X2Rpdl9zYWZlKHJlc3VsdC0+ cmFkaXVzLCBwb2x5LT5ucHRzLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVE KGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOwogfQogCiBEYXR1 bQpAQCAtNTMyMiw3ICs1NDMzLDggQEAgcG9seV9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykKIAog CXJlc3VsdCA9IHBhbGxvY19vYmplY3QoQ0lSQ0xFKTsKIAotCXBvbHlfdG9fY2lyY2xlKHJlc3Vs dCwgcG9seSk7CisJaWYgKCFwb2x5X3RvX2NpcmNsZShyZXN1bHQsIHBvbHksIGZjaW5mby0+Y29u dGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fQ0lSQ0xFX1AocmVzdWx0 KTsKIH0KLS0gCjIuMzQuMQoK --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq2i0 RnJvbSA3OWFlNTg2ZTI5NzU3NDIwMjEzMDAwNDMzM2FmYjk3NjZkYzJmMGUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDM6MDYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAwNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBtYWNhZGRyOCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J21hY2FkZHI4 Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgIHBy b3NyYyAgICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBtYWNhZGRyOCAgIHwgbWFjYWRkciAgICB8ICAgICA0MTI0IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgbWFjYWRkcjh0b21hY2FkZHIgfCBtYWNhZGRyCigxIHJvdykKCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IGVhNzE1YTdhMGQ0Li4wMmI1ZWRiNDk2MCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDcgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdf RlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBwYWxsb2MwX29iamVjdChtYWNhZGRyKTsKIAogCWlm ICgoYWRkci0+ZCAhPSAweEZGKSB8fCAoYWRkci0+ZSAhPSAweEZFKSkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJtYWNhZGRy OCBkYXRhIG91dCBvZiByYW5nZSB0byBjb252ZXJ0IHRvIG1hY2FkZHIiKSwKIAkJCQkgZXJyaGlu dCgiT25seSBhZGRyZXNzZXMgdGhhdCBoYXZlIEZGIGFuZCBGRSBhcyB2YWx1ZXMgaW4gdGhlICIK LS0gCjIuMzQuMQoK --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0022-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Disposition: attachment; filename="v16-0022-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq2r2 RnJvbSBkZDQ5ZmE3NGRmMTJlYjkyMGZhZjdhMzA1MWUyMmExODZmNzdlZGJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMTUgRGVjIDIwMjUgMTI6Mjg6NDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAyMi8yM10gQ0FTVChleHByIEFTIG5ld3R5cGUgREVGQVVMVCBPTiBFUlJPUikKCiMgQnVtcHMg Y2F0dmVyc2lvbiByZXF1aXJlZC4KCiogV2l0aCB0aGlzIHBhdGNoc2V0LCBtb3N0IGZ1bmN0aW9u cyBpbiBwZ19jYXN0LmNhc3RmdW5jIGFyZSBub3cgZXJyb3Itc2FmZS4KKiBDb2VyY2VWaWFJTyBh bmQgQ29lcmNlVG9Eb21haW4gd2VyZSBhbHJlYWR5IGVycm9yLXNhZmUgaW4gdGhlIEhFQUQuCiog dGhpcyBwYXRjaCBleHRlbmRzIGVycm9yLXNhZmUgYmVoYXZpb3IgdG8gQXJyYXlDb2VyY2VFeHBy LgoqIFdlIGFsc28gZW5zdXJlIHRoYXQgd2hlbiBhIGNvZXJjaW9uIGZhaWxzLCBleGVjdXRpb24g ZmFsbHMgYmFjayB0byBldmFsdWF0aW5nCnRoZSBzcGVjaWZpZWQgZGVmYXVsdCBub2RlLgoqIFRo ZSBkb2MgaGFzIGJlZW4gcmVmaW5lZCwgdGhvdWdoIGl0IG1heSBzdGlsbCBuZWVkIG1vcmUgcmV2 aWV3LgoKZGVtbzoKU0VMRUNUIENBU1QoJzEnIEFTIGRhdGUgIERFRkFVTFQgJzIwMTEtMDEtMDEn IE9OIEVSUk9SKSwKICAgICAgIENBU1QoJ3syMzQsZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdl cltdIERFRkFVTFQgJ3stMTAxMX0nIE9OIEVSUk9SKTsKICAgIGRhdGUgICAgfCAgaW50NAotLS0t LS0tLS0tLS0rLS0tLS0tLS0tCiAyMDExLTAxLTAxIHwgey0xMDExfQoKWzBdOiBodHRwczovL2dp dC5wb3N0Z3Jlc3FsLm9yZy9jZ2l0L3Bvc3RncmVzcWwuZ2l0L2NvbW1pdC8/aWQ9YWFhZjk0NDll YzZiZTYyY2IwZDMwZWQzNTg4ZGMzODRmNTYyNzRiCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rn ci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRo UUBtYWlsLmdtYWlsLmNvbQotLS0KIGNvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQg ICAgICAgICAgICB8ICAgNSArCiBjb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQg ICAgICAgICAgfCAgIDUgKwogY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5zcWwgICAgICAgICAg ICAgICAgIHwgICAyICsKIC4uLi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91 dCAgICB8ICAyMyArLQogY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwg ICAgIHwgICA1ICsKIGRvYy9zcmMvc2dtbC9zeW50YXguc2dtbCAgICAgICAgICAgICAgICAgICAg ICB8ICAzMCArCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAg fCAxMDkgKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICAgICAg fCAgMjkgKwogc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgICAgICAgICAgIHwg IDI2ICsKIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2 MSArKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgIDUx ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMjIg Kwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgICAgICAgICAgICAgIHwgICA5ICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYyAgICAgICAgICAgICB8ICA3OCArLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgNDEyICsrKysr KysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwgICAz ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICAxNCAr CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jICAgICAgICAgICAgICAgfCAgMTQgKwog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgICAyICstCiBz cmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAgICAgICAgfCAgIDggKwogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgIDIxICsKIHNyYy9i YWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jICAgICAgICAgICAgICAgICB8ICAxNCArCiBzcmMvaW5j bHVkZS9leGVjdXRvci9leGVjRXhwci5oICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L2ZtZ3IuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMjEgKwogc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDExICsKIHNyYy9pbmNsdWRlL25vZGVz L3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAzNiArCiBzcmMvaW5jbHVkZS9vcHRpbWl6 ZXIvb3B0aW1pemVyLmggICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9jb2VyY2UuaCAgICAgICAgICAgICB8ICAxNSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X3R5cGUuaCAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y2FzdC5vdXQgICAgICAgICAgICB8IDgxMCArKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0ICAgICB8ICAgNSArCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0ICAgICAgfCAgIDcgKwogc3JjL3Rlc3QvcmVncmVz cy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9jYXN0LnNxbCAgICAgICAgICAgICAgICAgfCAzNTAgKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbCAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9lcXVpdmNsYXNzLnNxbCAgICAgICAgICAgfCAgIDMgKwogc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICAzICsKIDQwIGZpbGVzIGNoYW5nZWQs IDIxNzkgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQv ZXhwZWN0ZWQvY2l0ZXh0Lm91dCBiL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQK aW5kZXggOGMwYmY1NGYwZjMuLjMzZGExOWQ4ZGY0IDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4 dC9leHBlY3RlZC9jaXRleHQub3V0CisrKyBiL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4 dC5vdXQKQEAgLTEwLDYgKzEwLDExIEBAIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5PVCBh bXZhbGlkYXRlKG9wYy5vaWQpOwogLS0tLS0tLS0rLS0tLS0tLS0tCiAoMCByb3dzKQogCitTRUxF Q1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBjaGFyYWN0ZXIgdG8g Y2l0ZXh0IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBP TiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMg Y2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSS4uLgorICAgICAgICAgICAgICAgICAgICBe CitISU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHll dCBzdXBwb3J0ZWQKIC0tIFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25z CiAtLSBUZXN0ID0gYW5kIDw+LgogU0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMg dDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dCBiL2Nv bnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dAppbmRleCBjNWU1ZjE4MGYyYi4uNjQ3 ZWVhMTkxNDIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91 dAorKysgYi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQKQEAgLTEwLDYgKzEw LDExIEBAIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQp OwogLS0tLS0tLS0rLS0tLS0tLS0tCiAoMCByb3dzKQogCitTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBj aGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IK K0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBjaGFyYWN0ZXIgdG8gY2l0ZXh0IHdoZW4gREVGQVVM VCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9S CitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSS4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgU2FmZSB0eXBl IGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKIC0tIFRl c3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+ LgogU0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsIGIvY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5z cWwKaW5kZXggYWExY2Y5YWJkNWMuLjk5Nzk0NDk3ZDQ3IDEwMDY0NAotLS0gYS9jb250cmliL2Np dGV4dC9zcWwvY2l0ZXh0LnNxbAorKysgYi9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbApA QCAtOSw2ICs5LDggQEAgU0VMRUNUIGFtbmFtZSwgb3BjbmFtZQogRlJPTSBwZ19vcGNsYXNzIG9w YyBMRUZUIEpPSU4gcGdfYW0gYW0gT04gYW0ub2lkID0gb3BjbWV0aG9kCiBXSEVSRSBvcGMub2lk ID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsKIAorU0VMRUNUIENBU1QoJ2Fi Yyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAt LWVycm9yCisKIC0tIFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAK IC0tIFRlc3QgPSBhbmQgPD4uCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50 cy9leHBlY3RlZC9zZWxlY3Qub3V0IGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0 ZWQvc2VsZWN0Lm91dAppbmRleCA3NWM4OTZmMzg4NS4uNmU2Nzk5N2YwYTIgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQKKysrIGIvY29u dHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dApAQCAtNzMsNiArNzMs MjUgQEAgU0VMRUNUIDEgQVMgImludCIgT0ZGU0VUIDIgRkVUQ0ggRklSU1QgMyBST1cgT05MWTsK IC0tLS0tCiAoMCByb3dzKQogCistLWVycm9yIHNhZmUgdHlwZSBjYXN0CitTRUxFQ1QgQ0FTVCgn YScgQVMgaW50IERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0t CisgICAgMgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMTEnIEFTIGludCBERUZBVUxUIDIgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgMTEKKygxIHJvdykKKworU0VM RUNUIENBU1QoJzEyJyBBUyBudW1lcmljIERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyBudW1lcmljIAorLS0tLS0tLS0tCisgICAgICAxMgorKDEgcm93KQorCiAtLSBESVNUSU5DVCBh bmQgT1JERVIgQlkgcGF0dGVybnMKIC0tIFRyeSBzb21lIHF1ZXJ5IHBlcm11dGF0aW9ucyB3aGlj aCBvbmNlIHByb2R1Y2VkIGlkZW50aWNhbCBxdWVyeSBJRHMKIFNFTEVDVCBESVNUSU5DVCAxIEFT ICJpbnQiOwpAQCAtMjIyLDYgKzI0MSw4IEBAIFNFTEVDVCBjYWxscywgcm93cywgcXVlcnkgRlJP TSBwZ19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CiAgICAgIDIg fCAgICAyIHwgU0VMRUNUICQxIEFTICJpbnQiIE9SREVSIEJZIDEKICAgICAgMSB8ICAgIDIgfCBT RUxFQ1QgJDEgQVMgaSBVTklPTiBTRUxFQ1QgJDIgT1JERVIgQlkgaQogICAgICAxIHwgICAgMSB8 IFNFTEVDVCAkMSB8fCAkMgorICAgICAyIHwgICAgMiB8IFNFTEVDVCBDQVNUKCQxIEFTIGludCBE RUZBVUxUICQyIE9OIENPTlZFUlNJT04gRVJST1IpCisgICAgIDEgfCAgICAxIHwgU0VMRUNUIENB U1QoJDEgQVMgbnVtZXJpYyBERUZBVUxUICQyIE9OIENPTlZFUlNJT04gRVJST1IpCiAgICAgIDIg fCAgICAyIHwgU0VMRUNUIERJU1RJTkNUICQxIEFTICJpbnQiCiAgICAgIDAgfCAgICAwIHwgU0VM RUNUIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBx dWVyeSBDT0xMQVRFICJDIgogICAgICAxIHwgICAgMSB8IFNFTEVDVCBwZ19zdGF0X3N0YXRlbWVu dHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0CkBAIC0yMzAsNyArMjUxLDcgQEAgU0VMRUNUIGNh bGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBD T0xMQVRFICJDIjsKICAgICAgICB8ICAgICAgfCApICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgICAg IHwgICAgICB8ICAgU0VMRUNUIGYgRlJPTSB0IE9SREVSIEJZIGYKICAgICAgMSB8ICAgIDEgfCBz ZWxlY3QgJDE6Ompzb25iID8gJDIKLSgxNyByb3dzKQorKDE5IHJvd3MpCiAKIFNFTEVDVCBwZ19z dGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0OwogIHQgCmRpZmYgLS1naXQg YS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbCBiL2NvbnRyaWIvcGdf c3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsCmluZGV4IDExNjYyY2RlMDhjLi43ZWU4MTYw ZmQ4NCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5z cWwKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwKQEAgLTI1 LDYgKzI1LDExIEBAIFNFTEVDVCAxIEFTICJpbnQiIExJTUlUIDMgT0ZGU0VUIDM7CiBTRUxFQ1Qg MSBBUyAiaW50IiBPRkZTRVQgMSBGRVRDSCBGSVJTVCAyIFJPVyBPTkxZOwogU0VMRUNUIDEgQVMg ImludCIgT0ZGU0VUIDIgRkVUQ0ggRklSU1QgMyBST1cgT05MWTsKIAorLS1lcnJvciBzYWZlIHR5 cGUgY2FzdAorU0VMRUNUIENBU1QoJ2EnIEFTIGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnMTEnIEFTIGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnMTInIEFTIG51bWVyaWMgREVGQVVMVCAyIE9OIENPTlZFUlNJ T04gRVJST1IpOworCiAtLSBESVNUSU5DVCBhbmQgT1JERVIgQlkgcGF0dGVybnMKIC0tIFRyeSBz b21lIHF1ZXJ5IHBlcm11dGF0aW9ucyB3aGljaCBvbmNlIHByb2R1Y2VkIGlkZW50aWNhbCBxdWVy eSBJRHMKIFNFTEVDVCBESVNUSU5DVCAxIEFTICJpbnQiOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3N5bnRheC5zZ21sIGIvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCmluZGV4IDM0YzgzODgw YTY2Li4zMmFmOWVhMDYxYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbApAQCAtMjEwNiw2ICsyMTA2LDEwIEBAIENBU1Qg KCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50 eXBlPC9yZXBsYWNlYWJsZT4KICAgICBUaGUgPGxpdGVyYWw+Q0FTVDwvbGl0ZXJhbD4gc3ludGF4 IGNvbmZvcm1zIHRvIFNRTDsgdGhlIHN5bnRheCB3aXRoCiAgICAgPGxpdGVyYWw+Ojo8L2xpdGVy YWw+IGlzIGhpc3RvcmljYWwgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgog ICAgIHVzYWdlLgorICAgIFRoZSBlcXVpdmFsZW50IE9OIENPTlZFUlNJT04gRVJST1IgYmVoYXZp b3IgaXM6Cis8c3lub3BzaXM+CitDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiBBUyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+IEVSUk9SIE9OIENPTlZF UlNJT04gRVJST1IgKQorPC9zeW5vcHNpcz4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CkBAIC0y MTYwLDYgKzIxNjQsMzIgQEAgQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNl YWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPgogICAgICA8eHJlZiBsaW5r ZW5kPSJzcWwtY3JlYXRlY2FzdCIvPi4KICAgICA8L3BhcmE+CiAgICA8L25vdGU+CisKKyA8c2Vj dDMgaWQ9InNxbC1zeW50YXgtdHlwZS1jYXN0cy1zYWZlIj4KKyAgPHRpdGxlPlNhZmUgVHlwZSBD YXN0PC90aXRsZT4KKyAgIDxwYXJhPgorICAgIEEgdHlwZSBjYXN0IG1heSBvY2Nhc2lvbmFsbHkg ZmFpbC4gVG8gZ3VhcmQgYWdhaW5zdCBzdWNoIGZhaWx1cmVzLCB5b3UgY2FuCisgICAgcHJvdmlk ZSBhbiA8bGl0ZXJhbD5PTiBFUlJPUjwvbGl0ZXJhbD4gY2xhdXNlIHRvIGhhbmRsZSBwb3RlbnRp YWwgZXJyb3JzLgorICAgIFRoZSBzeW50YXggZm9yIHNhZmUgdHlwZSBjYXN0IGlzOgorPHN5bm9w c2lzPgorQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJl cGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPiBERUZBVUxUIDxyZXBsYWNlYWJsZT5leHByZXNz aW9uPC9yZXBsYWNlYWJsZT4gT04gQ09OVkVSU0lPTiBFUlJPUiApCis8L3N5bm9wc2lzPgorICAg IElmIHRoZSB0eXBlIGNhc3QgZmFpbHMsIGluc3RlYWQgb2YgZXJyb3Igb3V0LCBldmFsdWF0aW9u IGZhbGxzIGJhY2sgdG8gdGhlCisgICAgZGVmYXVsdCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwv cmVwbGFjZWFibGU+IHNwZWNpZmllZCBpbiB0aGUgPGxpdGVyYWw+T04gRVJST1I8L2xpdGVyYWw+ IGNsYXVzZS4KKyAgICBBdCBwcmVzZW50LCB0aGlzIG9ubHkgc3VwcG9ydCBidWlsdC1pbiB0eXBl IGNhc3RzOyBzZWUgPHhyZWYgbGlua2VuZD0iY2F0YWxvZy1wZy1jYXN0Ii8+LgorICAgIFVzZXIt ZGVmaW5lZCB0eXBlIGNhc3RzIGNyZWF0ZWQgd2l0aCA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl Y2FzdCI+Q1JFQVRFIENBU1Q8L2xpbms+IGFyZSBub3Qgc3VwcG9ydGVkLgorICA8L3BhcmE+CisK KyAgICA8cGFyYT4KKyAgICBTb21lIGV4YW1wbGVzOgorPHNjcmVlbj4KK1NFTEVDVCBDQVNUKFRF WFQgJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQgMyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKzxs aW5lYW5ub3RhdGlvbj5SZXN1bHQ6IDwvbGluZWFubm90YXRpb24+PGNvbXB1dGVyb3V0cHV0PjM8 L2NvbXB1dGVyb3V0cHV0PgorU0VMRUNUIENBU1QoVEVYVCAnZXJyb3InIEFTIG51bWVyaWMgREVG QVVMVCAxLjEgT04gQ09OVkVSU0lPTiBFUlJPUik7Cis8bGluZWFubm90YXRpb24+UmVzdWx0OiA8 L2xpbmVhbm5vdGF0aW9uPjxjb21wdXRlcm91dHB1dD4xLjE8L2NvbXB1dGVyb3V0cHV0PgorPC9z Y3JlZW4+CisgICAgPC9wYXJhPgorICA8L3NlY3QzPgogICA8L3NlY3QyPgogCiAgIDxzZWN0MiBp ZD0ic3FsLXN5bnRheC1jb2xsYXRlLWV4cHJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4 IGMzNTc0NGIxMDVlLi4xMmVjNjc5YjkwYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC05 OSw2ICs5OSw5IEBAIHN0YXRpYyB2b2lkIEV4ZWNCdWlsZEFnZ1RyYW5zQ2FsbChFeHByU3RhdGUg KnN0YXRlLCBBZ2dTdGF0ZSAqYWdnc3RhdGUsCiBzdGF0aWMgdm9pZCBFeGVjSW5pdEpzb25FeHBy KEpzb25FeHByICpqc2V4cHIsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJCQkJIERhdHVtICpyZXN2 LCBib29sICpyZXNudWxsLAogCQkJCQkJCSBFeHByRXZhbFN0ZXAgKnNjcmF0Y2gpOworc3RhdGlj IHZvaWQgRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByKFNhZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHIs IEV4cHJTdGF0ZSAqc3RhdGUsCisJCQkJCQkJCQkgRGF0dW0gKnJlc3YsIGJvb2wgKnJlc251bGws CisJCQkJCQkJCQkgRXhwckV2YWxTdGVwICpzY3JhdGNoKTsKIHN0YXRpYyB2b2lkIEV4ZWNJbml0 SnNvbkNvZXJjaW9uKEV4cHJTdGF0ZSAqc3RhdGUsIEpzb25SZXR1cm5pbmcgKnJldHVybmluZywK IAkJCQkJCQkJIEVycm9yU2F2ZUNvbnRleHQgKmVzY29udGV4dCwgYm9vbCBvbWl0X3F1b3RlcywK IAkJCQkJCQkJIGJvb2wgZXhpc3RzX2NvZXJjZSwKQEAgLTE3MCw2ICsxNzMsNDcgQEAgRXhlY0lu aXRFeHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KQogCXJldHVybiBzdGF0ZTsKIH0K IAorLyoKKyAqIEV4ZWNJbml0RXhwclNhZmU6IHNvZnQgZXJyb3IgdmFyaWFudCBvZiBFeGVjSW5p dEV4cHIuCisgKgorICogdXNlIGl0IG9ubHkgZm9yIGV4cHJlc3Npb24gbm9kZXMgc3VwcG9ydCBz b2Z0IGVycm9ycywgbm90IGFsbCBleHByZXNzaW9uCisgKiBub2RlcyBzdXBwb3J0IGl0LgorKi8K K0V4cHJTdGF0ZSAqCitFeGVjSW5pdEV4cHJTYWZlKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFy ZW50KQoreworCUV4cHJTdGF0ZSAgKnN0YXRlOworCUV4cHJFdmFsU3RlcCBzY3JhdGNoID0gezB9 OworCisJLyogU3BlY2lhbCBjYXNlOiBOVUxMIGV4cHJlc3Npb24gcHJvZHVjZXMgYSBOVUxMIEV4 cHJTdGF0ZSBwb2ludGVyICovCisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisK KwkvKiBJbml0aWFsaXplIEV4cHJTdGF0ZSB3aXRoIGVtcHR5IHN0ZXAgbGlzdCAqLworCXN0YXRl ID0gbWFrZU5vZGUoRXhwclN0YXRlKTsKKwlzdGF0ZS0+ZXhwciA9IG5vZGU7CisJc3RhdGUtPnBh cmVudCA9IHBhcmVudDsKKwlzdGF0ZS0+ZXh0X3BhcmFtcyA9IE5VTEw7CisJc3RhdGUtPmVzY29u dGV4dCA9IG1ha2VOb2RlKEVycm9yU2F2ZUNvbnRleHQpOworCXN0YXRlLT5lc2NvbnRleHQtPnR5 cGUgPSBUX0Vycm9yU2F2ZUNvbnRleHQ7CisJc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJy ZWQgPSBmYWxzZTsKKwlzdGF0ZS0+ZXNjb250ZXh0LT5kZXRhaWxzX3dhbnRlZCA9IGZhbHNlOwor CisJLyogSW5zZXJ0IHNldHVwIHN0ZXBzIGFzIG5lZWRlZCAqLworCUV4ZWNDcmVhdGVFeHByU2V0 dXBTdGVwcyhzdGF0ZSwgKE5vZGUgKikgbm9kZSk7CisKKwkvKiBDb21waWxlIHRoZSBleHByZXNz aW9uIHByb3BlciAqLworCUV4ZWNJbml0RXhwclJlYyhub2RlLCBzdGF0ZSwgJnN0YXRlLT5yZXN2 YWx1ZSwgJnN0YXRlLT5yZXNudWxsKTsKKworCS8qIEZpbmFsbHksIGFwcGVuZCBhIERPTkUgc3Rl cCAqLworCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9ET05FX1JFVFVSTjsKKwlFeHByRXZhbFB1c2hT dGVwKHN0YXRlLCAmc2NyYXRjaCk7CisKKwlFeGVjUmVhZHlFeHByKHN0YXRlKTsKKworCXJldHVy biBzdGF0ZTsKK30KKwogLyoKICAqIEV4ZWNJbml0RXhwcldpdGhQYXJhbXM6IHByZXBhcmUgYSBz dGFuZGFsb25lIGV4cHJlc3Npb24gdHJlZSBmb3IgZXhlY3V0aW9uCiAgKgpAQCAtMTcwMSw2ICsx NzQ1LDcgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAK IAkJCQllbGVtc3RhdGUtPmlubmVybW9zdF9jYXNldmFsID0gcGFsbG9jX29iamVjdChEYXR1bSk7 CiAJCQkJZWxlbXN0YXRlLT5pbm5lcm1vc3RfY2FzZW51bGwgPSBwYWxsb2Nfb2JqZWN0KGJvb2wp OworCQkJCWVsZW1zdGF0ZS0+ZXNjb250ZXh0ID0gc3RhdGUtPmVzY29udGV4dDsKIAogCQkJCUV4 ZWNJbml0RXhwclJlYyhhY29lcmNlLT5lbGVtZXhwciwgZWxlbXN0YXRlLAogCQkJCQkJCQkmZWxl bXN0YXRlLT5yZXN2YWx1ZSwgJmVsZW1zdGF0ZS0+cmVzbnVsbCk7CkBAIC0yMTc2LDYgKzIyMjEs MTQgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJ YnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2Fm ZVR5cGVDYXN0RXhwciAgICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9k ZSk7CisKKwkJCQlFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIoc3RjZXhwciwgc3RhdGUsIHJlc3Ys IHJlc251bGwsICZzY3JhdGNoKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIFRfQ29hbGVz Y2VFeHByOgogCQkJewogCQkJCUNvYWxlc2NlRXhwciAqY29hbGVzY2UgPSAoQ29hbGVzY2VFeHBy ICopIG5vZGU7CkBAIC0yNzM2LDcgKzI3ODksNyBAQCBFeGVjSW5pdEZ1bmMoRXhwckV2YWxTdGVw ICpzY3JhdGNoLCBFeHByICpub2RlLCBMaXN0ICphcmdzLCBPaWQgZnVuY2lkLAogCiAJLyogSW5p dGlhbGl6ZSBmdW5jdGlvbiBjYWxsIHBhcmFtZXRlciBzdHJ1Y3R1cmUgdG9vICovCiAJSW5pdEZ1 bmN0aW9uQ2FsbEluZm9EYXRhKCpmY2luZm8sIGZsaW5mbywKLQkJCQkJCQkgbmFyZ3MsIGlucHV0 Y29sbGlkLCBOVUxMLCBOVUxMKTsKKwkJCQkJCQkgbmFyZ3MsIGlucHV0Y29sbGlkLCAoTm9kZSAq KSBzdGF0ZS0+ZXNjb250ZXh0LCBOVUxMKTsKIAogCS8qIEtlZXAgZXh0cmEgY29waWVzIG9mIHRo aXMgaW5mbyB0byBzYXZlIGFuIGluZGlyZWN0aW9uIGF0IHJ1bnRpbWUgKi8KIAlzY3JhdGNoLT5k LmZ1bmMuZm5fYWRkciA9IGZsaW5mby0+Zm5fYWRkcjsKQEAgLTQ3MzMsNiArNDc4Niw2MCBAQCBF eGVjQnVpbGRQYXJhbVNldEVxdWFsKFR1cGxlRGVzYyBkZXNjLAogCXJldHVybiBzdGF0ZTsKIH0K IAorLyoKKyAqIFB1c2ggc3RlcHMgdG8gZXZhbHVhdGUgYSBTYWZlVHlwZUNhc3RFeHByIGFuZCBp dHMgdmFyaW91cyBzdWJzaWRpYXJ5CisgKiBleHByZXNzaW9ucy4KKyAqLworc3RhdGljIHZvaWQK K0V4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihTYWZlVHlwZUNhc3RFeHByICpzdGNleHByICwgRXhw clN0YXRlICpzdGF0ZSwKKwkJCQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKKwkJCQkJ CSBFeHByRXZhbFN0ZXAgKnNjcmF0Y2gpCit7CisJLyoKKwkgKiBJZiB3ZSBjYW4gbm90IGNvZXJj ZSB0byB0aGUgdGFyZ2V0IHR5cGUsIGZhbGxiYWNrIHRvIHRoZSBERUZBVUxUCisJICogZXhwcmVz c2lvbiBzcGVjaWZpZWQgaW4gdGhlIE9OIENPTlZFUlNJT04gRVJST1IgY2xhdXNlLCBhbmQgd2Ug YXJlIGRvbmUuCisJICovCisJaWYgKHN0Y2V4cHItPmNhc3RfZXhwciA9PSBOVUxMKQorCXsKKwkJ RXhlY0luaXRFeHByUmVjKChFeHByICopIHN0Y2V4cHItPmRlZmF1bHRfZXhwciwKKwkJCQkJCXN0 YXRlLCByZXN2LCByZXNudWxsKTsKKwkJcmV0dXJuOworCX0KKwllbHNlCisJeworCQlTYWZlVHlw ZUNhc3RTdGF0ZSAqc3Rjc3RhdGU7CisKKwkJc3Rjc3RhdGUgPSBwYWxsb2MwKHNpemVvZihTYWZl VHlwZUNhc3RTdGF0ZSkpOworCQlzdGNzdGF0ZS0+c3RjZXhwciA9IHN0Y2V4cHI7CisJCXN0Y3N0 YXRlLT5lc2NvbnRleHQudHlwZSA9IFRfRXJyb3JTYXZlQ29udGV4dDsKKwkJc3RhdGUtPmVzY29u dGV4dCA9ICZzdGNzdGF0ZS0+ZXNjb250ZXh0OworCisJCS8qIGV2YWx1YXRlIGFyZ3VtZW50IGV4 cHJlc3Npb24gaW50byBzdGVwJ3MgcmVzdWx0IGFyZWEgKi8KKwkJRXhlY0luaXRFeHByUmVjKChF eHByICopIHN0Y2V4cHItPmNhc3RfZXhwciwKKwkJCQkJCXN0YXRlLCByZXN2LCByZXNudWxsKTsK KwkJc2NyYXRjaC0+b3Bjb2RlID0gRUVPUF9TQUZFVFlQRV9DQVNUOworCQlzY3JhdGNoLT5kLnN0 Y2V4cHIuc3Rjc3RhdGUgPSBzdGNzdGF0ZTsKKwkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgc2Ny YXRjaCk7CisKKwkJLyoKKwkJICogU3RlcHMgdG8gZXZhbHVhdGUgdGhlIERFRkFVTFQgZXhwcmVz c2lvbi4gIFNraXAgaXQgaWYgdGhpcyBpcyBhCisJCSAqIGJpbmFyeSBjb2VyY2lvbiBjYXN0Lgor CQkgKi8KKwkJaWYgKCFJc0Eoc3RjZXhwci0+Y2FzdF9leHByLCBSZWxhYmVsVHlwZSkpCisJCXsK KwkJCUVycm9yU2F2ZUNvbnRleHQgKnNhdmVkX2VzY29udGV4dDsKKworCQkJc2F2ZWRfZXNjb250 ZXh0ID0gc3RhdGUtPmVzY29udGV4dDsKKwkJCXN0YXRlLT5lc2NvbnRleHQgPSBOVUxMOworCQkJ RXhlY0luaXRFeHByUmVjKChFeHByICopIHN0Y3N0YXRlLT5zdGNleHByLT5kZWZhdWx0X2V4cHIs CisJCQkJCQkJc3RhdGUsIHJlc3YsIHJlc251bGwpOworCQkJc3RhdGUtPmVzY29udGV4dCA9IHNh dmVkX2VzY29udGV4dDsKKwkJfQorCisJCXN0Y3N0YXRlLT5qdW1wX2VuZCA9IHN0YXRlLT5zdGVw c19sZW47CisJfQorfQorCiAvKgogICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBhIEpzb25FeHBy IGFuZCBpdHMgdmFyaW91cyBzdWJzaWRpYXJ5IGV4cHJlc3Npb25zLgogICovCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCAxZDg4Y2RkMmNiNC4uY2E2ZTBmZDU2Y2QgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTY4LDYgKzU2OCw3IEBAIEV4 ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9v bCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9YTUxFWFBSLAogCQkmJkNBU0VfRUVPUF9KU09OX0NP TlNUUlVDVE9SLAogCQkmJkNBU0VfRUVPUF9JU19KU09OLAorCQkmJkNBU0VfRUVPUF9TQUZFVFlQ RV9DQVNULAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9QQVRILAogCQkmJkNBU0VfRUVPUF9KU09O RVhQUl9DT0VSQ0lPTiwKIAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfQ09FUkNJT05fRklOSVNILApA QCAtMTkyNiw2ICsxOTI3LDI4IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQog CisJCUVFT19DQVNFKEVFT1BfU0FGRVRZUEVfQ0FTVCkKKwkJeworCQkJU2FmZVR5cGVDYXN0U3Rh dGUgKnN0Y3N0YXRlID0gb3AtPmQuc3RjZXhwci5zdGNzdGF0ZTsKKworCQkJaWYgKFNPRlRfRVJS T1JfT0NDVVJSRUQoJnN0Y3N0YXRlLT5lc2NvbnRleHQpKQorCQkJeworCQkJCSpvcC0+cmVzdmFs dWUgPSAoRGF0dW0pIDA7CisJCQkJKm9wLT5yZXNudWxsID0gdHJ1ZTsKKworCQkJCS8qCisJCQkJ ICogUmVzZXQgZm9yIG5leHQgdXNlIHN1Y2ggYXMgZm9yIGNhdGNoaW5nIGVycm9ycyB3aGVuIGNv ZXJjaW5nCisJCQkJICogYSBleHByZXNzaW9uLgorCQkJCSAqLworCQkJCXN0Y3N0YXRlLT5lc2Nv bnRleHQuZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmRl dGFpbHNfd2FudGVkID0gZmFsc2U7CisKKwkJCQlFRU9fTkVYVCgpOworCQkJfQorCQkJZWxzZQor CQkJCUVFT19KVU1QKHN0Y3N0YXRlLT5qdW1wX2VuZCk7CisJCX0KKwogCQlFRU9fQ0FTRShFRU9Q X0pTT05FWFBSX1BBVEgpCiAJCXsKIAkJCS8qIHRvbyBjb21wbGV4IGZvciBhbiBpbmxpbmUgaW1w bGVtZW50YXRpb24gKi8KQEAgLTM2NDQsNiArMzY2NywxMiBAQCBFeGVjRXZhbEFycmF5Q29lcmNl KEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsIEV4cHJDb250ZXh0ICplY29udGV4 dCkKIAkJCQkJCQkgIGVjb250ZXh0LAogCQkJCQkJCSAgb3AtPmQuYXJyYXljb2VyY2UucmVzdWx0 ZWxlbXR5cGUsCiAJCQkJCQkJICBvcC0+ZC5hcnJheWNvZXJjZS5hbXN0YXRlKTsKKworCWlmIChT T0ZUX0VSUk9SX09DQ1VSUkVEKG9wLT5kLmFycmF5Y29lcmNlLmVsZW1leHByc3RhdGUtPmVzY29u dGV4dCkpCisJeworCQkqb3AtPnJlc3ZhbHVlID0gKERhdHVtKSAwOworCQkqb3AtPnJlc251bGwg PSB0cnVlOworCX0KIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xs dm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXgg ZjljN2YyOWU3MjguLmRiOWY0OTI4NjE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2 bS9sbHZtaml0X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIu YwpAQCAtMjI1Niw2ICsyMjU2LDMyIEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3Rh dGUpCiAJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKIAkJCQlicmVhazsK IAorCQkJY2FzZSBFRU9QX1NBRkVUWVBFX0NBU1Q6CisJCQkJeworCQkJCQlTYWZlVHlwZUNhc3RT dGF0ZSAqc3Rjc3RhdGUgPSBvcC0+ZC5zdGNleHByLnN0Y3N0YXRlOworCisJCQkJCWlmIChTT0ZU X0VSUk9SX09DQ1VSUkVEKCZzdGNzdGF0ZS0+ZXNjb250ZXh0KSkKKwkJCQkJeworCQkJCQkJLyoK KwkJCQkJCSAqIFJlc2V0IGZvciBuZXh0IHVzZSBzdWNoIGFzIGZvciBjYXRjaGluZyBlcnJvcnMg d2hlbgorCQkJCQkJICogY29lcmNpbmcgYSBleHByZXNzaW9uLgorCQkJCQkJICovCisJCQkJCQlz dGNzdGF0ZS0+ZXNjb250ZXh0LmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJCQkJCQlzdGNzdGF0 ZS0+ZXNjb250ZXh0LmRldGFpbHNfd2FudGVkID0gZmFsc2U7CisKKwkJCQkJCS8qIHNldCByZXNu dWxsIHRvIHRydWUgKi8KKwkJCQkJCUxMVk1CdWlsZFN0b3JlKGIsIGxfc2Jvb2xfY29uc3QoMSks IHZfcmVzbnVsbHApOworCQkJCQkJLyogcmVzZXQgcmVzdmFsdWUgKi8KKwkJCQkJCUxMVk1CdWls ZFN0b3JlKGIsIGxfZGF0dW1fY29uc3QoMCksIHZfcmVzdmFsdWVwKTsKKworCQkJCQkJTExWTUJ1 aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQlM TFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tzdGNzdGF0ZS0+anVtcF9lbmRdKTsKKworCQkJCQlicmVh azsKKwkJCQl9CisKIAkJCWNhc2UgRUVPUF9KU09ORVhQUl9QQVRIOgogCQkJCXsKIAkJCQkJSnNv bkV4cHJTdGF0ZSAqanNlc3RhdGUgPSBvcC0+ZC5qc29uZXhwci5qc2VzdGF0ZTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9k ZUZ1bmNzLmMKaW5kZXggMDI0YTJiMmZkODQuLjhhOGQxNWNhNmY1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVu Y3MuYwpAQCAtMjA2LDYgKzIwNiw5IEBAIGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNh c2UgVF9Sb3dDb21wYXJlRXhwcjoKIAkJCXR5cGUgPSBCT09MT0lEOwogCQkJYnJlYWs7CisJCWNh c2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJdHlwZSA9ICgoY29uc3QgU2FmZVR5cGVDYXN0RXhw ciAqKSBleHByKS0+cmVzdWx0dHlwZTsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHBy OgogCQkJdHlwZSA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZXR5cGU7 CiAJCQlicmVhazsKQEAgLTQ1MCw2ICs0NTMsOCBAQCBleHByVHlwbW9kKGNvbnN0IE5vZGUgKmV4 cHIpCiAJCQkJcmV0dXJuIHR5cG1vZDsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5 cGVDYXN0RXhwcjoKKwkJCXJldHVybiAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwcikt PnJlc3VsdHR5cG1vZDsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXsKIAkJCQkvKgpAQCAt OTY1LDYgKzk3MCw5IEBAIGV4cHJDb2xsYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCS8qIFJv d0NvbXBhcmVFeHByJ3MgcmVzdWx0IGlzIGJvb2xlYW4gLi4uICovCiAJCQljb2xsID0gSW52YWxp ZE9pZDsJLyogLi4uIHNvIGl0IGhhcyBubyBjb2xsYXRpb24gKi8KIAkJCWJyZWFrOworCQljYXNl IFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCWNvbGwgPSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIg KikgZXhwciktPnJlc3VsdGNvbGxpZDsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHBy OgogCQkJY29sbCA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZWNvbGxp ZDsKIAkJCWJyZWFrOwpAQCAtMTIzMiw2ICsxMjQwLDkgQEAgZXhwclNldENvbGxhdGlvbihOb2Rl ICpleHByLCBPaWQgY29sbGF0aW9uKQogCQkJLyogUm93Q29tcGFyZUV4cHIncyByZXN1bHQgaXMg Ym9vbGVhbiAuLi4gKi8KIAkJCUFzc2VydCghT2lkSXNWYWxpZChjb2xsYXRpb24pKTsgLyogLi4u IHNvIG5ldmVyIHNldCBhIGNvbGxhdGlvbiAqLwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlw ZUNhc3RFeHByOgorCQkJKChTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHRjb2xsaWQg PSBjb2xsYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCSgoQ29h bGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZWNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFr OwpAQCAtMTU1MCw2ICsxNTYxLDkgQEAgZXhwckxvY2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJ CQkvKiBqdXN0IHVzZSBsZWZ0bW9zdCBhcmd1bWVudCdzIGxvY2F0aW9uICovCiAJCQlsb2MgPSBl eHByTG9jYXRpb24oKE5vZGUgKikgKChjb25zdCBSb3dDb21wYXJlRXhwciAqKSBleHByKS0+bGFy Z3MpOwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJbG9jID0gKChj b25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5sb2NhdGlvbjsKKwkJCWJyZWFrOwogCQlj YXNlIFRfQ29hbGVzY2VFeHByOgogCQkJLyogQ09BTEVTQ0Uga2V5d29yZCBzaG91bGQgYWx3YXlz IGJlIHRoZSBmaXJzdCB0aGluZyAqLwogCQkJbG9jID0gKChjb25zdCBDb2FsZXNjZUV4cHIgKikg ZXhwciktPmxvY2F0aW9uOwpAQCAtMjMyMSw2ICsyMzM1LDE4IEBAIGV4cHJlc3Npb25fdHJlZV93 YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFr OworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHBy ICAgKnNjZXhwciA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhz Y2V4cHItPnNvdXJjZV9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc2Nl eHByLT5jYXN0X2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzY2V4cHIt PmRlZmF1bHRfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNh c2UgVF9Db2FsZXNjZUV4cHI6CiAJCQlyZXR1cm4gV0FMSygoKENvYWxlc2NlRXhwciAqKSBub2Rl KS0+YXJncyk7CiAJCWNhc2UgVF9NaW5NYXhFeHByOgpAQCAtMzMzMCw2ICszMzU2LDE5IEBAIGV4 cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUg KikgbmV3bm9kZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoK KwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnNjZXhwciA9IChTYWZlVHlwZUNhc3RFeHBy ICopIG5vZGU7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAgICpuZXdub2RlOworCisJCQkJRkxBVENP UFkobmV3bm9kZSwgc2NleHByLCBTYWZlVHlwZUNhc3RFeHByKTsKKwkJCQlNVVRBVEUobmV3bm9k ZS0+c291cmNlX2V4cHIsIHNjZXhwci0+c291cmNlX2V4cHIsIE5vZGUgKik7CisJCQkJTVVUQVRF KG5ld25vZGUtPmNhc3RfZXhwciwgc2NleHByLT5jYXN0X2V4cHIsIE5vZGUgKik7CisJCQkJTVVU QVRFKG5ld25vZGUtPmRlZmF1bHRfZXhwciwgc2NleHByLT5kZWZhdWx0X2V4cHIsIE5vZGUgKik7 CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNl IFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCUNvYWxlc2NlRXhwciAqY29hbGVzY2VleHByID0g KENvYWxlc2NlRXhwciAqKSBub2RlOwpAQCAtNDQ2NCw2ICs0NTAzLDI4IEBAIHJhd19leHByZXNz aW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9 CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdDoKKwkJCXsKKwkJCQlTYWZlVHlwZUNh c3QgICAqc2MgPSAoU2FmZVR5cGVDYXN0ICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzYy0+Y2Fz dCkpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHNjLT5yYXdfZGVmYXVsdCkpCisJ CQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RF eHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgICAqc3RjID0gKFNhZmVUeXBlQ2FzdEV4 cHIgKikgbm9kZTsKKworCQkJCWlmIChXQUxLKHN0Yy0+c291cmNlX2V4cHIpKQorCQkJCQlyZXR1 cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzdGMtPmNhc3RfZXhwcikpCisJCQkJCXJldHVybiB0cnVl OworCQkJCWlmIChXQUxLKHN0Yy0+ZGVmYXVsdF9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJ CQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0NvbGxhdGVDbGF1c2U6CiAJCQlyZXR1cm4gV0FMSygo KENvbGxhdGVDbGF1c2UgKikgbm9kZSktPmFyZyk7CiAJCWNhc2UgVF9Tb3J0Qnk6CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKaW5kZXggZGRhZmMyMWM4MTkuLjU0MDQ2YjEyNTg3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC0yNDQ3LDcgKzI0NDcsOCBAQCBl c3RpbWF0ZV9leHByZXNzaW9uX3ZhbHVlKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlKQog CSgoTm9kZSAqKSBldmFsdWF0ZV9leHByKChFeHByICopIChub2RlKSwgXAogCQkJCQkJCWV4cHJU eXBlKChOb2RlICopIChub2RlKSksIFwKIAkJCQkJCQlleHByVHlwbW9kKChOb2RlICopIChub2Rl KSksIFwKLQkJCQkJCQlleHByQ29sbGF0aW9uKChOb2RlICopIChub2RlKSkpKQorCQkJCQkJCWV4 cHJDb2xsYXRpb24oKE5vZGUgKikgKG5vZGUpKSwgXAorCQkJCQkJCWZhbHNlKSkKIAogLyoKICAq IFJlY3Vyc2l2ZSBndXRzIG9mIGV2YWxfY29uc3RfZXhwcmVzc2lvbnMvZXN0aW1hdGVfZXhwcmVz c2lvbl92YWx1ZQpAQCAtMjk1OCw2ICsyOTU5LDMyIEBAIGV2YWxfY29uc3RfZXhwcmVzc2lvbnNf bXV0YXRvcihOb2RlICpub2RlLAogCQkJCQkJCQkJCQkJICBjb3B5T2JqZWN0KGp2ZS0+Zm9ybWF0 KSk7CiAJCQl9CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5 cGVDYXN0RXhwciAJKnN0YyA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisJCQkJU2FmZVR5 cGVDYXN0RXhwcgkqbmV3ZXhwcjsKKwkJCQlOb2RlCSAgICpzb3VyY2VfZXhwciA9IHN0Yy0+c291 cmNlX2V4cHI7CisJCQkJTm9kZQkgICAqZGVmYXVsdF9leHByID0gc3RjLT5kZWZhdWx0X2V4cHI7 CisKKwkJCQlzb3VyY2VfZXhwciA9IGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihzb3Vy Y2VfZXhwciwgY29udGV4dCk7CisJCQkJZGVmYXVsdF9leHByID0gZXZhbF9jb25zdF9leHByZXNz aW9uc19tdXRhdG9yKGRlZmF1bHRfZXhwciwgY29udGV4dCk7CisKKwkJCQkvKgorCQkJCSAqIFdl IG11c3Qgbm90IHJlZHVjZSBhbnkgcmVjb2duaXphYmx5IGNvbnN0YW50IHN1YmV4cHJlc3Npb25z CisJCQkJICogaW4gY2FzdF9leHByIGhlcmUsIHNpbmNlIHdlIGRvbuKAmXQgd2FudCBpdCB0byBm YWlsCisJCQkJICogcHJlbWF0dXJlbHkuCisJCQkJICovCisJCQkJbmV3ZXhwciA9IG1ha2VOb2Rl KFNhZmVUeXBlQ2FzdEV4cHIpOworCQkJCW5ld2V4cHItPnNvdXJjZV9leHByID0gc291cmNlX2V4 cHI7CisJCQkJbmV3ZXhwci0+Y2FzdF9leHByID0gc3RjLT5jYXN0X2V4cHI7CisJCQkJbmV3ZXhw ci0+ZGVmYXVsdF9leHByID0gZGVmYXVsdF9leHByOworCQkJCW5ld2V4cHItPnJlc3VsdHR5cGUg PSBzdGMtPnJlc3VsdHR5cGU7CisJCQkJbmV3ZXhwci0+cmVzdWx0dHlwbW9kID0gc3RjLT5yZXN1 bHR0eXBtb2Q7CisJCQkJbmV3ZXhwci0+cmVzdWx0Y29sbGlkID0gc3RjLT5yZXN1bHRjb2xsaWQ7 CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3ZXhwcjsKKwkJCX0KKwogCQljYXNlIFRfU3ViUGxh bjoKIAkJY2FzZSBUX0FsdGVybmF0aXZlU3ViUGxhbjoKIApAQCAtMzM4MCw3ICszNDA3LDggQEAg ZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiAo Tm9kZSAqKSBldmFsdWF0ZV9leHByKChFeHByICopIHN2ZiwKIAkJCQkJCQkJCQkJCSAgc3ZmLT50 eXBlLAogCQkJCQkJCQkJCQkJICBzdmYtPnR5cG1vZCwKLQkJCQkJCQkJCQkJCSAgSW52YWxpZE9p ZCk7CisJCQkJCQkJCQkJCQkgIEludmFsaWRPaWQsCisJCQkJCQkJCQkJCQkgIGZhbHNlKTsKIAkJ CQllbHNlCiAJCQkJCXJldHVybiBjb3B5T2JqZWN0KChOb2RlICopIHN2Zik7CiAJCQl9CkBAIC00 Njk4LDcgKzQ3MjYsNyBAQCBldmFsdWF0ZV9mdW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0 X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCiAJbmV3ZXhwci0+bG9jYXRpb24gPSAtMTsKIAog CXJldHVybiBldmFsdWF0ZV9leHByKChFeHByICopIG5ld2V4cHIsIHJlc3VsdF90eXBlLCByZXN1 bHRfdHlwbW9kLAotCQkJCQkJIHJlc3VsdF9jb2xsaWQpOworCQkJCQkJIHJlc3VsdF9jb2xsaWQs IGZhbHNlKTsKIH0KIAogLyoKQEAgLTUxNTIsMTAgKzUxODAsMTQgQEAgc3FsX2lubGluZV9lcnJv cl9jYWxsYmFjayh2b2lkICphcmcpCiAgKgogICogV2UgdXNlIHRoZSBleGVjdXRvcidzIHJvdXRp bmUgRXhlY0V2YWxFeHByKCkgdG8gYXZvaWQgZHVwbGljYXRpb24gb2YKICAqIGNvZGUgYW5kIGVu c3VyZSB3ZSBnZXQgdGhlIHNhbWUgcmVzdWx0IGFzIHRoZSBleGVjdXRvciB3b3VsZCBnZXQuCisg KgorICogV2hlbiBlcnJvcl9zYWZlIGlzIHNldCB0byB0cnVlLCB3ZSB3aWxsIGV2YWx1YXRlIHRo ZSBjb25zdGFudCBleHByZXNzaW9uIGluIGEKKyAqIGVycm9yIHNhZmUgd2F5LiBJZiB0aGUgZXZh bHVhdGlvbiBmYWlscywgcmV0dXJuIE5VTEwgaW5zdGVhZCBvZiB0aHJvd2luZyBhbgorICogZXJy b3IuCiAgKi8KIEV4cHIgKgogZXZhbHVhdGVfZXhwcihFeHByICpleHByLCBPaWQgcmVzdWx0X3R5 cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCi0JCQkgIE9pZCByZXN1bHRfY29sbGF0aW9uKQorCQkJ ICBPaWQgcmVzdWx0X2NvbGxhdGlvbiwgYm9vbCBlcnJvcl9zYWZlKQogewogCUVTdGF0ZQkgICAq ZXN0YXRlOwogCUV4cHJTdGF0ZSAgKmV4cHJzdGF0ZTsKQEAgLTUxODAsNyArNTIxMiwxMCBAQCBl dmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5 cG1vZCwKIAkgKiBQcmVwYXJlIGV4cHIgZm9yIGV4ZWN1dGlvbi4gIChOb3RlOiB3ZSBjYW4ndCB1 c2UgRXhlY1ByZXBhcmVFeHByCiAJICogYmVjYXVzZSBpdCdkIHJlc3VsdCBpbiByZWN1cnNpdmVs eSBpbnZva2luZyBldmFsX2NvbnN0X2V4cHJlc3Npb25zLikKIAkgKi8KLQlleHByc3RhdGUgPSBF eGVjSW5pdEV4cHIoZXhwciwgTlVMTCk7CisJaWYgKGVycm9yX3NhZmUpCisJCWV4cHJzdGF0ZSA9 IEV4ZWNJbml0RXhwclNhZmUoZXhwciwgTlVMTCk7CisJZWxzZQorCQlleHByc3RhdGUgPSBFeGVj SW5pdEV4cHIoZXhwciwgTlVMTCk7CiAKIAkvKgogCSAqIEFuZCBldmFsdWF0ZSBpdC4KQEAgLTUy MDAsNiArNTIzNSwxMiBAQCBldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlw ZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKIAkvKiBHZXQgYmFjayB0byBvdXRlciBtZW1vcnkgY29u dGV4dCAqLwogCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIAorCWlmIChlcnJv cl9zYWZlICYmIFNPRlRfRVJST1JfT0NDVVJSRUQoZXhwcnN0YXRlLT5lc2NvbnRleHQpKQorCXsK KwkJRnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCiAJLyoK IAkgKiBNdXN0IGNvcHkgcmVzdWx0IG91dCBvZiBzdWItY29udGV4dCB1c2VkIGJ5IGV4cHJlc3Np b24gZXZhbC4KIAkgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNzg1NmNlOWQ3OGYuLjllNjU3MzQ0NGNjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTE2MDEzLDYgKzE2MDEzLDI4IEBAIGZ1bmNfZXhwcl9jb21tb25fc3Vi ZXhwcjoKIAkJCQl9CiAJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSAnKScKIAkJCQl7 ICQkID0gbWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEpOyB9CisJCQl8IENBU1QgJygnIGFfZXhwciBB UyBUeXBlbmFtZSBFUlJPUl9QIE9OIENPTlZFUlNJT05fUCBFUlJPUl9QICcpJworCQkJCXsgJCQg PSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7IH0KKwkJCXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5 cGVuYW1lIE5VTExfUCBPTiBDT05WRVJTSU9OX1AgRVJST1JfUCAnKScKKwkJCQl7CisJCQkJCVR5 cGVDYXN0ICpjYXN0ID0gKFR5cGVDYXN0ICopIG1ha2VUeXBlQ2FzdCgkMywgJDUsIEAxKTsKKwor CQkJCQlTYWZlVHlwZUNhc3QgKnNhZmVjYXN0ID0gbWFrZU5vZGUoU2FmZVR5cGVDYXN0KTsKKwkJ CQkJc2FmZWNhc3QtPmNhc3QgPSAoTm9kZSAqKSBjYXN0OworCQkJCQlzYWZlY2FzdC0+cmF3X2Rl ZmF1bHQgPSBtYWtlTnVsbEFDb25zdCgtMSk7OworCisJCQkJCSQkID0gKE5vZGUgKikgc2FmZWNh c3Q7CisJCQkJfQorCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUgREVGQVVMVCBhX2V4 cHIgT04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgJyknCisJCQkJeworCQkJCQlUeXBlQ2FzdCAqY2Fz dCA9IChUeXBlQ2FzdCAqKSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7CisKKwkJCQkJU2FmZVR5 cGVDYXN0ICpzYWZlY2FzdCA9IG1ha2VOb2RlKFNhZmVUeXBlQ2FzdCk7CisJCQkJCXNhZmVjYXN0 LT5jYXN0ID0gKE5vZGUgKikgY2FzdDsKKwkJCQkJc2FmZWNhc3QtPnJhd19kZWZhdWx0ID0gJDc7 CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBzYWZlY2FzdDsKKwkJCQl9CiAJCQl8IEVYVFJBQ1QgJygn IGV4dHJhY3RfbGlzdCAnKScKIAkJCQl7CiAJCQkJCSQkID0gKE5vZGUgKikgbWFrZUZ1bmNDYWxs KFN5c3RlbUZ1bmNOYW1lKCJleHRyYWN0IiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggYjgz NDA1NTdiMzQuLmRlNzdmNmU5MzAyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC00OTAsNiAr NDkwLDEyIEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBOb2RlICpleHByKQogCQkJCWVyciA9IF8oImdyb3VwaW5nIG9wZXJhdGlvbnMgYXJlIG5v dCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFpbnRzIik7CiAKIAkJCWJyZWFrOworCQljYXNlIEVY UFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQlpZiAoaXNBZ2cpCisJCQkJZXJyID0gXygiYWdncmVn YXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25z Iik7CisJCQllbHNlCisJCQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFs bG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBF WFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFV TFQ6CiAKQEAgLTk4Myw2ICs5ODksOSBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0 YXRlICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lORF9ET01BSU5f Q0hFQ0s6CiAJCQllcnIgPSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBj aGVjayBjb25zdHJhaW50cyIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1RfREVG QVVMVDoKKwkJCWVyciA9IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENB U1QgREVGQVVMVCBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NP TFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJy ID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNz aW9ucyIpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jCmluZGV4IDc4YjFlMzY2YWQ3Li40YWU4 N2UyMDMwYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYwpAQCAtODEsNiArODEsMzEgQEAg Y29lcmNlX3RvX3RhcmdldF90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgT2lk IGV4cHJ0eXBlLAogCQkJCQkgIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwKIAkJCQkJICBDb2Vy Y2lvbkZvcm0gY2Zvcm1hdCwKIAkJCQkJICBpbnQgbG9jYXRpb24pCit7CisJcmV0dXJuIGNvZXJj ZV90b190YXJnZXRfdHlwZV9leHRlbmRlZChwc3RhdGUsCisJCQkJCQkJCQkJICBleHByLAorCQkJ CQkJCQkJCSAgZXhwcnR5cGUsCisJCQkJCQkJCQkJICB0YXJnZXR0eXBlLAorCQkJCQkJCQkJCSAg dGFyZ2V0dHlwbW9kLAorCQkJCQkJCQkJCSAgY2NvbnRleHQsCisJCQkJCQkJCQkJICBjZm9ybWF0 LAorCQkJCQkJCQkJCSAgbG9jYXRpb24sCisJCQkJCQkJCQkJICBOVUxMKTsKK30KKworLyoKKyAq IGVzY29udGV4dDogSWYgbm90IE5VTEwsIGV4cHIgKFVua25vd24gQ29uc3Qgbm9kZSB0eXBlKSB3 aWxsIGJlIGNvZXJjZWQgdG8gdGhlCisgKiB0YXJnZXQgdHlwZSBpbiBhbiBlcnJvci1zYWZlIHdh eS4gSWYgaXQgZmFpbHMsIE5VTEwgaXMgcmV0dXJuZWQuCisgKgorICogRm9yIG90aGVyIHBhcmFt ZXRlcnMsIHNlZSBhYm92ZSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUuCisgKi8KK05vZGUgKgorY29l cmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhw ciwgT2lkIGV4cHJ0eXBlLAorCQkJCQkJCSAgIE9pZCB0YXJnZXR0eXBlLCBpbnQzMiB0YXJnZXR0 eXBtb2QsCisJCQkJCQkJICAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAorCQkJCQkJCSAgIENv ZXJjaW9uRm9ybSBjZm9ybWF0LAorCQkJCQkJCSAgIGludCBsb2NhdGlvbiwKKwkJCQkJCQkgICBO b2RlICplc2NvbnRleHQpCiB7CiAJTm9kZQkgICAqcmVzdWx0OwogCU5vZGUJICAgKm9yaWdleHBy OwpAQCAtMTAyLDkgKzEyNywxMiBAQCBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpleHByLCBPaWQgZXhwcnR5cGUsCiAJd2hpbGUgKGV4cHIgJiYgSXNBKGV4 cHIsIENvbGxhdGVFeHByKSkKIAkJZXhwciA9IChOb2RlICopICgoQ29sbGF0ZUV4cHIgKikgZXhw ciktPmFyZzsKIAotCXJlc3VsdCA9IGNvZXJjZV90eXBlKHBzdGF0ZSwgZXhwciwgZXhwcnR5cGUs Ci0JCQkJCQkgdGFyZ2V0dHlwZSwgdGFyZ2V0dHlwbW9kLAotCQkJCQkJIGNjb250ZXh0LCBjZm9y bWF0LCBsb2NhdGlvbik7CisJcmVzdWx0ID0gY29lcmNlX3R5cGVfZXh0ZW5kKHBzdGF0ZSwgZXhw ciwgZXhwcnR5cGUsCisJCQkJCQkJCXRhcmdldHR5cGUsIHRhcmdldHR5cG1vZCwKKwkJCQkJCQkJ Y2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9uLAorCQkJCQkJCQllc2NvbnRleHQpOworCWlmIChT T0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBOVUxMOwogCiAJLyoKIAkg KiBJZiB0aGUgdGFyZ2V0IGlzIGEgZml4ZWQtbGVuZ3RoIHR5cGUsIGl0IG1heSBuZWVkIGEgbGVu Z3RoIGNvZXJjaW9uIGFzCkBAIC0xNTgsNiArMTg2LDE4IEBAIE5vZGUgKgogY29lcmNlX3R5cGUo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQkJT2lkIGlucHV0VHlwZUlkLCBPaWQg dGFyZ2V0VHlwZUlkLCBpbnQzMiB0YXJnZXRUeXBlTW9kLAogCQkJQ29lcmNpb25Db250ZXh0IGNj b250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9uKQoreworCXJldHVybiBj b2VyY2VfdHlwZV9leHRlbmQocHN0YXRlLCBub2RlLAorCQkJCQkJCSAgaW5wdXRUeXBlSWQsIHRh cmdldFR5cGVJZCwgdGFyZ2V0VHlwZU1vZCwKKwkJCQkJCQkgIGNjb250ZXh0LCBjZm9ybWF0LCBs b2NhdGlvbiwgTlVMTCk7Cit9CisKK05vZGUgKgorY29lcmNlX3R5cGVfZXh0ZW5kKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKKwkJCQkgICBPaWQgaW5wdXRUeXBlSWQsIE9pZCB0YXJn ZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCisJCQkJICAgQ29lcmNpb25Db250ZXh0IGNj b250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKKwkJCQkgICBpbnQgbG9jYXRpb24sCisJCQkJ ICAgTm9kZSAqZXNjb250ZXh0KQogewogCU5vZGUJICAgKnJlc3VsdDsKIAlDb2VyY2lvblBhdGhU eXBlIHBhdGh0eXBlOwpAQCAtMjU2LDYgKzI5Niw4IEBAIGNvZXJjZV90eXBlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJaW50MzIJCWlucHV0VHlwZU1vZDsKIAkJVHlwZQkJYmFz ZVR5cGU7CiAJCVBhcnNlQ2FsbGJhY2tTdGF0ZSBwY2JzdGF0ZTsKKwkJY2hhcgkJKnN0cmluZzsK KwkJYm9vbAkJY29lcmNpb25fZmFpbGVkID0gZmFsc2U7CiAKIAkJLyoKIAkJICogSWYgdGhlIHRh cmdldCB0eXBlIGlzIGEgZG9tYWluLCB3ZSB3YW50IHRvIGNhbGwgaXRzIGJhc2UgdHlwZSdzCkBA IC0zMDgsMjEgKzM1MCwyNyBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg Km5vZGUsCiAJCSAqIFdlIGFzc3VtZSBoZXJlIHRoYXQgVU5LTk9XTidzIGludGVybmFsIHJlcHJl c2VudGF0aW9uIGlzIHRoZSBzYW1lCiAJCSAqIGFzIENTVFJJTkcuCiAJCSAqLwotCQlpZiAoIWNv bi0+Y29uc3Rpc251bGwpCi0JCQluZXdjb24tPmNvbnN0dmFsdWUgPSBzdHJpbmdUeXBlRGF0dW0o YmFzZVR5cGUsCi0JCQkJCQkJCQkJCQkgRGF0dW1HZXRDU3RyaW5nKGNvbi0+Y29uc3R2YWx1ZSks Ci0JCQkJCQkJCQkJCQkgaW5wdXRUeXBlTW9kKTsKKwkJaWYgKGNvbi0+Y29uc3Rpc251bGwpCisJ CQlzdHJpbmcgPSBOVUxMOwogCQllbHNlCi0JCQluZXdjb24tPmNvbnN0dmFsdWUgPSBzdHJpbmdU eXBlRGF0dW0oYmFzZVR5cGUsCi0JCQkJCQkJCQkJCQkgTlVMTCwKLQkJCQkJCQkJCQkJCSBpbnB1 dFR5cGVNb2QpOworCQkJc3RyaW5nID0gRGF0dW1HZXRDU3RyaW5nKGNvbi0+Y29uc3R2YWx1ZSk7 CisKKwkJaWYgKCFzdHJpbmdUeXBlRGF0dW1TYWZlKGJhc2VUeXBlLAorCQkJCQkJCQkgc3RyaW5n LAorCQkJCQkJCQkgaW5wdXRUeXBlTW9kLAorCQkJCQkJCQkgZXNjb250ZXh0LAorCQkJCQkJCQkg Jm5ld2Nvbi0+Y29uc3R2YWx1ZSkpCisJCXsKKwkJCWNvZXJjaW9uX2ZhaWxlZCA9IHRydWU7CisJ CQluZXdjb24tPmNvbnN0aXNudWxsID0gdHJ1ZTsKKwkJfQogCiAJCS8qCiAJCSAqIElmIGl0J3Mg YSB2YXJsZW5hIHZhbHVlLCBmb3JjZSBpdCB0byBiZSBpbiBub24tZXhwYW5kZWQKIAkJICogKG5v bi10b2FzdGVkKSBmb3JtYXQ7IHRoaXMgYXZvaWRzIGFueSBwb3NzaWJsZSBkZXBlbmRlbmN5IG9u CiAJCSAqIGV4dGVybmFsIHZhbHVlcyBhbmQgaW1wcm92ZXMgY29uc2lzdGVuY3kgb2YgcmVwcmVz ZW50YXRpb24uCiAJCSAqLwotCQlpZiAoIWNvbi0+Y29uc3Rpc251bGwgJiYgbmV3Y29uLT5jb25z dGxlbiA9PSAtMSkKKwkJaWYgKCFjb2VyY2lvbl9mYWlsZWQgJiYgIWNvbi0+Y29uc3Rpc251bGwg JiYgbmV3Y29uLT5jb25zdGxlbiA9PSAtMSkKIAkJCW5ld2Nvbi0+Y29uc3R2YWx1ZSA9CiAJCQkJ UG9pbnRlckdldERhdHVtKFBHX0RFVE9BU1RfREFUVU0obmV3Y29uLT5jb25zdHZhbHVlKSk7CiAK QEAgLTMzOSw3ICszODcsNyBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg Km5vZGUsCiAJCSAqIGlkZW50aWNhbCBtYXkgbm90IGdldCByZWNvZ25pemVkIGFzIHN1Y2guICBT ZWUgcGdzcWwtaGFja2VycwogCQkgKiBkaXNjdXNzaW9uIG9mIDIwMDgtMDQtMDQuCiAJCSAqLwot CQlpZiAoIWNvbi0+Y29uc3Rpc251bGwgJiYgIW5ld2Nvbi0+Y29uc3RieXZhbCkKKwkJaWYgKCFj b2VyY2lvbl9mYWlsZWQgJiYgIWNvbi0+Y29uc3Rpc251bGwgJiYgIW5ld2Nvbi0+Y29uc3RieXZh bCkKIAkJewogCQkJRGF0dW0JCXZhbDI7CiAKQEAgLTM1OCw4ICs0MDYsMTAgQEAgY29lcmNlX3R5 cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCiAJCXJlc3VsdCA9IChOb2RlICop IG5ld2NvbjsKIAotCQkvKiBJZiB0YXJnZXQgaXMgYSBkb21haW4sIGFwcGx5IGNvbnN0cmFpbnRz LiAqLwotCQlpZiAoYmFzZVR5cGVJZCAhPSB0YXJnZXRUeXBlSWQpCisJCWlmIChjb2VyY2lvbl9m YWlsZWQpCisJCQlyZXN1bHQgPSBOVUxMOworCQllbHNlIGlmIChiYXNlVHlwZUlkICE9IHRhcmdl dFR5cGVJZCkKKwkJCS8qIElmIHRhcmdldCBpcyBhIGRvbWFpbiwgYXBwbHkgY29uc3RyYWludHMu ICovCiAJCQlyZXN1bHQgPSBjb2VyY2VfdG9fZG9tYWluKHJlc3VsdCwKIAkJCQkJCQkJCSAgYmFz ZVR5cGVJZCwgYmFzZVR5cGVNb2QsCiAJCQkJCQkJCQkgIHRhcmdldFR5cGVJZCwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCmluZGV4IDZiOGZhMTVmY2EzLi5hMTBlYzY0YTcwOCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCkBAIC0xNyw2ICsxNyw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9k ZXRhaWxzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2Nhc3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKQEAgLTM3LDYgKzM4 LDcgQEAKICNpbmNsdWRlICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMu aCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNo ZS5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgogI2luY2x1ZGUgInV0aWxzL3htbC5o IgogCkBAIC02MCw3ICs2Miw4IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1NdWx0aUFzc2lnblJl ZihQYXJzZVN0YXRlICpwc3RhdGUsIE11bHRpQXNzaWduUmVmICptYXJlZik7CiBzdGF0aWMgTm9k ZSAqdHJhbnNmb3JtQ2FzZUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYXNlRXhwciAqYyk7CiBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1Ykxpbmsg KnN1YmxpbmspOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpw c3RhdGUsIEFfQXJyYXlFeHByICphLAotCQkJCQkJCQlPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1l bnRfdHlwZSwgaW50MzIgdHlwbW9kKTsKKwkJCQkJCQkJT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVt ZW50X3R5cGUsIGludDMyIHR5cG1vZCwKKwkJCQkJCQkJYm9vbCAqY2FuX2NvZXJjZSk7CiBzdGF0 aWMgTm9kZSAqdHJhbnNmb3JtUm93RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIFJvd0V4cHIgKnIs IGJvb2wgYWxsb3dEZWZhdWx0KTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2FsZXNjZUV4cHIo UGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2FsZXNjZUV4cHIgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5z Zm9ybU1pbk1heEV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBNaW5NYXhFeHByICptKTsKQEAgLTc2 LDYgKzc5LDEwIEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRl ICpwc3RhdGUsCiAJCQkJCQkJCSAgaW50IHN1YmxldmVsc191cCwgaW50IGxvY2F0aW9uKTsKIHN0 YXRpYyBOb2RlICp0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5k aXJlY3Rpb24gKmluZCk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpOworc3RhdGljIE5vZGUgKnRyYW5zZm9ybVR5cGVTYWZl Q2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFNhZmVUeXBlQ2FzdCAqdGMpOworc3RhdGljIHZvaWQg Q29lcmNpb25FcnJvclNhZmVDaGVjayhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmNhc3RleHBy LAorCQkJCQkJCQkgICBOb2RlICpzb3VyY2VleHByLCBPaWQgaW5wdXRUeXBlLAorCQkJCQkJCQkg ICBPaWQgdGFyZ2V0VHlwZSk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29sbGF0ZUNsYXVzZShQ YXJzZVN0YXRlICpwc3RhdGUsIENvbGxhdGVDbGF1c2UgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5z Zm9ybUpzb25PYmplY3RDb25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJ CUpzb25PYmplY3RDb25zdHJ1Y3RvciAqY3Rvcik7CkBAIC0xNjQsMTMgKzE3MSwxNyBAQCB0cmFu c2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAKIAkJY2Fz ZSBUX0FfQXJyYXlFeHByOgogCQkJcmVzdWx0ID0gdHJhbnNmb3JtQXJyYXlFeHByKHBzdGF0ZSwg KEFfQXJyYXlFeHByICopIGV4cHIsCi0JCQkJCQkJCQkJSW52YWxpZE9pZCwgSW52YWxpZE9pZCwg LTEpOworCQkJCQkJCQkJCUludmFsaWRPaWQsIEludmFsaWRPaWQsIC0xLCBOVUxMKTsKIAkJCWJy ZWFrOwogCiAJCWNhc2UgVF9UeXBlQ2FzdDoKIAkJCXJlc3VsdCA9IHRyYW5zZm9ybVR5cGVDYXN0 KHBzdGF0ZSwgKFR5cGVDYXN0ICopIGV4cHIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1NhZmVU eXBlQ2FzdDoKKwkJCXJlc3VsdCA9IHRyYW5zZm9ybVR5cGVTYWZlQ2FzdChwc3RhdGUsIChTYWZl VHlwZUNhc3QgKikgZXhwcik7CisJCQlicmVhazsKKwogCQljYXNlIFRfQ29sbGF0ZUNsYXVzZToK IAkJCXJlc3VsdCA9IHRyYW5zZm9ybUNvbGxhdGVDbGF1c2UocHN0YXRlLCAoQ29sbGF0ZUNsYXVz ZSAqKSBleHByKTsKIAkJCWJyZWFrOwpAQCAtNTY0LDYgKzU3NSw3IEBAIHRyYW5zZm9ybUNvbHVt blJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJ TkRfVkFMVUVTX1NJTkdMRToKIAkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKIAkJ Y2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFV TFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5E X0lOREVYX0VYUFJFU1NJT046CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX1BSRURJQ0FURToKQEAg LTE4MjQsNiArMTgzNiw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBT dWJMaW5rICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIg PSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIGNoZWNrIGNvbnN0cmFpbnQiKTsKIAkJCWJyZWFr OworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQllcnIgPSBfKCJjYW5ub3QgdXNl IHN1YnF1ZXJ5IGluIENBU1QgREVGQVVMVCBleHByZXNzaW9uIik7CisJCQlicmVhazsKIAkJY2Fz ZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RF RkFVTFQ6CiAJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRkFVTFQgZXhwcmVz c2lvbiIpOwpAQCAtMjAxMSwxNyArMjAyNiwyNCBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKICAqIElmIHRoZSBjYWxsZXIgc3BlY2lmaWVz IHRoZSB0YXJnZXQgdHlwZSwgdGhlIHJlc3VsdGluZyBhcnJheSB3aWxsCiAgKiBiZSBvZiBleGFj dGx5IHRoYXQgdHlwZS4gIE90aGVyd2lzZSB3ZSB0cnkgdG8gaW5mZXIgYSBjb21tb24gdHlwZQog ICogZm9yIHRoZSBlbGVtZW50cyB1c2luZyBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKyAqCisgKiBN b3N0IG9mIHRoZSB0aW1lLCBjYW5fY29lcmNlIHdpbGwgYmUgTlVMTC4gIEl0IGlzIG5vdCBOVUxM IG9ubHkgd2hlbgorICogcGVyZm9ybWluZyBwYXJzZSBhbmFseXNpcyBmb3IgQ0FTVChERUZBVUxU IC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SKQorICogZXhwcmVzc2lvbi4gSXQncyBkZWZhdWx0IHRv IHRydWUuIElmIGNvZXJjaW5nIGFycmF5IGVsZW1lbnRzIGZhaWxzLCBpdCB3aWxsCisgKiBiZSBz ZXQgdG8gZmFsc2UuCiAgKi8KIHN0YXRpYyBOb2RlICoKIHRyYW5zZm9ybUFycmF5RXhwcihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAotCQkJCSAgIE9pZCBhcnJheV90eXBlLCBP aWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2QpCisJCQkJICAgT2lkIGFycmF5X3R5cGUsIE9p ZCBlbGVtZW50X3R5cGUsIGludDMyIHR5cG1vZCwgYm9vbCAqY2FuX2NvZXJjZSkKIHsKIAlBcnJh eUV4cHIgICpuZXdhID0gbWFrZU5vZGUoQXJyYXlFeHByKTsKIAlMaXN0CSAgICpuZXdlbGVtcyA9 IE5JTDsKIAlMaXN0CSAgICpuZXdjb2VyY2VkZWxlbXMgPSBOSUw7CiAJTGlzdENlbGwgICAqZWxl bWVudDsKIAlPaWQJCQljb2VyY2VfdHlwZTsKKwlPaWQJCQljb2VyY2VfdHlwZV9jb2xsOwogCWJv b2wJCWNvZXJjZV9oYXJkOworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJyb3JT YXZlQ29udGV4dH07CiAKIAkvKgogCSAqIFRyYW5zZm9ybSB0aGUgZWxlbWVudCBleHByZXNzaW9u cwpAQCAtMjA0NSw5ICsyMDY3LDEwIEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpw c3RhdGUsIEFfQXJyYXlFeHByICphLAogCQkJCQkJCQkJICAoQV9BcnJheUV4cHIgKikgZSwKIAkJ CQkJCQkJCSAgYXJyYXlfdHlwZSwKIAkJCQkJCQkJCSAgZWxlbWVudF90eXBlLAotCQkJCQkJCQkJ ICB0eXBtb2QpOworCQkJCQkJCQkJICB0eXBtb2QsCisJCQkJCQkJCQkgIGNhbl9jb2VyY2UpOwog CQkJLyogd2UgY2VydGFpbmx5IGhhdmUgYW4gYXJyYXkgaGVyZSAqLwotCQkJQXNzZXJ0KGFycmF5 X3R5cGUgPT0gSW52YWxpZE9pZCB8fCBhcnJheV90eXBlID09IGV4cHJUeXBlKG5ld2UpKTsKKwkJ CUFzc2VydChjYW5fY29lcmNlIHx8IGFycmF5X3R5cGUgPT0gSW52YWxpZE9pZCB8fCBhcnJheV90 eXBlID09IGV4cHJUeXBlKG5ld2UpKTsKIAkJCW5ld2EtPm11bHRpZGltcyA9IHRydWU7CiAJCX0K IAkJZWxzZQpAQCAtMjA4OCw2ICsyMTExLDkgQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJfQogCWVsc2UKIAl7CisJCS8qIFRhcmdldCB0 eXBlIG11c3QgdmFsaWQgZm9yIENBU1QgREVGQVVMVCAqLworCQlBc3NlcnQoY2FuX2NvZXJjZSA9 PSBOVUxMKTsKKwogCQkvKiBDYW4ndCBoYW5kbGUgYW4gZW1wdHkgYXJyYXkgd2l0aG91dCBhIHRh cmdldCB0eXBlICovCiAJCWlmIChuZXdlbGVtcyA9PSBOSUwpCiAJCQllcmVwb3J0KEVSUk9SLApA QCAtMjEyNSw2ICsyMTUxLDggQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQV9BcnJheUV4cHIgKmEsCiAJCWNvZXJjZV9oYXJkID0gZmFsc2U7CiAJfQogCisJY29lcmNl X3R5cGVfY29sbCA9IGdldF90eXBjb2xsYXRpb24oY29lcmNlX3R5cGUpOworCiAJLyoKIAkgKiBD b2VyY2UgZWxlbWVudHMgdG8gdGFyZ2V0IHR5cGUKIAkgKgpAQCAtMjEzNCwyOCArMjE2Miw4MiBA QCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwK IAkgKiBJZiB0aGUgYXJyYXkncyB0eXBlIHdhcyBtZXJlbHkgZGVyaXZlZCBmcm9tIHRoZSBjb21t b24gdHlwZSBvZiBpdHMKIAkgKiBlbGVtZW50cywgdGhlbiB0aGUgZWxlbWVudHMgYXJlIGltcGxp Y2l0bHkgY29lcmNlZCB0byB0aGUgY29tbW9uIHR5cGUuCiAJICogVGhpcyBpcyBjb25zaXN0ZW50 IHdpdGggb3RoZXIgdXNlcyBvZiBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKwkgKgorCSAqIElmIGNh bl9jb2VyY2UgaXMgbm90IE5VTEwsIHdlIG5lZWQgdG8gc2FmZWx5IHRlc3Qgd2hldGhlciBlYWNo IGVsZW1lbnQKKwkgKiBjYW4gYmUgY29lcmNlZCB0byB0aGUgdGFyZ2V0IHR5cGUsIHNpbWlsYXIg dG8gd2hhdCBpcyBkb25lIGluCisJICogdHJhbnNmb3JtVHlwZVNhZmVDYXN0LgogCSAqLwogCWZv cmVhY2goZWxlbWVudCwgbmV3ZWxlbXMpCiAJewogCQlOb2RlCSAgICplID0gKE5vZGUgKikgbGZp cnN0KGVsZW1lbnQpOwotCQlOb2RlCSAgICpuZXdlOworCQlOb2RlCSAgICpuZXdlID0gTlVMTDsK IAogCQlpZiAoY29lcmNlX2hhcmQpCiAJCXsKLQkJCW5ld2UgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5 cGUocHN0YXRlLCBlLAotCQkJCQkJCQkJCSBleHByVHlwZShlKSwKLQkJCQkJCQkJCQkgY29lcmNl X3R5cGUsCi0JCQkJCQkJCQkJIHR5cG1vZCwKLQkJCQkJCQkJCQkgQ09FUkNJT05fRVhQTElDSVQs Ci0JCQkJCQkJCQkJIENPRVJDRV9FWFBMSUNJVF9DQVNULAotCQkJCQkJCQkJCSAtMSk7Ci0JCQlp ZiAobmV3ZSA9PSBOVUxMKQotCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJD T0RFX0NBTk5PVF9DT0VSQ0UpLAotCQkJCQkJIGVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0 byAlcyIsCi0JCQkJCQkJCWZvcm1hdF90eXBlX2JlKGV4cHJUeXBlKGUpKSwKLQkJCQkJCQkJZm9y bWF0X3R5cGVfYmUoY29lcmNlX3R5cGUpKSwKLQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24oZSkpKSk7CisJCQkvKgorCQkJICogQ2FuIG5vdCBjb2VyY2UsIGp1 c3QgYXBwZW5kIHRoZSB0cmFuc2Zvcm1lZCBlbGVtZW50IGV4cHJlc3Npb24gdG8KKwkJCSAqIHRo ZSBsaXN0LgorCQkJICovCisJCQlpZiAoY2FuX2NvZXJjZSAmJiAoISpjYW5fY29lcmNlKSkKKwkJ CQluZXdlID0gZTsKKwkJCWVsc2UKKwkJCXsKKwkJCQlOb2RlCSAgICplY29weSA9IE5VTEw7CisK KwkJCQlpZiAoY2FuX2NvZXJjZSkKKwkJCQkJZWNvcHkgPSBjb3B5T2JqZWN0KGUpOworCisJCQkJ bmV3ZSA9IGNvZXJjZV90b190YXJnZXRfdHlwZV9leHRlbmRlZChwc3RhdGUsIGUsCisJCQkJCQkJ CQkJCQkJICBleHByVHlwZShlKSwKKwkJCQkJCQkJCQkJCQkgIGNvZXJjZV90eXBlLAorCQkJCQkJ CQkJCQkJCSAgdHlwbW9kLAorCQkJCQkJCQkJCQkJCSAgQ09FUkNJT05fRVhQTElDSVQsCisJCQkJ CQkJCQkJCQkJICBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQkJCQkgIC0xLAorCQkJ CQkJCQkJCQkJCSAgKE5vZGUgKikgJmVzY29udGV4dCk7CisJCQkJaWYgKG5ld2UgPT0gTlVMTCkK KwkJCQl7CisJCQkJCWlmICghY2FuX2NvZXJjZSkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkJCShlcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCisJCQkJCQkJCWVycm1zZygiY2Fu bm90IGNhc3QgdHlwZSAlcyB0byAlcyIsCisJCQkJCQkJCQkgICBmb3JtYXRfdHlwZV9iZShleHBy VHlwZShlKSksCisJCQkJCQkJCQkgICBmb3JtYXRfdHlwZV9iZShjb2VyY2VfdHlwZSkpLAorCQkJ CQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oZSkpKSk7CisJCQkJ CWVsc2UKKwkJCQkJeworCQkJCQkJLyoKKwkJCQkJCSAqIENhbiBub3QgY29lcmNlLCBqdXN0IGFw cGVuZCB0aGUgdHJhbnNmb3JtZWQgZWxlbWVudAorCQkJCQkJICogZXhwcmVzc2lvbiB0byB0aGUg bGlzdC4KKwkJCQkJCSAqLworCQkJCQkJbmV3ZSA9IGVjb3B5OworCQkJCQkJKmNhbl9jb2VyY2Ug PSBmYWxzZTsKKwkJCQkJfQorCQkJCX0KKwkJCQllbHNlIGlmIChjYW5fY29lcmNlICYmIElzQShl Y29weSwgQ29uc3QpICYmIElzQShuZXdlLCBGdW5jRXhwcikpCisJCQkJeworCQkJCQlOb2RlCSAg ICpyZXN1bHQ7CisKKwkJCQkJLyoKKwkJCQkJICogcHJlLWV2YWx1YXRlIHNpbXBsZSBjb25zdGFu dCBjYXN0IGV4cHJlc3Npb25zIGluIGEgd2F5CisJCQkJCSAqIHRoYXQgdG9sZXJhdGUgZXJyb3Jz LgorCQkJCQkgKi8KKwkJCQkJRnVuY0V4cHIgKm5ld2V4cHIgPSAoRnVuY0V4cHIgKikgY29weU9i amVjdChuZXdlKTsKKworCQkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgKE5vZGUg KikgbmV3ZXhwcik7CisKKwkJCQkJcmVzdWx0ID0gKE5vZGUgKikgZXZhbHVhdGVfZXhwcigoRXhw ciAqKSBuZXdleHByLAorCQkJCQkJCQkJCQkJCWNvZXJjZV90eXBlLAorCQkJCQkJCQkJCQkJCXR5 cG1vZCwKKwkJCQkJCQkJCQkJCQljb2VyY2VfdHlwZV9jb2xsLAorCQkJCQkJCQkJCQkJCXRydWUp OworCQkJCQlpZiAocmVzdWx0ID09IE5VTEwpCisJCQkJCXsKKwkJCQkJCW5ld2UgPSBlY29weTsK KwkJCQkJCSpjYW5fY29lcmNlID0gZmFsc2U7CisJCQkJCX0KKwkJCQl9CisJCQl9CiAJCX0KIAkJ ZWxzZQogCQkJbmV3ZSA9IGNvZXJjZV90b19jb21tb25fdHlwZShwc3RhdGUsIGUsCkBAIC0yNzQz LDcgKzI4MjUsOCBAQCB0cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVD YXN0ICp0YykKIAkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICopIGFyZywKIAkJCQkJCQkJCSAgdGFy Z2V0QmFzZVR5cGUsCiAJCQkJCQkJCQkgIGVsZW1lbnRUeXBlLAotCQkJCQkJCQkJICB0YXJnZXRC YXNlVHlwbW9kKTsKKwkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5cG1vZCwKKwkJCQkJCQkJCSAgTlVM TCk7CiAJCX0KIAkJZWxzZQogCQkJZXhwciA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwg YXJnKTsKQEAgLTI3ODAsNiArMjg2MywyOTEgQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIEhh bmRsZSBhbiBleHBsaWNpdCBDQVNUKC4uLiBERUZBVUxUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9S KSBjb25zdHJ1Y3QuCisgKgorICogVHJhbnNmb3JtIFNhZmVUeXBlQ2FzdCBub2RlLCBsb29rIHVw IHRoZSB0eXBlIG5hbWUsIGFuZCBhcHBseSBhbnkgbmVjZXNzYXJ5CisgKiBjb2VyY2lvbiBmdW5j dGlvbihzKS4KKyAqLworc3RhdGljIE5vZGUgKgordHJhbnNmb3JtVHlwZVNhZmVDYXN0KFBhcnNl U3RhdGUgKnBzdGF0ZSwgU2FmZVR5cGVDYXN0ICp0YykKK3sKKwlTYWZlVHlwZUNhc3RFeHByICAg KnJlc3VsdDsKKwlUeXBlQ2FzdCAgICp0Y2FzdCA9IChUeXBlQ2FzdCAqKSB0Yy0+Y2FzdDsKKwlO b2RlCSAgICpzb3VyY2VfZXhwcjsKKwlOb2RlCSAgICpzcmNleHByOworCU5vZGUJICAgKmRlZmV4 cHI7CisJTm9kZQkgICAqY2FzdF9leHByID0gTlVMTDsKKwlPaWQJCQlpbnB1dFR5cGU7CisJT2lk CQkJdGFyZ2V0VHlwZTsKKwlpbnQzMgkJdGFyZ2V0VHlwbW9kOworCU9pZAkJCXRhcmdldFR5cGVj b2xsOworCU9pZAkJCXRhcmdldEJhc2VUeXBlOworCWludDMyCQl0YXJnZXRCYXNlVHlwbW9kOwor CWJvb2wJCWNhbl9jb2VyY2UgPSB0cnVlOworCisJLyogTG9vayB1cCB0aGUgdHlwZSBuYW1lIGZp cnN0ICovCisJdHlwZW5hbWVUeXBlSWRBbmRNb2QocHN0YXRlLCB0Y2FzdC0+dHlwZU5hbWUsICZ0 YXJnZXRUeXBlLCAmdGFyZ2V0VHlwbW9kKTsKKwl0YXJnZXRCYXNlVHlwbW9kID0gdGFyZ2V0VHlw bW9kOworCisJdGFyZ2V0VHlwZWNvbGwgPSBnZXRfdHlwY29sbGF0aW9uKHRhcmdldFR5cGUpOwor CisJdGFyZ2V0QmFzZVR5cGUgPSBnZXRCYXNlVHlwZUFuZFR5cG1vZCh0YXJnZXRUeXBlLCAmdGFy Z2V0QmFzZVR5cG1vZCk7CisKKwkvKiBub3cgbG9va2luZyBhdCBERUZBVUxUIGV4cHJlc3Npb24g Ki8KKwlkZWZleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHRjLT5yYXdfZGVmYXVsdCwgRVhQ Ul9LSU5EX0NBU1RfREVGQVVMVCk7CisKKwlkZWZleHByID0gY29lcmNlX3RvX3RhcmdldF90eXBl KHBzdGF0ZSwgZGVmZXhwciwgZXhwclR5cGUoZGVmZXhwciksCisJCQkJCQkJCQl0YXJnZXRUeXBl LCB0YXJnZXRUeXBtb2QsCisJCQkJCQkJCQlDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCUNP RVJDRV9FWFBMSUNJVF9DQVNULAorCQkJCQkJCQkJZXhwckxvY2F0aW9uKGRlZmV4cHIpKTsKKwlp ZiAoZGVmZXhwciA9PSBOVUxMKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09E RV9DQU5OT1RfQ09FUkNFKSwKKwkJCQllcnJtc2coImNhbm5vdCBjb2VyY2UgJXMgZXhwcmVzc2lv biB0byB0eXBlICVzIiwKKwkJCQkJICAgIkNBU1QgREVGQVVMVCIsCisJCQkJCSAgIGZvcm1hdF90 eXBlX2JlKHRhcmdldFR5cGUpKSwKKwkJCQlwYXJzZXJfY29lcmNpb25fZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24odGMtPnJhd19kZWZhdWx0KSwgZGVmZXhwcikpOworCisJYXNzaWdu X2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIGRlZmV4cHIpOworCisJLyoKKwkgKiBUaGUgY29sbGF0 aW9uIG9mIERFRkFVTFQgZXhwcmVzc2lvbiBtdXN0IG1hdGNoIHRoZSBjb2xsYXRpb24gb2YgdGhl CisJICogdGFyZ2V0IHR5cGUuCisJICovCisJaWYgKE9pZElzVmFsaWQodGFyZ2V0VHlwZWNvbGwp KQorCXsKKwkJT2lkCQlkZWZDb2xsID0gZXhwckNvbGxhdGlvbihkZWZleHByKTsKKworCQlpZiAo T2lkSXNWYWxpZChkZWZDb2xsKSAmJiB0YXJnZXRUeXBlY29sbCAhPSBkZWZDb2xsKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJ CQkJZXJybXNnKCJ0aGUgY29sbGF0aW9uIG9mIENBU1QgREVGQVVMVCBleHByZXNzaW9uIGNvbmZs aWN0cyB3aXRoIHRhcmdldCB0eXBlIGNvbGxhdGlvbiIpLAorCQkJCQllcnJkZXRhaWwoIlwiJXNc IiB2ZXJzdXMgXCIlc1wiIiwKKwkJCQkJCQkgIGdldF9jb2xsYXRpb25fbmFtZSh0YXJnZXRUeXBl Y29sbCksCisJCQkJCQkJICBnZXRfY29sbGF0aW9uX25hbWUoZGVmQ29sbCkpLAorCQkJCQlwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oZGVmZXhwcikpKTsKKwl9CisKKwkv KgorCSAqIElmIHRoZSB0eXBlIGNhc3QgdGFyZ2V0IHR5cGUgaXMgYW4gYXJyYXkgdHlwZSwgd2Ug aW52b2tlCisJICogdHJhbnNmb3JtQXJyYXlFeHByKCkgZGlyZWN0bHkgc28gdGhhdCB3ZSBjYW4g cGFzcyBkb3duIHRoZSB0eXBlCisJICogaW5mb3JtYXRpb24uICBUaGlzIGF2b2lkcyBzb21lIGNh c2VzIHdoZXJlIHRyYW5zZm9ybUFycmF5RXhwcigpIG1pZ2h0IG5vdAorCSAqIGluZmVyIHRoZSBj b3JyZWN0IHR5cGUuICBPdGhlcndpc2UsIGp1c3QgdHJhbnNmb3JtIHRoZSBhcmd1bWVudCBub3Jt YWxseS4KKwkgKi8KKwlpZiAoSXNBKHRjYXN0LT5hcmcsIEFfQXJyYXlFeHByKSkKKwl7CisJCU9p ZAkJCWVsZW1lbnRUeXBlOworCisJCS8qCisJCSAqIElmIHRhcmdldCBpcyBhIGRvbWFpbiBvdmVy IGFycmF5LCB3b3JrIHdpdGggdGhlIGJhc2UgYXJyYXkgdHlwZQorCQkgKiBoZXJlLiAgQmVsb3cs IHdlJ2xsIGNhc3QgdGhlIGFycmF5IHR5cGUgdG8gdGhlIGRvbWFpbi4gIEluIHRoZQorCQkgKiB1 c3VhbCBjYXNlIHRoYXQgdGhlIHRhcmdldCBpcyBub3QgYSBkb21haW4sIHRoZSByZW1haW5pbmcg c3RlcHMKKwkJICogd2lsbCBiZSBhIG5vLW9wLgorCQkgKi8KKwkJZWxlbWVudFR5cGUgPSBnZXRf ZWxlbWVudF90eXBlKHRhcmdldEJhc2VUeXBlKTsKKworCQlpZiAoT2lkSXNWYWxpZChlbGVtZW50 VHlwZSkpCisJCXsKKwkJCXNvdXJjZV9leHByID0gdHJhbnNmb3JtQXJyYXlFeHByKHBzdGF0ZSwK KwkJCQkJCQkJCQkJIChBX0FycmF5RXhwciAqKSB0Y2FzdC0+YXJnLAorCQkJCQkJCQkJCQkgdGFy Z2V0QmFzZVR5cGUsCisJCQkJCQkJCQkJCSBlbGVtZW50VHlwZSwKKwkJCQkJCQkJCQkJIHRhcmdl dEJhc2VUeXBtb2QsCisJCQkJCQkJCQkJCSAmY2FuX2NvZXJjZSk7CisJCX0KKwkJZWxzZQorCQkJ c291cmNlX2V4cHIgPSB0cmFuc2Zvcm1FeHByUmVjdXJzZShwc3RhdGUsIHRjYXN0LT5hcmcpOwor CX0KKwllbHNlCisJCXNvdXJjZV9leHByID0gdHJhbnNmb3JtRXhwclJlY3Vyc2UocHN0YXRlLCB0 Y2FzdC0+YXJnKTsKKworCS8qCisJICogU2luY2Ugd2UgY2FuJ3QgYmUgY2VydGFpbiB0aGF0IGNv ZXJjZV90b190YXJnZXRfdHlwZV9leHRlbmRlZCB3b24ndAorCSAqIG1vZGlmeSB0aGUgc291cmNl IGV4cHJlc3Npb24sIHdlIGNyZWF0ZSBhIGNvcHkgb2YgaXQgZmlyc3QuIFRoaXMgZW5zdXJlcwor CSAqIHRoZSB0cmFuc2Zvcm1lZCBzb3VyY2UgZXhwcmVzc2lvbiBpcyBjb3JyZWN0bHkgcGFzc2Vk IHRvIFNhZmVUeXBlQ2FzdEV4cHIKKwkgKi8KKwlzcmNleHByID0gY29weU9iamVjdChzb3VyY2Vf ZXhwcik7CisKKwlpbnB1dFR5cGUgPSBleHByVHlwZShzb3VyY2VfZXhwcik7CisJaWYgKGlucHV0 VHlwZSA9PSBJbnZhbGlkT2lkKQorCQlyZXR1cm4gKE5vZGUgKikgTlVMTDsJCQkvKiByZXR1cm4g TlVMTCBpZiBOVUxMIGlucHV0ICovCisKKwlpZiAoY2FuX2NvZXJjZSkKKwl7CisJCUVycm9yU2F2 ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJyb3JTYXZlQ29udGV4dH07CisKKwkJY2FzdF9leHBy ID0gY29lcmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVkKHBzdGF0ZSwgc291cmNlX2V4cHIsIGlu cHV0VHlwZSwKKwkJCQkJCQkJCQkJCSAgIHRhcmdldFR5cGUsIHRhcmdldFR5cG1vZCwKKwkJCQkJ CQkJCQkJCSAgIENPRVJDSU9OX0VYUExJQ0lULAorCQkJCQkJCQkJCQkJICAgQ09FUkNFX0VYUExJ Q0lUX0NBU1QsCisJCQkJCQkJCQkJCQkgICB0Y2FzdC0+bG9jYXRpb24sCisJCQkJCQkJCQkJCQkg ICAoTm9kZSAqKSAmZXNjb250ZXh0KTsKKwkJaWYgKGNhc3RfZXhwciA9PSBOVUxMKQorCQkJY2Fu X2NvZXJjZSA9IGZhbHNlOworCisJCUNvZXJjaW9uRXJyb3JTYWZlQ2hlY2socHN0YXRlLCBjYXN0 X2V4cHIsIHNvdXJjZV9leHByLCBpbnB1dFR5cGUsCisJCQkJCQkJICAgdGFyZ2V0VHlwZSk7CisJ fQorCisJaWYgKElzQShzcmNleHByLCBDb25zdCkgJiYgY2FzdF9leHByICYmIElzQShjYXN0X2V4 cHIsIEZ1bmNFeHByKSkKKwl7CisJCU5vZGUJICAgKnJlc3VsdDsKKworCQkvKgorCQkgKiBwcmUt ZXZhbHVhdGUgc2ltcGxlIGNvbnN0YW50IGNhc3QgZXhwcmVzc2lvbnMgaW4gYSBlcnJvciBzYWZl IHdheQorCQkgKgorCQkgKiBSYXRpb25hbGU6CisJCSAqIDEuIFdoZW4gZGVwYXJzaW5nIHNhZmUg Y2FzdCBleHByZXNzaW9ucyAob3IgaW4gb3RoZXIgY2FzZXMpLAorCQkgKiAgICBldmFsX2NvbnN0 X2V4cHJlc3Npb25zIG1pZ2h0IGJlIGludm9rZWQsIGJ1dCBpdCBjYW5ub3QKKwkJICogICAgaGFu ZGxlIGVycm9ycyBncmFjZWZ1bGx5LgorCQkgKiAyLiBJZiB0aGUgY2FzdCBleHByZXNzaW9uIGlu dm9sdmVzIG9ubHkgc2ltcGxlIGNvbnN0YW50cywgd2UKKwkJICogICAgY2FuIHNhZmVseSBldmFs dWF0ZSBpdCBhaGVhZCBvZiB0aW1lLiBJZiB0aGUgZXZhbHVhdGlvbgorCQkgKiAgICBmYWlscywg aXQgaW5kaWNhdGVzIHRoYXQgc3VjaCBhIGNhc3QgaXMgbm90IHBvc3NpYmxlLCBhbmQKKwkJICog ICAgd2UgY2FuIHRoZW4gZmFsbCBiYWNrIHRvIHRoZSBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbi4K KwkJICogMy4gRXZlbiBpZiBGdW5jRXhwciAoZm9yIGNhc3RmdW5jKSBub2RlIGhhcyB0aHJlZSBh cmd1bWVudHMsCisJCSAqICAgIHRoZSBzZWNvbmQgYW5kIHRoaXJkIGFyZ3VtZW50cyB3aWxsIGFs c28gYmUgY29uc3RhbnRzIHBlcgorCQkgKiAgICBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUuIEV2YWx1 YXRpbmcgYSBGdW5jRXhwciB3aG9zZQorCQkgKiAgICBhcmd1bWVudHMgYXJlIGFsbCBDb25zdCBp cyBzYWZlLgorCQkgKi8KKwkJRnVuY0V4cHIgKm5ld2V4cHIgPSAoRnVuY0V4cHIgKikgY29weU9i amVjdChjYXN0X2V4cHIpOworCisJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCAoTm9k ZSAqKSBuZXdleHByKTsKKworCQlyZXN1bHQgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHByKChFeHBy ICopIG5ld2V4cHIsCisJCQkJCQkJCQkJdGFyZ2V0VHlwZSwKKwkJCQkJCQkJCQl0YXJnZXRUeXBt b2QsCisJCQkJCQkJCQkJdGFyZ2V0VHlwZWNvbGwsCisJCQkJCQkJCQkJdHJ1ZSk7CisJCWlmIChy ZXN1bHQgPT0gTlVMTCkKKwkJeworCQkJLyogY2FuIG5vdCBjb2VyY2UsIHNldCBjYW5fY29lcmNl IHRvIGZhbHNlICovCisJCQljYW5fY29lcmNlID0gZmFsc2U7CisJCQljYXN0X2V4cHIgPSBOVUxM OworCQl9CisJfQorCisJQXNzZXJ0KGNhbl9jb2VyY2UgfHwgY2FzdF9leHByID09IE5VTEwpOwor CisJcmVzdWx0ID0gbWFrZU5vZGUoU2FmZVR5cGVDYXN0RXhwcik7CisJcmVzdWx0LT5zb3VyY2Vf ZXhwciA9IHNyY2V4cHI7CisJcmVzdWx0LT5jYXN0X2V4cHIgPSBjYXN0X2V4cHI7CisJcmVzdWx0 LT5kZWZhdWx0X2V4cHIgPSBkZWZleHByOworCXJlc3VsdC0+cmVzdWx0dHlwZSA9IHRhcmdldFR5 cGU7CisJcmVzdWx0LT5yZXN1bHR0eXBtb2QgPSB0YXJnZXRUeXBtb2Q7CisJcmVzdWx0LT5yZXN1 bHRjb2xsaWQgPSB0YXJnZXRUeXBlY29sbDsKKwlyZXN1bHQtPmxvY2F0aW9uID0gdGNhc3QtPmxv Y2F0aW9uOworCisJcmV0dXJuIChOb2RlICopIHJlc3VsdDsKK30KKworLyoKKyAqIENoZWNrIGNv ZXJjaW9uIGlzIGVycm9yIHNhZmUgb3Igbm90LiAgSWYgbm90IHRoZW4gcmVwb3J0IGVycm9yCisg Ki8KK3N0YXRpYyB2b2lkCitDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTm9kZSAqY2FzdGV4cHIsIE5vZGUgKnNvdXJjZWV4cHIsIE9pZCBpbnB1dFR5cGUsCisJCQkJ CSAgIE9pZCB0YXJnZXRUeXBlKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlib29sIAllcnJvcnNh ZmUgPSB0cnVlOworCWJvb2wJdXNlcmRlZmluZWQgPSBmYWxzZTsKKwlPaWQJCWlucHV0QmFzZVR5 cGU7CisJT2lkCQl0YXJnZXRCYXNlVHlwZTsKKwlPaWQgCWlucHV0RWxlbWVudFR5cGU7CisJT2lk CQlpbnB1dEVsZW1lbnRCYXNlVHlwZTsKKwlPaWQgCXRhcmdldEVsZW1lbnRUeXBlOworCU9pZAkJ dGFyZ2V0RWxlbWVudEJhc2VUeXBlOworCisJLyoKKwkgKiBCaW5hcnkgY29lcmNpb24gY2FzdCBp cyBlcXVpdmFsZW50IHRvIG5vIGNhc3QgYXQgYWxsLiAgQ29lcmNlVmlhSU8gY2FuCisJICogYWxz byBiZSBldmFsdWF0ZWQgaW4gYW4gZXJyb3Itc2FmZSBtYW5uZXIuIFNvIHNraXAgdGhlc2UgdHdv IGNhc2VzLgorCSAqLworCWlmICghY2FzdGV4cHIgfHwgSXNBKGNhc3RleHByLCBSZWxhYmVsVHlw ZSkgfHwKKwkJSXNBKGNhc3RleHByLCBDb2VyY2VWaWFJTykpCisJCXJldHVybjsKKworCS8qCisJ ICogVHlwZSBjYXN0IGludm9sdmluZyB3aXRoIHNvbWUgdHlwZXMgaXMgbm90IGVycm9yIHNhZmUs IGRvIHRoZSBjaGVjayBub3cuCisJICogV2UgbmVlZCBjb25zaWRlciBkb21haW4gb3ZlciBhcnJh eSBhbmQgYXJyYXkgb3ZlciBkb21haW4gc2NhcmVuaW8uIFdlCisJICogYWxyZWFkeSBjaGVja2Vk IHVzZXItZGVmaW5lZCB0eXBlIGNhc3QgYWJvdmUuCisJICovCisJaW5wdXRFbGVtZW50VHlwZSA9 IGdldF9lbGVtZW50X3R5cGUoaW5wdXRUeXBlKTsKKworCWlmIChPaWRJc1ZhbGlkKGlucHV0RWxl bWVudFR5cGUpKQorCQlpbnB1dEVsZW1lbnRCYXNlVHlwZSA9IGdldEJhc2VUeXBlKGlucHV0RWxl bWVudFR5cGUpOworCWVsc2UKKwl7CisJCWlucHV0QmFzZVR5cGUgPSBnZXRCYXNlVHlwZShpbnB1 dFR5cGUpOworCisJCWlucHV0RWxlbWVudEJhc2VUeXBlID0gZ2V0X2VsZW1lbnRfdHlwZShpbnB1 dEJhc2VUeXBlKTsKKwkJaWYgKCFPaWRJc1ZhbGlkKGlucHV0RWxlbWVudEJhc2VUeXBlKSkKKwkJ CWlucHV0RWxlbWVudEJhc2VUeXBlID0gaW5wdXRCYXNlVHlwZTsKKwl9CisKKwl0YXJnZXRFbGVt ZW50VHlwZSA9IGdldF9lbGVtZW50X3R5cGUodGFyZ2V0VHlwZSk7CisKKwlpZiAoT2lkSXNWYWxp ZCh0YXJnZXRFbGVtZW50VHlwZSkpCisJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IGdldEJhc2VU eXBlKHRhcmdldEVsZW1lbnRUeXBlKTsKKwllbHNlCisJeworCQl0YXJnZXRCYXNlVHlwZSA9IGdl dEJhc2VUeXBlKHRhcmdldFR5cGUpOworCisJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IGdldF9l bGVtZW50X3R5cGUodGFyZ2V0QmFzZVR5cGUpOworCQlpZiAoIU9pZElzVmFsaWQodGFyZ2V0RWxl bWVudEJhc2VUeXBlKSkKKwkJCXRhcmdldEVsZW1lbnRCYXNlVHlwZSA9IHRhcmdldEJhc2VUeXBl OworCX0KKworCWlmIChpbnB1dEVsZW1lbnRCYXNlVHlwZSA9PSBNT05FWU9JRCB8fAorCQl0YXJn ZXRFbGVtZW50QmFzZVR5cGUgPT0gTU9ORVlPSUQgfHwKKwkJKGlucHV0RWxlbWVudEJhc2VUeXBl ID09IENJUkNMRU9JRCAmJgorCQl0YXJnZXRFbGVtZW50QmFzZVR5cGUgPT0gUE9MWUdPTk9JRCkp CisJeworCQkvKgorCQkgKiBDYXN0cyBpbnZvbHZpbmcgTU9ORVkgdHlwZSBhcmUgbm90IGVycm9y IHNhZmUuIFRoZSBDSVJDTEUgdG8gUE9MWUdPTgorCQkgKiBjYXN0IGlzIGFsc28gdW5zYWZlIGJl Y2F1c2UgaXQgcmVsaWVzIG9uIGEgU1FMLWxhbmd1YWdlIGZ1bmN0aW9uOworCQkgKiBvbmx5IEMt bGFuZ3VhZ2UgZnVuY3Rpb25zIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZvciBlcnJvciBzYWZl CisJCSAqIGNhc3RzLgorCQkgKi8KKwkJZXJyb3JzYWZlID0gZmFsc2U7CisJfQorCisJaWYgKGVy cm9yc2FmZSkKKwl7CisJCS8qIExvb2sgaW4gcGdfY2FzdCAqLworCQl0dXBsZSA9IFNlYXJjaFN5 c0NhY2hlMihDQVNUU09VUkNFVEFSR0VULAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKGlucHV0 RWxlbWVudEJhc2VUeXBlKSwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh0YXJnZXRFbGVtZW50 QmFzZVR5cGUpKTsKKworCQlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCXsKKwkJCUZv cm1fcGdfY2FzdCBjYXN0Rm9ybSA9IChGb3JtX3BnX2Nhc3QpIEdFVFNUUlVDVCh0dXBsZSk7CisK KwkJCWlmIChjYXN0Rm9ybS0+b2lkID4gRmlyc3RVbnBpbm5lZE9iamVjdElkKQorCQkJeworCQkJ CWVycm9yc2FmZSA9IGZhbHNlOworCQkJCXVzZXJkZWZpbmVkID0gdHJ1ZTsKKwkJCX0KKworCQkJ UmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKwkJfQorCX0KKworCWlmICghZXJyb3JzYWZlKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJCWVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyB3aGVuICVzIGV4cHJlc3Np b24gaXMgc3BlY2lmaWVkIGluICVzIiwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUoaW5wdXRUeXBl KSwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSksCisJCQkJCSAgICJERUZBVUxU IiwKKwkJCQkJICAgIkNBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IiKSwKKwkJCQl1c2VyZGVm aW5lZAorCQkJCT8gZXJyaGludCgiU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBl cyBhcmUgbm90IHlldCBzdXBwb3J0ZWQiKQorCQkJCTogZXJyaGludCgiRXhwbGljaXQgY2FzdCBp cyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlIiksCisJCQkJcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHNvdXJjZWV4cHIpKSk7Cit9CisKKwog LyoKICAqIEhhbmRsZSBhbiBleHBsaWNpdCBDT0xMQVRFIGNsYXVzZS4KICAqCkBAIC0zMTkzLDYg KzM1NjEsOCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQlj YXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgogCQljYXNlIEVYUFJfS0lORF9ET01BSU5f Q0hFQ0s6CiAJCQlyZXR1cm4gIkNIRUNLIjsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxU OgorCQkJcmV0dXJuICJDQVNUIERFRkFVTFQiOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVG QVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJCXJldHVybiAiREVG QVVMVCI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA3NzhkNjljNmYzYy4uYTkwNzA1Yjk4 NDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjc0Myw2ICsyNzQzLDkgQEAgY2hlY2tf c3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGlu dCBsb2NhdGlvbikKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgogCQkJZXJyID0gXygi c2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFp bnRzIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJy ID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVG QVVMVCBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9E RUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygi c2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVz c2lvbnMiKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgzYi4uZGMw M2NmNGNlNzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTE4MjIsNiArMTgyMiwy MCBAQCBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hhciAqKm5hbWUpCiAJCQkJ fQogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3Q6CisJCQlzdHJlbmd0aCA9 IEZpZ3VyZUNvbG5hbWVJbnRlcm5hbCgoKFNhZmVUeXBlQ2FzdCAqKSBub2RlKS0+Y2FzdCwKKwkJ CQkJCQkJCQkJIG5hbWUpOworCQkJaWYgKHN0cmVuZ3RoIDw9IDEpCisJCQl7CisJCQkJVHlwZUNh c3QgCSpub2RlX2Nhc3Q7CisJCQkJbm9kZV9jYXN0ID0gKFR5cGVDYXN0ICopKChTYWZlVHlwZUNh c3QgKikgbm9kZSktPmNhc3Q7CisJCQkJaWYgKG5vZGVfY2FzdC0+dHlwZU5hbWUgIT0gTlVMTCkK KwkJCQl7CisJCQkJCSpuYW1lID0gc3RyVmFsKGxsYXN0KG5vZGVfY2FzdC0+dHlwZU5hbWUtPm5h bWVzKSk7CisJCQkJCXJldHVybiAxOworCQkJCX0KKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRf Q29sbGF0ZUNsYXVzZToKIAkJCXJldHVybiBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoKChDb2xsYXRl Q2xhdXNlICopIG5vZGUpLT5hcmcsIG5hbWUpOwogCQljYXNlIFRfR3JvdXBpbmdGdW5jOgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV90eXBlLmMKaW5kZXggOWQ3YWE2OTY3ZGEuLmY2ODI1YmI5ODcwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV90eXBlLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3R5cGUuaCIKICNpbmNsdWRlICJsaWIvc3RyaW5naW5mby5oIgogI2luY2x1ZGUgIm5vZGVzL21h a2VmdW5jcy5oIgorI2luY2x1ZGUgIm5vZGVzL21pc2Nub2Rlcy5oIgogI2luY2x1ZGUgInBhcnNl ci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlci5oIgogI2luY2x1ZGUgInV0 aWxzL2FycmF5LmgiCkBAIC02NjAsNiArNjYxLDE5IEBAIHN0cmluZ1R5cGVEYXR1bShUeXBlIHRw LCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1vZCkKIAlyZXR1cm4gT2lkSW5wdXRGdW5jdGlv bkNhbGwodHlwaW5wdXQsIHN0cmluZywgdHlwaW9wYXJhbSwgYXR0dHlwbW9kKTsKIH0KIAorLyog ZXJyb3Itc2FmZSB2ZXJzaW9uIG9mIHN0cmluZ1R5cGVEYXR1bSAqLworYm9vbAorc3RyaW5nVHlw ZURhdHVtU2FmZShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1vZCwKKwkJCQkJ Tm9kZSAqZXNjb250ZXh0LCBEYXR1bSAqcmVzdWx0KQoreworCUZvcm1fcGdfdHlwZSB0eXBmb3Jt ID0gKEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKwlPaWQJCQl0eXBpbnB1dCA9IHR5cGZv cm0tPnR5cGlucHV0OworCU9pZAkJCXR5cGlvcGFyYW0gPSBnZXRUeXBlSU9QYXJhbSh0cCk7CisK KwlyZXR1cm4gT2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZlKHR5cGlucHV0LCBzdHJpbmcsIHR5cGlv cGFyYW0sIGF0dHR5cG1vZCwKKwkJCQkJCQkJCWVzY29udGV4dCwgcmVzdWx0KTsKK30KKwogLyoK ICAqIEdpdmVuIGEgdHlwZWlkLCByZXR1cm4gdGhlIHR5cGUncyB0eXByZWxpZCAoYXNzb2NpYXRl ZCByZWxhdGlvbiksIGlmIGFueS4KICAqIFJldHVybnMgSW52YWxpZE9pZCBpZiB0eXBlIGlzIG5v dCBhIGNvbXBvc2l0ZSB0eXBlLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKaW5kZXggZTk2 YjM4YTU5ZDUuLjZkZjBiOTc1YTg4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAg LTQ2MzAsNyArNDYzMCw3IEBAIHRyYW5zZm9ybVBhcnRpdGlvbkJvdW5kVmFsdWUoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBOb2RlICp2YWwsCiAJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCB2 YWx1ZSk7CiAJCXZhbHVlID0gKE5vZGUgKikgZXhwcmVzc2lvbl9wbGFubmVyKChFeHByICopIHZh bHVlKTsKIAkJdmFsdWUgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHByKChFeHByICopIHZhbHVlLCBj b2xUeXBlLCBjb2xUeXBtb2QsCi0JCQkJCQkJCQkgICBwYXJ0Q29sbGF0aW9uKTsKKwkJCQkJCQkJ CSAgIHBhcnRDb2xsYXRpb24sIGZhbHNlKTsKIAkJaWYgKCFJc0EodmFsdWUsIENvbnN0KSkKIAkJ CWVsb2coRVJST1IsICJjb3VsZCBub3QgZXZhbHVhdGUgcGFydGl0aW9uIGJvdW5kIGV4cHJlc3Np b24iKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYwppbmRleCBiNjdjZTU3NjU2YS4u YzEwMjdjNTE1N2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNz LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYwpAQCAtMzI4OSw2ICsz Mjg5LDE0IEBAIGFycmF5X21hcChEYXR1bSBhcnJheWQsCiAJCS8qIEFwcGx5IHRoZSBnaXZlbiBl eHByZXNzaW9uIHRvIHNvdXJjZSBlbGVtZW50ICovCiAJCXZhbHVlc1tpXSA9IEV4ZWNFdmFsRXhw cihleHByc3RhdGUsIGVjb250ZXh0LCAmbnVsbHNbaV0pOwogCisJCS8qIEV4aXQgZWFybHkgaWYg dGhlIGV2YWx1YXRpb24gZmFpbHMgKi8KKwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXhwcnN0 YXRlLT5lc2NvbnRleHQpKQorCQl7CisJCQlwZnJlZSh2YWx1ZXMpOworCQkJcGZyZWUobnVsbHMp OworCQkJcmV0dXJuIChEYXR1bSkgMDsKKwkJfQorCiAJCWlmIChudWxsc1tpXSkKIAkJCWhhc251 bGxzID0gdHJ1ZTsKIAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDlmODVl Yjg2ZGExLi4xNzA0OWYwNWNmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMTA1 NjIsNiArMTA1NjIsMjcgQEAgZ2V0X3J1bGVfZXhwcihOb2RlICpub2RlLCBkZXBhcnNlX2NvbnRl eHQgKmNvbnRleHQsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhw cjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnN0Y2V4cHIgPSBjYXN0Tm9kZShTYWZl VHlwZUNhc3RFeHByLCBub2RlKTsKKworCQkJCS8qCisJCQkJICogSGVyZSwgd2UgY2Fubm90IGRl cGFyc2luZyBjYXN0X2V4cHIgZGlyZWN0bHksIHNpbmNlCisJCQkJICogdHJhbnNmb3JtVHlwZVNh ZmVDYXN0IG1heSBoYXZlIGZvbGRlZCBpdCBpbnRvIGEgc2ltcGxlCisJCQkJICogY29uc3RhbnQg b3IgTlVMTC4gSW5zdGVhZCwgd2UgdXNlIHNvdXJjZV9leHByIGFuZAorCQkJCSAqIGRlZmF1bHRf ZXhwciB0byByZWNvbnN0cnVjdCB0aGUgQ0FTVCBERUZBVUxUIGNsYXVzZS4KKwkJCQkgKi8KKwkJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIkNBU1QoIik7CisJCQkJZ2V0X3J1bGVfZXhw cihzdGNleHByLT5zb3VyY2VfZXhwciwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKworCQkJCWFw cGVuZFN0cmluZ0luZm8oYnVmLCAiIEFTICVzICIsCisJCQkJCQkJCSBmb3JtYXRfdHlwZV93aXRo X3R5cGVtb2Qoc3RjZXhwci0+cmVzdWx0dHlwZSwKKwkJCQkJCQkJCQkJCQkJICBzdGNleHByLT5y ZXN1bHR0eXBtb2QpKTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIkRFRkFVTFQg Iik7CisJCQkJZ2V0X3J1bGVfZXhwcihzdGNleHByLT5kZWZhdWx0X2V4cHIsIGNvbnRleHQsIHNo b3dpbXBsaWNpdCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgT04gQ09OVkVS U0lPTiBFUlJPUikiKTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfSnNvbkV4cHI6CiAJCQl7 CiAJCQkJSnNvbkV4cHIgICAqamV4cHIgPSAoSnNvbkV4cHIgKikgbm9kZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9m bWdyLmMKaW5kZXggMGZlNjNjNmJiODMuLmM5ZTVkMGRlOGVkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3Iu YwpAQCAtMTc1OSw2ICsxNzU5LDIwIEBAIE9pZElucHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlv bklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLCBpbnQzMiB0eXBtb2QpCiAJcmV0dXJuIElu cHV0RnVuY3Rpb25DYWxsKCZmbGluZm8sIHN0ciwgdHlwaW9wYXJhbSwgdHlwbW9kKTsKIH0KIAor LyogZXJyb3Itc2FmZSB2ZXJzaW9uIG9mIE9pZElucHV0RnVuY3Rpb25DYWxsICovCitib29sCitP aWRJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoT2lkIGZ1bmN0aW9uSWQsIGNoYXIgKnN0ciwgT2lkIHR5 cGlvcGFyYW0sCisJCQkJCQkgaW50MzIgdHlwbW9kLCBOb2RlICplc2NvbnRleHQsCisJCQkJCQkg RGF0dW0gKnJlc3VsdCkKK3sKKwlGbWdySW5mbwkJCWZsaW5mbzsKKworCWZtZ3JfaW5mbyhmdW5j dGlvbklkLCAmZmxpbmZvKTsKKworCXJldHVybiBJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoJmZsaW5m bywgc3RyLCB0eXBpb3BhcmFtLCB0eXBtb2QsCisJCQkJCQkJCSBlc2NvbnRleHQsIHJlc3VsdCk7 Cit9CisKIGNoYXIgKgogT2lkT3V0cHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklkLCBEYXR1 bSB2YWwpCiB7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oIGIv c3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAppbmRleCA3NTM2NjIwMzcwNi4uOTM3Y2Jm M2JjOWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIv c3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApAQCAtMjY1LDYgKzI2NSw3IEBAIHR5cGVk ZWYgZW51bSBFeHByRXZhbE9wCiAJRUVPUF9YTUxFWFBSLAogCUVFT1BfSlNPTl9DT05TVFJVQ1RP UiwKIAlFRU9QX0lTX0pTT04sCisJRUVPUF9TQUZFVFlQRV9DQVNULAogCUVFT1BfSlNPTkVYUFJf UEFUSCwKIAlFRU9QX0pTT05FWFBSX0NPRVJDSU9OLAogCUVFT1BfSlNPTkVYUFJfQ09FUkNJT05f RklOSVNILApAQCAtNzUwLDYgKzc1MSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAK IAkJCUpzb25Jc1ByZWRpY2F0ZSAqcHJlZDsJLyogb3JpZ2luYWwgZXhwcmVzc2lvbiBub2RlICov CiAJCX0JCQlpc19qc29uOwogCisJCS8qIGZvciBFRU9QX1NBRkVUWVBFX0NBU1QgKi8KKwkJc3Ry dWN0CisJCXsKKwkJCXN0cnVjdCBTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGU7CisJCX0JCQlz dGNleHByOworCiAJCS8qIGZvciBFRU9QX0pTT05FWFBSX1BBVEggKi8KIAkJc3RydWN0CiAJCXsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggYi9zcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oCmluZGV4IDdjZDZhNDkzMDlmLi4zZThiYTU1MWU3MyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAorKysgYi9zcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oCkBAIC0zMjQsNiArMzI0LDcgQEAgRXhlY1Byb2NOb2RlKFBs YW5TdGF0ZSAqbm9kZSkKICAqIHByb3RvdHlwZXMgZnJvbSBmdW5jdGlvbnMgaW4gZXhlY0V4cHIu YwogICovCiBleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdEV4cHIoRXhwciAqbm9kZSwgUGxhblN0 YXRlICpwYXJlbnQpOworZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRFeHByU2FmZShFeHByICpu b2RlLCBQbGFuU3RhdGUgKnBhcmVudCk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdEV4cHJX aXRoUGFyYW1zKEV4cHIgKm5vZGUsIFBhcmFtTGlzdEluZm8gZXh0X3BhcmFtcyk7CiBleHRlcm4g RXhwclN0YXRlICpFeGVjSW5pdFF1YWwoTGlzdCAqcXVhbCwgUGxhblN0YXRlICpwYXJlbnQpOwog ZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRDaGVjayhMaXN0ICpxdWFsLCBQbGFuU3RhdGUgKnBh cmVudCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9mbWdyLmggYi9zcmMvaW5jbHVkZS9mbWdy LmgKaW5kZXggYzBkYmU4NWVkMWMuLmE5MzU3Yjk4ZDcwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9mbWdyLmgKKysrIGIvc3JjL2luY2x1ZGUvZm1nci5oCkBAIC03NTAsNiArNzUwLDkgQEAgZXh0 ZXJuIGJvb2wgRGlyZWN0SW5wdXRGdW5jdGlvbkNhbGxTYWZlKFBHRnVuY3Rpb24gZnVuYywgY2hh ciAqc3RyLAogCQkJCQkJCQkJCURhdHVtICpyZXN1bHQpOwogZXh0ZXJuIERhdHVtIE9pZElucHV0 RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsCiAJCQkJCQkJCSAgT2lkIHR5 cGlvcGFyYW0sIGludDMyIHR5cG1vZCk7CitleHRlcm4gYm9vbCBPaWRJbnB1dEZ1bmN0aW9uQ2Fs bFNhZmUoT2lkIGZ1bmN0aW9uSWQsIGNoYXIgKnN0ciwgT2lkIHR5cGlvcGFyYW0sCisJCQkJCQkJ CQkgaW50MzIgdHlwbW9kLCBOb2RlICplc2NvbnRleHQsCisJCQkJCQkJCQkgRGF0dW0gKnJlc3Vs dCk7CiBleHRlcm4gY2hhciAqT3V0cHV0RnVuY3Rpb25DYWxsKEZtZ3JJbmZvICpmbGluZm8sIERh dHVtIHZhbCk7CiBleHRlcm4gY2hhciAqT2lkT3V0cHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlv bklkLCBEYXR1bSB2YWwpOwogZXh0ZXJuIERhdHVtIFJlY2VpdmVGdW5jdGlvbkNhbGwoRm1ncklu Zm8gKmZsaW5mbywgU3RyaW5nSW5mbyBidWYsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDY0ZmY2 OTk2NDMxLi45MDE4ZTE5MGNjNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTEwNTksNiArMTA1 OSwyNyBAQCB0eXBlZGVmIHN0cnVjdCBEb21haW5Db25zdHJhaW50U3RhdGUKIAlFeHByU3RhdGUg ICpjaGVja19leHByc3RhdGU7CS8qIGNoZWNrX2V4cHIncyBldmFsIHN0YXRlLCBvciBOVUxMICov CiB9IERvbWFpbkNvbnN0cmFpbnRTdGF0ZTsKIAordHlwZWRlZiBzdHJ1Y3QgU2FmZVR5cGVDYXN0 U3RhdGUKK3sKKwlTYWZlVHlwZUNhc3RFeHByICpzdGNleHByOworCisJLyoKKwkgKiBBZGRyZXNz IHRvIGp1bXAgdG8gd2hlbiBza2lwcGluZyBhbGwgdGhlIHN0ZXBzIHRvIGV2YXVsYXRlIHRoZSBk ZWZhdWx0CisJICogZXhwcmVzc2lvbi4KKwkgKi8KKwlpbnQgCQlqdW1wX2VuZDsKKworCS8qCisJ ICogRm9yIGVycm9yLXNhZmUgZXZhbHVhdGlvbiBvZiBjb2VyY2lvbnMuIEEgcG9pbnRlciB0byB0 aGlzIGlzIHBhc3NlZCB0bworCSAqIEV4ZWNJbml0RXhwclJlYygpIHdoZW4gaW5pdGlhbGl6aW5n IHRoZSBjb2VyY2lvbiBleHByZXNzaW9ucywgc2VlCisJICogRXhlY0luaXRTYWZlVHlwZUNhc3RF eHByLgorCSAqCisJICogUmVzZXQgZm9yIGVhY2ggZXZhbHVhdGlvbiBvZiBFRU9QX1NBRkVUWVBF X0NBU1QuCisJICovCisJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQ7CisKK30gU2FmZVR5cGVD YXN0U3RhdGU7CisKIC8qCiAgKiBTdGF0ZSBmb3IgSnNvbkV4cHIgZXZhbHVhdGlvbiwgdG9vIGJp ZyB0byBpbmxpbmUuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGQxNDI5NGE0ZWNlLi44 MmIwZmI4M2I0YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDAwLDYgKzQwMCwxNyBAQCB0 eXBlZGVmIHN0cnVjdCBUeXBlQ2FzdAogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9j YXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIH0gVHlwZUNhc3Q7CiAKKy8qCisgKiBTYWZlVHlw ZUNhc3QgLSBhIENBU1Qoc291cmNlX2V4cHIgQVMgdGFyZ2V0X3R5cGUpIERFRkFVTFQgT04gQ09O VkVSU0lPTiBFUlJPUgorICogY29uc3RydWN0CisgKi8KK3R5cGVkZWYgc3RydWN0IFNhZmVUeXBl Q2FzdAoreworCU5vZGVUYWcJCXR5cGU7CisJTm9kZQkJKmNhc3Q7CQkJLyogVHlwZUNhc3QgZXhw cmVzc2lvbiAqLworCU5vZGUJICAgCSpyYXdfZGVmYXVsdDsJLyogdW50cmFuc2Zvcm1lZCBERUZB VUxUIGV4cHJlc3Npb24gKi8KK30gU2FmZVR5cGVDYXN0OworCiAvKgogICogQ29sbGF0ZUNsYXVz ZSAtIGEgQ09MTEFURSBleHByZXNzaW9uCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggMWI0 NDM2ZjJmZjYuLjE0MDExMDlmYjNjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmlt bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtNzY5LDYgKzc2 OSw0MiBAQCB0eXBlZGVmIGVudW0gQ29lcmNpb25Gb3JtCiAJQ09FUkNFX1NRTF9TWU5UQVgsCQkJ LyogZGlzcGxheSB3aXRoIFNRTC1tYW5kYXRlZCBzcGVjaWFsIHN5bnRheCAqLwogfSBDb2VyY2lv bkZvcm07CiAKKy8qCisgKiBTYWZlVHlwZUNhc3RFeHByIC0KKyAqCQlUcmFuc2Zvcm1lZCByZXBy ZXNlbnRhdGlvbiBvZgorICogCQlDQVNUKGV4cHIgQVMgdHlwZW5hbWUgREVGQVVMVCBleHByMiBP TiBFUlJPUikKKyAqIAkJQ0FTVChleHByIEFTIHR5cGVuYW1lIE5VTEwgT04gRVJST1IpCisgKi8K K3R5cGVkZWYgc3RydWN0IFNhZmVUeXBlQ2FzdEV4cHIKK3sKKwlFeHByCQl4cHI7CisKKwkvKiB0 cmFuc2Zvcm1lZCBzb3VyY2UgZXhwcmVzc2lvbiAqLworCU5vZGUJICAgKnNvdXJjZV9leHByOwor CisJLyoKKwkgKiBUaGUgdHJhbnNmb3JtZWQgY2FzdCBleHByZXNzaW9uOyBOVUxMIGlmIHdlIGNh biBub3QgY29jZXJjZSBzb3VyY2UKKwkgKiBleHByZXNzaW9uIHRvIHRoZSB0YXJnZXQgdHlwZQor CSAqLworCU5vZGUJICAgKmNhc3RfZXhwciAJcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25v cmUpOworCisJLyogRmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGV4cHJlc3Npb24gaWYgY2FzdCBl dmFsdWF0aW9uIGZhaWxzICovCisJTm9kZQkgICAqZGVmYXVsdF9leHByOworCisJLyogY2FzdCBy ZXN1bHQgZGF0YSB0eXBlICovCisJT2lkCQkJcmVzdWx0dHlwZTsKKworCS8qIGNhc3QgcmVzdWx0 IGRhdGEgdHlwZSB0eXBtb2QgKHVzdWFsbHkgLTEpICovCisJaW50MzIJCXJlc3VsdHR5cG1vZDsK KworCS8qIGNhc3QgcmVzdWx0IGRhdGEgdHlwZSBjb2xsYXRpb24gKi8KKwlPaWQJCQlyZXN1bHRj b2xsaWQ7CisKKwkvKiBPcmlnaW5hbCBTYWZlVHlwZUNhc3RFeHByJ3MgbG9jYXRpb24gKi8KKwlQ YXJzZUxvYwlsb2NhdGlvbjsKKworfSBTYWZlVHlwZUNhc3RFeHByOworCiAvKgogICogRnVuY0V4 cHIgLSBleHByZXNzaW9uIG5vZGUgZm9yIGEgZnVuY3Rpb24gY2FsbAogICoKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaCBiL3NyYy9pbmNsdWRlL29wdGltaXpl ci9vcHRpbWl6ZXIuaAppbmRleCA0NGVjNTI5NmExOC4uNTg3ZTcxMTU5NmEgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9vcHRp bWl6ZXIvb3B0aW1pemVyLmgKQEAgLTE0Myw3ICsxNDMsNyBAQCBleHRlcm4gdm9pZCBjb252ZXJ0 X3Nhb3BfdG9faGFzaGVkX3Nhb3AoTm9kZSAqbm9kZSk7CiBleHRlcm4gTm9kZSAqZXN0aW1hdGVf ZXhwcmVzc2lvbl92YWx1ZShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSk7CiAKIGV4dGVy biBFeHByICpldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIg cmVzdWx0X3R5cG1vZCwKLQkJCQkJCSAgIE9pZCByZXN1bHRfY29sbGF0aW9uKTsKKwkJCQkJCSAg IE9pZCByZXN1bHRfY29sbGF0aW9uLCBib29sIGVycm9yX3NhZmUpOwogCiBleHRlcm4gYm9vbCB2 YXJfaXNfbm9ubnVsbGFibGUoUGxhbm5lckluZm8gKnJvb3QsIFZhciAqdmFyLCBib29sIHVzZV9y ZWxfaW5mbyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2Uu aCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaAppbmRleCA4ZDc3NWM3MmM1OS4u MWVjYTFjZTcyN2QgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2VyY2Uu aAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmgKQEAgLTQzLDExICs0Mywy NiBAQCBleHRlcm4gTm9kZSAqY29lcmNlX3RvX3RhcmdldF90eXBlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAkJCQkJCQkJICAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAogCQkJCQkJCQkgICBDb2Vy Y2lvbkZvcm0gY2Zvcm1hdCwKIAkJCQkJCQkJICAgaW50IGxvY2F0aW9uKTsKK2V4dGVybiBOb2Rl ICpjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJ CQkJCQkJCQlOb2RlICpleHByLAorCQkJCQkJCQkJCQlPaWQgZXhwcnR5cGUsCisJCQkJCQkJCQkJ CU9pZCB0YXJnZXR0eXBlLAorCQkJCQkJCQkJCQlpbnQzMiB0YXJnZXR0eXBtb2QsCisJCQkJCQkJ CQkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCwKKwkJCQkJCQkJCQkJQ29lcmNpb25Gb3JtIGNm b3JtYXQsCisJCQkJCQkJCQkJCWludCBsb2NhdGlvbiwKKwkJCQkJCQkJCQkJTm9kZSAqZXNjb250 ZXh0KTsKIGV4dGVybiBib29sIGNhbl9jb2VyY2VfdHlwZShpbnQgbmFyZ3MsIGNvbnN0IE9pZCAq aW5wdXRfdHlwZWlkcywgY29uc3QgT2lkICp0YXJnZXRfdHlwZWlkcywKIAkJCQkJCQlDb2VyY2lv bkNvbnRleHQgY2NvbnRleHQpOwogZXh0ZXJuIE5vZGUgKmNvZXJjZV90eXBlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCQkJCSBPaWQgaW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRU eXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCiAJCQkJCQkgQ29lcmNpb25Db250ZXh0IGNjb250 ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9uKTsKK2V4dGVybiBOb2RlICpj b2VyY2VfdHlwZV9leHRlbmQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAorCQkJCQkJ CQlPaWQgaW5wdXRUeXBlSWQsCisJCQkJCQkJCU9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdl dFR5cGVNb2QsCisJCQkJCQkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3Jt IGNmb3JtYXQsCisJCQkJCQkJCWludCBsb2NhdGlvbiwKKwkJCQkJCQkJTm9kZSAqZXNjb250ZXh0 KTsKIGV4dGVybiBOb2RlICpjb2VyY2VfdG9fZG9tYWluKE5vZGUgKmFyZywgT2lkIGJhc2VUeXBl SWQsIGludDMyIGJhc2VUeXBlTW9kLAogCQkJCQkJCSAgT2lkIHR5cGVJZCwKIAkJCQkJCQkgIENv ZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsIGludCBsb2NhdGlv biwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IGY3ZDA3Yzg0NTQyLi45ZjViMzJlMDM2MCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC02Nyw2ICs2Nyw4IEBAIHR5cGVkZWYgZW51bSBQ YXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEUsCS8qIHNpbmdsZS1yb3cgVkFM VUVTIChpbiBJTlNFUlQgb25seSkgKi8KIAlFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVCwgLyog Q0hFQ0sgY29uc3RyYWludCBmb3IgYSB0YWJsZSAqLwogCUVYUFJfS0lORF9ET01BSU5fQ0hFQ0ss CQkvKiBDSEVDSyBjb25zdHJhaW50IGZvciBhIGRvbWFpbiAqLworCUVYUFJfS0lORF9DQVNUX0RF RkFVTFQsCQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gaW4KKwkJCQkJCQkJICAgQ0FTVCBERUZBVUxU IE9OIENPTlZFUlNJT04gRVJST1IgKi8KIAlFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQsCS8qIGRl ZmF1bHQgdmFsdWUgZm9yIGEgdGFibGUgY29sdW1uICovCiAJRVhQUl9LSU5EX0ZVTkNUSU9OX0RF RkFVTFQsIC8qIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGZvciBmdW5jdGlvbiAqLwogCUVYUFJf S0lORF9JTkRFWF9FWFBSRVNTSU9OLCAvKiBpbmRleCBleHByZXNzaW9uICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX3R5cGUuaAppbmRleCAwZDkxOWQ4YmZhMi4uNDBhY2EyYjMxYzkgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX3R5cGUuaApAQCAtNDcsNiArNDcsOCBAQCBleHRlcm4gY2hhciAqdHlwZVR5cGVOYW1lKFR5 cGUgdCk7CiBleHRlcm4gT2lkCXR5cGVUeXBlUmVsaWQoVHlwZSB0eXApOwogZXh0ZXJuIE9pZAl0 eXBlVHlwZUNvbGxhdGlvbihUeXBlIHR5cCk7CiBleHRlcm4gRGF0dW0gc3RyaW5nVHlwZURhdHVt KFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9kKTsKK2V4dGVybiBib29sIHN0 cmluZ1R5cGVEYXR1bVNhZmUoVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBtb2Qs CisJCQkJCQkJCU5vZGUgKmVzY29udGV4dCwgRGF0dW0gKnJlc3VsdCk7CiAKIGV4dGVybiBPaWQJ dHlwZWlkVHlwZVJlbGlkKE9pZCB0eXBlX2lkKTsKIGV4dGVybiBPaWQJdHlwZU9yRG9tYWluVHlw ZVJlbGlkKE9pZCB0eXBlX2lkKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY2FzdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iMGRjN2I4ZmFlYQotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKQEAgLTAsMCArMSw4MTAg QEAKK1NFVCBleHRyYV9mbG9hdF9kaWdpdHMgPSAwOworLS0gQ0FTVCBERUZBVUxUIE9OIENPTlZF UlNJT04gRVJST1IKK1NFTEVDVCBDQVNUKEInMDEnIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIGRhdGUgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENB U1QoQklUJzAxJyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBk YXRlIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKFRSVUUgQVMgZGF0ZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgxLjEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxIEFTIGRh dGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRhdGUgCistLS0tLS0KKyAK KygxIHJvdykKKworU0VMRUNUIENBU1QoMTExMSBBUyAiY2hhciIgREVGQVVMVCAnQScgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgY2hhciAKKy0tLS0tLQorIEEKKygxIHJvdykKKworLS10ZXN0IHNv dXJjZSBleHByZXNzaW9uIGlzIGEgdW5rbm93biBjb25zdAorVkFMVUVTIChDQVNUKCdlcnJvcicg QVMgaW50ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7IC0tZXJyb3IKK0VSUk9SOiAg aW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogImVycm9yIgorTElORSAxOiBW QUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1Ip KTsKKyAgICAgICAgICAgICAgICAgICAgIF4KK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVn ZXIgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorICAg ICAgICAKKygxIHJvdykKKworVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBERUZBVUxU IDQyIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgICAgICA0 MgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgMTggT04gQ09OVkVS U0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgMTgKKygxIHJvdykKKworU0VMRUNUIENB U1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJv cgorRVJST1I6ICBhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERF RkFVTFQgZXhwcmVzc2lvbnMKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxU IHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3Zl cigpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHdpbmRvdyBmdW5jdGlv bnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAxOiBT RUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIG92ZXIoKSBPTiBDT05WRVJTSU9O IEUuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBD QVNUKCdhJyBhcyBpbnQgREVGQVVMVCAoU0VMRUNUIE5VTEwpIE9OIENPTlZFUlNJT04gRVJST1Ip OyAtLWVycm9yCitFUlJPUjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gQ0FTVCBERUZBVUxUIGV4 cHJlc3Npb24KK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIChTRUxFQ1Qg TlVMTCkgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBl IGludGVnZXI6ICJiIgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2In IE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgorU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3Ig dHlwZSBpbnRlZ2VyOiAiYSIKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SLi4uCisgICAgICAgICAgICAgICAgICAgIF4K Ky0tdGhlIGRlZmF1bHQgZXhwcmVzc2lvbuKAmXMgY29sbGF0aW9uIHNob3VsZCBtYXRjaCB0aGUg Y29sbGF0aW9uIG9mIHRoZSBjYXN0CistLXRhcmdldCB0eXBlCitWQUxVRVMgKENBU1QoJ2Vycm9y JyBBUyB0ZXh0IERFRkFVTFQgJzEnIENPTExBVEUgIkMiIE9OIENPTlZFUlNJT04gRVJST1IpKTsK K0VSUk9SOiAgdGhlIGNvbGxhdGlvbiBvZiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiBjb25mbGlj dHMgd2l0aCB0YXJnZXQgdHlwZSBjb2xsYXRpb24KK0xJTkUgMTogVkFMVUVTIChDQVNUKCdlcnJv cicgQVMgdGV4dCBERUZBVUxUICcxJyBDT0xMQVRFICJDIiBPTiBDT05WLi4uCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICAiZGVmYXVsdCIg dmVyc3VzICJDIgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50MnZlY3RvciBERUZBVUxUICcx IDMnICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorIDEgMwor KDEgcm93KQorCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yW10gREVGQVVMVCAn ezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorIHsi MSAzIn0KKygxIHJvdykKKworLS0gdGVzdCBzb3VyY2UgZXhwcmVzc2lvbiBjb250YWluIHN1YnF1 ZXJ5CitTRUxFQ1QgQ0FTVCgoU0VMRUNUIGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSksIChW QUxVRVMoJ0gnKSkgcyhiKSkKKyAgICAgICAgICAgIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7 MSAzfScgIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgIGIgICAgCistLS0tLS0tLS0KKyB7IjEg MyJ9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKChTRUxFQ1QgQVJSQVkoKFNFTEVDVCBiIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDIpIGcsIChWQUxVRVMoJ0gnKSkgcyhiKSkpKQorICAgICAgICAg ICAgQVMgSU5UW10KKyAgICAgICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIEZVTkNUSU9OIHJldF9p bnQ4KCkgUkVUVVJOUyBCSUdJTlQgQVMKKyQkCitCRUdJTiBSRVRVUk4gMjE0NzQ4MzY0ODsgRU5E OworJCQKK0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworU0VMRUNUIENBU1QoJ2EnIGFzIGlu dCBERUZBVUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9S OiAgaW50ZWdlciBvdXQgb2YgcmFuZ2UKK1NFTEVDVCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQg cmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3Qg Y29lcmNlIENBU1QgREVGQVVMVCBleHByZXNzaW9uIHRvIHR5cGUgZGF0ZQorTElORSAxOiBTRUxF Q1QgQ0FTVCgnYScgYXMgZGF0ZSBERUZBVUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlIu Li4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBERUZBVUxU IGV4cHJlc3Npb24gY2FuIG5vdCBiZSBzZXQtcmV0dXJuaW5nCitDUkVBVEUgRlVOQ1RJT04gcmV0 X3NldGludCgpIFJFVFVSTlMgU0VUT0YgaW50ZWdlciBBUworJCQKK0JFR0lOIFJFVFVSTiBRVUVS WSBFWEVDVVRFICdzZWxlY3QgMSB1bmlvbiBhbGwgc2VsZWN0IDEnOyBFTkQ7CiskJAorTEFOR1VB R0UgcGxwZ3NxbCBJTU1VVEFCTEU7CitDUkVBVEUgVEFCTEUgdGNhc3QoYSB0ZXh0W10sIGIgaW50 IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIElERU5USVRZKTsKK0lOU0VSVCBJTlRPIHRjYXN0IFZB TFVFUyAoJ3sxMn0nKSwgKCd7MSxhLCBifScpLCAoJ3t7MSwyfSwge2MsZH19JyksICgnezEzfScp OworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHJldF9zZXRpbnQoKSBPTiBDT05WRVJT SU9OIEVSUk9SKSBGUk9NIHRjYXN0OyAtLWVycm9yCitFUlJPUjogIHNldC1yZXR1cm5pbmcgZnVu Y3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMKK0xJTkUg MTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHJldF9zZXRpbnQoKSBPTiBDT05WRVJT SU9OIEVSLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxF Q1QgQ0FTVCh0IEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjIsICcgfHwgYiB8fCAnfScgT04gQ09O VkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0OworICAgICB0ICAgICAKKy0tLS0tLS0tLS0t CisgezIxLDIyLDF9CisgezIxLDIyLDJ9CisgezIxLDIyLDN9CisgezIxLDIyLDR9CisoNCByb3dz KQorCitTRUxFQ1QgQ0FTVCh0LmEgQVMgaW50W10gREVGQVVMVCAnezIxLDIyfSc6OmludFtdIHx8 IGIgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0OworICAgICBhICAgICAKKy0t LS0tLS0tLS0tCisgezEyfQorIHsyMSwyMiwyfQorIHsyMSwyMiwzfQorIHsxM30KKyg0IHJvd3Mp CisKKy0tIHRlc3Qgd2l0aCB1c2VyLWRlZmluZWQgdHlwZSwgZG9tYWluLCBhcnJheSBvdmVyIGRv bWFpbiwgZG9tYWluIG92ZXIgYXJyYXkKK0NSRUFURSBET01BSU4gZF9pbnQ0MiBhcyBpbnQgY2hl Y2sgKHZhbHVlID0gNDIpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2NoYXIzX25vdF9udWxs IGFzIGNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfdmFyY2hhciBhcyB2YXJjaGFy KDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMgaW50W10gY2hlY2sgKHZh bHVlID0gJ3s0MSwgNDN9JykgTk9UIE5VTEw7CitDUkVBVEUgVFlQRSBjb21wX2RvbWFpbl93aXRo X3R5cG1vZCBBUyAoYSBkX2NoYXIzX25vdF9udWxsLCBiIGludCk7CitDUkVBVEUgVFlQRSBjb21w MiBBUyAoYSBkX3ZhcmNoYXIpOworU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVM VCAnKDEyMzIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICB2YWx1ZSB0 b28gbG9uZyBmb3IgdHlwZSBjaGFyYWN0ZXIgdmFyeWluZygzKQorTElORSAxOiBTRUxFQ1QgQ0FT VCgnKE5VTEwpJyBBUyBjb21wMiBERUZBVUxUICcoMTIzMiknIE9OIENPTlZFUlNJT04uLi4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FT VCgnKE5VTEwpJyBBUyBjb21wMiBERUZBVUxUICcoMTIzKScgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgY29tcDIgCistLS0tLS0tCisgKDEyMykKKygxIHJvdykKKworU0VMRUNUIENBU1QoMTEgQVMg ZF9pbnQ0MiBERUZBVUxUIDQxIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjog IHZhbHVlIGZvciBkb21haW4gZF9pbnQ0MiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJkX2lu dDQyX2NoZWNrIgorU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENPTlZF UlNJT04gRVJST1IpOworIGRfaW50NDIgCistLS0tLS0tLS0KKyAgICAgIDQyCisoMSByb3cpCisK K1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgZG9tYWluIGRfaW50NDIgZG9lcyBub3QgYWxsb3cgbnVs bCB2YWx1ZXMKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENPTlZF UlNJT04gRVJST1IpOworIGRfaW50NDIgCistLS0tLS0tLS0KKyAgICAgIDQyCisoMSByb3cpCisK K1NFTEVDVCBDQVNUKCcoLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKE5VTEws NDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMSwyKScgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgY29tcF9kb21haW5fd2l0aF90eXBtb2QgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKCIxICAiLDIpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTlVMTCw0Mikn IEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJyBPTiBDT05WRVJT SU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICB2YWx1ZSB0b28gbG9uZyBmb3IgdHlwZSBjaGFy YWN0ZXIoMykKK0xJTkUgMTogLi4uU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90 eXBtb2QgREVGQVVMVCAnKDEyMzQsMiknLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoQVJSQVlbNDIs NDFdIEFTIGRfaW50NDJbXSBERUZBVUxUICd7NDIsIDQyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgIGFycmF5ICAKKy0tLS0tLS0tLQorIHs0Miw0Mn0KKygxIHJvdykKKworU0VMRUNUIENBU1Qo QVJSQVlbNDIsNDFdIEFTIGRfaW50X2FyciBERUZBVUxUICd7NDEsIDQzfScgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgIGFycmF5ICAKKy0tLS0tLS0tLQorIHs0MSw0M30KKygxIHJvdykKKworLS0g dGVzdCBhcnJheSBjb2VyY2UKK1NFTEVDVCBDQVNUKGFycmF5WydhJzo6dGV4dF0gQVMgaW50W10g REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludmFs aWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJhIgorU0VMRUNUIENBU1QoYXJyYXlb J2EnXSBBUyBpbnRbXSBERUZBVUxUIEFSUkFZWzFdIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFy cmF5IAorLS0tLS0tLQorIHsxfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJheVsxMS4xMl0g QVMgZGF0ZVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0t LS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoYXJyYXlbMTExMTExMTExMTExMTExMTFd IEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0t LS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoYXJyYXlbWydhYmMnXSxbNDU2XV0gQVMg aW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0t LQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnezEyMyxhYmMsNDU2fScgQVMgaW50W10gREVG QVVMVCAney03ODl9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgaW50NCAgCistLS0tLS0tLQor IHstNzg5fQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnezIzNCxkZWYsNTY3fSc6OnRleHRbXSBB UyBpbnRlZ2VyW10gREVGQVVMVCAney0xMDExfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgIGlu dDQgICAKKy0tLS0tLS0tLQorIHstMTAxMX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlb WycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZF UlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIHsxLDJ9CisoMSByb3cpCisKK1NFTEVD VCBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyBpbnRbXSBERUZBVUxU ICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworICBhcnJheSAgCistLS0tLS0t LS0KKyB7MjEsMjJ9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsn dGhyZWUnOjppbnQsICdhJ11dIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBl IGludGVnZXI6ICJ0aHJlZSIKK0xJTkUgMTogU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwg Wyd0aHJlZSc6OmludCwgJ2EnXV0gQVMgaW50W10gLi4uCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVChBUlJBWVsxLCAndGhyZWUnOjppbnRdIEFT IGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitF UlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJ0aHJlZSIKK0xJ TkUgMTogU0VMRUNUIENBU1QoQVJSQVlbMSwgJ3RocmVlJzo6aW50XSBBUyBpbnRbXSBERUZBVUxU ICd7MjEsMjJ9Li4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tLS0tc2FmZSBj YXN0IHdpdGggZ2VvbWV0cnkgZGF0YSB0eXBlCitTRUxFQ1QgQ0FTVCgnKDEsMiknOjpwb2ludCBB UyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBib3ggICAgIAor LS0tLS0tLS0tLS0tLQorICgxLDIpLCgxLDIpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKE5h TiwxKSwoTmFOLGluZmluaXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyAgICAgcG9pbnQgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAoTmFO LEluZmluaXR5KQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWygxZSszMDAsSW5maW5pdHkpLCgx ZSszMDAsSW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworICAgICAgIHBvaW50ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorICgx ZSszMDAsSW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKDEsMiksKDMsNCldJzo6 cGF0aCBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBwb2x5 Z29uIAorLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTmFOLDEuMCxOYU4s aW5maW5pdHkpJzo6Ym94IEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyAgICAgcG9pbnQgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAoTmFOLEluZmluaXR5KQor KDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgbHNlZyBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGxzZWcgICAgICAKKy0tLS0t LS0tLS0tLS0tLQorIFsoMiwyKSwoMCwwKV0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJygyLjAs Mi4wLDAuMCwwLjApJzo6Ym94IEFTIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworICAgICAgICAgIHBvbHlnb24gICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAoKDAsMCksKDAsMiksKDIsMiksKDIsMCkpCisoMSByb3cpCisKK1NFTEVDVCBD QVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBwYXRoIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNU KCcoMi4wLGluZmluaXR5LE5hTixpbmZpbml0eSknOjpib3ggQVMgY2lyY2xlIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgY2lyY2xlICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyA8KE5hTixJbmZpbml0eSksTmFOPgorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnKE5hTiwwLjApLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgcG9p bnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBwb2ludCAgICAgIAor LS0tLS0tLS0tLS0tLS0tLQorIChOYU4sSW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNU KCcoMi4wLDAuMCksKDIuMCw0LjApLCgwLjAsMC4wKSc6OnBvbHlnb24gQVMgcGF0aCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgIHBhdGggICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICgoMiwwKSwoMiw0KSwoMCwwKSkKKygxIHJvdykKKworU0VMRUNU IENBU1QoJygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBib3ggREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBib3ggICAgIAorLS0tLS0tLS0t LS0tLQorICgyLDQpLCgwLDApCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTmFOLGluZmluaXR5 KSwoMi4wLDQuMCksKDAuMCxpbmZpbml0eSknOjpwb2x5Z29uIEFTIGNpcmNsZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgIGNpcmNsZSAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgPChOYU4sSW5maW5pdHkpLE5hTj4KKygxIHJvdykKKworU0VMRUNU IENBU1QoJzwoNSwxKSwzPic6OmNpcmNsZSBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgcG9pbnQgCistLS0tLS0tCisgKDUsMSkKKygxIHJvdykKKworU0VMRUNU IENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworICAgICBib3ggICAgIAorLS0tLS0tLS0tLS0tLQorICgzLDUpLCgzLDUpCiso MSByb3cpCisKKy0tIG5vdCBzdXBwb3J0ZWQgYmVjYXVzZSB0aGUgY2FzdCBmcm9tIGNpcmNsZSB0 byBwb2x5Z29uIGlzIGltcGxlbWVudGVkIGFzIGEgU1FMCistLSBmdW5jdGlvbiwgd2hpY2ggY2Fu bm90IGJlIGVycm9yLXNhZmUuCitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIHBv bHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3Qg Y2FzdCB0eXBlIGNpcmNsZSB0byBwb2x5Z29uIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNw ZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBD QVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQy4uLgor ICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1 dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlCistLS0tLXNhZmUgY2FzdCBmcm9tL3RvIG1v bmV5IHR5cGUgaXMgbm90IHN1cHBvcnRlZCwgYWxsIHRoZSBmb2xsb3dpbmcgd291bGQgcmVzdWx0 IGVycm9yCitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBiaWdpbnQgdG8gbW9u ZXkgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENP TlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6aW50OCBBUyBtb25leSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJ TlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9y IHNhZmUKK1NFTEVDVCBDQVNUKE5VTEw6OmludDQgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGludGVnZXIgdG8gbW9u ZXkgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENP TlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25leSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJ TlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9y IHNhZmUKK1NFTEVDVCBDQVNUKE5VTEw6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIG51bWVyaWMgdG8g bW9uZXkgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9O IENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBt b25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPLi4uCisgICAgICAgICAgICAgICAgICAgIF4K K0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVy cm9yIHNhZmUKK1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5IEFTIG51bWVyaWMgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIG1vbmV5IHRv IG51bWVyaWMgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4u IE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMg bnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPLi4uCisgICAgICAgICAgICAgICAgICAg IF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90 IGVycm9yIHNhZmUKK1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5W10gQVMgbnVtZXJpY1tdIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBt b25leVtdIHRvIG51bWVyaWNbXSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQg aW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxM Ojptb25leVtdIEFTIG51bWVyaWNbXSBERUZBVUxUIE5VTEwgT04gQ09OVkUuLi4KKyAgICAgICAg ICAgICAgICAgICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5p dGlvbiBpcyBub3QgZXJyb3Igc2FmZQorLS0tLS1zYWZlIGNhc3QgZnJvbSBieXRlYSB0eXBlIHRv IG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUICgnXHgxMTIyMzM0NDU1NjY3Nzg4OTknOjpi eXRlYSBBUyBpbnQ4IERFRkFVTFQgMTkgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OCAKKy0t LS0tLQorICAgMTkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Nzg5QSc6OmJ5dGVh IEFTIGludDQgREVGQVVMVCAyMCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0t CisgICAyMAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTYnOjpieXRlYSBBUyBpbnQy IERFRkFVTFQgMjEgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50MiAKKy0tLS0tLQorICAgMjEK KygxIHJvdykKKworLS0tLS1zYWZlIGNhc3QgZnJvbSBiaXQgdHlwZSB0byBvdGhlciBkYXRhIHR5 cGVzCitTRUxFQ1QgQ0FTVCgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UIERFRkFV TFQgMjIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgMjIKKygxIHJv dykKKworU0VMRUNUIENBU1QgKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQ4IERF RkFVTFQgMjMgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OCAKKy0tLS0tLQorICAgMjMKKygx IHJvdykKKworLS0tLS1zYWZlIGNhc3QgZnJvbSB0ZXh0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBl cworc2VsZWN0IENBU1QoJ2EuYi5jLmQnOjp0ZXh0IGFzIHJlZ2NsYXNzIGRlZmF1bHQgTlVMTCBv biBjb252ZXJzaW9uIGVycm9yKTsKKyByZWdjbGFzcyAKKy0tLS0tLS0tLS0KKyAKKygxIHJvdykK KworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QoY29sMCB0ZXh0KTsKK0lOU0VSVCBJTlRPIHRl c3Rfc2FmZWNhc3QoY29sMCkgVkFMVUVTICgnPHZhbHVlPm9uZTwvdmFsdWUnKTsKK1NFTEVDVCBj b2wwIGFzIHRleHQsCisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19yZWdjbGFzcywKKyAgICAgICBDQVNUKGNvbDAgQVMg cmVnY2xhc3MgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEwgYXMgZXhw ZWN0X3RydWUsCisgICAgICAgQ0FTVChjb2wwIEFTICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2NoYXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChj b2wwIEFTIHhtbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitG Uk9NIHRlc3Rfc2FmZWNhc3Q7CisgICAgICAgdGV4dCAgICAgICAgfCB0b19yZWdjbGFzcyB8IGV4 cGVjdF90cnVlIHwgdG9fY2hhciB8ICAgICAgdG9fbmFtZSAgICAgIHwgdG9feG1sIAorLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0KKyA8dmFsdWU+b25lPC92YWx1ZSB8ICAgICAgICAgICAg IHwgdCAgICAgICAgICAgfCA8ICAgICAgIHwgPHZhbHVlPm9uZTwvdmFsdWUgfCAKKygxIHJvdykK KworU0VMRUNUIENBU1QoJzE5Mi4xNjguMS54JyBhcyBpbmV0IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBpbmV0IAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNU KCcxOTIuMTY4LjEuMi8zMCcgYXMgY2lkciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgY2lkciAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMjI6MDA6NWM6 MDg6NTU6MDg6MDE6MDInOjptYWNhZGRyOCBhcyBtYWNhZGRyIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBtYWNhZGRyIAorLS0tLS0tLS0tCisgCisoMSByb3cpCisKKy0tLS0t c2FmZSBjYXN0IGJldHdlZWVuIHJhbmdlIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCdbMSwyXSc6 OmludDRyYW5nZSBBUyBpbnQ0bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgaW50NG11bHRpcmFuZ2UgCistLS0tLS0tLS0tLS0tLS0tCisge1sxLDMpfQorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ4cmFuZ2UgQVMgaW50OG11bHRpcmFuZ2Ug REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDhtdWx0aXJhbmdlIAorLS0t LS0tLS0tLS0tLS0tLQorIHtbMSwzKX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1sxLDJdJzo6 bnVtcmFuZ2UgIEFTIG51bW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworIG51bW11bHRpcmFuZ2UgCistLS0tLS0tLS0tLS0tLS0KKyB7WzEsMl19CisoMSByb3cp CisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OmRhdGVyYW5nZSBBUyBkYXRl bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGRhdGVt dWx0aXJhbmdlICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbLWluZmluaXR5LGlu ZmluaXR5XX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6 dHNyYW5nZSBBUyB0c211bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworICAgICAgdHNtdWx0aXJhbmdlICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7 Wy1pbmZpbml0eSxpbmZpbml0eV19CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5 LGluZmluaXR5XSc6OnRzdHpyYW5nZSBBUyB0c3R6bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgICAgIHRzdHptdWx0aXJhbmdlICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHtbLWluZmluaXR5LGluZmluaXR5XX0KKygxIHJvdykKKworLS0tLS1z YWZlIGNhc3QgYmV0d2VlZW4gbnVtZXJpYyBkYXRhIHR5cGVzCitDUkVBVEUgVEFCTEUgdGVzdF9z YWZlY2FzdDEoCisgIGNvbDEgZmxvYXQ0LCBjb2wyIGZsb2F0OCwgY29sMyBudW1lcmljLCBjb2w0 IG51bWVyaWNbXSwKKyAgY29sNSBpbnQyIGRlZmF1bHQgMzI3NjcsCisgIGNvbDYgaW50NCBkZWZh dWx0IDMyNzY4LAorICBjb2w3IGludDggZGVmYXVsdCA0Mjk0OTY3Mjk2KTsKK0lOU0VSVCBJTlRP IHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnMTEuMTIzNCcsICcxMS4xMjM0JywgJzkyMjMzNzIwMzY4 NTQ3NzU4MDgnLCAnezExLjEyMzR9Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2Fm ZWNhc3QxIFZBTFVFUygnaW5mJywgJ2luZicsICdpbmYnLCAnezExLjEyMzQsIDEyLCBpbmYsIE5h Tn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCctaW5m JywgJy1pbmYnLCAnLWluZicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10p OworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdOYU4nLCAnTmFOJywgJ05hTics ICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworU0VMRUNUIGNvbDUgYXMg aW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50NCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDUgQVMg b2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAg Q0FTVChjb2w1IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDgsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDggREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNU KGNvbDUgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f bnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVj YXN0MTsKKyBpbnQyICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRv X2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgMzI3NjcgfCAgIDMy NzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3Njcg fCAgICAgIDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3 NjcgfCAgMzI3NjcgfCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2 NyB8ICAgICAgICAgIDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3 IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3NjcgfCAgICAgICAg ICAzMjc2Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3Njcg fCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAor KDQgcm93cykKKworU0VMRUNUIGNvbDYgYXMgaW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50 MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBD QVNUKGNvbDYgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w2IGFzIGludDggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w2IGFzIGZs b2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAg ICAgIENBU1QoY29sNiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDYgYXMg bnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVt ZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyBpbnQ0ICB8IHRvX2ludDIgfCB0b19p bnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVy aWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tCisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3 NjggfCAgICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3Njgu MAorIDMyNzY4IHwgICAgICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMy NzY4IHwgICAgIDMyNzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyAzMjc2OCB8 ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAz Mjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4wCisgMzI3NjggfCAgICAgICAgIHwg ICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAg IDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorKDQgcm93cykKKworU0VMRUNUIGNvbDcgYXMgaW50 OCwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50NCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDcgQVMgb2lk IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FT VChjb2w3IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDgsCisgICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNv bDcgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVt ZXJpYywKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MTsKKyAgICBpbnQ4ICAgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCAgdG9faW50OCAg IHwgIHRvX2Zsb2F0NCAgfCB0b19mbG9hdDggIHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2Nh bGUgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLQorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5Njcy OTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAg ICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5Njcy OTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAg ICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5Njcy OTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAg ICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5Njcy OTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAg ICAgIAorKDQgcm93cykKKworU0VMRUNUIGNvbDMgYXMgbnVtZXJpYywKKyAgICAgICBDQVNUKGNv bDMgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwK KyAgICAgICBDQVNUKGNvbDMgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDMgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wzIGFzIGludDggREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChj b2wzIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxv YXQ0LAorICAgICAgIENBU1QoY29sMyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYyBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNU KGNvbDMgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgICAgICBudW1lcmlj ICAgICAgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgIHRvX2Zsb2F0 NCAgfCAgICAgIHRvX2Zsb2F0OCAgICAgICB8ICAgICB0b19udW1lcmljICAgICAgfCB0b19udW1l cmljX3NjYWxlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgOTIyMzM3MjAzNjg1NDc3NTgw OCB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8IDkuMjIzMzdlKzE4IHwg OS4yMjMzNzIwMzY4NTQ3OGUrMTggfCA5MjIzMzcyMDM2ODU0Nzc1ODA4IHwgICAgICAgICAgICAg ICAgIAorICAgICAgICAgICAgSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8 ICAgICAgICAgfCAgICBJbmZpbml0eSB8ICAgICAgICAgICAgIEluZmluaXR5IHwgICAgICAgICAg ICBJbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgLUluZmluaXR5IHwgICAg ICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgICAtSW5maW5pdHkgfCAgICAgICAg ICAgIC1JbmZpbml0eSB8ICAgICAgICAgICAtSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisg ICAgICAgICAgICAgICAgIE5hTiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAg ICB8ICAgICAgICAgTmFOIHwgICAgICAgICAgICAgICAgICBOYU4gfCAgICAgICAgICAgICAgICAg TmFOIHwgICAgICAgICAgICAgIE5hTgorKDQgcm93cykKKworU0VMRUNUIGNvbDQgYXMgbnVtX2Fy ciwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50MltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBpbnQyYXJyLAorICAgICAgIENBU1QoY29sNCBBUyBpbnQ0W10gREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGludDRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFz IGludDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50OGFyciwKKyAg ICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIGY0YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBmbG9hdDhbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgZjhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIG51bWVy aWMoMTAsMSlbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgbnVtYXJyCitG Uk9NIHRlc3Rfc2FmZWNhc3QxOworICAgICAgICAgIG51bV9hcnIgICAgICAgICAgIHwgaW50MmFy ciB8IGludDRhcnIgfCBpbnQ4YXJyIHwgICAgICAgICAgIGY0YXJyICAgICAgICAgICAgfCAgICAg ICAgICAgZjhhcnIgICAgICAgICAgICB8IG51bWFyciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCisgezExLjEyMzR9 ICAgICAgICAgICAgICAgICAgfCB7MTF9ICAgIHwgezExfSAgICB8IHsxMX0gICAgfCB7MTEuMTIz NH0gICAgICAgICAgICAgICAgICB8IHsxMS4xMjM0fSAgICAgICAgICAgICAgICAgIHwgezExLjF9 CisgezExLjEyMzQsMTIsSW5maW5pdHksTmFOfSAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgfCB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59ICB8IHsxMS4xMjM0LDEyLEluZmluaXR5LE5h Tn0gIHwgCisgezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCAgICAgICAgIHwgICAgICAgICB8 ICAgICAgICAgfCB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IHsxMS4xMjM0LDEyLC1JbmZp bml0eSxOYU59IHwgCisgezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IHsxMS4xMjM0LDEy LC1JbmZpbml0eSxOYU59IHwgCisoNCByb3dzKQorCitTRUxFQ1QgY29sMSBhcyBmbG9hdDQsCisg ICAgICAgQ0FTVChjb2wxIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2wxIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wxIEFTIG9pZCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29s MSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAor ICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ4IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wxIGFz IG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMs CisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7Cisg IGZsb2F0NCAgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxv YXQ0IHwgICAgdG9fZmxvYXQ4ICAgICB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0K KyAgIDExLjEyMzQgfCAgICAgIDExIHwgICAgICAxMSB8ICAgICAgICB8ICAgICAgMTEgfCAgIDEx LjEyMzQgfCAxMS4xMjMzOTk3MzQ0OTcxIHwgICAgMTEuMTIzNCB8ICAgICAgICAgICAgIDExLjEK KyAgSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgSW5m aW5pdHkgfCAgICAgICAgIEluZmluaXR5IHwgICBJbmZpbml0eSB8ICAgICAgICAgICAgICAgICAK KyAtSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAtSW5m aW5pdHkgfCAgICAgICAgLUluZmluaXR5IHwgIC1JbmZpbml0eSB8ICAgICAgICAgICAgICAgICAK KyAgICAgICBOYU4gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICAg ICBOYU4gfCAgICAgICAgICAgICAgTmFOIHwgICAgICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4K Kyg0IHJvd3MpCisKK1NFTEVDVCBjb2wyIGFzIGZsb2F0OCwKKyAgICAgICBDQVNUKGNvbDIgQVMg aW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAg ICBDQVNUKGNvbDIgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50NCwKKyAgICAgICBDQVNUKGNvbDIgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wyIGFzIGludDggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wyIGFz IGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAor ICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYyBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDIg YXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f bnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgZmxvYXQ4ICAgfCB0b19pbnQy IHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19mbG9hdDQgfCB0b19mbG9hdDggfCB0 b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDExLjEyMzQgfCAgICAgIDExIHwgICAgICAxMSB8 ICAgICAgICB8ICAgICAgMTEgfCAgIDExLjEyMzQgfCAgIDExLjEyMzQgfCAgICAxMS4xMjM0IHwg ICAgICAgICAgICAgMTEuMQorICBJbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAg IHwgICAgICAgICB8ICBJbmZpbml0eSB8ICBJbmZpbml0eSB8ICAgSW5maW5pdHkgfCAgICAgICAg ICAgICAgICAgCisgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAg ICAgIHwgLUluZmluaXR5IHwgLUluZmluaXR5IHwgIC1JbmZpbml0eSB8ICAgICAgICAgICAgICAg ICAKKyAgICAgICBOYU4gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAg ICAgICBOYU4gfCAgICAgICBOYU4gfCAgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTgorKDQg cm93cykKKworLS0gZGF0ZS90aW1lc3RhbXAvaW50ZXJ2YWwgcmVsYXRlZCBzYWZlIHR5cGUgY2Fz dAorQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QyKAorICBjb2wwIGRhdGUsIGNvbDEgdGltZXN0 YW1wLCBjb2wyIHRpbWVzdGFtcHR6LAorICBjb2wzIGludGVydmFsLCBjb2w0IHRpbWUsIGNvbDUg dGltZXR6KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QyIFZBTFVFUworKCctaW5maW5pdHkn LCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLAorICAnMjAwMy0wMy0wNyAx NTozNjozOSBBbWVyaWNhL05ld19Zb3JrJywgJzIwMDMtMDctMDcgMTU6MzY6MzkgQW1lcmljYS9O ZXdfWW9yaycpLAorKCctaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5p dHknLAorICAnMTE6NTk6NTkuOTkgUE0nLCAnMTE6NTk6NTkuOTkgUE0gUERUJyk7CitTRUxFQ1Qg Y29sMCBhcyBkYXRlLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChj b2wwIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUs CisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1ldHogREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDAgQVMg dGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l c3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgICBkYXRlICAgIHwgdG9fdGltZXN0 YW1wdHogfCAgdG9fZGF0ZSAgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9z Y2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8IC1pbmZpbml0 eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAgfCAgICAgICAgICAgfCAtaW5maW5pdHkKKyAt aW5maW5pdHkgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAgICAgICAgIHwgICAgICAg ICAgIHwgLWluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sMSBhcyB0aW1lc3RhbXAsCisg ICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMgZGF0ZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNv bDEgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMs CisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3RhbXAoMikgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJP TSB0ZXN0X3NhZmVjYXN0MjsKKyB0aW1lc3RhbXAgfCB0b190aW1lc3RhbXB0eiB8ICB0b19kYXRl ICB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxlIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5IHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5p dHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQorIGluZmluaXR5ICB8IGluZmlu aXR5ICAgICAgIHwgaW5maW5pdHkgIHwgICAgICAgICAgfCAgICAgICAgICAgfCBpbmZpbml0eQor KDIgcm93cykKKworU0VMRUNUIGNvbDIgYXMgdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wy IEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190 aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChj b2wyIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXR6LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MjsKKyB0aW1lc3RhbXB0eiB8IHRvX3RpbWVzdGFtcHR6IHwgIHRvX2RhdGUgIHwgdG9fdGltZXMg fCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLQorIC1pbmZpbml0eSAgIHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAg ICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQorIGluZmluaXR5ICAgIHwgaW5maW5pdHkgICAg ICAgfCBpbmZpbml0eSAgfCAgICAgICAgICB8ICAgICAgICAgICB8IGluZmluaXR5CisoMiByb3dz KQorCitTRUxFQ1QgY29sMyBhcyBpbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0 YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6 LAorICAgICAgIENBU1QoY29sMyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDMgQVMgdGlt ZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAg ICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlLAorICAgICAgIENBU1QoY29sMyBBUyBpbnRlcnZh bCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2Nh bGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgaW50ZXJ2YWwgIHwgdG9fdGltZXN0YW1wdHogfCB0 b19kYXRlIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgfCB0b19p bnRlcnZhbF9zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLQorIC1pbmZpbml0eSB8ICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgLWluZmluaXR5CisgaW5maW5pdHkgIHwg ICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgfCBpbmZpbml0eQorKDIgcm93cykKKworU0VMRUNUIGNvbDQgYXMgdGltZSwK KyAgICAgICBDQVNUKGNvbDQgQVMgdGltZSgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWV0eiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTk9UIE5VTEwgYXMgdG9fdGltZXR6LAorICAgICAg IENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0 ZXN0X3NhZmVjYXN0MjsKKyAgICB0aW1lICAgICB8ICB0b190aW1lcyAgIHwgdG9fdGltZXR6IHwg ICAgICAgICAgdG9faW50ZXJ2YWwgICAgICAgICAgfCAgICAgICB0b19pbnRlcnZhbF9zY2FsZSAg ICAgICAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAx NTozNjozOSAgICB8IDE1OjM2OjM5ICAgIHwgdCAgICAgICAgIHwgQCAxNSBob3VycyAzNiBtaW5z IDM5IHNlY3MgICAgfCBAIDE1IGhvdXJzIDM2IG1pbnMgMzkgc2VjcworIDIzOjU5OjU5Ljk5IHwg MjM6NTk6NTkuOTkgfCB0ICAgICAgICAgfCBAIDIzIGhvdXJzIDU5IG1pbnMgNTkuOTkgc2VjcyB8 IEAgMjMgaG91cnMgNTkgbWlucyA1OS45OSBzZWNzCisoMiByb3dzKQorCitTRUxFQ1QgY29sNSBh cyB0aW1ldHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUoMikgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVfc2NhbGUsCisgICAgICAg Q0FTVChjb2w1IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fdGltZXR6LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1ldHooNikgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0el9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUg QVMgaW50ZXJ2YWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVy dmFsLAorICAgICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7 CisgICAgIHRpbWV0eiAgICAgfCAgIHRvX3RpbWUgICB8IHRvX3RpbWVfc2NhbGUgfCAgIHRvX3Rp bWV0eiAgICB8IHRvX3RpbWV0el9zY2FsZSB8IHRvX2ludGVydmFsIHwgdG9faW50ZXJ2YWxfc2Nh bGUgCistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tCisgMTU6MzY6MzktMDQgICAgfCAxNTozNjozOSAgICB8IDE1OjM2OjM5ICAgICAgfCAx NTozNjozOS0wNCAgICB8IDE1OjM2OjM5LTA0ICAgICB8ICAgICAgICAgICAgIHwgCisgMjM6NTk6 NTkuOTktMDcgfCAyMzo1OTo1OS45OSB8IDIzOjU5OjU5Ljk5ICAgfCAyMzo1OTo1OS45OS0wNyB8 IDIzOjU5OjU5Ljk5LTA3ICB8ICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCitDUkVBVEUgVEFC TEUgdGVzdF9zYWZlY2FzdDMoY29sMCBqc29uYik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0 Myhjb2wwKSBWQUxVRVMgKCcidGVzdCInKTsKK1NFTEVDVCBjb2wwIGFzIGpzb25iLAorICAgICAg IENBU1QoY29sMCBBUyBpbnRlZ2VyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnRlZ2VyLAorICAgICAgIENBU1QoY29sMCBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMCBBUyBi aWdpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAg ICAgQ0FTVChjb2wwIEFTIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDggREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgYm9v bGVhbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fYm9vbCwKKyAgICAg ICBDQVNUKGNvbDAgQVMgc21hbGxpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3NtYWxsaW50CitGUk9NIHRlc3Rfc2FmZWNhc3QzOworIGpzb25iICB8IHRvX2ludGVn ZXIgfCB0b19udW1lcmljIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX2Jv b2wgfCB0b19zbWFsbGludCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg InRlc3QiIHwgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgCisoMSByb3cpCisKKy0tIHRlc3QgZGVw YXJzZQorU0VUIGRhdGVzdHlsZSBUTyBJU08sIFlNRDsKK0NSRUFURSBWSUVXIHNhZmVjYXN0dmll dyBBUworU0VMRUNUIENBU1QoJzEyMzQnIGFzIGNoYXIoMykgREVGQVVMVCAtMTExMSBPTiBDT05W RVJTSU9OIEVSUk9SKSwKKyAgICAgICBDQVNUKDEgYXMgZGF0ZSBERUZBVUxUICgoJzIwMjUtRGVj LTA2Jzo6ZGF0ZSArIHJhbmRvbShtaW49PjEsIG1heD0+MTo6aW50KSkpIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIGNhc3QwLAorICAgICAgIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2En XV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3Qx LAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGRhdGVb XSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDIsCisgICAgICAgQ0FT VChBUlJBWVsndGhyZWUnXSBBUyBJTlRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgY2FzdDM7Citcc3Ygc2FmZWNhc3R2aWV3CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVX IHB1YmxpYy5zYWZlY2FzdHZpZXcgQVMKKyBTRUxFQ1QgQ0FTVCgnMTIzNCcgQVMgY2hhcmFjdGVy KDMpIERFRkFVTFQgJy0xMTExJzo6aW50ZWdlcjo6Y2hhcmFjdGVyKDMpIE9OIENPTlZFUlNJT04g RVJST1IpIEFTIGJwY2hhciwKKyAgICBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUICcyMDI1LTEyLTA2 Jzo6ZGF0ZSArIHJhbmRvbShtaW4gPT4gMSwgbWF4ID0+IDEpIE9OIENPTlZFUlNJT04gRVJST1Ip IEFTIGNhc3QwLAorICAgIENBU1QoQVJSQVlbQVJSQVlbMV0sIEFSUkFZWyd0aHJlZSddLCBBUlJB WVsnYSddXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAnezEsMn0nOjppbnRlZ2VyW10gT04gQ09OVkVS U0lPTiBFUlJPUikgQVMgY2FzdDEsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsnMScsICcyJ10sIEFS UkFZWyd0aHJlZScsICdhJ11dIEFTIGRhdGVbXSBERUZBVUxUIE5VTEw6OmRhdGVbXSBPTiBDT05W RVJTSU9OIEVSUk9SKSBBUyBjYXN0MiwKKyAgICBDQVNUKEFSUkFZWyd0aHJlZSddIEFTIGludGVn ZXJbXSBERUZBVUxUICd7MSwyfSc6OmludGVnZXJbXSBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBj YXN0MworU0VMRUNUICogRlJPTSBzYWZlY2FzdHZpZXc7CisgYnBjaGFyIHwgICBjYXN0MCAgICB8 IGNhc3QxIHwgY2FzdDIgfCBjYXN0MyAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0rLS0tLS0tLQorIDEyMyAgICB8IDIwMjUtMTItMDcgfCB7MSwyfSB8ICAgICAgIHwgezEs Mn0KKygxIHJvdykKKworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3MSBBUworU0VMRUNUIENBU1Qo QVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgZF9pbnRfYXJyCisgICAgICAgICAgICBE RUZBVUxUICd7NDEsNDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBD QVNUKEFSUkFZW1snMScsICcyJywgMS4xXSwgWyd0aHJlZScsIHRydWUsIEInMDEnXV0gQVMgZF9p bnRfYXJyCisgICAgICAgICAgICBERUZBVUxUICd7NDEsNDN9JyBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1 YmxpYy5zYWZlY2FzdHZpZXcxIEFTCisgU0VMRUNUIENBU1QoQVJSQVlbQVJSQVlbMV0sIEFSUkFZ Wyd0aHJlZSddLCBBUlJBWVsnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezQxLDQzfSc6Omlu dGVnZXJbXTo6ZF9pbnRfYXJyIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QxLAorICAgIENB U1QoQVJSQVlbQVJSQVlbMSwgMiwgMS4xOjppbnRlZ2VyXSwgQVJSQVlbJ3RocmVlJywgdHJ1ZSwg JzAxJzo6ImJpdCJdXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezQxLDQzfSc6OmludGVnZXJbXTo6 ZF9pbnRfYXJyIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QyCitTRUxFQ1QgKiBGUk9NIHNh ZmVjYXN0dmlldzE7CisgIGNhc3QxICB8ICBjYXN0MiAgCistLS0tLS0tLS0rLS0tLS0tLS0tCisg ezQxLDQzfSB8IHs0MSw0M30KKygxIHJvdykKKworUkVTRVQgZGF0ZXN0eWxlOworLS10ZXN0IENB U1QgREVGQVVMVCBleHByZXNzaW9uIG11dGFiaWxpdHkKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9y X2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxUIHJhbmRvbSht aW49PjEsIG1heD0+MSkgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsKK0VSUk9SOiAgZnVuY3Rpb25z IGluIGluZGV4IGV4cHJlc3Npb24gbXVzdCBiZSBtYXJrZWQgSU1NVVRBQkxFCitDUkVBVEUgSU5E RVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyB4aWQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKSk7CitFUlJPUjogIGRhdGEgdHlwZSB4aWQg aGFzIG5vIGRlZmF1bHQgb3BlcmF0b3IgY2xhc3MgZm9yIGFjY2VzcyBtZXRob2QgImJ0cmVlIgor SElOVDogIFlvdSBtdXN0IHNwZWNpZnkgYW4gb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBpbmRleCBv ciBkZWZpbmUgYSBkZWZhdWx0IG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgZGF0YSB0eXBlLgorQ1JF QVRFIElOREVYIHRlc3Rfc2FmZWNhc3QzX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2ww IGFzIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsgLS1vaworU0VMRUNU IHBnX2dldF9pbmRleGRlZigndGVzdF9zYWZlY2FzdDNfaWR4Jzo6cmVnY2xhc3MpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBn X2dldF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgSU5E RVggdGVzdF9zYWZlY2FzdDNfaWR4IE9OIHB1YmxpYy50ZXN0X3NhZmVjYXN0MyBVU0lORyBidHJl ZSAoKENBU1QoY29sMCBBUyBpbnRlZ2VyIERFRkFVTFQgTlVMTDo6aW50ZWdlciBPTiBDT05WRVJT SU9OIEVSUk9SKSkpCisoMSByb3cpCisKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDsKK0RST1Ag VEFCTEUgdGVzdF9zYWZlY2FzdDE7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QyOworRFJPUCBU QUJMRSB0ZXN0X3NhZmVjYXN0MzsKK0RST1AgVEFCTEUgdGNhc3Q7CitEUk9QIEZVTkNUSU9OIHJl dF9pbnQ4OworRFJPUCBGVU5DVElPTiByZXRfc2V0aW50OworRFJPUCBUWVBFIGNvbXBfZG9tYWlu X3dpdGhfdHlwbW9kOworRFJPUCBUWVBFIGNvbXAyOworRFJPUCBET01BSU4gZF92YXJjaGFyOwor RFJPUCBET01BSU4gZF9pbnQ0MjsKK0RST1AgRE9NQUlOIGRfY2hhcjNfbm90X251bGw7CitSRVNF VCBleHRyYV9mbG9hdF9kaWdpdHM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2NyZWF0ZV9jYXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nh c3Qub3V0CmluZGV4IDBlNjk2NDRiY2EyLi4wMDU0ZWQwZWY2NyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKQEAgLTg4LDYgKzg4LDExIEBAIFNFTEVDVCAxMjM0 OjppbnQ0OjpjYXN0dGVzdHR5cGU7IC0tIFNob3VsZCB3b3JrIG5vdwogIGJhcjEyMzQKICgxIHJv dykKIAorU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBl IGludGVnZXIgdG8gY2FzdHRlc3R0eXBlIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNp ZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNU KDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRS4uLgorICAg ICAgICAgICAgICAgICAgICBeCitISU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5l ZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQKIC0tIGNoZWNrIGRlcGVuZGVuY2llcyBnZW5l cmF0ZWQgZm9yIHRoYXQKIFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3NpZCwgb2JqaWQs IG9ianN1YmlkKSBhcyBvYmosCiAgICAgICAgcGdfZGVzY3JpYmVfb2JqZWN0KHJlZmNsYXNzaWQs IHJlZm9iamlkLCByZWZvYmpzdWJpZCkgYXMgb2JqcmVmLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9lcXVpdmNsYXNzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZXF1aXZjbGFzcy5vdXQKaW5kZXggYWQ4YWIyOTRmZjYuLjVhZWUyYzdhOWZiIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQKQEAgLTk1LDYgKzk1LDEzIEBAIGNy ZWF0ZSBmdW5jdGlvbiBpbnQ4YWxpYXMxY21wKGludDgsIGludDhhbGlhczEpIHJldHVybnMgaW50 CiAgIHN0cmljdCBpbW11dGFibGUgbGFuZ3VhZ2UgaW50ZXJuYWwgYXMgJ2J0aW50OGNtcCc7CiBh bHRlciBvcGVyYXRvciBmYW1pbHkgaW50ZWdlcl9vcHMgdXNpbmcgYnRyZWUgYWRkCiAgIGZ1bmN0 aW9uIDEgaW50OGFsaWFzMWNtcCAoaW50OCwgaW50OGFsaWFzMSk7CistLSBpbnQ4YWxpYXMyIGJp bmFyeS1jb2VyY2libGUgdG8gaW50OC4gc28gdGhpcyBpcyBvaworc2VsZWN0IGNhc3QoJzEnOjpp bnQ4IGFzIGludDhhbGlhczIgZGVmYXVsdCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3IpOworIGlu dDhhbGlhczIgCistLS0tLS0tLS0tLS0KKyAxCisoMSByb3cpCisKIGNyZWF0ZSB0YWJsZSBlYzAg KGZmIGludDggcHJpbWFyeSBrZXksIGYxIGludDgsIGYyIGludDgpOwogY3JlYXRlIHRhYmxlIGVj MSAoZmYgaW50OCBwcmltYXJ5IGtleSwgZjEgaW50OGFsaWFzMSwgZjIgaW50OGFsaWFzMik7CiBj cmVhdGUgdGFibGUgZWMyICh4ZiBpbnQ4IHByaW1hcnkga2V5LCB4MSBpbnQ4YWxpYXMxLCB4MiBp bnQ4YWxpYXMyKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IGNjNmQ3OTliY2Vh Li4wYjAzMWEzN2MzNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC04MSw3ICs4 MSw3IEBAIHRlc3Q6IGNyZWF0ZV90YWJsZV9saWtlIGFsdGVyX2dlbmVyaWMgYWx0ZXJfb3BlcmF0 b3IgbWlzYyBhc3luYyBkYnNpemUgbWVyZ2UgbWlzCiAjIGNvbGxhdGUubGludXgudXRmOCBhbmQg Y29sbGF0ZS5pY3UudXRmOCB0ZXN0cyBjYW5ub3QgYmUgcnVuIGluIHBhcmFsbGVsIHdpdGggZWFj aCBvdGhlcgogIyBwc3FsIGRlcGVuZHMgb24gY3JlYXRlX2FtCiAjIGFtdXRpbHMgZGVwZW5kcyBv biBnZW9tZXRyeSwgY3JlYXRlX2luZGV4X3NwZ2lzdCwgaGFzaF9pbmRleCwgYnJpbgotdGVzdDog cnVsZXMgcHNxbCBwc3FsX2Nyb3NzdGFiIHBzcWxfcGlwZWxpbmUgYW11dGlscyBzdGF0c19leHQg Y29sbGF0ZS5saW51eC51dGY4IGNvbGxhdGUud2luZG93cy53aW4xMjUyCit0ZXN0OiBydWxlcyBw c3FsIHBzcWxfY3Jvc3N0YWIgcHNxbF9waXBlbGluZSBhbXV0aWxzIHN0YXRzX2V4dCBjb2xsYXRl LmxpbnV4LnV0ZjggY29sbGF0ZS53aW5kb3dzLndpbjEyNTIgY2FzdAogCiAjIC0tLS0tLS0tLS0K ICMgUnVuIHRoZXNlIGFsb25lIHNvIHRoZXkgZG9uJ3QgcnVuIG91dCBvZiBwYXJhbGxlbCB3b3Jr ZXJzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi45YjZmM2NjMDY0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2Nhc3Quc3FsCkBAIC0wLDAgKzEsMzUwIEBACitTRVQgZXh0cmFfZmxvYXRfZGlnaXRzID0gMDsK KworLS0gQ0FTVCBERUZBVUxUIE9OIENPTlZFUlNJT04gRVJST1IKK1NFTEVDVCBDQVNUKEInMDEn IEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1Qo QklUJzAxJyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKFRSVUUgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitT RUxFQ1QgQ0FTVCgxLjEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CitTRUxFQ1QgQ0FTVCgxIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoMTExMSBBUyAiY2hhciIgREVGQVVMVCAnQScgT04gQ09OVkVSU0lPTiBF UlJPUik7CisKKy0tdGVzdCBzb3VyY2UgZXhwcmVzc2lvbiBpcyBhIHVua25vd24gY29uc3QKK1ZB TFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgRVJST1IgT04gQ09OVkVSU0lPTiBFUlJPUikp OyAtLWVycm9yCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikpOworVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBERUZBVUxUIDQy IE9OIENPTlZFUlNJT04gRVJST1IpKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAx OCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBz dW0oMSkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBp bnQgREVGQVVMVCBzdW0oMSkgb3ZlcigpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitT RUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgKFNFTEVDVCBOVUxMKSBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUICdiJyBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorCistLXRoZSBkZWZhdWx0 IGV4cHJlc3Npb27igJlzIGNvbGxhdGlvbiBzaG91bGQgbWF0Y2ggdGhlIGNvbGxhdGlvbiBvZiB0 aGUgY2FzdAorLS10YXJnZXQgdHlwZQorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgdGV4dCBERUZB VUxUICcxJyBDT0xMQVRFICJDIiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisKK1ZBTFVFUyAoQ0FT VCgnZXJyb3InIEFTIGludDJ2ZWN0b3IgREVGQVVMVCAnMSAzJyAgT04gQ09OVkVSU0lPTiBFUlJP UikpOworVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50MnZlY3RvcltdIERFRkFVTFQgJ3sxIDN9 JyAgT04gQ09OVkVSU0lPTiBFUlJPUikpOworCistLSB0ZXN0IHNvdXJjZSBleHByZXNzaW9uIGNv bnRhaW4gc3VicXVlcnkKK1NFTEVDVCBDQVNUKChTRUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAxKSwgKFZBTFVFUygnSCcpKSBzKGIpKQorICAgICAgICAgICAgQVMgaW50MnZlY3Rvcltd IERFRkFVTFQgJ3sxIDN9JyAgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgoU0VM RUNUIEFSUkFZKChTRUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyKSBnLCAoVkFMVUVT KCdIJykpIHMoYikpKSkKKyAgICAgICAgICAgIEFTIElOVFtdCisgICAgICAgICAgICBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKK0NSRUFURSBGVU5DVElPTiByZXRfaW50OCgp IFJFVFVSTlMgQklHSU5UIEFTCiskJAorQkVHSU4gUkVUVVJOIDIxNDc0ODM2NDg7IEVORDsKKyQk CitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKKworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBE RUZBVUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBD QVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsg LS1lcnJvcgorCistLSBERUZBVUxUIGV4cHJlc3Npb24gY2FuIG5vdCBiZSBzZXQtcmV0dXJuaW5n CitDUkVBVEUgRlVOQ1RJT04gcmV0X3NldGludCgpIFJFVFVSTlMgU0VUT0YgaW50ZWdlciBBUwor JCQKK0JFR0lOIFJFVFVSTiBRVUVSWSBFWEVDVVRFICdzZWxlY3QgMSB1bmlvbiBhbGwgc2VsZWN0 IDEnOyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CisKK0NSRUFURSBUQUJM RSB0Y2FzdChhIHRleHRbXSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgSURFTlRJVFkp OworSU5TRVJUIElOVE8gdGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9JyksICgne3sx LDJ9LCB7YyxkfX0nKSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQg cmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0tZXJyb3IKK1NF TEVDVCBDQVNUKHQgQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9JyBPTiBD T05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CitTRUxFQ1QgQ0FTVCh0LmEgQVMgaW50 W10gREVGQVVMVCAnezIxLDIyfSc6OmludFtdIHx8IGIgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJP TSB0Y2FzdCBhcyB0OworCistLSB0ZXN0IHdpdGggdXNlci1kZWZpbmVkIHR5cGUsIGRvbWFpbiwg YXJyYXkgb3ZlciBkb21haW4sIGRvbWFpbiBvdmVyIGFycmF5CitDUkVBVEUgRE9NQUlOIGRfaW50 NDIgYXMgaW50IGNoZWNrICh2YWx1ZSA9IDQyKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF9j aGFyM19ub3RfbnVsbCBhcyBjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX3ZhcmNo YXIgYXMgdmFyY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF9pbnRfYXJyIGFzIGlu dFtdIGNoZWNrICh2YWx1ZSA9ICd7NDEsIDQzfScpIE5PVCBOVUxMOworQ1JFQVRFIFRZUEUgY29t cF9kb21haW5fd2l0aF90eXBtb2QgQVMgKGEgZF9jaGFyM19ub3RfbnVsbCwgYiBpbnQpOworQ1JF QVRFIFRZUEUgY29tcDIgQVMgKGEgZF92YXJjaGFyKTsKK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFT IGNvbXAyIERFRkFVTFQgJygxMjMyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NF TEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMpJyBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MSBPTiBDT05WRVJT SU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQy IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoTlVMTCBB UyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn KCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhf dHlwbW9kIERFRkFVTFQgJygxLDIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIp JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorCitTRUxFQ1QgQ0FTVChBUlJBWVs0Miw0 MV0gQVMgZF9pbnQ0MltdIERFRkFVTFQgJ3s0MiwgNDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKEFSUkFZWzQyLDQxXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezQxLCA0M30n IE9OIENPTlZFUlNJT04gRVJST1IpOworCistLSB0ZXN0IGFycmF5IGNvZXJjZQorU0VMRUNUIENB U1QoYXJyYXlbJ2EnOjp0ZXh0XSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKGFycmF5WydhJ10gQVMgaW50W10gREVGQVVMVCBB UlJBWVsxXSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKGFycmF5WzExLjEyXSBB UyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1Qo YXJyYXlbMTExMTExMTExMTExMTExMTFdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKGFycmF5W1snYWJjJ10sWzQ1Nl1dIEFTIGludFtdIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCd7MTIzLGFiYyw0 NTZ9JyBBUyBpbnRbXSBERUZBVUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VM RUNUIENBU1QoJ3syMzQsZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3st MTAxMX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsn dGhyZWUnXSxbJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGlu dFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCitTRUxFQ1Qg Q0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJzo6aW50LCAnYSddXSBBUyBpbnRbXSBERUZB VUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1Qo QVJSQVlbMSwgJ3RocmVlJzo6aW50XSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorCistLS0tLXNhZmUgY2FzdCB3aXRoIGdlb21ldHJ5IGRh dGEgdHlwZQorU0VMRUNUIENBU1QoJygxLDIpJzo6cG9pbnQgQVMgYm94IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbKE5hTiwxKSwoTmFOLGluZmluaXR5 KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKCdbKDFlKzMwMCxJbmZpbml0eSksKDFlKzMwMCxJbmZpbml0eSldJzo6bHNlZyBB UyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn WygxLDIpLCgzLDQpXSc6OnBhdGggYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5hTiwxLjAsTmFOLGluZmluaXR5KSc6OmJveCBBUyBw b2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIu MCwyLjAsMC4wLDAuMCknOjpib3ggQVMgbHNlZyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcG9seWdvbiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAs MC4wLDAuMCknOjpib3ggQVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CitTRUxFQ1QgQ0FTVCgnKDIuMCxpbmZpbml0eSxOYU4saW5maW5pdHkpJzo6Ym94IEFTIGNpcmNs ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5hTiww LjApLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgcG9pbnQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQu MCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDAuMCksKDIuMCw0LjApLCgwLjAsMC4wKSc6OnBv bHlnb24gQVMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKCcoTmFOLGluZmluaXR5KSwoMi4wLDQuMCksKDAuMCxpbmZpbml0eSknOjpwb2x5Z29uIEFT IGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn PCg1LDEpLDM+Jzo6Y2lyY2xlIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgYm94IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0gbm90IHN1cHBvcnRlZCBiZWNhdXNlIHRoZSBj YXN0IGZyb20gY2lyY2xlIHRvIHBvbHlnb24gaXMgaW1wbGVtZW50ZWQgYXMgYSBTUUwKKy0tIGZ1 bmN0aW9uLCB3aGljaCBjYW5ub3QgYmUgZXJyb3Itc2FmZS4KK1NFTEVDVCBDQVNUKCc8KDMsNSks MD4nOjpjaXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisKKy0tLS0tc2FmZSBjYXN0IGZyb20vdG8gbW9uZXkgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLCBh bGwgdGhlIGZvbGxvd2luZyB3b3VsZCByZXN1bHQgZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6Omlu dDggQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoTlVMTDo6aW50NCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CitTRUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5IEFTIG51bWVyaWMgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTDo6bW9uZXlbXSBB UyBudW1lcmljW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0tLXNh ZmUgY2FzdCBmcm9tIGJ5dGVhIHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1Qg KCdceDExMjIzMzQ0NTU2Njc3ODg5OSc6OmJ5dGVhIEFTIGludDggREVGQVVMVCAxOSBPTiBDT05W RVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Njc4OUEnOjpieXRlYSBBUyBpbnQ0 IERFRkFVTFQgMjAgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTYn OjpieXRlYSBBUyBpbnQyIERFRkFVTFQgMjEgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0t c2FmZSBjYXN0IGZyb20gYml0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1Qo JzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVCBERUZBVUxUIDIyIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QgKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJ TlQ4IERFRkFVTFQgMjMgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGZy b20gdGV4dCB0eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK3NlbGVjdCBDQVNUKCdhLmIuYy5kJzo6 dGV4dCBhcyByZWdjbGFzcyBkZWZhdWx0IE5VTEwgb24gY29udmVyc2lvbiBlcnJvcik7CisKK0NS RUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0KGNvbDAgdGV4dCk7CitJTlNFUlQgSU5UTyB0ZXN0X3Nh ZmVjYXN0KGNvbDApIFZBTFVFUyAoJzx2YWx1ZT5vbmU8L3ZhbHVlJyk7CisKK1NFTEVDVCBjb2ww IGFzIHRleHQsCisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19yZWdjbGFzcywKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVn Y2xhc3MgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEwgYXMgZXhwZWN0 X3RydWUsCisgICAgICAgQ0FTVChjb2wwIEFTICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2NoYXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChjb2ww IEFTIHhtbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitGUk9N IHRlc3Rfc2FmZWNhc3Q7CisKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEueCcgYXMgaW5ldCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLjIv MzAnIGFzIGNpZHIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoJzIyOjAwOjVjOjA4OjU1OjA4OjAxOjAyJzo6bWFjYWRkcjggYXMgbWFjYWRkciBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGJldHdlZWVuIHJh bmdlIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCdbMSwyXSc6OmludDRyYW5nZSBBUyBpbnQ0bXVs dGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn WzEsMl0nOjppbnQ4cmFuZ2UgQVMgaW50OG11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1sxLDJdJzo6bnVtcmFuZ2UgIEFTIG51bW11bHRp cmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1st aW5maW5pdHksaW5maW5pdHldJzo6ZGF0ZXJhbmdlIEFTIGRhdGVtdWx0aXJhbmdlIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmlu aXR5XSc6OnRzcmFuZ2UgQVMgdHNtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OnRzdHpyYW5nZSBB UyB0c3R6bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0t LS0tc2FmZSBjYXN0IGJldHdlZWVuIG51bWVyaWMgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIHRl c3Rfc2FmZWNhc3QxKAorICBjb2wxIGZsb2F0NCwgY29sMiBmbG9hdDgsIGNvbDMgbnVtZXJpYywg Y29sNCBudW1lcmljW10sCisgIGNvbDUgaW50MiBkZWZhdWx0IDMyNzY3LAorICBjb2w2IGludDQg ZGVmYXVsdCAzMjc2OCwKKyAgY29sNyBpbnQ4IGRlZmF1bHQgNDI5NDk2NzI5Nik7CitJTlNFUlQg SU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJzExLjEyMzQnLCAnMTEuMTIzNCcsICc5MjIzMzcy MDM2ODU0Nzc1ODA4JywgJ3sxMS4xMjM0fSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0 X3NhZmVjYXN0MSBWQUxVRVMoJ2luZicsICdpbmYnLCAnaW5mJywgJ3sxMS4xMjM0LCAxMiwgaW5m LCBOYU59Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygn LWluZicsICctaW5mJywgJy1pbmYnLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJp Y1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnTmFOJywgJ05hTicsICdO YU4nLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKKworU0VMRUNUIGNv bDUgYXMgaW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50NCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNv bDUgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisg ICAgICAgQ0FTVChjb2w1IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9h dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAg ICBDQVNUKGNvbDUgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0 X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDYgYXMgaW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMg aW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAg ICBDQVNUKGNvbDYgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w2IGFzIGludDggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w2IGFz IGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAor ICAgICAgIENBU1QoY29sNiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYyBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDYg YXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f bnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDcgYXMgaW50 OCwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50NCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDcgQVMgb2lk IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FT VChjb2w3IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDgsCisgICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNv bDcgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVt ZXJpYywKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MTsKKworU0VMRUNUIGNvbDMgYXMgbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50MiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNU KGNvbDMgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 NCwKKyAgICAgICBDQVNUKGNvbDMgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wzIGFzIGludDggREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0 NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAg IENBU1QoY29sMyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVt ZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJp Y19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDQgYXMgbnVtX2FyciwK KyAgICAgICBDQVNUKGNvbDQgQVMgaW50MltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyBpbnQyYXJyLAorICAgICAgIENBU1QoY29sNCBBUyBpbnQ0W10gREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGludDRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGlu dDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50OGFyciwKKyAgICAg ICBDQVNUKGNvbDQgYXMgZmxvYXQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIGY0YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBmbG9hdDhbXSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgZjhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIG51bWVyaWMo MTAsMSlbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgbnVtYXJyCitGUk9N IHRlc3Rfc2FmZWNhc3QxOworCitTRUxFQ1QgY29sMSBhcyBmbG9hdDQsCisgICAgICAgQ0FTVChj b2wxIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIs CisgICAgICAgQ0FTVChjb2wxIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wxIEFTIG9pZCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMSBhcyBpbnQ4IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1Qo Y29sMSBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zs b2F0NCwKKyAgICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FT VChjb2wxIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wy IGFzIGZsb2F0OCwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50NCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNv bDIgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisg ICAgICAgQ0FTVChjb2wyIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9h dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAg ICBDQVNUKGNvbDIgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0 X3NhZmVjYXN0MTsKKworLS0gZGF0ZS90aW1lc3RhbXAvaW50ZXJ2YWwgcmVsYXRlZCBzYWZlIHR5 cGUgY2FzdAorQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QyKAorICBjb2wwIGRhdGUsIGNvbDEg dGltZXN0YW1wLCBjb2wyIHRpbWVzdGFtcHR6LAorICBjb2wzIGludGVydmFsLCBjb2w0IHRpbWUs IGNvbDUgdGltZXR6KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QyIFZBTFVFUworKCctaW5m aW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLAorICAnMjAwMy0w My0wNyAxNTozNjozOSBBbWVyaWNhL05ld19Zb3JrJywgJzIwMDMtMDctMDcgMTU6MzY6MzkgQW1l cmljYS9OZXdfWW9yaycpLAorKCctaW5maW5pdHknLCAnaW5maW5pdHknLCAnaW5maW5pdHknLCAn aW5maW5pdHknLAorICAnMTE6NTk6NTkuOTkgUE0nLCAnMTE6NTk6NTkuOTkgUE0gUERUJyk7CisK K1NFTEVDVCBjb2wwIGFzIGRhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFtcHR6IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAg ICBDQVNUKGNvbDAgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWV0eiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1Qo Y29sMCBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDEg YXMgdGltZXN0YW1wLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChj b2wxIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUs CisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1ldHogREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMg dGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l c3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2wyIGFzIHRpbWVz dGFtcHR6LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFT IGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAg ICAgQ0FTVChjb2wyIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMiBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0 YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBf c2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2wzIGFzIGludGVydmFsLAor ICAgICAgIENBU1QoY29sMyBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wzIEFTIGRhdGUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChj b2wzIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVz LAorICAgICAgIENBU1QoY29sMyBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wKDIpIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUsCisg ICAgICAgQ0FTVChjb2wzIEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VM RUNUIGNvbDQgYXMgdGltZSwKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZSgyKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2w0IEFT IHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTk9UIE5VTEwgYXMg dG9fdGltZXR6LAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w0IEFT IGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRl cnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDUgYXMgdGltZXR6 LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lLAorICAgICAgIENBU1QoY29sNSBBUyB0aW1lKDIpIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lX3NjYWxlLAorICAgICAgIENBU1QoY29s NSBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0 eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZXR6KDYpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b190aW1ldHpfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVy dmFsIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAg ICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitDUkVB VEUgVEFCTEUgdGVzdF9zYWZlY2FzdDMoY29sMCBqc29uYik7CitJTlNFUlQgSU5UTyB0ZXN0X3Nh ZmVjYXN0Myhjb2wwKSBWQUxVRVMgKCcidGVzdCInKTsKK1NFTEVDVCBjb2wwIGFzIGpzb25iLAor ICAgICAgIENBU1QoY29sMCBBUyBpbnRlZ2VyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19pbnRlZ2VyLAorICAgICAgIENBU1QoY29sMCBBUyBudW1lcmljIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29s MCBBUyBiaWdpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgs CisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDAg QVMgYm9vbGVhbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fYm9vbCwK KyAgICAgICBDQVNUKGNvbDAgQVMgc21hbGxpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX3NtYWxsaW50CitGUk9NIHRlc3Rfc2FmZWNhc3QzOworCistLSB0ZXN0IGRl cGFyc2UKK1NFVCBkYXRlc3R5bGUgVE8gSVNPLCBZTUQ7CitDUkVBVEUgVklFVyBzYWZlY2FzdHZp ZXcgQVMKK1NFTEVDVCBDQVNUKCcxMjM0JyBhcyBjaGFyKDMpIERFRkFVTFQgLTExMTEgT04gQ09O VkVSU0lPTiBFUlJPUiksCisgICAgICAgQ0FTVCgxIGFzIGRhdGUgREVGQVVMVCAoKCcyMDI1LURl Yy0wNic6OmRhdGUgKyByYW5kb20obWluPT4xLCBtYXg9PjE6OmludCkpKSBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBjYXN0MCwKKyAgICAgICBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydh J11dIEFTIGludFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0 MSwKKyAgICAgICBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyBkYXRl W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QyLAorICAgICAgIENB U1QoQVJSQVlbJ3RocmVlJ10gQVMgSU5UW10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIGNhc3QzOworXHN2IHNhZmVjYXN0dmlldworU0VMRUNUICogRlJPTSBzYWZlY2Fz dHZpZXc7CisKK0NSRUFURSBWSUVXIHNhZmVjYXN0dmlldzEgQVMKK1NFTEVDVCBDQVNUKEFSUkFZ W1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFTIGRfaW50X2FycgorICAgICAgICAgICAgREVGQVVM VCAnezQxLDQzfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDEsCisgICAgICAgQ0FTVChB UlJBWVtbJzEnLCAnMicsIDEuMV0sIFsndGhyZWUnLCB0cnVlLCBCJzAxJ11dIEFTIGRfaW50X2Fy cgorICAgICAgICAgICAgREVGQVVMVCAnezQxLDQzfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg Y2FzdDI7Citcc3Ygc2FmZWNhc3R2aWV3MQorU0VMRUNUICogRlJPTSBzYWZlY2FzdHZpZXcxOwor CitSRVNFVCBkYXRlc3R5bGU7CisKKy0tdGVzdCBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiBtdXRh YmlsaXR5CitDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENB U1QoY29sMCBhcyBpbnQgREVGQVVMVCByYW5kb20obWluPT4xLCBtYXg9PjEpIE9OIENPTlZFUlNJ T04gRVJST1IpKSk7CitDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2Fz dDMoKENBU1QoY29sMCBhcyB4aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKSk7 CitDUkVBVEUgSU5ERVggdGVzdF9zYWZlY2FzdDNfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNU KGNvbDAgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOyAtLW9rCitT RUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKCd0ZXN0X3NhZmVjYXN0M19pZHgnOjpyZWdjbGFzcyk7CisK K0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDE7CitE Uk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QyOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MzsKK0RS T1AgVEFCTEUgdGNhc3Q7CitEUk9QIEZVTkNUSU9OIHJldF9pbnQ4OworRFJPUCBGVU5DVElPTiBy ZXRfc2V0aW50OworRFJPUCBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kOworRFJPUCBUWVBF IGNvbXAyOworRFJPUCBET01BSU4gZF92YXJjaGFyOworRFJPUCBET01BSU4gZF9pbnQ0MjsKK0RS T1AgRE9NQUlOIGRfY2hhcjNfbm90X251bGw7CitSRVNFVCBleHRyYV9mbG9hdF9kaWdpdHM7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKaW5kZXggMzIxODc4NTNjYzcuLjBhMTVhNzk1 ZDg3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02Miw2ICs2Miw3IEBA ICQkIFNFTEVDVCAoJ2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyAkJDsKIAogQ1JFQVRFIENBU1Qg KGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkg QVMgSU1QTElDSVQ7CiBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQg d29yayBub3cKK1NFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKIAogLS0gY2hlY2sgZGVwZW5kZW5j aWVzIGdlbmVyYXRlZCBmb3IgdGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFzc2lk LCBvYmppZCwgb2Jqc3ViaWQpIGFzIG9iaiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2VxdWl2Y2xhc3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1aXZjbGFzcy5zcWwK aW5kZXggN2ZjMjE1OTM0OWIuLjVhZDFkMjYzMTFkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9lcXVpdmNsYXNzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNs YXNzLnNxbApAQCAtOTgsNiArOTgsOSBAQCBjcmVhdGUgZnVuY3Rpb24gaW50OGFsaWFzMWNtcChp bnQ4LCBpbnQ4YWxpYXMxKSByZXR1cm5zIGludAogYWx0ZXIgb3BlcmF0b3IgZmFtaWx5IGludGVn ZXJfb3BzIHVzaW5nIGJ0cmVlIGFkZAogICBmdW5jdGlvbiAxIGludDhhbGlhczFjbXAgKGludDgs IGludDhhbGlhczEpOwogCistLSBpbnQ4YWxpYXMyIGJpbmFyeS1jb2VyY2libGUgdG8gaW50OC4g c28gdGhpcyBpcyBvaworc2VsZWN0IGNhc3QoJzEnOjppbnQ4IGFzIGludDhhbGlhczIgZGVmYXVs dCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3IpOworCiBjcmVhdGUgdGFibGUgZWMwIChmZiBpbnQ4 IHByaW1hcnkga2V5LCBmMSBpbnQ4LCBmMiBpbnQ4KTsKIGNyZWF0ZSB0YWJsZSBlYzEgKGZmIGlu dDggcHJpbWFyeSBrZXksIGYxIGludDhhbGlhczEsIGYyIGludDhhbGlhczIpOwogY3JlYXRlIHRh YmxlIGVjMiAoeGYgaW50OCBwcmltYXJ5IGtleSwgeDEgaW50OGFsaWFzMSwgeDIgaW50OGFsaWFz Mik7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDlkZDY1YjEwMjU0Li40NGJiYTJlODE5 ZiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI2NzUsNiArMjY3NSw5IEBAIFNUUkxF TgogU1YKIFNZTkNIUk9OSVpBVElPTl9CQVJSSUVSCiBTWVNURU1fSU5GTworU2FmZVR5cGVDYXN0 CitTYWZlVHlwZUNhc3RFeHByCitTYWZlVHlwZUNhc3RTdGF0ZQogU2FtcGxlU2NhbgogU2FtcGxl U2NhbkdldFNhbXBsZVNpemVfZnVuY3Rpb24KIFNhbXBsZVNjYW5TdGF0ZQotLSAKMi4zNC4xCgo= --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0020-refactor-point_dt.patch" Content-Disposition: attachment; filename="v16-0020-refactor-point_dt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq2x4 RnJvbSBmNGRjMzMzMDdlNGYxODcxNjVkZjQ1NjY3MTRlMWNlMTQwNTI4ZDExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTAgRGVjIDIwMjUgMTI6MDA6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAyMC8yM10gcmVmYWN0b3IgcG9pbnRfZHQKCnBvaW50X2R0IHVzZWQgaW4gbWFueSBwbGFjZXMs IGl0IHdpbGwgYmUgdXNlZCBpbiBsYXRlciBvbiBwYXRjaCwgdGh1cwpyZWZhY3RvcmluZyBtYWtl IGl0IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1m djFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNv bQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMgfCA3NyArKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAz MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29w cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwppbmRleCA0M2I3ZWI0M2E3OS4u NWMzYjllMmVkNjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwpAQCAtODIsNyArODIsNyBAQCBz dGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfc3ViX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpw dDEsIFBvaW50ICpwdDIpOwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X211bF9wb2ludChQb2lu dCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBw b2ludF9kaXZfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBz dGF0aWMgaW5saW5lIGJvb2wgcG9pbnRfZXFfcG9pbnQoUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7 Ci1zdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9kdChQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsK K3N0YXRpYyBpbmxpbmUgZmxvYXQ4IHBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIsIE5v ZGUgKmVzY29udGV4dCk7CiBzdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9zbChQb2ludCAqcHQx LCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbnQJcG9pbnRfaW5zaWRlKFBvaW50ICpwLCBpbnQgbnB0 cywgUG9pbnQgKnBsaXN0KTsKIApAQCAtODM5LDcgKzgzOSw3IEBAIGJveF9kaXN0YW5jZShQR19G VU5DVElPTl9BUkdTKQogCWJveF9jbigmYSwgYm94MSk7CiAJYm94X2NuKCZiLCBib3gyKTsKIAot CVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQoJmEsICZiKSk7CisJUEdfUkVUVVJOX0ZMT0FUOChw b2ludF9kdCgmYSwgJmIsIE5VTEwpKTsKIH0KIAogCkBAIC0xODA4LDcgKzE4MDgsNyBAQCBwYXRo X2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQogCQkJaXByZXYgPSBwYXRoLT5ucHRzIC0gMTsgLyog aW5jbHVkZSB0aGUgY2xvc3VyZSBzZWdtZW50ICovCiAJCX0KIAotCQlyZXN1bHQgPSBmbG9hdDhf cGwocmVzdWx0LCBwb2ludF9kdCgmcGF0aC0+cFtpcHJldl0sICZwYXRoLT5wW2ldKSk7CisJCXJl c3VsdCA9IGZsb2F0OF9wbChyZXN1bHQsIHBvaW50X2R0KCZwYXRoLT5wW2lwcmV2XSwgJnBhdGgt PnBbaV0sIE5VTEwpKTsKIAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CkBAIC0xOTk1 LDEzICsxOTk1LDI0IEBAIHBvaW50X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUG9pbnQJ ICAgKnB0MSA9IFBHX0dFVEFSR19QT0lOVF9QKDApOwogCVBvaW50CSAgICpwdDIgPSBQR19HRVRB UkdfUE9JTlRfUCgxKTsKIAotCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQocHQxLCBwdDIpKTsK KwlQR19SRVRVUk5fRkxPQVQ4KHBvaW50X2R0KHB0MSwgcHQyLCBOVUxMKSk7CiB9CiAKIHN0YXRp YyBpbmxpbmUgZmxvYXQ4Ci1wb2ludF9kdChQb2ludCAqcHQxLCBQb2ludCAqcHQyKQorcG9pbnRf ZHQoUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0KQogewotCXJldHVybiBo eXBvdChmbG9hdDhfbWkocHQxLT54LCBwdDItPngpLCBmbG9hdDhfbWkocHQxLT55LCBwdDItPnkp KTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9taV9zYWZlKHB0MS0+ eCwgcHQyLT54LCBlc2NvbnRleHQpOworCWlmICh1bmxpa2VseShTT0ZUX0VSUk9SX09DQ1VSUkVE KGVzY29udGV4dCkpKQorCQlyZXR1cm4gMC4wOworCisJeSAgPSBmbG9hdDhfbWlfc2FmZShwdDEt PnksIHB0Mi0+eSwgZXNjb250ZXh0KTsKKwlpZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJF RChlc2NvbnRleHQpKSkKKwkJcmV0dXJuIDAuMDsKKworCXJldHVybiBoeXBvdCh4LCB5KTsKIH0K IAogRGF0dW0KQEAgLTIxNzMsNyArMjE4NCw3IEBAIGxzZWdfbGVuZ3RoKFBHX0ZVTkNUSU9OX0FS R1MpCiB7CiAJTFNFRwkgICAqbHNlZyA9IFBHX0dFVEFSR19MU0VHX1AoMCk7CiAKLQlQR19SRVRV Uk5fRkxPQVQ4KHBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSkpOworCVBHX1JFVFVS Tl9GTE9BVDgocG9pbnRfZHQoJmxzZWctPnBbMF0sICZsc2VnLT5wWzFdLCBOVUxMKSk7CiB9CiAK IC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpAQCAtMjI1OCw4ICsyMjY5LDggQEAgbHNlZ19sdChQR19GVU5DVElPTl9BUkdTKQogCUxT RUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dFVEFS R19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGx0KHBvaW50X2R0KCZsMS0+cFswXSwg JmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOworCVBH X1JFVFVSTl9CT09MKEZQbHQocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIE5VTEwpLAor CQkJCQkJcG9pbnRfZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0sIE5VTEwpKSk7CiB9CiAKIERhdHVt CkBAIC0yMjY4LDggKzIyNzksOCBAQCBsc2VnX2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTFNFRwkg ICAqbDEgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCUxTRUcJICAgKmwyID0gUEdfR0VUQVJHX0xT RUdfUCgxKTsKIAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEt PnBbMV0pLAotCQkJCQkJcG9pbnRfZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0pKSk7CisJUEdfUkVU VVJOX0JPT0woRlBsZShwb2ludF9kdCgmbDEtPnBbMF0sICZsMS0+cFsxXSwgTlVMTCksCisJCQkJ CQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgTlVMTCkpKTsKIH0KIAogRGF0dW0KQEAg LTIyNzgsOCArMjI4OSw4IEBAIGxzZWdfZ3QoUEdfRlVOQ1RJT05fQVJHUykKIAlMU0VHCSAgICps MSA9IFBHX0dFVEFSR19MU0VHX1AoMCk7CiAJTFNFRwkgICAqbDIgPSBQR19HRVRBUkdfTFNFR19Q KDEpOwogCi0JUEdfUkVUVVJOX0JPT0woRlBndChwb2ludF9kdCgmbDEtPnBbMF0sICZsMS0+cFsx XSksCi0JCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSkpKTsKKwlQR19SRVRVUk5f Qk9PTChGUGd0KHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdLCBOVUxMKSwKKwkJCQkJCXBv aW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdLCBOVUxMKSkpOwogfQogCiBEYXR1bQpAQCAtMjI4 OCw4ICsyMjk5LDggQEAgbHNlZ19nZShQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0g UEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7 CiAKLQlQR19SRVRVUk5fQk9PTChGUGdlKHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwK LQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09M KEZQZ2UocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIE5VTEwpLAorCQkJCQkJcG9pbnRf ZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0sIE5VTEwpKSk7CiB9CiAKIApAQCAtMjc0Myw3ICsyNzU0 LDcgQEAgbGluZV9jbG9zZXB0X3BvaW50KFBvaW50ICpyZXN1bHQsIExJTkUgKmxpbmUsIFBvaW50 ICpwb2ludCkKIAlpZiAocmVzdWx0ICE9IE5VTEwpCiAJCSpyZXN1bHQgPSBjbG9zZXB0OwogCi0J cmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwb2ludCk7CisJcmV0dXJuIHBvaW50X2R0KCZjbG9z ZXB0LCBwb2ludCwgTlVMTCk7CiB9CiAKIERhdHVtCkBAIC0yNzg0LDcgKzI3OTUsNyBAQCBsc2Vn X2Nsb3NlcHRfcG9pbnQoUG9pbnQgKnJlc3VsdCwgTFNFRyAqbHNlZywgUG9pbnQgKnB0KQogCWlm IChyZXN1bHQgIT0gTlVMTCkKIAkJKnJlc3VsdCA9IGNsb3NlcHQ7CiAKLQlyZXR1cm4gcG9pbnRf ZHQoJmNsb3NlcHQsIHB0KTsKKwlyZXR1cm4gcG9pbnRfZHQoJmNsb3NlcHQsIHB0LCBOVUxMKTsK IH0KIAogRGF0dW0KQEAgLTMxMDgsOSArMzExOSw5IEBAIG9uX3BsKFBHX0ZVTkNUSU9OX0FSR1Mp CiBzdGF0aWMgYm9vbAogbHNlZ19jb250YWluX3BvaW50KExTRUcgKmxzZWcsIFBvaW50ICpwdCkK IHsKLQlyZXR1cm4gRlBlcShwb2ludF9kdChwdCwgJmxzZWctPnBbMF0pICsKLQkJCQlwb2ludF9k dChwdCwgJmxzZWctPnBbMV0pLAotCQkJCXBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsx XSkpOworCXJldHVybiBGUGVxKHBvaW50X2R0KHB0LCAmbHNlZy0+cFswXSwgTlVMTCkgKworCQkJ CXBvaW50X2R0KHB0LCAmbHNlZy0+cFsxXSwgTlVMTCksCisJCQkJcG9pbnRfZHQoJmxzZWctPnBb MF0sICZsc2VnLT5wWzFdLCBOVUxMKSk7CiB9CiAKIERhdHVtCkBAIC0zMTc2LDExICszMTg3LDEx IEBAIG9uX3BwYXRoKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKCFwYXRoLT5jbG9zZWQpCiAJewog CQluID0gcGF0aC0+bnB0cyAtIDE7Ci0JCWEgPSBwb2ludF9kdChwdCwgJnBhdGgtPnBbMF0pOwor CQlhID0gcG9pbnRfZHQocHQsICZwYXRoLT5wWzBdLCBOVUxMKTsKIAkJZm9yIChpID0gMDsgaSA8 IG47IGkrKykKIAkJewotCQkJYiA9IHBvaW50X2R0KHB0LCAmcGF0aC0+cFtpICsgMV0pOwotCQkJ aWYgKEZQZXEoZmxvYXQ4X3BsKGEsIGIpLCBwb2ludF9kdCgmcGF0aC0+cFtpXSwgJnBhdGgtPnBb aSArIDFdKSkpCisJCQliID0gcG9pbnRfZHQocHQsICZwYXRoLT5wW2kgKyAxXSwgTlVMTCk7CisJ CQlpZiAoRlBlcShmbG9hdDhfcGwoYSwgYiksIHBvaW50X2R0KCZwYXRoLT5wW2ldLCAmcGF0aC0+ cFtpICsgMV0sIE5VTEwpKSkKIAkJCQlQR19SRVRVUk5fQk9PTCh0cnVlKTsKIAkJCWEgPSBiOwog CQl9CkBAIC00NzY2LDcgKzQ3NzcsNyBAQCBjaXJjbGVfb3ZlcmxhcChQR19GVU5DVElPTl9BUkdT KQogCUNJUkNMRQkgICAqY2lyY2xlMSA9IFBHX0dFVEFSR19DSVJDTEVfUCgwKTsKIAlDSVJDTEUJ ICAgKmNpcmNsZTIgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChG UGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCVBHX1JF VFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNlbnRl ciwgTlVMTCksCiAJCQkJCQlmbG9hdDhfcGwoY2lyY2xlMS0+cmFkaXVzLCBjaXJjbGUyLT5yYWRp dXMpKSk7CiB9CiAKQEAgLTQ4MjgsNyArNDgzOSw3IEBAIGNpcmNsZV9jb250YWluZWQoUEdfRlVO Q1RJT05fQVJHUykKIAlDSVJDTEUJICAgKmNpcmNsZTEgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMCk7 CiAJQ0lSQ0xFCSAgICpjaXJjbGUyID0gUEdfR0VUQVJHX0NJUkNMRV9QKDEpOwogCi0JUEdfUkVU VVJOX0JPT0woRlBsZShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVy KSwKKwlQR19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJj bGUyLT5jZW50ZXIsIE5VTEwpLAogCQkJCQkJZmxvYXQ4X21pKGNpcmNsZTItPnJhZGl1cywgY2ly Y2xlMS0+cmFkaXVzKSkpOwogfQogCkBAIC00ODQwLDcgKzQ4NTEsNyBAQCBjaXJjbGVfY29udGFp bihQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMSA9IFBHX0dFVEFSR19DSVJD TEVfUCgwKTsKIAlDSVJDTEUJICAgKmNpcmNsZTIgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMSk7CiAK LQlQR19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUy LT5jZW50ZXIpLAorCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRl ciwgJmNpcmNsZTItPmNlbnRlciwgTlVMTCksCiAJCQkJCQlmbG9hdDhfbWkoY2lyY2xlMS0+cmFk aXVzLCBjaXJjbGUyLT5yYWRpdXMpKSk7CiB9CiAKQEAgLTUwNjksNyArNTA4MCw3IEBAIGNpcmNs ZV9kaXN0YW5jZShQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBHX0dF VEFSR19DSVJDTEVfUCgxKTsKIAlmbG9hdDgJCXJlc3VsdDsKIAotCXJlc3VsdCA9IGZsb2F0OF9t aShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyKSwKKwlyZXN1bHQg PSBmbG9hdDhfbWkocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNlbnRlciwg TlVMTCksCiAJCQkJCSAgIGZsb2F0OF9wbChjaXJjbGUxLT5yYWRpdXMsIGNpcmNsZTItPnJhZGl1 cykpOwogCWlmIChyZXN1bHQgPCAwLjApCiAJCXJlc3VsdCA9IDAuMDsKQEAgLTUwODUsNyArNTA5 Niw3IEBAIGNpcmNsZV9jb250YWluX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJUG9pbnQJICAgKnBv aW50ID0gUEdfR0VUQVJHX1BPSU5UX1AoMSk7CiAJZmxvYXQ4CQlkOwogCi0JZCA9IHBvaW50X2R0 KCZjaXJjbGUtPmNlbnRlciwgcG9pbnQpOworCWQgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIs IHBvaW50LCBOVUxMKTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNpcmNsZS0+cmFkaXVzKTsKIH0K IApAQCAtNTA5Nyw3ICs1MTA4LDcgQEAgcHRfY29udGFpbmVkX2NpcmNsZShQR19GVU5DVElPTl9B UkdTKQogCUNJUkNMRQkgICAqY2lyY2xlID0gUEdfR0VUQVJHX0NJUkNMRV9QKDEpOwogCWZsb2F0 OAkJZDsKIAotCWQgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsIHBvaW50KTsKKwlkID0gcG9p bnRfZHQoJmNpcmNsZS0+Y2VudGVyLCBwb2ludCwgTlVMTCk7CiAJUEdfUkVUVVJOX0JPT0woZCA8 PSBjaXJjbGUtPnJhZGl1cyk7CiB9CiAKQEAgLTUxMTIsNyArNTEyMyw3IEBAIGRpc3RfcGMoUEdf RlVOQ1RJT05fQVJHUykKIAlDSVJDTEUJICAgKmNpcmNsZSA9IFBHX0dFVEFSR19DSVJDTEVfUCgx KTsKIAlmbG9hdDgJCXJlc3VsdDsKIAotCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9kdChwb2lu dCwgJmNpcmNsZS0+Y2VudGVyKSwKKwlyZXN1bHQgPSBmbG9hdDhfbWkocG9pbnRfZHQocG9pbnQs ICZjaXJjbGUtPmNlbnRlciwgTlVMTCksCiAJCQkJCSAgIGNpcmNsZS0+cmFkaXVzKTsKIAlpZiAo cmVzdWx0IDwgMC4wKQogCQlyZXN1bHQgPSAwLjA7CkBAIC01MTMwLDcgKzUxNDEsNyBAQCBkaXN0 X2Nwb2ludChQR19GVU5DVElPTl9BUkdTKQogCVBvaW50CSAgICpwb2ludCA9IFBHX0dFVEFSR19Q T0lOVF9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVzdWx0ID0gZmxvYXQ4X21pKHBvaW50 X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIpLCBjaXJjbGUtPnJhZGl1cyk7CisJcmVzdWx0ID0g ZmxvYXQ4X21pKHBvaW50X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIsIE5VTEwpLCBjaXJjbGUt PnJhZGl1cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJcmVzdWx0ID0gMC4wOwogCkBAIC01MjE1 LDcgKzUyMjYsNyBAQCBib3hfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJY2lyY2xlLT5jZW50 ZXIueCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gtPmxvdy54KSwgMi4w KTsKIAljaXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLnks IGJveC0+bG93LnkpLCAyLjApOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xl LT5jZW50ZXIsICZib3gtPmhpZ2gpOworCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNs ZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBOVUxMKTsKIAogCVBHX1JFVFVSTl9DSVJDTEVfUChjaXJj bGUpOwogfQpAQCAtNTI5OSw3ICs1MzEwLDcgQEAgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1 bHQsIFBPTFlHT04gKnBvbHkpCiAKIAlmb3IgKGkgPSAwOyBpIDwgcG9seS0+bnB0czsgaSsrKQog CQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9wbChyZXN1bHQtPnJhZGl1cywKLQkJCQkJCQkJICAg cG9pbnRfZHQoJnBvbHktPnBbaV0sICZyZXN1bHQtPmNlbnRlcikpOworCQkJCQkJCQkgICBwb2lu dF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBOVUxMKSk7CiAJcmVzdWx0LT5yYWRp dXMgPSBmbG9hdDhfZGl2KHJlc3VsdC0+cmFkaXVzLCBwb2x5LT5ucHRzKTsKIH0KIAotLSAKMi4z NC4xCgo= --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0019-introduce-float8-safe-function.patch" Content-Disposition: attachment; filename="v16-0019-introduce-float8-safe-function.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq305 RnJvbSBiNzhjN2RiZDRhMzBmOWY0ZWRmZWYzODRjMDI4NjdhZDNiOTE0NzVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTAgRGVjIDIwMjUgMTE6NTU6NDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAxOS8yM10gaW50cm9kdWNlIGZsb2F0OCBzYWZlIGZ1bmN0aW9uCgp0aGlzIHBhdGNoIGludHJv ZHVjZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uOgpmbG9hdDhfcGxfc2FmZQpmbG9hdDhfbWlfc2Fm ZQpmbG9hdDhfbXVsX3NhZmUKZmxvYXQ4X2Rpdl9zYWZlCgpyZWZhY3RvcmluZyBleGlzdGluZyBm dW5jdGlvbiBpcyBiZSB0b28gaW52YXNpdmUuICB0aHVzIGFkZCB0aGVzZSBuZXcgZnVuY3Rpb25z LgpJdCdzIGNsb3NlIHRvIGV4aXN0aW5nIG5vbi1zYWZlIHZlcnNpb24gZnVuY3Rpb25zLgoKZGlz Y3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4 TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvaW5jbHVkZS91 dGlscy9mbG9hdC5oIHwgNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2Zs b2F0LmgKaW5kZXggMWQwY2IwMjZkNGUuLmY0Njg2MWFiNWMzIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS91dGlscy9mbG9hdC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2Zsb2F0LmgKQEAgLTEw OSwxNiArMTA5LDI0IEBAIGZsb2F0NF9wbChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0 IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0 OF9wbF9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5v ZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJlc3VsdCA9IHZhbDEgKyB2 YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlz aW5mKHZhbDIpKQorCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKKwkJcmV0 dXJuIDAuMDsKKwl9CisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDgK IGZsb2F0OF9wbChjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiB7Ci0JZmxv YXQ4CQlyZXN1bHQ7Ci0KLQlyZXN1bHQgPSB2YWwxICsgdmFsMjsKLQlpZiAodW5saWtlbHkoaXNp bmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoTlVMTCk7Ci0KLQlyZXR1cm4gcmVzdWx0OworCXJldHVybiBmbG9hdDhfcGxf c2FmZSh2YWwxLCB2YWwyLCBOVUxMKTs7CiB9CiAKIHN0YXRpYyBpbmxpbmUgZmxvYXQ0CkBAIC0x MzMsMTYgKzE0MSwyNCBAQCBmbG9hdDRfbWkoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0 NCB2YWwyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9h dDhfbWlfc2FmZShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIsIHN0cnVjdCBO b2RlICplc2NvbnRleHQpCit7CisJZmxvYXQ4CQlyZXN1bHQ7CisKKwlyZXN1bHQgPSB2YWwxIC0g dmFsMjsKKwlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFp c2luZih2YWwyKSkKKwl7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKGVzY29udGV4dCk7CisJCXJl dHVybiAwLjA7CisJfQorCXJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4 CiBmbG9hdDhfbWkoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQogewotCWZs b2F0OAkJcmVzdWx0OwotCi0JcmVzdWx0ID0gdmFsMSAtIHZhbDI7Ci0JaWYgKHVubGlrZWx5KGlz aW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwotCi0JcmV0dXJuIHJlc3VsdDsKKwlyZXR1cm4gZmxvYXQ4X21p X3NhZmUodmFsMSwgdmFsMiwgTlVMTCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgZmxvYXQ0CkBAIC0x NjAsMTkgKzE3NiwzMyBAQCBmbG9hdDRfbXVsKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9h dDQgdmFsMikKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDgKLWZsb2F0OF9tdWwoY29uc3QgZmxv YXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQorZmxvYXQ4X211bF9zYWZlKGNvbnN0IGZsb2F0 OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5vZGUgKmVzY29udGV4dCkKIHsKIAlm bG9hdDgJCXJlc3VsdDsKIAogCXJlc3VsdCA9IHZhbDEgKiB2YWwyOwogCWlmICh1bmxpa2VseShp c2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcihOVUxMKTsKKwl7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKGVzY29udGV4 dCk7CisJCXJldHVybiAwLjA7CisJfQorCiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYm IHZhbDEgIT0gMC4wICYmIHZhbDIgIT0gMC4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVM TCk7CisJeworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKKwkJcmV0dXJuIDAu MDsKKwl9CiAKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0OAorZmxv YXQ4X211bChjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCit7CisJcmV0dXJu IGZsb2F0OF9tdWxfc2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKK30KKworCiBzdGF0aWMgaW5saW5l IGZsb2F0NAogZmxvYXQ0X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIp CiB7CkBAIC0xOTAsMjEgKzIyMCwyOCBAQCBmbG9hdDRfZGl2KGNvbnN0IGZsb2F0NCB2YWwxLCBj b25zdCBmbG9hdDQgdmFsMikKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDgKLWZsb2F0OF9kaXYo Y29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQorZmxvYXQ4X2Rpdl9zYWZlKGNv bnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5vZGUgKmVzY29udGV4 dCkKIHsKIAlmbG9hdDgJCXJlc3VsdDsKIAogCWlmICh1bmxpa2VseSh2YWwyID09IDAuMCkgJiYg IWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKKwkJZmxvYXRf emVyb19kaXZpZGVfZXJyb3IoZXNjb250ZXh0KTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlp ZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVy Zmxvd19lcnJvcihOVUxMKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKIAlp ZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgIWlzaW5mKHZhbDIp KQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJv cihlc2NvbnRleHQpOwogCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9h dDgKK2Zsb2F0OF9kaXYoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQorewor CXJldHVybiBmbG9hdDhfZGl2X3NhZmUodmFsMSwgdmFsMiwgTlVMTCk7Cit9CisKKwogLyoKICAq IFJvdXRpbmVzIGZvciBOYU4tYXdhcmUgY29tcGFyaXNvbnMKICAqCi0tIAoyLjM0LjEKCg== --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Disposition: attachment; filename="v16-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq326 RnJvbSBjOTY4ZDBjMDZlYzhhZWZiODc5MWQ5MzczOWQzYjIyYmY5ZjgwM2ExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgOSBEZWMgMjAyNSAxNDozNjozOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE2 IDE4LzIzXSByZWZhY3RvcgogZmxvYXRfb3ZlcmZsb3dfZXJyb3IsZmxvYXRfdW5kZXJmbG93X2Vy cm9yLGZsb2F0X3plcm9fZGl2aWRlX2Vycm9yCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5l cy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBt YWlsLmdtYWlsLmNvbQotLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYyB8ICAg MiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jIHwgICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvZmxvYXQuYyAgICAgfCAxMDQgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oICAgICAgICAgfCAgMzQgKysrKystLS0t LQogNCBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA3MiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMgYi9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKaW5kZXggZDljODU5ODM1ZGEuLmE3MzI1YTdiYjI5IDEw MDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0NC5jCkBAIC0xMDEsNyArMTAxLDcgQEAgZmxvYXQ0X2Rp c3QoUEdfRlVOQ1RJT05fQVJHUykKIAogCXIgPSBhIC0gYjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cikpICYmICFpc2luZihhKSAmJiAhaXNpbmYoYikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUNChmYWJz ZihyKSk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMg Yi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMKaW5kZXggNTY3YmVlZGUxNzguLjdj OTliODRkZTM1IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMK KysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jCkBAIC03OSw3ICs3OSw3IEBA IGdidF9mbG9hdDhfZGlzdChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAq ZmxpbmZvKQogCiAJciA9IGFyZzEgLSBhcmcyOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYg IWlzaW5mKGFyZzEpICYmICFpc2luZihhcmcyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsK KwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJcmV0dXJuIGZhYnMocik7CiB9CiAKQEAg LTEwOSw3ICsxMDksNyBAQCBmbG9hdDhfZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJciA9IGEg LSBiOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYgIWlzaW5mKGEpICYmICFpc2luZihiKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAKIAlQR19SRVRVUk5fRkxPQVQ4KGZhYnMocikpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2Zsb2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRl eCA1NWM3MDMwYmE4MS4uMjcxMGU0MmY1YmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC04Mywy NSArODMsMjUgQEAgc3RhdGljIHZvaWQgaW5pdF9kZWdyZWVfY29uc3RhbnRzKHZvaWQpOwogICog VGhpcyBkb2VzIG1lYW4gdGhhdCB5b3UgZG9uJ3QgZ2V0IGEgdXNlZnVsIGVycm9yIGxvY2F0aW9u IGluZGljYXRvci4KICAqLwogcGdfbm9pbmxpbmUgdm9pZAotZmxvYXRfb3ZlcmZsb3dfZXJyb3Io dm9pZCkKK2Zsb2F0X292ZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7Ci0J ZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUgb3V0IG9mIHJh bmdlOiBvdmVyZmxvdyIpKSk7CiB9CiAKIHBnX25vaW5saW5lIHZvaWQKLWZsb2F0X3VuZGVyZmxv d19lcnJvcih2b2lkKQorZmxvYXRfdW5kZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRl eHQpCiB7Ci0JZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2Rl KEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUg b3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSkpOwogfQogCiBwZ19ub2lubGluZSB2b2lkCi1mbG9h dF96ZXJvX2RpdmlkZV9lcnJvcih2b2lkKQorZmxvYXRfemVyb19kaXZpZGVfZXJyb3Ioc3RydWN0 IE5vZGUgKmVzY29udGV4dCkKIHsKLQllcmVwb3J0KEVSUk9SLAorCWVycnNhdmUoZXNjb250ZXh0 LAogCQkJKGVycmNvZGUoRVJSQ09ERV9ESVZJU0lPTl9CWV9aRVJPKSwKIAkJCSBlcnJtc2coImRp dmlzaW9uIGJ5IHplcm8iKSkpOwogfQpAQCAtMTQ2MCw5ICsxNDYwLDkgQEAgZHNxcnQoUEdfRlVO Q1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHNxcnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjAp ICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAt MTQ3OSw5ICsxNDc5LDkgQEAgZGNicnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IGNi cnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTYxNywyNCArMTYxNywyNCBAQCBkcG93KFBH X0ZVTkNUSU9OX0FSR1MpCiAJCQkJaWYgKGFic3ggPT0gMS4wKQogCQkJCQlyZXN1bHQgPSAxLjA7 CiAJCQkJZWxzZSBpZiAoYXJnMiA+PSAwLjAgPyAoYWJzeCA+IDEuMCkgOiAoYWJzeCA8IDEuMCkp Ci0JCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCQkJCWVsc2UKLQkJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJCX0KIAkJfQogCQllbHNlIGlmIChlcnJubyA9 PSBFUkFOR0UpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0gMC4wKQotCQkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwp OwogCQl9CiAJCWVsc2UKIAkJewogCQkJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJCQlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAwLjApCi0JCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CQl9CiAJfQogCkBAIC0xNjc0LDE0ICsxNjc0LDE0IEBAIGRleHAoUEdfRlVOQ1RJT05fQVJHUykK IAkJaWYgKHVubGlrZWx5KGVycm5vID09IEVSQU5HRSkpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0g MC4wKQotCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCQl9CiAJCWVsc2UgaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKE5VTEwpOwogCQllbHNlIGlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSkKLQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CX0KIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKQEAgLTE3MTIsOSArMTcxMiw5IEBAIGRs b2cxKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBsb2coYXJnMSk7CiAJaWYgKHVubGlr ZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3Vs dCA9PSAwLjApICYmIGFyZzEgIT0gMS4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQp OwogfQpAQCAtMTc0NSw5ICsxNzQ1LDkgQEAgZGxvZzEwKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAly ZXN1bHQgPSBsb2cxMChhcmcxKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlz aW5mKGFyZzEpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAxLjAp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVM TCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xNzc4LDcgKzE3NzgsNyBA QCBkYWNvcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gYWNvcyhhcmcxKTsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZs b2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwog fQpAQCAtMTgwOSw3ICsxODA5LDcgQEAgZGFzaW4oUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3Vs dCA9IGFzaW4oYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JF VFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE4MzUsNyArMTgzNSw3IEBAIGRhdGFuKFBHX0ZV TkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0gYXRhbihhcmcxKTsKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTg2 MSw3ICsxODYxLDcgQEAgZGF0YW4yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0g YXRhbjIoYXJnMSwgYXJnMik7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9h dF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBH X1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE5MDIsNyArMTkwMiw3IEBAIGRjb3MoUEdf RlVOQ1RJT05fQVJHUykKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnB1dCBpcyBvdXQgb2YgcmFuZ2UiKSkpOwogCWlmICh1 bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9 CkBAIC0xOTU3LDcgKzE5NTcsNyBAQCBkc2luKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW5w dXQgaXMgb3V0IG9mIHJhbmdlIikpKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0J CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwog CiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjEzNyw3ICsyMTM3LDcgQEAgZGFj b3NkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IDkwLjAgKyBhc2luZF9xMSgtYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjE3NCw3ICsyMTc0LDcgQEAgZGFzaW5kKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCXJlc3VsdCA9IC1hc2luZF9xMSgtYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVz dWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjIwNiw3ICsyMjA2 LDcgQEAgZGF0YW5kKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKGF0YW5fYXJnMSAvIGF0 YW5fMV8wKSAqIDQ1LjA7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjI0Miw3ICsyMjQyLDcgQEAgZGF0YW4yZChQ R19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IChhdGFuMl9hcmcxX2FyZzIgLyBhdGFuXzFfMCkg KiA0NS4wOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9G TE9BVDgocmVzdWx0KTsKIH0KQEAgLTIzNjUsNyArMjM2NSw3IEBAIGRjb3NkKFBHX0ZVTkNUSU9O X0FSR1MpCiAJcmVzdWx0ID0gc2lnbiAqIGNvc2RfcTEoYXJnMSk7CiAKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjQ4 Nyw3ICsyNDg3LDcgQEAgZHNpbmQoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBzaWduICog c2luZF9xMShhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19S RVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNjQ1LDcgKzI2NDUsNyBAQCBkY29zaChQR19G VU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X2luZmluaXR5KCk7CiAKIAlpZiAo dW5saWtlbHkocmVzdWx0ID09IDAuMCkpCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlm bG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7 CiB9CkBAIC0yNjY1LDcgKzI2NjUsNyBAQCBkdGFuaChQR19GVU5DVElPTl9BUkdTKQogCXJlc3Vs dCA9IHRhbmgoYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjc2NSw3ICsyNzY1LDcgQEAgZGVyZihQR19G VU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZihhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNzg1LDcg KzI3ODUsNyBAQCBkZXJmYyhQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZmMoYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjgxNCw3ICsyODE0LDcgQEAgZGdhbW1hKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCS8qIFBlciBQT1NJWCwgYW4gaW5wdXQgb2YgLUluZiBjYXVzZXMgYSBkb21haW4gZXJyb3Ig Ki8KIAkJaWYgKGFyZzEgPCAwKQogCQl7Ci0JCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X25hbigp OwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCiAJCX0KIAkJZWxzZQpAQCAtMjgzNiwxMiArMjgz NiwxMiBAQCBkZ2FtbWEoUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGVycm5vICE9IDAgfHwgaXNp bmYocmVzdWx0KSB8fCBpc25hbihyZXN1bHQpKQogCQl7CiAJCQlpZiAocmVzdWx0ICE9IDAuMCkK LQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCQkJZWxzZQotCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJfQogCQllbHNlIGlmIChyZXN1bHQgPT0gMC4wKQotCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJfQogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwpAQCAtMjg3Myw3ICsyODczLDcgQEAg ZGxnYW1tYShQR19GVU5DVElPTl9BUkdTKQogCSAqIHRvIHJlcG9ydCBvdmVyZmxvdywgYnV0IGl0 IHNob3VsZCBuZXZlciB1bmRlcmZsb3cuCiAJICovCiAJaWYgKGVycm5vID09IEVSQU5HRSB8fCAo aXNpbmYocmVzdWx0KSAmJiAhaXNpbmYoYXJnMSkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVz dWx0KTsKIH0KQEAgLTMwMTMsNyArMzAxMyw3IEBAIGZsb2F0OF9jb21iaW5lKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCXRtcCA9IFN4MSAvIE4xIC0gU3gyIC8gTjI7CiAJCVN4eCA9IFN4eDEgKyBTeHgy ICsgTjEgKiBOMiAqIHRtcCAqIHRtcCAvIE47CiAJCWlmICh1bmxpa2VseShpc2luZihTeHgpKSAm JiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3Io KTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCX0KIAogCS8qCkBAIC0zMDgwLDcg KzMwODAsNyBAQCBmbG9hdDhfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGlzaW5mKFN4 KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVzWzFdKSAmJiAh aXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigpOwogCQl9CkBA IC0zMTYzLDcgKzMxNjMsNyBAQCBmbG9hdDRfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYg KGlzaW5mKFN4KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVz WzFdKSAmJiAhaXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigp OwogCQl9CkBAIC0zNDMwLDcgKzM0MzAsNyBAQCBmbG9hdDhfcmVncl9hY2N1bShQR19GVU5DVElP Tl9BUkdTKQogCQkJCShpc2luZihTeHkpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1sxXSkg JiYgIWlzaW5mKG5ld3ZhbFgpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1szXSkgJiYgIWlz aW5mKG5ld3ZhbFkpKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlpZiAoaXNpbmYoU3h4KSkKIAkJCQlTeHggPSBnZXRf ZmxvYXQ4X25hbigpOwpAQCAtMzYwMywxNSArMzYwMywxNSBAQCBmbG9hdDhfcmVncl9jb21iaW5l KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXRtcDEgPSBTeDEgLyBOMSAtIFN4MiAvIE4yOwogCQlTeHgg PSBTeHgxICsgU3h4MiArIE4xICogTjIgKiB0bXAxICogdG1wMSAvIE47CiAJCWlmICh1bmxpa2Vs eShpc2luZihTeHgpKSAmJiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlTeSA9 IGZsb2F0OF9wbChTeTEsIFN5Mik7CiAJCXRtcDIgPSBTeTEgLyBOMSAtIFN5MiAvIE4yOwogCQlT eXkgPSBTeXkxICsgU3l5MiArIE4xICogTjIgKiB0bXAyICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeXkpKSAmJiAhaXNpbmYoU3l5MSkgJiYgIWlzaW5mKFN5eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlT eHkgPSBTeHkxICsgU3h5MiArIE4xICogTjIgKiB0bXAxICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeHkpKSAmJiAhaXNpbmYoU3h5MSkgJiYgIWlzaW5mKFN4eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlp ZiAoZmxvYXQ4X2VxKEN4MSwgQ3gyKSkKIAkJCUN4ID0gQ3gxOwogCQllbHNlCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApp bmRleCBmYzJhOWNmNjQ3NS4uMWQwY2IwMjZkNGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMzAsOSArMzAs OSBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IGV4dHJhX2Zsb2F0X2RpZ2l0czsKIC8qCiAgKiBV dGlsaXR5IGZ1bmN0aW9ucyBpbiBmbG9hdC5jCiAgKi8KLXBnX25vcmV0dXJuIGV4dGVybiB2b2lk IGZsb2F0X292ZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxv YXRfdW5kZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxvYXRf emVyb19kaXZpZGVfZXJyb3Iodm9pZCk7CitleHRlcm4gdm9pZCBmbG9hdF9vdmVyZmxvd19lcnJv cihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3VuZGVyZmxvd19l cnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3plcm9fZGl2 aWRlX2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIGludAlpc19pbmZpbml0 ZShmbG9hdDggdmFsKTsKIGV4dGVybiBmbG9hdDggZmxvYXQ4aW5faW50ZXJuYWwoY2hhciAqbnVt LCBjaGFyICoqZW5kcHRyX3AsCiAJCQkJCQkJCWNvbnN0IGNoYXIgKnR5cGVfbmFtZSwgY29uc3Qg Y2hhciAqb3JpZ19zdHJpbmcsCkBAIC0xMDQsNyArMTA0LDcgQEAgZmxvYXQ0X3BsKGNvbnN0IGZs b2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMTYsNyArMTE2LDcgQEAgZmxvYXQ4X3Bs KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEg KyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYg IWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxv d19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMjgsNyArMTI4LDcgQEAg ZmxvYXQ0X21pKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3Vs dCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYo dmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9h dF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xNDAsNyAr MTQwLDcgQEAgZmxvYXQ4X21pKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikK IAogCXJlc3VsdCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAm JiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xNTIsOSArMTUyLDkgQEAgZmxvYXQ0X211bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxv YXQ0IHZhbDIpCiAKIAlyZXN1bHQgPSB2YWwxICogdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZs b3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5 KHJlc3VsdCA9PSAwLjBmKSAmJiB2YWwxICE9IDAuMGYgJiYgdmFsMiAhPSAwLjBmKQotCQlmbG9h dF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJ cmV0dXJuIHJlc3VsdDsKIH0KQEAgLTE2Niw5ICsxNjYsOSBAQCBmbG9hdDhfbXVsKGNvbnN0IGZs b2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKiB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgdmFs MiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTc5LDEyICsxNzksMTIgQEAg ZmxvYXQ0X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJZmxvYXQ0 CQlyZXN1bHQ7CiAKIAlpZiAodW5saWtlbHkodmFsMiA9PSAwLjBmKSAmJiAhaXNuYW4odmFsMSkp Ci0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKCk7CisJCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9y KE5VTEwpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1 bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0 X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wZikgJiYg dmFsMSAhPSAwLjBmICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xOTUsMTIgKzE5NSwxMiBAQCBmbG9hdDhfZGl2KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBm bG9hdDggdmFsMikKIAlmbG9hdDgJCXJlc3VsdDsKIAogCWlmICh1bmxpa2VseSh2YWwyID09IDAu MCkgJiYgIWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcigpOworCQlmbG9h dF96ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHko cmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJcmV0 dXJuIHJlc3VsdDsKIH0KLS0gCjIuMzQuMQoK --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq347 RnJvbSAyZGNjNTZiMGU1YWMxMmFlNGIwN2Q0MjFjMGVkODUxNTU2OGIwNmU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTQ6MjY6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAxNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBqc29uYiB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdqc29uYic6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGpzb25iICAgICAgfCBib29sZWFuICAgICAgICAgIHwgICAgIDM1NTYgfCBlICAgICAgICAgICB8 IGYgICAgICAgICAgfCBqc29uYl9ib29sICAgIHwgYm9vbAoganNvbmIgICAgICB8IG51bWVyaWMg ICAgICAgICAgfCAgICAgMzQ0OSB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX251 bWVyaWMgfCBudW1lcmljCiBqc29uYiAgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAzNDUw IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwganNvbmJfaW50MiAgICB8IGludDIKIGpzb25i ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDM0NTEgfCBlICAgICAgICAgICB8IGYgICAg ICAgICAgfCBqc29uYl9pbnQ0ICAgIHwgaW50NAoganNvbmIgICAgICB8IGJpZ2ludCAgICAgICAg ICAgfCAgICAgMzQ1MiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDggICAg fCBpbnQ4CiBqc29uYiAgICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAzNDUzIHwgZSAgICAg ICAgICAgfCBmICAgICAgICAgIHwganNvbmJfZmxvYXQ0ICB8IGZsb2F0NAoganNvbmIgICAgICB8 IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgMjU4MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGpzb25iX2Zsb2F0OCAgfCBmbG9hdDgKKDcgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1Nmlf NGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMgfCA3 NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4 IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9qc29uYi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMKaW5kZXgg YzRmZTZlMDBkY2QuLjE2MDAyMDRmYTRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYwpAQCAtMTgxNSw3 ICsxODE1LDcgQEAgSnNvbmJFeHRyYWN0U2NhbGFyKEpzb25iQ29udGFpbmVyICpqYmMsIEpzb25i VmFsdWUgKnJlcykKICAqIEVtaXQgY29ycmVjdCwgdHJhbnNsYXRhYmxlIGNhc3QgZXJyb3IgbWVz c2FnZQogICovCiBzdGF0aWMgdm9pZAotY2Fubm90Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZUeXBl IHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUpCitjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpi dlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0 YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0xODM2LDcgKzE4MzYsNyBAQCBjYW5ub3RDYXN0SnNv bmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAo aSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5 cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJy bXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkpKTsKIApAQCAtMTg1MSw3ICsxODUxLDEwIEBA IGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJHUykKIAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpz b25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUo di50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi Ym9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJ aWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE4NjAsNyArMTg2MywxMCBAQCBqc29uYl9i b29sKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIik7CisJeworCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVU VVJOX05VTEwoKTsKKwl9CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4sIDApOwogCkBAIC0xODc1LDcg KzE4ODEsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJl dFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNh bm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRV Uk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7CkBAIC0xODg0LDcg KzE4OTMsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2 LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVt ZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZh bC5udW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJvZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNv cHkgdG8KQEAgLTE5MDUsNyArMTkxNywxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50Iik7CisJewor CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4 dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQog CXsKQEAgLTE5MTQsNyArMTkyOSwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ fQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2 LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi c21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAog CXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDIsCiAJCQkJCQkJCSAg IE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0xOTMyLDcgKzE5NTAsMTAgQEAg anNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICgh SnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1 ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUs ICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMTk0MSw3ICsxOTYyLDEwIEBAIGpzb25i X2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMp Ci0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOworCQlQ R19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShu dW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7 CkBAIC0xOTU5LDcgKzE5ODMsMTAgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdTKQogCURh dHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYp KQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBH X1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5 NjgsNyArMTk5NSwxMCBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYg KHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi aWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBE aXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERh dHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTE5ODYsNyArMjAxNiwxMCBAQCBqc29uYl9mbG9hdDQo UEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFj dFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi cmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5m by0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBq YnZOdWxsKQogCXsKQEAgLTE5OTUsNyArMjAyOCwxMCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJ T05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0K IAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0NCwKIAkJCQkJ CQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIwMTMsNyArMjA0OSwx MCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAK IAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIpOworCXsKKwkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAg LTIwMjIsNyArMjA2MSwxMCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAK IAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVM TCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0 OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKLS0gCjIuMzQu MQoK --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq358 RnJvbSBkZmUwM2EyZDkwOTkwNWMwYTE1ZTExYjJiYTIzNTYyZjg5OGQzOWZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjoxNDozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE2 IDE2LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBj LmNhc3RmdW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBlID0n dGltZXN0YW1wJzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICAg ICAgIGNhc3Rzb3VyY2UgICAgICAgICAgfCAgICAgICAgIGNhc3R0YXJnZXQgICAgICAgICAgfCBj YXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgICBwcm9zcmMgICAgICAg ICB8ICAgcHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIHRpbWVzdGFtcCB3aXRob3V0IHRp bWUgem9uZSB8IGRhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAyMDI5IHwgYSAgICAg ICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX2RhdGUgICAgICAgIHwgZGF0ZQogdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSAgICAgIHwgICAg IDEzMTYgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXBfdGltZSAgICAgICAg fCB0aW1lCiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1l IHpvbmUgICAgfCAgICAgMjAyOCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFt cF90aW1lc3RhbXB0eiB8IHRpbWVzdGFtcHR6CiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCAgICAgMTk2MSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHRpbWVzdGFtcF9zY2FsZSAgICAgICB8IHRpbWVzdGFtcAooNCByb3dzKQoK ZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJq UWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAgNyArKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvdGltZXN0YW1wLmMgfCAxMCArKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggMTkxZjc4Mjcz NzIuLjMwNWU2YzA1MmU2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzMzAsNyArMTMzMCwxMCBA QCB0aW1lc3RhbXBfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcAl0aW1lc3RhbXAg PSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJlc3VsdCA9 IHRpbWVzdGFtcDJkYXRlX3NhZmUodGltZXN0YW1wLCBOVUxMKTsKKwlyZXN1bHQgPSB0aW1lc3Rh bXAyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJUEdf UkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAwOCw3ICsyMDExLDcgQEAgdGltZXN0 YW1wX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0 aW1lc3RhbXAydG0odGltZXN0YW1wLCBOVUxMLCB0bSwgJmZzZWMsIE5VTEwsIE5VTEwpICE9IDAp Ci0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJ CSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKaW5kZXggZDkxODFkZGVjZWYuLjdjMzkzMDAxMWU3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jCkBAIC0zNTIsNyArMzUyLDggQEAgdGltZXN0YW1wX3NjYWxlKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlyZXN1bHQgPSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JU eXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5 cG1vZCgmcmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC02NDMyLDggKzY0MzMs MTMgQEAgRGF0dW0KIHRpbWVzdGFtcF90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogewog CVRpbWVzdGFtcAl0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOworCVRpbWVzdGFt cFR6IHJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1FU1RBTVBUWih0aW1lc3RhbXAydGltZXN0YW1w dHoodGltZXN0YW1wKSk7CisJcmVzdWx0ID0gdGltZXN0YW1wMnRpbWVzdGFtcHR6X3NhZmUodGlt ZXN0YW1wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5m by0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fVElNRVNUQU1Q VFoocmVzdWx0KTsKIH0KIAogLyoKLS0gCjIuMzQuMQoK --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq379 RnJvbSBmMDVlZjNmZmRhYjIxYmUzODBmNzliZWM0ZmFlZWY4NzNhMjljOTdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjowNDo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE2 IDE1LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcHR6IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSd0aW1lc3RhbXB0eic6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7Cgog ICAgICAgIGNhc3Rzb3VyY2UgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAg ICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpv bmUgfCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMTE3OCB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X2RhdGUgICAgICB8IGRhdGUKIHRpbWVzdGFtcCB3 aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAgICAyMDE5IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZSAgICAgIHwgdGltZQog dGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwg ICAgIDIwMjcgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el90aW1lc3Rh bXAgfCB0aW1lc3RhbXAKIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aCB0aW1l IHpvbmUgICAgICAgICB8ICAgICAxMzg4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGlt ZXN0YW1wdHpfdGltZXR6ICAgIHwgdGltZXR6CiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0 aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgICAgfCAgICAgMTk2NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IHRpbWVzdGFtcHR6X3NjYWxlICAgICB8IHRpbWVzdGFtcHR6Cig1IHJvd3MpCgpk aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpR aXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMgICAgICB8ICA5ICsrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jIHwgMTAgKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGM2Y2U3ODRi MGRjLi4xOTFmNzgyNzM3MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0xNDA2LDcgKzE0MDYsMTAg QEAgdGltZXN0YW1wdHpfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcFR6IHRpbWVz dGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgTlVMTCk7CisJcmVzdWx0ID0g dGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmFyZ3MpKQorCQlQR19SRVRVUk5fTlVMTCgpOwor CiAJUEdfUkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAzNiw3ICsyMDM5LDcgQEAg dGltZXN0YW1wdHpfdGltZShQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwog CiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAsICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxM KSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtMjk1NSw3 ICsyOTU4LDcgQEAgdGltZXN0YW1wdHpfdGltZXR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgJnR6LCB0bSwgJmZz ZWMsIE5VTEwsIE5VTEwpICE9IDApCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZv LT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggMTFmODk2MTQ3ZWEuLmQ5MTgxZGRl Y2VmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC04NzUsNyArODc1LDggQEAgdGlt ZXN0YW1wdHpfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHRpbWVzdGFtcDsK IAotCUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlm ICghQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250 ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVBUWihyZXN1 bHQpOwogfQpAQCAtNjQ5NCw4ICs2NDk1LDEzIEBAIERhdHVtCiB0aW1lc3RhbXB0el90aW1lc3Rh bXAoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQR19HRVRB UkdfVElNRVNUQU1QVFooMCk7CisJVGltZXN0YW1wCXJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1F U1RBTVAodGltZXN0YW1wdHoydGltZXN0YW1wKHRpbWVzdGFtcCkpOworCXJlc3VsdCA9IHRpbWVz dGFtcHR6MnRpbWVzdGFtcF9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo dW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KIAogLyoKLS0g CjIuMzQuMQoK --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3810 RnJvbSA3NjYyZDI2MzQwZTVlNTg3NDlmMmFjMzU0NmNhYmJkYTdlMDI5NDJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDU6MjYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAxNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlcnZhbCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lIGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1 bmMgYW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbnRlcnZh bCc6OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwg ICAgICAgY2FzdHRhcmdldCAgICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIHwgICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KIGludGVydmFsICAgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25l IHwgICAgIDE0MTkgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF90aW1lICB8 IHRpbWUKIGludGVydmFsICAgfCBpbnRlcnZhbCAgICAgICAgICAgICAgIHwgICAgIDEyMDAgfCBp ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF9zY2FsZSB8IGludGVydmFsCigyIHJv d3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpj d3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgICAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC90aW1lc3RhbXAuYyB8IDMgKystCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCBkOTY3OWFhNTNhYi4uYzZjZTc4 NGIwZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMjEwNiw3ICsyMTA2LDcgQEAgaW50ZXJ2YWxf dGltZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVBRFQJCXJlc3VsdDsKIAogCWlmIChJTlRFUlZB TF9OT1RfRklOSVRFKHNwYW4pKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVf T1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBpbmZpbml0ZSBpbnRl cnZhbCB0byB0aW1lIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IDM1Njlk MjAxZWUxLi4xMWY4OTYxNDdlYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMTMz NCw3ICsxMzM0LDggQEAgaW50ZXJ2YWxfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQg PSBwYWxsb2Nfb2JqZWN0KEludGVydmFsKTsKIAkqcmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRq dXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0 SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fSU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAK Mi4zNC4xCgo= --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3a11 RnJvbSAwNTZmYmI0MDAxOTZiMzUwZWQ2ZmMxMzg3NzJkZjFmODMxZTZkZTc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMzoxNTozMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE2 IDEzLzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGRhdGUgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZGF0ZSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCmNhc3Rzb3VyY2UgfCAgICAgICAgIGNh c3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgICAgcHJvc3JjICAgICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCAgICAgMjAyNCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRh dGVfdGltZXN0YW1wICAgfCB0aW1lc3RhbXAKIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0aCB0 aW1lIHpvbmUgICAgfCAgICAgMTE3NCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRhdGVf dGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egooMiByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIHwg MTcgKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IDQyMWNjYzMwNmY2Li5kOTY3OWFh NTNhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC03MzAsMTUgKzczMCw2IEBAIGRhdGUydGltZXN0 YW1wdHpfc2FmZShEYXRlQURUIGRhdGVWYWwsIE5vZGUgKmVzY29udGV4dCkKIAlyZXR1cm4gcmVz dWx0OwogfQogCi0vKgotICogUHJvbW90ZSBkYXRlIHRvIHRpbWVzdGFtcHR6LCB0aHJvd2luZyBl cnJvciBmb3Igb3ZlcmZsb3cuCi0gKi8KLXN0YXRpYyBUaW1lc3RhbXBUegotZGF0ZTJ0aW1lc3Rh bXB0eihEYXRlQURUIGRhdGVWYWwpCi17Ci0JcmV0dXJuIGRhdGUydGltZXN0YW1wdHpfc2FmZShk YXRlVmFsLCBOVUxMKTsKLX0KLQogLyoKICAqIGRhdGUydGltZXN0YW1wX25vX292ZXJmbG93CiAg KgpAQCAtMTMyMyw3ICsxMzE0LDkgQEAgZGF0ZV90aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykK IAlEYXRlQURUCQlkYXRlVmFsID0gUEdfR0VUQVJHX0RBVEVBRFQoMCk7CiAJVGltZXN0YW1wCXJl c3VsdDsKIAotCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wKGRhdGVWYWwpOworCXJlc3VsdCA9IGRh dGUydGltZXN0YW1wX3NhZmUoZGF0ZVZhbCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZihTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQ R19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC0xMzk2LDcgKzEzODksOSBAQCBkYXRl X3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dF VEFSR19EQVRFQURUKDApOwogCVRpbWVzdGFtcFR6IHJlc3VsdDsKIAotCXJlc3VsdCA9IGRhdGUy dGltZXN0YW1wdHooZGF0ZVZhbCk7CisJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0el9zYWZlKGRh dGVWYWwsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVAo cmVzdWx0KTsKIH0KLS0gCjIuMzQuMQoK --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3b12 RnJvbSAwMjNmOThmMjBmMWVkNDI3YmNhNTczMGQ3Y2VmYTQ1ODk0MDA5ZmI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MzE6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAxMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ4Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAg fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBkb3VibGUgcHJlY2lzaW9uIHwgYmlnaW50ICAgICB8ICAgICAgNDgzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZHRvaTggICAgICAgICAgfCBpbnQ4CiBkb3VibGUgcHJlY2lzaW9u IHwgc21hbGxpbnQgICB8ICAgICAgMjM3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRv aTIgICAgICAgICAgfCBpbnQyCiBkb3VibGUgcHJlY2lzaW9uIHwgaW50ZWdlciAgICB8ICAgICAg MzE3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRvaTQgICAgICAgICAgfCBpbnQ0CiBk b3VibGUgcHJlY2lzaW9uIHwgcmVhbCAgICAgICB8ICAgICAgMzEyIHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZHRvZiAgICAgICAgICAgfCBmbG9hdDQKIGRvdWJsZSBwcmVjaXNpb24gfCBu dW1lcmljICAgIHwgICAgIDE3NDMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDhf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDEzICsr KysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8ICAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKaW5kZXgg ZDVmMTViZmE3ZGUuLjU1YzcwMzBiYTgxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwpAQCAtMTE5OSw5 ICsxMTk5LDE0IEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChmbG9hdDQp IG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKG51bSkpCi0JCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJ CQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKIAlpZiAodW5saWtl bHkocmVzdWx0ID09IDAuMGYpICYmIG51bSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJv cigpOworCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBv dXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKIAogCVBHX1JFVFVSTl9GTE9BVDQocmVzdWx0KTsK IH0KQEAgLTEyMjQsNyArMTIyOSw3IEBAIGR0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBS YW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19J Tl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTEy NDksNyArMTI1NCw3IEBAIGR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVj ayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9JTlQxNihu dW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YwppbmRleCAxMTg1Zjk3NWJiZC4uY2I1Nzk0NjZiMjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAt MTMwNyw3ICsxMzA3LDcgQEAgZHRvaTgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNo ZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0 KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwppbmRleCA3OGMzN2MwNDRmOC4uMjU2NGY1MmEzZmYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwpAQCAtNDU1OSw3ICs0NTU5LDggQEAgZmxvYXQ4X251bWVyaWMoUEdfRlVOQ1RJT05f QVJHUykKIAlpbml0X3ZhcigmcmVzdWx0KTsKIAogCS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3Jy eSBhYm91dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21f c3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJv bV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtlX3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4z NC4xCgo= --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3e14 RnJvbSBjMjI4YTU2NzNmOWNlYmVjZmQ2ZGM0NzRkZDAzZTM0ZTA4MjlhNmZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjU6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAxMC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBudW1lcmljIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ251bWVyaWMn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgpjYXN0c291cmNlIHwgICAg Y2FzdHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAg IHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogbnVtZXJpYyAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgMTc3OSB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50OCAgIHwgaW50OAogbnVtZXJpYyAgICB8IHNt YWxsaW50ICAgICAgICAgfCAgICAgMTc4MyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51 bWVyaWNfaW50MiAgIHwgaW50MgogbnVtZXJpYyAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAg MTc0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50NCAgIHwgaW50NAog bnVtZXJpYyAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMTc0NSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IG51bWVyaWNfZmxvYXQ0IHwgZmxvYXQ0CiBudW1lcmljICAgIHwgZG91Ymxl IHByZWNpc2lvbiB8ICAgICAxNzQ2IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJp Y19mbG9hdDggfCBmbG9hdDgKIG51bWVyaWMgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4 MjQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2Nhc2ggICB8IG1vbmV5CiBu dW1lcmljICAgIHwgbnVtZXJpYyAgICAgICAgICB8ICAgICAxNzAzIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgbnVtZXJpYyAgICAgICAgfCBudW1lcmljCig3IHJvd3MpCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhIQ016ckhPVz13UmU4TDMwck1oQjNzandBdjFM RTkyOEZhN3N4TXUxVHgtZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9udW1lcmljLmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwppbmRleCAyNDYwNjk4ZGYwMS4uODZhMTY5MDgzMDUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtMTI0NCw3ICsxMjQ0LDggQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FS R1MpCiAJICovCiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFw cGx5X3R5cG1vZF9zcGVjaWFsKG51bSwgdHlwbW9kLCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBt b2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CiAJCVBHX1JFVFVSTl9OVU1FUklDKGR1cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0K IApAQCAtMTI5NSw4ICsxMjk2LDkgQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5p dF92YXIoJnZhcik7CiAKIAlzZXRfdmFyX2Zyb21fbnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFw cGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIE5VTEwpOwotCW5ldyA9IG1ha2VfcmVzdWx0KCZ2YXIp OworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJ UEdfUkVUVVJOX05VTEwoKTsKKwluZXcgPSBtYWtlX3Jlc3VsdF9zYWZlKCZ2YXIsIGZjaW5mby0+ Y29udGV4dCk7CiAKIAlmcmVlX3ZhcigmdmFyKTsKIApAQCAtMzAxOCw3ICszMDIwLDEwIEBAIG51 bWVyaWNfbXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJbnVtMiA9IFBHX0dFVEFSR19O VU1FUklDKDEpOwogCU51bWVyaWMJCXJlczsKIAotCXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVt MSwgbnVtMiwgTlVMTCk7CisJcmVzID0gbnVtZXJpY19tdWxfc2FmZShudW0xLCBudW0yLCBmY2lu Zm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fTlVNRVJJQyhy ZXMpOwogfQpAQCAtNDM5Miw5ICs0Mzk3LDE1IEBAIG51bWVyaWNfaW50NF9zYWZlKE51bWVyaWMg bnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ0KFBHX0ZVTkNUSU9OX0FS R1MpCiB7CisJaW50MzIJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJ QygwKTsKIAotCVBHX1JFVFVSTl9JTlQzMihudW1lcmljX2ludDRfc2FmZShudW0sIE5VTEwpKTsK KwlyZXN1bHQgPSBudW1lcmljX2ludDRfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlp ZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQzMihyZXN1bHQpOwogfQogCiAvKgpAQCAt NDQ2Miw5ICs0NDczLDE1IEBAIG51bWVyaWNfaW50OF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICpl c2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50 NjQJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBH X1JFVFVSTl9JTlQ2NChudW1lcmljX2ludDhfc2FmZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBu dW1lcmljX2ludDhfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHko U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCiAKQEAgLTQ0ODgsMTEgKzQ1MDUs MTEgQEAgbnVtZXJpY19pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKE5VTUVSSUNfSVNfU1BF Q0lBTChudW0pKQogCXsKIAkJaWYgKE5VTUVSSUNfSVNfTkFOKG51bSkpCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBOYU4gdG8gJXMiLCAic21hbGxpbnQiKSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBpbmZpbml0eSB0byAlcyIsICJzbWFsbGludCIpKSk7CiAJfQpAQCAtNDUwMSwxMiAr NDUxOCwxMiBAQCBudW1lcmljX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0X3Zhcl9mcm9t X251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJpY3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAogCWlmICh1bmxpa2VseSh2YWwgPCBQ R19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21h bGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtNDU3MSwxMCArNDU4OCwxNCBAQCBudW1lcmlj X2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVj dEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVt KG51bSkpKTsKLQotCXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJp bmdHZXREYXR1bSh0bXApKTsKLQotCXBmcmVlKHRtcCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0 aW9uQ2FsbFNhZmUoZmxvYXQ4aW4sIHRtcCwKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJ CQkJCQkJCSAoTm9kZSAqKSBmY2luZm8tPmNvbnRleHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJ eworCQlwZnJlZSh0bXApOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9E QVRVTShyZXN1bHQpOwogfQpAQCAtNDY2Niw3ICs0Njg3LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2Fs bDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAot CXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0 bXApKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAor CQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29u dGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVS Tl9OVUxMKCk7CisJfQogCiAJcGZyZWUodG1wKTsKIAotLSAKMi4zNC4xCgo= --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3d13 RnJvbSA2YzY3M2E3ZDYwN2M3Y2ZjY2RiMzkxZWVjMzJmYmQ0MDEyZDBlNThjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6Mjg6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAxMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ0Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiByZWFsICAgICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNjUzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZnRvaTggICAgICAgICAgfCBpbnQ4CiByZWFsICAgICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAgMjM4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRv aTIgICAgICAgICAgfCBpbnQyCiByZWFsICAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg MzE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRvaTQgICAgICAgICAgfCBpbnQ0CiBy ZWFsICAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzExIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZnRvZCAgICAgICAgICAgfCBmbG9hdDgKIHJlYWwgICAgICAgfCBudW1lcmlj ICAgICAgICAgIHwgICAgIDE3NDIgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDRf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDQgKyst LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9udW1lcmljLmMgfCAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zs b2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCA4NDk2MzlmZGE5Zi4u ZDVmMTViZmE3ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBm dG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtl bHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50 ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzIzLDcgKzEzMjMsNyBAQCBmdG9pMihQR19G VU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4o bnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJ CWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggOWUxYTJjNzc5MmIuLjExODVm OTc1YmJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEzNDIsNyArMTM0Miw3IEBAIGZ0b2k4KFBH X0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25h bihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwK KwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJD T0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVy aWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKaW5kZXggODZhMTY5MDgzMDUu Ljc4YzM3YzA0NGY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKQEAgLTQ2NTcsNyArNDY1Nyw4 IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7 CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29ycnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBz cGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVu ZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAm ZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0g bWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIuMzQuMQoK --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3i16 RnJvbSAzYzZlMzQ5MWNjOTkzMjIyYzIwYTRmZTU1M2QwODQwZDM3YTVmMDE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjA6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAwOC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlZ2VyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVnZXIn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAg IGNhc3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAg IHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogaW50ZWdlciAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDQ4MSB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGludDQ4ICAgICAgICB8IGludDgKIGludGVnZXIgICAgfCBzbWFsbGlu dCAgICAgICAgIHwgICAgICAzMTQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpNHRvaTIg ICAgICAgfCBpbnQyCiBpbnRlZ2VyICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAgMzE4IHwg aSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2YgICAgICAgIHwgZmxvYXQ0CiBpbnRlZ2Vy ICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzE2IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgaTR0b2QgICAgICAgIHwgZmxvYXQ4CiBpbnRlZ2VyICAgIHwgbnVtZXJpYyAgICAgICAg ICB8ICAgICAxNzQwIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50NF9udW1lcmljIHwg bnVtZXJpYwogaW50ZWdlciAgICB8IG1vbmV5ICAgICAgICAgICAgfCAgICAgMzgxMSB8IGEgICAg ICAgICAgIHwgZiAgICAgICAgICB8IGludDRfY2FzaCAgICB8IG1vbmV5CiBpbnRlZ2VyICAgIHwg Ym9vbGVhbiAgICAgICAgICB8ICAgICAyNTU3IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwg aW50NF9ib29sICAgIHwgYm9vbAogaW50ZWdlciAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAg NjM2OCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfYnl0ZWEgICB8IGJ5dGVhCiBp bnRlZ2VyICAgIHwgImNoYXIiICAgICAgICAgICB8ICAgICAgIDc4IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaTR0b2NoYXIgICAgIHwgY2hhcgogaW50ZWdlciAgICB8IGJpdCAgICAgICAg ICAgICAgfCAgICAgMTY4MyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdGZyb21pbnQ0 ICB8IGJpdAooMTAgcm93cykKCm9ubHkgaW50NF9jYXNoLCBpNHRvaTIsIGk0dG9jaGFyIG5lZWQg dGFrZSBjYXJlIG9mIGVycm9yIGhhbmRsaW5nLiAgYnV0IHN1cHBvcnQKZm9yIGNhc2ggZGF0YSB0 eXBlIGlzIG5vdCBlYXN5LCBzbyBvbmx5IGk0dG9pMiwgaTR0b2NoYXIgZnVuY3Rpb24gcmVmYWN0 b3JpbmcuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMgfCAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv aW50LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXggMjJkYmZjOTUwYjEuLmU5MDg0NGEyOWYwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBpNHRvY2hhcihQR19GVU5DVElP Tl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VUQVJHX0lOVDMyKDApOwogCiAJaWYgKGFyZzEg PCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01BWCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggNjA0MTFlZTAyNGQuLmI0ODYwYTk0YWRi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNTAsNyArMzUwLDcgQEAgaTR0b2kyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAKIAlpZiAodW5saWtl bHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2VseShhcmcxID4gU0hSVF9NQVgpKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2co InNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3g15 RnJvbSAyMmU5NzhjMjc3ZTY1N2Y0ODJkODQ2MjRjMTk2OGRhOGFhZTkyY2VjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjI6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAwOS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaWdpbnQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnYmlnaW50Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBw cm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGJpZ2ludCAgICAgfCBzbWFsbGludCAgICAgICAgIHwgICAgICA3MTQgfCBhICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpbnQ4MiAgICAgICAgfCBpbnQyCiBiaWdpbnQgICAgIHwgaW50ZWdlciAg ICAgICAgICB8ICAgICAgNDgwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ODQgICAg ICAgIHwgaW50NAogYmlnaW50ICAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgIDY1MiB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9mICAgICAgICB8IGZsb2F0NAogYmlnaW50ICAg ICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDQ4MiB8IGkgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGk4dG9kICAgICAgICB8IGZsb2F0OAogYmlnaW50ICAgICB8IG51bWVyaWMgICAgICAgICAg fCAgICAgMTc4MSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfbnVtZXJpYyB8IG51 bWVyaWMKIGJpZ2ludCAgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4MTIgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCBpbnQ4X2Nhc2ggICAgfCBtb25leQogYmlnaW50ICAgICB8IG9p ZCAgICAgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4 dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3Byb2MgICAgICAgICAgfCAgICAgMTI4 NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50 ICAgICB8IHJlZ3Byb2NlZHVyZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ29wZXIgICAgICAgICAg fCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9p ZAogYmlnaW50ICAgICB8IHJlZ29wZXJhdG9yICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NsYXNz ICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQg ICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbGxhdGlvbiAgICAgfCAgICAgMTI4NyB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8 IHJlZ3R5cGUgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbmZpZyAgICAgICAgfCAgICAg MTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmln aW50ICAgICB8IHJlZ2RpY3Rpb25hcnkgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3JvbGUgICAgICAg ICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8 IG9pZAogYmlnaW50ICAgICB8IHJlZ25hbWVzcGFjZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2Rh dGFiYXNlICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9v aWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAgNjM2OSB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfYnl0ZWEgICB8IGJ5dGVhCiBiaWdpbnQg ICAgIHwgYml0ICAgICAgICAgICAgICB8ICAgICAyMDc1IHwgZSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgYml0ZnJvbWludDggIHwgYml0CigyMSByb3dzKQoKYWxyZWFkeSBlcnJvciBzYWZlOiBp OHRvZiwgaTh0b2QsIGludDhfbnVtZXJpYywgaW50OF9ieXRlYSwgYml0ZnJvbWludDgKZGlzY3Vz c2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZp c2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGls cy9hZHQvaW50OC5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggNjc4Zjk3MTUwOGIuLjllMWEy Yzc3OTJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyNTEsNyArMTI1MSw3IEBAIGludDg0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlm ICh1bmxpa2VseShhcmcgPCBQR19JTlQzMl9NSU4pIHx8IHVubGlrZWx5KGFyZyA+IFBHX0lOVDMy X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0 dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMjcyLDcgKzEy NzIsNyBAQCBpbnQ4MihQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcgPSBQR19HRVRBUkdf SU5UNjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMTZfTUlOKSB8fCB1bmxpa2Vs eShhcmcgPiBQR19JTlQxNl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTEzNTUsNyArMTM1NSw3IEBAIGk4dG9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2 NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IDApIHx8 IHVubGlrZWx5KGFyZyA+IFBHX1VJTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0 dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coIk9JRCBvdXQgb2YgcmFuZ2Ui KSkpOwogCi0tIAoyLjM0LjEKCg== --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3j17 RnJvbSA5MWU1NmQyYTE4YTVhMDgyN2U2OTBmOGRmM2NjZWFjM2MxYWFiZDI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6Mjg6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAwNi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbmV0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2luZXQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBp bmV0ICAgICAgIHwgY2lkciAgICAgICAgICAgICAgfCAgICAgMTcxNSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGluZXRfdG9fY2lkciB8IGNpZHIKIGluZXQgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19z aG93IHwgdGV4dAogaW5ldCAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA3MzAgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3Nob3cgfCB0ZXh0CiBpbmV0ICAgICAg IHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAg ICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKKDQgcm93cykKCmluZXRfdG9fY2lkciBpcyBhbHJlYWR5 IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFK Zlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpp bmRleCAzYTIwMDIwOTdkZC4uYzdlMDgyODc2NGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpA QCAtMTEzNyw3ICsxMTM3LDcgQEAgbmV0d29ya19zaG93KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlp ZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHkoaXApLCBpcF9hZGRyKGlwKSwgaXBfbWF4Yml0 cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1wKSkgPT0gTlVMTCkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJjb3Vs ZCBub3QgZm9ybWF0IGluZXQgdmFsdWU6ICVtIikpKTsKIAotLSAKMi4zNC4xCgo= --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v16-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3l18 RnJvbSA5NTY1YTA4YjUxZWI4OGQ2YmZjNDExYjM1YWM0NWQ0MTk2NWJjMmM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTM6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAwNS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdmFyeWluZyB0byBvdGhl cgogdHlwZXMgcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFy Z2V0OjpyZWd0eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMgYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQKKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSAnY2hhcmFjdGVyIHZhcnlpbmcnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0 eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAgIHwgICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiBjaGFyYWN0ZXIgdmFy eWluZyB8IHJlZ2NsYXNzICAgICAgICAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0ZXh0X3JlZ2NsYXNzIHwgcmVnY2xhc3MKIGNoYXJhY3RlciB2YXJ5aW5nIHwgImNo YXIiICAgICAgICAgICAgfCAgICAgIDk0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfY2hhciAgICAgfCBjaGFyCiBjaGFyYWN0ZXIgdmFyeWluZyB8IG5hbWUgICAgICAgICAgICAg IHwgICAgIDE0MDAgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X25hbWUgICAgIHwg bmFtZQogY2hhcmFjdGVyIHZhcnlpbmcgfCB4bWwgICAgICAgICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAogY2hhcmFjdGVy IHZhcnlpbmcgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNjY5IHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgdmFyY2hhciAgICAgICB8IHZhcmNoYXIKKDUgcm93cykKCnRleHR0b3htbCwg dGV4dF9yZWdjbGFzcyB3YXMgcmVmYWN0b3JlZCBhcyBlcnJvciBzYWZlIGluIHByaW9yIHBhdGNo Lgp0ZXh0X2NoYXIsIHRleHRfbmFtZSBpcyBhbHJlYWR5IGVycm9yIHNhZmUuCnNvIGhlcmUgd2Ug b25seSBuZWVkIGhhbmRsZSBmdW5jdGlvbiAidmFyY2hhciIuCgpkaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2 NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFy LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCA4NjE4YzdhMWIxMy4uZTg1M2UwZDdkYmIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM0LDcgKzYzNCw3IEBAIHZhcmNoYXIoUEdfRlVO Q1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1heG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQlp ZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJIGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9y IHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwKIAkJCQkJCQkJbWF4bGVuKSkpOwotLSAKMi4z NC4xCgo= --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3m19 RnJvbSAzZmNlMWMwZWI3MDZjMWM2ZjAzNmU5ODZiZWNiMTNkN2M2NzJkNTY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MzE6MTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAwNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0ZXh0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ3RleHQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAg fCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogdGV4dCAgICAgICB8 IHJlZ2NsYXNzICAgfCAgICAgMTA3OSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRf cmVnY2xhc3MgfCByZWdjbGFzcwogdGV4dCAgICAgICB8ICJjaGFyIiAgICAgfCAgICAgIDk0NCB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgICAgfCBjaGFyCiB0ZXh0ICAg ICAgIHwgbmFtZSAgICAgICB8ICAgICAgNDA3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwg dGV4dF9uYW1lICAgICB8IG5hbWUKIHRleHQgICAgICAgfCB4bWwgICAgICAgIHwgICAgIDI4OTYg fCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICAgIHwgeG1sCig0IHJvd3Mp CgphbHJlYWR5IGVycm9yIHNhZmU6IHRleHRfbmFtZSwgdGV4dF9jaGFyLgp0ZXh0dG94bWwgaXMg cmVmYWN0b3JlZCBpbiBjaGFyYWN0ZXIgdHlwZSBlcnJvciBzYWZlIHBhdGNoLgoKZGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tR OGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jIHwgMTMgKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC92YXJsZW5hLmMgfCAxMCArKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwu YyAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCB8ICA2ICsrKysK IHNyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaCAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQs IDczIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5j CmluZGV4IGM5NDA4OWNhYTU4Li5iZDI1ZWI0NTUwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5j CkBAIC00NDAsNiArNDQwLDE2IEBAIE9pZAogUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0 IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJCQkJCQkgdWludDMyIGZs YWdzLAogCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxsYmFjaywgdm9pZCAqY2Fs bGJhY2tfYXJnKQoreworCXJldHVybiBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZlKHJlbGF0 aW9uLCBsb2NrbW9kZSwgZmxhZ3MsCisJCQkJCQkJCQkJY2FsbGJhY2ssIGNhbGxiYWNrX2FyZywK KwkJCQkJCQkJCQlOVUxMKTsKK30KKworT2lkCitSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZl KGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsIHVpbnQzMiBmbGFn cywKKwkJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpjYWxs YmFja19hcmcsCisJCQkJCQkJIE5vZGUgKmVzY29udGV4dCkKIHsKIAl1aW50NjQJCWludmFsX2Nv dW50OwogCU9pZAkJCXJlbElkOwpAQCAtNDU2LDcgKzQ2Niw3IEBAIFJhbmdlVmFyR2V0UmVsaWRF eHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAogCWlm IChyZWxhdGlvbi0+Y2F0YWxvZ25hbWUpCiAJewogCQlpZiAoc3RyY21wKHJlbGF0aW9uLT5jYXRh bG9nbmFtZSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkgIT0gMCkKLQkJCWVyZXBv cnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjcm9zcy1k YXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IFwiJXMuJXMuJXNcIiIsCiAJ CQkJCQkJcmVsYXRpb24tPmNhdGFsb2duYW1lLCByZWxhdGlvbi0+c2NoZW1hbmFtZSwKQEAgLTUx Myw3ICs1MjMsNyBAQCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJl bGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJCQkJICogcmV0dXJuIEludmFsaWRPaWQuCiAJ CQkJCSAqLwogCQkJCQlpZiAobmFtZXNwYWNlSWQgIT0gbXlUZW1wTmFtZXNwYWNlKQotCQkJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAogCQkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEFCTEVfREVGSU5JVElPTiksCiAJCQkJCQkJ CSBlcnJtc2coInRlbXBvcmFyeSB0YWJsZXMgY2Fubm90IHNwZWNpZnkgYSBzY2hlbWEgbmFtZSIp KSk7CiAJCQkJfQpAQCAtNTkzLDEzICs2MDMsMjMgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVk KGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJCXsKIAkJCWlu dAkJCWVsZXZlbCA9IChmbGFncyAmIFJWUl9TS0lQX0xPQ0tFRCkgPyBERUJVRzEgOiBFUlJPUjsK IAotCQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQotCQkJCWVyZXBvcnQoZWxldmVsLAorCQkJ aWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lICYmIGVsZXZlbCA9PSBERUJVRzEpCisJCQkJZXJlcG9y dChERUJVRzEsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCiAJ CQkJCQkgZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlcy4lc1wi IiwKIAkJCQkJCQkJcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1lKSkpOwot CQkJZWxzZQotCQkJCWVyZXBvcnQoZWxldmVsLAorCQkJZWxzZSBpZiAocmVsYXRpb24tPnNjaGVt YW5hbWUgJiYgZWxldmVsID09IEVSUk9SKQorCQkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlk T2lkLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJCQll cnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzLiVzXCIiLAorCQkJ CQkJCSAgIHJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVsbmFtZSkpOworCQkJZWxz ZSBpZiAoZWxldmVsID09IERFQlVHMSkKKwkJCQllcmVwb3J0KERFQlVHMSwKKwkJCQkJCWVycmNv ZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJTEFCTEUpLAorCQkJCQkJZXJybXNnKCJjb3VsZCBub3Qg b2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCQkgICByZWxhdGlvbi0+cmVs bmFtZSkpOworCQkJZWxzZSBpZiAoZWxldmVsID09IEVSUk9SKQorCQkJCWVyZXR1cm4oZXNjb250 ZXh0LCBJbnZhbGlkT2lkLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJTEFC TEUpLAogCQkJCQkJIGVycm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwi JXNcIiIsCiAJCQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSkpOwpAQCAtNjI2LDEzICs2NDYsMjMg QEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9D S01PREUgbG9ja21vZGUsCiAJewogCQlpbnQJCQllbGV2ZWwgPSBtaXNzaW5nX29rID8gREVCVUcx IDogRVJST1I7CiAKLQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQotCQkJZXJlcG9ydChlbGV2 ZWwsCisJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAmJiBlbGV2ZWwgPT0gREVCVUcxKQorCQkJ ZXJlcG9ydChERUJVRzEsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX1RBQkxFKSwK IAkJCQkJIGVycm1zZygicmVsYXRpb24gXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJ CQlyZWxhdGlvbi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJlbG5hbWUpKSk7Ci0JCWVsc2UKLQkJ CWVyZXBvcnQoZWxldmVsLAorCQllbHNlIGlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAmJiBlbGV2 ZWwgPT0gRVJST1IpCisJCQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9UQUJMRSksCisJCQkJCWVycm1zZygicmVsYXRpb24gXCIl cy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCSAgIHJlbGF0aW9uLT5zY2hlbWFuYW1lLCBy ZWxhdGlvbi0+cmVsbmFtZSkpOworCQllbHNlIGlmIChlbGV2ZWwgPT0gREVCVUcxKQorCQkJZXJl cG9ydChERUJVRzEsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfVEFCTEUpLAorCQkJ CQllcnJtc2coInJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkgICByZWxh dGlvbi0+cmVsbmFtZSkpOworCQllbHNlIGlmIChlbGV2ZWwgPT0gRVJST1IpCisJCQllcmV0dXJu KGVzY29udGV4dCwgSW52YWxpZE9pZCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURf VEFCTEUpLAogCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAog CQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSkpOwpAQCAtMzYyMiw2ICszNjUyLDEyIEBAIGdldF9u YW1lc3BhY2Vfb2lkKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGJvb2wgbWlzc2luZ19vaykKICAqLwog UmFuZ2VWYXIgKgogbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KGNvbnN0IExpc3QgKm5hbWVzKQor eworCXJldHVybiBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3RTYWZlKG5hbWVzLCBOVUxMKTsKK30K KworUmFuZ2VWYXIgKgorbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShjb25zdCBMaXN0ICpu YW1lcywgTm9kZSAqZXNjb250ZXh0KQogewogCVJhbmdlVmFyICAgKnJlbCA9IG1ha2VSYW5nZVZh cihOVUxMLCBOVUxMLCAtMSk7CiAKQEAgLTM2NDAsNyArMzY3Niw3IEBAIG1ha2VSYW5nZVZhckZy b21OYW1lTGlzdChjb25zdCBMaXN0ICpuYW1lcykKIAkJCXJlbC0+cmVsbmFtZSA9IHN0clZhbChs dGhpcmQobmFtZXMpKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJZXJlcG9ydChFUlJPUiwK KwkJCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxMLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCiAJCQkJCSBlcnJtc2coImltcHJvcGVyIHJlbGF0aW9uIG5hbWUgKHRvbyBtYW55 IGRvdHRlZCBuYW1lcyk6ICVzIiwKIAkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmVncHJvYy5jCmluZGV4IGU1YzIyNDZmMmM5Li41OWNjNTA4ZjgwNSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmVncHJvYy5jCkBAIC0xOTAxLDEyICsxOTAxLDE5IEBAIHRleHRfcmVnY2xh c3MoUEdfRlVOQ1RJT05fQVJHUykKIAl0ZXh0CSAgICpyZWxuYW1lID0gUEdfR0VUQVJHX1RFWFRf UFAoMCk7CiAJT2lkCQkJcmVzdWx0OwogCVJhbmdlVmFyICAgKnJ2OworCUxpc3QJICAgKm5hbWVs aXN0OwogCi0JcnYgPSBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3QodGV4dFRvUXVhbGlmaWVkTmFt ZUxpc3QocmVsbmFtZSkpOworCW5hbWVsaXN0ID0gdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZl KHJlbG5hbWUsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNp bmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCXJ2ID0gbWFrZVJhbmdlVmFy RnJvbU5hbWVMaXN0U2FmZShuYW1lbGlzdCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9F UlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJ LyogV2UgbWlnaHQgbm90IGV2ZW4gaGF2ZSBwZXJtaXNzaW9ucyBvbiB0aGlzIHJlbGF0aW9uOyBk b24ndCBsb2NrIGl0LiAqLwotCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWQocnYsIE5vTG9jaywg ZmFsc2UpOwotCisJcmVzdWx0ID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkU2FmZShydiwgTm9M b2NrLCAwLCBOVUxMLCBOVUxMLAorCQkJCQkJCQkJCSAgZmNpbmZvLT5jb250ZXh0KTsKIAlQR19S RVRVUk5fT0lEKHJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC92YXJsZW5hLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCmluZGV4IGJhYTVi NDRlYThkLi5jY2Q2MDFlYzM0YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zh cmxlbmEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCkBAIC0yNjk1LDYg KzI2OTUsMTIgQEAgbmFtZV90ZXh0KFBHX0ZVTkNUSU9OX0FSR1MpCiAgKi8KIExpc3QgKgogdGV4 dFRvUXVhbGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4dHZhbCkKK3sKKwlyZXR1cm4gdGV4dFRvUXVh bGlmaWVkTmFtZUxpc3RTYWZlKHRleHR2YWwsIE5VTEwpOworfQorCitMaXN0ICoKK3RleHRUb1F1 YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0ICp0ZXh0dmFsLCBOb2RlICplc2NvbnRleHQpCiB7CiAJ Y2hhcgkgICAqcmF3bmFtZTsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CkBAIC0yNzA2LDEyICsy NzEyLDEyIEBAIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpCiAJcmF3bmFt ZSA9IHRleHRfdG9fY3N0cmluZyh0ZXh0dmFsKTsKIAogCWlmICghU3BsaXRJZGVudGlmaWVyU3Ry aW5nKHJhd25hbWUsICcuJywgJm5hbWVsaXN0KSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVy bihlc2NvbnRleHQsIE5JTCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfTkFNRSksCiAJ CQkJIGVycm1zZygiaW52YWxpZCBuYW1lIHN5bnRheCIpKSk7CiAKIAlpZiAobmFtZWxpc3QgPT0g TklMKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGVzY29udGV4dCwgTklMLAogCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9OQU1FKSwKIAkJCQkgZXJybXNnKCJpbnZhbGlkIG5hbWUg c3ludGF4IikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCmluZGV4IDYzMDExMTVkNjI1Li5kZDA5NTVkMWU0 NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtMTA0Myw3ICsxMDQzLDcgQEAgeG1scGFyc2UodGV4dCAq ZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxvcHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3Bh Y2UsIE5vZGUKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQllcmV0dXJuKGVz Y29udGV4dCwgTlVMTAorCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxMLAogCQkJZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQllcnJtc2coInVuc3VwcG9ydGVkIFhNTCBm ZWF0dXJlIiksCiAJCQllcnJkZXRhaWwoIlRoaXMgZnVuY3Rpb25hbGl0eSByZXF1aXJlcyB0aGUg c2VydmVyIHRvIGJlIGJ1aWx0IHdpdGggbGlieG1sIHN1cHBvcnQuIikpOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmgKaW5kZXggZjE0MjNmMjhjMzIuLmFiNjFhZjU1ZGRjIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmgKQEAgLTEwMyw2ICsxMDMsMTEgQEAgZXh0ZXJuIE9pZAlSYW5nZVZhckdldFJlbGlk RXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJIExPQ0tNT0RFIGxv Y2ttb2RlLCB1aW50MzIgZmxhZ3MsCiAJCQkJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxiYWNr IGNhbGxiYWNrLAogCQkJCQkJCQkJIHZvaWQgKmNhbGxiYWNrX2FyZyk7CitleHRlcm4gT2lkIFJh bmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAorCQkJ CQkJCQkJCUxPQ0tNT0RFIGxvY2ttb2RlLCB1aW50MzIgZmxhZ3MsCisJCQkJCQkJCQkJUmFuZ2VW YXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLAorCQkJCQkJCQkJCXZvaWQgKmNhbGxiYWNrX2Fy ZywKKwkJCQkJCQkJCQlOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIE9pZAlSYW5nZVZhckdldENy ZWF0aW9uTmFtZXNwYWNlKGNvbnN0IFJhbmdlVmFyICpuZXdSZWxhdGlvbik7CiBleHRlcm4gT2lk CVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShSYW5nZVZhciAqcmVsYXRpb24s CiAJCQkJCQkJCQkJCQkgTE9DS01PREUgbG9ja21vZGUsCkBAIC0xNjgsNiArMTczLDcgQEAgZXh0 ZXJuIE9pZAlMb29rdXBDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBjaGFyICpuc3BuYW1lKTsKIGV4 dGVybiB2b2lkIENoZWNrU2V0TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQpOwog ZXh0ZXJuIE9pZAlRdWFsaWZpZWROYW1lR2V0Q3JlYXRpb25OYW1lc3BhY2UoY29uc3QgTGlzdCAq bmFtZXMsIGNoYXIgKipvYmpuYW1lX3ApOwogZXh0ZXJuIFJhbmdlVmFyICptYWtlUmFuZ2VWYXJG cm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpOworZXh0ZXJuIFJhbmdlVmFyICptYWtlUmFu Z2VWYXJGcm9tTmFtZUxpc3RTYWZlKGNvbnN0IExpc3QgKm5hbWVzLCBOb2RlICplc2NvbnRleHQp OwogZXh0ZXJuIGNoYXIgKk5hbWVMaXN0VG9TdHJpbmcoY29uc3QgTGlzdCAqbmFtZXMpOwogZXh0 ZXJuIGNoYXIgKk5hbWVMaXN0VG9RdW90ZWRTdHJpbmcoY29uc3QgTGlzdCAqbmFtZXMpOwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmggYi9zcmMvaW5jbHVkZS91dGls cy92YXJsZW5hLmgKaW5kZXggZGI5ZmRmNzI5NDEuLjBjZjAxYWU1MjgxIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVu YS5oCkBAIC0yNyw2ICsyNyw3IEBAIGV4dGVybiBpbnQJdmFyc3RyX2xldmVuc2h0ZWluX2xlc3Nf ZXF1YWwoY29uc3QgY2hhciAqc291cmNlLCBpbnQgc2xlbiwKIAkJCQkJCQkJCQkgIGludCBpbnNf YywgaW50IGRlbF9jLCBpbnQgc3ViX2MsCiAJCQkJCQkJCQkJICBpbnQgbWF4X2QsIGJvb2wgdHJ1 c3RlZCk7CiBleHRlcm4gTGlzdCAqdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4dHZh bCk7CitleHRlcm4gTGlzdCAqdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZlKHRleHQgKnRleHR2 YWwsIE5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gYm9vbCBTcGxpdElkZW50aWZpZXJTdHJpbmco Y2hhciAqcmF3c3RyaW5nLCBjaGFyIHNlcGFyYXRvciwKIAkJCQkJCQkJICBMaXN0ICoqbmFtZWxp c3QpOwogZXh0ZXJuIGJvb2wgU3BsaXREaXJlY3Rvcmllc1N0cmluZyhjaGFyICpyYXdzdHJpbmcs IGNoYXIgc2VwYXJhdG9yLAotLSAKMi4zNC4xCgo= --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3p20 RnJvbSA0MTk5YzI5N2EzN2EyNTZlZWMzOTQ2YzNhNDk5MjYwNjg4NGJhMTA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTI6NTI6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAwMy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3Rm dW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdjaGFyYWN0 ZXInOjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8 ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgIHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogY2hhcmFjdGVyICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICA0MDEgfCBpICAgICAg ICAgICB8IGYgICAgICAgICAgfCBydHJpbTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCBjaGFy YWN0ZXIgdmFyeWluZyB8ICAgICAgNDAxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgcnRy aW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgImNoYXIiICAgICAgICAgICAgfCAgICAgIDk0 NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgIHwgY2hhcgogY2hhcmFj dGVyICB8IG5hbWUgICAgICAgICAgICAgIHwgICAgICA0MDkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBicGNoYXJfbmFtZSB8IG5hbWUKIGNoYXJhY3RlciAgfCB4bWwgICAgICAgICAgICAg ICB8ICAgICAyODk2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgfCB4 bWwKIGNoYXJhY3RlciAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNjY4IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYnBjaGFyICAgICAgfCBicGNoYXIKKDYgcm93cykKCm9ubHkgdGV4 dHRveG1sLCBicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykgbmVlZCB0YWtlIGNhcmUgb2YgZXJyb3Ig aGFuZGxpbmcuCm90aGVyIGZ1bmN0aW9ucyBhbHJlYWR5IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4 alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIu YyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgICAgICAgICAgIHwg MTggKysrKysrKysrKysrLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy94bWwuaCAgICAgICAgICAg ICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCA1ZTdiZDkzM2Fm Yy4uMWQ4OGNkZDJjYjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NDU0Miw3ICs0NTQyLDcgQEAgRXhlY0V2YWxYbWxFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJF dmFsU3RlcCAqb3ApCiAKIAkJCQkqb3AtPnJlc3ZhbHVlID0gUG9pbnRlckdldERhdHVtKHhtbHBh cnNlKGRhdGEsCiAJCQkJCQkJCQkJCQkJCSB4ZXhwci0+eG1sb3B0aW9uLAotCQkJCQkJCQkJCQkJ CQkgcHJlc2VydmVfd2hpdGVzcGFjZSkpOworCQkJCQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVz cGFjZSwgTlVMTCkpOwogCQkJCSpvcC0+cmVzbnVsbCA9IGZhbHNlOwogCQkJfQogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCAzOWZjMjdlMWYxMS4uODYxOGM3YTFiMTMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMzA3LDcgKzMwNyw3IEBAIGJwY2hhcihQR19GVU5D VElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBtYXhtYmxlbjsgaSA8IGxlbjsgaSsrKQogCQkJ CWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZv ciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5j CmluZGV4IGM4YWI5ZDYxYzY4Li42MzAxMTE1ZDYyNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNjU5 LDcgKzY1OSw3IEBAIHRleHR0b3htbChQR19GVU5DVElPTl9BUkdTKQogewogCXRleHQJICAgKmRh dGEgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKIAotCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShk YXRhLCB4bWxvcHRpb24sIHRydWUpKTsKKwlQR19SRVRVUk5fWE1MX1AoeG1scGFyc2UoZGF0YSwg eG1sb3B0aW9uLCB0cnVlLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0xMDI4LDE5ICsx MDI4LDI1IEBAIHhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAKIAogeG1sdHlwZSAqCi14bWxw YXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2Vy dmVfd2hpdGVzcGFjZSkKK3htbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0 aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpCiB7CiAj aWZkZWYgVVNFX0xJQlhNTAogCXhtbERvY1B0cglkb2M7CiAKIAlkb2MgPSB4bWxfcGFyc2UoZGF0 YSwgeG1sb3B0aW9uX2FyZywgcHJlc2VydmVfd2hpdGVzcGFjZSwKLQkJCQkJR2V0RGF0YWJhc2VF bmNvZGluZygpLCBOVUxMLCBOVUxMLCBOVUxMKTsKLQl4bWxGcmVlRG9jKGRvYyk7CisJCQkJCUdl dERhdGFiYXNlRW5jb2RpbmcoKSwgTlVMTCwgTlVMTCwgZXNjb250ZXh0KTsKKwlpZiAoZG9jKQor CQl4bWxGcmVlRG9jKGRvYyk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQlO T19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBOVUxMOworCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxM CisJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygi dW5zdXBwb3J0ZWQgWE1MIGZlYXR1cmUiKSwKKwkJCWVycmRldGFpbCgiVGhpcyBmdW5jdGlvbmFs aXR5IHJlcXVpcmVzIHRoZSBzZXJ2ZXIgdG8gYmUgYnVpbHQgd2l0aCBsaWJ4bWwgc3VwcG9ydC4i KSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggYi9z cmMvaW5jbHVkZS91dGlscy94bWwuaAppbmRleCA3MzJkYWM0N2JjNC4uYjE1MTY4YzQzMGUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L3htbC5oCkBAIC03Myw3ICs3Myw3IEBAIGV4dGVybiB4bWx0eXBlICp4bWxjb25jYXQoTGlzdCAq YXJncyk7CiBleHRlcm4geG1sdHlwZSAqeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAkJCQkJ CSAgIGNvbnN0IERhdHVtICpuYW1lZF9hcmd2YWx1ZSwgY29uc3QgYm9vbCAqbmFtZWRfYXJnbnVs bCwKIAkJCQkJCSAgIGNvbnN0IERhdHVtICphcmd2YWx1ZSwgY29uc3QgYm9vbCAqYXJnbnVsbCk7 Ci1leHRlcm4geG1sdHlwZSAqeG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxv cHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UpOworZXh0ZXJuIHhtbHR5cGUgKnht bHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVz ZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHBp KGNvbnN0IGNoYXIgKnRhcmdldCwgdGV4dCAqYXJnLCBib29sIGFyZ19pc19udWxsLCBib29sICpy ZXN1bHRfaXNfbnVsbCk7CiBleHRlcm4geG1sdHlwZSAqeG1scm9vdCh4bWx0eXBlICpkYXRhLCB0 ZXh0ICp2ZXJzaW9uLCBpbnQgc3RhbmRhbG9uZSk7CiBleHRlcm4gYm9vbCB4bWxfaXNfZG9jdW1l bnQoeG1sdHlwZSAqYXJnKTsKLS0gCjIuMzQuMQoK --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3q21 RnJvbSAwYmFiYjA3ZjUyNjM3ODIxMDNlYTE0OTIxNGE0NGMyMDRlZmFlNDM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6MzM6MDggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAwMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaXQvdmFyYml0IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKd2hlcmUgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlw ZSA9J2JpdCc6OnJlZ3R5cGUgb3IKY2FzdHNvdXJjZTo6cmVndHlwZSA9J3ZhcmJpdCc6OnJlZ3R5 cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSAgfCBjYXN0dGFy Z2V0ICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJpdCAgICAgICAgIHwgYmln aW50ICAgICAgfCAgICAgMjA3NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50 OCB8IGludDgKIGJpdCAgICAgICAgIHwgaW50ZWdlciAgICAgfCAgICAgMTY4NCB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50NCB8IGludDQKIGJpdCAgICAgICAgIHwgYml0ICAg ICAgICAgfCAgICAgMTY4NSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdCAgICAgICB8 IGJpdAogYml0IHZhcnlpbmcgfCBiaXQgdmFyeWluZyB8ICAgICAxNjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgdmFyYml0ICAgIHwgdmFyYml0Cig0IHJvd3MpCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1 M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92 YXJiaXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCmluZGV4IDIwNWE2N2RhZmM1Li42ZTli ODA4ZTIwYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYwpAQCAtNDAxLDcgKzQwMSw3IEBAIGJpdChQ R19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNF eHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBsZW5ndGggJWQgZG9lcyBub3QgbWF0Y2ggdHlw ZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihhcmcpLCBsZW4pKSk7CkBAIC03NTIsNyArNzUy LDcgQEAgdmFyYml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcp OwogCiAJaWYgKCFpc0V4cGxpY2l0KQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFf UklHSFRfVFJVTkNBVElPTiksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3Ig dHlwZSBiaXQgdmFyeWluZyglZCkiLAogCQkJCQkJbGVuKSkpOwpAQCAtMTU5MSw3ICsxNTkxLDcg QEAgYml0dG9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQg c3RyaW5nIGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihy ZXN1bHQpICogQklUU19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFM VUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTE2NzEsNyArMTY3MSw3IEBAIGJpdHRvaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJ LyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFS QklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAqIEJJVFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiYmln aW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --00000000000070083a0645f62eb4 Content-Type: application/x-patch; name="v16-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v16-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mj6ntq3t22 RnJvbSA1MWU0ZTI1NTg4NzdjY2JiMWJmZjZmY2JiZmY4ZDkyZWZiYWNjMWZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MDg6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx NiAwMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBieXRlYSB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l CmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2J5dGVhJzo6cmVn dHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogYnl0ZWEgICAgICB8IHNtYWxs aW50ICAgfCAgICAgNjM3MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJ5dGVhX2ludDIg fCBpbnQyCiBieXRlYSAgICAgIHwgaW50ZWdlciAgICB8ICAgICA2MzcxIHwgZSAgICAgICAgICAg fCBmICAgICAgICAgIHwgYnl0ZWFfaW50NCB8IGludDQKIGJ5dGVhICAgICAgfCBiaWdpbnQgICAg IHwgICAgIDYzNzIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQ4IHwgaW50 OAooMyByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZ NFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ieXRlYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKaW5k ZXggNmU3YjkxNGM1NjMuLmY0M2FkNmI0YWZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYnl0ZWEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYwpAQCAtMTAy Nyw3ICsxMDI3LDcgQEAgYnl0ZWFfaW50MihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sg dGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9m KHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAo RGF0dW0pIDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQllcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKTsKIApAQCAtMTA1Miw3ICsx MDUyLDcgQEAgYnl0ZWFfaW50NChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0 aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3Vs dCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQllcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpOwogCkBAIC0xMDc3LDcgKzEwNzcsNyBA QCBieXRlYV9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBieXRl IGFycmF5IGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChsZW4gPiBzaXplb2YocmVzdWx0KSkKLQkJ ZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJ CQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1z ZygiYmlnaW50IG91dCBvZiByYW5nZSIpKTsKIAotLSAKMi4zNC4xCgo= --00000000000070083a0645f62eb4--