Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vwSQz-0083cP-2Z for pgsql-hackers@arkaria.postgresql.org; Sat, 28 Feb 2026 22:05:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vwSQy-00BYL6-13 for pgsql-hackers@arkaria.postgresql.org; Sat, 28 Feb 2026 22:05:12 +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.96) (envelope-from ) id 1vwSQx-00BYKx-2K for pgsql-hackers@lists.postgresql.org; Sat, 28 Feb 2026 22:05:12 +0000 Received: from forward101d.mail.yandex.net ([178.154.239.212]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1vwSQt-00000001mjd-0hhs for pgsql-hackers@postgresql.org; Sat, 28 Feb 2026 22:05:11 +0000 Received: from mail-nwsmtp-smtp-production-main-52.klg.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-52.klg.yp-c.yandex.net [IPv6:2a02:6b8:c42:ea2:0:640:ef77:0]) by forward101d.mail.yandex.net (Yandex) with ESMTPS id 7E92BC0031; Sun, 01 Mar 2026 01:05:06 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-52.klg.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id 55tgU0QGvW20-lgwDHwZI; Sun, 01 Mar 2026 01:05:05 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1772316305; bh=f5ncm6sH1yJyfRvmzaywVLK6vjlVmR8uJRM1epZiubs=; h=In-Reply-To:Cc:Date:References:To:Subject:Message-ID:From; b=K7HCCRHqeU/cHPk1vrKDU3NtRoXQxy6NyDuZnmh0FoOcGC2KBLTWxfzVzFljoX/lw Hbp0oNwbVcVTzTFOcpCoQES01bjffEnnaVMvDZZyN5zkbPx3+DuKefE/uYCse3oMG7 y9x9WaMkw6jPIDvm8F/5sXn/HHGR3ECDDhaHq7uk= Authentication-Results: mail-nwsmtp-smtp-production-main-52.klg.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Content-Type: multipart/mixed; boundary="------------mNUKmQkanLuI3z1rBmXnFJqj" Message-ID: <277ce149-4333-463d-bad6-ccd785606c7f@yandex.ru> Date: Sun, 1 Mar 2026 01:20:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Vacuum statistics To: Alena Rybakina , pgsql-hackers Cc: Alexander Korotkov , Amit Kapila , Jim Nasby , Bertrand Drouvot , Kirill Reshke , Andrei Zubkov , Masahiko Sawada , Melanie Plageman , jian he , Sami Imseih , vignesh C , Ilia Evdokimov References: <86f76aa5-1ab5-4e2e-9b15-405051852a2a@postgrespro.ru> <47a7b784-5218-43f2-96e3-65f9a729c5a5@tantorlabs.com> <5583261b-eede-4341-b3b1-91650fefc1cf@postgrespro.ru> <2a04ad18-5572-4633-848b-eb57209e7ac0@postgrespro.ru> <2f48399f-2959-4483-938f-64edb863ca76@postgrespro.ru> <18169b68-5b10-40fd-9657-be04f2bd0161@postgrespro.ru> <612819ad-beca-41fb-bb7f-d5a7c11f0045@yandex.ru> Content-Language: en-US From: Alena Rybakina In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------mNUKmQkanLuI3z1rBmXnFJqj Content-Type: multipart/alternative; boundary="------------zA0L4iPBTFiyDdxUmhoqr0EL" --------------zA0L4iPBTFiyDdxUmhoqr0EL Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 21.12.2025 04:36, Alena Rybakina wrote: > > Hi, > I’ve added some changes to one of the approaches and also did > additional cleanup and stabilization work on the vacuum statistics > tests. Specifically: > > * I moved the vacuum statistics tests into the tests tab and made > them more stable. For slower machines, vacuum is now triggered > inside the statistics wait function. Previously, some backends > didn’t have enough time to release the lock, which could lead to > differences because the vacuum hadn’t fully completed yet. > * I also ran the backend tests and fixed a couple of minor issues > along the way. > * I ran pgindent to clean up and normalize the formatting. > I have rebased the patch. I combined all the patches for implementing statistics on tables, indexes, and databases into one, creating a separate slot for them to collect and save statistics. > At the moment, only the second test still looks odd, and I haven’t > fully figured out why yet. It seems like aggressive vacuum can no > longer be triggered the same way as before with the current gucs, but > I’m still investigating this. > I fixed this problem - it works well now. Best regards, Alena Rybakina --------------zA0L4iPBTFiyDdxUmhoqr0EL Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
On 21.12.2025 04:36, Alena Rybakina wrote:

Hi,
I’ve added some changes to one of the approaches and also did additional cleanup and stabilization work on the vacuum statistics tests. Specifically:

  • I moved the vacuum statistics tests into the tests tab and made them more stable. For slower machines, vacuum is now triggered inside the statistics wait function. Previously, some backends didn’t have enough time to release the lock, which could lead to differences because the vacuum hadn’t fully completed yet.
  • I also ran the backend tests and fixed a couple of minor issues along the way.
  • I ran pgindent to clean up and normalize the formatting.

I have rebased the patch.

I combined all the patches for implementing statistics on tables, indexes, and databases into one, creating a separate slot for them to collect and save statistics.

At the moment, only the second test still looks odd, and I haven’t fully figured out why yet. It seems like aggressive vacuum can no longer be triggered the same way as before with the current gucs, but I’m still investigating this.

I fixed this problem - it works well now.

Best regards,
Alena Rybakina

--------------zA0L4iPBTFiyDdxUmhoqr0EL-- --------------mNUKmQkanLuI3z1rBmXnFJqj Content-Type: text/plain; charset=UTF-8; name="v27-0001-Introduce-new-statistics-tracking-the-number-of-time.patch" Content-Disposition: attachment; filename*0="v27-0001-Introduce-new-statistics-tracking-the-number-of-tim"; filename*1="e.patch" Content-Transfer-Encoding: base64 RnJvbSBmMWVmY2U3OWYwYWE2MWM2NTBlYzdjYzZmNDBiZjZhMDgwNmQyOWY1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogU2F0LCAyOCBGZWIgMjAyNiAxODozMDoxMiArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMS8zXSBJbnRyb2R1Y2UgbmV3IHN0YXRpc3RpY3MgdHJhY2tpbmcgdGhl IG51bWJlciBvZiB0aW1lcyB0aGUKIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuIGJpdHMg YXJlIGNsZWFyZWQgaW4gdGhlIHZpc2liaWxpdHkgbWFwCiAocmV2X2FsbF92aXNpYmxlX3Bh Z2VzIGFuZCByZXZfYWxsX2Zyb3plbl9wYWdlcykuIFRoZXNlIGNvdW50ZXJzLCB0b2dldGhl cgogd2l0aCB0aGUgZXhpc3RpbmcgcGVyLXZhY3V1bSBmcm96ZW4gcGFnZSBzdGF0aXN0aWNz ICh2bV9uZXdfZnJvemVuX3BhZ2VzLAogdm1fbmV3X3Zpc2libGVfcGFnZXMpLCBoZWxwIGFz c2VzcyBob3cgYWdncmVzc2l2ZWx5IHZhY3V1bSBpcyBjb25maWd1cmVkIGFuZAogaG93IGZy ZXF1ZW50bHkgdGhlIGJhY2tlbmQgaGFzIHRvIHJldm9rZSBhbGwtZnJvemVuL2FsbC12aXNp YmxlIGJpdHMgZHVlIHRvCiBjb25jdXJyZW50IG1vZGlmaWNhdGlvbnMuCgogQXV0aG9yczog QWxlbmEgUnliYWtpbmEgPGxlbmEucmliYWNraW5hQHlhbmRleC5ydT4sCiAgICAgQW5kcmVp IExlcGlraG92IDxhLmxlcGlraG92QHBvc3RncmVzcHJvLnJ1PiwKICAgICBBbmRyZWkgWnVi a292IDxhLnp1YmtvdkBwb3N0Z3Jlc3Byby5ydT4KUmV2aWV3ZWQtYnk6IERpbGlwIEt1bWFy IDxkaWxpcGJhbGF1dEBnbWFpbC5jb20+LCBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hr QGdtYWlsLmNvbT4sCiAgICAgICAgIElsaWEgRXZkb2tpbW92IDxpbHlhLmV2ZG9raW1vdkB0 YW50b3JsYWJzLmNvbT4sIGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4s CiAgICAgICAgIEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+LCBBbGV4 YW5kZXIgS29yb3Rrb3YgPGFla29yb3Rrb3ZAZ21haWwuY29tPiwKICAgICAgICAgSmltIE5h c2J5IDxqbmFzYnlAdXBncmFkZS5jb20+LCBTYW1pIEltc2VpaCA8c2FtaW1zZWloQGdtYWls LmNvbT4sCiAgICAgICAgIEthcmluYSBMaXRza2V2aWNoIDxsaXRza2V2aWNoa2FyaW5hQGdt YWlsLmNvbT4KCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5j ICAgICAgfCAxMCArKysrKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3 cy5zcWwgICAgICAgICB8ICA0ICsrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdF9yZWxhdGlvbi5jIHwgIDIgKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRm dW5jcy5jICAgICAgICAgIHwgIDYgKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0ICAgICAgICAgICAgICB8IDEyICsrKysrKysrKysrLQogc3JjL2luY2x1ZGUvcGdz dGF0LmggICAgICAgICAgICAgICAgICAgICAgICAgfCAxOCArKysrKysrKysrKysrKysrKy0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgIHwgMTIgKysr KysrKysrLS0tCiA3IGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0 eW1hcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4 IDMwNDdiZDQ2ZGVmLi4yZTdjMjhlYTMwNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3Zpc2liaWxpdHltYXAuYwpAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94 bG9naW5zZXJ0LmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2d1dGlscy5oIgogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInBvcnQvcGdf Yml0dXRpbHMuaCIKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0 b3JhZ2Uvc21nci5oIgpAQCAtMTYxLDYgKzE2MiwxNSBAQCB2aXNpYmlsaXR5bWFwX2NsZWFy KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIHZtYnVmLCB1aW50 OCBmbGFncwogCiAJaWYgKG1hcFttYXBCeXRlXSAmIG1hc2spCiAJeworCQkvKgorCQkgKiBU cmFjayBob3cgb2Z0ZW4gYWxsLXZpc2libGUgb3IgYWxsLWZyb3plbiBiaXRzIGFyZSBjbGVh cmVkIGluIHRoZQorCQkgKiB2aXNpYmlsaXR5IG1hcC4KKwkJICovCisJCWlmIChtYXBbbWFw Qnl0ZV0gPj4gbWFwT2Zmc2V0ICYgZmxhZ3MgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxF KQorCQkJcGdzdGF0X2NvdW50X3ZtX3Jldl9hbGxfdmlzaWJsZShyZWwpOworCQlpZiAobWFw W21hcEJ5dGVdID4+IG1hcE9mZnNldCAmIGZsYWdzICYgVklTSUJJTElUWU1BUF9BTExfRlJP WkVOKQorCQkJcGdzdGF0X2NvdW50X3ZtX3Jldl9hbGxfZnJvemVuKHJlbCk7CisKIAkJbWFw W21hcEJ5dGVdICY9IH5tYXNrOwogCiAJCU1hcmtCdWZmZXJEaXJ0eSh2bWJ1Zik7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggNzU1M2YzMWZlZjAuLmZhMTAy ZjljMjcwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5z cWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC03Mjcs NyArNzI3LDkgQEAgQ1JFQVRFIFZJRVcgcGdfc3RhdF9hbGxfdGFibGVzIEFTCiAgICAgICAg ICAgICBwZ19zdGF0X2dldF90b3RhbF9hdXRvdmFjdXVtX3RpbWUoQy5vaWQpIEFTIHRvdGFs X2F1dG92YWN1dW1fdGltZSwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3RvdGFsX2FuYWx5 emVfdGltZShDLm9pZCkgQVMgdG90YWxfYW5hbHl6ZV90aW1lLAogICAgICAgICAgICAgcGdf c3RhdF9nZXRfdG90YWxfYXV0b2FuYWx5emVfdGltZShDLm9pZCkgQVMgdG90YWxfYXV0b2Fu YWx5emVfdGltZSwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3N0YXRfcmVzZXRfdGltZShD Lm9pZCkgQVMgc3RhdHNfcmVzZXQKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3N0YXRfcmVz ZXRfdGltZShDLm9pZCkgQVMgc3RhdHNfcmVzZXQsCisgICAgICAgICAgICBwZ19zdGF0X2dl dF9yZXZfYWxsX2Zyb3plbl9wYWdlcyhDLm9pZCkgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMs CisgICAgICAgICAgICBwZ19zdGF0X2dldF9yZXZfYWxsX3Zpc2libGVfcGFnZXMoQy5vaWQp IEFTIHJldl9hbGxfdmlzaWJsZV9wYWdlcwogICAgIEZST00gcGdfY2xhc3MgQyBMRUZUIEpP SU4KICAgICAgICAgIHBnX2luZGV4IEkgT04gQy5vaWQgPSBJLmluZHJlbGlkCiAgICAgICAg ICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIE4gT04gKE4ub2lkID0gQy5yZWxuYW1lc3BhY2Up CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRp b24uYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCmlu ZGV4IGJjOGM0M2I5NmFhLi44ODVkNTkwZDJiMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKQEAgLTg3OSw2ICs4NzksOCBAQCBwZ3N0 YXRfcmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYsIGJvb2wg bm93YWl0KQogCiAJdGFiZW50cnktPmJsb2Nrc19mZXRjaGVkICs9IGxzdGF0cy0+Y291bnRz LmJsb2Nrc19mZXRjaGVkOwogCXRhYmVudHJ5LT5ibG9ja3NfaGl0ICs9IGxzdGF0cy0+Y291 bnRzLmJsb2Nrc19oaXQ7CisJdGFiZW50cnktPnJldl9hbGxfZnJvemVuX3BhZ2VzICs9IGxz dGF0cy0+Y291bnRzLnJldl9hbGxfZnJvemVuX3BhZ2VzOworCXRhYmVudHJ5LT5yZXZfYWxs X3Zpc2libGVfcGFnZXMgKz0gbHN0YXRzLT5jb3VudHMucmV2X2FsbF92aXNpYmxlX3BhZ2Vz OwogCiAJLyogQ2xhbXAgbGl2ZV90dXBsZXMgaW4gY2FzZSBvZiBuZWdhdGl2ZSBkZWx0YV9s aXZlX3R1cGxlcyAqLwogCXRhYmVudHJ5LT5saXZlX3R1cGxlcyA9IE1heCh0YWJlbnRyeS0+ bGl2ZV90dXBsZXMsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn c3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRl eCA3M2NhMGJiMGI3Zi4uOTAxZjNkZDU1YTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0 YXRmdW5jcy5jCkBAIC0xMDYsNiArMTA2LDEyIEBAIFBHX1NUQVRfR0VUX1JFTEVOVFJZX0lO VDY0KHR1cGxlc191cGRhdGVkKQogLyogcGdfc3RhdF9nZXRfdmFjdXVtX2NvdW50ICovCiBQ R19TVEFUX0dFVF9SRUxFTlRSWV9JTlQ2NCh2YWN1dW1fY291bnQpCiAKKy8qIHBnX3N0YXRf Z2V0X3Jldl9hbGxfZnJvemVuX3BhZ2VzICovCitQR19TVEFUX0dFVF9SRUxFTlRSWV9JTlQ2 NChyZXZfYWxsX2Zyb3plbl9wYWdlcykKKworLyogcGdfc3RhdF9nZXRfcmV2X2FsbF92aXNp YmxlX3BhZ2VzICovCitQR19TVEFUX0dFVF9SRUxFTlRSWV9JTlQ2NChyZXZfYWxsX3Zpc2li bGVfcGFnZXMpCisKICNkZWZpbmUgUEdfU1RBVF9HRVRfUkVMRU5UUllfRkxPQVQ4KHN0YXQp CQkJCQkJXAogRGF0dW0JCQkJCQkJCQkJCQkJCQlcCiBDcHBDb25jYXQocGdfc3RhdF9nZXRf LHN0YXQpKFBHX0ZVTkNUSU9OX0FSR1MpCQkJCQlcCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dAppbmRleCA1ZTVlMzNmNjRmYy4uOTYxMzM3Y2UyODIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9jLmRhdApAQCAtMTI2OTMsNiArMTI2OTMsMTYgQEAKICAgcHJvc3JjID0+ICdoYXNob2lk OCcgfSwKIHsgb2lkID0+ICc4MjgxJywgZGVzY3IgPT4gJ2hhc2gnLAogICBwcm9uYW1lID0+ ICdoYXNob2lkOGV4dGVuZGVkJywgcHJvcmV0dHlwZSA9PiAnaW50OCcsCi0gIHByb2FyZ3R5 cGVzID0+ICdvaWQ4IGludDgnLCBwcm9zcmMgPT4gJ2hhc2hvaWQ4ZXh0ZW5kZWQnIH0sCisg IHByb2FyZ3R5cGVzID0+ICdvaWQ4IGludDgnLCAgIHByb3NyYyA9PiAnaGFzaG9pZDhleHRl bmRlZCcgfSwKIAoreyBvaWQgPT4gJzgwMDInLAorICBkZXNjciA9PiAnc3RhdGlzdGljczog bnVtYmVyIG9mIHRpbWVzIHRoZSBhbGwtdmlzaWJsZSBwYWdlcyBpbiB0aGUgdmlzaWJpbGl0 eSBtYXAgd2FzIHJlbW92ZWQgZm9yIHBhZ2VzIG9mIHRhYmxlJywKKyAgcHJvbmFtZSA9PiAn cGdfc3RhdF9nZXRfcmV2X2FsbF92aXNpYmxlX3BhZ2VzJywgcHJvdm9sYXRpbGUgPT4gJ3Mn LAorICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0 eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX3Zpc2li bGVfcGFnZXMnIH0sCit7IG9pZCA9PiAnODAwMycsCisgIGRlc2NyID0+ICdzdGF0aXN0aWNz OiBudW1iZXIgb2YgdGltZXMgdGhlIGFsbC1mcm96ZW4gcGFnZXMgaW4gdGhlIHZpc2liaWxp dHkgbWFwIHdhcyByZW1vdmVkIGZvciBwYWdlcyBvZiB0YWJsZScsCisgIHByb25hbWUgPT4g J3BnX3N0YXRfZ2V0X3Jldl9hbGxfZnJvemVuX3BhZ2VzJywgcHJvdm9sYXRpbGUgPT4gJ3Mn LAorICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0 eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX2Zyb3pl bl9wYWdlcycgfSwKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3Jj L2luY2x1ZGUvcGdzdGF0LmgKaW5kZXggZmZmN2VjYzI1MzMuLjA3MjA2NWFkYzkwIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0YXQu aApAQCAtMTU2LDYgKzE1Niw5IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9UYWJsZUNvdW50 cwogCiAJUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2ZldGNoZWQ7CiAJUGdTdGF0X0NvdW50ZXIg YmxvY2tzX2hpdDsKKworCVBnU3RhdF9Db3VudGVyIHJldl9hbGxfdmlzaWJsZV9wYWdlczsK KwlQZ1N0YXRfQ291bnRlciByZXZfYWxsX2Zyb3plbl9wYWdlczsKIH0gUGdTdGF0X1RhYmxl Q291bnRzOwogCiAvKiAtLS0tLS0tLS0tCkBAIC0yMTQsNyArMjE3LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgUGdTdGF0X1RhYmxlWGFjdFN0YXR1cwogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIAotI2RlZmlu ZSBQR1NUQVRfRklMRV9GT1JNQVRfSUQJMHgwMUE1QkNCQgorI2RlZmluZSBQR1NUQVRfRklM RV9GT1JNQVRfSUQJMHgwMUE1QkNCQwogCiB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfQXJjaGl2 ZXJTdGF0cwogewpAQCAtNDYzLDYgKzQ2Niw4IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9T dGF0VGFiRW50cnkKIAlQZ1N0YXRfQ291bnRlciB0b3RhbF9hdXRvYW5hbHl6ZV90aW1lOwog CiAJVGltZXN0YW1wVHogc3RhdF9yZXNldF90aW1lOworCVBnU3RhdF9Db3VudGVyIHJldl9h bGxfdmlzaWJsZV9wYWdlczsKKwlQZ1N0YXRfQ291bnRlciByZXZfYWxsX2Zyb3plbl9wYWdl czsKIH0gUGdTdGF0X1N0YXRUYWJFbnRyeTsKIAogLyogLS0tLS0tCkBAIC03MjIsNiArNzI3 LDE3IEBAIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfYW5hbHl6ZShSZWxhdGlvbiByZWws CiAJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAogCQkJ KHJlbCktPnBnc3RhdF9pbmZvLT5jb3VudHMuYmxvY2tzX2hpdCsrOwkJCQlcCiAJfSB3aGls ZSAoMCkKKy8qIGNvdW50IHJldm9jYXRpb25zIG9mIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJv emVuIGJpdHMgaW4gdmlzaWJpbGl0eSBtYXAgKi8KKyNkZWZpbmUgcGdzdGF0X2NvdW50X3Zt X3Jldl9hbGxfdmlzaWJsZShyZWwpCQkJCQkJXAorCWRvIHsJCQkJCQkJCQkJCQkJCQlcCisJ CWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAorCQkJKHJl bCktPnBnc3RhdF9pbmZvLT5jb3VudHMucmV2X2FsbF92aXNpYmxlX3BhZ2VzKys7CVwKKwl9 IHdoaWxlICgwKQorI2RlZmluZSBwZ3N0YXRfY291bnRfdm1fcmV2X2FsbF9mcm96ZW4ocmVs KQkJCQkJCVwKKwlkbyB7CQkJCQkJCQkJCQkJCQkJXAorCQlpZiAocGdzdGF0X3Nob3VsZF9j b3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKKwkJCShyZWwpLT5wZ3N0YXRfaW5mby0+Y291 bnRzLnJldl9hbGxfZnJvemVuX3BhZ2VzKys7CVwKKwl9IHdoaWxlICgwKQogCiBleHRlcm4g dm9pZCBwZ3N0YXRfY291bnRfaGVhcF9pbnNlcnQoUmVsYXRpb24gcmVsLCBQZ1N0YXRfQ291 bnRlciBuKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9jb3VudF9oZWFwX3VwZGF0ZShSZWxhdGlv biByZWwsIGJvb2wgaG90LCBib29sIG5ld3BhZ2UpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dAppbmRleCBmNGVlMmJkNzQ1OS4uN2QyNmJjMWExZGMgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xODQ2LDcgKzE4NDYsOSBAQCBwZ19zdGF0 X2FsbF90YWJsZXN8IFNFTEVDVCBjLm9pZCBBUyByZWxpZCwKICAgICBwZ19zdGF0X2dldF90 b3RhbF9hdXRvdmFjdXVtX3RpbWUoYy5vaWQpIEFTIHRvdGFsX2F1dG92YWN1dW1fdGltZSwK ICAgICBwZ19zdGF0X2dldF90b3RhbF9hbmFseXplX3RpbWUoYy5vaWQpIEFTIHRvdGFsX2Fu YWx5emVfdGltZSwKICAgICBwZ19zdGF0X2dldF90b3RhbF9hdXRvYW5hbHl6ZV90aW1lKGMu b2lkKSBBUyB0b3RhbF9hdXRvYW5hbHl6ZV90aW1lLAotICAgIHBnX3N0YXRfZ2V0X3N0YXRf cmVzZXRfdGltZShjLm9pZCkgQVMgc3RhdHNfcmVzZXQKKyAgICBwZ19zdGF0X2dldF9zdGF0 X3Jlc2V0X3RpbWUoYy5vaWQpIEFTIHN0YXRzX3Jlc2V0LAorICAgIHBnX3N0YXRfZ2V0X3Jl dl9hbGxfZnJvemVuX3BhZ2VzKGMub2lkKSBBUyByZXZfYWxsX2Zyb3plbl9wYWdlcywKKyAg ICBwZ19zdGF0X2dldF9yZXZfYWxsX3Zpc2libGVfcGFnZXMoYy5vaWQpIEFTIHJldl9hbGxf dmlzaWJsZV9wYWdlcwogICAgRlJPTSAoKHBnX2NsYXNzIGMKICAgICAgTEVGVCBKT0lOIHBn X2luZGV4IGkgT04gKChjLm9pZCA9IGkuaW5kcmVsaWQpKSkKICAgICAgTEVGVCBKT0lOIHBn X25hbWVzcGFjZSBuIE9OICgobi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkpKQpAQCAtMjI2OCw3 ICsyMjcwLDkgQEAgcGdfc3RhdF9zeXNfdGFibGVzfCBTRUxFQ1QgcmVsaWQsCiAgICAgdG90 YWxfYXV0b3ZhY3V1bV90aW1lLAogICAgIHRvdGFsX2FuYWx5emVfdGltZSwKICAgICB0b3Rh bF9hdXRvYW5hbHl6ZV90aW1lLAotICAgIHN0YXRzX3Jlc2V0CisgICAgc3RhdHNfcmVzZXQs CisgICAgcmV2X2FsbF9mcm96ZW5fcGFnZXMsCisgICAgcmV2X2FsbF92aXNpYmxlX3BhZ2Vz CiAgICBGUk9NIHBnX3N0YXRfYWxsX3RhYmxlcwogICBXSEVSRSAoKHNjaGVtYW5hbWUgPSBB TlkgKEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5h bWVdKSkgT1IgKHNjaGVtYW5hbWUgfiAnXnBnX3RvYXN0Jzo6dGV4dCkpOwogcGdfc3RhdF91 c2VyX2Z1bmN0aW9uc3wgU0VMRUNUIHAub2lkIEFTIGZ1bmNpZCwKQEAgLTIzMjMsNyArMjMy Nyw5IEBAIHBnX3N0YXRfdXNlcl90YWJsZXN8IFNFTEVDVCByZWxpZCwKICAgICB0b3RhbF9h dXRvdmFjdXVtX3RpbWUsCiAgICAgdG90YWxfYW5hbHl6ZV90aW1lLAogICAgIHRvdGFsX2F1 dG9hbmFseXplX3RpbWUsCi0gICAgc3RhdHNfcmVzZXQKKyAgICBzdGF0c19yZXNldCwKKyAg ICByZXZfYWxsX2Zyb3plbl9wYWdlcywKKyAgICByZXZfYWxsX3Zpc2libGVfcGFnZXMKICAg IEZST00gcGdfc3RhdF9hbGxfdGFibGVzCiAgIFdIRVJFICgoc2NoZW1hbmFtZSA8PiBBTEwg KEFSUkFZWydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVd KSkgQU5EIChzY2hlbWFuYW1lICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7CiBwZ19zdGF0X3dh bHwgU0VMRUNUIHdhbF9yZWNvcmRzLAotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --------------mNUKmQkanLuI3z1rBmXnFJqj Content-Type: text/plain; charset=UTF-8; name="v27-0002-Add-machinery-for-grabbing-an-extended-vacuum-statis.patch" Content-Disposition: attachment; filename*0="v27-0002-Add-machinery-for-grabbing-an-extended-vacuum-stati"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSAyMGUxZThmODJlOTgwZjMxZTY4NTU4MjA5NDUwNjdiNzI2OGE0OTYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogU2F0LCAyOCBGZWIgMjAyNiAxOTo1NTozMCArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMi8zXSBBZGQgbWFjaGluZXJ5IGZvciBncmFiYmluZyBhbiBleHRlbmRl ZCB2YWN1dW0gc3RhdGlzdGljcy4KClZhY3V1bSBzdGF0aXN0aWNzIGFyZSBzdG9yZWQgc2Vw YXJhdGVseSBmcm9tIHJlZ3VsYXIgcmVsYXRpb24gYW5kCmRhdGFiYXNlIHN0YXRpc3RpY3Mu IERlZGljYXRlZCBQR1NUQVRfS0lORF9WQUNVVU1fUkVMQVRJT04gYW5kClBHU1RBVF9LSU5E X1ZBQ1VVTV9EQiBlbnRyaWVzIGluIHRoZSBjdW11bGF0aXZlIHN0YXRpc3RpY3Mgc3lzdGVt CmFsbG9jYXRlIG1lbW9yeSBmb3IgdmFjdXVtLXNwZWNpZmljIG1ldHJpY3MsIHJlZHVjaW5n IG92ZXJhbGwgbWVtb3J5IHVzZS4KU3RhdGlzdGljcyBhcmUgZ2F0aGVyZWQgc2VwYXJhdGVs eSBmb3IgdGFibGVzIGFuZCBpbmRleGVzIGFjY29yZGluZyB0bwp2YWN1dW0gcGhhc2VzLiBU aGUgRXh0VmFjUmVwb3J0IHVuaW9uIGFuZCB0eXBlIGZpZWxkIGRpc3Rpbmd1aXNoClBHU1RB VF9FWFRWQUNfVEFCTEUgdnMgUEdTVEFUX0VYVFZBQ19JTkRFWC4gSGVhcCB2YWN1dW0gc3Rh dHMgYXJlIHNlbnQKdG8gdGhlIGN1bXVsYXRpdmUgc3RhdGlzdGljcyBzeXN0ZW0gYWZ0ZXIg dmFjdXVtIGhhcyBwcm9jZXNzZWQgdGhlCmluZGV4ZXMsIGFjY29yZGluZyB0byB2YWN1dW0g cGhhc2VzLiBEYXRhYmFzZSB2YWN1dW0gc3RhdGlzdGljcwphZ2dyZWdhdGUgc3RhdGlzdGlj cyBvZiB0YWJsZXMgYW5kIGluZGV4ZXMgaW4gdGhlIGRhdGFiYXNlLgoKQ29tbW9uIGZvciB0 YWJsZXMsIGluZGV4ZXMsIGFuZCBkYXRhYmFzZToKdG90YWxfYmxrc19oaXQsIHRvdGFsX2Js a3NfcmVhZCwgdG90YWxfYmxrc19kaXJ0aWVkIGFyZSBudW1iZXIgb2YgaGl0LAptaXNzZWQg YW5kIGRpcnRpZWQgcGFnZXMgaW4gc2hhcmVkIGJ1ZmZlcnMgZHVyaW5nIGEgdmFjdXVtIG9w ZXJhdGlvbgpyZXNwZWN0aXZlbHkuIHRvdGFsX2Jsa3NfZGlydGllZCBtZWFucyAnZGlydGll ZCBvbmx5IGJ5IHRoaXMgYWN0aW9uJywKc28gaWYgYSBwYWdlIHdhcyBkaXJ0eSBiZWZvcmUg dGhlIHZhY3V1bSBvcGVyYXRpb24sIGl0IGRvZXMgbm90IGNvdW50CmFzIGRpcnRpZWQuCmJs a19yZWFkX3RpbWUgYW5kIGJsa193cml0ZV90aW1lIHRyYWNrIG9ubHkgYWNjZXNzIHRvIGJ1 ZmZlciBwYWdlcyBhbmQKZmx1c2hpbmcgdGhlbSB0byBkaXNrLiBEdXJpbmcgdmFjdXVtLCB3 cml0ZSB0aW1lIGNhbiByZW1haW4gemVybyBpZiBubwpmbHVzaGluZyBvcGVyYXRpb25zIHdl cmUgcGVyZm9ybWVkLiB0b3RhbF90aW1lIGlzIHRoZSBkaWZmIGJldHdlZW4KdGltZXN0YW1w cyBhdCBzdGFydCBhbmQgZmluaXNoOyBpdCBpbmNsdWRlcyBpZGxlIHRpbWUgKElPIGFuZCBs b2NrCndhaXRzKSwgc28gaXQgaXMgbm90IGVxdWFsIHRvIHRoZSBzdW0gb2YgdXNlciBhbmQg c3lzdGVtIHRpbWUuCmRlbGF5X3RpbWUgbWVhbnMgdG90YWwgdmFjdXVtIHNsZWVwIHRpbWUg aW4gdmFjdXVtIGRlbGF5IHBvaW50LgoKVGFibGUgYW5kIGluZGV4Ogp0dXBsZXNfZGVsZXRl ZCBpcyB0aGUgbnVtYmVyIG9mIHR1cGxlcyBjbGVhbmVkIHVwIGJ5IHRoZSB2YWN1dW0Kb3Bl cmF0aW9uLgpwYWdlc19yZW1vdmVkIGlzIHRoZSBudW1iZXIgb2YgcGFnZXMgYnkgd2hpY2gg dGhlIHBoeXNpY2FsIGRhdGEgc3RvcmFnZQpvZiB0aGUgcmVsYXRpb24gd2FzIHJlZHVjZWQu IHBhZ2VzX2RlbGV0ZWQgaXMgdGhlIG51bWJlciBvZiBmcmVlZCBwYWdlcwppbiB0aGUgdGFi bGUgKGZpbGUgc2l6ZSBtYXkgbm90IGhhdmUgY2hhbmdlZCkuCgpUaGV5IGFyZSBwcm9jZXNz ZWQgYXMgaW5kZXBlbmRlbnQgc3RydWN0dXJlcyB0aGF0IGRvIG5vdCBhZmZlY3QgZWFjaApv dGhlciwgdW5saWtlIFdBTCBhbmQgYnVmZmVycywgc28gdGhleSBjYW5ub3QgYmUgc3VtbWVk IGZvciB0aGUKZGF0YWJhc2UgYXMgdGhlIGNvbW1vbiBzdGF0aXN0aWNzIGFib3ZlLgoKVGFi bGUgb25seToKcGFnZXNfZnJvemVuIGlzIHRoZSBudW1iZXIgb2YgcGFnZXMgbWFya2VkIGFz IGZyb3plbiBpbiBWTSBkdXJpbmcKdmFjdXVtOyBpdCBpcyBpbmNyZW1lbnRlZCB3aGVuIGEg cGFnZSBpcyBtYXJrZWQgYWxsLWZyb3plbi4KcGFnZXNfYWxsX3Zpc2libGUgaXMgdGhlIG51 bWJlciBvZiBwYWdlcyBtYXJrZWQgYXMgYWxsLXZpc2libGUgaW4gVk0uCndyYXBhcm91bmRf ZmFpbHNhZmVfY291bnQgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB2YWN1dW0gc3RhcnRlZCB1 cmdlbnQKY2xlYW51cCB0byBwcmV2ZW50IHdyYXBhcm91bmQuCgpUYWJsZSBhbmQgZGF0YWJh c2U6CndyYXBhcm91bmRfZmFpbHNhZmUgaXMgdGhlIGNvdW50IG9mIHVyZ2VudCBhbnRpLXdy YXBhcm91bmQgY2xlYW51cHMuCgpEYXRhYmFzZSBvbmx5OgplcnJvcnMgaXMgdGhlIG51bWJl ciBvZiBlcnJvcnMgYXQgZXJyb3IgbGV2ZWwgY2F1Z2h0IGR1cmluZyB2YWN1dW0uCgpBdXRo b3JzOiBBbGVuYSBSeWJha2luYSA8bGVuYS5yaWJhY2tpbmFAeWFuZGV4LnJ1PiwKCSBBbmRy ZWkgTGVwaWtob3YgPGEubGVwaWtob3ZAcG9zdGdyZXNwcm8ucnU+LAoJIEFuZHJlaSBadWJr b3YgPGEuenVia292QHBvc3RncmVzcHJvLnJ1PgpSZXZpZXdlZC1ieTogRGlsaXAgS3VtYXIg PGRpbGlwYmFsYXV0QGdtYWlsLmNvbT4sIE1hc2FoaWtvIFNhd2FkYSA8c2F3YWRhLm1zaGtA Z21haWwuY29tPiwKCSAgICAgSWxpYSBFdmRva2ltb3YgPGlseWEuZXZkb2tpbW92QHRhbnRv cmxhYnMuY29tPiwgamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPiwKCSAg ICAgS2lyaWxsIFJlc2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4sIEFsZXhhbmRlciBL b3JvdGtvdiA8YWVrb3JvdGtvdkBnbWFpbC5jb20+LAoJICAgICBKaW0gTmFzYnkgPGpuYXNi eUB1cGdyYWRlLmNvbT4sIFNhbWkgSW1zZWloIDxzYW1pbXNlaWhAZ21haWwuY29tPiwKCSAg ICAgS2FyaW5hIExpdHNrZXZpY2ggPGxpdHNrZXZpY2hrYXJpbmFAZ21haWwuY29tPgotLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgICAgICAgICB8IDMxNiAr KysrKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyAgICAgICAgICAgICAgICAg ICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAg ICAgfCAxMDkgKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMgICAgICAg ICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgICAgICAgICAg ICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMg ICAgICAgICB8ICAxMCArCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9NYWtlZmlsZSAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMg ICAgICAgICAgIHwgIDMwICstCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRf ZGF0YWJhc2UuYyAgfCAgIDkgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 X3JlbGF0aW9uLmMgIHwgICA2ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3Rh dF92YWN1dW0uYyAgICB8IDIxNyArKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0 YXRmdW5jcy5jICAgICAgICAgICB8IDIxOCArKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21p c2MvZ3VjX3BhcmFtZXRlcnMuZGF0ICAgICB8ICAgNiArCiBzcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDI3ICsKIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3ZhY3V1bS5oICAgICAgICAgICAgICAgICB8ICAyNiArCiBzcmMvaW5jbHVkZS9wZ3N0 YXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMzQgKysrLQogc3JjL2luY2x1ZGUv dXRpbHMvcGdzdGF0X2ludGVybmFsLmggICAgICAgICAgIHwgIDE1ICsKIHNyYy9pbmNsdWRl L3V0aWxzL3Bnc3RhdF9raW5kLmggICAgICAgICAgICAgICB8ICAgNCArLQogLi4uL3ZhY3V1 bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQub3V0ICAgIHwgIDUzICsrCiBzcmMvdGVz dC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL3Zh Y3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYyAgIHwgIDU5ICsrCiAuLi4v dC8wNTJfdmFjdXVtX2V4dGVuZGluZ19iYXNpY190ZXN0LnBsICAgICAgfCA3MzcgKysrKysr KysrKysrKysrKysrCiAuLi4vdC8wNTNfdmFjdXVtX2V4dGVuZGluZ19mcmVlemVfdGVzdC5w bCAgICAgfCAzMjkgKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMu b3V0ICAgICAgICAgICB8ICA3NSArKwogMjYgZmlsZXMgY2hhbmdlZCwgMjM4MCBpbnNlcnRp b25zKCspLCAxMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfdmFjdXVtLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFi bGUtcmVhZC5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24vc3Bl Y3MvdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZC5zcGVjCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTJfdmFjdXVtX2V4dGVuZGluZ19iYXNp Y190ZXN0LnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTNf dmFjdXVtX2V4dGVuZGluZ19mcmVlemVfdGVzdC5wbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYwppbmRleCA0YmUyNjdmZjY1Ny4uNjBkYjY5NWI4ZjAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTI4MCw2ICsyODAsOCBAQCB0eXBl ZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAJLyogRXJyb3IgcmVwb3J0aW5nIHN0YXRlICovCiAJ Y2hhcgkgICAqZGJuYW1lOwogCWNoYXIJICAgKnJlbG5hbWVzcGFjZTsKKwlPaWQJCQlyZWxv aWQ7CisJT2lkCQkJaW5kb2lkOwogCWNoYXIJICAgKnJlbG5hbWU7CiAJY2hhcgkgICAqaW5k bmFtZTsJCS8qIEN1cnJlbnQgaW5kZXggbmFtZSAqLwogCUJsb2NrTnVtYmVyIGJsa25vOwkJ CS8qIHVzZWQgb25seSBmb3IgaGVhcCBvcGVyYXRpb25zICovCkBAIC0zOTksNiArNDAxLDEy IEBAIHR5cGVkZWYgc3RydWN0IExWUmVsU3RhdGUKIAkgKiBiZWVuIHBlcm1hbmVudGx5IGRp c2FibGVkLgogCSAqLwogCUJsb2NrTnVtYmVyIGVhZ2VyX3NjYW5fcmVtYWluaW5nX2ZhaWxz OworCisJaW50MzIJCXdyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CS8qIG51bWJlciBvZiBl bWVyZ2VuY3kgdmFjdXVtcyB0bworCQkJCQkJCQkJCQkgKiBwcmV2ZW50IGFudGktd3JhcGFy b3VuZAorCQkJCQkJCQkJCQkgKiBzaHV0ZG93biAqLworCisJUGdTdGF0X1ZhY3V1bVJlbGF0 aW9uQ291bnRzIGV4dFZhY1JlcG9ydElkeDsKIH0gTFZSZWxTdGF0ZTsKIAogCkBAIC00MTAs NyArNDE4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZTYXZlZEVyckluZm8KIAlWYWNFcnJQaGFz ZSBwaGFzZTsKIH0gTFZTYXZlZEVyckluZm87CiAKLQogLyogbm9uLWV4cG9ydCBmdW5jdGlv biBwcm90b3R5cGVzICovCiBzdGF0aWMgdm9pZCBsYXp5X3NjYW5faGVhcChMVlJlbFN0YXRl ICp2YWNyZWwpOwogc3RhdGljIHZvaWQgaGVhcF92YWN1dW1fZWFnZXJfc2Nhbl9zZXR1cChM VlJlbFN0YXRlICp2YWNyZWwsCkBAIC00ODQsNiArNDkxLDIyNyBAQCBzdGF0aWMgdm9pZCB1 cGRhdGVfdmFjdXVtX2Vycm9yX2luZm8oTFZSZWxTdGF0ZSAqdmFjcmVsLAogc3RhdGljIHZv aWQgcmVzdG9yZV92YWN1dW1fZXJyb3JfaW5mbyhMVlJlbFN0YXRlICp2YWNyZWwsCiAJCQkJ CQkJCQkgIGNvbnN0IExWU2F2ZWRFcnJJbmZvICpzYXZlZF92YWNyZWwpOwogCisvKiAtLS0t LS0tLS0tCisgKiBleHR2YWNfc3RhdHNfc3RhcnQoKSAtCisgKgorICogU2F2ZSBjdXQtb2Zm IHZhbHVlcyBvZiBleHRlbmRlZCB2YWN1dW0gY291bnRlcnMgYmVmb3JlIHN0YXJ0IG9mIGEg cmVsYXRpb24KKyAqIHByb2Nlc3NpbmcuCisgKiAtLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2 b2lkCitleHR2YWNfc3RhdHNfc3RhcnQoUmVsYXRpb24gcmVsLCBMVkV4dFN0YXRDb3VudGVy cyAqIGNvdW50ZXJzKQoreworCVRpbWVzdGFtcFR6IHN0YXJ0dGltZTsKKworCWlmICghcGdz dGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCQlyZXR1cm47CisKKwltZW1zZXQoY291 bnRlcnMsIDAsIHNpemVvZihMVkV4dFN0YXRDb3VudGVycykpOworCisJc3RhcnR0aW1lID0g R2V0Q3VycmVudFRpbWVzdGFtcCgpOworCisJY291bnRlcnMtPnN0YXJ0dGltZSA9IHN0YXJ0 dGltZTsKKwljb3VudGVycy0+d2FsdXNhZ2UgPSBwZ1dhbFVzYWdlOworCWNvdW50ZXJzLT5i dWZ1c2FnZSA9IHBnQnVmZmVyVXNhZ2U7CisJY291bnRlcnMtPlZhY3V1bURlbGF5VGltZSA9 IFZhY3V1bURlbGF5VGltZTsKKwljb3VudGVycy0+YmxvY2tzX2ZldGNoZWQgPSAwOworCWNv dW50ZXJzLT5ibG9ja3NfaGl0ID0gMDsKKworCWlmICghcmVsLT5wZ3N0YXRfaW5mbyB8fCAh cGdzdGF0X3RyYWNrX2NvdW50cykKKworCQkvKgorCQkgKiBpZiBzb21ldGhpbmcgZ29lcyB3 cm9uZyBvciB1c2VyIGRvZXNuJ3Qgd2FudCB0byB0cmFjayBhIGRhdGFiYXNlCisJCSAqIGFj dGl2aXR5IC0ganVzdCBzdXBwcmVzcyBpdC4KKwkJICovCisJCXJldHVybjsKKworCWNvdW50 ZXJzLT5ibG9ja3NfZmV0Y2hlZCA9IHJlbC0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9ja3Nf ZmV0Y2hlZDsKKwljb3VudGVycy0+YmxvY2tzX2hpdCA9IHJlbC0+cGdzdGF0X2luZm8tPmNv dW50cy5ibG9ja3NfaGl0OworfQorCisvKiAtLS0tLS0tLS0tCisgKiBleHR2YWNfc3RhdHNf ZW5kKCkgLQorICoKKyAqCUNhbGxlZCB0byBmaW5pc2ggYW4gZXh0ZW5kZWQgdmFjdXVtIHN0 YXRpc3RpYyBnYXRoZXJpbmcgYW5kIGZvcm0gYSByZXBvcnQuCisgKiAtLS0tLS0tLS0tCisg Ki8KK3N0YXRpYyB2b2lkCitleHR2YWNfc3RhdHNfZW5kKFJlbGF0aW9uIHJlbCwgTFZFeHRT dGF0Q291bnRlcnMgKiBjb3VudGVycywKKwkJCQkgUGdTdGF0X0NvbW1vbkNvdW50cyAqIHJl cG9ydCkKK3sKKwlXYWxVc2FnZQl3YWx1c2FnZTsKKwlCdWZmZXJVc2FnZSBidWZ1c2FnZTsK KwlUaW1lc3RhbXBUeiBlbmR0aW1lOworCWxvbmcJCXNlY3M7CisJaW50CQkJdXNlY3M7CisK KwlpZiAoIXBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljcykKKwkJcmV0dXJuOworCisJ bWVtc2V0KHJlcG9ydCwgMCwgc2l6ZW9mKFBnU3RhdF9Db21tb25Db3VudHMpKTsKKworCS8q IENhbGN1bGF0ZSBkaWZmcyBvZiBnbG9iYWwgc3RhdCBwYXJhbWV0ZXJzIG9uIFdBTCBhbmQg YnVmZmVyIHVzYWdlLiAqLworCW1lbXNldCgmd2FsdXNhZ2UsIDAsIHNpemVvZihXYWxVc2Fn ZSkpOworCVdhbFVzYWdlQWNjdW1EaWZmKCZ3YWx1c2FnZSwgJnBnV2FsVXNhZ2UsICZjb3Vu dGVycy0+d2FsdXNhZ2UpOworCisJbWVtc2V0KCZidWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZl clVzYWdlKSk7CisJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJmJ1ZnVzYWdlLCAmcGdCdWZmZXJV c2FnZSwgJmNvdW50ZXJzLT5idWZ1c2FnZSk7CisKKwllbmR0aW1lID0gR2V0Q3VycmVudFRp bWVzdGFtcCgpOworCVRpbWVzdGFtcERpZmZlcmVuY2UoY291bnRlcnMtPnN0YXJ0dGltZSwg ZW5kdGltZSwgJnNlY3MsICZ1c2Vjcyk7CisKKwkvKgorCSAqIEZpbGwgYWRkaXRpb25hbCBz dGF0aXN0aWNzIG9uIGEgdmFjdXVtIHByb2Nlc3Npbmcgb3BlcmF0aW9uLgorCSAqLworCXJl cG9ydC0+dG90YWxfYmxrc19yZWFkICs9IGJ1ZnVzYWdlLmxvY2FsX2Jsa3NfcmVhZCArIGJ1 ZnVzYWdlLnNoYXJlZF9ibGtzX3JlYWQ7CisJcmVwb3J0LT50b3RhbF9ibGtzX2hpdCArPSBi dWZ1c2FnZS5sb2NhbF9ibGtzX2hpdCArIGJ1ZnVzYWdlLnNoYXJlZF9ibGtzX2hpdDsKKwly ZXBvcnQtPnRvdGFsX2Jsa3NfZGlydGllZCArPSBidWZ1c2FnZS5sb2NhbF9ibGtzX2RpcnRp ZWQgKyBidWZ1c2FnZS5zaGFyZWRfYmxrc19kaXJ0aWVkOworCXJlcG9ydC0+dG90YWxfYmxr c193cml0dGVuICs9IGJ1ZnVzYWdlLnNoYXJlZF9ibGtzX3dyaXR0ZW47CisKKwlyZXBvcnQt PndhbF9yZWNvcmRzICs9IHdhbHVzYWdlLndhbF9yZWNvcmRzOworCXJlcG9ydC0+d2FsX2Zw aSArPSB3YWx1c2FnZS53YWxfZnBpOworCXJlcG9ydC0+d2FsX2J5dGVzICs9IHdhbHVzYWdl LndhbF9ieXRlczsKKworCXJlcG9ydC0+YmxrX3JlYWRfdGltZSArPSBJTlNUUl9USU1FX0dF VF9NSUxMSVNFQyhidWZ1c2FnZS5sb2NhbF9ibGtfcmVhZF90aW1lKTsKKwlyZXBvcnQtPmJs a19yZWFkX3RpbWUgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2Uuc2hhcmVk X2Jsa19yZWFkX3RpbWUpOworCXJlcG9ydC0+YmxrX3dyaXRlX3RpbWUgKz0gSU5TVFJfVElN RV9HRVRfTUlMTElTRUMoYnVmdXNhZ2UubG9jYWxfYmxrX3dyaXRlX3RpbWUpOworCXJlcG9y dC0+YmxrX3dyaXRlX3RpbWUgKz0gSU5TVFJfVElNRV9HRVRfTUlMTElTRUMoYnVmdXNhZ2Uu c2hhcmVkX2Jsa193cml0ZV90aW1lKTsKKwlyZXBvcnQtPmRlbGF5X3RpbWUgKz0gVmFjdXVt RGVsYXlUaW1lIC0gY291bnRlcnMtPlZhY3V1bURlbGF5VGltZTsKKworCXJlcG9ydC0+dG90 YWxfdGltZSArPSBzZWNzICogMTAwMC4gKyB1c2VjcyAvIDEwMDAuOworCisJaWYgKCFyZWwt PnBnc3RhdF9pbmZvIHx8ICFwZ3N0YXRfdHJhY2tfY291bnRzKQorCisJCS8qCisJCSAqIGlm IHNvbWV0aGluZyBnb2VzIHdyb25nIG9yIGFuIHVzZXIgZG9lc24ndCB3YW50IHRvIHRyYWNr IGEgZGF0YWJhc2UKKwkJICogYWN0aXZpdHkgLSBqdXN0IHN1cHByZXNzIGl0LgorCQkgKi8K KwkJcmV0dXJuOworCisJcmVwb3J0LT5ibGtzX2ZldGNoZWQgKz0KKwkJcmVsLT5wZ3N0YXRf aW5mby0+Y291bnRzLmJsb2Nrc19mZXRjaGVkIC0gY291bnRlcnMtPmJsb2Nrc19mZXRjaGVk OworCXJlcG9ydC0+Ymxrc19oaXQgKz0KKwkJcmVsLT5wZ3N0YXRfaW5mby0+Y291bnRzLmJs b2Nrc19oaXQgLSBjb3VudGVycy0+YmxvY2tzX2hpdDsKK30KKwordm9pZAorZXh0dmFjX3N0 YXRzX3N0YXJ0X2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3Rh dHMsCisJCQkJCSAgIExWRXh0U3RhdENvdW50ZXJzSWR4ICogY291bnRlcnMpCit7CisJaWYg KCFwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJCXJldHVybjsKKworCS8qIFNl dCBpbml0aWFsIHZhbHVlcyBmb3IgY29tbW9uIGhlYXAgYW5kIGluZGV4IHN0YXRpc3RpY3Mg Ki8KKwlleHR2YWNfc3RhdHNfc3RhcnQocmVsLCAmY291bnRlcnMtPmNvbW1vbik7CisJY291 bnRlcnMtPnBhZ2VzX2RlbGV0ZWQgPSBjb3VudGVycy0+dHVwbGVzX3JlbW92ZWQgPSAwOwor CisJaWYgKHN0YXRzICE9IE5VTEwpCisJeworCQkvKgorCQkgKiBYWFg6IFdoeSBkbyB3ZSBu ZWVkIHRoaXMgY29kZSBoZXJlPyBJZiBpdCBpcyBuZWVkZWQsIEkgZmVlbCBsYWNrIG9mCisJ CSAqIGNvbW1lbnRzLCBkZXNjcmliaW5nIHRoZSByZWFzb24uCisJCSAqLworCQljb3VudGVy cy0+dHVwbGVzX3JlbW92ZWQgPSBzdGF0cy0+dHVwbGVzX3JlbW92ZWQ7CisJCWNvdW50ZXJz LT5wYWdlc19kZWxldGVkID0gc3RhdHMtPnBhZ2VzX2RlbGV0ZWQ7CisJfQorfQorCit2b2lk CitleHR2YWNfc3RhdHNfZW5kX2lkeChSZWxhdGlvbiByZWwsIEluZGV4QnVsa0RlbGV0ZVJl c3VsdCAqc3RhdHMsCisJCQkJCSBMVkV4dFN0YXRDb3VudGVyc0lkeCAqIGNvdW50ZXJzLCBQ Z1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKiByZXBvcnQpCit7CisJaWYgKCFwZ3N0YXRf dHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJCXJldHVybjsKKworCW1lbXNldChyZXBvcnQs IDAsIHNpemVvZihQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMpKTsKKworCWV4dHZhY19z dGF0c19lbmQocmVsLCAmY291bnRlcnMtPmNvbW1vbiwgJnJlcG9ydC0+Y29tbW9uKTsKKwor CXJlcG9ydC0+dHlwZSA9IFBHU1RBVF9FWFRWQUNfSU5ERVg7CisKKwlpZiAoc3RhdHMgIT0g TlVMTCkKKwl7CisJCS8qCisJCSAqIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nIG9yIGFuIHVz ZXIgZG9lc24ndCB3YW50IHRvIHRyYWNrIGEgZGF0YWJhc2UKKwkJICogYWN0aXZpdHkgLSBq dXN0IHN1cHByZXNzIGl0LgorCQkgKi8KKworCQkvKiBGaWxsIGluZGV4LXNwZWNpZmljIGV4 dGVuZGVkIHN0YXRzIGZpZWxkcyAqLworCQlyZXBvcnQtPmNvbW1vbi50dXBsZXNfZGVsZXRl ZCA9CisJCQlzdGF0cy0+dHVwbGVzX3JlbW92ZWQgLSBjb3VudGVycy0+dHVwbGVzX3JlbW92 ZWQ7CisJCXJlcG9ydC0+aW5kZXgucGFnZXNfZGVsZXRlZCA9CisJCQlzdGF0cy0+cGFnZXNf ZGVsZXRlZCAtIGNvdW50ZXJzLT5wYWdlc19kZWxldGVkOworCX0KK30KKworLyogQWNjdW11 bGF0ZSB2YWN1dW0gc3RhdGlzdGljcyBmb3IgaGVhcC4KKyAqCisgICogQmVjYXVzZSBvZiBj b21wbGV4aXR5IG9mIHZhY3V1bSBwcm9jZXNzaW5nOiBpdCBzd2l0Y2ggcHJvY2VzaW5nIGJl dHdlZW4KKyAgKiB0aGUgaGVhcCByZWxhdGlvbiB0byBpbmRleCByZWxhdGlvbnMgYW5kIHZp c2EgdmVyc2EsIHdlIG5lZWQgdG8gc3RvcmUKKyAgKiBnYXRoZXJlZCBzdGF0aXN0aWNzIGlu Zm9ybWF0aW9uIGZvciBoZWFwIHJlbGF0aW9ucyBzZXZlcmFsIHRpbWVzIGJlZm9yZQorICAq IHRoZSB2YWN1dW0gc3RhcnRzIHByb2Nlc3NpbmcgdGhlIGluZGV4ZXMgYWdhaW4uCisgICoK KyAgKiBJdCBpcyBuZWNlc3NhcnkgdG8gZ2F0aGVyIGNvcnJlY3Qgc3RhdGlzdGljcyBpbmZv cm1hdGlvbiBmb3IgaGVhcCBhbmQgaW5kZXhlcworICAqIG90aGVyd2ljZSB0aGUgaW5kZXgg c3RhdGlzdGljcyBpbmZvcm1hdGlvbiB3b3VsZCBiZSBhZGRlZCB0byBoaXMgcGFyZW50IGhl YXAKKyAgKiBzdGF0aXN0aWNzIGluZm9ybWF0aW9uIGFuZCBpdCB3b3VsZCBiZSBkaWZmaWN1 bHQgdG8gYW5hbHl6ZSBpdCBsYXRlci4KKyAgKgorICAqIFdlIGNhbid0IHN1YnRyYWN0IHVu aW9uIHZhY3V1bSBzdGF0aXN0aWNzIGluZm9ybWF0aW9uIGZvciBpbmRleCBmcm9tIHRoZSBo ZWFwIHJlbGF0aW9ucworICAqIGJlY2F1c2Ugb2YgdG90YWwgYW5kIGRlbGF5IHRpbWUgdGlt ZSBzdGF0aXN0aWNzIGNvbGxlY3RpbmcgZHVyaW5nIHBhcmFsbGVsIHZhY3V1bQorICAqIHBy b2N1ZHVyZS4KKyovCitzdGF0aWMgdm9pZAorYWNjdW11bGF0ZV9oZWFwX3ZhY3V1bV9zdGF0 aXN0aWNzKExWUmVsU3RhdGUgKnZhY3JlbCwgUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRz ICogZXh0VmFjU3RhdHMpCit7CisJaWYgKCFwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3Rp Y3MpCisJCXJldHVybjsKKworCS8qIEZpbGwgaGVhcC1zcGVjaWZpYyBleHRlbmRlZCBzdGF0 cyBmaWVsZHMgKi8KKwlleHRWYWNTdGF0cy0+dHlwZSA9IFBHU1RBVF9FWFRWQUNfVEFCTEU7 CisJZXh0VmFjU3RhdHMtPnRhYmxlLnBhZ2VzX3NjYW5uZWQgPSB2YWNyZWwtPnNjYW5uZWRf cGFnZXM7CisJZXh0VmFjU3RhdHMtPnRhYmxlLnBhZ2VzX3JlbW92ZWQgPSB2YWNyZWwtPnJl bW92ZWRfcGFnZXM7CisJZXh0VmFjU3RhdHMtPnRhYmxlLnZtX25ld19mcm96ZW5fcGFnZXMg PSB2YWNyZWwtPnZtX25ld19mcm96ZW5fcGFnZXM7CisJZXh0VmFjU3RhdHMtPnRhYmxlLnZt X25ld192aXNpYmxlX3BhZ2VzID0gdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9wYWdlczsKKwll eHRWYWNTdGF0cy0+dGFibGUudm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0gdmFjcmVs LT52bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXM7CisJZXh0VmFjU3RhdHMtPmNvbW1vbi50 dXBsZXNfZGVsZXRlZCA9IHZhY3JlbC0+dHVwbGVzX2RlbGV0ZWQ7CisJZXh0VmFjU3RhdHMt PnRhYmxlLnR1cGxlc19mcm96ZW4gPSB2YWNyZWwtPnR1cGxlc19mcm96ZW47CisJZXh0VmFj U3RhdHMtPnRhYmxlLnJlY2VudGx5X2RlYWRfdHVwbGVzID0gdmFjcmVsLT5yZWNlbnRseV9k ZWFkX3R1cGxlczsKKwlleHRWYWNTdGF0cy0+dGFibGUucmVjZW50bHlfZGVhZF90dXBsZXMg PSB2YWNyZWwtPnJlY2VudGx5X2RlYWRfdHVwbGVzOworCWV4dFZhY1N0YXRzLT50YWJsZS5t aXNzZWRfZGVhZF90dXBsZXMgPSB2YWNyZWwtPm1pc3NlZF9kZWFkX3R1cGxlczsKKwlleHRW YWNTdGF0cy0+dGFibGUubWlzc2VkX2RlYWRfcGFnZXMgPSB2YWNyZWwtPm1pc3NlZF9kZWFk X3BhZ2VzOworCWV4dFZhY1N0YXRzLT50YWJsZS5pbmRleF92YWN1dW1fY291bnQgPSB2YWNy ZWwtPm51bV9pbmRleF9zY2FuczsKKwlleHRWYWNTdGF0cy0+Y29tbW9uLndyYXBhcm91bmRf ZmFpbHNhZmVfY291bnQgPSB2YWNyZWwtPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7CisK KwlleHRWYWNTdGF0cy0+Y29tbW9uLmJsa19yZWFkX3RpbWUgLT0gdmFjcmVsLT5leHRWYWNS ZXBvcnRJZHguY29tbW9uLmJsa19yZWFkX3RpbWU7CisJZXh0VmFjU3RhdHMtPmNvbW1vbi5i bGtfd3JpdGVfdGltZSAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24uYmxrX3dy aXRlX3RpbWU7CisJZXh0VmFjU3RhdHMtPmNvbW1vbi50b3RhbF9ibGtzX2RpcnRpZWQgLT0g dmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLnRvdGFsX2Jsa3NfZGlydGllZDsKKwll eHRWYWNTdGF0cy0+Y29tbW9uLnRvdGFsX2Jsa3NfaGl0IC09IHZhY3JlbC0+ZXh0VmFjUmVw b3J0SWR4LmNvbW1vbi50b3RhbF9ibGtzX2hpdDsKKwlleHRWYWNTdGF0cy0+Y29tbW9uLnRv dGFsX2Jsa3NfcmVhZCAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24udG90YWxf Ymxrc19yZWFkOworCWV4dFZhY1N0YXRzLT5jb21tb24udG90YWxfYmxrc193cml0dGVuIC09 IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmNvbW1vbi50b3RhbF9ibGtzX3dyaXR0ZW47CisJ ZXh0VmFjU3RhdHMtPmNvbW1vbi53YWxfYnl0ZXMgLT0gdmFjcmVsLT5leHRWYWNSZXBvcnRJ ZHguY29tbW9uLndhbF9ieXRlczsKKwlleHRWYWNTdGF0cy0+Y29tbW9uLndhbF9mcGkgLT0g dmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLndhbF9mcGk7CisJZXh0VmFjU3RhdHMt PmNvbW1vbi53YWxfcmVjb3JkcyAtPSB2YWNyZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24u d2FsX3JlY29yZHM7CisKKwlleHRWYWNTdGF0cy0+Y29tbW9uLnRvdGFsX3RpbWUgLT0gdmFj cmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLnRvdGFsX3RpbWU7CisJZXh0VmFjU3RhdHMt PmNvbW1vbi5kZWxheV90aW1lIC09IHZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmNvbW1vbi5k ZWxheV90aW1lOworCit9CisKK3N0YXRpYyB2b2lkCithY2N1bXVsYXRlX2lkeHNfdmFjdXVt X3N0YXRpc3RpY3MoTFZSZWxTdGF0ZSAqdmFjcmVsLCBQZ1N0YXRfVmFjdXVtUmVsYXRpb25D b3VudHMgKiBleHRWYWNJZHhTdGF0cykKK3sKKwkvKiBGaWxsIGhlYXAtc3BlY2lmaWMgZXh0 ZW5kZWQgc3RhdHMgZmllbGRzICovCisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9u LmJsa19yZWFkX3RpbWUgKz0gZXh0VmFjSWR4U3RhdHMtPmNvbW1vbi5ibGtfcmVhZF90aW1l OworCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmNvbW1vbi5ibGtfd3JpdGVfdGltZSArPSBl eHRWYWNJZHhTdGF0cy0+Y29tbW9uLmJsa193cml0ZV90aW1lOworCXZhY3JlbC0+ZXh0VmFj UmVwb3J0SWR4LmNvbW1vbi50b3RhbF9ibGtzX2RpcnRpZWQgKz0gZXh0VmFjSWR4U3RhdHMt PmNvbW1vbi50b3RhbF9ibGtzX2RpcnRpZWQ7CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHgu Y29tbW9uLnRvdGFsX2Jsa3NfaGl0ICs9IGV4dFZhY0lkeFN0YXRzLT5jb21tb24udG90YWxf Ymxrc19oaXQ7CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLnRvdGFsX2Jsa3Nf cmVhZCArPSBleHRWYWNJZHhTdGF0cy0+Y29tbW9uLnRvdGFsX2Jsa3NfcmVhZDsKKwl2YWNy ZWwtPmV4dFZhY1JlcG9ydElkeC5jb21tb24udG90YWxfYmxrc193cml0dGVuICs9IGV4dFZh Y0lkeFN0YXRzLT5jb21tb24udG90YWxfYmxrc193cml0dGVuOworCXZhY3JlbC0+ZXh0VmFj UmVwb3J0SWR4LmNvbW1vbi53YWxfYnl0ZXMgKz0gZXh0VmFjSWR4U3RhdHMtPmNvbW1vbi53 YWxfYnl0ZXM7CisJdmFjcmVsLT5leHRWYWNSZXBvcnRJZHguY29tbW9uLndhbF9mcGkgKz0g ZXh0VmFjSWR4U3RhdHMtPmNvbW1vbi53YWxfZnBpOworCXZhY3JlbC0+ZXh0VmFjUmVwb3J0 SWR4LmNvbW1vbi53YWxfcmVjb3JkcyArPSBleHRWYWNJZHhTdGF0cy0+Y29tbW9uLndhbF9y ZWNvcmRzOworCXZhY3JlbC0+ZXh0VmFjUmVwb3J0SWR4LmNvbW1vbi5kZWxheV90aW1lICs9 IGV4dFZhY0lkeFN0YXRzLT5jb21tb24uZGVsYXlfdGltZTsKKwl2YWNyZWwtPmV4dFZhY1Jl cG9ydElkeC5jb21tb24udG90YWxfdGltZSArPSBleHRWYWNJZHhTdGF0cy0+Y29tbW9uLnRv dGFsX3RpbWU7Cit9CiAKIAogLyoKQEAgLTYzNSw3ICs4NjMsNiBAQCBoZWFwX3ZhY3V1bV9y ZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQkJCW5ld19y ZWxfYWxsdmlzaWJsZSwKIAkJCQluZXdfcmVsX2FsbGZyb3plbjsKIAlQR1JVc2FnZQlydTA7 Ci0JVGltZXN0YW1wVHogc3RhcnR0aW1lID0gMDsKIAlQZ1N0YXRfQ291bnRlciBzdGFydHJl YWR0aW1lID0gMCwKIAkJCQlzdGFydHdyaXRldGltZSA9IDA7CiAJV2FsVXNhZ2UJc3RhcnR3 YWx1c2FnZSA9IHBnV2FsVXNhZ2U7CkBAIC02NDMsNiArODcwLDExIEBAIGhlYXBfdmFjdXVt X3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJRXJyb3JD b250ZXh0Q2FsbGJhY2sgZXJyY2FsbGJhY2s7CiAJY2hhcgkgICoqaW5kbmFtZXMgPSBOVUxM OwogCVNpemUJCWRlYWRfaXRlbXNfbWF4X2J5dGVzID0gMDsKKwlMVkV4dFN0YXRDb3VudGVy cyBleHRWYWNDb3VudGVyczsKKwlQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgZXh0VmFj UmVwb3J0OworCisJLyogSW5pdGlhbGl6ZSB2YWN1dW0gc3RhdGlzdGljcyAqLworCW1lbXNl dCgmZXh0VmFjUmVwb3J0LCAwLCBzaXplb2YoUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRz KSk7CiAKIAl2ZXJib3NlID0gKHBhcmFtcy5vcHRpb25zICYgVkFDT1BUX1ZFUkJPU0UpICE9 IDA7CiAJaW5zdHJ1bWVudCA9ICh2ZXJib3NlIHx8IChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9j ZXNzKCkgJiYKQEAgLTY1Nyw4ICs4ODksNyBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24g cmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQl9CiAJfQogCi0JLyogVXNlZCBm b3IgaW5zdHJ1bWVudGF0aW9uIGFuZCBzdGF0cyByZXBvcnQgKi8KLQlzdGFydHRpbWUgPSBH ZXRDdXJyZW50VGltZXN0YW1wKCk7CisJZXh0dmFjX3N0YXRzX3N0YXJ0KHJlbCwgJmV4dFZh Y0NvdW50ZXJzKTsKIAogCXBnc3RhdF9wcm9ncmVzc19zdGFydF9jb21tYW5kKFBST0dSRVNT X0NPTU1BTkRfVkFDVVVNLAogCQkJCQkJCQkgIFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CkBA IC02NzEsNiArOTAyLDggQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3Qg VmFjdXVtUGFyYW1zIHBhcmFtcywKIAkJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQ Uk9HUkVTU19WQUNVVU1fU1RBUlRFRF9CWSwKIAkJCQkJCQkJCSBQUk9HUkVTU19WQUNVVU1f U1RBUlRFRF9CWV9NQU5VQUwpOwogCisJZXh0dmFjX3N0YXRzX3N0YXJ0KHJlbCwgJmV4dFZh Y0NvdW50ZXJzKTsKKwogCS8qCiAJICogU2V0dXAgZXJyb3IgdHJhY2ViYWNrIHN1cHBvcnQg Zm9yIGVyZXBvcnQoKSBmaXJzdC4gIFRoZSBpZGVhIGlzIHRvIHNldAogCSAqIHVwIGFuIGVy cm9yIGNvbnRleHQgY2FsbGJhY2sgdG8gZGlzcGxheSBhZGRpdGlvbmFsIGluZm9ybWF0aW9u IG9uIGFueQpAQCAtNjg3LDYgKzkyMCw3IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiBy ZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJdmFjcmVsLT5kYm5hbWUgPSBnZXRf ZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpOwogCXZhY3JlbC0+cmVsbmFtZXNwYWNlID0g Z2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpOwogCXZhY3Jl bC0+cmVsbmFtZSA9IHBzdHJkdXAoUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSk7CisJ dmFjcmVsLT5yZWxvaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbCk7CiAJdmFjcmVsLT5pbmRu YW1lID0gTlVMTDsKIAl2YWNyZWwtPnBoYXNlID0gVkFDVVVNX0VSUkNCX1BIQVNFX1VOS05P V047CiAJdmFjcmVsLT52ZXJib3NlID0gdmVyYm9zZTsKQEAgLTY5NSw2ICs5MjksOSBAQCBo ZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1z LAogCWVycmNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4dF9zdGFjazsKIAllcnJv cl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCisJbWVtc2V0KCZ2YWNyZWwtPmV4 dFZhY1JlcG9ydElkeCwgMCwgc2l6ZW9mKFBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cykp OworCW1lbXNldCgmZXh0VmFjUmVwb3J0LmNvbW1vbiwgMCwgc2l6ZW9mKFBnU3RhdF9Db21t b25Db3VudHMpKTsKKwogCS8qIFNldCB1cCBoaWdoIGxldmVsIHN0dWZmIGFib3V0IHJlbCBh bmQgaXRzIGluZGV4ZXMgKi8KIAl2YWNyZWwtPnJlbCA9IHJlbDsKIAl2YWNfb3Blbl9pbmRl eGVzKHZhY3JlbC0+cmVsLCBSb3dFeGNsdXNpdmVMb2NrLCAmdmFjcmVsLT5uaW5kZXhlcywK QEAgLTc5Nyw2ICsxMDM0LDcgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29u c3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAl2YWNyZWwtPmFnZ3Jlc3NpdmUgPSB2YWN1dW1f Z2V0X2N1dG9mZnMocmVsLCBwYXJhbXMsICZ2YWNyZWwtPmN1dG9mZnMpOwogCXZhY3JlbC0+ cmVsX3BhZ2VzID0gb3JpZ19yZWxfcGFnZXMgPSBSZWxhdGlvbkdldE51bWJlck9mQmxvY2tz KHJlbCk7CiAJdmFjcmVsLT52aXN0ZXN0ID0gR2xvYmFsVmlzVGVzdEZvcihyZWwpOworCXZh Y3JlbC0+d3JhcGFyb3VuZF9mYWlsc2FmZV9jb3VudCA9IDA7CiAKIAkvKiBJbml0aWFsaXpl IHN0YXRlIHVzZWQgdG8gdHJhY2sgb2xkZXN0IGV4dGFudCBYSUQvTVhJRCAqLwogCXZhY3Jl bC0+TmV3UmVsZnJvemVuWGlkID0gdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW47CkBAIC05 NTksNiArMTE5Nyw5IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiByZWwsIGNvbnN0IFZh Y3V1bVBhcmFtcyBwYXJhbXMsCiAJCQkJCQl2YWNyZWwtPk5ld1JlbGZyb3plblhpZCwgdmFj cmVsLT5OZXdSZWxtaW5NeGlkLAogCQkJCQkJJmZyb3plbnhpZF91cGRhdGVkLCAmbWlubXVs dGlfdXBkYXRlZCwgZmFsc2UpOwogCisJLyogTWFrZSBnZW5lcmljIGV4dGVuZGVkIHZhY3V1 bSBzdGF0cyByZXBvcnQgKi8KKwkvKiBleHR2YWNfc3RhdHNfZW5kKHJlbCwgJmV4dFZhY0Nv dW50ZXJzLCAmZXh0VmFjUmVwb3J0LmNvbW1vbik7ICovCisKIAkvKgogCSAqIFJlcG9ydCBy ZXN1bHRzIHRvIHRoZSBjdW11bGF0aXZlIHN0YXRzIHN5c3RlbSwgdG9vLgogCSAqCkBAIC05 NjksMTEgKzEyMTAsMTkgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3Qg VmFjdXVtUGFyYW1zIHBhcmFtcywKIAkgKiBzb29uIGluIGNhc2VzIHdoZXJlIHRoZSBmYWls c2FmZSBwcmV2ZW50ZWQgc2lnbmlmaWNhbnQgYW1vdW50cyBvZiBoZWFwCiAJICogdmFjdXVt aW5nLgogCSAqLworCisJLyoKKwkgKiBNYWtlIGdlbmVyaWMgZXh0ZW5kZWQgdmFjdXVtIHN0 YXRzIHJlcG9ydCBhbmQgZmlsbCBoZWFwLXNwZWNpZmljCisJICogZXh0ZW5kZWQgc3RhdHMg ZmllbGRzLgorCSAqLworCWV4dHZhY19zdGF0c19lbmQodmFjcmVsLT5yZWwsICZleHRWYWND b3VudGVycywgJmV4dFZhY1JlcG9ydC5jb21tb24pOworCWFjY3VtdWxhdGVfaGVhcF92YWN1 dW1fc3RhdGlzdGljcyh2YWNyZWwsICZleHRWYWNSZXBvcnQpOworCXBnc3RhdF9yZXBvcnRf dmFjdXVtX2V4dHN0YXRzKHZhY3JlbC0+cmVsb2lkLCByZWwtPnJkX3JlbC0+cmVsaXNzaGFy ZWQsICZleHRWYWNSZXBvcnQpOwogCXBnc3RhdF9yZXBvcnRfdmFjdXVtKHJlbCwKIAkJCQkJ CSBNYXgodmFjcmVsLT5uZXdfbGl2ZV90dXBsZXMsIDApLAogCQkJCQkJIHZhY3JlbC0+cmVj ZW50bHlfZGVhZF90dXBsZXMgKwogCQkJCQkJIHZhY3JlbC0+bWlzc2VkX2RlYWRfdHVwbGVz LAotCQkJCQkJIHN0YXJ0dGltZSk7CisJCQkJCQkgZXh0VmFjQ291bnRlcnMuc3RhcnR0aW1l KTsKIAlwZ3N0YXRfcHJvZ3Jlc3NfZW5kX2NvbW1hbmQoKTsKIAogCWlmIChpbnN0cnVtZW50 KQpAQCAtOTgxLDcgKzEyMzAsNyBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBj b25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQlUaW1lc3RhbXBUeiBlbmR0aW1lID0gR2V0 Q3VycmVudFRpbWVzdGFtcCgpOwogCiAJCWlmICh2ZXJib3NlIHx8IHBhcmFtcy5sb2dfdmFj dXVtX21pbl9kdXJhdGlvbiA9PSAwIHx8Ci0JCQlUaW1lc3RhbXBEaWZmZXJlbmNlRXhjZWVk cyhzdGFydHRpbWUsIGVuZHRpbWUsCisJCQlUaW1lc3RhbXBEaWZmZXJlbmNlRXhjZWVkcyhl eHRWYWNDb3VudGVycy5zdGFydHRpbWUsIGVuZHRpbWUsCiAJCQkJCQkJCQkgICBwYXJhbXMu bG9nX3ZhY3V1bV9taW5fZHVyYXRpb24pKQogCQl7CiAJCQlsb25nCQlzZWNzX2R1cjsKQEAg LTk5Nyw3ICsxMjQ2LDcgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwgY29uc3Qg VmFjdXVtUGFyYW1zIHBhcmFtcywKIAkJCWludDY0CQl0b3RhbF9ibGtzX3JlYWQ7CiAJCQlp bnQ2NAkJdG90YWxfYmxrc19kaXJ0aWVkOwogCi0JCQlUaW1lc3RhbXBEaWZmZXJlbmNlKHN0 YXJ0dGltZSwgZW5kdGltZSwgJnNlY3NfZHVyLCAmdXNlY3NfZHVyKTsKKwkJCVRpbWVzdGFt cERpZmZlcmVuY2UoZXh0VmFjQ291bnRlcnMuc3RhcnR0aW1lLCBlbmR0aW1lLCAmc2Vjc19k dXIsICZ1c2Vjc19kdXIpOwogCQkJbWVtc2V0KCZ3YWx1c2FnZSwgMCwgc2l6ZW9mKFdhbFVz YWdlKSk7CiAJCQlXYWxVc2FnZUFjY3VtRGlmZigmd2FsdXNhZ2UsICZwZ1dhbFVzYWdlLCAm c3RhcnR3YWx1c2FnZSk7CiAJCQltZW1zZXQoJmJ1ZmZlcnVzYWdlLCAwLCBzaXplb2YoQnVm ZmVyVXNhZ2UpKTsKQEAgLTE5NDAsNiArMjE4OSw3IEBAIGxhenlfc2Nhbl9uZXdfb3JfZW1w dHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBCbG9ja051bWJlciBibGtubywK IAogCQkJLyogQ291bnQgdGhlIG5ld2x5IGFsbC1mcm96ZW4gcGFnZXMgZm9yIGxvZ2dpbmcg Ki8KIAkJCXZhY3JlbC0+dm1fbmV3X3Zpc2libGVfcGFnZXMrKzsKKwkJCXZhY3JlbC0+dm1f bmV3X2Zyb3plbl9wYWdlcysrOwogCQkJdmFjcmVsLT52bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMrKzsKIAkJfQogCkBAIC0yNjYyLDEwICsyOTEyLDIwIEBAIGxhenlfdmFjdXVtX2Fs bF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAl9CiAJZWxzZQogCXsKKwkJTFZFeHRT dGF0Q291bnRlcnMgY291bnRlcnM7CisJCVBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyBl eHRWYWNSZXBvcnQ7CisKKwkJbWVtc2V0KCZleHRWYWNSZXBvcnQuY29tbW9uLCAwLCBzaXpl b2YoUGdTdGF0X0NvbW1vbkNvdW50cykpOworCisJCWV4dHZhY19zdGF0c19zdGFydCh2YWNy ZWwtPnJlbCwgJmNvdW50ZXJzKTsKKwogCQkvKiBPdXRzb3VyY2UgZXZlcnl0aGluZyB0byBw YXJhbGxlbCB2YXJpYW50ICovCiAJCXBhcmFsbGVsX3ZhY3V1bV9idWxrZGVsX2FsbF9pbmRl eGVzKHZhY3JlbC0+cHZzLCBvbGRfbGl2ZV90dXBsZXMsCiAJCQkJCQkJCQkJCXZhY3JlbC0+ bnVtX2luZGV4X3NjYW5zKTsKIAorCQlleHR2YWNfc3RhdHNfZW5kKHZhY3JlbC0+cmVsLCAm Y291bnRlcnMsICZleHRWYWNSZXBvcnQuY29tbW9uKTsKKwkJYWNjdW11bGF0ZV9pZHhzX3Zh Y3V1bV9zdGF0aXN0aWNzKHZhY3JlbCwgJmV4dFZhY1JlcG9ydCk7CisKIAkJLyoKIAkJICog RG8gYSBwb3N0Y2hlY2sgdG8gY29uc2lkZXIgYXBwbHlpbmcgd3JhcGFyb3VuZCBmYWlsc2Fm ZSBub3cuICBOb3RlCiAJCSAqIHRoYXQgcGFyYWxsZWwgVkFDVVVNIG9ubHkgZ2V0cyB0aGUg cHJlY2hlY2sgYW5kIHRoaXMgcG9zdGNoZWNrLgpAQCAtMzAxMiw2ICszMjcyLDcgQEAgbGF6 eV9jaGVja193cmFwYXJvdW5kX2ZhaWxzYWZlKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJaW50 NjQJCXByb2dyZXNzX3ZhbFszXSA9IHswLCAwLCBQUk9HUkVTU19WQUNVVU1fTU9ERV9GQUlM U0FGRX07CiAKIAkJVmFjdXVtRmFpbHNhZmVBY3RpdmUgPSB0cnVlOworCQl2YWNyZWwtPndy YXBhcm91bmRfZmFpbHNhZmVfY291bnQrKzsKIAogCQkvKgogCQkgKiBBYmFuZG9uIHVzZSBv ZiBhIGJ1ZmZlciBhY2Nlc3Mgc3RyYXRlZ3kgdG8gYWxsb3cgdXNlIG9mIGFsbCBvZgpAQCAt MzA5NCwxMCArMzM1NSwyMCBAQCBsYXp5X2NsZWFudXBfYWxsX2luZGV4ZXMoTFZSZWxTdGF0 ZSAqdmFjcmVsKQogCX0KIAllbHNlCiAJeworCQlMVkV4dFN0YXRDb3VudGVycyBjb3VudGVy czsKKwkJUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzIGV4dFZhY1JlcG9ydDsKKworCQlt ZW1zZXQoJmV4dFZhY1JlcG9ydC5jb21tb24sIDAsIHNpemVvZihQZ1N0YXRfQ29tbW9uQ291 bnRzKSk7CisKKwkJZXh0dmFjX3N0YXRzX3N0YXJ0KHZhY3JlbC0+cmVsLCAmY291bnRlcnMp OworCiAJCS8qIE91dHNvdXJjZSBldmVyeXRoaW5nIHRvIHBhcmFsbGVsIHZhcmlhbnQgKi8K IAkJcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXModmFjcmVsLT5wdnMsIHJl bHR1cGxlcywKIAkJCQkJCQkJCQkJdmFjcmVsLT5udW1faW5kZXhfc2NhbnMsCiAJCQkJCQkJ CQkJCWVzdGltYXRlZF9jb3VudCk7CisKKwkJZXh0dmFjX3N0YXRzX2VuZCh2YWNyZWwtPnJl bCwgJmNvdW50ZXJzLCAmZXh0VmFjUmVwb3J0LmNvbW1vbik7CisJCWFjY3VtdWxhdGVfaWR4 c192YWN1dW1fc3RhdGlzdGljcyh2YWNyZWwsICZleHRWYWNSZXBvcnQpOwogCX0KIAogCS8q IFJlc2V0IHRoZSBwcm9ncmVzcyBjb3VudGVycyAqLwpAQCAtMzEyMyw2ICszMzk0LDE0IEBA IGxhenlfdmFjdXVtX29uZV9pbmRleChSZWxhdGlvbiBpbmRyZWwsIEluZGV4QnVsa0RlbGV0 ZVJlc3VsdCAqaXN0YXQsCiB7CiAJSW5kZXhWYWN1dW1JbmZvIGl2aW5mbzsKIAlMVlNhdmVk RXJySW5mbyBzYXZlZF9lcnJfaW5mbzsKKwlMVkV4dFN0YXRDb3VudGVyc0lkeCBleHRWYWND b3VudGVyczsKKwlQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgZXh0VmFjUmVwb3J0Owor CisJbWVtc2V0KCZleHRWYWNSZXBvcnQsIDAsIHNpemVvZihQZ1N0YXRfVmFjdXVtUmVsYXRp b25Db3VudHMpKTsKKwltZW1zZXQoJmV4dFZhY1JlcG9ydC5jb21tb24sIDAsIHNpemVvZihQ Z1N0YXRfQ29tbW9uQ291bnRzKSk7CisKKwkvKiBTZXQgaW5pdGlhbCBzdGF0aXN0aWNzIHZh bHVlcyB0byBnYXRoZXIgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHRoZSBpbmRleCAqLworCWV4 dHZhY19zdGF0c19zdGFydF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZhY0NvdW50ZXJzKTsK IAogCWl2aW5mby5pbmRleCA9IGluZHJlbDsKIAlpdmluZm8uaGVhcHJlbCA9IHZhY3JlbC0+ cmVsOwpAQCAtMzE0MSw2ICszNDIwLDcgQEAgbGF6eV92YWN1dW1fb25lX2luZGV4KFJlbGF0 aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIAkgKi8KIAlBc3Nl cnQodmFjcmVsLT5pbmRuYW1lID09IE5VTEwpOwogCXZhY3JlbC0+aW5kbmFtZSA9IHBzdHJk dXAoUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoaW5kcmVsKSk7CisJdmFjcmVsLT5pbmRvaWQg PSBSZWxhdGlvbkdldFJlbGlkKGluZHJlbCk7CiAJdXBkYXRlX3ZhY3V1bV9lcnJvcl9pbmZv KHZhY3JlbCwgJnNhdmVkX2Vycl9pbmZvLAogCQkJCQkJCSBWQUNVVU1fRVJSQ0JfUEhBU0Vf VkFDVVVNX0lOREVYLAogCQkJCQkJCSBJbnZhbGlkQmxvY2tOdW1iZXIsIEludmFsaWRPZmZz ZXROdW1iZXIpOwpAQCAtMzE0OSw2ICszNDI5LDE0IEBAIGxhenlfdmFjdXVtX29uZV9pbmRl eChSZWxhdGlvbiBpbmRyZWwsIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqaXN0YXQsCiAJaXN0 YXQgPSB2YWNfYnVsa2RlbF9vbmVfaW5kZXgoJml2aW5mbywgaXN0YXQsIHZhY3JlbC0+ZGVh ZF9pdGVtcywKIAkJCQkJCQkJICB2YWNyZWwtPmRlYWRfaXRlbXNfaW5mbyk7CiAKKwkvKiBN YWtlIGV4dGVuZGVkIHZhY3V1bSBzdGF0cyByZXBvcnQgZm9yIGluZGV4ICovCisJZXh0dmFj X3N0YXRzX2VuZF9pZHgoaW5kcmVsLCBpc3RhdCwgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFj UmVwb3J0KTsKKworCWlmICghUGFyYWxsZWxWYWN1dW1Jc0FjdGl2ZSh2YWNyZWwpKQorCQlh Y2N1bXVsYXRlX2lkeHNfdmFjdXVtX3N0YXRpc3RpY3ModmFjcmVsLCAmZXh0VmFjUmVwb3J0 KTsKKworCXBnc3RhdF9yZXBvcnRfdmFjdXVtX2V4dHN0YXRzKHZhY3JlbC0+aW5kb2lkLCBp bmRyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsICZleHRWYWNSZXBvcnQpOworCiAJLyogUmV2 ZXJ0IHRvIHRoZSBwcmV2aW91cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgdHJhY2Vi YWNrICovCiAJcmVzdG9yZV92YWN1dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZzYXZlZF9lcnJf aW5mbyk7CiAJcGZyZWUodmFjcmVsLT5pbmRuYW1lKTsKQEAgLTMxNzMsNiArMzQ2MSwxMSBA QCBsYXp5X2NsZWFudXBfb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhCdWxrRGVs ZXRlUmVzdWx0ICppc3RhdCwKIHsKIAlJbmRleFZhY3V1bUluZm8gaXZpbmZvOwogCUxWU2F2 ZWRFcnJJbmZvIHNhdmVkX2Vycl9pbmZvOworCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZh Y0NvdW50ZXJzOworCVBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyBleHRWYWNSZXBvcnQ7 CisKKwkvKiBTZXQgaW5pdGlhbCBzdGF0aXN0aWNzIHZhbHVlcyB0byBnYXRoZXIgdmFjdXVt IHN0YXRpc3RpY3MgZm9yIHRoZSBpbmRleCAqLworCWV4dHZhY19zdGF0c19zdGFydF9pZHgo aW5kcmVsLCBpc3RhdCwgJmV4dFZhY0NvdW50ZXJzKTsKIAogCWl2aW5mby5pbmRleCA9IGlu ZHJlbDsKIAlpdmluZm8uaGVhcHJlbCA9IHZhY3JlbC0+cmVsOwpAQCAtMzE5MiwxMiArMzQ4 NSwyMSBAQCBsYXp5X2NsZWFudXBfb25lX2luZGV4KFJlbGF0aW9uIGluZHJlbCwgSW5kZXhC dWxrRGVsZXRlUmVzdWx0ICppc3RhdCwKIAkgKi8KIAlBc3NlcnQodmFjcmVsLT5pbmRuYW1l ID09IE5VTEwpOwogCXZhY3JlbC0+aW5kbmFtZSA9IHBzdHJkdXAoUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUoaW5kcmVsKSk7CisJdmFjcmVsLT5pbmRvaWQgPSBSZWxhdGlvbkdldFJlbGlk KGluZHJlbCk7CiAJdXBkYXRlX3ZhY3V1bV9lcnJvcl9pbmZvKHZhY3JlbCwgJnNhdmVkX2Vy cl9pbmZvLAogCQkJCQkJCSBWQUNVVU1fRVJSQ0JfUEhBU0VfSU5ERVhfQ0xFQU5VUCwKIAkJ CQkJCQkgSW52YWxpZEJsb2NrTnVtYmVyLCBJbnZhbGlkT2Zmc2V0TnVtYmVyKTsKIAogCWlz dGF0ID0gdmFjX2NsZWFudXBfb25lX2luZGV4KCZpdmluZm8sIGlzdGF0KTsKIAorCS8qIE1h a2UgZXh0ZW5kZWQgdmFjdXVtIHN0YXRzIHJlcG9ydCBmb3IgaW5kZXggKi8KKwlleHR2YWNf c3RhdHNfZW5kX2lkeChpbmRyZWwsIGlzdGF0LCAmZXh0VmFjQ291bnRlcnMsICZleHRWYWNS ZXBvcnQpOworCisJaWYgKCFQYXJhbGxlbFZhY3V1bUlzQWN0aXZlKHZhY3JlbCkpCisJCWFj Y3VtdWxhdGVfaWR4c192YWN1dW1fc3RhdGlzdGljcyh2YWNyZWwsICZleHRWYWNSZXBvcnQp OworCisJcGdzdGF0X3JlcG9ydF92YWN1dW1fZXh0c3RhdHMoUmVsYXRpb25HZXRSZWxpZChp bmRyZWwpLCBpbmRyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQsICZleHRWYWNSZXBvcnQpOwor CiAJLyogUmV2ZXJ0IHRvIHRoZSBwcmV2aW91cyBwaGFzZSBpbmZvcm1hdGlvbiBmb3IgZXJy b3IgdHJhY2ViYWNrICovCiAJcmVzdG9yZV92YWN1dW1fZXJyb3JfaW5mbyh2YWNyZWwsICZz YXZlZF9lcnJfaW5mbyk7CiAJcGZyZWUodmFjcmVsLT5pbmRuYW1lKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFw LmMKaW5kZXggNjA2NDM0ODIzY2YuLjAyNDk0Njc2NmQ4IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL2hlYXAuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpA QCAtMTg4Myw2ICsxODgzLDcgQEAgaGVhcF9kcm9wX3dpdGhfY2F0YWxvZyhPaWQgcmVsaWQp CiAKIAkvKiBlbnN1cmUgdGhhdCBzdGF0cyBhcmUgZHJvcHBlZCBpZiB0cmFuc2FjdGlvbiBj b21taXRzICovCiAJcGdzdGF0X2Ryb3BfcmVsYXRpb24ocmVsKTsKKwlwZ3N0YXRfdmFjdXVt X3JlbGF0aW9uX2RlbGV0ZV9wZW5kaW5nX2NiKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CiAK IAkvKgogCSAqIENsb3NlIHJlbGNhY2hlIGVudHJ5LCBidXQgKmtlZXAqIEFjY2Vzc0V4Y2x1 c2l2ZUxvY2sgb24gdGhlIHJlbGF0aW9uCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL2luZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKaW5kZXggNDNkZTQy Y2UzOWUuLmYwMDYyODdjYmY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2lu ZGV4LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCkBAIC0yMzI1LDYgKzIz MjUsNyBAQCBpbmRleF9kcm9wKE9pZCBpbmRleElkLCBib29sIGNvbmN1cnJlbnQsIGJvb2wg Y29uY3VycmVudF9sb2NrX21vZGUpCiAKIAkvKiBlbnN1cmUgdGhhdCBzdGF0cyBhcmUgZHJv cHBlZCBpZiB0cmFuc2FjdGlvbiBjb21taXRzICovCiAJcGdzdGF0X2Ryb3BfcmVsYXRpb24o dXNlckluZGV4UmVsYXRpb24pOworCXBnc3RhdF92YWN1dW1fcmVsYXRpb25fZGVsZXRlX3Bl bmRpbmdfY2IoUmVsYXRpb25HZXRSZWxpZCh1c2VySW5kZXhSZWxhdGlvbikpOwogCiAJLyoK IAkgKiBDbG9zZSBhbmQgZmx1c2ggdGhlIGluZGV4J3MgcmVsY2FjaGUgZW50cnksIHRvIGVu c3VyZSByZWxjYWNoZSBkb2Vzbid0CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5z cWwKaW5kZXggZmExMDJmOWMyNzAuLmM5ZDE5YzJmYjE4IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xNDU0LDMgKzE0NTQsMTEyIEBAIFJFVk9LRSBBTEwg T04gcGdfYWlvcyBGUk9NIFBVQkxJQzsKIEdSQU5UIFNFTEVDVCBPTiBwZ19haW9zIFRPIHBn X3JlYWRfYWxsX3N0YXRzOwogUkVWT0tFIEVYRUNVVEUgT04gRlVOQ1RJT04gcGdfZ2V0X2Fp b3MoKSBGUk9NIFBVQkxJQzsKIEdSQU5UIEVYRUNVVEUgT04gRlVOQ1RJT04gcGdfZ2V0X2Fp b3MoKSBUTyBwZ19yZWFkX2FsbF9zdGF0czsKKy0tCistLSBTaG93IGV4dGVuZGVkIGN1bXVs YXRpdmUgc3RhdGlzdGljcyBvbiBhIHZhY3V1bSBvcGVyYXRpb24gb3ZlciBhbGwgdGFibGVz IGFuZAorLS0gZGF0YWJhc2VzIG9mIHRoZSBpbnN0YW5jZS4KKy0tIFVzZSBJbnZhbGlkIE9p ZCAiMCIgYXMgYW4gaW5wdXQgcmVsYXRpb24gaWQgdG8gZ2V0IHN0YXQgb24gZWFjaCB0YWJs ZSBpbiBhCistLSBkYXRhYmFzZS4KKy0tCisKK0NSRUFURSBWSUVXIHBnX3N0YXRfdmFjdXVt X3RhYmxlcyBBUworICAgIFNFTEVDVAorICAgICAgICBOLm5zcG5hbWUgQVMgc2NoZW1hbmFt ZSwKKyAgICAgICAgQy5yZWxuYW1lIEFTIHJlbG5hbWUsCisgICAgICAgIFMucmVsaWQgYXMg cmVsaWQsCisKKyAgICAgICAgUy50b3RhbF9ibGtzX3JlYWQgQVMgdG90YWxfYmxrc19yZWFk LAorICAgICAgICBTLnRvdGFsX2Jsa3NfaGl0IEFTIHRvdGFsX2Jsa3NfaGl0LAorICAgICAg ICBTLnRvdGFsX2Jsa3NfZGlydGllZCBBUyB0b3RhbF9ibGtzX2RpcnRpZWQsCisgICAgICAg IFMudG90YWxfYmxrc193cml0dGVuIEFTIHRvdGFsX2Jsa3Nfd3JpdHRlbiwKKworICAgICAg ICBTLnJlbF9ibGtzX3JlYWQgQVMgcmVsX2Jsa3NfcmVhZCwKKyAgICAgICAgUy5yZWxfYmxr c19oaXQgQVMgcmVsX2Jsa3NfaGl0LAorCisgICAgICAgIFMucGFnZXNfc2Nhbm5lZCBBUyBw YWdlc19zY2FubmVkLAorICAgICAgICBTLnBhZ2VzX3JlbW92ZWQgQVMgcGFnZXNfcmVtb3Zl ZCwKKyAgICAgICAgUy52bV9uZXdfZnJvemVuX3BhZ2VzIEFTIHZtX25ld19mcm96ZW5fcGFn ZXMsCisgICAgICAgIFMudm1fbmV3X3Zpc2libGVfcGFnZXMgQVMgdm1fbmV3X3Zpc2libGVf cGFnZXMsCisgICAgICAgIFMudm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIEFTIHZtX25l d192aXNpYmxlX2Zyb3plbl9wYWdlcywKKyAgICAgICAgUy5taXNzZWRfZGVhZF9wYWdlcyBB UyBtaXNzZWRfZGVhZF9wYWdlcywKKyAgICAgICAgUy50dXBsZXNfZGVsZXRlZCBBUyB0dXBs ZXNfZGVsZXRlZCwKKyAgICAgICAgUy50dXBsZXNfZnJvemVuIEFTIHR1cGxlc19mcm96ZW4s CisgICAgICAgIFMucmVjZW50bHlfZGVhZF90dXBsZXMgQVMgcmVjZW50bHlfZGVhZF90dXBs ZXMsCisgICAgICAgIFMubWlzc2VkX2RlYWRfdHVwbGVzIEFTIG1pc3NlZF9kZWFkX3R1cGxl cywKKworICAgICAgICBTLndyYXBhcm91bmRfZmFpbHNhZmUgQVMgd3JhcGFyb3VuZF9mYWls c2FmZSwKKyAgICAgICAgUy5pbmRleF92YWN1dW1fY291bnQgQVMgaW5kZXhfdmFjdXVtX2Nv dW50LAorICAgICAgICBTLndhbF9yZWNvcmRzIEFTIHdhbF9yZWNvcmRzLAorICAgICAgICBT LndhbF9mcGkgQVMgd2FsX2ZwaSwKKyAgICAgICAgUy53YWxfYnl0ZXMgQVMgd2FsX2J5dGVz LAorCisgICAgICAgIFMuYmxrX3JlYWRfdGltZSBBUyBibGtfcmVhZF90aW1lLAorICAgICAg ICBTLmJsa193cml0ZV90aW1lIEFTIGJsa193cml0ZV90aW1lLAorCisgICAgICAgIFMuZGVs YXlfdGltZSBBUyBkZWxheV90aW1lLAorICAgICAgICBTLnRvdGFsX3RpbWUgQVMgdG90YWxf dGltZQorCisgICAgRlJPTSBwZ19jbGFzcyBDIEpPSU4KKyAgICAgICAgICAgIHBnX25hbWVz cGFjZSBOIE9OIE4ub2lkID0gQy5yZWxuYW1lc3BhY2UsCisgICAgICAgICAgICBMQVRFUkFM IHBnX3N0YXRfZ2V0X3ZhY3V1bV90YWJsZXMoQy5vaWQpIFMKKyAgICBXSEVSRSBDLnJlbGtp bmQgSU4gKCdyJywgJ3QnLCAnbScpOworCitDUkVBVEUgVklFVyBwZ19zdGF0X3ZhY3V1bV9p bmRleGVzIEFTCisgICAgU0VMRUNUCisgICAgICAgICAgICBDLm9pZCBBUyByZWxpZCwKKyAg ICAgICAgICAgIEkub2lkIEFTIGluZGV4cmVsaWQsCisgICAgICAgICAgICBOLm5zcG5hbWUg QVMgc2NoZW1hbmFtZSwKKyAgICAgICAgICAgIEMucmVsbmFtZSBBUyByZWxuYW1lLAorICAg ICAgICAgICAgSS5yZWxuYW1lIEFTIGluZGV4cmVsbmFtZSwKKworICAgICAgICAgICAgUy50 b3RhbF9ibGtzX3JlYWQgQVMgdG90YWxfYmxrc19yZWFkLAorICAgICAgICAgICAgUy50b3Rh bF9ibGtzX2hpdCBBUyB0b3RhbF9ibGtzX2hpdCwKKyAgICAgICAgICAgIFMudG90YWxfYmxr c19kaXJ0aWVkIEFTIHRvdGFsX2Jsa3NfZGlydGllZCwKKyAgICAgICAgICAgIFMudG90YWxf Ymxrc193cml0dGVuIEFTIHRvdGFsX2Jsa3Nfd3JpdHRlbiwKKworICAgICAgICAgICAgUy5y ZWxfYmxrc19yZWFkIEFTIHJlbF9ibGtzX3JlYWQsCisgICAgICAgICAgICBTLnJlbF9ibGtz X2hpdCBBUyByZWxfYmxrc19oaXQsCisKKyAgICAgICAgICAgIFMucGFnZXNfZGVsZXRlZCBB UyBwYWdlc19kZWxldGVkLAorICAgICAgICAgICAgUy50dXBsZXNfZGVsZXRlZCBBUyB0dXBs ZXNfZGVsZXRlZCwKKworICAgICAgICAgICAgUy53YWxfcmVjb3JkcyBBUyB3YWxfcmVjb3Jk cywKKyAgICAgICAgICAgIFMud2FsX2ZwaSBBUyB3YWxfZnBpLAorICAgICAgICAgICAgUy53 YWxfYnl0ZXMgQVMgd2FsX2J5dGVzLAorCisgICAgICAgICAgICBTLmJsa19yZWFkX3RpbWUg QVMgYmxrX3JlYWRfdGltZSwKKyAgICAgICAgICAgIFMuYmxrX3dyaXRlX3RpbWUgQVMgYmxr X3dyaXRlX3RpbWUsCisKKyAgICAgICAgICAgIFMuZGVsYXlfdGltZSBBUyBkZWxheV90aW1l LAorICAgICAgICAgICAgUy50b3RhbF90aW1lIEFTIHRvdGFsX3RpbWUKKyAgICBGUk9NCisg ICAgICAgICAgICBwZ19jbGFzcyBDIEpPSU4KKyAgICAgICAgICAgIHBnX2luZGV4IFggT04g Qy5vaWQgPSBYLmluZHJlbGlkIEpPSU4KKyAgICAgICAgICAgIHBnX2NsYXNzIEkgT04gSS5v aWQgPSBYLmluZGV4cmVsaWQKKyAgICAgICAgICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2Ug TiBPTiAoTi5vaWQgPSBDLnJlbG5hbWVzcGFjZSksCisgICAgICAgICAgICBMQVRFUkFMIHBn X3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzKEkub2lkKSBTCisgICAgV0hFUkUgQy5yZWxraW5k IElOICgncicsICd0JywgJ20nKTsKKworQ1JFQVRFIFZJRVcgcGdfc3RhdF92YWN1dW1fZGF0 YWJhc2UgQVMKKyAgICBTRUxFQ1QKKyAgICAgICAgICAgIEQub2lkIGFzIGRib2lkLAorICAg ICAgICAgICAgRC5kYXRuYW1lIEFTIGRibmFtZSwKKworICAgICAgICAgICAgUy5kYl9ibGtz X3JlYWQgQVMgZGJfYmxrc19yZWFkLAorICAgICAgICAgICAgUy5kYl9ibGtzX2hpdCBBUyBk Yl9ibGtzX2hpdCwKKyAgICAgICAgICAgIFMudG90YWxfYmxrc19kaXJ0aWVkIEFTIHRvdGFs X2Jsa3NfZGlydGllZCwKKyAgICAgICAgICAgIFMudG90YWxfYmxrc193cml0dGVuIEFTIHRv dGFsX2Jsa3Nfd3JpdHRlbiwKKworICAgICAgICAgICAgUy53YWxfcmVjb3JkcyBBUyB3YWxf cmVjb3JkcywKKyAgICAgICAgICAgIFMud2FsX2ZwaSBBUyB3YWxfZnBpLAorICAgICAgICAg ICAgUy53YWxfYnl0ZXMgQVMgd2FsX2J5dGVzLAorCisgICAgICAgICAgICBTLmJsa19yZWFk X3RpbWUgQVMgYmxrX3JlYWRfdGltZSwKKyAgICAgICAgICAgIFMuYmxrX3dyaXRlX3RpbWUg QVMgYmxrX3dyaXRlX3RpbWUsCisKKyAgICAgICAgICAgIFMuZGVsYXlfdGltZSBBUyBkZWxh eV90aW1lLAorICAgICAgICAgICAgUy50b3RhbF90aW1lIEFTIHRvdGFsX3RpbWUsCisgICAg ICAgICAgICBTLndyYXBhcm91bmRfZmFpbHNhZmUgQVMgd3JhcGFyb3VuZF9mYWlsc2FmZSwK KyAgICAgICAgICAgIFMuZXJyb3JzIEFTIGVycm9ycworICAgIEZST00KKyAgICAgICAgICAg IHBnX2RhdGFiYXNlIEQsCisgICAgICAgICAgICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3ZhY3V1 bV9kYXRhYmFzZShELm9pZCkgUzsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2RiY29tbWFuZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYwppbmRl eCA4Nzk0OTA1NGYyNi4uOWYxMDcxMDYzNmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2RiY29tbWFuZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1h bmRzLmMKQEAgLTE4MTUsNiArMTgxNSw3IEBAIGRyb3BkYihjb25zdCBjaGFyICpkYm5hbWUs IGJvb2wgbWlzc2luZ19vaywgYm9vbCBmb3JjZSkKIAkgKiBUZWxsIHRoZSBjdW11bGF0aXZl IHN0YXRzIHN5c3RlbSB0byBmb3JnZXQgaXQgaW1tZWRpYXRlbHksIHRvby4KIAkgKi8KIAlw Z3N0YXRfZHJvcF9kYXRhYmFzZShkYl9pZCk7CisJcGdzdGF0X2Ryb3BfdmFjdXVtX2RhdGFi YXNlKGRiX2lkKTsKIAogCS8qCiAJICogRXhjZXB0IGZvciB0aGUgZGVsZXRpb24gb2YgdGhl IGNhdGFsb2cgcm93LCBzdWJzZXF1ZW50IGFjdGlvbnMgYXJlIG5vdApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW0uYwppbmRleCAwMzkzMmY0NWM4YS4uNzY5ZDBiYTU0M2YgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3ZhY3V1bS5jCkBAIC0xMTcsNiArMTE3LDkgQEAgcGdfYXRvbWljX3VpbnQzMiAqVmFjdXVt U2hhcmVkQ29zdEJhbGFuY2UgPSBOVUxMOwogcGdfYXRvbWljX3VpbnQzMiAqVmFjdXVtQWN0 aXZlTldvcmtlcnMgPSBOVUxMOwogaW50CQkJVmFjdXVtQ29zdEJhbGFuY2VMb2NhbCA9IDA7 CiAKKy8qIEN1bXVsYXRpdmUgc3RvcmFnZSB0byByZXBvcnQgdG90YWwgdmFjdXVtIGRlbGF5 IHRpbWUuICovCitkb3VibGUJCVZhY3V1bURlbGF5VGltZSA9IDA7CS8qIG1zZWMuICovCisK IC8qIG5vbi1leHBvcnQgZnVuY3Rpb24gcHJvdG90eXBlcyAqLwogc3RhdGljIExpc3QgKmV4 cGFuZF92YWN1dW1fcmVsKFZhY3V1bVJlbGF0aW9uICp2cmVsLAogCQkJCQkJCSAgIE1lbW9y eUNvbnRleHQgdmFjX2NvbnRleHQsIGludCBvcHRpb25zKTsKQEAgLTI1MzYsNiArMjUzOSw3 IEBAIHZhY3V1bV9kZWxheV9wb2ludChib29sIGlzX2FuYWx5emUpCiAJCQlleGl0KDEpOwog CiAJCVZhY3V1bUNvc3RCYWxhbmNlID0gMDsKKwkJVmFjdXVtRGVsYXlUaW1lICs9IG1zZWM7 CiAKIAkJLyoKIAkJICogQmFsYW5jZSBhbmQgdXBkYXRlIGxpbWl0IHZhbHVlcyBmb3IgYXV0 b3ZhY3V1bSB3b3JrZXJzLiBXZSBtdXN0IGRvCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt cGFyYWxsZWwuYwppbmRleCBjM2IzYzllYTIxYS4uMTZkMjE1MTUwY2MgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtODY4LDYgKzg2OCw4IEBAIHBhcmFs bGVsX3ZhY3V1bV9wcm9jZXNzX29uZV9pbmRleChQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMs IFJlbGF0aW9uIGluZHJlbCwKIAlJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0ID0gTlVM TDsKIAlJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0X3JlczsKIAlJbmRleFZhY3V1bUlu Zm8gaXZpbmZvOworCUxWRXh0U3RhdENvdW50ZXJzSWR4IGV4dFZhY0NvdW50ZXJzOworCVBn U3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyBleHRWYWNSZXBvcnQ7CiAKIAkvKgogCSAqIFVw ZGF0ZSB0aGUgcG9pbnRlciB0byB0aGUgY29ycmVzcG9uZGluZyBidWxrLWRlbGV0aW9uIHJl c3VsdCBpZiBzb21lb25lCkBAIC04NzYsNiArODc4LDkgQEAgcGFyYWxsZWxfdmFjdXVtX3By b2Nlc3Nfb25lX2luZGV4KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgUmVsYXRpb24gaW5k cmVsLAogCWlmIChpbmRzdGF0cy0+aXN0YXRfdXBkYXRlZCkKIAkJaXN0YXQgPSAmKGluZHN0 YXRzLT5pc3RhdCk7CiAKKwkvKiBTZXQgaW5pdGlhbCBzdGF0aXN0aWNzIHZhbHVlcyB0byBn YXRoZXIgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHRoZSBpbmRleCAqLworCWV4dHZhY19zdGF0 c19zdGFydF9pZHgoaW5kcmVsLCAmKGluZHN0YXRzLT5pc3RhdCksICZleHRWYWNDb3VudGVy cyk7CisKIAlpdmluZm8uaW5kZXggPSBpbmRyZWw7CiAJaXZpbmZvLmhlYXByZWwgPSBwdnMt PmhlYXByZWw7CiAJaXZpbmZvLmFuYWx5emVfb25seSA9IGZhbHNlOwpAQCAtOTA0LDYgKzkw OSwxMCBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19vbmVfaW5kZXgoUGFyYWxsZWxWYWN1 dW1TdGF0ZSAqcHZzLCBSZWxhdGlvbiBpbmRyZWwsCiAJCQkJIFJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKGluZHJlbCkpOwogCX0KIAorCS8qIE1ha2UgZXh0ZW5kZWQgdmFjdXVtIHN0YXRz IHJlcG9ydCBmb3IgaW5kZXggKi8KKwlleHR2YWNfc3RhdHNfZW5kX2lkeChpbmRyZWwsIGlz dGF0X3JlcywgJmV4dFZhY0NvdW50ZXJzLCAmZXh0VmFjUmVwb3J0KTsKKwlwZ3N0YXRfcmVw b3J0X3ZhY3V1bV9leHRzdGF0cyhSZWxhdGlvbkdldFJlbGlkKGluZHJlbCksIGluZHJlbC0+ cmRfcmVsLT5yZWxpc3NoYXJlZCwgJmV4dFZhY1JlcG9ydCk7CisKIAkvKgogCSAqIENvcHkg dGhlIGluZGV4IGJ1bGstZGVsZXRpb24gcmVzdWx0IHJldHVybmVkIGZyb20gYW1idWxrZGVs ZXRlIGFuZAogCSAqIGFtdmFjdXVtY2xlYW51cCB0byB0aGUgRFNNIHNlZ21lbnQgaWYgaXQn cyB0aGUgZmlyc3QgY3ljbGUgYmVjYXVzZSB0aGV5CkBAIC0xMDU0LDYgKzEwNjMsNyBAQCBw YXJhbGxlbF92YWN1dW1fbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJ LyogU2V0IGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5ICovCiAJVmFjdXVtVXBkYXRlQ29zdHMo KTsKIAlWYWN1dW1Db3N0QmFsYW5jZSA9IDA7CisJVmFjdXVtRGVsYXlUaW1lID0gMDsKIAlW YWN1dW1Db3N0QmFsYW5jZUxvY2FsID0gMDsKIAlWYWN1dW1TaGFyZWRDb3N0QmFsYW5jZSA9 ICYoc2hhcmVkLT5jb3N0X2JhbGFuY2UpOwogCVZhY3V1bUFjdGl2ZU5Xb3JrZXJzID0gJihz aGFyZWQtPmFjdGl2ZV9ud29ya2Vycyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L01ha2Vm aWxlCmluZGV4IDBlYjI5ZWU3OGFhLi5kZjAxMmFlM2RiNSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWN0aXZpdHkvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvTWFrZWZpbGUKQEAgLTI3LDYgKzI3LDcgQEAgT0JKUyA9IFwKIAlwZ3N0YXRf ZnVuY3Rpb24ubyBcCiAJcGdzdGF0X2lvLm8gXAogCXBnc3RhdF9yZWxhdGlvbi5vIFwKKwlw Z3N0YXRfdmFjdXVtLm8gXAogCXBnc3RhdF9yZXBsc2xvdC5vIFwKIAlwZ3N0YXRfc2htZW0u byBcCiAJcGdzdGF0X3NscnUubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5j CmluZGV4IDExYmI3MWNhZDVhLi5hODU0YTY0ZjEzNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvcGdzdGF0LmMKQEAgLTIwMyw3ICsyMDMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg cGdzdGF0X2lzX2tpbmRfdmFsaWQoUGdTdGF0X0tpbmQga2luZCk7CiAKIGJvb2wJCXBnc3Rh dF90cmFja19jb3VudHMgPSBmYWxzZTsKIGludAkJCXBnc3RhdF9mZXRjaF9jb25zaXN0ZW5j eSA9IFBHU1RBVF9GRVRDSF9DT05TSVNURU5DWV9DQUNIRTsKLQorYm9vbAkJcGdzdGF0X3Ry YWNrX3ZhY3V1bV9zdGF0aXN0aWNzID0gZmFsc2U7CiAKIC8qIC0tLS0tLS0tLS0KICAqIHN0 YXRlIHNoYXJlZCB3aXRoIHBnc3RhdF8qLmMKQEAgLTQ4Miw2ICs0ODIsMzQgQEAgc3RhdGlj IGNvbnN0IFBnU3RhdF9LaW5kSW5mbyBwZ3N0YXRfa2luZF9idWlsdGluX2luZm9zW1BHU1RB VF9LSU5EX0JVSUxUSU5fU0laRV0KIAkJLnJlc2V0X2FsbF9jYiA9IHBnc3RhdF93YWxfcmVz ZXRfYWxsX2NiLAogCQkuc25hcHNob3RfY2IgPSBwZ3N0YXRfd2FsX3NuYXBzaG90X2NiLAog CX0sCisJW1BHU1RBVF9LSU5EX1ZBQ1VVTV9EQl0gPSB7CisJCS5uYW1lID0gInZhY3V1bSBz dGF0aXN0aWNzIiwKKworCQkuZml4ZWRfYW1vdW50ID0gZmFsc2UsCisJCS53cml0ZV90b19m aWxlID0gdHJ1ZSwKKwkJLyogc28gcGdfc3RhdF9kYXRhYmFzZSBlbnRyaWVzIGNhbiBiZSBz ZWVuIGluIGFsbCBkYXRhYmFzZXMgKi8KKwkJLmFjY2Vzc2VkX2Fjcm9zc19kYXRhYmFzZXMg PSB0cnVlLAorCisJCS5zaGFyZWRfc2l6ZSA9IHNpemVvZihQZ1N0YXRTaGFyZWRfVmFjdXVt REIpLAorCQkuc2hhcmVkX2RhdGFfb2ZmID0gb2Zmc2V0b2YoUGdTdGF0U2hhcmVkX1ZhY3V1 bURCLCBzdGF0cyksCisJCS5zaGFyZWRfZGF0YV9sZW4gPSBzaXplb2YoKChQZ1N0YXRTaGFy ZWRfVmFjdXVtREIgKikgMCktPnN0YXRzKSwKKwkJLnBlbmRpbmdfc2l6ZSA9IHNpemVvZihQ Z1N0YXRfVmFjdXVtREJDb3VudHMpLAorCisJCS5mbHVzaF9wZW5kaW5nX2NiID0gcGdzdGF0 X3ZhY3V1bV9kYl9mbHVzaF9jYiwKKwl9LAorCVtQR1NUQVRfS0lORF9WQUNVVU1fUkVMQVRJ T05dID0geworCQkubmFtZSA9ICJ2YWN1dW0gc3RhdGlzdGljcyIsCisKKwkJLmZpeGVkX2Ft b3VudCA9IGZhbHNlLAorCQkud3JpdGVfdG9fZmlsZSA9IHRydWUsCisKKwkJLnNoYXJlZF9z aXplID0gc2l6ZW9mKFBnU3RhdFNoYXJlZF9WYWN1dW1SZWxhdGlvbiksCisJCS5zaGFyZWRf ZGF0YV9vZmYgPSBvZmZzZXRvZihQZ1N0YXRTaGFyZWRfVmFjdXVtUmVsYXRpb24sIHN0YXRz KSwKKwkJLnNoYXJlZF9kYXRhX2xlbiA9IHNpemVvZigoKFBnU3RhdFNoYXJlZF9WYWN1dW1S ZWxhdGlvbiAqKSAwKS0+c3RhdHMpLAorCQkucGVuZGluZ19zaXplID0gc2l6ZW9mKFBnU3Rh dF9SZWxhdGlvblZhY3V1bVBlbmRpbmcpLAorCisJCS5mbHVzaF9wZW5kaW5nX2NiID0gcGdz dGF0X3ZhY3V1bV9yZWxhdGlvbl9mbHVzaF9jYgorCX0sCiB9OwogCiAvKgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMgYi9zcmMv YmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYwppbmRleCBkN2Y2ZDRj NWVlNi4uMDc5ZjAyYjNmMDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5 L3Bnc3RhdF9kYXRhYmFzZS5jCkBAIC00Niw2ICs0NiwxNSBAQCBwZ3N0YXRfZHJvcF9kYXRh YmFzZShPaWQgZGF0YWJhc2VpZCkKIAlwZ3N0YXRfZHJvcF90cmFuc2FjdGlvbmFsKFBHU1RB VF9LSU5EX0RBVEFCQVNFLCBkYXRhYmFzZWlkLCBJbnZhbGlkT2lkKTsKIH0KIAorLyoKKyAq IFJlbW92ZSBlbnRyeSBmb3IgdGhlIGRhdGFiYXNlIGJlaW5nIGRyb3BwZWQuCisgKi8KK3Zv aWQKK3Bnc3RhdF9kcm9wX3ZhY3V1bV9kYXRhYmFzZShPaWQgZGF0YWJhc2VpZCkKK3sKKwlw Z3N0YXRfZHJvcF90cmFuc2FjdGlvbmFsKFBHU1RBVF9LSU5EX1ZBQ1VVTV9EQiwgZGF0YWJh c2VpZCwgSW52YWxpZE9pZCk7Cit9CisKIC8qCiAgKiBDYWxsZWQgZnJvbSBhdXRvdmFjdXVt LmMgdG8gcmVwb3J0IHN0YXJ0dXAgb2YgYW4gYXV0b3ZhY3V1bSBwcm9jZXNzLgogICogV2Ug YXJlIGNhbGxlZCBiZWZvcmUgSW5pdFBvc3RncmVzIGlzIGRvbmUsIHNvIGNhbid0IHJlbHkg b24gTXlEYXRhYmFzZUlkOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0X3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0 YXRfcmVsYXRpb24uYwppbmRleCA4ODVkNTkwZDJiMi4uOTUxNjU1MmE0M2UgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCkBAIC05MDIs NiArOTAyLDEyIEBAIHBnc3RhdF9yZWxhdGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYg KmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQKK3Bn c3RhdF92YWN1dW1fcmVsYXRpb25fZGVsZXRlX3BlbmRpbmdfY2IoT2lkIHJlbGlkKQorewor CXBnc3RhdF9kcm9wX3RyYW5zYWN0aW9uYWwoUEdTVEFUX0tJTkRfVkFDVVVNX1JFTEFUSU9O LCByZWxpZCwgSW52YWxpZE9pZCk7Cit9CisKIHZvaWQKIHBnc3RhdF9yZWxhdGlvbl9kZWxl dGVfcGVuZGluZ19jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZikKIHsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF92YWN1dW0uYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF92YWN1dW0uYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDM0MjZlNjE3YTgKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfdmFjdXVtLmMKQEAgLTAsMCAr MSwyMTcgQEAKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAicGdzdGF0Lmgi CisjaW5jbHVkZSAidXRpbHMvcGdzdGF0X2ludGVybmFsLmgiCisjaW5jbHVkZSAidXRpbHMv bWVtdXRpbHMuaCIKKworLyogLS0tLS0tLS0tLQorICogR1VDIHBhcmFtZXRlcnMKKyAqIC0t LS0tLS0tLS0KKyAqLworYm9vbAkJcGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzX2Zv cl9yZWxhdGlvbnMgPSBmYWxzZTsKKworI2RlZmluZSBBQ0NVTVVMQVRFX0ZJRUxEKGZpZWxk KSBkc3QtPmZpZWxkICs9IHNyYy0+ZmllbGQ7CisKKyNkZWZpbmUgQUNDVU1VTEFURV9TVUJG SUVMRChzdWJzdHJ1Y3QsIGZpZWxkKSBcCisgICAgKGRzdC0+c3Vic3RydWN0LmZpZWxkICs9 IHNyYy0+c3Vic3RydWN0LmZpZWxkKQorCitzdGF0aWMgdm9pZAorcGdzdGF0X2FjY3VtdWxh dGVfY29tbW9uKFBnU3RhdF9Db21tb25Db3VudHMgKiBkc3QsIGNvbnN0IFBnU3RhdF9Db21t b25Db3VudHMgKiBzcmMpCit7CisJQUNDVU1VTEFURV9GSUVMRCh0b3RhbF9ibGtzX3JlYWQp OworCUFDQ1VNVUxBVEVfRklFTEQodG90YWxfYmxrc19oaXQpOworCUFDQ1VNVUxBVEVfRklF TEQodG90YWxfYmxrc19kaXJ0aWVkKTsKKwlBQ0NVTVVMQVRFX0ZJRUxEKHRvdGFsX2Jsa3Nf d3JpdHRlbik7CisKKwlBQ0NVTVVMQVRFX0ZJRUxEKGJsa3NfZmV0Y2hlZCk7CisJQUNDVU1V TEFURV9GSUVMRChibGtzX2hpdCk7CisKKwlBQ0NVTVVMQVRFX0ZJRUxEKHdhbF9yZWNvcmRz KTsKKwlBQ0NVTVVMQVRFX0ZJRUxEKHdhbF9mcGkpOworCUFDQ1VNVUxBVEVfRklFTEQod2Fs X2J5dGVzKTsKKworCUFDQ1VNVUxBVEVfRklFTEQoYmxrX3JlYWRfdGltZSk7CisJQUNDVU1V TEFURV9GSUVMRChibGtfd3JpdGVfdGltZSk7CisJQUNDVU1VTEFURV9GSUVMRChkZWxheV90 aW1lKTsKKwlBQ0NVTVVMQVRFX0ZJRUxEKHRvdGFsX3RpbWUpOworCisJQUNDVU1VTEFURV9G SUVMRCh0dXBsZXNfZGVsZXRlZCk7CisJQUNDVU1VTEFURV9GSUVMRCh3cmFwYXJvdW5kX2Zh aWxzYWZlX2NvdW50KTsKK30KKworc3RhdGljIHZvaWQKK3Bnc3RhdF9hY2N1bXVsYXRlX2V4 dHZhY19zdGF0c19yZWxhdGlvbnMoUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICogZHN0 LCBQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKiBzcmMpCit7CisJaWYgKCFwZ3N0YXRf dHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MpCisJCXJldHVybjsKKworCWlmIChkc3QtPnR5cGUg PT0gUEdTVEFUX0VYVFZBQ19JTlZBTElEKQorCQlkc3QtPnR5cGUgPSBzcmMtPnR5cGU7CisK KwlBc3NlcnQoc3JjLT50eXBlICE9IFBHU1RBVF9FWFRWQUNfSU5WQUxJRCAmJiBzcmMtPnR5 cGUgIT0gUEdTVEFUX0VYVFZBQ19EQiAmJiBzcmMtPnR5cGUgPT0gZHN0LT50eXBlKTsKKwor CXBnc3RhdF9hY2N1bXVsYXRlX2NvbW1vbigmZHN0LT5jb21tb24sICZzcmMtPmNvbW1vbik7 CisKKwlBQ0NVTVVMQVRFX1NVQkZJRUxEKGNvbW1vbiwgYmxrc19mZXRjaGVkKTsKKwlBQ0NV TVVMQVRFX1NVQkZJRUxEKGNvbW1vbiwgYmxrc19oaXQpOworCisJaWYgKGRzdC0+dHlwZSA9 PSBQR1NUQVRfRVhUVkFDX1RBQkxFKQorCXsKKwkJQUNDVU1VTEFURV9TVUJGSUVMRChjb21t b24sIHR1cGxlc19kZWxldGVkKTsKKwkJQUNDVU1VTEFURV9TVUJGSUVMRCh0YWJsZSwgcGFn ZXNfc2Nhbm5lZCk7CisJCUFDQ1VNVUxBVEVfU1VCRklFTEQodGFibGUsIHBhZ2VzX3JlbW92 ZWQpOworCQlBQ0NVTVVMQVRFX1NVQkZJRUxEKHRhYmxlLCB2bV9uZXdfZnJvemVuX3BhZ2Vz KTsKKwkJQUNDVU1VTEFURV9TVUJGSUVMRCh0YWJsZSwgdm1fbmV3X3Zpc2libGVfcGFnZXMp OworCQlBQ0NVTVVMQVRFX1NVQkZJRUxEKHRhYmxlLCB2bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMpOworCQlBQ0NVTVVMQVRFX1NVQkZJRUxEKHRhYmxlLCB0dXBsZXNfZnJvemVuKTsK KwkJQUNDVU1VTEFURV9TVUJGSUVMRCh0YWJsZSwgcmVjZW50bHlfZGVhZF90dXBsZXMpOwor CQlBQ0NVTVVMQVRFX1NVQkZJRUxEKHRhYmxlLCBpbmRleF92YWN1dW1fY291bnQpOworCQlB Q0NVTVVMQVRFX1NVQkZJRUxEKHRhYmxlLCBtaXNzZWRfZGVhZF9wYWdlcyk7CisJCUFDQ1VN VUxBVEVfU1VCRklFTEQodGFibGUsIG1pc3NlZF9kZWFkX3R1cGxlcyk7CisJfQorCWVsc2Ug aWYgKGRzdC0+dHlwZSA9PSBQR1NUQVRfRVhUVkFDX0lOREVYKQorCXsKKwkJQUNDVU1VTEFU RV9TVUJGSUVMRChjb21tb24sIHR1cGxlc19kZWxldGVkKTsKKwkJQUNDVU1VTEFURV9TVUJG SUVMRChpbmRleCwgcGFnZXNfZGVsZXRlZCk7CisJfQorfQorCitzdGF0aWMgdm9pZAorcGdz dGF0X2FjY3VtdWxhdGVfZXh0dmFjX3N0YXRzX2RiKFBnU3RhdF9WYWN1dW1EQkNvdW50cyAq IGRzdCwgUGdTdGF0X1ZhY3V1bURCQ291bnRzICogc3JjKQoreworCWlmICghcGdzdGF0X3Ry YWNrX3ZhY3V1bV9zdGF0aXN0aWNzKQorCQlyZXR1cm47CisKKwlwZ3N0YXRfYWNjdW11bGF0 ZV9jb21tb24oJmRzdC0+Y29tbW9uLCAmc3JjLT5jb21tb24pOworfQorCisvKgorICogUmVw b3J0IHRoYXQgdGhlIHRhYmxlIHdhcyBqdXN0IHZhY3V1bWVkIGFuZCBmbHVzaCBzdGF0aXN0 aWNzLgorICovCit2b2lkCitwZ3N0YXRfcmVwb3J0X3ZhY3V1bV9leHRzdGF0cyhPaWQgdGFi bGVvaWQsIGJvb2wgc2hhcmVkLAorCQkJCQkJCSAgUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291 bnRzICogcGFyYW1zKQoreworCVBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmOworCVBnU3Rh dFNoYXJlZF9WYWN1dW1SZWxhdGlvbiAqc2h0YWJlbnRyeTsKKwlQZ1N0YXRTaGFyZWRfVmFj dXVtREIgKnNoZGJlbnRyeTsKKwlPaWQJCQlkYm9pZCA9IChzaGFyZWQgPyBJbnZhbGlkT2lk IDogTXlEYXRhYmFzZUlkKTsKKworCWlmICghcGdzdGF0X3RyYWNrX3ZhY3V1bV9zdGF0aXN0 aWNzKQorCQlyZXR1cm47CisKKwllbnRyeV9yZWYgPSBwZ3N0YXRfZ2V0X2VudHJ5X3JlZl9s b2NrZWQoUEdTVEFUX0tJTkRfVkFDVVVNX1JFTEFUSU9OLAorCQkJCQkJCQkJCQlkYm9pZCwg dGFibGVvaWQsIGZhbHNlKTsKKwlzaHRhYmVudHJ5ID0gKFBnU3RhdFNoYXJlZF9WYWN1dW1S ZWxhdGlvbiAqKSBlbnRyeV9yZWYtPnNoYXJlZF9zdGF0czsKKwlwZ3N0YXRfYWNjdW11bGF0 ZV9leHR2YWNfc3RhdHNfcmVsYXRpb25zKCZzaHRhYmVudHJ5LT5zdGF0cywgcGFyYW1zKTsK KworCXBnc3RhdF91bmxvY2tfZW50cnkoZW50cnlfcmVmKTsKKworCWlmICghc2hhcmVkKQor CQllbnRyeV9yZWYgPSBwZ3N0YXRfZ2V0X2VudHJ5X3JlZl9sb2NrZWQoUEdTVEFUX0tJTkRf VkFDVVVNX0RCLAorCQkJCQkJCQkJCQkJZGJvaWQsIEludmFsaWRPaWQsIGZhbHNlKTsKKwll bHNlCisJCWVudHJ5X3JlZiA9IHBnc3RhdF9nZXRfZW50cnlfcmVmX2xvY2tlZChQR1NUQVRf S0lORF9WQUNVVU1fREIsCisJCQkJCQkJCQkJCQlNeURhdGFiYXNlSWQsIEludmFsaWRPaWQs IGZhbHNlKTsKKworCXNoZGJlbnRyeSA9IChQZ1N0YXRTaGFyZWRfVmFjdXVtREIgKikgZW50 cnlfcmVmLT5zaGFyZWRfc3RhdHM7CisKKwlwZ3N0YXRfYWNjdW11bGF0ZV9jb21tb24oJnNo ZGJlbnRyeS0+c3RhdHMuY29tbW9uLCAmcGFyYW1zLT5jb21tb24pOworCisJcGdzdGF0X3Vu bG9ja19lbnRyeShlbnRyeV9yZWYpOworfQorCisvKgorICogRmx1c2ggb3V0IHBlbmRpbmcg c3RhdHMgZm9yIHRoZSBlbnRyeQorICoKKyAqIElmIG5vd2FpdCBpcyB0cnVlLCB0aGlzIGZ1 bmN0aW9uIHJldHVybnMgZmFsc2UgaWYgbG9jayBjb3VsZCBub3QKKyAqIGltbWVkaWF0ZWx5 IGFjcXVpcmVkLCBvdGhlcndpc2UgdHJ1ZSBpcyByZXR1cm5lZC4KKyAqLworYm9vbAorcGdz dGF0X3ZhY3V1bV9yZWxhdGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3Jl ZiwgYm9vbCBub3dhaXQpCit7CisJUGdTdGF0U2hhcmVkX1ZhY3V1bVJlbGF0aW9uICpzaHRh YnN0YXRzOworCVBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmcgKnBlbmRpbmdlbnQ7CS8q IHRhYmxlIGVudHJ5IG9mIHNoYXJlZCBzdGF0cyAqLworCisJcGVuZGluZ2VudCA9IChQZ1N0 YXRfUmVsYXRpb25WYWN1dW1QZW5kaW5nICopIGVudHJ5X3JlZi0+cGVuZGluZzsKKwlzaHRh YnN0YXRzID0gKFBnU3RhdFNoYXJlZF9WYWN1dW1SZWxhdGlvbiAqKSBlbnRyeV9yZWYtPnNo YXJlZF9zdGF0czsKKworCS8qCisJICogSWdub3JlIGVudHJpZXMgdGhhdCBkaWRuJ3QgYWNj dW11bGF0ZSBhbnkgYWN0dWFsIGNvdW50cy4KKwkgKi8KKwlpZiAocGdfbWVtb3J5X2lzX2Fs bF96ZXJvcygmcGVuZGluZ2VudCwKKwkJCQkJCQkgICBzaXplb2Yoc3RydWN0IFBnU3RhdF9S ZWxhdGlvblZhY3V1bVBlbmRpbmcpKSkKKwkJcmV0dXJuIHRydWU7CisKKwlpZiAoIXBnc3Rh dF9sb2NrX2VudHJ5KGVudHJ5X3JlZiwgbm93YWl0KSkKKwl7CisJCXJldHVybiBmYWxzZTsK Kwl9CisKKwlwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHNfcmVsYXRpb25zKCYoc2h0 YWJzdGF0cy0+c3RhdHMpLCAmKHBlbmRpbmdlbnQtPmNvdW50cykpOworCisJcGdzdGF0X3Vu bG9ja19lbnRyeShlbnRyeV9yZWYpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBT dXBwb3J0IGZ1bmN0aW9uIGZvciB0aGUgU1FMLWNhbGxhYmxlIHBnc3RhdCogZnVuY3Rpb25z LiBSZXR1cm5zCisgKiB0aGUgdmFjdXVtIGNvbGxlY3RlZCBzdGF0aXN0aWNzIGZvciBvbmUg cmVsYXRpb24gb3IgTlVMTC4KKyAqLworUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICoK K3Bnc3RhdF9mZXRjaF9zdGF0X3ZhY3V1bV90YWJlbnRyeShPaWQgcmVsaWQsIE9pZCBkYmlk KQoreworCXJldHVybiAoUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICopCisJCXBnc3Rh dF9mZXRjaF9lbnRyeShQR1NUQVRfS0lORF9WQUNVVU1fUkVMQVRJT04sIGRiaWQsIHJlbGlk KTsKK30KKworUGdTdGF0X1ZhY3V1bURCQ291bnRzICoKK3Bnc3RhdF9mZXRjaF9zdGF0X3Zh Y3V1bV9kYmVudHJ5KE9pZCBkYmlkKQoreworCXJldHVybiAoUGdTdGF0X1ZhY3V1bURCQ291 bnRzICopCisJCXBnc3RhdF9mZXRjaF9lbnRyeShQR1NUQVRfS0lORF9WQUNVVU1fREIsIGRi aWQsIEludmFsaWRPaWQpOworfQorCitib29sCitwZ3N0YXRfdmFjdXVtX2RiX2ZsdXNoX2Ni KFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCkKK3sKKwlQZ1N0YXRT aGFyZWRfVmFjdXVtREIgKnNoYXJlZGVudDsKKwlQZ1N0YXRfVmFjdXVtREJDb3VudHMgKnBl bmRpbmdlbnQ7CisKKwlwZW5kaW5nZW50ID0gKFBnU3RhdF9WYWN1dW1EQkNvdW50cyAqKSBl bnRyeV9yZWYtPnBlbmRpbmc7CisJc2hhcmVkZW50ID0gKFBnU3RhdFNoYXJlZF9WYWN1dW1E QiAqKSBlbnRyeV9yZWYtPnNoYXJlZF9zdGF0czsKKworCWlmICghcGdzdGF0X2xvY2tfZW50 cnkoZW50cnlfcmVmLCBub3dhaXQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKiBUaGUgZW50 cnkgd2FzIHN1Y2Nlc3NmdWxseSBmbHVzaGVkLCBhZGQgdGhlIHNhbWUgdG8gZGF0YWJhc2Ug c3RhdHMgKi8KKwlwZ3N0YXRfYWNjdW11bGF0ZV9leHR2YWNfc3RhdHNfZGIoJihzaGFyZWRl bnQtPnN0YXRzKSwgcGVuZGluZ2VudCk7CisKKwlwZ3N0YXRfdW5sb2NrX2VudHJ5KGVudHJ5 X3JlZik7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIEZpbmQgb3IgY3JlYXRlIGEg bG9jYWwgUGdTdGF0X1ZhY3V1bURCQ291bnRzIGVudHJ5IGZvciBkYm9pZC4KKyAqLworUGdT dGF0X1ZhY3V1bURCQ291bnRzICoKK3Bnc3RhdF9wcmVwX3ZhY3V1bV9kYXRhYmFzZV9wZW5k aW5nKE9pZCBkYm9pZCkKK3sKKwlQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZjsKKworCS8q CisJICogVGhpcyBzaG91bGQgbm90IHJlcG9ydCBzdGF0cyBvbiBkYXRhYmFzZSBvYmplY3Rz IGJlZm9yZSBoYXZpbmcKKwkgKiBjb25uZWN0ZWQgdG8gYSBkYXRhYmFzZS4KKwkgKi8KKwlB c3NlcnQoIU9pZElzVmFsaWQoZGJvaWQpIHx8IE9pZElzVmFsaWQoTXlEYXRhYmFzZUlkKSk7 CisKKwllbnRyeV9yZWYgPSBwZ3N0YXRfcHJlcF9wZW5kaW5nX2VudHJ5KFBHU1RBVF9LSU5E X1ZBQ1VVTV9EQiwgZGJvaWQsIEludmFsaWRPaWQsCisJCQkJCQkJCQkJICBOVUxMKTsKKwor CWlmIChlbnRyeV9yZWYgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwlyZXR1cm4gZW50 cnlfcmVmLT5wZW5kaW5nOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpp bmRleCA5MDFmM2RkNTVhMS4uMzhmMTZlYzRjODUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z3N0YXRmdW5jcy5jCkBAIC0yMzEzLDMgKzIzMTMsMjIxIEBAIHBnX3N0YXRfaGF2ZV9zdGF0 cyhQR19GVU5DVElPTl9BUkdTKQogCiAJUEdfUkVUVVJOX0JPT0wocGdzdGF0X2hhdmVfZW50 cnkoa2luZCwgZGJvaWQsIG9iamlkKSk7CiB9CisKKy8qCisgKiBHZXQgdGhlIHZhY3V1bSBz dGF0aXN0aWNzIGZvciB0aGUgaGVhcCB0YWJsZXMuCisgKi8KK0RhdHVtCitwZ19zdGF0X2dl dF92YWN1dW1fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisjZGVmaW5lIFBHX1NUQVRf R0VUX1ZBQ1VVTV9UQUJMRVNfU1RBVFNfQ09MUyAyNgorCisJT2lkCQkJcmVsaWQgPSBQR19H RVRBUkdfT0lEKDApOworCVBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyAqZXh0dmFjdXVt OworCVBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50cyAqcGVuZGluZzsKKwlUdXBsZURlc2MJ dHVwZGVzYzsKKwlEYXR1bQkJdmFsdWVzW1BHX1NUQVRfR0VUX1ZBQ1VVTV9UQUJMRVNfU1RB VFNfQ09MU10gPSB7MH07CisJYm9vbAkJbnVsbHNbUEdfU1RBVF9HRVRfVkFDVVVNX1RBQkxF U19TVEFUU19DT0xTXSA9IHswfTsKKwljaGFyCQlidWZbMjU2XTsKKwlpbnQJCQlpID0gMDsK KworCS8qIEJ1aWxkIGEgdHVwbGUgZGVzY3JpcHRvciBmb3Igb3VyIHJlc3VsdCB0eXBlICov CisJaWYgKGdldF9jYWxsX3Jlc3VsdF90eXBlKGZjaW5mbywgTlVMTCwgJnR1cGRlc2MpICE9 IFRZUEVGVU5DX0NPTVBPU0lURSkKKwkJZWxvZyhFUlJPUiwgInJldHVybiB0eXBlIG11c3Qg YmUgYSByb3cgdHlwZSIpOworCisJcGVuZGluZyA9IHBnc3RhdF9mZXRjaF9zdGF0X3ZhY3V1 bV90YWJlbnRyeShyZWxpZCwgTXlEYXRhYmFzZUlkKTsKKworCWlmICghcGVuZGluZykKKwl7 CisJCXBlbmRpbmcgPSBwZ3N0YXRfZmV0Y2hfc3RhdF92YWN1dW1fdGFiZW50cnkocmVsaWQs IDApOworCisJCWlmICghcGVuZGluZykKKwkJeworCQkJSW5pdE1hdGVyaWFsaXplZFNSRihm Y2luZm8sIDApOworCQkJUEdfUkVUVVJOX1ZPSUQoKTsKKwkJfQorCX0KKworCWV4dHZhY3V1 bSA9IHBlbmRpbmc7CisKKwlpID0gMDsKKworCXZhbHVlc1tpKytdID0gT2JqZWN0SWRHZXRE YXR1bShyZWxpZCk7CisKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVt LT5jb21tb24udG90YWxfYmxrc19yZWFkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0 dW0oZXh0dmFjdXVtLT5jb21tb24udG90YWxfYmxrc19oaXQpOworCXZhbHVlc1tpKytdID0g SW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3RhbF9ibGtzX2RpcnRpZWQpOwor CXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3RhbF9i bGtzX3dyaXR0ZW4pOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1 bS0+Y29tbW9uLmJsa3NfZmV0Y2hlZCAtCisJCQkJCQkJCWV4dHZhY3V1bS0+Y29tbW9uLmJs a3NfaGl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21t b24uYmxrc19oaXQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1 bS0+dGFibGUucGFnZXNfc2Nhbm5lZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+dGFibGUucGFnZXNfcmVtb3ZlZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUudm1fbmV3X2Zyb3plbl9wYWdlcyk7CisJdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUudm1fbmV3X3Zpc2li bGVfcGFnZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPnRh YmxlLnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2 NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUubWlzc2VkX2RlYWRfcGFnZXMpOworCXZhbHVl c1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50dXBsZXNfZGVsZXRl ZCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+dGFibGUudHVw bGVzX2Zyb3plbik7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+ dGFibGUucmVjZW50bHlfZGVhZF90dXBsZXMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPnRhYmxlLm1pc3NlZF9kZWFkX3R1cGxlcyk7CisKKwl2YWx1ZXNb aSsrXSA9IEludDMyR2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24ud3JhcGFyb3VuZF9mYWls c2FmZV9jb3VudCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+ dGFibGUuaW5kZXhfdmFjdXVtX2NvdW50KTsKKworCXZhbHVlc1tpKytdID0gSW50NjRHZXRE YXR1bShleHR2YWN1dW0tPmNvbW1vbi53YWxfcmVjb3Jkcyk7CisJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLndhbF9mcGkpOworCisJLyogQ29udmVy dCB0byBudW1lcmljLCBsaWtlIHBnX3N0YXRfc3RhdGVtZW50cyAqLworCXNucHJpbnRmKGJ1 Ziwgc2l6ZW9mIGJ1ZiwgVUlOVDY0X0ZPUk1BVCwgZXh0dmFjdXVtLT5jb21tb24ud2FsX2J5 dGVzKTsKKwl2YWx1ZXNbaSsrXSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDMobnVtZXJpY19pbiwK KwkJCQkJCQkJCSAgQ1N0cmluZ0dldERhdHVtKGJ1ZiksCisJCQkJCQkJCQkgIE9iamVjdElk R2V0RGF0dW0oMCksCisJCQkJCQkJCQkgIEludDMyR2V0RGF0dW0oLTEpKTsKKworCXZhbHVl c1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uYmxrX3JlYWRfdGlt ZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi5i bGtfd3JpdGVfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1 dW0tPmNvbW1vbi5kZWxheV90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVt KGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX3RpbWUpOworCisJQXNzZXJ0KGkgPT0gUEdfU1RB VF9HRVRfVkFDVVVNX1RBQkxFU19TVEFUU19DT0xTKTsKKworCS8qIFJldHVybnMgdGhlIHJl Y29yZCBhcyBEYXR1bSAqLworCVBHX1JFVFVSTl9EQVRVTShIZWFwVHVwbGVHZXREYXR1bSho ZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykpKTsKK30KKworLyoKKyAq IEdldCB0aGUgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHRoZSBoZWFwIHRhYmxlcy4KKyAqLwor RGF0dW0KK3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzKFBHX0ZVTkNUSU9OX0FSR1MpCit7 CisjZGVmaW5lIFBHX1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTCTE2CisKKwlP aWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJUGdTdGF0X1ZhY3V1bVJlbGF0aW9u Q291bnRzICpleHR2YWN1dW07CisJUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICpwZW5k aW5nOworCVR1cGxlRGVzYwl0dXBkZXNjOworCURhdHVtCQl2YWx1ZXNbUEdfU1RBVF9HRVRf VkFDVVVNX0lOREVYX1NUQVRTX0NPTFNdID0gezB9OworCWJvb2wJCW51bGxzW1BHX1NUQVRf R0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xTXSA9IHswfTsKKwljaGFyCQlidWZbMjU2XTsK KwlpbnQJCQlpID0gMDsKKworCWlmIChnZXRfY2FsbF9yZXN1bHRfdHlwZShmY2luZm8sIE5V TEwsICZ0dXBkZXNjKSAhPSBUWVBFRlVOQ19DT01QT1NJVEUpCisJCWVsb2coRVJST1IsICJy ZXR1cm4gdHlwZSBtdXN0IGJlIGEgcm93IHR5cGUiKTsKKworCXBlbmRpbmcgPSBwZ3N0YXRf ZmV0Y2hfc3RhdF92YWN1dW1fdGFiZW50cnkocmVsaWQsIE15RGF0YWJhc2VJZCk7CisKKwlp ZiAoIXBlbmRpbmcpCisJeworCQlwZW5kaW5nID0gcGdzdGF0X2ZldGNoX3N0YXRfdmFjdXVt X3RhYmVudHJ5KHJlbGlkLCAwKTsKKworCQlpZiAoIXBlbmRpbmcpCisJCXsKKwkJCUluaXRN YXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCAwKTsKKwkJCVBHX1JFVFVSTl9WT0lEKCk7CisJCX0K Kwl9CisKKwlleHR2YWN1dW0gPSBwZW5kaW5nOworCisJaSA9IDA7CisKKwl2YWx1ZXNbaSsr XSA9IE9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCisJdmFsdWVzW2krK10gPSBJbnQ2NEdl dERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX2Jsa3NfcmVhZCk7CisJdmFsdWVzW2kr K10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX2Jsa3NfaGl0KTsK Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24udG90YWxf Ymxrc19kaXJ0aWVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVt LT5jb21tb24udG90YWxfYmxrc193cml0dGVuKTsKKworCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi5ibGtzX2ZldGNoZWQgLQorCQkJCQkJCQlleHR2 YWN1dW0tPmNvbW1vbi5ibGtzX2hpdCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVt KGV4dHZhY3V1bS0+Y29tbW9uLmJsa3NfaGl0KTsKKworCXZhbHVlc1tpKytdID0gSW50NjRH ZXREYXR1bShleHR2YWN1dW0tPmluZGV4LnBhZ2VzX2RlbGV0ZWQpOworCXZhbHVlc1tpKytd ID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50dXBsZXNfZGVsZXRlZCk7CisK Kwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24ud2FsX3Jl Y29yZHMpOworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1v bi53YWxfZnBpKTsKKworCS8qIENvbnZlcnQgdG8gbnVtZXJpYywgbGlrZSBwZ19zdGF0X3N0 YXRlbWVudHMgKi8KKwlzbnByaW50ZihidWYsIHNpemVvZiBidWYsIFVJTlQ2NF9GT1JNQVQs IGV4dHZhY3V1bS0+Y29tbW9uLndhbF9ieXRlcyk7CisJdmFsdWVzW2krK10gPSBEaXJlY3RG dW5jdGlvbkNhbGwzKG51bWVyaWNfaW4sCisJCQkJCQkJCQkgIENTdHJpbmdHZXREYXR1bShi dWYpLAorCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKDApLAorCQkJCQkJCQkJICBJbnQz MkdldERhdHVtKC0xKSk7CisKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0OEdldERhdHVtKGV4dHZh Y3V1bS0+Y29tbW9uLmJsa19yZWFkX3RpbWUpOworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0 RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uYmxrX3dyaXRlX3RpbWUpOworCXZhbHVlc1tpKytd ID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uZGVsYXlfdGltZSk7CisJdmFs dWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi50b3RhbF90aW1l KTsKKworCUFzc2VydChpID09IFBHX1NUQVRfR0VUX1ZBQ1VVTV9JTkRFWF9TVEFUU19DT0xT KTsKKworCS8qIFJldHVybnMgdGhlIHJlY29yZCBhcyBEYXR1bSAqLworCVBHX1JFVFVSTl9E QVRVTShIZWFwVHVwbGVHZXREYXR1bShoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVz LCBudWxscykpKTsKK30KKworRGF0dW0KK3BnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZShQ R19GVU5DVElPTl9BUkdTKQoreworI2RlZmluZSBQR19TVEFUX0dFVF9WQUNVVU1fREFUQUJB U0VfU1RBVFNfQ09MUwkxNAorCisJT2lkCQkJZGJpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJ UGdTdGF0X1ZhY3V1bURCQ291bnRzICpleHR2YWN1dW07CisJUGdTdGF0X1ZhY3V1bURCQ291 bnRzICpwZW5kaW5nOworCVR1cGxlRGVzYwl0dXBkZXNjOworCURhdHVtCQl2YWx1ZXNbUEdf U1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNFX1NUQVRTX0NPTFNdID0gezB9OworCWJvb2wJCW51 bGxzW1BHX1NUQVRfR0VUX1ZBQ1VVTV9EQVRBQkFTRV9TVEFUU19DT0xTXSA9IHswfTsKKwlj aGFyCQlidWZbMjU2XTsKKwlpbnQJCQlpID0gMDsKKworCisJaWYgKGdldF9jYWxsX3Jlc3Vs dF90eXBlKGZjaW5mbywgTlVMTCwgJnR1cGRlc2MpICE9IFRZUEVGVU5DX0NPTVBPU0lURSkK KwkJZWxvZyhFUlJPUiwgInJldHVybiB0eXBlIG11c3QgYmUgYSByb3cgdHlwZSIpOworCisJ SW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKCFPaWRJc1ZhbGlkKGRi aWQpKQorCQlQR19SRVRVUk5fVk9JRCgpOworCisJcGVuZGluZyA9IHBnc3RhdF9mZXRjaF9z dGF0X3ZhY3V1bV9kYmVudHJ5KGRiaWQpOworCisJaWYgKCFwZW5kaW5nKQorCQlQR19SRVRV Uk5fVk9JRCgpOworCisJZXh0dmFjdXVtID0gcGVuZGluZzsKKworCWkgPSAwOworCisJdmFs dWVzW2krK10gPSBPYmplY3RJZEdldERhdHVtKGRiaWQpOworCisJdmFsdWVzW2krK10gPSBJ bnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX2Jsa3NfcmVhZCk7CisJdmFs dWVzW2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX2Jsa3Nf aGl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24u dG90YWxfYmxrc19kaXJ0aWVkKTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0oZXh0 dmFjdXVtLT5jb21tb24udG90YWxfYmxrc193cml0dGVuKTsKKworCXZhbHVlc1tpKytdID0g SW50NjRHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi53YWxfcmVjb3Jkcyk7CisJdmFsdWVz W2krK10gPSBJbnQ2NEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLndhbF9mcGkpOworCisJ LyogQ29udmVydCB0byBudW1lcmljLCBsaWtlIHBnX3N0YXRfc3RhdGVtZW50cyAqLworCXNu cHJpbnRmKGJ1Ziwgc2l6ZW9mIGJ1ZiwgVUlOVDY0X0ZPUk1BVCwgZXh0dmFjdXVtLT5jb21t b24ud2FsX2J5dGVzKTsKKwl2YWx1ZXNbaSsrXSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDMobnVt ZXJpY19pbiwKKwkJCQkJCQkJCSAgQ1N0cmluZ0dldERhdHVtKGJ1ZiksCisJCQkJCQkJCQkg IE9iamVjdElkR2V0RGF0dW0oMCksCisJCQkJCQkJCQkgIEludDMyR2V0RGF0dW0oLTEpKTsK KworCXZhbHVlc1tpKytdID0gRmxvYXQ4R2V0RGF0dW0oZXh0dmFjdXVtLT5jb21tb24uYmxr X3JlYWRfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1bShleHR2YWN1dW0t PmNvbW1vbi5ibGtfd3JpdGVfdGltZSk7CisJdmFsdWVzW2krK10gPSBGbG9hdDhHZXREYXR1 bShleHR2YWN1dW0tPmNvbW1vbi5kZWxheV90aW1lKTsKKwl2YWx1ZXNbaSsrXSA9IEZsb2F0 OEdldERhdHVtKGV4dHZhY3V1bS0+Y29tbW9uLnRvdGFsX3RpbWUpOworCXZhbHVlc1tpKytd ID0gSW50MzJHZXREYXR1bShleHR2YWN1dW0tPmNvbW1vbi53cmFwYXJvdW5kX2ZhaWxzYWZl X2NvdW50KTsKKwl2YWx1ZXNbaSsrXSA9IEludDMyR2V0RGF0dW0oZXh0dmFjdXVtLT5lcnJv cnMpOworCisJQXNzZXJ0KGkgPT0gUEdfU1RBVF9HRVRfVkFDVVVNX0RBVEFCQVNFX1NUQVRT X0NPTFMpOworCisJLyogUmV0dXJucyB0aGUgcmVjb3JkIGFzIERhdHVtICovCisJUEdfUkVU VVJOX0RBVFVNKEhlYXBUdXBsZUdldERhdHVtKGhlYXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2 YWx1ZXMsIG51bGxzKSkpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWNfcGFyYW1ldGVycy5kYXQgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJh bWV0ZXJzLmRhdAppbmRleCBmMDI2MGU2ZTQxMi4uZGQ0YzQ1MjIzNTUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CkBAIC0zMDkxLDYgKzMwOTEs MTIgQEAKICAgYm9vdF92YWwgPT4gJ2ZhbHNlJywKIH0sCiAKK3sgbmFtZSA9PiAndHJhY2tf dmFjdXVtX3N0YXRpc3RpY3MnLCB0eXBlID0+ICdib29sJywgY29udGV4dCA9PiAnUEdDX1NV U0VUJywgZ3JvdXAgPT4gJ1NUQVRTX0NVTVVMQVRJVkUnLAorICBzaG9ydF9kZXNjID0+ICdD b2xsZWN0cyB2YWN1dW0gc3RhdGlzdGljcyBmb3IgdmFjdXVtIGFjdGl2aXR5LicsCisgIHZh cmlhYmxlID0+ICdwZ3N0YXRfdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MnLAorICBib290X3Zh bCA9PiAnZmFsc2UnLAorfSwKKwogeyBuYW1lID0+ICd0cmFja193YWxfaW9fdGltaW5nJywg dHlwZSA9PiAnYm9vbCcsIGNvbnRleHQgPT4gJ1BHQ19TVVNFVCcsIGdyb3VwID0+ICdTVEFU U19DVU1VTEFUSVZFJywKICAgc2hvcnRfZGVzYyA9PiAnQ29sbGVjdHMgdGltaW5nIHN0YXRp c3RpY3MgZm9yIFdBTCBJL08gYWN0aXZpdHkuJywKICAgdmFyaWFibGUgPT4gJ3RyYWNrX3dh bF9pb190aW1pbmcnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3Fs LmNvbmYuc2FtcGxlCmluZGV4IGM0ZjkyZmNkYWM4Li5iMDc5ZWJlYWQwNSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtNjY5 LDYgKzY2OSw3IEBACiAjdHJhY2tfd2FsX2lvX3RpbWluZyA9IG9mZgogI3RyYWNrX2Z1bmN0 aW9ucyA9IG5vbmUgICAgICAgICAgICAgICAgICMgbm9uZSwgcGwsIGFsbAogI3N0YXRzX2Zl dGNoX2NvbnNpc3RlbmN5ID0gY2FjaGUgICAgICAgICMgY2FjaGUsIG5vbmUsIHNuYXBzaG90 CisjdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgPSBvZmYKIAogCiAjIC0gTW9uaXRvcmluZyAt CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA5NjEzMzdjZTI4Mi4uOTNmMTYyYzIx MzMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI2NDAsNiArMTI2NDAsMTUg QEAKICAgcHJvYXJnbmFtZXMgPT4gJ3twaWQsaW9faWQsaW9fZ2VuZXJhdGlvbixzdGF0ZSxv cGVyYXRpb24sb2ZmLGxlbmd0aCx0YXJnZXQsaGFuZGxlX2RhdGFfbGVuLHJhd19yZXN1bHQs cmVzdWx0LHRhcmdldF9kZXNjLGZfc3luYyxmX2xvY2FsbWVtLGZfYnVmZmVyZWR9JywKICAg cHJvc3JjID0+ICdwZ19nZXRfYWlvcycgfSwKIAoreyBvaWQgPT4gJzgwMDEnLAorICBkZXNj ciA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcyByZXR1cm5zIHZhY3V1bSBzdGF0cyB2 YWx1ZXMgZm9yIHRhYmxlJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX3Rh YmxlcycsIHByb3Jvd3MgPT4gMTAwMCwgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBl ID0+ICdyZWNvcmQnLHByb2lzc3RyaWN0ID0+ICdmJywKKyAgcHJvcmV0c2V0ID0+ICd0JywK KyAgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLG9p ZCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGlu dDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDQsaW50OCxpbnQ4LGludDgsbnVtZXJp YyxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxmbG9hdDh9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tp LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30n LAorICBwcm9hcmduYW1lcyA9PiAne3JlbG9pZCxyZWxpZCx0b3RhbF9ibGtzX3JlYWQsdG90 YWxfYmxrc19oaXQsdG90YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRlbixyZWxf Ymxrc19yZWFkLHJlbF9ibGtzX2hpdCxwYWdlc19zY2FubmVkLHBhZ2VzX3JlbW92ZWQsdm1f bmV3X2Zyb3plbl9wYWdlcyx2bV9uZXdfdmlzaWJsZV9wYWdlcyx2bV9uZXdfdmlzaWJsZV9m cm96ZW5fcGFnZXMsbWlzc2VkX2RlYWRfcGFnZXMsdHVwbGVzX2RlbGV0ZWQsdHVwbGVzX2Zy b3plbixyZWNlbnRseV9kZWFkX3R1cGxlcyxtaXNzZWRfZGVhZF90dXBsZXMsd3JhcGFyb3Vu ZF9mYWlsc2FmZSxpbmRleF92YWN1dW1fY291bnQsd2FsX3JlY29yZHMsd2FsX2ZwaSx3YWxf Ynl0ZXMsYmxrX3JlYWRfdGltZSxibGtfd3JpdGVfdGltZSxkZWxheV90aW1lLHRvdGFsX3Rp bWV9JywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzJyB9LAogIyBv aWQ4IHJlbGF0ZWQgZnVuY3Rpb25zCiB7IG9pZCA9PiAnODI1NScsIGRlc2NyID0+ICdjb252 ZXJ0IG9pZCB0byBvaWQ4JywKICAgcHJvbmFtZSA9PiAnb2lkOCcsIHByb3JldHR5cGUgPT4g J29pZDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKQEAgLTEyNzA1LDQgKzEyNzE0LDIyIEBA CiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3Jldl9hbGxfZnJvemVuX3BhZ2VzJywgcHJv dm9sYXRpbGUgPT4gJ3MnLAogICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4g J2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAgcHJvc3JjID0+ICdwZ19zdGF0X2dl dF9yZXZfYWxsX2Zyb3plbl9wYWdlcycgfSwKK3sgb2lkID0+ICc4MDA0JywKKyAgZGVzY3Ig PT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzIHJldHVybnMgdmFjdXVtIHN0YXRzIHZh bHVlcyBmb3IgaW5kZXgnLAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF92YWN1dW1faW5k ZXhlcycsIHByb3Jvd3MgPT4gMTAwMCwgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBl ID0+ICdyZWNvcmQnLHByb2lzc3RyaWN0ID0+ICdmJywKKyAgcHJvcmV0c2V0ID0+ICd0JywK KyAgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLG9p ZCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LG51 bWVyaWMsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4fScsCisgIHByb2FyZ21vZGVzID0+ ICd7aSxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVz ID0+ICd7cmVsb2lkLHJlbGlkLHRvdGFsX2Jsa3NfcmVhZCx0b3RhbF9ibGtzX2hpdCx0b3Rh bF9ibGtzX2RpcnRpZWQsdG90YWxfYmxrc193cml0dGVuLHJlbF9ibGtzX3JlYWQscmVsX2Js a3NfaGl0LHBhZ2VzX2RlbGV0ZWQsdHVwbGVzX2RlbGV0ZWQsd2FsX3JlY29yZHMsd2FsX2Zw aSx3YWxfYnl0ZXMsYmxrX3JlYWRfdGltZSxibGtfd3JpdGVfdGltZSxkZWxheV90aW1lLHRv dGFsX3RpbWV9JywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF92YWN1dW1faW5kZXhlcycg fSwKK3sgb2lkID0+ICc4MDA1JywKKyAgZGVzY3IgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9k YXRhYmFzZSByZXR1cm5zIHZhY3V1bSBzdGF0cyB2YWx1ZXMgZm9yIGRhdGFiYXNlJywKKyAg cHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfdmFjdXVtX2RhdGFiYXNlJywgcHJvcm93cyA9PiAx MDAwLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcscHJvaXNz dHJpY3QgPT4gJ2YnLAorICBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm9hcmd0eXBlcyA9PiAn b2lkJywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsb2lkLGludDgsaW50OCxpbnQ4LGlu dDgsaW50OCxpbnQ4LG51bWVyaWMsZmxvYXQ4LGZsb2F0OCxmbG9hdDgsZmxvYXQ4LGludDQs aW50NH0nLAorICBwcm9hcmdtb2RlcyA9PiAne2ksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8s byxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7ZGJpZCxkYm9pZCxkYl9ibGtzX3JlYWQsZGJf Ymxrc19oaXQsdG90YWxfYmxrc19kaXJ0aWVkLHRvdGFsX2Jsa3Nfd3JpdHRlbix3YWxfcmVj b3Jkcyx3YWxfZnBpLHdhbF9ieXRlcyxibGtfcmVhZF90aW1lLGJsa193cml0ZV90aW1lLGRl bGF5X3RpbWUsdG90YWxfdGltZSx3cmFwYXJvdW5kX2ZhaWxzYWZlLGVycm9yc30nLAorICBw cm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X3ZhY3V1bV9kYXRhYmFzZScgfSwKIF0KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvdmFjdXVtLmgKaW5kZXggZTg4NWE0YjljNzcuLmJmNGRkZjc0NTY4IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21t YW5kcy92YWN1dW0uaApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvYnVm LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsY2Fj aGUuaCIKKyNpbmNsdWRlICJwZ3N0YXQuaCIKIAogLyoKICAqIEZsYWdzIGZvciBhbXBhcmFs bGVsdmFjdXVtb3B0aW9ucyB0byBjb250cm9sIHRoZSBwYXJ0aWNpcGF0aW9uIG9mIGJ1bGtk ZWxldGUKQEAgLTMwMCw2ICszMDEsMjYgQEAgdHlwZWRlZiBzdHJ1Y3QgVmFjRGVhZEl0ZW1z SW5mbwogCWludDY0CQludW1faXRlbXM7CQkvKiBjdXJyZW50ICMgb2YgZW50cmllcyAqLwog fSBWYWNEZWFkSXRlbXNJbmZvOwogCisvKgorICogQ291bnRlcnMgYW5kIHVzYWdlIGRhdGEg Zm9yIGV4dGVuZGVkIHN0YXRzIHRyYWNraW5nLgorICovCit0eXBlZGVmIHN0cnVjdCBMVkV4 dFN0YXRDb3VudGVycworeworCVRpbWVzdGFtcFR6IHN0YXJ0dGltZTsKKwlXYWxVc2FnZQl3 YWx1c2FnZTsKKwlCdWZmZXJVc2FnZSBidWZ1c2FnZTsKKwlkb3VibGUJCVZhY3V1bURlbGF5 VGltZTsKKwlQZ1N0YXRfQ291bnRlciBibG9ja3NfZmV0Y2hlZDsKKwlQZ1N0YXRfQ291bnRl ciBibG9ja3NfaGl0OworfQkJCUxWRXh0U3RhdENvdW50ZXJzOworCit0eXBlZGVmIHN0cnVj dCBMVkV4dFN0YXRDb3VudGVyc0lkeAoreworCUxWRXh0U3RhdENvdW50ZXJzIGNvbW1vbjsK KwlpbnQ2NAkJcGFnZXNfZGVsZXRlZDsKKwlpbnQ2NAkJdHVwbGVzX3JlbW92ZWQ7Cit9CQkJ TFZFeHRTdGF0Q291bnRlcnNJZHg7CisKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4g UEdETExJTVBPUlQgaW50IGRlZmF1bHRfc3RhdGlzdGljc190YXJnZXQ7CS8qIFBHRExMSU1Q T1JUIGZvciBQb3N0R0lTICovCiBleHRlcm4gUEdETExJTVBPUlQgaW50IHZhY3V1bV9mcmVl emVfbWluX2FnZTsKQEAgLTMzMiw2ICszNTMsNyBAQCBleHRlcm4gUEdETExJTVBPUlQgZG91 YmxlIHZhY3V1bV9tYXhfZWFnZXJfZnJlZXplX2ZhaWx1cmVfcmF0ZTsKIGV4dGVybiBQR0RM TElNUE9SVCBwZ19hdG9taWNfdWludDMyICpWYWN1dW1TaGFyZWRDb3N0QmFsYW5jZTsKIGV4 dGVybiBQR0RMTElNUE9SVCBwZ19hdG9taWNfdWludDMyICpWYWN1dW1BY3RpdmVOV29ya2Vy czsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgVmFjdXVtQ29zdEJhbGFuY2VMb2NhbDsKK2V4 dGVybiBQR0RMTElNUE9SVCBkb3VibGUgVmFjdXVtRGVsYXlUaW1lOwogCiBleHRlcm4gUEdE TExJTVBPUlQgYm9vbCBWYWN1dW1GYWlsc2FmZUFjdGl2ZTsKIGV4dGVybiBQR0RMTElNUE9S VCBkb3VibGUgdmFjdXVtX2Nvc3RfZGVsYXk7CkBAIC00MTIsNCArNDM0LDggQEAgZXh0ZXJu IGRvdWJsZSBhbmxfcmFuZG9tX2ZyYWN0KHZvaWQpOwogZXh0ZXJuIGRvdWJsZSBhbmxfaW5p dF9zZWxlY3Rpb25fc3RhdGUoaW50IG4pOwogZXh0ZXJuIGRvdWJsZSBhbmxfZ2V0X25leHRf Uyhkb3VibGUgdCwgaW50IG4sIGRvdWJsZSAqc3RhdGVwdHIpOwogCitleHRlcm4gdm9pZCBl eHR2YWNfc3RhdHNfc3RhcnRfaWR4KFJlbGF0aW9uIHJlbCwgSW5kZXhCdWxrRGVsZXRlUmVz dWx0ICpzdGF0cywKKwkJCQkJCQkJICAgTFZFeHRTdGF0Q291bnRlcnNJZHggKiBjb3VudGVy cyk7CitleHRlcm4gdm9pZCBleHR2YWNfc3RhdHNfZW5kX2lkeChSZWxhdGlvbiByZWwsIElu ZGV4QnVsa0RlbGV0ZVJlc3VsdCAqc3RhdHMsCisJCQkJCQkJCSBMVkV4dFN0YXRDb3VudGVy c0lkeCAqIGNvdW50ZXJzLCBQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKiByZXBvcnQp OwogI2VuZGlmCQkJCQkJCS8qIFZBQ1VVTV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9wZ3N0YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4IDA3MjA2NWFkYzkwLi45 ZjFhMWVlNWMyMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIvc3Jj L2luY2x1ZGUvcGdzdGF0LmgKQEAgLTExNCw2ICsxMTQsMTUgQEAgdHlwZWRlZiBzdHJ1Y3Qg UGdTdGF0X0JhY2tlbmRTdWJFbnRyeQogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2NvdW50 W0NPTkZMSUNUX05VTV9UWVBFU107CiB9IFBnU3RhdF9CYWNrZW5kU3ViRW50cnk7CiAKKy8q IFR5cGUgb2YgRXh0VmFjUmVwb3J0ICovCit0eXBlZGVmIGVudW0gRXh0VmFjUmVwb3J0VHlw ZQoreworCVBHU1RBVF9FWFRWQUNfSU5WQUxJRCA9IDAsCisJUEdTVEFUX0VYVFZBQ19UQUJM RSA9IDEsCisJUEdTVEFUX0VYVFZBQ19JTkRFWCA9IDIsCisJUEdTVEFUX0VYVFZBQ19EQiA9 IDMsCit9CQkJRXh0VmFjUmVwb3J0VHlwZTsKKwogLyogLS0tLS0tLS0tLQogICogUGdTdGF0 X1RhYmxlQ291bnRzCQkJVGhlIGFjdHVhbCBwZXItdGFibGUgY291bnRzIGtlcHQgYnkgYSBi YWNrZW5kCiAgKgpAQCAtMTYxLDYgKzE3MCwxMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0 X1RhYmxlQ291bnRzCiAJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF9mcm96ZW5fcGFnZXM7CiB9 IFBnU3RhdF9UYWJsZUNvdW50czsKIAordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X0NvbW1vbkNv dW50cworeworCS8qIGJsb2NrcyAqLworCWludDY0CQl0b3RhbF9ibGtzX3JlYWQ7CisJaW50 NjQJCXRvdGFsX2Jsa3NfaGl0OworCWludDY0CQl0b3RhbF9ibGtzX2RpcnRpZWQ7CisJaW50 NjQJCXRvdGFsX2Jsa3Nfd3JpdHRlbjsKKworCS8qIGhlYXAgYmxvY2tzICovCisJaW50NjQJ CWJsa3NfZmV0Y2hlZDsKKwlpbnQ2NAkJYmxrc19oaXQ7CisKKwkvKiBXQUwgKi8KKwlpbnQ2 NAkJd2FsX3JlY29yZHM7CisJaW50NjQJCXdhbF9mcGk7CisJdWludDY0CQl3YWxfYnl0ZXM7 CisKKwkvKiBUaW1lICovCisJZG91YmxlCQlibGtfcmVhZF90aW1lOworCWRvdWJsZQkJYmxr X3dyaXRlX3RpbWU7CisJZG91YmxlCQlkZWxheV90aW1lOworCWRvdWJsZQkJdG90YWxfdGlt ZTsKKworCS8qIHR1cGxlcyAqLworCWludDY0CQl0dXBsZXNfZGVsZXRlZDsKKworCS8qIGZh aWxzYWZlICovCisJaW50MzIJCXdyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ7Cit9CQkJUGdT dGF0X0NvbW1vbkNvdW50czsKKworLyogLS0tLS0tLS0tLQorICoKKyAqIFBnU3RhdF9WYWN1 dW1SZWxhdGlvbkNvdW50cworICoKKyAqIEFkZGl0aW9uYWwgc3RhdGlzdGljcyBvZiB2YWN1 dW0gcHJvY2Vzc2luZyBvdmVyIGEgcmVsYXRpb24uCisgKiBwYWdlc19yZW1vdmVkIGlzIHRo ZSBhbW91bnQgYnkgd2hpY2ggdGhlIHBoeXNpY2FsbHkgc2hyYW5rLAorICogaWYgYW55IChp ZSB0aGUgY2hhbmdlIGluIGl0cyB0b3RhbCBzaXplIG9uIGRpc2spCisgKiBwYWdlc19kZWxl dGVkIHJlZmVyIHRvIGZyZWUgc3BhY2Ugd2l0aGluIHRoZSBpbmRleCBmaWxlCisgKiAtLS0t LS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IFBnU3RhdF9WYWN1dW1SZWxhdGlvbkNvdW50 cworeworCVBnU3RhdF9Db21tb25Db3VudHMgY29tbW9uOworCisJRXh0VmFjUmVwb3J0VHlw ZSB0eXBlOwkJLyogaGVhcCwgaW5kZXgsIGV0Yy4gKi8KKworCS8qIC0tLS0tLS0tLS0KKwkg KgorCSAqIFRoZXJlIGFyZSBzZXBhcmF0ZSBtZXRyaWNzIG9mIHN0YXRpc3RpYyBmb3IgdGFi bGVzIGFuZCBpbmRleGVzLAorCSAqIHdoaWNoIGNvbGxlY3QgZHVyaW5nIHZhY3V1bS4KKwkg KiBUaGUgdW5pb24gb3BlcmF0b3IgYWxsb3dzIHRvIGNvbWJpbmUgdGhlc2Ugc3RhdGlzdGlj cworCSAqIHNvIHRoYXQgZWFjaCBtZXRyaWMgaXMgYXNzaWduZWQgdG8gYSBzcGVjaWZpYyBj bGFzcyBvZiBjb2xsZWN0ZWQgc3RhdGlzdGljcy4KKwkgKiBTdWNoIGEgY29tYmluZWQgc3Ry dWN0dXJlIHdhcyBjYWxsZWQgcGVyX3R5cGVfc3RhdHMuCisJICogVGhlIG5hbWUgb2YgdGhl IHN0cnVjdHVyZSBpdHNlbGYgaXMgbm90IHVzZWQgYW55d2hlcmUsCisJICogaXQgZXhpc3Rz IG9ubHkgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGNvZGUuCisJICogLS0tLS0tLS0tLQorCSov CisJdW5pb24KKwl7CisJCXN0cnVjdAorCQl7CisJCQlpbnQ2NAkJdHVwbGVzX2Zyb3plbjsJ LyogdHVwbGVzIGZyb3plbiB1cCBieSB2YWN1dW0gKi8KKwkJCWludDY0CQlyZWNlbnRseV9k ZWFkX3R1cGxlczsJLyogZGVsZXRlZCB0dXBsZXMgdGhhdCBhcmUKKwkJCQkJCQkJCQkJCSAq IHN0aWxsIHZpc2libGUgdG8gc29tZQorCQkJCQkJCQkJCQkJICogdHJhbnNhY3Rpb24gKi8K KwkJCWludDY0CQltaXNzZWRfZGVhZF90dXBsZXM7IC8qIHR1cGxlcyBub3QgcHJ1bmVkIGJ5 IHZhY3V1bSBkdWUKKwkJCQkJCQkJCQkJICogdG8gZmFpbHVyZSB0byBnZXQgYSBjbGVhbnVw CisJCQkJCQkJCQkJCSAqIGxvY2sgKi8KKwkJCWludDY0CQlwYWdlc19zY2FubmVkOwkvKiBo ZWFwIHBhZ2VzIGV4YW1pbmVkIChub3Qgc2tpcHBlZCBieQorCQkJCQkJCQkJCSAqIFZNKSAq LworCQkJaW50NjQJCXBhZ2VzX3JlbW92ZWQ7CS8qIGhlYXAgcGFnZXMgcmVtb3ZlZCBieSB2 YWN1dW0KKwkJCQkJCQkJCQkgKiAidHJ1bmNhdGlvbiIgKi8KKwkJCWludDY0CQlwYWdlc19m cm96ZW47CS8qIHBhZ2VzIG1hcmtlZCBpbiBWTSBhcyBmcm96ZW4gKi8KKwkJCWludDY0CQlw YWdlc19hbGxfdmlzaWJsZTsJLyogcGFnZXMgbWFya2VkIGluIFZNIGFzCisJCQkJCQkJCQkJ CSAqIGFsbC12aXNpYmxlICovCisJCQlpbnQ2NAkJdm1fbmV3X2Zyb3plbl9wYWdlczsJLyog cGFnZXMgbWFya2VkIGluIFZNIGFzCisJCQkJCQkJCQkJCQkgKiBmcm96ZW4gKi8KKwkJCWlu dDY0CQl2bV9uZXdfdmlzaWJsZV9wYWdlczsJLyogcGFnZXMgbWFya2VkIGluIFZNIGFzCisJ CQkJCQkJCQkJCQkgKiBhbGwtdmlzaWJsZSAqLworCQkJaW50NjQJCXZtX25ld192aXNpYmxl X2Zyb3plbl9wYWdlczsJLyogcGFnZXMgbWFya2VkIGluIFZNIGFzCisJCQkJCQkJCQkJCQkJ CSAqIGFsbC12aXNpYmxlIGFuZAorCQkJCQkJCQkJCQkJCQkgKiBmcm96ZW4gKi8KKwkJCWlu dDY0CQltaXNzZWRfZGVhZF9wYWdlczsJLyogcGFnZXMgd2l0aCBtaXNzZWQgZGVhZCB0dXBs ZXMgKi8KKwkJCWludDY0CQlpbmRleF92YWN1dW1fY291bnQ7IC8qIG51bWJlciBvZiBpbmRl eCB2YWN1dW1pbmdzICovCisJCX0JCQl0YWJsZTsKKwkJc3RydWN0CisJCXsKKwkJCWludDY0 CQlwYWdlc19kZWxldGVkOwkvKiBudW1iZXIgb2YgcGFnZXMgZGVsZXRlZCBieSB2YWN1dW0g Ki8KKwkJfQkJCWluZGV4OworCX0gLyogcGVyX3R5cGVfc3RhdHMgKi8gOworfQkJCVBnU3Rh dF9WYWN1dW1SZWxhdGlvbkNvdW50czsKKwordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1ZhY3V1 bVJlbGF0aW9uU3RhdHVzCit7CisJT2lkCQkJaWQ7CQkJCS8qIHRhYmxlJ3MgT0lEICovCisJ Ym9vbAkJc2hhcmVkOwkJCS8qIGlzIGl0IGEgc2hhcmVkIGNhdGFsb2c/ICovCisJUGdTdGF0 X1ZhY3V1bVJlbGF0aW9uQ291bnRzIGNvdW50czsgLyogZXZlbnQgY291bnRzIHRvIGJlIHNl bnQgKi8KK30JCQlQZ1N0YXRfVmFjdXVtUmVsYXRpb25TdGF0dXM7CisKK3R5cGVkZWYgc3Ry dWN0IFBnU3RhdF9WYWN1dW1EQkNvdW50cworeworCU9pZAkJCWRiamlkOworCVBnU3RhdF9D b21tb25Db3VudHMgY29tbW9uOworCWludDMyCQllcnJvcnM7Cit9CQkJUGdTdGF0X1ZhY3V1 bURCQ291bnRzOworCiAvKiAtLS0tLS0tLS0tCiAgKiBQZ1N0YXRfVGFibGVTdGF0dXMJCQlQ ZXItdGFibGUgc3RhdHVzIHdpdGhpbiBhIGJhY2tlbmQKICAqCkBAIC0xODUsNiArMzAwLDEy IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9UYWJsZVN0YXR1cwogCVJlbGF0aW9uCXJlbGF0 aW9uOwkJLyogcmVsIHRoYXQgaXMgdXNpbmcgdGhpcyBlbnRyeSAqLwogfSBQZ1N0YXRfVGFi bGVTdGF0dXM7CiAKK3R5cGVkZWYgc3RydWN0IFBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRp bmcKK3sKKwlPaWQJCQlpZDsJCQkJLyogdGFibGUncyBPSUQgKi8KKwlQZ1N0YXRfVmFjdXVt UmVsYXRpb25Db3VudHMgY291bnRzOyAvKiBldmVudCBjb3VudHMgdG8gYmUgc2VudCAqLwor fQkJCVBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmc7CisKIC8qIC0tLS0tLS0tLS0KICAq IFBnU3RhdF9UYWJsZVhhY3RTdGF0dXMJCVBlci10YWJsZSwgcGVyLXN1YnRyYW5zYWN0aW9u IHN0YXR1cwogICogLS0tLS0tLS0tLQpAQCAtODEyLDYgKzkzMywxNiBAQCBleHRlcm4gaW50 CXBnc3RhdF9nZXRfdHJhbnNhY3Rpb25hbF9kcm9wcyhib29sIGlzQ29tbWl0LCBzdHJ1Y3Qg eGxfeGFjdF9zdGF0c19pdAogZXh0ZXJuIHZvaWQgcGdzdGF0X2V4ZWN1dGVfdHJhbnNhY3Rp b25hbF9kcm9wcyhpbnQgbmRyb3BzLCBzdHJ1Y3QgeGxfeGFjdF9zdGF0c19pdGVtICppdGVt cywgYm9vbCBpc19yZWRvKTsKIAogCitleHRlcm4gdm9pZCBwZ3N0YXRfZHJvcF92YWN1dW1f ZGF0YWJhc2UoT2lkIGRhdGFiYXNlaWQpOworZXh0ZXJuIHZvaWQgcGdzdGF0X3ZhY3V1bV9y ZWxhdGlvbl9kZWxldGVfcGVuZGluZ19jYihPaWQgcmVsaWQpOworZXh0ZXJuIHZvaWQKKwkJ CXBnc3RhdF9yZXBvcnRfdmFjdXVtX2V4dHN0YXRzKE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFy ZWQsCisJCQkJCQkJCQkJICBQZ1N0YXRfVmFjdXVtUmVsYXRpb25Db3VudHMgKiBwYXJhbXMp OworZXh0ZXJuIFBnU3RhdF9SZWxhdGlvblZhY3V1bVBlbmRpbmcgKiBmaW5kX3ZhY3V1bV9y ZWxhdGlvbl9lbnRyeShPaWQgcmVsaWQpOworZXh0ZXJuIFBnU3RhdF9WYWN1dW1EQkNvdW50 cyAqIHBnc3RhdF9wcmVwX3ZhY3V1bV9kYXRhYmFzZV9wZW5kaW5nKE9pZCBkYm9pZCk7Citl eHRlcm4gUGdTdGF0X1ZhY3V1bVJlbGF0aW9uQ291bnRzICogcGdzdGF0X2ZldGNoX3N0YXRf dmFjdXVtX3RhYmVudHJ5KE9pZCByZWxpZCwgT2lkIGRiaWQpOworUGdTdGF0X1ZhY3V1bURC Q291bnRzICpwZ3N0YXRfZmV0Y2hfc3RhdF92YWN1dW1fZGJlbnRyeShPaWQgZGJpZCk7CisK IC8qCiAgKiBGdW5jdGlvbnMgaW4gcGdzdGF0X3dhbC5jCiAgKi8KQEAgLTgyOCw3ICs5NTks OCBAQCBleHRlcm4gUGdTdGF0X1dhbFN0YXRzICpwZ3N0YXRfZmV0Y2hfc3RhdF93YWwodm9p ZCk7CiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBwZ3N0YXRfdHJhY2tfY291bnRzOwogZXh0 ZXJuIFBHRExMSU1QT1JUIGludCBwZ3N0YXRfdHJhY2tfZnVuY3Rpb25zOwogZXh0ZXJuIFBH RExMSU1QT1JUIGludCBwZ3N0YXRfZmV0Y2hfY29uc2lzdGVuY3k7Ci0KK2V4dGVybiBQR0RM TElNUE9SVCBib29sIHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljczsKK2V4dGVybiBQ R0RMTElNUE9SVCBib29sIHBnc3RhdF90cmFja192YWN1dW1fc3RhdGlzdGljc19mb3JfcmVs YXRpb25zOwogCiAvKgogICogVmFyaWFibGVzIGluIHBnc3RhdF9iZ3dyaXRlci5jCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCmluZGV4IDliOGZiYWUwMGVkLi4zZmZiODM5 NTM5NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFsLmgK KysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2ludGVybmFsLmgKQEAgLTUwMCw2ICs1 MDAsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0U2hhcmVkX1JlbGF0aW9uCiAJUGdTdGF0 X1N0YXRUYWJFbnRyeSBzdGF0czsKIH0gUGdTdGF0U2hhcmVkX1JlbGF0aW9uOwogCit0eXBl ZGVmIHN0cnVjdCBQZ1N0YXRTaGFyZWRfVmFjdXVtREIKK3sKKwlQZ1N0YXRTaGFyZWRfQ29t bW9uIGhlYWRlcjsKKwlQZ1N0YXRfVmFjdXVtREJDb3VudHMgc3RhdHM7Cit9CQkJUGdTdGF0 U2hhcmVkX1ZhY3V1bURCOworCit0eXBlZGVmIHN0cnVjdCBQZ1N0YXRTaGFyZWRfVmFjdXVt UmVsYXRpb24KK3sKKwlQZ1N0YXRTaGFyZWRfQ29tbW9uIGhlYWRlcjsKKwlQZ1N0YXRfVmFj dXVtUmVsYXRpb25Db3VudHMgc3RhdHM7Cit9CQkJUGdTdGF0U2hhcmVkX1ZhY3V1bVJlbGF0 aW9uOworCiB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRTaGFyZWRfRnVuY3Rpb24KIHsKIAlQZ1N0 YXRTaGFyZWRfQ29tbW9uIGhlYWRlcjsKQEAgLTY3OCw2ICs2OTAsOSBAQCBleHRlcm4gUGdT dGF0X0VudHJ5UmVmICpwZ3N0YXRfZmV0Y2hfcGVuZGluZ19lbnRyeShQZ1N0YXRfS2luZCBr aW5kLAogZXh0ZXJuIHZvaWQgKnBnc3RhdF9mZXRjaF9lbnRyeShQZ1N0YXRfS2luZCBraW5k LCBPaWQgZGJvaWQsIHVpbnQ2NCBvYmppZCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfc25hcHNo b3RfZml4ZWQoUGdTdGF0X0tpbmQga2luZCk7CiAKK2Jvb2wJCXBnc3RhdF92YWN1dW1fZGJf Zmx1c2hfY2IoUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KTsKK2V4 dGVybiBib29sIHBnc3RhdF92YWN1dW1fcmVsYXRpb25fZmx1c2hfY2IoUGdTdGF0X0VudHJ5 UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KTsKKwogCiAvKgogICogRnVuY3Rpb25zIGlu IHBnc3RhdF9hcmNoaXZlci5jCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9wZ3N0 YXRfa2luZC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2tpbmQuaAppbmRleCBjMzBi NjIzNTYyMy4uZGVkOTc2N2I2NzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3Bn c3RhdF9raW5kLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGdzdGF0X2tpbmQuaApAQCAt MzgsOSArMzgsMTEgQEAKICNkZWZpbmUgUEdTVEFUX0tJTkRfSU8JMTAKICNkZWZpbmUgUEdT VEFUX0tJTkRfU0xSVQkxMQogI2RlZmluZSBQR1NUQVRfS0lORF9XQUwJMTIKKyNkZWZpbmUg UEdTVEFUX0tJTkRfVkFDVVVNX0RCCTEzCisjZGVmaW5lIFBHU1RBVF9LSU5EX1ZBQ1VVTV9S RUxBVElPTgkxNAogCiAjZGVmaW5lIFBHU1RBVF9LSU5EX0JVSUxUSU5fTUlOIFBHU1RBVF9L SU5EX0RBVEFCQVNFCi0jZGVmaW5lIFBHU1RBVF9LSU5EX0JVSUxUSU5fTUFYIFBHU1RBVF9L SU5EX1dBTAorI2RlZmluZSBQR1NUQVRfS0lORF9CVUlMVElOX01BWCBQR1NUQVRfS0lORF9W QUNVVU1fUkVMQVRJT04KICNkZWZpbmUgUEdTVEFUX0tJTkRfQlVJTFRJTl9TSVpFIChQR1NU QVRfS0lORF9CVUlMVElOX01BWCArIDEpCiAKIC8qIEN1c3RvbSBzdGF0cyBraW5kcyAqLwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3ZhY3V1bS1leHRlbmRp bmctaW4tcmVwZXRhYmxlLXJlYWQub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVk L3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQub3V0Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZDk2MDQyMzkxMgotLS0gL2Rldi9udWxsCisr KyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC92YWN1dW0tZXh0ZW5kaW5nLWluLXJl cGV0YWJsZS1yZWFkLm91dApAQCAtMCwwICsxLDUzIEBACit1bnVzZWQgc3RlcCBuYW1lOiBz Ml9kZWxldGUKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCAyIHNlc3Npb25zCisKK3N0YXJ0aW5n IHBlcm11dGF0aW9uOiBzMl9pbnNlcnQgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlIHMx X2JlZ2luX3JlcGVhdGFibGVfcmVhZCBzMl91cGRhdGUgczJfaW5zZXJ0X2ludGVycnVwdCBz Ml92YWN1dW0gczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlIHMxX2NvbW1pdCBzMl9jaGVj a3BvaW50IHMyX3ZhY3V1bSBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUKK3N0ZXAgczJf aW5zZXJ0OiBJTlNFUlQgSU5UTyB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbihpZCwgaXZh bCkgU0VMRUNUIGl2YWwsIGl2YWwlMTAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKSBB cyBpdmFsOworc3RlcCBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGU6IAorICAgIFNFTEVD VAorICAgIHZ0LnJlbG5hbWUsIHZ0LnR1cGxlc19kZWxldGVkLCB2dC5yZWNlbnRseV9kZWFk X3R1cGxlcywgdnQubWlzc2VkX2RlYWRfdHVwbGVzLCB2dC5taXNzZWRfZGVhZF9wYWdlcywg dnQudHVwbGVzX2Zyb3plbgorICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBw Z19jbGFzcyBjCisgICAgV0hFUkUgdnQucmVsbmFtZSA9ICd0ZXN0X3ZhY3V1bV9zdGF0X2lz b2xhdGlvbicgQU5EIHZ0LnJlbGlkID0gYy5vaWQ7CisKK3JlbG5hbWUgICAgICAgICAgICAg ICAgICAgfHR1cGxlc19kZWxldGVkfHJlY2VudGx5X2RlYWRfdHVwbGVzfG1pc3NlZF9kZWFk X3R1cGxlc3xtaXNzZWRfZGVhZF9wYWdlc3x0dXBsZXNfZnJvemVuCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQordGVzdF92 YWN1dW1fc3RhdF9pc29sYXRpb258ICAgICAgICAgICAgIDB8ICAgICAgICAgICAgICAgICAg IDB8ICAgICAgICAgICAgICAgICAwfCAgICAgICAgICAgICAgICAwfCAgICAgICAgICAgIDAK KygxIHJvdykKKworc3RlcCBzMV9iZWdpbl9yZXBlYXRhYmxlX3JlYWQ6IAorICBCRUdJTiB0 cmFuc2FjdGlvbiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFEOworICBzZWxlY3Qg Y291bnQoaXZhbCkgZnJvbSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiB3aGVyZSBpZD45 MDA7CisKK2NvdW50CistLS0tLQorICAxMDAKKygxIHJvdykKKworc3RlcCBzMl91cGRhdGU6 IFVQREFURSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiBTRVQgaXZhbCA9IGl2YWwgKyAy IHdoZXJlIGlkID4gOTAwOworc3RlcCBzMl9pbnNlcnRfaW50ZXJydXB0OiBJTlNFUlQgSU5U TyB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbiB2YWx1ZXMgKDEsMSk7CitzdGVwIHMyX3Zh Y3V1bTogVkFDVVVNIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uOworc3RlcCBzMl9wcmlu dF92YWN1dW1fc3RhdHNfdGFibGU6IAorICAgIFNFTEVDVAorICAgIHZ0LnJlbG5hbWUsIHZ0 LnR1cGxlc19kZWxldGVkLCB2dC5yZWNlbnRseV9kZWFkX3R1cGxlcywgdnQubWlzc2VkX2Rl YWRfdHVwbGVzLCB2dC5taXNzZWRfZGVhZF9wYWdlcywgdnQudHVwbGVzX2Zyb3plbgorICAg IEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIHZ0LCBwZ19jbGFzcyBjCisgICAgV0hFUkUg dnQucmVsbmFtZSA9ICd0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xhdGlvbicgQU5EIHZ0LnJlbGlk ID0gYy5vaWQ7CisKK3JlbG5hbWUgICAgICAgICAgICAgICAgICAgfHR1cGxlc19kZWxldGVk fHJlY2VudGx5X2RlYWRfdHVwbGVzfG1pc3NlZF9kZWFkX3R1cGxlc3xtaXNzZWRfZGVhZF9w YWdlc3x0dXBsZXNfZnJvemVuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQordGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb258 ICAgICAgICAgICAgIDB8ICAgICAgICAgICAgICAgICA2MDB8ICAgICAgICAgICAgICAgICAw fCAgICAgICAgICAgICAgICAwfCAgICAgICAgICAgIDAKKygxIHJvdykKKworc3RlcCBzMV9j b21taXQ6IENPTU1JVDsKK3N0ZXAgczJfY2hlY2twb2ludDogQ0hFQ0tQT0lOVDsKK3N0ZXAg czJfdmFjdXVtOiBWQUNVVU0gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb247CitzdGVwIHMy X3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZTogCisgICAgU0VMRUNUCisgICAgdnQucmVsbmFt ZSwgdnQudHVwbGVzX2RlbGV0ZWQsIHZ0LnJlY2VudGx5X2RlYWRfdHVwbGVzLCB2dC5taXNz ZWRfZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFkX3BhZ2VzLCB2dC50dXBsZXNfZnJvemVu CisgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMgdnQsIHBnX2NsYXNzIGMKKyAgICBX SEVSRSB2dC5yZWxuYW1lID0gJ3Rlc3RfdmFjdXVtX3N0YXRfaXNvbGF0aW9uJyBBTkQgdnQu cmVsaWQgPSBjLm9pZDsKKworcmVsbmFtZSAgICAgICAgICAgICAgICAgICB8dHVwbGVzX2Rl bGV0ZWR8cmVjZW50bHlfZGVhZF90dXBsZXN8bWlzc2VkX2RlYWRfdHVwbGVzfG1pc3NlZF9k ZWFkX3BhZ2VzfHR1cGxlc19mcm96ZW4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCit0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xh dGlvbnwgICAgICAgICAgIDMwMHwgICAgICAgICAgICAgICAgIDYwMHwgICAgICAgICAgICAg ICAgIDB8ICAgICAgICAgICAgICAgIDB8ICAgICAgICAgIDMwMworKDEgcm93KQorCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlIGIvc3JjL3Rl c3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQppbmRleCA2YTRkMzUzMmUwMy4uNmMz YmNlOTBkNmQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2No ZWR1bGUKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQpAQCAt MTAwLDYgKzEwMCw3IEBAIHRlc3Q6IHRpbWVvdXRzCiB0ZXN0OiB2YWN1dW0tY29uY3VycmVu dC1kcm9wCiB0ZXN0OiB2YWN1dW0tY29uZmxpY3QKIHRlc3Q6IHZhY3V1bS1za2lwLWxvY2tl ZAordGVzdDogdmFjdXVtLWV4dGVuZGluZy1pbi1yZXBldGFibGUtcmVhZAogdGVzdDogc3Rh dHMKIHRlc3Q6IGhvcml6b25zCiB0ZXN0OiBwcmVkaWNhdGUtaGFzaApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxl LXJlYWQuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy92YWN1dW0tZXh0ZW5kaW5n LWluLXJlcGV0YWJsZS1yZWFkLnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLmNmZWMzMTU5NTgwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNv bGF0aW9uL3NwZWNzL3ZhY3V1bS1leHRlbmRpbmctaW4tcmVwZXRhYmxlLXJlYWQuc3BlYwpA QCAtMCwwICsxLDU5IEBACisjIFRlc3QgZm9yIGNoZWNraW5nIHJlY2VudGx5X2RlYWRfdHVw bGVzLCB0dXBsZXNfZGVsZXRlZCBhbmQgZnJvemVuIHR1cGxlcyBpbiBwZ19zdGF0X3ZhY3V1 bV90YWJsZXMuCisjIHJlY2VudGx5X2RlYWRfdHVwbGVzIHZhbHVlcyBhcmUgY291bnRlZCB3 aGVuIHZhY3V1bSBoYXNuJ3QgY2xlYXJlZCB0dXBsZXMgYmVjYXVzZSB0aGV5IHdlcmUgZGVs ZXRlZCByZWNlbnRseS4KKyMgcmVjZW50bHlfZGVhZF90dXBsZXMgYXJlbid0IGluY3JlYXNl ZCBhZnRlciByZWxlYXNpbmcgbG9jayBjb21wYXJlZCB3aXRoIHR1cGxlc19kZWxldGVkLCB3 aGljaCBpbmNyZWFzZWQKKyMgYnkgdGhlIHZhbHVlIG9mIHRoZSBjbGVhcmVkIHR1cGxlcyB0 aGF0IHRoZSB2YWN1dW0gbWFuYWdlZCB0byBjbGVhci4KKworc2V0dXAKK3sKKyAgICBDUkVB VEUgVEFCTEUgdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24oaWQgaW50LCBpdmFsIGludCkg V0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmKTsKKyAgICBTRVQgdHJhY2tfaW9fdGlt aW5nID0gb247CisgICAgU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvbic7Cit9 CisKK3RlYXJkb3duCit7CisgICAgRFJPUCBUQUJMRSB0ZXN0X3ZhY3V1bV9zdGF0X2lzb2xh dGlvbiBDQVNDQURFOworICAgIFJFU0VUIHRyYWNrX2lvX3RpbWluZzsKKyAgICBSRVNFVCB0 cmFja192YWN1dW1fc3RhdGlzdGljczsKK30KKworc2Vzc2lvbiBzMQorc2V0dXAJCXsKKyAg ICBTRVQgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgVE8gJ29uJzsKKyAgICB9CitzdGVwIHMx X2JlZ2luX3JlcGVhdGFibGVfcmVhZCAgIHsKKyAgQkVHSU4gdHJhbnNhY3Rpb24gSVNPTEFU SU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRDsKKyAgc2VsZWN0IGNvdW50KGl2YWwpIGZyb20g dGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24gd2hlcmUgaWQ+OTAwOworICB9CitzdGVwIHMx X2NvbW1pdCAgICAgICAgICAgICAgICAgIHsgQ09NTUlUOyB9CisKK3Nlc3Npb24gczIKK3Nl dHVwCQl7CisgICAgU0VUIHRyYWNrX3ZhY3V1bV9zdGF0aXN0aWNzIFRPICdvbic7CisgICAg fQorc3RlcCBzMl9pbnNlcnQgICAgICAgICAgICAgICAgICB7IElOU0VSVCBJTlRPIHRlc3Rf dmFjdXVtX3N0YXRfaXNvbGF0aW9uKGlkLCBpdmFsKSBTRUxFQ1QgaXZhbCwgaXZhbCUxMCBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApIEFzIGl2YWw7IH0KK3N0ZXAgczJfdXBkYXRl ICAgICAgICAgICAgICAgICAgeyBVUERBVEUgdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24g U0VUIGl2YWwgPSBpdmFsICsgMiB3aGVyZSBpZCA+IDkwMDsgfQorc3RlcCBzMl9kZWxldGUg ICAgICAgICAgICAgICAgICB7IERFTEVURSBGUk9NIHRlc3RfdmFjdXVtX3N0YXRfaXNvbGF0 aW9uIHdoZXJlIGlkID4gOTAwOyB9CitzdGVwIHMyX2luc2VydF9pbnRlcnJ1cHQgICAgICAg IHsgSU5TRVJUIElOVE8gdGVzdF92YWN1dW1fc3RhdF9pc29sYXRpb24gdmFsdWVzICgxLDEp OyB9CitzdGVwIHMyX3ZhY3V1bSAgICAgICAgICAgICAgICAgIHsgVkFDVVVNIHRlc3RfdmFj dXVtX3N0YXRfaXNvbGF0aW9uOyB9CitzdGVwIHMyX2NoZWNrcG9pbnQgICAgICAgICAgICAg IHsgQ0hFQ0tQT0lOVDsgfQorc3RlcCBzMl9wcmludF92YWN1dW1fc3RhdHNfdGFibGUKK3sK KyAgICBTRUxFQ1QKKyAgICB2dC5yZWxuYW1lLCB2dC50dXBsZXNfZGVsZXRlZCwgdnQucmVj ZW50bHlfZGVhZF90dXBsZXMsIHZ0Lm1pc3NlZF9kZWFkX3R1cGxlcywgdnQubWlzc2VkX2Rl YWRfcGFnZXMsIHZ0LnR1cGxlc19mcm96ZW4KKyAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX3Rh YmxlcyB2dCwgcGdfY2xhc3MgYworICAgIFdIRVJFIHZ0LnJlbG5hbWUgPSAndGVzdF92YWN1 dW1fc3RhdF9pc29sYXRpb24nIEFORCB2dC5yZWxpZCA9IGMub2lkOworfQorCitwZXJtdXRh dGlvbgorICAgIHMyX2luc2VydAorICAgIHMyX3ByaW50X3ZhY3V1bV9zdGF0c190YWJsZQor ICAgIHMxX2JlZ2luX3JlcGVhdGFibGVfcmVhZAorICAgIHMyX3VwZGF0ZQorICAgIHMyX2lu c2VydF9pbnRlcnJ1cHQKKyAgICBzMl92YWN1dW0KKyAgICBzMl9wcmludF92YWN1dW1fc3Rh dHNfdGFibGUKKyAgICBzMV9jb21taXQKKyAgICBzMl9jaGVja3BvaW50CisgICAgczJfdmFj dXVtCisgICAgczJfcHJpbnRfdmFjdXVtX3N0YXRzX3RhYmxlClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTJfdmFjdXVt X2V4dGVuZGluZ19iYXNpY190ZXN0LnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTJfdmFj dXVtX2V4dGVuZGluZ19iYXNpY190ZXN0LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5hNWEwYzE5NWU2NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDUyX3ZhY3V1bV9leHRlbmRpbmdfYmFzaWNfdGVzdC5wbApAQCAtMCww ICsxLDczNyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKyMgVGVzdCBjdW11bGF0aXZlIHZhY3V1bSBzdGF0cyBzeXN0ZW0g dXNpbmcgVEFQCisjCisjIFRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGFjY3VyYWN5IGFuZCBi ZWhhdmlvciBvZiBjdW11bGF0aXZlIHZhY3V1bSBzdGF0aXN0aWNzCisjIGFjcm9zcyBoZWFw IHRhYmxlcywgaW5kZXhlcywgYW5kIGRhdGFiYXNlcyB1c2luZzoKKyMKKyMgICDigKIgcGdf c3RhdF92YWN1dW1fdGFibGVzCisjICAg4oCiIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMKKyMg ICDigKIgcGdfc3RhdF92YWN1dW1fZGF0YWJhc2UKKyMKKyMgQSBwb2xsaW5nIGhlbHBlciBm dW5jdGlvbiByZXBlYXRlZGx5IGNoZWNrcyB0aGUgc3RhdHMgdmlld3MgdW50aWwgZXhwZWN0 ZWQKKyMgZGVsdGFzIGFwcGVhciBvciBhIGNvbmZpZ3VyYWJsZSB0aW1lb3V0IGV4cGlyZXMu IFRoaXMgZ3VhcmFudGVlcyB0aGF0CisjIHN0YXRzLWNvbGxlY3RvciBwcm9wYWdhdGlvbiBk ZWxheXMgZG8gbm90IGxlYWQgdG8gZmxha3kgdGVzdCBiZWhhdmlvci4KKwordXNlIHN0cmlj dDsKK3VzZSB3YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNl IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKKyMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCBoYXJuZXNzIHNldHVwCisjLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisKK215ICRub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+ bmV3KCdzdGF0X3ZhY3V1bScpOworJG5vZGUtPmluaXQ7CisKKyMgQ29uZmlndXJlIHRoZSBz ZXJ2ZXIgbG9nZ2luZyBsZXZlbCBmb3IgdGhlIHRlc3QKKyRub2RlLT5hcHBlbmRfY29uZign cG9zdGdyZXNxbC5jb25mJywgcXsKKyAgICBsb2dfbWluX21lc3NhZ2VzID0gbm90aWNlCisg ICAgdHJhY2tfdmFjdXVtX3N0YXRpc3RpY3MgPSBvbgorfSk7CisKK215ICRzdGRlcnI7Citt eSAkYmFzZV9zdGF0czsKK215ICR3YWxzOworbXkgJGliYXNlX3N0YXRzOworbXkgJGl3YWxz OworCiskbm9kZS0+c3RhcnQoCisgICAgJz4nID0+IFwkYmFzZV9zdGF0cywKKwknMj4nID0+ IFwkc3RkZXJyCispOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIERhdGFiYXNl IGNyZWF0aW9uIGFuZCBpbml0aWFsaXphdGlvbgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CisgICAgQ1JFQVRFIERBVEFC QVNFIHN0YXRpc3RpY192YWN1dW1fZGF0YWJhc2VfcmVncmVzc2lvbjsKK30pOworIyBNYWlu IHRlc3QgZGF0YWJhc2UgbmFtZSBhbmQgbnVtYmVyIG9mIHJvd3MgdG8gaW5zZXJ0CitteSAk ZGJuYW1lICAgPSAnc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZV9yZWdyZXNzaW9uJzsKK215 ICRzaXplX3RhYiA9IDEwMDA7CisKKyMgRW5hYmxlIHJlcXVpcmVkIHNlc3Npb24gc2V0dGlu Z3MgYW5kIGZvcmNlIHRoZSBzdGF0cyBjb2xsZWN0b3IgdG8gZmx1c2ggbmV4dAorJG5vZGUt PnNhZmVfcHNxbCgkZGJuYW1lLCBxeworICAgIFNFVCB0cmFja19mdW5jdGlvbnMgPSAnYWxs JzsKKyAgICBTRUxFQ1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7Cit9KTsKKworIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDcmVhdGUgdGVzdCB0YWJsZSBhbmQgcG9wdWxh dGUgaXQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworJG5vZGUtPnNhZmVfcHNxbCgK KyAgICAkZGJuYW1lLAorICAgICJDUkVBVEUgVEFCTEUgdmVzdGF0ICh4IGludCBQUklNQVJZ IEtFWSkKKyAgICAgICAgIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IG9mZiwgZmlsbGZh Y3RvciA9IDEwKTsKKyAgICAgSU5TRVJUIElOVE8gdmVzdGF0IFNFTEVDVCB4IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsICRzaXplX3RhYikgQVMgZyh4KTsKKyAgICAgQU5BTFlaRSB2ZXN0 YXQ7IgorKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBUaW1pbmcgcGFyYW1l dGVycyBmb3IgcG9sbGluZyBsb29wcworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitt eSAkdGltZW91dCAgICA9IDMwOyAgICAgIyBvdmVyYWxsIHdhaXQgdGltZW91dCBpbiBzZWNv bmRzCitteSAkaW50ZXJ2YWwgICA9IDAuMDE1OyAgIyBwb2xsIGludGVydmFsIGluIHNlY29u ZHMgKDE1IG1zKQorbXkgJHN0YXJ0X3RpbWUgPSB0aW1lKCk7CitteSAkdXBkYXRlZCAgICA9 IDA7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgd2FpdF9mb3JfdmFjdXVtX3N0 YXRzCisjCisjIFBvbGxzIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyBhbmQgcGdfc3RhdF92YWN1 dW1faW5kZXhlcyB1bnRpbCBib3RoIHRoZQorIyB0YWJsZS1sZXZlbCBhbmQgaW5kZXgtbGV2 ZWwgY291bnRlcnMgZXhjZWVkIHRoZSBwcm92aWRlZCBiYXNlbGluZXMsIG9yIHVudGlsCisj IHRoZSBjb25maWd1cmVkIHRpbWVvdXQgZWxhcHNlcy4KKyMKKyMgRXhwZWN0ZWQgbmFtZWQg YXJncyAoYmFzZWxpbmUgdmFsdWVzKToKKyMgICB0YWJfdHVwbGVzX2RlbGV0ZWQKKyMgICB0 YWJfd2FsX3JlY29yZHMKKyMgICBpZHhfdHVwbGVzX2RlbGV0ZWQKKyMgICBpZHhfd2FsX3Jl Y29yZHMKKyMKKyMgUmV0dXJuczogMSBpZiB0aGUgY29uZGl0aW9uIGlzIG1ldCBiZWZvcmUg dGltZW91dCwgMCBvdGhlcndpc2UuCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3N1 YiB3YWl0X2Zvcl92YWN1dW1fc3RhdHMgeworICAgIG15ICglYXJncykgPSBAXzsKKyAgICBt eSAkdGFiX3R1cGxlc19kZWxldGVkID0gKCRhcmdze3RhYl90dXBsZXNfZGVsZXRlZH0gb3Ig MCk7CisgICAgbXkgJHRhYl93YWxfcmVjb3JkcyAgICA9ICgkYXJnc3t0YWJfd2FsX3JlY29y ZHN9IG9yIDApOworICAgIG15ICRpZHhfdHVwbGVzX2RlbGV0ZWQgPSAoJGFyZ3N7aWR4X3R1 cGxlc19kZWxldGVkfSBvciAwKTsKKyAgICBteSAkaWR4X3dhbF9yZWNvcmRzICAgID0gKCRh cmdze2lkeF93YWxfcmVjb3Jkc30gb3IgMCk7CisKKyAgICBteSAkc3RhcnQgPSB0aW1lKCk7 CisgICAgd2hpbGUgKCh0aW1lKCkgLSAkc3RhcnQpIDwgJHRpbWVvdXQpIHsKKworICAgICAg ICBteSAkcmVzdWx0X3F1ZXJ5ID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAgICAgICAgICRk Ym5hbWUsCisgICAgICAgICAgICAiVkFDVVVNIHZlc3RhdDsKKyAgICAgICAgICAgICBTRUxF Q1QKKyAgICAgICAgICAgICAgICAoU0VMRUNUICh0dXBsZXNfZGVsZXRlZCA+ICR0YWJfdHVw bGVzX2RlbGV0ZWQgQU5EIHdhbF9yZWNvcmRzID4gJHRhYl93YWxfcmVjb3JkcykKKyAgICAg ICAgICAgICAgICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzCisgICAgICAgICAgICAg ICAgICBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdCcpCisgICAgICAgICAgICAgICAgQU5ECisg ICAgICAgICAgICAgICAgKFNFTEVDVCAodHVwbGVzX2RlbGV0ZWQgPiAkaWR4X3R1cGxlc19k ZWxldGVkIEFORCB3YWxfcmVjb3JkcyA+ICRpZHhfd2FsX3JlY29yZHMpCisgICAgICAgICAg ICAgICAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMKKyAgICAgICAgICAgICAgICAg IFdIRVJFIGluZGV4cmVsbmFtZSA9ICd2ZXN0YXRfcGtleScpOyIKKyAgICAgICAgKTsKKwor ICAgICAgICByZXR1cm4gMSBpZiAoJHJlc3VsdF9xdWVyeSBlcSAndCcpOworCisgICAgICAg IHNsZWVwKCRpbnRlcnZhbCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKyMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVmFyaWFibGVzIHRvIGhvbGQgdmFjdXVtLXN0YXQg c25hcHNob3RzIGZvciBsYXRlciBjb21wYXJpc29ucworIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorCitteSAkdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0gMDsKK215ICR0dXBs ZXNfZGVsZXRlZCA9IDA7CitteSAkcGFnZXNfc2Nhbm5lZCA9IDA7CitteSAkcGFnZXNfcmVt b3ZlZCA9IDA7CitteSAkd2FsX3JlY29yZHMgPSAwOworbXkgJHdhbF9ieXRlcyA9IDA7Citt eSAkd2FsX2ZwaSA9IDA7CisKK215ICRpbmRleF90dXBsZXNfZGVsZXRlZCA9IDA7CitteSAk aW5kZXhfcGFnZXNfZGVsZXRlZCA9IDA7CitteSAkaW5kZXhfd2FsX3JlY29yZHMgPSAwOwor bXkgJGluZGV4X3dhbF9ieXRlcyA9IDA7CitteSAkaW5kZXhfd2FsX2ZwaSA9IDA7CisKK215 ICR2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXNfcHJldiA9IDA7CitteSAkdHVwbGVzX2Rl bGV0ZWRfcHJldiA9IDA7CitteSAkcGFnZXNfc2Nhbm5lZF9wcmV2ID0gMDsKK215ICRwYWdl c19yZW1vdmVkX3ByZXYgPSAwOworbXkgJHdhbF9yZWNvcmRzX3ByZXYgPSAwOworbXkgJHdh bF9ieXRlc19wcmV2ID0gMDsKK215ICR3YWxfZnBpX3ByZXYgPSAwOworCitteSAkaW5kZXhf dHVwbGVzX2RlbGV0ZWRfcHJldiA9IDA7CitteSAkaW5kZXhfcGFnZXNfZGVsZXRlZF9wcmV2 ID0gMDsKK215ICRpbmRleF93YWxfcmVjb3Jkc19wcmV2ID0gMDsKK215ICRpbmRleF93YWxf Ynl0ZXNfcHJldiA9IDA7CitteSAkaW5kZXhfd2FsX2ZwaV9wcmV2ID0gMDsKKworIy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIyBmZXRjaF92YWN1dW1fc3RhdHMKKyMKKyMgUmVhZHMg Y3VycmVudCB2YWx1ZXMgb2YgcmVsZXZhbnQgdmFjdXVtIGNvdW50ZXJzIGZvciB0aGUgdGVz dCB0YWJsZSBhbmQgaXRzCisjIHByaW1hcnkgaW5kZXgsIHN0b3JpbmcgdGhlbSBpbiBwYWNr YWdlIHZhcmlhYmxlcyBmb3Igc3Vic2VxdWVudCBjb21wYXJpc29ucy4KKyMtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKworc3ViIGZldGNoX3ZhY3V1bV9zdGF0cyB7CisgICAgIyBmZXRj aCBhY3R1YWwgYmFzZSB2YWN1dW0gc3RhdGlzdGljcworICAgIG15ICRiYXNlX3N0YXRpc3Rp Y3MgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICAgICAkZGJuYW1lLAorICAgICAgICAiU0VM RUNUIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcywgdHVwbGVzX2RlbGV0ZWQsIHBhZ2Vz X3NjYW5uZWQsIHBhZ2VzX3JlbW92ZWQsIHdhbF9yZWNvcmRzLCB3YWxfYnl0ZXMsIHdhbF9m cGkKKyAgICAgICAgICAgRlJPTSBwZ19zdGF0X3ZhY3V1bV90YWJsZXMKKyAgICAgICAgICBX SEVSRSByZWxuYW1lID0gJ3Zlc3RhdCc7IgorICAgICk7CisKKyAgICAkYmFzZV9zdGF0aXN0 aWNzID1+IHMvXHMqXHxccyovIC9nOyAgICMgdHJhbnNmb3JtICIgfCAiIGludG8gc3BhY2UK KyAgICAoJHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcywgJHR1cGxlc19kZWxldGVkLCAk cGFnZXNfc2Nhbm5lZCwgJHBhZ2VzX3JlbW92ZWQsICR3YWxfcmVjb3JkcywgJHdhbF9ieXRl cywgJHdhbF9mcGkpCisgICAgICAgID0gc3BsaXQgL1xzKy8sICRiYXNlX3N0YXRpc3RpY3M7 CisKKyAgICAjIC0tLSBpbmRleCBzdGF0cyAtLS0KKyAgICBteSAkaW5kZXhfYmFzZV9zdGF0 aXN0aWNzID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAgICAgJGRibmFtZSwKKyAgICAgICAg IlNFTEVDVCB0dXBsZXNfZGVsZXRlZCwgcGFnZXNfZGVsZXRlZCwgd2FsX3JlY29yZHMsIHdh bF9ieXRlcywgd2FsX2ZwaQorICAgICAgICAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4 ZXMKKyAgICAgICAgICBXSEVSRSBpbmRleHJlbG5hbWUgPSAndmVzdGF0X3BrZXknOyIKKyAg ICApOworCisgICAgJGluZGV4X2Jhc2Vfc3RhdGlzdGljcyA9fiBzL1xzKlx8XHMqLyAvZzsg ICAjIHRyYW5zZm9ybSAiIHwgIiBpbnRvIHNwYWNlCisgICAgKCRpbmRleF90dXBsZXNfZGVs ZXRlZCwgJGluZGV4X3BhZ2VzX2RlbGV0ZWQsICRpbmRleF93YWxfcmVjb3JkcywgJGluZGV4 X3dhbF9ieXRlcywgJGluZGV4X3dhbF9mcGkpCisgICAgICAgID0gc3BsaXQgL1xzKy8sICRp bmRleF9iYXNlX3N0YXRpc3RpY3M7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyMgc2F2ZV92YWN1dW1fc3RhdHMKKyMKKyMgU2F2ZSBjdXJyZW50IHZhbHVlcyAocHJldmlv dXNseSBmZXRjaGVkIGJ5IGZldGNoX3ZhY3V1bV9zdGF0cykgc28gdGhhdCB3ZQorIyBsYXRl ciBmZXRjaCBuZXcgdmFsdWVzIGFuZCBjb21wYXJlIHRoZW0uCisjLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCitzdWIgc2F2ZV92YWN1dW1fc3RhdHMgeworICAgICR2bV9uZXdfdmlzaWJs ZV9mcm96ZW5fcGFnZXNfcHJldiA9ICR2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXM7Cisg ICAgJHR1cGxlc19kZWxldGVkX3ByZXYgPSAkdHVwbGVzX2RlbGV0ZWQ7CisgICAgJHBhZ2Vz X3NjYW5uZWRfcHJldiA9ICRwYWdlc19zY2FubmVkOworICAgICRwYWdlc19yZW1vdmVkX3By ZXYgPSAkcGFnZXNfcmVtb3ZlZDsKKyAgICAkd2FsX3JlY29yZHNfcHJldiA9ICR3YWxfcmVj b3JkczsKKyAgICAkd2FsX2J5dGVzX3ByZXYgPSAkd2FsX2J5dGVzOworICAgICR3YWxfZnBp X3ByZXYgPSAkd2FsX2ZwaTsKKworICAgICRpbmRleF90dXBsZXNfZGVsZXRlZF9wcmV2ID0g JGluZGV4X3R1cGxlc19kZWxldGVkOworICAgICRpbmRleF9wYWdlc19kZWxldGVkX3ByZXYg PSAkaW5kZXhfcGFnZXNfZGVsZXRlZDsKKyAgICAkaW5kZXhfd2FsX3JlY29yZHNfcHJldiA9 ICRpbmRleF93YWxfcmVjb3JkczsKKyAgICAkaW5kZXhfd2FsX2J5dGVzX3ByZXYgPSAkaW5k ZXhfd2FsX2J5dGVzOworICAgICRpbmRleF93YWxfZnBpX3ByZXYgPSAkaW5kZXhfd2FsX2Zw aTsKK30KKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBwcmludF92YWN1dW1fc3Rh dHNfb25fZXJyb3IKKyMKKyMgUHJpbnQgdmFsdWVzIGluIGNhc2Ugb2YgYW4gZXJyb3IKKyMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N1YiBwcmludF92YWN1dW1fc3RhdHNfb25fZXJy b3IgeworICAgIGRpYWcoCisgICAgICAgICAgICAiU3RhdGlzdGljcyBpbiB0aGUgZmFpbGVk IHRlc3RcbiIgLgorICAgICAgICAgICAgIlRhYmxlIHN0YXRpc3RpY3M6XG4iIC4KKyAgICAg ICAgICAgICIgIEJlZm9yZSB0ZXN0OlxuIiAuCisgICAgICAgICAgICAiICAgIHZtX25ld192 aXNpYmxlX2Zyb3plbl9wYWdlcyA9ICR2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXNfcHJl dlxuIiAuCisgICAgICAgICAgICAiICAgIHR1cGxlc19kZWxldGVkICAgID0gJHR1cGxlc19k ZWxldGVkX3ByZXZcbiIgLgorICAgICAgICAgICAgIiAgICBwYWdlc19zY2FubmVkICAgICA9 ICRwYWdlc19zY2FubmVkX3ByZXZcbiIgLgorICAgICAgICAgICAgIiAgICBwYWdlc19yZW1v dmVkICAgICA9ICRwYWdlc19yZW1vdmVkX3ByZXZcbiIgLgorICAgICAgICAgICAgIiAgICB3 YWxfcmVjb3JkcyAgICAgICA9ICR3YWxfcmVjb3Jkc19wcmV2XG4iIC4KKyAgICAgICAgICAg ICIgICAgd2FsX2J5dGVzICAgICAgICAgPSAkd2FsX2J5dGVzX3ByZXZcbiIgLgorICAgICAg ICAgICAgIiAgICB3YWxfZnBpICAgICAgICAgICA9ICR3YWxfZnBpX3ByZXZcbiIgLgorICAg ICAgICAgICAgIiAgQWZ0ZXIgdGVzdDpcbiIgLgorICAgICAgICAgICAgIiAgICB2bV9uZXdf dmlzaWJsZV9mcm96ZW5fcGFnZXMgPSAkdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzXG4i IC4KKyAgICAgICAgICAgICIgICAgdHVwbGVzX2RlbGV0ZWQgICAgPSAkdHVwbGVzX2RlbGV0 ZWRcbiIgLgorICAgICAgICAgICAgIiAgICBwYWdlc19zY2FubmVkICAgICA9ICRwYWdlc19z Y2FubmVkXG4iIC4KKyAgICAgICAgICAgICIgICAgcGFnZXNfcmVtb3ZlZCAgICAgPSAkcGFn ZXNfcmVtb3ZlZFxuIiAuCisgICAgICAgICAgICAiICAgIHdhbF9yZWNvcmRzICAgICAgID0g JHdhbF9yZWNvcmRzXG4iIC4KKyAgICAgICAgICAgICIgICAgd2FsX2J5dGVzICAgICAgICAg PSAkd2FsX2J5dGVzXG4iIC4KKyAgICAgICAgICAgICIgICAgd2FsX2ZwaSAgICAgICAgICAg PSAkd2FsX2ZwaVxuIiAuCisgICAgICAgICAgICAiSW5kZXggc3RhdGlzdGljczpcbiIgLgor ICAgICAgICAgICAgIiAgIEJlZm9yZSB0ZXN0OlxuIiAuCisgICAgICAgICAgICAiICAgIHR1 cGxlc19kZWxldGVkICAgID0gJGluZGV4X3R1cGxlc19kZWxldGVkX3ByZXZcbiIgLgorICAg ICAgICAgICAgIiAgICBwYWdlc19kZWxldGVkICAgICA9ICRpbmRleF9wYWdlc19kZWxldGVk X3ByZXZcbiIgLgorICAgICAgICAgICAgIiAgICB3YWxfcmVjb3JkcyAgICAgICA9ICRpbmRl eF93YWxfcmVjb3Jkc19wcmV2XG4iIC4KKyAgICAgICAgICAgICIgICAgd2FsX2J5dGVzICAg ICAgICAgPSAkaW5kZXhfd2FsX2J5dGVzX3ByZXZcbiIgLgorICAgICAgICAgICAgIiAgICB3 YWxfZnBpICAgICAgICAgICA9ICRpbmRleF93YWxfZnBpX3ByZXZcbiIgLgorICAgICAgICAg ICAgIiAgQWZ0ZXIgdGVzdDpcbiIgLgorICAgICAgICAgICAgIiAgICB0dXBsZXNfZGVsZXRl ZCAgICA9ICRpbmRleF90dXBsZXNfZGVsZXRlZFxuIiAuCisgICAgICAgICAgICAiICAgIHBh Z2VzX2RlbGV0ZWQgICAgID0gJGluZGV4X3BhZ2VzX2RlbGV0ZWRcbiIgLgorICAgICAgICAg ICAgIiAgICB3YWxfcmVjb3JkcyAgICAgICA9ICRpbmRleF93YWxfcmVjb3Jkc1xuIiAuCisg ICAgICAgICAgICAiICAgIHdhbF9ieXRlcyAgICAgICAgID0gJGluZGV4X3dhbF9ieXRlc1xu IiAuCisgICAgICAgICAgICAiICAgIHdhbF9mcGkgICAgICAgICAgID0gJGluZGV4X3dhbF9m cGlcbiIKKyAgICApOworfTsKKworc3ViIGZldGNoX2Vycm9yX2Jhc2VfZGJfdmFjdXVtX3N0 YXRpc3RpY3MgeworICAgIG15ICglYXJncykgPSBAXzsKKworICAgICMgVmFsaWRhdGUgcHJl c2VuY2Ugb2YgcmVxdWlyZWQgYXJncyAoYWxsb3cgMCBhcyB2YWxpZCBudW1lcmljIGJhc2Vs aW5lKQorICAgIGRpZSAiZGF0YWJhc2UgbmFtZSByZXF1aXJlZCIKKyAgICAgIHVubGVzcyBl eGlzdHMgJGFyZ3N7ZGF0YWJhc2VfbmFtZX0gJiYgZGVmaW5lZCAkYXJnc3tkYXRhYmFzZV9u YW1lfTsKKyAgICBteSAkZGF0YWJhc2VfbmFtZSAgICAgICA9ICRhcmdze2RhdGFiYXNlX25h bWV9OworCisgICAgIyBmZXRjaCBhY3R1YWwgYmFzZSBkYXRhYmFzZSB2YWN1dW0gc3RhdGlz dGljcworICAgIG15ICRiYXNlX3N0YXRpc3RpY3MgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAg ICRkYXRhYmFzZV9uYW1lLAorICAgICJTRUxFQ1QgZGJfYmxrc19oaXQsIHRvdGFsX2Jsa3Nf ZGlydGllZCwKKyAgICAgICAgICAgIHRvdGFsX2Jsa3Nfd3JpdHRlbiwgd2FsX3JlY29yZHMs CisgICAgICAgICAgICB3YWxfZnBpLCB3YWxfYnl0ZXMKKyAgICAgICBGUk9NIHBnX3N0YXRf dmFjdXVtX2RhdGFiYXNlLCBwZ19kYXRhYmFzZQorICAgICAgV0hFUkUgcGdfZGF0YWJhc2Uu ZGF0bmFtZSA9ICckZGJuYW1lJworICAgICAgICAgICAgQU5EIHBnX2RhdGFiYXNlLm9pZCA9 IHBnX3N0YXRfdmFjdXVtX2RhdGFiYXNlLmRib2lkOyIKKyAgICApOworICAgICRiYXNlX3N0 YXRpc3RpY3MgPX4gcy9ccypcfFxzKi8gL2c7ICAgIyB0cmFuc2Zvcm0gIiB8ICIgaW4gc3Bh Y2UKKyAgICBteSAoJGRiX2Jsa3NfaGl0LCAkdG90YWxfYmxrc19kaXJ0aWVkLCAkdG90YWxf Ymxrc193cml0dGVuLAorICAgICAgICAkd2FsX3JlY29yZHMsICR3YWxfZnBpLCAkd2FsX2J5 dGVzKSA9IHNwbGl0IC9ccysvLCAkYmFzZV9zdGF0aXN0aWNzOworCisgICAgZGlhZygKKyAg ICAgICAgICAgICJCQVNFIFNUQVRTIE1JU01BVENIIEZPUiBEQVRBQkFTRSAkZGJuYW1lOlxu IiAuCisgICAgICAgICAgICAiICAgIGRiX2Jsa3NfaGl0ICAgICAgICA9ICRkYl9ibGtzX2hp dFxuIiAuCisgICAgICAgICAgICAiICAgIHRvdGFsX2Jsa3NfZGlydGllZCA9ICR0b3RhbF9i bGtzX2RpcnRpZWRcbiIgLgorICAgICAgICAgICAgIiAgICB0b3RhbF9ibGtzX3dyaXR0ZW4g PSAkdG90YWxfYmxrc193cml0dGVuXG4iIC4KKyAgICAgICAgICAgICIgICAgd2FsX3JlY29y ZHMgICAgICAgID0gJHdhbF9yZWNvcmRzXG4iIC4KKyAgICAgICAgICAgICIgICAgd2FsX2Zw aSAgICAgICAgICAgID0gJHdhbF9mcGlcbiIgLgorICAgICAgICAgICAgIiAgICB3YWxfYnl0 ZXMgICAgICAgICAgPSAkd2FsX2J5dGVzXG4iCisgICAgKTsKK30KKworCisjLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgMTogRGVsZXRlIGhhbGYgdGhlIHJvd3MsIHJ1biBW QUNVVU0sIGFuZCB3YWl0IGZvciBzdGF0cyB0byBhZHZhbmNlCisjLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCitzdWJ0ZXN0ICdUZXN0IDE6IERlbGV0ZSBoYWxmIHRoZSByb3dzLCBydW4g VkFDVVVNJyA9PiBzdWIKK3sKKworJG5vZGUtPnNhZmVfcHNxbCgkZGJuYW1lLCAiREVMRVRF IEZST00gdmVzdGF0IFdIRVJFIHggJSAyID0gMDsiKTsKKyRub2RlLT5zYWZlX3BzcWwoJGRi bmFtZSwgIlZBQ1VVTSB2ZXN0YXQ7Iik7CisKKyMgUG9sbCB0aGUgc3RhdHMgdmlldyB1bnRp bCBleHBlY3RlZCBkZWx0YXMgYXBwZWFyIG9yIHRpbWVvdXQKKyR1cGRhdGVkID0gd2FpdF9m b3JfdmFjdXVtX3N0YXRzKAorICAgIHRhYl90dXBsZXNfZGVsZXRlZCA9PiAwLAorICAgIHRh Yl93YWxfcmVjb3JkcyA9PiAwLAorICAgIGlkeF90dXBsZXNfZGVsZXRlZCA9PiAwLAorICAg IGlkeF93YWxfcmVjb3JkcyA9PiAwLAorKTsKK29rKCR1cGRhdGVkLCAndmFjdXVtIHN0YXRz IHVwZGF0ZWQgYWZ0ZXIgdmFjdXVtaW5nIGhhbGYtZGVsZXRlZCB0YWJsZSAodHVwbGVzX2Rl bGV0ZWQgYW5kIHdhbF9mcGkgYWR2YW5jZWQpJykKKyAgb3IgZGlhZyAiVGltZW91dCB3YWl0 aW5nIGZvciBwZ19zdGF0X3ZhY3V1bV8qIHVwZGF0ZSBhZnRlciAkdGltZW91dCBzZWNvbmRz IGFmdGVyIHZhY3V1bWluZyBoYWxmLWRlbGV0ZWQgdGFibGUiOworCitmZXRjaF92YWN1dW1f c3RhdHMoKTsKKworb2soJHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9PSAkdm1fbmV3 X3Zpc2libGVfZnJvemVuX3BhZ2VzX3ByZXYsICd0YWJsZSB2bV9uZXdfdmlzaWJsZV9mcm96 ZW5fcGFnZXMgc3RheSB0aGUgc2FtZScpOworb2soJHR1cGxlc19kZWxldGVkID4gJHR1cGxl c19kZWxldGVkX3ByZXYsICd0YWJsZSB0dXBsZXNfZGVsZXRlZCBoYXMgaW5jcmVhc2VkJyk7 CitvaygkcGFnZXNfc2Nhbm5lZCA+ICRwYWdlc19zY2FubmVkX3ByZXYsICd0YWJsZSBwYWdl c19zY2FubmVkIGhhcyBpbmNyZWFzZWQnKTsKK29rKCRwYWdlc19yZW1vdmVkID09ICRwYWdl c19yZW1vdmVkX3ByZXYsICd0YWJsZSBwYWdlc19yZW1vdmVkIHN0YXkgdGhlIHNhbWUnKTsK K29rKCR3YWxfcmVjb3JkcyA+ICR3YWxfcmVjb3Jkc19wcmV2LCAndGFibGUgd2FsX3JlY29y ZHMgaGFzIGluY3JlYXNlZCcpOworb2soJHdhbF9ieXRlcyA+ICR3YWxfYnl0ZXNfcHJldiwg J3RhYmxlIHdhbF9ieXRlcyBoYXMgaW5jcmVhc2VkJyk7Citvaygkd2FsX2ZwaSA+ICR3YWxf ZnBpX3ByZXYsICd0YWJsZSB3YWxfZnBpIGhhcyBpbmNyZWFzZWQnKTsKKworb2soJGluZGV4 X3BhZ2VzX2RlbGV0ZWQgPT0gJGluZGV4X3BhZ2VzX2RlbGV0ZWRfcHJldiwgJ2luZGV4IHBh Z2VzX2RlbGV0ZWQgc3RheSB0aGUgc2FtZScpOworb2soJGluZGV4X3R1cGxlc19kZWxldGVk ID4gJGluZGV4X3R1cGxlc19kZWxldGVkX3ByZXYsICdpbmRleCB0dXBsZXNfZGVsZXRlZCBo YXMgaW5jcmVhc2VkJyk7CitvaygkaW5kZXhfd2FsX3JlY29yZHMgPiAkaW5kZXhfd2FsX3Jl Y29yZHNfcHJldiwgJ2luZGV4IHdhbF9yZWNvcmRzIGhhcyBpbmNyZWFzZWQnKTsKK29rKCRp bmRleF93YWxfYnl0ZXMgPiAkaW5kZXhfd2FsX2J5dGVzX3ByZXYsICdpbmRleCB3YWxfYnl0 ZXMgaGFzIGluY3JlYXNlZCcpOworb2soJGluZGV4X3dhbF9mcGkgPT0gJGluZGV4X3dhbF9m cGlfcHJldiwgJ2luZGV4IHdhbF9mcGkgc3RheSB0aGUgc2FtZScpOworCit9IG9yIHByaW50 X3ZhY3V1bV9zdGF0c19vbl9lcnJvcigpOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisjIFRlc3QgMjogRGVsZXRlIGFsbCByb3dzLCBydW4gVkFDVVVNLCBhbmQgd2FpdCBmb3Ig c3RhdHMgdG8gYWR2YW5jZQorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3VidGVzdCAn VGVzdCAyOiBEZWxldGUgYWxsIHJvd3MsIHJ1biBWQUNVVU0nID0+IHN1Ygoreworc2F2ZV92 YWN1dW1fc3RhdHMoKTsKKworJG5vZGUtPnNhZmVfcHNxbCgkZGJuYW1lLCAiREVMRVRFIEZS T00gdmVzdGF0OyIpOworJG5vZGUtPnNhZmVfcHNxbCgkZGJuYW1lLCAiVkFDVVVNIHZlc3Rh dDsiKTsKKworJHVwZGF0ZWQgPSB3YWl0X2Zvcl92YWN1dW1fc3RhdHMoCisgICAgdGFiX3R1 cGxlc19kZWxldGVkID0+ICR0dXBsZXNfZGVsZXRlZF9wcmV2LAorICAgIHRhYl93YWxfcmVj b3JkcyA9PiAkd2FsX3JlY29yZHNfcHJldiwKKyAgICBpZHhfdHVwbGVzX2RlbGV0ZWQgPT4g JGluZGV4X3R1cGxlc19kZWxldGVkX3ByZXYsCisgICAgaWR4X3dhbF9yZWNvcmRzID0+ICRp bmRleF93YWxfcmVjb3Jkc19wcmV2LAorKTsKKworb2soJHVwZGF0ZWQsICd2YWN1dW0gc3Rh dHMgdXBkYXRlZCBhZnRlciB2YWN1dW1pbmcgYWxsLWRlbGV0ZWQgdGFibGUgKHR1cGxlc19k ZWxldGVkIGFuZCB3YWxfcmVjb3JkcyBhZHZhbmNlZCknKQorICBvciBkaWFnICJUaW1lb3V0 IHdhaXRpbmcgZm9yIHBnX3N0YXRfdmFjdXVtXyogdXBkYXRlIGFmdGVyICR0aW1lb3V0IHNl Y29uZHMgYWZ0ZXIgdmFjdXVtaW5nIGFsbC1kZWxldGVkIHRhYmxlIjsKKworZmV0Y2hfdmFj dXVtX3N0YXRzKCk7CisKK29rKCR2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPiAkdm1f bmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzX3ByZXYsICd0YWJsZSB2bV9uZXdfdmlzaWJsZV9m cm96ZW5fcGFnZXMgaGFzIGluY3JlYXNlZCcpOworb2soJHR1cGxlc19kZWxldGVkID4gJHR1 cGxlc19kZWxldGVkX3ByZXYsICd0YWJsZSB0dXBsZXNfZGVsZXRlZCBoYXMgaW5jcmVhc2Vk Jyk7CitvaygkcGFnZXNfc2Nhbm5lZCA+ICRwYWdlc19zY2FubmVkX3ByZXYsICd0YWJsZSBw YWdlc19zY2FubmVkIGhhcyBpbmNyZWFzZWQnKTsKK29rKCRwYWdlc19yZW1vdmVkID4gJHBh Z2VzX3JlbW92ZWRfcHJldiwgJ3RhYmxlIHBhZ2VzX3JlbW92ZWQgaGFzIGluY3JlYXNlZCcp Oworb2soJHdhbF9yZWNvcmRzID4gJHdhbF9yZWNvcmRzX3ByZXYsICd0YWJsZSB3YWxfcmVj b3JkcyBoYXMgaW5jcmVhc2VkJyk7Citvaygkd2FsX2J5dGVzID4gJHdhbF9ieXRlc19wcmV2 LCAndGFibGUgd2FsX2J5dGVzIGhhcyBpbmNyZWFzZWQnKTsKK29rKCR3YWxfZnBpID4gMCwg J3RhYmxlIHdhbF9mcGkgaGFzIGluY3JlYXNlZCcpOworCitvaygkaW5kZXhfcGFnZXNfZGVs ZXRlZCA+ICRpbmRleF9wYWdlc19kZWxldGVkX3ByZXYsICdpbmRleCBwYWdlc19kZWxldGVk IGhhcyBpbmNyZWFzZWQnKTsKK29rKCRpbmRleF90dXBsZXNfZGVsZXRlZCA+ICRpbmRleF90 dXBsZXNfZGVsZXRlZF9wcmV2LCAnaW5kZXggdHVwbGVzX2RlbGV0ZWQgaGFzIGluY3JlYXNl ZCcpOworb2soJGluZGV4X3dhbF9yZWNvcmRzID4gJGluZGV4X3dhbF9yZWNvcmRzX3ByZXYs ICdpbmRleCB3YWxfcmVjb3JkcyBoYXMgaW5jcmVhc2VkJyk7CitvaygkaW5kZXhfd2FsX2J5 dGVzID4gJGluZGV4X3dhbF9ieXRlc19wcmV2LCAnaW5kZXggd2FsX2J5dGVzIGhhcyBpbmNy ZWFzZWQnKTsKK29rKCRpbmRleF93YWxfZnBpID09ICRpbmRleF93YWxfZnBpX3ByZXYsICdp bmRleCB3YWxfZnBpIHN0YXkgdGhlIHNhbWUnKTsKKworfSBvciBwcmludF92YWN1dW1fc3Rh dHNfb25fZXJyb3IoKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBUZXN0IDM6 IFRlc3QgVkFDVVVNIEZVTEwg4oCUIGl0IHNob3VsZCBub3QgcmVwb3J0IHRvIHRoZSBzdGF0 cyBjb2xsZWN0b3IKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N1YnRlc3QgJ1Rlc3Qg MzogVGVzdCBWQUNVVU0gRlVMTCDigJQgaXQgc2hvdWxkIG5vdCByZXBvcnQgdG8gdGhlIHN0 YXRzIGNvbGxlY3RvcicgPT4gc3ViCit7CitzYXZlX3ZhY3V1bV9zdGF0cygpOworCiskbm9k ZS0+c2FmZV9wc3FsKAorICAgICRkYm5hbWUsCisgICAgIklOU0VSVCBJTlRPIHZlc3RhdCBT RUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAkc2l6ZV90YWIpIEFTIGcoeCk7Cisg ICAgIENIRUNLUE9JTlQ7CisgICAgIERFTEVURSBGUk9NIHZlc3RhdDsKKyAgICAgVkFDVVVN IEZVTEwgdmVzdGF0OyIKKyk7CisKK2ZldGNoX3ZhY3V1bV9zdGF0cygpOworCitvaygkdm1f bmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID09ICR2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFn ZXNfcHJldiwgJ3RhYmxlIHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyBzdGF5IHRoZSBz YW1lJyk7CitvaygkdHVwbGVzX2RlbGV0ZWQgPT0gJHR1cGxlc19kZWxldGVkX3ByZXYsICd0 YWJsZSB0dXBsZXNfZGVsZXRlZCBzdGF5IHRoZSBzYW1lJyk7CitvaygkcGFnZXNfc2Nhbm5l ZCA9PSAkcGFnZXNfc2Nhbm5lZF9wcmV2LCAndGFibGUgcGFnZXNfc2Nhbm5lZCBzdGF5IHRo ZSBzYW1lJyk7CitvaygkcGFnZXNfcmVtb3ZlZCA9PSAkcGFnZXNfcmVtb3ZlZF9wcmV2LCAn dGFibGUgcGFnZXNfcmVtb3ZlZCBzdGF5IHRoZSBzYW1lJyk7Citvaygkd2FsX3JlY29yZHMg PT0gJHdhbF9yZWNvcmRzX3ByZXYsICd0YWJsZSB3YWxfcmVjb3JkcyBzdGF5IHRoZSBzYW1l Jyk7Citvaygkd2FsX2J5dGVzID09ICR3YWxfYnl0ZXNfcHJldiwgJ3RhYmxlIHdhbF9ieXRl cyBzdGF5IHRoZSBzYW1lJyk7Citvaygkd2FsX2ZwaSA9PSAkd2FsX2ZwaV9wcmV2LCAndGFi bGUgd2FsX2ZwaSBzdGF5IHRoZSBzYW1lJyk7CisKK29rKCRpbmRleF9wYWdlc19kZWxldGVk ID09ICRpbmRleF9wYWdlc19kZWxldGVkX3ByZXYsICdpbmRleCBwYWdlc19kZWxldGVkIHN0 YXkgdGhlIHNhbWUnKTsKK29rKCRpbmRleF90dXBsZXNfZGVsZXRlZCA9PSAkaW5kZXhfdHVw bGVzX2RlbGV0ZWRfcHJldiwgJ2luZGV4IHR1cGxlc19kZWxldGVkIHN0YXkgdGhlIHNhbWUn KTsKK29rKCRpbmRleF93YWxfcmVjb3JkcyA9PSAkaW5kZXhfd2FsX3JlY29yZHNfcHJldiwg J2luZGV4IHdhbF9yZWNvcmRzIHN0YXkgdGhlIHNhbWUnKTsKK29rKCRpbmRleF93YWxfYnl0 ZXMgPT0gJGluZGV4X3dhbF9ieXRlc19wcmV2LCAnaW5kZXggd2FsX2J5dGVzIHN0YXkgdGhl IHNhbWUnKTsKK29rKCRpbmRleF93YWxfZnBpID09ICRpbmRleF93YWxfZnBpX3ByZXYsICdp bmRleCB3YWxfZnBpIHN0YXkgdGhlIHNhbWUnKTsKKworfSBvciBwcmludF92YWN1dW1fc3Rh dHNfb25fZXJyb3IoKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBUZXN0IDQ6 IFVwZGF0ZSB0YWJsZSwgY2hlY2twb2ludCwgYW5kIFZBQ1VVTSB0byBwcm92b2tlIFdBTC9G UEkgYWNjb3VudGluZworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3VidGVzdCAnVGVz dCA0OiBVcGRhdGUgdGFibGUsIGNoZWNrcG9pbnQsIGFuZCBWQUNVVU0gdG8gcHJvdm9rZSBX QUwvRlBJIGFjY291bnRpbmcnID0+IHN1YgoreworCitzYXZlX3ZhY3V1bV9zdGF0cygpOwor Ciskbm9kZS0+c2FmZV9wc3FsKAorICAgICRkYm5hbWUsCisgICAgIklOU0VSVCBJTlRPIHZl c3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAkc2l6ZV90YWIpIEFTIGco eCk7CisgICAgIENIRUNLUE9JTlQ7CisgICAgIFVQREFURSB2ZXN0YXQgU0VUIHggPSB4ICsg MTAwMDsKKyAgICAgVkFDVVVNIHZlc3RhdDsiCispOworCiskdXBkYXRlZCA9IHdhaXRfZm9y X3ZhY3V1bV9zdGF0cygKKyAgICB0YWJfdHVwbGVzX2RlbGV0ZWQgPT4gJHR1cGxlc19kZWxl dGVkX3ByZXYsCisgICAgdGFiX3dhbF9yZWNvcmRzID0+ICR3YWxfcmVjb3Jkc19wcmV2LAor ICAgIGlkeF90dXBsZXNfZGVsZXRlZCA9PiAkaW5kZXhfdHVwbGVzX2RlbGV0ZWRfcHJldiwK KyAgICBpZHhfd2FsX3JlY29yZHMgPT4gJGluZGV4X3dhbF9yZWNvcmRzX3ByZXYsCispOwor CitvaygkdXBkYXRlZCwgJ3ZhY3V1bSBzdGF0cyB1cGRhdGVkIGFmdGVyIHVwZGF0aW5nIHR1 cGxlcyBpbiB0aGUgdGFibGUgKHR1cGxlc19kZWxldGVkIGFuZCB3YWxfcmVjb3JkcyBhZHZh bmNlZCknKQorICBvciBkaWFnICJUaW1lb3V0IHdhaXRpbmcgZm9yIHBnX3N0YXRfdmFjdXVt XyogdXBkYXRlIGFmdGVyICR0aW1lb3V0IHNlY29uZHMiOworCitmZXRjaF92YWN1dW1fc3Rh dHMoKTsKKworb2soJHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9PSAkdm1fbmV3X3Zp c2libGVfZnJvemVuX3BhZ2VzX3ByZXYsICd0YWJsZSB2bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMgc3RheSB0aGUgc2FtZScpOworb2soJHR1cGxlc19kZWxldGVkID4gJHR1cGxlc19k ZWxldGVkX3ByZXYsICd0YWJsZSB0dXBsZXNfZGVsZXRlZCBoYXMgaW5jcmVhc2VkJyk7Citv aygkcGFnZXNfc2Nhbm5lZCA+ICRwYWdlc19zY2FubmVkX3ByZXYsICd0YWJsZSBwYWdlc19z Y2FubmVkIGhhcyBpbmNyZWFzZWQnKTsKK29rKCRwYWdlc19yZW1vdmVkID09ICRwYWdlc19y ZW1vdmVkX3ByZXYsICd0YWJsZSBwYWdlc19yZW1vdmVkIHN0YXkgdGhlIHNhbWUnKTsKK29r KCR3YWxfcmVjb3JkcyA+ICR3YWxfcmVjb3Jkc19wcmV2LCAndGFibGUgd2FsX3JlY29yZHMg aGFzIGluY3JlYXNlZCcpOworb2soJHdhbF9ieXRlcyA+ICR3YWxfYnl0ZXNfcHJldiwgJ3Rh YmxlIHdhbF9ieXRlcyBoYXMgaW5jcmVhc2VkJyk7Citvaygkd2FsX2ZwaSA+ICR3YWxfZnBp X3ByZXYsICd0YWJsZSB3YWxfZnBpIGhhcyBpbmNyZWFzZWQnKTsKKworb2soJGluZGV4X3Bh Z2VzX2RlbGV0ZWQgPiAkaW5kZXhfcGFnZXNfZGVsZXRlZF9wcmV2LCAnaW5kZXggcGFnZXNf ZGVsZXRlZCBoYXMgaW5jcmVhc2VkJyk7CitvaygkaW5kZXhfdHVwbGVzX2RlbGV0ZWQgPiAk aW5kZXhfdHVwbGVzX2RlbGV0ZWRfcHJldiwgJ2luZGV4IHR1cGxlc19kZWxldGVkIGhhcyBp bmNyZWFzZWQnKTsKK29rKCRpbmRleF93YWxfcmVjb3JkcyA+ICRpbmRleF93YWxfcmVjb3Jk c19wcmV2LCAnaW5kZXggd2FsX3JlY29yZHMgaGFzIGluY3JlYXNlZCcpOworb2soJGluZGV4 X3dhbF9ieXRlcyA+ICRpbmRleF93YWxfYnl0ZXNfcHJldiwgJ2luZGV4IHdhbF9ieXRlcyBo YXMgaW5jcmVhc2VkJyk7CitvaygkaW5kZXhfd2FsX2ZwaSA+ICRpbmRleF93YWxfZnBpX3By ZXYsICdpbmRleCB3YWxfZnBpIGhhcyBpbmNyZWFzZWQnKTsKKworfSBvciBwcmludF92YWN1 dW1fc3RhdHNfb25fZXJyb3IoKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBU ZXN0IDU6IFVwZGF0ZSB0YWJsZSwgdHJhbmNhdGUgYW5kIHZhY3V1bWluZworIy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorc3VidGVzdCAnVGVzdCA1OiBVcGRhdGUgdGFibGUsIHRyYW5j YXRlIGFuZCB2YWN1dW1pbmcnID0+IHN1YgoreworCitzYXZlX3ZhY3V1bV9zdGF0cygpOwor Ciskbm9kZS0+c2FmZV9wc3FsKAorICAgICRkYm5hbWUsCisgICAgIklOU0VSVCBJTlRPIHZl c3RhdCBTRUxFQ1QgeCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAkc2l6ZV90YWIpIEFTIGco eCk7CisgICAgIFVQREFURSB2ZXN0YXQgU0VUIHggPSB4ICsgMTAwMDsiCispOworJG5vZGUt PnNhZmVfcHNxbCgkZGJuYW1lLCAiVFJVTkNBVEUgdmVzdGF0OyIpOworJG5vZGUtPnNhZmVf cHNxbCgkZGJuYW1lLCAiQ0hFQ0tQT0lOVDsiKTsKKyRub2RlLT5zYWZlX3BzcWwoJGRibmFt ZSwgIlZBQ1VVTSB2ZXN0YXQ7Iik7CisKKyR1cGRhdGVkID0gd2FpdF9mb3JfdmFjdXVtX3N0 YXRzKAorICAgIHRhYl93YWxfcmVjb3JkcyA9PiAkd2FsX3JlY29yZHNfcHJldiwKKyk7CisK K29rKCR1cGRhdGVkLCAndmFjdXVtIHN0YXRzIHVwZGF0ZWQgYWZ0ZXIgdXBkYXRpbmcgdHVw bGVzIGFuZCB0cmFuY2F0aW9uIGluIHRoZSB0YWJsZSAod2FsX3JlY29yZHMgYWR2YW5jZWQp JykKKyAgb3IgZGlhZyAiVGltZW91dCB3YWl0aW5nIGZvciBwZ19zdGF0X3ZhY3V1bV8qIHVw ZGF0ZSBhZnRlciAkdGltZW91dCBzZWNvbmRzIjsKKworZmV0Y2hfdmFjdXVtX3N0YXRzKCk7 CisKK29rKCR2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPT0gJHZtX25ld192aXNpYmxl X2Zyb3plbl9wYWdlc19wcmV2LCAndGFibGUgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2Vz IHN0YXkgdGhlIHNhbWUnKTsKK29rKCR0dXBsZXNfZGVsZXRlZCA9PSAkdHVwbGVzX2RlbGV0 ZWRfcHJldiwgJ3RhYmxlIHR1cGxlc19kZWxldGVkIHN0YXkgdGhlIHNhbWUnKTsKK29rKCRw YWdlc19zY2FubmVkID09ICRwYWdlc19zY2FubmVkX3ByZXYsICd0YWJsZSBwYWdlc19zY2Fu bmVkIHN0YXkgdGhlIHNhbWUnKTsKK29rKCRwYWdlc19yZW1vdmVkID09ICRwYWdlc19yZW1v dmVkX3ByZXYsICd0YWJsZSBwYWdlc19yZW1vdmVkIHN0YXkgdGhlIHNhbWUnKTsKK29rKCR3 YWxfcmVjb3JkcyA+ICR3YWxfcmVjb3Jkc19wcmV2LCAndGFibGUgd2FsX3JlY29yZHMgaGFz IGluY3JlYXNlZCcpOworb2soJHdhbF9ieXRlcyA+ICR3YWxfYnl0ZXNfcHJldiwgJ3RhYmxl IHdhbF9ieXRlcyBoYXMgaW5jcmVhc2VkJyk7Citvaygkd2FsX2ZwaSA9PSAkd2FsX2ZwaV9w cmV2LCAndGFibGUgd2FsX2ZwaSBzdGF5IHRoZSBzYW1lJyk7CisKK29rKCRpbmRleF9wYWdl c19kZWxldGVkID09ICRpbmRleF9wYWdlc19kZWxldGVkX3ByZXYsICdpbmRleCBwYWdlc19k ZWxldGVkIHN0YXkgdGhlIHNhbWUnKTsKK29rKCRpbmRleF90dXBsZXNfZGVsZXRlZCA9PSAk aW5kZXhfdHVwbGVzX2RlbGV0ZWRfcHJldiwgJ2luZGV4IHR1cGxlc19kZWxldGVkIHN0YXkg dGhlIHNhbWUnKTsKK29rKCRpbmRleF93YWxfcmVjb3JkcyA9PSAkaW5kZXhfd2FsX3JlY29y ZHNfcHJldiwgJ2luZGV4IHdhbF9yZWNvcmRzIHN0YXkgdGhlIHNhbWUnKTsKK29rKCRpbmRl eF93YWxfYnl0ZXMgPT0gJGluZGV4X3dhbF9ieXRlc19wcmV2LCAnaW5kZXggd2FsX2J5dGVz IHN0YXkgdGhlIHNhbWUnKTsKK29rKCRpbmRleF93YWxfZnBpID09ICRpbmRleF93YWxfZnBp X3ByZXYsICdpbmRleCB3YWxfZnBpIHN0YXkgdGhlIHNhbWUnKTsKKworfSBvciBwcmludF92 YWN1dW1fc3RhdHNfb25fZXJyb3IoKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IyBUZXN0IDY6IERlbGV0ZSBhbGwgdHVwbGVzIGZyb20gdGFibGUsIHRyYW5jYXRlLCBhbmQg dmFjdXVtaW5nCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitzdWJ0ZXN0ICdUZXN0IDY6 IERlbGV0ZSBhbGwgdHVwbGVzIGZyb20gdGFibGUsIHRyYW5jYXRlLCBhbmQgdmFjdXVtaW5n JyA9PiBzdWIKK3sKKworc2F2ZV92YWN1dW1fc3RhdHMoKTsKKworJG5vZGUtPnNhZmVfcHNx bCgKKyAgICAkZGJuYW1lLAorICAgICJJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNUIHggRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgJHNpemVfdGFiKSBBUyBnKHgpOworICAgICBERUxFVEUg RlJPTSB2ZXN0YXQ7CisgICAgIFRSVU5DQVRFIHZlc3RhdDsKKyAgICAgQ0hFQ0tQT0lOVDsK KyAgICAgVkFDVVVNIHZlc3RhdDsiCispOworCiskdXBkYXRlZCA9IHdhaXRfZm9yX3ZhY3V1 bV9zdGF0cygKKyAgICB0YWJfd2FsX3JlY29yZHMgPT4gJHdhbF9yZWNvcmRzLAorKTsKKwor b2soJHVwZGF0ZWQsICd2YWN1dW0gc3RhdHMgdXBkYXRlZCBhZnRlciBkZWxldGluZyBhbGwg dHVwbGVzIGFuZCB0cmFuY2F0aW9uIGluIHRoZSB0YWJsZSAod2FsX3JlY29yZHMgYWR2YW5j ZWQpJykKKyAgb3IgZGlhZyAiVGltZW91dCB3YWl0aW5nIGZvciBwZ19zdGF0X3ZhY3V1bV8q IHVwZGF0ZSBhZnRlciAkdGltZW91dCBzZWNvbmRzIjsKKworZmV0Y2hfdmFjdXVtX3N0YXRz KCk7CisKK29rKCR2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPT0gJHZtX25ld192aXNp YmxlX2Zyb3plbl9wYWdlc19wcmV2LCAndGFibGUgdm1fbmV3X3Zpc2libGVfZnJvemVuX3Bh Z2VzIHN0YXkgdGhlIHNhbWUnKTsKK29rKCR0dXBsZXNfZGVsZXRlZCA9PSAkdHVwbGVzX2Rl bGV0ZWRfcHJldiwgJ3RhYmxlIHR1cGxlc19kZWxldGVkIHN0YXkgdGhlIHNhbWUnKTsKK29r KCRwYWdlc19zY2FubmVkID09ICRwYWdlc19zY2FubmVkX3ByZXYsICd0YWJsZSBwYWdlc19z Y2FubmVkIHN0YXkgdGhlIHNhbWUnKTsKK29rKCRwYWdlc19yZW1vdmVkID09ICRwYWdlc19y ZW1vdmVkX3ByZXYsICd0YWJsZSBwYWdlc19yZW1vdmVkIHN0YXkgdGhlIHNhbWUnKTsKK29r KCR3YWxfcmVjb3JkcyA+ICR3YWxfcmVjb3Jkc19wcmV2LCAndGFibGUgd2FsX3JlY29yZHMg aGFzIGluY3JlYXNlZCcpOworb2soJHdhbF9ieXRlcyA+ICR3YWxfYnl0ZXNfcHJldiwgJ3Rh YmxlIHdhbF9ieXRlcyBoYXMgaW5jcmVhc2VkJyk7Citvaygkd2FsX2ZwaSA9PSAkd2FsX2Zw aV9wcmV2LCAndGFibGUgd2FsX2ZwaSBzdGF5IHRoZSBzYW1lJyk7CisKK29rKCRpbmRleF9w YWdlc19kZWxldGVkID09ICRpbmRleF9wYWdlc19kZWxldGVkX3ByZXYsICdpbmRleCBwYWdl c19kZWxldGVkIHN0YXkgdGhlIHNhbWUnKTsKK29rKCRpbmRleF90dXBsZXNfZGVsZXRlZCA9 PSAkaW5kZXhfdHVwbGVzX2RlbGV0ZWRfcHJldiwgJ2luZGV4IHR1cGxlc19kZWxldGVkIHN0 YXkgdGhlIHNhbWUnKTsKK29rKCRpbmRleF93YWxfcmVjb3JkcyA9PSAkaW5kZXhfd2FsX3Jl Y29yZHNfcHJldiwgJ2luZGV4IHdhbF9yZWNvcmRzIHN0YXkgdGhlIHNhbWUnKTsKK29rKCRp bmRleF93YWxfYnl0ZXMgPT0gJGluZGV4X3dhbF9ieXRlc19wcmV2LCAnaW5kZXggd2FsX2J5 dGVzIHN0YXkgdGhlIHNhbWUnKTsKK29rKCRpbmRleF93YWxfZnBpID09ICRpbmRleF93YWxf ZnBpX3ByZXYsICdpbmRleCB3YWxfZnBpIHN0YXkgdGhlIHNhbWUnKTsKKworfSBvciBwcmlu dF92YWN1dW1fc3RhdHNfb25fZXJyb3IoKTsKKworbXkgJGRib2lkID0gJG5vZGUtPnNhZmVf cHNxbCgKKyAgICAkZGJuYW1lLAorICAgICJTRUxFQ1Qgb2lkIEZST00gcGdfZGF0YWJhc2Ug V0hFUkUgZGF0bmFtZSA9IGN1cnJlbnRfZGF0YWJhc2UoKTsiCispOworCisjLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBUZXN0IDc6IENo ZWNrIGlmIHdlIHJldHVybiBzaW5nbGUgdmFjdXVtIHN0YXRpc3RpY3MgZm9yIHBhcnRpY3Vs YXIgcmVsYXRpb24gZnJvbSB0aGUgY3VycmVudCBkYXRhYmFzZQorIy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N1YnRlc3QgJ1Rlc3QgNzog Q2hlY2sgaWYgd2UgcmV0dXJuIHZhY3V1bSBzdGF0aXN0aWNzIGZyb20gdGhlIGN1cnJlbnQg ZGF0YWJhc2UnID0+IHN1Ygoreworc2F2ZV92YWN1dW1fc3RhdHMoKTsKKworbXkgJHJlbG9p ZCA9ICRub2RlLT5zYWZlX3BzcWwoCisgICAgJGRibmFtZSwKKyAgICBxeworICAgICAgICBT RUxFQ1Qgb2lkIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSA9ICd2ZXN0YXQnOworICAg IH0KKyk7CisKKyMgQ2hlY2sgaWYgd2UgY2FuIGdldCB2YWN1dW0gc3RhdGlzdGljcyBvZiBw YXJ0aWN1bGFyIGhlYXAgcmVsYXRpb24gaW4gdGhlIGN1cnJlbnQgZGF0YWJhc2UKKyRiYXNl X3N0YXRzID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAkZGJuYW1lLAorICAgICJTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKCRyZWxvaWQpOyIKKyk7 CitpcygkYmFzZV9zdGF0cywgMSwgJ2hlYXAgdmFjdXVtIHN0YXRzIHJldHVybiBmcm9tIHRo ZSBjdXJyZW50IHJlbGF0aW9uIGFuZCBkYXRhYmFzZSBhcyBleHBlY3RlZCcpOworCiskcmVs b2lkID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAkZGJuYW1lLAorICAgIHF7CisgICAgICAg IFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lID0gJ3Zlc3RhdF9wa2V5 JzsKKyAgICB9CispOworCisjIENoZWNrIGlmIHdlIGNhbiBnZXQgdmFjdXVtIHN0YXRpc3Rp Y3Mgb2YgcGFydGljdWxhciBpbmRleCByZWxhdGlvbiBpbiB0aGUgY3VycmVudCBkYXRhYmFz ZQorJGJhc2Vfc3RhdHMgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICRkYm5hbWUsCisgICAg IlNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVzKCRyZWxv aWQpOyIKKyk7CitpcygkYmFzZV9zdGF0cywgMSwgJ2luZGV4IHZhY3V1bSBzdGF0cyByZXR1 cm4gZnJvbSB0aGUgY3VycmVudCByZWxhdGlvbiBhbmQgZGF0YWJhc2UgYXMgZXhwZWN0ZWQn KTsKKworIyBDaGVjayBpZiB3ZSByZXR1cm4gZW1wdHkgcmVzdWx0cyBpZiB2YWN1dW0gc3Rh dGlzdGljcyB3aXRoIHBhcnRpY3VsYXIgb2lkIGRvZXNuJ3QgZXhpc3QKKyRiYXNlX3N0YXRz ID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAkZGJuYW1lLAorICAgICJTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKDEpOyIKKyk7CitpcygkYmFzZV9z dGF0cywgMCwgJ3RhYmxlIHZhY3V1bSBzdGF0cyByZXR1cm4gbm8gcm93cywgYXMgZXhwZWN0 ZWQnKTsKKworJGJhc2Vfc3RhdHMgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICRkYm5hbWUs CisgICAgIlNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3N0YXRfZ2V0X3ZhY3V1bV9pbmRleGVz KDEpOyIKKyk7CitpcygkYmFzZV9zdGF0cywgMCwgJ2luZGV4IHZhY3V1bSBzdGF0cyByZXR1 cm4gbm8gcm93cywgYXMgZXhwZWN0ZWQnKTsKKworIyBDaGVjayBpZiB3ZSBjYW4gZ2V0IHZh Y3V1bSBzdGF0aXN0aWNzIG9mIGFsbCByZWxhdGlvbnMgaW4gdGhlIGN1cnJlbnQgZGF0YWJh c2UKKyRiYXNlX3N0YXRzID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAkZGJuYW1lLAorICAg ICJTRUxFQ1QgY291bnQoKikgPiAwIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzOyIKKyk7 CitvaygkYmFzZV9zdGF0cyBlcSAndCcsICd2YWN1dW0gc3RhdHMgcGVyIGFsbCBoZWFwIG9i amVjdHMgYXZhaWxhYmxlJyk7CisKKyRiYXNlX3N0YXRzID0gJG5vZGUtPnNhZmVfcHNxbCgK KyAgICAkZGJuYW1lLAorICAgICJTRUxFQ1QgY291bnQoKikgPiAwIEZST00gcGdfc3RhdF92 YWN1dW1faW5kZXhlczsiCispOworb2soJGJhc2Vfc3RhdHMgZXEgJ3QnLCAndmFjdXVtIHN0 YXRzIHBlciBhbGwgaW5kZXggb2JqZWN0cyBhdmFpbGFibGUnKTsKK307CisKKyMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCA4OiBDaGVjayByZWxhdGlvbi1sZXZlbCB2YWN1 dW0gc3RhdGlzdGljcyBmcm9tIGFub3RoZXIgZGF0YWJhc2UKKyMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KK3N1YnRlc3QgJ1Rlc3QgODogQ2hlY2sgcmVsYXRpb24tbGV2ZWwgdmFjdXVt IHN0YXRpc3RpY3MgZnJvbSBhbm90aGVyIGRhdGFiYXNlJyA9PiBzdWIKK3sKKyRiYXNlX3N0 YXRzID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAncG9zdGdyZXMnLAorICAgICJTRUxFQ1Qg Y291bnQoKikKKyAgICBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMKKyAgICBXSEVSRSBp bmRleHJlbG5hbWUgPSAndmVzdGF0X3BrZXknOyIKKyk7CitpcygkYmFzZV9zdGF0cywgMCwg J2NoZWNrIHRoZSBwcmludGluZyBpbmRleCB2YWN1dW0gZXh0ZW5kZWQgc3RhdGlzdGljcyBm cm9tIGFub3RoZXIgZGF0YWJhc2UgYXJlIG5vdCBhdmFpbGFibGUnKTsKKworJGJhc2Vfc3Rh dHMgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBj b3VudCgqKQorICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzCisgICAgV0hFUkUgcmVs bmFtZSA9ICd2ZXN0YXQnOyIKKyk7CitpcygkYmFzZV9zdGF0cywgMCwgJ2NoZWNrIHRoZSBw cmludGluZyBoZWFwIHZhY3V1bSBleHRlbmRlZCBzdGF0aXN0aWNzIGZyb20gYW5vdGhlciBk YXRhYmFzZSBhcmUgbm90IGF2YWlsYWJsZScpOworCisjIENoZWNrIHRoYXQgcmVsYXRpb25z IGZyb20gYW5vdGhlciBkYXRhYmFzZSBhcmUgbm90IHZpc2libGUgaW4gdGhlIHZpZXcgd2hl biBxdWVyeWluZyBmcm9tIHBvc3RncmVzCiskYmFzZV9zdGF0cyA9ICRub2RlLT5zYWZlX3Bz cWwoCisgICAgJ3Bvc3RncmVzJywKKyAgICAiU0VMRUNUIGNvdW50KCopIEZST00gcGdfc3Rh dF92YWN1dW1fdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAndmVzdGF0JzsiCispOworaXMoJGJh c2Vfc3RhdHMsIDAsICd2YWN1dW0gc3RhdHMgcGVyIGFsbCB0YWJsZXMgb2JqZWN0cyBmcm9t IGFub3RoZXIgZGF0YWJhc2UgYXJlIG5vdCBhdmFpbGFibGUgYXMgZXhwZWN0ZWQnKTsKKwor JGJhc2Vfc3RhdHMgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICdwb3N0Z3JlcycsCisgICAg IlNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3N0YXRfdmFjdXVtX2luZGV4ZXMgV0hFUkUgaW5k ZXhyZWxuYW1lID0gJ3Zlc3RhdF9wa2V5JzsiCispOworaXMoJGJhc2Vfc3RhdHMsIDAsICd2 YWN1dW0gc3RhdHMgcGVyIGFsbCBpbmRleCBvYmplY3RzIGZyb20gYW5vdGhlciBkYXRhYmFz ZSBhcmUgbm90IGF2YWlsYWJsZSBhcyBleHBlY3RlZCcpOworfTsKKworIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIyBUZXN0IDk6IENsZWFudXAgY2hlY2tzOiBlbnN1cmUgZnVuY3Rp b25zIHJldHVybiBlbXB0eSBzZXRzIGZvciBPSUQgPSAwCisjLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCitzdWJ0ZXN0ICdUZXN0IDEwOiBDbGVhbnVwIGNoZWNrczogZW5zdXJlIGZ1bmN0 aW9ucyByZXR1cm4gZW1wdHkgc2V0cyBmb3IgT0lEID0gMCcgPT4gc3ViCit7CitteSAkZGJv aWQgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICRkYm5hbWUsCisgICAgIlNFTEVDVCBvaWQg RlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRuYW1lID0gY3VycmVudF9kYXRhYmFzZSgpOyIK Kyk7CisKKyMgVmFjdXVtIHN0YXRpc3RpY3MgZm9yIGludmFsaWQgcmVsYXRpb24gT0lEIHJl dHVybiBlbXB0eQorJGJhc2Vfc3RhdHMgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICRkYm5h bWUsCisgICAgcXsKKyAgICAgICBTRUxFQ1QgQ09VTlQoKikKKyAgICAgICAgIEZST00gcGdf c3RhdF9nZXRfdmFjdXVtX3RhYmxlcygwKTsKKyAgICB9CispOworaXMoJGJhc2Vfc3RhdHMs IDAsICd2YWN1dW0gc3RhdHMgcGVyIGhlYXAgZnJvbSBpbnZhbGlkIHJlbGF0aW9uIE9JRCBy ZXR1cm4gZW1wdHkgYXMgZXhwZWN0ZWQnKTsKKworJGJhc2Vfc3RhdHMgPSAkbm9kZS0+c2Fm ZV9wc3FsKAorICAgICRkYm5hbWUsCisgICAgcXsKKyAgICAgICBTRUxFQ1QgQ09VTlQoKikK KyAgICAgICAgIEZST00gcGdfc3RhdF9nZXRfdmFjdXVtX2luZGV4ZXMoMCk7CisgICAgfQor KTsKK2lzKCRiYXNlX3N0YXRzLCAwLCAndmFjdXVtIHN0YXRzIHBlciBpbmRleCBmcm9tIGlu dmFsaWQgcmVsYXRpb24gT0lEIHJldHVybiBlbXB0eSBhcyBleHBlY3RlZCcpOworCiskbm9k ZS0+c2FmZV9wc3FsKCRkYm5hbWUsIHF7CisgICAgRFJPUCBUQUJMRSB2ZXN0YXQgQ0FTQ0FE RTsKKyAgICBWQUNVVU07Cit9KTsKKworIyBDaGVjayB0aGF0IHdlIGRvbid0IHByaW50IHZh Y3V1bSBzdGF0aXN0aWNzIGZvciBkZWxldGVkIG9iamVjdHMKKyRiYXNlX3N0YXRzID0gJG5v ZGUtPnNhZmVfcHNxbCgKKyAgICAkZGJuYW1lLAorICAgIHF7CisgICAgICAgIFNFTEVDVCBD T1VOVCgqKQorICAgICAgICAgIEZST00gcGdfc3RhdF92YWN1dW1fdGFibGVzIFdIRVJFIHJl bGlkID0gMDsKKyAgICB9CispOworaXMoJGJhc2Vfc3RhdHMsIDAsICdwZ19zdGF0X3ZhY3V1 bV90YWJsZXMgY29ycmVjdGx5IHJldHVybnMgbm8gcm93cyBmb3IgT0lEID0gMCcpOworCisk YmFzZV9zdGF0cyA9ICRub2RlLT5zYWZlX3BzcWwoCisgICAgJGRibmFtZSwKKyAgICBxewor ICAgICAgICBTRUxFQ1QgQ09VTlQoKikKKyAgICAgICAgICBGUk9NIHBnX3N0YXRfdmFjdXVt X2luZGV4ZXMgV0hFUkUgcmVsaWQgPSAwOworICAgIH0KKyk7CitpcygkYmFzZV9zdGF0cywg MCwgJ3BnX3N0YXRfdmFjdXVtX2luZGV4ZXMgY29ycmVjdGx5IHJldHVybnMgbm8gcm93cyBm b3IgT0lEID0gMCcpOworCitteSAkcmVsb2lkID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAk ZGJuYW1lLAorICAgIHF7CisgICAgICAgIFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVS RSByZWxuYW1lID0gJ3BnX3NoZGVwZW5kJzsKKyAgICB9CispOworCiskbm9kZS0+c2FmZV9w c3FsKCRkYm5hbWUsICJWQUNVVU0gcGdfc2hkZXBlbmQ7Iik7CisKKyMgQ2hlY2sgaWYgd2Ug Y2FuIGdldCB2YWN1dW0gc3RhdGlzdGljcyBmb3IgY2x1c3RlciByZWxhdGlvbnMgKHNoYXJl ZCBjYXRhbG9ncykKKyRiYXNlX3N0YXRzID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAgICAkZGJu YW1lLAorICAgIHFxeworICAgICAgICBTRUxFQ1QgY291bnQoKikgPiAwCisgICAgICAgIEZS T00gcGdfc3RhdF9nZXRfdmFjdXVtX3RhYmxlcygkcmVsb2lkKTsKKyAgICB9CispOworCitp cygkYmFzZV9zdGF0cywgJ3QnLCAndmFjdXVtIHN0YXRzIGZvciBjb21tb24gaGVhcCBvYmpl Y3RzIGF2YWlsYWJsZScpOworCitteSAkaW5kb2lkID0gJG5vZGUtPnNhZmVfcHNxbCgKKyAg ICAkZGJuYW1lLAorICAgIHF7CisgICAgICAgIFNFTEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBX SEVSRSByZWxuYW1lID0gJ3BnX3NoZGVwZW5kX3JlZmVyZW5jZV9pbmRleCc7CisgICAgfQor KTsKKworJGJhc2Vfc3RhdHMgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICRkYm5hbWUsCisg ICAgcXF7CisgICAgICAgIFNFTEVDVCBjb3VudCgqKSA+IDAKKyAgICAgICAgRlJPTSBwZ19z dGF0X2dldF92YWN1dW1faW5kZXhlcygkaW5kb2lkKTsKKyAgICB9CispOworCitpcygkYmFz ZV9zdGF0cywgJ3QnLCAndmFjdXVtIHN0YXRzIGZvciBjb21tb24gaW5kZXggb2JqZWN0cyBh dmFpbGFibGUnKTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICJEUk9Q IERBVEFCQVNFICRkYm5hbWU7CisgICAgIFZBQ1VVTTsiCispOworCiskYmFzZV9zdGF0cyA9 ICRub2RlLT5zYWZlX3BzcWwoCisgICAgJ3Bvc3RncmVzJywKKyAgICBxeworICAgICAgIFNF TEVDVCBjb3VudCgqKSA9IDAKKyAgICAgICAgRlJPTSBwZ19zdGF0X2dldF92YWN1dW1fZGF0 YWJhc2UoMCk7CisgICAgfQorKTsKK2lzKCRiYXNlX3N0YXRzLCAndCcsICd2YWN1dW0gc3Rh dHMgZnJvbSBkYXRhYmFzZSB3aXRoIGludmFsaWQgZGF0YWJhc2UgT0lEIHJldHVybiBlbXB0 eSwgYXMgZXhwZWN0ZWQnKTsKK307CisKKyRub2RlLT5zdG9wOworCitkb25lX3Rlc3Rpbmco KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUzX3ZhY3V1bV9leHRlbmRp bmdfZnJlZXplX3Rlc3QucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1M192YWN1dW1fZXh0 ZW5kaW5nX2ZyZWV6ZV90ZXN0LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi44MjA4OWMwMTNmNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlY292 ZXJ5L3QvMDUzX3ZhY3V1bV9leHRlbmRpbmdfZnJlZXplX3Rlc3QucGwKQEAgLTAsMCArMSwz MjkgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisjCisjIFRlc3QgY3VtdWxhdGl2ZSB2YWN1dW0gc3RhdHMgc3lzdGVtIHVz aW5nIFRBUAorIworIyBJbiBzaG9ydCwgdGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgY29ycmVj dG5lc3MgYW5kIHN0YWJpbGl0eSBvZiBjdW11bGF0aXZlCisjIHZhY3V1bSBzdGF0aXN0aWNz IGFjY291bnRpbmcgYXJvdW5kIGZyZWV6aW5nLCB2aXNpYmlsaXR5LCBhbmQgcmV2aXNpb24K KyMgdHJhY2tpbmcgYWNyb3NzIG11bHRpcGxlIFZBQ1VVTXMgYW5kIGJhY2tlbmQgb3BlcmF0 aW9ucy4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpU ZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6 Ok1vcmU7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCBjbHVzdGVyIHNl dHVwCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK215ICRub2RlID0gUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdleHRfc3RhdF92YWN1dW0nKTsKKyRub2RlLT5pbml0 OworCisjIENvbmZpZ3VyZSB0aGUgc2VydmVyIGZvciBhZ2dyZXNzaXZlIGZyZWV6aW5nIGJl aGF2aW9yIHVzZWQgYnkgdGhlIHRlc3QKKyRub2RlLT5hcHBlbmRfY29uZigncG9zdGdyZXNx bC5jb25mJywgcXsKKwlsb2dfbWluX21lc3NhZ2VzID0gbm90aWNlCisJdmFjdXVtX2ZyZWV6 ZV9taW5fYWdlID0gMAorCXZhY3V1bV9mcmVlemVfdGFibGVfYWdlID0gMAorICB2YWN1dW1f bXVsdGl4YWN0X2ZyZWV6ZV9taW5fYWdlID0gMAorCXZhY3V1bV9tdWx0aXhhY3RfZnJlZXpl X3RhYmxlX2FnZSA9IDAKKwl2YWN1dW1fbWF4X2VhZ2VyX2ZyZWV6ZV9mYWlsdXJlX3JhdGUg PSAxLjAKKwl2YWN1dW1fZmFpbHNhZmVfYWdlID0gMAorCXZhY3V1bV9tdWx0aXhhY3RfZmFp bHNhZmVfYWdlID0gMAorICB0cmFja192YWN1dW1fc3RhdGlzdGljcyA9IG9uCisgIHRyYWNr X2Z1bmN0aW9ucyA9ICdhbGwnCit9KTsKKworJG5vZGUtPnN0YXJ0KCk7CisKKyMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyMgRGF0YWJhc2UgY3JlYXRpb24gYW5kIGluaXRpYWxpemF0 aW9uCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcXsKKwlDUkVBVEUgREFUQUJBU0Ugc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFz ZV9yZWdyZXNzaW9uOworfSk7CisKKyMgTWFpbiB0ZXN0IGRhdGFiYXNlIG5hbWUKK215ICRk Ym5hbWUgPSAnc3RhdGlzdGljX3ZhY3V1bV9kYXRhYmFzZV9yZWdyZXNzaW9uJzsKKworIyBF bmFibGUgbmVjZXNzYXJ5IHNldHRpbmdzIGFuZCBmb3JjZSB0aGUgc3RhdHMgY29sbGVjdG9y IHRvIGZsdXNoIG5leHQKKyRub2RlLT5zYWZlX3BzcWwoJGRibmFtZSwgcXsKKyAgICBTRUxF Q1QgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7Cit9KTsKKworIy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIyBUaW1pbmcgcGFyYW1ldGVycyBmb3IgcG9sbGluZyBsb29wcworIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitteSAkdGltZW91dCAgICA9IDMwOyAgICAgIyBv dmVyYWxsIHdhaXQgdGltZW91dCBpbiBzZWNvbmRzCitteSAkaW50ZXJ2YWwgICA9IDAuMDE1 OyAgIyBwb2xsIGludGVydmFsIGluIHNlY29uZHMgKDE1IG1zKQorbXkgJHN0YXJ0X3RpbWUg PSB0aW1lKCk7CitteSAkdXBkYXRlZCAgICA9IDA7CisKKyMgd2FpdF9mb3JfdmFjdXVtX3N0 YXRzCisjCisjIFBvbGxzIHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB1bnRpbCB0aGUgbmFtZWQg Y29sdW1ucyBleGNlZWQgdGhlIHByb3ZpZGVkCisjIGJhc2VsaW5lIHZhbHVlcyBvciB1bnRp bCB0aW1lb3V0LiAgQ2FsbGVycyBzaG91bGQgcGFzczoKKyMKKyMgICB0YWJfZnJvemVuX2Nv bHVtbiAgICAgICAgICAgPT4gJ3ZtX25ld19mcm96ZW5fcGFnZXMnICAgIyBjb2x1bW4gbmFt ZSAoc3RyaW5nKSBvciAncmV2X2FsbF9mcm96ZW5fcGFnZXMnCisjICAgdGFiX3Zpc2libGVf Y29sdW1uICAgICAgICAgID0+ICd2bV9uZXdfdmlzaWJsZV9wYWdlcycgICMgY29sdW1uIG5h bWUgKHN0cmluZykgb3IgJ3Jldl9hbGxfdmlzaWJsZV9wYWdlcycKKyMgICB0YWJfYWxsX2Zy b3plbl9wYWdlc19jb3VudCAgPT4gMCAgICAgICAgICAgICAgICAgICAgICAgIyBiYXNlbGlu ZSBudW1lcmljCisjICAgdGFiX2FsbF92aXNpYmxlX3BhZ2VzX2NvdW50ID0+IDAgICAgICAg ICAgICAgICAgICAgICAgICMgYmFzZWxpbmUgbnVtZXJpYworIyAgIHJ1bl92YWN1dW0gICAg ICAgICAgICAgICAgICA9PiAwIG9yIDEgICAgICAgICAgICAgICAgICAjIGlmIHRydWUsIHJ1 biB2YWN1dW1fc3FsIGJlZm9yZSBwb2xsaW5nCisjCisjIFJldHVybnM6IDEgaWYgdGhlIGNv bmRpdGlvbiBpcyBtZXQgYmVmb3JlIHRpbWVvdXQsIDAgb3RoZXJ3aXNlLgorc3ViIHdhaXRf Zm9yX3ZhY3V1bV9zdGF0cyB7CisgICAgbXkgKCVhcmdzKSA9IEBfOworCisgICAgbXkgJHRh Yl9mcm96ZW5fY29sdW1uICAgICAgICAgICA9ICRhcmdze3RhYl9mcm96ZW5fY29sdW1ufTsK KyAgICBteSAkdGFiX3Zpc2libGVfY29sdW1uICAgICAgICAgID0gJGFyZ3N7dGFiX3Zpc2li bGVfY29sdW1ufTsKKyAgICBteSAkdGFiX2FsbF9mcm96ZW5fcGFnZXNfY291bnQgID0gJGFy Z3N7dGFiX2FsbF9mcm96ZW5fcGFnZXNfY291bnR9OworICAgIG15ICR0YWJfYWxsX3Zpc2li bGVfcGFnZXNfY291bnQgPSAkYXJnc3t0YWJfYWxsX3Zpc2libGVfcGFnZXNfY291bnR9Owor ICAgIG15ICRydW5fdmFjdXVtICAgICAgICAgICAgICAgICAgPSAkYXJnc3tydW5fdmFjdXVt fSA/IDEgOiAwOworICAgIG15ICRyZXN1bHRfcXVlcnk7CisKKyAgICBteSAkc3RhcnQgPSB0 aW1lKCk7CisgICAgbXkgJHNxbDsKKyAgICBteSAkdmFjdXVtX3J1biA9IDA7CisKKyAgICAj IFJ1biBWQUNVVU0gb25jZSBpZiByZXF1ZXN0ZWQsIGJlZm9yZSBwb2xsaW5nCisgICAgaWYg KCRydW5fdmFjdXVtKSB7CisgICAgICAgICRub2RlLT5zYWZlX3BzcWwoJGRibmFtZSwgJ1ZB Q1VVTSAoRlJFRVpFLCBWRVJCT1NFKSB2ZXN0YXQnKTsKKyAgICAgICAgJHZhY3V1bV9ydW4g PSAxOworICAgIH0KKworICAgIHdoaWxlICgodGltZSgpIC0gJHN0YXJ0KSA8ICR0aW1lb3V0 KSB7CisKKyAgICAgICAgaWYgKCRydW5fdmFjdXVtKSB7CisgICAgICAgICAgICAkc3FsID0g IgorICAgICAgICAgICAgU0VMRUNUICh2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPiAk dGFiX2FsbF9mcm96ZW5fcGFnZXNfY291bnQpCisgICAgICAgICAgICAgICAgICAgIEZST00g cGdfc3RhdF92YWN1dW1fdGFibGVzCisgICAgICAgICAgICAgICAgICAgIFdIRVJFIHJlbG5h bWUgPSAndmVzdGF0JyI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAg ICAkc3FsID0gIgorICAgICAgICAgICAgU0VMRUNUIChwZ19zdGF0X2dldF9yZXZfYWxsX2Zy b3plbl9wYWdlcyhjLm9pZCkgPiAkdGFiX2FsbF9mcm96ZW5fcGFnZXNfY291bnQgQU5ECisg ICAgICAgICAgICAgICAgICAgICBwZ19zdGF0X2dldF9yZXZfYWxsX3Zpc2libGVfcGFnZXMo Yy5vaWQpID4gJHRhYl9hbGxfdmlzaWJsZV9wYWdlc19jb3VudCkKKyAgICAgICAgICAgICAg ICBGUk9NIHBnX2NsYXNzIGMKKyAgICAgICAgICAgICAgICBXSEVSRSByZWxuYW1lID0gJ3Zl c3RhdCciOworICAgICAgICB9CisKKyAgICAgICAgJHJlc3VsdF9xdWVyeSA9ICRub2RlLT5z YWZlX3BzcWwoJGRibmFtZSwgJHNxbCk7CisKKyAgICAgICAgcmV0dXJuIDEgaWYgKGRlZmlu ZWQgJHJlc3VsdF9xdWVyeSAmJiAkcmVzdWx0X3F1ZXJ5IGVxICd0Jyk7CisKKyAgICAgICAg IyBzdWItc2Vjb25kIHNsZWVwCisgICAgICAgIHNsZWVwKCRpbnRlcnZhbCk7CisgICAgfQor CisgICAgcmV0dXJuIDA7Cit9CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVmFy aWFibGVzIHRvIGhvbGQgdmFjdXVtIHN0YXRpc3RpY3Mgc25hcHNob3RzIGZvciBjb21wYXJp c29ucworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitteSAkdm1fbmV3X3Zpc2libGVf ZnJvemVuX3BhZ2VzID0gMDsKKworbXkgJHJldl9hbGxfZnJvemVuX3BhZ2VzID0gMDsKK215 ICRyZXZfYWxsX3Zpc2libGVfcGFnZXMgPSAwOworCitteSAkdm1fbmV3X3Zpc2libGVfZnJv emVuX3BhZ2VzX3ByZXYgPSAwOworCitteSAkcmV2X2FsbF9mcm96ZW5fcGFnZXNfcHJldiA9 IDA7CitteSAkcmV2X2FsbF92aXNpYmxlX3BhZ2VzX3ByZXYgPSAwOworCitteSAkcmVzOwor CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIGZldGNoX3ZhY3V1bV9zdGF0cworIwor IyBMb2FkcyBjdXJyZW50IHZhbHVlcyBvZiB0aGUgcmVsZXZhbnQgdmFjdXVtIGNvdW50ZXJz IGZvciB0aGUgdGVzdCB0YWJsZQorIyBpbnRvIHRoZSBwYWNrYWdlLWxldmVsIHZhcmlhYmxl cyBhYm92ZSBzbyB0ZXN0cyBjYW4gY29tcGFyZSBsYXRlci4KKyMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKworc3ViIGZldGNoX3ZhY3V1bV9zdGF0cyB7CisgICAgIyBmZXRjaCBhY3R1 YWwgYmFzZSB2YWN1dW0gc3RhdGlzdGljcworICAgICR2bV9uZXdfdmlzaWJsZV9mcm96ZW5f cGFnZXMgPSAkbm9kZS0+c2FmZV9wc3FsKAorICAgICAgICAkZGJuYW1lLAorICAgICAgICAi U0VMRUNUIHZ0LnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcworICAgICAgICAgICBGUk9N IHBnX3N0YXRfdmFjdXVtX3RhYmxlcyB2dAorICAgICAgICAgIFdIRVJFIHZ0LnJlbG5hbWUg PSAndmVzdGF0JzsiCisgICAgKTsKKworICAgICRyZXZfYWxsX2Zyb3plbl9wYWdlcyA9ICRu b2RlLT5zYWZlX3BzcWwoCisgICAgICAgICRkYm5hbWUsCisgICAgICAgICJTRUxFQ1QgcGdf c3RhdF9nZXRfcmV2X2FsbF9mcm96ZW5fcGFnZXMoYy5vaWQpCisgICAgICAgICAgIEZST00g cGdfY2xhc3MgYworICAgICAgICAgIFdIRVJFIGMucmVsbmFtZSA9ICd2ZXN0YXQnOyIKKyAg ICApOworCisgICAgJHJldl9hbGxfdmlzaWJsZV9wYWdlcyA9ICRub2RlLT5zYWZlX3BzcWwo CisgICAgICAgICRkYm5hbWUsCisgICAgICAgICJTRUxFQ1QgcGdfc3RhdF9nZXRfcmV2X2Fs bF92aXNpYmxlX3BhZ2VzKGMub2lkKQorICAgICAgICAgICBGUk9NIHBnX2NsYXNzIGMKKyAg ICAgICAgICBXSEVSRSBjLnJlbG5hbWUgPSAndmVzdGF0JzsiCisgICAgKTsKK30KKworIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBzYXZlX3ZhY3V1bV9zdGF0cworIworIyBTYXZl IGN1cnJlbnQgdmFsdWVzIChwcmV2aW91c2x5IGZldGNoZWQgYnkgZmV0Y2hfdmFjdXVtX3N0 YXRzKSBzbyB0aGF0IHdlCisjIGxhdGVyIGZldGNoIG5ldyB2YWx1ZXMgYW5kIGNvbXBhcmUg dGhlbS4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N1YiBzYXZlX3ZhY3V1bV9zdGF0 cyB7CisgICAgJHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlc19wcmV2ID0gJHZtX25ld192 aXNpYmxlX2Zyb3plbl9wYWdlczsKKyAgICAkcmV2X2FsbF9mcm96ZW5fcGFnZXNfcHJldiA9 ICRyZXZfYWxsX2Zyb3plbl9wYWdlczsKKyAgICAkcmV2X2FsbF92aXNpYmxlX3BhZ2VzX3By ZXYgPSAkcmV2X2FsbF92aXNpYmxlX3BhZ2VzOworfQorCisjLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisjIHByaW50X3ZhY3V1bV9zdGF0c19vbl9lcnJvcgorIworIyBQcmludCB2YWx1 ZXMgaW4gY2FzZSBvZiBhbiBlcnJvcgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3Vi IHByaW50X3ZhY3V1bV9zdGF0c19vbl9lcnJvciB7CisgICAgZGlhZygKKyAgICAgICAgICAg ICJTdGF0aXN0aWNzIGluIHRoZSBmYWlsZWQgdGVzdFxuIiAuCisgICAgICAgICAgICAiVGFi bGUgc3RhdGlzdGljczpcbiIgLgorICAgICAgICAgICAgIiAgQmVmb3JlIHRlc3Q6XG4iIC4K KyAgICAgICAgICAgICIgICAgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzID0gJHZtX25l d192aXNpYmxlX2Zyb3plbl9wYWdlc19wcmV2XG4iIC4KKyAgICAgICAgICAgICIgICAgcmV2 X2FsbF9mcm96ZW5fcGFnZXMgPSAkcmV2X2FsbF9mcm96ZW5fcGFnZXNfcHJldlxuIiAuCisg ICAgICAgICAgICAiICAgIHJldl9hbGxfdmlzaWJsZV9wYWdlcyA9ICRyZXZfYWxsX3Zpc2li bGVfcGFnZXNfcHJldlxuIiAuCisgICAgICAgICAgICAiU3RhdGlzdGljcyBpbiB0aGUgZmFp bGVkIHRlc3RcbiIgLgorICAgICAgICAgICAgIlRhYmxlIHN0YXRpc3RpY3M6XG4iIC4KKyAg ICAgICAgICAgICIgIEFmdGVyIHRlc3Q6XG4iIC4KKyAgICAgICAgICAgICIgICAgdm1fbmV3 X3Zpc2libGVfZnJvemVuX3BhZ2VzID0gJHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlc1xu IiAuCisgICAgICAgICAgICAiICAgIHJldl9hbGxfZnJvemVuX3BhZ2VzID0gJHJldl9hbGxf ZnJvemVuX3BhZ2VzXG4iIC4KKyAgICAgICAgICAgICIgICAgcmV2X2FsbF92aXNpYmxlX3Bh Z2VzID0gJHJldl9hbGxfdmlzaWJsZV9wYWdlc1xuIgorICAgICk7Cit9OworCisjLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgMTogQ3JlYXRlIHRlc3QgdGFibGUsIHBvcHVs YXRlIGl0IGFuZCBydW4gYW4gaW5pdGlhbCB2YWN1dW0gdG8gZm9yY2UgZnJlZXppbmcKKyMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc3VidGVzdCAnVGVzdCAxOiBDcmVhdGUgdGVz dCB0YWJsZSwgcG9wdWxhdGUgaXQgYW5kIHJ1biBhbiBpbml0aWFsIHZhY3V1bSB0byBmb3Jj ZSBmcmVlemluZycgPT4gc3ViCit7Ciskbm9kZS0+c2FmZV9wc3FsKCRkYm5hbWUsIHF7CisJ Q1JFQVRFIFRBQkxFIHZlc3RhdCAoeCBpbnQpCisJCVdJVEggKGF1dG92YWN1dW1fZW5hYmxl ZCA9IG9mZiwgZmlsbGZhY3RvciA9IDEwKTsKKwlJTlNFUlQgSU5UTyB2ZXN0YXQgU0VMRUNU IHggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgZyh4KTsKKwlBTkFMWVpFIHZl c3RhdDsKKwlWQUNVVU0gKEZSRUVaRSwgVkVSQk9TRSkgdmVzdGF0OworfSk7CisKKyMgUG9s bCB0aGUgc3RhdHMgdmlldyB1bnRpbCB0aGUgZXhwZWN0ZWQgZGVsdGFzIGFwcGVhciBvciB0 aW1lb3V0LgorIyBXZSBkbyBub3QgZXhwZWN0IHJldl9hbGxfKiBjb3VudGVycyB0byBjaGFu Z2UgaGVyZSwgc28gd2UgcGFzcyAtMSBmb3IgdGhlbS4KKyR1cGRhdGVkID0gd2FpdF9mb3Jf dmFjdXVtX3N0YXRzKAorCQkJdGFiX2FsbF9mcm96ZW5fcGFnZXNfY291bnQgPT4gMCwKKwkJ CXRhYl9hbGxfdmlzaWJsZV9wYWdlc19jb3VudCA9PiAwLAorICAgICAgcnVuX3ZhY3V1bSA9 PiAxLAorKTsKKworb2soJHVwZGF0ZWQsCisgICAndmFjdXVtIHN0YXRzIHVwZGF0ZWQgYWZ0 ZXIgdmFjdXVtaW5nIHRoZSB0YWJsZSAodm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIGFk dmFuY2VkKScpCisgIG9yIGRpYWcgIlRpbWVvdXQgd2FpdGluZyBmb3IgcGdfc3RhdF92YWN1 dW1fdGFibGVzIHRvIHVwZGF0ZSBhZnRlciAkdGltZW91dCBzZWNvbmRzIGR1cmluZyB2YWN1 dW0iOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFNuYXBzaG90IGN1cnJlbnQg c3RhdGlzdGljcyBmb3IgbGF0ZXIgY29tcGFyaXNvbgorIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorCitmZXRjaF92YWN1dW1fc3RhdHMoKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIyBWZXJpZnkgaW5pdGlhbCBzdGF0aXN0aWNzIGFmdGVyIHZhY3V1bQorIy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorb2soJHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA+ ICR2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXNfcHJldiwgJ3RhYmxlIHZtX25ld192aXNp YmxlX2Zyb3plbl9wYWdlcyBoYXMgaW5jcmVhc2VkJyk7CitvaygkcmV2X2FsbF9mcm96ZW5f cGFnZXMgPT0gJHJldl9hbGxfZnJvemVuX3BhZ2VzX3ByZXYsICd0YWJsZSByZXZfYWxsX2Zy b3plbl9wYWdlcyBzdGF5IHRoZSBzYW1lJyk7CitvaygkcmV2X2FsbF92aXNpYmxlX3BhZ2Vz ID09ICRyZXZfYWxsX3Zpc2libGVfcGFnZXNfcHJldiwgJ3RhYmxlIHJldl9hbGxfdmlzaWJs ZV9wYWdlcyBzdGF5IHRoZSBzYW1lJyk7Cit9IG9yIHByaW50X3ZhY3V1bV9zdGF0c19vbl9l cnJvcigpOworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgMjogVHJpZ2dl ciBiYWNrZW5kIHVwZGF0ZXMKKyMgQmFja2VuZCBhY3Rpdml0eSBzaG91bGQgcmVzZXQgcGVy LXBhZ2UgdmlzaWJpbGl0eS9mcmVlemUgbWFya3MgYW5kIGluY3JlbWVudCByZXZpc2lvbiBj b3VudGVycworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorc3VidGVzdCAnVGVzdCAyOiBU cmlnZ2VyIGJhY2tlbmQgdXBkYXRlcycgPT4gc3ViCit7CitzYXZlX3ZhY3V1bV9zdGF0cygp OworCiskbm9kZS0+c2FmZV9wc3FsKCRkYm5hbWUsIHF7CisgICAgVVBEQVRFIHZlc3RhdCBT RVQgeCA9IHggKyAxMDAxOworfSk7CisKKyMgUG9sbCB1bnRpbCBzdGF0cyB1cGRhdGUgb3Ig dGltZW91dC4KKyMgV2UgZG8gbm90IGV4cGVjdCB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFn ZXMgb3IgcGFnZXNfYWxsX3Zpc2libGUgdG8gY2hhbmdlIGhlcmUsCisjIHNvIHdlIHBhc3Mg LTEgZm9yIHRob3NlIGNvdW50ZXJzLgorJHVwZGF0ZWQgPSB3YWl0X2Zvcl92YWN1dW1fc3Rh dHMoCisJCQl0YWJfZnJvemVuX2NvbHVtbiA9PiAncmV2X2FsbF9mcm96ZW5fcGFnZXMnLAor CQkJdGFiX3Zpc2libGVfY29sdW1uID0+ICdyZXZfYWxsX3Zpc2libGVfcGFnZXMnLAorCQkJ dGFiX2FsbF9mcm96ZW5fcGFnZXNfY291bnQgPT4gMCwKKwkJCXRhYl9hbGxfdmlzaWJsZV9w YWdlc19jb3VudCA9PiAwLAorICAgICAgcnVuX3ZhY3V1bSA9PiAwLAorKTsKK29rKCR1cGRh dGVkLAorICAgJ3ZhY3V1bSBzdGF0cyB1cGRhdGVkIGFmdGVyIGJhY2tlbmQgdHVwbGUgdXBk YXRlcyAocmV2X2FsbF9mcm96ZW5fcGFnZXMgYW5kIHJldl9hbGxfdmlzaWJsZV9wYWdlcyBh ZHZhbmNlZCknKQorICBvciBkaWFnICJUaW1lb3V0IHdhaXRpbmcgZm9yIHBnX3N0YXRzX3Zh Y3V1bV8qIHVwZGF0ZSBhZnRlciAkdGltZW91dCBzZWNvbmRzIjsKKworIy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIyBTbmFwc2hvdCBjdXJyZW50IHN0YXRpc3RpY3MgZm9yIGxhdGVy IGNvbXBhcmlzb24KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZmV0Y2hfdmFjdXVt X3N0YXRzKCk7CisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2hlY2sgdXBkYXRl ZCBzdGF0aXN0aWNzIGFmdGVyIGJhY2tlbmQgYWN0aXZpdHkKKyMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKworb2soJHZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcyA9PSAkdm1fbmV3 X3Zpc2libGVfZnJvemVuX3BhZ2VzX3ByZXYsICd0YWJsZSB2bV9uZXdfdmlzaWJsZV9mcm96 ZW5fcGFnZXMgc3RheSB0aGUgc2FtZScpOworb2soJHJldl9hbGxfZnJvemVuX3BhZ2VzID4g JHJldl9hbGxfZnJvemVuX3BhZ2VzX3ByZXYsICd0YWJsZSByZXZfYWxsX2Zyb3plbl9wYWdl cyBoYXMgaW5jcmVhc2VkJyk7CitvaygkcmV2X2FsbF92aXNpYmxlX3BhZ2VzID4gJHJldl9h bGxfdmlzaWJsZV9wYWdlc19wcmV2LCAndGFibGUgcmV2X2FsbF92aXNpYmxlX3BhZ2VzIGhh cyBpbmNyZWFzZWQnKTsKK30gb3IgcHJpbnRfdmFjdXVtX3N0YXRzX29uX2Vycm9yKCk7CisK KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCAzOiBGb3JjZSBhbm90aGVyIHZh Y3V1bSBhZnRlciBiYWNrZW5kIG1vZGlmaWNhdGlvbnMgLSB2YWN1dW0gc2hvdWxkIHJlc3Rv cmUgZnJlZXplL3Zpc2liaWxpdHkKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3N1YnRl c3QgJ1Rlc3QgMzogRm9yY2UgYW5vdGhlciB2YWN1dW0gYWZ0ZXIgYmFja2VuZCBtb2RpZmlj YXRpb25zIC0gdmFjdXVtIHNob3VsZCByZXN0b3JlIGZyZWV6ZS92aXNpYmlsaXR5JyA9PiBz dWIKK3sKK3NhdmVfdmFjdXVtX3N0YXRzKCk7CisKKyRub2RlLT5zYWZlX3BzcWwoJGRibmFt ZSwgcXsgVkFDVVVNIHZlc3RhdDsgfSk7CisKKyMgUG9sbCB1bnRpbCBzdGF0cyB1cGRhdGUg b3IgdGltZW91dC4KKyMgV2UgcGFzcyBjdXJyZW50IHNuYXBzaG90IHZhbHVlcyBmb3Igdm1f bmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIGFuZCBleHBlY3QgcmV2IGNvdW50ZXJzIHVuY2hh bmdlZC4KKyR1cGRhdGVkID0gd2FpdF9mb3JfdmFjdXVtX3N0YXRzKAorCQkJdGFiX2Zyb3pl bl9jb2x1bW4gPT4gJ3ZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcycsCisJCQl0YWJfYWxs X2Zyb3plbl9wYWdlc19jb3VudCA9PiAkdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLAor CQkJcnVuX3ZhY3V1bSA9PiAxLAorCQkJc2luZ2xlX2NvbHVtbiA9PiAxLAorKTsKKworb2so JHVwZGF0ZWQsCisgICAndmFjdXVtIHN0YXRzIHVwZGF0ZWQgYWZ0ZXIgdmFjdXVtaW5nIHRo ZSBhbGwtdXBkYXRlZCB0YWJsZSAodm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzIGFkdmFu Y2VkKScpCisgIG9yIGRpYWcgIlRpbWVvdXQgd2FpdGluZyBmb3IgcGdfc3RhdF92YWN1dW1f dGFibGVzIHRvIHVwZGF0ZSBhZnRlciAkdGltZW91dCBzZWNvbmRzIGR1cmluZyB2YWN1dW0i OworCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFNuYXBzaG90IGN1cnJlbnQgc3Rh dGlzdGljcyBmb3IgbGF0ZXIgY29tcGFyaXNvbgorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorCitmZXRjaF92YWN1dW1fc3RhdHMoKTsKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIyBWZXJpZnkgc3RhdGlzdGljcyBhZnRlciBmaW5hbCB2YWN1dW0KKyMgQ2hlY2sgdXBk YXRlZCBzdGF0cyBhZnRlciBiYWNrZW5kIHdvcmsKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KK29rKCR2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPiAkdm1fbmV3X3Zpc2libGVf ZnJvemVuX3BhZ2VzX3ByZXYsICd0YWJsZSB2bV9uZXdfdmlzaWJsZV9mcm96ZW5fcGFnZXMg aGFzIGluY3JlYXNlZCcpOworb2soJHJldl9hbGxfZnJvemVuX3BhZ2VzID09ICRyZXZfYWxs X2Zyb3plbl9wYWdlc19wcmV2LCAndGFibGUgcmV2X2FsbF9mcm96ZW5fcGFnZXMgc3RheSB0 aGUgc2FtZScpOworb2soJHJldl9hbGxfdmlzaWJsZV9wYWdlcyA9PSAkcmV2X2FsbF92aXNp YmxlX3BhZ2VzX3ByZXYsICd0YWJsZSByZXZfYWxsX3Zpc2libGVfcGFnZXMgc3RheSB0aGUg c2FtZScpOworfSBvciBwcmludF92YWN1dW1fc3RhdHNfb25fZXJyb3IoKTsKKyMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2xlYW51cAorIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7CisJRFJPUCBEQVRBQkFTRSBz dGF0aXN0aWNfdmFjdXVtX2RhdGFiYXNlX3JlZ3Jlc3Npb247Cit9KTsKKworJG5vZGUtPnN0 b3A7Citkb25lX3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK aW5kZXggN2QyNmJjMWExZGMuLmQ0ZGM0NDk3MGQyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3J1bGVzLm91dApAQCAtMjMzMiw2ICsyMzMyLDgxIEBAIHBnX3N0YXRfdXNlcl90YWJs ZXN8IFNFTEVDVCByZWxpZCwKICAgICByZXZfYWxsX3Zpc2libGVfcGFnZXMKICAgIEZST00g cGdfc3RhdF9hbGxfdGFibGVzCiAgIFdIRVJFICgoc2NoZW1hbmFtZSA8PiBBTEwgKEFSUkFZ WydwZ19jYXRhbG9nJzo6bmFtZSwgJ2luZm9ybWF0aW9uX3NjaGVtYSc6Om5hbWVdKSkgQU5E IChzY2hlbWFuYW1lICF+ICdecGdfdG9hc3QnOjp0ZXh0KSk7CitwZ19zdGF0X3ZhY3V1bV9k YXRhYmFzZXwgU0VMRUNUIGQub2lkIEFTIGRib2lkLAorICAgIGQuZGF0bmFtZSBBUyBkYm5h bWUsCisgICAgcy5kYl9ibGtzX3JlYWQsCisgICAgcy5kYl9ibGtzX2hpdCwKKyAgICBzLnRv dGFsX2Jsa3NfZGlydGllZCwKKyAgICBzLnRvdGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICBzLndh bF9yZWNvcmRzLAorICAgIHMud2FsX2ZwaSwKKyAgICBzLndhbF9ieXRlcywKKyAgICBzLmJs a19yZWFkX3RpbWUsCisgICAgcy5ibGtfd3JpdGVfdGltZSwKKyAgICBzLmRlbGF5X3RpbWUs CisgICAgcy50b3RhbF90aW1lLAorICAgIHMud3JhcGFyb3VuZF9mYWlsc2FmZSwKKyAgICBz LmVycm9ycworICAgRlJPTSBwZ19kYXRhYmFzZSBkLAorICAgIExBVEVSQUwgcGdfc3RhdF9n ZXRfdmFjdXVtX2RhdGFiYXNlKGQub2lkKSBzKGRib2lkLCBkYl9ibGtzX3JlYWQsIGRiX2Js a3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQsIHRvdGFsX2Jsa3Nfd3JpdHRlbiwgd2FsX3Jl Y29yZHMsIHdhbF9mcGksIHdhbF9ieXRlcywgYmxrX3JlYWRfdGltZSwgYmxrX3dyaXRlX3Rp bWUsIGRlbGF5X3RpbWUsIHRvdGFsX3RpbWUsIHdyYXBhcm91bmRfZmFpbHNhZmUsIGVycm9y cyk7CitwZ19zdGF0X3ZhY3V1bV9pbmRleGVzfCBTRUxFQ1QgYy5vaWQgQVMgcmVsaWQsCisg ICAgaS5vaWQgQVMgaW5kZXhyZWxpZCwKKyAgICBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwK KyAgICBjLnJlbG5hbWUsCisgICAgaS5yZWxuYW1lIEFTIGluZGV4cmVsbmFtZSwKKyAgICBz LnRvdGFsX2Jsa3NfcmVhZCwKKyAgICBzLnRvdGFsX2Jsa3NfaGl0LAorICAgIHMudG90YWxf Ymxrc19kaXJ0aWVkLAorICAgIHMudG90YWxfYmxrc193cml0dGVuLAorICAgIHMucmVsX2Js a3NfcmVhZCwKKyAgICBzLnJlbF9ibGtzX2hpdCwKKyAgICBzLnBhZ2VzX2RlbGV0ZWQsCisg ICAgcy50dXBsZXNfZGVsZXRlZCwKKyAgICBzLndhbF9yZWNvcmRzLAorICAgIHMud2FsX2Zw aSwKKyAgICBzLndhbF9ieXRlcywKKyAgICBzLmJsa19yZWFkX3RpbWUsCisgICAgcy5ibGtf d3JpdGVfdGltZSwKKyAgICBzLmRlbGF5X3RpbWUsCisgICAgcy50b3RhbF90aW1lCisgICBG Uk9NICgoKHBnX2NsYXNzIGMKKyAgICAgSk9JTiBwZ19pbmRleCB4IE9OICgoYy5vaWQgPSB4 LmluZHJlbGlkKSkpCisgICAgIEpPSU4gcGdfY2xhc3MgaSBPTiAoKGkub2lkID0geC5pbmRl eHJlbGlkKSkpCisgICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiAoKG4ub2lkID0g Yy5yZWxuYW1lc3BhY2UpKSksCisgICAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1faW5k ZXhlcyhpLm9pZCkgcyhyZWxpZCwgdG90YWxfYmxrc19yZWFkLCB0b3RhbF9ibGtzX2hpdCwg dG90YWxfYmxrc19kaXJ0aWVkLCB0b3RhbF9ibGtzX3dyaXR0ZW4sIHJlbF9ibGtzX3JlYWQs IHJlbF9ibGtzX2hpdCwgcGFnZXNfZGVsZXRlZCwgdHVwbGVzX2RlbGV0ZWQsIHdhbF9yZWNv cmRzLCB3YWxfZnBpLCB3YWxfYnl0ZXMsIGJsa19yZWFkX3RpbWUsIGJsa193cml0ZV90aW1l LCBkZWxheV90aW1lLCB0b3RhbF90aW1lKQorICBXSEVSRSAoYy5yZWxraW5kID0gQU5ZIChB UlJBWVsncic6OiJjaGFyIiwgJ3QnOjoiY2hhciIsICdtJzo6ImNoYXIiXSkpOworcGdfc3Rh dF92YWN1dW1fdGFibGVzfCBTRUxFQ1Qgbi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCisgICAg Yy5yZWxuYW1lLAorICAgIHMucmVsaWQsCisgICAgcy50b3RhbF9ibGtzX3JlYWQsCisgICAg cy50b3RhbF9ibGtzX2hpdCwKKyAgICBzLnRvdGFsX2Jsa3NfZGlydGllZCwKKyAgICBzLnRv dGFsX2Jsa3Nfd3JpdHRlbiwKKyAgICBzLnJlbF9ibGtzX3JlYWQsCisgICAgcy5yZWxfYmxr c19oaXQsCisgICAgcy5wYWdlc19zY2FubmVkLAorICAgIHMucGFnZXNfcmVtb3ZlZCwKKyAg ICBzLnZtX25ld19mcm96ZW5fcGFnZXMsCisgICAgcy52bV9uZXdfdmlzaWJsZV9wYWdlcywK KyAgICBzLnZtX25ld192aXNpYmxlX2Zyb3plbl9wYWdlcywKKyAgICBzLm1pc3NlZF9kZWFk X3BhZ2VzLAorICAgIHMudHVwbGVzX2RlbGV0ZWQsCisgICAgcy50dXBsZXNfZnJvemVuLAor ICAgIHMucmVjZW50bHlfZGVhZF90dXBsZXMsCisgICAgcy5taXNzZWRfZGVhZF90dXBsZXMs CisgICAgcy53cmFwYXJvdW5kX2ZhaWxzYWZlLAorICAgIHMuaW5kZXhfdmFjdXVtX2NvdW50 LAorICAgIHMud2FsX3JlY29yZHMsCisgICAgcy53YWxfZnBpLAorICAgIHMud2FsX2J5dGVz LAorICAgIHMuYmxrX3JlYWRfdGltZSwKKyAgICBzLmJsa193cml0ZV90aW1lLAorICAgIHMu ZGVsYXlfdGltZSwKKyAgICBzLnRvdGFsX3RpbWUKKyAgIEZST00gKHBnX2NsYXNzIGMKKyAg ICAgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiAoKG4ub2lkID0gYy5yZWxuYW1lc3BhY2UpKSks CisgICAgTEFURVJBTCBwZ19zdGF0X2dldF92YWN1dW1fdGFibGVzKGMub2lkKSBzKHJlbGlk LCB0b3RhbF9ibGtzX3JlYWQsIHRvdGFsX2Jsa3NfaGl0LCB0b3RhbF9ibGtzX2RpcnRpZWQs IHRvdGFsX2Jsa3Nfd3JpdHRlbiwgcmVsX2Jsa3NfcmVhZCwgcmVsX2Jsa3NfaGl0LCBwYWdl c19zY2FubmVkLCBwYWdlc19yZW1vdmVkLCB2bV9uZXdfZnJvemVuX3BhZ2VzLCB2bV9uZXdf dmlzaWJsZV9wYWdlcywgdm1fbmV3X3Zpc2libGVfZnJvemVuX3BhZ2VzLCBtaXNzZWRfZGVh ZF9wYWdlcywgdHVwbGVzX2RlbGV0ZWQsIHR1cGxlc19mcm96ZW4sIHJlY2VudGx5X2RlYWRf dHVwbGVzLCBtaXNzZWRfZGVhZF90dXBsZXMsIHdyYXBhcm91bmRfZmFpbHNhZmUsIGluZGV4 X3ZhY3V1bV9jb3VudCwgd2FsX3JlY29yZHMsIHdhbF9mcGksIHdhbF9ieXRlcywgYmxrX3Jl YWRfdGltZSwgYmxrX3dyaXRlX3RpbWUsIGRlbGF5X3RpbWUsIHRvdGFsX3RpbWUpCisgIFdI RVJFIChjLnJlbGtpbmQgPSBBTlkgKEFSUkFZWydyJzo6ImNoYXIiLCAndCc6OiJjaGFyIiwg J20nOjoiY2hhciJdKSk7CiBwZ19zdGF0X3dhbHwgU0VMRUNUIHdhbF9yZWNvcmRzLAogICAg IHdhbF9mcGksCiAgICAgd2FsX2J5dGVzLAotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --------------mNUKmQkanLuI3z1rBmXnFJqj Content-Type: text/plain; charset=UTF-8; name="v27-0003-Add-documentation-about-the-system-views-that-are-us.patch" Content-Disposition: attachment; filename*0="v27-0003-Add-documentation-about-the-system-views-that-are-u"; filename*1="s.patch" Content-Transfer-Encoding: base64 RnJvbSBkMzhiYTE1MmIyMjcxOTY1YjIyMGEzZTc1YmQzYjBkMTdmNmUxMjM0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8YS5yeWJha2luYUBwb3N0 Z3Jlc3Byby5ydT4KRGF0ZTogVGh1LCAxOSBEZWMgMjAyNCAxMjo1Nzo0OSArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMy8zXSBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgc3lzdGVtIHZp ZXdzIHRoYXQgYXJlIHVzZWQgaW4KIHRoZSBtYWNoaW5lcnkgb2YgdmFjdXVtIHN0YXRpc3Rp Y3MuCgpBdXRob3JzOiBBbGVuYSBSeWJha2luYSA8bGVuYS5yaWJhY2tpbmFAeWFuZGV4LnJ1 PiwKICAgIEFuZHJlaSBMZXBpa2hvdiA8YS5sZXBpa2hvdkBwb3N0Z3Jlc3Byby5ydT4sCiAg ICBBbmRyZWkgWnVia292IDxhLnp1YmtvdkBwb3N0Z3Jlc3Byby5ydT4KUmV2aWV3ZWQtYnk6 IERpbGlwIEt1bWFyIDxkaWxpcGJhbGF1dEBnbWFpbC5jb20+LCBNYXNhaGlrbyBTYXdhZGEg PHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4sCiAgICAgICAgSWxpYSBFdmRva2ltb3YgPGlseWEu ZXZkb2tpbW92QHRhbnRvcmxhYnMuY29tPiwgamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlA Z21haWwuY29tPiwKICAgICAgICBLaXJpbGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwu Y29tPiwgQWxleGFuZGVyIEtvcm90a292IDxhZWtvcm90a292QGdtYWlsLmNvbT4sCiAgICAg ICAgSmltIE5hc2J5IDxqbmFzYnlAdXBncmFkZS5jb20+LCBTYW1pIEltc2VpaCA8c2FtaW1z ZWloQGdtYWlsLmNvbT4sCiAgICAgICAgS2FyaW5hIExpdHNrZXZpY2ggPGxpdHNrZXZpY2hr YXJpbmFAZ21haWwuY29tPgoKLS0tCiBkb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwg fCA3NTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdl ZCwgNzU1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lzdGVt LXZpZXdzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKaW5kZXggOGI0 YWJlZjhjNjguLjkxYjI3ODU5NmZkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3lzdGVt LXZpZXdzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCkBAIC01 NjgzLDQgKzU2ODMsNzU5IEBAIFNFTEVDVCAqIEZST00gcGdfbG9ja3MgcGwgTEVGVCBKT0lO IHBnX3ByZXBhcmVkX3hhY3RzIHBweAogICA8L3RhYmxlPgogIDwvc2VjdDE+CiAKKzxzZWN0 MSBpZD0idmlldy1wZy1zdGF0LXZhY3V1bS1kYXRhYmFzZSI+CisgIDx0aXRsZT48c3RydWN0 bmFtZT5wZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisg IDxpbmRleHRlcm0gem9uZT0idmlldy1wZy1zdGF0LXZhY3V1bS1kYXRhYmFzZSI+CisgICA8 cHJpbWFyeT5wZ19zdGF0X3ZhY3V1bV9kYXRhYmFzZTwvcHJpbWFyeT4KKyAgPC9pbmRleHRl cm0+CisKKyAgPHBhcmE+CisgICBUaGUgdmlldyA8c3RydWN0bmFtZT5wZ19zdGF0X3ZhY3V1 bV9kYXRhYmFzZTwvc3RydWN0bmFtZT4gd2lsbCBjb250YWluCisgICBvbmUgcm93IGZvciBl YWNoIGRhdGFiYXNlIGluIHRoZSBjdXJyZW50IGNsdXN0ZXIsIHNob3dpbmcgc3RhdGlzdGlj cyBhYm91dAorICAgdmFjdXVtaW5nIHRoYXQgZGF0YWJhc2UuCisgIDwvcGFyYT4KKworICA8 dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3RhdF92YWN1dW1fZGF0YWJhc2U8 L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAg ICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVt biBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlv bgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisK KyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5kYmlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT0lEIG9mIGEgZGF0YWJhc2UKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19yZWFkPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgICBOdW1iZXIgb2YgZGF0YWJhc2UgYmxvY2tzIHJlYWQgYnkgdmFjdXVtIG9wZXJh dGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgZGF0YWJhc2UKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19oaXQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg IE51bWJlciBvZiB0aW1lcyBkYXRhYmFzZSBibG9ja3Mgd2VyZSBmb3VuZCBpbiB0aGUKKyAg ICAgICAgYnVmZmVyIGNhY2hlIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZv cm1lZCBvbiB0aGlzIGRhdGFiYXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnRvdGFsX2Jsa3NfZGlydGllZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRhdGFi YXNlIGJsb2NrcyBkaXJ0aWVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZv cm1lZCBvbiB0aGlzIGRhdGFiYXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnRvdGFsX2Jsa3Nfd3JpdHRlbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRhdGFi YXNlIGJsb2NrcyB3cml0dGVuIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZv cm1lZCBvbiB0aGlzIGRhdGFiYXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPndhbF9yZWNvcmRzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIHJl Y29yZHMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1l ZCBvbiB0aGlzIGRhdGFiYXNlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PndhbF9mcGk8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgZnVsbCBwYWdl IGltYWdlcyBnZW5lcmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9y bWVkIG9uIHRoaXMgZGF0YWJhc2UKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+d2FsX2J5dGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bnVtZXJpYzwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBhbW91bnQgb2YgV0FMIGJ5 dGVzIGdlbmVyYXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQg b24gdGhpcyBkYXRhYmFzZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5i bGtfcmVhZF90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUgc3BlbnQgcmVhZGluZyBkYXRh YmFzZSBibG9ja3MgYnkgdmFjdXVtIG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9uCisgICAgICAg IHRoaXMgZGF0YWJhc2UsIGluIG1pbGxpc2Vjb25kcyAoaWYgPHhyZWYgbGlua2VuZD0iZ3Vj LXRyYWNrLWlvLXRpbWluZyIvPiBpcyBlbmFibGVkLAorICAgICAgICBvdGhlcndpc2UgemVy bykKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YmxrX3dyaXRlX3RpbWU8 L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCB3cml0aW5nIGRhdGFiYXNlIGJsb2NrcyBi eSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBkYXRhYmFz ZSwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGlt aW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5kZWxheV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg IFRpbWUgc3BlbnQgc2xlZXBpbmcgaW4gYSB2YWN1dW0gZGVsYXkgcG9pbnQgYnkgdmFjdXVt IG9wZXJhdGlvbnMgcGVyZm9ybWVkIG9uCisgICAgICAgIHRoaXMgZGF0YWJhc2UsIGluIG1p bGxpc2Vjb25kcyAoc2VlIDx4cmVmIGxpbmtlbmQ9InJ1bnRpbWUtY29uZmlnLXJlc291cmNl LXZhY3V1bS1jb3N0Ii8+CisgICAgICAgIGZvciBkZXRhaWxzKQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5zeXN0ZW1fdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZs b2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBTeXN0 ZW0gQ1BVIHRpbWUgb2YgdmFjdXVtaW5nIHRoaXMgZGF0YWJhc2UsIGluIG1pbGxpc2Vjb25k cworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD51c2VyX3RpbWU8L3N0cnVj dGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgVXNlciBDUFUgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBkYXRhYmFzZSwg aW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRv dGFsX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgdGltZSBvZiB2YWN1dW1pbmcgdGhp cyBkYXRhYmFzZSwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPndyYXBhcm91bmRfZmFpbHNhZmVfY291bnQ8L3N0cnVjdGZpZWxkPiA8dHlw ZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51 bWJlciBvZiB0aW1lcyB0aGUgdmFjdXVtIHdhcyBydW4gdG8gcHJldmVudCBhIHdyYXBhcm91 bmQgcHJvYmxlbS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZXJyb3Jz PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgdmFjdXVtIG9wZXJhdGlvbnMgcGVy Zm9ybWVkIG9uIHRoaXMgZGF0YWJhc2UKKyAgICAgICAgd2VyZSBpbnRlcnJ1cHRlZCBvbiBh bnkgZXJyb3JzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90 Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKyAgPHNlY3Qx IGlkPSJ2aWV3LXBnLXN0YXQtdmFjdXVtLWluZGV4ZXMiPgorICA8dGl0bGU+PHN0cnVjdG5h bWU+cGdfc3RhdF92YWN1dW1faW5kZXhlczwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxp bmRleHRlcm0gem9uZT0idmlldy1wZy1zdGF0LXZhY3V1bS1pbmRleGVzIj4KKyAgIDxwcmlt YXJ5PnBnX3N0YXRfdmFjdXVtX2luZGV4ZXM8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgor CisgIDxwYXJhPgorICAgVGhlIHZpZXcgPHN0cnVjdG5hbWU+cGdfc3RhdF92YWN1dW1faW5k ZXhlczwvc3RydWN0bmFtZT4gd2lsbCBjb250YWluCisgICBvbmUgcm93IGZvciBlYWNoIGlu ZGV4IGluIHRoZSBjdXJyZW50IGRhdGFiYXNlIChpbmNsdWRpbmcgVE9BU1QKKyAgIHRhYmxl IGluZGV4ZXMpLCBzaG93aW5nIHN0YXRpc3RpY3MgYWJvdXQgdmFjdXVtaW5nIHRoYXQgc3Bl Y2lmaWMgaW5kZXguCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVj dG5hbWU+cGdfc3RhdF92YWN1dW1faW5kZXhlczwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0 bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJlbGlkPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgT0lEIG9mIGFuIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnNjaGVtYTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTmFtZSBvZiB0aGUgc2NoZW1hIHRoaXMgaW5k ZXggaXMgaW4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsbmFtZTwv c3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dG90YWxfYmxrc19yZWFkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50 ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIg b2YgZGF0YWJhc2UgYmxvY2tzIHJlYWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAg cGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+dG90YWxfYmxrc19oaXQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aW1lcyBk YXRhYmFzZSBibG9ja3Mgd2VyZSBmb3VuZCBpbiB0aGUKKyAgICAgICAgYnVmZmVyIGNhY2hl IGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4 CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3NfZGlydGll ZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyBkaXJ0aWVkIGJ5 IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4Cisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3Nfd3JpdHRlbjwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyB3cml0dGVuIGJ5IHZh Y3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIGluZGV4CisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJlbF9ibGtzX3JlYWQ8L3N0cnVjdGZp ZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgIE51bWJlciBvZiBibG9ja3MgdmFjdXVtIG9wZXJhdGlvbnMgcmVhZCBmcm9tIHRo aXMKKyAgICAgICAgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ cmVsX2Jsa3NfaGl0PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgYmxvY2tzIG9m IHRoaXMgaW5kZXggd2VyZSBhbHJlYWR5IGZvdW5kCisgICAgICAgIGluIHRoZSBidWZmZXIg Y2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMsIHNvIHRoYXQgYSByZWFkIHdhcyBub3QgbmVj ZXNzYXJ5CisgICAgICAgICh0aGlzIG9ubHkgaW5jbHVkZXMgaGl0cyBpbiB0aGUKKyAgICAg ICAgcHJvamVjdDsgYnVmZmVyIGNhY2hlLCBub3QgdGhlIG9wZXJhdGluZyBzeXN0ZW0ncyBm aWxlIHN5c3RlbSBjYWNoZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ cGFnZXNfZGVsZXRlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBhZ2VzIGRlbGV0ZWQg YnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgaW5kZXgK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dHVwbGVzX2RlbGV0ZWQ8L3N0 cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgIE51bWJlciBvZiBkZWFkIHR1cGxlcyB2YWN1dW0gb3BlcmF0aW9ucyBk ZWxldGVkIGZyb20gdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD53YWxfcmVjb3Jkczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgbnVtYmVyIG9mIFdBTCBy ZWNvcmRzIGdlbmVyYXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3Jt ZWQgb24gdGhpcyBpbmRleAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD53 YWxfZnBpPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIGZ1bGwgcGFnZSBp bWFnZXMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1l ZCBvbiB0aGlzIGluZGV4CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndh bF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPm51bWVyaWM8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVG90YWwgYW1vdW50IG9mIFdBTCBieXRlcyBn ZW5lcmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRo aXMgaW5kZXgKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YmxrX3JlYWRf dGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCByZWFkaW5nIGRhdGFiYXNlIGJsb2Nr cyBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBpbmRl eCwgaW4gbWlsbGlzZWNvbmRzIChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGlt aW5nIi8+IGlzIGVuYWJsZWQsCisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfd3JpdGVfdGltZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICAgVGltZSBzcGVudCB3cml0aW5nIGRhdGFiYXNlIGJsb2NrcyBieSB2YWN1dW0gb3BlcmF0 aW9ucyBwZXJmb3JtZWQgb24KKyAgICAgICAgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRz IChpZiA8eHJlZiBsaW5rZW5kPSJndWMtdHJhY2staW8tdGltaW5nIi8+IGlzIGVuYWJsZWQs CisgICAgICAgIG90aGVyd2lzZSB6ZXJvKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5kZWxheV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIFRpbWUgc3BlbnQgc2xlZXBp bmcgaW4gYSB2YWN1dW0gZGVsYXkgcG9pbnQgYnkgdmFjdXVtIG9wZXJhdGlvbnMgcGVyZm9y bWVkIG9uCisgICAgICAgIHRoaXMgaW5kZXgsIGluIG1pbGxpc2Vjb25kcyAoc2VlIDx4cmVm IGxpbmtlbmQ9InJ1bnRpbWUtY29uZmlnLXJlc291cmNlLXZhY3V1bS1jb3N0Ii8+CisgICAg ICAgIGZvciBkZXRhaWxzKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5z eXN0ZW1fdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBTeXN0ZW0gQ1BVIHRpbWUgb2YgdmFjdXVt aW5nIHRoaXMgaW5kZXgsIGluIG1pbGxpc2Vjb25kcworICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD51c2VyX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVXNlciBDUFUgdGlt ZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5mbG9hdDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAg VG90YWwgdGltZSBvZiB2YWN1dW1pbmcgdGhpcyBpbmRleCwgaW4gbWlsbGlzZWNvbmRzCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICA8L3Rib2R5PgorICAg PC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0idmlldy1w Zy1zdGF0LXZhY3V1bS10YWJsZXMiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3RhdF92 YWN1dW1fdGFibGVzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25l PSJ2aWV3LXBnLXN0YXQtdmFjdXVtLXRhYmxlcyI+CisgICA8cHJpbWFyeT5wZ19zdGF0X3Zh Y3V1bV90YWJsZXM8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAg VGhlIHZpZXcgPHN0cnVjdG5hbWU+cGdfc3RhdF92YWN1dW1fdGFibGVzPC9zdHJ1Y3RuYW1l PiB3aWxsIGNvbnRhaW4KKyAgIG9uZSByb3cgZm9yIGVhY2ggdGFibGUgaW4gdGhlIGN1cnJl bnQgZGF0YWJhc2UgKGluY2x1ZGluZyBUT0FTVAorICAgdGFibGVzKSwgc2hvd2luZyBzdGF0 aXN0aWNzIGFib3V0IHZhY3V1bWluZyB0aGF0IHNwZWNpZmljIHRhYmxlLgorICA8L3BhcmE+ CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0YXRfdmFjdXVtX3Rh Ymxlczwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEi PgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg Q29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2Ny aXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVh ZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnJlbGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT0lEIG9mIGEgdGFibGUKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+c2NoZW1hPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg ICBOYW1lIG9mIHRoZSBzY2hlbWEgdGhpcyB0YWJsZSBpcyBpbgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0i Y2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD5yZWxuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhp cyB0YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtz X3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiBkYXRhYmFzZSBibG9ja3MgcmVhZCBi eSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0YWJsZQor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD50b3RhbF9ibGtzX2hpdDwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVzIGRhdGFiYXNlIGJsb2NrcyB3ZXJlIGZvdW5k IGluIHRoZQorICAgICAgICBidWZmZXIgY2FjaGUgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAg ICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+dG90YWxfYmxrc19kaXJ0aWVkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50 ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBOdW1iZXIg b2YgYmxvY2tzIHdyaXR0ZW4gZGlyZWN0bHkgYnkgdmFjdXVtIG9yIGF1dG8gdmFjdXVtLgor ICAgICAgICBCbG9ja3MgdGhhdCBhcmUgZGlydGllZCBieSBhIHZhY3V1bSBwcm9jZXNzIGNh biBiZSB3cml0dGVuIG91dCBieSBhbm90aGVyIHByb2Nlc3MuCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPnRvdGFsX2Jsa3Nfd3JpdHRlbjwvc3RydWN0ZmllbGQ+IDx0 eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAg TnVtYmVyIG9mIGRhdGFiYXNlIGJsb2NrcyB3cml0dGVuIGJ5IHZhY3V1bSBvcGVyYXRpb25z CisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnJlbF9ibGtzX3JlYWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4 PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBv ZiBibG9ja3MgdmFjdXVtIG9wZXJhdGlvbnMgcmVhZCBmcm9tIHRoaXMKKyAgICAgICAgdGFi bGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cmVsX2Jsa3NfaGl0PC9z dHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgYmxvY2tzIG9mIHRoaXMgdGFibGUgd2Vy ZSBhbHJlYWR5IGZvdW5kCisgICAgICAgIGluIHRoZSBidWZmZXIgY2FjaGUgYnkgdmFjdXVt IG9wZXJhdGlvbnMsIHNvIHRoYXQgYSByZWFkIHdhcyBub3QgbmVjZXNzYXJ5CisgICAgICAg ICh0aGlzIG9ubHkgaW5jbHVkZXMgaGl0cyBpbiB0aGUKKyAgICAgICAgcHJvamVjdDsgYnVm ZmVyIGNhY2hlLCBub3QgdGhlIG9wZXJhdGluZyBzeXN0ZW0ncyBmaWxlIHN5c3RlbSBjYWNo ZSkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGFnZXNfc2Nhbm5lZDwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBhZ2VzIGV4YW1pbmVkIGJ5IHZhY3V1bSBvcGVy YXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBvbiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnBhZ2VzX3JlbW92ZWQ8L3N0cnVjdGZpZWxkPiA8dHlw ZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51 bWJlciBvZiBwYWdlcyByZW1vdmVkIGZyb20gdGhlIHBoeXNpY2FsIHN0b3JhZ2UgYnkgdmFj dXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9uIHRoaXMgdGFibGUKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dm1fbmV3X2Zyb3plbl9wYWdlczwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICAgTnVtYmVyIG9mIHRoZSBudW1iZXIgb2YgcGFnZXMgbmV3bHkgc2V0IGFs bC1mcm96ZW4gYnkgdmFjdXVtCisgICAgICAgIGluIHRoZSB2aXNpYmlsaXR5IG1hcC4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dm1fbmV3X3Zpc2libGVfcGFnZXM8 L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aGUgbnVtYmVyIG9mIHBhZ2VzIG5ld2x5IHNl dCBhbGwtdmlzaWJsZSBieSB2YWN1dW0KKyAgICAgICAgaW4gdGhlIHZpc2liaWxpdHkgbWFw LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52bV9uZXdfdmlzaWJsZV9m cm96ZW5fcGFnZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgIE51bWJlciBvZiB0aGUgbnVtYmVyIG9mIHBh Z2VzIG5ld2x5IHNldCBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbgorICAgICAgICBieSB2 YWN1dW0gaW4gdGhlIHZpc2liaWxpdHkgbWFwLgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD50dXBsZXNfZGVsZXRlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIGRl YWQgdHVwbGVzIHZhY3V1bSBvcGVyYXRpb25zIGRlbGV0ZWQgZnJvbSB0aGlzIHRhYmxlCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnR1cGxlc19mcm96ZW48L3N0cnVj dGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgIE51bWJlciBvZiB0dXBsZXMgb2YgdGhpcyB0YWJsZSB0aGF0IHZhY3V1bSBv cGVyYXRpb25zIG1hcmtlZCBhcworICAgICAgICBmcm96ZW4KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+cmVjZW50bHlfZGVhZF90dXBsZXM8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg IE51bWJlciBvZiBkZWFkIHR1cGxlcyB2YWN1dW0gb3BlcmF0aW9ucyBsZWZ0IGluIHRoaXMg dGFibGUgZHVlCisgICAgICAgIHRvIHRoZWlyIHZpc2liaWxpdHkgaW4gdHJhbnNhY3Rpb25z CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+bWlzc2VkX2RlYWRfdHVwbGVz PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgZnVsbHkgREVBRCAobm90IGp1c3QgUkVDRU5U TFlfREVBRCkgdHVwbGVzICB0aGF0IGNvdWxkIG5vdCBiZQorICAgICAgICBwcnVuZWQgZHVl IHRvIGZhaWx1cmUgdG8gYWNxdWlyZSBhIGNsZWFudXAgbG9jayBvbiBhIGhlYXAgcGFnZS4K KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+aW5kZXhfdmFjdXVtX2NvdW50 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBOdW1iZXIgb2YgdGltZXMgaW5kZXhlcyBvbiB0aGlzIHRhYmxl IHdlcmUgdmFjdXVtZWQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d3Jh cGFyb3VuZF9mYWlsc2FmZV9jb3VudDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHRpbWVz IHRoZSB2YWN1dW0gd2FzIHJ1biB0byBwcmV2ZW50IGEgd3JhcGFyb3VuZCBwcm9ibGVtLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5taXNzZWRfZGVhZF9wYWdlczwv c3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICAgTnVtYmVyIG9mIHBhZ2VzIHRoYXQgaGFkIGF0IGxlYXN0IG9uZSBt aXNzZWRfZGVhZF90dXBsZXMuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PndhbF9yZWNvcmRzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBudW1iZXIgb2YgV0FMIHJlY29y ZHMgZ2VuZXJhdGVkIGJ5IHZhY3V1bSBvcGVyYXRpb25zCisgICAgICAgIHBlcmZvcm1lZCBv biB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndhbF9m cGk8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgIFRvdGFsIG51bWJlciBvZiBXQUwgZnVsbCBwYWdlIGltYWdl cyBnZW5lcmF0ZWQgYnkgdmFjdXVtIG9wZXJhdGlvbnMKKyAgICAgICAgcGVyZm9ybWVkIG9u IHRoaXMgdGFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d2FsX2J5 dGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bnVtZXJpYzwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgICBUb3RhbCBhbW91bnQgb2YgV0FMIGJ5dGVzIGdlbmVy YXRlZCBieSB2YWN1dW0gb3BlcmF0aW9ucworICAgICAgICBwZXJmb3JtZWQgb24gdGhpcyB0 YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ibGtfcmVhZF90aW1l PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgICBUaW1lIHNwZW50IHJlYWRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5 IHZhY3V1bSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIHRhYmxlLCBp biBtaWxsaXNlY29uZHMgKGlmIDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmci Lz4gaXMgZW5hYmxlZCwKKyAgICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmJsa193cml0ZV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBU aW1lIHNwZW50IHdyaXRpbmcgZGF0YWJhc2UgYmxvY2tzIGJ5IHZhY3V1bSBvcGVyYXRpb25z IHBlcmZvcm1lZCBvbgorICAgICAgICB0aGlzIHRhYmxlLCBpbiBtaWxsaXNlY29uZHMgKGlm IDx4cmVmIGxpbmtlbmQ9Imd1Yy10cmFjay1pby10aW1pbmciLz4gaXMgZW5hYmxlZCwKKyAg ICAgICAgb3RoZXJ3aXNlIHplcm8pCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPmRlbGF5X3RpbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5mbG9hdDg8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICAgVGltZSBzcGVudCBzbGVlcGluZyBp biBhIHZhY3V1bSBkZWxheSBwb2ludCBieSB2YWN1dW0gb3BlcmF0aW9ucyBwZXJmb3JtZWQg b24KKyAgICAgICAgdGhpcyB0YWJsZSwgaW4gbWlsbGlzZWNvbmRzIChzZWUgPHhyZWYgbGlu a2VuZD0icnVudGltZS1jb25maWctcmVzb3VyY2UtdmFjdXVtLWNvc3QiLz4KKyAgICAgICAg Zm9yIGRldGFpbHMpCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnN5c3Rl bV90aW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZmxvYXQ4PC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgIFN5c3RlbSBDUFUgdGltZSBvZiB2YWN1dW1pbmcg dGhpcyB0YWJsZSwgaW4gbWlsbGlzZWNvbmRzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPnVzZXJfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZsb2F0ODwvdHlwZT4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBVc2VyIENQVSB0aW1lIG9m IHZhY3V1bWluZyB0aGlzIHRhYmxlLCBpbiBtaWxsaXNlY29uZHMKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dG90YWxfdGltZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmZs b2F0ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgICBUb3Rh bCB0aW1lIG9mIHZhY3V1bWluZyB0aGlzIHRhYmxlLCBpbiBtaWxsaXNlY29uZHMKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwvdGJvZHk+CisgICA8L3Rn cm91cD4KKyAgPC90YWJsZT4KKyAgPHBhcmE+Q29sdW1ucyA8c3RydWN0ZmllbGQ+dG90YWxf Kjwvc3RydWN0ZmllbGQ+LCA8c3RydWN0ZmllbGQ+d2FsXyo8L3N0cnVjdGZpZWxkPgorICAg IGFuZCA8c3RydWN0ZmllbGQ+YmxrXyo8L3N0cnVjdGZpZWxkPiBpbmNsdWRlIGRhdGEgb24g dmFjdXVtaW5nIGluZGV4ZXMgb24gdGhpcyB0YWJsZSwgd2hpbGUgY29sdW1ucworICAgIDxz dHJ1Y3RmaWVsZD5zeXN0ZW1fdGltZTwvc3RydWN0ZmllbGQ+IGFuZCA8c3RydWN0ZmllbGQ+ dXNlcl90aW1lPC9zdHJ1Y3RmaWVsZD4gb25seSBpbmNsdWRlIGRhdGEKKyAgICBvbiB2YWN1 dW1pbmcgdGhlIGhlYXAuPC9wYXJhPgorIDwvc2VjdDE+CiA8L2NoYXB0ZXI+Ci0tIAoyLjM5 LjUgKEFwcGxlIEdpdC0xNTQpCgo= --------------mNUKmQkanLuI3z1rBmXnFJqj--