Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ulLsa-00DwVr-1u for pgsql-hackers@arkaria.postgresql.org; Mon, 11 Aug 2025 06:19:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1ulLsY-00AJl9-Gu for pgsql-hackers@arkaria.postgresql.org; Mon, 11 Aug 2025 06:19:30 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ulLsX-00AJl1-Cu for pgsql-hackers@lists.postgresql.org; Mon, 11 Aug 2025 06:19:30 +0000 Received: from mail-vs1-xe2a.google.com ([2607:f8b0:4864:20::e2a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1ulLsP-001pXa-1J for pgsql-hackers@lists.postgresql.org; Mon, 11 Aug 2025 06:19:28 +0000 Received: by mail-vs1-xe2a.google.com with SMTP id ada2fe7eead31-4fc15e2c451so3113451137.2 for ; Sun, 10 Aug 2025 23:19:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754893161; x=1755497961; 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=ERdsP6eX50NoxQSqztGyJpUd68Ntdc3J0dLalAtnM1w=; b=BVsAMhvbEKmXwGEU4Ll3QgxEjTgfG8393xp6593QF1x6jNYjvCKw8ckaA3/SbKh/+B 5beXDv32RVeW4qQqqDvkF6i2Ta1D566WurI0pa15W7PzmzuskU5JOAbyWIWFcQOnA7fu Qc8tOztu/cFffGV4f9SBvvOu/AnKh4ZldvBFCptpxwvD7LzglmctQLyMt0nlph5CMcLE b1lWaLJ5gsElshHl13CHaP6t9lflCZnVmFzbdj6qZ+KLT7zjUSVG7qncCt4l1rQ4KtI2 n1OLeG2EQ/5yUoTJPLkmwuluacUrErdu7OsZDzVYY8lmAu4dzOL1YhnHqc1gIsbya9CJ VDrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754893161; x=1755497961; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ERdsP6eX50NoxQSqztGyJpUd68Ntdc3J0dLalAtnM1w=; b=dEOnmmTeIq62SPo47fdY1wHwhS6V/9qa544S5ycL/fcWMtGQCB0CCp9LwnC4U6lqqr AVT1A/BuCX+Vh28bYWjMcVj8e3JAR19lRcj1UADQWN7ifhG3sywfyzI0rIR2AiS4D6Cm ulrRYvtWqgvQmFDUrMx5KlWYZG+nRGDrRkbgUVsI2ztki2fFFvLpY6CYIXFk4jzV7DJ5 YMr34mmldKLlh3dAoKIurHQbl6rEOkJDgrJdl+pFnQIcHra516WDbQUh3LS2i6czWM9w UtjddXOSyoSdA30SXOcOn7v9jcz93kF5mGQ6Zg6NDfGbXZyeUD8F9Bvrc05ZugERzB2E xZCw== X-Forwarded-Encrypted: i=1; AJvYcCXZ+yKe6yz6zCKcJfYui6b+uVN7/WNxjh1OBpdynYq44r4z6Dj1PMKuKzAdsjrY2WI5zkWmfo8ygG6SHcGe@lists.postgresql.org X-Gm-Message-State: AOJu0YykiDMgSrFnYLEzUsdx06mdL+CQoz8iOF4SMO2PPMFZIQeP1k8N rDx6WA+PJX087c83TmIl06Yy5tnFF/DYXgMVYsuQuOTPiNXoVIHfHt526zbEF1ViwCHhwL8NSt6 g1CCUnFWA6fSMMe7OLGbcHd66I4MAy2I= X-Gm-Gg: ASbGncsbvArxo1BlVTpB8r02KMRUfhos7oPyEC37DAB8Ef9J2Nw9N+zTaCP4UkfcLB4 XuScltcLyAQkR6EuD2tWVsAc0prGj7Py3iAjOun5umD4Jk5TL3qDZGMH2wjBBe6yIWLE2fktqTu uU2AZQRgbd2BSyHFVIKhbWaU1zMF1B3PID91cIBJYMLmMzwHo+PzXgikXjRPX4hmeWtiZq/ZdE9 6wWR9B3M/aKN33wbP5xrCg2anb0ds+xrwDF1Mo= X-Google-Smtp-Source: AGHT+IFlF8j6xDFnjpZ10bw0Y41nXlal4Xx4a7h4saORHYSOHuydLPFU+3maWMEKz94sQYvSkhjwcC8YFZC/voetTmk= X-Received: by 2002:a05:6102:c92:b0:4fd:742f:331 with SMTP id ada2fe7eead31-5060f0ce14bmr4353314137.20.1754893161103; Sun, 10 Aug 2025 23:19:21 -0700 (PDT) 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, 11 Aug 2025 14:18:44 +0800 X-Gm-Features: Ac12FXw1_mc1_l70buhYw52ZoW2vQGfYnsZSJOSrKGJZQcKRuPLtSN_JgGtV6TQ Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Corey Huinker Cc: Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000007cc857063c10e7e3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007cc857063c10e7e3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Aug 5, 2025 at 12:10=E2=80=AFPM Corey Huinker wrote: >> >> In the end, it seems we need to make all these functions in the below >> query error safe. >> select castsource::regtype, casttarget::regtype, castfunc, >> castcontext,castmethod, pp.prosrc, pp.proname from pg_cast pc join pg_pr= oc pp on >> pp.oid =3D pc.castfunc and pc.castfunc > 0 >> order by castsource::regtype; >> It's a lot of work, but seems doable, after playing around with it. > > It is do-able. But that's just the cast functions that are part of core p= ostgres. > hi. it's doable for most of the data types. but I found geometric type related cast function refactoring to error safe is quite challenging, so I skip that part refactoring. >> >> I don't think we need to change the pg_cast catalog entry, >> we just need to make these function (pg_cast.castmethod) errors safe. > > That would break any user-defined cast functions that were not also error= safe, which is to say all of them. > > We need a way for user-defined cast functions to indicate whether or not = they are error safe, and handle both situations accordingly (i.e. fail a CA= ST ON DEFAULT when the user-defined cast is not error-safe). > I understand what you mean now. CREATE CAST can use built-in functions too, we have no way to check whether these CREATE CAST associated functions are error safe or not. for example: CREATE CAST (jsonpath AS bytea) WITH FUNCTION jsonpath_send (jsonpath ) AS ASSIGNMENT; select '$'::jsonpath::bytea; To avoid this situation, we have to add a new column to pg_cast to indicate whether a cast function is error-safe. It's unlikely a pg_cast entry has two functions, one is error safe, one is = not, adding pg_cast.casterrorsafefunc would not be that appropriate. so I choose pg_cast.casterrorsafe would be fine. pg_cast.casterrorsafe true means castfunc function is error safe, we can use it as safe cast evaluation (CAST... DEFAULT defexpr ON CONVERSION ERROR) please check the attached V6 script: v6-0001 to v6-0016 is about making existing pg_cast.castfunc function error safe. (commit message have associated query to explain the refactoring, as mentio= ned above, geometric and money associated type not refactored yet) v6-0017-make-ArrayCoerceExpr-error-safe.patch v6-0018-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch is about (CAST... DEFAULT defexpr ON CONVERSION ERROR). --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0016-error-safe-for-casting-character-varying-to-other-types-p.patch" Content-Disposition: attachment; filename="v6-0016-error-safe-for-casting-character-varying-to-other-types-p.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzjl2 RnJvbSA4ZWZjMTZjNGIyZTFjNmZhMTRhNDg1MTMyNTk1NmMxMDIzMmU3NWU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFN1biwgMTAgQXVnIDIwMjUgMDE6MzY6MTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDE2LzE4XSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGNoYXJhY3RlciB2YXJ5aW5nIHRvIG90aGVy CiB0eXBlcyBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJn ZXQ6OnJlZ3R5cGUsIGNhc3RmdW5jLCBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMs IHBwLnByb25hbWUKZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBw Yy5jYXN0ZnVuYyBhbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZAooY2FzdHNvdXJjZTo6cmVndHlwZSA9 ICdjaGFyYWN0ZXIgdmFyeWluZyc6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5 cGU7CgogICAgY2FzdHNvdXJjZSAgICAgfCAgICBjYXN0dGFyZ2V0ICAgICB8IGNhc3RmdW5jIHwg Y2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KIGNoYXJhY3RlciB2YXJ5 aW5nIHwgcmVnY2xhc3MgICAgICAgICAgfCAgICAgMTA3OSB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IHRleHRfcmVnY2xhc3MgfCByZWdjbGFzcwogY2hhcmFjdGVyIHZhcnlpbmcgfCAiY2hh ciIgICAgICAgICAgICB8ICAgICAgOTQ0IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4 dF9jaGFyICAgICB8IGNoYXIKIGNoYXJhY3RlciB2YXJ5aW5nIHwgbmFtZSAgICAgICAgICAgICAg fCAgICAgMTQwMCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfbmFtZSAgICAgfCBu YW1lCiBjaGFyYWN0ZXIgdmFyeWluZyB8IHhtbCAgICAgICAgICAgICAgIHwgICAgIDI4OTYgfCBl ICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICAgIHwgeG1sCiBjaGFyYWN0ZXIg dmFyeWluZyB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA2NjkgfCBpICAgICAgICAgICB8IGYg ICAgICAgICAgfCB2YXJjaGFyICAgICAgIHwgdmFyY2hhcgooNSByb3dzKQoKdGV4dHRveG1sLCB0 ZXh0X3JlZ2NsYXNzIHdhcyByZWZhY3RvcmVkIGFzIGVycm9yIHNhZmUgaW4gcHJpb3IgcGF0Y2gu CnRleHRfY2hhciwgdGV4dF9uYW1lIGlzIGFscmVhZHkgZXJyb3Igc2FmZS4KLS0tCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvdmFyY2hhci5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3ZhcmNoYXIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKaW5kZXggNWNiNWM4 YzQ2ZjkuLjA4ZjFiZjVhMjRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFy Y2hhci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKQEAgLTYzNCw3ICs2 MzQsNyBAQCB2YXJjaGFyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJewogCQlmb3IgKGkgPSBtYXhtYmxl bjsgaSA8IGxlbjsgaSsrKQogCQkJaWYgKHNfZGF0YVtpXSAhPSAnICcpCi0JCQkJZXJlcG9ydChF UlJPUiwKKwkJCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9TVFJJTkdfREFUQV9SSUdIVF9UUlVOQ0FUSU9OKSwKIAkJCQkJCSBlcnJt c2coInZhbHVlIHRvbyBsb25nIGZvciB0eXBlIGNoYXJhY3RlciB2YXJ5aW5nKCVkKSIsCiAJCQkJ CQkJCW1heGxlbikpKTsKLS0gCjIuMzQuMQoK --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0015-error-safe-for-casting-timestamp-to-other-types-per-pg_ca.patch" Content-Disposition: attachment; filename="v6-0015-error-safe-for-casting-timestamp-to-other-types-per-pg_ca.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzjs3 RnJvbSBiMWNkMjE5NWJlZWZhN2E0OTk1ZGNiMmVjOGEzOTBmZjk5Y2E3YzRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFN1biwgMTAgQXVnIDIwMjUgMDE6MzM6MzYgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDE1LzE4XSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSd0aW1lc3Rh bXAnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgICAgICAgY2Fz dHNvdXJjZSAgICAgICAgICB8ICAgICAgICAgY2FzdHRhcmdldCAgICAgICAgICB8IGNhc3RmdW5j IHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgICAgIHByb3NyYyAgICAgICAgIHwgICBw cm9uYW1lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25l IHwgZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDIwMjkgfCBhICAgICAgICAgICB8 IGYgICAgICAgICAgfCB0aW1lc3RhbXBfZGF0ZSAgICAgICAgfCBkYXRlCiB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25lICAgICAgfCAgICAgMTMxNiB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcF90aW1lICAgICAgICB8IHRpbWUK IHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8IHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSAg ICB8ICAgICAyMDI4IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX3RpbWVz dGFtcHR6IHwgdGltZXN0YW1wdHoKIHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8IHRpbWVz dGFtcCB3aXRob3V0IHRpbWUgem9uZSB8ICAgICAxOTYxIHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgdGltZXN0YW1wX3NjYWxlICAgICAgIHwgdGltZXN0YW1wCig0IHJvd3MpCi0tLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYyAgICAgIHwgMTMgKysrKysrKysrKystLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jIHwgMTcgKysrKysrKysrKysrKysrLS0KIDIgZmls ZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Rh dGUuYwppbmRleCAxMTFiZmQ4ZjUxOS4uYzU1NjJiNTYzZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpA QCAtMTM3Myw3ICsxMzczLDE2IEBAIHRpbWVzdGFtcF9kYXRlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ VGltZXN0YW1wCXRpbWVzdGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJ cmVzdWx0OwogCi0JcmVzdWx0ID0gdGltZXN0YW1wMmRhdGVfb3B0X292ZXJmbG93KHRpbWVzdGFt cCwgTlVMTCk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwkJcmVzdWx0ID0gdGlt ZXN0YW1wdHoyZGF0ZV9vcHRfb3ZlcmZsb3codGltZXN0YW1wLCBOVUxMKTsKKwllbHNlCisJewor CQlpbnQJCQlvdmVyZmxvdzsKKwkJcmVzdWx0ID0gdGltZXN0YW1wMmRhdGVfb3B0X292ZXJmbG93 KHRpbWVzdGFtcCwgJm92ZXJmbG93KTsKKworCQlpZiAob3ZlcmZsb3cgIT0gMCkKKwkJCVBHX1JF VFVSTl9OVUxMKCk7CisJfQogCVBHX1JFVFVSTl9EQVRFQURUKHJlc3VsdCk7CiB9CiAKQEAgLTIw ODksNyArMjA5OCw3IEBAIHRpbWVzdGFtcF90aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgTlVMTCwgdG0sICZm c2VjLCBOVUxMLCBOVUxMKSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFM VUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikp KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IDg2NDhhMTZkYjdmLi5iNDBkZmQy MjRkMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMzUyLDcgKzM1Miw4IEBAIHRp bWVzdGFtcF9zY2FsZShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gdGltZXN0YW1wOwog Ci0JQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgTlVMTCk7CisJaWYg KCFBZGp1c3RUaW1lc3RhbXBGb3JUeXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBmY2luZm8tPmNvbnRl eHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1RJTUVTVEFNUChyZXN1bHQp OwogfQpAQCAtNjQ1MSw3ICs2NDUyLDE5IEBAIHRpbWVzdGFtcF90aW1lc3RhbXB0eihQR19GVU5D VElPTl9BUkdTKQogewogCVRpbWVzdGFtcAl0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1Q KDApOwogCi0JUEdfUkVUVVJOX1RJTUVTVEFNUFRaKHRpbWVzdGFtcDJ0aW1lc3RhbXB0eih0aW1l c3RhbXApKTsKKwlpZiAobGlrZWx5KCFmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fVElN RVNUQU1QVFoodGltZXN0YW1wMnRpbWVzdGFtcHR6KHRpbWVzdGFtcCkpOworCWVsc2UKKwl7CisJ CVRpbWVzdGFtcFR6IHJlc3VsdDsKKwkJaW50CQkJb3ZlcmZsb3c7CisKKwkJcmVzdWx0ID0gdGlt ZXN0YW1wMnRpbWVzdGFtcHR6X29wdF9vdmVyZmxvdyh0aW1lc3RhbXAsICZvdmVyZmxvdyk7CisJ CWlmIChvdmVyZmxvdyAhPSAwKQorCQkJUEdfUkVUVVJOX05VTEwoKTsKKwkJZWxzZQorCQkJUEdf UkVUVVJOX1RJTUVTVEFNUFRaKHJlc3VsdCk7CisJfQogfQogCiAvKgotLSAKMi4zNC4xCgo= --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0014-error-safe-for-casting-timestamptz-to-other-types-per-pg_.patch" Content-Disposition: attachment; filename="v6-0014-error-safe-for-casting-timestamptz-to-other-types-per-pg_.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzjz4 RnJvbSBhNmU1MzhkMWZmZGQwNTMwODc5YjdhZDY4MTE4MDk0NGM3MzkwZWVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFN1biwgMTAgQXVnIDIwMjUgMDE6MzE6MDkgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDE0LzE4XSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcHR6IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLCBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnBy b25hbWUKZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0 ZnVuYwphbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlwZSA9J3RpbWVz dGFtcHR6Jzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICAgICAg Y2FzdHNvdXJjZSAgICAgICAgfCAgICAgICAgIGNhc3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVu YyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgICBwcm9zcmMgICAgICAgICB8ICAg cHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IGRh dGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAxMTc4IHwgYSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgdGltZXN0YW1wdHpfZGF0ZSAgICAgIHwgZGF0ZQogdGltZXN0YW1wIHdpdGggdGlt ZSB6b25lIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSAgICAgIHwgICAgIDIwMTkgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el90aW1lICAgICAgfCB0aW1lCiB0aW1lc3Rh bXAgd2l0aCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCAgICAgMjAy NyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X3RpbWVzdGFtcCB8IHRp bWVzdGFtcAogdGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZSB3aXRoIHRpbWUgem9uZSAg ICAgICAgIHwgICAgIDEzODggfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0 el90aW1ldHogICAgfCB0aW1ldHoKIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWVzdGFt cCB3aXRoIHRpbWUgem9uZSAgICB8ICAgICAxOTY3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAg IHwgdGltZXN0YW1wdHpfc2NhbGUgICAgIHwgdGltZXN0YW1wdHoKKDUgcm93cykKLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAxNiArKysrKysrKysrKysrLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgfCAxNyArKysrKysrKysrKysrKystLQogMiBm aWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv ZGF0ZS5jCmluZGV4IDRmMGYzZDI2OTg5Li4xMTFiZmQ4ZjUxOSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j CkBAIC0xNDY4LDcgKzE0NjgsMTcgQEAgdGltZXN0YW1wdHpfZGF0ZShQR19GVU5DVElPTl9BUkdT KQogCVRpbWVzdGFtcFR6IHRpbWVzdGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0 ZUFEVAkJcmVzdWx0OwogCi0JcmVzdWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9vcHRfb3ZlcmZsb3co dGltZXN0YW1wLCBOVUxMKTsKKwlpZiAobGlrZWx5KCFmY2luZm8tPmNvbnRleHQpKQorCQlyZXN1 bHQgPSB0aW1lc3RhbXB0ejJkYXRlX29wdF9vdmVyZmxvdyh0aW1lc3RhbXAsIE5VTEwpOworCWVs c2UKKwl7CisJCWludAkJCW92ZXJmbG93OworCQlyZXN1bHQgPSB0aW1lc3RhbXB0ejJkYXRlX29w dF9vdmVyZmxvdyh0aW1lc3RhbXAsICZvdmVyZmxvdyk7CisKKwkJaWYgKG92ZXJmbG93ICE9IDAp CisJCQlQR19SRVRVUk5fTlVMTCgpOworCX0KKwogCVBHX1JFVFVSTl9EQVRFQURUKHJlc3VsdCk7 CiB9CiAKQEAgLTIxMTAsNyArMjEyMCw3IEBAIHRpbWVzdGFtcHR6X3RpbWUoUEdfRlVOQ1RJT05f QVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0aW1lc3RhbXAydG0odGltZXN0YW1w LCAmdHosIHRtLCAmZnNlYywgTlVMTCwgTlVMTCkgIT0gMCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RF X0RBVEVUSU1FX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygidGltZXN0YW1wIG91 dCBvZiByYW5nZSIpKSk7CiAKQEAgLTMwMjksNyArMzAzOSw3IEBAIHRpbWVzdGFtcHR6X3RpbWV0 eihQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJaWYgKHRpbWVzdGFt cDJ0bSh0aW1lc3RhbXAsICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxMKSAhPSAwKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNn KCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3RpbWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5j CmluZGV4IGYxZTk2Yjg0YTZmLi44NjQ4YTE2ZGI3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3RpbWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3Rh bXAuYwpAQCAtODc1LDcgKzg3NSw4IEBAIHRpbWVzdGFtcHR6X3NjYWxlKFBHX0ZVTkNUSU9OX0FS R1MpCiAKIAlyZXN1bHQgPSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JUeXBtb2Qo JnJlc3VsdCwgdHlwbW9kLCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgm cmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAK IAlQR19SRVRVUk5fVElNRVNUQU1QVFoocmVzdWx0KTsKIH0KQEAgLTY1MjgsNyArNjUyOSwxOSBA QCB0aW1lc3RhbXB0el90aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXBU eiB0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QVFooMCk7CiAKLQlQR19SRVRVUk5fVElN RVNUQU1QKHRpbWVzdGFtcHR6MnRpbWVzdGFtcCh0aW1lc3RhbXApKTsKKwlpZiAobGlrZWx5KCFm Y2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fVElNRVNUQU1QKHRpbWVzdGFtcHR6MnRpbWVz dGFtcCh0aW1lc3RhbXApKTsKKwllbHNlCisJeworCQlpbnQJCQlvdmVyZmxvdzsKKwkJVGltZXN0 YW1wCXJlc3VsdDsKKworCQlyZXN1bHQgPSB0aW1lc3RhbXB0ejJ0aW1lc3RhbXBfb3B0X292ZXJm bG93KHRpbWVzdGFtcCwgJm92ZXJmbG93KTsKKwkJaWYgKG92ZXJmbG93ICE9IDApCisJCQlQR19S RVRVUk5fTlVMTCgpOworCQllbHNlCisJCQlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CisJ fQogfQogCiAvKgotLSAKMi4zNC4xCgo= --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0017-make-ArrayCoerceExpr-error-safe.patch" Content-Disposition: attachment; filename="v6-0017-make-ArrayCoerceExpr-error-safe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzjd1 RnJvbSAyZDZkYWYzNmEyOTRmNWZmNjRiMzBiNDUzYmIzMTllMDkxMTRjMWQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFN1biwgMTAgQXVnIDIwMjUgMDE6NDE6MTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDE3LzE4XSBtYWtlIEFycmF5Q29lcmNlRXhwciBlcnJvciBzYWZlCgpzaW1pbGFyIHRvIGh0dHBz Oi8vZ2l0LnBvc3RncmVzcWwub3JnL2NnaXQvcG9zdGdyZXNxbC5naXQvY29tbWl0Lz9pZD1hYWFm OTQ0OWVjNmJlNjJjYjBkMzBlZDM1ODhkYzM4NGY1NjI3NGJmCi0tLQogc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHIuYyAgICAgICB8IDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYyB8IDcgKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3Mu YyAgICB8IDcgKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggZjE1Njk4NzliNTIuLjkyMWVjNGUwYmMxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTE3MDEsNiArMTcwMSw3IEBAIEV4ZWNJbml0RXhwclJlYyhF eHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCiAJCQkJZWxlbXN0YXRlLT5pbm5lcm1vc3Rf Y2FzZXZhbCA9IChEYXR1bSAqKSBwYWxsb2Moc2l6ZW9mKERhdHVtKSk7CiAJCQkJZWxlbXN0YXRl LT5pbm5lcm1vc3RfY2FzZW51bGwgPSAoYm9vbCAqKSBwYWxsb2Moc2l6ZW9mKGJvb2wpKTsKKwkJ CQllbGVtc3RhdGUtPmVzY29udGV4dCA9IHN0YXRlLT5lc2NvbnRleHQ7CiAKIAkJCQlFeGVjSW5p dEV4cHJSZWMoYWNvZXJjZS0+ZWxlbWV4cHIsIGVsZW1zdGF0ZSwKIAkJCQkJCQkJJmVsZW1zdGF0 ZS0+cmVzdmFsdWUsICZlbGVtc3RhdGUtPnJlc251bGwpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNF eHBySW50ZXJwLmMKaW5kZXggNjdmNGUwMGVhYzQuLjk5ODY3NGMxODBkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAgLTM2NDQsNiArMzY0NCwxMyBAQCBFeGVjRXZhbEFy cmF5Q29lcmNlKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsIEV4cHJDb250ZXh0 ICplY29udGV4dCkKIAkJCQkJCQkgIGVjb250ZXh0LAogCQkJCQkJCSAgb3AtPmQuYXJyYXljb2Vy Y2UucmVzdWx0ZWxlbXR5cGUsCiAJCQkJCQkJICBvcC0+ZC5hcnJheWNvZXJjZS5hbXN0YXRlKTsK KworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKG9wLT5kLmFycmF5Y29lcmNlLmVsZW1leHByc3Rh dGUtPmVzY29udGV4dCkpCisJeworCQkqb3AtPnJlc3ZhbHVlID0gKERhdHVtKSAwOworCQkqb3At PnJlc251bGwgPSB0cnVlOworCX0KKwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2FycmF5ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNz LmMKaW5kZXggYzhmNTNjNmZiZTcuLmI1Zjk4YmYyMmY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJh eWZ1bmNzLmMKQEAgLTMyODgsNiArMzI4OCwxMyBAQCBhcnJheV9tYXAoRGF0dW0gYXJyYXlkLAog CQkvKiBBcHBseSB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiB0byBzb3VyY2UgZWxlbWVudCAqLwogCQl2 YWx1ZXNbaV0gPSBFeGVjRXZhbEV4cHIoZXhwcnN0YXRlLCBlY29udGV4dCwgJm51bGxzW2ldKTsK IAorCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChleHByc3RhdGUtPmVzY29udGV4dCkpCisJCXsK KwkJCXBmcmVlKHZhbHVlcyk7CisJCQlwZnJlZShudWxscyk7CisJCQlyZXR1cm4gKERhdHVtKSAw OworCQl9CisKIAkJaWYgKG51bGxzW2ldKQogCQkJaGFzbnVsbHMgPSB0cnVlOwogCQllbHNlCi0t IAoyLjM0LjEKCg== --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0018-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Disposition: attachment; filename="v6-0018-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwziw0 RnJvbSA1MWJlZjE4YjRjYzEwMjU4NDhlZjc2MDA3Mzc0NDliODYwMTU1MDliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMTEgQXVnIDIwMjUgMTQ6MTE6NDIgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDE4LzE4XSBDQVNUKGV4cHIgQVMgbmV3dHlwZSBERUZBVUxUIE9OIEVSUk9SKQoKTm93IHRoYXQg dGhlIHR5cGUgY29lcmNpb24gbm9kZSBpcyBlcnJvci1zYWZlLCB3ZSBhbHNvIG5lZWQgdG8gZW5z dXJlIHRoYXQgd2hlbgphIGNvZXJjaW9uIGZhaWxzLCBpdCBmYWxscyBiYWNrIHRvIGV2YWx1YXRp bmcgdGhlIGRlZmF1bHQgbm9kZS4KZHJhZnQgZG9jIGFsc28gYWRkZWQuCgpXZSBjYW5ub3Qgc2lt cGx5IHByb2hpYml0IHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgaW4gcGdfY2FzdCBmb3Igc2FmZSBj YXN0CmV2YWx1YXRpb24gYmVjYXVzZSBDUkVBVEUgQ0FTVCBjYW4gYWxzbyB1dGlsaXplIGJ1aWx0 LWluIGZ1bmN0aW9ucy4gU28sIHRvCmNvbXBsZXRlbHkgZGlzYWxsb3cgY3VzdG9tIGNhc3RzIGNy ZWF0ZWQgdmlhIENSRUFURSBDQVNUIHVzZWQgaW4gc2FmZSBjYXN0CmV2YWx1YXRpb24sIGEgbmV3 IGZpZWxkIGluIHBnX2Nhc3Qgd291bGQgdW5mb3J0dW5hdGVseSBiZSBuZWNlc3NhcnkuCgpbMF06 IGh0dHBzOi8vZ2l0LnBvc3RncmVzcWwub3JnL2NnaXQvcG9zdGdyZXNxbC5naXQvY29tbWl0Lz9p ZD1hYWFmOTQ0OWVjNmJlNjJjYjBkMzBlZDM1ODhkYzM4NGY1NjI3NGJmCmRpc2N1c3Npb246IGh0 dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUz VHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCgpkZW1vOgpTRUxFQ1QgQ0FTVCgnMScgQVMgZGF0 ZSAgREVGQVVMVCAnMjAxMS0wMS0wMScgT04gRVJST1IpLAogICAgICAgQ0FTVCgnezIzNCxkZWYs NTY3fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAney0xMDExfScgT04gRVJST1IpOwog ICAgZGF0ZSAgICB8ICBpbnQ0Ci0tLS0tLS0tLS0tLSstLS0tLS0tLS0KIDIwMTEtMDEtMDEgfCB7 LTEwMTF9Ci0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgfCAg MTEgKwogZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sICAgICAgICAgICAgICAgICAgfCAgMTUgKwog c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgfCAgODMgKysrLQogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgfCAgMzAgKysKIHNyYy9iYWNrZW5kL2pp dC9sbHZtL2xsdm1qaXRfZXhwci5jICAgICAgIHwgIDQ5ICsrCiBzcmMvYmFja2VuZC9ub2Rlcy9u b2RlRnVuY3MuYyAgICAgICAgICAgICB8ICA2NyArKysKIHNyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5 anVtYmxlZnVuY3MuYyAgICAgIHwgIDE0ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2Ns YXVzZXMuYyAgICAgIHwgIDE5ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAg ICAgICAgIHwgIDMxICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAg ICB8IDM0NSArKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5j ICAgICAgICAgfCAgMTQgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYyAgICAgICAg ICAgfCAgMTMgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3MuYyAgICAgICAgfCAg IDYgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgfCAgMTUgKwog c3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgICAgICAgICAgICAgfCAgMTMgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCAgICAgICAgICAgfCAzMDIgKysrKysrLS0tLS0tCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaCAgICAgICAgICAgICB8ICAgNCArCiBzcmMvaW5j bHVkZS9leGVjdXRvci9leGVjRXhwci5oICAgICAgICAgICB8ICAgOCArCiBzcmMvaW5jbHVkZS9m bWdyLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaCAgICAgICAgICAgICB8ICAzMCArKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgg ICAgICAgICAgICAgfCAgMzUgKysKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmggICAg ICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQgICAgICAg IHwgNTU2ICsrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y3JlYXRlX2Nhc3Qub3V0IHwgICA1ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nh bml0eS5vdXQgIHwgIDI0ICstCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAg ICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwgICAgICAgICAgICAg fCAyNTkgKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsICAg ICAgfCAgIDEgKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgfCAg IDMgKwogMzEgZmlsZXMgY2hhbmdlZCwgMTc5MyBpbnNlcnRpb25zKCspLCAxNzMgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91 dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxv Z3Muc2dtbAppbmRleCBkYThhNzg4MjU4MC4uNjM5OGE2YTAzMzkgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBA IC0xODQ2LDYgKzE4NDYsMTcgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJh dGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICA8bGl0 ZXJhbD5iPC9saXRlcmFsPiBtZWFucyB0aGF0IHRoZSB0eXBlcyBhcmUgYmluYXJ5LWNvZXJjaWJs ZSwgdGh1cyBubyBjb252ZXJzaW9uIGlzIHJlcXVpcmVkLgogICAgICAgPC9wYXJhPjwvZW50cnk+ CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5jYXN0ZXJyb3JzYWZlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgaW5kaWNhdGVzIHdoZXRoZXIg dGhlIDxzdHJ1Y3RmaWVsZD5jYXN0ZnVuYzwvc3RydWN0ZmllbGQ+IGZ1bmN0aW9uIGlzIGVycm9y LXNhZmUuCisgICAgICAgSWYgdHJ1ZSwgdGhlIDxzdHJ1Y3RmaWVsZD5jYXN0ZnVuYzwvc3RydWN0 ZmllbGQ+IGZ1bmN0aW9uIGlzIGVycm9yLXNhZmU7IGlmIGZhbHNlLCBpdCBpcyBub3QuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICA8L3Rib2R5PgogICAgPC90Z3Jv dXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwgYi9k b2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKaW5kZXggOTE2MTg5YTdkNjguLjQ4NTRiNzg5NjZlIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5 bnRheC5zZ21sCkBAIC0yMTA0LDYgKzIxMDQsMjEgQEAgQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHBy ZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPgog ICAgIFRoZSA8bGl0ZXJhbD5DQVNUPC9saXRlcmFsPiBzeW50YXggY29uZm9ybXMgdG8gU1FMOyB0 aGUgc3ludGF4IHdpdGgKICAgICA8bGl0ZXJhbD46OjwvbGl0ZXJhbD4gaXMgaGlzdG9yaWNhbCA8 cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CiAgICAgdXNhZ2UuCisgICAgVGhl IGFsdGVybmF0aXZlIHN5bnRheCBpcworPHN5bm9wc2lzPgorQ0FTVCAoIDxyZXBsYWNlYWJsZT5l eHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxl PiBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SICkKKzwvc3lub3BzaXM+CisgICA8L3BhcmE+CisK KyAgIDxwYXJhPgorPHN5bm9wc2lzPgorQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9y ZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPiBERUZBVUxUIDxy ZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gT04gQ09OVkVSU0lPTiBFUlJPUiAp Cis8L3N5bm9wc2lzPgorICAgIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHF1ZXJ5IHdpbGwg ZXZhbHVhdGUgdGhlIGRlZmF1bHQgZXhwcmVzc2lvbiBhbmQgcmV0dXJuIDQyLgorICAgIFRPRE86 IG1vcmUgZXhwbGFuYXRpb24KKzxwcm9ncmFtbGlzdGluZz4KK1NFTEVDVCAoQ0FTVCgnZXJyb3In IEFTIGludGVnZXIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7Cis8L3Byb2dyYW1s aXN0aW5nPgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfY2FzdC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXgg MTc3M2M5YzU0OTEuLjZmZTY1ZDI0ZDMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX2Nhc3QuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwpAQCAtODQsNiAr ODQsNyBAQCBDYXN0Q3JlYXRlKE9pZCBzb3VyY2V0eXBlaWQsIE9pZCB0YXJnZXR0eXBlaWQsCiAJ dmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0ZnVuYyAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShmdW5j aWQpOwogCXZhbHVlc1tBbnVtX3BnX2Nhc3RfY2FzdGNvbnRleHQgLSAxXSA9IENoYXJHZXREYXR1 bShjYXN0Y29udGV4dCk7CiAJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0bWV0aG9kIC0gMV0gPSBD aGFyR2V0RGF0dW0oY2FzdG1ldGhvZCk7CisJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0ZXJyb3Jz YWZlIC0gMV0gPSBCb29sR2V0RGF0dW0oZmFsc2UpOwogCiAJdHVwbGUgPSBoZWFwX2Zvcm1fdHVw bGUoUmVsYXRpb25HZXREZXNjcihyZWxhdGlvbiksIHZhbHVlcywgbnVsbHMpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY0V4cHIuYwppbmRleCA5MjFlYzRlMGJjMS4uZWFlZDJkMmJlNjcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY0V4cHIuYwpAQCAtOTksNiArOTksOSBAQCBzdGF0aWMgdm9pZCBFeGVjQnVpbGRBZ2dU cmFuc0NhbGwoRXhwclN0YXRlICpzdGF0ZSwgQWdnU3RhdGUgKmFnZ3N0YXRlLAogc3RhdGljIHZv aWQgRXhlY0luaXRKc29uRXhwcihKc29uRXhwciAqanNleHByLCBFeHByU3RhdGUgKnN0YXRlLAog CQkJCQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKIAkJCQkJCQkgRXhwckV2YWxTdGVw ICpzY3JhdGNoKTsKK3N0YXRpYyB2b2lkIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihTYWZlVHlw ZUNhc3RFeHByICpzdGNleHByLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJCQkJIERhdHVtICpy ZXN2LCBib29sICpyZXNudWxsLAorCQkJCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCk7CiBz dGF0aWMgdm9pZCBFeGVjSW5pdEpzb25Db2VyY2lvbihFeHByU3RhdGUgKnN0YXRlLCBKc29uUmV0 dXJuaW5nICpyZXR1cm5pbmcsCiAJCQkJCQkJCSBFcnJvclNhdmVDb250ZXh0ICplc2NvbnRleHQs IGJvb2wgb21pdF9xdW90ZXMsCiAJCQkJCQkJCSBib29sIGV4aXN0c19jb2VyY2UsCkBAIC0yMTc4 LDYgKzIxODEsMTQgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3Rh dGUsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7 CisJCQkJU2FmZVR5cGVDYXN0RXhwciAgICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0 RXhwciwgbm9kZSk7CisKKwkJCQlFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIoc3RjZXhwciwgc3Rh dGUsIHJlc3YsIHJlc251bGwsICZzY3JhdGNoKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNl IFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCUNvYWxlc2NlRXhwciAqY29hbGVzY2UgPSAoQ29h bGVzY2VFeHByICopIG5vZGU7CkBAIC0yNzQ0LDcgKzI3NTUsNyBAQCBFeGVjSW5pdEZ1bmMoRXhw ckV2YWxTdGVwICpzY3JhdGNoLCBFeHByICpub2RlLCBMaXN0ICphcmdzLCBPaWQgZnVuY2lkLAog CiAJLyogSW5pdGlhbGl6ZSBmdW5jdGlvbiBjYWxsIHBhcmFtZXRlciBzdHJ1Y3R1cmUgdG9vICov CiAJSW5pdEZ1bmN0aW9uQ2FsbEluZm9EYXRhKCpmY2luZm8sIGZsaW5mbywKLQkJCQkJCQkgbmFy Z3MsIGlucHV0Y29sbGlkLCBOVUxMLCBOVUxMKTsKKwkJCQkJCQkgbmFyZ3MsIGlucHV0Y29sbGlk LCAoTm9kZSAqKSBzdGF0ZS0+ZXNjb250ZXh0LCBOVUxMKTsKIAogCS8qIEtlZXAgZXh0cmEgY29w aWVzIG9mIHRoaXMgaW5mbyB0byBzYXZlIGFuIGluZGlyZWN0aW9uIGF0IHJ1bnRpbWUgKi8KIAlz Y3JhdGNoLT5kLmZ1bmMuZm5fYWRkciA9IGZsaW5mby0+Zm5fYWRkcjsKQEAgLTQ3NDIsNiArNDc1 Myw3NiBAQCBFeGVjQnVpbGRQYXJhbVNldEVxdWFsKFR1cGxlRGVzYyBkZXNjLAogCXJldHVybiBz dGF0ZTsKIH0KIAorLyoKKyAqIFB1c2ggc3RlcHMgdG8gZXZhbHVhdGUgYSBTYWZlVHlwZUNhc3RF eHByIGFuZCBpdHMgdmFyaW91cyBzdWJzaWRpYXJ5CisgKiBleHByZXNzaW9ucy4gV2UgYWxyZWFk eSBoYW5kbGUgZXJyb3JzIHNvZnRseSBmb3IgY29lcmNpb24gbm9kZXMgbGlrZQorICogQ29lcmNl VmlhSU8sIENvZXJjZVRvRG9tYWluLCBBcnJheUNvZXJjZUV4cHIsIGFuZCBzb21lIEZ1bmNFeHBy cy4gSG93ZXZlciwKKyAqIG1vc3Qgb2YgRnVuY0V4cHJzIG5vZGUgKGZvciBleGFtcGxlLCBpbnQ4 NCkgaXMgbm90IGVycm9yLXNhZmUuIEZvciB0aGVzZQorICogY2FzZXMsIHdlIGluc3RlYWQgd3Jh cCB0aGUgc291cmNlIGV4cHJlc3Npb24gYW5kIHRhcmdldCB0eXBlIGluZm9ybWF0aW9uCisgKiB3 aXRoaW4gYSBDb2VyY2VWaWFJTyBub2RlLgorICovCitzdGF0aWMgdm9pZAorRXhlY0luaXRTYWZl VHlwZUNhc3RFeHByKFNhZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHIgLCBFeHByU3RhdGUgKnN0YXRl LAorCQkJCQkJIERhdHVtICpyZXN2LCBib29sICpyZXNudWxsLAorCQkJCQkJIEV4cHJFdmFsU3Rl cCAqc2NyYXRjaCkKK3sKKwkvKgorCSAqIElmIGNvZXJjaW9uIHRvIHRoZSB0YXJnZXQgdHlwZSBm YWlscywgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgZXhwcmVzc2lvbgorCSAqIHNwZWNpZmllZCBp biB0aGUgT04gQ09OVkVSU0lPTiBFUlJPUiBjbGF1c2UuCisJKi8KKwlpZiAoc3RjZXhwci0+Y2Fz dF9leHByID09IE5VTEwpCisJeworCQlFeGVjSW5pdEV4cHJSZWMoKEV4cHIgKikgc3RjZXhwci0+ ZGVmYXVsdF9leHByLAorCQkJCQkJc3RhdGUsIHJlc3YsIHJlc251bGwpOworCQlyZXR1cm47CisJ fQorCWVsc2UKKwl7CisJCVNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0ZTsKKwkJRXJyb3JTYXZl Q29udGV4dCAqZXNjb250ZXh0OworCQlFcnJvclNhdmVDb250ZXh0ICpzYXZlZF9lc2NvbnRleHQ7 CisJCUxpc3QJICAgKmp1bXBzX3RvX2VuZCA9IE5JTDsKKworCQlzdGNzdGF0ZSA9IHBhbGxvYzAo c2l6ZW9mKFNhZmVUeXBlQ2FzdFN0YXRlKSk7CisJCXN0Y3N0YXRlLT5zdGNleHByID0gc3RjZXhw cjsKKwkJc3Rjc3RhdGUtPmVzY29udGV4dC50eXBlID0gVF9FcnJvclNhdmVDb250ZXh0OworCQll c2NvbnRleHQgPSAmc3Rjc3RhdGUtPmVzY29udGV4dDsKKwkJc3RhdGUtPmVzY29udGV4dCA9IGVz Y29udGV4dDsKKworCQkvKiBldmFsdWF0ZSBhcmd1bWVudCBleHByZXNzaW9uIGludG8gc3RlcCdz IHJlc3VsdCBhcmVhICovCisJCUV4ZWNJbml0RXhwclJlYygoRXhwciAqKSBzdGNleHByLT5jYXN0 X2V4cHIsCisJCQkJCQlzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisKKwkJc2NyYXRjaC0+b3Bjb2Rl ID0gRUVPUF9TQUZFVFlQRV9DQVNUOworCQlzY3JhdGNoLT5kLnN0Y2V4cHIuc3Rjc3RhdGUgPSBz dGNzdGF0ZTsKKwkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgc2NyYXRjaCk7CisKKwkJc3Rjc3Rh dGUtPmp1bXBfZXJyb3IgPSBzdGF0ZS0+c3RlcHNfbGVuOworCQkvKiBKVU1QIHRvIGVuZCBpZiBm YWxzZSwgdGhhdCBpcywgc2tpcCB0aGUgT04gRVJST1IgZXhwcmVzc2lvbi4gKi8KKwkJanVtcHNf dG9fZW5kID0gbGFwcGVuZF9pbnQoanVtcHNfdG9fZW5kLCBzdGF0ZS0+c3RlcHNfbGVuKTsKKwkJ c2NyYXRjaC0+b3Bjb2RlID0gRUVPUF9KVU1QX0lGX05PVF9UUlVFOworCQlzY3JhdGNoLT5yZXN2 YWx1ZSA9ICZzdGNzdGF0ZS0+ZXJyb3IudmFsdWU7CisJCXNjcmF0Y2gtPnJlc251bGwgPSAmc3Rj c3RhdGUtPmVycm9yLmlzbnVsbDsKKwkJc2NyYXRjaC0+ZC5qdW1wLmp1bXBkb25lID0gLTE7CS8q IHNldCBiZWxvdyAqLworCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCBzY3JhdGNoKTsKKworCQkv KiBTdGVwcyB0byBldmFsdWF0ZSB0aGUgT04gRVJST1IgZXhwcmVzc2lvbiAqLworCQlzYXZlZF9l c2NvbnRleHQgPSBzdGF0ZS0+ZXNjb250ZXh0OworCQlzdGF0ZS0+ZXNjb250ZXh0ID0gTlVMTDsK KwkJRXhlY0luaXRFeHByUmVjKChFeHByICopIHN0Y3N0YXRlLT5zdGNleHByLT5kZWZhdWx0X2V4 cHIsCisJCQkJCQlzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisJCXN0YXRlLT5lc2NvbnRleHQgPSBz YXZlZF9lc2NvbnRleHQ7CisKKwkJZm9yZWFjaF9pbnQobGMsIGp1bXBzX3RvX2VuZCkKKwkJewor CQkJRXhwckV2YWxTdGVwICphcyA9ICZzdGF0ZS0+c3RlcHNbbGNdOworCisJCQlhcy0+ZC5qdW1w Lmp1bXBkb25lID0gc3RhdGUtPnN0ZXBzX2xlbjsKKwkJfQorCQlzdGNzdGF0ZS0+anVtcF9lbmQg PSBzdGF0ZS0+c3RlcHNfbGVuOworCX0KK30KKwogLyoKICAqIFB1c2ggc3RlcHMgdG8gZXZhbHVh dGUgYSBKc29uRXhwciBhbmQgaXRzIHZhcmlvdXMgc3Vic2lkaWFyeSBleHByZXNzaW9ucy4KICAq LwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggOTk4Njc0YzE4MGQuLjM1 MTkyM2Q3ZWM0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVy cC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAgLTU2OCw2 ICs1NjgsNyBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAq ZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkJJiZDQVNFX0VFT1BfWE1MRVhQUiwKIAkJJiZDQVNF X0VFT1BfSlNPTl9DT05TVFJVQ1RPUiwKIAkJJiZDQVNFX0VFT1BfSVNfSlNPTiwKKwkJJiZDQVNF X0VFT1BfU0FGRVRZUEVfQ0FTVCwKIAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfUEFUSCwKIAkJJiZD QVNFX0VFT1BfSlNPTkVYUFJfQ09FUkNJT04sCiAJCSYmQ0FTRV9FRU9QX0pTT05FWFBSX0NPRVJD SU9OX0ZJTklTSCwKQEAgLTE5MjYsNiArMTkyNywxMSBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3Rh dGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkJCUVFT19O RVhUKCk7CiAJCX0KIAorCQlFRU9fQ0FTRShFRU9QX1NBRkVUWVBFX0NBU1QpCisJCXsKKwkJCUVF T19KVU1QKEV4ZWNFdmFsU2FmZVR5cGVDYXN0KHN0YXRlLCBvcCkpOworCQl9CisKIAkJRUVPX0NB U0UoRUVPUF9KU09ORVhQUl9QQVRIKQogCQl7CiAJCQkvKiB0b28gY29tcGxleCBmb3IgYW4gaW5s aW5lIGltcGxlbWVudGF0aW9uICovCkBAIC01MTkwLDYgKzUxOTYsMzAgQEAgR2V0SnNvbkJlaGF2 aW9yVmFsdWVTdHJpbmcoSnNvbkJlaGF2aW9yICpiZWhhdmlvcikKIAlyZXR1cm4gcHN0cmR1cChi ZWhhdmlvcl9uYW1lc1tiZWhhdmlvci0+YnR5cGVdKTsKIH0KIAoraW50CitFeGVjRXZhbFNhZmVU eXBlQ2FzdChFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKQoreworCVNhZmVUeXBl Q2FzdFN0YXRlICpzdGNzdGF0ZSA9IG9wLT5kLnN0Y2V4cHIuc3Rjc3RhdGU7CisKKwlpZiAoU09G VF9FUlJPUl9PQ0NVUlJFRCgmc3Rjc3RhdGUtPmVzY29udGV4dCkpCisJeworCQkqb3AtPnJlc3Zh bHVlID0gKERhdHVtKSAwOworCQkqb3AtPnJlc251bGwgPSB0cnVlOworCisJCXN0Y3N0YXRlLT5l cnJvci52YWx1ZSA9IEJvb2xHZXREYXR1bSh0cnVlKTsKKworCQkvKgorCQkgKiBSZXNldCBmb3Ig bmV4dCB1c2Ugc3VjaCBhcyBmb3IgY2F0Y2hpbmcgZXJyb3JzIHdoZW4gY29lcmNpbmcgYQorCQkg KiBzdGNleHByIGV4cHJlc3Npb24uCisJCSAqLworCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmVycm9y X29jY3VycmVkID0gZmFsc2U7CisJCXN0Y3N0YXRlLT5lc2NvbnRleHQuZGV0YWlsc193YW50ZWQg PSBmYWxzZTsKKworCQlyZXR1cm4gc3Rjc3RhdGUtPmp1bXBfZXJyb3I7CisJfQorCXJldHVybiBz dGNzdGF0ZS0+anVtcF9lbmQ7Cit9CisKIC8qCiAgKiBDaGVja3MgaWYgYW4gZXJyb3Igb2NjdXJy ZWQgaW4gRXhlY0V2YWxKc29uQ29lcmNpb24oKS4gIElmIHNvLCB0aGlzIHNldHMKICAqIEpzb25F eHByU3RhdGUuZXJyb3IgdG8gdHJpZ2dlciB0aGUgT04gRVJST1IgaGFuZGxpbmcgc3RlcHMsIHVu bGVzcyB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5j IGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXggODkwYmNiMGIwYTcu LmEyZGZiODIzOTMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4 cHIuYworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpAQCAtMjI1Niw2 ICsyMjU2LDU1IEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJTExW TUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBF RU9QX1NBRkVUWVBFX0NBU1Q6CisJCQkJeworCQkJCQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3Rh dGUgPSBvcC0+ZC5zdGNleHByLnN0Y3N0YXRlOworCQkJCQlMTFZNVmFsdWVSZWYgdl9yZXQ7CisK KwkJCQkJLyoKKwkJCQkJICogQ2FsbCBFeGVjRXZhbFNhZmVUeXBlQ2FzdCgpLiAgSXQgcmV0dXJu cyB0aGUgYWRkcmVzcyBvZgorCQkJCQkgKiB0aGUgc3RlcCB0byBwZXJmb3JtIG5leHQuCisJCQkJ CSAqLworCQkJCQl2X3JldCA9IGJ1aWxkX0V2YWxYRnVuYyhiLCBtb2QsICJFeGVjRXZhbFNhZmVU eXBlQ2FzdCIsCisJCQkJCQkJCQkJCXZfc3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKKworCQkJCQkv KgorCQkJCQkgKiBCdWlsZCBhIHN3aXRjaCB0byBtYXAgdGhlIHJldHVybiB2YWx1ZSAodl9yZXQg YWJvdmUpLAorCQkJCQkgKiB3aGljaCBpcyBhIHJ1bnRpbWUgdmFsdWUgb2YgdGhlIHN0ZXAgYWRk cmVzcyB0byBwZXJmb3JtCisJCQkJCSAqIG5leHQgdG8ganVtcF9lcnJvcgorCQkJCQkgKi8KKwkJ CQkJaWYgKHN0Y3N0YXRlLT5qdW1wX2Vycm9yID49IDApCisJCQkJCXsKKwkJCQkJCUxMVk1WYWx1 ZVJlZiB2X2p1bXBfZXJyb3I7CisJCQkJCQlMTFZNVmFsdWVSZWYgdl9zd2l0Y2g7CisJCQkJCQlM TFZNQmFzaWNCbG9ja1JlZiBiX2RvbmUsCisJCQkJCQkJCQliX2Vycm9yOworCisJCQkJCQliX2Vy cm9yID0KKwkJCQkJCQlsX2JiX2JlZm9yZV92KG9wYmxvY2tzW29wbm8gKyAxXSwKKwkJCQkJCQkJ CQkgICJvcC4lZC5zdGNleHByX2Vycm9yIiwgb3Bubyk7CisJCQkJCQliX2RvbmUgPQorCQkJCQkJ CWxfYmJfYmVmb3JlX3Yob3BibG9ja3Nbb3BubyArIDFdLAorCQkJCQkJCQkJCSAgIm9wLiVkLnN0 Y2V4cHJfZG9uZSIsIG9wbm8pOworCisJCQkJCQl2X3N3aXRjaCA9IExMVk1CdWlsZFN3aXRjaChi LAorCQkJCQkJCQkJCQkJICAgdl9yZXQsCisJCQkJCQkJCQkJCQkgICBiX2RvbmUsCisJCQkJCQkJ CQkJCQkgICAxKTsKKworCQkJCQkJLyogUmV0dXJuZWQgc3Rjc3RhdGUtPmp1bXBfZXJyb3I/ICov CisJCQkJCQl2X2p1bXBfZXJyb3IgPSBsX2ludDMyX2NvbnN0KGxjLCBzdGNzdGF0ZS0+anVtcF9l cnJvcik7CisJCQkJCQlMTFZNQWRkQ2FzZSh2X3N3aXRjaCwgdl9qdW1wX2Vycm9yLCBiX2Vycm9y KTsKKworCQkJCQkJLyogT04gRVJST1IgY29kZSAqLworCQkJCQkJTExWTVBvc2l0aW9uQnVpbGRl ckF0RW5kKGIsIGJfZXJyb3IpOworCQkJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbc3Rjc3Rh dGUtPmp1bXBfZXJyb3JdKTsKKworCQkJCQkJTExWTVBvc2l0aW9uQnVpbGRlckF0RW5kKGIsIGJf ZG9uZSk7CisJCQkJCX0KKwkJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbc3Rjc3RhdGUtPmp1 bXBfZW5kXSk7CisJCQkJCWJyZWFrOworCQkJCX0KIAkJCWNhc2UgRUVPUF9KU09ORVhQUl9QQVRI OgogCQkJCXsKIAkJCQkJSnNvbkV4cHJTdGF0ZSAqanNlc3RhdGUgPSBvcC0+ZC5qc29uZXhwci5q c2VzdGF0ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3Jj L2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggN2JjODIzNTA3ZjEuLjIxMmYzZTNjNTBj IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMjA2LDYgKzIwNiw5IEBAIGV4cHJUeXBlKGNvbnN0 IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9Sb3dDb21wYXJlRXhwcjoKIAkJCXR5cGUgPSBCT09MT0lE OwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJdHlwZSA9ICgoY29u c3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0dHlwZTsKKwkJCWJyZWFrOwogCQlj YXNlIFRfQ29hbGVzY2VFeHByOgogCQkJdHlwZSA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4 cHIpLT5jb2FsZXNjZXR5cGU7CiAJCQlicmVhazsKQEAgLTQ1MCw2ICs0NTMsOCBAQCBleHByVHlw bW9kKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkJcmV0dXJuIHR5cG1vZDsKIAkJCX0KIAkJCWJyZWFr OworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXJldHVybiAoKGNvbnN0IFNhZmVUeXBl Q2FzdEV4cHIgKikgZXhwciktPnJlc3VsdHR5cG1vZDsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoK IAkJCXsKIAkJCQkvKgpAQCAtOTY1LDYgKzk3MCw5IEBAIGV4cHJDb2xsYXRpb24oY29uc3QgTm9k ZSAqZXhwcikKIAkJCS8qIFJvd0NvbXBhcmVFeHByJ3MgcmVzdWx0IGlzIGJvb2xlYW4gLi4uICov CiAJCQljb2xsID0gSW52YWxpZE9pZDsJLyogLi4uIHNvIGl0IGhhcyBubyBjb2xsYXRpb24gKi8K IAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCWNvbGwgPSAoKGNvbnN0 IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdGNvbGxpZDsKKwkJCWJyZWFrOwogCQlj YXNlIFRfQ29hbGVzY2VFeHByOgogCQkJY29sbCA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4 cHIpLT5jb2FsZXNjZWNvbGxpZDsKIAkJCWJyZWFrOwpAQCAtMTIzMiw2ICsxMjQwLDkgQEAgZXhw clNldENvbGxhdGlvbihOb2RlICpleHByLCBPaWQgY29sbGF0aW9uKQogCQkJLyogUm93Q29tcGFy ZUV4cHIncyByZXN1bHQgaXMgYm9vbGVhbiAuLi4gKi8KIAkJCUFzc2VydCghT2lkSXNWYWxpZChj b2xsYXRpb24pKTsgLyogLi4uIHNvIG5ldmVyIHNldCBhIGNvbGxhdGlvbiAqLwogCQkJYnJlYWs7 CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJKChTYWZlVHlwZUNhc3RFeHByICopIGV4 cHIpLT5yZXN1bHRjb2xsaWQgPSBjb2xsYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxl c2NlRXhwcjoKIAkJCSgoQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZWNvbGxpZCA9IGNv bGxhdGlvbjsKIAkJCWJyZWFrOwpAQCAtMTU1NCw2ICsxNTY1LDE1IEBAIGV4cHJMb2NhdGlvbihj b25zdCBOb2RlICpleHByKQogCQkJLyoganVzdCB1c2UgbGVmdG1vc3QgYXJndW1lbnQncyBsb2Nh dGlvbiAqLwogCQkJbG9jID0gZXhwckxvY2F0aW9uKChOb2RlICopICgoY29uc3QgUm93Q29tcGFy ZUV4cHIgKikgZXhwciktPmxhcmdzKTsKIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0 RXhwcjoKKwkJCXsKKwkJCQljb25zdCBTYWZlVHlwZUNhc3RFeHByICpjYXN0X2V4cHIgPSAoY29u c3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByOworCQkJCWlmIChjYXN0X2V4cHItPmNhc3RfZXhw cikKKwkJCQkJbG9jID0gZXhwckxvY2F0aW9uKGNhc3RfZXhwci0+Y2FzdF9leHByKTsKKwkJCQll bHNlCisJCQkJCWxvYyA9IGV4cHJMb2NhdGlvbihjYXN0X2V4cHItPmRlZmF1bHRfZXhwcik7CisJ CQkJYnJlYWs7CisJCQl9CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQkvKiBDT0FMRVNDRSBr ZXl3b3JkIHNob3VsZCBhbHdheXMgYmUgdGhlIGZpcnN0IHRoaW5nICovCiAJCQlsb2MgPSAoKGNv bnN0IENvYWxlc2NlRXhwciAqKSBleHByKS0+bG9jYXRpb247CkBAIC0yMzI1LDYgKzIzNDUsMTgg QEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0 cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJewor CQkJCVNhZmVUeXBlQ2FzdEV4cHIgICAqc2NleHByID0gKFNhZmVUeXBlQ2FzdEV4cHIgKikgbm9k ZTsKKworCQkJCWlmIChXQUxLKHNjZXhwci0+c291cmNlX2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1 ZTsKKwkJCQlpZiAoV0FMSyhzY2V4cHItPmNhc3RfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOwor CQkJCWlmIChXQUxLKHNjZXhwci0+ZGVmYXVsdF9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJ CQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXJldHVybiBXQUxLKCgo Q29hbGVzY2VFeHByICopIG5vZGUpLT5hcmdzKTsKIAkJY2FzZSBUX01pbk1heEV4cHI6CkBAIC0z MzM0LDYgKzMzNjYsMTkgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3JfaW1wbChOb2RlICpub2Rl LAogCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2Ug VF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgICAqc2NleHBy ID0gKFNhZmVUeXBlQ2FzdEV4cHIgKikgbm9kZTsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKm5l d25vZGU7CisKKwkJCQlGTEFUQ09QWShuZXdub2RlLCBzY2V4cHIsIFNhZmVUeXBlQ2FzdEV4cHIp OworCQkJCU1VVEFURShuZXdub2RlLT5zb3VyY2VfZXhwciwgc2NleHByLT5zb3VyY2VfZXhwciwg Tm9kZSAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+Y2FzdF9leHByLCBzY2V4cHItPmNhc3RfZXhw ciwgTm9kZSAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+ZGVmYXVsdF9leHByLCBzY2V4cHItPmRl ZmF1bHRfZXhwciwgTm9kZSAqKTsKKworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOworCQkJ fQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJQ29hbGVzY2VF eHByICpjb2FsZXNjZWV4cHIgPSAoQ29hbGVzY2VFeHByICopIG5vZGU7CkBAIC00NDY4LDYgKzQ1 MTMsMjggQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJ CQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0Ogor CQkJeworCQkJCVNhZmVUeXBlQ2FzdCAgICpzYyA9IChTYWZlVHlwZUNhc3QgKikgbm9kZTsKKwor CQkJCWlmIChXQUxLKHNjLT5jYXN0KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEso c2MtPmV4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOworCQljYXNlIFRf U2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnN0YyA9IChT YWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisKKwkJCQlpZiAoV0FMSyhzdGMtPnNvdXJjZV9leHBy KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3RjLT5jYXN0X2V4cHIpKQorCQkJ CQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzdGMtPmRlZmF1bHRfZXhwcikpCisJCQkJCXJl dHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2xsYXRlQ2xhdXNlOgogCQkJ cmV0dXJuIFdBTEsoKChDb2xsYXRlQ2xhdXNlICopIG5vZGUpLT5hcmcpOwogCQljYXNlIFRfU29y dEJ5OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvcXVlcnlqdW1ibGVmdW5jcy5jIGIv c3JjL2JhY2tlbmQvbm9kZXMvcXVlcnlqdW1ibGVmdW5jcy5jCmluZGV4IDMxZjk3MTUxOTc3Li43 NjQyNmM4OGU5YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvcXVlcnlqdW1ibGVmdW5j cy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYwpAQCAtNzQsNiAr NzQsNyBAQCBzdGF0aWMgdm9pZCBfanVtYmxlRWxlbWVudHMoSnVtYmxlU3RhdGUgKmpzdGF0ZSwg TGlzdCAqZWxlbWVudHMsIE5vZGUgKm5vZGUpOwogc3RhdGljIHZvaWQgX2p1bWJsZVBhcmFtKEp1 bWJsZVN0YXRlICpqc3RhdGUsIE5vZGUgKm5vZGUpOwogc3RhdGljIHZvaWQgX2p1bWJsZUFfQ29u c3QoSnVtYmxlU3RhdGUgKmpzdGF0ZSwgTm9kZSAqbm9kZSk7CiBzdGF0aWMgdm9pZCBfanVtYmxl VmFyaWFibGVTZXRTdG10KEp1bWJsZVN0YXRlICpqc3RhdGUsIE5vZGUgKm5vZGUpOworc3RhdGlj IHZvaWQgX2p1bWJsZVNhZmVUeXBlQ2FzdEV4cHIoSnVtYmxlU3RhdGUgKmpzdGF0ZSwgTm9kZSAq bm9kZSk7CiBzdGF0aWMgdm9pZCBfanVtYmxlUmFuZ2VUYmxFbnRyeV9lcmVmKEp1bWJsZVN0YXRl ICpqc3RhdGUsCiAJCQkJCQkJCQkgIFJhbmdlVGJsRW50cnkgKnJ0ZSwKIAkJCQkJCQkJCSAgQWxp YXMgKmV4cHIpOwpAQCAtNzU4LDYgKzc1OSwxOSBAQCBfanVtYmxlVmFyaWFibGVTZXRTdG10KEp1 bWJsZVN0YXRlICpqc3RhdGUsIE5vZGUgKm5vZGUpCiAJSlVNQkxFX0xPQ0FUSU9OKGxvY2F0aW9u KTsKIH0KIAorc3RhdGljIHZvaWQKK19qdW1ibGVTYWZlVHlwZUNhc3RFeHByKEp1bWJsZVN0YXRl ICpqc3RhdGUsIE5vZGUgKm5vZGUpCit7CisJU2FmZVR5cGVDYXN0RXhwciAqZXhwciA9IChTYWZl VHlwZUNhc3RFeHByICopIG5vZGU7CisKKwlpZiAoZXhwci0+Y2FzdF9leHByID09IE5VTEwpCisJ CUpVTUJMRV9OT0RFKHNvdXJjZV9leHByKTsKKwllbHNlCisJCUpVTUJMRV9OT0RFKGNhc3RfZXhw cik7CisKKwlKVU1CTEVfTk9ERShkZWZhdWx0X2V4cHIpOworfQorCiAvKgogICogQ3VzdG9tIHF1 ZXJ5IGp1bWJsZSBmdW5jdGlvbiBmb3IgUmFuZ2VUYmxFbnRyeS5lcmVmLgogICovCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKaW5kZXggNmYwYjMzOGQyY2QuLmMwNGNhODhiMGZiIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC0yOTQyLDYgKzI5NDIsMjUgQEAg ZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCQkJCQkJCQkg IGNvcHlPYmplY3QoanZlLT5mb3JtYXQpKTsKIAkJCX0KIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0 RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpzdGMgPSAoU2FmZVR5cGVDYXN0RXhw ciAqKSBub2RlOworCQkJCVNhZmVUeXBlQ2FzdEV4cHIJICAgKm5ld2V4cHI7CisJCQkJTm9kZQkg ICAqc291cmNlX2V4cHIgPSBzdGMtPnNvdXJjZV9leHByOworCQkJCU5vZGUJICAgKmRlZmF1bHRf ZXhwciA9IHN0Yy0+ZGVmYXVsdF9leHByOworCisJCQkJc291cmNlX2V4cHIgPSBldmFsX2NvbnN0 X2V4cHJlc3Npb25zX211dGF0b3Ioc291cmNlX2V4cHIsIGNvbnRleHQpOworCQkJCWRlZmF1bHRf ZXhwciA9IGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihkZWZhdWx0X2V4cHIsIGNvbnRl eHQpOworCisJCQkJbmV3ZXhwciA9IG1ha2VOb2RlKFNhZmVUeXBlQ2FzdEV4cHIpOworCQkJCW5l d2V4cHItPnNvdXJjZV9leHByID0gc291cmNlX2V4cHI7CisJCQkJbmV3ZXhwci0+Y2FzdF9leHBy ID0gc3RjLT5jYXN0X2V4cHI7CisJCQkJbmV3ZXhwci0+ZGVmYXVsdF9leHByID0gZGVmYXVsdF9l eHByOworCQkJCW5ld2V4cHItPnJlc3VsdHR5cGUgPSBzdGMtPnJlc3VsdHR5cGU7CisJCQkJbmV3 ZXhwci0+cmVzdWx0dHlwbW9kID0gc3RjLT5yZXN1bHR0eXBtb2Q7CisJCQkJbmV3ZXhwci0+cmVz dWx0Y29sbGlkID0gc3RjLT5yZXN1bHRjb2xsaWQ7CisJCQkJcmV0dXJuIChOb2RlICopIG5ld2V4 cHI7CisJCQl9CiAJCWNhc2UgVF9TdWJQbGFuOgogCQljYXNlIFRfQWx0ZXJuYXRpdmVTdWJQbGFu OgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQppbmRleCBkYjQzMDM0YjlkYi4uMjAyOTNkNzU1MjQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQpAQCAtNjQyLDYgKzY0Miw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVj dChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8cGFy dGJvdW5kc3BlYz4gUGFydGl0aW9uQm91bmRTcGVjCiAldHlwZSA8bGlzdD4JCWhhc2hfcGFydGJv dW5kCiAldHlwZSA8ZGVmZWx0PgkJaGFzaF9wYXJ0Ym91bmRfZWxlbQorJXR5cGUgPG5vZGU+CWNh c3Rfb25fZXJyb3JfY2xhdXNlCisldHlwZSA8bm9kZT4JY2FzdF9vbl9lcnJvcl9hY3Rpb24KIAog JXR5cGUgPG5vZGU+CWpzb25fZm9ybWF0X2NsYXVzZQogCQkJCWpzb25fZm9ybWF0X2NsYXVzZV9v cHQKQEAgLTE1OTMxLDggKzE1OTMzLDI1IEBAIGZ1bmNfZXhwcl9jb21tb25fc3ViZXhwcjoKIAkJ CQl7CiAJCQkJCSQkID0gbWFrZVNRTFZhbHVlRnVuY3Rpb24oU1ZGT1BfQ1VSUkVOVF9TQ0hFTUEs IC0xLCBAMSk7CiAJCQkJfQotCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUgJyknCi0J CQkJeyAkJCA9IG1ha2VUeXBlQ2FzdCgkMywgJDUsIEAxKTsgfQorCQkJfCBDQVNUICcoJyBhX2V4 cHIgQVMgVHlwZW5hbWUgY2FzdF9vbl9lcnJvcl9jbGF1c2UgJyknCisJCQkJeworCQkJCQlUeXBl Q2FzdCAqY2FzdCA9IChUeXBlQ2FzdCAqKSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7CisJCQkJ CWlmICgkNiA9PSBOVUxMKQorCQkJCQkJJCQgPSAoTm9kZSAqKSBjYXN0OworCQkJCQllbHNlCisJ CQkJCXsKKwkJCQkJCVNhZmVUeXBlQ2FzdCAqc2FmZWNhc3QgPSBtYWtlTm9kZShTYWZlVHlwZUNh c3QpOworCisJCQkJCQlzYWZlY2FzdC0+Y2FzdCA9IChOb2RlICopIGNhc3Q7CisJCQkJCQlzYWZl Y2FzdC0+ZXhwciA9ICQ2OworCisJCQkJCQkvKgorCQkJCQkJICogT24tZXJyb3IgYWN0aW9ucyBt dXN0IHRoZW1zZWx2ZXMgYmUgdHlwZWNhc3QgdG8gdGhlCisJCQkJCQkgKiBzYW1lIHR5cGUgYXMg dGhlIG9yaWdpbmFsIGV4cHJlc3Npb24uCisJCQkJCQkgKi8KKwkJCQkJCSQkID0gKE5vZGUgKikg c2FmZWNhc3Q7CisJCQkJCX0KKwkJCQl9CiAJCQl8IEVYVFJBQ1QgJygnIGV4dHJhY3RfbGlzdCAn KScKIAkJCQl7CiAJCQkJCSQkID0gKE5vZGUgKikgbWFrZUZ1bmNDYWxsKFN5c3RlbUZ1bmNOYW1l KCJleHRyYWN0IiksCkBAIC0xNjMxOCw2ICsxNjMzNywxNCBAQCBmdW5jX2V4cHJfY29tbW9uX3N1 YmV4cHI6CiAJCQkJfQogCQkJOwogCitjYXN0X29uX2Vycm9yX2NsYXVzZTogY2FzdF9vbl9lcnJv cl9hY3Rpb24gT04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgeyAkJCA9ICQxOyB9CisJCQl8IC8qIEVN UFRZICovIHsgJCQgPSBOVUxMOyB9CisJCTsKKworY2FzdF9vbl9lcnJvcl9hY3Rpb246IEVSUk9S X1AgeyAkJCA9IE5VTEw7IH0KKwkJCXwgTlVMTF9QIHsgJCQgPSBtYWtlTnVsbEFDb25zdCgtMSk7 IH0KKwkJCXwgREVGQVVMVCBhX2V4cHIgeyAkJCA9ICQyOyB9CisJCTsKIAogLyoKICAqIFNRTC9Y TUwgc3VwcG9ydApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggZDY2Mjc2ODAxYzYuLmY4Mzc2 OTlkNGI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTE2LDYgKzE2LDggQEAKICNpbmNs dWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1h bmRzLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCkBAIC0zNyw2ICszOSw3IEBACiAjaW5jbHVk ZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAjaW5jbHVkZSAi dXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKICNpbmNsdWRl ICJ1dGlscy90aW1lc3RhbXAuaCIKICNpbmNsdWRlICJ1dGlscy94bWwuaCIKIApAQCAtNjAsNyAr NjMsMTAgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybU11bHRpQXNzaWduUmVmKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTXVsdGlBc3NpZ25SZWYgKm1hcmVmKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1D YXNlRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIENhc2VFeHByICpjKTsKIHN0YXRpYyBOb2RlICp0 cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluayk7CiBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJh eUV4cHIgKmEsCi0JCQkJCQkJCU9pZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQz MiB0eXBtb2QpOworCQkJCQkJCQlPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50 MzIgdHlwbW9kLAorCQkJCQkJCQlib29sICpjYW5fY29lcmNlKTsKK3N0YXRpYyBOb2RlICp0cmFu c2Zvcm1BcnJheUV4cHJTYWZlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCisJ CQkJCQkJCQlPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9kKTsK IHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Sb3dFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUm93RXhw ciAqciwgYm9vbCBhbGxvd0RlZmF1bHQpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvYWxlc2Nl RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIENvYWxlc2NlRXhwciAqYyk7CiBzdGF0aWMgTm9kZSAq dHJhbnNmb3JtTWluTWF4RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE1pbk1heEV4cHIgKm0pOwpA QCAtNzYsNiArODIsNyBAQCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtV2hvbGVSb3dSZWYoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkgIGludCBzdWJsZXZlbHNfdXAsIGludCBsb2NhdGlvbik7 CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBB X0luZGlyZWN0aW9uICppbmQpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybVR5cGVDYXN0KFBhcnNl U3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKTsKK3N0YXRpYyBOb2RlICp0cmFuc2Zvcm1UeXBl U2FmZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTYWZlVHlwZUNhc3QgKnRjKTsKIHN0YXRpYyBO b2RlICp0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0ZUNs YXVzZSAqYyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0cnVjdG9yKFBh cnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJSnNvbk9iamVjdENvbnN0cnVjdG9yICpjdG9y KTsKQEAgLTEwNiw2ICsxMTMsOCBAQCBzdGF0aWMgRXhwciAqbWFrZV9kaXN0aW5jdF9vcChQYXJz ZVN0YXRlICpwc3RhdGUsIExpc3QgKm9wbmFtZSwKIAkJCQkJCQkgIE5vZGUgKmx0cmVlLCBOb2Rl ICpydHJlZSwgaW50IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlX251bGx0ZXN0X2Zyb21f ZGlzdGluY3QoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0 YSwgTm9kZSAqYXJnKTsKK3N0YXRpYyBib29sIENvdmVydFVua25vd25Db25zdFNhZmUoUGFyc2VT dGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAorCQkJCQkJCQkgICBPaWQgdGFyZ2V0VHlwZSwgaW50 MzIgdGFyZ2V0VHlwZU1vZCk7CiAKIAogLyoKQEAgLTE2MywxMyArMTcyLDE3IEBAIHRyYW5zZm9y bUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAogCQljYXNlIFRf QV9BcnJheUV4cHI6CiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1BcnJheUV4cHIocHN0YXRlLCAoQV9B cnJheUV4cHIgKikgZXhwciwKLQkJCQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCAtMSk7 CisJCQkJCQkJCQkJSW52YWxpZE9pZCwgSW52YWxpZE9pZCwgLTEsIE5VTEwpOwogCQkJYnJlYWs7 CiAKIAkJY2FzZSBUX1R5cGVDYXN0OgogCQkJcmVzdWx0ID0gdHJhbnNmb3JtVHlwZUNhc3QocHN0 YXRlLCAoVHlwZUNhc3QgKikgZXhwcik7CiAJCQlicmVhazsKIAorCQljYXNlIFRfU2FmZVR5cGVD YXN0OgorCQkJcmVzdWx0ID0gdHJhbnNmb3JtVHlwZVNhZmVDYXN0KHBzdGF0ZSwgKFNhZmVUeXBl Q2FzdCAqKSBleHByKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgVF9Db2xsYXRlQ2xhdXNlOgogCQkJ cmVzdWx0ID0gdHJhbnNmb3JtQ29sbGF0ZUNsYXVzZShwc3RhdGUsIChDb2xsYXRlQ2xhdXNlICop IGV4cHIpOwogCQkJYnJlYWs7CkBAIC0yMDA0LDE2ICsyMDE3LDEyNyBAQCB0cmFuc2Zvcm1TdWJM aW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAlyZXR1cm4gcmVzdWx0 OwogfQogCisvKgorICogUmV0dXJuIHRydWUgaWZmIHN1Y2Nlc3NmdWx5IGNvZXJjZWQgYSBVbmtu b3duIENvbnN0IHRvIHRhcmdldFR5cGUKKyovCitzdGF0aWMgYm9vbCBDb3ZlcnRVbmtub3duQ29u c3RTYWZlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKKwkJCQkJCQkJICAgT2lkIHRh cmdldFR5cGUsIGludDMyIHRhcmdldFR5cGVNb2QpCit7CisJT2lkCQkJYmFzZVR5cGVJZDsKKwlp bnQzMgkJYmFzZVR5cGVNb2Q7CisJaW50MzIJCWlucHV0VHlwZU1vZDsKKwlUeXBlCQliYXNlVHlw ZTsKKwljaGFyCQkqc3RyaW5nOworCURhdHVtCQlkYXR1bTsKKwlib29sCQljb252ZXJ0ZWQ7CisJ Q29uc3QJICAgKmNvbjsKKworCUFzc2VydChJc0Eobm9kZSwgQ29uc3QpKTsKKwlBc3NlcnQoZXhw clR5cGUobm9kZSkgPT0gVU5LTk9XTk9JRCk7CisKKwljb24gPSAoQ29uc3QgKikgbm9kZTsKKwli YXNlVHlwZU1vZCA9IHRhcmdldFR5cGVNb2Q7CisJYmFzZVR5cGVJZCA9IGdldEJhc2VUeXBlQW5k VHlwbW9kKHRhcmdldFR5cGUsICZiYXNlVHlwZU1vZCk7CisKKwlpZiAoYmFzZVR5cGVJZCA9PSBJ TlRFUlZBTE9JRCkKKwkJaW5wdXRUeXBlTW9kID0gYmFzZVR5cGVNb2Q7CisJZWxzZQorCQlpbnB1 dFR5cGVNb2QgPSAtMTsKKwliYXNlVHlwZSA9IHR5cGVpZFR5cGUoYmFzZVR5cGVJZCk7CisKKwkv KgorCSAqIFdlIGFzc3VtZSBoZXJlIHRoYXQgVU5LTk9XTidzIGludGVybmFsIHJlcHJlc2VudGF0 aW9uIGlzIHRoZSBzYW1lIGFzCisJICogQ1NUUklORy4KKwkqLworCWlmICghY29uLT5jb25zdGlz bnVsbCkKKwkJc3RyaW5nID0gRGF0dW1HZXRDU3RyaW5nKGNvbi0+Y29uc3R2YWx1ZSk7CisJZWxz ZQorCQlzdHJpbmcgPSBOVUxMOworCisJY29udmVydGVkID0gc3RyaW5nVHlwZURhdHVtU2FmZShi YXNlVHlwZSwKKwkJCQkJCQkJCXN0cmluZywKKwkJCQkJCQkJCWlucHV0VHlwZU1vZCwKKwkJCQkJ CQkJCSZkYXR1bSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUoYmFzZVR5cGUpOworCisJcmV0dXJuIGNv bnZlcnRlZDsKK30KKworLyoKKyAqIEFzIHdpdGggdHJhbnNmb3JtQXJyYXlFeHByLCB3ZSBuZWVk IHRvIGNvcnJlY3RseSBwYXJzZSBiYWNrIGEgcXVlcnkgbGlrZQorICogQ0FTVChBUlJBWVsndGhy ZWUnLCAnYSddIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1Ip LiAgV2UKKyAqIGNhbm5vdCBhbGxvdyBldmFsX2NvbnN0X2V4cHJlc3Npb25zIHRvIGZvbGQgdGhl IEFfQXJyYXlFeHByIGludG8gYSBDb25zdAorICogbm9kZSwgYXMgdGhpcyBtYXkgY2F1c2UgYW4g ZXJyb3IgdG9vIGVhcmx5LiBUaGUgQV9BcnJheUV4cHIgc3RpbGwgbmVlZAorICogdHJhbnNmb3Jt ZWQgaW50byBhbiBBcnJheUV4cHIgZm9yIHRoZSBkZXBhcnNlIHB1cnBvc2UuCisgKi8KK3N0YXRp YyBOb2RlICoKK3RyYW5zZm9ybUFycmF5RXhwclNhZmUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0Fy cmF5RXhwciAqYSwKKwkJCQkJICAgT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGlu dDMyIHR5cG1vZCkKK3sKKwlBcnJheUV4cHIgICpuZXdhID0gbWFrZU5vZGUoQXJyYXlFeHByKTsK KwlMaXN0CSAgICpuZXdlbGVtcyA9IE5JTDsKKwlMaXN0Q2VsbCAgICplbGVtZW50OworCisJbmV3 YS0+bXVsdGlkaW1zID0gZmFsc2U7CisJZm9yZWFjaChlbGVtZW50LCBhLT5lbGVtZW50cykKKwl7 CisJCU5vZGUJICAgKmUgPSAoTm9kZSAqKSBsZmlyc3QoZWxlbWVudCk7CisJCU5vZGUJICAgKm5l d2U7CisKKwkJLyoKKwkJICogSWYgYW4gZWxlbWVudCBpcyBpdHNlbGYgYW4gQV9BcnJheUV4cHIs IHJlY3Vyc2UgZGlyZWN0bHkgc28gdGhhdCB3ZQorCQkgKiBjYW4gcGFzcyBkb3duIGFueSB0YXJn ZXQgdHlwZSB3ZSB3ZXJlIGdpdmVuLgorCQkgKi8KKwkJaWYgKElzQShlLCBBX0FycmF5RXhwcikp CisJCXsKKwkJCW5ld2UgPSB0cmFuc2Zvcm1BcnJheUV4cHJTYWZlKHBzdGF0ZSwoQV9BcnJheUV4 cHIgKikgZSwgYXJyYXlfdHlwZSwgZWxlbWVudF90eXBlLCB0eXBtb2QpOworCQkJLyogd2UgY2Vy dGFpbmx5IGhhdmUgYW4gYXJyYXkgaGVyZSAqLworCQkJQXNzZXJ0KGFycmF5X3R5cGUgPT0gSW52 YWxpZE9pZCB8fCBhcnJheV90eXBlID09IGV4cHJUeXBlKG5ld2UpKTsKKwkJCW5ld2EtPm11bHRp ZGltcyA9IHRydWU7CisJCX0KKwkJZWxzZQorCQl7CisJCQluZXdlID0gdHJhbnNmb3JtRXhwclJl Y3Vyc2UocHN0YXRlLCBlKTsKKworCQkJaWYgKCFuZXdhLT5tdWx0aWRpbXMpCisJCQl7CisJCQkJ T2lkCQkJbmV3ZXR5cGUgPSBleHByVHlwZShuZXdlKTsKKworCQkJCWlmIChuZXdldHlwZSAhPSBJ TlQyVkVDVE9ST0lEICYmIG5ld2V0eXBlICE9IE9JRFZFQ1RPUk9JRCAmJgorCQkJCQl0eXBlX2lz X2FycmF5KG5ld2V0eXBlKSkKKwkJCQkJbmV3YS0+bXVsdGlkaW1zID0gdHJ1ZTsKKwkJCX0KKwkJ fQorCisJCW5ld2VsZW1zID0gbGFwcGVuZChuZXdlbGVtcywgbmV3ZSk7CisJfQorCisJbmV3YS0+ YXJyYXlfdHlwZWlkID0gYXJyYXlfdHlwZTsKKwkvKiBhcnJheV9jb2xsaWQgd2lsbCBiZSBzZXQg YnkgcGFyc2VfY29sbGF0ZS5jICovCisJbmV3YS0+ZWxlbWVudF90eXBlaWQgPSBlbGVtZW50X3R5 cGU7CisJbmV3YS0+ZWxlbWVudHMgPSBuZXdlbGVtczsKKwluZXdhLT5saXN0X3N0YXJ0ID0gYS0+ bGlzdF9zdGFydDsKKwluZXdhLT5saXN0X2VuZCA9IC0xOworCW5ld2EtPmxvY2F0aW9uID0gLTE7 CisKKwlyZXR1cm4gKE5vZGUgKikgbmV3YTsKK30KKwogLyoKICAqIHRyYW5zZm9ybUFycmF5RXhw cgogICoKICAqIElmIHRoZSBjYWxsZXIgc3BlY2lmaWVzIHRoZSB0YXJnZXQgdHlwZSwgdGhlIHJl c3VsdGluZyBhcnJheSB3aWxsCiAgKiBiZSBvZiBleGFjdGx5IHRoYXQgdHlwZS4gIE90aGVyd2lz ZSB3ZSB0cnkgdG8gaW5mZXIgYSBjb21tb24gdHlwZQogICogZm9yIHRoZSBlbGVtZW50cyB1c2lu ZyBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKyAqCisgKiBjYW5fY29lcmNlIGlzIG5vdCBudWxsIG9u bHkgd2hlbiBDQVNUKERFRkFVTFQuLi4gT04gQ09OVkVSU0lPTiBFUlJPUikgaXMKKyAqIHNwZWNp ZmllZC4gSWYgd2UgZm91bmQgb3V0IHdlIGNhbiBub3QgY2FzdCB0byB0YXJnZXQgdHlwZSBhbmQg Y2FuX2NvZXJjZSBpcworICogbm90IG51bGwsIHJldHVybiBOVUxMIGVhcmxpZXIgYW5kIHNldCBj YW5fY29lcmNlIHNldCBmYWxzZS4KICAqLwogc3RhdGljIE5vZGUgKgogdHJhbnNmb3JtQXJyYXlF eHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCi0JCQkJICAgT2lkIGFycmF5 X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGludDMyIHR5cG1vZCkKKwkJCQkgICBPaWQgYXJyYXlf dHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9kLCBib29sICpjYW5fY29lcmNlKQog ewogCUFycmF5RXhwciAgKm5ld2EgPSBtYWtlTm9kZShBcnJheUV4cHIpOwogCUxpc3QJICAgKm5l d2VsZW1zID0gTklMOwpAQCAtMjA0NCw5ICsyMTY4LDEwIEBAIHRyYW5zZm9ybUFycmF5RXhwcihQ YXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCQkJCQkJCQkJICAoQV9BcnJheUV4 cHIgKikgZSwKIAkJCQkJCQkJCSAgYXJyYXlfdHlwZSwKIAkJCQkJCQkJCSAgZWxlbWVudF90eXBl LAotCQkJCQkJCQkJICB0eXBtb2QpOworCQkJCQkJCQkJICB0eXBtb2QsCisJCQkJCQkJCQkgIGNh bl9jb2VyY2UpOwogCQkJLyogd2UgY2VydGFpbmx5IGhhdmUgYW4gYXJyYXkgaGVyZSAqLwotCQkJ QXNzZXJ0KGFycmF5X3R5cGUgPT0gSW52YWxpZE9pZCB8fCBhcnJheV90eXBlID09IGV4cHJUeXBl KG5ld2UpKTsKKwkJCUFzc2VydChjYW5fY29lcmNlIHx8IGFycmF5X3R5cGUgPT0gSW52YWxpZE9p ZCB8fCBhcnJheV90eXBlID09IGV4cHJUeXBlKG5ld2UpKTsKIAkJCW5ld2EtPm11bHRpZGltcyA9 IHRydWU7CiAJCX0KIAkJZWxzZQpAQCAtMjA3Miw2ICsyMTk3LDkgQEAgdHJhbnNmb3JtQXJyYXlF eHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJCW5ld2VsZW1zID0gbGFw cGVuZChuZXdlbGVtcywgbmV3ZSk7CiAJfQogCisJaWYgKGNhbl9jb2VyY2UgJiYgISpjYW5fY29l cmNlKQorCQlyZXR1cm4gTlVMTDsKKwogCS8qCiAJICogU2VsZWN0IGEgdGFyZ2V0IHR5cGUgZm9y IHRoZSBlbGVtZW50cy4KIAkgKgpAQCAtMjEzOSw2ICsyMjY3LDE3IEBAIHRyYW5zZm9ybUFycmF5 RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCQlOb2RlCSAgICplID0g KE5vZGUgKikgbGZpcnN0KGVsZW1lbnQpOwogCQlOb2RlCSAgICpuZXdlOwogCisJCWlmIChjYW5f Y29lcmNlICYmICgqY2FuX2NvZXJjZSkgJiYgSXNBKGUsIENvbnN0KSAmJiBleHByVHlwZShlKSA9 PSBVTktOT1dOT0lEKQorCQl7CisJCQlpZiAoIUNvdmVydFVua25vd25Db25zdFNhZmUocHN0YXRl LCBlLCBjb2VyY2VfdHlwZSwgdHlwbW9kKSkKKwkJCXsKKwkJCQkqY2FuX2NvZXJjZSA9IGZhbHNl OworCQkJCWxpc3RfZnJlZShuZXdjb2VyY2VkZWxlbXMpOworCQkJCW5ld2NvZXJjZWRlbGVtcyA9 IE5JTDsKKwkJCQlyZXR1cm4gTlVMTDsKKwkJCX0KKwkJfQorCiAJCWlmIChjb2VyY2VfaGFyZCkK IAkJewogCQkJbmV3ZSA9IGNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsIGUsCkBAIC0yNzQy LDcgKzI4ODEsOCBAQCB0cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVD YXN0ICp0YykKIAkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICopIGFyZywKIAkJCQkJCQkJCSAgdGFy Z2V0QmFzZVR5cGUsCiAJCQkJCQkJCQkgIGVsZW1lbnRUeXBlLAotCQkJCQkJCQkJICB0YXJnZXRC YXNlVHlwbW9kKTsKKwkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5cG1vZCwKKwkJCQkJCQkJCSAgTlVM TCk7CiAJCX0KIAkJZWxzZQogCQkJZXhwciA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwg YXJnKTsKQEAgLTI3NzksNiArMjkxOSwxOTkgQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorCisvKgorICog SGFuZGxlIGFuIGV4cGxpY2l0IENBU1QoLi4uIERFRkFVTFQgLi4uIE9OIENPTlZFUlNJT04gRVJS T1IpIGNvbnN0cnVjdC4KKyAqCisgKiBUcmFuc2Zvcm0gU2FmZVR5cGVDYXN0IG5vZGUsIGxvb2sg dXAgdGhlIHR5cGUgbmFtZSwgYW5kIGFwcGx5IGFueSBuZWNlc3NhcnkKKyAqIGNvZXJjaW9uIGZ1 bmN0aW9uKHMpLgorICovCitzdGF0aWMgTm9kZSAqCit0cmFuc2Zvcm1UeXBlU2FmZUNhc3QoUGFy c2VTdGF0ZSAqcHN0YXRlLCBTYWZlVHlwZUNhc3QgKnRjKQoreworCVNhZmVUeXBlQ2FzdEV4cHIg ICAqcmVzdWx0OworCVR5cGVDYXN0ICAgKnRjYXN0ID0gKFR5cGVDYXN0ICopIHRjLT5jYXN0Owor CU5vZGUJICAgKnRjX2FyZyA9IHRjYXN0LT5hcmc7CisJTm9kZQkgICAqZGVmX2V4cHI7CisJTm9k ZQkgICAqY2FzdF9leHByID0gTlVMTDsKKwlOb2RlCSAgICpzb3VyY2VfZXhwciA9IE5VTEw7CisJ Tm9kZQkgICAqYXJyYXlfZXhwciA9IE5VTEw7CisJT2lkCQkJaW5wdXRUeXBlID0gSW52YWxpZE9p ZDsKKwlPaWQJCQl0YXJnZXRUeXBlOworCU9pZAkJCXRhcmdldEJhc2VUeXBlOworCWludDMyCQl0 YXJnZXRUeXBtb2Q7CisJaW50MzIJCXRhcmdldEJhc2VUeXBtb2Q7CisJYm9vbAkJY2FuX2NvZXJj ZSA9IHRydWU7CisJaW50CQkJZGVmX2V4cHJfbG9jID0gLTE7CisJaW50CQkJbG9jYXRpb247CisK KwlyZXN1bHQgPSBtYWtlTm9kZShTYWZlVHlwZUNhc3RFeHByKTsKKworCS8qIExvb2sgdXAgdGhl IHR5cGUgbmFtZSBmaXJzdCAqLworCXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBzdGF0ZSwgdGNhc3Qt PnR5cGVOYW1lLCAmdGFyZ2V0VHlwZSwgJnRhcmdldFR5cG1vZCk7CisJdGFyZ2V0QmFzZVR5cG1v ZCA9IHRhcmdldFR5cG1vZDsKKwl0YXJnZXRCYXNlVHlwZSA9IGdldEJhc2VUeXBlQW5kVHlwbW9k KHRhcmdldFR5cGUsICZ0YXJnZXRCYXNlVHlwbW9kKTsKKworCXJlc3VsdC0+cmVzdWx0dHlwZSA9 IHRhcmdldFR5cGU7CisJcmVzdWx0LT5yZXN1bHR0eXBtb2QgPSB0YXJnZXRUeXBtb2Q7CisJLyog bm93IGxvb2tpbmcgYXQgY2FzdCBmYWlsIGRlZmF1bHQgZXhwcmVzc2lvbiAqLworCWRlZl9leHBy X2xvYyA9IGV4cHJMb2NhdGlvbih0Yy0+ZXhwcik7CisJZGVmX2V4cHIgPSB0cmFuc2Zvcm1FeHBy UmVjdXJzZShwc3RhdGUsIHRjLT5leHByKTsKKworCWlmIChleHByZXNzaW9uX3JldHVybnNfc2V0 KGRlZl9leHByKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfREFUQVRZ UEVfTUlTTUFUQ0gpLAorCQkJCWVycm1zZygiREVGQVVMVCBleHByZXNzaW9uIG11c3Qgbm90IHJl dHVybiBhIHNldCIpLAorCQkJCXBhcnNlcl9jb2VyY2lvbl9lcnJwb3NpdGlvbihwc3RhdGUsIGRl Zl9leHByX2xvYywgZGVmX2V4cHIpKTsKKworCWlmIChJc0EoZGVmX2V4cHIsIEFnZ3JlZikgfHwg SXNBKGRlZl9leHByLCBXaW5kb3dGdW5jKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQllcnJtc2coIkRFRkFVTFQgZXhw cmVzc2lvbiBmdW5jdGlvbiBtdXN0IGJlIGEgbm9ybWFsIGZ1bmN0aW9uIiksCisJCQkJcGFyc2Vy X2NvZXJjaW9uX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmX2V4cHJfbG9jLCBkZWZfZXhwcikpOwor CisJaWYgKElzQShkZWZfZXhwciwgRnVuY0V4cHIpKQorCXsKKwkJaWYgKGdldF9mdW5jX3Byb2tp bmQoKChGdW5jRXhwciAqKSBkZWZfZXhwciktPmZ1bmNpZCkgIT0gUFJPS0lORF9GVU5DVElPTikK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9E RUZJTklUSU9OKSwKKwkJCQkJZXJybXNnKCJERUZBVUxUIGV4cHJlc3Npb24gZnVuY3Rpb24gbXVz dCBiZSBhIG5vcm1hbCBmdW5jdGlvbiIpLAorCQkJCQlwYXJzZXJfY29lcmNpb25fZXJycG9zaXRp b24ocHN0YXRlLCBkZWZfZXhwcl9sb2MsIGRlZl9leHByKSk7CisJfQorCisJZGVmX2V4cHIgPSBj b2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBkZWZfZXhwciwgZXhwclR5cGUoZGVmX2V4cHIp LAorCQkJCQkJCQkJIHRhcmdldFR5cGUsIHRhcmdldFR5cG1vZCwKKwkJCQkJCQkJCSBDT0VSQ0lP Tl9FWFBMSUNJVCwKKwkJCQkJCQkJCSBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCSBl eHByTG9jYXRpb24oZGVmX2V4cHIpKTsKKwlpZiAoZGVmX2V4cHIgPT0gTlVMTCkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCisJCQkJZXJybXNn KCJjYW5ub3QgY2FzdCBERUZBVUxUIGNsYXVzZSBmb3IgQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBF UlJPUiB0byB0eXBlICVzIiwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSkpLAor CQkJCXBhcnNlcl9jb2VyY2lvbl9lcnJwb3NpdGlvbihwc3RhdGUsIGRlZl9leHByX2xvYywgZGVm X2V4cHIpKTsKKworCS8qCisJICogSWYgdGhlIHN1YmplY3Qgb2YgdGhlIHR5cGVjYXN0IGlzIGFu IEFSUkFZW10gY29uc3RydWN0IGFuZCB0aGUgdGFyZ2V0CisJICogdHlwZSBpcyBhbiBhcnJheSB0 eXBlLCB3ZSBpbnZva2UgdHJhbnNmb3JtQXJyYXlFeHByKCkgZGlyZWN0bHkgc28gdGhhdAorCSAq IHdlIGNhbiBwYXNzIGRvd24gdGhlIHR5cGUgaW5mb3JtYXRpb24uICBUaGlzIGF2b2lkcyBzb21l IGNhc2VzIHdoZXJlCisJICogdHJhbnNmb3JtQXJyYXlFeHByKCkgbWlnaHQgbm90IGluZmVyIHRo ZSBjb3JyZWN0IHR5cGUuICBPdGhlcndpc2UsIGp1c3QKKwkgKiB0cmFuc2Zvcm0gdGhlIGFyZ3Vt ZW50IG5vcm1hbGx5LgorCSAqLworCWlmIChJc0EodGNfYXJnLCBBX0FycmF5RXhwcikpCisJewor CQlPaWQJCQllbGVtZW50VHlwZTsKKworCQkvKgorCQkgKiBJZiB0YXJnZXQgaXMgYSBkb21haW4g b3ZlciBhcnJheSwgd29yayB3aXRoIHRoZSBiYXNlIGFycmF5IHR5cGUKKwkJICogaGVyZS4gIEJl bG93LCB3ZSdsbCBjYXN0IHRoZSBhcnJheSB0eXBlIHRvIHRoZSBkb21haW4uICBJbiB0aGUKKwkJ ICogdXN1YWwgY2FzZSB0aGF0IHRoZSB0YXJnZXQgaXMgbm90IGEgZG9tYWluLCB0aGUgcmVtYWlu aW5nIHN0ZXBzCisJCSAqIHdpbGwgYmUgYSBuby1vcC4KKwkJICovCisJCWVsZW1lbnRUeXBlID0g Z2V0X2VsZW1lbnRfdHlwZSh0YXJnZXRCYXNlVHlwZSk7CisKKwkJaWYgKE9pZElzVmFsaWQoZWxl bWVudFR5cGUpKQorCQl7CisJCQlhcnJheV9leHByID0gY29weU9iamVjdCh0Y19hcmcpOworCisJ CQlzb3VyY2VfZXhwciA9IHRyYW5zZm9ybUFycmF5RXhwcihwc3RhdGUsCisJCQkJCQkJCQkJCSAo QV9BcnJheUV4cHIgKikgdGNfYXJnLAorCQkJCQkJCQkJCQkgdGFyZ2V0QmFzZVR5cGUsCisJCQkJ CQkJCQkJCSBlbGVtZW50VHlwZSwKKwkJCQkJCQkJCQkJIHRhcmdldEJhc2VUeXBtb2QsCisJCQkJ CQkJCQkJCSAmY2FuX2NvZXJjZSk7CisJCQlpZiAoIWNhbl9jb2VyY2UpCisJCQl7CisJCQkJQXNz ZXJ0KHNvdXJjZV9leHByID09IE5VTEwpOworCQkJCXNvdXJjZV9leHByID0gIHRyYW5zZm9ybUFy cmF5RXhwclNhZmUocHN0YXRlLAorCQkJCQkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICopIGFycmF5 X2V4cHIsCisJCQkJCQkJCQkJCQkJICB0YXJnZXRCYXNlVHlwZSwKKwkJCQkJCQkJCQkJCQkgIGVs ZW1lbnRUeXBlLAorCQkJCQkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5cG1vZCk7CisJCQl9CisJCX0K KwkJZWxzZQorCQkJc291cmNlX2V4cHIgPSB0cmFuc2Zvcm1FeHByUmVjdXJzZShwc3RhdGUsIHRj X2FyZyk7CisJfQorCWVsc2UKKwkJc291cmNlX2V4cHIgPSB0cmFuc2Zvcm1FeHByUmVjdXJzZShw c3RhdGUsIHRjX2FyZyk7CisKKwlpbnB1dFR5cGUgPSBleHByVHlwZShzb3VyY2VfZXhwcik7CisJ aWYgKGlucHV0VHlwZSA9PSBJbnZhbGlkT2lkICYmIGNhbl9jb2VyY2UpCisJCXJldHVybiAoTm9k ZSAqKSByZXN1bHQ7CQkJLyogZG8gbm90aGluZyBpZiBOVUxMIGlucHV0ICovCisKKwlpZiAoY2Fu X2NvZXJjZSAmJiBJc0Eoc291cmNlX2V4cHIsIENvbnN0KSAmJiBleHByVHlwZShzb3VyY2VfZXhw cikgPT0gVU5LTk9XTk9JRCkKKwkJY2FuX2NvZXJjZSA9IENvdmVydFVua25vd25Db25zdFNhZmUo cHN0YXRlLAorCQkJCQkJCQkJCQlzb3VyY2VfZXhwciwKKwkJCQkJCQkJCQkJdGFyZ2V0VHlwZSwK KwkJCQkJCQkJCQkJdGFyZ2V0VHlwbW9kKTsKKworCS8qCisJICogTG9jYXRpb24gb2YgdGhlIGNv ZXJjaW9uIGlzIHByZWZlcmVudGlhbGx5IHRoZSBsb2NhdGlvbiBvZiB0aGUgOjogb3IKKwkgKiBD QVNUIHN5bWJvbCwgYnV0IGlmIHRoZXJlIGlzIG5vbmUgdGhlbiB1c2UgdGhlIGxvY2F0aW9uIG9m IHRoZSB0eXBlCisJICogbmFtZSAodGhpcyBjYW4gaGFwcGVuIGluIFR5cGVOYW1lICdzdHJpbmcn IHN5bnRheCwgZm9yIGluc3RhbmNlKS4KKwkgKi8KKwlsb2NhdGlvbiA9IHRjYXN0LT5sb2NhdGlv bjsKKwlpZiAobG9jYXRpb24gPCAwKQorCQlsb2NhdGlvbiA9IHRjYXN0LT50eXBlTmFtZS0+bG9j YXRpb247CisKKwlpZiAoY2FuX2NvZXJjZSkKKwl7CisJCU5vZGUJICAgKm9yaWdleHByOworCQlj YXN0X2V4cHIgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBzb3VyY2VfZXhwciwgaW5w dXRUeXBlLAorCQkJCQkJCQkJCSAgdGFyZ2V0VHlwZSwgdGFyZ2V0VHlwbW9kLAorCQkJCQkJCQkJ CSAgQ09FUkNJT05fRVhQTElDSVQsCisJCQkJCQkJCQkJICBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwK KwkJCQkJCQkJCQkgIGxvY2F0aW9uKTsKKwkJb3JpZ2V4cHIgPSBjYXN0X2V4cHI7CisJCXdoaWxl IChjYXN0X2V4cHIgJiYgSXNBKGNhc3RfZXhwciwgQ29sbGF0ZUV4cHIpKQorCQkJY2FzdF9leHBy ID0gKE5vZGUgKikgKChDb2xsYXRlRXhwciAqKSBjYXN0X2V4cHIpLT5hcmc7CisKKwkJaWYgKGNh c3RfZXhwciAmJiBJc0EoY2FzdF9leHByLCBGdW5jRXhwcikpCisJCXsKKwkJCUhlYXBUdXBsZQl0 dXBsZTsKKwkJCUxpc3RDZWxsICAgKmxjOworCQkJTm9kZQkgICAqc2V4cHI7CisJCQlGdW5jRXhw ciAgICpmZXhwciA9IChGdW5jRXhwciAqKSBjYXN0X2V4cHI7CisKKwkJCWxjID0gbGlzdF9oZWFk KGZleHByLT5hcmdzKTsKKwkJCXNleHByID0gKE5vZGUgKikgbGZpcnN0KGxjKTsKKworCQkJLyog TG9vayBpbiBwZ19jYXN0ICovCisJCQl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMihDQVNUU09VUkNF VEFSR0VULAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShleHByVHlwZShzZXhwcikpLAorCQkJ CQkJCQkJT2JqZWN0SWRHZXREYXR1bSh0YXJnZXRUeXBlKSk7CisKKwkJCWlmIChIZWFwVHVwbGVJ c1ZhbGlkKHR1cGxlKSkKKwkJCXsKKwkJCQlGb3JtX3BnX2Nhc3QgY2FzdEZvcm0gPSAoRm9ybV9w Z19jYXN0KSBHRVRTVFJVQ1QodHVwbGUpOworCQkJCWlmICghY2FzdEZvcm0tPmNhc3RlcnJvcnNh ZmUpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJCQkJZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVz IHdoZW4gJXMgY2xhdXNlIGlzIHNwZWNpZmllZCBmb3IgJXMiLAorCQkJCQkJCQkgICBmb3JtYXRf dHlwZV9iZShpbnB1dFR5cGUpLAorCQkJCQkJCQkgICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBl KSwKKwkJCQkJCQkJICAgIkRFRkFVTFQiLAorCQkJCQkJCQkgICAiQ0FTVCAuLi4gT04gQ09OVkVS U0lPTiBFUlJPUiIpLAorCQkJCQkJCWVycmhpbnQoIkN1cnJlbnRseSBDQVNUIC4uLiBERUZBVUxU IE9OIENPTlZFUlNJT04gRVJST1IgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNhc3QiKSwKKwkJCQkJ CQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oc291cmNlX2V4cHIpKSk7 CisJCQl9CisJCQllbHNlCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IHBnX2Nhc3QgZW50cnkgKCVzIGNhc3QgdG8gJXMpIiwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShp bnB1dFR5cGUpLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGUpKTsKKwkJCVJlbGVh c2VTeXNDYWNoZSh0dXBsZSk7CisJCX0KKwkJY2FzdF9leHByID0gb3JpZ2V4cHI7CisJfQorCisJ cmVzdWx0LT5zb3VyY2VfZXhwciA9IHNvdXJjZV9leHByOworCXJlc3VsdC0+Y2FzdF9leHByID0g Y2FzdF9leHByOworCXJlc3VsdC0+ZGVmYXVsdF9leHByID0gZGVmX2V4cHI7CisKKwlyZXR1cm4g KE5vZGUgKikgcmVzdWx0OworfQorCiAvKgogICogSGFuZGxlIGFuIGV4cGxpY2l0IENPTExBVEUg Y2xhdXNlLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA0YWJhMGQ5ZDRkNS4u ODEyZWQxOGMxNjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTE4MjMsNiArMTgy MywyMCBAQCBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hhciAqKm5hbWUpCiAJ CQkJfQogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3Q6CisJCQlzdHJlbmd0 aCA9IEZpZ3VyZUNvbG5hbWVJbnRlcm5hbCgoKFNhZmVUeXBlQ2FzdCAqKSBub2RlKS0+Y2FzdCwK KwkJCQkJCQkJCQkJIG5hbWUpOworCQkJaWYgKHN0cmVuZ3RoIDw9IDEpCisJCQl7CisJCQkJVHlw ZUNhc3QgKm5vZGVfY2FzdDsKKwkJCQlub2RlX2Nhc3QgPSAoVHlwZUNhc3QgKikoKFNhZmVUeXBl Q2FzdCAqKSBub2RlKS0+Y2FzdDsKKwkJCQlpZiAobm9kZV9jYXN0LT50eXBlTmFtZSAhPSBOVUxM KQorCQkJCXsKKwkJCQkJKm5hbWUgPSBzdHJWYWwobGxhc3Qobm9kZV9jYXN0LT50eXBlTmFtZS0+ bmFtZXMpKTsKKwkJCQkJcmV0dXJuIDE7CisJCQkJfQorCQkJfQorCQkJYnJlYWs7CiAJCWNhc2Ug VF9Db2xsYXRlQ2xhdXNlOgogCQkJcmV0dXJuIEZpZ3VyZUNvbG5hbWVJbnRlcm5hbCgoKENvbGxh dGVDbGF1c2UgKikgbm9kZSktPmFyZywgbmFtZSk7CiAJCWNhc2UgVF9Hcm91cGluZ0Z1bmM6CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3R5cGUuYwppbmRleCA3NzEzYmRjNmFmMC4uMDJlNWY5YzkyZDcgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3R5cGUuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGdfdHlwZS5oIgogI2luY2x1ZGUgImxpYi9zdHJpbmdpbmZvLmgiCiAjaW5jbHVkZSAibm9kZXMv bWFrZWZ1bmNzLmgiCisjaW5jbHVkZSAibm9kZXMvbWlzY25vZGVzLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VyLmgiCiAjaW5jbHVkZSAi dXRpbHMvYXJyYXkuaCIKQEAgLTY2MCw2ICs2NjEsMTggQEAgc3RyaW5nVHlwZURhdHVtKFR5cGUg dHAsIGNoYXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9kKQogCXJldHVybiBPaWRJbnB1dEZ1bmN0 aW9uQ2FsbCh0eXBpbnB1dCwgc3RyaW5nLCB0eXBpb3BhcmFtLCBhdHR0eXBtb2QpOwogfQogCiti b29sCitzdHJpbmdUeXBlRGF0dW1TYWZlKFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIgYXR0 dHlwbW9kLCBEYXR1bSAqcmVzdWx0KQoreworCUZvcm1fcGdfdHlwZSB0eXBmb3JtID0gKEZvcm1f cGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKwlPaWQJCQl0eXBpbnB1dCA9IHR5cGZvcm0tPnR5cGlu cHV0OworCU9pZAkJCXR5cGlvcGFyYW0gPSBnZXRUeXBlSU9QYXJhbSh0cCk7CisJRXJyb3JTYXZl Q29udGV4dCBlc2NvbnRleHQgPSB7VF9FcnJvclNhdmVDb250ZXh0fTsKKworCXJldHVybiBPaWRJ bnB1dEZ1bmN0aW9uQ2FsbFNhZmUodHlwaW5wdXQsIHN0cmluZywgdHlwaW9wYXJhbSwgYXR0dHlw bW9kLAorCQkJCQkJCQkJKGZtTm9kZVB0cikgJmVzY29udGV4dCwgcmVzdWx0KTsKK30KKwogLyoK ICAqIEdpdmVuIGEgdHlwZWlkLCByZXR1cm4gdGhlIHR5cGUncyB0eXByZWxpZCAoYXNzb2NpYXRl ZCByZWxhdGlvbiksIGlmIGFueS4KICAqIFJldHVybnMgSW52YWxpZE9pZCBpZiB0eXBlIGlzIG5v dCBhIGNvbXBvc2l0ZSB0eXBlLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Fy cmF5ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKaW5kZXggYjVm OThiZjIyZjkuLjZiZDhhOTg5ZGJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv YXJyYXlmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKQEAg LTMyOTUsNiArMzI5NSwxMiBAQCBhcnJheV9tYXAoRGF0dW0gYXJyYXlkLAogCQkJcmV0dXJuIChE YXR1bSkgMDsKIAkJfQogCisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGV4cHJzdGF0ZS0+ZXNj b250ZXh0KSkKKwkJeworCQkJcGZyZWUodmFsdWVzKTsKKwkJCXBmcmVlKG51bGxzKTsKKwkJCXJl dHVybiAoRGF0dW0pIDA7CisJCX0KIAkJaWYgKG51bGxzW2ldKQogCQkJaGFzbnVsbHMgPSB0cnVl OwogCQllbHNlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggM2Q2ZTZiZGJmZDIuLmVl ODY4ZGUyYzY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0xMDUzNCw2ICsxMDUz NCwyMSBAQCBnZXRfcnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4 dCwKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJewor CQkJCVNhZmVUeXBlQ2FzdEV4cHIgICAqc3RjZXhwciA9IGNhc3ROb2RlKFNhZmVUeXBlQ2FzdEV4 cHIsIG5vZGUpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJDQVNUKCIpOwor CQkJCWdldF9ydWxlX2V4cHIoc3RjZXhwci0+c291cmNlX2V4cHIsIGNvbnRleHQsIHNob3dpbXBs aWNpdCk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiBBUyAlcyAiLAorCQkJCQkJCQkg Zm9ybWF0X3R5cGVfd2l0aF90eXBlbW9kKHN0Y2V4cHItPnJlc3VsdHR5cGUsIHN0Y2V4cHItPnJl c3VsdHR5cG1vZCkpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJERUZBVUxU ICIpOworCQkJCWdldF9ydWxlX2V4cHIoc3RjZXhwci0+ZGVmYXVsdF9leHByLCBjb250ZXh0LCBz aG93aW1wbGljaXQpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIE9OIENPTlZF UlNJT04gRVJST1IpIik7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0pzb25FeHByOgogCQkJ ewogCQkJCUpzb25FeHByICAgKmpleHByID0gKEpzb25FeHByICopIG5vZGU7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3Iv Zm1nci5jCmluZGV4IDc4MjI5MWQ5OTk4Li45ZGU4OTVlNjgyZiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdy LmMKQEAgLTE3NTksNiArMTc1OSwxOSBAQCBPaWRJbnB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rp b25JZCwgY2hhciAqc3RyLCBPaWQgdHlwaW9wYXJhbSwgaW50MzIgdHlwbW9kKQogCXJldHVybiBJ bnB1dEZ1bmN0aW9uQ2FsbCgmZmxpbmZvLCBzdHIsIHR5cGlvcGFyYW0sIHR5cG1vZCk7CiB9CiAK K2Jvb2wKK09pZElucHV0RnVuY3Rpb25DYWxsU2FmZShPaWQgZnVuY3Rpb25JZCwgY2hhciAqc3Ry LCBPaWQgdHlwaW9wYXJhbSwKKwkJCQkJCSBpbnQzMiB0eXBtb2QsIGZtTm9kZVB0ciBlc2NvbnRl eHQsCisJCQkJCQkgRGF0dW0gKnJlc3VsdCkKK3sKKwlGbWdySW5mbwkJCWZsaW5mbzsKKworCWZt Z3JfaW5mbyhmdW5jdGlvbklkLCAmZmxpbmZvKTsKKworCXJldHVybiBJbnB1dEZ1bmN0aW9uQ2Fs bFNhZmUoJmZsaW5mbywgc3RyLCB0eXBpb3BhcmFtLCB0eXBtb2QsCisJCQkJCQkJCSBlc2NvbnRl eHQsIHJlc3VsdCk7Cit9CisKIGNoYXIgKgogT2lkT3V0cHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5j dGlvbklkLCBEYXR1bSB2YWwpCiB7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2Nhc3QuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdAppbmRleCBmYmZkNjY5 NTg3Zi4uM2FkZWY2YjRmYWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2Fz dC5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdApAQCAtMTksNjUgKzE5 LDY1IEBACiAjIGludDItPmludDQtPmludDgtPm51bWVyaWMtPmZsb2F0NC0+ZmxvYXQ4LCB3aGls ZSBjYXN0cyBpbiB0aGUKICMgcmV2ZXJzZSBkaXJlY3Rpb24gYXJlIGFzc2lnbm1lbnQtb25seS4K IHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9 PiAnaW50MihpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0 JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRh cmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChpbnQ4KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGlu dDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0 ZnVuYyA9PiAnbnVtZXJpYyhpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0 ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQy JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9h dDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4Jywg Y2FzdGZ1bmMgPT4gJ2Zsb2F0OChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFy Z2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVyaWMoaW50MiknLAotICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGludDQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9 PiAnaW50MihpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdmbG9h dDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNh c3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9hdDgoaW50NCknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1l cmljKGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnaW50OCcs IGNhc3RmdW5jID0+ICdpbnQ4KGZsb2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDQnLCBjYXN0 dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoZmxvYXQ0KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChmbG9h dDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2Fz dGZ1bmMgPT4gJ2Zsb2F0OChmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRh cmdldCA9PiAnbnVtZXJpYycsCi0gIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0NCknLCBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdudW1l cmljKGZsb2F0NCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdl dCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGZsb2F0OCknLAotICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdm bG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoZmxvYXQ4KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9 PiAnaW50NChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAn ZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxv YXQ4JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsCi0gIGNhc3RmdW5jID0+ICdudW1lcmljKGZs b2F0OCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rm dW5jID0+ICdudW1lcmljKGZsb2F0OCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJp YycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChudW1lcmljKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4g J2ludDIobnVtZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAn aW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KG51bWVyaWMpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJp YycsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsCi0gIGNhc3RmdW5jID0+ICdmbG9hdDQobnVtZXJp YyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5j ID0+ICdmbG9hdDQobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycs IGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsCi0gIGNhc3RmdW5jID0+ICdmbG9hdDgobnVtZXJpYykn LCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbW9uZXknLCBjYXN0 dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVyaWMobW9uZXkpJywKICAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAogeyBjYXN0c291cmNlID0+ICdu dW1lcmljJywgY2FzdHRhcmdldCA9PiAnbW9uZXknLCBjYXN0ZnVuYyA9PiAnbW9uZXkobnVtZXJp YyknLApAQCAtODksMTMgKzg5LDEzIEBACiAKICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJl dHdlZW4gaW50NCBhbmQgYm9vbAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9 PiAnYm9vbCcsIGNhc3RmdW5jID0+ICdib29sKGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcs IGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChib29sKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQWxsb3cg ZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4geGlkOCBhbmQgeGlkCiB7IGNhc3Rzb3VyY2UgPT4g J3hpZDgnLCBjYXN0dGFyZ2V0ID0+ICd4aWQnLCBjYXN0ZnVuYyA9PiAneGlkKHhpZDgpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBP SUQgY2F0ZWdvcnk6IGFsbG93IGltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBhbnkgaW50ZWdyYWwg dHlwZSAoaW5jbHVkaW5nCiAjIGludDgsIHRvIHN1cHBvcnQgT0lEIGxpdGVyYWxzID4gMkcpIHRv IE9JRCwgYXMgd2VsbCBhcyBhc3NpZ25tZW50IGNvZXJjaW9uCkBAIC0xMDYsMTMgKzEwNiwxMyBA QAogIyBjYXN0cyBmcm9tIHRleHQgYW5kIHZhcmNoYXIgdG8gcmVnY2xhc3MsIHdoaWNoIGV4aXN0 IG1haW5seSB0byBzdXBwb3J0CiAjIGxlZ2FjeSBmb3JtcyBvZiBuZXh0dmFsKCkgYW5kIHJlbGF0 ZWQgZnVuY3Rpb25zLgogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnb2lk JywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ ICdvaWQnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBj YXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdl dCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0 YXJnZXQgPT4gJ3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xMjAsMTMgKzEyMCwxMyBA QAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMg PT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jJywg Y2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdl dCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdl dCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdw cm9jJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9j JywgY2FzdHRhcmdldCA9PiAncmVncHJvY2VkdXJlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTM4 LDEzICsxMzgsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvY2VkdXJlJywgY2FzdHRhcmdl dCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdy ZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNh c3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1 bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3R0YXJn ZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAn cmVnb3BlcicsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE1MiwxMyArMTUyLDEzIEBACiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXInLCBjYXN0ZnVuYyA9PiAnb2lkJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXInLCBjYXN0ZnVuYyA9 PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdv cGVyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4 JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFy Z2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE3MCwxMyArMTcwLDEz IEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdHRhcmdldCA9PiAnb2lkJywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcics IGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAn cmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdy ZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0b3InLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1 bmMgPT4gJzAnLApAQCAtMTg0LDEzICsxODQsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnY2xh c3MnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5j ID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnY29s bGF0aW9uJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTk4LDEzICsxOTgsMTMgQEAKIHsgY2FzdHNv dXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9 PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlv bicsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0 YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjb2xsYXRp b24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICcw JywKQEAgLTIxMiwxMyArMjEyLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0 dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNh c3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lk KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbmZpZycsIGNhc3RmdW5j ID0+ICcwJywKQEAgLTIyNiwxMyArMjI2LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbmZp ZycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2Fz dHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQy KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0 ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwK IHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3Rm dW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjb25maWcnLCBjYXN0dGFyZ2V0 ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3Jl Z2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yNDAsMzEgKzI0MCwzMSBAQAogeyBj YXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2Fz dGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdk aWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0 JywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdy ZWdkaWN0aW9uYXJ5JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9p ZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdHRhcmdldCA9PiAnaW50NCcs IGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdi JyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBj YXN0ZnVuYyA9PiAncmVnY2xhc3MnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdl dCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAncmVnY2xhc3MnLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdv aWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Jv bGUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn aW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4g J2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0 JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFj ZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI3MiwxMyArMjcyLDEzIEBACiB7IGNhc3Rzb3VyY2Ug PT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywK ICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJ29p ZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBj YXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0 ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnbmFtZXNwYWNlJywg Y2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJzAn LApAQCAtMjg2LDEzICsyODYsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGF0YWJhc2UnLCBj YXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJn ZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNh c3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdkYXRhYmFzZScsIGNhc3R0 YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIApAQCAtMzAyLDU3ICszMDIsNTcgQEAKIHsgY2FzdHNvdXJj ZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGJwY2hh ciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2Fz dGZ1bmMgPT4gJ3RleHQoYnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFy Z2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0 ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2hhcicsIGNhc3R0YXJnZXQgPT4g J3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBj YXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAnYnBjaGFyKGNoYXIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4 dChjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ25hbWUnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2Fz dGZ1bmMgPT4gJ3RleHQobmFtZSknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9 PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJ2JwY2hhcihuYW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ25h bWUnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3ZhcmNoYXIobmFtZSkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ ICdjaGFyKHRleHQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAnY2hh cicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNh c3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcih0ZXh0KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUodGV4dCkn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ICduYW1lJywgY2FzdGZ1bmMg PT4gJ25hbWUoYnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUodmFyY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0IGNv ZXJjaW9ucyBiZXR3ZWVuIGJ5dGVhIGFuZCBpbnRlZ2VyIHR5cGVzCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDInLCBjYXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQyKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3RmdW5jID0+ ICdieXRlYShpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdieXRl YScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2Fz dHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGJ5dGVhKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGJ5dGVh KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5j ID0+ICdpbnQ4KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4gaW50 NCBhbmQgImNoYXIiCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0 JywgY2FzdGZ1bmMgPT4gJ2ludDQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRh cmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKGludDQpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBwZ19ub2RlX3RyZWUg Y2FuIGJlIGNvZXJjZWQgdG8sIGJ1dCBub3QgZnJvbSwgdGV4dAogeyBjYXN0c291cmNlID0+ICdw Z19ub2RlX3RyZWUnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLApAQCAt Mzc4LDMxICszNzgsMzEgQEAKIAogIyBEYXRldGltZSBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ ICdkYXRlJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVz dGFtcChkYXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcChkYXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdk YXRlJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wdHonLAotICBjYXN0ZnVuYyA9PiAndGltZXN0 YW1wdHooZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eihkYXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd0aW1lJywgY2FzdHRhcmdldCA9PiAnaW50ZXJ2YWwnLCBjYXN0ZnVuYyA9PiAnaW50ZXJ2YWwo dGltZSknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAndGltZXR6JywgY2Fz dGZ1bmMgPT4gJ3RpbWV0eih0aW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0 YXJnZXQgPT4gJ2RhdGUnLAotICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXApJywgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZGF0ZSh0 aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJn ZXQgPT4gJ3RpbWUnLAotICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXApJywgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZSh0aW1l c3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQg PT4gJ3RpbWVzdGFtcHR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KHRpbWVzdGFtcCkn LCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVz dGFtcHR6JywgY2FzdHRhcmdldCA9PiAnZGF0ZScsCi0gIGNhc3RmdW5jID0+ICdkYXRlKHRpbWVz dGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Rp bWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAndGltZScsCi0gIGNhc3RmdW5jID0+ICd0aW1lKHRp bWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wJywKLSAgY2FzdGZ1bmMgPT4g J3RpbWVzdGFtcCh0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAodGltZXN0YW1wdHopJywgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywK LSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXN0YW1wdHop JywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludGVydmFsJywgY2FzdHRhcmdldCA9PiAndGlt ZScsIGNhc3RmdW5jID0+ICd0aW1lKGludGVydmFsKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWV0eics IGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAndGltZSh0aW1ldHopJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBHZW9t ZXRyaWMgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAncG9pbnQnLCBjYXN0dGFyZ2V0ID0+ICdi b3gnLCBjYXN0ZnVuYyA9PiAnYm94KHBvaW50KScsCkBAIC00MzYsMTUgKzQzNiwxNSBAQAogCiAj IE1BQyBhZGRyZXNzIGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ21hY2FkZHInLCBjYXN0dGFy Z2V0ID0+ICdtYWNhZGRyOCcsIGNhc3RmdW5jID0+ICdtYWNhZGRyOCcsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J21hY2FkZHI4JywgY2FzdHRhcmdldCA9PiAnbWFjYWRkcicsIGNhc3RmdW5jID0+ICdtYWNhZGRy JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IAogIyBJTkVUIGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ ICdpbmV0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdjaWRy JywgY2FzdGZ1bmMgPT4gJ2NpZHInLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEJpdFN0cmluZyBjYXRlZ29yeQogeyBjYXN0c291cmNl ID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJiaXQnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC00 NTQsMTMgKzQ1NCwxMyBAQAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIGJldHdlZW4gYml0IGFu ZCBpbnQ0LCBpbnQ4CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdiaXQn LCBjYXN0ZnVuYyA9PiAnYml0KGludDgsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2Fz dHRhcmdldCA9PiAnYml0JywgY2FzdGZ1bmMgPT4gJ2JpdChpbnQ0LGludDQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnYml0JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGJpdCkn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4g J2ludDQoYml0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiAKICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgdG8gYW5kIGZyb20gVEVYVAogIyBX ZSBuZWVkIGVudHJpZXMgaGVyZSBvbmx5IGZvciBhIGZldyBzcGVjaWFsaXplZCBjYXNlcyB3aGVy ZSB0aGUgYmVoYXZpb3IKQEAgLTQ3MSw2OCArNDcxLDY4IEBACiAjIGJlaGF2aW9yIHdpbGwgZW5z dWUgd2hlbiB0aGUgYXV0b21hdGljIGNhc3QgaXMgYXBwbGllZCBpbnN0ZWFkIG9mIHRoZQogIyBw Z19jYXN0IGVudHJ5IQogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAndGV4 dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0 YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoYm9vbCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBD cm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBWQVJDSEFSCiAjIFdlIHN1cHBvcnQgYWxs IHRoZSBzYW1lIGNhc3RzIGFzIGZvciBURVhULgogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2Fz dHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChp bmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2Fz dGZ1bmMgPT4gJ3RleHQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQg ZnJvbSBCUENIQVIKICMgV2Ugc3VwcG9ydCBhbGwgdGhlIHNhbWUgY2FzdHMgYXMgZm9yIFRFWFQu CiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVu YyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdi cGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBj YXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3htbCcsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBMZW5n dGgtY29lcmNpb24gZnVuY3Rpb25zCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJn ZXQgPT4gJ2JwY2hhcicsCiAgIGNhc3RmdW5jID0+ICdicGNoYXIoYnBjaGFyLGludDQsYm9vbCkn LCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFy Y2hhcicsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLAogICBjYXN0ZnVuYyA9PiAndmFyY2hhcih2 YXJjaGFyLGludDQsYm9vbCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAndGltZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAn dGltZSh0aW1lLGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9 PiAndGltZXN0YW1wJywKICAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcCh0aW1lc3RhbXAsaW50NCkn LCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGlt ZXN0YW1wdHonLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eicsCiAgIGNhc3RmdW5jID0+ICd0 aW1lc3RhbXB0eih0aW1lc3RhbXB0eixpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ2ludGVy dmFsJywKICAgY2FzdGZ1bmMgPT4gJ2ludGVydmFsKGludGVydmFsLGludDQpJywgY2FzdGNvbnRl eHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0 YXJnZXQgPT4gJ3RpbWV0eicsCi0gIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXR6LGludDQpJywg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAn dGltZXR6KHRpbWV0eixpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0 dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9PiAnYml0KGJpdCxpbnQ0LGJvb2wpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAndmFyYml0JywgY2FzdHRhcmdldCA9PiAndmFyYml0JywgY2FzdGZ1bmMgPT4gJ3Zh cmJpdCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywK LSAgY2FzdGZ1bmMgPT4gJ251bWVyaWMobnVtZXJpYyxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ251bWVyaWMobnVtZXJpYyxp bnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogCiAjIGpzb24gdG8vZnJvbSBqc29uYgogeyBjYXN0c291cmNlID0+ICdq c29uJywgY2FzdHRhcmdldCA9PiAnanNvbmInLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC01NDIsMzYg KzU0MiwzNiBAQAogCiAjIGpzb25iIHRvIG51bWVyaWMgYW5kIGJvb2wgdHlwZXMKIHsgY2FzdHNv dXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2wo anNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywg Y2FzdGZ1bmMgPT4gJ251bWVyaWMoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0 dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoanNvbmIpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoanNvbmIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMg PT4gJ2ludDgoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdm bG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25i JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChqc29uYiknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAj IHJhbmdlIHRvIG11bHRpcmFuZ2UKIHsgY2FzdHNvdXJjZSA9PiAnaW50NHJhbmdlJywgY2FzdHRh cmdldCA9PiAnaW50NG11bHRpcmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAnaW50NG11bHRpcmFuZ2Uo aW50NHJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ4cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4bXVsdGlyYW5nZScsCiAgIGNh c3RmdW5jID0+ICdpbnQ4bXVsdGlyYW5nZShpbnQ4cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2Un LAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bXJhbmdlJywgY2FzdHRhcmdldCA9 PiAnbnVtbXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdudW1tdWx0aXJhbmdlKG51bXJhbmdl KScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdk YXRlcmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdkYXRlbXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ ICdkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RzcmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICd0c211bHRp cmFuZ2UnLAotICBjYXN0ZnVuYyA9PiAndHNtdWx0aXJhbmdlKHRzcmFuZ2UpJywgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndHNtdWx0aXJh bmdlKHRzcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RzdHpyYW5nZScsIGNhc3R0 YXJnZXQgPT4gJ3RzdHptdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ3RzdHptdWx0aXJhbmdl KHRzdHpyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIF0KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19jYXN0LmgKaW5kZXggNmEwY2EzMzcxNTMuLjIxOGQ4MWQ1MzVhIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2Nhc3QuaApAQCAtNDcsNiArNDcsMTAgQEAgQ0FUQUxPRyhwZ19jYXN0LDI2MDUsQ2FzdFJlbGF0 aW9uSWQpCiAKIAkvKiBjYXN0IG1ldGhvZCAqLwogCWNoYXIJCWNhc3RtZXRob2Q7CisKKwkvKiBj YXN0IGZ1bmN0aW9uIGVycm9yIHNhZmUgKi8KKwlib29sCQljYXN0ZXJyb3JzYWZlIEJLSV9ERUZB VUxUKGYpOworCiB9IEZvcm1EYXRhX3BnX2Nhc3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9l eGVjdXRvci9leGVjRXhwci5oCmluZGV4IDc1MzY2MjAzNzA2Li4wYWZjZjA5YzA4NiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9l eGVjdXRvci9leGVjRXhwci5oCkBAIC0yNjUsNiArMjY1LDcgQEAgdHlwZWRlZiBlbnVtIEV4cHJF dmFsT3AKIAlFRU9QX1hNTEVYUFIsCiAJRUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCUVFT1BfSVNf SlNPTiwKKwlFRU9QX1NBRkVUWVBFX0NBU1QsCiAJRUVPUF9KU09ORVhQUl9QQVRILAogCUVFT1Bf SlNPTkVYUFJfQ09FUkNJT04sCiAJRUVPUF9KU09ORVhQUl9DT0VSQ0lPTl9GSU5JU0gsCkBAIC03 NTAsNiArNzUxLDEyIEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQkJSnNvbklzUHJl ZGljYXRlICpwcmVkOwkvKiBvcmlnaW5hbCBleHByZXNzaW9uIG5vZGUgKi8KIAkJfQkJCWlzX2pz b247CiAKKwkJLyogZm9yIEVFT1BfU0FGRUNBU1QgKi8KKwkJc3RydWN0CisJCXsKKwkJCXN0cnVj dCBTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGU7CS8qIG9yaWdpbmFsIGV4cHJlc3Npb24gbm9k ZSAqLworCQl9CQkJc3RjZXhwcjsKKwogCQkvKiBmb3IgRUVPUF9KU09ORVhQUl9QQVRIICovCiAJ CXN0cnVjdAogCQl7CkBAIC04OTIsNiArODk5LDcgQEAgZXh0ZXJuIGludAlFeGVjRXZhbEpzb25F eHByUGF0aChFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCQkgRXhw ckNvbnRleHQgKmVjb250ZXh0KTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsSnNvbkNvZXJjaW9uKEV4 cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJCSBFeHByQ29udGV4dCAq ZWNvbnRleHQpOworaW50IEV4ZWNFdmFsU2FmZVR5cGVDYXN0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJFdmFsU3RlcCAqb3ApOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxKc29uQ29lcmNpb25GaW5pc2go RXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CiBleHRlcm4gdm9pZCBFeGVjRXZh bEdyb3VwaW5nRnVuYyhFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVy biB2b2lkIEV4ZWNFdmFsTWVyZ2VTdXBwb3J0RnVuYyhFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZh bFN0ZXAgKm9wLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZm1nci5oIGIvc3JjL2luY2x1ZGUv Zm1nci5oCmluZGV4IDBmZTdiNGViYzc3Li4yOTlkNGVlZjRlZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvZm1nci5oCisrKyBiL3NyYy9pbmNsdWRlL2ZtZ3IuaApAQCAtNzUwLDYgKzc1MCw5IEBA IGV4dGVybiBib29sIERpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShQR0Z1bmN0aW9uIGZ1bmMs IGNoYXIgKnN0ciwKIAkJCQkJCQkJCQlEYXR1bSAqcmVzdWx0KTsKIGV4dGVybiBEYXR1bSBPaWRJ bnB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rpb25JZCwgY2hhciAqc3RyLAogCQkJCQkJCQkgIE9p ZCB0eXBpb3BhcmFtLCBpbnQzMiB0eXBtb2QpOworZXh0ZXJuIGJvb2wgT2lkSW5wdXRGdW5jdGlv bkNhbGxTYWZlKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLAorCQkJ CQkJCQkJIGludDMyIHR5cG1vZCwgZm1Ob2RlUHRyIGVzY29udGV4dCwKKwkJCQkJCQkJCSBEYXR1 bSAqcmVzdWx0KTsKIGV4dGVybiBjaGFyICpPdXRwdXRGdW5jdGlvbkNhbGwoRm1nckluZm8gKmZs aW5mbywgRGF0dW0gdmFsKTsKIGV4dGVybiBjaGFyICpPaWRPdXRwdXRGdW5jdGlvbkNhbGwoT2lk IGZ1bmN0aW9uSWQsIERhdHVtIHZhbCk7CiBleHRlcm4gRGF0dW0gUmVjZWl2ZUZ1bmN0aW9uQ2Fs bChGbWdySW5mbyAqZmxpbmZvLCBmbVN0cmluZ0luZm8gYnVmLApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApp bmRleCBlMTA3ZDZlNWY4MS4uMjgyYmZhNzcwZWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0x MDU4LDYgKzEwNTgsMzYgQEAgdHlwZWRlZiBzdHJ1Y3QgRG9tYWluQ29uc3RyYWludFN0YXRlCiAJ RXhwclN0YXRlICAqY2hlY2tfZXhwcnN0YXRlOwkvKiBjaGVja19leHByJ3MgZXZhbCBzdGF0ZSwg b3IgTlVMTCAqLwogfSBEb21haW5Db25zdHJhaW50U3RhdGU7CiAKK3R5cGVkZWYgc3RydWN0IFNh ZmVUeXBlQ2FzdFN0YXRlCit7CisJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwcjsKKworCS8qIFNl dCB0byB0cnVlIGlmIHR5cGUgY2FzdCBjYXVzZSBhbiBlcnJvci4gKi8KKwlOdWxsYWJsZURhdHVt IGVycm9yOworCisJLyoKKwkgKiBBZGRyZXNzZXMgb2Ygc3RlcHMgdGhhdCBpbXBsZW1lbnQgREVG QVVMVCBleHByIE9OIENPTlZFUlNJT04gRVJST1IgZm9yCisJICogc2FmZSB0eXBlIGNhc3QuCisJ ICovCisJaW50IAkJanVtcF9lcnJvcjsKKworCS8qCisJICogQWRkcmVzcyB0byBqdW1wIHRvIHdo ZW4gc2tpcHBpbmcgYWxsIHRoZSBzdGVwcyB0byBldmF1bGF0ZSB0aGUgZGVmYXVsdAorCSAqIGV4 cHJlc3Npb24gYWZ0ZXIgcGVyZm9ybWluZyBFeGVjRXZhbFNhZmVUeXBlQ2FzdCgpLgorCSAqLwor CWludCAJCWp1bXBfZW5kOworCisJLyoKKwkgKiBGb3IgZXJyb3Itc2FmZSBldmFsdWF0aW9uIG9m IGNvZXJjaW9ucy4gIFdoZW4gREVGQVVMVCBleHByIE9OIENPTlZFUlNJT04KKwkgKiBPTiBFUlJP UiBpcyBzcGVjaWZpZWQsIGEgcG9pbnRlciB0byB0aGlzIGlzIHBhc3NlZCB0byBFeGVjSW5pdEV4 cHJSZWMoKQorCSAqIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBjb2VyY2lvbiBleHByZXNzaW9ucywg c2VlIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwci4KKwkgKgorCSAqIFJlc2V0IGZvciBlYWNoIGV2 YWx1YXRpb24gb2YgRUVPUF9TQUZFVFlQRV9DQVNULgorCSAqLworCUVycm9yU2F2ZUNvbnRleHQg ZXNjb250ZXh0OworCit9IFNhZmVUeXBlQ2FzdFN0YXRlOworCiAvKgogICogU3RhdGUgZm9yIEpz b25FeHByIGV2YWx1YXRpb24sIHRvbyBiaWcgdG8gaW5saW5lLgogICoKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAppbmRleCA4NmEyMzZiZDU4Yi4uOTUxNzRlMGZlZWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKQEAgLTM5OSw2ICszOTksMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgVHlwZUNhc3QKIAlQYXJzZUxv Ywlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9IFR5 cGVDYXN0OwogCit0eXBlZGVmIHN0cnVjdCBTYWZlVHlwZUNhc3QKK3sKKwlOb2RlVGFnCQl0eXBl OworCU5vZGUJCSpjYXN0OworCU5vZGUJICAgCSpleHByOwkJLyogZGVmYXVsdCBleHByICovCit9 IFNhZmVUeXBlQ2FzdDsKIC8qCiAgKiBDb2xsYXRlQ2xhdXNlIC0gYSBDT0xMQVRFIGV4cHJlc3Np b24KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA2ZGZjYTNjYjM1Yi4uZDJkZjdjMjg5MzIg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC03NTYsNiArNzU2LDQxIEBAIHR5cGVkZWYgZW51bSBD b2VyY2lvbkZvcm0KIAlDT0VSQ0VfU1FMX1NZTlRBWCwJCQkvKiBkaXNwbGF5IHdpdGggU1FMLW1h bmRhdGVkIHNwZWNpYWwgc3ludGF4ICovCiB9IENvZXJjaW9uRm9ybTsKIAorLyoKKyAqIFNhZmVU eXBlQ2FzdEV4cHIgLQorICoJCVRyYW5zZm9ybWVkIHJlcHJlc2VudGF0aW9uIG9mCisgKiBDQVNU KGV4cHIgQVMgdHlwZW5hbWUgREVGQVVMVCBleHByMiBPTiBFUlJPUikKKyAqIENBU1QoZXhwciBB UyB0eXBlbmFtZSBOVUxMIE9OIEVSUk9SKQorICovCit0eXBlZGVmIHN0cnVjdCBTYWZlVHlwZUNh c3RFeHByCit7CisJcGdfbm9kZV9hdHRyKGN1c3RvbV9xdWVyeV9qdW1ibGUpCisKKwlFeHByCQl4 cHI7CisKKwkvKiB0cmFuc2Zvcm1lZCBleHByZXNzaW9uIGJlaW5nIGNhc3RlZCAqLworCU5vZGUJ ICAgKnNvdXJjZV9leHByOworCisJLyoKKwkgKiBUaGUgdHJhbnNmb3JtZWQgY2FzdCBleHByZXNz aW9uOyB0aGlzIG1heSBiZSBOVUxMIGlmIHRoZSB0d28gdHlwZXMgY2FuJ3QKKwkgKiBiZSBjYXN0 LgorCSAqLworCU5vZGUJICAgKmNhc3RfZXhwcjsKKworCS8qIEZhbGwgYmFjayB0byB0aGUgZGVm YXVsdCBleHByZXNzaW9uIGlmIHRoZSBjYXN0IGV2YWx1YXRpb24gZmFpbHMuICovCisJTm9kZQkg ICAqZGVmYXVsdF9leHByOworCisJLyogY2FzdCByZXN1bHQgZGF0YSB0eXBlICovCisJT2lkCQkJ cmVzdWx0dHlwZSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisKKwkvKiBjYXN0 IHJlc3VsdCBkYXRhIHR5cGUgdHlwbW9kICh1c3VhbGx5IC0xKSAqLworCWludDMyCQlyZXN1bHR0 eXBtb2QgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCisJLyogY2FzdCByZXN1 bHQgZGF0YSB0eXBlIGNvbGxhdGlvbiAodXN1YWxseSAtMSkgKi8KKwlPaWQJCQlyZXN1bHRjb2xs aWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCit9IFNhZmVUeXBlQ2FzdEV4 cHI7CisKIC8qCiAgKiBGdW5jRXhwciAtIGV4cHJlc3Npb24gbm9kZSBmb3IgYSBmdW5jdGlvbiBj YWxsCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaCBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmgKaW5kZXggMGQ5MTlkOGJmYTIuLjEyMzgxYWVk NjRjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmgKQEAgLTQ3LDYgKzQ3LDggQEAgZXh0ZXJuIGNo YXIgKnR5cGVUeXBlTmFtZShUeXBlIHQpOwogZXh0ZXJuIE9pZAl0eXBlVHlwZVJlbGlkKFR5cGUg dHlwKTsKIGV4dGVybiBPaWQJdHlwZVR5cGVDb2xsYXRpb24oVHlwZSB0eXApOwogZXh0ZXJuIERh dHVtIHN0cmluZ1R5cGVEYXR1bShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1v ZCk7CitleHRlcm4gYm9vbCBzdHJpbmdUeXBlRGF0dW1TYWZlKFR5cGUgdHAsIGNoYXIgKnN0cmlu ZywgaW50MzIgYXR0dHlwbW9kLAorCQkJCQkJCQlEYXR1bSAqcmVzdWx0KTsKIAogZXh0ZXJuIE9p ZAl0eXBlaWRUeXBlUmVsaWQoT2lkIHR5cGVfaWQpOwogZXh0ZXJuIE9pZAl0eXBlT3JEb21haW5U eXBlUmVsaWQoT2lkIHR5cGVfaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jYXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJmNjJlOTM0OGYxCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dApAQCAtMCwwICsxLDU1 NiBAQAorU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0cyA9IDA7CistLSBDQVNUIERFRkFVTFQgT04gQ09O VkVSU0lPTiBFUlJPUgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBD T05WRVJTSU9OIEVSUk9SKSk7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXgg Zm9yIHR5cGUgaW50ZWdlcjogImVycm9yIgorTElORSAxOiBWQUxVRVMgKENBU1QoJ2Vycm9yJyBB UyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyAgICAgICAgICAgICAgICAg ICAgIF4KK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorICAgICAgICAKKygxIHJvdykKKworVkFM VUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJS T1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgICAgICA0MgorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgxIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRhdGUg CistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoMTo6bnVtZXJpYyBBUyBtb25leSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5 cGUgbnVtZXJpYyB0byBtb25leSB3aGVuIERFRkFVTFQgY2xhdXNlIGlzIHNwZWNpZmllZCBmb3Ig Q0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVCgxOjpudW1l cmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAg ICAgICAgICAgXgorSElOVDogIEN1cnJlbnRseSBDQVNUIC4uLiBERUZBVUxUIE9OIENPTlZFUlNJ T04gRVJST1IgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNhc3QKK1NFTEVDVCBDQVNUKDExMTEgQVMg ImNoYXIiIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaGFyIAorLS0tLS0t CisgCisoMSByb3cpCisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHJldF9pbnQ4KCkgUkVU VVJOUyBiaWdpbnQgQVMKKyQkCitCRUdJTiBSRVRVUk4gMjE0NzQ4MzY0ODsgRU5EOworJCQKK0xB TkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxU IHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW50ZWdl ciBvdXQgb2YgcmFuZ2UKK1NFTEVDVCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0X2ludDgo KSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCBERUZB VUxUIGNsYXVzZSBmb3IgQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUiB0byB0eXBlIGRhdGUK K0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGRhdGUgREVGQVVMVCByZXRfaW50OCgpIE9OIENP TlZFUlNJT04gRVJSLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorLS0gdGVzdCBhcnJheSBjb2VyY2UKK1NFTEVDVCBDQVNUKCd7MTIzLGFiYyw0NTZ9JyBBUyBp bnRlZ2VyW10gREVGQVVMVCAney03ODl9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgaW50NCAg CistLS0tLS0tLQorIHstNzg5fQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnezIzNCxkZWYsNTY3 fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAney0xMDExfScgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgIGludDQgICAKKy0tLS0tLS0tLQorIHstMTAxMX0KKygxIHJvdykKKworU0VMRUNU IENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgSU5URUdFUltdIERFRkFVTFQg J3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyB7MSwyfQor KDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0g QVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAg IGFycmF5ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorIHt7MSwyfSx7dGhyZWUsYX19Ciso MSByb3cpCisKKy0tIHRlc3QgdmFsaWQgREVGQVVMVCBleHByZXNzaW9uIGZvciBDQVNUID0gT04g Q09OVkVSU0lPTiBFUlJPUgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcmV0X3NldGludCgp IFJFVFVSTlMgU0VUT0YgaW50ZWdlciBBUworJCQKK0JFR0lOIFJFVFVSTiBRVUVSWSBFWEVDVVRF ICdzZWxlY3QgMSB1bmlvbiBhbGwgc2VsZWN0IDEnOyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3Nx bCBJTU1VVEFCTEU7CitDUkVBVEUgVEFCTEUgdGNhc3QoYSB0ZXh0W10sIGIgaW50IEdFTkVSQVRF RCBCWSBERUZBVUxUIEFTIElERU5USVRZLCBjIHRleHQgZGVmYXVsdCAnMScpOworSU5TRVJUIElO VE8gdGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9JyksICgne3sxLDJ9LCB7YyxkfX0n KSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgp IE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0tZXJyb3IKK0VSUk9SOiAgREVGQVVM VCBleHByZXNzaW9uIG11c3Qgbm90IHJldHVybiBhIHNldAorTElORSAxOiBTRUxFQ1QgQ0FTVCgn YScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVIuLi4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBp bnQgREVGQVVMVCBzdW0oMSkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAg REVGQVVMVCBleHByZXNzaW9uIGZ1bmN0aW9uIG11c3QgYmUgYSBub3JtYWwgZnVuY3Rpb24KK0xJ TkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVD VCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3ZlcigpIE9OIENPTlZFUlNJT04gRVJS T1IpOyAtLWVycm9yCitFUlJPUjogIERFRkFVTFQgZXhwcmVzc2lvbiBmdW5jdGlvbiBtdXN0IGJl IGEgbm9ybWFsIGZ1bmN0aW9uCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVM VCBzdW0oMSkgb3ZlcigpIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUICdiJyBP TiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRh eCBmb3IgdHlwZSBpbnRlZ2VyOiAiYiIKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBE RUZBVUxUICdiJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKHQgQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwy MiwgJyB8fCBiIHx8ICd9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7Cisg ICAgIHQgICAgIAorLS0tLS0tLS0tLS0KKyB7MjEsMjIsMX0KKyB7MjEsMjIsMn0KKyB7MjEsMjIs M30KKyB7MjEsMjIsNH0KKyg0IHJvd3MpCisKK1NFTEVDVCBDQVNUKHQuYSBBUyBpbnRbXSBERUZB VUxUICd7MjEsMjJ9Jzo6aW50W10gfHwgYiBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0 IGFzIHQ7CisgICAgIGEgICAgIAorLS0tLS0tLS0tLS0KKyB7MTJ9CisgezIxLDIyLDJ9CisgezIx LDIyLDN9CisgezEzfQorKDQgcm93cykKKworLS0gdGVzdCB3aXRoIGRvbWFpbgorQ1JFQVRFIERP TUFJTiBkX2ludDQyIGFzIGludCBjaGVjayAodmFsdWUgPSA0MikgTk9UIE5VTEw7CitDUkVBVEUg RE9NQUlOIGRfY2hhcjNfbm90X251bGwgYXMgY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBUWVBF IGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIEFTIChhIGRfY2hhcjNfbm90X251bGwsIGIgaW50KTsK K1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MSBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS1lcnJvcgorRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGRfaW50NDIgdmlvbGF0ZXMgY2hl Y2sgY29uc3RyYWludCAiZF9pbnQ0Ml9jaGVjayIKK1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIg REVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworIGRfaW50NDIgCistLS0tLS0t LS0KKyAgICAgIDQyCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgZG9tYWluIGRf aW50NDIgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9p bnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCisgZF9pbnQ0MiAKKy0t LS0tLS0tLQorICAgICAgNDIKKygxIHJvdykKKworU0VMRUNUIENBU1QoJygsNDIpJyBBUyBjb21w X2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg Y29tcF9kb21haW5fd2l0aF90eXBtb2QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCiso MSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlw bW9kIERFRkFVTFQgJygxLDIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjb21wX2RvbWFpbl93 aXRoX3R5cG1vZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoIjEgICIsMikKKygxIHJv dykKKworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2Qg REVGQVVMVCAnKDEyMzQsMiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjog IHZhbHVlIHRvbyBsb25nIGZvciB0eXBlIGNoYXJhY3RlcigzKQorTElORSAxOiAuLi5TVCgnKE5V TEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMTIzNCwyKScuLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCistLS0tLXNhZmUgY2FzdCBmcm9tIGJ5dGVhIHR5cGUgdG8gb3RoZXIgdHlwZQorU0VM RUNUIENBU1QgKCdceDExMjIzMzQ0NTU2Njc3ODg5OSc6OmJ5dGVhIEFTIGludDggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDggCistLS0tLS0KKyAgICAgCisoMSByb3cp CisKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Njc4OUEnOjpieXRlYSBBUyBpbnQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAgIAorKDEgcm93KQor CitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTYnOjpieXRlYSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKyBpbnQyIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCistLS0t LXNhZmUgY2FzdCBmcm9tIHJhbmdlIHR5cGUgdG8gb3RoZXIgdHlwZQorU0VMRUNUIENBU1QoJ1sx LDJdJzo6aW50NHJhbmdlIEFTIGludDRtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBpbnQ0bXVsdGlyYW5nZSAKKy0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMyl9 CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbMSwyXSc6OmludDhyYW5nZSBBUyBpbnQ4bXVsdGly YW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OG11bHRpcmFuZ2Ug CistLS0tLS0tLS0tLS0tLS0tCisge1sxLDMpfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWzEs Ml0nOjpudW1yYW5nZSAgQVMgbnVtbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgbnVtbXVsdGlyYW5nZSAKKy0tLS0tLS0tLS0tLS0tLQorIHtbMSwyXX0KKygx IHJvdykKKworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6ZGF0ZXJhbmdlIEFT IGRhdGVtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAg ZGF0ZW11bHRpcmFuZ2UgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1staW5maW5p dHksaW5maW5pdHldfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0 eV0nOjp0c3JhbmdlIEFTIHRzbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgICAgICB0c211bHRpcmFuZ2UgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHtbLWluZmluaXR5LGluZmluaXR5XX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1staW5m aW5pdHksaW5maW5pdHldJzo6dHN0enJhbmdlIEFTIHRzdHptdWx0aXJhbmdlIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgdHN0em11bHRpcmFuZ2UgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisge1staW5maW5pdHksaW5maW5pdHldfQorKDEgcm93KQorCist LS0tLXNhZmUgY2FzdCBmcm9tIGdlb21ldHJ5IHRvIG90aGVyIGdlb21ldHJ5IGlzIG5vdCBzdXBw b3J0ZWQKK1NFTEVDVCBDQVNUKE5VTEw6OnBvaW50IEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBwb2ludCB0 byBib3ggd2hlbiBERUZBVUxUIGNsYXVzZSBpcyBzcGVjaWZpZWQgZm9yIENBU1QgLi4uIE9OIENP TlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6cG9pbnQgQVMgYm94IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJ TlQ6ICBDdXJyZW50bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SIGRvZXMg bm90IHN1cHBvcnQgdGhpcyBjYXN0CitTRUxFQ1QgQ0FTVChOVUxMOjpsc2VnIEFTIHBvaW50IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3Qg Y2FzdCB0eXBlIGxzZWcgdG8gcG9pbnQgd2hlbiBERUZBVUxUIGNsYXVzZSBpcyBzcGVjaWZpZWQg Zm9yIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVM TDo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAg ICAgICAgICAgICAgIF4KK0hJTlQ6ICBDdXJyZW50bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBDT05W RVJTSU9OIEVSUk9SIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBjYXN0CitTRUxFQ1QgQ0FTVChOVUxM OjpwYXRoIEFTIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVy cm9yCitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgcGF0aCB0byBwb2x5Z29uIHdoZW4gREVGQVVM VCBjbGF1c2UgaXMgc3BlY2lmaWVkIGZvciBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitM SU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6OnBhdGggQVMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTi4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgQ3VycmVudGx5IENB U1QgLi4uIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMg Y2FzdAorU0VMRUNUIENBU1QoTlVMTDo6Ym94IEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGJveCB0byBw b2ludCB3aGVuIERFRkFVTFQgY2xhdXNlIGlzIHNwZWNpZmllZCBmb3IgQ0FTVCAuLi4gT04gQ09O VkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjpib3ggQVMgcG9pbnQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVIuLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElO VDogIEN1cnJlbnRseSBDQVNUIC4uLiBERUZBVUxUIE9OIENPTlZFUlNJT04gRVJST1IgZG9lcyBu b3Qgc3VwcG9ydCB0aGlzIGNhc3QKK1NFTEVDVCBDQVNUKE5VTEw6OmJveCBBUyBsc2VnIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY2Fz dCB0eXBlIGJveCB0byBsc2VnIHdoZW4gREVGQVVMVCBjbGF1c2UgaXMgc3BlY2lmaWVkIGZvciBD QVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6OmJv eCBBUyBsc2VnIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUi4uLgorICAgICAgICAgICAg ICAgICAgICBeCitISU5UOiAgQ3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQgT04gQ09OVkVSU0lP TiBFUlJPUiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgY2FzdAorU0VMRUNUIENBU1QoTlVMTDo6Ym94 IEFTIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitF UlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgYm94IHRvIHBvbHlnb24gd2hlbiBERUZBVUxUIGNsYXVz ZSBpcyBzcGVjaWZpZWQgZm9yIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTog U0VMRUNUIENBU1QoTlVMTDo6Ym94IEFTIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBDdXJyZW50bHkgQ0FTVCAuLi4g REVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBjYXN0CitT RUxFQ1QgQ0FTVChOVUxMOjpib3ggQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGJveCB0byBjaXJjbGUg d2hlbiBERUZBVUxUIGNsYXVzZSBpcyBzcGVjaWZpZWQgZm9yIENBU1QgLi4uIE9OIENPTlZFUlNJ T04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6Ym94IEFTIGNpcmNsZSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBD dXJyZW50bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SIGRvZXMgbm90IHN1 cHBvcnQgdGhpcyBjYXN0CitTRUxFQ1QgQ0FTVChOVUxMOjpwb2x5Z29uIEFTIHBvaW50IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY2Fz dCB0eXBlIHBvbHlnb24gdG8gcG9pbnQgd2hlbiBERUZBVUxUIGNsYXVzZSBpcyBzcGVjaWZpZWQg Zm9yIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVM TDo6cG9seWdvbiBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPLi4uCisgICAgICAg ICAgICAgICAgICAgIF4KK0hJTlQ6ICBDdXJyZW50bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBDT05W RVJTSU9OIEVSUk9SIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBjYXN0CitTRUxFQ1QgQ0FTVChOVUxM Ojpwb2x5Z29uIEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVy cm9yCitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgcG9seWdvbiB0byBwYXRoIHdoZW4gREVGQVVM VCBjbGF1c2UgaXMgc3BlY2lmaWVkIGZvciBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitM SU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6OnBvbHlnb24gQVMgcGF0aCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTi4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgQ3VycmVudGx5IENB U1QgLi4uIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMg Y2FzdAorU0VMRUNUIENBU1QoTlVMTDo6cG9seWdvbiBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgcG9seWdv biB0byBib3ggd2hlbiBERUZBVUxUIGNsYXVzZSBpcyBzcGVjaWZpZWQgZm9yIENBU1QgLi4uIE9O IENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6cG9seWdvbiBBUyBi b3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gLi4uCisgICAgICAgICAgICAgICAgICAgIF4K K0hJTlQ6ICBDdXJyZW50bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SIGRv ZXMgbm90IHN1cHBvcnQgdGhpcyBjYXN0CitTRUxFQ1QgQ0FTVChOVUxMOjpwb2x5Z29uIEFTIGNp cmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAg Y2Fubm90IGNhc3QgdHlwZSBwb2x5Z29uIHRvIGNpcmNsZSB3aGVuIERFRkFVTFQgY2xhdXNlIGlz IHNwZWNpZmllZCBmb3IgQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxF Q1QgQ0FTVChOVUxMOjpwb2x5Z29uIEFTIGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0ku Li4KKyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIEN1cnJlbnRseSBDQVNUIC4uLiBERUZB VUxUIE9OIENPTlZFUlNJT04gRVJST1IgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNhc3QKK1NFTEVD VCBDQVNUKE5VTEw6OmNpcmNsZSBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBjaXJjbGUgdG8gcG9pbnQg d2hlbiBERUZBVUxUIGNsYXVzZSBpcyBzcGVjaWZpZWQgZm9yIENBU1QgLi4uIE9OIENPTlZFUlNJ T04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6Y2lyY2xlIEFTIHBvaW50IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBD dXJyZW50bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SIGRvZXMgbm90IHN1 cHBvcnQgdGhpcyBjYXN0CitTRUxFQ1QgQ0FTVChOVUxMOjpjaXJjbGUgQVMgYm94IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCB0 eXBlIGNpcmNsZSB0byBib3ggd2hlbiBERUZBVUxUIGNsYXVzZSBpcyBzcGVjaWZpZWQgZm9yIENB U1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6Y2ly Y2xlIEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAg ICAgICAgIF4KK0hJTlQ6ICBDdXJyZW50bHkgQ0FTVCAuLi4gREVGQVVMVCBPTiBDT05WRVJTSU9O IEVSUk9SIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBjYXN0CitTRUxFQ1QgQ0FTVChOVUxMOjpjaXJj bGUgQVMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IK K0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBjaXJjbGUgdG8gcG9seWdvbiB3aGVuIERFRkFVTFQg Y2xhdXNlIGlzIHNwZWNpZmllZCBmb3IgQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElO RSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjpjaXJjbGUgQVMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0kuLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIEN1cnJlbnRseSBDQVNU IC4uLiBERUZBVUxUIE9OIENPTlZFUlNJT04gRVJST1IgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNh c3QKKy0tLS0tc2FmZSBjYXN0IGZyb20gbW9uZXkgb3IgbW9uZXkgY2FzdCB0byBvdGhlciB0eXBl IGlzIG5vdCBzdXBwb3J0ZWQKK1NFTEVDVCBDQVNUKE5VTEw6OmludDggQVMgbW9uZXkgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGNhbm5vdCBjYXN0 IHR5cGUgYmlnaW50IHRvIG1vbmV5IHdoZW4gREVGQVVMVCBjbGF1c2UgaXMgc3BlY2lmaWVkIGZv ciBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6 OmludDggQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAg ICAgICAgICAgICBeCitISU5UOiAgQ3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQgT04gQ09OVkVS U0lPTiBFUlJPUiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgY2FzdAorU0VMRUNUIENBU1QoTlVMTDo6 aW50NCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IK K0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBpbnRlZ2VyIHRvIG1vbmV5IHdoZW4gREVGQVVMVCBj bGF1c2UgaXMgc3BlY2lmaWVkIGZvciBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5F IDE6IFNFTEVDVCBDQVNUKE5VTEw6OmludDQgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgQ3VycmVudGx5IENBU1Qg Li4uIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgY2Fz dAorU0VMRUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBudW1lcmlj IHRvIG1vbmV5IHdoZW4gREVGQVVMVCBjbGF1c2UgaXMgc3BlY2lmaWVkIGZvciBDQVNUIC4uLiBP TiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6Om51bWVyaWMgQVMg bW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJTy4uLgorICAgICAgICAgICAgICAgICAgICBe CitISU5UOiAgQ3VycmVudGx5IENBU1QgLi4uIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUiBk b2VzIG5vdCBzdXBwb3J0IHRoaXMgY2FzdAorU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVt ZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAg Y2Fubm90IGNhc3QgdHlwZSBtb25leSB0byBudW1lcmljIHdoZW4gREVGQVVMVCBjbGF1c2UgaXMg c3BlY2lmaWVkIGZvciBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVD VCBDQVNUKE5VTEw6Om1vbmV5IEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJTy4u LgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgQ3VycmVudGx5IENBU1QgLi4uIERFRkFV TFQgT04gQ09OVkVSU0lPTiBFUlJPUiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgY2FzdAorLS10ZXN0 IGNhc3QgbnVtZXJpYyB2YWx1ZSB3aXRoIGZyYWN0aW9uIHRvIGFub3RoZXIgbnVtZXJpYyB2YWx1 ZQorQ1JFQVRFIFRBQkxFIHNhZmVjYXN0KGNvbDEgZmxvYXQ0LCBjb2wyIGZsb2F0OCwgY29sMyBu dW1lcmljLCBjb2w0IG51bWVyaWNbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbDUgaW50 MiBkZWZhdWx0IDMyNzY3LAorICAgICAgICAgICAgICAgICAgICAgICAgY29sNiBpbnQ0IGRlZmF1 bHQgMzI3NjgsCisgICAgICAgICAgICAgICAgICAgICAgICBjb2w3IGludDggZGVmYXVsdCA0Mjk0 OTY3Mjk2KTsKK0lOU0VSVCBJTlRPIHNhZmVjYXN0IFZBTFVFUygnMTEuMTIzNCcsICcxMS4xMjM0 JywgJzkyMjMzNzIwMzY4NTQ3NzU4MDgnLCAnezExLjEyMzR9Jzo6bnVtZXJpY1tdKTsKK0lOU0VS VCBJTlRPIHNhZmVjYXN0IFZBTFVFUygnaW5mJywgJ2luZicsICdpbmYnLCAnezExLjEyMzQsIDEy LCBpbmYsIE5hTn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gc2FmZWNhc3QgVkFMVUVTKCct aW5mJywgJy1pbmYnLCAnLWluZicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmlj W10pOworSU5TRVJUIElOVE8gc2FmZWNhc3QgVkFMVUVTKCdOYU4nLCAnTmFOJywgJ05hTicsICd7 MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworU0VMRUNUIGNvbDEgYXMgZmxv YXQ0LAorICAgICAgIENBU1QoY29sMSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMSBBUyBpbnQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMSBBUyBv aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBD QVNUKGNvbDEgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0OCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1Qo Y29sMSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljLAorICAgICAgIENBU1QoY29sMSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHNhZmVjYXN0Owor ICBmbG9hdDQgICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zs b2F0NCB8ICAgIHRvX2Zsb2F0OCAgICAgfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t CisgICAxMS4xMjM0IHwgICAgICAxMSB8ICAgICAgMTEgfCAgICAgICAgfCAgICAgIDExIHwgICAx MS4xMjM0IHwgMTEuMTIzMzk5NzM0NDk3MSB8ICAgIDExLjEyMzQgfCAgICAgICAgICAgICAxMS4x CisgIEluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgIElu ZmluaXR5IHwgICAgICAgICBJbmZpbml0eSB8ICAgSW5maW5pdHkgfCAgICAgICAgICAgICAgICAg CisgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgLUlu ZmluaXR5IHwgICAgICAgIC1JbmZpbml0eSB8ICAtSW5maW5pdHkgfCAgICAgICAgICAgICAgICAg CisgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgICAg ICAgTmFOIHwgICAgICAgICAgICAgIE5hTiB8ICAgICAgICBOYU4gfCAgICAgICAgICAgICAgTmFO CisoNCByb3dzKQorCitTRUxFQ1QgY29sMiBhcyBmbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIEFT IGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAg ICAgQ0FTVChjb2wyIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wyIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMiBhcyBpbnQ4IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMiBh cyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwK KyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVyaWMgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wy IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X251bWVyaWNfc2NhbGUKK0ZST00gc2FmZWNhc3Q7CisgIGZsb2F0OCAgIHwgdG9faW50MiB8IHRv X2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fbnVt ZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tCisgICAxMS4xMjM0IHwgICAgICAxMSB8ICAgICAgMTEgfCAgICAg ICAgfCAgICAgIDExIHwgICAxMS4xMjM0IHwgICAxMS4xMjM0IHwgICAgMTEuMTIzNCB8ICAgICAg ICAgICAgIDExLjEKKyAgSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAg ICAgICAgfCAgSW5maW5pdHkgfCAgSW5maW5pdHkgfCAgIEluZmluaXR5IHwgICAgICAgICAgICAg ICAgIAorIC1JbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8 IC1JbmZpbml0eSB8IC1JbmZpbml0eSB8ICAtSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisg ICAgICAgTmFOIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgICAgICAg TmFOIHwgICAgICAgTmFOIHwgICAgICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4KKyg0IHJvd3Mp CisKK1NFTEVDVCBjb2wzIGFzIG51bWVyaWMsCisgICAgICAgQ0FTVChjb2wzIEFTIGludDIgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChj b2wzIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQs CisgICAgICAgQ0FTVChjb2wzIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMyBhcyBmbG9hdDQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBD QVNUKGNvbDMgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wzIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wzIGFzIG51bWVy aWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNf c2NhbGUKK0ZST00gc2FmZWNhc3Q7CisgICAgICAgbnVtZXJpYyAgICAgICB8IHRvX2ludDIgfCB0 b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8ICB0b19mbG9hdDQgIHwgICAgICB0b19mbG9hdDgg ICAgICAgfCAgICAgdG9fbnVtZXJpYyAgICAgIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLQorIDkyMjMzNzIwMzY4NTQ3NzU4MDggfCAgICAgICAgIHwgICAgICAg ICB8ICAgICAgICB8ICAgICAgICAgfCA5LjIyMzM3ZSsxOCB8IDkuMjIzMzcyMDM2ODU0NzhlKzE4 IHwgOTIyMzM3MjAzNjg1NDc3NTgwOCB8ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIElu ZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgICAgSW5maW5p dHkgfCAgICAgICAgICAgICBJbmZpbml0eSB8ICAgICAgICAgICAgSW5maW5pdHkgfCAgICAgICAg ICAgICAgICAgCisgICAgICAgICAgIC1JbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgIHwgICAgICAgICB8ICAgLUluZmluaXR5IHwgICAgICAgICAgICAtSW5maW5pdHkgfCAgICAg ICAgICAgLUluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBOYU4g fCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIE5hTiB8ICAg ICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICAgICAgICAgIE5hTiB8ICAgICAgICAgICAgICBO YU4KKyg0IHJvd3MpCisKK1NFTEVDVCBjb2w0IGFzIG51bV9hcnIsCisgICAgICAgQ0FTVChjb2w0 IEFTIGludDJbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50MmFyciwK KyAgICAgICBDQVNUKGNvbDQgQVMgaW50NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyBpbnQ0YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBpbnQ4W10gREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGludDhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZs b2F0NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBmNGFyciwKKyAgICAg ICBDQVNUKGNvbDQgYXMgZmxvYXQ4W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIGY4YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBudW1lcmljKDEwLDEpW10gREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIG51bWFycgorRlJPTSBzYWZlY2FzdDsKKyAgICAg ICAgICBudW1fYXJyICAgICAgICAgICB8IGludDJhcnIgfCBpbnQ0YXJyIHwgaW50OGFyciB8ICAg ICAgICAgICBmNGFyciAgICAgICAgICAgIHwgICAgICAgICAgIGY4YXJyICAgICAgICAgICAgfCBu dW1hcnIgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLQorIHsxMS4xMjM0fSAgICAgICAgICAgICAgICAgIHwgezExfSAg ICB8IHsxMX0gICAgfCB7MTF9ICAgIHwgezExLjEyMzR9ICAgICAgICAgICAgICAgICAgfCB7MTEu MTIzNH0gICAgICAgICAgICAgICAgICB8IHsxMS4xfQorIHsxMS4xMjM0LDEyLEluZmluaXR5LE5h Tn0gIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgezExLjEyMzQsMTIsSW5maW5pdHks TmFOfSAgfCB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59ICB8IAorIHsxMS4xMjM0LDEyLC1JbmZp bml0eSxOYU59IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgezExLjEyMzQsMTIsLUlu ZmluaXR5LE5hTn0gfCB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IAorIHsxMS4xMjM0LDEy LC1JbmZpbml0eSxOYU59IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgezExLjEyMzQs MTIsLUluZmluaXR5LE5hTn0gfCB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IAorKDQgcm93 cykKKworU0VMRUNUIGNvbDUgYXMgaW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50MiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNv bDUgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwK KyAgICAgICBDQVNUKGNvbDUgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w1IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0NCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENB U1QoY29sNSBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJp YygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19z Y2FsZQorRlJPTSBzYWZlY2FzdDsKKyBpbnQyICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lk IHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1l cmljX3NjYWxlIAorLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t CisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3 NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAorIDMyNzY3IHwg ICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMy NzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAg IDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAg MzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAz Mjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAg ICAgICAgMzI3NjcuMAorKDQgcm93cykKKworU0VMRUNUIGNvbDYgYXMgaW50NCwKKyAgICAgICBD QVNUKGNvbDYgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50MiwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgb2lkIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w2IGFzIGlu dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAg Q0FTVChjb2w2IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJp YyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAg ICBDQVNUKGNvbDYgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSBzYWZlY2FzdDsKKyBpbnQ0ICB8IHRvX2lu dDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8 IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2 OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAg ICAgMzI3NjguMAorIDMyNzY4IHwgICAgICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4 IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAK KyAzMjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2 OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4wCisgMzI3NjggfCAg ICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3 NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorKDQgcm93cykKKworU0VMRUNUIGNv bDcgYXMgaW50OCwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50NCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNv bDcgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisg ICAgICAgQ0FTVChjb2w3IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9h dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAg ICBDQVNUKGNvbDcgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSBzYWZl Y2FzdDsKKyAgICBpbnQ4ICAgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCAgdG9faW50 OCAgIHwgIHRvX2Zsb2F0NCAgfCB0b19mbG9hdDggIHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNf c2NhbGUgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLQorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5 NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAg ICAgICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5 NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAg ICAgICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5 NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAg ICAgICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5 NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAg ICAgICAgIAorKDQgcm93cykKKworLS10ZXN0IGRhdGUvdGltZXN0YW1wL2ludGVydmFsIHJlYWx0 ZWQgY2FzdAorQ1JFQVRFIFRBQkxFIHNhZmVjYXN0MShjb2wwIGRhdGUsIGNvbDEgdGltZXN0YW1w LCBjb2wyIHRpbWVzdGFtcHR6LCBjb2wzIGludGVydmFsLCBjb2w0IHRpbWUsIGNvbDUgdGltZXR6 KTsKK2luc2VydCBpbnRvIHNhZmVjYXN0MSBWQUxVRVMKKygnLWluZmluaXR5JywgJy1pbmZpbml0 eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywgJzIwMDMtMDMtMDcgMTU6MzY6MzkgQW1lcmlj YS9OZXdfWW9yaycsICcyMDAzLTA3LTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnKSwKKygn LWluZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5JywnMTE6NTk6NTku OTkgUE0nLCAnMTE6NTk6NTkuOTkgUE0gUERUJyk7CitTRUxFQ1QgY29sMCBhcyBkYXRlLAorICAg ICAgIENBU1QoY29sMCBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wwIEFTIGRhdGUgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2ww IEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAor ICAgICAgIENBU1QoY29sMCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wKDIpIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00g c2FmZWNhc3QxOworICAgZGF0ZSAgICB8IHRvX3RpbWVzdGFtcHR6IHwgIHRvX2RhdGUgIHwgdG9f dGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAg ICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5CisgLWluZmluaXR5IHwgLWluZmluaXR5ICAg ICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQorKDIgcm93 cykKKworU0VMRUNUIGNvbDEgYXMgdGltZXN0YW1wLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1l c3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1w dHosCisgICAgICAgQ0FTVChjb2wxIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMSBBUyB0 aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAg ICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gc2FmZWNhc3QxOworIHRpbWVzdGFt cCB8IHRvX3RpbWVzdGFtcHR6IHwgIHRvX2RhdGUgIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0 b190aW1lc3RhbXBfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtaW5maW5p dHkgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwg LWluZmluaXR5CisgaW5maW5pdHkgIHwgaW5maW5pdHkgICAgICAgfCBpbmZpbml0eSAgfCAgICAg ICAgICB8ICAgICAgICAgICB8IGluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sMiBhcyB0 aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29s MiBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAor ICAgICAgIENBU1QoY29sMiBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRp bWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0 YW1wX3NjYWxlCitGUk9NIHNhZmVjYXN0MTsKKyB0aW1lc3RhbXB0eiB8IHRvX3RpbWVzdGFtcHR6 IHwgIHRvX2RhdGUgIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUg CistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSAgIHwgLWluZmluaXR5 ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQorIGlu ZmluaXR5ICAgIHwgaW5maW5pdHkgICAgICAgfCBpbmZpbml0eSAgfCAgICAgICAgICB8ICAgICAg ICAgICB8IGluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sMyBhcyBpbnRlcnZhbCwKKyAg ICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMyBBUyBkYXRlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29s MyBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywK KyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcCgyKSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlLAorICAg ICAgIENBU1QoY29sMyBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gc2FmZWNhc3QxOworIGludGVydmFsICB8 IHRvX3RpbWVzdGFtcHR6IHwgdG9fZGF0ZSB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGlt ZXN0YW1wX3NjYWxlIHwgdG9faW50ZXJ2YWxfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgfCAgICAgICAgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IC1pbmZp bml0eQorIGluZmluaXR5ICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgaW5maW5pdHkKKygyIHJvd3MpCisKK1NF TEVDVCBjb2w0IGFzIHRpbWUsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWUoMikgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sNCBB UyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwK KyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgy KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUK K0ZST00gc2FmZWNhc3QxOworICAgIHRpbWUgICAgIHwgIHRvX3RpbWVzICAgfCAgIHRvX3RpbWV0 eiAgICB8ICAgICAgICAgIHRvX2ludGVydmFsICAgICAgICAgIHwgICAgICAgdG9faW50ZXJ2YWxf c2NhbGUgICAgICAgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAxNTozNjozOSAgICB8IDE1OjM2OjM5ICAgIHwgMTU6MzY6MzktMDcgICAgfCBA IDE1IGhvdXJzIDM2IG1pbnMgMzkgc2VjcyAgICB8IEAgMTUgaG91cnMgMzYgbWlucyAzOSBzZWNz CisgMjM6NTk6NTkuOTkgfCAyMzo1OTo1OS45OSB8IDIzOjU5OjU5Ljk5LTA3IHwgQCAyMyBob3Vy cyA1OSBtaW5zIDU5Ljk5IHNlY3MgfCBAIDIzIGhvdXJzIDU5IG1pbnMgNTkuOTkgc2VjcworKDIg cm93cykKKworU0VMRUNUIGNvbDUgYXMgdGltZXR6LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1l IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lLAorICAgICAgIENB U1QoY29sNSBBUyB0aW1lKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1lX3NjYWxlLAorICAgICAgIENBU1QoY29sNSBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGlt ZXR6KDYpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHpfc2Nh bGUsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2YWwo MikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxl CitGUk9NIHNhZmVjYXN0MTsKKyAgICAgdGltZXR6ICAgICB8ICAgdG9fdGltZSAgIHwgdG9fdGlt ZV9zY2FsZSB8ICAgdG9fdGltZXR6ICAgIHwgdG9fdGltZXR6X3NjYWxlIHwgdG9faW50ZXJ2YWwg fCB0b19pbnRlcnZhbF9zY2FsZSAKKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxNTozNjozOS0wNCAgICB8IDE1OjM2OjM5ICAgIHwg MTU6MzY6MzkgICAgICB8IDE1OjM2OjM5LTA0ICAgIHwgMTU6MzY6MzktMDQgICAgIHwgICAgICAg ICAgICAgfCAKKyAyMzo1OTo1OS45OS0wNyB8IDIzOjU5OjU5Ljk5IHwgMjM6NTk6NTkuOTkgICB8 IDIzOjU5OjU5Ljk5LTA3IHwgMjM6NTk6NTkuOTktMDcgIHwgICAgICAgICAgICAgfCAKKygyIHJv d3MpCisKK0NSRUFURSBUQUJMRSBzYWZlY2FzdDIoY29sMCBqc29uYiwgY29sMSB0ZXh0ICk7CitJ TlNFUlQgSU5UTyBzYWZlY2FzdDIgVkFMVUVTICgnInRlc3QiJywgJzx2YWx1ZT5vbmU8L3ZhbHVl Jyk7CitTRUxFQ1QgY29sMSBhcyB0ZXh0LAorICAgICAgIENBU1QoY29sMCBBUyByZWdjbGFzcyBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fcmVnY2xhc3MsCisgICAgICAg Q0FTVChjb2wwIEFTICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2NoYXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHhtbCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitGUk9NIHNhZmVjYXN0MjsKKyAg ICAgICB0ZXh0ICAgICAgICB8IHRvX3JlZ2NsYXNzIHwgdG9fY2hhciB8IHRvX25hbWUgfCB0b194 bWwgCistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLQorIDx2YWx1ZT5vbmU8L3ZhbHVlIHwgICAgICAgICAgICAgfCAgICAgICAgIHwg InRlc3QiICB8IAorKDEgcm93KQorCitTRUxFQ1QgY29sMCBhcyBqc29uYiwKKyAgICAgICBDQVNU KGNvbDAgQVMgaW50ZWdlciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50ZWdlciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDAgQVMgYmlnaW50 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENB U1QoY29sMCBBUyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wwIEFTIGJvb2xlYW4g REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Jvb2wsCisgICAgICAgQ0FT VChjb2wwIEFTIHNtYWxsaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19zbWFsbGludAorRlJPTSBzYWZlY2FzdDI7CisganNvbmIgIHwgdG9faW50ZWdlciB8IHRvX251 bWVyaWMgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fYm9vbCB8IHRvX3Nt YWxsaW50IAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyAidGVzdCIgfCAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAg fCAgICAgICAgIHwgICAgICAgICAgICAKKygxIHJvdykKKworLS0gdGVzdCBkZXBhcnNlCitDUkVB VEUgVklFVyBzYWZlY2FzdHZpZXcgQVMKK1NFTEVDVCBDQVNUKCcxMjM0JyBhcyBjaGFyKDMpIERF RkFVTFQgLTExMTEgT04gQ09OVkVSU0lPTiBFUlJPUiksCisgICAgICAgQ0FTVCgxIGFzIGRhdGUg REVGQVVMVCAoKG5vdygpOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgc2FmZWNhc3QsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwg Wyd0aHJlZSddLFsnYSddXSBBUyBJTlRFR0VSW10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJl ZScsICdhJ11dIEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVi bGljLnNhZmVjYXN0dmlldyBBUworIFNFTEVDVCBDQVNUKCcxMjM0JyBBUyBjaGFyYWN0ZXIoMykg REVGQVVMVCAnLTExMTEnOjppbnRlZ2VyOjpjaGFyYWN0ZXIoMykgT04gQ09OVkVSU0lPTiBFUlJP UikgQVMgYnBjaGFyLAorICAgIENBU1QoMSBBUyBkYXRlIERFRkFVTFQgbm93KCk6OmRhdGUgKyBy YW5kb20obWluID0+IDEsIG1heCA9PiAxKSBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBzYWZlY2Fz dCwKKyAgICBDQVNUKEFSUkFZW0FSUkFZWycxJ10sIEFSUkFZWyd0aHJlZSddLCBBUlJBWVsnYSdd XSBBUyBpbnRlZ2VyW10gREVGQVVMVCAnezEsMn0nOjppbnRlZ2VyW10gT04gQ09OVkVSU0lPTiBF UlJPUikgQVMgY2FzdDEsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsnMSc6OnRleHQsICcyJzo6dGV4 dF0sIEFSUkFZWyd0aHJlZSc6OnRleHQsICdhJzo6dGV4dF1dIEFTIHRleHRbXSBERUZBVUxUICd7 MjEsMjJ9Jzo6dGV4dFtdIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QyCitDUkVBVEUgSU5E RVggY2FzdF9lcnJvcl9pZHggIE9OIHRjYXN0KChjYXN0KGMgYXMgaW50IERFRkFVTFQgcmFuZG9t KG1pbj0+MSwgbWF4PT4xKSBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOyAtLWVycm9yCitFUlJPUjog IGZ1bmN0aW9ucyBpbiBpbmRleCBleHByZXNzaW9uIG11c3QgYmUgbWFya2VkIElNTVVUQUJMRQor UkVTRVQgZXh0cmFfZmxvYXRfZGlnaXRzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0 ZV9jYXN0Lm91dAppbmRleCBmZDQ4NzFkOTRkYi4uMWVjOTllZWY2NzAgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CkBAIC04Niw2ICs4NiwxMSBAQCBTRUxFQ1Qg MTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQgd29yayBub3cKICBiYXIxMjM0CiAo MSByb3cpCiAKK1NFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgY2Fubm90IGNhc3Qg dHlwZSBpbnRlZ2VyIHRvIGNhc3R0ZXN0dHlwZSB3aGVuIERFRkFVTFQgY2xhdXNlIGlzIHNwZWNp ZmllZCBmb3IgQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FT VCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkUuLi4KKyAg ICAgICAgICAgICAgICAgICAgXgorSElOVDogIEN1cnJlbnRseSBDQVNUIC4uLiBERUZBVUxUIE9O IENPTlZFUlNJT04gRVJST1IgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNhc3QKIC0tIGNoZWNrIGRl cGVuZGVuY2llcyBnZW5lcmF0ZWQgZm9yIHRoYXQKIFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3Qo Y2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKSBhcyBvYmosCiAgICAgICAgcGdfZGVzY3JpYmVfb2Jq ZWN0KHJlZmNsYXNzaWQsIHJlZm9iamlkLCByZWZvYmpzdWJpZCkgYXMgb2JqcmVmLApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggMjBiZjllYTljZGYuLjI1NDc4 MzY0YjdjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHku b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTk0 Myw4ICs5NDMsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIGNhc3Rzb3VyY2Ug PSAwIE9SIGNhc3R0YXJnZXQgPSAwIE9SIGNhc3Rjb250ZXh0IE5PVCBJTiAoJ2UnLCAnYScsICdp JykKICAgICBPUiBjYXN0bWV0aG9kIE5PVCBJTiAoJ2YnLCAnYicgLCdpJyk7Ci0gb2lkIHwgY2Fz dHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhv ZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1 bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gQ2hlY2sgdGhhdCBjYXN0ZnVuYyBp cyBub256ZXJvIG9ubHkgZm9yIGNhc3QgbWV0aG9kcyB0aGF0IG5lZWQgYSBmdW5jdGlvbiwKQEAg LTk1Myw4ICs5NTMsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIChjYXN0bWV0 aG9kID0gJ2YnIEFORCBjYXN0ZnVuYyA9IDApCiAgICBPUiAoY2FzdG1ldGhvZCBJTiAoJ2InLCAn aScpIEFORCBjYXN0ZnVuYyA8PiAwKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8 IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lk IHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2Fz dG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAo MCByb3dzKQogCiAtLSBMb29rIGZvciBjYXN0cyB0by9mcm9tIHRoZSBzYW1lIHR5cGUgdGhhdCBh cmVuJ3QgbGVuZ3RoIGNvZXJjaW9uIGZ1bmN0aW9ucy4KQEAgLTk2MywxNSArOTYzLDE1IEBAIFdI RVJFIChjYXN0bWV0aG9kID0gJ2YnIEFORCBjYXN0ZnVuYyA9IDApCiBTRUxFQ1QgKgogRlJPTSBw Z19jYXN0IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSBjYXN0dGFyZ2V0IEFORCBjYXN0ZnVuYyA9IDA7 Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0 IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZl IAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogU0VMRUNUIGMuKgog RlJPTSBwZ19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORCBw LnByb25hcmdzIDwgMiBBTkQgY2FzdHNvdXJjZSA9IGNhc3R0YXJnZXQ7Ci0gb2lkIHwgY2FzdHNv dXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAK LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMg fCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gTG9vayBmb3IgY2FzdCBmdW5jdGlvbnMg dGhhdCBkb24ndCBoYXZlIHRoZSByaWdodCBzaWduYXR1cmUuICBUaGUKQEAgLTk4OSw4ICs5ODks OCBAQCBXSEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5ECiAgICAgICAgICAgICAgT1IgKGMuY2Fz dHNvdXJjZSA9ICdjaGFyYWN0ZXInOjpyZWd0eXBlIEFORAogICAgICAgICAgICAgICAgICBwLnBy b2FyZ3R5cGVzWzBdID0gJ3RleHQnOjpyZWd0eXBlKSkKICAgICAgT1IgTk9UIGJpbmFyeV9jb2Vy Y2libGUocC5wcm9yZXR0eXBlLCBjLmNhc3R0YXJnZXQpKTsKLSBvaWQgfCBjYXN0c291cmNlIHwg Y2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rj b250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tCiAoMCByb3dzKQogCiBTRUxFQ1QgYy4qCkBAIC05OTgsOCArOTk4LDggQEAgRlJP TSBwZ19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORAogICAg ICgocC5wcm9uYXJncyA+IDEgQU5EIHAucHJvYXJndHlwZXNbMV0gIT0gJ2ludDQnOjpyZWd0eXBl KSBPUgogICAgICAocC5wcm9uYXJncyA+IDIgQU5EIHAucHJvYXJndHlwZXNbMl0gIT0gJ2Jvb2wn OjpyZWd0eXBlKSk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3Vy Y2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBj YXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAog LS0gTG9vayBmb3IgYmluYXJ5IGNvbXBhdGlibGUgY2FzdHMgdGhhdCBkbyBub3QgaGF2ZSB0aGUg cmV2ZXJzZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBi L3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggZmJmZmM2N2FlNjAuLmVi YmQ0NTRjNDUwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxl CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTgxLDcgKzgxLDcg QEAgdGVzdDogYnJpbl9ibG9vbSBicmluX211bHRpCiB0ZXN0OiBjcmVhdGVfdGFibGVfbGlrZSBh bHRlcl9nZW5lcmljIGFsdGVyX29wZXJhdG9yIG1pc2MgYXN5bmMgZGJzaXplIG1lcmdlIG1pc2Nf ZnVuY3Rpb25zIHN5c3ZpZXdzIHRzcmYgdGlkIHRpZHNjYW4gdGlkcmFuZ2VzY2FuIGNvbGxhdGUu dXRmOCBjb2xsYXRlLmljdS51dGY4IGluY3JlbWVudGFsX3NvcnQgY3JlYXRlX3JvbGUgd2l0aG91 dF9vdmVybGFwcyBnZW5lcmF0ZWRfdmlydHVhbAogCiAjIGNvbGxhdGUubGludXgudXRmOCBhbmQg Y29sbGF0ZS5pY3UudXRmOCB0ZXN0cyBjYW5ub3QgYmUgcnVuIGluIHBhcmFsbGVsIHdpdGggZWFj aCBvdGhlcgotdGVzdDogcnVsZXMgcHNxbCBwc3FsX2Nyb3NzdGFiIHBzcWxfcGlwZWxpbmUgYW11 dGlscyBzdGF0c19leHQgY29sbGF0ZS5saW51eC51dGY4IGNvbGxhdGUud2luZG93cy53aW4xMjUy Cit0ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgcHNxbF9waXBlbGluZSBhbXV0aWxzIHN0 YXRzX2V4dCBjb2xsYXRlLmxpbnV4LnV0ZjggY29sbGF0ZS53aW5kb3dzLndpbjEyNTIgY2FzdAog CiAjIC0tLS0tLS0tLS0KICMgUnVuIHRoZXNlIGFsb25lIHNvIHRoZXkgZG9uJ3QgcnVuIG91dCBv ZiBwYXJhbGxlbCB3b3JrZXJzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0 LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi4yNzMzNDIxMmM4YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCkBAIC0wLDAgKzEsMjU5IEBACitTRVQgZXh0cmFfZmxv YXRfZGlnaXRzID0gMDsKKworLS0gQ0FTVCBERUZBVUxUIE9OIENPTlZFUlNJT04gRVJST1IKK1ZB TFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgRVJST1IgT04gQ09OVkVSU0lPTiBFUlJPUikp OyAtLWVycm9yCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikpOworVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBERUZBVUxUIDQy IE9OIENPTlZFUlNJT04gRVJST1IpKTsKK1NFTEVDVCBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgxOjpudW1lcmljIEFTIG1vbmV5 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKDExMTEgQVMg ImNoYXIiIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gcmV0X2ludDgoKSBSRVRVUk5TIGJpZ2ludCBBUworJCQKK0JFR0lOIFJF VFVSTiAyMTQ3NDgzNjQ4OyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CisK K1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgZGF0ZSBERUZBVUxUIHJldF9pbnQ4 KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKKworLS0gdGVzdCBhcnJheSBjb2VyY2UK K1NFTEVDVCBDQVNUKCd7MTIzLGFiYyw0NTZ9JyBBUyBpbnRlZ2VyW10gREVGQVVMVCAney03ODl9 JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCd7MjM0LGRlZiw1Njd9Jzo6dGV4 dFtdIEFTIGludGVnZXJbXSBERUZBVUxUICd7LTEwMTF9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFTIElOVEVHRVJbXSBE RUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVtb JzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMn0nIE9O IENPTlZFUlNJT04gRVJST1IpOworCistLSB0ZXN0IHZhbGlkIERFRkFVTFQgZXhwcmVzc2lvbiBm b3IgQ0FTVCA9IE9OIENPTlZFUlNJT04gRVJST1IKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHJldF9zZXRpbnQoKSBSRVRVUk5TIFNFVE9GIGludGVnZXIgQVMKKyQkCitCRUdJTiBSRVRVUk4g UVVFUlkgRVhFQ1VURSAnc2VsZWN0IDEgdW5pb24gYWxsIHNlbGVjdCAxJzsgRU5EOworJCQKK0xB TkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitDUkVBVEUgVEFCTEUgdGNhc3QoYSB0ZXh0W10s IGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIElERU5USVRZLCBjIHRleHQgZGVmYXVsdCAn MScpOworSU5TRVJUIElOVE8gdGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9JyksICgn e3sxLDJ9LCB7YyxkfX0nKSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFV TFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0tZXJyb3IK K1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgT04gQ09OVkVSU0lPTiBFUlJP Uik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3Zlcigp IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERF RkFVTFQgJ2InIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKK1NFTEVDVCBDQVNUKHQg QVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9JyBPTiBDT05WRVJTSU9OIEVS Uk9SKSBGUk9NIHRjYXN0IGFzIHQ7CitTRUxFQ1QgQ0FTVCh0LmEgQVMgaW50W10gREVGQVVMVCAn ezIxLDIyfSc6OmludFtdIHx8IGIgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0 OworCistLSB0ZXN0IHdpdGggZG9tYWluCitDUkVBVEUgRE9NQUlOIGRfaW50NDIgYXMgaW50IGNo ZWNrICh2YWx1ZSA9IDQyKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF9jaGFyM19ub3RfbnVs bCBhcyBjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIFRZUEUgY29tcF9kb21haW5fd2l0aF90eXBt b2QgQVMgKGEgZF9jaGFyM19ub3RfbnVsbCwgYiBpbnQpOworU0VMRUNUIENBU1QoMTEgQVMgZF9p bnQ0MiBERUZBVUxUIDQxIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FT VCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tb2sKK1NF TEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLW9rCitTRUxFQ1QgQ0FTVCgnKCw0MiknIEFTIGNvbXBfZG9tYWlu X3dpdGhfdHlwbW9kIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxLDIp JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBf ZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJyBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS1lcnJvcgorCistLS0tLXNhZmUgY2FzdCBmcm9tIGJ5dGVhIHR5cGUgdG8gb3RoZXIgdHlw ZQorU0VMRUNUIENBU1QgKCdceDExMjIzMzQ0NTU2Njc3ODg5OSc6OmJ5dGVhIEFTIGludDggREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Nzg5 QSc6OmJ5dGVhIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VM RUNUIENBU1QoJ1x4MTIzNDU2Jzo6Ynl0ZWEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGZyb20gcmFuZ2UgdHlwZSB0byBvdGhlciB0 eXBlCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ0cmFuZ2UgQVMgaW50NG11bHRpcmFuZ2UgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50 OHJhbmdlIEFTIGludDhtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKCdbMSwyXSc6Om51bXJhbmdlICBBUyBudW1tdWx0aXJhbmdlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGlu ZmluaXR5XSc6OmRhdGVyYW5nZSBBUyBkYXRlbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3Jh bmdlIEFTIHRzbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitT RUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3R6cmFuZ2UgQVMgdHN0em11bHRp cmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0tLXNhZmUgY2Fz dCBmcm9tIGdlb21ldHJ5IHRvIG90aGVyIGdlb21ldHJ5IGlzIG5vdCBzdXBwb3J0ZWQKK1NFTEVD VCBDQVNUKE5VTEw6OnBvaW50IEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVChOVUxMOjpwYXRoIEFT IHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxF Q1QgQ0FTVChOVUxMOjpib3ggQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVChOVUxMOjpib3ggQVMgbHNlZyBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6OmJveCBBUyBw b2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNU IENBU1QoTlVMTDo6Ym94IEFTIGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6OnBvbHlnb24gQVMgcG9pbnQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVChOVUxMOjpwb2x5 Z29uIEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitT RUxFQ1QgQ0FTVChOVUxMOjpwb2x5Z29uIEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6OnBvbHlnb24gQVMgY2lyY2xlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoTlVM TDo6Y2lyY2xlIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1l cnJvcgorU0VMRUNUIENBU1QoTlVMTDo6Y2lyY2xlIEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6OmNpcmNsZSBBUyBwb2x5 Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorCistLS0tLXNh ZmUgY2FzdCBmcm9tIG1vbmV5IG9yIG1vbmV5IGNhc3QgdG8gb3RoZXIgdHlwZSBpcyBub3Qgc3Vw cG9ydGVkCitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25l eSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNU KE5VTEw6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OyAtLWVycm9yCitTRUxFQ1QgQ0FTVChOVUxMOjptb25leSBBUyBudW1lcmljIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorCistLXRlc3QgY2FzdCBudW1lcmljIHZh bHVlIHdpdGggZnJhY3Rpb24gdG8gYW5vdGhlciBudW1lcmljIHZhbHVlCitDUkVBVEUgVEFCTEUg c2FmZWNhc3QoY29sMSBmbG9hdDQsIGNvbDIgZmxvYXQ4LCBjb2wzIG51bWVyaWMsIGNvbDQgbnVt ZXJpY1tdLAorICAgICAgICAgICAgICAgICAgICAgICAgY29sNSBpbnQyIGRlZmF1bHQgMzI3Njcs CisgICAgICAgICAgICAgICAgICAgICAgICBjb2w2IGludDQgZGVmYXVsdCAzMjc2OCwKKyAgICAg ICAgICAgICAgICAgICAgICAgIGNvbDcgaW50OCBkZWZhdWx0IDQyOTQ5NjcyOTYpOworSU5TRVJU IElOVE8gc2FmZWNhc3QgVkFMVUVTKCcxMS4xMjM0JywgJzExLjEyMzQnLCAnOTIyMzM3MjAzNjg1 NDc3NTgwOCcsICd7MTEuMTIzNH0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gc2FmZWNhc3Qg VkFMVUVTKCdpbmYnLCAnaW5mJywgJ2luZicsICd7MTEuMTIzNCwgMTIsIGluZiwgTmFOfSc6Om51 bWVyaWNbXSk7CitJTlNFUlQgSU5UTyBzYWZlY2FzdCBWQUxVRVMoJy1pbmYnLCAnLWluZicsICct aW5mJywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5U TyBzYWZlY2FzdCBWQUxVRVMoJ05hTicsICdOYU4nLCAnTmFOJywgJ3sxMS4xMjM0LCAxMiwgLWlu ZiwgTmFOfSc6Om51bWVyaWNbXSk7CisKK1NFTEVDVCBjb2wxIGFzIGZsb2F0NCwKKyAgICAgICBD QVNUKGNvbDEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50MiwKKyAgICAgICBDQVNUKGNvbDEgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDEgQVMgb2lkIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wxIGFzIGlu dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAg Q0FTVChjb2wxIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgbnVtZXJp YyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAg ICBDQVNUKGNvbDEgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSBzYWZlY2FzdDsKKworU0VMRUNUIGNvbDIg YXMgZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMiBBUyBpbnQ0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29s MiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAg ICAgICBDQVNUKGNvbDIgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0 OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAg IENBU1QoY29sMiBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMiBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHNhZmVj YXN0OworCitTRUxFQ1QgY29sMyBhcyBudW1lcmljLAorICAgICAgIENBU1QoY29sMyBBUyBpbnQy IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENB U1QoY29sMyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19p bnQ0LAorICAgICAgIENBU1QoY29sMyBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDMgYXMgaW50OCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxv YXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAg ICAgQ0FTVChjb2wzIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMyBhcyBu dW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1l cmljX3NjYWxlCitGUk9NIHNhZmVjYXN0OworCitTRUxFQ1QgY29sNCBhcyBudW1fYXJyLAorICAg ICAgIENBU1QoY29sNCBBUyBpbnQyW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIGludDJhcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDRbXSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgaW50NGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgaW50OFtd IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ4YXJyLAorICAgICAgIENB U1QoY29sNCBhcyBmbG9hdDRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg ZjRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0OFtdIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyBmOGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgbnVtZXJpYygxMCwx KVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBudW1hcnIKK0ZST00gc2Fm ZWNhc3Q7CisKK1NFTEVDVCBjb2w1IGFzIGludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDIg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FT VChjb2w1IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDQsCisgICAgICAgQ0FTVChjb2w1IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9h dDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAg ICBDQVNUKGNvbDUgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w1IGFzIG51 bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVy aWNfc2NhbGUKK0ZST00gc2FmZWNhc3Q7CisKK1NFTEVDVCBjb2w2IGFzIGludDQsCisgICAgICAg Q0FTVChjb2w2IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDIsCisgICAgICAgQ0FTVChjb2w2IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w2IEFTIG9pZCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNiBhcyBp bnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAg IENBU1QoY29sNiBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w2IGFzIG51bWVy aWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAg ICAgQ0FTVChjb2w2IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gc2FmZWNhc3Q7CisKK1NFTEVDVCBjb2w3 IGFzIGludDgsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w3 IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAg ICAgIENBU1QoY29sNyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ4 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAg Q0FTVChjb2w3IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gc2FmZWNh c3Q7CisKKy0tdGVzdCBkYXRlL3RpbWVzdGFtcC9pbnRlcnZhbCByZWFsdGVkIGNhc3QKK0NSRUFU RSBUQUJMRSBzYWZlY2FzdDEoY29sMCBkYXRlLCBjb2wxIHRpbWVzdGFtcCwgY29sMiB0aW1lc3Rh bXB0eiwgY29sMyBpbnRlcnZhbCwgY29sNCB0aW1lLCBjb2w1IHRpbWV0eik7CitpbnNlcnQgaW50 byBzYWZlY2FzdDEgVkFMVUVTCisoJy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5 JywgJy1pbmZpbml0eScsICcyMDAzLTAzLTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnLCAn MjAwMy0wNy0wNyAxNTozNjozOSBBbWVyaWNhL05ld19Zb3JrJyksCisoJy1pbmZpbml0eScsICdp bmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0eScsJzExOjU5OjU5Ljk5IFBNJywgJzExOjU5 OjU5Ljk5IFBNIFBEVCcpOworCitTRUxFQ1QgY29sMCBhcyBkYXRlLAorICAgICAgIENBU1QoY29s MCBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f dGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wwIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1Qo Y29sMCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWV0eiwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gc2FmZWNhc3QxOwor CitTRUxFQ1QgY29sMSBhcyB0aW1lc3RhbXAsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFt cHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwK KyAgICAgICBDQVNUKGNvbDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWV0 eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAg IENBU1QoY29sMSBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSBzYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wy IGFzIHRpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3RhbXB0eiBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FT VChjb2wyIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Rh dGUsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMiBBUyB0aW1ldHogREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDIg QVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190 aW1lc3RhbXBfc2NhbGUKK0ZST00gc2FmZWNhc3QxOworCitTRUxFQ1QgY29sMyBhcyBpbnRlcnZh bCwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMyBBUyBkYXRl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENB U1QoY29sMyBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190 aW1lcywKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcCgy KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxl LAorICAgICAgIENBU1QoY29sMyBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gc2FmZWNhc3QxOworCitTRUxF Q1QgY29sNCBhcyB0aW1lLAorICAgICAgIENBU1QoY29sNCBBUyB0aW1lKDIpIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDQgQVMg dGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisg ICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitG Uk9NIHNhZmVjYXN0MTsKKworU0VMRUNUIGNvbDUgYXMgdGltZXR6LAorICAgICAgIENBU1QoY29s NSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lLAor ICAgICAgIENBU1QoY29sNSBBUyB0aW1lKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lX3NjYWxlLAorICAgICAgIENBU1QoY29sNSBBUyB0aW1ldHogREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNv bDUgQVMgdGltZXR6KDYpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190 aW1ldHpfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDUgQVMg aW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVy dmFsX3NjYWxlCitGUk9NIHNhZmVjYXN0MTsKKworQ1JFQVRFIFRBQkxFIHNhZmVjYXN0Mihjb2ww IGpzb25iLCBjb2wxIHRleHQgKTsKK0lOU0VSVCBJTlRPIHNhZmVjYXN0MiBWQUxVRVMgKCcidGVz dCInLCAnPHZhbHVlPm9uZTwvdmFsdWUnKTsKKworU0VMRUNUIGNvbDEgYXMgdGV4dCwKKyAgICAg ICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3JlZ2NsYXNzLAorICAgICAgIENBU1QoY29sMCBBUyAiY2hhciIgIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19jaGFyLAorICAgICAgIENBU1QoY29sMCBBUyBu YW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19uYW1lLAorICAgICAg IENBU1QoY29sMCBBUyB4bWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X3htbAorRlJPTSBzYWZlY2FzdDI7CisKK1NFTEVDVCBjb2wwIGFzIGpzb25iLAorICAgICAgIENB U1QoY29sMCBBUyBpbnRlZ2VyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnRlZ2VyLAorICAgICAgIENBU1QoY29sMCBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMCBBUyBiaWdp bnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAg Q0FTVChjb2wwIEFTIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgYm9vbGVh biBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fYm9vbCwKKyAgICAgICBD QVNUKGNvbDAgQVMgc21hbGxpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3NtYWxsaW50CitGUk9NIHNhZmVjYXN0MjsKKworLS0gdGVzdCBkZXBhcnNlCitDUkVBVEUg VklFVyBzYWZlY2FzdHZpZXcgQVMKK1NFTEVDVCBDQVNUKCcxMjM0JyBhcyBjaGFyKDMpIERFRkFV TFQgLTExMTEgT04gQ09OVkVSU0lPTiBFUlJPUiksCisgICAgICAgQ0FTVCgxIGFzIGRhdGUgREVG QVVMVCAoKG5vdygpOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgc2FmZWNhc3QsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0 aHJlZSddLFsnYSddXSBBUyBJTlRFR0VSW10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScs ICdhJ11dIEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcKKworQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4 ICBPTiB0Y2FzdCgoY2FzdChjIGFzIGludCBERUZBVUxUIHJhbmRvbShtaW49PjEsIG1heD0+MSkg T04gQ09OVkVSU0lPTiBFUlJPUikpKTsgLS1lcnJvcgorUkVTRVQgZXh0cmFfZmxvYXRfZGlnaXRz OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCmluZGV4IDMyMTg3ODUzY2M3Li4wYTE1 YTc5NWQ4NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbApAQCAtNjIsNiArNjIs NyBAQCAkJCBTRUxFQ1QgKCdiYXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgJCQ7CiAKIENSRUFURSBD QVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBGVU5DVElPTiBiYXJfaW50NF90ZXh0KGlu dDQpIEFTIElNUExJQ0lUOwogU0VMRUNUIDEyMzQ6OmludDQ6OmNhc3R0ZXN0dHlwZTsgLS0gU2hv dWxkIHdvcmsgbm93CitTRUxFQ1QgQ0FTVCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCiAKIC0tIGNoZWNrIGRlcGVu ZGVuY2llcyBnZW5lcmF0ZWQgZm9yIHRoYXQKIFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xh c3NpZCwgb2JqaWQsIG9ianN1YmlkKSBhcyBvYmosCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cmlu ZGV4IGU2ZjJlOTNiMmQ2Li41YjMyZGYzYTJkYiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK QEAgLTI2NTIsNiArMjY1Miw5IEBAIFNUUkxFTgogU1YKIFNZTkNIUk9OSVpBVElPTl9CQVJSSUVS CiBTWVNURU1fSU5GTworU2FmZVR5cGVDYXN0CitTYWZlVHlwZUNhc3RFeHByCitTYWZlVHlwZUNh c3RTdGF0ZQogU2FtcGxlU2NhbgogU2FtcGxlU2NhbkdldFNhbXBsZVNpemVfZnVuY3Rpb24KIFNh bXBsZVNjYW5TdGF0ZQotLSAKMi4zNC4xCgo= --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0010-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v6-0010-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzkj8 RnJvbSAyZWZhZjNiNTgyYjE1ZDYyYjMyNTA1MzVkZmJjMDg0MGE3NDQ0ZGNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFN1biwgMTAgQXVnIDIwMjUgMDE6NTY6MDMgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDEwLzE4XSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRleHQgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAndGV4dCc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2FzdHRhcmdl dCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJvc3JjICAgICB8 IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiB0ZXh0ICAgICAgIHwg cmVnY2xhc3MgICB8ICAgICAxMDc5IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dF9y ZWdjbGFzcyB8IHJlZ2NsYXNzCiB0ZXh0ICAgICAgIHwgImNoYXIiICAgICB8ICAgICAgOTQ0IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dF9jaGFyICAgICB8IGNoYXIKIHRleHQgICAg ICAgfCBuYW1lICAgICAgIHwgICAgICA0MDcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0 ZXh0X25hbWUgICAgIHwgbmFtZQogdGV4dCAgICAgICB8IHhtbCAgICAgICAgfCAgICAgMjg5NiB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHR0b3htbCAgICAgfCB4bWwKKDQgcm93cykK CmFscmVhZHkgZXJyb3Igc2FmZTogdGV4dF9uYW1lLCB0ZXh0X2NoYXIuCnRleHR0b3htbCBpcyBy ZWZhY3RvcmVkIGluIGNoYXJhY3RlciB0eXBlIGVycm9yIHNhZmUgcGF0Y2guCi0tLQogc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyB8IDE2NyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYyB8ICAyMiArKysrLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYyB8ICA0MiArKysrKysrKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9uYW1lc3BhY2UuaCB8ICAgNCArCiBzcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmgg ICAgIHwgICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgMjMzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggZDk3ZDYzMmE3ZWYuLjRhNTUwNmVl YWM1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKQEAgLTY0MSw2ICs2NDEsMTM3IEBAIFJhbmdl VmFyR2V0UmVsaWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxv Y2ttb2RlLAogCXJldHVybiByZWxJZDsKIH0KIAorLyogc2VlIFJhbmdlVmFyR2V0UmVsaWRFeHRl bmRlZCBhbHNvICovCitPaWQKK1JhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUoY29uc3QgUmFu Z2VWYXIgKnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKKwkJCQkJCQkgdWludDMyIGZsYWdz LCBSYW5nZVZhckdldFJlbGlkQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQgKmNhbGxiYWNrX2FyZywK KwkJCQkJCQkgTm9kZSAqZXNjb250ZXh0KQoreworCXVpbnQ2NAkJaW52YWxfY291bnQ7CisJT2lk CQkJcmVsSWQ7CisJT2lkCQkJb2xkUmVsSWQgPSBJbnZhbGlkT2lkOworCWJvb2wJCXJldHJ5ID0g ZmFsc2U7CisJYm9vbAkJbWlzc2luZ19vayA9IChmbGFncyAmIFJWUl9NSVNTSU5HX09LKSAhPSAw OworCisJLyogdmVyaWZ5IHRoYXQgZmxhZ3MgZG8gbm8gY29uZmxpY3QgKi8KKwlBc3NlcnQoISgo ZmxhZ3MgJiBSVlJfTk9XQUlUKSAmJiAoZmxhZ3MgJiBSVlJfU0tJUF9MT0NLRUQpKSk7CisKKwkv KgorCSAqIFdlIGNoZWNrIHRoZSBjYXRhbG9nIG5hbWUgYW5kIHRoZW4gaWdub3JlIGl0LgorCSAq LworCWlmIChyZWxhdGlvbi0+Y2F0YWxvZ25hbWUpCisJeworCQlpZiAoc3RyY21wKHJlbGF0aW9u LT5jYXRhbG9nbmFtZSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkgIT0gMCkKKwkJ CWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAorCQkJCQllcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVu Y2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IFwiJXMuJXMuJXNcIiIsCisJCQkJCQkJcmVsYXRpb24t PmNhdGFsb2duYW1lLCByZWxhdGlvbi0+c2NoZW1hbmFtZSwKKwkJCQkJCQlyZWxhdGlvbi0+cmVs bmFtZSkpOworCX0KKworCWZvciAoOzspCisJeworCQlpbnZhbF9jb3VudCA9IFNoYXJlZEludmFs aWRNZXNzYWdlQ291bnRlcjsKKworCQlpZiAocmVsYXRpb24tPnJlbHBlcnNpc3RlbmNlID09IFJF TFBFUlNJU1RFTkNFX1RFTVApCisJCXsKKwkJCWlmICghT2lkSXNWYWxpZChteVRlbXBOYW1lc3Bh Y2UpKQorCQkJCXJlbElkID0gSW52YWxpZE9pZDsKKwkJCWVsc2UKKwkJCXsKKwkJCQlpZiAocmVs YXRpb24tPnNjaGVtYW5hbWUpCisJCQkJeworCQkJCQlPaWQJCQluYW1lc3BhY2VJZDsKKworCQkJ CQluYW1lc3BhY2VJZCA9IExvb2t1cEV4cGxpY2l0TmFtZXNwYWNlKHJlbGF0aW9uLT5zY2hlbWFu YW1lLCBtaXNzaW5nX29rKTsKKworCQkJCQkvKgorCQkJCQkgKiBGb3IgbWlzc2luZ19vaywgYWxs b3cgYSBub24tZXhpc3RlbnQgc2NoZW1hIG5hbWUgdG8KKwkJCQkJICogcmV0dXJuIEludmFsaWRP aWQuCisJCQkJCSAqLworCQkJCQlpZiAobmFtZXNwYWNlSWQgIT0gbXlUZW1wTmFtZXNwYWNlKQor CQkJCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRPaWQsCisJCQkJCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1RBQkxFX0RFRklOSVRJT04pLAorCQkJCQkJCQllcnJtc2coInRlbXBvcmFy eSB0YWJsZXMgY2Fubm90IHNwZWNpZnkgYSBzY2hlbWEgbmFtZSIpKTsKKwkJCQl9CisKKwkJCQly ZWxJZCA9IGdldF9yZWxuYW1lX3JlbGlkKHJlbGF0aW9uLT5yZWxuYW1lLCBteVRlbXBOYW1lc3Bh Y2UpOworCQkJfQorCQl9CisJCWVsc2UgaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQorCQl7CisJ CQlPaWQJCQluYW1lc3BhY2VJZDsKKworCQkJLyogdXNlIGV4YWN0IHNjaGVtYSBnaXZlbiAqLwor CQkJbmFtZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShyZWxhdGlvbi0+c2NoZW1h bmFtZSwgbWlzc2luZ19vayk7CisJCQlpZiAobWlzc2luZ19vayAmJiAhT2lkSXNWYWxpZChuYW1l c3BhY2VJZCkpCisJCQkJcmVsSWQgPSBJbnZhbGlkT2lkOworCQkJZWxzZQorCQkJCXJlbElkID0g Z2V0X3JlbG5hbWVfcmVsaWQocmVsYXRpb24tPnJlbG5hbWUsIG5hbWVzcGFjZUlkKTsKKwkJfQor CQllbHNlCisJCXsKKwkJCS8qIHNlYXJjaCB0aGUgbmFtZXNwYWNlIHBhdGggKi8KKwkJCXJlbElk ID0gUmVsbmFtZUdldFJlbGlkKHJlbGF0aW9uLT5yZWxuYW1lKTsKKwkJfQorCisJCWlmIChjYWxs YmFjaykKKwkJCWNhbGxiYWNrKHJlbGF0aW9uLCByZWxJZCwgb2xkUmVsSWQsIGNhbGxiYWNrX2Fy Zyk7CisKKwkJaWYgKGxvY2ttb2RlID09IE5vTG9jaykKKwkJCWJyZWFrOworCisJCWlmIChyZXRy eSkKKwkJeworCQkJaWYgKHJlbElkID09IG9sZFJlbElkKQorCQkJCWJyZWFrOworCQkJaWYgKE9p ZElzVmFsaWQob2xkUmVsSWQpKQorCQkJCVVubG9ja1JlbGF0aW9uT2lkKG9sZFJlbElkLCBsb2Nr bW9kZSk7CisJCX0KKworCQlpZiAoIU9pZElzVmFsaWQocmVsSWQpKQorCQkJQWNjZXB0SW52YWxp ZGF0aW9uTWVzc2FnZXMoKTsKKwkJZWxzZSBpZiAoIShmbGFncyAmIChSVlJfTk9XQUlUIHwgUlZS X1NLSVBfTE9DS0VEKSkpCisJCQlMb2NrUmVsYXRpb25PaWQocmVsSWQsIGxvY2ttb2RlKTsKKwkJ ZWxzZSBpZiAoIUNvbmRpdGlvbmFsTG9ja1JlbGF0aW9uT2lkKHJlbElkLCBsb2NrbW9kZSkpCisJ CXsKKwkJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSkKKwkJCQllcmVwb3J0KERFQlVHMSwKKwkJ CQkJCWVycmNvZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJTEFCTEUpLAorCQkJCQkJZXJybXNnKCJj b3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlcy4lc1wiIiwKKwkJCQkJCQkJcmVs YXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1lKSk7CisJCQllbHNlCisJCQkJZXJl cG9ydChERUJVRzEsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfTE9DS19OT1RfQVZBSUxBQkxFKSwK KwkJCQkJCWVycm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwiJXNcIiIs CisJCQkJCQkJICAgcmVsYXRpb24tPnJlbG5hbWUpKTsKKworCQkJcmV0dXJuIEludmFsaWRPaWQ7 CisJCX0KKworCQlpZiAoaW52YWxfY291bnQgPT0gU2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVy KQorCQkJYnJlYWs7CisKKwkJcmV0cnkgPSB0cnVlOworCQlvbGRSZWxJZCA9IHJlbElkOworCX0K KworCWlmICghT2lkSXNWYWxpZChyZWxJZCkpCisJeworCQlpZiAocmVsYXRpb24tPnNjaGVtYW5h bWUpCisJCQllcmVwb3J0KERFQlVHMSwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9U QUJMRSksCisJCQkJCWVycm1zZygicmVsYXRpb24gXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwK KwkJCQkJCQlyZWxhdGlvbi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJlbG5hbWUpKTsKKwkJZWxz ZQorCQkJZXJlcG9ydChERUJVRzEsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfVEFC TEUpLAorCQkJCQllcnJtc2coInJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJ CQkJcmVsYXRpb24tPnJlbG5hbWUpKTsKKwl9CisJcmV0dXJuIHJlbElkOworfQorCiAvKgogICog UmFuZ2VWYXJHZXRDcmVhdGlvbk5hbWVzcGFjZQogICoJCUdpdmVuIGEgUmFuZ2VWYXIgZGVzY3Jp YmluZyBhIHRvLWJlLWNyZWF0ZWQgcmVsYXRpb24sCkBAIC0zNTgwLDYgKzM3MTEsNDIgQEAgbWFr ZVJhbmdlVmFyRnJvbU5hbWVMaXN0KGNvbnN0IExpc3QgKm5hbWVzKQogCXJldHVybiByZWw7CiB9 CiAKKy8qCisgKiBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3RTYWZlCisgKgkJVXRpbGl0eSByb3V0 aW5lIHRvIGNvbnZlcnQgYSBxdWFsaWZpZWQtbmFtZSBsaXN0IGludG8gUmFuZ2VWYXIgZm9ybS4K KyAqIFRoZSByZXN1bHQgbWF5YmUgTlVMTC4KKyAqLworUmFuZ2VWYXIgKgorbWFrZVJhbmdlVmFy RnJvbU5hbWVMaXN0U2FmZShjb25zdCBMaXN0ICpuYW1lcywgTm9kZSAqZXNjb250ZXh0KQorewor CVJhbmdlVmFyICAgKnJlbCA9IG1ha2VSYW5nZVZhcihOVUxMLCBOVUxMLCAtMSk7CisKKwlzd2l0 Y2ggKGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwl7CisJCWNhc2UgMToKKwkJCXJlbC0+cmVsbmFtZSA9 IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJYnJlYWs7CisJCWNhc2UgMjoKKwkJCXJlbC0+ c2NoZW1hbmFtZSA9IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJcmVsLT5yZWxuYW1lID0g c3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCWJyZWFrOworCQljYXNlIDM6CisJCQlyZWwtPmNh dGFsb2duYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQlyZWwtPnNjaGVtYW5hbWUg PSBzdHJWYWwobHNlY29uZChuYW1lcykpOworCQkJcmVsLT5yZWxuYW1lID0gc3RyVmFsKGx0aGly ZChuYW1lcykpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQllcnJzYXZlKGVzY29udGV4dCwK KwkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCWVycm1zZygiaW1wcm9w ZXIgcmVsYXRpb24gbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogJXMiLAorCQkJCQkJCU5h bWVMaXN0VG9TdHJpbmcobmFtZXMpKSk7CisJCQlyZWwgPSBOVUxMOworCQkJYnJlYWs7CisJfQor CisJcmV0dXJuIHJlbDsKK30KKwogLyoKICAqIE5hbWVMaXN0VG9TdHJpbmcKICAqCQlVdGlsaXR5 IHJvdXRpbmUgdG8gY29udmVydCBhIHF1YWxpZmllZC1uYW1lIGxpc3QgaW50byBhIHN0cmluZy4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmVncHJvYy5jCmluZGV4IGI4YmJlOTVlODJlLi5lN2YyNTllOGEwYSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmVncHJvYy5jCkBAIC0xODk1LDEwICsxODk1LDI2IEBAIHRleHRfcmVnY2xh c3MoUEdfRlVOQ1RJT05fQVJHUykKIAlPaWQJCQlyZXN1bHQ7CiAJUmFuZ2VWYXIgICAqcnY7CiAK LQlydiA9IG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdCh0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdChy ZWxuYW1lKSk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwl7CisJCXJ2ID0gbWFr ZVJhbmdlVmFyRnJvbU5hbWVMaXN0KHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHJlbG5hbWUpKTsK IAotCS8qIFdlIG1pZ2h0IG5vdCBldmVuIGhhdmUgcGVybWlzc2lvbnMgb24gdGhpcyByZWxhdGlv bjsgZG9uJ3QgbG9jayBpdC4gKi8KLQlyZXN1bHQgPSBSYW5nZVZhckdldFJlbGlkKHJ2LCBOb0xv Y2ssIGZhbHNlKTsKKwkJLyogV2UgbWlnaHQgbm90IGV2ZW4gaGF2ZSBwZXJtaXNzaW9ucyBvbiB0 aGlzIHJlbGF0aW9uOyBkb24ndCBsb2NrIGl0LiAqLworCQlyZXN1bHQgPSBSYW5nZVZhckdldFJl bGlkKHJ2LCBOb0xvY2ssIGZhbHNlKTsKKwl9CisJZWxzZQorCXsKKwkJTGlzdCAgIAkJKnJ2bmFt ZXM7CisKKwkJcnZuYW1lcyA9IHRleHRUb1F1YWxpZmllZE5hbWVMaXN0U2FmZShyZWxuYW1lLCBm Y2luZm8tPmNvbnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRl eHQpKQorCQkJUEdfUkVUVVJOX05VTEwoKTsKKworCQlydiA9IG1ha2VSYW5nZVZhckZyb21OYW1l TGlzdChydm5hbWVzKTsKKwkJcmVzdWx0ID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkU2FmZShy diwgTm9Mb2NrLCAwLCBOVUxMLCBOVUxMLCBmY2luZm8tPmNvbnRleHQpOworCQlpZiAoU09GVF9F UlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQkJUEdfUkVUVVJOX05VTEwoKTsKKwl9 CiAKIAlQR19SRVRVUk5fT0lEKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvdmFybGVuYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwppbmRl eCAxMWI0NDJhNTk0MS4uODA4NTJkNWU5MjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC92YXJsZW5hLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwpAQCAt MjcyNCw2ICsyNzI0LDQ4IEBAIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwp CiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyogc2VlIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0IGFs c28gKi8KK0xpc3QgKgordGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZlKHRleHQgKnRleHR2YWws IE5vZGUgKmVzY29udGV4dCkKK3sKKwljaGFyCSAgICpyYXduYW1lOworCUxpc3QJICAgKnJlc3Vs dCA9IE5JTDsKKwlMaXN0CSAgICpuYW1lbGlzdDsKKwlMaXN0Q2VsbCAgICpsOworCisJLyogQ29u dmVydCB0byBDIHN0cmluZyAoaGFuZGxlcyBwb3NzaWJsZSBkZXRvYXN0aW5nKS4gKi8KKwkvKiBO b3RlIHdlIHJlbHkgb24gYmVpbmcgYWJsZSB0byBtb2RpZnkgcmF3bmFtZSBiZWxvdy4gKi8KKwly YXduYW1lID0gdGV4dF90b19jc3RyaW5nKHRleHR2YWwpOworCisJaWYgKCFTcGxpdElkZW50aWZp ZXJTdHJpbmcocmF3bmFtZSwgJy4nLCAmbmFtZWxpc3QpKQorCXsKKwkJZXJyc2F2ZShlc2NvbnRl eHQsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfTkFNRSksCisJCQkJZXJybXNnKCJpbnZh bGlkIG5hbWUgc3ludGF4IikpOworCQlyZXR1cm4gTklMOworCX0KKworCWlmIChuYW1lbGlzdCA9 PSBOSUwpCisJeworCQllcnJzYXZlKGVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9OQU1FKSwKKwkJCQllcnJtc2coImludmFsaWQgbmFtZSBzeW50YXgiKSk7CisJCXJldHVy biBOSUw7CisJfQorCisJZm9yZWFjaChsLCBuYW1lbGlzdCkKKwl7CisJCWNoYXIJICAgKmN1cm5h bWUgPSAoY2hhciAqKSBsZmlyc3QobCk7CisKKwkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG1h a2VTdHJpbmcocHN0cmR1cChjdXJuYW1lKSkpOworCX0KKworCXBmcmVlKHJhd25hbWUpOworCWxp c3RfZnJlZShuYW1lbGlzdCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogU3BsaXRJ ZGVudGlmaWVyU3RyaW5nIC0tLSBwYXJzZSBhIHN0cmluZyBjb250YWluaW5nIGlkZW50aWZpZXJz CiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKaW5kZXggOGM3Y2NjNjlhM2MuLmUwOTVjYmU3MGZh IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTg1LDYgKzg1LDkgQEAgZXh0ZXJuIE9pZAlS YW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJ CQkJIExPQ0tNT0RFIGxvY2ttb2RlLCB1aW50MzIgZmxhZ3MsCiAJCQkJCQkJCQkgUmFuZ2VWYXJH ZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLAogCQkJCQkJCQkJIHZvaWQgKmNhbGxiYWNrX2FyZyk7 CitleHRlcm4gT2lkIFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUoY29uc3QgUmFuZ2VWYXIg KnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKKwkJCQkJCQkJCQl1aW50MzIgZmxhZ3MsIFJh bmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxsYmFjaywgdm9pZCAqY2FsbGJhY2tfYXJnLAorCQkJ CQkJCQkJCU5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gT2lkCVJhbmdlVmFyR2V0Q3JlYXRpb25O YW1lc3BhY2UoY29uc3QgUmFuZ2VWYXIgKm5ld1JlbGF0aW9uKTsKIGV4dGVybiBPaWQJUmFuZ2VW YXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKFJhbmdlVmFyICpyZWxhdGlvbiwKIAkJCQkJ CQkJCQkJCSBMT0NLTU9ERSBsb2NrbW9kZSwKQEAgLTE0OCw2ICsxNTEsNyBAQCBleHRlcm4gT2lk CUxvb2t1cENyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IGNoYXIgKm5zcG5hbWUpOwogZXh0ZXJuIHZv aWQgQ2hlY2tTZXROYW1lc3BhY2UoT2lkIG9sZE5zcE9pZCwgT2lkIG5zcE9pZCk7CiBleHRlcm4g T2lkCVF1YWxpZmllZE5hbWVHZXRDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBMaXN0ICpuYW1lcywg Y2hhciAqKm9iam5hbWVfcCk7CiBleHRlcm4gUmFuZ2VWYXIgKm1ha2VSYW5nZVZhckZyb21OYW1l TGlzdChjb25zdCBMaXN0ICpuYW1lcyk7CitleHRlcm4gUmFuZ2VWYXIgKm1ha2VSYW5nZVZhckZy b21OYW1lTGlzdFNhZmUoY29uc3QgTGlzdCAqbmFtZXMsIE5vZGUgKmVzY29udGV4dCk7CiBleHRl cm4gY2hhciAqTmFtZUxpc3RUb1N0cmluZyhjb25zdCBMaXN0ICpuYW1lcyk7CiBleHRlcm4gY2hh ciAqTmFtZUxpc3RUb1F1b3RlZFN0cmluZyhjb25zdCBMaXN0ICpuYW1lcyk7CiAKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3Zhcmxl bmEuaAppbmRleCBkYjlmZGY3Mjk0MS4uMGNmMDFhZTUyODEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL3ZhcmxlbmEuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmgKQEAg LTI3LDYgKzI3LDcgQEAgZXh0ZXJuIGludAl2YXJzdHJfbGV2ZW5zaHRlaW5fbGVzc19lcXVhbChj b25zdCBjaGFyICpzb3VyY2UsIGludCBzbGVuLAogCQkJCQkJCQkJCSAgaW50IGluc19jLCBpbnQg ZGVsX2MsIGludCBzdWJfYywKIAkJCQkJCQkJCQkgIGludCBtYXhfZCwgYm9vbCB0cnVzdGVkKTsK IGV4dGVybiBMaXN0ICp0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0ZXh0dmFsKTsKK2V4 dGVybiBMaXN0ICp0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4dHZhbCwgTm9k ZSAqZXNjb250ZXh0KTsKIGV4dGVybiBib29sIFNwbGl0SWRlbnRpZmllclN0cmluZyhjaGFyICpy YXdzdHJpbmcsIGNoYXIgc2VwYXJhdG9yLAogCQkJCQkJCQkgIExpc3QgKipuYW1lbGlzdCk7CiBl eHRlcm4gYm9vbCBTcGxpdERpcmVjdG9yaWVzU3RyaW5nKGNoYXIgKnJhd3N0cmluZywgY2hhciBz ZXBhcmF0b3IsCi0tIAoyLjM0LjEKCg== --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0012-error-safe-for-casting-interval-to-other-types-per-pg_cas.patch" Content-Disposition: attachment; filename="v6-0012-error-safe-for-casting-interval-to-other-types-per-pg_cas.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzk86 RnJvbSBmMTE4Y2ZmM2E0MmQzNTBlMGUyYTcyNzRhYzU0ZjZmOWE4NzcxZWQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFN1biwgMTAgQXVnIDIwMjUgMDE6MTc6MjcgKzA4MDAKU3ViamVjdDogW1BBVENIIHY2 IDEyLzE4XSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGludGVydmFsIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVydmFs Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAg ICAgICBjYXN0dGFyZ2V0ICAgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRo b2QgfCAgICAgcHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQogaW50ZXJ2YWwgICB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUg fCAgICAgMTQxOSB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludGVydmFsX3RpbWUgIHwg dGltZQogaW50ZXJ2YWwgICB8IGludGVydmFsICAgICAgICAgICAgICAgfCAgICAgMTIwMCB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGludGVydmFsX3NjYWxlIHwgaW50ZXJ2YWwKKDIgcm93 cykKLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAyICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgfCAzICsrLQogMiBmaWxlcyBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2RhdGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggYzdhM2Nk ZTJkODEuLjRmMGYzZDI2OTg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0 ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTIxODAsNyArMjE4MCw3 IEBAIGludGVydmFsX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAlUaW1lQURUCQlyZXN1bHQ7CiAK IAlpZiAoSU5URVJWQUxfTk9UX0ZJTklURShzcGFuKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RB VEVUSU1FX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiY2Fubm90IGNvbnZlcnQg aW5maW5pdGUgaW50ZXJ2YWwgdG8gdGltZSIpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC90aW1lc3RhbXAuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAu YwppbmRleCBlNjQwYjQ4MjA1Yi4uZjFlOTZiODRhNmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC90aW1lc3RhbXAuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0 YW1wLmMKQEAgLTEzMzQsNyArMTMzNCw4IEBAIGludGVydmFsX3NjYWxlKFBHX0ZVTkNUSU9OX0FS R1MpCiAJcmVzdWx0ID0gcGFsbG9jKHNpemVvZihJbnRlcnZhbCkpOwogCSpyZXN1bHQgPSAqaW50 ZXJ2YWw7CiAKLQlBZGp1c3RJbnRlcnZhbEZvclR5cG1vZChyZXN1bHQsIHR5cG1vZCwgTlVMTCk7 CisJaWYgKCFBZGp1c3RJbnRlcnZhbEZvclR5cG1vZChyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5j b250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9JTlRFUlZBTF9QKHJl c3VsdCk7CiB9Ci0tIAoyLjM0LjEKCg== --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0013-error-safe-for-casting-macaddr8-to-other-types-per-pg_cas.patch" Content-Disposition: attachment; filename="v6-0013-error-safe-for-casting-macaddr8-to-other-types-per-pg_cas.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzk35 RnJvbSA0NGQ1OWYxODhmYjRkZmFkODgwZDlmNWQyNWNkM2U1NjI1NTI5YzhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgNSBBdWcgMjAyNSAxNjo1NTo0NCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MTMvMThdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgbWFjYWRkcjggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3RmdW5j CmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdtYWNhZGRyOCc6 OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2Fz dHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgICBwcm9z cmMgICAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQog bWFjYWRkcjggICB8IG1hY2FkZHIgICAgfCAgICAgNDEyNCB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IG1hY2FkZHI4dG9tYWNhZGRyIHwgbWFjYWRkcgooMSByb3cpCi0tLQogc3JjL2JhY2tl bmQvdXRpbHMvYWR0L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4 LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IDA4ZTQxYmE0ZWVhLi4xYzkw M2YxNTJkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDcgQEAgbWFjYWRkcjh0 b21hY2FkZHIoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSAobWFjYWRkciAqKSBwYWxsb2Mw KHNpemVvZihtYWNhZGRyKSk7CiAKIAlpZiAoKGFkZHItPmQgIT0gMHhGRikgfHwgKGFkZHItPmUg IT0gMHhGRSkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAo RGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5H RSksCiAJCQkJIGVycm1zZygibWFjYWRkcjggZGF0YSBvdXQgb2YgcmFuZ2UgdG8gY29udmVydCB0 byBtYWNhZGRyIiksCiAJCQkJIGVycmhpbnQoIk9ubHkgYWRkcmVzc2VzIHRoYXQgaGF2ZSBGRiBh bmQgRkUgYXMgdmFsdWVzIGluIHRoZSAiCi0tIAoyLjM0LjEKCg== --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0009-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v6-0009-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzkp9 RnJvbSA1ZTljZWQ5MGQyNzI0NWI5MGI4MDI5NGRkZTdjNjQ0MDVhYmQ2ZjVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgOSBBdWcgMjAyNSAyMjozNTo1NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MDkvMThdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZGF0ZSB0byBvdGhlciB0eXBlcyBwZXIKIHBn X2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBj YXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1lIGZy b20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMgYW5k IHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdkYXRlJzo6cmVndHlw ZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKY2FzdHNvdXJjZSB8ICAgICAgICAgY2Fz dHRhcmdldCAgICAgICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwg ICAgICBwcm9zcmMgICAgICB8ICAgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogZGF0ZSAgICAgICB8IHRpbWVzdGFtcCB3aXRo b3V0IHRpbWUgem9uZSB8ICAgICAyMDI0IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZGF0 ZV90aW1lc3RhbXAgICB8IHRpbWVzdGFtcAogZGF0ZSAgICAgICB8IHRpbWVzdGFtcCB3aXRoIHRp bWUgem9uZSAgICB8ICAgICAxMTc0IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZGF0ZV90 aW1lc3RhbXB0eiB8IHRpbWVzdGFtcHR6CigyIHJvd3MpCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyB8IDIyICsrKysrKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAy MCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IDM0 NGY1OGI5MmY3Li5jN2EzY2RlMmQ4MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2RhdGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0xMzUwLDcgKzEz NTAsMTYgQEAgZGF0ZV90aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXRlQURUCQlkYXRl VmFsID0gUEdfR0VUQVJHX0RBVEVBRFQoMCk7CiAJVGltZXN0YW1wCXJlc3VsdDsKIAotCXJlc3Vs dCA9IGRhdGUydGltZXN0YW1wKGRhdGVWYWwpOworCWlmIChsaWtlbHkoIWZjaW5mby0+Y29udGV4 dCkpCisJCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wKGRhdGVWYWwpOworCWVsc2UKKwl7CisJCWlu dAkJCW92ZXJmbG93OworCisJCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wX29wdF9vdmVyZmxvdyhk YXRlVmFsLCAmb3ZlcmZsb3cpOworCQlpZiAob3ZlcmZsb3cgIT0gMCkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQogCiAJUEdfUkVUVVJOX1RJTUVTVEFNUChyZXN1bHQpOwogfQpAQCAtMTQzNSw3 ICsxNDQ0LDE2IEBAIGRhdGVfdGltZXN0YW1wdHooUEdfRlVOQ1RJT05fQVJHUykKIAlEYXRlQURU CQlkYXRlVmFsID0gUEdfR0VUQVJHX0RBVEVBRFQoMCk7CiAJVGltZXN0YW1wVHogcmVzdWx0Owog Ci0JcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0eihkYXRlVmFsKTsKKwlpZiAobGlrZWx5KCFmY2lu Zm8tPmNvbnRleHQpKQorCQlyZXN1bHQgPSBkYXRlMnRpbWVzdGFtcHR6KGRhdGVWYWwpOworCWVs c2UKKwl7CisJCWludAkJCW92ZXJmbG93OworCQlyZXN1bHQgPSBkYXRlMnRpbWVzdGFtcHR6X29w dF9vdmVyZmxvdyhkYXRlVmFsLCAmb3ZlcmZsb3cpOworCisJCWlmIChvdmVyZmxvdyAhPSAwKQor CQkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7 CiB9Ci0tIAoyLjM0LjEKCg== --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0011-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v6-0011-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzkd7 RnJvbSBmZTM1OThjNjM2MzliYzgxMDUxYjAxMjdjMTViMWFlZjNlMjExNWY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgNSBBdWcgMjAyNSAxNTo0Mjo1OCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MTEvMThdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgaW5ldCB0byBvdGhlciB0eXBlcyBwZXIKIHBn X2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBj YXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1lIGZy b20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMgYW5k IHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbmV0Jzo6cmVndHlw ZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBjYXN0dGFy Z2V0ICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJvc3Jj ICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogaW5l dCAgICAgICB8IGNpZHIgICAgICAgICAgICAgIHwgICAgIDE3MTUgfCBhICAgICAgICAgICB8IGYg ICAgICAgICAgfCBpbmV0X3RvX2NpZHIgfCBjaWRyCiBpbmV0ICAgICAgIHwgdGV4dCAgICAgICAg ICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG5ldHdvcmtfc2hv dyB8IHRleHQKIGluZXQgICAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNzMwIHwgYSAg ICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19zaG93IHwgdGV4dAogaW5ldCAgICAgICB8 IGNoYXJhY3RlciAgICAgICAgIHwgICAgICA3MzAgfCBhICAgICAgICAgICB8IGYgICAgICAgICAg fCBuZXR3b3JrX3Nob3cgfCB0ZXh0Cig0IHJvd3MpCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L25ldHdvcmsuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvbmV0d29yay5jCmluZGV4IDlmZDIxMWIyZDQ1Li4wZTIwMjFi Y2MzYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvbmV0d29yay5jCkBAIC0xMTY3LDcgKzExNjcsNyBAQCBuZXR3 b3JrX3Nob3coUEdfRlVOQ1RJT05fQVJHUykKIAogCWlmIChwZ19pbmV0X25ldF9udG9wKGlwX2Zh bWlseShpcCksIGlwX2FkZHIoaXApLCBpcF9tYXhiaXRzKGlwKSwKIAkJCQkJCSB0bXAsIHNpemVv Zih0bXApKSA9PSBOVUxMKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29u dGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9CSU5BUllfUkVQ UkVTRU5UQVRJT04pLAogCQkJCSBlcnJtc2coImNvdWxkIG5vdCBmb3JtYXQgaW5ldCB2YWx1ZTog JW0iKSkpOwogCi0tIAoyLjM0LjEKCg== --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0008-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v6-0008-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzku10 RnJvbSA2YTQwOWJkYjVjNDFlZDNiMGUyYjhiNTE1MzBiZDZkNmJlMGRjOWYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgNiBBdWcgMjAyNSAxMjoxMjozMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MDgvMThdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcganNvbmIgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnanNvbmInOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3Ny YyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBq c29uYiAgICAgIHwgYm9vbGVhbiAgICAgICAgICB8ICAgICAzNTU2IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwganNvbmJfYm9vbCAgICB8IGJvb2wKIGpzb25iICAgICAgfCBudW1lcmljICAg ICAgICAgIHwgICAgIDM0NDkgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBqc29uYl9udW1l cmljIHwgbnVtZXJpYwoganNvbmIgICAgICB8IHNtYWxsaW50ICAgICAgICAgfCAgICAgMzQ1MCB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDIgICAgfCBpbnQyCiBqc29uYiAg ICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAzNDUxIHwgZSAgICAgICAgICAgfCBmICAgICAg ICAgIHwganNvbmJfaW50NCAgICB8IGludDQKIGpzb25iICAgICAgfCBiaWdpbnQgICAgICAgICAg IHwgICAgIDM0NTIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBqc29uYl9pbnQ4ICAgIHwg aW50OAoganNvbmIgICAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMzQ1MyB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGpzb25iX2Zsb2F0NCAgfCBmbG9hdDQKIGpzb25iICAgICAgfCBk b3VibGUgcHJlY2lzaW9uIHwgICAgIDI1ODAgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBq c29uYl9mbG9hdDggIHwgZmxvYXQ4Cig3IHJvd3MpCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2pzb25iLmMgfCAzNSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pz b25iLmMKaW5kZXggZGE5NGQ0MjRkNjEuLjdmMzcxNWIxNjg0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIu YwpAQCAtMjAwNCw4ICsyMDA0LDggQEAgSnNvbmJFeHRyYWN0U2NhbGFyKEpzb25iQ29udGFpbmVy ICpqYmMsIEpzb25iVmFsdWUgKnJlcykKIC8qCiAgKiBFbWl0IGNvcnJlY3QsIHRyYW5zbGF0YWJs ZSBjYXN0IGVycm9yIG1lc3NhZ2UKICAqLwotc3RhdGljIHZvaWQKLWNhbm5vdENhc3RKc29uYlZh bHVlKGVudW0gamJ2VHlwZSB0eXBlLCBjb25zdCBjaGFyICpzcWx0eXBlKQorc3RhdGljIERhdHVt CitjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3Fs dHlwZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0y MDI2LDEyICsyMDI2LDEzIEBAIGNhbm5vdENhc3RKc29uYlZhbHVlKGVudW0gamJ2VHlwZSB0eXBl LCBjb25zdCBjaGFyICpzcWx0eXBlKQogCiAJZm9yIChpID0gMDsgaSA8IGxlbmd0aG9mKG1lc3Nh Z2VzKTsgaSsrKQogCQlpZiAobWVzc2FnZXNbaV0udHlwZSA9PSB0eXBlKQotCQkJZXJlcG9ydChF UlJPUiwKKwkJCWVyZXR1cm4oZXNjb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJybXNnKG1lc3NhZ2VzW2ld Lm1zZywgc3FsdHlwZSkpKTsKIAogCS8qIHNob3VsZCBiZSB1bnJlYWNoYWJsZSAqLwogCWVsb2co RVJST1IsICJ1bmtub3duIGpzb25iIHR5cGU6ICVkIiwgKGludCkgdHlwZSk7CisJcmV0dXJuIChE YXR1bSkgMDsKIH0KIAogRGF0dW0KQEAgLTIwNDEsNyArMjA0Miw3IEBAIGpzb25iX2Jvb2woUEdf RlVOQ1RJT05fQVJHUykKIAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpzb25iRXh0cmFjdFNjYWxh cigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiYm9vbGVh biIpOworCQlyZXR1cm4gY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiYm9vbGVhbiIsIGZj aW5mby0+Y29udGV4dCk7CiAKIAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMjA1MCw3 ICsyMDUxLDcgQEAganNvbmJfYm9vbChQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2LnR5 cGUgIT0gamJ2Qm9vbCkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiYm9vbGVhbiIp OworCQlyZXR1cm4gY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiYm9vbGVhbiIsIGZjaW5m by0+Y29udGV4dCk7CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4sIDApOwogCkBAIC0yMDY1LDcgKzIw NjYsNyBAQCBqc29uYl9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJcmV0VmFs dWU7CiAKIAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90 Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIpOworCQlyZXR1cm4gY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZjaW5mby0+Y29udGV4dCk7CiAKIAlpZiAodi50 eXBlID09IGpidk51bGwpCiAJewpAQCAtMjA3NCw3ICsyMDc1LDcgQEAganNvbmJfbnVtZXJpYyhQ R19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fu bm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIpOworCQlyZXR1cm4gY2Fubm90Q2Fz dEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZjaW5mby0+Y29udGV4dCk7CiAKIAkvKgog CSAqIHYudmFsLm51bWVyaWMgcG9pbnRzIGludG8ganNvbmIgYm9keSwgc28gd2UgbmVlZCB0byBt YWtlIGEgY29weSB0bwpAQCAtMjA5NSw3ICsyMDk2LDcgQEAganNvbmJfaW50MihQR19GVU5DVElP Tl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZp bi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIp OworCQlyZXR1cm4gY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAic21hbGxpbnQiLCBmY2lu Zm8tPmNvbnRleHQpOwogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTIxMDQsNyAr MjEwNSw3IEBAIGpzb25iX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBl ICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50 Iik7CisJCXJldHVybiBjYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZj aW5mby0+Y29udGV4dCk7CiAKIAlyZXRWYWx1ZSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJp Y19pbnQyLAogCQkJCQkJCQkgICBOdW1lcmljR2V0RGF0dW0odi52YWwubnVtZXJpYykpOwpAQCAt MjEyMiw3ICsyMTIzLDcgQEAganNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQly ZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJCXJldHVybiBjYW5ub3RD YXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsKIAogCWlm ICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7CkBAIC0yMTMxLDcgKzIxMzIsNyBAQCBqc29uYl9pbnQ0 KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJCXJldHVybiBjYW5ub3RD YXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsKIAogCXJl dFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51 bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0yMTQ5LDcgKzIxNTAsNyBAQCBqc29u Yl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29u YkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgImJpZ2ludCIpOworCQlyZXR1cm4gY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi YmlnaW50IiwgZmNpbmZvLT5jb250ZXh0KTsKIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7 CkBAIC0yMTU4LDcgKzIxNTksNyBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQog CiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5 cGUsICJiaWdpbnQiKTsKKwkJcmV0dXJuIGNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJp Z2ludCIsIGZjaW5mby0+Y29udGV4dCk7CiAKIAlyZXRWYWx1ZSA9IERpcmVjdEZ1bmN0aW9uQ2Fs bDEobnVtZXJpY19pbnQ4LAogCQkJCQkJCQkgICBOdW1lcmljR2V0RGF0dW0odi52YWwubnVtZXJp YykpOwpAQCAtMjE3Niw3ICsyMTc3LDcgQEAganNvbmJfZmxvYXQ0KFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwkJcmV0dXJu IGNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQpOwog CiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTIxODUsNyArMjE4Niw3IEBAIGpzb25i X2Zsb2F0NChQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2LnR5cGUgIT0gamJ2TnVtZXJp YykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIpOworCQlyZXR1cm4gY2Fu bm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5mby0+Y29udGV4dCk7CiAKIAly ZXRWYWx1ZSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19mbG9hdDQsCiAJCQkJCQkJCSAg IE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0yMjAzLDcgKzIyMDQsNyBAQCBq c29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAo IUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFs dWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIpOworCQlyZXR1cm4gY2Fubm90Q2FzdEpzb25i VmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CiAKIAlp ZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMjIxMiw3ICsyMjEzLDcgQEAganNvbmJfZmxv YXQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQot CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJkb3VibGUgcHJlY2lzaW9uIik7CisJCXJl dHVybiBjYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJkb3VibGUgcHJlY2lzaW9uIiwgZmNp bmZvLT5jb250ZXh0KTsKIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmlj X2Zsb2F0OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKLS0g CjIuMzQuMQoK --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0006-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v6-0006-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzl512 RnJvbSA2MGM5YzhjYWM4Y2QyNDgwM2VjNzMxOWViMTlmZjRjZGQ4MzhjYjcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgOSBBdWcgMjAyNSAyMjoxNzo0OCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MDYvMThdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZmxvYXQ0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2Zsb2F0NCc6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgIHBy b3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogcmVhbCAgICAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDY1MyB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IGZ0b2k4ICAgICAgICAgIHwgaW50OAogcmVhbCAgICAgICB8IHNtYWxs aW50ICAgICAgICAgfCAgICAgIDIzOCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGZ0b2ky ICAgICAgICAgIHwgaW50MgogcmVhbCAgICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgIDMx OSB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGZ0b2k0ICAgICAgICAgIHwgaW50NAogcmVh bCAgICAgICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDMxMSB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGZ0b2QgICAgICAgICAgIHwgZmxvYXQ4CiByZWFsICAgICAgIHwgbnVtZXJpYyAg ICAgICAgICB8ICAgICAxNzQyIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZmxvYXQ0X251 bWVyaWMgfCBudW1lcmljCig1IHJvd3MpCgpmbG9hdDQgdG8gZmxvYXQ4LCBudW1lcmljIGlzIGVy cm9yIHNhZmUsIHNvIG5vIG5lZWQgcmVmYWN0b3IgZnRvZCwKZmxvYXQ0X251bWVyaWMuCi0tLQog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgfCA0ICsrLS0KIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9pbnQ4LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCA3Yjk3ZDJiZTZjYS4uYWI1YzM4 ZDcyM2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBmdG9pNChQ R19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNu YW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQoRVJST1Is CisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50ZWdlciBv dXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzIzLDcgKzEzMjMsNyBAQCBmdG9pMihQR19GVU5DVElP Tl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4obnVtKSB8 fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1 cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1F UklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0IG9mIHJh bmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggOTZhNjczN2E5NWMuLjhjMzhkMDJkMDEx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEzNDIsNyArMTM0Miw3IEBAIGZ0b2k4KFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0p IHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJh bmdlIikpKTsKIAotLSAKMi4zNC4xCgo= --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0007-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v6-0007-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzl011 RnJvbSA1YjRkODY5MjFkODUyZWZkYTI2ZTM0ODNjODVlOTJjYTc3NTgxZjljIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgOSBBdWcgMjAyNSAyMjoyNjoxMyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MDcvMThdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgZmxvYXQ4IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2Zsb2F0OCc6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICBjYXN0c291cmNlICAgIHwg Y2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgIHBy b3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogZG91YmxlIHByZWNpc2lvbiB8IGJpZ2ludCAgICAgfCAgICAgIDQ4MyB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IGR0b2k4ICAgICAgICAgIHwgaW50OAogZG91YmxlIHByZWNpc2lvbiB8 IHNtYWxsaW50ICAgfCAgICAgIDIzNyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGR0b2ky ICAgICAgICAgIHwgaW50MgogZG91YmxlIHByZWNpc2lvbiB8IGludGVnZXIgICAgfCAgICAgIDMx NyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGR0b2k0ICAgICAgICAgIHwgaW50NAogZG91 YmxlIHByZWNpc2lvbiB8IHJlYWwgICAgICAgfCAgICAgIDMxMiB8IGEgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGR0b2YgICAgICAgICAgIHwgZmxvYXQ0CiBkb3VibGUgcHJlY2lzaW9uIHwgbnVt ZXJpYyAgICB8ICAgICAxNzQzIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZmxvYXQ4X251 bWVyaWMgfCBudW1lcmljCig1IHJvd3MpCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0 LmMgfCAxMiArKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgIHwgIDIg Ky0KIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2Zsb2F0LmMKaW5kZXggYWI1YzM4ZDcyM2QuLjY0NjFlOWM5NGIxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvZmxvYXQuYwpAQCAtMTE5OSw5ICsxMTk5LDEzIEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykK IAogCXJlc3VsdCA9IChmbG9hdDQpIG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkg JiYgIWlzaW5mKG51bSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFM VUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZs b3ciKSk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjBmKSAmJiBudW0gIT0gMC4wKQotCQlm bG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAor CQkJCWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSk7CiAKIAlQR19SRVRV Uk5fRkxPQVQ0KHJlc3VsdCk7CiB9CkBAIC0xMjI0LDcgKzEyMjgsNyBAQCBkdG9pNChQR19GVU5D VElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4obnVt KSB8fCAhRkxPQVQ4X0ZJVFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVy ZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9O VU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2Yg cmFuZ2UiKSkpOwogCkBAIC0xMjQ5LDcgKzEyNTMsNyBAQCBkdG9pMihQR19GVU5DVElPTl9BUkdT KQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4obnVtKSB8fCAhRkxP QVQ4X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZB TFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikp KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggOGMzOGQwMmQwMTEuLjViZGRjY2NmMzc4IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9pbnQ4LmMKQEAgLTEzMDcsNyArMTMwNyw3IEBAIGR0b2k4KFBHX0ZVTkNUSU9OX0FS R1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFG TE9BVDhfRklUU19JTl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihm Y2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNf VkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikp KTsKIAotLSAKMi4zNC4xCgo= --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0005-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v6-0005-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzla13 RnJvbSAzNzM4YjM2MjM3ZTIxYTkzNDFhYmVhOGE1OTllN2VkN2ZhODk5MzA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgOSBBdWcgMjAyNSAyMTozMzo1NiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MDUvMThdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgbnVtZXJpYyB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdudW1lcmljJzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKY2FzdHNvdXJjZSB8ICAgIGNh c3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICBw cm9zcmMgICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0KIG51bWVyaWMgICAgfCBiaWdpbnQgICAgICAgICAgIHwgICAgIDE3NzkgfCBhICAgICAgICAg ICB8IGYgICAgICAgICAgfCBudW1lcmljX2ludDggICB8IGludDgKIG51bWVyaWMgICAgfCBzbWFs bGludCAgICAgICAgIHwgICAgIDE3ODMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1l cmljX2ludDIgICB8IGludDIKIG51bWVyaWMgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDE3 NDQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2ludDQgICB8IGludDQKIG51 bWVyaWMgICAgfCByZWFsICAgICAgICAgICAgIHwgICAgIDE3NDUgfCBpICAgICAgICAgICB8IGYg ICAgICAgICAgfCBudW1lcmljX2Zsb2F0NCB8IGZsb2F0NAogbnVtZXJpYyAgICB8IGRvdWJsZSBw cmVjaXNpb24gfCAgICAgMTc0NiB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNf ZmxvYXQ4IHwgZmxvYXQ4CiBudW1lcmljICAgIHwgbW9uZXkgICAgICAgICAgICB8ICAgICAzODI0 IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJpY19jYXNoICAgfCBtb25leQogbnVt ZXJpYyAgICB8IG51bWVyaWMgICAgICAgICAgfCAgICAgMTcwMyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IG51bWVyaWMgICAgICAgIHwgbnVtZXJpYwooNyByb3dzKQoKY3VycmVudCBzYWZl IGNhc3QgZm9yIG1vbmV5IGRhdGEgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLCBzbyBubyByZWFsdGVk IGZ1bmN0aW9uCnJlZmFjdG9yaW5nLgotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmlj LmMgfCA2OSArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA1NiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMu YwppbmRleCAxMjJmMmVmYWI4Yi4uMmFiMjZkNTllNDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMu YwpAQCAtMTI1OSw3ICsxMjU5LDggQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICov CiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFwcGx5X3R5cG1v ZF9zcGVjaWFsKG51bSwgdHlwbW9kLCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBtb2Rfc3BlY2lh bChudW0sIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9OVUxMKCk7CiAJ CVBHX1JFVFVSTl9OVU1FUklDKGR1cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0KIApAQCAtMTMx MCw3ICsxMzExLDggQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnZh cik7CiAKIAlzZXRfdmFyX2Zyb21fbnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFwcGx5X3R5cG1v ZCgmdmFyLCB0eXBtb2QsIE5VTEwpOworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5cG1vZCwg ZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAluZXcgPSBtYWtlX3Jlc3Vs dCgmdmFyKTsKIAogCWZyZWVfdmFyKCZ2YXIpOwpAQCAtNDU1MCw3ICs0NTUyLDIyIEBAIG51bWVy aWNfaW50NChQR19GVU5DVElPTl9BUkdTKQogewogCU51bWVyaWMJCW51bSA9IFBHX0dFVEFSR19O VU1FUklDKDApOwogCi0JUEdfUkVUVVJOX0lOVDMyKG51bWVyaWNfaW50NF9vcHRfZXJyb3IobnVt LCBOVUxMKSk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX0lO VDMyKG51bWVyaWNfaW50NF9vcHRfZXJyb3IobnVtLCBOVUxMKSk7CisJZWxzZQorCXsKKwkJYm9v bAloYXNfZXJyb3I7CisJCWludDMyCXJlc3VsdDsKKwkJTm9kZQkqZXNjb250ZXh0ID0gZmNpbmZv LT5jb250ZXh0OworCisJCXJlc3VsdCA9IG51bWVyaWNfaW50NF9vcHRfZXJyb3IobnVtLCAmaGFz X2Vycm9yKTsKKwkJaWYgKGhhc19lcnJvcikKKwkJCWVyZXR1cm4oZXNjb250ZXh0LCAoRGF0dW0p IDAsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJ CQkJCWVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSk7CisKKwkJUEdfUkVUVVJOX0lOVDMy KHJlc3VsdCk7CisJfQogfQogCiAvKgpAQCAtNDYzOCw3ICs0NjU1LDIyIEBAIG51bWVyaWNfaW50 OChQR19GVU5DVElPTl9BUkdTKQogewogCU51bWVyaWMJCW51bSA9IFBHX0dFVEFSR19OVU1FUklD KDApOwogCi0JUEdfUkVUVVJOX0lOVDY0KG51bWVyaWNfaW50OF9vcHRfZXJyb3IobnVtLCBOVUxM KSk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX0lOVDY0KG51 bWVyaWNfaW50OF9vcHRfZXJyb3IobnVtLCBOVUxMKSk7CisJZWxzZQorCXsKKwkJYm9vbAloYXNf ZXJyb3I7CisJCWludDY0CXJlc3VsdDsKKwkJTm9kZQkqZXNjb250ZXh0ID0gZmNpbmZvLT5jb250 ZXh0OworCisJCXJlc3VsdCA9IG51bWVyaWNfaW50OF9vcHRfZXJyb3IobnVtLCAmaGFzX2Vycm9y KTsKKwkJaWYgKGhhc19lcnJvcikKKwkJCWVyZXR1cm4oZXNjb250ZXh0LCAoRGF0dW0pIDAsCisJ CQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJCWVy cm1zZygiYmlnaW50IG91dCBvZiByYW5nZSIpKTsKKworCQlQR19SRVRVUk5fSU5UNjQocmVzdWx0 KTsKKwl9CiB9CiAKIApAQCAtNDY2MiwxMSArNDY5NCwxMSBAQCBudW1lcmljX2ludDIoUEdfRlVO Q1RJT05fQVJHUykKIAlpZiAoTlVNRVJJQ19JU19TUEVDSUFMKG51bSkpCiAJewogCQlpZiAoTlVN RVJJQ19JU19OQU4obnVtKSkKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCiAJCQkJCSBlcnJtc2coImNhbm5vdCBjb252ZXJ0IE5hTiB0byAlcyIsICJzbWFs bGludCIpKSk7CiAJCWVsc2UKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCiAJCQkJCSBlcnJtc2coImNhbm5vdCBjb252ZXJ0IGluZmluaXR5IHRvICVzIiwg InNtYWxsaW50IikpKTsKIAl9CkBAIC00Njc1LDEyICs0NzA3LDEyIEBAIG51bWVyaWNfaW50MihQ R19GVU5DVElPTl9BUkdTKQogCWluaXRfdmFyX2Zyb21fbnVtKG51bSwgJngpOwogCiAJaWYgKCFu dW1lcmljdmFyX3RvX2ludDY0KCZ4LCAmdmFsKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVy bihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVS SUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFu Z2UiKSkpOwogCiAJaWYgKHVubGlrZWx5KHZhbCA8IFBHX0lOVDE2X01JTikgfHwgdW5saWtlbHko dmFsID4gUEdfSU5UMTZfTUFYKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8t PmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVf T1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwog CkBAIC00NzQ1LDEwICs0Nzc3LDE0IEBAIG51bWVyaWNfZmxvYXQ4KFBHX0ZVTkNUSU9OX0FSR1Mp CiAKIAl0bXAgPSBEYXR1bUdldENTdHJpbmcoRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX291 dCwKIAkJCQkJCQkJCQkJICBOdW1lcmljR2V0RGF0dW0obnVtKSkpOwotCi0JcmVzdWx0ID0gRGly ZWN0RnVuY3Rpb25DYWxsMShmbG9hdDhpbiwgQ1N0cmluZ0dldERhdHVtKHRtcCkpOwotCi0JcGZy ZWUodG1wKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDhpbiwgdG1w LAorCQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZjaW5mby0+ Y29udGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJCVBHX1JF VFVSTl9OVUxMKCk7CisJfQogCiAJUEdfUkVUVVJOX0RBVFVNKHJlc3VsdCk7CiB9CkBAIC00ODQw LDcgKzQ4NzYsMTQgQEAgbnVtZXJpY19mbG9hdDQoUEdfRlVOQ1RJT05fQVJHUykKIAl0bXAgPSBE YXR1bUdldENTdHJpbmcoRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX291dCwKIAkJCQkJCQkJ CQkJICBOdW1lcmljR2V0RGF0dW0obnVtKSkpOwogCi0JcmVzdWx0ID0gRGlyZWN0RnVuY3Rpb25D YWxsMShmbG9hdDRpbiwgQ1N0cmluZ0dldERhdHVtKHRtcCkpOworCWlmICghRGlyZWN0SW5wdXRG dW5jdGlvbkNhbGxTYWZlKGZsb2F0NGluLCB0bXAsCisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLTEs CisJCQkJCQkJCQkgKE5vZGUgKikgZmNpbmZvLT5jb250ZXh0LAorCQkJCQkJCQkJICZyZXN1bHQp KQorCXsKKwkJcGZyZWUodG1wKTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlwZnJlZSh0 bXApOwogCi0tIAoyLjM0LjEKCg== --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0004-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v6-0004-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzlf14 RnJvbSA5Y2E3Y2I0NGU4MGY2NDJmMWU2MDJjZTU1MDEyYmJiYjZjY2E4MGY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgOSBBdWcgMjAyNSAyMToyNTozOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MDQvMThdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgYmlnaW50IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2JpZ2ludCc6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBi aWdpbnQgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAgNzE0IHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaW50ODIgICAgICAgIHwgaW50MgogYmlnaW50ICAgICB8IGludGVnZXIgICAg ICAgICAgfCAgICAgIDQ4MCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDg0ICAgICAg ICB8IGludDQKIGJpZ2ludCAgICAgfCByZWFsICAgICAgICAgICAgIHwgICAgICA2NTIgfCBpICAg ICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvZiAgICAgICAgfCBmbG9hdDQKIGJpZ2ludCAgICAg fCBkb3VibGUgcHJlY2lzaW9uIHwgICAgICA0ODIgfCBpICAgICAgICAgICB8IGYgICAgICAgICAg fCBpOHRvZCAgICAgICAgfCBmbG9hdDgKIGJpZ2ludCAgICAgfCBudW1lcmljICAgICAgICAgIHwg ICAgIDE3ODEgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnQ4X251bWVyaWMgfCBudW1l cmljCiBiaWdpbnQgICAgIHwgbW9uZXkgICAgICAgICAgICB8ICAgICAzODEyIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgaW50OF9jYXNoICAgIHwgbW9uZXkKIGJpZ2ludCAgICAgfCBvaWQg ICAgICAgICAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRv b2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdwcm9jICAgICAgICAgIHwgICAgIDEyODcg fCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAg ICAgfCByZWdwcm9jZWR1cmUgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAg ICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdvcGVyICAgICAgICAgIHwg ICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQK IGJpZ2ludCAgICAgfCByZWdvcGVyYXRvciAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdjbGFzcyAg ICAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAg ICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdjb2xsYXRpb24gICAgIHwgICAgIDEyODcgfCBpICAg ICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCBy ZWd0eXBlICAgICAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBp OHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdjb25maWcgICAgICAgIHwgICAgIDEy ODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2lu dCAgICAgfCByZWdkaWN0aW9uYXJ5ICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdyb2xlICAgICAgICAg IHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBv aWQKIGJpZ2ludCAgICAgfCByZWduYW1lc3BhY2UgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAg ICB8IGYgICAgICAgICAgfCBpOHRvb2lkICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCByZWdkYXRh YmFzZSAgICAgIHwgICAgIDEyODcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpOHRvb2lk ICAgICAgfCBvaWQKIGJpZ2ludCAgICAgfCBieXRlYSAgICAgICAgICAgIHwgICAgIDYzNjkgfCBl ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnQ4X2J5dGVhICAgfCBieXRlYQogYmlnaW50ICAg ICB8IGJpdCAgICAgICAgICAgICAgfCAgICAgMjA3NSB8IGUgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGJpdGZyb21pbnQ4ICB8IGJpdAooMjEgcm93cykKCmFscmVhZHkgZXJyb3Igc2FmZTogaTh0 b2YsIGk4dG9kLCBpbnQ4X251bWVyaWMsIGludDhfYnl0ZWEsIGJpdGZyb21pbnQ4Ci0tLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9pbnQ4LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCmluZGV4IDlkZDU4 ODlmMzRjLi45NmE2NzM3YTk1YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2lu dDguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCkBAIC0xMjUxLDcgKzEyNTEs NyBAQCBpbnQ4NChQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcgPSBQR19HRVRBUkdfSU5U NjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMzJfTUlOKSB8fCB1bmxpa2VseShh cmcgPiBQR19JTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9P VVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpKTsKIApA QCAtMTI3Miw3ICsxMjcyLDcgQEAgaW50ODIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2NAkJYXJn ID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IFBHX0lOVDE2X01J TikgfHwgdW5saWtlbHkoYXJnID4gUEdfSU5UMTZfTUFYKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RF X05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQg b2YgcmFuZ2UiKSkpOwogCkBAIC0xMzU1LDcgKzEzNTUsNyBAQCBpOHRvb2lkKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlmICh1bmxpa2Vs eShhcmcgPCAwKSB8fCB1bmxpa2VseShhcmcgPiBQR19VSU5UMzJfTUFYKSkKLQkJZXJlcG9ydChF UlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29k ZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJPSUQg b3V0IG9mIHJhbmdlIikpKTsKIAotLSAKMi4zNC4xCgo= --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0003-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v6-0003-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzlm15 RnJvbSBiYjY1NzdiNjQ5MWIwY2Q3ODc2MGMwNjhmYzI2NTIxNDM3NjYyNTEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgOSBBdWcgMjAyNSAyMToyMDozMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MDMvMThdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgaW50ZWdlciB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbnRlZ2VyJzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBw cm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGludGVnZXIgICAgfCBiaWdpbnQgICAgICAgICAgIHwgICAgICA0ODEgfCBpICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpbnQ0OCAgICAgICAgfCBpbnQ4CiBpbnRlZ2VyICAgIHwgc21hbGxpbnQg ICAgICAgICB8ICAgICAgMzE0IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2kyICAg ICAgIHwgaW50MgogaW50ZWdlciAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgIDMxOCB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk0dG9mICAgICAgICB8IGZsb2F0NAogaW50ZWdlciAg ICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDMxNiB8IGkgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGk0dG9kICAgICAgICB8IGZsb2F0OAogaW50ZWdlciAgICB8IG51bWVyaWMgICAgICAgICAg fCAgICAgMTc0MCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfbnVtZXJpYyB8IG51 bWVyaWMKIGludGVnZXIgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4MTEgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCBpbnQ0X2Nhc2ggICAgfCBtb25leQogaW50ZWdlciAgICB8IGJv b2xlYW4gICAgICAgICAgfCAgICAgMjU1NyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGlu dDRfYm9vbCAgICB8IGJvb2wKIGludGVnZXIgICAgfCBieXRlYSAgICAgICAgICAgIHwgICAgIDYz NjggfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnQ0X2J5dGVhICAgfCBieXRlYQogaW50 ZWdlciAgICB8ICJjaGFyIiAgICAgICAgICAgfCAgICAgICA3OCB8IGUgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGk0dG9jaGFyICAgICB8IGNoYXIKIGludGVnZXIgICAgfCBiaXQgICAgICAgICAg ICAgIHwgICAgIDE2ODMgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBiaXRmcm9taW50NCAg fCBiaXQKKDEwIHJvd3MpCgpvbmx5IGludDRfY2FzaCwgaTR0b2kyLCBpNHRvY2hhciBuZWVkIHRh a2UgY2FyZSBvZiBlcnJvciBoYW5kbGluZy4gIGJ1dCBzdXBwb3J0CmZvciBjYXNoIGRhdGEgdHlw ZSBpcyBub3QgZWFzeSwgc28gb25seSBpNHRvaTIsIGk0dG9jaGFyIGZ1bmN0aW9uIHJlZmFjdG9y aW5nLgotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMgfCAyICstCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvaW50LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2No YXIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXggMjJkYmZjOTUwYjEuLmU5 MDg0NGEyOWYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBpNHRvY2hh cihQR19GVU5DVElPTl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VUQVJHX0lOVDMyKDApOwog CiAJaWYgKGFyZzEgPCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01BWCkKLQkJZXJlcG9ydChF UlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29k ZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNo YXJcIiBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvaW50LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggYjU3ODE5ODlhNjQu LmI0NTU5OWQ0MDJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNTAsNyArMzUwLDcgQEAgaTR0b2ky KFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAK IAlpZiAodW5saWtlbHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2VseShhcmcxID4gU0hSVF9N QVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVt KSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAog CQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v6-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzlv17 RnJvbSBlZmMzN2U5NTZjMGFmMmQwYTI1NWI4ZjA0N2Y2OGQ4YjY3Nzg0NzYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNCBBdWcgMjAyNSAyMDoxMTo1MyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MDEvMThdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgYnl0ZWEgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZQpm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdieXRlYSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2FzdHRhcmdl dCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICBwcm9zcmMgICB8IHBy b25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJ5dGVhICAgICAgfCBzbWFsbGlu dCAgIHwgICAgIDYzNzAgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQyIHwg aW50MgogYnl0ZWEgICAgICB8IGludGVnZXIgICAgfCAgICAgNjM3MSB8IGUgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGJ5dGVhX2ludDQgfCBpbnQ0CiBieXRlYSAgICAgIHwgYmlnaW50ICAgICB8 ICAgICA2MzcyIHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgYnl0ZWFfaW50OCB8IGludDgK KDMgcm93cykKLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYyB8IDYgKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2J5dGVhLmMKaW5kZXggNmU3YjkxNGM1NjMuLmY0M2FkNmI0YWZmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0 ZWEuYwpAQCAtMTAyNyw3ICsxMDI3LDcgQEAgYnl0ZWFfaW50MihQR19GVU5DVElPTl9BUkdTKQog CiAJLyogQ2hlY2sgdGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAo bGVuID4gc2l6ZW9mKHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZv LT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVf T1VUX09GX1JBTkdFKSwKIAkJCQllcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKTsKIApA QCAtMTA1Miw3ICsxMDUyLDcgQEAgYnl0ZWFfaW50NChQR19GVU5DVElPTl9BUkdTKQogCiAJLyog Q2hlY2sgdGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4g c2l6ZW9mKHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250 ZXh0LCAoRGF0dW0pIDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQllcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpOwogCkBAIC0xMDc3 LDcgKzEwNzcsNyBAQCBieXRlYV9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0 aGF0IHRoZSBieXRlIGFycmF5IGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChsZW4gPiBzaXplb2Yo cmVzdWx0KSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCWVycm1zZygiYmlnaW50IG91dCBvZiByYW5nZSIpKTsKIAotLSAKMi4zNC4xCgo= --0000000000007cc857063c10e7e3 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0002-error-safe-for-casting-character-to-other-types-per-pg_ca.patch" Content-Disposition: attachment; filename="v6-0002-error-safe-for-casting-character-to-other-types-per-pg_ca.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_me6pwzlq16 RnJvbSA0ZDBmYzk1YjFmYzk2OTBiN2E2MzFiOThkM2QwZjM5MmEyYTI5M2JkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgOSBBdWcgMjAyNSAxNzo0OTowNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MDIvMThdIGVycm9yIHNhZmUgZm9yIGNhc3RpbmcgY2hhcmFjdGVyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0nY2hhcmFjdGVy Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAg ICBjYXN0dGFyZ2V0ICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwg ICBwcm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0KIGNoYXJhY3RlciAgfCB0ZXh0ICAgICAgICAgICAgICB8ICAgICAgNDAxIHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgcnRyaW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgY2hhcmFj dGVyIHZhcnlpbmcgfCAgICAgIDQwMSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHJ0cmlt MSAgICAgIHwgdGV4dAogY2hhcmFjdGVyICB8ICJjaGFyIiAgICAgICAgICAgIHwgICAgICA5NDQg fCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X2NoYXIgICB8IGNoYXIKIGNoYXJhY3Rl ciAgfCBuYW1lICAgICAgICAgICAgICB8ICAgICAgNDA5IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgYnBjaGFyX25hbWUgfCBuYW1lCiBjaGFyYWN0ZXIgIHwgeG1sICAgICAgICAgICAgICAg fCAgICAgMjg5NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHR0b3htbCAgIHwgeG1s CiBjaGFyYWN0ZXIgIHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDY2OCB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGJwY2hhciAgICAgIHwgYnBjaGFyCig2IHJvd3MpCgpvbmx5IHRleHR0 b3htbCwgYnBjaGFyKFBHX0ZVTkNUSU9OX0FSR1MpIG5lZWQgdGFrZSBjYXJlIG9mIGVycm9yIGhh bmRsaW5nLgpvdGhlciBhbHJlYWR5IGVycm9yIHNhZmUuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY0V4cHJJbnRlcnAuYyB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hh ci5jICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYyAgICAgICAgICAg fCAxMiArKysrKysrKy0tLS0KIHNyYy9pbmNsdWRlL3V0aWxzL3htbC5oICAgICAgICAgICAgICAg fCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IDBlMWE3NDk3NmY3Li42 N2Y0ZTAwZWFjNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRl cnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC00NTQy LDcgKzQ1NDIsNyBAQCBFeGVjRXZhbFhtbEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxT dGVwICpvcCkKIAogCQkJCSpvcC0+cmVzdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0oeG1scGFyc2Uo ZGF0YSwKIAkJCQkJCQkJCQkJCQkJIHhleHByLT54bWxvcHRpb24sCi0JCQkJCQkJCQkJCQkJCSBw cmVzZXJ2ZV93aGl0ZXNwYWNlKSk7CisJCQkJCQkJCQkJCQkJCSBwcmVzZXJ2ZV93aGl0ZXNwYWNl LCBOVUxMKSk7CiAJCQkJKm9wLT5yZXNudWxsID0gZmFsc2U7CiAJCQl9CiAJCQlicmVhazsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvdmFyY2hhci5jCmluZGV4IDNmNDBjOWRhMWEwLi41Y2I1YzhjNDZmOSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvdmFyY2hhci5jCkBAIC0zMDcsNyArMzA3LDcgQEAgYnBjaGFyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCXsKIAkJCWZvciAoaSA9IG1heG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQkJaWYg KHNbaV0gIT0gJyAnKQotCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFf UklHSFRfVFJVTkNBVElPTiksCiAJCQkJCQkJIGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9yIHR5 cGUgY2hhcmFjdGVyKCVkKSIsCiAJCQkJCQkJCQltYXhsZW4pKSk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQveG1sLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMKaW5k ZXggMTgyZThmNzVkYjcuLjFkNDIzZTBmOWEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQveG1sLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCkBAIC02NjAsNyAr NjYwLDcgQEAgdGV4dHRveG1sKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJdGV4dAkgICAqZGF0YSA9 IFBHX0dFVEFSR19URVhUX1BQKDApOwogCi0JUEdfUkVUVVJOX1hNTF9QKHhtbHBhcnNlKGRhdGEs IHhtbG9wdGlvbiwgdHJ1ZSkpOworCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShkYXRhLCB4bWxv cHRpb24sIHRydWUsIGZjaW5mby0+Y29udGV4dCkpOwogfQogCiAKQEAgLTEwMjksMTQgKzEwMjks MTggQEAgeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAogCiB4bWx0eXBlICoKLXhtbHBhcnNl KHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93 aGl0ZXNwYWNlKQoreG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxvcHRpb25f YXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UsIE5vZGUgKmVzY29udGV4dCkKIHsKICNpZmRl ZiBVU0VfTElCWE1MCiAJeG1sRG9jUHRyCWRvYzsKIAogCWRvYyA9IHhtbF9wYXJzZShkYXRhLCB4 bWxvcHRpb25fYXJnLCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLAotCQkJCQlHZXREYXRhYmFzZUVuY29k aW5nKCksIE5VTEwsIE5VTEwsIE5VTEwpOwotCXhtbEZyZWVEb2MoZG9jKTsKKwkJCQkJR2V0RGF0 YWJhc2VFbmNvZGluZygpLCBOVUxMLCBOVUxMLCBlc2NvbnRleHQpOworCWlmIChkb2MpCisJCXht bEZyZWVEb2MoZG9jKTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJ CXJldHVybiBOVUxMOwogCiAJcmV0dXJuICh4bWx0eXBlICopIGRhdGE7CiAjZWxzZQpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggYi9zcmMvaW5jbHVkZS91dGlscy94bWwuaApp bmRleCAwZDdhODE2YjlmOS4uYjNkM2YxMWZhYzQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL3htbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oCkBAIC03Myw3ICs3Myw3IEBA IGV4dGVybiB4bWx0eXBlICp4bWxjb25jYXQoTGlzdCAqYXJncyk7CiBleHRlcm4geG1sdHlwZSAq eG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAkJCQkJCSAgIERhdHVtICpuYW1lZF9hcmd2YWx1 ZSwgYm9vbCAqbmFtZWRfYXJnbnVsbCwKIAkJCQkJCSAgIERhdHVtICphcmd2YWx1ZSwgYm9vbCAq YXJnbnVsbCk7Ci1leHRlcm4geG1sdHlwZSAqeG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9u VHlwZSB4bWxvcHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UpOworZXh0ZXJuIHht bHR5cGUgKnhtbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywg Ym9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIHhtbHR5 cGUgKnhtbHBpKGNvbnN0IGNoYXIgKnRhcmdldCwgdGV4dCAqYXJnLCBib29sIGFyZ19pc19udWxs LCBib29sICpyZXN1bHRfaXNfbnVsbCk7CiBleHRlcm4geG1sdHlwZSAqeG1scm9vdCh4bWx0eXBl ICpkYXRhLCB0ZXh0ICp2ZXJzaW9uLCBpbnQgc3RhbmRhbG9uZSk7CiBleHRlcm4gYm9vbCB4bWxf aXNfZG9jdW1lbnQoeG1sdHlwZSAqYXJnKTsKLS0gCjIuMzQuMQoK --0000000000007cc857063c10e7e3--