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 1tW8fg-00ETiI-Iw for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Jan 2025 06:39:05 +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 1tW8ff-00CgiE-GA for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Jan 2025 06:39:03 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tW8ff-00Cgi6-1v for pgsql-hackers@lists.postgresql.org; Fri, 10 Jan 2025 06:39:02 +0000 Received: from mail-vk1-xa34.google.com ([2607:f8b0:4864:20::a34]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tW8fb-000rUR-12 for pgsql-hackers@lists.postgresql.org; Fri, 10 Jan 2025 06:39:02 +0000 Received: by mail-vk1-xa34.google.com with SMTP id 71dfb90a1353d-5162571e761so623302e0c.2 for ; Thu, 09 Jan 2025 22:38:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736491138; x=1737095938; 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=xKaqwxe/fsMtg9I+PozOxBLC4I/F1QnfQ1ayHACgclQ=; b=K6hKLmgaf3k8VAYZKueVhMXcH30UX0GiGgQm5msj95lyE/t32BSDS1AIwCJi8eQl4/ z7ReLUo9lx7ZtiGSisr8agm9KK/B6erNSFfg/MkZHEUB55CygkCSG62NG0/mC1+S1EWd IiKLumKXwOzrQ2HguidqVn8SdMb7JBwDuB4ACBHQF1c4oKd7VWD1B3rAsiRsqmgmil+y t57WUqtPW8lVJhZguLC0EjWK/atGjbZxYesLOETHJuo93AUVrpSwcF5X2xwogeG6d4H6 mL3ye1GAaD7wlCM+/lhi0A0UHMHnhmK3+VWmPUkWePOHk5z08Ul6JNHCshByi4IXXdP+ aeYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736491138; x=1737095938; 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=xKaqwxe/fsMtg9I+PozOxBLC4I/F1QnfQ1ayHACgclQ=; b=eKq6JvvWGo3g7JDm+HLF9dYHSJrfdCz+4RNivckOsxc7CdLfDPMdymKLBJCxKouq9y ajK0rutpOuzL+7t4gNikqlk7HHbEZgShVmUiOhIoaBiIPkr2FxIb9yhe9C/xX5CU7JET M7GirBCD+Y8Kwe/ykn+76dJmBOP3o2ZQBUzoQh129xcNGpcUrCOaIPrUNuNhpk/TWGv0 rxeln103W+EVqt6gmoU7kCkMxQ5fU8Lphbo8YgoG0OWqXhPEIL/16UwcmSIBi8oT4+d1 lfKwyPOw8IxRnPL3F8tVZYdTo6yvYzezBc9rrb1y6t5ATx4x/+oFBu5bHNKM3mylys7j hNOQ== X-Forwarded-Encrypted: i=1; AJvYcCUPW27KQ+b52FvZOPkyjHrx77fmG8IK+hzNJfCvNtwzkZcjlmRUSehWYNAWJ/pjG0sD+Jgb0ugbHtiGOWfd@lists.postgresql.org X-Gm-Message-State: AOJu0Yyhmir52baV2X4SrpkX3319oqGR2gNhmKEuNV7u8domZ0GM5t4Y 8EC+W0653dD8xmYQf3dgE6oj0ynnfVPhzfAwl+jv94LAwYXZT6P5zkbuYCqS5K+VnhsagFtdfCj BCGRIKyn0+BHfTmhIrL+BiqMyn3E= X-Gm-Gg: ASbGncuUMSbEc7sBt2Yw+K0n4zt8qGi+38VCTA5rW/6oY9ni6oUzzEj2r5fhcuPZkqg ePTmRDN4AqkgUiSb9Pd/S7zpB48nGfZkFMAXt X-Google-Smtp-Source: AGHT+IEfGT90OIqAldVTa/0yvRVI9GNwEJCmlk95QK6ayjacft49I75+Bw9wfAq4wNM4wEejAC3LdranwT8OHp+Cetw= X-Received: by 2002:a05:6122:65a9:b0:518:859e:87ae with SMTP id 71dfb90a1353d-51c6c52475cmr8482394e0c.7.1736491137748; Thu, 09 Jan 2025 22:38:57 -0800 (PST) MIME-Version: 1.0 References: <04bf425ad1b15a4daefe96c478a5253b@oss.nttdata.com> <20240206191937.72eaf0ccc20cfea37944b422@sraoss.co.jp> <76da9fcc-93c5-4053-872e-12932a95356d@uni-muenster.de> <6eac5b45-7f45-4c7a-aae1-e90db8be2e08@uni-muenster.de> <3d6b5885-16a1-475d-b56f-41701c48d9d4@uni-muenster.de> <63595e8f-a245-4335-aa22-7e449a70e210@oss.nttdata.com> <07587c36-18b3-4ccb-b5fb-579bcb04ed37@oss.nttdata.com> In-Reply-To: From: jian he Date: Fri, 10 Jan 2025 14:38:20 +0800 X-Gm-Features: AbW1kva-f0ukZrJbM1DfYmFs7TJor_Erk_Bl8xtQvVwa7DayoKX8zW_wqfTGLAA Message-ID: Subject: Re: Change COPY ... ON_ERROR ignore to ON_ERROR ignore_row To: Kirill Reshke Cc: Fujii Masao , Jim Jones , "David G. Johnston" , Yugo NAGATA , torikoshia , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000006c0071062b545960" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000006c0071062b545960 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jan 8, 2025 at 3:05=E2=80=AFPM Kirill Reshke wrote: > > So, in this version you essentially removed support for REJECT_LIMIT + > SET_TO_NULL feature? Looks like a promising change. It is more likely > to see this committed. > So, +1 on that too. > > However, v9 lacks tests for REJECT_LIMIT vs erroneous rows tests. > In short, we need this message somewhere in a regression test. > ``` > ERROR: skipped more than REJECT_LIMIT (xxx) rows due to data type > incompatibility > ``` > hi. you already answered this question. since we do not support REJECT_LIMIT+SET_TO_NULL, so these code path would not be reachable. > Also, please update commit msg with all authors and reviewers. This > will make committer job a little bit easier > commit message polished. here and there cosmetic changes. I think there are three remaining issues that may need more attention 1. Table 27.42. pg_stat_progress_copy View (pg_stat_progress_copy) column pg_stat_progress_copy.tuples_skipped now the description is "" When the ON_ERROR option is set to ignore, this value shows the number of t= uples skipped due to malformed data. When the ON_ERROR option is set to set_to_nu= ll, this value shows the number of tuples where malformed data was converted to NULL. """ now the column name tuples_skipped would not be that suitable for (on_error set_to_null). since now it is not tuple skipped, it is in a tuple some value was set to n= ull. Or we can skip progress reports for (on_error set_to_null) case. 2. The doc is not very great, I guess. 3. do we settled (on_error set_to_null) syntax. --0000000000006c0071062b545960 Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0001-extent-on_error-action-introduce-new-option-on_e.patch" Content-Disposition: attachment; filename="v10-0001-extent-on_error-action-introduce-new-option-on_e.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5qdy4ie0 RnJvbSAyZjc3YWJiYjA1OGM5NTI3MTU4MzhkMzFiMWUwNGY2NzhhMDc5ZTMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTAgSmFuIDIwMjUgMTQ6MzM6NTUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MCAxLzFdIGV4dGVudCAib25fZXJyb3IgYWN0aW9uIiwgaW50cm9kdWNlIG5ldyBvcHRpb246CiBv bl9lcnJvciBzZXRfdG9fbnVsbC4KCmR1ZSB0byBjdXJyZW50IGdyYW1tYXIsIHdlIGNhbm5vdCB1 c2UgIm9uX2Vycm9yIG51bGwiLCBzbyBpIGNob29zZSBvbl9lcnJvciBzZXRfdG9fbnVsbC4KCkFu eSBkYXRhIHR5cGUgY29udmVyc2lvbiBlcnJvcnMgZHVyaW5nIHRoZSBDT1BZIEZST00gcHJvY2Vz cyB3aWxsIHJlc3VsdCBpbiB0aGUKYWZmZWN0ZWQgY29sdW1uIGJlaW5nIHNldCB0byBOVUxMLiBU aGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIHVzaW5nCnRoZSBub24tYmluYXJ5IGZvcm1hdCBmb3Ig Q09QWSBGUk9NLiBIb3dldmVyLCB0aGUgbm90LW51bGwgY29uc3RyYWludCB3aWxsIHN0aWxsCmJl IGVuZm9yY2VkLiBJZiBhIGNvbnZlcnNpb24gZXJyb3IgbGVhZHMgdG8gYSBOVUxMIHZhbHVlIGlu IGEgY29sdW1uIHRoYXQgaGFzIGEKbm90LW51bGwgY29uc3RyYWludCwgYSBub3QtbnVsbCBjb25z dHJhaW50IHZpb2xhdGlvbiBlcnJvciB3aWxsIGJlIHRyaWdnZXJlZC4KCkEgcmVncmVzc2lvbiB0 ZXN0IGZvciBhIGRvbWFpbiB3aXRoIGEgbm90LW51bGwgY29uc3RyYWludCBoYXMgYmVlbiBhZGRl ZC4KCkF1dGhvcjogSmlhbiBIZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPiwKQXV0aG9y OiBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgoKUmV2aWV3ZWQtYnk6CkZ1 amlpIE1hc2FvIDxtYXNhby5mdWppaUBvc3MubnR0ZGF0YS5jb20+LApKaW0gSm9uZXMgPGppbS5q b25lc0B1bmktbXVlbnN0ZXIuZGU+LAoiRGF2aWQgRy4gSm9obnN0b24iIDxkYXZpZC5nLmpvaG5z dG9uQGdtYWlsLmNvbT4sCll1Z28gTkFHQVRBIDxuYWdhdGFAc3Jhb3NzLmNvLmpwPiwKdG9yaWtv c2hpYSA8dG9yaWtvc2hpYUBvc3MubnR0ZGF0YS5jb20+CgpkaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tL0NBS0ZRdXdhd3kxZTZZUjRTPWoreTdwWHFnX0R3MVdCVnJndmY9QlAzZDFfYVNm ZV8rUUBtYWlsLmdtYWlsLmNvbQotLS0KIGRvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgICAg ICAgICAgICAgfCAgOCArKy0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NvcHkuc2dtbCAgICAgICAgICAg ICAgIHwgMjcgKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYyAgICAgICAg ICAgICAgfCAgNiArKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMgICAgICAgICAg fCAzMyArKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMg ICAgIHwgNDYgKysrKysrKysrKysrKysrKystCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaCAgICAgICAg ICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oIHwg IDQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0ICAgICAgfCA2MCArKysr KysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbCAgICAg ICAgICAgfCA0NiArKysrKysrKysrKysrKysrKysKIDEwIGZpbGVzIGNoYW5nZWQsIDIwNSBpbnNl cnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9u aXRvcmluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAppbmRleCBkMGQxNzZj YzU0Li42NjM5NTYxMzg0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTU5NzUsMTAgKzU5NzUsMTAg QEAgRlJPTSBwZ19zdGF0X2dldF9iYWNrZW5kX2lkc2V0KCkgQVMgYmFja2VuZGlkOwogICAgICAg IDxzdHJ1Y3RmaWVsZD50dXBsZXNfc2tpcHBlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwv dHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIE51bWJlciBvZiB0dXBs ZXMgc2tpcHBlZCBiZWNhdXNlIHRoZXkgY29udGFpbiBtYWxmb3JtZWQgZGF0YS4KLSAgICAgICBU aGlzIGNvdW50ZXIgb25seSBhZHZhbmNlcyB3aGVuIGEgdmFsdWUgb3RoZXIgdGhhbgotICAgICAg IDxsaXRlcmFsPnN0b3A8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCB0byB0aGUgPGxpdGVyYWw+T05f RVJST1I8L2xpdGVyYWw+Ci0gICAgICAgb3B0aW9uLgorICAgICAgIFdoZW4gdGhlIDxsaXRlcmFs Pk9OX0VSUk9SPC9saXRlcmFsPiBvcHRpb24gaXMgc2V0IHRvIDxsaXRlcmFsPmlnbm9yZTwvbGl0 ZXJhbD4sCisgICAgICAgdGhpcyB2YWx1ZSBzaG93cyB0aGUgbnVtYmVyIG9mIHR1cGxlcyBza2lw cGVkIGR1ZSB0byBtYWxmb3JtZWQgZGF0YS4KKyAgICAgICBXaGVuIHRoZSA8bGl0ZXJhbD5PTl9F UlJPUjwvbGl0ZXJhbD4gb3B0aW9uIGlzIHNldCB0byA8bGl0ZXJhbD5zZXRfdG9fbnVsbDwvbGl0 ZXJhbD4sCisgICAgICAgdGhpcyB2YWx1ZSBzaG93cyB0aGUgbnVtYmVyIG9mIHR1cGxlcyB3aGVy ZSBtYWxmb3JtZWQgZGF0YSB3YXMgY29udmVydGVkIHRvIE5VTEwuCiAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY29weS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKaW5kZXggODM5NDQw MmYwOS4uNDM0NmZiMDc1NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKQEAgLTM5NCwyMyArMzk0LDM0IEBAIENP UFkgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFi bGU+IFsgKCA8cmVwbGFjZWFibGUKICAgICAgIFNwZWNpZmllcyBob3cgdG8gYmVoYXZlIHdoZW4g ZW5jb3VudGVyaW5nIGFuIGVycm9yIGNvbnZlcnRpbmcgYSBjb2x1bW4ncwogICAgICAgaW5wdXQg dmFsdWUgaW50byBpdHMgZGF0YSB0eXBlLgogICAgICAgQW4gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmVycm9yX2FjdGlvbjwvcmVwbGFjZWFibGU+IHZhbHVlIG9mCi0gICAgICA8bGl0 ZXJhbD5zdG9wPC9saXRlcmFsPiBtZWFucyBmYWlsIHRoZSBjb21tYW5kLCB3aGlsZQotICAgICAg PGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBtZWFucyBkaXNjYXJkIHRoZSBpbnB1dCByb3cgYW5k IGNvbnRpbnVlIHdpdGggdGhlIG5leHQgb25lLgorICAgICAgPGxpdGVyYWw+c3RvcDwvbGl0ZXJh bD4gbWVhbnMgZmFpbCB0aGUgY29tbWFuZCwKKyAgICAgIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJh bD4gbWVhbnMgZGlzY2FyZCB0aGUgaW5wdXQgcm93IGFuZCBjb250aW51ZSB3aXRoIHRoZSBuZXh0 IG9uZSwgYW5kCisgICAgICA8bGl0ZXJhbD5zZXRfdG9fbnVsbDwvbGl0ZXJhbD4gbWVhbnMgcmVw bGFjZSBjb2x1bW5zIGNvbnRhaW5pbmcgZXJyb25lb3VzIGlucHV0IHZhbHVlcyB3aXRoIDxsaXRl cmFsPm51bGw8L2xpdGVyYWw+IGFuZCBtb3ZlIHRvIHRoZSBuZXh0IGZpZWxkLgogICAgICAgVGhl IGRlZmF1bHQgaXMgPGxpdGVyYWw+c3RvcDwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4KICAgICAg PHBhcmE+Ci0gICAgICBUaGUgPGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBvcHRpb24gaXMgYXBw bGljYWJsZSBvbmx5IGZvciA8Y29tbWFuZD5DT1BZIEZST008L2NvbW1hbmQ+CisgICAgICBUaGUg PGxpdGVyYWw+aWdub3JlPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+c2V0X3RvX251bGw8L2xpdGVy YWw+IG9wdGlvbnMgYXJlIGFwcGxpY2FibGUgb25seSBmb3IgPGNvbW1hbmQ+Q09QWSBGUk9NPC9j b21tYW5kPgogICAgICAgd2hlbiB0aGUgPGxpdGVyYWw+Rk9STUFUPC9saXRlcmFsPiBpcyA8bGl0 ZXJhbD50ZXh0PC9saXRlcmFsPiBvciA8bGl0ZXJhbD5jc3Y8L2xpdGVyYWw+LgogICAgICA8L3Bh cmE+CiAgICAgIDxwYXJhPgotICAgICAgQSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+IG1lc3Nh Z2UgY29udGFpbmluZyB0aGUgaWdub3JlZCByb3cgY291bnQgaXMKKyAgICAgIEZvciA8bGl0ZXJh bD5pZ25vcmU8L2xpdGVyYWw+IG9wdGlvbiwKKyAgICAgIGEgPGxpdGVyYWw+Tk9USUNFPC9saXRl cmFsPiBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIGlnbm9yZWQgcm93IGNvdW50IGlzCiAgICAgICBl bWl0dGVkIGF0IHRoZSBlbmQgb2YgdGhlIDxjb21tYW5kPkNPUFkgRlJPTTwvY29tbWFuZD4gaWYg YXQgbGVhc3Qgb25lCi0gICAgICByb3cgd2FzIGRpc2NhcmRlZC4gV2hlbiA8bGl0ZXJhbD5MT0df VkVSQk9TSVRZPC9saXRlcmFsPiBvcHRpb24gaXMgc2V0IHRvCi0gICAgICA8bGl0ZXJhbD52ZXJi b3NlPC9saXRlcmFsPiwgYSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+IG1lc3NhZ2UKKyAgICAg IHJvdyB3YXMgZGlzY2FyZGVkLgorICAgICAgRm9yIDxsaXRlcmFsPnNldF90b19udWxsPC9saXRl cmFsPiBvcHRpb24sCisgICAgICBhIDxsaXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4gbWVzc2FnZSBj b250YWluaW5nIHRoZSByb3cgY291bnQgdGhhdCBlcnJvbmVvdXMgaW5wdXQgdmFsdWVzIHJlcGxh Y2VkIGJ5IHRvIG51bGwgaGFwcGVuZWQgaXMKKyAgICAgIGVtaXR0ZWQgYXQgdGhlIGVuZCBvZiB0 aGUgPGNvbW1hbmQ+Q09QWSBGUk9NPC9jb21tYW5kPiBpZiBhdCBsZWFzdCBvbmUgcm93IHdhcyBy ZXBsYWNlZC4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgV2hlbiA8bGl0ZXJh bD5MT0dfVkVSQk9TSVRZPC9saXRlcmFsPiBvcHRpb24gaXMgc2V0IHRvCisgICAgICA8bGl0ZXJh bD52ZXJib3NlPC9saXRlcmFsPiwgZm9yIDxsaXRlcmFsPmlnbm9yZTwvbGl0ZXJhbD4gb3B0aW9u LCBhIDxsaXRlcmFsPk5PVElDRTwvbGl0ZXJhbD4gbWVzc2FnZQogICAgICAgY29udGFpbmluZyB0 aGUgbGluZSBvZiB0aGUgaW5wdXQgZmlsZSBhbmQgdGhlIGNvbHVtbiBuYW1lIHdob3NlIGlucHV0 Ci0gICAgICBjb252ZXJzaW9uIGhhcyBmYWlsZWQgaXMgZW1pdHRlZCBmb3IgZWFjaCBkaXNjYXJk ZWQgcm93LgorICAgICAgY29udmVyc2lvbiBoYXMgZmFpbGVkIGlzIGVtaXR0ZWQgZm9yIGVhY2gg ZGlzY2FyZGVkIHJvdzsKKyAgICAgIGZvciA8bGl0ZXJhbD5zZXRfdG9fbnVsbDwvbGl0ZXJhbD4g b3B0aW9uLAorICAgICAgYSA8bGl0ZXJhbD5OT1RJQ0U8L2xpdGVyYWw+IG1lc3NhZ2Ugc3BlY2lm aWVzIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgaW5wdXQgZmlsZSBhbmQgY29sdW1uIG5hbWUKKyAg ICAgIHdoZXJlIHRoZSBpbnB1dCB2YWx1ZSB3YXMgcmVwbGFjZWQgd2l0aCBOVUxMIGR1ZSB0byBp bnB1dCBjb252ZXJzaW9uIGZhaWx1cmUuCiAgICAgICBXaGVuIGl0IGlzIHNldCB0byA8bGl0ZXJh bD5zaWxlbnQ8L2xpdGVyYWw+LCBubyBtZXNzYWdlIGlzIGVtaXR0ZWQKLSAgICAgIHJlZ2FyZGlu ZyBpZ25vcmVkIHJvd3MuCisgICAgICByZWdhcmRpbmcgaW5wdXQgY29udmVyc2lvbiBmYWlsZWQg cm93cy4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvcHkuYwppbmRleCBjZmNhOWQ5ZGMyLi5hZmU2MDc1OGQ0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29w eS5jCkBAIC00MDMsMTIgKzQwMywxNCBAQCBkZWZHZXRDb3B5T25FcnJvckNob2ljZShEZWZFbGVt ICpkZWYsIFBhcnNlU3RhdGUgKnBzdGF0ZSwgYm9vbCBpc19mcm9tKQogCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBkZWYtPmxvY2F0aW9uKSkpOwogCiAJLyoKLQkgKiBBbGxvdyAic3Rv cCIsIG9yICJpZ25vcmUiIHZhbHVlcy4KKwkgKiBBbGxvdyAic3RvcCIsICJpZ25vcmUiLCAic2V0 X3RvX251bGwiIHZhbHVlcy4KIAkgKi8KIAlpZiAocGdfc3RyY2FzZWNtcChzdmFsLCAic3RvcCIp ID09IDApCiAJCXJldHVybiBDT1BZX09OX0VSUk9SX1NUT1A7CiAJaWYgKHBnX3N0cmNhc2VjbXAo c3ZhbCwgImlnbm9yZSIpID09IDApCiAJCXJldHVybiBDT1BZX09OX0VSUk9SX0lHTk9SRTsKKwlp ZiAocGdfc3RyY2FzZWNtcChzdmFsLCAic2V0X3RvX251bGwiKSA9PSAwKQorCQlyZXR1cm4gQ09Q WV9PTl9FUlJPUl9OVUxMOwogCiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLApAQCAtOTE4LDcgKzkyMCw3IEBAIFByb2Nlc3NDb3B5 T3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAogCQkJCSBlcnJtc2coIm9ubHkgT05fRVJST1IgU1RPUCBpcyBhbGxvd2VkIGluIEJJ TkFSWSBtb2RlIikpKTsKIAotCWlmIChvcHRzX291dC0+cmVqZWN0X2xpbWl0ICYmICFvcHRzX291 dC0+b25fZXJyb3IpCisJaWYgKG9wdHNfb3V0LT5yZWplY3RfbGltaXQgJiYgb3B0c19vdXQtPm9u X2Vycm9yICE9IENPUFlfT05fRVJST1JfSUdOT1JFKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkvKi0gdHJhbnNsYXRv cjogZmlyc3QgYW5kIHNlY29uZCAlcyBhcmUgdGhlIG5hbWVzIG9mIENPUFkgb3B0aW9uLCBlLmcu CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvY29weWZyb20uYwppbmRleCAwY2JkMDVmNTYwLi4zM2JkNjc3NjdlIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2NvcHlmcm9tLmMKQEAgLTEwMjksNiArMTAyOSwxMCBAQCBDb3B5RnJvbShDb3B5 RnJvbVN0YXRlIGNzdGF0ZSkKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJLyogUmVwb3J0IHRoYXQg dGhpcyB0dXBsZSBzb21lIHZhbHVlIHdhcyByZXBsYWNlZCB3aXRoIE5VTEwgYnkgdGhlIE9OX0VS Uk9SIGNsYXVzZSAqLworCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJS T1JfTlVMTCAmJiBjc3RhdGUtPm51bV9lcnJvcnMgPiAwKQorCQkJcGdzdGF0X3Byb2dyZXNzX3Vw ZGF0ZV9wYXJhbShQUk9HUkVTU19DT1BZX1RVUExFU19TS0lQUEVELAorCQkJCQkJCQkJCSBjc3Rh dGUtPm51bV9lcnJvcnMpOwogCQlFeGVjU3RvcmVWaXJ0dWFsVHVwbGUobXlzbG90KTsKIAogCQkv KgpAQCAtMTMyMSwxNCArMTMyNSwyMiBAQCBDb3B5RnJvbShDb3B5RnJvbVN0YXRlIGNzdGF0ZSkK IAkvKiBEb25lLCBjbGVhbiB1cCAqLwogCWVycm9yX2NvbnRleHRfc3RhY2sgPSBlcnJjYWxsYmFj ay5wcmV2aW91czsKIAotCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgIT0gQ09QWV9PTl9FUlJP Ul9TVE9QICYmCi0JCWNzdGF0ZS0+bnVtX2Vycm9ycyA+IDAgJiYKKwlpZiAoY3N0YXRlLT5udW1f ZXJyb3JzID4gMCAmJgogCQljc3RhdGUtPm9wdHMubG9nX3ZlcmJvc2l0eSA+PSBDT1BZX0xPR19W RVJCT1NJVFlfREVGQVVMVCkKLQkJZXJlcG9ydChOT1RJQ0UsCi0JCQkJZXJybXNnX3BsdXJhbCgi JWxsdSByb3cgd2FzIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkiLAot CQkJCQkJCSAgIiVsbHUgcm93cyB3ZXJlIHNraXBwZWQgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBh dGliaWxpdHkiLAotCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgY3N0YXRlLT5udW1fZXJy b3JzLAotCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgY3N0YXRlLT5udW1fZXJyb3JzKSk7 CisJeworCQlpZiAoY3N0YXRlLT5vcHRzLm9uX2Vycm9yID09IENPUFlfT05fRVJST1JfSUdOT1JF KQorCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCWVycm1zZ19wbHVyYWwoIiVsbHUgcm93IHdhcyBz a2lwcGVkIGR1ZSB0byBkYXRhIHR5cGUgaW5jb21wYXRpYmlsaXR5IiwKKwkJCQkJCQkJICAiJWxs dSByb3dzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZGF0YSB0eXBlIGluY29tcGF0aWJpbGl0eSIsCisJ CQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgY3N0YXRlLT5udW1fZXJyb3JzLAorCQkJCQkJ CQkgICh1bnNpZ25lZCBsb25nIGxvbmcpIGNzdGF0ZS0+bnVtX2Vycm9ycykpOworCQllbHNlIGlm IChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9OVUxMKQorCQkJZXJlcG9y dChOT1RJQ0UsCisJCQkJCWVycm1zZ19wbHVyYWwoIkVycm9uZW91cyB2YWx1ZXMgaW4gJWxsdSBy b3cgd2FzIHJlcGxhY2VkIHdpdGggTlVMTCIsCisJCQkJCQkJCSAgIkVycm9uZW91cyB2YWx1ZXMg aW4gJWxsdSByb3dzIHdlcmUgcmVwbGFjZWQgd2l0aCBOVUxMIiwKKwkJCQkJCQkJICAodW5zaWdu ZWQgbG9uZyBsb25nKSBjc3RhdGUtPm51bV9lcnJvcnMsCisJCQkJCQkJCSAgKHVuc2lnbmVkIGxv bmcgbG9uZykgY3N0YXRlLT5udW1fZXJyb3JzKSk7CisJfQogCiAJaWYgKGJpc3RhdGUgIT0gTlVM TCkKIAkJRnJlZUJ1bGtJbnNlcnRTdGF0ZShiaXN0YXRlKTsKQEAgLTE0NzQsMTAgKzE0ODYsMTEg QEAgQmVnaW5Db3B5RnJvbShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCWNzdGF0ZS0+ZXNjb250ZXh0 LT5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOwogCiAJCS8qCi0JCSAqIEN1cnJlbnRseSB3ZSBvbmx5 IHN1cHBvcnQgQ09QWV9PTl9FUlJPUl9JR05PUkUuIFdlJ2xsIGFkZCBvdGhlcgotCQkgKiBvcHRp b25zIGxhdGVyCisJCSAqIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgQ09QWV9PTl9FUlJPUl9J R05PUkUsIENPUFlfT05fRVJST1JfTlVMTC4KKwkJICogV2UnbGwgYWRkIG90aGVyIG9wdGlvbnMg bGF0ZXIKIAkJICovCi0JCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJP Ul9JR05PUkUpCisJCWlmIChjc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9J R05PUkUgfHwKKwkJCWNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX05VTEwp CiAJCQljc3RhdGUtPmVzY29udGV4dC0+ZGV0YWlsc193YW50ZWQgPSBmYWxzZTsKIAl9CiAJZWxz ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJzZS5jCmluZGV4IGNhY2NkYzg1NjMuLjhkNWFi MDg0OTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbXBhcnNlLmMKQEAgLTg3MSw2ICs4NzEs NyBAQCBOZXh0Q29weUZyb20oQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICplY29u dGV4dCwKIAkJaW50CQkJZmxkY3Q7CiAJCWludAkJCWZpZWxkbm87CiAJCWNoYXIJICAgKnN0cmlu ZzsKKwkJYm9vbAkJY3VycmVudF9yb3dfZXJyb25lb3VzID0gZmFsc2U7CiAKIAkJLyogcmVhZCBy YXcgZmllbGRzIGluIHRoZSBuZXh0IGxpbmUgKi8KIAkJaWYgKCFOZXh0Q29weUZyb21SYXdGaWVs ZHMoY3N0YXRlLCAmZmllbGRfc3RyaW5ncywgJmZsZGN0KSkKQEAgLTk0OSw3ICs5NTAsOCBAQCBO ZXh0Q29weUZyb20oQ29weUZyb21TdGF0ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwK IAogCQkJLyoKIAkJCSAqIElmIE9OX0VSUk9SIGlzIHNwZWNpZmllZCB3aXRoIElHTk9SRSwgc2tp cCByb3dzIHdpdGggc29mdAotCQkJICogZXJyb3JzCisJCQkgKiBlcnJvcnMuIElmIE9OX0VSUk9S IGlzIHNwZWNpZmllZCB3aXRoIHNldF90b19udWxsLCB0cnkKKwkJCSAqIHRvIHJlcGxhY2Ugd2l0 aCBOVUxMLgogCQkJICovCiAJCQllbHNlIGlmICghSW5wdXRGdW5jdGlvbkNhbGxTYWZlKCZpbl9m dW5jdGlvbnNbbV0sCiAJCQkJCQkJCQkJCXN0cmluZywKQEAgLTk2MCw5ICs5NjIsNDcgQEAgTmV4 dENvcHlGcm9tKENvcHlGcm9tU3RhdGUgY3N0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsCiAJ CQl7CiAJCQkJQXNzZXJ0KGNzdGF0ZS0+b3B0cy5vbl9lcnJvciAhPSBDT1BZX09OX0VSUk9SX1NU T1ApOwogCisJCQkJaWYgKGNzdGF0ZS0+b3B0cy5vbl9lcnJvciA9PSBDT1BZX09OX0VSUk9SX05V TEwpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiB3ZSB1c2UgdGhpcyBjb3VudCB0aGUgbnVtYmVy IG9mIHJvd3MgKG5vdCBmaWVsZHMpIHRoYXQKKwkJCQkJICogc3VjY2Vzc2Z1bGx5IGFwcGxpZWQg dGhlIG9uX2Vycm9yIHNldF90b19udWxsCisJCQkJCSovCisJCQkJCWlmICghY3VycmVudF9yb3df ZXJyb25lb3VzKQorCQkJCQkJY3VycmVudF9yb3dfZXJyb25lb3VzID0gdHJ1ZTsKKworCQkJCQkv KgorCQkJCQkgKiB3ZSBuZWVkIGFub3RoZXIgSW5wdXRGdW5jdGlvbkNhbGxTYWZlIHNvIHdlIGNh biBlcnJvciBvdXQKKwkJCQkJICogbm90LW51bGwgdmlvbGF0aW9uIGZvciBkb21haW4gd2l0aCBu b3QtbnVsbCBjb25zdHJhaW50LgorCQkJCQkqLworCQkJCQljc3RhdGUtPmVzY29udGV4dC0+ZXJy b3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJCQkJaWYgKElucHV0RnVuY3Rpb25DYWxsU2FmZSgmaW5f ZnVuY3Rpb25zW21dLAorCQkJCQkJCQkJCQkgIE5VTEwsCisJCQkJCQkJCQkJCSAgdHlwaW9wYXJh bXNbbV0sCisJCQkJCQkJCQkJCSAgYXR0LT5hdHR0eXBtb2QsCisJCQkJCQkJCQkJCSAgKE5vZGUg KikgY3N0YXRlLT5lc2NvbnRleHQsCisJCQkJCQkJCQkJCSAgJnZhbHVlc1ttXSkpCisJCQkJCXsK KwkJCQkJCW51bGxzW21dID0gdHJ1ZTsKKwkJCQkJCXZhbHVlc1ttXSA9IChEYXR1bSkgMDsKKwkJ CQkJCWlmIChjc3RhdGUtPm9wdHMubG9nX3ZlcmJvc2l0eSA9PSBDT1BZX0xPR19WRVJCT1NJVFlf VkVSQk9TRSkKKwkJCQkJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJCQkJCWVycm1zZygiY29sdW1u IFwiJXNcIiB3YXMgc2V0IHRvIE5VTEwgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkg YXQgbGluZSAlbGx1IiwKKwkJCQkJCQkJCQkJY3N0YXRlLT5jdXJfYXR0bmFtZSwKKwkJCQkJCQkJ CQkJKHVuc2lnbmVkIGxvbmcgbG9uZykgY3N0YXRlLT5jdXJfbGluZW5vKSk7CisJCQkJCQljb250 aW51ZTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQll cnJjb2RlKEVSUkNPREVfTk9UX05VTExfVklPTEFUSU9OKSwKKwkJCQkJCQkJZXJybXNnKCJkb21h aW4gJXMgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMiLCBmb3JtYXRfdHlwZV9iZSh0eXBpb3Bh cmFtc1ttXSkpLAorCQkJCQkJCQllcnJkYXRhdHlwZSh0eXBpb3BhcmFtc1ttXSkpOworCQkJCX0K KwogCQkJCWNzdGF0ZS0+bnVtX2Vycm9ycysrOwogCi0JCQkJaWYgKGNzdGF0ZS0+b3B0cy5sb2df dmVyYm9zaXR5ID09IENPUFlfTE9HX1ZFUkJPU0lUWV9WRVJCT1NFKQorCQkJCWlmIChjc3RhdGUt Pm9wdHMubG9nX3ZlcmJvc2l0eSA9PSBDT1BZX0xPR19WRVJCT1NJVFlfVkVSQk9TRSAmJgorCQkJ CQljc3RhdGUtPm9wdHMub25fZXJyb3IgPT0gQ09QWV9PTl9FUlJPUl9JR05PUkUpCiAJCQkJewog CQkJCQkvKgogCQkJCQkgKiBTaW5jZSB3ZSBlbWl0IGxpbmUgbnVtYmVyIGFuZCBjb2x1bW4gaW5m byBpbiB0aGUgYmVsb3cKQEAgLTEwMDEsNiArMTA0MSw4IEBAIE5leHRDb3B5RnJvbShDb3B5RnJv bVN0YXRlIGNzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LAogCQkJY3N0YXRlLT5jdXJfYXR0 dmFsID0gTlVMTDsKIAkJfQogCisJCWlmIChjdXJyZW50X3Jvd19lcnJvbmVvdXMpCisJCQljc3Rh dGUtPm51bV9lcnJvcnMrKzsKIAkJQXNzZXJ0KGZpZWxkbm8gPT0gYXR0cl9jb3VudCk7CiAJfQog CWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA4MWNiZjEwYWEyLi4wNGExNTVhZDVmIDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0zMjUwLDcgKzMyNTAsNyBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiRk9STUFUIiwgIkZSRUVa RSIsICJERUxJTUlURVIiLCAiTlVMTCIsCiAJCQkJCSAgIkhFQURFUiIsICJRVU9URSIsICJFU0NB UEUiLCAiRk9SQ0VfUVVPVEUiLAogCQkJCQkgICJGT1JDRV9OT1RfTlVMTCIsICJGT1JDRV9OVUxM IiwgIkVOQ09ESU5HIiwgIkRFRkFVTFQiLAotCQkJCQkgICJPTl9FUlJPUiIsICJMT0dfVkVSQk9T SVRZIik7CisJCQkJCSAgIk9OX0VSUk9SIiwgIlNFVF9UT19OVUxMIiwgIkxPR19WRVJCT1NJVFki KTsKIAogCS8qIENvbXBsZXRlIENPUFkgPHN0aD4gRlJPTXxUTyBmaWxlbmFtZSBXSVRIIChGT1JN QVQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDT1BZfFxcY29weSIsIE1hdGNoQW55LCAiRlJPTXxU TyIsIE1hdGNoQW55LCAiV0lUSCIsICIoIiwgIkZPUk1BVCIpKQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvY29weS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oCmluZGV4 IDA2ZGZkZmVmNzIuLjdlYmY0Zjc4OTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRz L2NvcHkuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5LmgKQEAgLTM4LDYgKzM4LDcg QEAgdHlwZWRlZiBlbnVtIENvcHlPbkVycm9yQ2hvaWNlCiB7CiAJQ09QWV9PTl9FUlJPUl9TVE9Q ID0gMCwJCS8qIGltbWVkaWF0ZWx5IHRocm93IGVycm9ycywgZGVmYXVsdCAqLwogCUNPUFlfT05f RVJST1JfSUdOT1JFLAkJLyogaWdub3JlIGVycm9ycyAqLworCUNPUFlfT05fRVJST1JfTlVMTCwJ CQkvKiBzZXQgZXJyb3IgZmllbGQgdG8gbnVsbCAqLwogfSBDb3B5T25FcnJvckNob2ljZTsKIAog LyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHlmcm9tX2ludGVybmFsLmgg Yi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oCmluZGV4IDFkOGFjOGY2 MmUuLjUwNzU5ZWFmMWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHlmcm9t X2ludGVybmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weWZyb21faW50ZXJuYWwu aApAQCAtOTgsNyArOTgsOSBAQCB0eXBlZGVmIHN0cnVjdCBDb3B5RnJvbVN0YXRlRGF0YQogCUVy cm9yU2F2ZUNvbnRleHQgKmVzY29udGV4dDsJLyogc29mdCBlcnJvciB0cmFwcGVkIGR1cmluZyBp bl9mdW5jdGlvbnMKIAkJCQkJCQkJCSAqIGV4ZWN1dGlvbiAqLwogCXVpbnQ2NAkJbnVtX2Vycm9y czsJCS8qIHRvdGFsIG51bWJlciBvZiByb3dzIHdoaWNoIGNvbnRhaW5lZCBzb2Z0Ci0JCQkJCQkJ CSAqIGVycm9ycyAqLworCQkJCQkJCQkgKiBlcnJvcnMsIGZvciBPTl9FUlJPUiBzZXRfdG9fbnVs bCwgaXQncyB0aGUKKwkJCQkJCQkJICogbnVtYmVyIG9mIHJvd3Mgc3VjY2Vzc2Z1bGx5IGNvbnZl cnRlZCB0byBudWxsCisJCQkJCQkJCSovCiAJaW50CQkgICAqZGVmbWFwOwkJCS8qIGFycmF5IG9m IGRlZmF1bHQgYXR0IG51bWJlcnMgcmVsYXRlZCB0bwogCQkJCQkJCQkgKiBtaXNzaW5nIGF0dCAq LwogCUV4cHJTdGF0ZSAqKmRlZmV4cHJzOwkJLyogYXJyYXkgb2YgZGVmYXVsdCBhdHQgZXhwcmVz c2lvbnMgZm9yIGFsbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5 Mi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAppbmRleCA2NGVhMzNh ZWFlLi4zNzdiZTViOTlkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nv cHkyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dApAQCAtODEs NiArODEsMTAgQEAgQ09QWSB4IGZyb20gc3RkaW4gKG9uX2Vycm9yIGlnbm9yZSwgb25fZXJyb3Ig aWdub3JlKTsKIEVSUk9SOiAgY29uZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMKIExJTkUg MTogQ09QWSB4IGZyb20gc3RkaW4gKG9uX2Vycm9yIGlnbm9yZSwgb25fZXJyb3IgaWdub3JlKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorQ09QWSB4IGZy b20gc3RkaW4gKG9uX2Vycm9yIHNldF90b19udWxsLCBvbl9lcnJvciBpZ25vcmUpOworRVJST1I6 ICBjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucworTElORSAxOiBDT1BZIHggZnJvbSBz dGRpbiAob25fZXJyb3Igc2V0X3RvX251bGwsIG9uX2Vycm9yIGlnbm9yZSk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogQ09QWSB4IGZyb20gc3Rk aW4gKGxvZ192ZXJib3NpdHkgZGVmYXVsdCwgbG9nX3ZlcmJvc2l0eSB2ZXJib3NlKTsKIEVSUk9S OiAgY29uZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMKIExJTkUgMTogQ09QWSB4IGZyb20g c3RkaW4gKGxvZ192ZXJib3NpdHkgZGVmYXVsdCwgbG9nX3ZlcmJvc2l0eSB2ZXJiLi4uCkBAIC05 Miw2ICs5NiwxMCBAQCBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgbnVsbCAneCcp OwogRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSBOVUxMIGluIEJJTkFSWSBtb2RlCiBDT1BZIHggZnJv bSBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgb25fZXJyb3IgaWdub3JlKTsKIEVSUk9SOiAgb25seSBP Tl9FUlJPUiBTVE9QIGlzIGFsbG93ZWQgaW4gQklOQVJZIG1vZGUKK0NPUFkgeCBmcm9tIHN0ZGlu IChmb3JtYXQgQklOQVJZLCBvbl9lcnJvciBzZXRfdG9fbnVsbCk7CitFUlJPUjogIG9ubHkgT05f RVJST1IgU1RPUCBpcyBhbGxvd2VkIGluIEJJTkFSWSBtb2RlCitDT1BZIHggRlJPTSBzdGRpbiAo b25fZXJyb3Igc2V0X3RvX251bGwsIHJlamVjdF9saW1pdCAyKTsKK0VSUk9SOiAgQ09QWSBSRUpF Q1RfTElNSVQgcmVxdWlyZXMgT05fRVJST1IgdG8gYmUgc2V0IHRvIElHTk9SRQogQ09QWSB4IGZy b20gc3RkaW4gKG9uX2Vycm9yIHVuc3VwcG9ydGVkKTsKIEVSUk9SOiAgQ09QWSBPTl9FUlJPUiAi dW5zdXBwb3J0ZWQiIG5vdCByZWNvZ25pemVkCiBMSU5FIDE6IENPUFkgeCBmcm9tIHN0ZGluIChv bl9lcnJvciB1bnN1cHBvcnRlZCk7CkBAIC0xMjQsNiArMTMyLDEwIEBAIENPUFkgeCB0byBzdGRv dXQgKGZvcm1hdCBCSU5BUlksIG9uX2Vycm9yIHVuc3VwcG9ydGVkKTsKIEVSUk9SOiAgQ09QWSBP Tl9FUlJPUiBjYW5ub3QgYmUgdXNlZCB3aXRoIENPUFkgVE8KIExJTkUgMTogQ09QWSB4IHRvIHN0 ZG91dCAoZm9ybWF0IEJJTkFSWSwgb25fZXJyb3IgdW5zdXBwb3J0ZWQpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitDT1BZIHggdG8gc3RkaW4gKG9uX2Vycm9y IHNldF90b19udWxsKTsKK0VSUk9SOiAgQ09QWSBPTl9FUlJPUiBjYW5ub3QgYmUgdXNlZCB3aXRo IENPUFkgVE8KK0xJTkUgMTogQ09QWSB4IHRvIHN0ZGluIChvbl9lcnJvciBzZXRfdG9fbnVsbCk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgXgogQ09QWSB4IGZyb20gc3RkaW4gKGxvZ192ZXJi b3NpdHkgdW5zdXBwb3J0ZWQpOwogRVJST1I6ICBDT1BZIExPR19WRVJCT1NJVFkgInVuc3VwcG9y dGVkIiBub3QgcmVjb2duaXplZAogTElORSAxOiBDT1BZIHggZnJvbSBzdGRpbiAobG9nX3ZlcmJv c2l0eSB1bnN1cHBvcnRlZCk7CkBAIC03NjksNiArNzgxLDUxIEBAIENPTlRFWFQ6ICBDT1BZIGNo ZWNrX2lnbl9lcnIKIE5PVElDRTogIHNraXBwaW5nIHJvdyBkdWUgdG8gZGF0YSB0eXBlIGluY29t cGF0aWJpbGl0eSBhdCBsaW5lIDggZm9yIGNvbHVtbiAiayI6ICJhIgogQ09OVEVYVDogIENPUFkg Y2hlY2tfaWduX2VycgogTk9USUNFOiAgNiByb3dzIHdlcmUgc2tpcHBlZCBkdWUgdG8gZGF0YSB0 eXBlIGluY29tcGF0aWJpbGl0eQorQ1JFQVRFIERPTUFJTiBkX2ludF9ub3RfbnVsbCBBUyBJTlQg Tk9UIE5VTEwgQ0hFQ0sodmFsdWUgPiAwKTsKK0NSRUFURSBET01BSU4gZF9pbnRfcG9zaXRpdmVf bWF5YmVfbnVsbCBBUyBJTlQgQ0hFQ0sodmFsdWUgPiAwKTsKK0NSRUFURSBUQUJMRSB0X29uX2Vy cm9yX251bGwgKGEgZF9pbnRfbm90X251bGwsIGIgZF9pbnRfcG9zaXRpdmVfbWF5YmVfbnVsbCwg YyBJTlQpOworXHBzZXQgbnVsbCBOVUxMCistLWZhaWwsIGNvbHVtbiBhIGNhbm5vdCBzZXQgdG8g TlVMTCB2YWx1ZQorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJv ciBzZXRfdG9fbnVsbCk7CitFUlJPUjogIGRvbWFpbiBkX2ludF9ub3RfbnVsbCBkb2VzIG5vdCBh bGxvdyBudWxsIHZhbHVlcworQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxsLCBsaW5lIDEs IGNvbHVtbiBhOiBudWxsIGlucHV0CistLWZhaWwsIGNvbHVtbiBhIGlzIGRvbWFpbiB3aXRoIG5v dC1udWxsIGNvbnN0cmFpbnQKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAo b25fZXJyb3Igc2V0X3RvX251bGwpOworRVJST1I6ICBkb21haW4gZF9pbnRfbm90X251bGwgZG9l cyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK0NPTlRFWFQ6ICBDT1BZIHRfb25fZXJyb3JfbnVsbCwg bGluZSAxLCBjb2x1bW4gYTogImEiCistLWZhaWwsIGNvbHVtbiBhIGNhbm5vdCBzZXQgdG8gTlVM TCB2YWx1ZQorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBz ZXRfdG9fbnVsbCk7CitFUlJPUjogIGRvbWFpbiBkX2ludF9ub3RfbnVsbCBkb2VzIG5vdCBhbGxv dyBudWxsIHZhbHVlcworQ09OVEVYVDogIENPUFkgdF9vbl9lcnJvcl9udWxsLCBsaW5lIDEsIGNv bHVtbiBhOiAiLTEiCistLWZhaWwuIGxlc3MgZGF0YQorQ09QWSB0X29uX2Vycm9yX251bGwgRlJP TSBTVERJTiBXSVRIIChkZWxpbWl0ZXIgJywnLCBvbl9lcnJvciBzZXRfdG9fbnVsbCk7CitFUlJP UjogIG1pc3NpbmcgZGF0YSBmb3IgY29sdW1uICJjIgorQ09OVEVYVDogIENPUFkgdF9vbl9lcnJv cl9udWxsLCBsaW5lIDE6ICIxLDEiCistLWZhaWwuIGV4dHJhIGRhdGEKK0NPUFkgdF9vbl9lcnJv cl9udWxsIEZST00gU1RESU4gV0lUSCAoZGVsaW1pdGVyICcsJywgb25fZXJyb3Igc2V0X3RvX251 bGwpOworRVJST1I6ICBleHRyYSBkYXRhIGFmdGVyIGxhc3QgZXhwZWN0ZWQgY29sdW1uCitDT05U RVhUOiAgQ09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUgMTogIjEsMiwzLDQiCistLW9rCitDT1BZ IHRfb25fZXJyb3JfbnVsbCBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHNldF90b19udWxsLCBs b2dfdmVyYm9zaXR5IHZlcmJvc2UpOworTk9USUNFOiAgY29sdW1uICJiIiB3YXMgc2V0IHRvIE5V TEwgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkgYXQgbGluZSAxCitDT05URVhUOiAg Q09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUgMSwgY29sdW1uIGI6ICJhIgorTk9USUNFOiAgY29s dW1uICJjIiB3YXMgc2V0IHRvIE5VTEwgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkg YXQgbGluZSAxCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUgMSwgY29sdW1u IGM6ICJkIgorTk9USUNFOiAgY29sdW1uICJiIiB3YXMgc2V0IHRvIE5VTEwgZHVlIHRvIGRhdGEg dHlwZSBpbmNvbXBhdGliaWxpdHkgYXQgbGluZSAyCitDT05URVhUOiAgQ09QWSB0X29uX2Vycm9y X251bGwsIGxpbmUgMiwgY29sdW1uIGI6ICJiIgorTk9USUNFOiAgY29sdW1uICJjIiB3YXMgc2V0 IHRvIE5VTEwgZHVlIHRvIGRhdGEgdHlwZSBpbmNvbXBhdGliaWxpdHkgYXQgbGluZSAzCitDT05U RVhUOiAgQ09QWSB0X29uX2Vycm9yX251bGwsIGxpbmUgMywgY29sdW1uIGM6ICJlIgorTk9USUNF OiAgRXJyb25lb3VzIHZhbHVlcyBpbiAzIHJvd3Mgd2VyZSByZXBsYWNlZCB3aXRoIE5VTEwKKy0t IGNoZWNrIGluc2VydGVkIGNvbnRlbnQKK3NlbGVjdCAqIGZyb20gdF9vbl9lcnJvcl9udWxsOwor IGEgIHwgIGIgICB8ICBjICAgCistLS0tKy0tLS0tLSstLS0tLS0KKyAxMCB8IE5VTEwgfCBOVUxM CisgMTEgfCBOVUxMIHwgICAxMgorIDEzIHwgICAxNCB8IE5VTEwKKygzIHJvd3MpCisKK1xwc2V0 IG51bGwgJycKIC0tIHRlc3RzIGZvciBvbl9lcnJvciBvcHRpb24gd2l0aCBsb2dfdmVyYm9zaXR5 IGFuZCBudWxsIGNvbnN0cmFpbnQgdmlhIGRvbWFpbgogQ1JFQVRFIERPTUFJTiBkY2hlY2tfaWdu X2VycjIgdmFyY2hhcigxNSkgTk9UIE5VTEw7CiBDUkVBVEUgVEFCTEUgY2hlY2tfaWduX2VycjIg KG4gaW50LCBtIGludFtdLCBrIGludCwgbCBkY2hlY2tfaWduX2VycjIpOwpAQCAtODI4LDYgKzg4 NSw5IEBAIERST1AgVklFVyBpbnN0ZWFkX29mX2luc2VydF90YmxfdmlldzsKIERST1AgVklFVyBp bnN0ZWFkX29mX2luc2VydF90Ymxfdmlld18yOwogRFJPUCBGVU5DVElPTiBmdW5faW5zdGVhZF9v Zl9pbnNlcnRfdGJsKCk7CiBEUk9QIFRBQkxFIGNoZWNrX2lnbl9lcnI7CitEUk9QIFRBQkxFIHRf b25fZXJyb3JfbnVsbDsKK0RST1AgRE9NQUlOIGRfaW50X25vdF9udWxsOworRFJPUCBET01BSU4g ZF9pbnRfcG9zaXRpdmVfbWF5YmVfbnVsbDsKIERST1AgVEFCTEUgY2hlY2tfaWduX2VycjI7CiBE Uk9QIERPTUFJTiBkY2hlY2tfaWduX2VycjI7CiBEUk9QIFRBQkxFIGhhcmRfZXJyOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY29weTIuc3FsCmluZGV4IDQ1MjczNTU3Y2UuLjZjZDQ3N2FmMTQgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvcHkyLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9j b3B5Mi5zcWwKQEAgLTY3LDEyICs2NywxNSBAQCBDT1BZIHggZnJvbSBzdGRpbiAoZm9yY2VfbnVs bCAoYSksIGZvcmNlX251bGwgKGIpKTsKIENPUFkgeCBmcm9tIHN0ZGluIChjb252ZXJ0X3NlbGVj dGl2ZWx5IChhKSwgY29udmVydF9zZWxlY3RpdmVseSAoYikpOwogQ09QWSB4IGZyb20gc3RkaW4g KGVuY29kaW5nICdzcWxfYXNjaWknLCBlbmNvZGluZyAnc3FsX2FzY2lpJyk7CiBDT1BZIHggZnJv bSBzdGRpbiAob25fZXJyb3IgaWdub3JlLCBvbl9lcnJvciBpZ25vcmUpOworQ09QWSB4IGZyb20g c3RkaW4gKG9uX2Vycm9yIHNldF90b19udWxsLCBvbl9lcnJvciBpZ25vcmUpOwogQ09QWSB4IGZy b20gc3RkaW4gKGxvZ192ZXJib3NpdHkgZGVmYXVsdCwgbG9nX3ZlcmJvc2l0eSB2ZXJib3NlKTsK IAogLS0gaW5jb3JyZWN0IG9wdGlvbnMKIENPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgQklOQVJZ LCBkZWxpbWl0ZXIgJywnKTsKIENPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgQklOQVJZLCBudWxs ICd4Jyk7CiBDT1BZIHggZnJvbSBzdGRpbiAoZm9ybWF0IEJJTkFSWSwgb25fZXJyb3IgaWdub3Jl KTsKK0NPUFkgeCBmcm9tIHN0ZGluIChmb3JtYXQgQklOQVJZLCBvbl9lcnJvciBzZXRfdG9fbnVs bCk7CitDT1BZIHggRlJPTSBzdGRpbiAob25fZXJyb3Igc2V0X3RvX251bGwsIHJlamVjdF9saW1p dCAyKTsKIENPUFkgeCBmcm9tIHN0ZGluIChvbl9lcnJvciB1bnN1cHBvcnRlZCk7CiBDT1BZIHgg ZnJvbSBzdGRpbiAoZm9ybWF0IFRFWFQsIGZvcmNlX3F1b3RlKGEpKTsKIENPUFkgeCBmcm9tIHN0 ZGluIChmb3JtYXQgVEVYVCwgZm9yY2VfcXVvdGUgKik7CkBAIC04Nyw2ICs5MCw3IEBAIENPUFkg eCBmcm9tIHN0ZGluIChmb3JtYXQgVEVYVCwgZm9yY2VfbnVsbCAqKTsKIENPUFkgeCB0byBzdGRv dXQgKGZvcm1hdCBDU1YsIGZvcmNlX251bGwoYSkpOwogQ09QWSB4IHRvIHN0ZG91dCAoZm9ybWF0 IENTViwgZm9yY2VfbnVsbCAqKTsKIENPUFkgeCB0byBzdGRvdXQgKGZvcm1hdCBCSU5BUlksIG9u X2Vycm9yIHVuc3VwcG9ydGVkKTsKK0NPUFkgeCB0byBzdGRpbiAob25fZXJyb3Igc2V0X3RvX251 bGwpOwogQ09QWSB4IGZyb20gc3RkaW4gKGxvZ192ZXJib3NpdHkgdW5zdXBwb3J0ZWQpOwogQ09Q WSB4IGZyb20gc3RkaW4gd2l0aCAocmVqZWN0X2xpbWl0IDEpOwogQ09QWSB4IGZyb20gc3RkaW4g d2l0aCAob25fZXJyb3IgaWdub3JlLCByZWplY3RfbGltaXQgMCk7CkBAIC01MzQsNiArNTM4LDQ1 IEBAIGEJezJ9CTIKIDgJezh9CTgKIFwuCiAKK0NSRUFURSBET01BSU4gZF9pbnRfbm90X251bGwg QVMgSU5UIE5PVCBOVUxMIENIRUNLKHZhbHVlID4gMCk7CitDUkVBVEUgRE9NQUlOIGRfaW50X3Bv c2l0aXZlX21heWJlX251bGwgQVMgSU5UIENIRUNLKHZhbHVlID4gMCk7CitDUkVBVEUgVEFCTEUg dF9vbl9lcnJvcl9udWxsIChhIGRfaW50X25vdF9udWxsLCBiIGRfaW50X3Bvc2l0aXZlX21heWJl X251bGwsIGMgSU5UKTsKKworXHBzZXQgbnVsbCBOVUxMCistLWZhaWwsIGNvbHVtbiBhIGNhbm5v dCBzZXQgdG8gTlVMTCB2YWx1ZQorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRI IChvbl9lcnJvciBzZXRfdG9fbnVsbCk7CitcTgkxMQkxMworXC4KKworLS1mYWlsLCBjb2x1bW4g YSBpcyBkb21haW4gd2l0aCBub3QtbnVsbCBjb25zdHJhaW50CitDT1BZIHRfb25fZXJyb3JfbnVs bCBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHNldF90b19udWxsKTsKK2EJMTEJMTQKK1wuCisK Ky0tZmFpbCwgY29sdW1uIGEgY2Fubm90IHNldCB0byBOVUxMIHZhbHVlCitDT1BZIHRfb25fZXJy b3JfbnVsbCBGUk9NIFNURElOIFdJVEggKG9uX2Vycm9yIHNldF90b19udWxsKTsKKy0xCTExCTEz CitcLgorCistLWZhaWwuIGxlc3MgZGF0YQorQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJ TiBXSVRIIChkZWxpbWl0ZXIgJywnLCBvbl9lcnJvciBzZXRfdG9fbnVsbCk7CisxLDEKK1wuCist LWZhaWwuIGV4dHJhIGRhdGEKK0NPUFkgdF9vbl9lcnJvcl9udWxsIEZST00gU1RESU4gV0lUSCAo ZGVsaW1pdGVyICcsJywgb25fZXJyb3Igc2V0X3RvX251bGwpOworMSwyLDMsNAorXC4KKworLS1v aworQ09QWSB0X29uX2Vycm9yX251bGwgRlJPTSBTVERJTiBXSVRIIChvbl9lcnJvciBzZXRfdG9f bnVsbCwgbG9nX3ZlcmJvc2l0eSB2ZXJib3NlKTsKKzEwCWEJZAorMTEJYgkxMgorMTMJMTQJZQor XC4KKworLS0gY2hlY2sgaW5zZXJ0ZWQgY29udGVudAorc2VsZWN0ICogZnJvbSB0X29uX2Vycm9y X251bGw7CitccHNldCBudWxsICcnCiAtLSB0ZXN0cyBmb3Igb25fZXJyb3Igb3B0aW9uIHdpdGgg bG9nX3ZlcmJvc2l0eSBhbmQgbnVsbCBjb25zdHJhaW50IHZpYSBkb21haW4KIENSRUFURSBET01B SU4gZGNoZWNrX2lnbl9lcnIyIHZhcmNoYXIoMTUpIE5PVCBOVUxMOwogQ1JFQVRFIFRBQkxFIGNo ZWNrX2lnbl9lcnIyIChuIGludCwgbSBpbnRbXSwgayBpbnQsIGwgZGNoZWNrX2lnbl9lcnIyKTsK QEAgLTYwMyw2ICs2NDYsOSBAQCBEUk9QIFZJRVcgaW5zdGVhZF9vZl9pbnNlcnRfdGJsX3ZpZXc7 CiBEUk9QIFZJRVcgaW5zdGVhZF9vZl9pbnNlcnRfdGJsX3ZpZXdfMjsKIERST1AgRlVOQ1RJT04g ZnVuX2luc3RlYWRfb2ZfaW5zZXJ0X3RibCgpOwogRFJPUCBUQUJMRSBjaGVja19pZ25fZXJyOwor RFJPUCBUQUJMRSB0X29uX2Vycm9yX251bGw7CitEUk9QIERPTUFJTiBkX2ludF9ub3RfbnVsbDsK K0RST1AgRE9NQUlOIGRfaW50X3Bvc2l0aXZlX21heWJlX251bGw7CiBEUk9QIFRBQkxFIGNoZWNr X2lnbl9lcnIyOwogRFJPUCBET01BSU4gZGNoZWNrX2lnbl9lcnIyOwogRFJPUCBUQUJMRSBoYXJk X2VycjsKLS0gCjIuMzQuMQoK --0000000000006c0071062b545960--