Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nX9Ul-0005rA-To for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Mar 2022 22:30:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nX9Uk-0006XW-FK for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Mar 2022 22:30:22 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nX9Uj-0006XN-Il for pgsql-hackers@lists.postgresql.org; Wed, 23 Mar 2022 22:30:22 +0000 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nX9UY-00075I-F9 for pgsql-hackers@lists.postgresql.org; Wed, 23 Mar 2022 22:30:20 +0000 Received: by mail-ed1-x531.google.com with SMTP id b24so3533133edu.10 for ; Wed, 23 Mar 2022 15:30:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to; bh=SyXoxs9AsmkfgA9/kBvb0P+iiN1/iFOlLQX8NQollAw=; b=WAKv1Puy/y6vzHPiGPr11QXQSK76j5zvw67ru12uZEN0QbX8VELwDxSTCBFzspRjWQ EeJg4eqCm5qk8o91Py6ZuZw2qyNFbYzaj3AmJVlyQnZPKxJ43Bk4GjHFn6n0a0GqqB+3 ZWut+DSFyN0Ew2rkmMGolYAynATQylqGfy/Nbh6TbzAIhVXXSGAkQ0A1qPNyjq2yJk2a ZUBLu7Y8zZmnCWKV82IjCNLY3VpIDoBTjdhx8iwAqqriaeItS3FLvBC7w7hViqhJp3eU 2GgM1ixgdgkKf7/63cygln0yMfjGrVcTdrkWQ7AgLvMbNQUTeX3k/dEG3VE577qxMkuI Yc0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to; bh=SyXoxs9AsmkfgA9/kBvb0P+iiN1/iFOlLQX8NQollAw=; b=aZbopht5xBZCwqi0T7Xo4eLITiOqg6JRj6BZbCqRrMiYVGAAn9spum8T+ybRW3AXr9 VIpglTHWxR5dzcEUO2UPFu1WTxADYUzueGOLHBOrF3Bbqlb6q88VGNZToO7FJr1pAuSX 9ODyZcpPqCnkD0oISiNGcy8hAHl8supaNr3tmXGuhdZ0FvY5XHfOa4mnA6AlKLXSdqyQ H567Qgxt9JvZtnQi5kukP19gFs/X6saxJItcYKEHFLQMy3uLqhYcR20m0Nj6bBGxXq2G clhet++0M4jDfT+nw6SoB8z2srSTNP/ifyOAGvuaI7XHkR7arHJuAPkaUKHcn1maOdse h+gQ== X-Gm-Message-State: AOAM533rN1lDuxcLB0c1+KCZH7Ef8Mk4i+tVwIXeQZjBL2kL/k2hAvDK AEeaqNcs/mWtG+JCvyjWHHVAQPQl+8PCM+pf08HYVJKrgAtgbl7rMLrWln8fr7HZ5A9DpEngPmn eoVpPW0KS3SWuUf+m8IbF4XEpOdIkmFyLWCLwj1EJD8CiX9t18aVLyL0qNpSB+geewWxzUOC4w4 E3YYYstT5pZ2IW+SzRo0/OSuLN1rgv0vAVw1oXER7zBKDiLLkdJLnAjJmJ5qVu X-Google-Smtp-Source: ABdhPJzN67uXssjh5laPic4uytEFfCURe1GQGp7uBwi7HGARCLKek3+GfHSVBSJtQ86PUwf7WbNraA== X-Received: by 2002:aa7:d7c1:0:b0:419:2f7e:178d with SMTP id e1-20020aa7d7c1000000b004192f7e178dmr3088230eds.136.1648074609149; Wed, 23 Mar 2022 15:30:09 -0700 (PDT) Received: from [10.137.0.17] (ip-86-49-251-241.net.upcbroadband.cz. [86.49.251.241]) by smtp.gmail.com with ESMTPSA id l2-20020a1709060cc200b006d3d91e88c7sm405019ejh.214.2022.03.23.15.30.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 23 Mar 2022 15:30:08 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------3alo4sAQFY1kmPB0isUQaeTG" Message-ID: Date: Wed, 23 Mar 2022 23:30:06 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: logical decoding and replication of sequences Content-Language: en-US To: Petr Jelinek , Amit Kapila Cc: Peter Eisentraut , PostgreSQL Hackers References: <9211312a-6501-1caf-ee7b-c0d4814b6091@enterprisedb.com> <41ada110-bc7c-32a3-08bd-fb5023dd74ba@enterprisedb.com> <2eed0f76-3a1a-8b8b-ac1b-e0f9a0d98287@enterprisedb.com> <9defb937-20a9-1d9f-6972-f1c4b4da4f73@enterprisedb.com> <8e766e0f-ed3e-fd68-4b0f-10dd2db60c88@enterprisedb.com> <6b21233e-c880-e4ad-5df2-7832f769296c@enterprisedb.com> <9da788c7-01eb-f11d-aa08-c5f61fe9f33a@enterprisedb.com> <456A528F-8F19-41C7-9857-927024D32396@enterprisedb.com> From: Tomas Vondra In-Reply-To: X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 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. --------------3alo4sAQFY1kmPB0isUQaeTG Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 3/23/22 13:46, Petr Jelinek wrote: > >> On 23. 3. 2022, at 12:50, Amit Kapila > > wrote: >> >> On Tue, Mar 22, 2022 at 5:41 PM Petr Jelinek >> > >> wrote: >>> >>>> On 22. 3. 2022, at 13:09, Amit Kapila >>> > wrote: >>>> >>>> On Mon, Mar 21, 2022 at 4:25 AM Tomas Vondra >>>> >>> > wrote: >>>>> >>>>> Hi, >>>>> >>>>> Attached is a rebased patch, addressing most of the remaining issues. >>>>> >>>> >>>> It appears that on the apply side, the patch always creates a new >>>> relfilenode irrespective of whether the sequence message is >>>> transactional or not. Is it required to create a new relfilenode for >>>> non-transactional messages? If not that could be costly? >>>> >>> >>> >>> That's a good catch, I think we should just write the page in the >>> non-transactional case, no need to mess with relnodes. >>> >> >> What if the current node has also incremented from the existing >> sequence? Basically, how will we deal with conflicts? It seems we will >> overwrite the actions done on the existing node which means sequence >> values can go back. >> > > > I think this is perfectly acceptable behavior, we are replicating state > from upstream, not reconciling state on downstream. > > You can't really use the builtin sequences to implement distributed > sequence via replication. If user wants to write to both nodes they > should not replicate the sequence value and instead offset the sequence > on each node so they produce different ranges, that's quite common > approach. One day we might want revisit adding support for custom > sequence AMs. > Exactly. Moreover it's about the same behavior as if you update table data on the subscriber, and then an UPDATE gets replicated and overwrites the local change. Attached is a patch fixing the relfilenode issue - now we only allocate a new relfilenode for the transactional case, and an in-place update similar to a setval() otherwise. And thanks for noticing this. > >> * Currently, the patch uses one sync worker per sequence. It seems to >> be a waste of resources considering apart from one additional process, >> we need origin/slot to sync each sequence. >> > > > This is indeed wasteful but not something that I'd consider blocker for > the patch personally. > Right, and the same argument can be made for tablesync of tiny tables (which a sequence essentially is). I'm sure there are ways to improve this, but that can be done later. regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --------------3alo4sAQFY1kmPB0isUQaeTG Content-Type: text/x-patch; charset=UTF-8; name="0001-Add-support-for-decoding-sequences-to-built-20220323.patch" Content-Disposition: attachment; filename*0="0001-Add-support-for-decoding-sequences-to-built-20220323.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBhNTNmYzZlNGEwYjEzMjU4N2E1NmY0Mzc1MGJmOWY2Y2ZjMDFlZDZjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb21hcyBWb25kcmEgPHRvbWFzLnZvbmRyYUBwb3N0 Z3Jlc3FsLm9yZz4KRGF0ZTogU2F0LCAxOSBNYXIgMjAyMiAyMDoxNTowNiArMDEwMApTdWJq ZWN0OiBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBkZWNvZGluZyBzZXF1ZW5jZXMgdG8gYnVp bHQtaW4gcmVwbGljYXRpb24KCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAg ICAgICAgICAgICAgICAgIHwgICA4MSArKwogZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwg ICAgICAgICAgICAgICAgICAgIHwgIDExOSArKwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9w dWJsaWNhdGlvbi5zZ21sICAgICAgIHwgICAyNCArLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9zdWJzY3JpcHRpb24uc2dtbCAgICAgIHwgICAgMyArLQogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgICA0NSArLQogc3JjL2JhY2tlbmQvY2F0 YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAgICAgIHwgICA0NCArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgIDMyMSArKysrKy0KIHNyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICAgMTAgKwogc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICAgIHwgIDQyNiArKysr Ky0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZS5jICAgICAgICAgICAgICAgfCAg MTU0ICsrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgICAg IHwgIDEwMSArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAg ICAgIHwgICAyNyArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMg ICAgICAgIHwgICAgNCArLQogc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMgICAgICAg ICAgICAgICAgIHwgICAgNCArLQogc3JjL2JhY2tlbmQvbm9kZXMvZXF1YWxmdW5jcy5jICAg ICAgICAgICAgICAgIHwgICAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAg ICAgICAgICAgICAgICAgIHwgICA1MiArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9wcm90by5jICAgICAgIHwgICA1MiArCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3RhYmxlc3luYy5jICAgfCAgMTExICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgIDU2ICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8ICAgNzkgKy0KIHNyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3JlbGNhY2hlLmMgICAgICAgICAgICB8ICAgMjggKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL3N5c2NhY2hlLmMgICAgICAgICAgICB8ICAgIDYgKy0KIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAgNjUgKy0KIHNyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgICA0MCArLQogc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDI4NyArKyst LQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwgICAx MiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwg ICAgNSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAgICAgICAg fCAgIDI2ICstCiAuLi4vY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuaCAgICAg ICAgfCAgIDEwICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXF1ZW5jZS5oICAgICAgICAg ICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAg ICAgICAgICB8ICAgIDggKy0KIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWxwcm90 by5oICAgICAgICB8ICAgMTkgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vcGdvdXRwdXQu aCAgICAgICAgICAgIHwgICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVj dF9hZGRyZXNzLm91dCAgfCAgIDEwICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dCAgICAgfCAxMDA5ICsrKysrKysrKysrKysrLS0tCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgICA4ICsKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbCAgICAgICB8ICAgIDUgKy0KIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgICAgICB8ICAyMjYgKysrLQog c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3NlcXVlbmNlcy5wbCAgICAgIHwgIDIwMiAr KysrCiA0MCBmaWxlcyBjaGFuZ2VkLCAzMjMxIGluc2VydGlvbnMoKyksIDQ1NyBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBf c2VxdWVuY2VzLnBsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCAyYThjZDAyNjY0OS4uYjhjOTU0 YTU1NDcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02MjgxLDYgKzYyODEsMTYgQEAgU0NSQU0t U0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2Vh YmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICBSZWZlcmVuY2UgdG8gc2NoZW1hCiAgICAg ICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnBudHlwZTwvc3RydWN0ZmllbGQ+IDx0 eXBlPmNoYXI8L3R5cGU+CisgICAgICAgRGV0ZXJtaW5lcyB3aGljaCBvYmplY3QgdHlwZSBp cyBpbmNsdWRlZCBmcm9tIHRoaXMgc2NoZW1hLgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgUmVmZXJlbmNlIHRvIHNjaGVtYQorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4K QEAgLTk1OTgsNiArOTYwOCwxMSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7 aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAg ICAgPGVudHJ5PnByZXBhcmVkIHRyYW5zYWN0aW9uczwvZW50cnk+CiAgICAgIDwvcm93Pgog CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0idmlldy1wZy1wdWJs aWNhdGlvbi1zZXF1ZW5jZXMiPjxzdHJ1Y3RuYW1lPnBnX3B1YmxpY2F0aW9uX3NlcXVlbmNl czwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5wdWJsaWNhdGlv bnMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgc2VxdWVuY2VzPC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJ2aWV3LXBnLXB1 YmxpY2F0aW9uLXRhYmxlcyI+PHN0cnVjdG5hbWU+cGdfcHVibGljYXRpb25fdGFibGVzPC9z dHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAgICAgPGVudHJ5PnB1YmxpY2F0aW9ucyBh bmQgdGhlaXIgYXNzb2NpYXRlZCB0YWJsZXM8L2VudHJ5PgpAQCAtMTE0MzMsNiArMTE0NDgs NzIgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFyZWRf eGFjdHMgcHB4CiAKICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJ2aWV3LXBnLXB1YmxpY2F0 aW9uLXNlcXVlbmNlcyI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19wdWJsaWNhdGlvbl9z ZXF1ZW5jZXM8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9InZp ZXctcGctcHVibGljYXRpb24tc2VxdWVuY2VzIj4KKyAgIDxwcmltYXJ5PnBnX3B1YmxpY2F0 aW9uX3NlcXVlbmNlczwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+Cisg ICBUaGUgdmlldyA8c3RydWN0bmFtZT5wZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM8L3N0cnVj dG5hbWU+IHByb3ZpZGVzCisgICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWFwcGluZyBiZXR3 ZWVuIHB1YmxpY2F0aW9ucyBhbmQgdGhlIHNlcXVlbmNlcyB0aGV5CisgICBjb250YWluLiAg VW5saWtlIHRoZSB1bmRlcmx5aW5nIGNhdGFsb2cKKyAgIDxsaW5rIGxpbmtlbmQ9ImNhdGFs b2ctcGctcHVibGljYXRpb24tcmVsIj48c3RydWN0bmFtZT5wZ19wdWJsaWNhdGlvbl9yZWw8 L3N0cnVjdG5hbWU+PC9saW5rPiwKKyAgIHRoaXMgdmlldyBleHBhbmRzCisgICBwdWJsaWNh dGlvbnMgZGVmaW5lZCBhcyA8bGl0ZXJhbD5GT1IgQUxMIFNFUVVFTkNFUzwvbGl0ZXJhbD4s IHNvIGZvciBzdWNoCisgICBwdWJsaWNhdGlvbnMgdGhlcmUgd2lsbCBiZSBhIHJvdyBmb3Ig ZWFjaCBlbGlnaWJsZSBzZXF1ZW5jZS4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM8L3N0cnVjdG5hbWU+ IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+Cisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+ CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5w dWJuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgICAocmVmZXJl bmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXB1YmxpY2F0aW9uIj48c3RydWN0bmFt ZT5wZ19wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5wdWJu YW1lPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBOYW1lIG9mIHB1YmxpY2F0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnNjaGVtYW5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAg IChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctbmFtZXNwYWNlIj48c3Ry dWN0bmFtZT5wZ19uYW1lc3BhY2U8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+ bnNwbmFtZTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgTmFtZSBvZiBzY2hlbWEgY29udGFpbmluZyBzZXF1ZW5jZQorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5zZXF1ZW5jZW5hbWU8L3N0cnVjdGZpZWxkPiA8dHlw ZT5uYW1lPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFs b2ctcGctY2xhc3MiPjxzdHJ1Y3RuYW1lPnBnX2NsYXNzPC9zdHJ1Y3RuYW1lPjwvbGluaz4u PHN0cnVjdGZpZWxkPnJlbG5hbWU8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2Ygc2VxdWVuY2UKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFi bGU+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0idmlldy1wZy1wdWJsaWNhdGlvbi10YWJs ZXMiPgogICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcHVibGljYXRpb25fdGFibGVzPC9zdHJ1 Y3RuYW1lPjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5z Z21sIGIvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwKaW5kZXggNzE5Yjk0N2VmNGUuLmM2 MWMzMTBlMTc2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbApAQCAtNzA2NSw2ICs3MDY1LDEyNSBAQCBS ZWxhdGlvbgogPC9saXN0aXRlbT4KIDwvdmFybGlzdGVudHJ5PgogCis8dmFybGlzdGVudHJ5 IGlkPSJwcm90b2NvbC1sb2dpY2FscmVwLW1lc3NhZ2UtZm9ybWF0cy1TZXF1ZW5jZSI+Cis8 dGVybT4KK1NlcXVlbmNlCis8L3Rlcm0+Cis8bGlzdGl0ZW0+Cis8cGFyYT4KKworPHZhcmlh YmxlbGlzdD4KKzx2YXJsaXN0ZW50cnk+Cis8dGVybT4KKyAgICAgICAgQnl0ZTEoJ1gnKQor PC90ZXJtPgorPGxpc3RpdGVtPgorPHBhcmE+CisgICAgICAgICAgICAgICAgSWRlbnRpZmll cyB0aGUgbWVzc2FnZSBhcyBhIHNlcXVlbmNlIG1lc3NhZ2UuCis8L3BhcmE+Cis8L2xpc3Rp dGVtPgorPC92YXJsaXN0ZW50cnk+Cis8dmFybGlzdGVudHJ5PgorPHRlcm0+CisgICAgICAg IEludDMyIChUcmFuc2FjdGlvbklkKQorPC90ZXJtPgorPGxpc3RpdGVtPgorPHBhcmE+Cisg ICAgICAgICAgICAgICBYaWQgb2YgdGhlIHRyYW5zYWN0aW9uIChvbmx5IHByZXNlbnQgZm9y IHN0cmVhbWVkIHRyYW5zYWN0aW9ucykuCisgICAgICAgICAgICAgICBUaGlzIGZpZWxkIGlz IGF2YWlsYWJsZSBzaW5jZSBwcm90b2NvbCB2ZXJzaW9uIDIuCis8L3BhcmE+Cis8L2xpc3Rp dGVtPgorPC92YXJsaXN0ZW50cnk+Cis8dmFybGlzdGVudHJ5PgorPHRlcm0+CisgICAgICAg IEludDgoMCkKKzwvdGVybT4KKzxsaXN0aXRlbT4KKzxwYXJhPgorICAgICAgICAgICAgICAg IEZsYWdzOyBjdXJyZW50bHkgdW51c2VkLgorPC9wYXJhPgorPC9saXN0aXRlbT4KKzwvdmFy bGlzdGVudHJ5PgorPHZhcmxpc3RlbnRyeT4KKzx0ZXJtPgorICAgICAgICBJbnQ2NCAoWExv Z1JlY1B0cikKKzwvdGVybT4KKzxsaXN0aXRlbT4KKzxwYXJhPgorICAgICAgICAgICAgICAg IFRoZSBMU04gb2YgdGhlIHNlcXVlbmNlIGluY3JlbWVudC4KKzwvcGFyYT4KKzwvbGlzdGl0 ZW0+Cis8L3Zhcmxpc3RlbnRyeT4KKzx2YXJsaXN0ZW50cnk+Cis8dGVybT4KKyAgICAgICAg U3RyaW5nCis8L3Rlcm0+Cis8bGlzdGl0ZW0+Cis8cGFyYT4KKyAgICAgICAgICAgICAgICBO YW1lc3BhY2UgKGVtcHR5IHN0cmluZyBmb3IgPGxpdGVyYWw+cGdfY2F0YWxvZzwvbGl0ZXJh bD4pLgorPC9wYXJhPgorPC9saXN0aXRlbT4KKzwvdmFybGlzdGVudHJ5PgorPHZhcmxpc3Rl bnRyeT4KKzx0ZXJtPgorICAgICAgICBTdHJpbmcKKzwvdGVybT4KKzxsaXN0aXRlbT4KKzxw YXJhPgorICAgICAgICAgICAgICAgIFJlbGF0aW9uIG5hbWUuCis8L3BhcmE+Cis8L2xpc3Rp dGVtPgorPC92YXJsaXN0ZW50cnk+CisKKzx2YXJsaXN0ZW50cnk+Cis8dGVybT4KKyAgICAg ICAgSW50OAorPC90ZXJtPgorPGxpc3RpdGVtPgorPHBhcmE+CisgICAgICAgICAgICAgICAg MSBpZiB0aGUgc2VxdWVuY2UgdXBkYXRlIGlzIHRyYW5zYWN0aW9ucywgMCBvdGhlcndpc2Uu Cis8L3BhcmE+Cis8L2xpc3RpdGVtPgorPC92YXJsaXN0ZW50cnk+CisKKzx2YXJsaXN0ZW50 cnk+Cis8dGVybT4KKyAgICAgICAgSW50NjQKKzwvdGVybT4KKzxsaXN0aXRlbT4KKzxwYXJh PgorICAgICAgICAgICAgICAgIDxzdHJ1Y3RmaWVsZD5sYXN0X3ZhbHVlPC9zdHJ1Y3RmaWVs ZD4gdmFsdWUgb2YgdGhlIHNlcXVlbmNlLgorPC9wYXJhPgorPC9saXN0aXRlbT4KKzwvdmFy bGlzdGVudHJ5PgorCis8dmFybGlzdGVudHJ5PgorPHRlcm0+CisgICAgICAgIEludDY0Cis8 L3Rlcm0+Cis8bGlzdGl0ZW0+Cis8cGFyYT4KKyAgICAgICAgICAgICAgICA8c3RydWN0Zmll bGQ+bG9nX2NudDwvc3RydWN0ZmllbGQ+IHZhbHVlIG9mIHRoZSBzZXF1ZW5jZS4KKzwvcGFy YT4KKzwvbGlzdGl0ZW0+Cis8L3Zhcmxpc3RlbnRyeT4KKworPHZhcmxpc3RlbnRyeT4KKzx0 ZXJtPgorICAgICAgICBJbnQ4Cis8L3Rlcm0+Cis8bGlzdGl0ZW0+Cis8cGFyYT4KKyAgICAg ICAgICAgICAgICA8c3RydWN0ZmllbGQ+aXNfY2FsbGVkPC9zdHJ1Y3RmaWVsZD4gdmFsdWUg b2YgdGhlIHNlcXVlbmNlLgorPC9wYXJhPgorPC9saXN0aXRlbT4KKzwvdmFybGlzdGVudHJ5 PgorCis8L3ZhcmlhYmxlbGlzdD4KKzwvcGFyYT4KKzwvbGlzdGl0ZW0+Cis8L3Zhcmxpc3Rl bnRyeT4KKwogPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9jb2wtbG9naWNhbHJlcC1tZXNzYWdl LWZvcm1hdHMtVHlwZSI+CiA8dGVybT4KIFR5cGUKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHVibGljYXRpb24uc2dtbAppbmRleCAzMmI3NWY2Yzc4ZS4uNWRhY2I3MzJiNjkgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTMxLDcgKzMxLDkg QEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+ IGlzIG9uZSBvZjo8L3BocmFzZT4KIAogICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyBX SEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBs YWNlYWJsZT4gKSBdIFssIC4uLiBdCisgICAgU0VRVUVOQ0UgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnNlcXVlbmNlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQogICAg IEFMTCBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9IFssIC4uLiBd CisgICAgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0g WywgLi4uIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtNTgsNyAr NjAsMTggQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgPC9wYXJhPgogCiAgIDxw YXJhPgotICAgVGhlIGZvdXJ0aCB2YXJpYW50IG9mIHRoaXMgY29tbWFuZCBsaXN0ZWQgaW4g dGhlIHN5bm9wc2lzIGNhbiBjaGFuZ2UKKyAgIFRoZSBuZXh0IHRocmVlIHZhcmlhbnRzIGNo YW5nZSB3aGljaCBzZXF1ZW5jZXMgYXJlIHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uLgorICAg VGhlIDxsaXRlcmFsPlNFVCBTRVFVRU5DRTwvbGl0ZXJhbD4gY2xhdXNlIHdpbGwgcmVwbGFj ZSB0aGUgbGlzdCBvZiBzZXF1ZW5jZXMKKyAgIGluIHRoZSBwdWJsaWNhdGlvbiB3aXRoIHRo ZSBzcGVjaWZpZWQgb25lLiAgVGhlIDxsaXRlcmFsPkFERCBTRVFVRU5DRTwvbGl0ZXJhbD4K KyAgIGFuZCA8bGl0ZXJhbD5EUk9QIFNFUVVFTkNFPC9saXRlcmFsPiBjbGF1c2VzIHdpbGwg YWRkIGFuZCByZW1vdmUgb25lIG9yIG1vcmUKKyAgIHNlcXVlbmNlcyBmcm9tIHRoZSBwdWJs aWNhdGlvbi4gIE5vdGUgdGhhdCBhZGRpbmcgc2VxdWVuY2VzIHRvIGEgcHVibGljYXRpb24K KyAgIHRoYXQgaXMgYWxyZWFkeSBzdWJzY3JpYmVkIHRvIHdpbGwgcmVxdWlyZSBhIDxsaXRl cmFsPkFMVEVSIFNVQlNDUklQVElPTgorICAgLi4uIFJFRlJFU0ggUFVCTElDQVRJT048L2xp dGVyYWw+IGFjdGlvbiBvbiB0aGUgc3Vic2NyaWJpbmcgc2lkZSBpbiBvcmRlcgorICAgdG8g YmVjb21lIGVmZmVjdGl2ZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHNldmVu dGggdmFyaWFudCBvZiB0aGlzIGNvbW1hbmQgbGlzdGVkIGluIHRoZSBzeW5vcHNpcyBjYW4g Y2hhbmdlCiAgICBhbGwgb2YgdGhlIHB1YmxpY2F0aW9uIHByb3BlcnRpZXMgc3BlY2lmaWVk IGluCiAgICA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24iLz4uICBQcm9w ZXJ0aWVzIG5vdCBtZW50aW9uZWQgaW4gdGhlCiAgICBjb21tYW5kIHJldGFpbiB0aGVpciBw cmV2aW91cyBzZXR0aW5ncy4KQEAgLTEyMiw2ICsxMzUsMTUgQEAgQUxURVIgUFVCTElDQVRJ T04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBS RU5BTUUgVE8gPHIKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg IDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnNlcXVlbmNlX25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgTmFtZSBvZiBhbiBleGlzdGluZyBzZXF1ZW5jZS4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg PHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbAppbmRleCBhYzJkYjI0 OWNiYi4uNzBjNWM2OWJlOTcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf c3Vic2NyaXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3Jp cHRpb24uc2dtbApAQCAtMTQ4LDcgKzE0OCw3IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBU TyA8CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAgICAgIEZldGNoIG1pc3Npbmcg dGFibGUgaW5mb3JtYXRpb24gZnJvbSBwdWJsaXNoZXIuICBUaGlzIHdpbGwgc3RhcnQKLSAg ICAgIHJlcGxpY2F0aW9uIG9mIHRhYmxlcyB0aGF0IHdlcmUgYWRkZWQgdG8gdGhlIHN1YnNj cmliZWQtdG8gcHVibGljYXRpb25zCisgICAgICByZXBsaWNhdGlvbiBvZiB0YWJsZXMgYW5k IHNlcXVlbmNlcyB0aGF0IHdlcmUgYWRkZWQgdG8gdGhlIHN1YnNjcmliZWQtdG8gcHVibGlj YXRpb25zCiAgICAgICBzaW5jZSA8Y29tbWFuZD5DUkVBVEUgU1VCU0NSSVBUSU9OPC9jb21t YW5kPiBvcgogICAgICAgdGhlIGxhc3QgaW52b2NhdGlvbiBvZiA8Y29tbWFuZD5SRUZSRVNI IFBVQkxJQ0FUSU9OPC9jb21tYW5kPi4KICAgICAgPC9wYXJhPgpAQCAtMTY5LDYgKzE2OSw3 IEBAIEFMVEVSIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8CiAgICAgICAgICA8cGFyYT4KICAgICAg ICAgICBQcmV2aW91c2x5IHN1YnNjcmliZWQgdGFibGVzIGFyZSBub3QgY29waWVkLCBldmVu IGlmIGEgdGFibGUncyByb3cKICAgICAgICAgICBmaWx0ZXIgPGxpdGVyYWw+V0hFUkU8L2xp dGVyYWw+IGNsYXVzZSBoYXMgc2luY2UgYmVlbiBtb2RpZmllZC4KKyAgICAgICAgICBQcmV2 aW91c2x5LXN1YnNjcmliZWQgc2VxdWVuY2VzIGFyZSBub3QgY29waWVkIGVpdGhlci4KICAg ICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3Rl bnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9u LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4 IDQ5NzliOWI2NDZkLi5mMzU1NTQ5OTY2ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yMywxMyArMjMsMTYgQEAgUG9zdGdyZVNRTCBkb2N1 bWVudGF0aW9uCiA8c3lub3BzaXM+CiBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgIFsgRk9SIEFMTCBU QUJMRVMKKyAgICAgIHwgRk9SIEFMTCBTRVFVRU5DRVMKICAgICAgIHwgRk9SIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxl PiBbLCAuLi4gXSBdCiAgICAgWyBXSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApIF0K IAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGlj YXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCiAgICAg VEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25h bWU8L3JlcGxhY2VhYmxlPiBbICogXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KKyAgICBT RVFVRU5DRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2VxdWVuY2VfbmFtZTwv cmVwbGFjZWFibGU+IFsgKiBdIFssIC4uLiBdCiAgICAgQUxMIFRBQkxFUyBJTiBTQ0hFTUEg eyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2Vh YmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KKyAgICBBTEwgU0VRVUVOQ0VTIElO IFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwv cmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQogPC9zeW5vcHNpcz4K ICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0xMDcsMjcgKzExMCw0MyBAQCBDUkVBVEUgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5GT1IgU0VRVUVOQ0U8L2xpdGVyYWw+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBTcGVjaWZpZXMgYSBs aXN0IG9mIHNlcXVlbmNlcyB0byBhZGQgdG8gdGhlIHB1YmxpY2F0aW9uLgorICAgICA8L3Bh cmE+CisKKyAgICAgPHBhcmE+CisgICAgICBTcGVjaWZ5aW5nIGEgc2VxdWVuY2UgdGhhdCBp cyBwYXJ0IG9mIGEgc2NoZW1hIHNwZWNpZmllZCBieSA8bGl0ZXJhbD5GT1IKKyAgICAgIEFM TCBTRVFVRU5DRVMgSU4gU0NIRU1BPC9saXRlcmFsPiBpcyBub3Qgc3VwcG9ydGVkLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8 dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRl cmFsPjwvdGVybT4KKyAgICA8dGVybT48bGl0ZXJhbD5GT1IgQUxMIFNFUVVFTkNFUzwvbGl0 ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICA8cGFyYT4KLSAgICAgIE1hcmtz IHRoZSBwdWJsaWNhdGlvbiBhcyBvbmUgdGhhdCByZXBsaWNhdGVzIGNoYW5nZXMgZm9yIGFs bCB0YWJsZXMgaW4KLSAgICAgIHRoZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVh dGVkIGluIHRoZSBmdXR1cmUuCisgICAgICBNYXJrcyB0aGUgcHVibGljYXRpb24gYXMgb25l IHRoYXQgcmVwbGljYXRlcyBjaGFuZ2VzIGZvciBhbGwgdGFibGVzL3NlcXVlbmNlcyBpbgor ICAgICAgdGhlIGRhdGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzL3NlcXVlbmNlcyBjcmVhdGVk IGluIHRoZSBmdXR1cmUuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CiAKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+ Rk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICA8dGVybT48 bGl0ZXJhbD5GT1IgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+Ci0gICAgICBNYXJrcyB0aGUgcHVibGljYXRp b24gYXMgb25lIHRoYXQgcmVwbGljYXRlcyBjaGFuZ2VzIGZvciBhbGwgdGFibGVzIGluCi0g ICAgICB0aGUgc3BlY2lmaWVkIGxpc3Qgb2Ygc2NoZW1hcywgaW5jbHVkaW5nIHRhYmxlcyBj cmVhdGVkIGluIHRoZSBmdXR1cmUuCisgICAgICBNYXJrcyB0aGUgcHVibGljYXRpb24gYXMg b25lIHRoYXQgcmVwbGljYXRlcyBjaGFuZ2VzIGZvciBhbGwgc2VxdWVuY2VzL3RhYmxlcyBp bgorICAgICAgdGhlIHNwZWNpZmllZCBsaXN0IG9mIHNjaGVtYXMsIGluY2x1ZGluZyBzZXF1 ZW5jZXMvdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4KICAgICAgPC9wYXJhPgogCiAg ICAgIDxwYXJhPgotICAgICAgU3BlY2lmeWluZyBhIHNjaGVtYSBhbG9uZyB3aXRoIGEgdGFi bGUgd2hpY2ggYmVsb25ncyB0byB0aGUgc3BlY2lmaWVkCi0gICAgICBzY2hlbWEgdXNpbmcg PGxpdGVyYWw+Rk9SIFRBQkxFPC9saXRlcmFsPiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAg U3BlY2lmeWluZyBhIHNjaGVtYSBhbG9uZyB3aXRoIGEgc2VxdWVuY2UvdGFibGUgd2hpY2gg YmVsb25ncyB0byB0aGUgc3BlY2lmaWVkCisgICAgICBzY2hlbWEgdXNpbmcgPGxpdGVyYWw+ Rk9SIFNFUVVFTkNFPC9saXRlcmFsPi88bGl0ZXJhbD5GT1IgVEFCTEU8L2xpdGVyYWw+IGlz IG5vdCBzdXBwb3J0ZWQuCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KQEAgLTIwMiwx MCArMjIxLDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgPHRpdGxlPk5vdGVzPC90aXRsZT4KIAog ICA8cGFyYT4KLSAgIElmIDxsaXRlcmFsPkZPUiBUQUJMRTwvbGl0ZXJhbD4sIDxsaXRlcmFs PkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiBvcgotICAgPGxpdGVyYWw+Rk9SIEFMTCBUQUJM RVMgSU4gU0NIRU1BPC9saXRlcmFsPiBhcmUgbm90IHNwZWNpZmllZCwgdGhlbiB0aGUKLSAg IHB1YmxpY2F0aW9uIHN0YXJ0cyBvdXQgd2l0aCBhbiBlbXB0eSBzZXQgb2YgdGFibGVzLiAg VGhhdCBpcyB1c2VmdWwgaWYKLSAgIHRhYmxlcyBvciBzY2hlbWFzIGFyZSB0byBiZSBhZGRl ZCBsYXRlci4KKyAgIElmIDxsaXRlcmFsPkZPUiBUQUJMRTwvbGl0ZXJhbD4sIDxsaXRlcmFs PkZPUiBTRVFVRU5DRTwvbGl0ZXJhbD4sIGV0Yy4gaXMKKyAgIG5vdCBzcGVjaWZpZWQsIHRo ZW4gdGhlIHB1YmxpY2F0aW9uIHN0YXJ0cyBvdXQgd2l0aCBhbiBlbXB0eSBzZXQgb2YgdGFi bGVzCisgICBhbmQgc2VxdWVuY2VzLiAgVGhhdCBpcyB1c2VmdWwgaWYgb2JqZWN0cyBhcmUg dG8gYmUgYWRkZWQgbGF0ZXIuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTIyMCwxMCAr MjM4LDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgVG8g YWRkIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiwgdGhlIGludm9raW5nIHVzZXIgbXVzdCBo YXZlIG93bmVyc2hpcAotICAgcmlnaHRzIG9uIHRoZSB0YWJsZS4gIFRoZSA8Y29tbWFuZD5G T1IgQUxMIFRBQkxFUzwvY29tbWFuZD4gYW5kCi0gICA8Y29tbWFuZD5GT1IgQUxMIFRBQkxF UyBJTiBTQ0hFTUE8L2NvbW1hbmQ+IGNsYXVzZXMgcmVxdWlyZSB0aGUgaW52b2tpbmcKLSAg IHVzZXIgdG8gYmUgYSBzdXBlcnVzZXIuCisgICBUbyBhZGQgYSB0YWJsZSBvciBhIHNlcXVl bmNlIHRvIGEgcHVibGljYXRpb24sIHRoZSBpbnZva2luZyB1c2VyIG11c3QKKyAgIGhhdmUg b3duZXJzaGlwIHJpZ2h0cyBvbiB0aGUgb2JqZWN0LiAgVGhlIDxjb21tYW5kPkZPUiBBTEwg Li4uPC9jb21tYW5kPgorICAgY2xhdXNlcyByZXF1aXJlIHRoZSBpbnZva2luZyB1c2VyIHRv IGJlIGEgc3VwZXJ1c2VyLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IGQ3Y2UwNjM5OTdhLi4zZmQxN2VhNjRmMCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKQEAgLTE5MzAsMTIgKzE5MzAsMTQg QEAgZ2V0X29iamVjdF9hZGRyZXNzX3B1YmxpY2F0aW9uX3NjaGVtYShMaXN0ICpvYmplY3Qs IGJvb2wgbWlzc2luZ19vaykKIAljaGFyCSAgICpwdWJuYW1lOwogCWNoYXIJICAgKnNjaGVt YW5hbWU7CiAJT2lkCQkJc2NoZW1haWQ7CisJY2hhcgkgICAqb2JqdHlwZTsKIAogCU9iamVj dEFkZHJlc3NTZXQoYWRkcmVzcywgUHVibGljYXRpb25OYW1lc3BhY2VSZWxhdGlvbklkLCBJ bnZhbGlkT2lkKTsKIAogCS8qIEZldGNoIHNjaGVtYSBuYW1lIGFuZCBwdWJsaWNhdGlvbiBu YW1lIGZyb20gaW5wdXQgbGlzdCAqLwogCXNjaGVtYW5hbWUgPSBzdHJWYWwobGluaXRpYWwo b2JqZWN0KSk7CiAJcHVibmFtZSA9IHN0clZhbChsc2Vjb25kKG9iamVjdCkpOworCW9ianR5 cGUgPSBzdHJWYWwobHRoaXJkKG9iamVjdCkpOwogCiAJc2NoZW1haWQgPSBnZXRfbmFtZXNw YWNlX29pZChzY2hlbWFuYW1lLCBtaXNzaW5nX29rKTsKIAlpZiAoIU9pZElzVmFsaWQoc2No ZW1haWQpKQpAQCAtMTk0OCwxMCArMTk1MCwxMiBAQCBnZXRfb2JqZWN0X2FkZHJlc3NfcHVi bGljYXRpb25fc2NoZW1hKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCiAJLyog RmluZCB0aGUgcHVibGljYXRpb24gc2NoZW1hIG1hcHBpbmcgaW4gc3lzY2FjaGUgKi8KIAlh ZGRyZXNzLm9iamVjdElkID0KLQkJR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OTkFNRVNQ QUNFTUFQLAorCQlHZXRTeXNDYWNoZU9pZDMoUFVCTElDQVRJT05OQU1FU1BBQ0VNQVAsCiAJ CQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZV9vaWQsCiAJCQkJCQlPYmplY3RJ ZEdldERhdHVtKHNjaGVtYWlkKSwKLQkJCQkJCU9iamVjdElkR2V0RGF0dW0ocHViLT5vaWQp KTsKKwkJCQkJCU9iamVjdElkR2V0RGF0dW0ocHViLT5vaWQpLAorCQkJCQkJQ2hhckdldERh dHVtKG9ianR5cGVbMF0pKTsKKwogCWlmICghT2lkSXNWYWxpZChhZGRyZXNzLm9iamVjdElk KSAmJiAhbWlzc2luZ19vaykKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJD T0RFX1VOREVGSU5FRF9PQkpFQ1QpLApAQCAtMjIzMiw3ICsyMjM2LDYgQEAgcGdfZ2V0X29i amVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWNhc2UgT0JKRUNUX0RPTUNPTlNU UkFJTlQ6CiAJCWNhc2UgT0JKRUNUX0NBU1Q6CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElO RzoKLQkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgogCQljYXNlIE9CSkVD VF9QVUJMSUNBVElPTl9SRUw6CiAJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJY2FzZSBPQkpF Q1RfVFJBTlNGT1JNOgpAQCAtMjI1Nyw2ICsyMjYwLDcgQEAgcGdfZ2V0X29iamVjdF9hZGRy ZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkvKiBmYWxsIHRocm91Z2ggdG8gY2hlY2sgYXJn cyBsZW5ndGggKi8KIAkJCS8qIEZBTExUSFJPVUdIICovCiAJCWNhc2UgT0JKRUNUX09QRVJB VE9SOgorCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCQlpZiAobGlz dF9sZW5ndGgoYXJncykgIT0gMikKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCkBAIC0yMzI3LDYgKzIzMzEs OCBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJCW9iam5v ZGUgPSAoTm9kZSAqKSBsaXN0X21ha2UyKG5hbWUsIGxpbml0aWFsKGFyZ3MpKTsKIAkJCWJy ZWFrOwogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CisJCQlvYmpub2Rl ID0gKE5vZGUgKikgbGlzdF9tYWtlMyhsaW5pdGlhbChuYW1lKSwgbGluaXRpYWwoYXJncyks IGxzZWNvbmQoYXJncykpOworCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElO RzoKIAkJCW9iam5vZGUgPSAoTm9kZSAqKSBsaXN0X21ha2UyKGxpbml0aWFsKG5hbWUpLCBs aW5pdGlhbChhcmdzKSk7CiAJCQlicmVhazsKQEAgLTI4ODEsMTEgKzI4ODcsMTIgQEAgZ2V0 X2NhdGFsb2dfb2JqZWN0X2J5X29pZChSZWxhdGlvbiBjYXRhbG9nLCBBdHRyTnVtYmVyIG9p ZGNvbCwgT2lkIG9iamVjdElkKQogICoKICAqIEdldCBwdWJsaWNhdGlvbiBuYW1lIGFuZCBz Y2hlbWEgbmFtZSBmcm9tIHRoZSBvYmplY3QgYWRkcmVzcyBpbnRvIHB1Ym5hbWUgYW5kCiAg KiBuc3BuYW1lLiBCb3RoIHB1Ym5hbWUgYW5kIG5zcG5hbWUgYXJlIHBhbGxvYydkIHN0cmlu Z3Mgd2hpY2ggd2lsbCBiZSBmcmVlZCBieQotICogdGhlIGNhbGxlci4KKyAqIHRoZSBjYWxs ZXIuIFRoZSBsYXN0IHBhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2ggb2JqZWN0IHR5cGUgaXMg aW5jbHVkZWQgZnJvbQorICogdGhlIHNjaGVtYS4KICAqLwogc3RhdGljIGJvb2wKIGdldFB1 YmxpY2F0aW9uU2NoZW1hSW5mbyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wg bWlzc2luZ19vaywKLQkJCQkJCSBjaGFyICoqcHVibmFtZSwgY2hhciAqKm5zcG5hbWUpCisJ CQkJCQkgY2hhciAqKnB1Ym5hbWUsIGNoYXIgKipuc3BuYW1lLCBjaGFyICoqb2JqdHlwZSkK IHsKIAlIZWFwVHVwbGUJdHVwOwogCUZvcm1fcGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHBu Zm9ybTsKQEAgLTI5MjEsNiArMjkyOCwxMyBAQCBnZXRQdWJsaWNhdGlvblNjaGVtYUluZm8o Y29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2ssCiAJCXJldHVy biBmYWxzZTsKIAl9CiAKKwkvKgorCSAqIFRoZSB0eXBlIGlzIGFsd2F5cyBhIHNpbmdsZSBj aGFyYWN0ZXIsIGJ1dCB3ZSBuZWVkIHRvIHBhc3MgaXQgYXMgYSBzdHJpbmcsCisJICogc28g YWxsb2NhdGUgdHdvIGNoYXJhdGVycyBhbmQgc2V0IHRoZSBmaXJzdCBvbmUuIFRoZSBzZWNv bmQgb25lIGlzIFwwLgorCSAqLworCSpvYmp0eXBlID0gcGFsbG9jMCgyKTsKKwkqb2JqdHlw ZVswXSA9IHBuZm9ybS0+cG50eXBlOworCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiAJcmV0 dXJuIHRydWU7CiB9CkBAIC0zOTI2LDE1ICszOTQwLDE3IEBAIGdldE9iamVjdERlc2NyaXB0 aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJ ewogCQkJCWNoYXIJICAgKnB1Ym5hbWU7CiAJCQkJY2hhcgkgICAqbnNwbmFtZTsKKwkJCQlj aGFyCSAgICpvYmp0eXBlOwogCiAJCQkJaWYgKCFnZXRQdWJsaWNhdGlvblNjaGVtYUluZm8o b2JqZWN0LCBtaXNzaW5nX29rLAotCQkJCQkJCQkJCQkgICZwdWJuYW1lLCAmbnNwbmFtZSkp CisJCQkJCQkJCQkJCSAgJnB1Ym5hbWUsICZuc3BuYW1lLCAmb2JqdHlwZSkpCiAJCQkJCWJy ZWFrOwogCi0JCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJwdWJsaWNhdGlvbiBv ZiBzY2hlbWEgJXMgaW4gcHVibGljYXRpb24gJXMiKSwKLQkJCQkJCQkJIG5zcG5hbWUsIHB1 Ym5hbWUpOworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygicHVibGljYXRpb24g b2Ygc2NoZW1hICVzIGluIHB1YmxpY2F0aW9uICVzIHR5cGUgJXMiKSwKKwkJCQkJCQkJIG5z cG5hbWUsIHB1Ym5hbWUsIG9ianR5cGUpOwogCQkJCXBmcmVlKHB1Ym5hbWUpOwogCQkJCXBm cmVlKG5zcG5hbWUpOworCQkJCXBmcmVlKG9ianR5cGUpOwogCQkJCWJyZWFrOwogCQkJfQog CkBAIC01NzI5LDE4ICs1NzQ1LDI0IEBAIGdldE9iamVjdElkZW50aXR5UGFydHMoY29uc3Qg T2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJewogCQkJCWNoYXIJICAgKnB1Ym5hbWU7CiAJ CQkJY2hhcgkgICAqbnNwbmFtZTsKKwkJCQljaGFyCSAgICpvYmp0eXBlOwogCiAJCQkJaWYg KCFnZXRQdWJsaWNhdGlvblNjaGVtYUluZm8ob2JqZWN0LCBtaXNzaW5nX29rLCAmcHVibmFt ZSwKLQkJCQkJCQkJCQkJICAmbnNwbmFtZSkpCisJCQkJCQkJCQkJCSAgJm5zcG5hbWUsICZv Ymp0eXBlKSkKIAkJCQkJYnJlYWs7Ci0JCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAi JXMgaW4gcHVibGljYXRpb24gJXMiLAotCQkJCQkJCQkgbnNwbmFtZSwgcHVibmFtZSk7CisJ CQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAiJXMgaW4gcHVibGljYXRpb24gJXMgdHlw ZSAlcyIsCisJCQkJCQkJCSBuc3BuYW1lLCBwdWJuYW1lLCBvYmp0eXBlKTsKIAogCQkJCWlm IChvYmphcmdzKQogCQkJCQkqb2JqYXJncyA9IGxpc3RfbWFrZTEocHVibmFtZSk7CiAJCQkJ ZWxzZQogCQkJCQlwZnJlZShwdWJuYW1lKTsKIAorCQkJCWlmIChvYmphcmdzKQorCQkJCQkq b2JqYXJncyA9IGxhcHBlbmQoKm9iamFyZ3MsIG9ianR5cGUpOworCQkJCWVsc2UKKwkJCQkJ cGZyZWUob2JqdHlwZSk7CisKIAkJCQlpZiAob2JqbmFtZSkKIAkJCQkJKm9iam5hbWUgPSBs aXN0X21ha2UxKG5zcG5hbWUpOwogCQkJCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVi bGljYXRpb24uYwppbmRleCA3ODliODk1ZGI4OS4uMTQ0ZDFhZGE5ZTIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTU0LDcgKzU0LDggQEAgY2hlY2tfcHVi bGljYXRpb25fYWRkX3JlbGF0aW9uKFJlbGF0aW9uIHRhcmdldHJlbCkKIHsKIAkvKiBNdXN0 IGJlIGEgcmVndWxhciBvciBwYXJ0aXRpb25lZCB0YWJsZSAqLwogCWlmIChSZWxhdGlvbkdl dEZvcm0odGFyZ2V0cmVsKS0+cmVsa2luZCAhPSBSRUxLSU5EX1JFTEFUSU9OICYmCi0JCVJl bGF0aW9uR2V0Rm9ybSh0YXJnZXRyZWwpLT5yZWxraW5kICE9IFJFTEtJTkRfUEFSVElUSU9O RURfVEFCTEUpCisJCVJlbGF0aW9uR2V0Rm9ybSh0YXJnZXRyZWwpLT5yZWxraW5kICE9IFJF TEtJTkRfUEFSVElUSU9ORURfVEFCTEUgJiYKKwkJUmVsYXRpb25HZXRGb3JtKHRhcmdldHJl bCktPnJlbGtpbmQgIT0gUkVMS0lORF9TRVFVRU5DRSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJy bXNnKCJjYW5ub3QgYWRkIHJlbGF0aW9uIFwiJXNcIiB0byBwdWJsaWNhdGlvbiIsCkBAIC0x MzEsNyArMTMyLDggQEAgc3RhdGljIGJvb2wKIGlzX3B1Ymxpc2hhYmxlX2NsYXNzKE9pZCBy ZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIHsKIAlyZXR1cm4gKHJlbHR1cGxlLT5y ZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKLQkJCXJlbHR1cGxlLT5yZWxraW5kID09 IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpICYmCisJCQlyZWx0dXBsZS0+cmVsa2luZCA9 PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFIHx8CisJCQlyZWx0dXBsZS0+cmVsa2luZCA9 PSBSRUxLSU5EX1NFUVVFTkNFKSAmJgogCQkhSXNDYXRhbG9nUmVsYXRpb25PaWQocmVsaWQp ICYmCiAJCXJlbHR1cGxlLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9QRVJN QU5FTlQgJiYKIAkJcmVsaWQgPj0gRmlyc3ROb3JtYWxPYmplY3RJZDsKQEAgLTE3Niw2ICsx NzgsNDcgQEAgZmlsdGVyX3BhcnRpdGlvbnMoTGlzdCAqcmVsaWRzKQogCXJldHVybiByZXN1 bHQ7CiB9CiAKKy8qIENoZWNrIHRoZSBjaGFyYWN0ZXIgaXMgYSB2YWxpZCBvYmplY3QgdHlw ZSBmb3Igc2NoZW1hIHB1YmxpY2F0aW9uLiAqLworc3RhdGljIHZvaWQKK0Fzc2VydE9iamVj dFR5cGVWYWxpZChjaGFyIG9iamVjdFR5cGUpCit7CisjaWZkZWYgVVNFX0FTU0VSVF9DSEVD S0lORworCUFzc2VydChvYmplY3RUeXBlID09IFBVQl9PQkpUWVBFX1NFUVVFTkNFIHx8IG9i amVjdFR5cGUgPT0gUFVCX09CSlRZUEVfVEFCTEUpOworI2VuZGlmCit9CisKKy8qCisgKiBE ZXRlcm1pbmUgb2JqZWN0IHR5cGUgZ2l2ZW4gdGhlIG9iamVjdCB0eXBlIHNldCBmb3IgYSBz Y2hlbWEuCisgKi8KK2NoYXIKK3B1Yl9nZXRfb2JqZWN0X3R5cGVfZm9yX3JlbGtpbmQoY2hh ciByZWxraW5kKQoreworCS8qIHNlcXVlbmNlIG1hcHMgZGlyZWN0bHkgdG8gc2VxdWVuY2Ug cmVsa2luZCAqLworCWlmIChyZWxraW5kID09IFJFTEtJTkRfU0VRVUVOQ0UpCisJCXJldHVy biBQVUJfT0JKVFlQRV9TRVFVRU5DRTsKKworCS8qIGZvciB0YWJsZSwgd2UgbWF0Y2ggZWl0 aGVyIHJlZ3VsYXIgb3IgcGFydGl0aW9uZWQgdGFibGUgKi8KKwlpZiAocmVsa2luZCA9PSBS RUxLSU5EX1JFTEFUSU9OIHx8CisJCXJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9U QUJMRSkKKwkJcmV0dXJuIFBVQl9PQkpUWVBFX1RBQkxFOworCisJcmV0dXJuIFBVQl9PQkpU WVBFX1VOU1VQUE9SVEVEOworfQorCisvKgorICogRGV0ZXJtaW5lIGlmIHB1YmxpY2F0aW9u IG9iamVjdCB0eXBlIG1hdGNoZXMgdGhlIHJlbGtpbmQuCisgKgorICogUmV0dXJucyB0cnVl IGlmIHRoZSByZWxhdGlvbiBtYXRjaGVzIG9iamVjdCB0eXBlIHJlcGxpY2F0ZWQgYnkgdGhp cyBzY2hlbWEsCisgKiBmYWxzZSBvdGhlcndpc2UuCisgKi8KK3N0YXRpYyBib29sCitwdWJf b2JqZWN0X3R5cGVfbWF0Y2hlc19yZWxraW5kKGNoYXIgb2JqZWN0VHlwZSwgY2hhciByZWxr aW5kKQoreworCUFzc2VydE9iamVjdFR5cGVWYWxpZChvYmplY3RUeXBlKTsKKworCXJldHVy biAocHViX2dldF9vYmplY3RfdHlwZV9mb3JfcmVsa2luZChyZWxraW5kKSA9PSBvYmplY3RU eXBlKTsKK30KKwogLyoKICAqIEFub3RoZXIgdmFyaWFudCBvZiB0aGlzLCB0YWtpbmcgYSBS ZWxhdGlvbi4KICAqLwpAQCAtMjA1LDcgKzI0OCw3IEBAIGlzX3NjaGVtYV9wdWJsaWNhdGlv bihPaWQgcHViaWQpCiAJCQkJT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOwogCiAJc2NhbiA9 IHN5c3RhYmxlX2JlZ2luc2NhbihwdWJzY2hzcmVsLAotCQkJCQkJCSAgUHVibGljYXRpb25O YW1lc3BhY2VQbm5zcGlkUG5wdWJpZEluZGV4SWQsCisJCQkJCQkJICBQdWJsaWNhdGlvbk5h bWVzcGFjZVBubnNwaWRQbnB1YmlkUG50eXBlSW5kZXhJZCwKIAkJCQkJCQkgIHRydWUsIE5V TEwsIDEsICZzY2Fua2V5KTsKIAl0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pOwogCXJl c3VsdCA9IEhlYXBUdXBsZUlzVmFsaWQodHVwKTsKQEAgLTMxMyw3ICszNTYsOSBAQCBHZXRU b3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9y cywgaW50ICphbmNlc3Rvcl9sZXZlbAogCQl9CiAJCWVsc2UKIAkJewotCQkJYXNjaGVtYVB1 YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVsX25hbWVzcGFjZShhbmNlc3Rv cikpOworCQkJLyogd2Ugb25seSBzZWFyY2ggZm9yIGFuY2VzdG9ycyBvZiB0YWJsZXMsIHNv IFBVQl9PQkpUWVBFX1RBQkxFICovCisJCQlhc2NoZW1hUHViaWRzID0gR2V0U2NoZW1hUHVi bGljYXRpb25zKGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKSwKKwkJCQkJCQkJCQkJCSAg UFVCX09CSlRZUEVfVEFCTEUpOwogCQkJaWYgKGxpc3RfbWVtYmVyX29pZChhc2NoZW1hUHVi aWRzLCBwdWJvaWQpKQogCQkJewogCQkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKQEAg LTQzNiw3ICs0ODEsNyBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQ dWJsaWNhdGlvblJlbEluZm8gKnByaSwKICAqIEluc2VydCBuZXcgcHVibGljYXRpb24gLyBz Y2hlbWEgbWFwcGluZy4KICAqLwogT2JqZWN0QWRkcmVzcwotcHVibGljYXRpb25fYWRkX3Nj aGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwgYm9vbCBpZl9ub3RfZXhpc3RzKQorcHVi bGljYXRpb25fYWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwgY2hhciBvYmpl Y3RUeXBlLCBib29sIGlmX25vdF9leGlzdHMpCiB7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBU dXBsZQl0dXA7CkBAIC00NDgsNiArNDkzLDggQEAgcHVibGljYXRpb25fYWRkX3NjaGVtYShP aWQgcHViaWQsIE9pZCBzY2hlbWFpZCwgYm9vbCBpZl9ub3RfZXhpc3RzKQogCU9iamVjdEFk ZHJlc3MgbXlzZWxmLAogCQkJCXJlZmVyZW5jZWQ7CiAKKwlBc3NlcnRPYmplY3RUeXBlVmFs aWQob2JqZWN0VHlwZSk7CisKIAlyZWwgPSB0YWJsZV9vcGVuKFB1YmxpY2F0aW9uTmFtZXNw YWNlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CiAKIAkvKgpAQCAtNDU1LDkgKzUw MiwxMCBAQCBwdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlk LCBib29sIGlmX25vdF9leGlzdHMpCiAJICogZHVwbGljYXRlcywgaXQncyBoZXJlIGp1c3Qg dG8gcHJvdmlkZSBuaWNlciBlcnJvciBtZXNzYWdlIGluIGNvbW1vbgogCSAqIGNhc2UuIFRo ZSByZWFsIHByb3RlY3Rpb24gaXMgdGhlIHVuaXF1ZSBrZXkgb24gdGhlIGNhdGFsb2cuCiAJ ICovCi0JaWYgKFNlYXJjaFN5c0NhY2hlRXhpc3RzMihQVUJMSUNBVElPTk5BTUVTUEFDRU1B UCwKKwlpZiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMzKFBVQkxJQ0FUSU9OTkFNRVNQQUNFTUFQ LAogCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShzY2hlbWFpZCksCi0JCQkJCQkJICBPYmpl Y3RJZEdldERhdHVtKHB1YmlkKSkpCisJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHB1Ymlk KSwKKwkJCQkJCQkgIENoYXJHZXREYXR1bShvYmplY3RUeXBlKSkpCiAJewogCQl0YWJsZV9j bG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCkBAIC00ODMsNiArNTMxLDggQEAgcHVi bGljYXRpb25fYWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwgYm9vbCBpZl9u b3RfZXhpc3RzKQogCQlPYmplY3RJZEdldERhdHVtKHB1YmlkKTsKIAl2YWx1ZXNbQW51bV9w Z19wdWJsaWNhdGlvbl9uYW1lc3BhY2VfcG5uc3BpZCAtIDFdID0KIAkJT2JqZWN0SWRHZXRE YXR1bShzY2hlbWFpZCk7CisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fbmFtZXNwYWNl X3BudHlwZSAtIDFdID0KKwkJQ2hhckdldERhdHVtKG9iamVjdFR5cGUpOwogCiAJdHVwID0g aGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7 CiAKQEAgLTUwOCw3ICs1NTgsNyBAQCBwdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJp ZCwgT2lkIHNjaGVtYWlkLCBib29sIGlmX25vdF9leGlzdHMpCiAJICogcHVibGljYXRpb25f YWRkX3JlbGF0aW9uIGZvciB3aHkgd2UgbmVlZCB0byBjb25zaWRlciBhbGwgdGhlCiAJICog cGFydGl0aW9ucy4KIAkgKi8KLQlzY2hlbWFSZWxzID0gR2V0U2NoZW1hUHVibGljYXRpb25S ZWxhdGlvbnMoc2NoZW1haWQsCisJc2NoZW1hUmVscyA9IEdldFNjaGVtYVB1YmxpY2F0aW9u UmVsYXRpb25zKHNjaGVtYWlkLCBvYmplY3RUeXBlLAogCQkJCQkJCQkJCQkgICBQVUJMSUNB VElPTl9QQVJUX0FMTCk7CiAJSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhzY2hlbWFSZWxz KTsKIApAQCAtNTQyLDExICs1OTIsMTQgQEAgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lk IHJlbGlkKQogLyoKICAqIEdldHMgbGlzdCBvZiByZWxhdGlvbiBvaWRzIGZvciBhIHB1Ymxp Y2F0aW9uLgogICoKLSAqIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBGT1IgVEFCTEUgcHVi bGljYXRpb25zLCB0aGUgRk9SIEFMTCBUQUJMRVMKLSAqIHNob3VsZCB1c2UgR2V0QWxsVGFi bGVzUHVibGljYXRpb25SZWxhdGlvbnMoKS4KKyAqIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNl ZCBGT1IgVEFCTEUgLyBGT1IgU0VRVUVOQ0UgcHVibGljYXRpb25zLCB0aGUgRk9SCisgKiBB TEwgVEFCTEVTIC8gU0VRVUVOQ0VTIHNob3VsZCB1c2UgR2V0QWxsVGFibGVzUHVibGljYXRp b25SZWxhdGlvbnMoKQorICogYW5kIEdldEFsbFNlcXVlbmNlc1B1YmxpY2F0aW9uUmVsYXRp b25zKCkuCisgKgorICogWFhYIHB1Yl9wYXJ0b3B0IG9ubHkgbWF0dGVycyBmb3IgdGFibGVz LCBub3Qgc2VxdWVuY2VzLgogICovCiBMaXN0ICoKLUdldFB1YmxpY2F0aW9uUmVsYXRpb25z KE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQorR2V0UHVibGlj YXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBjaGFyIG9iamVjdFR5cGUsIFB1YmxpY2F0aW9u UGFydE9wdCBwdWJfcGFydG9wdCkKIHsKIAlMaXN0CSAgICpyZXN1bHQ7CiAJUmVsYXRpb24J cHVicmVsc3JlbDsKQEAgLTU1NCw2ICs2MDcsOCBAQCBHZXRQdWJsaWNhdGlvblJlbGF0aW9u cyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIAlTeXNTY2Fu RGVzYyBzY2FuOwogCUhlYXBUdXBsZQl0dXA7CiAKKwlBc3NlcnRPYmplY3RUeXBlVmFsaWQo b2JqZWN0VHlwZSk7CisKIAkvKiBGaW5kIGFsbCBwdWJsaWNhdGlvbnMgYXNzb2NpYXRlZCB3 aXRoIHRoZSByZWxhdGlvbi4gKi8KIAlwdWJyZWxzcmVsID0gdGFibGVfb3BlbihQdWJsaWNh dGlvblJlbFJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CiAKQEAgLTU2OCwxMSArNjIz LDI5IEBAIEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25Q YXJ0T3B0IHB1Yl9wYXJ0b3B0KQogCXJlc3VsdCA9IE5JTDsKIAl3aGlsZSAoSGVhcFR1cGxl SXNWYWxpZCh0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKIAl7CisJCWNoYXIJcmVs a2luZDsKIAkJRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwgcHVicmVsOwogCiAJCXB1YnJlbCA9 IChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCk7Ci0JCXJlc3VsdCA9 IEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhyZXN1bHQsIHB1Yl9wYXJ0b3B0LAot CQkJCQkJCQkJCQkJcHVicmVsLT5wcnJlbGlkKTsKKwkJcmVsa2luZCA9IGdldF9yZWxfcmVs a2luZChwdWJyZWwtPnBycmVsaWQpOworCisJCS8qCisJCSAqIElmIHRoZSByZWxraW5kIGRv ZXMgbm90IG1hdGNoIHRoZSByZXF1ZXN0ZWQgb2JqZWN0IHR5cGUsIGlnbm9yZSB0aGUKKwkJ ICogcmVsYXRpb24uIEZvciBleGFtcGxlIHdlIG1pZ2h0IGJlIGludGVyZXN0ZWQgb25seSBp biBzZXF1ZW5jZXMsIHNvCisJCSAqIHdlIGlnbm9yZSB0YWJsZXMuCisJCSAqLworCQlpZiAo IXB1Yl9vYmplY3RfdHlwZV9tYXRjaGVzX3JlbGtpbmQob2JqZWN0VHlwZSwgcmVsa2luZCkp CisJCQljb250aW51ZTsKKworCQkvKgorCQkgKiBXZSBkb24ndCBoYXZlIHBhcnRpdGlvbmVk IHNlcXVlbmNlcywgc28ganVzdCBhZGQgdGhlbSB0byB0aGUgbGlzdC4KKwkJICogT3RoZXJ3 aXNlIGNvbnNpZGVyIGFkZGluZyBhbGwgY2hpbGQgcmVsYXRpb25zLCBpZiByZXF1ZXN0ZWQu CisJCSAqLworCQlpZiAocmVsa2luZCA9PSBSRUxLSU5EX1NFUVVFTkNFKQorCQkJcmVzdWx0 ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJyZWwtPnBycmVsaWQpOworCQllbHNlCisJCQly ZXN1bHQgPSBHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMocmVzdWx0LCBwdWJfcGFy dG9wdCwKKwkJCQkJCQkJCQkJCQlwdWJyZWwtPnBycmVsaWQpOwogCX0KIAogCXN5c3RhYmxl X2VuZHNjYW4oc2Nhbik7CkBAIC02MjIsNiArNjk1LDQzIEBAIEdldEFsbFRhYmxlc1B1Ymxp Y2F0aW9ucyh2b2lkKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBHZXRzIGxpc3Qg b2YgcHVibGljYXRpb24gb2lkcyBmb3IgcHVibGljYXRpb25zIG1hcmtlZCBhcyBGT1IgQUxM IFNFUVVFTkNFUy4KKyAqLworTGlzdCAqCitHZXRBbGxTZXF1ZW5jZXNQdWJsaWNhdGlvbnMo dm9pZCkKK3sKKwlMaXN0CSAgICpyZXN1bHQ7CisJUmVsYXRpb24JcmVsOworCVNjYW5LZXlE YXRhIHNjYW5rZXk7CisJU3lzU2NhbkRlc2Mgc2NhbjsKKwlIZWFwVHVwbGUJdHVwOworCisJ LyogRmluZCBhbGwgcHVibGljYXRpb25zIHRoYXQgYXJlIG1hcmtlZCBhcyBmb3IgYWxsIHNl cXVlbmNlcy4gKi8KKwlyZWwgPSB0YWJsZV9vcGVuKFB1YmxpY2F0aW9uUmVsYXRpb25JZCwg QWNjZXNzU2hhcmVMb2NrKTsKKworCVNjYW5LZXlJbml0KCZzY2Fua2V5LAorCQkJCUFudW1f cGdfcHVibGljYXRpb25fcHViYWxsc2VxdWVuY2VzLAorCQkJCUJURXF1YWxTdHJhdGVneU51 bWJlciwgRl9CT09MRVEsCisJCQkJQm9vbEdldERhdHVtKHRydWUpKTsKKworCXNjYW4gPSBz eXN0YWJsZV9iZWdpbnNjYW4ocmVsLCBJbnZhbGlkT2lkLCBmYWxzZSwKKwkJCQkJCQkgIE5V TEwsIDEsICZzY2Fua2V5KTsKKworCXJlc3VsdCA9IE5JTDsKKwl3aGlsZSAoSGVhcFR1cGxl SXNWYWxpZCh0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCU9pZAkJCW9p ZCA9ICgoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1cCkpLT5vaWQ7CisKKwkJ cmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBvaWQpOworCX0KKworCXN5c3RhYmxlX2Vu ZHNjYW4oc2Nhbik7CisJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOworCisJ cmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIEdldHMgbGlzdCBvZiBhbGwgcmVsYXRpb24g cHVibGlzaGVkIGJ5IEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uKHMpLgogICoKQEAgLTY4 OCwyOCArNzk4LDM4IEBAIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wg cHVidmlhcm9vdCkKIC8qCiAgKiBHZXRzIHRoZSBsaXN0IG9mIHNjaGVtYSBvaWRzIGZvciBh IHB1YmxpY2F0aW9uLgogICoKLSAqIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBGT1IgQUxM IFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljYXRpb25zLgorICogVGhpcyBzaG91bGQgb25seSBi ZSB1c2VkIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBhbmQgRk9SIEFMTCBTRVFVRU5DRVMK KyAqIHB1YmxpY2F0aW9ucy4KKyAqCisgKiAnb2JqZWN0VHlwZScgZGV0ZXJtaW5lcyB3aGV0 aGVyIHRvIGdldCBGT1IgVEFCTEUgb3IgRk9SIFNFUVVFTkNFUyBzY2hlbWFzCiAgKi8KIExp c3QgKgotR2V0UHVibGljYXRpb25TY2hlbWFzKE9pZCBwdWJpZCkKK0dldFB1YmxpY2F0aW9u U2NoZW1hcyhPaWQgcHViaWQsIGNoYXIgb2JqZWN0VHlwZSkKIHsKIAlMaXN0CSAgICpyZXN1 bHQgPSBOSUw7CiAJUmVsYXRpb24JcHVic2Noc3JlbDsKLQlTY2FuS2V5RGF0YSBzY2Fua2V5 OworCVNjYW5LZXlEYXRhIHNjYW5rZXlbMl07CiAJU3lzU2NhbkRlc2Mgc2NhbjsKIAlIZWFw VHVwbGUJdHVwOwogCisJQXNzZXJ0T2JqZWN0VHlwZVZhbGlkKG9iamVjdFR5cGUpOworCiAJ LyogRmluZCBhbGwgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uICov CiAJcHVic2Noc3JlbCA9IHRhYmxlX29wZW4oUHVibGljYXRpb25OYW1lc3BhY2VSZWxhdGlv bklkLCBBY2Nlc3NTaGFyZUxvY2spOwogCi0JU2NhbktleUluaXQoJnNjYW5rZXksCisJU2Nh bktleUluaXQoJnNjYW5rZXlbMF0sCiAJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9uYW1lc3Bh Y2VfcG5wdWJpZCwKIAkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCiAJCQkJ T2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOwogCisJU2NhbktleUluaXQoJnNjYW5rZXlbMV0s CisJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2VfcG50eXBlLAorCQkJCUJURXF1 YWxTdHJhdGVneU51bWJlciwgRl9DSEFSRVEsCisJCQkJQ2hhckdldERhdHVtKG9iamVjdFR5 cGUpKTsKKwogCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocHVic2Noc3JlbCwKLQkJCQkJ CQkgIFB1YmxpY2F0aW9uTmFtZXNwYWNlUG5uc3BpZFBucHViaWRJbmRleElkLAotCQkJCQkJ CSAgdHJ1ZSwgTlVMTCwgMSwgJnNjYW5rZXkpOworCQkJCQkJCSAgUHVibGljYXRpb25OYW1l c3BhY2VQbm5zcGlkUG5wdWJpZFBudHlwZUluZGV4SWQsCisJCQkJCQkJICB0cnVlLCBOVUxM LCAyLCBzY2Fua2V5KTsKIAl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXAgPSBzeXN0YWJs ZV9nZXRuZXh0KHNjYW4pKSkKIAl7CiAJCUZvcm1fcGdfcHVibGljYXRpb25fbmFtZXNwYWNl IHB1YnNjaDsKQEAgLTcyNywxNCArODQ3LDI2IEBAIEdldFB1YmxpY2F0aW9uU2NoZW1hcyhP aWQgcHViaWQpCiAKIC8qCiAgKiBHZXRzIHRoZSBsaXN0IG9mIHB1YmxpY2F0aW9uIG9pZHMg YXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWVkIHNjaGVtYS4KKyAqCisgKiBvYmplY3RUeXBl IHNwZWNpZmllcyB3aGV0aGVyIHdlJ3JlIGxvb2tpbmcgZm9yIHNjaGVtYXMgaW5jbHVkaW5n IHRhYmxlcyBvcgorICogc2VxdWVuY2VzLgorICoKKyAqIE5vdGU6IHJlbGNhY2hlIGNhbGxz IHRoaXMgZm9yIGFsbCBvYmplY3QgdHlwZXMsIG5vdCBqdXN0IHRhYmxlcyBhbmQgc2VxdWVu Y2VzLgorICogV2hpY2ggaXMgd2h5IHdlIGhhbmRsZSB0aGUgUFVCX09CSlRZUEVfVU5TVVBQ T1JURUQgb2JqZWN0IHR5cGUgdG9vLgogICovCiBMaXN0ICoKLUdldFNjaGVtYVB1YmxpY2F0 aW9ucyhPaWQgc2NoZW1haWQpCitHZXRTY2hlbWFQdWJsaWNhdGlvbnMoT2lkIHNjaGVtYWlk LCBjaGFyIG9iamVjdFR5cGUpCiB7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwogCUNhdENM aXN0ICAgKnB1YnNjaGxpc3Q7CiAJaW50CQkJaTsKIAorCS8qIHVuc3VwcG9ydGVkIG9iamVj dCB0eXBlICovCisJaWYgKG9iamVjdFR5cGUgPT0gUFVCX09CSlRZUEVfVU5TVVBQT1JURUQp CisJCXJldHVybiByZXN1bHQ7CisKKwlBc3NlcnRPYmplY3RUeXBlVmFsaWQob2JqZWN0VHlw ZSk7CisKIAkvKiBGaW5kIGFsbCBwdWJsaWNhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBz Y2hlbWEgKi8KIAlwdWJzY2hsaXN0ID0gU2VhcmNoU3lzQ2FjaGVMaXN0MShQVUJMSUNBVElP Tk5BTUVTUEFDRU1BUCwKIAkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKHNjaGVtYWlkKSk7 CkBAIC03NDIsNiArODc0LDExIEBAIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhPaWQgc2NoZW1h aWQpCiAJewogCQlIZWFwVHVwbGUJdHVwID0gJnB1YnNjaGxpc3QtPm1lbWJlcnNbaV0tPnR1 cGxlOwogCQlPaWQJCQlwdWJpZCA9ICgoRm9ybV9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2Up IEdFVFNUUlVDVCh0dXApKS0+cG5wdWJpZDsKKwkJY2hhcgkJcG50eXBlID0gKChGb3JtX3Bn X3B1YmxpY2F0aW9uX25hbWVzcGFjZSkgR0VUU1RSVUNUKHR1cCkpLT5wbnR5cGU7CisKKwkJ LyogU2tpcCBzY2hlbWFzIHB1Ymxpc2hpbmcgYSBkaWZmZXJlbnQgb2JqZWN0IHR5cGUuICov CisJCWlmIChwbnR5cGUgIT0gb2JqZWN0VHlwZSkKKwkJCWNvbnRpbnVlOwogCiAJCXJlc3Vs dCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcHViaWQpOwogCX0KQEAgLTc1Myw5ICs4OTAsMTMg QEAgR2V0U2NoZW1hUHVibGljYXRpb25zKE9pZCBzY2hlbWFpZCkKIAogLyoKICAqIEdldCB0 aGUgbGlzdCBvZiBwdWJsaXNoYWJsZSByZWxhdGlvbiBvaWRzIGZvciBhIHNwZWNpZmllZCBz Y2hlbWEuCisgKgorICogb2JqZWN0VHlwZSBzcGVjaWZpZXMgd2hldGhlciB0aGlzIGlzIEZP UiBBTEwgVEFCTEVTIElOIFNDSEVNQSBvciBGT1IgQUxMCisgKiBTRVFVRU5DRVMgSU4gU0NI RU1BCiAgKi8KIExpc3QgKgotR2V0U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHNj aGVtYWlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCitHZXRTY2hlbWFQdWJs aWNhdGlvblJlbGF0aW9ucyhPaWQgc2NoZW1haWQsIGNoYXIgb2JqZWN0VHlwZSwKKwkJCQkJ CQkgIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIHsKIAlSZWxhdGlvbgljbGFz c1JlbDsKIAlTY2FuS2V5RGF0YSBrZXlbMV07CkBAIC03NjQsNiArOTA1LDcgQEAgR2V0U2No ZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLCBQdWJsaWNhdGlvblBhcnRP cHQgcHViX3BhcnRvcHQpCiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwogCiAJQXNzZXJ0KE9p ZElzVmFsaWQoc2NoZW1haWQpKTsKKwlBc3NlcnRPYmplY3RUeXBlVmFsaWQob2JqZWN0VHlw ZSk7CiAKIAljbGFzc1JlbCA9IHRhYmxlX29wZW4oUmVsYXRpb25SZWxhdGlvbklkLCBBY2Nl c3NTaGFyZUxvY2spOwogCkBAIC03ODQsOSArOTI2LDE2IEBAIEdldFNjaGVtYVB1YmxpY2F0 aW9uUmVsYXRpb25zKE9pZCBzY2hlbWFpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0 b3B0KQogCQkJY29udGludWU7CiAKIAkJcmVsa2luZCA9IGdldF9yZWxfcmVsa2luZChyZWxp ZCk7Ci0JCWlmIChyZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04pCi0JCQlyZXN1bHQgPSBs YXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKLQkJZWxzZSBpZiAocmVsa2luZCA9PSBSRUxL SU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCisJCS8qIFNraXAgaWYgdGhlIHJlbGtpbmQgZG9l cyBub3QgbWF0Y2ggRk9SIEFMTCBUQUJMRVMgLyBTRVFVRU5DRVMuICovCisJCWlmICghcHVi X29iamVjdF90eXBlX21hdGNoZXNfcmVsa2luZChvYmplY3RUeXBlLCByZWxraW5kKSkKKwkJ CWNvbnRpbnVlOworCisJCS8qCisJCSAqIElmIHRoZSBvYmplY3QgaXMgYSBwYXJ0aXRpb25l ZCB0YWJsZSwgbG9va3VwIGFsbCB0aGUgY2hpbGQgcmVsYXRpb25zCisJCSAqIChpZiByZXF1 ZXN0ZWQpLiBPdGhlcndpc2UganVzdCBhZGQgdGhlIG9iamVjdCB0byB0aGUgbGlzdC4KKwkJ ICovCisJCWlmIChyZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCiAJCXsK IAkJCUxpc3QJICAgKnBhcnRpdGlvbnJlbHMgPSBOSUw7CiAKQEAgLTc5OSw3ICs5NDgsMTEg QEAgR2V0U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLCBQdWJsaWNh dGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCiAJCQkJCQkJCQkJCQkJCSAgIHB1Yl9wYXJ0b3B0 LAogCQkJCQkJCQkJCQkJCQkgICByZWxGb3JtLT5vaWQpOwogCQkJcmVzdWx0ID0gbGlzdF9j b25jYXRfdW5pcXVlX29pZChyZXN1bHQsIHBhcnRpdGlvbnJlbHMpOworCQkJY29udGludWU7 CiAJCX0KKworCQkvKiBub24tcGFydGl0aW9uZWQgdGFibGVzIGFuZCBzZXF1ZW5jZXMgKi8K KwkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJfQogCiAJdGFibGVf ZW5kc2NhbihzY2FuKTsKQEAgLTgwOSwyNyArOTYyLDY3IEBAIEdldFNjaGVtYVB1YmxpY2F0 aW9uUmVsYXRpb25zKE9pZCBzY2hlbWFpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0 b3B0KQogCiAvKgogICogR2V0cyB0aGUgbGlzdCBvZiBhbGwgcmVsYXRpb25zIHB1Ymxpc2hl ZCBieSBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEKLSAqIHB1YmxpY2F0aW9uLgorICogb3Ig Rk9SIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1YmxpY2F0aW9uLgogICovCiBMaXN0ICoK LUdldEFsbFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRp b25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQorR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlv bnMoT2lkIHB1YmlkLCBjaGFyIG9iamVjdFR5cGUsCisJCQkJCQkJCSBQdWJsaWNhdGlvblBh cnRPcHQgcHViX3BhcnRvcHQpCiB7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwotCUxpc3QJ ICAgKnB1YnNjaGVtYWxpc3QgPSBHZXRQdWJsaWNhdGlvblNjaGVtYXMocHViaWQpOworCUxp c3QJICAgKnB1YnNjaGVtYWxpc3QgPSBHZXRQdWJsaWNhdGlvblNjaGVtYXMocHViaWQsIG9i amVjdFR5cGUpOwogCUxpc3RDZWxsICAgKmNlbGw7CiAKKwlBc3NlcnRPYmplY3RUeXBlVmFs aWQob2JqZWN0VHlwZSk7CisKIAlmb3JlYWNoKGNlbGwsIHB1YnNjaGVtYWxpc3QpCiAJewog CQlPaWQJCQlzY2hlbWFpZCA9IGxmaXJzdF9vaWQoY2VsbCk7CiAJCUxpc3QJICAgKnNjaGVt YVJlbHMgPSBOSUw7CiAKLQkJc2NoZW1hUmVscyA9IEdldFNjaGVtYVB1YmxpY2F0aW9uUmVs YXRpb25zKHNjaGVtYWlkLCBwdWJfcGFydG9wdCk7CisJCXNjaGVtYVJlbHMgPSBHZXRTY2hl bWFQdWJsaWNhdGlvblJlbGF0aW9ucyhzY2hlbWFpZCwgb2JqZWN0VHlwZSwKKwkJCQkJCQkJ CQkJCSAgIHB1Yl9wYXJ0b3B0KTsKIAkJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBz Y2hlbWFSZWxzKTsKIAl9CiAKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogR2V0cyBs aXN0IG9mIGFsbCByZWxhdGlvbiBwdWJsaXNoZWQgYnkgRk9SIEFMTCBTRVFVRU5DRVMgcHVi bGljYXRpb24ocykuCisgKi8KK0xpc3QgKgorR2V0QWxsU2VxdWVuY2VzUHVibGljYXRpb25S ZWxhdGlvbnModm9pZCkKK3sKKwlSZWxhdGlvbgljbGFzc1JlbDsKKwlTY2FuS2V5RGF0YSBr ZXlbMV07CisJVGFibGVTY2FuRGVzYyBzY2FuOworCUhlYXBUdXBsZQl0dXBsZTsKKwlMaXN0 CSAgICpyZXN1bHQgPSBOSUw7CisKKwljbGFzc1JlbCA9IHRhYmxlX29wZW4oUmVsYXRpb25S ZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJU2NhbktleUluaXQoJmtleVswXSwK KwkJCQlBbnVtX3BnX2NsYXNzX3JlbGtpbmQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVy LCBGX0NIQVJFUSwKKwkJCQlDaGFyR2V0RGF0dW0oUkVMS0lORF9TRVFVRU5DRSkpOworCisJ c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9jYXRhbG9nKGNsYXNzUmVsLCAxLCBrZXkpOworCisJ d2hpbGUgKCh0dXBsZSA9IGhlYXBfZ2V0bmV4dChzY2FuLCBGb3J3YXJkU2NhbkRpcmVjdGlv bikpICE9IE5VTEwpCisJeworCQlGb3JtX3BnX2NsYXNzIHJlbEZvcm0gPSAoRm9ybV9wZ19j bGFzcykgR0VUU1RSVUNUKHR1cGxlKTsKKwkJT2lkCQkJcmVsaWQgPSByZWxGb3JtLT5vaWQ7 CisKKwkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSkKKwkJCXJl c3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcmVsaWQpOworCX0KKworCXRhYmxlX2VuZHNj YW4oc2Nhbik7CisKKwl0YWJsZV9jbG9zZShjbGFzc1JlbCwgQWNjZXNzU2hhcmVMb2NrKTsK KwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogR2V0IHB1YmxpY2F0aW9uIHVzaW5nIG9p ZAogICoKQEAgLTg1MiwxMCArMTA0NSwxMiBAQCBHZXRQdWJsaWNhdGlvbihPaWQgcHViaWQp CiAJcHViLT5vaWQgPSBwdWJpZDsKIAlwdWItPm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIocHVi Zm9ybS0+cHVibmFtZSkpOwogCXB1Yi0+YWxsdGFibGVzID0gcHViZm9ybS0+cHViYWxsdGFi bGVzOworCXB1Yi0+YWxsc2VxdWVuY2VzID0gcHViZm9ybS0+cHViYWxsc2VxdWVuY2VzOwog CXB1Yi0+cHViYWN0aW9ucy5wdWJpbnNlcnQgPSBwdWJmb3JtLT5wdWJpbnNlcnQ7CiAJcHVi LT5wdWJhY3Rpb25zLnB1YnVwZGF0ZSA9IHB1YmZvcm0tPnB1YnVwZGF0ZTsKIAlwdWItPnB1 YmFjdGlvbnMucHViZGVsZXRlID0gcHViZm9ybS0+cHViZGVsZXRlOwogCXB1Yi0+cHViYWN0 aW9ucy5wdWJ0cnVuY2F0ZSA9IHB1YmZvcm0tPnB1YnRydW5jYXRlOworCXB1Yi0+cHViYWN0 aW9ucy5wdWJzZXF1ZW5jZSA9IHB1YmZvcm0tPnB1YnNlcXVlbmNlOwogCXB1Yi0+cHVidmlh cm9vdCA9IHB1YmZvcm0tPnB1YnZpYXJvb3Q7CiAKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsK QEAgLTk2NiwxMCArMTE2MSwxMiBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCQkJCSAgICpzY2hlbWFyZWxpZHM7CiAKIAkJCXJlbGlkcyA9IEdl dFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmxpY2F0aW9uLT5vaWQsCisJCQkJCQkJCQkJCSBQ VUJfT0JKVFlQRV9UQUJMRSwKIAkJCQkJCQkJCQkJIHB1YmxpY2F0aW9uLT5wdWJ2aWFyb290 ID8KIAkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCA6CiAJCQkJCQkJCQkJCSBQ VUJMSUNBVElPTl9QQVJUX0xFQUYpOwogCQkJc2NoZW1hcmVsaWRzID0gR2V0QWxsU2NoZW1h UHVibGljYXRpb25SZWxhdGlvbnMocHVibGljYXRpb24tPm9pZCwKKwkJCQkJCQkJCQkJCQkJ CVBVQl9PQkpUWVBFX1RBQkxFLAogCQkJCQkJCQkJCQkJCQkJcHVibGljYXRpb24tPnB1YnZp YXJvb3QgPwogCQkJCQkJCQkJCQkJCQkJUFVCTElDQVRJT05fUEFSVF9ST09UIDoKIAkJCQkJ CQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfTEVBRik7CkBAIC0xMDA1LDMgKzEyMDIsNzEg QEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJU1JG X1JFVFVSTl9ET05FKGZ1bmNjdHgpOwogfQorCisvKgorICogUmV0dXJucyBPaWRzIG9mIHNl cXVlbmNlcyBpbiBhIHB1YmxpY2F0aW9uLgorICovCitEYXR1bQorcGdfZ2V0X3B1YmxpY2F0 aW9uX3NlcXVlbmNlcyhQR19GVU5DVElPTl9BUkdTKQoreworCUZ1bmNDYWxsQ29udGV4dCAq ZnVuY2N0eDsKKwljaGFyCSAgICpwdWJuYW1lID0gdGV4dF90b19jc3RyaW5nKFBHX0dFVEFS R19URVhUX1BQKDApKTsKKwlQdWJsaWNhdGlvbiAqcHVibGljYXRpb247CisJTGlzdAkgICAq c2VxdWVuY2VzOworCisJLyogc3R1ZmYgZG9uZSBvbmx5IG9uIHRoZSBmaXJzdCBjYWxsIG9m IHRoZSBmdW5jdGlvbiAqLworCWlmIChTUkZfSVNfRklSU1RDQUxMKCkpCisJeworCQlNZW1v cnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwkJLyogY3JlYXRlIGEgZnVuY3Rpb24gY29udGV4 dCBmb3IgY3Jvc3MtY2FsbCBwZXJzaXN0ZW5jZSAqLworCQlmdW5jY3R4ID0gU1JGX0ZJUlNU Q0FMTF9JTklUKCk7CisKKwkJLyogc3dpdGNoIHRvIG1lbW9yeSBjb250ZXh0IGFwcHJvcHJp YXRlIGZvciBtdWx0aXBsZSBmdW5jdGlvbiBjYWxscyAqLworCQlvbGRjb250ZXh0ID0gTWVt b3J5Q29udGV4dFN3aXRjaFRvKGZ1bmNjdHgtPm11bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisK KwkJcHVibGljYXRpb24gPSBHZXRQdWJsaWNhdGlvbkJ5TmFtZShwdWJuYW1lLCBmYWxzZSk7 CisKKwkJLyoKKwkJICogUHVibGljYXRpb25zIHN1cHBvcnQgcGFydGl0aW9uZWQgdGFibGVz LCBhbHRob3VnaCBhbGwgY2hhbmdlcyBhcmUKKwkJICogcmVwbGljYXRlZCB1c2luZyBsZWFm IHBhcnRpdGlvbiBpZGVudGl0eSBhbmQgc2NoZW1hLCBzbyB3ZSBvbmx5CisJCSAqIG5lZWQg dGhvc2UuCisJCSAqLworCQlpZiAocHVibGljYXRpb24tPmFsbHNlcXVlbmNlcykKKwkJCXNl cXVlbmNlcyA9IEdldEFsbFNlcXVlbmNlc1B1YmxpY2F0aW9uUmVsYXRpb25zKCk7CisJCWVs c2UKKwkJeworCQkJTGlzdAkgICAqcmVsaWRzLAorCQkJCQkgICAqc2NoZW1hcmVsaWRzOwor CisJCQlyZWxpZHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJsaWNhdGlvbi0+b2lk LAorCQkJCQkJCQkJCQkgUFVCX09CSlRZUEVfU0VRVUVOQ0UsCisJCQkJCQkJCQkJCSBwdWJs aWNhdGlvbi0+cHVidmlhcm9vdCA/CisJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX1JP T1QgOgorCQkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9MRUFGKTsKKwkJCXNjaGVtYXJl bGlkcyA9IEdldEFsbFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmxpY2F0aW9uLT5v aWQsCisJCQkJCQkJCQkJCQkJCQlQVUJfT0JKVFlQRV9TRVFVRU5DRSwKKwkJCQkJCQkJCQkJ CQkJCXB1YmxpY2F0aW9uLT5wdWJ2aWFyb290ID8KKwkJCQkJCQkJCQkJCQkJCVBVQkxJQ0FU SU9OX1BBUlRfUk9PVCA6CisJCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9QQVJUX0xFQUYp OworCQkJc2VxdWVuY2VzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChyZWxpZHMsIHNjaGVt YXJlbGlkcyk7CisJCX0KKworCQlmdW5jY3R4LT51c2VyX2ZjdHggPSAodm9pZCAqKSBzZXF1 ZW5jZXM7CisKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworCX0KKwor CS8qIHN0dWZmIGRvbmUgb24gZXZlcnkgY2FsbCBvZiB0aGUgZnVuY3Rpb24gKi8KKwlmdW5j Y3R4ID0gU1JGX1BFUkNBTExfU0VUVVAoKTsKKwlzZXF1ZW5jZXMgPSAoTGlzdCAqKSBmdW5j Y3R4LT51c2VyX2ZjdHg7CisKKwlpZiAoZnVuY2N0eC0+Y2FsbF9jbnRyIDwgbGlzdF9sZW5n dGgoc2VxdWVuY2VzKSkKKwl7CisJCU9pZAkJCXJlbGlkID0gbGlzdF9udGhfb2lkKHNlcXVl bmNlcywgZnVuY2N0eC0+Y2FsbF9jbnRyKTsKKworCQlTUkZfUkVUVVJOX05FWFQoZnVuY2N0 eCwgT2JqZWN0SWRHZXREYXR1bShyZWxpZCkpOworCX0KKworCVNSRl9SRVRVUk5fRE9ORShm dW5jY3R4KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3Zp ZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCBi ZDQ4ZWU3YmQyNS4uOWFjOGU5YTI5OTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92 aWV3cy5zcWwKQEAgLTM3NCw2ICszNzQsMTYgQEAgQ1JFQVRFIFZJRVcgcGdfcHVibGljYXRp b25fdGFibGVzIEFTCiAgICAgICAgICBwZ19jbGFzcyBDIEpPSU4gcGdfbmFtZXNwYWNlIE4g T04gKE4ub2lkID0gQy5yZWxuYW1lc3BhY2UpCiAgICAgV0hFUkUgQy5vaWQgPSBHUFQucmVs aWQ7CiAKK0NSRUFURSBWSUVXIHBnX3B1YmxpY2F0aW9uX3NlcXVlbmNlcyBBUworICAgIFNF TEVDVAorICAgICAgICBQLnB1Ym5hbWUgQVMgcHVibmFtZSwKKyAgICAgICAgTi5uc3BuYW1l IEFTIHNjaGVtYW5hbWUsCisgICAgICAgIEMucmVsbmFtZSBBUyBzZXF1ZW5jZW5hbWUKKyAg ICBGUk9NIHBnX3B1YmxpY2F0aW9uIFAsCisgICAgICAgICBMQVRFUkFMIHBnX2dldF9wdWJs aWNhdGlvbl9zZXF1ZW5jZXMoUC5wdWJuYW1lKSBHUFMsCisgICAgICAgICBwZ19jbGFzcyBD IEpPSU4gcGdfbmFtZXNwYWNlIE4gT04gKE4ub2lkID0gQy5yZWxuYW1lc3BhY2UpCisgICAg V0hFUkUgQy5vaWQgPSBHUFMucmVsaWQ7CisKIENSRUFURSBWSUVXIHBnX2xvY2tzIEFTCiAg ICAgU0VMRUNUICogRlJPTSBwZ19sb2NrX3N0YXR1cygpIEFTIEw7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggMWFhZDJlNzY5Y2IuLjkyNTA1ZjQ2 OTlmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMTYs NiArMTYsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgiCiAjaW5jbHVkZSAiYWNj ZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImFjY2Vzcy9yZWxhdGlvbi5oIgogI2lu Y2x1ZGUgImFjY2Vzcy90YWJsZS5oIgogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgiCkBAIC02NywxNSArNjgsMTcgQEAgdHlwZWRlZiBz dHJ1Y3QgcmZfY29udGV4dAogfSByZl9jb250ZXh0OwogCiBzdGF0aWMgTGlzdCAqT3BlblJl bElkTGlzdChMaXN0ICpyZWxpZHMpOwotc3RhdGljIExpc3QgKk9wZW5UYWJsZUxpc3QoTGlz dCAqdGFibGVzKTsKLXN0YXRpYyB2b2lkIENsb3NlVGFibGVMaXN0KExpc3QgKnJlbHMpOwor c3RhdGljIExpc3QgKk9wZW5SZWxhdGlvbkxpc3QoTGlzdCAqcmVscywgY2hhciBvYmplY3RU eXBlKTsKK3N0YXRpYyB2b2lkIENsb3NlUmVsYXRpb25MaXN0KExpc3QgKnJlbHMpOwogc3Rh dGljIHZvaWQgTG9ja1NjaGVtYUxpc3QoTGlzdCAqc2NoZW1hbGlzdCk7Ci1zdGF0aWMgdm9p ZCBQdWJsaWNhdGlvbkFkZFRhYmxlcyhPaWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgaWZf bm90X2V4aXN0cywKK3N0YXRpYyB2b2lkIFB1YmxpY2F0aW9uQWRkUmVsYXRpb25zKE9pZCBw dWJpZCwgTGlzdCAqcmVscywgYm9vbCBpZl9ub3RfZXhpc3RzLAogCQkJCQkJCQkgQWx0ZXJQ dWJsaWNhdGlvblN0bXQgKnN0bXQpOwotc3RhdGljIHZvaWQgUHVibGljYXRpb25Ecm9wVGFi bGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBtaXNzaW5nX29rKTsKLXN0YXRpYyB2 b2lkIFB1YmxpY2F0aW9uQWRkU2NoZW1hcyhPaWQgcHViaWQsIExpc3QgKnNjaGVtYXMsIGJv b2wgaWZfbm90X2V4aXN0cywKLQkJCQkJCQkJICBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3Rt dCk7Ci1zdGF0aWMgdm9pZCBQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKE9pZCBwdWJpZCwgTGlz dCAqc2NoZW1hcywgYm9vbCBtaXNzaW5nX29rKTsKK3N0YXRpYyB2b2lkIFB1YmxpY2F0aW9u RHJvcFJlbGF0aW9ucyhPaWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgbWlzc2luZ19vayk7 CitzdGF0aWMgdm9pZCBQdWJsaWNhdGlvbkFkZFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpz Y2hlbWFzLCBjaGFyIG9iamVjdFR5cGUsCisJCQkJCQkJCSAgYm9vbCBpZl9ub3RfZXhpc3Rz LCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCk7CitzdGF0aWMgdm9pZCBQdWJsaWNhdGlv bkRyb3BTY2hlbWFzKE9pZCBwdWJpZCwgTGlzdCAqc2NoZW1hcywgY2hhciBvYmplY3RUeXBl LAorCQkJCQkJCQkgICBib29sIG1pc3Npbmdfb2spOworCiAKIHN0YXRpYyB2b2lkCiBwYXJz ZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKQEAgLTk1LDYgKzk4 LDcgQEAgcGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJ cHViYWN0aW9ucy0+cHVidXBkYXRlID0gdHJ1ZTsKIAlwdWJhY3Rpb25zLT5wdWJkZWxldGUg PSB0cnVlOwogCXB1YmFjdGlvbnMtPnB1YnRydW5jYXRlID0gdHJ1ZTsKKwlwdWJhY3Rpb25z LT5wdWJzZXF1ZW5jZSA9IHRydWU7CiAJKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0g ZmFsc2U7CiAKIAkvKiBQYXJzZSBvcHRpb25zICovCkBAIC0xMTksNiArMTIzLDcgQEAgcGFy c2VfcHVibGljYXRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlwdWJhY3Rp b25zLT5wdWJ1cGRhdGUgPSBmYWxzZTsKIAkJCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IGZh bHNlOwogCQkJcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSBmYWxzZTsKKwkJCXB1YmFjdGlv bnMtPnB1YnNlcXVlbmNlID0gZmFsc2U7CiAKIAkJCSpwdWJsaXNoX2dpdmVuID0gdHJ1ZTsK IAkJCXB1Ymxpc2ggPSBkZWZHZXRTdHJpbmcoZGVmZWwpOwpAQCAtMTQxLDYgKzE0Niw4IEBA IHBhcnNlX3B1YmxpY2F0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQlw dWJhY3Rpb25zLT5wdWJkZWxldGUgPSB0cnVlOwogCQkJCWVsc2UgaWYgKHN0cmNtcChwdWJs aXNoX29wdCwgInRydW5jYXRlIikgPT0gMCkKIAkJCQkJcHViYWN0aW9ucy0+cHVidHJ1bmNh dGUgPSB0cnVlOworCQkJCWVsc2UgaWYgKHN0cmNtcChwdWJsaXNoX29wdCwgInNlcXVlbmNl IikgPT0gMCkKKwkJCQkJcHViYWN0aW9ucy0+cHVic2VxdWVuY2UgPSB0cnVlOwogCQkJCWVs c2UKIAkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCkBAIC0xNjcsNyArMTc0LDkgQEAgcGFyc2VfcHVibGljYXRpb25fb3B0aW9u cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAgKi8KIHN0YXRpYyB2b2lkCiBPYmplY3RzSW5QdWJs aWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0 ZSwKLQkJCQkJCSAgIExpc3QgKipyZWxzLCBMaXN0ICoqc2NoZW1hcykKKwkJCQkJCSAgIExp c3QgKip0YWJsZXMsIExpc3QgKipzZXF1ZW5jZXMsCisJCQkJCQkgICBMaXN0ICoqdGFibGVz X3NjaGVtYXMsIExpc3QgKipzZXF1ZW5jZXNfc2NoZW1hcywKKwkJCQkJCSAgIExpc3QgKipz Y2hlbWFzKQogewogCUxpc3RDZWxsICAgKmNlbGw7CiAJUHVibGljYXRpb25PYmpTcGVjICpw dWJvYmo7CkBAIC0xODUsMTIgKzE5NCwyMyBAQCBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lk cyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJc3dpdGNo IChwdWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFC TEU6Ci0JCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJ CQkqdGFibGVzID0gbGFwcGVuZCgqdGFibGVzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQli cmVhazsKKwkJCWNhc2UgUFVCTElDQVRJT05PQkpfU0VRVUVOQ0U6CisJCQkJKnNlcXVlbmNl cyA9IGxhcHBlbmQoKnNlcXVlbmNlcywgcHVib2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7 CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUE6CiAJCQkJc2NoZW1h aWQgPSBnZXRfbmFtZXNwYWNlX29pZChwdWJvYmotPm5hbWUsIGZhbHNlKTsKIAogCQkJCS8q IEZpbHRlciBvdXQgZHVwbGljYXRlcyBpZiB1c2VyIHNwZWNpZmllcyAic2NoMSwgc2NoMSIg Ki8KKwkJCQkqdGFibGVzX3NjaGVtYXMgPSBsaXN0X2FwcGVuZF91bmlxdWVfb2lkKCp0YWJs ZXNfc2NoZW1hcywgc2NoZW1haWQpOworCQkJCSpzY2hlbWFzID0gbGlzdF9hcHBlbmRfdW5p cXVlX29pZCgqc2NoZW1hcywgc2NoZW1haWQpOworCQkJCWJyZWFrOworCQkJY2FzZSBQVUJM SUNBVElPTk9CSl9TRVFVRU5DRVNfSU5fU0NIRU1BOgorCQkJCXNjaGVtYWlkID0gZ2V0X25h bWVzcGFjZV9vaWQocHVib2JqLT5uYW1lLCBmYWxzZSk7CisKKwkJCQkvKiBGaWx0ZXIgb3V0 IGR1cGxpY2F0ZXMgaWYgdXNlciBzcGVjaWZpZXMgInNjaDEsIHNjaDEiICovCisJCQkJKnNl cXVlbmNlc19zY2hlbWFzID0gbGlzdF9hcHBlbmRfdW5pcXVlX29pZCgqc2VxdWVuY2VzX3Nj aGVtYXMsIHNjaGVtYWlkKTsKIAkJCQkqc2NoZW1hcyA9IGxpc3RfYXBwZW5kX3VuaXF1ZV9v aWQoKnNjaGVtYXMsIHNjaGVtYWlkKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJ T05PQkpfVEFCTEVTX0lOX0NVUl9TQ0hFTUE6CkBAIC0yMDQsNiArMjI0LDIxIEBAIE9iamVj dHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VTdGF0 ZSAqcHN0YXRlLAogCQkJCWxpc3RfZnJlZShzZWFyY2hfcGF0aCk7CiAKIAkJCQkvKiBGaWx0 ZXIgb3V0IGR1cGxpY2F0ZXMgaWYgdXNlciBzcGVjaWZpZXMgInNjaDEsIHNjaDEiICovCisJ CQkJKnRhYmxlc19zY2hlbWFzID0gbGlzdF9hcHBlbmRfdW5pcXVlX29pZCgqdGFibGVzX3Nj aGVtYXMsIHNjaGVtYWlkKTsKKwkJCQkqc2NoZW1hcyA9IGxpc3RfYXBwZW5kX3VuaXF1ZV9v aWQoKnNjaGVtYXMsIHNjaGVtYWlkKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUFVCTElDQVRJ T05PQkpfU0VRVUVOQ0VTX0lOX0NVUl9TQ0hFTUE6CisJCQkJc2VhcmNoX3BhdGggPSBmZXRj aF9zZWFyY2hfcGF0aChmYWxzZSk7CisJCQkJaWYgKHNlYXJjaF9wYXRoID09IE5JTCkgLyog bm90aGluZyB2YWxpZCBpbiBzZWFyY2hfcGF0aD8gKi8KKwkJCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX1NDSEVNQSksCisJCQkJCQkJZXJy bXNnKCJubyBzY2hlbWEgaGFzIGJlZW4gc2VsZWN0ZWQgZm9yIENVUlJFTlRfU0NIRU1BIikp OworCisJCQkJc2NoZW1haWQgPSBsaW5pdGlhbF9vaWQoc2VhcmNoX3BhdGgpOworCQkJCWxp c3RfZnJlZShzZWFyY2hfcGF0aCk7CisKKwkJCQkvKiBGaWx0ZXIgb3V0IGR1cGxpY2F0ZXMg aWYgdXNlciBzcGVjaWZpZXMgInNjaDEsIHNjaDEiICovCisJCQkJKnNlcXVlbmNlc19zY2hl bWFzID0gbGlzdF9hcHBlbmRfdW5pcXVlX29pZCgqc2VxdWVuY2VzX3NjaGVtYXMsIHNjaGVt YWlkKTsKIAkJCQkqc2NoZW1hcyA9IGxpc3RfYXBwZW5kX3VuaXF1ZV9vaWQoKnNjaGVtYXMs IHNjaGVtYWlkKTsKIAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CkBAIC0yNDAsNiArMjc1LDE0 IEBAIENoZWNrT2JqU2NoZW1hTm90QWxyZWFkeUluUHVibGljYXRpb24oTGlzdCAqcmVscywg TGlzdCAqc2NoZW1haWRsaXN0LAogCQkJCQkJZXJyZGV0YWlsKCJUYWJsZSBcIiVzXCIgaW4g c2NoZW1hIFwiJXNcIiBpcyBhbHJlYWR5IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uLCBhZGRp bmcgdGhlIHNhbWUgc2NoZW1hIGlzIG5vdCBzdXBwb3J0ZWQuIiwKIAkJCQkJCQkJICBSZWxh dGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLAogCQkJCQkJCQkgIGdldF9uYW1lc3BhY2VfbmFt ZShyZWxTY2hlbWFJZCkpKTsKKwkJCWVsc2UgaWYgKGNoZWNrb2JqdHlwZSA9PSBQVUJMSUNB VElPTk9CSl9TRVFVRU5DRVNfSU5fU0NIRU1BKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJZXJy bXNnKCJjYW5ub3QgYWRkIHNjaGVtYSBcIiVzXCIgdG8gcHVibGljYXRpb24iLAorCQkJCQkJ CSAgIGdldF9uYW1lc3BhY2VfbmFtZShyZWxTY2hlbWFJZCkpLAorCQkJCQkJZXJyZGV0YWls KCJTRXF1ZW5jZSBcIiVzXCIgaW4gc2NoZW1hIFwiJXNcIiBpcyBhbHJlYWR5IHBhcnQgb2Yg dGhlIHB1YmxpY2F0aW9uLCBhZGRpbmcgdGhlIHNhbWUgc2NoZW1hIGlzIG5vdCBzdXBwb3J0 ZWQuIiwKKwkJCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLAorCQkJCQkJ CQkgIGdldF9uYW1lc3BhY2VfbmFtZShyZWxTY2hlbWFJZCkpKTsKIAkJCWVsc2UgaWYgKGNo ZWNrb2JqdHlwZSA9PSBQVUJMSUNBVElPTk9CSl9UQUJMRSkKIAkJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKQEAg LTI0OCw2ICsyOTEsMTQgQEAgQ2hlY2tPYmpTY2hlbWFOb3RBbHJlYWR5SW5QdWJsaWNhdGlv bihMaXN0ICpyZWxzLCBMaXN0ICpzY2hlbWFpZGxpc3QsCiAJCQkJCQkJICAgUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsKSksCiAJCQkJCQllcnJkZXRhaWwoIlRhYmxlJ3Mgc2NoZW1h IFwiJXNcIiBpcyBhbHJlYWR5IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uIG9yIHBhcnQgb2Yg dGhlIHNwZWNpZmllZCBzY2hlbWEgbGlzdC4iLAogCQkJCQkJCQkgIGdldF9uYW1lc3BhY2Vf bmFtZShyZWxTY2hlbWFJZCkpKTsKKwkJCWVsc2UgaWYgKGNoZWNrb2JqdHlwZSA9PSBQVUJM SUNBVElPTk9CSl9TRVFVRU5DRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCWVycm1zZygiY2Fu bm90IGFkZCByZWxhdGlvbiBcIiVzLiVzXCIgdG8gcHVibGljYXRpb24iLAorCQkJCQkJCSAg IGdldF9uYW1lc3BhY2VfbmFtZShyZWxTY2hlbWFJZCksCisJCQkJCQkJICAgUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsKSksCisJCQkJCQllcnJkZXRhaWwoIlNlcXVlbmNlJ3Mgc2No ZW1hIFwiJXNcIiBpcyBhbHJlYWR5IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uIG9yIHBhcnQg b2YgdGhlIHNwZWNpZmllZCBzY2hlbWEgbGlzdC4iLAorCQkJCQkJCQkgIGdldF9uYW1lc3Bh Y2VfbmFtZShyZWxTY2hlbWFJZCkpKTsKIAkJfQogCX0KIH0KQEAgLTYxNSw2ICs2NjYsNyBA QCBUcmFuc2Zvcm1QdWJXaGVyZUNsYXVzZXMoTGlzdCAqdGFibGVzLCBjb25zdCBjaGFyICpx dWVyeVN0cmluZywKIE9iamVjdEFkZHJlc3MKIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogeworCUxpc3RDZWxs ICAgKmxjOwogCVJlbGF0aW9uCXJlbDsKIAlPYmplY3RBZGRyZXNzIG15c2VsZjsKIAlPaWQJ CQlwdWJvaWQ7CkBAIC02MjYsOSArNjc4LDMxIEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCWJvb2wJCXB1 Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290X2dpdmVuOwogCWJvb2wJCXB1Ymxpc2hfdmlhX3Bh cnRpdGlvbl9yb290OwogCUFjbFJlc3VsdAlhY2xyZXN1bHQ7Ci0JTGlzdAkgICAqcmVsYXRp b25zID0gTklMOworCUxpc3QJICAgKnRhYmxlcyA9IE5JTDsKKwlMaXN0CSAgICpzZXF1ZW5j ZXMgPSBOSUw7CisJTGlzdAkgICAqdGFibGVzX3NjaGVtYWlkbGlzdCA9IE5JTDsKKwlMaXN0 CSAgICpzZXF1ZW5jZXNfc2NoZW1haWRsaXN0ID0gTklMOwogCUxpc3QJICAgKnNjaGVtYWlk bGlzdCA9IE5JTDsKIAorCWJvb2wJCWZvcl9hbGxfdGFibGVzID0gZmFsc2U7CisJYm9vbAkJ Zm9yX2FsbF9zZXF1ZW5jZXMgPSBmYWxzZTsKKworCS8qCisJICogWFhYIFRyYW5zbGF0ZSB0 aGUgbGlzdCBvZiBvYmplY3QgdHlwZXMgKHJlcHJlc2VudGVkIGJ5IHN0cmluZ3MpIHRvIGJv b2wKKwkgKiBmbGFncy4gTm90IHN1cmUgdGhpcyBpcyB0aGUgYmVzdCB3YXksIG1heWJlIGl0 IHNob3VsZCBiZSBkb25lIGluIHRoZQorCSAqIGdyYW1tYXIgZGlyZWN0bHksIHNvbWVob3cu CisJICoKKwkgKiBYWFggU2hvdWxkIHByZXZlbnQgZHVwbGljYXRlcywgbGlrZSBGT1IgQUxM IFRBQkxFUywgVEFCTEVTLCBUQUJMRVM/CisJICovCisJZm9yZWFjaCAobGMsIHN0bXQtPmZv cl9hbGxfb2JqZWN0cykKKwl7CisJCWNoYXIgICAqdmFsID0gc3RyVmFsKGxmaXJzdChsYykp OworCQlpZiAoc3RyY21wKHZhbCwgInRhYmxlcyIpID09IDApCisJCQlmb3JfYWxsX3RhYmxl cyA9IHRydWU7CisJCWVsc2UgaWYgKHN0cmNtcCh2YWwsICJzZXF1ZW5jZXMiKSA9PSAwKQor CQkJZm9yX2FsbF9zZXF1ZW5jZXMgPSB0cnVlOworCX0KKwogCS8qIG11c3QgaGF2ZSBDUkVB VEUgcHJpdmlsZWdlIG9uIGRhdGFiYXNlICovCiAJYWNscmVzdWx0ID0gcGdfZGF0YWJhc2Vf YWNsY2hlY2soTXlEYXRhYmFzZUlkLCBHZXRVc2VySWQoKSwgQUNMX0NSRUFURSk7CiAJaWYg KGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKQEAgLTYzNiw3ICs3MTAsNyBAQCBDcmVhdGVQ dWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAq c3RtdCkKIAkJCQkJICAgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSk7CiAKIAkv KiBGT1IgQUxMIFRBQkxFUyByZXF1aXJlcyBzdXBlcnVzZXIgKi8KLQlpZiAoc3RtdC0+Zm9y X2FsbF90YWJsZXMgJiYgIXN1cGVydXNlcigpKQorCWlmIChmb3JfYWxsX3RhYmxlcyAmJiAh c3VwZXJ1c2VyKCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKIAkJCQkgZXJybXNnKCJtdXN0IGJlIHN1cGVydXNl ciB0byBjcmVhdGUgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb24iKSkpOwpAQCAtNjcyLDcg Kzc0Niw5IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRl UHVibGljYXRpb25TdG10ICpzdG10KQogCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX29p ZCk7CiAJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fb2lkIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKHB1Ym9pZCk7CiAJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFi bGVzIC0gMV0gPQotCQlCb29sR2V0RGF0dW0oc3RtdC0+Zm9yX2FsbF90YWJsZXMpOworCQlC b29sR2V0RGF0dW0oZm9yX2FsbF90YWJsZXMpOworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0 aW9uX3B1YmFsbHNlcXVlbmNlcyAtIDFdID0KKwkJQm9vbEdldERhdHVtKGZvcl9hbGxfc2Vx dWVuY2VzKTsKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJpbnNlcnQgLSAxXSA9 CiAJCUJvb2xHZXREYXR1bShwdWJhY3Rpb25zLnB1Ymluc2VydCk7CiAJdmFsdWVzW0FudW1f cGdfcHVibGljYXRpb25fcHVidXBkYXRlIC0gMV0gPQpAQCAtNjgxLDYgKzc1Nyw4IEBAIENy ZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25T dG10ICpzdG10KQogCQlCb29sR2V0RGF0dW0ocHViYWN0aW9ucy5wdWJkZWxldGUpOwogCXZh bHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnRydW5jYXRlIC0gMV0gPQogCQlCb29sR2V0 RGF0dW0ocHViYWN0aW9ucy5wdWJ0cnVuY2F0ZSk7CisJdmFsdWVzW0FudW1fcGdfcHVibGlj YXRpb25fcHVic2VxdWVuY2UgLSAxXSA9CisJCUJvb2xHZXREYXR1bShwdWJhY3Rpb25zLnB1 YnNlcXVlbmNlKTsKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFyb290IC0g MV0gPQogCQlCb29sR2V0RGF0dW0ocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCkBA IC02OTgsNDUgKzc3Niw4NCBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3Rh dGUsIENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAlDb21tYW5kQ291bnRlckluY3Jl bWVudCgpOwogCiAJLyogQXNzb2NpYXRlIG9iamVjdHMgd2l0aCB0aGUgcHVibGljYXRpb24u ICovCi0JaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVzKQorCWlmIChmb3JfYWxsX3RhYmxlcyB8 fCBmb3JfYWxsX3NlcXVlbmNlcykKIAl7CiAJCS8qIEludmFsaWRhdGUgcmVsY2FjaGUgc28g dGhhdCBwdWJsaWNhdGlvbiBpbmZvIGlzIHJlYnVpbHQuICovCiAJCUNhY2hlSW52YWxpZGF0 ZVJlbGNhY2hlQWxsKCk7CiAJfQotCWVsc2UKKworCWlmICghZm9yX2FsbF90YWJsZXMgfHwg IWZvcl9hbGxfc2VxdWVuY2VzKQogCXsKLQkJT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMo c3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAorCQlPYmplY3RzSW5QdWJs aWNhdGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsCisJCQkJCQkJCSAgICZ0 YWJsZXMsICZzZXF1ZW5jZXMsCisJCQkJCQkJCSAgICZ0YWJsZXNfc2NoZW1haWRsaXN0LAor CQkJCQkJCQkgICAmc2VxdWVuY2VzX3NjaGVtYWlkbGlzdCwKIAkJCQkJCQkJICAgJnNjaGVt YWlkbGlzdCk7CiAKIAkJLyogRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHJlcXVpcmVzIHN1 cGVydXNlciAqLwotCQlpZiAobGlzdF9sZW5ndGgoc2NoZW1haWRsaXN0KSA+IDAgJiYgIXN1 cGVydXNlcigpKQorCQlpZiAobGlzdF9sZW5ndGgodGFibGVzX3NjaGVtYWlkbGlzdCkgPiAw ICYmICFzdXBlcnVzZXIoKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCWVycmNvZGUoRVJS Q09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKIAkJCQkJZXJybXNnKCJtdXN0IGJlIHN1 cGVydXNlciB0byBjcmVhdGUgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpY2F0aW9u IikpOwogCi0JCWlmIChsaXN0X2xlbmd0aChyZWxhdGlvbnMpID4gMCkKKwkJLyogRk9SIEFM TCBTRVFVRU5DRVMgSU4gU0NIRU1BIHJlcXVpcmVzIHN1cGVydXNlciAqLworCQlpZiAobGlz dF9sZW5ndGgoc2VxdWVuY2VzX3NjaGVtYWlkbGlzdCkgPiAwICYmICFzdXBlcnVzZXIoKSkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRf UFJJVklMRUdFKSwKKwkJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBjcmVhdGUg Rk9SIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1YmxpY2F0aW9uIikpOworCisJCS8qIHRh YmxlcyBhZGRlZCBkaXJlY3RseSAqLworCQlpZiAobGlzdF9sZW5ndGgodGFibGVzKSA+IDAp CiAJCXsKIAkJCUxpc3QJICAgKnJlbHM7CiAKLQkJCXJlbHMgPSBPcGVuVGFibGVMaXN0KHJl bGF0aW9ucyk7Ci0JCQlDaGVja09ialNjaGVtYU5vdEFscmVhZHlJblB1YmxpY2F0aW9uKHJl bHMsIHNjaGVtYWlkbGlzdCwKKwkJCXJlbHMgPSBPcGVuUmVsYXRpb25MaXN0KHRhYmxlcywg UFVCX09CSlRZUEVfVEFCTEUpOworCQkJQ2hlY2tPYmpTY2hlbWFOb3RBbHJlYWR5SW5QdWJs aWNhdGlvbihyZWxzLCB0YWJsZXNfc2NoZW1haWRsaXN0LAogCQkJCQkJCQkJCQkJICBQVUJM SUNBVElPTk9CSl9UQUJMRSk7CiAKIAkJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxz LCBwc3RhdGUtPnBfc291cmNldGV4dCwKIAkJCQkJCQkJCSBwdWJsaXNoX3ZpYV9wYXJ0aXRp b25fcm9vdCk7CiAKLQkJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1 ZSwgTlVMTCk7Ci0JCQlDbG9zZVRhYmxlTGlzdChyZWxzKTsKKwkJCVB1YmxpY2F0aW9uQWRk UmVsYXRpb25zKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7CisJCQlDbG9zZVJlbGF0aW9u TGlzdChyZWxzKTsKIAkJfQogCi0JCWlmIChsaXN0X2xlbmd0aChzY2hlbWFpZGxpc3QpID4g MCkKKwkJLyogc2VxdWVuY2VzIGFkZGVkIGRpcmVjdGx5ICovCisJCWlmIChsaXN0X2xlbmd0 aChzZXF1ZW5jZXMpID4gMCkKKwkJeworCQkJTGlzdAkgICAqcmVsczsKKworCQkJcmVscyA9 IE9wZW5SZWxhdGlvbkxpc3Qoc2VxdWVuY2VzLCBQVUJfT0JKVFlQRV9TRVFVRU5DRSk7CisJ CQlDaGVja09ialNjaGVtYU5vdEFscmVhZHlJblB1YmxpY2F0aW9uKHJlbHMsIHNlcXVlbmNl c19zY2hlbWFpZGxpc3QsCisJCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OT0JKX1NFUVVFTkNF KTsKKwkJCVB1YmxpY2F0aW9uQWRkUmVsYXRpb25zKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVM TCk7CisJCQlDbG9zZVJlbGF0aW9uTGlzdChyZWxzKTsKKwkJfQorCisJCS8qIHRhYmxlcyBh ZGRlZCB0aHJvdWdoIGEgc2NoZW1hICovCisJCWlmIChsaXN0X2xlbmd0aCh0YWJsZXNfc2No ZW1haWRsaXN0KSA+IDApCiAJCXsKIAkJCS8qCiAJCQkgKiBTY2hlbWEgbG9jayBpcyBoZWxk IHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHRvIHByZXZlbnQKIAkJCSAqIGNv bmN1cnJlbnQgc2NoZW1hIGRlbGV0aW9uLgogCQkJICovCi0JCQlMb2NrU2NoZW1hTGlzdChz Y2hlbWFpZGxpc3QpOwotCQkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1Ym9pZCwgc2NoZW1h aWRsaXN0LCB0cnVlLCBOVUxMKTsKKwkJCUxvY2tTY2hlbWFMaXN0KHRhYmxlc19zY2hlbWFp ZGxpc3QpOworCQkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1Ym9pZCwKKwkJCQkJCQkJICB0 YWJsZXNfc2NoZW1haWRsaXN0LCBQVUJfT0JKVFlQRV9UQUJMRSwKKwkJCQkJCQkJICB0cnVl LCBOVUxMKTsKKwkJfQorCisJCS8qIHNlcXVlbmNlcyBhZGRlZCB0aHJvdWdoIGEgc2NoZW1h ICovCisJCWlmIChsaXN0X2xlbmd0aChzZXF1ZW5jZXNfc2NoZW1haWRsaXN0KSA+IDApCisJ CXsKKwkJCS8qCisJCQkgKiBTY2hlbWEgbG9jayBpcyBoZWxkIHVudGlsIHRoZSBwdWJsaWNh dGlvbiBpcyBjcmVhdGVkIHRvIHByZXZlbnQKKwkJCSAqIGNvbmN1cnJlbnQgc2NoZW1hIGRl bGV0aW9uLgorCQkJICovCisJCQlMb2NrU2NoZW1hTGlzdChzZXF1ZW5jZXNfc2NoZW1haWRs aXN0KTsKKwkJCVB1YmxpY2F0aW9uQWRkU2NoZW1hcyhwdWJvaWQsCisJCQkJCQkJCSAgc2Vx dWVuY2VzX3NjaGVtYWlkbGlzdCwgUFVCX09CSlRZUEVfU0VRVUVOQ0UsCisJCQkJCQkJCSAg dHJ1ZSwgTlVMTCk7CiAJCX0KIAl9CiAKQEAgLTc5OSw2ICs5MTYsNyBAQCBBbHRlclB1Ymxp Y2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10 ICpzdG10LAogCQkJCQkJICAgQWNjZXNzU2hhcmVMb2NrKTsKIAogCQlyb290X3JlbGlkcyA9 IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwKKwkJCQkJCQkJCQkJICBQ VUJfT0JKVFlQRV9UQUJMRSwKIAkJCQkJCQkJCQkJICBQVUJMSUNBVElPTl9QQVJUX1JPT1Qp OwogCiAJCWZvcmVhY2gobGMsIHJvb3RfcmVsaWRzKQpAQCAtODU3LDYgKzk3NSw5IEBAIEFs dGVyUHVibGljYXRpb25PcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNh dGlvblN0bXQgKnN0bXQsCiAKIAkJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHVidHJ1 bmNhdGUgLSAxXSA9IEJvb2xHZXREYXR1bShwdWJhY3Rpb25zLnB1YnRydW5jYXRlKTsKIAkJ cmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gdHJ1ZTsK KworCQl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJzZXF1ZW5jZSAtIDFdID0gQm9v bEdldERhdHVtKHB1YmFjdGlvbnMucHVic2VxdWVuY2UpOworCQlyZXBsYWNlc1tBbnVtX3Bn X3B1YmxpY2F0aW9uX3B1YnNlcXVlbmNlIC0gMV0gPSB0cnVlOwogCX0KIAogCWlmIChwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdF9naXZlbikKQEAgLTg3Niw3ICs5OTcsNyBAQCBBbHRl clB1YmxpY2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRp b25TdG10ICpzdG10LAogCXB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RS VUNUKHR1cCk7CiAKIAkvKiBJbnZhbGlkYXRlIHRoZSByZWxjYWNoZS4gKi8KLQlpZiAocHVi Zm9ybS0+cHViYWxsdGFibGVzKQorCWlmIChwdWJmb3JtLT5wdWJhbGx0YWJsZXMgfHwgcHVi Zm9ybS0+cHViYWxsc2VxdWVuY2VzKQogCXsKIAkJQ2FjaGVJbnZhbGlkYXRlUmVsY2FjaGVB bGwoKTsKIAl9CkBAIC04OTIsNiArMTAxMyw3IEBAIEFsdGVyUHVibGljYXRpb25PcHRpb25z KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJCSAq LwogCQlpZiAocm9vdF9yZWxpZHMgPT0gTklMKQogCQkJcmVsaWRzID0gR2V0UHVibGljYXRp b25SZWxhdGlvbnMocHViZm9ybS0+b2lkLAorCQkJCQkJCQkJCQkgUFVCX09CSlRZUEVfVEFC TEUsCiAJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0FMTCk7CiAJCWVsc2UKIAkJewpA QCAtOTA1LDcgKzEwMjcsMjAgQEAgQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJCQkJCQkJCQkJCQkJ bGZpcnN0X29pZChsYykpOwogCQl9CiAKKwkJLyogdGFibGVzICovCisJCXNjaGVtYXJlbGlk cyA9IEdldEFsbFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwKKwkJ CQkJCQkJCQkJCQkJUFVCX09CSlRZUEVfVEFCTEUsCisJCQkJCQkJCQkJCQkJCVBVQkxJQ0FU SU9OX1BBUlRfQUxMKTsKKwkJcmVsaWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChyZWxp ZHMsIHNjaGVtYXJlbGlkcyk7CisKKwkJLyogc2VxdWVuY2VzICovCisJCXJlbGlkcyA9IGxp c3RfY29uY2F0X3VuaXF1ZV9vaWQocmVsaWRzLAorCQkJCQkJCQkJCUdldFB1YmxpY2F0aW9u UmVsYXRpb25zKHB1YmZvcm0tPm9pZCwKKwkJCQkJCQkJCQkJUFVCX09CSlRZUEVfU0VRVUVO Q0UsCisJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfQUxMKSk7CisKIAkJc2NoZW1hcmVs aWRzID0gR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMocHViZm9ybS0+b2lkLAor CQkJCQkJCQkJCQkJCQlQVUJfT0JKVFlQRV9TRVFVRU5DRSwKIAkJCQkJCQkJCQkJCQkJUFVC TElDQVRJT05fUEFSVF9BTEwpOwogCQlyZWxpZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lk KHJlbGlkcywgc2NoZW1hcmVsaWRzKTsKIApAQCAtOTYwLDcgKzEwOTUsNyBAQCBBbHRlclB1 YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUg dHVwLAogCWlmICghdGFibGVzICYmIHN0bXQtPmFjdGlvbiAhPSBBUF9TZXRPYmplY3RzKQog CQlyZXR1cm47CiAKLQlyZWxzID0gT3BlblRhYmxlTGlzdCh0YWJsZXMpOworCXJlbHMgPSBP cGVuUmVsYXRpb25MaXN0KHRhYmxlcywgUFVCX09CSlRZUEVfVEFCTEUpOwogCiAJaWYgKHN0 bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3RzKQogCXsKQEAgLTk3MCwxOSArMTEwNSwyMiBA QCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBI ZWFwVHVwbGUgdHVwLAogCQkgKiBDaGVjayBpZiB0aGUgcmVsYXRpb24gaXMgbWVtYmVyIG9m IHRoZSBleGlzdGluZyBzY2hlbWEgaW4gdGhlCiAJCSAqIHB1YmxpY2F0aW9uIG9yIG1lbWJl ciBvZiB0aGUgc2NoZW1hIGxpc3Qgc3BlY2lmaWVkLgogCQkgKi8KLQkJc2NoZW1hcyA9IGxp c3RfY29uY2F0X2NvcHkoc2NoZW1haWRsaXN0LCBHZXRQdWJsaWNhdGlvblNjaGVtYXMocHVi aWQpKTsKKwkJc2NoZW1hcyA9IGxpc3RfY29uY2F0X2NvcHkoc2NoZW1haWRsaXN0LAorCQkJ CQkJCQkgICBHZXRQdWJsaWNhdGlvblNjaGVtYXMocHViaWQsCisJCQkJCQkJCQkJCQkJCSBQ VUJfT0JKVFlQRV9UQUJMRSkpOwogCQlDaGVja09ialNjaGVtYU5vdEFscmVhZHlJblB1Ymxp Y2F0aW9uKHJlbHMsIHNjaGVtYXMsCiAJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05PQkpfVEFC TEUpOwogCiAJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBxdWVyeVN0cmluZywg cHViZm9ybS0+cHVidmlhcm9vdCk7CiAKLQkJUHVibGljYXRpb25BZGRUYWJsZXMocHViaWQs IHJlbHMsIGZhbHNlLCBzdG10KTsKKwkJUHVibGljYXRpb25BZGRSZWxhdGlvbnMocHViaWQs IHJlbHMsIGZhbHNlLCBzdG10KTsKIAl9CiAJZWxzZSBpZiAoc3RtdC0+YWN0aW9uID09IEFQ X0Ryb3BPYmplY3RzKQotCQlQdWJsaWNhdGlvbkRyb3BUYWJsZXMocHViaWQsIHJlbHMsIGZh bHNlKTsKKwkJUHVibGljYXRpb25Ecm9wUmVsYXRpb25zKHB1YmlkLCByZWxzLCBmYWxzZSk7 CiAJZWxzZQkJCQkJCS8qIEFQX1NldE9iamVjdHMgKi8KIAl7CiAJCUxpc3QJICAgKm9sZHJl bGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLAorCQkJCQkJCQkJCQkJCQlQ VUJfT0JKVFlQRV9UQUJMRSwKIAkJCQkJCQkJCQkJCQkJUFVCTElDQVRJT05fUEFSVF9ST09U KTsKIAkJTGlzdAkgICAqZGVscmVscyA9IE5JTDsKIAkJTGlzdENlbGwgICAqb2xkbGM7CkBA IC0xMDY0LDE4ICsxMjAyLDE4IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJs aWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCX0KIAogCQkvKiBBbmQgZHJv cCB0aGVtLiAqLwotCQlQdWJsaWNhdGlvbkRyb3BUYWJsZXMocHViaWQsIGRlbHJlbHMsIHRy dWUpOworCQlQdWJsaWNhdGlvbkRyb3BSZWxhdGlvbnMocHViaWQsIGRlbHJlbHMsIHRydWUp OwogCiAJCS8qCiAJCSAqIERvbid0IGJvdGhlciBjYWxjdWxhdGluZyB0aGUgZGlmZmVyZW5j ZSBmb3IgYWRkaW5nLCB3ZSdsbCBjYXRjaCBhbmQKIAkJICogc2tpcCBleGlzdGluZyBvbmVz IHdoZW4gZG9pbmcgY2F0YWxvZyB1cGRhdGUuCiAJCSAqLwotCQlQdWJsaWNhdGlvbkFkZFRh YmxlcyhwdWJpZCwgcmVscywgdHJ1ZSwgc3RtdCk7CisJCVB1YmxpY2F0aW9uQWRkUmVsYXRp b25zKHB1YmlkLCByZWxzLCB0cnVlLCBzdG10KTsKIAotCQlDbG9zZVRhYmxlTGlzdChkZWxy ZWxzKTsKKwkJQ2xvc2VSZWxhdGlvbkxpc3QoZGVscmVscyk7CiAJfQogCi0JQ2xvc2VUYWJs ZUxpc3QocmVscyk7CisJQ2xvc2VSZWxhdGlvbkxpc3QocmVscyk7CiB9CiAKIC8qCkBAIC0x MDg1LDcgKzEyMjMsOCBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRp b25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogICovCiBzdGF0aWMgdm9pZAogQWx0ZXJQ dWJsaWNhdGlvblNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCi0JCQkJCQlI ZWFwVHVwbGUgdHVwLCBMaXN0ICpzY2hlbWFpZGxpc3QpCisJCQkJCQlIZWFwVHVwbGUgdHVw LCBMaXN0ICpzY2hlbWFpZGxpc3QsCisJCQkJCQljaGFyIG9iamVjdFR5cGUpCiB7CiAJRm9y bV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNU UlVDVCh0dXApOwogCkBAIC0xMTA3LDIwICsxMjQ2LDIwIEBAIEFsdGVyUHVibGljYXRpb25T Y2hlbWFzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQlMaXN0CSAgICpyZWxzOwog CQlMaXN0CSAgICpyZWxvaWRzOwogCi0JCXJlbG9pZHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0 aW9ucyhwdWJmb3JtLT5vaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJCXJlbG9pZHMg PSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJmb3JtLT5vaWQsIG9iamVjdFR5cGUsIFBV QkxJQ0FUSU9OX1BBUlRfUk9PVCk7CiAJCXJlbHMgPSBPcGVuUmVsSWRMaXN0KHJlbG9pZHMp OwogCiAJCUNoZWNrT2JqU2NoZW1hTm90QWxyZWFkeUluUHVibGljYXRpb24ocmVscywgc2No ZW1haWRsaXN0LAogCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hF TUEpOwogCi0JCUNsb3NlVGFibGVMaXN0KHJlbHMpOwotCQlQdWJsaWNhdGlvbkFkZFNjaGVt YXMocHViZm9ybS0+b2lkLCBzY2hlbWFpZGxpc3QsIGZhbHNlLCBzdG10KTsKKwkJQ2xvc2VS ZWxhdGlvbkxpc3QocmVscyk7CisJCVB1YmxpY2F0aW9uQWRkU2NoZW1hcyhwdWJmb3JtLT5v aWQsIHNjaGVtYWlkbGlzdCwgb2JqZWN0VHlwZSwgZmFsc2UsIHN0bXQpOwogCX0KIAllbHNl IGlmIChzdG10LT5hY3Rpb24gPT0gQVBfRHJvcE9iamVjdHMpCi0JCVB1YmxpY2F0aW9uRHJv cFNjaGVtYXMocHViZm9ybS0+b2lkLCBzY2hlbWFpZGxpc3QsIGZhbHNlKTsKKwkJUHVibGlj YXRpb25Ecm9wU2NoZW1hcyhwdWJmb3JtLT5vaWQsIHNjaGVtYWlkbGlzdCwgb2JqZWN0VHlw ZSwgZmFsc2UpOwogCWVsc2UJCQkJCQkvKiBBUF9TZXRPYmplY3RzICovCiAJewotCQlMaXN0 CSAgICpvbGRzY2hlbWFpZHMgPSBHZXRQdWJsaWNhdGlvblNjaGVtYXMocHViZm9ybS0+b2lk KTsKKwkJTGlzdAkgICAqb2xkc2NoZW1haWRzID0gR2V0UHVibGljYXRpb25TY2hlbWFzKHB1 YmZvcm0tPm9pZCwgb2JqZWN0VHlwZSk7CiAJCUxpc3QJICAgKmRlbHNjaGVtYXMgPSBOSUw7 CiAKIAkJLyogSWRlbnRpZnkgd2hpY2ggc2NoZW1hcyBzaG91bGQgYmUgZHJvcHBlZCAqLwpA QCAtMTEzMywxMyArMTI3MiwxMyBAQCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJTG9ja1NjaGVtYUxpc3QoZGVsc2NoZW1hcyk7CiAK IAkJLyogQW5kIGRyb3AgdGhlbSAqLwotCQlQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKHB1YmZv cm0tPm9pZCwgZGVsc2NoZW1hcywgdHJ1ZSk7CisJCVB1YmxpY2F0aW9uRHJvcFNjaGVtYXMo cHViZm9ybS0+b2lkLCBkZWxzY2hlbWFzLCBvYmplY3RUeXBlLCB0cnVlKTsKIAogCQkvKgog CQkgKiBEb24ndCBib3RoZXIgY2FsY3VsYXRpbmcgdGhlIGRpZmZlcmVuY2UgZm9yIGFkZGlu Zywgd2UnbGwgY2F0Y2ggYW5kCiAJCSAqIHNraXAgZXhpc3Rpbmcgb25lcyB3aGVuIGRvaW5n IGNhdGFsb2cgdXBkYXRlLgogCQkgKi8KLQkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1YmZv cm0tPm9pZCwgc2NoZW1haWRsaXN0LCB0cnVlLCBzdG10KTsKKwkJUHVibGljYXRpb25BZGRT Y2hlbWFzKHB1YmZvcm0tPm9pZCwgc2NoZW1haWRsaXN0LCBvYmplY3RUeXBlLCB0cnVlLCBz dG10KTsKIAl9CiB9CiAKQEAgLTExNDksMTIgKzEyODgsMTMgQEAgQWx0ZXJQdWJsaWNhdGlv blNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAgKi8KIHN0YXRpYyB2b2lk CiBDaGVja0FsdGVyUHVibGljYXRpb24oQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhl YXBUdXBsZSB0dXAsCi0JCQkJCSAgTGlzdCAqdGFibGVzLCBMaXN0ICpzY2hlbWFpZGxpc3Qp CisJCQkJCSAgTGlzdCAqdGFibGVzLCBMaXN0ICp0YWJsZXNfc2NoZW1haWRsaXN0LAorCQkJ CQkgIExpc3QgKnNlcXVlbmNlcywgTGlzdCAqc2VxdWVuY2VzX3NjaGVtYWlkbGlzdCkKIHsK IAlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikg R0VUU1RSVUNUKHR1cCk7CiAKIAlpZiAoKHN0bXQtPmFjdGlvbiA9PSBBUF9BZGRPYmplY3Rz IHx8IHN0bXQtPmFjdGlvbiA9PSBBUF9TZXRPYmplY3RzKSAmJgotCQlzY2hlbWFpZGxpc3Qg JiYgIXN1cGVydXNlcigpKQorCQkodGFibGVzX3NjaGVtYWlkbGlzdCB8fCBzZXF1ZW5jZXNf c2NoZW1haWRsaXN0KSAmJiAhc3VwZXJ1c2VyKCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKIAkJCQkgZXJybXNn KCJtdXN0IGJlIHN1cGVydXNlciB0byBhZGQgb3Igc2V0IHNjaGVtYXMiKSkpOwpAQCAtMTE2 MywxMyArMTMwMywyNCBAQCBDaGVja0FsdGVyUHVibGljYXRpb24oQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJICogQ2hlY2sgdGhhdCB1c2VyIGlzIGFs bG93ZWQgdG8gbWFuaXB1bGF0ZSB0aGUgcHVibGljYXRpb24gdGFibGVzIGluCiAJICogc2No ZW1hCiAJICovCi0JaWYgKHNjaGVtYWlkbGlzdCAmJiBwdWJmb3JtLT5wdWJhbGx0YWJsZXMp CisJaWYgKHRhYmxlc19zY2hlbWFpZGxpc3QgJiYgcHViZm9ybS0+cHViYWxsdGFibGVzKQog CQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9Q UkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBp cyBkZWZpbmVkIGFzIEZPUiBBTEwgVEFCTEVTIiwKIAkJCQkJCU5hbWVTdHIocHViZm9ybS0+ cHVibmFtZSkpLAogCQkJCSBlcnJkZXRhaWwoIlRhYmxlcyBmcm9tIHNjaGVtYSBjYW5ub3Qg YmUgYWRkZWQgdG8sIGRyb3BwZWQgZnJvbSwgb3Igc2V0IG9uIEZPUiBBTEwgVEFCTEVTIHB1 YmxpY2F0aW9ucy4iKSkpOwogCisJLyoKKwkgKiBDaGVjayB0aGF0IHVzZXIgaXMgYWxsb3dl ZCB0byBtYW5pcHVsYXRlIHRoZSBwdWJsaWNhdGlvbiBzZXF1ZW5jZXMgaW4KKwkgKiBzY2hl bWEKKwkgKi8KKwlpZiAoc2VxdWVuY2VzX3NjaGVtYWlkbGlzdCAmJiBwdWJmb3JtLT5wdWJh bGxzZXF1ZW5jZXMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9P QkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJIGVycm1zZygicHVibGlj YXRpb24gXCIlc1wiIGlzIGRlZmluZWQgYXMgRk9SIEFMTCBTRVFVRU5DRVMiLAorCQkJCQkJ TmFtZVN0cihwdWJmb3JtLT5wdWJuYW1lKSksCisJCQkJIGVycmRldGFpbCgiU2VxdWVuY2Vz IGZyb20gc2NoZW1hIGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQg b24gRk9SIEFMTCBTRVFVRU5DRVMgcHVibGljYXRpb25zLiIpKSk7CisKIAkvKiBDaGVjayB0 aGF0IHVzZXIgaXMgYWxsb3dlZCB0byBtYW5pcHVsYXRlIHRoZSBwdWJsaWNhdGlvbiB0YWJs ZXMuICovCiAJaWYgKHRhYmxlcyAmJiBwdWJmb3JtLT5wdWJhbGx0YWJsZXMpCiAJCWVyZXBv cnQoRVJST1IsCkBAIC0xMTc3LDYgKzEzMjgsMTA3IEBAIENoZWNrQWx0ZXJQdWJsaWNhdGlv bihBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJCQkgZXJy bXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgaXMgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUyIs CiAJCQkJCQlOYW1lU3RyKHB1YmZvcm0tPnB1Ym5hbWUpKSwKIAkJCQkgZXJyZGV0YWlsKCJU YWJsZXMgY2Fubm90IGJlIGFkZGVkIHRvIG9yIGRyb3BwZWQgZnJvbSBGT1IgQUxMIFRBQkxF UyBwdWJsaWNhdGlvbnMuIikpKTsKKworCS8qIENoZWNrIHRoYXQgdXNlciBpcyBhbGxvd2Vk IHRvIG1hbmlwdWxhdGUgdGhlIHB1YmxpY2F0aW9uIHRhYmxlcy4gKi8KKwlpZiAoc2VxdWVu Y2VzICYmIHB1YmZvcm0tPnB1YmFsbHNlcXVlbmNlcykKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwK KwkJCQkgZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgaXMgZGVmaW5lZCBhcyBGT1IgQUxM IFNFUVVFTkNFUyIsCisJCQkJCQlOYW1lU3RyKHB1YmZvcm0tPnB1Ym5hbWUpKSwKKwkJCQkg ZXJyZGV0YWlsKCJTZXF1ZW5jZXMgY2Fubm90IGJlIGFkZGVkIHRvIG9yIGRyb3BwZWQgZnJv bSBGT1IgQUxMIFNFUVVFTkNFUyBwdWJsaWNhdGlvbnMuIikpKTsKK30KKworLyoKKyAqIEFk ZCBvciByZW1vdmUgc2VxdWVuY2UgdG8vZnJvbSBwdWJsaWNhdGlvbi4KKyAqLworc3RhdGlj IHZvaWQKK0FsdGVyUHVibGljYXRpb25TZXF1ZW5jZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQg KnN0bXQsIEhlYXBUdXBsZSB0dXAsCisJCQkJCQkgIExpc3QgKnNlcXVlbmNlcywgTGlzdCAq c2NoZW1haWRsaXN0KQoreworCUxpc3QJICAgKnJlbHMgPSBOSUw7CisJRm9ybV9wZ19wdWJs aWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXAp OworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOworCisJLyoKKwkgKiBJdCBpcyBxdWl0 ZSBwb3NzaWJsZSB0aGF0IGZvciB0aGUgU0VUIGNhc2UgdXNlciBoYXMgbm90IHNwZWNpZmll ZCBhbnkKKwkgKiB0YWJsZXMgaW4gd2hpY2ggY2FzZSB3ZSBuZWVkIHRvIHJlbW92ZSBhbGwg dGhlIGV4aXN0aW5nIHRhYmxlcy4KKwkgKi8KKwlpZiAoIXNlcXVlbmNlcyAmJiBzdG10LT5h Y3Rpb24gIT0gQVBfU2V0T2JqZWN0cykKKwkJcmV0dXJuOworCisJcmVscyA9IE9wZW5SZWxh dGlvbkxpc3Qoc2VxdWVuY2VzLCBQVUJfT0JKVFlQRV9TRVFVRU5DRSk7CisKKwlpZiAoc3Rt dC0+YWN0aW9uID09IEFQX0FkZE9iamVjdHMpCisJeworCQlMaXN0CSAgICpzY2hlbWFzID0g TklMOworCisJCS8qCisJCSAqIENoZWNrIGlmIHRoZSByZWxhdGlvbiBpcyBtZW1iZXIgb2Yg dGhlIGV4aXN0aW5nIHNjaGVtYSBpbiB0aGUKKwkJICogcHVibGljYXRpb24gb3IgbWVtYmVy IG9mIHRoZSBzY2hlbWEgbGlzdCBzcGVjaWZpZWQuCisJCSAqLworCQlzY2hlbWFzID0gbGlz dF9jb25jYXRfY29weShzY2hlbWFpZGxpc3QsCisJCQkJCQkJCSAgIEdldFB1YmxpY2F0aW9u U2NoZW1hcyhwdWJpZCwKKwkJCQkJCQkJCQkJCQkJIFBVQl9PQkpUWVBFX1NFUVVFTkNFKSk7 CisJCUNoZWNrT2JqU2NoZW1hTm90QWxyZWFkeUluUHVibGljYXRpb24ocmVscywgc2NoZW1h cywKKwkJCQkJCQkJCQkJICBQVUJMSUNBVElPTk9CSl9TRVFVRU5DRSk7CisJCVB1YmxpY2F0 aW9uQWRkUmVsYXRpb25zKHB1YmlkLCByZWxzLCBmYWxzZSwgc3RtdCk7CisJfQorCWVsc2Ug aWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9Ecm9wT2JqZWN0cykKKwkJUHVibGljYXRpb25Ecm9w UmVsYXRpb25zKHB1YmlkLCByZWxzLCBmYWxzZSk7CisJZWxzZQkJCQkJCS8qIERFRkVMRU1f U0VUICovCisJeworCQlMaXN0CSAgICpvbGRyZWxpZHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0 aW9ucyhwdWJpZCwKKwkJCQkJCQkJCQkJCQkJUFVCX09CSlRZUEVfU0VRVUVOQ0UsCisJCQkJ CQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJCUxpc3QJICAgKmRlbHJlbHMg PSBOSUw7CisJCUxpc3RDZWxsICAgKm9sZGxjOworCisJCUNoZWNrT2JqU2NoZW1hTm90QWxy ZWFkeUluUHVibGljYXRpb24ocmVscywgc2NoZW1haWRsaXN0LAorCQkJCQkJCQkJCQkgIFBV QkxJQ0FUSU9OT0JKX1NFUVVFTkNFKTsKKworCQkvKiBDYWxjdWxhdGUgd2hpY2ggcmVsYXRp b25zIHRvIGRyb3AuICovCisJCWZvcmVhY2gob2xkbGMsIG9sZHJlbGlkcykKKwkJeworCQkJ T2lkCQkJb2xkcmVsaWQgPSBsZmlyc3Rfb2lkKG9sZGxjKTsKKwkJCUxpc3RDZWxsICAgKm5l d2xjOworCQkJUHVibGljYXRpb25SZWxJbmZvICpvbGRyZWw7CisJCQlib29sCQlmb3VuZCA9 IGZhbHNlOworCisJCQlmb3JlYWNoKG5ld2xjLCByZWxzKQorCQkJeworCQkJCVB1YmxpY2F0 aW9uUmVsSW5mbyAqbmV3cHVicmVsOworCisJCQkJbmV3cHVicmVsID0gKFB1YmxpY2F0aW9u UmVsSW5mbyAqKSBsZmlyc3QobmV3bGMpOworCQkJCWlmIChSZWxhdGlvbkdldFJlbGlkKG5l d3B1YnJlbC0+cmVsYXRpb24pID09IG9sZHJlbGlkKQorCQkJCXsKKwkJCQkJZm91bmQgPSB0 cnVlOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJCQkvKiBOb3QgeWV0IGluIHRoZSBs aXN0LCBvcGVuIGl0IGFuZCBhZGQgdG8gdGhlIGxpc3QgKi8KKwkJCWlmICghZm91bmQpCisJ CQl7CisJCQkJb2xkcmVsID0gcGFsbG9jKHNpemVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsK KwkJCQlvbGRyZWwtPndoZXJlQ2xhdXNlID0gTlVMTDsKKwkJCQlvbGRyZWwtPnJlbGF0aW9u ID0gdGFibGVfb3BlbihvbGRyZWxpZCwKKwkJCQkJCQkJCQkJICBTaGFyZVVwZGF0ZUV4Y2x1 c2l2ZUxvY2spOworCQkJCWRlbHJlbHMgPSBsYXBwZW5kKGRlbHJlbHMsIG9sZHJlbCk7CisJ CQl9CisJCX0KKworCQkvKiBBbmQgZHJvcCB0aGVtLiAqLworCQlQdWJsaWNhdGlvbkRyb3BS ZWxhdGlvbnMocHViaWQsIGRlbHJlbHMsIHRydWUpOworCisJCS8qCisJCSAqIERvbid0IGJv dGhlciBjYWxjdWxhdGluZyB0aGUgZGlmZmVyZW5jZSBmb3IgYWRkaW5nLCB3ZSdsbCBjYXRj aCBhbmQKKwkJICogc2tpcCBleGlzdGluZyBvbmVzIHdoZW4gZG9pbmcgY2F0YWxvZyB1cGRh dGUuCisJCSAqLworCQlQdWJsaWNhdGlvbkFkZFJlbGF0aW9ucyhwdWJpZCwgcmVscywgdHJ1 ZSwgc3RtdCk7CisKKwkJQ2xvc2VSZWxhdGlvbkxpc3QoZGVscmVscyk7CisJfQorCisJQ2xv c2VSZWxhdGlvbkxpc3QocmVscyk7CiB9CiAKIC8qCkBAIC0xMjE0LDE0ICsxNDY2LDIyIEBA IEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9u U3RtdCAqc3RtdCkKIAkJQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMocHN0YXRlLCBzdG10LCBy ZWwsIHR1cCk7CiAJZWxzZQogCXsKLQkJTGlzdAkgICAqcmVsYXRpb25zID0gTklMOworCQlM aXN0CSAgICp0YWJsZXMgPSBOSUw7CisJCUxpc3QJICAgKnNlcXVlbmNlcyA9IE5JTDsKKwkJ TGlzdAkgICAqdGFibGVzX3NjaGVtYWlkbGlzdCA9IE5JTDsKKwkJTGlzdAkgICAqc2VxdWVu Y2VzX3NjaGVtYWlkbGlzdCA9IE5JTDsKIAkJTGlzdAkgICAqc2NoZW1haWRsaXN0ID0gTklM OwogCQlPaWQJCQlwdWJpZCA9IHB1YmZvcm0tPm9pZDsKIAotCQlPYmplY3RzSW5QdWJsaWNh dGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCisJCU9i amVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwKKwkJ CQkJCQkJICAgJnRhYmxlcywgJnNlcXVlbmNlcywKKwkJCQkJCQkJICAgJnRhYmxlc19zY2hl bWFpZGxpc3QsCisJCQkJCQkJCSAgICZzZXF1ZW5jZXNfc2NoZW1haWRsaXN0LAogCQkJCQkJ CQkgICAmc2NoZW1haWRsaXN0KTsKIAotCQlDaGVja0FsdGVyUHVibGljYXRpb24oc3RtdCwg dHVwLCByZWxhdGlvbnMsIHNjaGVtYWlkbGlzdCk7CisJCUNoZWNrQWx0ZXJQdWJsaWNhdGlv bihzdG10LCB0dXAsCisJCQkJCQkJICB0YWJsZXMsIHRhYmxlc19zY2hlbWFpZGxpc3QsCisJ CQkJCQkJICBzZXF1ZW5jZXMsIHNlcXVlbmNlc19zY2hlbWFpZGxpc3QpOwogCiAJCWhlYXBf ZnJlZXR1cGxlKHR1cCk7CiAKQEAgLTEyNDksOSArMTUwOSwxNiBAQCBBbHRlclB1YmxpY2F0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJ CQkJCWVycm1zZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJ CSAgIHN0bXQtPnB1Ym5hbWUpKTsKIAotCQlBbHRlclB1YmxpY2F0aW9uVGFibGVzKHN0bXQs IHR1cCwgcmVsYXRpb25zLCBzY2hlbWFpZGxpc3QsCisJCUFsdGVyUHVibGljYXRpb25UYWJs ZXMoc3RtdCwgdHVwLCB0YWJsZXMsIHRhYmxlc19zY2hlbWFpZGxpc3QsCiAJCQkJCQkJICAg cHN0YXRlLT5wX3NvdXJjZXRleHQpOwotCQlBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhzdG10 LCB0dXAsIHNjaGVtYWlkbGlzdCk7CisKKwkJQWx0ZXJQdWJsaWNhdGlvblNlcXVlbmNlcyhz dG10LCB0dXAsIHNlcXVlbmNlcywgc2VxdWVuY2VzX3NjaGVtYWlkbGlzdCk7CisKKwkJQWx0 ZXJQdWJsaWNhdGlvblNjaGVtYXMoc3RtdCwgdHVwLCB0YWJsZXNfc2NoZW1haWRsaXN0LAor CQkJCQkJCQlQVUJfT0JKVFlQRV9UQUJMRSk7CisKKwkJQWx0ZXJQdWJsaWNhdGlvblNjaGVt YXMoc3RtdCwgdHVwLCBzZXF1ZW5jZXNfc2NoZW1haWRsaXN0LAorCQkJCQkJCQlQVUJfT0JK VFlQRV9TRVFVRU5DRSk7CiAJfQogCiAJLyogQ2xlYW51cC4gKi8KQEAgLTEzMTksNyArMTU4 Niw3IEBAIFJlbW92ZVB1YmxpY2F0aW9uQnlJZChPaWQgcHViaWQpCiAJcHViZm9ybSA9IChG b3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVwKTsKIAogCS8qIEludmFsaWRhdGUg cmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlvbiBpbmZvIGlzIHJlYnVpbHQuICovCi0JaWYg KHB1YmZvcm0tPnB1YmFsbHRhYmxlcykKKwlpZiAocHViZm9ybS0+cHViYWxsdGFibGVzIHx8 IHB1YmZvcm0tPnB1YmFsbHNlcXVlbmNlcykKIAkJQ2FjaGVJbnZhbGlkYXRlUmVsY2FjaGVB bGwoKTsKIAogCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRfc2VsZik7CkBAIC0x MzU1LDYgKzE2MjIsNyBAQCBSZW1vdmVQdWJsaWNhdGlvblNjaGVtYUJ5SWQoT2lkIHBzb2lk KQogCSAqIHBhcnRpdGlvbnMuCiAJICovCiAJc2NoZW1hUmVscyA9IEdldFNjaGVtYVB1Ymxp Y2F0aW9uUmVsYXRpb25zKHB1YnNjaC0+cG5uc3BpZCwKKwkJCQkJCQkJCQkJICAgcHVic2No LT5wbnR5cGUsCiAJCQkJCQkJCQkJCSAgIFBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKIAlJbnZh bGlkYXRlUHVibGljYXRpb25SZWxzKHNjaGVtYVJlbHMpOwogCkBAIC0xMzk3LDI5ICsxNjY1 LDQ1IEBAIE9wZW5SZWxJZExpc3QoTGlzdCAqcmVsaWRzKQogICogYWRkIHRoZW0gdG8gYSBw dWJsaWNhdGlvbi4KICAqLwogc3RhdGljIExpc3QgKgotT3BlblRhYmxlTGlzdChMaXN0ICp0 YWJsZXMpCitPcGVuUmVsYXRpb25MaXN0KExpc3QgKnJlbHMsIGNoYXIgb2JqZWN0VHlwZSkK IHsKIAlMaXN0CSAgICpyZWxpZHMgPSBOSUw7Ci0JTGlzdAkgICAqcmVscyA9IE5JTDsKKwlM aXN0CSAgICpyZXN1bHQgPSBOSUw7CiAJTGlzdENlbGwgICAqbGM7CiAJTGlzdAkgICAqcmVs aWRzX3dpdGhfcmYgPSBOSUw7CiAKIAkvKgogCSAqIE9wZW4sIHNoYXJlLWxvY2ssIGFuZCBj aGVjayBhbGwgdGhlIGV4cGxpY2l0bHktc3BlY2lmaWVkIHJlbGF0aW9ucwogCSAqLwotCWZv cmVhY2gobGMsIHRhYmxlcykKKwlmb3JlYWNoKGxjLCByZWxzKQogCXsKIAkJUHVibGljYXRp b25UYWJsZSAqdCA9IGxmaXJzdF9ub2RlKFB1YmxpY2F0aW9uVGFibGUsIGxjKTsKIAkJYm9v bAkJcmVjdXJzZSA9IHQtPnJlbGF0aW9uLT5pbmg7CiAJCVJlbGF0aW9uCXJlbDsKIAkJT2lk CQkJbXlyZWxpZDsKIAkJUHVibGljYXRpb25SZWxJbmZvICpwdWJfcmVsOworCQljaGFyCQlt eXJlbGtpbmQ7CiAKIAkJLyogQWxsb3cgcXVlcnkgY2FuY2VsIGluIGNhc2UgdGhpcyB0YWtl cyBhIGxvbmcgdGltZSAqLwogCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOwogCiAJCXJlbCA9 IHRhYmxlX29wZW5ydih0LT5yZWxhdGlvbiwgU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrKTsK IAkJbXlyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsKTsKKwkJbXlyZWxraW5kID0gZ2V0 X3JlbF9yZWxraW5kKG15cmVsaWQpOworCisJCS8qCisJCSAqIE1ha2Ugc3VyZSB0aGUgcmVs a2luZCBtYXRjaGVzIHRoZSBleHBlY3RlZCBvYmplY3QgdHlwZS4gVGhpcyBoYXBwZW5zCisJ CSAqIGUuZy4gd2hlbiBhZGRpbmcgYSBzZXF1ZW5jZSB1c2luZyBBREQgVEFCTEUgb3IgYSB0 YWJsZSB1c2luZyBBREQKKwkJICogU0VRVUVOQ0UpLgorCQkgKgorCQkgKiBYWFggV2UgbGV0 IHRocm91Z2ggdW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGVzICh2aWV3cyBldGMuKS4gVGhvc2Ug YXJlCisJCSAqIGNhdWdodCBsYXRlciBpbiBjaGVja19wdWJsaWNhdGlvbl9hZGRfcmVsYXRp b24uIEEgYml0IHdlaXJkLgorCQkgKgorCQkgKiBGSVhNRSBVc2UgYSBiZXR0ZXIgZXJyb3Ig bWVzc2FnZS4KKwkJICovCisJCWlmIChwdWJfZ2V0X29iamVjdF90eXBlX2Zvcl9yZWxraW5k KG15cmVsa2luZCkgIT0gUFVCX09CSlRZUEVfVU5TVVBQT1JURUQgJiYKKwkJCXB1Yl9nZXRf b2JqZWN0X3R5cGVfZm9yX3JlbGtpbmQobXlyZWxraW5kKSAhPSBvYmplY3RUeXBlKQorCQkJ ZWxvZyhFUlJPUiwgIm9iamVjdCB0eXBlIG1pc21hdGNoIik7CiAKIAkJLyoKIAkJICogRmls dGVyIG91dCBkdXBsaWNhdGVzIGlmIHVzZXIgc3BlY2lmaWVzICJmb28sIGZvbyIuCkBAIC0x NDQ0LDcgKzE3MjgsNyBAQCBPcGVuVGFibGVMaXN0KExpc3QgKnRhYmxlcykKIAkJcHViX3Jl bCA9IHBhbGxvYyhzaXplb2YoUHVibGljYXRpb25SZWxJbmZvKSk7CiAJCXB1Yl9yZWwtPnJl bGF0aW9uID0gcmVsOwogCQlwdWJfcmVsLT53aGVyZUNsYXVzZSA9IHQtPndoZXJlQ2xhdXNl OwotCQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKKwkJcmVzdWx0ID0gbGFwcGVu ZChyZXN1bHQsIHB1Yl9yZWwpOwogCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIG15 cmVsaWQpOwogCiAJCWlmICh0LT53aGVyZUNsYXVzZSkKQEAgLTE0OTgsNyArMTc4Miw3IEBA IE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQkJCXB1Yl9yZWwtPnJlbGF0aW9uID0g cmVsOwogCQkJCS8qIGNoaWxkIGluaGVyaXRzIFdIRVJFIGNsYXVzZSBmcm9tIHBhcmVudCAq LwogCQkJCXB1Yl9yZWwtPndoZXJlQ2xhdXNlID0gdC0+d2hlcmVDbGF1c2U7Ci0JCQkJcmVs cyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CisJCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1 bHQsIHB1Yl9yZWwpOwogCQkJCXJlbGlkcyA9IGxhcHBlbmRfb2lkKHJlbGlkcywgY2hpbGRy ZWxpZCk7CiAKIAkJCQlpZiAodC0+d2hlcmVDbGF1c2UpCkBAIC0xNTEwLDE0ICsxNzk0LDE0 IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCWxpc3RfZnJlZShyZWxpZHMpOwog CWxpc3RfZnJlZShyZWxpZHNfd2l0aF9yZik7CiAKLQlyZXR1cm4gcmVsczsKKwlyZXR1cm4g cmVzdWx0OwogfQogCiAvKgogICogQ2xvc2UgYWxsIHJlbGF0aW9ucyBpbiB0aGUgbGlzdC4K ICAqLwogc3RhdGljIHZvaWQKLUNsb3NlVGFibGVMaXN0KExpc3QgKnJlbHMpCitDbG9zZVJl bGF0aW9uTGlzdChMaXN0ICpyZWxzKQogewogCUxpc3RDZWxsICAgKmxjOwogCkBAIC0xNTY1 LDEyICsxODQ5LDEyIEBAIExvY2tTY2hlbWFMaXN0KExpc3QgKnNjaGVtYWxpc3QpCiAgKiBB ZGQgbGlzdGVkIHRhYmxlcyB0byB0aGUgcHVibGljYXRpb24uCiAgKi8KIHN0YXRpYyB2b2lk Ci1QdWJsaWNhdGlvbkFkZFRhYmxlcyhPaWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgaWZf bm90X2V4aXN0cywKK1B1YmxpY2F0aW9uQWRkUmVsYXRpb25zKE9pZCBwdWJpZCwgTGlzdCAq cmVscywgYm9vbCBpZl9ub3RfZXhpc3RzLAogCQkJCQkgQWx0ZXJQdWJsaWNhdGlvblN0bXQg KnN0bXQpCiB7CiAJTGlzdENlbGwgICAqbGM7CiAKLQlBc3NlcnQoIXN0bXQgfHwgIXN0bXQt PmZvcl9hbGxfdGFibGVzKTsKKwlBc3NlcnQoIXN0bXQgfHwgIXN0bXQtPmZvcl9hbGxfb2Jq ZWN0cyk7CiAKIAlmb3JlYWNoKGxjLCByZWxzKQogCXsKQEAgLTE1OTksNyArMTg4Myw3IEBA IFB1YmxpY2F0aW9uQWRkVGFibGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBpZl9u b3RfZXhpc3RzLAogICogUmVtb3ZlIGxpc3RlZCB0YWJsZXMgZnJvbSB0aGUgcHVibGljYXRp b24uCiAgKi8KIHN0YXRpYyB2b2lkCi1QdWJsaWNhdGlvbkRyb3BUYWJsZXMoT2lkIHB1Ymlk LCBMaXN0ICpyZWxzLCBib29sIG1pc3Npbmdfb2spCitQdWJsaWNhdGlvbkRyb3BSZWxhdGlv bnMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29sIG1pc3Npbmdfb2spCiB7CiAJT2JqZWN0 QWRkcmVzcyBvYmo7CiAJTGlzdENlbGwgICAqbGM7CkBAIC0xNjM5LDE5ICsxOTIzLDE5IEBA IFB1YmxpY2F0aW9uRHJvcFRhYmxlcyhPaWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgbWlz c2luZ19vaykKICAqIEFkZCBsaXN0ZWQgc2NoZW1hcyB0byB0aGUgcHVibGljYXRpb24uCiAg Ki8KIHN0YXRpYyB2b2lkCi1QdWJsaWNhdGlvbkFkZFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0 ICpzY2hlbWFzLCBib29sIGlmX25vdF9leGlzdHMsCi0JCQkJCSAgQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQpCitQdWJsaWNhdGlvbkFkZFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpz Y2hlbWFzLCBjaGFyIG9iamVjdFR5cGUsCisJCQkJCSAgYm9vbCBpZl9ub3RfZXhpc3RzLCBB bHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAotCUFz c2VydCghc3RtdCB8fCAhc3RtdC0+Zm9yX2FsbF90YWJsZXMpOworCUFzc2VydCghc3RtdCB8 fCAhc3RtdC0+Zm9yX2FsbF9vYmplY3RzKTsKIAogCWZvcmVhY2gobGMsIHNjaGVtYXMpCiAJ ewogCQlPaWQJCQlzY2hlbWFpZCA9IGxmaXJzdF9vaWQobGMpOwogCQlPYmplY3RBZGRyZXNz IG9iajsKIAotCQlvYmogPSBwdWJsaWNhdGlvbl9hZGRfc2NoZW1hKHB1YmlkLCBzY2hlbWFp ZCwgaWZfbm90X2V4aXN0cyk7CisJCW9iaiA9IHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEocHVi aWQsIHNjaGVtYWlkLCBvYmplY3RUeXBlLCBpZl9ub3RfZXhpc3RzKTsKIAkJaWYgKHN0bXQp CiAJCXsKIAkJCUV2ZW50VHJpZ2dlckNvbGxlY3RTaW1wbGVDb21tYW5kKG9iaiwgSW52YWxp ZE9iamVjdEFkZHJlc3MsCkBAIC0xNjY3LDcgKzE5NTEsNyBAQCBQdWJsaWNhdGlvbkFkZFNj aGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBib29sIGlmX25vdF9leGlzdHMsCiAg KiBSZW1vdmUgbGlzdGVkIHNjaGVtYXMgZnJvbSB0aGUgcHVibGljYXRpb24uCiAgKi8KIHN0 YXRpYyB2b2lkCi1QdWJsaWNhdGlvbkRyb3BTY2hlbWFzKE9pZCBwdWJpZCwgTGlzdCAqc2No ZW1hcywgYm9vbCBtaXNzaW5nX29rKQorUHVibGljYXRpb25Ecm9wU2NoZW1hcyhPaWQgcHVi aWQsIExpc3QgKnNjaGVtYXMsIGNoYXIgb2JqZWN0VHlwZSwgYm9vbCBtaXNzaW5nX29rKQog ewogCU9iamVjdEFkZHJlc3Mgb2JqOwogCUxpc3RDZWxsICAgKmxjOwpAQCAtMTY3NywxMCAr MTk2MSwxMSBAQCBQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKE9pZCBwdWJpZCwgTGlzdCAqc2No ZW1hcywgYm9vbCBtaXNzaW5nX29rKQogCXsKIAkJT2lkCQkJc2NoZW1haWQgPSBsZmlyc3Rf b2lkKGxjKTsKIAotCQlwc2lkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OTkFNRVNQ QUNFTUFQLAorCQlwc2lkID0gR2V0U3lzQ2FjaGVPaWQzKFBVQkxJQ0FUSU9OTkFNRVNQQUNF TUFQLAogCQkJCQkJCSAgIEFudW1fcGdfcHVibGljYXRpb25fbmFtZXNwYWNlX29pZCwKIAkJ CQkJCQkgICBPYmplY3RJZEdldERhdHVtKHNjaGVtYWlkKSwKLQkJCQkJCQkgICBPYmplY3RJ ZEdldERhdHVtKHB1YmlkKSk7CisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCks CisJCQkJCQkJICAgQ2hhckdldERhdHVtKG9iamVjdFR5cGUpKTsKIAkJaWYgKCFPaWRJc1Zh bGlkKHBzaWQpKQogCQl7CiAJCQlpZiAobWlzc2luZ19vaykKQEAgLTE3MzUsNiArMjAyMCwx MyBAQCBBbHRlclB1YmxpY2F0aW9uT3duZXJfaW50ZXJuYWwoUmVsYXRpb24gcmVsLCBIZWFw VHVwbGUgdHVwLCBPaWQgbmV3T3duZXJJZCkKIAkJCQkJCQlOYW1lU3RyKGZvcm0tPnB1Ym5h bWUpKSwKIAkJCQkJIGVycmhpbnQoIlRoZSBvd25lciBvZiBhIEZPUiBBTEwgVEFCTEVTIHB1 YmxpY2F0aW9uIG11c3QgYmUgYSBzdXBlcnVzZXIuIikpKTsKIAorCQlpZiAoZm9ybS0+cHVi YWxsc2VxdWVuY2VzICYmICFzdXBlcnVzZXJfYXJnKG5ld093bmVySWQpKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdF KSwKKwkJCQkJIGVycm1zZygicGVybWlzc2lvbiBkZW5pZWQgdG8gY2hhbmdlIG93bmVyIG9m IHB1YmxpY2F0aW9uIFwiJXNcIiIsCisJCQkJCQkJTmFtZVN0cihmb3JtLT5wdWJuYW1lKSks CisJCQkJCSBlcnJoaW50KCJUaGUgb3duZXIgb2YgYSBGT1IgQUxMIFNFUVVFTkNFUyBwdWJs aWNhdGlvbiBtdXN0IGJlIGEgc3VwZXJ1c2VyLiIpKSk7CisKIAkJaWYgKCFzdXBlcnVzZXJf YXJnKG5ld093bmVySWQpICYmIGlzX3NjaGVtYV9wdWJsaWNhdGlvbihmb3JtLT5vaWQpKQog CQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRf UFJJVklMRUdFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlcXVlbmNl LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZS5jCmluZGV4IGMxM2NhZGEzYmYx Li43MTdiYjBiMmFhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VxdWVu Y2UuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZS5jCkBAIC0zMzYsNiAr MzM2LDE2MCBAQCBSZXNldFNlcXVlbmNlKE9pZCBzZXFfcmVsaWQpCiAJcmVsYXRpb25fY2xv c2Uoc2VxX3JlbCwgTm9Mb2NrKTsKIH0KIAorLyoKKyAqIFVwZGF0ZSB0aGUgc2VxdWVuY2Ug c3RhdGUgYnkgbW9kaWZ5aW5nIHRoZSBleGlzdGluZyBzZXF1ZW5jZSBkYXRhIHJvdy4KKyAq CisgKiBUaGlzIGtlZXBzIHRoZSBzYW1lIHJlbGZpbGVub2RlLCBzbyB0aGUgYmVoYXZpb3Ig aXMgbm9uLXRyYW5zYWN0aW9uYWwuCisgKi8KK3N0YXRpYyB2b2lkCitTZXRTZXF1ZW5jZV9u b25fdHJhbnNhY3Rpb25hbChPaWQgc2VxcmVsaWQsIGludDY0IGxhc3RfdmFsdWUsIGludDY0 IGxvZ19jbnQsIGJvb2wgaXNfY2FsbGVkKQoreworCVNlcVRhYmxlCWVsbTsKKwlSZWxhdGlv bglzZXFyZWw7CisJQnVmZmVyCQlidWY7CisJSGVhcFR1cGxlRGF0YSBzZXFkYXRhdHVwbGU7 CisJRm9ybV9wZ19zZXF1ZW5jZV9kYXRhIHNlcTsKKworCS8qIG9wZW4gYW5kIGxvY2sgc2Vx dWVuY2UgKi8KKwlpbml0X3NlcXVlbmNlKHNlcXJlbGlkLCAmZWxtLCAmc2VxcmVsKTsKKwor CS8qIGxvY2sgcGFnZScgYnVmZmVyIGFuZCByZWFkIHR1cGxlICovCisJc2VxID0gcmVhZF9z ZXFfdHVwbGUoc2VxcmVsLCAmYnVmLCAmc2VxZGF0YXR1cGxlKTsKKworCS8qIGNoZWNrIHRo ZSBjb21tZW50IGFib3ZlIG5leHR2YWxfaW50ZXJuYWwoKSdzIGVxdWl2YWxlbnQgY2FsbC4g Ki8KKwlpZiAoUmVsYXRpb25OZWVkc1dBTChzZXFyZWwpKQorCXsKKwkJR2V0VG9wVHJhbnNh Y3Rpb25JZCgpOworCisJCWlmIChYTG9nTG9naWNhbEluZm9BY3RpdmUoKSkKKwkJCUdldEN1 cnJlbnRUcmFuc2FjdGlvbklkKCk7CisJfQorCisJLyogcmVhZHkgdG8gY2hhbmdlIHRoZSBv bi1kaXNrIChvciByZWFsbHksIGluLWJ1ZmZlcikgdHVwbGUgKi8KKwlTVEFSVF9DUklUX1NF Q1RJT04oKTsKKworCXNlcS0+bGFzdF92YWx1ZSA9IGxhc3RfdmFsdWU7CisJc2VxLT5pc19j YWxsZWQgPSBpc19jYWxsZWQ7CisJc2VxLT5sb2dfY250ID0gbG9nX2NudDsKKworCU1hcmtC dWZmZXJEaXJ0eShidWYpOworCisJLyogWExPRyBzdHVmZiAqLworCWlmIChSZWxhdGlvbk5l ZWRzV0FMKHNlcXJlbCkpCisJeworCQl4bF9zZXFfcmVjCXhscmVjOworCQlYTG9nUmVjUHRy CXJlY3B0cjsKKwkJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmKTsKKworCQlYTG9n QmVnaW5JbnNlcnQoKTsKKwkJWExvZ1JlZ2lzdGVyQnVmZmVyKDAsIGJ1ZiwgUkVHQlVGX1dJ TExfSU5JVCk7CisKKwkJeGxyZWMubm9kZSA9IHNlcXJlbC0+cmRfbm9kZTsKKwkJeGxyZWMu Y3JlYXRlZCA9IGZhbHNlOworCisJCVhMb2dSZWdpc3RlckRhdGEoKGNoYXIgKikgJnhscmVj LCBzaXplb2YoeGxfc2VxX3JlYykpOworCQlYTG9nUmVnaXN0ZXJEYXRhKChjaGFyICopIHNl cWRhdGF0dXBsZS50X2RhdGEsIHNlcWRhdGF0dXBsZS50X2xlbik7CisKKwkJcmVjcHRyID0g WExvZ0luc2VydChSTV9TRVFfSUQsIFhMT0dfU0VRX0xPRyk7CisKKwkJUGFnZVNldExTTihw YWdlLCByZWNwdHIpOworCX0KKworCUVORF9DUklUX1NFQ1RJT04oKTsKKworCVVubG9ja1Jl bGVhc2VCdWZmZXIoYnVmKTsKKworCS8qIENsZWFyIGxvY2FsIGNhY2hlIHNvIHRoYXQgd2Ug ZG9uJ3QgdGhpbmsgd2UgaGF2ZSBjYWNoZWQgbnVtYmVycyAqLworCS8qIE5vdGUgdGhhdCB3 ZSBkbyBub3QgY2hhbmdlIHRoZSBjdXJydmFsKCkgc3RhdGUgKi8KKwllbG0tPmNhY2hlZCA9 IGVsbS0+bGFzdDsKKworCXJlbGF0aW9uX2Nsb3NlKHNlcXJlbCwgTm9Mb2NrKTsKK30KKwor LyoKKyAqIFVwZGF0ZSB0aGUgc2VxdWVuY2Ugc3RhdGUgYnkgY3JlYXRpbmcgYSBuZXcgcmVs ZmlsZW5vZGUuCisgKgorICogVGhpcyBjcmVhdGVzIGEgbmV3IHJlbGZpbGVub2RlLCB0byBh bGxvdyB0cmFuc2FjdGlvbmFsIGJlaGF2aW9yLgorICovCitzdGF0aWMgdm9pZAorU2V0U2Vx dWVuY2VfdHJhbnNhY3Rpb25hbChPaWQgc2VxX3JlbGlkLCBpbnQ2NCBsYXN0X3ZhbHVlLCBp bnQ2NCBsb2dfY250LCBib29sIGlzX2NhbGxlZCkKK3sKKwlTZXFUYWJsZQllbG07CisJUmVs YXRpb24Jc2VxcmVsOworCUJ1ZmZlcgkJYnVmOworCUhlYXBUdXBsZURhdGEgc2VxZGF0YXR1 cGxlOworCUZvcm1fcGdfc2VxdWVuY2VfZGF0YSBzZXE7CisJSGVhcFR1cGxlCXR1cGxlOwor CisJLyogb3BlbiBhbmQgbG9jayBzZXF1ZW5jZSAqLworCWluaXRfc2VxdWVuY2Uoc2VxX3Jl bGlkLCAmZWxtLCAmc2VxcmVsKTsKKworCS8qIGxvY2sgcGFnZScgYnVmZmVyIGFuZCByZWFk IHR1cGxlICovCisJc2VxID0gcmVhZF9zZXFfdHVwbGUoc2VxcmVsLCAmYnVmLCAmc2VxZGF0 YXR1cGxlKTsKKworCS8qIENvcHkgdGhlIGV4aXN0aW5nIHNlcXVlbmNlIHR1cGxlLiAqLwor CXR1cGxlID0gaGVhcF9jb3B5dHVwbGUoJnNlcWRhdGF0dXBsZSk7CisKKwkvKiBOb3cgd2Un cmUgZG9uZSB3aXRoIHRoZSBvbGQgcGFnZSAqLworCVVubG9ja1JlbGVhc2VCdWZmZXIoYnVm KTsKKworCS8qCisJICogTW9kaWZ5IHRoZSBjb3BpZWQgdHVwbGUgdG8gdXBkYXRlIHRoZSBz ZXF1ZW5jZSBzdGF0ZSAoc2ltaWxhciB0byB3aGF0CisJICogUmVzZXRTZXF1ZW5jZSBkb2Vz KS4KKwkgKi8KKwlzZXEgPSAoRm9ybV9wZ19zZXF1ZW5jZV9kYXRhKSBHRVRTVFJVQ1QodHVw bGUpOworCXNlcS0+bGFzdF92YWx1ZSA9IGxhc3RfdmFsdWU7CisJc2VxLT5pc19jYWxsZWQg PSBpc19jYWxsZWQ7CisJc2VxLT5sb2dfY250ID0gbG9nX2NudDsKKworCS8qCisJICogQ3Jl YXRlIGEgbmV3IHN0b3JhZ2UgZmlsZSBmb3IgdGhlIHNlcXVlbmNlIC0gdGhpcyBpcyBuZWVk ZWQgZm9yIHRoZQorCSAqIHRyYW5zYWN0aW9uYWwgYmVoYXZpb3IuCisJICovCisJUmVsYXRp b25TZXROZXdSZWxmaWxlbm9kZShzZXFyZWwsIHNlcXJlbC0+cmRfcmVsLT5yZWxwZXJzaXN0 ZW5jZSk7CisKKwkvKgorCSAqIEVuc3VyZSBzZXF1ZW5jZSdzIHJlbGZyb3plbnhpZCBpcyBh dCAwLCBzaW5jZSBpdCB3b24ndCBjb250YWluIGFueQorCSAqIHVuZnJvemVuIFhJRHMuICBT YW1lIHdpdGggcmVsbWlubXhpZCwgc2luY2UgYSBzZXF1ZW5jZSB3aWxsIG5ldmVyCisJICog Y29udGFpbiBtdWx0aXhhY3RzLgorCSAqLworCUFzc2VydChzZXFyZWwtPnJkX3JlbC0+cmVs ZnJvemVueGlkID09IEludmFsaWRUcmFuc2FjdGlvbklkKTsKKwlBc3NlcnQoc2VxcmVsLT5y ZF9yZWwtPnJlbG1pbm14aWQgPT0gSW52YWxpZE11bHRpWGFjdElkKTsKKworCS8qCisJICog SW5zZXJ0IHRoZSBtb2RpZmllZCB0dXBsZSBpbnRvIHRoZSBuZXcgc3RvcmFnZSBmaWxlLiBU aGlzIGRvZXMgYWxsIHRoZQorCSAqIG5lY2Vzc2FyeSBXQUwtbG9nZ2luZyBldGMuCisJICov CisJZmlsbF9zZXFfd2l0aF9kYXRhKHNlcXJlbCwgdHVwbGUpOworCisJLyogQ2xlYXIgbG9j YWwgY2FjaGUgc28gdGhhdCB3ZSBkb24ndCB0aGluayB3ZSBoYXZlIGNhY2hlZCBudW1iZXJz ICovCisJLyogTm90ZSB0aGF0IHdlIGRvIG5vdCBjaGFuZ2UgdGhlIGN1cnJ2YWwoKSBzdGF0 ZSAqLworCWVsbS0+Y2FjaGVkID0gZWxtLT5sYXN0OworCisJcmVsYXRpb25fY2xvc2Uoc2Vx cmVsLCBOb0xvY2spOworfQorCisvKgorICogU2V0IGEgc2VxdWVuY2UgdG8gYSBzcGVjaWZp ZWQgaW50ZXJuYWwgc3RhdGUuCisgKgorICogVGhlIGNoYW5nZSBpcyBtYWRlIHRyYW5zYWN0 aW9uYWxseSwgc28gdGhhdCBvbiBmYWlsdXJlIG9mIHRoZSBjdXJyZW50CisgKiB0cmFuc2Fj dGlvbiwgdGhlIHNlcXVlbmNlIHdpbGwgYmUgcmVzdG9yZWQgdG8gaXRzIHByZXZpb3VzIHN0 YXRlLgorICogV2UgZG8gdGhhdCBieSBjcmVhdGluZyBhIHdob2xlIG5ldyByZWxmaWxlbm9k ZSBmb3IgdGhlIHNlcXVlbmNlOyBzbyB0aGlzCisgKiB3b3JrcyBtdWNoIGxpa2UgdGhlIHJl d3JpdGluZyBmb3JtcyBvZiBBTFRFUiBUQUJMRS4KKyAqCisgKiBDYWxsZXIgaXMgYXNzdW1l ZCB0byBoYXZlIGFjcXVpcmVkIEFjY2Vzc0V4Y2x1c2l2ZUxvY2sgb24gdGhlIHNlcXVlbmNl LAorICogd2hpY2ggbXVzdCBub3QgYmUgcmVsZWFzZWQgdW50aWwgZW5kIG9mIHRyYW5zYWN0 aW9uLiAgQ2FsbGVyIGlzIGFsc28KKyAqIHJlc3BvbnNpYmxlIGZvciBwZXJtaXNzaW9ucyBj aGVja2luZy4KKyAqLwordm9pZAorU2V0U2VxdWVuY2UoT2lkIHNlcV9yZWxpZCwgYm9vbCB0 cmFuc2FjdGlvbmFsLCBpbnQ2NCBsYXN0X3ZhbHVlLCBpbnQ2NCBsb2dfY250LCBib29sIGlz X2NhbGxlZCkKK3sKKwlpZiAodHJhbnNhY3Rpb25hbCkKKwkJU2V0U2VxdWVuY2VfdHJhbnNh Y3Rpb25hbChzZXFfcmVsaWQsIGxhc3RfdmFsdWUsIGxvZ19jbnQsIGlzX2NhbGxlZCk7CisJ ZWxzZQorCQlTZXRTZXF1ZW5jZV9ub25fdHJhbnNhY3Rpb25hbChzZXFfcmVsaWQsIGxhc3Rf dmFsdWUsIGxvZ19jbnQsIGlzX2NhbGxlZCk7Cit9CisKIC8qCiAgKiBJbml0aWFsaXplIGEg c2VxdWVuY2UncyByZWxhdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgdHVwbGUgYXMgY29udGVu dAogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25j bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5kZXgg ZTE2ZjA0NjI2ZGUuLjE0ZWU0OTJhOWJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jCkBAIC05MCw2ICs5MCw3IEBAIHR5cGVkZWYgc3RydWN0IFN1Yk9w dHMKIH0gU3ViT3B0czsKIAogc3RhdGljIExpc3QgKmZldGNoX3RhYmxlX2xpc3QoV2FsUmVj ZWl2ZXJDb25uICp3cmNvbm4sIExpc3QgKnB1YmxpY2F0aW9ucyk7CitzdGF0aWMgTGlzdCAq ZmV0Y2hfc2VxdWVuY2VfbGlzdChXYWxSZWNlaXZlckNvbm4gKndyY29ubiwgTGlzdCAqcHVi bGljYXRpb25zKTsKIHN0YXRpYyB2b2lkIGNoZWNrX2R1cGxpY2F0ZXNfaW5fcHVibGlzdChM aXN0ICpwdWJsaXN0LCBEYXR1bSAqZGF0dW1zKTsKIHN0YXRpYyBMaXN0ICptZXJnZV9wdWJs aWNhdGlvbnMoTGlzdCAqb2xkcHVibGlzdCwgTGlzdCAqbmV3cHVibGlzdCwgYm9vbCBhZGRw dWIsIGNvbnN0IGNoYXIgKnN1Ym5hbWUpOwogc3RhdGljIHZvaWQgUmVwb3J0U2xvdENvbm5l Y3Rpb25FcnJvcihMaXN0ICpyc3RhdGVzLCBPaWQgc3ViaWQsIGNoYXIgKnNsb3RuYW1lLCBj aGFyICplcnIpOwpAQCAtNTQxLDkgKzU0Miw5IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJewogCQlj aGFyCSAgICplcnI7CiAJCVdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uOwotCQlMaXN0CSAgICp0 YWJsZXM7CisJCUxpc3QJICAgKnJlbGF0aW9uczsKIAkJTGlzdENlbGwgICAqbGM7Ci0JCWNo YXIJCXRhYmxlX3N0YXRlOworCQljaGFyCQlzeW5jX3N0YXRlOwogCiAJCS8qIFRyeSB0byBj b25uZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCiAJCXdyY29ubiA9IHdhbHJjdl9jb25uZWN0 KGNvbm5pbmZvLCB0cnVlLCBzdG10LT5zdWJuYW1lLCAmZXJyKTsKQEAgLTU1OCwxNCArNTU5 LDE3IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1 YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkgKiBTZXQgc3luYyBzdGF0ZSBiYXNlZCBvbiBp ZiB3ZSB3ZXJlIGFza2VkIHRvIGRvIGRhdGEgY29weSBvcgogCQkJICogbm90LgogCQkJICov Ci0JCQl0YWJsZV9zdGF0ZSA9IG9wdHMuY29weV9kYXRhID8gU1VCUkVMX1NUQVRFX0lOSVQg OiBTVUJSRUxfU1RBVEVfUkVBRFk7CisJCQlzeW5jX3N0YXRlID0gb3B0cy5jb3B5X2RhdGEg PyBTVUJSRUxfU1RBVEVfSU5JVCA6IFNVQlJFTF9TVEFURV9SRUFEWTsKIAogCQkJLyoKLQkJ CSAqIEdldCB0aGUgdGFibGUgbGlzdCBmcm9tIHB1Ymxpc2hlciBhbmQgYnVpbGQgbG9jYWwg dGFibGUgc3RhdHVzCi0JCQkgKiBpbmZvLgorCQkJICogR2V0IHRoZSB0YWJsZSBhbmQgc2Vx dWVuY2UgbGlzdCBmcm9tIHB1Ymxpc2hlciBhbmQgYnVpbGQKKwkJCSAqIGxvY2FsIHJlbGF0 aW9uIHN5bmMgc3RhdHVzIGluZm8uCiAJCQkgKi8KLQkJCXRhYmxlcyA9IGZldGNoX3RhYmxl X2xpc3Qod3Jjb25uLCBwdWJsaWNhdGlvbnMpOwotCQkJZm9yZWFjaChsYywgdGFibGVzKQor CQkJcmVsYXRpb25zID0gZmV0Y2hfdGFibGVfbGlzdCh3cmNvbm4sIHB1YmxpY2F0aW9ucyk7 CisJCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNhdChyZWxhdGlvbnMsCisJCQkJCQkJCQlmZXRj aF9zZXF1ZW5jZV9saXN0KHdyY29ubiwgcHVibGljYXRpb25zKSk7CisKKwkJCWZvcmVhY2go bGMsIHJlbGF0aW9ucykKIAkJCXsKIAkJCQlSYW5nZVZhciAgICpydiA9IChSYW5nZVZhciAq KSBsZmlyc3QobGMpOwogCQkJCU9pZAkJCXJlbGlkOwpAQCAtNTc2LDcgKzU4MCw3IEBAIENy ZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlv blN0bXQgKnN0bXQsCiAJCQkJQ2hlY2tTdWJzY3JpcHRpb25SZWxraW5kKGdldF9yZWxfcmVs a2luZChyZWxpZCksCiAJCQkJCQkJCQkJIHJ2LT5zY2hlbWFuYW1lLCBydi0+cmVsbmFtZSk7 CiAKLQkJCQlBZGRTdWJzY3JpcHRpb25SZWxTdGF0ZShzdWJpZCwgcmVsaWQsIHRhYmxlX3N0 YXRlLAorCQkJCUFkZFN1YnNjcmlwdGlvblJlbFN0YXRlKHN1YmlkLCByZWxpZCwgc3luY19z dGF0ZSwKIAkJCQkJCQkJCQlJbnZhbGlkWExvZ1JlY1B0cik7CiAJCQl9CiAKQEAgLTYwMiwx MiArNjA2LDEyIEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENy ZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJICoKIAkJCQkgKiBOb3RlIHRoYXQg aWYgdGFibGVzIHdlcmUgc3BlY2lmaWVkIGJ1dCBjb3B5X2RhdGEgaXMgZmFsc2UKIAkJCQkg KiB0aGVuIGl0IGlzIHNhZmUgdG8gZW5hYmxlIHR3b19waGFzZSB1cC1mcm9udCBiZWNhdXNl IHRob3NlCi0JCQkJICogdGFibGVzIGFyZSBhbHJlYWR5IGluaXRpYWxseSBpbiBSRUFEWSBz dGF0ZS4gV2hlbiB0aGUKLQkJCQkgKiBzdWJzY3JpcHRpb24gaGFzIG5vIHRhYmxlcywgd2Ug bGVhdmUgdGhlIHR3b3BoYXNlIHN0YXRlIGFzCi0JCQkJICogUEVORElORywgdG8gYWxsb3cg QUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNICisJCQkJICogcmVsYXRpb25zIGFyZSBh bHJlYWR5IGluaXRpYWxseSBpbiBSRUFEWSBzdGF0ZS4gV2hlbiB0aGUKKwkJCQkgKiBzdWJz Y3JpcHRpb24gaGFzIG5vIHJlbGF0aW9ucywgd2UgbGVhdmUgdGhlIHR3b3BoYXNlIHN0YXRl CisJCQkJICogYXMgUEVORElORywgdG8gYWxsb3cgQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBS RUZSRVNICiAJCQkJICogUFVCTElDQVRJT04gdG8gd29yay4KIAkJCQkgKi8KLQkJCQlpZiAo b3B0cy50d29waGFzZSAmJiAhb3B0cy5jb3B5X2RhdGEgJiYgdGFibGVzICE9IE5JTCkKKwkJ CQlpZiAob3B0cy50d29waGFzZSAmJiAhb3B0cy5jb3B5X2RhdGEgJiYgcmVsYXRpb25zICE9 IE5JTCkKIAkJCQkJdHdvcGhhc2VfZW5hYmxlZCA9IHRydWU7CiAKIAkJCQl3YWxyY3ZfY3Jl YXRlX3Nsb3Qod3Jjb25uLCBvcHRzLnNsb3RfbmFtZSwgZmFsc2UsIHR3b3BoYXNlX2VuYWJs ZWQsCkBAIC02NzcsOCArNjgxLDEwIEBAIEFsdGVyU3Vic2NyaXB0aW9uX3JlZnJlc2goU3Vi c2NyaXB0aW9uICpzdWIsIGJvb2wgY29weV9kYXRhKQogCiAJUEdfVFJZKCk7CiAJewotCQkv KiBHZXQgdGhlIHRhYmxlIGxpc3QgZnJvbSBwdWJsaXNoZXIuICovCisJCS8qIEdldCB0aGUg bGlzdCBvZiByZWxhdGlvbnMgZnJvbSBwdWJsaXNoZXIuICovCiAJCXB1YnJlbF9uYW1lcyA9 IGZldGNoX3RhYmxlX2xpc3Qod3Jjb25uLCBzdWItPnB1YmxpY2F0aW9ucyk7CisJCXB1YnJl bF9uYW1lcyA9IGxpc3RfY29uY2F0KHB1YnJlbF9uYW1lcywKKwkJCQkJCQkJICAgZmV0Y2hf c2VxdWVuY2VfbGlzdCh3cmNvbm4sIHN1Yi0+cHVibGljYXRpb25zKSk7CiAKIAkJLyogR2V0 IGxvY2FsIHRhYmxlIGxpc3QuICovCiAJCXN1YnJlbF9zdGF0ZXMgPSBHZXRTdWJzY3JpcHRp b25SZWxhdGlvbnMoc3ViLT5vaWQpOwpAQCAtMTcxMiw2ICsxNzE4LDc1IEBAIGZldGNoX3Rh YmxlX2xpc3QoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIExpc3QgKnB1YmxpY2F0aW9ucykK IAlyZXR1cm4gdGFibGVsaXN0OwogfQogCisvKgorICogR2V0IHRoZSBsaXN0IG9mIHNlcXVl bmNlcyB3aGljaCBiZWxvbmcgdG8gc3BlY2lmaWVkIHB1YmxpY2F0aW9ucyBvbiB0aGUKKyAq IHB1Ymxpc2hlciBjb25uZWN0aW9uLgorICovCitzdGF0aWMgTGlzdCAqCitmZXRjaF9zZXF1 ZW5jZV9saXN0KFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uLCBMaXN0ICpwdWJsaWNhdGlvbnMp Cit7CisJV2FsUmN2RXhlY1Jlc3VsdCAqcmVzOworCVN0cmluZ0luZm9EYXRhIGNtZDsKKwlU dXBsZVRhYmxlU2xvdCAqc2xvdDsKKwlPaWQJCQl0YWJsZVJvd1syXSA9IHtURVhUT0lELCBU RVhUT0lEfTsKKwlMaXN0Q2VsbCAgICpsYzsKKwlib29sCQlmaXJzdDsKKwlMaXN0CSAgICp0 YWJsZWxpc3QgPSBOSUw7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgocHVibGljYXRpb25zKSA+ IDApOworCisJaW5pdFN0cmluZ0luZm8oJmNtZCk7CisJYXBwZW5kU3RyaW5nSW5mb1N0cmlu ZygmY21kLCAiU0VMRUNUIERJU1RJTkNUIHMuc2NoZW1hbmFtZSwgcy5zZXF1ZW5jZW5hbWVc biIKKwkJCQkJCSAgICIgIEZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9zZXF1ZW5j ZXMgc1xuIgorCQkJCQkJICAgIiBXSEVSRSBzLnB1Ym5hbWUgSU4gKCIpOworCWZpcnN0ID0g dHJ1ZTsKKwlmb3JlYWNoKGxjLCBwdWJsaWNhdGlvbnMpCisJeworCQljaGFyCSAgICpwdWJu YW1lID0gc3RyVmFsKGxmaXJzdChsYykpOworCisJCWlmIChmaXJzdCkKKwkJCWZpcnN0ID0g ZmFsc2U7CisJCWVsc2UKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmNtZCwgIiwgIik7 CisKKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmY21kLCBxdW90ZV9saXRlcmFsX2NzdHIo cHVibmFtZSkpOworCX0KKwlhcHBlbmRTdHJpbmdJbmZvQ2hhcigmY21kLCAnKScpOworCisJ cmVzID0gd2FscmN2X2V4ZWMod3Jjb25uLCBjbWQuZGF0YSwgMiwgdGFibGVSb3cpOworCXBm cmVlKGNtZC5kYXRhKTsKKworCWlmIChyZXMtPnN0YXR1cyAhPSBXQUxSQ1ZfT0tfVFVQTEVT KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJtc2coImNvdWxkIG5vdCByZWNlaXZlIGxp c3Qgb2YgcmVwbGljYXRlZCBzZXF1ZW5jZXMgZnJvbSB0aGUgcHVibGlzaGVyOiAlcyIsCisJ CQkJCQlyZXMtPmVycikpKTsKKworCS8qIFByb2Nlc3MgdGFibGVzLiAqLworCXNsb3QgPSBN YWtlU2luZ2xlVHVwbGVUYWJsZVNsb3QocmVzLT50dXBsZWRlc2MsICZUVFNPcHNNaW5pbWFs VHVwbGUpOworCXdoaWxlICh0dXBsZXN0b3JlX2dldHR1cGxlc2xvdChyZXMtPnR1cGxlc3Rv cmUsIHRydWUsIGZhbHNlLCBzbG90KSkKKwl7CisJCWNoYXIJICAgKm5zcG5hbWU7CisJCWNo YXIJICAgKnJlbG5hbWU7CisJCWJvb2wJCWlzbnVsbDsKKwkJUmFuZ2VWYXIgICAqcnY7CisK KwkJbnNwbmFtZSA9IFRleHREYXR1bUdldENTdHJpbmcoc2xvdF9nZXRhdHRyKHNsb3QsIDEs ICZpc251bGwpKTsKKwkJQXNzZXJ0KCFpc251bGwpOworCQlyZWxuYW1lID0gVGV4dERhdHVt R2V0Q1N0cmluZyhzbG90X2dldGF0dHIoc2xvdCwgMiwgJmlzbnVsbCkpOworCQlBc3NlcnQo IWlzbnVsbCk7CisKKwkJcnYgPSBtYWtlUmFuZ2VWYXIobnNwbmFtZSwgcmVsbmFtZSwgLTEp OworCQl0YWJsZWxpc3QgPSBsYXBwZW5kKHRhYmxlbGlzdCwgcnYpOworCisJCUV4ZWNDbGVh clR1cGxlKHNsb3QpOworCX0KKwlFeGVjRHJvcFNpbmdsZVR1cGxlVGFibGVTbG90KHNsb3Qp OworCisJd2FscmN2X2NsZWFyX3Jlc3VsdChyZXMpOworCisJcmV0dXJuIHRhYmxlbGlzdDsK K30KKwogLyoKICAqIFRoaXMgaXMgdG8gcmVwb3J0IHRoZSBjb25uZWN0aW9uIGZhaWx1cmUg d2hpbGUgZHJvcHBpbmcgcmVwbGljYXRpb24gc2xvdHMuCiAgKiBIZXJlLCB3ZSByZXBvcnQg dGhlIFdBUk5JTkcgZm9yIGFsbCB0YWJsZXN5bmMgc2xvdHMgc28gdGhhdCB1c2VyIGNhbiBk cm9wCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDgwZmFhZTk4NWU5Li4zOGJm NTcyZTFmNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTQyLDYgKzQyLDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2luaGVyaXRzLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wY2xhc3MuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFi bGVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgpAQCAtMTYzODEs MTEgKzE2MzgyLDE0IEBAIEFsdGVyVGFibGVOYW1lc3BhY2UoQWx0ZXJPYmplY3RTY2hlbWFT dG10ICpzdG10LCBPaWQgKm9sZHNjaGVtYSkKIAkgKiBDaGVjayB0aGF0IHNldHRpbmcgdGhl IHJlbGF0aW9uIHRvIGEgZGlmZmVyZW50IHNjaGVtYSB3b24ndCByZXN1bHQgaW4gYQogCSAq IHB1YmxpY2F0aW9uIGhhdmluZyBib3RoIGEgc2NoZW1hIGFuZCB0aGUgc2FtZSBzY2hlbWEn cyB0YWJsZSwgYXMgdGhpcwogCSAqIGlzIG5vdCBzdXBwb3J0ZWQuCisJICoKKwkgKiBYWFgg VGhlIGJsb2NrcyBhcmUgYWxtb3N0IGV4YWN0bHkgdGhlIHNhbWUsIHNvIG1heWJlIGNvbWJp bmUgdGhlbSBpbnRvCisJICogYSBzaW5nbGUgYmxvY2suCiAJICovCiAJaWYgKHN0bXQtPm9i amVjdFR5cGUgPT0gT0JKRUNUX1RBQkxFKQogCXsKIAkJTGlzdENlbGwgICAqbGM7Ci0JCUxp c3QJICAgKnNjaGVtYVB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhuc3BPaWQpOwor CQlMaXN0CSAgICpzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMobnNwT2lk LCBQVUJfT0JKVFlQRV9UQUJMRSk7CiAJCUxpc3QJICAgKnJlbFB1YmlkcyA9IEdldFJlbGF0 aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CiAKIAkJZm9yZWFjaChs YywgcmVsUHViaWRzKQpAQCAtMTY0MDMsNiArMTY0MDcsMjcgQEAgQWx0ZXJUYWJsZU5hbWVz cGFjZShBbHRlck9iamVjdFNjaGVtYVN0bXQgKnN0bXQsIE9pZCAqb2xkc2NoZW1hKQogCQkJ CQkJCQkgIGdldF9wdWJsaWNhdGlvbl9uYW1lKHB1YmlkLCBmYWxzZSkpKTsKIAkJfQogCX0K KwllbHNlIGlmIChzdG10LT5vYmplY3RUeXBlID09IE9CSkVDVF9TRVFVRU5DRSkKKwl7CisJ CUxpc3RDZWxsICAgKmxjOworCQlMaXN0CSAgICpzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQ dWJsaWNhdGlvbnMobnNwT2lkLCBQVUJfT0JKVFlQRV9TRVFVRU5DRSk7CisJCUxpc3QJICAg KnJlbFB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQo cmVsKSk7CisKKwkJZm9yZWFjaChsYywgcmVsUHViaWRzKQorCQl7CisJCQlPaWQJCQlwdWJp ZCA9IGxmaXJzdF9vaWQobGMpOworCisJCQlpZiAobGlzdF9tZW1iZXJfb2lkKHNjaGVtYVB1 YmlkcywgcHViaWQpKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCWVycm1zZygiY2Fubm90IG1vdmUg c2VxdWVuY2UgXCIlc1wiIHRvIHNjaGVtYSBcIiVzXCIiLAorCQkJCQkJCSAgIFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCksIHN0bXQtPm5ld3NjaGVtYSksCisJCQkJCQllcnJkZXRh aWwoIlRoZSBzY2hlbWEgXCIlc1wiIGFuZCBzYW1lIHNjaGVtYSdzIHNlcXVlbmNlIFwiJXNc IiBjYW5ub3QgYmUgcGFydCBvZiB0aGUgc2FtZSBwdWJsaWNhdGlvbiBcIiVzXCIuIiwKKwkJ CQkJCQkJICBzdG10LT5uZXdzY2hlbWEsCisJCQkJCQkJCSAgUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVsKSwKKwkJCQkJCQkJICBnZXRfcHVibGljYXRpb25fbmFtZShwdWJpZCwgZmFs c2UpKSk7CisJCX0KKwl9CiAKIAkvKiBjb21tb24gY2hlY2tzIG9uIHN3aXRjaGluZyBuYW1l c3BhY2VzICovCiAJQ2hlY2tTZXROYW1lc3BhY2Uob2xkTnNwT2lkLCBuc3BPaWQpOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYwppbmRleCAxMzMyODE0MWUyMy4u MGRmN2NmNTg3NDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBs aWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5j CkBAIC02MzYsNyArNjM2LDkgQEAgdm9pZAogQ2hlY2tTdWJzY3JpcHRpb25SZWxraW5kKGNo YXIgcmVsa2luZCwgY29uc3QgY2hhciAqbnNwbmFtZSwKIAkJCQkJCSBjb25zdCBjaGFyICpy ZWxuYW1lKQogewotCWlmIChyZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04gJiYgcmVsa2lu ZCAhPSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCWlmIChyZWxraW5kICE9IFJFTEtJ TkRfUkVMQVRJT04gJiYKKwkJcmVsa2luZCAhPSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxF ICYmCisJCXJlbGtpbmQgIT0gUkVMS0lORF9TRVFVRU5DRSkKIAkJZXJlcG9ydChFUlJPUiwK IAkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKIAkJCQkgZXJybXNn KCJjYW5ub3QgdXNlIHJlbGF0aW9uIFwiJXMuJXNcIiBhcyBsb2dpY2FsIHJlcGxpY2F0aW9u IHRhcmdldCIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9jb3B5ZnVuY3MuYyBi L3NyYy9iYWNrZW5kL25vZGVzL2NvcHlmdW5jcy5jCmluZGV4IGQ0Zjg0NTVhMmJkLi41NWY3 MjBhODhmNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKKysr IGIvc3JjL2JhY2tlbmQvbm9kZXMvY29weWZ1bmNzLmMKQEAgLTQ4NjIsNyArNDg2Miw3IEBA IF9jb3B5Q3JlYXRlUHVibGljYXRpb25TdG10KGNvbnN0IENyZWF0ZVB1YmxpY2F0aW9uU3Rt dCAqZnJvbSkKIAlDT1BZX1NUUklOR19GSUVMRChwdWJuYW1lKTsKIAlDT1BZX05PREVfRklF TEQob3B0aW9ucyk7CiAJQ09QWV9OT0RFX0ZJRUxEKHB1Ym9iamVjdHMpOwotCUNPUFlfU0NB TEFSX0ZJRUxEKGZvcl9hbGxfdGFibGVzKTsKKwlDT1BZX05PREVfRklFTEQoZm9yX2FsbF9v YmplY3RzKTsKIAogCXJldHVybiBuZXdub2RlOwogfQpAQCAtNDg3NSw3ICs0ODc1LDcgQEAg X2NvcHlBbHRlclB1YmxpY2F0aW9uU3RtdChjb25zdCBBbHRlclB1YmxpY2F0aW9uU3RtdCAq ZnJvbSkKIAlDT1BZX1NUUklOR19GSUVMRChwdWJuYW1lKTsKIAlDT1BZX05PREVfRklFTEQo b3B0aW9ucyk7CiAJQ09QWV9OT0RFX0ZJRUxEKHB1Ym9iamVjdHMpOwotCUNPUFlfU0NBTEFS X0ZJRUxEKGZvcl9hbGxfdGFibGVzKTsKKwlDT1BZX05PREVfRklFTEQoZm9yX2FsbF9vYmpl Y3RzKTsKIAlDT1BZX1NDQUxBUl9GSUVMRChhY3Rpb24pOwogCiAJcmV0dXJuIG5ld25vZGU7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMgYi9zcmMvYmFj a2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMKaW5kZXggZjEwMDJhZmU3YTAuLjgyNTYyZWI5Yjg3 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9lcXVhbGZ1bmNzLmMKKysrIGIvc3Jj L2JhY2tlbmQvbm9kZXMvZXF1YWxmdW5jcy5jCkBAIC0yMzMzLDcgKzIzMzMsNyBAQCBfZXF1 YWxDcmVhdGVQdWJsaWNhdGlvblN0bXQoY29uc3QgQ3JlYXRlUHVibGljYXRpb25TdG10ICph LAogCUNPTVBBUkVfU1RSSU5HX0ZJRUxEKHB1Ym5hbWUpOwogCUNPTVBBUkVfTk9ERV9GSUVM RChvcHRpb25zKTsKIAlDT01QQVJFX05PREVfRklFTEQocHVib2JqZWN0cyk7Ci0JQ09NUEFS RV9TQ0FMQVJfRklFTEQoZm9yX2FsbF90YWJsZXMpOworCUNPTVBBUkVfTk9ERV9GSUVMRChm b3JfYWxsX29iamVjdHMpOwogCiAJcmV0dXJuIHRydWU7CiB9CkBAIC0yMzQ1LDcgKzIzNDUs NyBAQCBfZXF1YWxBbHRlclB1YmxpY2F0aW9uU3RtdChjb25zdCBBbHRlclB1YmxpY2F0aW9u U3RtdCAqYSwKIAlDT01QQVJFX1NUUklOR19GSUVMRChwdWJuYW1lKTsKIAlDT01QQVJFX05P REVfRklFTEQob3B0aW9ucyk7CiAJQ09NUEFSRV9OT0RFX0ZJRUxEKHB1Ym9iamVjdHMpOwot CUNPTVBBUkVfU0NBTEFSX0ZJRUxEKGZvcl9hbGxfdGFibGVzKTsKKwlDT01QQVJFX05PREVf RklFTEQoZm9yX2FsbF9vYmplY3RzKTsKIAlDT01QQVJFX1NDQUxBUl9GSUVMRChhY3Rpb24p OwogCiAJcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAwMDM2YzJmOWUyZC4uZTMy N2JjNzM1ZmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNDQ2LDcgKzQ0Niw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJdHJhbnNmb3JtX2VsZW1lbnRfbGlzdCB0cmFuc2Zv cm1fdHlwZV9saXN0CiAJCQkJVHJpZ2dlclRyYW5zaXRpb25zIFRyaWdnZXJSZWZlcmVuY2lu ZwogCQkJCXZhY3V1bV9yZWxhdGlvbl9saXN0IG9wdF92YWN1dW1fcmVsYXRpb25fbGlzdAot CQkJCWRyb3Bfb3B0aW9uX2xpc3QgcHViX29ial9saXN0CisJCQkJZHJvcF9vcHRpb25fbGlz dCBwdWJfb2JqX2xpc3QgcHViX29ial90eXBlX2xpc3QKIAogJXR5cGUgPG5vZGU+CW9wdF9y b3V0aW5lX2JvZHkKICV0eXBlIDxncm91cGNsYXVzZT4gZ3JvdXBfY2xhdXNlCkBAIC01NzUs NiArNTc1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPgl2 YXJfdmFsdWUgem9uZV92YWx1ZQogJXR5cGUgPHJvbGVzcGVjPiBhdXRoX2lkZW50IFJvbGVT cGVjIG9wdF9ncmFudGVkX2J5CiAldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVjPiBQdWJs aWNhdGlvbk9ialNwZWMKKyV0eXBlIDxub2RlPglwdWJfb2JqX3R5cGUKIAogJXR5cGUgPGtl eXdvcmQ+IHVucmVzZXJ2ZWRfa2V5d29yZCB0eXBlX2Z1bmNfbmFtZV9rZXl3b3JkCiAldHlw ZSA8a2V5d29yZD4gY29sX25hbWVfa2V5d29yZCByZXNlcnZlZF9rZXl3b3JkCkBAIC05NzAx LDEyICs5NzAyLDkgQEAgQWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdh dGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwogICoKICAqIENSRUFURSBQVUJM SUNBVElPTiBGT1IgQUxMIFRBQkxFUyBbV0lUSCBvcHRpb25zXQogICoKLSAqIENSRUFURSBQ VUJMSUNBVElPTiBGT1IgcHViX29iaiBbLCAuLi5dIFtXSVRIIG9wdGlvbnNdCi0gKgotICog cHViX29iaiBpcyBvbmUgb2Y6CisgKiBDUkVBVEUgUFVCTElDQVRJT04gRk9SIEFMTCBTRVFV RU5DRVMgW1dJVEggb3B0aW9uc10KICAqCi0gKgkJVEFCTEUgdGFibGUgWywgLi4uXQotICoJ CUFMTCBUQUJMRVMgSU4gU0NIRU1BIHNjaGVtYSBbLCAuLi5dCisgKiBDUkVBVEUgUFVCTElD QVRJT04gRk9SIHB1Yl9vYmogWywgLi4uXSBbV0lUSCBvcHRpb25zXQogICoKICAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KIApAQCAtOTcxOCwxMiArOTcxNiwxMiBAQCBDcmVhdGVQdWJs aWNhdGlvblN0bXQ6CiAJCQkJCW4tPm9wdGlvbnMgPSAkNDsKIAkJCQkJJCQgPSAoTm9kZSAq KW47CiAJCQkJfQotCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxF UyBvcHRfZGVmaW5pdGlvbgorCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1IgQUxM IHB1Yl9vYmpfdHlwZV9saXN0IG9wdF9kZWZpbml0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVQ dWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVQdWJsaWNhdGlvblN0bXQpOwog CQkJCQluLT5wdWJuYW1lID0gJDM7CiAJCQkJCW4tPm9wdGlvbnMgPSAkNzsKLQkJCQkJbi0+ Zm9yX2FsbF90YWJsZXMgPSB0cnVlOworCQkJCQluLT5mb3JfYWxsX29iamVjdHMgPSAkNjsK IAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBDUkVBVEUgUFVCTElDQVRJT04g bmFtZSBGT1IgcHViX29ial9saXN0IG9wdF9kZWZpbml0aW9uCkBAIC05NzcyLDYgKzk3NzAs MjYgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJ Q0FUSU9OT0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BOwogCQkJCQkkJC0+bG9jYXRpb24gPSBA NTsKIAkJCQl9CisJCQl8IFNFUVVFTkNFIHJlbGF0aW9uX2V4cHIKKwkJCQl7CisJCQkJCSQk ID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUg PSBQVUJMSUNBVElPTk9CSl9TRVFVRU5DRTsKKwkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5v ZGUoUHVibGljYXRpb25UYWJsZSk7CisJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAk MjsKKwkJCQl9CisJCQl8IEFMTCBTRVFVRU5DRVMgSU5fUCBTQ0hFTUEgQ29sSWQKKwkJCQl7 CisJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKKwkJCQkJJCQtPnB1 Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9TRVFVRU5DRVNfSU5fU0NIRU1BOworCQkJCQkk JC0+bmFtZSA9ICQ1OworCQkJCQkkJC0+bG9jYXRpb24gPSBANTsKKwkJCQl9CisJCQl8IEFM TCBTRVFVRU5DRVMgSU5fUCBTQ0hFTUEgQ1VSUkVOVF9TQ0hFTUEKKwkJCQl7CisJCQkJCSQk ID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUg PSBQVUJMSUNBVElPTk9CSl9TRVFVRU5DRVNfSU5fQ1VSX1NDSEVNQTsKKwkJCQkJJCQtPmxv Y2F0aW9uID0gQDU7CisJCQkJfQogCQkJfCBDb2xJZCBPcHRXaGVyZUNsYXVzZQogCQkJCXsK IAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwpAQCAtOTgyNiw2ICs5 ODQ0LDE5IEBAIHB1Yl9vYmpfbGlzdDogCVB1YmxpY2F0aW9uT2JqU3BlYwogCQkJCQl7ICQk ID0gbGFwcGVuZCgkMSwgJDMpOyB9CiAJOwogCitwdWJfb2JqX3R5cGU6CVRBQkxFUworCQkJ CQl7ICQkID0gKE5vZGUgKikgbWFrZVN0cmluZygidGFibGVzIik7IH0KKwkJCQl8IFNFUVVF TkNFUworCQkJCQl7ICQkID0gKE5vZGUgKikgbWFrZVN0cmluZygic2VxdWVuY2VzIik7IH0K Kwk7CisKK3B1Yl9vYmpfdHlwZV9saXN0OglwdWJfb2JqX3R5cGUKKwkJCQkJeyAkJCA9IGxp c3RfbWFrZTEoJDEpOyB9CisJCQkJfCBwdWJfb2JqX3R5cGVfbGlzdCAnLCcgcHViX29ial90 eXBlCisJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KKwk7CisKKwogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgKCBv cHRpb25zICkKQEAgLTk4MzYsMTEgKzk4NjcsNiBAQCBwdWJfb2JqX2xpc3Q6IAlQdWJsaWNh dGlvbk9ialNwZWMKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFNFVCBwdWJfb2Jq IFssIC4uLl0KICAqCi0gKiBwdWJfb2JqIGlzIG9uZSBvZjoKLSAqCi0gKgkJVEFCTEUgdGFi bGVfbmFtZSBbLCAuLi5dCi0gKgkJQUxMIFRBQkxFUyBJTiBTQ0hFTUEgc2NoZW1hX25hbWUg WywgLi4uXQotICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogQWx0ZXJQdWJsaWNh dGlvblN0bXQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3Byb3RvLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Byb3RvLmMKaW5k ZXggYzliMGVlZWZkN2UuLjNkYmU4NWQ2MWEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3Byb3RvLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9wcm90by5jCkBAIC02NDgsNiArNjQ4LDU2IEBAIGxvZ2ljYWxyZXBfd3Jp dGVfbWVzc2FnZShTdHJpbmdJbmZvIG91dCwgVHJhbnNhY3Rpb25JZCB4aWQsIFhMb2dSZWNQ dHIgbHNuLAogCXBxX3NlbmRieXRlcyhvdXQsIG1lc3NhZ2UsIHN6KTsKIH0KIAorLyoKKyAq IFdyaXRlIFNFUVVFTkNFIHRvIHN0cmVhbQorICovCit2b2lkCitsb2dpY2FscmVwX3dyaXRl X3NlcXVlbmNlKFN0cmluZ0luZm8gb3V0LCBSZWxhdGlvbiByZWwsIFRyYW5zYWN0aW9uSWQg eGlkLAorCQkJCQkJICBYTG9nUmVjUHRyIGxzbiwgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJ CQkJICBpbnQ2NCBsYXN0X3ZhbHVlLCBpbnQ2NCBsb2dfY250LCBib29sIGlzX2NhbGxlZCkK K3sKKwl1aW50OAkJZmxhZ3MgPSAwOworCWNoYXIJICAgKnJlbG5hbWU7CisKKwlwcV9zZW5k Ynl0ZShvdXQsIExPR0lDQUxfUkVQX01TR19TRVFVRU5DRSk7CisKKwkvKiB0cmFuc2FjdGlv biBJRCAoaWYgbm90IHZhbGlkLCB3ZSdyZSBub3Qgc3RyZWFtaW5nKSAqLworCWlmIChUcmFu c2FjdGlvbklkSXNWYWxpZCh4aWQpKQorCQlwcV9zZW5kaW50MzIob3V0LCB4aWQpOworCisJ cHFfc2VuZGludDgob3V0LCBmbGFncyk7CisJcHFfc2VuZGludDY0KG91dCwgbHNuKTsKKwor CWxvZ2ljYWxyZXBfd3JpdGVfbmFtZXNwYWNlKG91dCwgUmVsYXRpb25HZXROYW1lc3BhY2Uo cmVsKSk7CisJcmVsbmFtZSA9IFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCk7CisJcHFf c2VuZHN0cmluZyhvdXQsIHJlbG5hbWUpOworCisJcHFfc2VuZGludDgob3V0LCB0cmFuc2Fj dGlvbmFsKTsKKwlwcV9zZW5kaW50NjQob3V0LCBsYXN0X3ZhbHVlKTsKKwlwcV9zZW5kaW50 NjQob3V0LCBsb2dfY250KTsKKwlwcV9zZW5kaW50OChvdXQsIGlzX2NhbGxlZCk7Cit9CisK Ky8qCisgKiBSZWFkIFNFUVVFTkNFIGZyb20gdGhlIHN0cmVhbS4KKyAqLwordm9pZAorbG9n aWNhbHJlcF9yZWFkX3NlcXVlbmNlKFN0cmluZ0luZm8gaW4sIExvZ2ljYWxSZXBTZXF1ZW5j ZSAqc2VxZGF0YSkKK3sKKwkvKiBYWFggc2tpcHBpbmcgZmxhZ3MgYW5kIGxzbiAqLworCXBx X2dldG1zZ2ludChpbiwgMSk7CisJcHFfZ2V0bXNnaW50NjQoaW4pOworCisJLyogUmVhZCBy ZWxhdGlvbiBuYW1lIGZyb20gc3RyZWFtICovCisJc2VxZGF0YS0+bnNwbmFtZSA9IHBzdHJk dXAobG9naWNhbHJlcF9yZWFkX25hbWVzcGFjZShpbikpOworCXNlcWRhdGEtPnNlcW5hbWUg PSBwc3RyZHVwKHBxX2dldG1zZ3N0cmluZyhpbikpOworCisJc2VxZGF0YS0+dHJhbnNhY3Rp b25hbCA9IHBxX2dldG1zZ2ludChpbiwgMSk7CisJc2VxZGF0YS0+bGFzdF92YWx1ZSA9IHBx X2dldG1zZ2ludDY0KGluKTsKKwlzZXFkYXRhLT5sb2dfY250ID0gcHFfZ2V0bXNnaW50NjQo aW4pOworCXNlcWRhdGEtPmlzX2NhbGxlZCA9IHBxX2dldG1zZ2ludChpbiwgMSk7Cit9CisK IC8qCiAgKiBXcml0ZSByZWxhdGlvbiBkZXNjcmlwdGlvbiB0byB0aGUgb3V0cHV0IHN0cmVh bS4KICAqLwpAQCAtMTIwMyw2ICsxMjUzLDggQEAgbG9naWNhbHJlcF9tZXNzYWdlX3R5cGUo TG9naWNhbFJlcE1zZ1R5cGUgYWN0aW9uKQogCQkJcmV0dXJuICJTVFJFQU0gQUJPUlQiOwog CQljYXNlIExPR0lDQUxfUkVQX01TR19TVFJFQU1fUFJFUEFSRToKIAkJCXJldHVybiAiU1RS RUFNIFBSRVBBUkUiOworCQljYXNlIExPR0lDQUxfUkVQX01TR19TRVFVRU5DRToKKwkJCXJl dHVybiAiU0VRVUVOQ0UiOwogCX0KIAogCWVsb2coRVJST1IsICJpbnZhbGlkIGxvZ2ljYWwg cmVwbGljYXRpb24gbWVzc2FnZSB0eXBlIFwiJWNcIiIsIGFjdGlvbik7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYwppbmRleCAxNjU5OTY0NTcx Yy4uMzZlY2M1ZDc0YzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvdGFibGVzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC90YWJsZXN5bmMuYwpAQCAtMTAwLDYgKzEwMCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19zdWJzY3JpcHRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvY29weS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNl LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3Jl bGF0aW9uLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCkBAIC0zNTksNiArMzYwLDggQEAgcHJv Y2Vzc19zeW5jaW5nX3RhYmxlc19mb3Jfc3luYyhYTG9nUmVjUHRyIGN1cnJlbnRfbHNuKQog ICoKICAqIElmIHRoZSBzeW5jaHJvbml6YXRpb24gcG9zaXRpb24gaXMgcmVhY2hlZCAoU1lO Q0RPTkUpLCB0aGVuIHRoZSB0YWJsZSBjYW4KICAqIGJlIG1hcmtlZCBhcyBSRUFEWSBhbmQg aXMgbm8gbG9uZ2VyIHRyYWNrZWQuCisgKgorICogWFhYIE1heWJlIHJlbmFtZSB0aGlzIHRv ICJfcmVsYXRpb25zXyIgdG8gY292ZXIgYm90aCB0YWJsZXMgYW5kIHNlcXVlbmNlcy4KICAq Lwogc3RhdGljIHZvaWQKIHByb2Nlc3Nfc3luY2luZ190YWJsZXNfZm9yX2FwcGx5KFhMb2dS ZWNQdHIgY3VycmVudF9sc24pCkBAIC05OTksNiArMTAwMiw5NSBAQCBjb3B5X3RhYmxlKFJl bGF0aW9uIHJlbCkKIAlsb2dpY2FscmVwX3JlbF9jbG9zZShyZWxtYXBlbnRyeSwgTm9Mb2Nr KTsKIH0KIAorLyoKKyAqIEZldGNoIHNlcXVlbmNlIGRhdGEgKGN1cnJlbnQgc3RhdGUpIGZy b20gdGhlIHJlbW90ZSBub2RlLgorICovCitzdGF0aWMgdm9pZAorZmV0Y2hfc2VxdWVuY2Vf ZGF0YShjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLAorCQkJCQlpbnQ2NCAqbGFzdF92 YWx1ZSwgaW50NjQgKmxvZ19jbnQsIGJvb2wgKmlzX2NhbGxlZCkKK3sKKwlXYWxSY3ZFeGVj UmVzdWx0ICpyZXM7CisJU3RyaW5nSW5mb0RhdGEgY21kOworCVR1cGxlVGFibGVTbG90ICpz bG90OworCU9pZAkJCXRhYmxlUm93WzNdID0ge0lOVDhPSUQsIElOVDhPSUQsIEJPT0xPSUR9 OworCisJaW5pdFN0cmluZ0luZm8oJmNtZCk7CisJYXBwZW5kU3RyaW5nSW5mbygmY21kLCAi U0VMRUNUIGxhc3RfdmFsdWUsIGxvZ19jbnQsIGlzX2NhbGxlZFxuIgorCQkJCQkgICAiICBG Uk9NICVzIiwgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwgcmVsbmFtZSkp OworCisJcmVzID0gd2FscmN2X2V4ZWMoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiwgY21kLmRh dGEsIDMsIHRhYmxlUm93KTsKKwlwZnJlZShjbWQuZGF0YSk7CisKKwlpZiAocmVzLT5zdGF0 dXMgIT0gV0FMUkNWX09LX1RVUExFUykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJybXNn KCJjb3VsZCBub3QgcmVjZWl2ZSBsaXN0IG9mIHJlcGxpY2F0ZWQgdGFibGVzIGZyb20gdGhl IHB1Ymxpc2hlcjogJXMiLAorCQkJCQkJcmVzLT5lcnIpKSk7CisKKwkvKiBQcm9jZXNzIHRo ZSBzZXF1ZW5jZS4gKi8KKwlzbG90ID0gTWFrZVNpbmdsZVR1cGxlVGFibGVTbG90KHJlcy0+ dHVwbGVkZXNjLCAmVFRTT3BzTWluaW1hbFR1cGxlKTsKKwl3aGlsZSAodHVwbGVzdG9yZV9n ZXR0dXBsZXNsb3QocmVzLT50dXBsZXN0b3JlLCB0cnVlLCBmYWxzZSwgc2xvdCkpCisJewor CQlib29sCQlpc251bGw7CisKKwkJKmxhc3RfdmFsdWUgPSBEYXR1bUdldEludDY0KHNsb3Rf Z2V0YXR0cihzbG90LCAxLCAmaXNudWxsKSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQkq bG9nX2NudCA9IERhdHVtR2V0SW50NjQoc2xvdF9nZXRhdHRyKHNsb3QsIDIsICZpc251bGwp KTsKKwkJQXNzZXJ0KCFpc251bGwpOworCisJCSppc19jYWxsZWQgPSBEYXR1bUdldEJvb2wo c2xvdF9nZXRhdHRyKHNsb3QsIDMsICZpc251bGwpKTsKKwkJQXNzZXJ0KCFpc251bGwpOwor CisJCUV4ZWNDbGVhclR1cGxlKHNsb3QpOworCX0KKwlFeGVjRHJvcFNpbmdsZVR1cGxlVGFi bGVTbG90KHNsb3QpOworCisJd2FscmN2X2NsZWFyX3Jlc3VsdChyZXMpOworfQorCisvKgor ICogQ29weSBleGlzdGluZyBkYXRhIG9mIGEgc2VxdWVuY2UgZnJvbSBwdWJsaXNoZXIuCisg KgorICogQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBsb2NraW5nIHRoZSBsb2NhbCByZWxh dGlvbi4KKyAqLworc3RhdGljIHZvaWQKK2NvcHlfc2VxdWVuY2UoUmVsYXRpb24gcmVsKQor eworCUxvZ2ljYWxSZXBSZWxNYXBFbnRyeSAqcmVsbWFwZW50cnk7CisJTG9naWNhbFJlcFJl bGF0aW9uIGxyZWw7CisJTGlzdAkgICAqcXVhbCA9IE5JTDsKKwlTdHJpbmdJbmZvRGF0YSBj bWQ7CisJaW50NjQJCWxhc3RfdmFsdWUgPSAwLAorCQkJCWxvZ19jbnQgPSAwOworCWJvb2wJ CWlzX2NhbGxlZCA9IDA7CisKKwkvKiBHZXQgdGhlIHB1Ymxpc2hlciByZWxhdGlvbiBpbmZv LiAqLworCWZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGdldF9uYW1lc3BhY2VfbmFtZShSZWxh dGlvbkdldE5hbWVzcGFjZShyZWwpKSwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShyZWwpLCAmbHJlbCwgJnF1YWwpOworCisJLyogc2VxdWVuY2VzIGRvbid0IGhhdmUgcm93 IGZpbHRlcnMgKi8KKwlBc3NlcnQoIXF1YWwpOworCisJLyogUHV0IHRoZSByZWxhdGlvbiBp bnRvIHJlbG1hcC4gKi8KKwlsb2dpY2FscmVwX3JlbG1hcF91cGRhdGUoJmxyZWwpOworCisJ LyogTWFwIHRoZSBwdWJsaXNoZXIgcmVsYXRpb24gdG8gbG9jYWwgb25lLiAqLworCXJlbG1h cGVudHJ5ID0gbG9naWNhbHJlcF9yZWxfb3BlbihscmVsLnJlbW90ZWlkLCBOb0xvY2spOwor CUFzc2VydChyZWwgPT0gcmVsbWFwZW50cnktPmxvY2FscmVsKTsKKworCS8qIFN0YXJ0IGNv cHkgb24gdGhlIHB1Ymxpc2hlci4gKi8KKwlpbml0U3RyaW5nSW5mbygmY21kKTsKKworCUFz c2VydChscmVsLnJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSk7CisKKwlmZXRjaF9zZXF1 ZW5jZV9kYXRhKGxyZWwubnNwbmFtZSwgbHJlbC5yZWxuYW1lLCAmbGFzdF92YWx1ZSwgJmxv Z19jbnQsICZpc19jYWxsZWQpOworCisJLyogdGFibGVzeW5jIHNldHMgdGhlIHNlcXVlbmNl cyBpbiBub24tdHJhbnNhY3Rpb25hbCB3YXkgKi8KKwlTZXRTZXF1ZW5jZShSZWxhdGlvbkdl dFJlbGlkKHJlbCksIGZhbHNlLCBsYXN0X3ZhbHVlLCBsb2dfY250LCBpc19jYWxsZWQpOwor CisJbG9naWNhbHJlcF9yZWxfY2xvc2UocmVsbWFwZW50cnksIE5vTG9jayk7Cit9CisKIC8q CiAgKiBEZXRlcm1pbmUgdGhlIHRhYmxlc3luYyBzbG90IG5hbWUuCiAgKgpAQCAtMTI2MCwx MCArMTM1MiwyMSBAQCBMb2dpY2FsUmVwU3luY1RhYmxlU3RhcnQoWExvZ1JlY1B0ciAqb3Jp Z2luX3N0YXJ0cG9zKQogCQkJCQkJb3JpZ2lubmFtZSkpKTsKIAl9CiAKLQkvKiBOb3cgZG8g dGhlIGluaXRpYWwgZGF0YSBjb3B5ICovCi0JUHVzaEFjdGl2ZVNuYXBzaG90KEdldFRyYW5z YWN0aW9uU25hcHNob3QoKSk7Ci0JY29weV90YWJsZShyZWwpOwotCVBvcEFjdGl2ZVNuYXBz aG90KCk7CisJLyogRG8gdGhlIHJpZ2h0IGFjdGlvbiBkZXBlbmRpbmcgb24gdGhlIHJlbGF0 aW9uIGtpbmQuICovCisJaWYgKGdldF9yZWxfcmVsa2luZChSZWxhdGlvbkdldFJlbGlkKHJl bCkpID09IFJFTEtJTkRfU0VRVUVOQ0UpCisJeworCQkvKiBOb3cgZG8gdGhlIGluaXRpYWwg c2VxdWVuY2UgY29weSAqLworCQlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25T bmFwc2hvdCgpKTsKKwkJY29weV9zZXF1ZW5jZShyZWwpOworCQlQb3BBY3RpdmVTbmFwc2hv dCgpOworCX0KKwllbHNlCisJeworCQkvKiBOb3cgZG8gdGhlIGluaXRpYWwgZGF0YSBjb3B5 ICovCisJCVB1c2hBY3RpdmVTbmFwc2hvdChHZXRUcmFuc2FjdGlvblNuYXBzaG90KCkpOwor CQljb3B5X3RhYmxlKHJlbCk7CisJCVBvcEFjdGl2ZVNuYXBzaG90KCk7CisJfQogCiAJcmVz ID0gd2FscmN2X2V4ZWMoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiwgIkNPTU1JVCIsIDAsIE5V TEwpOwogCWlmIChyZXMtPnN0YXR1cyAhPSBXQUxSQ1ZfT0tfQ09NTUFORCkKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IDgyZGNmZmMyZGI4Li5m Mzg2OGIzZTFmOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC93b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtl ci5jCkBAIC0xNDMsNiArMTQzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlw dGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uX3JlbC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl cXVlbmNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIK QEAgLTExNDMsNiArMTE0NCw1NyBAQCBhcHBseV9oYW5kbGVfb3JpZ2luKFN0cmluZ0luZm8g cykKIAkJCQkgZXJybXNnX2ludGVybmFsKCJPUklHSU4gbWVzc2FnZSBzZW50IG91dCBvZiBv cmRlciIpKSk7CiB9CiAKKy8qCisgKiBIYW5kbGUgU0VRVUVOQ0UgbWVzc2FnZS4KKyAqLwor c3RhdGljIHZvaWQKK2FwcGx5X2hhbmRsZV9zZXF1ZW5jZShTdHJpbmdJbmZvIHMpCit7CisJ TG9naWNhbFJlcFNlcXVlbmNlCXNlcTsKKwlPaWQJCQkJCXJlbGlkOworCisJaWYgKGhhbmRs ZV9zdHJlYW1lZF90cmFuc2FjdGlvbihMT0dJQ0FMX1JFUF9NU0dfU0VRVUVOQ0UsIHMpKQor CQlyZXR1cm47CisKKwlsb2dpY2FscmVwX3JlYWRfc2VxdWVuY2UocywgJnNlcSk7CisKKwkv KgorCSAqIE5vbi10cmFuc2FjdGlvbmFsIHNlcXVlbmNlIHVwZGF0ZXMgc2hvdWxkIG5vdCBi ZSBwYXJ0IG9mIGEgcmVtb3RlCisJICogdHJhbnNhY3Rpb24uIFRoZXJlIHNob3VsZCBub3Qg YmUgYW55IHJ1bm5pbmcgdHJhbnNhY3Rpb24uCisJICovCisJQXNzZXJ0KCghc2VxLnRyYW5z YWN0aW9uYWwpIHx8IGluX3JlbW90ZV90cmFuc2FjdGlvbik7CisJQXNzZXJ0KCEoIXNlcS50 cmFuc2FjdGlvbmFsICYmIGluX3JlbW90ZV90cmFuc2FjdGlvbikpOworCUFzc2VydCghKCFz ZXEudHJhbnNhY3Rpb25hbCAmJiBJc1RyYW5zYWN0aW9uU3RhdGUoKSkpOworCisJLyoKKwkg KiBNYWtlIHN1cmUgd2UncmUgaW4gYSB0cmFuc2FjdGlvbiAobmVlZGVkIGJ5IFNldFNlcXVl bmNlKS4gRm9yCisJICogbm9uLXRyYW5zYWN0aW9uYWwgdXBkYXRlcyB3ZSdyZSBndWFyYW50 ZWVkIHRvIHN0YXJ0IGEgbmV3IG9uZSwKKwkgKiBhbmQgd2UnbGwgY29tbWl0IGl0IGF0IHRo ZSBlbmQuCisJICovCisJaWYgKCFJc1RyYW5zYWN0aW9uU3RhdGUoKSkKKwl7CisJCVN0YXJ0 VHJhbnNhY3Rpb25Db21tYW5kKCk7CisJCW1heWJlX3JlcmVhZF9zdWJzY3JpcHRpb24oKTsK Kwl9CisKKwlyZWxpZCA9IFJhbmdlVmFyR2V0UmVsaWQobWFrZVJhbmdlVmFyKHNlcS5uc3Bu YW1lLAorCQkJCQkJCQkJCSAgc2VxLnNlcW5hbWUsIC0xKSwKKwkJCQkJCQkgUm93RXhjbHVz aXZlTG9jaywgZmFsc2UpOworCisJLyogbG9jayB0aGUgc2VxdWVuY2UgaW4gQWNjZXNzRXhj bHVzaXZlTG9jaywgYXMgZXhwZWN0ZWQgYnkgU2V0U2VxdWVuY2UgKi8KKwlMb2NrUmVsYXRp b25PaWQocmVsaWQsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOworCisJLyogYXBwbHkgdGhlIHNl cXVlbmNlIGNoYW5nZSAqLworCVNldFNlcXVlbmNlKHJlbGlkLCBzZXEudHJhbnNhY3Rpb25h bCwgc2VxLmxhc3RfdmFsdWUsIHNlcS5sb2dfY250LCBzZXEuaXNfY2FsbGVkKTsKKworCS8q CisJICogQ29tbWl0IHRoZSBwZXItc3RyZWFtIHRyYW5zYWN0aW9uICh3ZSBvbmx5IGRvIHRo aXMgd2hlbiBub3QgaW4KKwkgKiByZW1vdGUgdHJhbnNhY3Rpb24sIGkuZS4gZm9yIG5vbi10 cmFuc2FjdGlvbmFsIHNlcXVlbmNlIHVwZGF0ZXMuCisJICovCisJaWYgKCFpbl9yZW1vdGVf dHJhbnNhY3Rpb24pCisJCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOworfQorCiAvKgog ICogSGFuZGxlIFNUUkVBTSBTVEFSVCBtZXNzYWdlLgogICovCkBAIC0yNTExLDYgKzI1NjMs MTAgQEAgYXBwbHlfZGlzcGF0Y2goU3RyaW5nSW5mbyBzKQogCQkJICovCiAJCQlicmVhazsK IAorCQljYXNlIExPR0lDQUxfUkVQX01TR19TRVFVRU5DRToKKwkJCWFwcGx5X2hhbmRsZV9z ZXF1ZW5jZShzKTsKKwkJCXJldHVybjsKKwogCQljYXNlIExPR0lDQUxfUkVQX01TR19TVFJF QU1fU1RBUlQ6CiAJCQlhcHBseV9oYW5kbGVfc3RyZWFtX3N0YXJ0KHMpOwogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1 dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRl eCA1ZmRkYWIzYTNkNC4uNGNkYzY5OGNiYjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtMTUsNiArMTUsNyBAQAogI2luY2x1ZGUg ImFjY2Vzcy90dXBjb252ZXJ0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wYXJ0aXRpb24uaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1 YmxpY2F0aW9uX3JlbC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCkBAIC01Myw2ICs1NCwxMCBAQCBzdGF0aWMgdm9p ZCBwZ291dHB1dF9tZXNzYWdlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwKIAkJCQkJ CQkgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLCBYTG9nUmVjUHRyIG1lc3NhZ2VfbHNuLAogCQkJ CQkJCSBib29sIHRyYW5zYWN0aW9uYWwsIGNvbnN0IGNoYXIgKnByZWZpeCwKIAkJCQkJCQkg U2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2FnZSk7CitzdGF0aWMgdm9pZCBwZ291dHB1dF9z ZXF1ZW5jZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCisJCQkJCQkJICBSZW9yZGVy QnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgc2VxdWVuY2VfbHNuLAorCQkJCQkJCSAgUmVs YXRpb24gcmVsYXRpb24sIGJvb2wgdHJhbnNhY3Rpb25hbCwKKwkJCQkJCQkgIGludDY0IGxh c3RfdmFsdWUsIGludDY0IGxvZ19jbnQsIGJvb2wgaXNfY2FsbGVkKTsKIHN0YXRpYyBib29s IHBnb3V0cHV0X29yaWdpbl9maWx0ZXIoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LAog CQkJCQkJCQkgICBSZXBPcmlnaW5JZCBvcmlnaW5faWQpOwogc3RhdGljIHZvaWQgcGdvdXRw dXRfYmVnaW5fcHJlcGFyZV90eG4oTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LApAQCAt MjA4LDYgKzIxMyw3IEBAIF9QR19vdXRwdXRfcGx1Z2luX2luaXQoT3V0cHV0UGx1Z2luQ2Fs bGJhY2tzICpjYikKIAljYi0+Y2hhbmdlX2NiID0gcGdvdXRwdXRfY2hhbmdlOwogCWNiLT50 cnVuY2F0ZV9jYiA9IHBnb3V0cHV0X3RydW5jYXRlOwogCWNiLT5tZXNzYWdlX2NiID0gcGdv dXRwdXRfbWVzc2FnZTsKKwljYi0+c2VxdWVuY2VfY2IgPSBwZ291dHB1dF9zZXF1ZW5jZTsK IAljYi0+Y29tbWl0X2NiID0gcGdvdXRwdXRfY29tbWl0X3R4bjsKIAogCWNiLT5iZWdpbl9w cmVwYXJlX2NiID0gcGdvdXRwdXRfYmVnaW5fcHJlcGFyZV90eG47CkBAIC0yMjQsNiArMjMw LDcgQEAgX1BHX291dHB1dF9wbHVnaW5faW5pdChPdXRwdXRQbHVnaW5DYWxsYmFja3MgKmNi KQogCWNiLT5zdHJlYW1fY29tbWl0X2NiID0gcGdvdXRwdXRfc3RyZWFtX2NvbW1pdDsKIAlj Yi0+c3RyZWFtX2NoYW5nZV9jYiA9IHBnb3V0cHV0X2NoYW5nZTsKIAljYi0+c3RyZWFtX21l c3NhZ2VfY2IgPSBwZ291dHB1dF9tZXNzYWdlOworCWNiLT5zdHJlYW1fc2VxdWVuY2VfY2Ig PSBwZ291dHB1dF9zZXF1ZW5jZTsKIAljYi0+c3RyZWFtX3RydW5jYXRlX2NiID0gcGdvdXRw dXRfdHJ1bmNhdGU7CiAJLyogdHJhbnNhY3Rpb24gc3RyZWFtaW5nIC0gdHdvLXBoYXNlIGNv bW1pdCAqLwogCWNiLT5zdHJlYW1fcHJlcGFyZV9jYiA9IHBnb3V0cHV0X3N0cmVhbV9wcmVw YXJlX3R4bjsKQEAgLTIzNyw2ICsyNDQsNyBAQCBwYXJzZV9vdXRwdXRfcGFyYW1ldGVycyhM aXN0ICpvcHRpb25zLCBQR091dHB1dERhdGEgKmRhdGEpCiAJYm9vbAkJcHVibGljYXRpb25f bmFtZXNfZ2l2ZW4gPSBmYWxzZTsKIAlib29sCQliaW5hcnlfb3B0aW9uX2dpdmVuID0gZmFs c2U7CiAJYm9vbAkJbWVzc2FnZXNfb3B0aW9uX2dpdmVuID0gZmFsc2U7CisJYm9vbAkJc2Vx dWVuY2VzX29wdGlvbl9naXZlbiA9IGZhbHNlOwogCWJvb2wJCXN0cmVhbWluZ19naXZlbiA9 IGZhbHNlOwogCWJvb2wJCXR3b19waGFzZV9vcHRpb25fZ2l2ZW4gPSBmYWxzZTsKIApAQCAt MjQ0LDYgKzI1Miw3IEBAIHBhcnNlX291dHB1dF9wYXJhbWV0ZXJzKExpc3QgKm9wdGlvbnMs IFBHT3V0cHV0RGF0YSAqZGF0YSkKIAlkYXRhLT5zdHJlYW1pbmcgPSBmYWxzZTsKIAlkYXRh LT5tZXNzYWdlcyA9IGZhbHNlOwogCWRhdGEtPnR3b19waGFzZSA9IGZhbHNlOworCWRhdGEt PnNlcXVlbmNlcyA9IHRydWU7CiAKIAlmb3JlYWNoKGxjLCBvcHRpb25zKQogCXsKQEAgLTMx Miw2ICszMjEsMTYgQEAgcGFyc2Vfb3V0cHV0X3BhcmFtZXRlcnMoTGlzdCAqb3B0aW9ucywg UEdPdXRwdXREYXRhICpkYXRhKQogCiAJCQlkYXRhLT5tZXNzYWdlcyA9IGRlZkdldEJvb2xl YW4oZGVmZWwpOwogCQl9CisJCWVsc2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgInNl cXVlbmNlcyIpID09IDApCisJCXsKKwkJCWlmIChzZXF1ZW5jZXNfb3B0aW9uX2dpdmVuKQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIp KSk7CisJCQlzZXF1ZW5jZXNfb3B0aW9uX2dpdmVuID0gdHJ1ZTsKKworCQkJZGF0YS0+c2Vx dWVuY2VzID0gZGVmR2V0Qm9vbGVhbihkZWZlbCk7CisJCX0KIAkJZWxzZSBpZiAoc3RyY21w KGRlZmVsLT5kZWZuYW1lLCAic3RyZWFtaW5nIikgPT0gMCkKIAkJewogCQkJaWYgKHN0cmVh bWluZ19naXZlbikKQEAgLTE0NDAsNiArMTQ1OSw1MSBAQCBwZ291dHB1dF9tZXNzYWdlKExv Z2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCU91 dHB1dFBsdWdpbldyaXRlKGN0eCwgdHJ1ZSk7CiB9CiAKK3N0YXRpYyB2b2lkCitwZ291dHB1 dF9zZXF1ZW5jZShMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsCisJCQkJICBSZW9yZGVy QnVmZmVyVFhOICp0eG4sIFhMb2dSZWNQdHIgc2VxdWVuY2VfbHNuLAorCQkJCSAgUmVsYXRp b24gcmVsYXRpb24sIGJvb2wgdHJhbnNhY3Rpb25hbCwKKwkJCQkgIGludDY0IGxhc3RfdmFs dWUsIGludDY0IGxvZ19jbnQsIGJvb2wgaXNfY2FsbGVkKQoreworCVBHT3V0cHV0RGF0YSAq ZGF0YSA9IChQR091dHB1dERhdGEgKikgY3R4LT5vdXRwdXRfcGx1Z2luX3ByaXZhdGU7CisJ VHJhbnNhY3Rpb25JZCB4aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwlSZWxhdGlvblN5 bmNFbnRyeSAqcmVsZW50cnk7CisKKwlpZiAoIWRhdGEtPnNlcXVlbmNlcykKKwkJcmV0dXJu OworCisJaWYgKCFpc19wdWJsaXNoYWJsZV9yZWxhdGlvbihyZWxhdGlvbikpCisJCXJldHVy bjsKKworCS8qCisJICogUmVtZW1iZXIgdGhlIHhpZCBmb3IgdGhlIG1lc3NhZ2UgaW4gc3Ry ZWFtaW5nIG1vZGUuIFNlZQorCSAqIHBnb3V0cHV0X2NoYW5nZS4KKwkgKi8KKwlpZiAoaW5f c3RyZWFtaW5nKQorCQl4aWQgPSB0eG4tPnhpZDsKKworCXJlbGVudHJ5ID0gZ2V0X3JlbF9z eW5jX2VudHJ5KGRhdGEsIHJlbGF0aW9uKTsKKworCS8qCisJICogRmlyc3QgY2hlY2sgdGhl IHNlcXVlbmNlIGZpbHRlci4KKwkgKgorCSAqIFdlIGhhbmRsZSBqdXN0IFJFT1JERVJfQlVG RkVSX0NIQU5HRV9TRVFVRU5DRSBoZXJlLgorCSAqLworCWlmICghcmVsZW50cnktPnB1YmFj dGlvbnMucHVic2VxdWVuY2UpCisJCXJldHVybjsKKworCU91dHB1dFBsdWdpblByZXBhcmVX cml0ZShjdHgsIHRydWUpOworCWxvZ2ljYWxyZXBfd3JpdGVfc2VxdWVuY2UoY3R4LT5vdXQs CisJCQkJCQkJICByZWxhdGlvbiwKKwkJCQkJCQkgIHhpZCwKKwkJCQkJCQkgIHNlcXVlbmNl X2xzbiwKKwkJCQkJCQkgIHRyYW5zYWN0aW9uYWwsCisJCQkJCQkJICBsYXN0X3ZhbHVlLAor CQkJCQkJCSAgbG9nX2NudCwKKwkJCQkJCQkgIGlzX2NhbGxlZCk7CisJT3V0cHV0UGx1Z2lu V3JpdGUoY3R4LCB0cnVlKTsKK30KKwogLyoKICAqIEN1cnJlbnRseSB3ZSBhbHdheXMgZm9y d2FyZC4KICAqLwpAQCAtMTcyNSw3ICsxNzg5LDggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBH T3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCWVudHJ5LT5zY2hlbWFf c2VudCA9IGZhbHNlOwogCQllbnRyeS0+c3RyZWFtZWRfdHhucyA9IE5JTDsKIAkJZW50cnkt PnB1YmFjdGlvbnMucHViaW5zZXJ0ID0gZW50cnktPnB1YmFjdGlvbnMucHVidXBkYXRlID0K LQkJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YmRlbGV0ZSA9IGVudHJ5LT5wdWJhY3Rpb25zLnB1 YnRydW5jYXRlID0gZmFsc2U7CisJCQllbnRyeS0+cHViYWN0aW9ucy5wdWJkZWxldGUgPSBl bnRyeS0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0ZSA9CisJCQllbnRyeS0+cHViYWN0aW9ucy5w dWJzZXF1ZW5jZSA9IGZhbHNlOwogCQllbnRyeS0+bmV3X3Nsb3QgPSBOVUxMOwogCQllbnRy eS0+b2xkX3Nsb3QgPSBOVUxMOwogCQltZW1zZXQoZW50cnktPmV4cHJzdGF0ZSwgMCwgc2l6 ZW9mKGVudHJ5LT5leHByc3RhdGUpKTsKQEAgLTE3MzksMTMgKzE4MDQsMTMgQEAgZ2V0X3Jl bF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJ ewogCQlPaWQJCQlzY2hlbWFJZCA9IGdldF9yZWxfbmFtZXNwYWNlKHJlbGlkKTsKIAkJTGlz dAkgICAqcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQpOwotCisJCWNo YXIJCW9iamVjdFR5cGUgPSBwdWJfZ2V0X29iamVjdF90eXBlX2Zvcl9yZWxraW5kKGdldF9y ZWxfcmVsa2luZChyZWxpZCkpOwogCQkvKgogCQkgKiBXZSBkb24ndCBhY3F1aXJlIGEgbG9j ayBvbiB0aGUgbmFtZXNwYWNlIHN5c3RlbSB0YWJsZSBhcyB3ZSBidWlsZAogCQkgKiB0aGUg Y2FjaGUgZW50cnkgdXNpbmcgYSBoaXN0b3JpYyBzbmFwc2hvdCBhbmQgYWxsIHRoZSBsYXRl ciBjaGFuZ2VzCiAJCSAqIGFyZSBhYnNvcmJlZCB3aGlsZSBkZWNvZGluZyBXQUwuCiAJCSAq LwotCQlMaXN0CSAgICpzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2No ZW1hSWQpOworCQlMaXN0CSAgICpzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlv bnMoc2NoZW1hSWQsIG9iamVjdFR5cGUpOwogCQlMaXN0Q2VsbCAgICpsYzsKIAkJT2lkCQkJ cHVibGlzaF9hc19yZWxpZCA9IHJlbGlkOwogCQlpbnQJCQlwdWJsaXNoX2FuY2VzdG9yX2xl dmVsID0gMDsKQEAgLTE3ODAsNiArMTg0NSw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091 dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQllbnRyeS0+cHViYWN0aW9u cy5wdWJ1cGRhdGUgPSBmYWxzZTsKIAkJZW50cnktPnB1YmFjdGlvbnMucHViZGVsZXRlID0g ZmFsc2U7CiAJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YnRydW5jYXRlID0gZmFsc2U7CisJCWVu dHJ5LT5wdWJhY3Rpb25zLnB1YnNlcXVlbmNlID0gZmFsc2U7CiAKIAkJLyoKIAkJICogVHVw bGUgc2xvdHMgY2xlYW51cHMuIChXaWxsIGJlIHJlYnVpbHQgbGF0ZXIgaWYgbmVlZGVkKS4K QEAgLTE4MjYsOSArMTg5MiwxMSBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRh ICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJLyoKIAkJCSAqIElmIHRoaXMgaXMg YSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiwgcGljayB0aGUgcGFydGl0aW9uIHJvb3QK LQkJCSAqIGFuZCBzZXQgdGhlIGFuY2VzdG9yIGxldmVsIGFjY29yZGluZ2x5LgorCQkJICog YW5kIHNldCB0aGUgYW5jZXN0b3IgbGV2ZWwgYWNjb3JkaW5nbHkuIElmIHRoaXMgaXMgYSBG T1IgQUxMCisJCQkgKiBTRVFVRU5DRVMgcHVibGljYXRpb24sIHdlIHB1Ymxpc2ggaXQgdG9v IGJ1dCB3ZSBkb24ndCBuZWVkIHRvCisJCQkgKiBwaWNrIHRoZSBwYXJ0aXRpb24gcm9vdCBl dGMuCiAJCQkgKi8KLQkJCWlmIChwdWItPmFsbHRhYmxlcykKKwkJCWlmIChwdWItPmFsbHRh YmxlcyB8fCBwdWItPmFsbHNlcXVlbmNlcykKIAkJCXsKIAkJCQlwdWJsaXNoID0gdHJ1ZTsK IAkJCQlpZiAocHViLT5wdWJ2aWFyb290ICYmIGFtX3BhcnRpdGlvbikKQEAgLTE4ODksNiAr MTk1Nyw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0 aW9uIHJlbGF0aW9uKQogCQkJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YnVwZGF0ZSB8PSBwdWIt PnB1YmFjdGlvbnMucHVidXBkYXRlOwogCQkJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YmRlbGV0 ZSB8PSBwdWItPnB1YmFjdGlvbnMucHViZGVsZXRlOwogCQkJCWVudHJ5LT5wdWJhY3Rpb25z LnB1YnRydW5jYXRlIHw9IHB1Yi0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0ZTsKKwkJCQllbnRy eS0+cHViYWN0aW9ucy5wdWJzZXF1ZW5jZSB8PSBwdWItPnB1YmFjdGlvbnMucHVic2VxdWVu Y2U7CiAKIAkJCQkvKgogCQkJCSAqIFdlIHdhbnQgdG8gcHVibGlzaCB0aGUgY2hhbmdlcyBh cyB0aGUgdG9wLW1vc3QgYW5jZXN0b3IKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3JlbGNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5j CmluZGV4IGZiZDExODgzZTE3Li45MzkxNDY3OTYwYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9yZWxjYWNoZS5jCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19v cGNsYXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRp b25fbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19yZXdyaXRlLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19zaHNlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19z dGF0aXN0aWNfZXh0LmgiCkBAIC01NTYyLDYgKzU1NjMsOCBAQCBSZWxhdGlvbkJ1aWxkUHVi bGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRl c2MpCiAJT2lkCQkJc2NoZW1haWQ7CiAJTGlzdAkgICAqYW5jZXN0b3JzID0gTklMOwogCU9p ZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWxhdGlvbik7CisJY2hhcgkJcmVsa2lu ZCA9IHJlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQ7CisJY2hhcgkJb2JqVHlwZTsKIAogCS8q CiAJICogSWYgbm90IHB1Ymxpc2hhYmxlLCBpdCBwdWJsaXNoZXMgbm8gYWN0aW9ucy4gIChw Z291dHB1dF9jaGFuZ2UoKSB3aWxsCkBAIC01NTg4LDggKzU1OTEsMTUgQEAgUmVsYXRpb25C dWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNj ICpwdWJkZXNjKQogCS8qIEZldGNoIHRoZSBwdWJsaWNhdGlvbiBtZW1iZXJzaGlwIGluZm8u ICovCiAJcHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkKTsKIAlzY2hl bWFpZCA9IFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbGF0aW9uKTsKLQlwdWJvaWRzID0gbGlz dF9jb25jYXRfdW5pcXVlX29pZChwdWJvaWRzLCBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2No ZW1haWQpKTsKKwlvYmpUeXBlID0gcHViX2dldF9vYmplY3RfdHlwZV9mb3JfcmVsa2luZChy ZWxraW5kKTsKIAorCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMs CisJCQkJCQkJCQkgR2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYWlkLCBvYmpUeXBlKSk7 CisKKwkvKgorCSAqIElmIHRoaXMgaXMgYSBwYXJ0aW9uIChhbmQgdGh1cyBhIHRhYmxlKSwg bG9va3VwIGFsbCBhbmNlc3RvcnMgYW5kIHRyYWNrCisJICogYWxsIHB1YmxpY2F0aW9ucyB0 aGVtIHRvby4KKwkgKi8KIAlpZiAocmVsYXRpb24tPnJkX3JlbC0+cmVsaXNwYXJ0aXRpb24p CiAJewogCQkvKiBBZGQgcHVibGljYXRpb25zIHRoYXQgdGhlIGFuY2VzdG9ycyBhcmUgaW4g dG9vLiAqLwpAQCAtNTYwMSwxMiArNTYxMSwyMyBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRp b25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAK IAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCiAJCQkJCQkJ CQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvcikpOworCisJCQkvKiBpbmNs dWRlIGFsbCBwdWJsaWNhdGlvbnMgcHVibGlzaGluZyBzY2hlbWEgb2YgYWxsIGFuY2VzdG9y cyAqLwogCQkJc2NoZW1haWQgPSBnZXRfcmVsX25hbWVzcGFjZShhbmNlc3Rvcik7CiAJCQlw dWJvaWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChwdWJvaWRzLAotCQkJCQkJCQkJCQkg R2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYWlkKSk7CisJCQkJCQkJCQkJCSBHZXRTY2hl bWFQdWJsaWNhdGlvbnMoc2NoZW1haWQsCisJCQkJCQkJCQkJCQkJCQkJICAgUFVCX09CSlRZ UEVfVEFCTEUpKTsKIAkJfQogCX0KLQlwdWJvaWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29p ZChwdWJvaWRzLCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnMoKSk7CisKKwkvKgorCSAqIENv bnNpZGVyIGFsc28gRk9SIEFMTCBUQUJMRVMgYW5kIEZPUiBBTEwgU0VRVUVOQ0VTIHB1Ymxp Y2F0aW9ucywKKwkgKiBkZXBlbmRpbmcgb24gdGhlIHJlbGtpbmQgb2YgdGhlIHJlbGF0aW9u LgorCSAqLworCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfU0VR VUVOQ0UpCisJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdl dEFsbFNlcXVlbmNlc1B1YmxpY2F0aW9ucygpKTsKKwllbHNlCisJCXB1Ym9pZHMgPSBsaXN0 X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygp KTsKIAogCWZvcmVhY2gobGMsIHB1Ym9pZHMpCiAJewpAQCAtNTYyNSw2ICs1NjQ2LDcgQEAg UmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGlj YXRpb25EZXNjICpwdWJkZXNjKQogCQlwdWJkZXNjLT5wdWJhY3Rpb25zLnB1YnVwZGF0ZSB8 PSBwdWJmb3JtLT5wdWJ1cGRhdGU7CiAJCXB1YmRlc2MtPnB1YmFjdGlvbnMucHViZGVsZXRl IHw9IHB1YmZvcm0tPnB1YmRlbGV0ZTsKIAkJcHViZGVzYy0+cHViYWN0aW9ucy5wdWJ0cnVu Y2F0ZSB8PSBwdWJmb3JtLT5wdWJ0cnVuY2F0ZTsKKwkJcHViZGVzYy0+cHViYWN0aW9ucy5w dWJzZXF1ZW5jZSB8PSBwdWJmb3JtLT5wdWJzZXF1ZW5jZTsKIAogCQkvKgogCQkgKiBDaGVj ayBpZiBhbGwgY29sdW1ucyByZWZlcmVuY2VkIGluIHRoZSBmaWx0ZXIgZXhwcmVzc2lvbiBh cmUgcGFydCBvZgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2Fj aGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKaW5kZXggZjRlNzgx OWYxZTIuLmE2NzU4NzdkMTk1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9zeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMK QEAgLTYzMCwxMiArNjMwLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FjaGVkZXNjIGNh Y2hlaW5mb1tdID0gewogCQk2NAogCX0sCiAJe1B1YmxpY2F0aW9uTmFtZXNwYWNlUmVsYXRp b25JZCwJLyogUFVCTElDQVRJT05OQU1FU1BBQ0VNQVAgKi8KLQkJUHVibGljYXRpb25OYW1l c3BhY2VQbm5zcGlkUG5wdWJpZEluZGV4SWQsCi0JCTIsCisJCVB1YmxpY2F0aW9uTmFtZXNw YWNlUG5uc3BpZFBucHViaWRQbnR5cGVJbmRleElkLAorCQkzLAogCQl7CiAJCQlBbnVtX3Bn X3B1YmxpY2F0aW9uX25hbWVzcGFjZV9wbm5zcGlkLAogCQkJQW51bV9wZ19wdWJsaWNhdGlv bl9uYW1lc3BhY2VfcG5wdWJpZCwKLQkJCTAsCisJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX25h bWVzcGFjZV9wbnR5cGUsCiAJCQkwCiAJCX0sCiAJCTY0CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBl NTgxNmM0Y2NlYS4uMDA2MjlmMDgzNjIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMzgxNCwxMCAr MzgxNCwxMiBAQCBnZXRQdWJsaWNhdGlvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1QdWJs aWNhdGlvbnMpCiAJaW50CQkJaV9wdWJuYW1lOwogCWludAkJCWlfcHVib3duZXI7CiAJaW50 CQkJaV9wdWJhbGx0YWJsZXM7CisJaW50CQkJaV9wdWJhbGxzZXF1ZW5jZXM7CiAJaW50CQkJ aV9wdWJpbnNlcnQ7CiAJaW50CQkJaV9wdWJ1cGRhdGU7CiAJaW50CQkJaV9wdWJkZWxldGU7 CiAJaW50CQkJaV9wdWJ0cnVuY2F0ZTsKKwlpbnQJCQlpX3B1YnNlcXVlbmNlOwogCWludAkJ CWlfcHVidmlhcm9vdDsKIAlpbnQJCQlpLAogCQkJCW50dXBzOwpAQCAtMzgzMywyMyArMzgz NSwyOSBAQCBnZXRQdWJsaWNhdGlvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1QdWJsaWNh dGlvbnMpCiAJcmVzZXRQUUV4cEJ1ZmZlcihxdWVyeSk7CiAKIAkvKiBHZXQgdGhlIHB1Ymxp Y2F0aW9ucy4gKi8KLQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxMzAwMDApCisJaWYg KGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTUwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihx dWVyeSwKKwkJCQkJCSAgIlNFTEVDVCBwLnRhYmxlb2lkLCBwLm9pZCwgcC5wdWJuYW1lLCAi CisJCQkJCQkgICJwLnB1Ym93bmVyLCAiCisJCQkJCQkgICJwLnB1YmFsbHRhYmxlcywgcC5w dWJhbGxzZXF1ZW5jZXMsIHAucHViaW5zZXJ0LCBwLnB1YnVwZGF0ZSwgcC5wdWJkZWxldGUs IHAucHVidHJ1bmNhdGUsIHAucHVic2VxdWVuY2UsIHAucHVidmlhcm9vdCAiCisJCQkJCQkg ICJGUk9NIHBnX3B1YmxpY2F0aW9uIHAiKTsKKwllbHNlIGlmIChmb3V0LT5yZW1vdGVWZXJz aW9uID49IDEzMDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCiAJCQkJCQkgICJT RUxFQ1QgcC50YWJsZW9pZCwgcC5vaWQsIHAucHVibmFtZSwgIgogCQkJCQkJICAicC5wdWJv d25lciwgIgotCQkJCQkJICAicC5wdWJhbGx0YWJsZXMsIHAucHViaW5zZXJ0LCBwLnB1YnVw ZGF0ZSwgcC5wdWJkZWxldGUsIHAucHVidHJ1bmNhdGUsIHAucHVidmlhcm9vdCAiCisJCQkJ CQkgICJwLnB1YmFsbHRhYmxlcywgZmFsc2UgQVMgcHViYWxsc2VxdWVuY2VzLCBwLnB1Ymlu c2VydCwgcC5wdWJ1cGRhdGUsIHAucHViZGVsZXRlLCBwLnB1YnRydW5jYXRlLCBmYWxzZSBB UyBwdWJzZXF1ZW5jZSwgcC5wdWJ2aWFyb290ICIKIAkJCQkJCSAgIkZST00gcGdfcHVibGlj YXRpb24gcCIpOwogCWVsc2UgaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTEwMDAwKQog CQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKIAkJCQkJCSAgIlNFTEVDVCBwLnRhYmxlb2lk LCBwLm9pZCwgcC5wdWJuYW1lLCAiCiAJCQkJCQkgICJwLnB1Ym93bmVyLCAiCi0JCQkJCQkg ICJwLnB1YmFsbHRhYmxlcywgcC5wdWJpbnNlcnQsIHAucHVidXBkYXRlLCBwLnB1YmRlbGV0 ZSwgcC5wdWJ0cnVuY2F0ZSwgZmFsc2UgQVMgcHVidmlhcm9vdCAiCisJCQkJCQkgICJwLnB1 YmFsbHRhYmxlcywgZmFsc2UgQVMgcHViYWxsc2VxdWVuY2VzLCBwLnB1Ymluc2VydCwgcC5w dWJ1cGRhdGUsIHAucHViZGVsZXRlLCBwLnB1YnRydW5jYXRlLCBmYWxzZSBBUyBwdWJzZXF1 ZW5jZSwgZmFsc2UgQVMgcHVidmlhcm9vdCAiCiAJCQkJCQkgICJGUk9NIHBnX3B1YmxpY2F0 aW9uIHAiKTsKIAllbHNlCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAogCQkJCQkJICAi U0VMRUNUIHAudGFibGVvaWQsIHAub2lkLCBwLnB1Ym5hbWUsICIKIAkJCQkJCSAgInAucHVi b3duZXIsICIKLQkJCQkJCSAgInAucHViYWxsdGFibGVzLCBwLnB1Ymluc2VydCwgcC5wdWJ1 cGRhdGUsIHAucHViZGVsZXRlLCBmYWxzZSBBUyBwdWJ0cnVuY2F0ZSwgZmFsc2UgQVMgcHVi dmlhcm9vdCAiCisJCQkJCQkgICJwLnB1YmFsbHRhYmxlcywgZmFsc2UgQVMgcHViYWxsc2Vx dWVuY2VzLCBwLnB1Ymluc2VydCwgcC5wdWJ1cGRhdGUsIHAucHViZGVsZXRlLCBmYWxzZSBB UyBwdWJ0cnVuY2F0ZSwgZmFsc2UgQVMgcHVic2VxdWVuY2UsIGZhbHNlIEFTIHB1YnZpYXJv b3QgIgogCQkJCQkJICAiRlJPTSBwZ19wdWJsaWNhdGlvbiBwIik7CiAKIAlyZXMgPSBFeGVj dXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CkBAIC0z ODYxLDEwICszODY5LDEyIEBAIGdldFB1YmxpY2F0aW9ucyhBcmNoaXZlICpmb3V0LCBpbnQg Km51bVB1YmxpY2F0aW9ucykKIAlpX3B1Ym5hbWUgPSBQUWZudW1iZXIocmVzLCAicHVibmFt ZSIpOwogCWlfcHVib3duZXIgPSBQUWZudW1iZXIocmVzLCAicHVib3duZXIiKTsKIAlpX3B1 YmFsbHRhYmxlcyA9IFBRZm51bWJlcihyZXMsICJwdWJhbGx0YWJsZXMiKTsKKwlpX3B1YmFs bHNlcXVlbmNlcyA9IFBRZm51bWJlcihyZXMsICJwdWJhbGxzZXF1ZW5jZXMiKTsKIAlpX3B1 Ymluc2VydCA9IFBRZm51bWJlcihyZXMsICJwdWJpbnNlcnQiKTsKIAlpX3B1YnVwZGF0ZSA9 IFBRZm51bWJlcihyZXMsICJwdWJ1cGRhdGUiKTsKIAlpX3B1YmRlbGV0ZSA9IFBRZm51bWJl cihyZXMsICJwdWJkZWxldGUiKTsKIAlpX3B1YnRydW5jYXRlID0gUFFmbnVtYmVyKHJlcywg InB1YnRydW5jYXRlIik7CisJaV9wdWJzZXF1ZW5jZSA9IFBRZm51bWJlcihyZXMsICJwdWJz ZXF1ZW5jZSIpOwogCWlfcHVidmlhcm9vdCA9IFBRZm51bWJlcihyZXMsICJwdWJ2aWFyb290 Iik7CiAKIAlwdWJpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFB1YmxpY2F0aW9u SW5mbykpOwpAQCAtMzg4MCw2ICszODkwLDggQEAgZ2V0UHVibGljYXRpb25zKEFyY2hpdmUg KmZvdXQsIGludCAqbnVtUHVibGljYXRpb25zKQogCQlwdWJpbmZvW2ldLnJvbG5hbWUgPSBn ZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwgaV9wdWJvd25lcikpOwogCQlwdWJpbmZv W2ldLnB1YmFsbHRhYmxlcyA9CiAJCQkoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3B1 YmFsbHRhYmxlcyksICJ0IikgPT0gMCk7CisJCXB1YmluZm9baV0ucHViYWxsc2VxdWVuY2Vz ID0KKwkJCShzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHViYWxsc2VxdWVuY2VzKSwg InQiKSA9PSAwKTsKIAkJcHViaW5mb1tpXS5wdWJpbnNlcnQgPQogCQkJKHN0cmNtcChQUWdl dHZhbHVlKHJlcywgaSwgaV9wdWJpbnNlcnQpLCAidCIpID09IDApOwogCQlwdWJpbmZvW2ld LnB1YnVwZGF0ZSA9CkBAIC0zODg4LDYgKzM5MDAsOCBAQCBnZXRQdWJsaWNhdGlvbnMoQXJj aGl2ZSAqZm91dCwgaW50ICpudW1QdWJsaWNhdGlvbnMpCiAJCQkoc3RyY21wKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3B1YmRlbGV0ZSksICJ0IikgPT0gMCk7CiAJCXB1YmluZm9baV0ucHVi dHJ1bmNhdGUgPQogCQkJKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9wdWJ0cnVuY2F0 ZSksICJ0IikgPT0gMCk7CisJCXB1YmluZm9baV0ucHVic2VxdWVuY2UgPQorCQkJKHN0cmNt cChQUWdldHZhbHVlKHJlcywgaSwgaV9wdWJzZXF1ZW5jZSksICJ0IikgPT0gMCk7CiAJCXB1 YmluZm9baV0ucHVidmlhcm9vdCA9CiAJCQkoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3B1YnZpYXJvb3QpLCAidCIpID09IDApOwogCkBAIC0zOTMzLDYgKzM5NDcsOSBAQCBkdW1w UHVibGljYXRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpwdWJp bmZvKQogCWlmIChwdWJpbmZvLT5wdWJhbGx0YWJsZXMpCiAJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LCAiIEZPUiBBTEwgVEFCTEVTIik7CiAKKwlpZiAocHViaW5mby0+cHViYWxs c2VxdWVuY2VzKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBGT1IgQUxMIFNF UVVFTkNFUyIpOworCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgV0lUSCAocHVi bGlzaCA9ICciKTsKIAlpZiAocHViaW5mby0+cHViaW5zZXJ0KQogCXsKQEAgLTM5NjcsNiAr Mzk4NCwxNSBAQCBkdW1wUHVibGljYXRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGlj YXRpb25JbmZvICpwdWJpbmZvKQogCQlmaXJzdCA9IGZhbHNlOwogCX0KIAorCWlmIChwdWJp bmZvLT5wdWJzZXF1ZW5jZSkKKwl7CisJCWlmICghZmlyc3QpCisJCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihxdWVyeSwgIiwgIik7CisKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks ICJzZXF1ZW5jZSIpOworCQlmaXJzdCA9IGZhbHNlOworCX0KKwogCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LCAiJyIpOwogCiAJaWYgKHB1YmluZm8tPnB1YnZpYXJvb3QpCkBAIC00 MDEzLDYgKzQwMzksNyBAQCBnZXRQdWJsaWNhdGlvbk5hbWVzcGFjZXMoQXJjaGl2ZSAqZm91 dCkKIAlpbnQJCQlpX29pZDsKIAlpbnQJCQlpX3BucHViaWQ7CiAJaW50CQkJaV9wbm5zcGlk OworCWludAkJCWlfcG50eXBlOwogCWludAkJCWksCiAJCQkJaiwKIAkJCQludHVwczsKQEAg LTQwMjQsNyArNDA1MSw3IEBAIGdldFB1YmxpY2F0aW9uTmFtZXNwYWNlcyhBcmNoaXZlICpm b3V0KQogCiAJLyogQ29sbGVjdCBhbGwgcHVibGljYXRpb24gbWVtYmVyc2hpcCBpbmZvLiAq LwogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJICJTRUxFQ1QgdGFibGVv aWQsIG9pZCwgcG5wdWJpZCwgcG5uc3BpZCAiCisJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwg b2lkLCBwbnB1YmlkLCBwbm5zcGlkLCBwbnR5cGUgIgogCQkJCQkJICJGUk9NIHBnX2NhdGFs b2cucGdfcHVibGljYXRpb25fbmFtZXNwYWNlIik7CiAJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5 KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwogCkBAIC00MDM0LDYgKzQw NjEsNyBAQCBnZXRQdWJsaWNhdGlvbk5hbWVzcGFjZXMoQXJjaGl2ZSAqZm91dCkKIAlpX29p ZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKIAlpX3BucHViaWQgPSBQUWZudW1iZXIocmVz LCAicG5wdWJpZCIpOwogCWlfcG5uc3BpZCA9IFBRZm51bWJlcihyZXMsICJwbm5zcGlkIik7 CisJaV9wbnR5cGUgPSBQUWZudW1iZXIocmVzLCAicG50eXBlIik7CiAKIAkvKiB0aGlzIGFs bG9jYXRpb24gbWF5IGJlIG1vcmUgdGhhbiB3ZSBuZWVkICovCiAJcHVic2luZm8gPSBwZ19t YWxsb2MobnR1cHMgKiBzaXplb2YoUHVibGljYXRpb25TY2hlbWFJbmZvKSk7CkBAIC00MDQz LDYgKzQwNzEsNyBAQCBnZXRQdWJsaWNhdGlvbk5hbWVzcGFjZXMoQXJjaGl2ZSAqZm91dCkK IAl7CiAJCU9pZAkJCXBucHViaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfcG5w dWJpZCkpOwogCQlPaWQJCQlwbm5zcGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3BubnNwaWQpKTsKKwkJY2hhcgkJcG50eXBlID0gUFFnZXR2YWx1ZShyZXMsIGksIGlfcG50 eXBlKVswXTsKIAkJUHVibGljYXRpb25JbmZvICpwdWJpbmZvOwogCQlOYW1lc3BhY2VJbmZv ICpuc3BpbmZvOwogCkBAIC00MDc0LDYgKzQxMDMsNyBAQCBnZXRQdWJsaWNhdGlvbk5hbWVz cGFjZXMoQXJjaGl2ZSAqZm91dCkKIAkJcHVic2luZm9bal0uZG9iai5uYW1lID0gbnNwaW5m by0+ZG9iai5uYW1lOwogCQlwdWJzaW5mb1tqXS5wdWJsaWNhdGlvbiA9IHB1YmluZm87CiAJ CXB1YnNpbmZvW2pdLnB1YnNjaGVtYSA9IG5zcGluZm87CisJCXB1YnNpbmZvW2pdLnB1YnR5 cGUgPSBwbnR5cGU7CiAKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0 ICovCiAJCXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmplY3QoJihwdWJzaW5mb1tqXS5k b2JqKSwgZm91dCk7CkBAIC00MjA3LDcgKzQyMzcsMTEgQEAgZHVtcFB1YmxpY2F0aW9uTmFt ZXNwYWNlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uU2NoZW1hSW5mbyAqcHVi c2luZm8pCiAJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwogCiAJYXBwZW5kUFFFeHBC dWZmZXIocXVlcnksICJBTFRFUiBQVUJMSUNBVElPTiAlcyAiLCBmbXRJZChwdWJpbmZvLT5k b2JqLm5hbWUpKTsKLQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkFERCBBTEwgVEFCTEVT IElOIFNDSEVNQSAlcztcbiIsIGZtdElkKHNjaGVtYWluZm8tPmRvYmoubmFtZSkpOworCisJ aWYgKHB1YnNpbmZvLT5wdWJ0eXBlID09ICd0JykKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVl cnksICJBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgJXM7XG4iLCBmbXRJZChzY2hlbWFpbmZv LT5kb2JqLm5hbWUpKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQURE IEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BICVzO1xuIiwgZm10SWQoc2NoZW1haW5mby0+ZG9i ai5uYW1lKSk7CiAKIAkvKgogCSAqIFRoZXJlIGlzIG5vIHBvaW50IGluIGNyZWF0aW5nIGRy b3AgcXVlcnkgYXMgdGhlIGRyb3AgaXMgZG9uZSBieSBzY2hlbWEKQEAgLTQyNDAsNiArNDI3 NCw3IEBAIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1Ymxp Y2F0aW9uUmVsSW5mbyAqcHVicmluZm8pCiAJVGFibGVJbmZvICAqdGJpbmZvID0gcHVicmlu Zm8tPnB1YnRhYmxlOwogCVBRRXhwQnVmZmVyIHF1ZXJ5OwogCWNoYXIJICAgKnRhZzsKKwlj aGFyCSAgICpkZXNjcmlwdGlvbjsKIAogCS8qIERvIG5vdGhpbmcgaW4gZGF0YS1vbmx5IGR1 bXAgKi8KIAlpZiAoZG9wdC0+ZGF0YU9ubHkpCkBAIC00MjQ5LDEwICs0Mjg0LDIyIEBAIGR1 bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uUmVs SW5mbyAqcHVicmluZm8pCiAKIAlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CiAKLQlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkFMVEVSIFBVQkxJQ0FUSU9OICVzIEFERCBUQUJM RSBPTkxZIiwKLQkJCQkJICBmbXRJZChwdWJpbmZvLT5kb2JqLm5hbWUpKTsKKwlpZiAodGJp bmZvLT5yZWxraW5kID09IFJFTEtJTkRfU0VRVUVOQ0UpCisJeworCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgIkFMVEVSIFBVQkxJQ0FUSU9OICVzIEFERCBTRVFVRU5DRSIsCisJCQkJ CQkgIGZtdElkKHB1YmluZm8tPmRvYmoubmFtZSkpOworCQlkZXNjcmlwdGlvbiA9ICJQVUJM SUNBVElPTiBTRVFVRU5DRSI7CisJfQorCWVsc2UKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVy KHF1ZXJ5LCAiQUxURVIgUFVCTElDQVRJT04gJXMgQUREIFRBQkxFIE9OTFkiLAorCQkJCQkJ ICBmbXRJZChwdWJpbmZvLT5kb2JqLm5hbWUpKTsKKwkJZGVzY3JpcHRpb24gPSAiUFVCTElD QVRJT04gVEFCTEUiOworCX0KKwogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiICVzIiwK IAkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8pKTsKKwogCWlmIChwdWJyaW5m by0+cHVicmVscXVhbCkKIAl7CiAJCS8qCkBAIC00Mjc1LDcgKzQzMjIsNyBAQCBkdW1wUHVi bGljYXRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvblJlbEluZm8g KnB1YnJpbmZvKQogCQkJCQkgQVJDSElWRV9PUFRTKC50YWcgPSB0YWcsCiAJCQkJCQkJCSAg Lm5hbWVzcGFjZSA9IHRiaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwKIAkJCQkJ CQkJICAub3duZXIgPSBwdWJpbmZvLT5yb2xuYW1lLAotCQkJCQkJCQkgIC5kZXNjcmlwdGlv biA9ICJQVUJMSUNBVElPTiBUQUJMRSIsCisJCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gZGVz Y3JpcHRpb24sCiAJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BPU1RfREFUQSwKIAkJ CQkJCQkJICAuY3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhKSk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmlu ZGV4IDc3MmRjMGNmN2EyLi44OTM3MjVkMTIxZiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC02MTUs MTAgKzYxNSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBfUHVibGljYXRpb25JbmZvCiAJRHVtcGFi bGVPYmplY3QgZG9iajsKIAljb25zdCBjaGFyICpyb2xuYW1lOwogCWJvb2wJCXB1YmFsbHRh YmxlczsKKwlib29sCQlwdWJhbGxzZXF1ZW5jZXM7CiAJYm9vbAkJcHViaW5zZXJ0OwogCWJv b2wJCXB1YnVwZGF0ZTsKIAlib29sCQlwdWJkZWxldGU7CiAJYm9vbAkJcHVidHJ1bmNhdGU7 CisJYm9vbAkJcHVic2VxdWVuY2U7CiAJYm9vbAkJcHVidmlhcm9vdDsKIH0gUHVibGljYXRp b25JbmZvOwogCkBAIC02NDMsNiArNjQ1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1B1YmxpY2F0 aW9uU2NoZW1hSW5mbwogCUR1bXBhYmxlT2JqZWN0IGRvYmo7CiAJUHVibGljYXRpb25JbmZv ICpwdWJsaWNhdGlvbjsKIAlOYW1lc3BhY2VJbmZvICpwdWJzY2hlbWE7CisJY2hhciBwdWJ0 eXBlOwogfSBQdWJsaWNhdGlvblNjaGVtYUluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCmluZGV4IGZkMTA1MmU1ZGI4Li4xOWY5MDhmNjAwNiAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwKQEAgLTIzNTgsNyArMjM1OCw3IEBAIG15ICV0ZXN0cyA9ICgK IAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBQVUJM SUNBVElPTiBwdWIxOycsCiAJCXJlZ2V4cCAgICAgICA9PiBxci9eCi0JCQlcUUNSRUFURSBQ VUJMSUNBVElPTiBwdWIxIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0 ZSwgdHJ1bmNhdGUnKTtcRQorCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViMSBXSVRIIChw dWJsaXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlLCBzZXF1ZW5jZScp O1xFCiAJCQkveG0sCiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0 YSA9PiAxLCB9LAogCX0sCkBAIC0yMzc4LDE2ICsyMzc4LDI3IEBAIG15ICV0ZXN0cyA9ICgK IAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBQVUJM SUNBVElPTiBwdWIzOycsCiAJCXJlZ2V4cCA9PiBxci9eCi0JCQlcUUNSRUFURSBQVUJMSUNB VElPTiBwdWIzIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1 bmNhdGUnKTtcRQorCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViMyBXSVRIIChwdWJsaXNo ID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlLCBzZXF1ZW5jZScpO1xFCiAJ CQkveG0sCiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAx LCB9LAogCX0sCiAKIAknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjQnID0+IHsKIAkJY3JlYXRl X29yZGVyID0+IDUwLAotCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBQVUJMSUNBVElPTiBw dWI0OycsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjQKKwkJ CQkJCSBGT1IgQUxMIFNFUVVFTkNFUworCQkJCQkJIFdJVEggKHB1Ymxpc2ggPSBcJ1wnKTsn LAogCQlyZWdleHAgPT4gcXIvXgotCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViNCBXSVRI IChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJ CVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjQgRk9SIEFMTCBTRVFVRU5DRVMgV0lUSCAocHVi bGlzaCA9ICcnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlv bl9wb3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCisJJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI1 JyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MCwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVB VEUgUFVCTElDQVRJT04gcHViNTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUg UFVCTElDQVRJT04gcHViNSBXSVRIIChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxl dGUsIHRydW5jYXRlLCBzZXF1ZW5jZScpO1xFCiAJCQkveG0sCiAJCWxpa2UgPT4geyAlZnVs bF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAogCX0sCkBAIC0yNDc0LDYgKzI0 ODUsMjcgQEAgbXkgJXRlc3RzID0gKAogCQl1bmxpa2UgPT4geyBleGNsdWRlX2R1bXBfdGVz dF9zY2hlbWEgPT4gMSwgfSwKIAl9LAogCisJJ0FMVEVSIFBVQkxJQ0FUSU9OIHB1YjMgQURE IEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIGR1bXBfdGVzdCcgPT4geworCQljcmVhdGVfb3Jk ZXIgPT4gNTEsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnQUxURVIgUFVCTElDQVRJT04gcHVi MyBBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgZHVtcF90ZXN0OycsCisJCXJlZ2V4cCA9 PiBxci9eCisJCQlcUUFMVEVSIFBVQkxJQ0FUSU9OIHB1YjMgQUREIEFMTCBTRVFVRU5DRVMg SU4gU0NIRU1BIGR1bXBfdGVzdDtcRQorCQkJL3htLAorCQlsaWtlICAgPT4geyAlZnVsbF9y dW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4geyBleGNsdWRl X2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwgfSwKKwl9LAorCisJJ0FMVEVSIFBVQkxJQ0FUSU9O IHB1YjMgQUREIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1YmxpYycgPT4geworCQljcmVh dGVfb3JkZXIgPT4gNTIsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnQUxURVIgUFVCTElDQVRJ T04gcHViMyBBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHVibGljOycsCisJCXJlZ2V4 cCA9PiBxci9eCisJCQlcUUFMVEVSIFBVQkxJQ0FUSU9OIHB1YjMgQUREIEFMTCBTRVFVRU5D RVMgSU4gU0NIRU1BIHB1YmxpYztcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVu cywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCiAJJ0NSRUFURSBTQ0hFTUEg cHVibGljJyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eQ1JFQVRFIFNDSEVNQSBwdWJsaWM7L20s CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKaW5kZXggNzE0MDk3Y2FkMWIuLmI4YTUzMmE0NWY3IDEwMDY0NAotLS0g YS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YwpAQCAtMTYzMywyOCArMTYzMywxOSBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25z dCBjaGFyICpzY2hlbWFuYW1lLAogCWlmICh0YWJsZWluZm8ucmVsa2luZCA9PSBSRUxLSU5E X1NFUVVFTkNFKQogCXsKIAkJUEdyZXN1bHQgICAqcmVzdWx0ID0gTlVMTDsKLQkJcHJpbnRR dWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKLQkJY2hhcgkgICAqZm9vdGVyc1syXSA9IHtO VUxMLCBOVUxMfTsKIAogCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxMDAwMDApCiAJCXsKIAkJ CXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cu Zm9ybWF0X3R5cGUoc2VxdHlwaWQsIE5VTEwpIEFTIFwiJXNcIixcbiIKLQkJCQkJCQkgICIg ICAgICAgc2Vxc3RhcnQgQVMgXCIlc1wiLFxuIgotCQkJCQkJCSAgIiAgICAgICBzZXFtaW4g QVMgXCIlc1wiLFxuIgotCQkJCQkJCSAgIiAgICAgICBzZXFtYXggQVMgXCIlc1wiLFxuIgot CQkJCQkJCSAgIiAgICAgICBzZXFpbmNyZW1lbnQgQVMgXCIlc1wiLFxuIgotCQkJCQkJCSAg IiAgICAgICBDQVNFIFdIRU4gc2VxY3ljbGUgVEhFTiAnJXMnIEVMU0UgJyVzJyBFTkQgQVMg XCIlc1wiLFxuIgotCQkJCQkJCSAgIiAgICAgICBzZXFjYWNoZSBBUyBcIiVzXCJcbiIsCi0J CQkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgi U3RhcnQiKSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiTWluaW11bSIpLAotCQkJCQkJCSAg Z2V0dGV4dF9ub29wKCJNYXhpbXVtIiksCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIkluY3Jl bWVudCIpLAorCQkJCQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHNlcXR5 cGlkLCBOVUxMKSxcbiIKKwkJCQkJCQkgICIgICAgICAgc2Vxc3RhcnQsXG4iCisJCQkJCQkJ ICAiICAgICAgIHNlcW1pbixcbiIKKwkJCQkJCQkgICIgICAgICAgc2VxbWF4LFxuIgorCQkJ CQkJCSAgIiAgICAgICBzZXFpbmNyZW1lbnQsXG4iCisJCQkJCQkJICAiICAgICAgIENBU0Ug V0hFTiBzZXFjeWNsZSBUSEVOICclcycgRUxTRSAnJXMnIEVORCxcbiIKKwkJCQkJCQkgICIg ICAgICAgc2VxY2FjaGVcbiIsCiAJCQkJCQkJICBnZXR0ZXh0X25vb3AoInllcyIpLAotCQkJ CQkJCSAgZ2V0dGV4dF9ub29wKCJubyIpLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJDeWNs ZXM/IiksCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIkNhY2hlIikpOworCQkJCQkJCSAgZ2V0 dGV4dF9ub29wKCJubyIpKTsKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJ ICAiRlJPTSBwZ19jYXRhbG9nLnBnX3NlcXVlbmNlXG4iCiAJCQkJCQkJICAiV0hFUkUgc2Vx cmVsaWQgPSAnJXMnOyIsCkBAIC0xNjYzLDIyICsxNjU0LDE1IEBAIGRlc2NyaWJlT25lVGFi bGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCWVsc2UKIAkJewogCQkJcHJp bnRmUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkgICJTRUxFQ1QgJ2JpZ2ludCcgQVMgXCIl c1wiLFxuIgotCQkJCQkJCSAgIiAgICAgICBzdGFydF92YWx1ZSBBUyBcIiVzXCIsXG4iCi0J CQkJCQkJICAiICAgICAgIG1pbl92YWx1ZSBBUyBcIiVzXCIsXG4iCi0JCQkJCQkJICAiICAg ICAgIG1heF92YWx1ZSBBUyBcIiVzXCIsXG4iCi0JCQkJCQkJICAiICAgICAgIGluY3JlbWVu dF9ieSBBUyBcIiVzXCIsXG4iCi0JCQkJCQkJICAiICAgICAgIENBU0UgV0hFTiBpc19jeWNs ZWQgVEhFTiAnJXMnIEVMU0UgJyVzJyBFTkQgQVMgXCIlc1wiLFxuIgotCQkJCQkJCSAgIiAg ICAgICBjYWNoZV92YWx1ZSBBUyBcIiVzXCJcbiIsCi0JCQkJCQkJICBnZXR0ZXh0X25vb3Ao IlR5cGUiKSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgiU3RhcnQiKSwKLQkJCQkJCQkgIGdl dHRleHRfbm9vcCgiTWluaW11bSIpLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJNYXhpbXVt IiksCi0JCQkJCQkJICBnZXR0ZXh0X25vb3AoIkluY3JlbWVudCIpLAorCQkJCQkJCSAgIlNF TEVDVCAnYmlnaW50JyxcbiIKKwkJCQkJCQkgICIgICAgICAgc3RhcnRfdmFsdWUsXG4iCisJ CQkJCQkJICAiICAgICAgIG1pbl92YWx1ZSxcbiIKKwkJCQkJCQkgICIgICAgICAgbWF4X3Zh bHVlLFxuIgorCQkJCQkJCSAgIiAgICAgICBpbmNyZW1lbnRfYnksXG4iCisJCQkJCQkJICAi ICAgICAgIENBU0UgV0hFTiBpc19jeWNsZWQgVEhFTiAnJXMnIEVMU0UgJyVzJyBFTkQsXG4i CisJCQkJCQkJICAiICAgICAgIGNhY2hlX3ZhbHVlXG4iLAogCQkJCQkJCSAgZ2V0dGV4dF9u b29wKCJ5ZXMiKSwKLQkJCQkJCQkgIGdldHRleHRfbm9vcCgibm8iKSwKLQkJCQkJCQkgIGdl dHRleHRfbm9vcCgiQ3ljbGVzPyIpLAotCQkJCQkJCSAgZ2V0dGV4dF9ub29wKCJDYWNoZSIp KTsKKwkJCQkJCQkgIGdldHRleHRfbm9vcCgibm8iKSk7CiAJCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLCAiRlJPTSAlcyIsIGZtdElkKHNjaGVtYW5hbWUpKTsKIAkJCS8qIG11c3QgYmUg c2VwYXJhdGUgYmVjYXVzZSBmbXRJZCBpc24ndCByZWVudHJhbnQgKi8KIAkJCWFwcGVuZFBR RXhwQnVmZmVyKCZidWYsICIuJXM7IiwgZm10SWQocmVsYXRpb25uYW1lKSk7CkBAIC0xNjg4 LDYgKzE2NzIsNTEgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2No ZW1hbmFtZSwKIAkJaWYgKCFyZXMpCiAJCQlnb3RvIGVycm9yX3JldHVybjsKIAorCQludW1y b3dzID0gUFFudHVwbGVzKHJlcyk7CisKKwkJLyogWFhYIHJlc2V0IHRvIHVzZSBleHBhbmRl ZCBvdXRwdXQgZm9yIHNlcXVlbmNlcyAobWF5YmUgd2Ugc2hvdWxkCisJCSAqIGtlZXAgdGhp cyBkaXNhYmxlZCwganVzdCBsaWtlIGZvciB0YWJsZXM/KSAqLworCQlteW9wdC5leHBhbmRl ZCA9IHBzZXQucG9wdC50b3B0LmV4cGFuZGVkOworCisJCXByaW50VGFibGVJbml0KCZjb250 LCAmbXlvcHQsIHRpdGxlLmRhdGEsIDcsIG51bXJvd3MpOworCQlwcmludFRhYmxlSW5pdGlh bGl6ZWQgPSB0cnVlOworCisJCXByaW50ZlBRRXhwQnVmZmVyKCZ0aXRsZSwgXygiU2VxdWVu Y2UgXCIlcy4lc1wiIiksCisJCQkJCQkgIHNjaGVtYW5hbWUsIHJlbGF0aW9ubmFtZSk7CisK KwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJUeXBlIiksIHRy dWUsICdsJyk7CisJCXByaW50VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgi U3RhcnQiKSwgdHJ1ZSwgJ3InKTsKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0 dGV4dF9ub29wKCJNaW5pbXVtIiksIHRydWUsICdyJyk7CisJCXByaW50VGFibGVBZGRIZWFk ZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiTWF4aW11bSIpLCB0cnVlLCAncicpOworCQlwcmlu dFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIkluY3JlbWVudCIpLCB0cnVl LCAncicpOworCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIkN5 Y2xlcz8iKSwgdHJ1ZSwgJ2wnKTsKKwkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0 dGV4dF9ub29wKCJDYWNoZSIpLCB0cnVlLCAncicpOworCisJCS8qIEdlbmVyYXRlIHRhYmxl IGNlbGxzIHRvIGJlIHByaW50ZWQgKi8KKwkJZm9yIChpID0gMDsgaSA8IG51bXJvd3M7IGkr KykKKwkJeworCQkJLyogVHlwZSAqLworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBR Z2V0dmFsdWUocmVzLCBpLCAwKSwgZmFsc2UsIGZhbHNlKTsKKworCQkJLyogU3RhcnQgKi8K KwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgMSksIGZh bHNlLCBmYWxzZSk7CisKKwkJCS8qIE1pbmltdW0gKi8KKwkJCXByaW50VGFibGVBZGRDZWxs KCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgMiksIGZhbHNlLCBmYWxzZSk7CisKKwkJCS8q IE1heGltdW0gKi8KKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJl cywgaSwgMyksIGZhbHNlLCBmYWxzZSk7CisKKwkJCS8qIEluY3JlbWVudCAqLworCQkJcHJp bnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCA0KSwgZmFsc2UsIGZh bHNlKTsKKworCQkJLyogQ3ljbGVzPyAqLworCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQs IFBRZ2V0dmFsdWUocmVzLCBpLCA1KSwgZmFsc2UsIGZhbHNlKTsKKworCQkJLyogQ2FjaGUg Ki8KKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgNiks IGZhbHNlLCBmYWxzZSk7CisJCX0KKwogCQkvKiBGb290ZXIgaW5mb3JtYXRpb24gYWJvdXQg YSBzZXF1ZW5jZSAqLwogCiAJCS8qIEdldCB0aGUgY29sdW1uIHRoYXQgb3ducyB0aGlzIHNl cXVlbmNlICovCkBAIC0xNzIxLDI5ICsxNzUwLDYzIEBAIGRlc2NyaWJlT25lVGFibGVEZXRh aWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQlzd2l0Y2ggKFBRZ2V0dmFsdWUocmVz dWx0LCAwLCAxKVswXSkKIAkJCXsKIAkJCQljYXNlICdhJzoKLQkJCQkJZm9vdGVyc1swXSA9 IHBzcHJpbnRmKF8oIk93bmVkIGJ5OiAlcyIpLAotCQkJCQkJCQkJCSAgUFFnZXR2YWx1ZShy ZXN1bHQsIDAsIDApKTsKKwkJCQkJcHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwKKwkJCQkJ CQkJCQlwc3ByaW50ZihfKCJPd25lZCBieTogJXMiKSwKKwkJCQkJCQkJCQkJCSBQUWdldHZh bHVlKHJlc3VsdCwgMCwgMCkpKTsKIAkJCQkJYnJlYWs7CiAJCQkJY2FzZSAnaSc6Ci0JCQkJ CWZvb3RlcnNbMF0gPSBwc3ByaW50ZihfKCJTZXF1ZW5jZSBmb3IgaWRlbnRpdHkgY29sdW1u OiAlcyIpLAotCQkJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIDAsIDApKTsKKwkJCQkJ cHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwKKwkJCQkJCQkJCQlwc3ByaW50ZihfKCJTZXF1 ZW5jZSBmb3IgaWRlbnRpdHkgY29sdW1uOiAlcyIpLAorCQkJCQkJCQkJCQkJIFBRZ2V0dmFs dWUocmVzdWx0LCAwLCAwKSkpOwogCQkJCQlicmVhazsKIAkJCX0KIAkJfQogCQlQUWNsZWFy KHJlc3VsdCk7CiAKLQkJcHJpbnRmUFFFeHBCdWZmZXIoJnRpdGxlLCBfKCJTZXF1ZW5jZSBc IiVzLiVzXCIiKSwKLQkJCQkJCSAgc2NoZW1hbmFtZSwgcmVsYXRpb25uYW1lKTsKKwkJLyog cHJpbnQgYW55IHB1YmxpY2F0aW9ucyAqLworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAw MDApCisJCXsKKwkJCWludAkJCXR1cGxlcyA9IDA7CiAKLQkJbXlvcHQuZm9vdGVycyA9IGZv b3RlcnM7Ci0JCW15b3B0LnRvcHQuZGVmYXVsdF9mb290ZXIgPSBmYWxzZTsKLQkJbXlvcHQu dGl0bGUgPSB0aXRsZS5kYXRhOwotCQlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsK KwkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVc biIKKwkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgorCQkJ CQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSBwbiBP TiBwLm9pZCA9IHBuLnBucHViaWRcbiIKKwkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5w Z19jbGFzcyBwYyBPTiBwYy5yZWxuYW1lc3BhY2UgPSBwbi5wbm5zcGlkXG4iCisJCQkJCQkJ ICAiV0hFUkUgcGMub2lkID0nJXMnIGFuZCBwbi5wbnR5cGUgPSAncycgYW5kIHBnX2NhdGFs b2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKKwkJCQkJCQkgICJVTklP TlxuIgorCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCisJCQkJCQkJICAiRlJPTSBwZ19j YXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKKwkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxv Zy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCisJCQkJ CQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIKKwkJCQkJCQkgICJVTklPTlxuIgor CQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCisJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9n LnBnX3B1YmxpY2F0aW9uIHBcbiIKKwkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHNlcXVlbmNl cyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgor CQkJCQkJCSAgIk9SREVSIEJZIDE7IiwKKwkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9pZCk7 CiAKLQkJcHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBw c2V0LmxvZ2ZpbGUpOworCQkJcmVzdWx0ID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCQkJaWYg KCFyZXN1bHQpCisJCQkJZ290byBlcnJvcl9yZXR1cm47CisJCQllbHNlCisJCQkJdHVwbGVz ID0gUFFudHVwbGVzKHJlc3VsdCk7CisKKwkJCWlmICh0dXBsZXMgPiAwKQorCQkJCXByaW50 VGFibGVBZGRGb290ZXIoJmNvbnQsIF8oIlB1YmxpY2F0aW9uczoiKSk7CisKKwkJCS8qIE1p Z2h0IGJlIGFuIGVtcHR5IHNldCAtIHRoYXQncyBvayAqLworCQkJZm9yIChpID0gMDsgaSA8 IHR1cGxlczsgaSsrKQorCQkJeworCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsICIgICAg XCIlc1wiIiwKKwkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMCkpOworCisJCQkJ cHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwgYnVmLmRhdGEpOworCQkJfQorCQkJUFFjbGVh cihyZXN1bHQpOworCQl9CiAKLQkJaWYgKGZvb3RlcnNbMF0pCi0JCQlmcmVlKGZvb3RlcnNb MF0pOworCQlwcmludFRhYmxlKCZjb250LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQu bG9nZmlsZSk7CiAKIAkJcmV0dmFsID0gdHJ1ZTsKIAkJZ290byBlcnJvcl9yZXR1cm47CQkv KiBub3QgYW4gZXJyb3IsIGp1c3QgcmV0dXJuIGVhcmx5ICovCkBAIC0xOTcwLDYgKzIwMzMs MTEgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwK IAlmb3IgKGkgPSAwOyBpIDwgY29sczsgaSsrKQogCQlwcmludFRhYmxlQWRkSGVhZGVyKCZj b250LCBoZWFkZXJzW2ldLCB0cnVlLCAnbCcpOwogCisJcmVzID0gUFNRTGV4ZWMoYnVmLmRh dGEpOworCWlmICghcmVzKQorCQlnb3RvIGVycm9yX3JldHVybjsKKwludW1yb3dzID0gUFFu dHVwbGVzKHJlcyk7CisKIAkvKiBHZW5lcmF0ZSB0YWJsZSBjZWxscyB0byBiZSBwcmludGVk ICovCiAJZm9yIChpID0gMDsgaSA8IG51bXJvd3M7IGkrKykKIAl7CkBAIC0yODk1LDcgKzI5 NjMsNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1l LAogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgogCQkJ CQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4g T04gcC5vaWQgPSBwbi5wbnB1YmlkXG4iCiAJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9n LnBnX2NsYXNzIHBjIE9OIHBjLnJlbG5hbWVzcGFjZSA9IHBuLnBubnNwaWRcbiIKLQkJCQkJ CQkJICAiV0hFUkUgcGMub2lkID0nJXMnIGFuZCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lz X3B1Ymxpc2hhYmxlKCclcycpXG4iCisJCQkJCQkJCSAgIldIRVJFIHBjLm9pZCA9JyVzJyBh bmQgcG4ucG50eXBlID0gJ3QnIGFuZCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxp c2hhYmxlKCclcycpXG4iCiAJCQkJCQkJCSAgIlVOSU9OXG4iCiAJCQkJCQkJCSAgIlNFTEVD VCBwdWJuYW1lXG4iCiAJCQkJCQkJCSAgIgkJLCBwZ19nZXRfZXhwcihwci5wcnF1YWwsIGMu b2lkKVxuIgpAQCAtNDc4NSw3ICs0ODUzLDcgQEAgbGlzdFNjaGVtYXMoY29uc3QgY2hhciAq cGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXN0ZW0pCiAJCWludAkJCWk7CiAK IAkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lIFxu IgorCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWUsIChDQVNFIFdIRU4gcG50eXBlID0gJ3QnIFRI RU4gJ3RhYmxlcycgRUxTRSAnc2VxdWVuY2VzJyBFTkQpIEFTIHB1YnR5cGVcbiIKIAkJCQkJ CSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCiAJCQkJCQkgICIJCUpP SU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4gT04gcC5vaWQgPSBw bi5wbnB1YmlkXG4iCiAJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2Ug biBPTiBuLm9pZCA9IHBuLnBubnNwaWQgXG4iCkBAIC00ODE0LDggKzQ4ODIsOSBAQCBsaXN0 U2NoZW1hcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5 c3RlbSkKIAkJCS8qIE1pZ2h0IGJlIGFuIGVtcHR5IHNldCAtIHRoYXQncyBvayAqLwogCQkJ Zm9yIChpID0gMDsgaSA8IHB1Yl9zY2hlbWFfdHVwbGVzOyBpKyspCiAJCQl7Ci0JCQkJcHJp bnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIiAgICBcIiVzXCIiLAotCQkJCQkJCQkgIFBRZ2V0dmFs dWUocmVzdWx0LCBpLCAwKSk7CisJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIiAgICBc IiVzXCIgKCVzKSIsCisJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDApLAorCQkJ CQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAxKSk7CiAKIAkJCQlmb290ZXJzW2kgKyAx XSA9IHBnX3N0cmR1cChidWYuZGF0YSk7CiAJCQl9CkBAIC01ODIwLDcgKzU4ODksNyBAQCBs aXN0UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJUFFFeHBCdWZmZXJEYXRh IGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQu cG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJ c3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDEwMDAwMCkKIAl7CkBAIC01ODM0LDIzICs1 OTAzLDQ1IEBAIGxpc3RQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAogCWlu aXRQUUV4cEJ1ZmZlcigmYnVmKTsKIAotCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCi0JCQkJ CSAgIlNFTEVDVCBwdWJuYW1lIEFTIFwiJXNcIixcbiIKLQkJCQkJICAiICBwZ19jYXRhbG9n LnBnX2dldF91c2VyYnlpZChwdWJvd25lcikgQVMgXCIlc1wiLFxuIgotCQkJCQkgICIgIHB1 YmFsbHRhYmxlcyBBUyBcIiVzXCIsXG4iCi0JCQkJCSAgIiAgcHViaW5zZXJ0IEFTIFwiJXNc IixcbiIKLQkJCQkJICAiICBwdWJ1cGRhdGUgQVMgXCIlc1wiLFxuIgotCQkJCQkgICIgIHB1 YmRlbGV0ZSBBUyBcIiVzXCIiLAotCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAotCQkJ CQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKLQkJCQkJICBnZXR0ZXh0X25vb3AoIkFsbCB0 YWJsZXMiKSwKLQkJCQkJICBnZXR0ZXh0X25vb3AoIkluc2VydHMiKSwKLQkJCQkJICBnZXR0 ZXh0X25vb3AoIlVwZGF0ZXMiKSwKLQkJCQkJICBnZXR0ZXh0X25vb3AoIkRlbGV0ZXMiKSk7 CisJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQlwcmludGZQUUV4cEJ1ZmZlcigm YnVmLAorCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWUgQVMgXCIlc1wiLFxuIgorCQkJCQkJICAi ICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZChwdWJvd25lcikgQVMgXCIlc1wiLFxuIgor CQkJCQkJICAiICBwdWJhbGx0YWJsZXMgQVMgXCIlc1wiLFxuIgorCQkJCQkJICAiICBwdWJh bGxzZXF1ZW5jZXMgQVMgXCIlc1wiLFxuIgorCQkJCQkJICAiICBwdWJpbnNlcnQgQVMgXCIl c1wiLFxuIgorCQkJCQkJICAiICBwdWJ1cGRhdGUgQVMgXCIlc1wiLFxuIgorCQkJCQkJICAi ICBwdWJkZWxldGUgQVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiks CisJCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKKwkJCQkJCSAgZ2V0dGV4dF9ub29w KCJBbGwgdGFibGVzIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiQWxsIHNlcXVlbmNlcyIp LAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkluc2VydHMiKSwKKwkJCQkJCSAgZ2V0dGV4dF9u b29wKCJVcGRhdGVzIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRGVsZXRlcyIpKTsKKwll bHNlCisJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICJTRUxFQ1QgcHVibmFt ZSBBUyBcIiVzXCIsXG4iCisJCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlk KHB1Ym93bmVyKSBBUyBcIiVzXCIsXG4iCisJCQkJCQkgICIgIHB1YmFsbHRhYmxlcyBBUyBc IiVzXCIsXG4iCisJCQkJCQkgICIgIHB1Ymluc2VydCBBUyBcIiVzXCIsXG4iCisJCQkJCQkg ICIgIHB1YnVwZGF0ZSBBUyBcIiVzXCIsXG4iCisJCQkJCQkgICIgIHB1YmRlbGV0ZSBBUyBc IiVzXCIiLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKKwkJCQkJCSAgZ2V0dGV4 dF9ub29wKCJPd25lciIpLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkFsbCB0YWJsZXMiKSwK KwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJJbnNlcnRzIiksCisJCQkJCQkgIGdldHRleHRfbm9v cCgiVXBkYXRlcyIpLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkRlbGV0ZXMiKSk7CisKIAlp ZiAocHNldC5zdmVyc2lvbiA+PSAxMTAwMDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYs CiAJCQkJCQkgICIsXG4gIHB1YnRydW5jYXRlIEFTIFwiJXNcIiIsCiAJCQkJCQkgIGdldHRl eHRfbm9vcCgiVHJ1bmNhdGVzIikpOworCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkK KwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIixcbiAgcHVic2VxdWVuY2Ug QVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJTZXF1ZW5jZXMiKSk7CiAJaWYg KHBzZXQuc3ZlcnNpb24gPj0gMTMwMDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAog CQkJCQkJICAiLFxuICBwdWJ2aWFyb290IEFTIFwiJXNcIiIsCkBAIC01OTM2LDYgKzYwMjcs NyBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCVBHcmVz dWx0ICAgKnJlczsKIAlib29sCQloYXNfcHVidHJ1bmNhdGU7CiAJYm9vbAkJaGFzX3B1YnZp YXJvb3Q7CisJYm9vbAkJaGFzX3B1YnNlcXVlbmNlOwogCiAJUFFFeHBCdWZmZXJEYXRhIHRp dGxlOwogCXByaW50VGFibGVDb250ZW50IGNvbnQ7CkBAIC01OTUyLDYgKzYwNDQsNyBAQCBk ZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCiAJaGFzX3B1YnRy dW5jYXRlID0gKHBzZXQuc3ZlcnNpb24gPj0gMTEwMDAwKTsKIAloYXNfcHVidmlhcm9vdCA9 IChwc2V0LnN2ZXJzaW9uID49IDEzMDAwMCk7CisJaGFzX3B1YnNlcXVlbmNlID0gKHBzZXQu c3ZlcnNpb24gPj0gMTUwMDAwKTsKIAogCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKIApAQCAt NTk1OSwxMiArNjA1MiwxNyBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpw YXR0ZXJuKQogCQkJCQkgICJTRUxFQ1Qgb2lkLCBwdWJuYW1lLFxuIgogCQkJCQkgICIgIHBn X2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHB1Ym93bmVyKSBBUyBvd25lcixcbiIKIAkJCQkJ ICAiICBwdWJhbGx0YWJsZXMsIHB1Ymluc2VydCwgcHVidXBkYXRlLCBwdWJkZWxldGUiKTsK KwogCWlmIChoYXNfcHVidHJ1bmNhdGUpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs CiAJCQkJCQkJICIsIHB1YnRydW5jYXRlIik7CiAJaWYgKGhhc19wdWJ2aWFyb290KQogCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAogCQkJCQkJCSAiLCBwdWJ2aWFyb290Iik7CisJ aWYgKGhhc19wdWJzZXF1ZW5jZSkKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKKwkJ CQkJCQkgIiwgcHViYWxsc2VxdWVuY2VzLCBwdWJzZXF1ZW5jZSIpOworCiAJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJmJ1ZiwKIAkJCQkJCSAiXG5GUk9NIHBnX2NhdGFsb2cucGdfcHVibGlj YXRpb25cbiIpOwogCkBAIC02MDA1LDYgKzYxMDMsNyBAQCBkZXNjcmliZVB1YmxpY2F0aW9u cyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQljaGFyCSAgICpwdWJpZCA9IFBRZ2V0dmFsdWUo cmVzLCBpLCAwKTsKIAkJY2hhcgkgICAqcHVibmFtZSA9IFBRZ2V0dmFsdWUocmVzLCBpLCAx KTsKIAkJYm9vbAkJcHViYWxsdGFibGVzID0gc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCAz KSwgInQiKSA9PSAwOworCQlib29sCQlwdWJhbGxzZXF1ZW5jZXMgPSBzdHJjbXAoUFFnZXR2 YWx1ZShyZXMsIGksIDkpLCAidCIpID09IDA7CiAJCXByaW50VGFibGVPcHQgbXlvcHQgPSBw c2V0LnBvcHQudG9wdDsKIAogCQlpZiAoaGFzX3B1YnRydW5jYXRlKQpAQCAtNjAxMiwyOSAr NjExMSw0MyBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQog CQlpZiAoaGFzX3B1YnZpYXJvb3QpCiAJCQluY29scysrOwogCisJCS8qIHNlcXVlbmNlcyBo YXZlIHR3byBleHRyYSBjb2x1bW5zIChwdWJhbGxzZXF1ZW5jZXMsIHB1YnNlcXVlbmNlcykg Ki8KKwkJaWYgKGhhc19wdWJzZXF1ZW5jZSkKKwkJCW5jb2xzICs9IDI7CisKIAkJaW5pdFBR RXhwQnVmZmVyKCZ0aXRsZSk7CiAJCXByaW50ZlBRRXhwQnVmZmVyKCZ0aXRsZSwgXygiUHVi bGljYXRpb24gJXMiKSwgcHVibmFtZSk7CiAJCXByaW50VGFibGVJbml0KCZjb250LCAmbXlv cHQsIHRpdGxlLmRhdGEsIG5jb2xzLCBucm93cyk7CiAKIAkJcHJpbnRUYWJsZUFkZEhlYWRl cigmY29udCwgZ2V0dGV4dF9ub29wKCJPd25lciIpLCB0cnVlLCBhbGlnbik7CiAJCXByaW50 VGFibGVBZGRIZWFkZXIoJmNvbnQsIGdldHRleHRfbm9vcCgiQWxsIHRhYmxlcyIpLCB0cnVl LCBhbGlnbik7CisJCWlmIChoYXNfcHVic2VxdWVuY2UpCisJCQlwcmludFRhYmxlQWRkSGVh ZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIkFsbCBzZXF1ZW5jZXMiKSwgdHJ1ZSwgYWxpZ24p OwogCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIkluc2VydHMi KSwgdHJ1ZSwgYWxpZ24pOwogCQlwcmludFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0 X25vb3AoIlVwZGF0ZXMiKSwgdHJ1ZSwgYWxpZ24pOwogCQlwcmludFRhYmxlQWRkSGVhZGVy KCZjb250LCBnZXR0ZXh0X25vb3AoIkRlbGV0ZXMiKSwgdHJ1ZSwgYWxpZ24pOwogCQlpZiAo aGFzX3B1YnRydW5jYXRlKQogCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4 dF9ub29wKCJUcnVuY2F0ZXMiKSwgdHJ1ZSwgYWxpZ24pOworCQlpZiAoaGFzX3B1YnNlcXVl bmNlKQorCQkJcHJpbnRUYWJsZUFkZEhlYWRlcigmY29udCwgZ2V0dGV4dF9ub29wKCJTZXF1 ZW5jZXMiKSwgdHJ1ZSwgYWxpZ24pOwogCQlpZiAoaGFzX3B1YnZpYXJvb3QpCiAJCQlwcmlu dFRhYmxlQWRkSGVhZGVyKCZjb250LCBnZXR0ZXh0X25vb3AoIlZpYSByb290IiksIHRydWUs IGFsaWduKTsKIAotCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMs IGksIDIpLCBmYWxzZSwgZmFsc2UpOwotCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFn ZXR2YWx1ZShyZXMsIGksIDMpLCBmYWxzZSwgZmFsc2UpOwotCQlwcmludFRhYmxlQWRkQ2Vs bCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIDQpLCBmYWxzZSwgZmFsc2UpOwotCQlwcmlu dFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIDUpLCBmYWxzZSwgZmFs c2UpOwotCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIDYp LCBmYWxzZSwgZmFsc2UpOworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1 ZShyZXMsIGksIDIpLCBmYWxzZSwgZmFsc2UpOyAvKiBvd25lciAqLworCQlwcmludFRhYmxl QWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIDMpLCBmYWxzZSwgZmFsc2UpOyAv KiBhbGwgdGFibGVzICovCisKKwkJaWYgKGhhc19wdWJzZXF1ZW5jZSkKKwkJCXByaW50VGFi bGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgOSksIGZhbHNlLCBmYWxzZSk7 IC8qIGFsbCBzZXF1ZW5jZXMgKi8KKworCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFn ZXR2YWx1ZShyZXMsIGksIDQpLCBmYWxzZSwgZmFsc2UpOyAvKiBpbnNlcnQgKi8KKwkJcHJp bnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUocmVzLCBpLCA1KSwgZmFsc2UsIGZh bHNlKTsgLyogdXBkYXRlICovCisJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZh bHVlKHJlcywgaSwgNiksIGZhbHNlLCBmYWxzZSk7IC8qIGRlbGV0ZSAqLwogCQlpZiAoaGFz X3B1YnRydW5jYXRlKQotCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBRZ2V0dmFsdWUo cmVzLCBpLCA3KSwgZmFsc2UsIGZhbHNlKTsKKwkJCXByaW50VGFibGVBZGRDZWxsKCZjb250 LCBQUWdldHZhbHVlKHJlcywgaSwgNyksIGZhbHNlLCBmYWxzZSk7IC8qIHRydW5jYXRlICov CisJCWlmIChoYXNfcHVic2VxdWVuY2UpCisJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwg UFFnZXR2YWx1ZShyZXMsIGksIDEwKSwgZmFsc2UsIGZhbHNlKTsgLyogc2VxdWVuY2UgKi8K IAkJaWYgKGhhc19wdWJ2aWFyb290KQotCQkJcHJpbnRUYWJsZUFkZENlbGwoJmNvbnQsIFBR Z2V0dmFsdWUocmVzLCBpLCA4KSwgZmFsc2UsIGZhbHNlKTsKKwkJCXByaW50VGFibGVBZGRD ZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgOCksIGZhbHNlLCBmYWxzZSk7IC8qIHZp YSByb290ICovCiAKIAkJaWYgKCFwdWJhbGx0YWJsZXMpCiAJCXsKQEAgLTYwNTQsNiArNjE2 Nyw3IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJ CQkJICAiV0hFUkUgYy5yZWxuYW1lc3BhY2UgPSBuLm9pZFxuIgogCQkJCQkJCSAgIiAgQU5E IGMub2lkID0gcHIucHJyZWxpZFxuIgogCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAn JXMnXG4iCisJCQkJCQkJICAiICBBTkQgYy5yZWxraW5kICE9ICdTJ1xuIiAvKiBleGNsdWRl IHNlcXVlbmNlcyAqLwogCQkJCQkJCSAgIk9SREVSIEJZIDEsMiIsIHB1YmlkKTsKIAkJCWlm ICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgIlRhYmxlczoiLCBmYWxzZSwg JmNvbnQpKQogCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwpAQCAtNjA2NSw3ICs2MTc5LDcgQEAg ZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkJICAi U0VMRUNUIG4ubnNwbmFtZVxuIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfbmFt ZXNwYWNlIG5cbiIKIAkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGlj YXRpb25fbmFtZXNwYWNlIHBuIE9OIG4ub2lkID0gcG4ucG5uc3BpZFxuIgotCQkJCQkJCQkg ICJXSEVSRSBwbi5wbnB1YmlkID0gJyVzJ1xuIgorCQkJCQkJCQkgICJXSEVSRSBwbi5wbnB1 YmlkID0gJyVzJyBBTkQgcG4ucG50eXBlID0gJ3QnXG4iCiAJCQkJCQkJCSAgIk9SREVSIEJZ IDEiLCBwdWJpZCk7CiAJCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVm LCAiVGFibGVzIGZyb20gc2NoZW1hczoiLAogCQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQpA QCAtNjA3Myw2ICs2MTg3LDM3IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIg KnBhdHRlcm4pCiAJCQl9CiAJCX0KIAorCQlpZiAoIXB1YmFsbHNlcXVlbmNlcykKKwkJewor CQkJLyogR2V0IHRoZSB0YWJsZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljYXRpb24gKi8K KwkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJICAiU0VMRUNUIG4ubnNwbmFt ZSwgYy5yZWxuYW1lLCBOVUxMXG4iCisJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2Ns YXNzIGMsXG4iCisJCQkJCQkJICAiICAgICBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuLFxu IgorCQkJCQkJCSAgIiAgICAgcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIK KwkJCQkJCQkgICJXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkXG4iCisJCQkJCQkJICAi ICBBTkQgYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJICAiICBBTkQgcHIucHJwdWJp ZCA9ICclcydcbiIKKwkJCQkJCQkgICIgIEFORCBjLnJlbGtpbmQgPSAnUydcbiIgLyogb25s eSBzZXF1ZW5jZXMgKi8KKwkJCQkJCQkgICJPUkRFUiBCWSAxLDIiLCBwdWJpZCk7CisJCQlp ZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsICJTZXF1ZW5jZXM6IiwgZmFs c2UsICZjb250KSkKKwkJCQlnb3RvIGVycm9yX3JldHVybjsKKworCQkJaWYgKHBzZXQuc3Zl cnNpb24gPj0gMTUwMDAwKQorCQkJeworCQkJCS8qIEdldCB0aGUgc2NoZW1hcyBmb3IgdGhl IHNwZWNpZmllZCBwdWJsaWNhdGlvbiAqLworCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYs CisJCQkJCQkJCSAgIlNFTEVDVCBuLm5zcG5hbWVcbiIKKwkJCQkJCQkJICAiRlJPTSBwZ19j YXRhbG9nLnBnX25hbWVzcGFjZSBuXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSBwbiBPTiBuLm9pZCA9IHBuLnBubnNwaWRc biIKKwkJCQkJCQkJICAiV0hFUkUgcG4ucG5wdWJpZCA9ICclcycgQU5EIHBuLnBudHlwZSA9 ICdzJ1xuIgorCQkJCQkJCQkgICJPUkRFUiBCWSAxIiwgcHViaWQpOworCQkJCWlmICghYWRk Rm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgIlNlcXVlbmNlcyBmcm9tIHNjaGVtYXM6 IiwKKwkJCQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQkJZ290byBlcnJvcl9yZXR1cm47 CisJCQl9CisJCX0KKwogCQlwcmludFRhYmxlKCZjb250LCBwc2V0LnF1ZXJ5Rm91dCwgZmFs c2UsIHBzZXQubG9nZmlsZSk7CiAJCXByaW50VGFibGVDbGVhbnVwKCZjb250KTsKIApkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5jCmluZGV4IDVjMDY0NTk1YTk3Li5lNTliZDgzMDJkNiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuYwpAQCAtMTgxNSwxMSArMTgxNSwxNSBAQCBwc3FsX2NvbXBsZXRpb24oY29u c3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQlDT01QTEVURV9XSVRIKCJB REQiLCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIik7CiAJLyogQUxU RVIgUFVCTElDQVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVS IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiKSkKLQkJQ09NUExFVEVfV0lUSCgi QUxMIFRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKKwkJQ09NUExFVEVfV0lUSCgiQUxM IFRBQkxFUyBJTiBTQ0hFTUEiLCAiQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEiLCAiVEFCTEUi LCAiU0VRVUVOQ0UiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpIHx8CiAJCQkgKEhlYWRNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIp ICYmCiAJCQkgIGVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKSkKIAkJQ09NUExFVEVfV0lUSF9T Q0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKKwllbHNlIGlmIChNYXRj aGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJTRVFV RU5DRSIpIHx8CisJCQkgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiQUREfFNFVCIsICJTRVFVRU5DRSIpICYmCisJCQkgIGVuZHNfd2l0aChwcmV2 X3dkLCAnLCcpKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2Zfc2VxdWVuY2VzKTsKIAkvKgogCSAqICJBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4g U0VUIFRBQkxFIDxuYW1lPiBXSEVSRSAoIiAtIGNvbXBsZXRlIHdpdGgKIAkgKiB0YWJsZSBh dHRyaWJ1dGVzCkBAIC0xODM4LDExICsxODQyLDExIEBAIHBzcWxfY29tcGxldGlvbihjb25z dCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCUNPTVBMRVRFX1dJVEgoIiwi KTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gRFJPUCAqLwogCWVsc2UgaWYgKE1h dGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJEUk9QIikpCi0JCUNP TVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJCUNPTVBM RVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIkFMTCBTRVFVRU5DRVMgSU4gU0NI RU1BIiwgIlRBQkxFIiwgIlNFUVVFTkNFIik7CiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5h bWU+IFNFVCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwg TWF0Y2hBbnksICJTRVQiKSkKLQkJQ09NUExFVEVfV0lUSCgiKCIsICJBTEwgVEFCTEVTIElO IFNDSEVNQSIsICJUQUJMRSIpOwotCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJBRER8RFJPUHxTRVQiLCAiQUxMIiwgIlRBQkxFUyIsICJJ TiIsICJTQ0hFTUEiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIsICJBTEwgVEFCTEVTIElOIFND SEVNQSIsICJBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSIsICJUQUJMRSIsICJTRVFVRU5DRSIp OworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnks ICJBRER8RFJPUHxTRVQiLCAiQUxMIiwgIlRBQkxFU3xTRVFVRU5DRVMiLCAiSU4iLCAiU0NI RU1BIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUllfUExVUyhRdWVyeV9mb3JfbGlzdF9vZl9z Y2hlbWFzCiAJCQkJCQkJCSAiIEFORCBuc3BuYW1lIE5PVCBMSUtFIEUncGdcXFxcXyUlJyIs CiAJCQkJCQkJCSAiQ1VSUkVOVF9TQ0hFTUEiKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CmluZGV4IGQ4ZTg3MTVlZDFjLi42OTliZDBhYTNlMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0CkBAIC0xMTU0MCw2ICsxMTU0MCwxMSBAQAogICBwcm92b2xhdGlsZSA9PiAncycs IHByb3JldHR5cGUgPT4gJ29pZCcsIHByb2FyZ3R5cGVzID0+ICd0ZXh0JywKICAgcHJvYWxs YXJndHlwZXMgPT4gJ3t0ZXh0LG9pZH0nLCBwcm9hcmdtb2RlcyA9PiAne2ksb30nLAogICBw cm9hcmduYW1lcyA9PiAne3B1Ym5hbWUscmVsaWR9JywgcHJvc3JjID0+ICdwZ19nZXRfcHVi bGljYXRpb25fdGFibGVzJyB9LAoreyBvaWQgPT4gJzgwMDAnLCBkZXNjciA9PiAnZ2V0IE9J RHMgb2Ygc2VxdWVuY2VzIGluIGEgcHVibGljYXRpb24nLAorICBwcm9uYW1lID0+ICdwZ19n ZXRfcHVibGljYXRpb25fc2VxdWVuY2VzJywgcHJvcm93cyA9PiAnMTAwMCcsIHByb3JldHNl dCA9PiAndCcsCisgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnb2lkJywg cHJvYXJndHlwZXMgPT4gJ3RleHQnLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne3RleHQsb2lk fScsIHByb2FyZ21vZGVzID0+ICd7aSxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7cHVibmFt ZSxyZWxpZH0nLCBwcm9zcmMgPT4gJ3BnX2dldF9wdWJsaWNhdGlvbl9zZXF1ZW5jZXMnIH0s CiB7IG9pZCA9PiAnNjEyMScsCiAgIGRlc2NyID0+ICdyZXR1cm5zIHdoZXRoZXIgYSByZWxh dGlvbiBjYW4gYmUgcGFydCBvZiBhIHB1YmxpY2F0aW9uJywKICAgcHJvbmFtZSA9PiAncGdf cmVsYXRpb25faXNfcHVibGlzaGFibGUnLCBwcm92b2xhdGlsZSA9PiAncycsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggZmU3NzNjZjliN2QuLjk3ZjI2MjA4 ZTFkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCkBAIC00MCw2ICs0 MCwxMiBAQCBDQVRBTE9HKHBnX3B1YmxpY2F0aW9uLDYxMDQsUHVibGljYXRpb25SZWxhdGlv bklkKQogCSAqLwogCWJvb2wJCXB1YmFsbHRhYmxlczsKIAorCS8qCisJICogaW5kaWNhdGVz IHRoYXQgdGhpcyBpcyBzcGVjaWFsIHB1YmxpY2F0aW9uIHdoaWNoIHNob3VsZCBlbmNvbXBh c3MgYWxsCisJICogc2VxdWVuY2VzIGluIHRoZSBkYXRhYmFzZSAoZXhjZXB0IGZvciB0aGUg dW5sb2dnZWQgYW5kIHRlbXAgb25lcykKKwkgKi8KKwlib29sCQlwdWJhbGxzZXF1ZW5jZXM7 CisKIAkvKiB0cnVlIGlmIGluc2VydHMgYXJlIHB1Ymxpc2hlZCAqLwogCWJvb2wJCXB1Ymlu c2VydDsKIApAQCAtNTIsNiArNTgsOSBAQCBDQVRBTE9HKHBnX3B1YmxpY2F0aW9uLDYxMDQs UHVibGljYXRpb25SZWxhdGlvbklkKQogCS8qIHRydWUgaWYgdHJ1bmNhdGVzIGFyZSBwdWJs aXNoZWQgKi8KIAlib29sCQlwdWJ0cnVuY2F0ZTsKIAorCS8qIHRydWUgaWYgc2VxdWVuY2Vz IGFyZSBwdWJsaXNoZWQgKi8KKwlib29sCQlwdWJzZXF1ZW5jZTsKKwogCS8qIHRydWUgaWYg cGFydGl0aW9uIGNoYW5nZXMgYXJlIHB1Ymxpc2hlZCB1c2luZyByb290IHNjaGVtYSAqLwog CWJvb2wJCXB1YnZpYXJvb3Q7CiB9IEZvcm1EYXRhX3BnX3B1YmxpY2F0aW9uOwpAQCAtNzIs NiArODEsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvbkFjdGlvbnMKIAlib29sCQlw dWJ1cGRhdGU7CiAJYm9vbAkJcHViZGVsZXRlOwogCWJvb2wJCXB1YnRydW5jYXRlOworCWJv b2wJCXB1YnNlcXVlbmNlOwogfSBQdWJsaWNhdGlvbkFjdGlvbnM7CiAKIHR5cGVkZWYgc3Ry dWN0IFB1YmxpY2F0aW9uRGVzYwpAQCAtOTIsNiArMTAyLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg UHVibGljYXRpb24KIAlPaWQJCQlvaWQ7CiAJY2hhcgkgICAqbmFtZTsKIAlib29sCQlhbGx0 YWJsZXM7CisJYm9vbAkJYWxsc2VxdWVuY2VzOwogCWJvb2wJCXB1YnZpYXJvb3Q7CiAJUHVi bGljYXRpb25BY3Rpb25zIHB1YmFjdGlvbnM7CiB9IFB1YmxpY2F0aW9uOwpAQCAtMTIyLDE0 ICsxMzMsMTUgQEAgdHlwZWRlZiBlbnVtIFB1YmxpY2F0aW9uUGFydE9wdAogCVBVQkxJQ0FU SU9OX1BBUlRfQUxMLAogfSBQdWJsaWNhdGlvblBhcnRPcHQ7CiAKLWV4dGVybiBMaXN0ICpH ZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBw dWJfcGFydG9wdCk7CitleHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lk IHB1YmlkLCBjaGFyIG9iamVjdFR5cGUsCisJCQkJCQkJCQkgUHVibGljYXRpb25QYXJ0T3B0 IHB1Yl9wYXJ0b3B0KTsKIGV4dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnMo dm9pZCk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMo Ym9vbCBwdWJ2aWFyb290KTsKLWV4dGVybiBMaXN0ICpHZXRQdWJsaWNhdGlvblNjaGVtYXMo T2lkIHB1YmlkKTsKLWV4dGVybiBMaXN0ICpHZXRTY2hlbWFQdWJsaWNhdGlvbnMoT2lkIHNj aGVtYWlkKTsKLWV4dGVybiBMaXN0ICpHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhP aWQgc2NoZW1haWQsCitleHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25TY2hlbWFzKE9pZCBw dWJpZCwgY2hhciBvYmplY3RUeXBlKTsKK2V4dGVybiBMaXN0ICpHZXRTY2hlbWFQdWJsaWNh dGlvbnMoT2lkIHNjaGVtYWlkLCBjaGFyIG9iamVjdFR5cGUpOworZXh0ZXJuIExpc3QgKkdl dFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBzY2hlbWFpZCwgY2hhciBvYmplY3RU eXBlLAogCQkJCQkJCQkJCSAgIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCk7Ci1l eHRlcm4gTGlzdCAqR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1Ym9p ZCwKK2V4dGVybiBMaXN0ICpHZXRBbGxTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQg cHVib2lkLCBjaGFyIG9iamVjdFR5cGUsCiAJCQkJCQkJCQkJCSAgUHVibGljYXRpb25QYXJ0 T3B0IHB1Yl9wYXJ0b3B0KTsKIGV4dGVybiBMaXN0ICpHZXRQdWJQYXJ0aXRpb25PcHRpb25S ZWxhdGlvbnMoTGlzdCAqcmVzdWx0LAogCQkJCQkJCQkJCQlQdWJsaWNhdGlvblBhcnRPcHQg cHViX3BhcnRvcHQsCkBAIC0xMzcsMTEgKzE0OSwxNSBAQCBleHRlcm4gTGlzdCAqR2V0UHVi UGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwKIGV4dGVybiBPaWQJR2V0 VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3Rv cnMsCiAJCQkJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwpOwogCitleHRlcm4gTGlzdCAq R2V0QWxsU2VxdWVuY2VzUHVibGljYXRpb25zKHZvaWQpOworZXh0ZXJuIExpc3QgKkdldEFs bFNlcXVlbmNlc1B1YmxpY2F0aW9uUmVsYXRpb25zKHZvaWQpOworCiBleHRlcm4gYm9vbCBp c19wdWJsaXNoYWJsZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJuIGJvb2wgaXNf c2NoZW1hX3B1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gT2JqZWN0QWRkcmVzcyBw dWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJlbEluZm8g KnByaSwKIAkJCQkJCQkJCQkJICBib29sIGlmX25vdF9leGlzdHMpOwogZXh0ZXJuIE9iamVj dEFkZHJlc3MgcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFp ZCwKKwkJCQkJCQkJCQkJY2hhciBvYmplY3RUeXBlLAogCQkJCQkJCQkJCQlib29sIGlmX25v dF9leGlzdHMpOwogCiBleHRlcm4gT2lkCWdldF9wdWJsaWNhdGlvbl9vaWQoY29uc3QgY2hh ciAqcHVibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oCmluZGV4IGU0MzA2ZGEwMmU3Li43MzQw YTFlYzY0NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlv bl9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u X25hbWVzcGFjZS5oCkBAIC0zMiw2ICszMiw3IEBAIENBVEFMT0cocGdfcHVibGljYXRpb25f bmFtZXNwYWNlLDg5MDEsUHVibGljYXRpb25OYW1lc3BhY2VSZWxhdGlvbklkKQogCU9pZAkJ CW9pZDsJCQkvKiBvaWQgKi8KIAlPaWQJCQlwbnB1YmlkIEJLSV9MT09LVVAocGdfcHVibGlj YXRpb24pOyAvKiBPaWQgb2YgdGhlIHB1YmxpY2F0aW9uICovCiAJT2lkCQkJcG5uc3BpZCBC S0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7CS8qIE9pZCBvZiB0aGUgc2NoZW1hICovCisJY2hh cgkJcG50eXBlOwkJCQkJCQkJLyogb2JqZWN0IHR5cGUgdG8gaW5jbHVkZSAqLwogfSBGb3Jt RGF0YV9wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2U7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0K QEAgLTQyLDYgKzQzLDEzIEBAIENBVEFMT0cocGdfcHVibGljYXRpb25fbmFtZXNwYWNlLDg5 MDEsUHVibGljYXRpb25OYW1lc3BhY2VSZWxhdGlvbklkKQogdHlwZWRlZiBGb3JtRGF0YV9w Z19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgKkZvcm1fcGdfcHVibGljYXRpb25fbmFtZXNwYWNl OwogCiBERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX3B1YmxpY2F0aW9uX25hbWVzcGFj ZV9vaWRfaW5kZXgsIDg5MDIsIFB1YmxpY2F0aW9uTmFtZXNwYWNlT2JqZWN0SW5kZXhJZCwg b24gcGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHVzaW5nIGJ0cmVlKG9pZCBvaWRfb3BzKSk7 Ci1ERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2VfcG5uc3Bp ZF9wbnB1YmlkX2luZGV4LCA4OTAzLCBQdWJsaWNhdGlvbk5hbWVzcGFjZVBubnNwaWRQbnB1 YmlkSW5kZXhJZCwgb24gcGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHVzaW5nIGJ0cmVlKHBu bnNwaWQgb2lkX29wcywgcG5wdWJpZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRF WChwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2VfcG5uc3BpZF9wbnB1YmlkX3BudHlwZV9pbmRl eCwgODkwMywgUHVibGljYXRpb25OYW1lc3BhY2VQbm5zcGlkUG5wdWJpZFBudHlwZUluZGV4 SWQsIG9uIHBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSB1c2luZyBidHJlZShwbm5zcGlkIG9p ZF9vcHMsIHBucHViaWQgb2lkX29wcywgcG50eXBlIGNoYXJfb3BzKSk7CisKKy8qIG9iamVj dCB0eXBlIHRvIGluY2x1ZGUgZnJvbSBhIHNjaGVtYSwgbWFwcyB0byByZWxraW5kICovCisj ZGVmaW5lCQlQVUJfT0JKVFlQRV9UQUJMRQkJCSd0JwkvKiB0YWJsZSAocmVndWxhciBvciBw YXJ0aXRpb25lZCkgKi8KKyNkZWZpbmUJCVBVQl9PQkpUWVBFX1NFUVVFTkNFCQkncycJLyog c2VxdWVuY2Ugb2JqZWN0ICovCisjZGVmaW5lCQlQVUJfT0JKVFlQRV9VTlNVUFBPUlRFRAkJ J3UnCS8qIHVzZWQgZm9yIG5vbi1yZXBsaWNhdGVkIHR5cGVzICovCisKK2V4dGVybiBjaGFy CXB1Yl9nZXRfb2JqZWN0X3R5cGVfZm9yX3JlbGtpbmQoY2hhciByZWxraW5kKTsKIAogI2Vu ZGlmCQkJCQkJCS8qIFBHX1BVQkxJQ0FUSU9OX05BTUVTUEFDRV9IICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXF1ZW5jZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvc2VxdWVuY2UuaAppbmRleCA5ZmVjYzQxOTU0ZS4uNWJhYjkwZGI4ZTAgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3NlcXVlbmNlLmgKKysrIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2VxdWVuY2UuaApAQCAtNjAsNiArNjAsNyBAQCBleHRlcm4gT2JqZWN0QWRk cmVzcyBEZWZpbmVTZXF1ZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlcVN0bXQg KnN0bXQpOwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgQWx0ZXJTZXF1ZW5jZShQYXJzZVN0YXRl ICpwc3RhdGUsIEFsdGVyU2VxU3RtdCAqc3RtdCk7CiBleHRlcm4gdm9pZCBEZWxldGVTZXF1 ZW5jZVR1cGxlKE9pZCByZWxpZCk7CiBleHRlcm4gdm9pZCBSZXNldFNlcXVlbmNlKE9pZCBz ZXFfcmVsaWQpOworZXh0ZXJuIHZvaWQgU2V0U2VxdWVuY2UoT2lkIHNlcV9yZWxpZCwgYm9v bCB0cmFuc2FjdGlvbmFsLCBpbnQ2NCBsYXN0X3ZhbHVlLCBpbnQ2NCBsb2dfY250LCBib29s IGlzX2NhbGxlZCk7CiBleHRlcm4gdm9pZCBSZXNldFNlcXVlbmNlQ2FjaGVzKHZvaWQpOwog CiBleHRlcm4gdm9pZCBzZXFfcmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJwdHIpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDJmNjE4Y2IyMjkyLi5jYjFmY2MwZWUzMSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzY2NSw2ICszNjY1LDEwIEBAIHR5cGVkZWYgZW51 bSBQdWJsaWNhdGlvbk9ialNwZWNUeXBlCiAJUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1ND SEVNQSwJLyogQWxsIHRhYmxlcyBpbiBzY2hlbWEgKi8KIAlQVUJMSUNBVElPTk9CSl9UQUJM RVNfSU5fQ1VSX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBmaXJzdCBlbGVtZW50IG9mCiAJ CQkJCQkJCQkJCSAqIHNlYXJjaF9wYXRoICovCisJUFVCTElDQVRJT05PQkpfU0VRVUVOQ0Us CQkvKiBTZXF1ZW5jZSB0eXBlICovCisJUFVCTElDQVRJT05PQkpfU0VRVUVOQ0VTX0lOX1ND SEVNQSwgLyogU2VxdWVuY2VzIGluIHNjaGVtYSB0eXBlICovCisJUFVCTElDQVRJT05PQkpf U0VRVUVOQ0VTX0lOX0NVUl9TQ0hFTUEsIC8qIEdldCB0aGUgZmlyc3QgZWxlbWVudCBvZgor CQkJCQkJCQkJCQkgKiBzZWFyY2hfcGF0aCAqLwogCVBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVB VElPTiAvKiBDb250aW51YXRpb24gb2YgcHJldmlvdXMgdHlwZSAqLwogfSBQdWJsaWNhdGlv bk9ialNwZWNUeXBlOwogCkBAIC0zNjgzLDcgKzM2ODcsNyBAQCB0eXBlZGVmIHN0cnVjdCBD cmVhdGVQdWJsaWNhdGlvblN0bXQKIAljaGFyCSAgICpwdWJuYW1lOwkJLyogTmFtZSBvZiB0 aGUgcHVibGljYXRpb24gKi8KIAlMaXN0CSAgICpvcHRpb25zOwkJLyogTGlzdCBvZiBEZWZF bGVtIG5vZGVzICovCiAJTGlzdAkgICAqcHVib2JqZWN0czsJCS8qIE9wdGlvbmFsIGxpc3Qg b2YgcHVibGljYXRpb24gb2JqZWN0cyAqLwotCWJvb2wJCWZvcl9hbGxfdGFibGVzOyAvKiBT cGVjaWFsIHB1YmxpY2F0aW9uIGZvciBhbGwgdGFibGVzIGluIGRiICovCisJTGlzdAkgICAq Zm9yX2FsbF9vYmplY3RzOyAvKiBTcGVjaWFsIHB1YmxpY2F0aW9uIGZvciBhbGwgb2JqZWN0 cyBpbiBkYiAqLwogfSBDcmVhdGVQdWJsaWNhdGlvblN0bXQ7CiAKIHR5cGVkZWYgZW51bSBB bHRlclB1YmxpY2F0aW9uQWN0aW9uCkBAIC0zNzA2LDcgKzM3MTAsNyBAQCB0eXBlZGVmIHN0 cnVjdCBBbHRlclB1YmxpY2F0aW9uU3RtdAogCSAqIG9iamVjdHMuCiAJICovCiAJTGlzdAkg ICAqcHVib2JqZWN0czsJCS8qIE9wdGlvbmFsIGxpc3Qgb2YgcHVibGljYXRpb24gb2JqZWN0 cyAqLwotCWJvb2wJCWZvcl9hbGxfdGFibGVzOyAvKiBTcGVjaWFsIHB1YmxpY2F0aW9uIGZv ciBhbGwgdGFibGVzIGluIGRiICovCisJTGlzdAkgICAqZm9yX2FsbF9vYmplY3RzOyAvKiBT cGVjaWFsIHB1YmxpY2F0aW9uIGZvciBhbGwgb2JqZWN0cyBpbiBkYiAqLwogCUFsdGVyUHVi bGljYXRpb25BY3Rpb24gYWN0aW9uOwkvKiBXaGF0IGFjdGlvbiB0byBwZXJmb3JtIHdpdGgg dGhlIGdpdmVuCiAJCQkJCQkJCQkgKiBvYmplY3RzICovCiB9IEFsdGVyUHVibGljYXRpb25T dG10OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHByb3Rv LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2FscHJvdG8uaAppbmRleCA0ZDJj ODgxNjQ0YS4uNDE1NzU3ZDhhMmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL2xvZ2ljYWxwcm90by5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2lj YWxwcm90by5oCkBAIC02MSw2ICs2MSw3IEBAIHR5cGVkZWYgZW51bSBMb2dpY2FsUmVwTXNn VHlwZQogCUxPR0lDQUxfUkVQX01TR19SRUxBVElPTiA9ICdSJywKIAlMT0dJQ0FMX1JFUF9N U0dfVFlQRSA9ICdZJywKIAlMT0dJQ0FMX1JFUF9NU0dfTUVTU0FHRSA9ICdNJywKKwlMT0dJ Q0FMX1JFUF9NU0dfU0VRVUVOQ0UgPSAnWCcsCS8qIEZJWE1FIGNoYW5nZSAqLwogCUxPR0lD QUxfUkVQX01TR19CRUdJTl9QUkVQQVJFID0gJ2InLAogCUxPR0lDQUxfUkVQX01TR19QUkVQ QVJFID0gJ1AnLAogCUxPR0lDQUxfUkVQX01TR19DT01NSVRfUFJFUEFSRUQgPSAnSycsCkBA IC0xMTgsNiArMTE5LDE4IEBAIHR5cGVkZWYgc3RydWN0IExvZ2ljYWxSZXBUeXAKIAljaGFy CSAgICp0eXBuYW1lOwkJLyogbmFtZSBvZiB0aGUgcmVtb3RlIHR5cGUgKi8KIH0gTG9naWNh bFJlcFR5cDsKIAorLyogU2VxdWVuY2UgaW5mbyAqLwordHlwZWRlZiBzdHJ1Y3QgTG9naWNh bFJlcFNlcXVlbmNlCit7CisJT2lkCQkJcmVtb3RlaWQ7CQkvKiB1bmlxdWUgaWQgb2YgdGhl IHJlbW90ZSBzZXF1ZW5jZSAqLworCWNoYXIJICAgKm5zcG5hbWU7CQkvKiBzY2hlbWEgbmFt ZSBvZiByZW1vdGUgc2VxdWVuY2UgKi8KKwljaGFyCSAgICpzZXFuYW1lOwkJLyogbmFtZSBv ZiB0aGUgcmVtb3RlIHNlcXVlbmNlICovCisJYm9vbAkJdHJhbnNhY3Rpb25hbDsKKwlpbnQ2 NAkJbGFzdF92YWx1ZTsKKwlpbnQ2NAkJbG9nX2NudDsKKwlib29sCQlpc19jYWxsZWQ7Cit9 IExvZ2ljYWxSZXBTZXF1ZW5jZTsKKwogLyogVHJhbnNhY3Rpb24gaW5mbyAqLwogdHlwZWRl ZiBzdHJ1Y3QgTG9naWNhbFJlcEJlZ2luRGF0YQogewpAQCAtMjMwLDYgKzI0MywxMiBAQCBl eHRlcm4gTGlzdCAqbG9naWNhbHJlcF9yZWFkX3RydW5jYXRlKFN0cmluZ0luZm8gaW4sCiAJ CQkJCQkJCQkgIGJvb2wgKmNhc2NhZGUsIGJvb2wgKnJlc3RhcnRfc2Vxcyk7CiBleHRlcm4g dm9pZCBsb2dpY2FscmVwX3dyaXRlX21lc3NhZ2UoU3RyaW5nSW5mbyBvdXQsIFRyYW5zYWN0 aW9uSWQgeGlkLCBYTG9nUmVjUHRyIGxzbiwKIAkJCQkJCQkJCSBib29sIHRyYW5zYWN0aW9u YWwsIGNvbnN0IGNoYXIgKnByZWZpeCwgU2l6ZSBzeiwgY29uc3QgY2hhciAqbWVzc2FnZSk7 CitleHRlcm4gdm9pZCBsb2dpY2FscmVwX3dyaXRlX3NlcXVlbmNlKFN0cmluZ0luZm8gb3V0 LCBSZWxhdGlvbiByZWwsCisJCQkJCQkJCQkgIFRyYW5zYWN0aW9uSWQgeGlkLCBYTG9nUmVj UHRyIGxzbiwKKwkJCQkJCQkJCSAgYm9vbCB0cmFuc2FjdGlvbmFsLAorCQkJCQkJCQkJICBp bnQ2NCBsYXN0X3ZhbHVlLCBpbnQ2NCBsb2dfY250LAorCQkJCQkJCQkJICBib29sIGlzX2Nh bGxlZCk7CitleHRlcm4gdm9pZCBsb2dpY2FscmVwX3JlYWRfc2VxdWVuY2UoU3RyaW5nSW5m byBpbiwgTG9naWNhbFJlcFNlcXVlbmNlICpzZXFkYXRhKTsKIGV4dGVybiB2b2lkIGxvZ2lj YWxyZXBfd3JpdGVfcmVsKFN0cmluZ0luZm8gb3V0LCBUcmFuc2FjdGlvbklkIHhpZCwKIAkJ CQkJCQkJIFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gTG9naWNhbFJlcFJlbGF0aW9uICpsb2dp Y2FscmVwX3JlYWRfcmVsKFN0cmluZ0luZm8gaW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vcGdvdXRwdXQuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Bn b3V0cHV0LmgKaW5kZXggZWFmZWRkNjEwYTUuLmY0ZTlmMzVkMDlkIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9wZ291dHB1dC5oCisrKyBiL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Bnb3V0cHV0LmgKQEAgLTI5LDYgKzI5LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg UEdPdXRwdXREYXRhCiAJYm9vbAkJc3RyZWFtaW5nOwogCWJvb2wJCW1lc3NhZ2VzOwogCWJv b2wJCXR3b19waGFzZTsKKwlib29sCQlzZXF1ZW5jZXM7CiB9IFBHT3V0cHV0RGF0YTsKIAog I2VuZGlmCQkJCQkJCS8qIFBHT1VUUFVUX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2FkZHJlc3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKaW5kZXggNDExN2ZjMjdjOWEuLmM5NWQ0NGIz ZGI5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRy ZXNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNz Lm91dApAQCAtNDYsNiArNDYsNyBAQCBDUkVBVEUgVFJBTlNGT1JNIEZPUiBpbnQgTEFOR1VB R0UgU1FMICgKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQ VUJMSUNBVElPTiBhZGRyX3B1YiBGT1IgVEFCTEUgYWRkcl9uc3AuZ2VudGFibGU7CiBDUkVB VEUgUFVCTElDQVRJT04gYWRkcl9wdWJfc2NoZW1hIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVN QSBhZGRyX25zcDsKK0NSRUFURSBQVUJMSUNBVElPTiBhZGRyX3B1Yl9zY2hlbWEyIEZPUiBB TEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBhZGRyX25zcDsKIFJFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CiBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfYWRkcl9zdWIgQ09OTkVDVElP TiAnJyBQVUJMSUNBVElPTiBiYXIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBzbG90X25hbWUg PSBOT05FKTsKIFdBUk5JTkc6ICB0YWJsZXMgd2VyZSBub3Qgc3Vic2NyaWJlZCwgeW91IHdp bGwgaGF2ZSB0byBydW4gQUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFBVQkxJQ0FU SU9OIHRvIHN1YnNjcmliZSB0aGUgdGFibGVzCkBAIC00MjgsNyArNDI5LDggQEAgV0lUSCBv YmplY3RzICh0eXBlLCBuYW1lLCBhcmdzKSBBUyAoVkFMVUVTCiAJCQkJKCd0cmFuc2Zvcm0n LCAne2ludH0nLCAne3NxbH0nKSwKIAkJCQkoJ2FjY2VzcyBtZXRob2QnLCAne2J0cmVlfScs ICd7fScpLAogCQkJCSgncHVibGljYXRpb24nLCAne2FkZHJfcHVifScsICd7fScpLAotCQkJ CSgncHVibGljYXRpb24gbmFtZXNwYWNlJywgJ3thZGRyX25zcH0nLCAne2FkZHJfcHViX3Nj aGVtYX0nKSwKKwkJCQkoJ3B1YmxpY2F0aW9uIG5hbWVzcGFjZScsICd7YWRkcl9uc3B9Jywg J3thZGRyX3B1Yl9zY2hlbWEsdH0nKSwKKwkJCQkoJ3B1YmxpY2F0aW9uIG5hbWVzcGFjZScs ICd7YWRkcl9uc3B9JywgJ3thZGRyX3B1Yl9zY2hlbWEyLHN9JyksCiAJCQkJKCdwdWJsaWNh dGlvbiByZWxhdGlvbicsICd7YWRkcl9uc3AsIGdlbnRhYmxlfScsICd7YWRkcl9wdWJ9Jyks CiAJCQkJKCdzdWJzY3JpcHRpb24nLCAne3JlZ3Jlc3NfYWRkcl9zdWJ9JywgJ3t9JyksCiAJ CQkJKCdzdGF0aXN0aWNzIG9iamVjdCcsICd7YWRkcl9uc3AsIGdlbnRhYmxlX3N0YXR9Jywg J3t9JykKQEAgLTQ5Miw4ICs0OTQsOSBAQCBTRUxFQ1QgKHBnX2lkZW50aWZ5X29iamVjdChh ZGRyMS5jbGFzc2lkLCBhZGRyMS5vYmppZCwgYWRkcjEub2Jqc3ViaWQpKS4qLAogIHN1YnNj cmlwdGlvbiAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgcmVncmVzc19hZGRyX3N1YiAg fCByZWdyZXNzX2FkZHJfc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHQKICBwdWJsaWNhdGlvbiAgICAgICAgICAgICAgIHwgICAg ICAgICAgICB8IGFkZHJfcHViICAgICAgICAgIHwgYWRkcl9wdWIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0CiAgcHVi bGljYXRpb24gcmVsYXRpb24gICAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICB8IGFkZHJfbnNwLmdlbnRhYmxlIGluIHB1YmxpY2F0aW9uIGFkZHJfcHViICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgdAotIHB1YmxpY2F0aW9uIG5hbWVzcGFjZSAgICAgfCAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCBhZGRyX25zcCBpbiBwdWJsaWNhdGlv biBhZGRyX3B1Yl9zY2hlbWEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKLSg1 MCByb3dzKQorIHB1YmxpY2F0aW9uIG5hbWVzcGFjZSAgICAgfCAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgfCBhZGRyX25zcCBpbiBwdWJsaWNhdGlvbiBhZGRyX3B1Yl9zY2hl bWEgdHlwZSB0ICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyBwdWJsaWNhdGlvbiBuYW1l c3BhY2UgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3Ag aW4gcHVibGljYXRpb24gYWRkcl9wdWJfc2NoZW1hMiB0eXBlIHMgICAgICAgICAgICAgICAg ICAgICAgfCB0CisoNTEgcm93cykKIAogLS0tCiAtLS0gQ2xlYW51cCByZXNvdXJjZXMKQEAg LTUwNiw2ICs1MDksNyBAQCBkcm9wIGNhc2NhZGVzIHRvIHNlcnZlciBpbnRlZ2VyCiBkcm9w IGNhc2NhZGVzIHRvIHVzZXIgbWFwcGluZyBmb3IgcmVncmVzc19hZGRyX3VzZXIgb24gc2Vy dmVyIGludGVnZXIKIERST1AgUFVCTElDQVRJT04gYWRkcl9wdWI7CiBEUk9QIFBVQkxJQ0FU SU9OIGFkZHJfcHViX3NjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gYWRkcl9wdWJfc2NoZW1h MjsKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfYWRkcl9zdWI7CiBEUk9QIFNDSEVNQSBh ZGRyX25zcCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAxNCBvdGhlciBv YmplY3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0 aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0Cmlu ZGV4IDRlMTkxYzEyMGFjLi41ODIxNGVlNzQyZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTMwLDIwICszMCwyMCBAQCBFUlJPUjogIGNv bmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zCiBMSU5FIDE6IC4uLnViX3h4eCBXSVRI IChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9ICd0cnVlJywgcHVibGlzaF92aS4uLgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIFxkUnAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHB1YmxpY2F0aW9ucwotICAgICAgICBOYW1lICAgICAgICB8ICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRl cyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gdGVzdHBpYl9p bnNfdHJ1bmN0IHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQg ICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IGYKLSB0ZXN0cHViX2Rl ZmF1bHQgICAgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAg ICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBwdWJsaWNhdGlvbnMKKyAgICAgICAgTmFtZSAgICAgICAgfCAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgdGVzdHBpYl9pbnNfdHJ1bmN0IHwg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAg fCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICAg fCBmCisgdGVzdHB1Yl9kZWZhdWx0ICAgIHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg ZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgIHwgdCAgICAgICB8IGYgICAg ICAgfCBmICAgICAgICAgfCBmICAgICAgICAgfCBmCiAoMiByb3dzKQogCi1BTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2RlZmF1bHQgU0VUIChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRl LCBkZWxldGUnKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGVmYXVsdCBTRVQgKHB1 Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgc2VxdWVuY2UnKTsKIFxkUnAKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHB1 YmxpY2F0aW9ucwotICAgICAgICBOYW1lICAgICAgICB8ICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gdGVzdHBpYl9pbnNfdHJ1bmN0IHwgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwg ZiAgICAgICB8IGYgICAgICAgICB8IGYKLSB0ZXN0cHViX2RlZmF1bHQgICAgfCByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBwdWJsaWNhdGlvbnMKKyAg ICAgICAgTmFtZSAgICAgICAgfCAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tCisgdGVzdHBpYl9pbnNfdHJ1bmN0IHwgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAg ICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICAgfCBmCisgdGVzdHB1Yl9kZWZh dWx0ICAgIHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgfCB0 ICAgICAgICAgfCBmCiAoMiByb3dzKQogCiAtLS0gYWRkaW5nIHRhYmxlcwpAQCAtNjEsNiAr NjEsOSBAQCBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwyIChpZCBzZXJpYWwgcHJpbWFyeSBr ZXksIGRhdGEgdGV4dCk7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxl cyBBREQgVEFCTEUgdGVzdHB1Yl90YmwyOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1 Yl9mb3JhbGx0YWJsZXMiIGlzIGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMKIERFVEFJTDog IFRhYmxlcyBjYW5ub3QgYmUgYWRkZWQgdG8gb3IgZHJvcHBlZCBmcm9tIEZPUiBBTEwgVEFC TEVTIHB1YmxpY2F0aW9ucy4KKy0tIGZhaWwgLSBjYW4ndCBhZGQgYSB0YWJsZSB1c2luZyBB REQgU0VRVUVOQ0UgY29tbWFuZAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0 YWJsZXMgQUREIFNFUVVFTkNFIHRlc3RwdWJfdGJsMjsKK0VSUk9SOiAgb2JqZWN0IHR5cGUg bWlzbWF0Y2gKIC0tIGZhaWwgLSBjYW4ndCBkcm9wIGZyb20gYWxsIHRhYmxlcyBwdWJsaWNh dGlvbgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMgRFJPUCBUQUJM RSB0ZXN0cHViX3RibDI7CiBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcmFsbHRh YmxlcyIgaXMgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUwpAQCAtODcsMTAgKzkwLDEwIEBA IFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiAtLSBzaG91bGQgYmUgYWJsZSB0byBhZGQg c2NoZW1hIHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2ZvcnRhYmxlIEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKIFxk UnArIHRlc3RwdWJfZm9ydGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHVibGljYXRpb24gdGVzdHB1Yl9mb3J0YWJsZQotICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ci0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxl CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5j ZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5j ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJs aWMudGVzdHB1Yl90YmwxIgogVGFibGVzIGZyb20gc2NoZW1hczoKQEAgLTk5LDIwICsxMDIs MjAgQEAgVGFibGVzIGZyb20gc2NoZW1hczoKIC0tIHNob3VsZCBiZSBhYmxlIHRvIGRyb3Ag c2NoZW1hIGZyb20gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZm9ydGFibGUgRFJPUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsK IFxkUnArIHRlc3RwdWJfZm9ydGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3J0YWJsZQotICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRh YmxlCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1 ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1 ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJw dWJsaWMudGVzdHB1Yl90YmwxIgogCiAtLSBzaG91bGQgYmUgYWJsZSB0byBzZXQgc2NoZW1h IHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2ZvcnRhYmxlIFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKIFxkUnArIHRl c3RwdWJfZm9ydGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1Yl9mb3J0YWJsZQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBW aWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlCisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBW aWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAg ICAicHViX3Rlc3QiCiAKQEAgLTEzNCwxMCArMTM3LDEwIEBAIEVSUk9SOiAgcmVsYXRpb24g InRlc3RwdWJfbm9wayIgaXMgbm90IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uCiAtLSBzaG91 bGQgYmUgYWJsZSB0byBzZXQgdGFibGUgdG8gc2NoZW1hIHB1YmxpY2F0aW9uCiBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBTRVQgVEFCTEUgcHViX3Rlc3QudGVzdHB1 Yl9ub3BrOwogXGRScCsgdGVzdHB1Yl9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnNjaGVtYQotICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVz OgogICAgICJwdWJfdGVzdC50ZXN0cHViX25vcGsiCiAKQEAgLTE1OSwxMCArMTYyLDEwIEBA IFB1YmxpY2F0aW9uczoKICAgICAidGVzdHB1Yl9mb3JhbGx0YWJsZXMiCiAKIFxkUnArIHRl c3RwdWJfZm9yYWxsdGFibGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlcwotICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ci0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JhbGx0YWJs ZXMKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVl bmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVl bmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICAgfCBmCiAoMSByb3cpCiAKIERST1Ag VEFCTEUgdGVzdHB1Yl90YmwyOwpAQCAtMTc0LDI0ICsxNzcsNTI3IEBAIENSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1Yl90YmwzOwogQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNs aWVudF9taW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViMwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjMKLSAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWIzCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBz ZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBT ZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzOgogICAg ICJwdWJsaWMudGVzdHB1Yl90YmwzIgogICAgICJwdWJsaWMudGVzdHB1Yl90YmwzYSIKIAog XGRScCsgdGVzdHB1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWI0Ci0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRh YmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSBy b290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNAorICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3Qg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfdGJs MyIKIAogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDMsIHRlc3RwdWJfdGJsM2E7CiBEUk9QIFBV QkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNDsKKy0tLSBhZGRpbmcgc2VxdWVuY2VzCitD UkVBVEUgU0VRVUVOQ0UgdGVzdHB1Yl9zZXEwOworQ1JFQVRFIFNFUVVFTkNFIHB1Yl90ZXN0 LnRlc3RwdWJfc2VxMTsKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyBGT1IgQUxMIFNFUVVF TkNFUyBXSVRIIChwdWJsaXNoID0gJ3NlcXVlbmNlJyk7CitSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgU0VU IChwdWJsaXNoID0gJ2luc2VydCwgc2VxdWVuY2UnKTsKK0NSRUFURSBTRVFVRU5DRSB0ZXN0 cHViX3NlcTI7CistLSBmYWlsIC0gY2FuJ3QgYWRkIHRvIGZvciBhbGwgc2VxdWVuY2VzIHB1 YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyBB REQgU0VRVUVOQ0UgdGVzdHB1Yl9zZXEyOworRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1 Yl9mb3JhbGxzZXF1ZW5jZXMiIGlzIGRlZmluZWQgYXMgRk9SIEFMTCBTRVFVRU5DRVMKK0RF VEFJTDogIFNlcXVlbmNlcyBjYW5ub3QgYmUgYWRkZWQgdG8gb3IgZHJvcHBlZCBmcm9tIEZP UiBBTEwgU0VRVUVOQ0VTIHB1YmxpY2F0aW9ucy4KKy0tIGZhaWwgLSBjYW4ndCBkcm9wIGZy b20gYWxsIHNlcXVlbmNlcyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3JhbGxzZXF1ZW5jZXMgRFJPUCBTRVFVRU5DRSB0ZXN0cHViX3NlcTI7CitFUlJPUjog IHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyIgaXMgZGVmaW5lZCBhcyBG T1IgQUxMIFNFUVVFTkNFUworREVUQUlMOiAgU2VxdWVuY2VzIGNhbm5vdCBiZSBhZGRlZCB0 byBvciBkcm9wcGVkIGZyb20gRk9SIEFMTCBTRVFVRU5DRVMgcHVibGljYXRpb25zLgorLS0g ZmFpbCAtIGNhbid0IGFkZCB0byBmb3IgYWxsIHNlcXVlbmNlcyBwdWJsaWNhdGlvbgorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgU0VUIFNFUVVFTkNFIHB1 Yl90ZXN0LnRlc3RwdWJfc2VxMTsKK0VSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWJfZm9y YWxsc2VxdWVuY2VzIiBpcyBkZWZpbmVkIGFzIEZPUiBBTEwgU0VRVUVOQ0VTCitERVRBSUw6 ICBTZXF1ZW5jZXMgY2Fubm90IGJlIGFkZGVkIHRvIG9yIGRyb3BwZWQgZnJvbSBGT1IgQUxM IFNFUVVFTkNFUyBwdWJsaWNhdGlvbnMuCistLSBmYWlsIC0gY2FuJ3QgYWRkIHNjaGVtYSB0 byAnRk9SIEFMTCBTRVFVRU5DRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyBBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHVi X3Rlc3Q7CitFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyIg aXMgZGVmaW5lZCBhcyBGT1IgQUxMIFNFUVVFTkNFUworREVUQUlMOiAgU2VxdWVuY2VzIGZy b20gc2NoZW1hIGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBlZCBmcm9tLCBvciBzZXQgb24g Rk9SIEFMTCBTRVFVRU5DRVMgcHVibGljYXRpb25zLgorLS0gZmFpbCAtIGNhbid0IGRyb3Ag c2NoZW1hIGZyb20gJ0ZPUiBBTEwgU0VRVUVOQ0VTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgRFJPUCBBTEwgU0VRVUVOQ0VTIElO IFNDSEVNQSBwdWJfdGVzdDsKK0VSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWJfZm9yYWxs c2VxdWVuY2VzIiBpcyBkZWZpbmVkIGFzIEZPUiBBTEwgU0VRVUVOQ0VTCitERVRBSUw6ICBT ZXF1ZW5jZXMgZnJvbSBzY2hlbWEgY2Fubm90IGJlIGFkZGVkIHRvLCBkcm9wcGVkIGZyb20s IG9yIHNldCBvbiBGT1IgQUxMIFNFUVVFTkNFUyBwdWJsaWNhdGlvbnMuCistLSBmYWlsIC0g Y2FuJ3Qgc2V0IHNjaGVtYSB0byAnRk9SIEFMTCBTRVFVRU5DRVMnIHB1YmxpY2F0aW9uCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyBTRVQgQUxMIFNFUVVF TkNFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHVi X2ZvcmFsbHNlcXVlbmNlcyIgaXMgZGVmaW5lZCBhcyBGT1IgQUxMIFNFUVVFTkNFUworREVU QUlMOiAgU2VxdWVuY2VzIGZyb20gc2NoZW1hIGNhbm5vdCBiZSBhZGRlZCB0bywgZHJvcHBl ZCBmcm9tLCBvciBzZXQgb24gRk9SIEFMTCBTRVFVRU5DRVMgcHVibGljYXRpb25zLgorU0VU IGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZm9yc2VxdWVuY2UgRk9SIFNFUVVFTkNFIHRlc3RwdWJfc2VxMDsKK1JFU0VUIGNs aWVudF9taW5fbWVzc2FnZXM7CistLSBzaG91bGQgYmUgYWJsZSB0byBhZGQgc2NoZW1hIHRv ICdGT1IgU0VRVUVOQ0UnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2ZvcnNlcXVlbmNlIEFERCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJfdGVzdDsKK1xk UnArIHRlc3RwdWJfZm9yc2VxdWVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JzZXF1ZW5jZQorICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKK1NlcXVlbmNlczoKKyAgICAicHVibGljLnRl c3RwdWJfc2VxMCIKK1NlcXVlbmNlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0Igor CistLSBmYWlsIC0gY2FuJ3QgYWRkIHNlcXVlbmNlIGZyb20gdGhlIHNjaGVtYSB3ZSBhbHJl YWR5IGFkZGVkCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNlcXVlbmNlIEFERCBT RVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTE7CitFUlJPUjogIGNhbm5vdCBhZGQgcmVs YXRpb24gInB1Yl90ZXN0LnRlc3RwdWJfc2VxMSIgdG8gcHVibGljYXRpb24KK0RFVEFJTDog IFNlcXVlbmNlJ3Mgc2NoZW1hICJwdWJfdGVzdCIgaXMgYWxyZWFkeSBwYXJ0IG9mIHRoZSBw dWJsaWNhdGlvbiBvciBwYXJ0IG9mIHRoZSBzcGVjaWZpZWQgc2NoZW1hIGxpc3QuCistLSBm YWlsIC0gY2FuJ3QgYWRkIHNlcXVlbmNlIHVzaW5nIEFERCBUQUJMRSBjb21tYW5kCitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNlcXVlbmNlIEFERCBUQUJMRSBwdWJfdGVzdC50 ZXN0cHViX3NlcTE7CitFUlJPUjogIG9iamVjdCB0eXBlIG1pc21hdGNoCistLSBzaG91bGQg YmUgYWJsZSB0byBkcm9wIHNjaGVtYSBmcm9tICdGT1IgU0VRVUVOQ0UnIHB1YmxpY2F0aW9u CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNlcXVlbmNlIERST1AgQUxMIFNFUVVF TkNFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitcZFJwKyB0ZXN0cHViX2ZvcnNlcXVlbmNlCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWJfZm9yc2VxdWVuY2UKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBm CitTZXF1ZW5jZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3NlcTAiCisKKy0tIHNob3VsZCBi ZSBhYmxlIHRvIHNldCBzY2hlbWEgdG8gJ0ZPUiBTRVFVRU5DRScgcHVibGljYXRpb24KK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2VxdWVuY2UgU0VUIEFMTCBTRVFVRU5DRVMg SU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9mb3JzZXF1ZW5jZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0 cHViX2ZvcnNlcXVlbmNlCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxl cyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgorU2Vx dWVuY2VzIGZyb20gc2NoZW1hczoKKyAgICAicHViX3Rlc3QiCisKK1NFVCBjbGllbnRfbWlu X21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNj aGVtYSBGT1IgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitSRVNFVCBjbGll bnRfbWluX21lc3NhZ2VzOworLS0gZmFpbCAtIGNhbid0IGNyZWF0ZSBwdWJsaWNhdGlvbiB3 aXRoIHNjaGVtYSBhbmQgc2VxdWVuY2Ugb2YgdGhlIHNhbWUgc2NoZW1hCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3Jfc2VxX3NjaGVtYSBGT1IgQUxMIFNFUVVFTkNFUyBJTiBT Q0hFTUEgcHViX3Rlc3QsIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2VxMTsKK0VSUk9S OiAgY2Fubm90IGFkZCByZWxhdGlvbiAicHViX3Rlc3QudGVzdHB1Yl9zZXExIiB0byBwdWJs aWNhdGlvbgorREVUQUlMOiAgU2VxdWVuY2UncyBzY2hlbWEgInB1Yl90ZXN0IiBpcyBhbHJl YWR5IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uIG9yIHBhcnQgb2YgdGhlIHNwZWNpZmllZCBz Y2hlbWEgbGlzdC4KKy0tIGZhaWwgLSBjYW4ndCBhZGQgYSBzZXF1ZW5jZSBvZiB0aGUgc2Ft ZSBzY2hlbWEgdG8gdGhlIHNjaGVtYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9mb3JzY2hlbWEgQUREIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2VxMTsK K0VSUk9SOiAgY2Fubm90IGFkZCByZWxhdGlvbiAicHViX3Rlc3QudGVzdHB1Yl9zZXExIiB0 byBwdWJsaWNhdGlvbgorREVUQUlMOiAgU2VxdWVuY2UncyBzY2hlbWEgInB1Yl90ZXN0IiBp cyBhbHJlYWR5IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uIG9yIHBhcnQgb2YgdGhlIHNwZWNp ZmllZCBzY2hlbWEgbGlzdC4KKy0tIGZhaWwgLSBjYW4ndCBkcm9wIGEgc2VxdWVuY2UgZnJv bSB0aGUgc2NoZW1hIHB1YmxpY2F0aW9uIHdoaWNoIGlzbid0IGluIHRoZQorLS0gcHVibGlj YXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hIERST1AgU0VRVUVO Q0UgcHViX3Rlc3QudGVzdHB1Yl9zZXExOworRVJST1I6ICByZWxhdGlvbiAidGVzdHB1Yl9z ZXExIiBpcyBub3QgcGFydCBvZiB0aGUgcHVibGljYXRpb24KKy0tIHNob3VsZCBiZSBhYmxl IHRvIHNldCBzZXF1ZW5jZSB0byBzY2hlbWEgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZm9yc2NoZW1hIFNFVCBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3Nl cTE7CitcZFJwKyB0ZXN0cHViX2ZvcnNjaGVtYQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JzY2hlbWEKKyAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8 IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg ZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCitTZXF1ZW5jZXM6CisgICAgInB1Yl90 ZXN0LnRlc3RwdWJfc2VxMSIKKworU0VMRUNUIHB1Ym5hbWUsIHB1YmFsbHRhYmxlcywgcHVi YWxsc2VxdWVuY2VzIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZSA9ICd0ZXN0 cHViX2ZvcmFsbHNlcXVlbmNlcyc7CisgICAgICAgICBwdWJuYW1lICAgICAgICAgfCBwdWJh bGx0YWJsZXMgfCBwdWJhbGxzZXF1ZW5jZXMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tCisgdGVzdHB1Yl9mb3JhbGxzZXF1 ZW5jZXMgfCBmICAgICAgICAgICAgfCB0CisoMSByb3cpCisKK1xkKyBwdWJfdGVzdC50ZXN0 cHViX3NlcTEKKyAgICAgICAgICAgICAgICAgICAgICAgU2VxdWVuY2UgInB1Yl90ZXN0LnRl c3RwdWJfc2VxMSIKKyAgVHlwZSAgfCBTdGFydCB8IE1pbmltdW0gfCAgICAgICBNYXhpbXVt ICAgICAgIHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8IENhY2hlIAorLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tCisgYmlnaW50IHwgICAgIDEgfCAgICAgICAxIHwgOTIyMzM3MjAzNjg1NDc3 NTgwNyB8ICAgICAgICAgMSB8IG5vICAgICAgfCAgICAgMQorUHVibGljYXRpb25zOgorICAg ICJ0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcyIKKyAgICAidGVzdHB1Yl9mb3JzY2hlbWEiCisg ICAgInRlc3RwdWJfZm9yc2VxdWVuY2UiCisKK1xkUnArIHRlc3RwdWJfZm9yYWxsc2VxdWVu Y2VzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNh dGlvbiB0ZXN0cHViX2ZvcmFsbHNlcXVlbmNlcworICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICAg ICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IHQgICAg ICAgICB8IGYKKygxIHJvdykKKworRFJPUCBTRVFVRU5DRSB0ZXN0cHViX3NlcTAsIHB1Yl90 ZXN0LnRlc3RwdWJfc2VxMSwgdGVzdHB1Yl9zZXEyOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcmFsbHNlcXVlbmNlcywgdGVzdHB1Yl9mb3JzZXF1ZW5jZSwgdGVzdHB1Yl9mb3Jz Y2hlbWE7CistLSBQdWJsaWNhdGlvbiBtaXhpbmcgdGFibGVzIGFuZCBzZXF1ZW5jZXMKK1NF VCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX21peDsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitDUkVBVEUgU0VRVUVO Q0UgdGVzdHB1Yl9zZXExOworQ1JFQVRFIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2Vx MjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfbWl4IEFERCBTRVFVRU5DRSB0ZXN0cHVi X3NlcTEsIFRBQkxFIHRlc3RwdWJfdGJsMTsKK1xkUnArIHRlc3RwdWJfbWl4CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX21peAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBB bGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVz IHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlczoK KyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKK1NlcXVlbmNlczoKKyAgICAicHVibGljLnRl c3RwdWJfc2VxMSIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9taXggQUREIEFMTCBT RVFVRU5DRVMgSU4gU0NIRU1BIHB1Yl90ZXN0LCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJf dGVzdDsKK1xkUnArIHRlc3RwdWJfbWl4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX21peAorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJf dGJsMSIKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0IgorU2VxdWVuY2Vz OgorICAgICJwdWJsaWMudGVzdHB1Yl9zZXExIgorU2VxdWVuY2VzIGZyb20gc2NoZW1hczoK KyAgICAicHViX3Rlc3QiCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfbWl4IERST1Ag QUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7CitcZFJwKyB0ZXN0cHViX21peAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1Yl9taXgKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCitU YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCitUYWJsZXMgZnJvbSBzY2hlbWFz OgorICAgICJwdWJfdGVzdCIKK1NlcXVlbmNlczoKKyAgICAicHVibGljLnRlc3RwdWJfc2Vx MSIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9taXggRFJPUCBBTEwgVEFCTEVTIElO IFNDSEVNQSBwdWJfdGVzdDsKK1xkUnArIHRlc3RwdWJfbWl4CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX21p eAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVu Y2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVu Y2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHVi bGljLnRlc3RwdWJfdGJsMSIKK1NlcXVlbmNlczoKKyAgICAicHVibGljLnRlc3RwdWJfc2Vx MSIKKworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX21peDsKK0RST1AgU0VRVUVOQ0UgdGVz dHB1Yl9zZXExOworRFJPUCBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTI7CistLSBt YWtlIHN1cmUgd2UgcmVwbGljYXRlIG9ubHkgdGhlIGNvcnJlY3QgcmVsYXRpb24gdHlwZQor Q1JFQVRFIFNDSEVNQSBwdWJfdGVzdDE7CitDUkVBVEUgU0VRVUVOQ0UgcHViX3Rlc3QxLnRl c3Rfc2VxMTsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdDEudGVzdF90YmwxIChhIGludCBwcmlt YXJ5IGtleSwgYiBpbnQpOworQ1JFQVRFIFNDSEVNQSBwdWJfdGVzdDI7CitDUkVBVEUgU0VR VUVOQ0UgcHViX3Rlc3QyLnRlc3Rfc2VxMjsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdDIudGVz dF90YmwyIChhIGludCBwcmltYXJ5IGtleSwgYiBpbnQpOworU0VUIGNsaWVudF9taW5fbWVz c2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hczsK K1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CistLSBhZGQgdGFibGVzIGZyb20gb25lIHNj aGVtYSwgc2VxdWVuY2VzIGZyb20gdGhlIG90aGVyCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3NjaGVtYXMgQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MjsKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hcyBBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hF TUEgcHViX3Rlc3QxOworXGRScCsgdGVzdHB1Yl9zY2hlbWFzCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zY2hl bWFzCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1 ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1 ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgorVGFibGVzIGZyb20gc2No ZW1hczoKKyAgICAicHViX3Rlc3QyIgorU2VxdWVuY2VzIGZyb20gc2NoZW1hczoKKyAgICAi cHViX3Rlc3QxIgorCitcZG4rIHB1Yl90ZXN0MQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2Ygc2NoZW1hcworICAgTmFtZSAgICB8ICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyBwdWJfdGVzdDEgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCAgICAgICAg ICAgICAgICAgICB8IAorUHVibGljYXRpb25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMiIChz ZXF1ZW5jZXMpCisKK1xkbisgcHViX3Rlc3QyCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzY2hlbWFzCisgICBOYW1lICAgIHwgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLQorIHB1Yl90ZXN0MiB8IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8ICAgICAgICAg ICAgICAgICAgIHwgCitQdWJsaWNhdGlvbnM6CisgICAgInRlc3RwdWJfc2NoZW1hcyIgKHRh YmxlcykKKworXGQrIHB1Yl90ZXN0MS50ZXN0X3NlcTE7CisgICAgICAgICAgICAgICAgICAg ICAgICBTZXF1ZW5jZSAicHViX3Rlc3QxLnRlc3Rfc2VxMSIKKyAgVHlwZSAgfCBTdGFydCB8 IE1pbmltdW0gfCAgICAgICBNYXhpbXVtICAgICAgIHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8 IENhY2hlIAorLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tCisgYmlnaW50IHwgICAgIDEgfCAg ICAgICAxIHwgOTIyMzM3MjAzNjg1NDc3NTgwNyB8ICAgICAgICAgMSB8IG5vICAgICAgfCAg ICAgMQorUHVibGljYXRpb25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMiCisKK1xkKyBwdWJf dGVzdDEudGVzdF90YmwxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxl ICJwdWJfdGVzdDEudGVzdF90YmwxIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3Jp cHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgcGxhaW4gICB8 ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgor ICAgICJ0ZXN0X3RibDFfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChhKQorCitcZCsgcHVi X3Rlc3QyLnRlc3Rfc2VxMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNlcXVlbmNlICJw dWJfdGVzdDIudGVzdF9zZXEyIgorICBUeXBlICB8IFN0YXJ0IHwgTWluaW11bSB8ICAgICAg IE1heGltdW0gICAgICAgfCBJbmNyZW1lbnQgfCBDeWNsZXM/IHwgQ2FjaGUgCistLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0KKyBiaWdpbnQgfCAgICAgMSB8ICAgICAgIDEgfCA5MjIzMzcy MDM2ODU0Nzc1ODA3IHwgICAgICAgICAxIHwgbm8gICAgICB8ICAgICAxCisKK1xkKyBwdWJf dGVzdDIudGVzdF90YmwyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxl ICJwdWJfdGVzdDIudGVzdF90YmwyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3Jp cHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgcGxhaW4gICB8 ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgor ICAgICJ0ZXN0X3RibDJfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChhKQorUHVibGljYXRp b25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMiCisKKy0tIGFkZCB0aGUgb3RoZXIgb2JqZWN0 IHR5cGUgZnJvbSBlYWNoIHNjaGVtYQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hl bWFzIEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDE7CitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX3NjaGVtYXMgQUREIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1Yl90 ZXN0MjsKK1xkUnArIHRlc3RwdWJfc2NoZW1hcworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1hcworICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwg SW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwg VmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBm ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlcyBmcm9tIHNjaGVtYXM6Cisg ICAgInB1Yl90ZXN0MSIKKyAgICAicHViX3Rlc3QyIgorU2VxdWVuY2VzIGZyb20gc2NoZW1h czoKKyAgICAicHViX3Rlc3QxIgorICAgICJwdWJfdGVzdDIiCisKK1xkbisgcHViX3Rlc3Qx CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzY2hlbWFzCisgICBOYW1l ICAgIHwgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBE ZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1Yl90ZXN0MSB8IHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8ICAgICAgICAgICAgICAgICAgIHwgCitQdWJsaWNhdGlvbnM6 CisgICAgInRlc3RwdWJfc2NoZW1hcyIgKHNlcXVlbmNlcykKKyAgICAidGVzdHB1Yl9zY2hl bWFzIiAodGFibGVzKQorCitcZG4rIHB1Yl90ZXN0MgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc2NoZW1hcworICAgTmFtZSAgICB8ICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyBwdWJfdGVzdDIgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCAgICAg ICAgICAgICAgICAgICB8IAorUHVibGljYXRpb25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMi ICh0YWJsZXMpCisgICAgInRlc3RwdWJfc2NoZW1hcyIgKHNlcXVlbmNlcykKKworXGQrIHB1 Yl90ZXN0MS50ZXN0X3NlcTE7CisgICAgICAgICAgICAgICAgICAgICAgICBTZXF1ZW5jZSAi cHViX3Rlc3QxLnRlc3Rfc2VxMSIKKyAgVHlwZSAgfCBTdGFydCB8IE1pbmltdW0gfCAgICAg ICBNYXhpbXVtICAgICAgIHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8IENhY2hlIAorLS0tLS0t LS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tCisgYmlnaW50IHwgICAgIDEgfCAgICAgICAxIHwgOTIyMzM3 MjAzNjg1NDc3NTgwNyB8ICAgICAgICAgMSB8IG5vICAgICAgfCAgICAgMQorUHVibGljYXRp b25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMiCisKK1xkKyBwdWJfdGVzdDEudGVzdF90Ymwx OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJfdGVzdDEudGVz dF90YmwxIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8 IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg fCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZXN0X3RibDFf cGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChhKQorUHVibGljYXRpb25zOgorICAgICJ0ZXN0 cHViX3NjaGVtYXMiCisKK1xkKyBwdWJfdGVzdDIudGVzdF9zZXEyOworICAgICAgICAgICAg ICAgICAgICAgICAgU2VxdWVuY2UgInB1Yl90ZXN0Mi50ZXN0X3NlcTIiCisgIFR5cGUgIHwg U3RhcnQgfCBNaW5pbXVtIHwgICAgICAgTWF4aW11bSAgICAgICB8IEluY3JlbWVudCB8IEN5 Y2xlcz8gfCBDYWNoZSAKKy0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLQorIGJpZ2ludCB8ICAg ICAxIHwgICAgICAgMSB8IDkyMjMzNzIwMzY4NTQ3NzU4MDcgfCAgICAgICAgIDEgfCBubyAg ICAgIHwgICAgIDEKK1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9zY2hlbWFzIgorCitc ZCsgcHViX3Rlc3QyLnRlc3RfdGJsMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUYWJsZSAicHViX3Rlc3QyLnRlc3RfdGJsMiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSB8IFN0YXRzIHRhcmdldCB8 IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg YSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICB8IHBs YWluICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAg IHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAorSW5k ZXhlczoKKyAgICAidGVzdF90YmwyX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoYSkKK1B1 YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9zY2hlbWFzIgorCistLSBub3cgZHJvcCB0aGUg b2JqZWN0IHR5cGUgYWRkZWQgZmlyc3QKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2No ZW1hcyBEUk9QIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MjsKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfc2NoZW1hcyBEUk9QIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1 Yl90ZXN0MTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hcworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1hcwor ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2Vz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2Vz IHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlcyBmcm9tIHNjaGVtYXM6 CisgICAgInB1Yl90ZXN0MSIKK1NlcXVlbmNlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90 ZXN0MiIKKworXGRuKyBwdWJfdGVzdDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHNjaGVtYXMKKyAgIE5hbWUgICAgfCAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t CisgcHViX3Rlc3QxIHwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgICAgICAgICAgICAg ICAgICAgfCAKK1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9zY2hlbWFzIiAodGFibGVz KQorCitcZG4rIHB1Yl90ZXN0MgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc2NoZW1hcworICAgTmFtZSAgICB8ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFj Y2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBw dWJfdGVzdDIgfCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCAgICAgICAgICAgICAgICAg ICB8IAorUHVibGljYXRpb25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMiIChzZXF1ZW5jZXMp CisKK1xkKyBwdWJfdGVzdDEudGVzdF9zZXExOworICAgICAgICAgICAgICAgICAgICAgICAg U2VxdWVuY2UgInB1Yl90ZXN0MS50ZXN0X3NlcTEiCisgIFR5cGUgIHwgU3RhcnQgfCBNaW5p bXVtIHwgICAgICAgTWF4aW11bSAgICAgICB8IEluY3JlbWVudCB8IEN5Y2xlcz8gfCBDYWNo ZSAKKy0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLQorIGJpZ2ludCB8ICAgICAxIHwgICAgICAg MSB8IDkyMjMzNzIwMzY4NTQ3NzU4MDcgfCAgICAgICAgIDEgfCBubyAgICAgIHwgICAgIDEK KworXGQrIHB1Yl90ZXN0MS50ZXN0X3RibDE7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVGFibGUgInB1Yl90ZXN0MS50ZXN0X3RibDEiCisgQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgfCBTdGF0cyB0YXJn ZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAg fCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAK K0luZGV4ZXM6CisgICAgInRlc3RfdGJsMV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGEp CitQdWJsaWNhdGlvbnM6CisgICAgInRlc3RwdWJfc2NoZW1hcyIKKworXGQrIHB1Yl90ZXN0 Mi50ZXN0X3NlcTI7CisgICAgICAgICAgICAgICAgICAgICAgICBTZXF1ZW5jZSAicHViX3Rl c3QyLnRlc3Rfc2VxMiIKKyAgVHlwZSAgfCBTdGFydCB8IE1pbmltdW0gfCAgICAgICBNYXhp bXVtICAgICAgIHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8IENhY2hlIAorLS0tLS0tLS0rLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tCisgYmlnaW50IHwgICAgIDEgfCAgICAgICAxIHwgOTIyMzM3MjAzNjg1 NDc3NTgwNyB8ICAgICAgICAgMSB8IG5vICAgICAgfCAgICAgMQorUHVibGljYXRpb25zOgor ICAgICJ0ZXN0cHViX3NjaGVtYXMiCisKK1xkKyBwdWJfdGVzdDIudGVzdF90YmwyOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJfdGVzdDIudGVzdF90Ymwy IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQg fCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAg IHwgbm90IG51bGwgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAorIGIg ICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCBwbGFp biAgIHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZXN0X3RibDJfcGtleSIg UFJJTUFSWSBLRVksIGJ0cmVlIChhKQorCistLSBzaG91bGQgZmFpbCAocHVibGljYXRpb24g Y29udGFpbnMgdGhlIHdob2xlIHNjaGVtYSkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf c2NoZW1hcyBBREQgVEFCTEUgcHViX3Rlc3QxLnRlc3RfdGJsMTsKK0VSUk9SOiAgY2Fubm90 IGFkZCByZWxhdGlvbiAicHViX3Rlc3QxLnRlc3RfdGJsMSIgdG8gcHVibGljYXRpb24KK0RF VEFJTDogIFRhYmxlJ3Mgc2NoZW1hICJwdWJfdGVzdDEiIGlzIGFscmVhZHkgcGFydCBvZiB0 aGUgcHVibGljYXRpb24gb3IgcGFydCBvZiB0aGUgc3BlY2lmaWVkIHNjaGVtYSBsaXN0Lgor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFzIEFERCBTRVFVRU5DRSBwdWJfdGVz dDIudGVzdF9zZXEyOworRVJST1I6ICBjYW5ub3QgYWRkIHJlbGF0aW9uICJwdWJfdGVzdDIu dGVzdF9zZXEyIiB0byBwdWJsaWNhdGlvbgorREVUQUlMOiAgU2VxdWVuY2UncyBzY2hlbWEg InB1Yl90ZXN0MiIgaXMgYWxyZWFkeSBwYXJ0IG9mIHRoZSBwdWJsaWNhdGlvbiBvciBwYXJ0 IG9mIHRoZSBzcGVjaWZpZWQgc2NoZW1hIGxpc3QuCistLSBzaG91bGQgd29yayAoZGlmZmVy ZW50IHNjaGVtYSkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hcyBBREQgVEFC TEUgcHViX3Rlc3QyLnRlc3RfdGJsMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2No ZW1hcyBBREQgU0VRVUVOQ0UgcHViX3Rlc3QxLnRlc3Rfc2VxMTsKK1xkUnArIHRlc3RwdWJf c2NoZW1hcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfc2NoZW1hcworICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAg ICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3Rlc3QyLnRlc3RfdGJsMiIKK1RhYmxlcyBm cm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0MSIKK1NlcXVlbmNlczoKKyAgICAicHViX3Rl c3QxLnRlc3Rfc2VxMSIKK1NlcXVlbmNlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Yl90ZXN0 MiIKKworXGQrIHB1Yl90ZXN0MS50ZXN0X3NlcTE7CisgICAgICAgICAgICAgICAgICAgICAg ICBTZXF1ZW5jZSAicHViX3Rlc3QxLnRlc3Rfc2VxMSIKKyAgVHlwZSAgfCBTdGFydCB8IE1p bmltdW0gfCAgICAgICBNYXhpbXVtICAgICAgIHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8IENh Y2hlIAorLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tCisgYmlnaW50IHwgICAgIDEgfCAgICAg ICAxIHwgOTIyMzM3MjAzNjg1NDc3NTgwNyB8ICAgICAgICAgMSB8IG5vICAgICAgfCAgICAg MQorUHVibGljYXRpb25zOgorICAgICJ0ZXN0cHViX3NjaGVtYXMiCisKK1xkKyBwdWJfdGVz dDEudGVzdF90YmwxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJw dWJfdGVzdDEudGVzdF90YmwxIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRp b24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgcGxhaW4gICB8ICAg ICAgICAgICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8ICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgorICAg ICJ0ZXN0X3RibDFfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChhKQorUHVibGljYXRpb25z OgorICAgICJ0ZXN0cHViX3NjaGVtYXMiCisKK1xkKyBwdWJfdGVzdDIudGVzdF9zZXEyOwor ICAgICAgICAgICAgICAgICAgICAgICAgU2VxdWVuY2UgInB1Yl90ZXN0Mi50ZXN0X3NlcTIi CisgIFR5cGUgIHwgU3RhcnQgfCBNaW5pbXVtIHwgICAgICAgTWF4aW11bSAgICAgICB8IElu Y3JlbWVudCB8IEN5Y2xlcz8gfCBDYWNoZSAKKy0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLQor IGJpZ2ludCB8ICAgICAxIHwgICAgICAgMSB8IDkyMjMzNzIwMzY4NTQ3NzU4MDcgfCAgICAg ICAgIDEgfCBubyAgICAgIHwgICAgIDEKK1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9z Y2hlbWFzIgorCitcZCsgcHViX3Rlc3QyLnRlc3RfdGJsMjsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUYWJsZSAicHViX3Rlc3QyLnRlc3RfdGJsMiIKKyBDb2x1bW4gfCAg VHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSB8IFN0 YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg ICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAg ICAgICB8IAorSW5kZXhlczoKKyAgICAidGVzdF90YmwyX3BrZXkiIFBSSU1BUlkgS0VZLCBi dHJlZSAoYSkKK1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9zY2hlbWFzIgorCistLSBu b3cgZHJvcCB0aGUgZXhwbGljaXRseSBhZGRlZCBvYmplY3RzIGFnYWluCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3NjaGVtYXMgRFJPUCBUQUJMRSBwdWJfdGVzdDIudGVzdF90Ymwy OworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFzIERST1AgU0VRVUVOQ0UgcHVi X3Rlc3QxLnRlc3Rfc2VxMTsKK1xkUnArIHRlc3RwdWJfc2NoZW1hcworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJf c2NoZW1hcworICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwg c2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg U2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlcyBmcm9t IHNjaGVtYXM6CisgICAgInB1Yl90ZXN0MSIKK1NlcXVlbmNlcyBmcm9tIHNjaGVtYXM6Cisg ICAgInB1Yl90ZXN0MiIKKworXGQrIHB1Yl90ZXN0MS50ZXN0X3NlcTE7CisgICAgICAgICAg ICAgICAgICAgICAgICBTZXF1ZW5jZSAicHViX3Rlc3QxLnRlc3Rfc2VxMSIKKyAgVHlwZSAg fCBTdGFydCB8IE1pbmltdW0gfCAgICAgICBNYXhpbXVtICAgICAgIHwgSW5jcmVtZW50IHwg Q3ljbGVzPyB8IENhY2hlIAorLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tCisgYmlnaW50IHwg ICAgIDEgfCAgICAgICAxIHwgOTIyMzM3MjAzNjg1NDc3NTgwNyB8ICAgICAgICAgMSB8IG5v ICAgICAgfCAgICAgMQorCitcZCsgcHViX3Rlc3QxLnRlc3RfdGJsMTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHViX3Rlc3QxLnRlc3RfdGJsMSIKKyBDb2x1 bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFn ZSB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBu dWxsIHwgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8ICAg ICAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVzdF90YmwxX3BrZXkiIFBSSU1BUlkg S0VZLCBidHJlZSAoYSkKK1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9zY2hlbWFzIgor CitcZCsgcHViX3Rlc3QyLnRlc3Rfc2VxMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFNl cXVlbmNlICJwdWJfdGVzdDIudGVzdF9zZXEyIgorICBUeXBlICB8IFN0YXJ0IHwgTWluaW11 bSB8ICAgICAgIE1heGltdW0gICAgICAgfCBJbmNyZW1lbnQgfCBDeWNsZXM/IHwgQ2FjaGUg CistLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0KKyBiaWdpbnQgfCAgICAgMSB8ICAgICAgIDEg fCA5MjIzMzcyMDM2ODU0Nzc1ODA3IHwgICAgICAgICAxIHwgbm8gICAgICB8ICAgICAxCitQ dWJsaWNhdGlvbnM6CisgICAgInRlc3RwdWJfc2NoZW1hcyIKKworXGQrIHB1Yl90ZXN0Mi50 ZXN0X3RibDI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1Yl90 ZXN0Mi50ZXN0X3RibDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAK Ky0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAg ICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgInRl c3RfdGJsMl9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGEpCisKK0RST1AgUFVCTElDQVRJ T04gdGVzdHB1Yl9zY2hlbWFzOworRFJPUCBUQUJMRSBwdWJfdGVzdDEudGVzdF90YmwxLCBw dWJfdGVzdDIudGVzdF90YmwyOworRFJPUCBTRVFVRU5DRSBwdWJfdGVzdDEudGVzdF9zZXEx LCBwdWJfdGVzdDIudGVzdF9zZXEyOworRFJPUCBTQ0hFTUEgcHViX3Rlc3QxLCBwdWJfdGVz dDI7CiAtLSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQgY2xpZW50X21pbl9t ZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JwYXJ0 ZWQ7CkBAIC0yMDcsMTAgKzcxMywxMCBAQCBVUERBVEUgdGVzdHB1Yl9wYXJ0ZWQxIFNFVCBh ID0gMTsKIC0tIG9ubHkgcGFyZW50IGlzIGxpc3RlZCBhcyBiZWluZyBpbiBwdWJsaWNhdGlv biwgbm90IHRoZSBwYXJ0aXRpb24KIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ycGFy dGVkIEFERCBUQUJMRSB0ZXN0cHViX3BhcnRlZDsKIFxkUnArIHRlc3RwdWJfZm9ycGFydGVk Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9m b3JwYXJ0ZWQKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnBhcnRlZAorICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IHQgICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfcGFydGVkIgog CkBAIC0yMjMsMTAgKzcyOSwxMCBAQCBBTFRFUiBUQUJMRSB0ZXN0cHViX3BhcnRlZCBERVRB Q0ggUEFSVElUSU9OIHRlc3RwdWJfcGFydGVkMTsKIFVQREFURSB0ZXN0cHViX3BhcnRlZDEg U0VUIGEgPSAxOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JwYXJ0ZWQgU0VUIChw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IHRydWUpOwogXGRScCsgdGVzdHB1Yl9mb3Jw YXJ0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0 cHViX2ZvcnBhcnRlZAotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9ycGFydGVkCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgdCAgICAgICAgIHwgdAogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl9wYXJ0 ZWQiCiAKQEAgLTI1NSwxMCArNzYxLDEwIEBAIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0g J0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgVEFCTEUgdGVzdHB1 Yl9yZl90YmwxLCB0ZXN0cHViX3JmX3RibDIgV0hFUkUgKGMgPD4gJ3Rlc3QnIEFORCBkIDwg NSkgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQnKTsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXM7CiBcZFJwKyB0ZXN0cHViNQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1YjUKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAg ICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI1CisgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEg cm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwg ZiAgICAgICAgIHwgZiAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1 Yl9yZl90YmwxIgogICAgICJwdWJsaWMudGVzdHB1Yl9yZl90YmwyIiBXSEVSRSAoKGMgPD4g J3Rlc3QnOjp0ZXh0KSBBTkQgKGQgPCA1KSkKQEAgLTI3MSwxMCArNzc3LDEwIEBAIFRhYmxl czoKIAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjUgQUREIFRBQkxFIHRlc3RwdWJfcmZf dGJsMyBXSEVSRSAoZSA+IDEwMDAgQU5EIGUgPCAyMDAwKTsKIFxkUnArIHRlc3RwdWI1Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi NQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy IHwgZiAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAg ICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1YjUKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAg fCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAgICAg fCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3RibDEiCiAgICAgInB1Ymxp Yy50ZXN0cHViX3JmX3RibDIiIFdIRVJFICgoYyA8PiAndGVzdCc6OnRleHQpIEFORCAoZCA8 IDUpKQpAQCAtMjkwLDEwICs3OTYsMTAgQEAgUHVibGljYXRpb25zOgogCiBBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViNSBEUk9QIFRBQkxFIHRlc3RwdWJfcmZfdGJsMjsKIFxkUnArIHRl c3RwdWI1Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlv biB0ZXN0cHViNQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8 IGYgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVz IHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBm ICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3RibDEiCiAg ICAgInB1YmxpYy50ZXN0cHViX3JmX3RibDMiIFdIRVJFICgoZSA+IDEwMDApIEFORCAoZSA8 IDIwMDApKQpAQCAtMzAxLDEwICs4MDcsMTAgQEAgVGFibGVzOgogLS0gcmVtb3ZlIHRlc3Rw dWJfcmZfdGJsMSBhbmQgYWRkIHRlc3RwdWJfcmZfdGJsMyBhZ2FpbiAoYW5vdGhlciBXSEVS RSBleHByZXNzaW9uKQogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjUgU0VUIFRBQkxFIHRl c3RwdWJfcmZfdGJsMyBXSEVSRSAoZSA+IDMwMCBBTkQgZSA8IDUwMCk7CiBcZFJwKyB0ZXN0 cHViNQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1YjUKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBm ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI1CisgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgZiAg ICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudGVzdHB1Yl9yZl90YmwzIiBXSEVS RSAoKGUgPiAzMDApIEFORCAoZSA8IDUwMCkpCiAKQEAgLTMzNywxMCArODQzLDEwIEBAIFNF VCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX3N5bnRheDEgRk9SIFRBQkxFIHRlc3RwdWJfcmZfdGJsMSwgT05MWSB0ZXN0cHVi X3JmX3RibDMgV0hFUkUgKGUgPCA5OTkpIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0Jyk7CiBS RVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1Yl9zeW50YXgxCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfc3ludGF4 MQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy IHwgZiAgICAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAg ICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX3N5bnRheDEKKyAgICAgICAgICBPd25lciAgICAgICAgICAg fCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmICAgICAg ICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3JmX3RibDEiCiAgICAgInB1 YmxpYy50ZXN0cHViX3JmX3RibDMiIFdIRVJFIChlIDwgOTk5KQpAQCAtMzUwLDEwICs4NTYs MTAgQEAgU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfc3ludGF4MiBGT1IgVEFCTEUgdGVzdHB1Yl9yZl90YmwxLCB0ZXN0 cHViX3JmX3NjaGVtYTEudGVzdHB1Yl9yZl90Ymw1IFdIRVJFIChoIDwgOTk5KSBXSVRIIChw dWJsaXNoID0gJ2luc2VydCcpOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnAr IHRlc3RwdWJfc3ludGF4MgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiB0ZXN0cHViX3N5bnRheDIKLSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg VmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgZiAgICAg ICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9zeW50YXgyCisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBW aWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAg IHwgZiAgICAgICAgIHwgZiAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudGVz dHB1Yl9yZl90YmwxIgogICAgICJ0ZXN0cHViX3JmX3NjaGVtYTEudGVzdHB1Yl9yZl90Ymw1 IiBXSEVSRSAoaCA8IDk5OSkKQEAgLTY1OCwxMCArMTE2NCwxMCBAQCBFUlJPUjogIHJlbGF0 aW9uICJ0ZXN0cHViX3RibDEiIGlzIGFscmVhZHkgbWVtYmVyIG9mIHB1YmxpY2F0aW9uICJ0 ZXN0cHViX2ZvcnRibAogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGJsIEZPUiBU QUJMRSB0ZXN0cHViX3RibDE7CiBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcnRi bCIgYWxyZWFkeSBleGlzdHMKIFxkUnArIHRlc3RwdWJfZm9ydGJsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRibAotICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9mb3J0YmwKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBU YWJsZXM6CiAgICAgInB1Yl90ZXN0LnRlc3RwdWJfbm9wayIKICAgICAicHVibGljLnRlc3Rw dWJfdGJsMSIKQEAgLTY5OSwxMCArMTIwNSwxMCBAQCBQdWJsaWNhdGlvbnM6CiAgICAgInRl c3RwdWJfZm9ydGJsIgogCiBcZFJwKyB0ZXN0cHViX2RlZmF1bHQKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9kZWZhdWx0Ci0gICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgIHwgZgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWJfZGVmYXVsdAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1 bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRh YmxlczoKICAgICAicHViX3Rlc3QudGVzdHB1Yl9ub3BrIgogICAgICJwdWJsaWMudGVzdHB1 Yl90YmwxIgpAQCAtNzgwLDEwICsxMjg2LDEwIEBAIFJFVk9LRSBDUkVBVEUgT04gREFUQUJB U0UgcmVncmVzc2lvbiBGUk9NIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBEUk9QIFRB QkxFIHRlc3RwdWJfcGFydGVkOwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDE7CiBcZFJwKyB0 ZXN0cHViX2RlZmF1bHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1Yl9kZWZhdWx0Ci0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZp YSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZGVmYXVsdAorICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IGYgICAgICAgICB8IHQgICAgICAgICB8IGYKICgxIHJvdykKIAogLS0gZmFpbCAtIG11c3Qg YmUgb3duZXIgb2YgcHVibGljYXRpb24KQEAgLTc5MywyMCArMTI5OSwyMCBAQCBFUlJPUjog IG11c3QgYmUgb3duZXIgb2YgcHVibGljYXRpb24gdGVzdHB1Yl9kZWZhdWx0CiBSRVNFVCBS T0xFOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZWZhdWx0IFJFTkFNRSBUTyB0ZXN0 cHViX2ZvbzsKIFxkUnAgdGVzdHB1Yl9mb28KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHB1YmxpY2F0aW9ucwotICAgIE5hbWUgICAgIHwg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHRlc3RwdWJfZm9vIHwg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IGYgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgcHVibGljYXRpb25z CisgICAgTmFtZSAgICAgfCAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KKyB0ZXN0cHViX2ZvbyB8IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAg ICAgICAgIHwgdCAgICAgICAgIHwgZgogKDEgcm93KQogCiAtLSByZW5hbWUgYmFjayB0byBr ZWVwIHRoZSByZXN0IHNpbXBsZQogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb28gUkVO QU1FIFRPIHRlc3RwdWJfZGVmYXVsdDsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGVm YXVsdCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogXGRScCB0ZXN0cHVi X2RlZmF1bHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgcHVibGljYXRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHRlc3RwdWJfZGVmYXVsdCB8IHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlcjIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgZiAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHB1YmxpY2F0aW9u cworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHRlc3RwdWJfZGVmYXVsdCB8IHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlcjIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IGYgICAgICAgICB8IHQgICAgICAgICB8IGYKICgxIHJvdykKIAogLS0g YWRkaW5nIHNjaGVtYXMgYW5kIHRhYmxlcwpAQCAtODIyLDE5ICsxMzI4LDE5IEBAIENSRUFU RSBUQUJMRSAiQ1VSUkVOVF9TQ0hFTUEiLiJDVVJSRU5UX1NDSEVNQSIoaWQgaW50KTsKIFNF VCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViMV9mb3JzY2hlbWEgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsK IFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2Zv cnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwg c2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg U2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlcyBmcm9t IHNjaGVtYXM6CiAgICAgInB1Yl90ZXN0MSIKIAogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWIyX2ZvcnNjaGVtYSBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxLCBwdWJf dGVzdDIsIHB1Yl90ZXN0MzsKIFxkUnArIHRlc3RwdWIyX2ZvcnNjaGVtYQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIyX2ZvcnNjaGVtYQot ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBk YXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg ZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWIyX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAg ICB8IGYKIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAgICAgInB1Yl90ZXN0MSIKICAgICAicHVi X3Rlc3QyIgpAQCAtODQ4LDQ0ICsxMzU0LDQ0IEBAIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViNl9mb3JzY2hlbWEgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BICJDVVJSRU5UX1NDSEVN QSIsCiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBGT1IgVEFCTEUgIkNV UlJFTlRfU0NIRU1BIi4iQ1VSUkVOVF9TQ0hFTUEiOwogUkVTRVQgY2xpZW50X21pbl9tZXNz YWdlczsKIFxkUnArIHRlc3RwdWIzX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzX2ZvcnNjaGVtYQotICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWIzX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxl cyBmcm9tIHNjaGVtYXM6CiAgICAgInB1YmxpYyIKIAogXGRScCsgdGVzdHB1YjRfZm9yc2No ZW1hCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 YjRfZm9yc2NoZW1hCi0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjRfZm9yc2NoZW1hCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAiQ1VSUkVO VF9TQ0hFTUEiCiAKIFxkUnArIHRlc3RwdWI1X2ZvcnNjaGVtYQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI1X2ZvcnNjaGVtYQotICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9u IHRlc3RwdWI1X2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwg VHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYK IFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAgICAgIkNVUlJFTlRfU0NIRU1BIgogICAgICJwdWJs aWMiCiAKIFxkUnArIHRlc3RwdWI2X2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI2X2ZvcnNjaGVtYQotICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWI2X2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxl cyBmcm9tIHNjaGVtYXM6CiAgICAgIkNVUlJFTlRfU0NIRU1BIgogICAgICJwdWJsaWMiCiAK IFxkUnArIHRlc3RwdWJfZm9ydGFibGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3J0YWJsZQotICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRh YmxlCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1 ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1 ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJD VVJSRU5UX1NDSEVNQS5DVVJSRU5UX1NDSEVNQSIKIApAQCAtOTE5LDEwICsxNDI1LDEwIEBA IEVSUk9SOiAgc2NoZW1hICJ0ZXN0cHViX3ZpZXciIGRvZXMgbm90IGV4aXN0CiAtLSBkcm9w cGluZyB0aGUgc2NoZW1hIHNob3VsZCByZWZsZWN0IHRoZSBjaGFuZ2UgaW4gcHVibGljYXRp b24KIERST1AgU0NIRU1BIHB1Yl90ZXN0MzsKIFxkUnArIHRlc3RwdWIyX2ZvcnNjaGVtYQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIyX2Zv cnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIyX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8 IHQgICAgICAgICB8IGYKIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiAgICAgInB1Yl90ZXN0MSIK ICAgICAicHViX3Rlc3QyIgpAQCAtOTMwLDIwICsxNDM2LDIwIEBAIFRhYmxlcyBmcm9tIHNj aGVtYXM6CiAtLSByZW5hbWluZyB0aGUgc2NoZW1hIHNob3VsZCByZWZsZWN0IHRoZSBjaGFu Z2UgaW4gcHVibGljYXRpb24KIEFMVEVSIFNDSEVNQSBwdWJfdGVzdDEgUkVOQU1FIHRvIHB1 Yl90ZXN0MV9yZW5hbWVkOwogXGRScCsgdGVzdHB1YjJfZm9yc2NoZW1hCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjJfZm9yc2NoZW1hCi0g ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBm ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwg ZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1YjJfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg QWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAg IHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxX3JlbmFtZWQiCiAg ICAgInB1Yl90ZXN0MiIKIAogQUxURVIgU0NIRU1BIHB1Yl90ZXN0MV9yZW5hbWVkIFJFTkFN RSB0byBwdWJfdGVzdDE7CiBcZFJwKyB0ZXN0cHViMl9mb3JzY2hlbWEKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMl9mb3JzY2hlbWEKLSAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBm CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNh dGlvbiB0ZXN0cHViMl9mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAg fCBmCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90 ZXN0MiIKQEAgLTk1MSwxMCArMTQ1NywxMCBAQCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogLS0g YWx0ZXIgcHVibGljYXRpb24gYWRkIHNjaGVtYQogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 YjFfZm9yc2NoZW1hIEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDI7CiBcZFJw KyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hl bWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVl bmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFNlcXVl bmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJsZXMgZnJvbSBzY2hl bWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAgLTk2MywxMCArMTQ2 OSwxMCBAQCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 YjFfZm9yc2NoZW1hIEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBub25fZXhpc3RlbnRfc2No ZW1hOwogRVJST1I6ICBzY2hlbWEgIm5vbl9leGlzdGVudF9zY2hlbWEiIGRvZXMgbm90IGV4 aXN0CiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi MV9mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg QWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJsZXMg ZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAgLTk3 NSwxMCArMTQ4MSwxMCBAQCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1YjFfZm9yc2NoZW1hIEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVz dDE7CiBFUlJPUjogIHNjaGVtYSAicHViX3Rlc3QxIiBpcyBhbHJlYWR5IG1lbWJlciBvZiBw dWJsaWNhdGlvbiAidGVzdHB1YjFfZm9yc2NoZW1hIgogXGRScCsgdGVzdHB1YjFfZm9yc2No ZW1hCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 YjFfZm9yc2NoZW1hCi0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8 IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2NoZW1hCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rl c3QxIgogICAgICJwdWJfdGVzdDIiCkBAIC05ODYsMTAgKzE0OTIsMTAgQEAgVGFibGVzIGZy b20gc2NoZW1hczoKIC0tIGFsdGVyIHB1YmxpY2F0aW9uIGRyb3Agc2NoZW1hCiBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViMV9mb3JzY2hlbWEgRFJPUCBBTEwgVEFCTEVTIElOIFNDSEVN QSBwdWJfdGVzdDI7CiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlv biB0ZXN0cHViMV9mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBm CiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAKQEAgLTk5NywxMCAr MTUwMywxMCBAQCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogQUxURVIgUFVCTElDQVRJT04gdGVz dHB1YjFfZm9yc2NoZW1hIERST1AgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QyOwog RVJST1I6ICB0YWJsZXMgZnJvbSBzY2hlbWEgInB1Yl90ZXN0MiIgYXJlIG5vdCBwYXJ0IG9m IHRoZSBwdWJsaWNhdGlvbgogXGRScCsgdGVzdHB1YjFfZm9yc2NoZW1hCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjFfZm9yc2NoZW1hCi0g ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290IAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBm ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwg ZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1YjFfZm9yc2NoZW1hCisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg QWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAgICAgICAg IHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAicHViX3Rlc3QxIgogCkBAIC0xMDA4 LDI5ICsxNTE0LDI5IEBAIFRhYmxlcyBmcm9tIHNjaGVtYXM6CiBBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViMV9mb3JzY2hlbWEgRFJPUCBBTEwgVEFCTEVTIElOIFNDSEVNQSBub25fZXhp c3RlbnRfc2NoZW1hOwogRVJST1I6ICBzY2hlbWEgIm5vbl9leGlzdGVudF9zY2hlbWEiIGRv ZXMgbm90IGV4aXN0CiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlv biB0ZXN0cHViMV9mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBm CiBUYWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAKIC0tIGRyb3AgYWxs IHNjaGVtYXMKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWIxX2ZvcnNjaGVtYSBEUk9QIEFM TCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsKIFxkUnArIHRlc3RwdWIxX2ZvcnNjaGVt YQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIx X2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2VzIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IHQgICAgICAgICB8IGYKICgxIHJvdykKIAogLS0gYWx0ZXIgcHVibGljYXRpb24gc2V0 IG11bHRpcGxlIHNjaGVtYQogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2NoZW1h IFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDEsIHB1Yl90ZXN0MjsKIFxkUnAr IHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ci0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVt YQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVu Y2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVu Y2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlcyBmcm9tIHNjaGVt YXM6CiAgICAgInB1Yl90ZXN0MSIKICAgICAicHViX3Rlc3QyIgpAQCAtMTAzOSwxMCArMTU0 NSwxMCBAQCBUYWJsZXMgZnJvbSBzY2hlbWFzOgogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 YjFfZm9yc2NoZW1hIFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBub25fZXhpc3RlbnRfc2No ZW1hOwogRVJST1I6ICBzY2hlbWEgIm5vbl9leGlzdGVudF9zY2hlbWEiIGRvZXMgbm90IGV4 aXN0CiBcZFJwKyB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMV9mb3JzY2hlbWEKLSAgICAgICAgICBPd25l ciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi MV9mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg QWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJsZXMg ZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAgICAgInB1Yl90ZXN0MiIKQEAgLTEw NTEsMTAgKzE1NTcsMTAgQEAgVGFibGVzIGZyb20gc2NoZW1hczoKIC0tIHJlbW92aW5nIHRo ZSBkdXBsaWNhdGUgc2NoZW1hcwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1YjFfZm9yc2No ZW1hIFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDEsIHB1Yl90ZXN0MTsKIFxk UnArIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tCi0gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIxX2ZvcnNj aGVtYQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2Vx dWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2Vx dWVuY2VzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlcyBmcm9tIHNj aGVtYXM6CiAgICAgInB1Yl90ZXN0MSIKIApAQCAtMTEyNCwxOCArMTYzMCwxOCBAQCBTRVQg Y2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1YjNfZm9yc2NoZW1hOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRl c3RwdWIzX2ZvcnNjaGVtYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWIzX2ZvcnNjaGVtYQotICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBWaWEgcm9vdCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0g cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzX2ZvcnNjaGVtYQor ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2Vz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2Vz IHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKICgxIHJvdykKIAogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1YjNfZm9yc2NoZW1hIFNFVCBBTEwgVEFCTEVTIElOIFNDSEVNQSBw dWJfdGVzdDE7CiBcZFJwKyB0ZXN0cHViM19mb3JzY2hlbWEKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViM19mb3JzY2hlbWEKLSAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViM19mb3JzY2hlbWEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFNlcXVlbmNlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVz c19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCB0ICAgICAgICAgfCBmCiBU YWJsZXMgZnJvbSBzY2hlbWFzOgogICAgICJwdWJfdGVzdDEiCiAKQEAgLTExNDUsMjAgKzE2 NTEsMjAgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hX2ZvcnRhYmxl IEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDEKIENSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViX2ZvcnRhYmxlX2ZvcnNjaGVtYSBGT1IgVEFCTEUgcHViX3Rlc3QyLnRibDEs IEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0MTsKIFJFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CiBcZFJwKyB0ZXN0cHViX2ZvcnNjaGVtYV9mb3J0YWJsZQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JzY2hlbWFfZm9ydGFibGUK LSAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfZm9yc2NoZW1hX2ZvcnRhYmxlCisgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBTZXF1ZW5jZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgdCAg ICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJfdGVzdDIudGJsMSIKIFRhYmxlcyBmcm9t IHNjaGVtYXM6CiAgICAgInB1Yl90ZXN0MSIKIAogXGRScCsgdGVzdHB1Yl9mb3J0YWJsZV9m b3JzY2hlbWEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfZm9ydGFibGVfZm9yc2NoZW1hCi0gICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZp YSByb290IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcnRhYmxlX2ZvcnNjaGVtYQor ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2Vz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgU2VxdWVuY2Vz IHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IHQgICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHViX3Rl c3QyLnRibDEiCiBUYWJsZXMgZnJvbSBzY2hlbWFzOgpAQCAtMTIwMiw0MCArMTcwOCw4NSBA QCBDUkVBVEUgU0NIRU1BIHNjaDE7CiBDUkVBVEUgU0NIRU1BIHNjaDI7CiBDUkVBVEUgVEFC TEUgc2NoMS50YmwxIChhIGludCkgUEFSVElUSU9OIEJZIFJBTkdFKGEpOwogQ1JFQVRFIFRB QkxFIHNjaDIudGJsMV9wYXJ0MSBQQVJUSVRJT04gT0Ygc2NoMS50YmwxIEZPUiBWQUxVRVMg RlJPTSAoMSkgdG8gKDEwKTsKK0NSRUFURSBTRVFVRU5DRSBzY2gxLnNlcTE7CitDUkVBVEUg U0VRVUVOQ0Ugc2NoMi5zZXEyOwogLS0gU2NoZW1hIHB1YmxpY2F0aW9uIHRoYXQgZG9lcyBu b3QgaW5jbHVkZSB0aGUgc2NoZW1hIHRoYXQgaGFzIHRoZSBwYXJlbnQgdGFibGUKIENSRUFU RSBQVUJMSUNBVElPTiBwdWIgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHNjaDIgV0lUSCAo UFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1Q9MSk7CitBTFRFUiBQVUJMSUNBVElPTiBwdWIg QUREIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHNjaDI7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1 YmxpY2F0aW9uX3RhYmxlczsKICBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFtZSAg CiAtLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQogIHB1YiAgICAgfCBzY2gy ICAgICAgIHwgdGJsMV9wYXJ0MQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIHBnX3B1Ymxp Y2F0aW9uX3NlcXVlbmNlczsKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHNlcXVlbmNlbmFt ZSAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBwdWIgICAgIHwg c2NoMiAgICAgICB8IHNlcTIKKygxIHJvdykKKwogRFJPUCBQVUJMSUNBVElPTiBwdWI7CiAt LSBUYWJsZSBwdWJsaWNhdGlvbiB0aGF0IGRvZXMgbm90IGluY2x1ZGUgdGhlIHBhcmVudCB0 YWJsZQogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YiBGT1IgVEFCTEUgc2NoMi50YmwxX3BhcnQx IFdJVEggKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UPTEpOworQUxURVIgUFVCTElDQVRJ T04gcHViIEFERCBTRVFVRU5DRSBzY2gyLnNlcTI7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1Ymxp Y2F0aW9uX3RhYmxlczsKICBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFtZSAgCiAt LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQogIHB1YiAgICAgfCBzY2gyICAg ICAgIHwgdGJsMV9wYXJ0MQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0 aW9uX3NlcXVlbmNlczsKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHNlcXVlbmNlbmFtZSAK Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBwdWIgICAgIHwgc2No MiAgICAgICB8IHNlcTIKKygxIHJvdykKKwogLS0gVGFibGUgcHVibGljYXRpb24gdGhhdCBp bmNsdWRlcyBib3RoIHRoZSBwYXJlbnQgdGFibGUgYW5kIHRoZSBjaGlsZCB0YWJsZQogQUxU RVIgUFVCTElDQVRJT04gcHViIEFERCBUQUJMRSBzY2gxLnRibDE7CitBTFRFUiBQVUJMSUNB VElPTiBwdWIgQUREIFNFUVVFTkNFIHNjaDEuc2VxMTsKIFNFTEVDVCAqIEZST00gcGdfcHVi bGljYXRpb25fdGFibGVzOwogIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1lIAog LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQogIHB1YiAgICAgfCBzY2gxICAg ICAgIHwgdGJsMQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3Nl cXVlbmNlczsKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHNlcXVlbmNlbmFtZSAKKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBwdWIgICAgIHwgc2NoMSAgICAg ICB8IHNlcTEKKyBwdWIgICAgIHwgc2NoMiAgICAgICB8IHNlcTIKKygyIHJvd3MpCisKIERS T1AgUFVCTElDQVRJT04gcHViOwogLS0gU2NoZW1hIHB1YmxpY2F0aW9uIHRoYXQgZG9lcyBu b3QgaW5jbHVkZSB0aGUgc2NoZW1hIHRoYXQgaGFzIHRoZSBwYXJlbnQgdGFibGUKIENSRUFU RSBQVUJMSUNBVElPTiBwdWIgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHNjaDIgV0lUSCAo UFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1Q9MCk7CitBTFRFUiBQVUJMSUNBVElPTiBwdWIg QUREIFNFUVVFTkNFIHNjaDEuc2VxMTsKIFNFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25f dGFibGVzOwogIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1lICAKIC0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCiAgcHViICAgICB8IHNjaDIgICAgICAgfCB0 YmwxX3BhcnQxCiAoMSByb3cpCiAKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2Vx dWVuY2VzOworIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgc2VxdWVuY2VuYW1lIAorLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLQorIHB1YiAgICAgfCBzY2gxICAgICAg IHwgc2VxMQorKDEgcm93KQorCitEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKKy0tIFNlcXVlbmNl IHB1YmxpY2F0aW9uCitDUkVBVEUgUFVCTElDQVRJT04gcHViIEZPUiBTRVFVRU5DRSBzY2gy LnNlcTI7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKKyBwdWJuYW1l IHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFtZSAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2Vx dWVuY2VzOworIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgc2VxdWVuY2VuYW1lIAorLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLQorIHB1YiAgICAgfCBzY2gyICAgICAg IHwgc2VxMgorKDEgcm93KQorCiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIC0tIFRhYmxlIHB1 YmxpY2F0aW9uIHRoYXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgcGFyZW50IHRhYmxlCiBDUkVB VEUgUFVCTElDQVRJT04gcHViIEZPUiBUQUJMRSBzY2gyLnRibDFfcGFydDEgV0lUSCAoUFVC TElTSF9WSUFfUEFSVElUSU9OX1JPT1Q9MCk7CkBAIC0xMjQ1LDE0ICsxNzk2LDI2IEBAIFNF TEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVzOwogIHB1YiAgICAgfCBzY2gyICAg ICAgIHwgdGJsMV9wYXJ0MQogKDEgcm93KQogCitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0 aW9uX3NlcXVlbmNlczsKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHNlcXVlbmNlbmFtZSAK Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKIC0t IFRhYmxlIHB1YmxpY2F0aW9uIHRoYXQgaW5jbHVkZXMgYm90aCB0aGUgcGFyZW50IHRhYmxl IGFuZCB0aGUgY2hpbGQgdGFibGUKIEFMVEVSIFBVQkxJQ0FUSU9OIHB1YiBBREQgVEFCTEUg c2NoMS50YmwxOworQUxURVIgUFVCTElDQVRJT04gcHViIEFERCBBTEwgU0VRVUVOQ0VTIElO IFNDSEVNQSBzY2gyOwogU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXM7CiAg cHVibmFtZSB8IHNjaGVtYW5hbWUgfCB0YWJsZW5hbWUgIAogLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KICBwdWIgICAgIHwgc2NoMiAgICAgICB8IHRibDFfcGFydDEK ICgxIHJvdykKIAorU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7Cisg cHVibmFtZSB8IHNjaGVtYW5hbWUgfCBzZXF1ZW5jZW5hbWUgCistLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgcHViICAgICB8IHNjaDIgICAgICAgfCBzZXEyCiso MSByb3cpCisKIERST1AgUFVCTElDQVRJT04gcHViOwogRFJPUCBUQUJMRSBzY2gyLnRibDFf cGFydDE7CiBEUk9QIFRBQkxFIHNjaDEudGJsMTsKQEAgLTEyNjgsOSArMTgzMSw4MSBAQCBT RUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKICBwdWIgICAgIHwgc2NoMSAg ICAgICB8IHRibDEKICgxIHJvdykKIAorU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9z ZXF1ZW5jZXM7CisgcHVibmFtZSB8IHNjaGVtYW5hbWUgfCBzZXF1ZW5jZW5hbWUgCistLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitEUk9QIFBV QkxJQ0FUSU9OIHB1YjsKKy0tIFNjaGVtYSBwdWJsaWNhdGlvbgorQ1JFQVRFIFBVQkxJQ0FU SU9OIHB1YiBGT1IgU0VRVUVOQ0Ugc2NoMi5zZXEyOworU0VMRUNUICogRlJPTSBwZ19wdWJs aWNhdGlvbl90YWJsZXM7CisgcHVibmFtZSB8IHNjaGVtYW5hbWUgfCB0YWJsZW5hbWUgCist LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1Qg KiBGUk9NIHBnX3B1YmxpY2F0aW9uX3NlcXVlbmNlczsKKyBwdWJuYW1lIHwgc2NoZW1hbmFt ZSB8IHNlcXVlbmNlbmFtZSAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0KKyBwdWIgICAgIHwgc2NoMiAgICAgICB8IHNlcTIKKygxIHJvdykKKworRFJPUCBQVUJM SUNBVElPTiBwdWI7CistLSBTZXF1ZW5jZSBwdWJsaWNhdGlvbgorQ1JFQVRFIFBVQkxJQ0FU SU9OIHB1YiBGT1IgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgc2NoMjsKK1NFTEVDVCAqIEZS T00gcGdfcHVibGljYXRpb25fdGFibGVzOworIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFi bGVuYW1lIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykK KworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7CisgcHVibmFtZSB8 IHNjaGVtYW5hbWUgfCBzZXF1ZW5jZW5hbWUgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tCisgcHViICAgICB8IHNjaDIgICAgICAgfCBzZXEyCisoMSByb3cpCisK K0FMVEVSIFBVQkxJQ0FUSU9OIHB1YiBBREQgU0VRVUVOQ0Ugc2NoMS5zZXExOworU0VMRUNU ICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXM7CisgcHVibmFtZSB8IHNjaGVtYW5hbWUg fCB0YWJsZW5hbWUgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCBy b3dzKQorCitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3NlcXVlbmNlczsKKyBwdWJu YW1lIHwgc2NoZW1hbmFtZSB8IHNlcXVlbmNlbmFtZSAKKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0KKyBwdWIgICAgIHwgc2NoMSAgICAgICB8IHNlcTEKKyBwdWIg ICAgIHwgc2NoMiAgICAgICB8IHNlcTIKKygyIHJvd3MpCisKK0FMVEVSIFBVQkxJQ0FUSU9O IHB1YiBEUk9QIFNFUVVFTkNFIHNjaDEuc2VxMTsKK1NFTEVDVCAqIEZST00gcGdfcHVibGlj YXRpb25fdGFibGVzOworIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1lIAorLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKworU0VMRUNUICog RlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7CisgcHVibmFtZSB8IHNjaGVtYW5hbWUg fCBzZXF1ZW5jZW5hbWUgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t CisgcHViICAgICB8IHNjaDIgICAgICAgfCBzZXEyCisoMSByb3cpCisKK0FMVEVSIFBVQkxJ Q0FUSU9OIHB1YiBBREQgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgc2NoMTsKK1NFTEVDVCAq IEZST00gcGdfcHVibGljYXRpb25fdGFibGVzOworIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwg dGFibGVuYW1lIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93 cykKKworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7CisgcHVibmFt ZSB8IHNjaGVtYW5hbWUgfCBzZXF1ZW5jZW5hbWUgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tCisgcHViICAgICB8IHNjaDEgICAgICAgfCBzZXExCisgcHViICAg ICB8IHNjaDIgICAgICAgfCBzZXEyCisoMiByb3dzKQorCiBSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOwogRFJPUCBQVUJMSUNBVElPTiBwdWI7CiBEUk9QIFRBQkxFIHNjaDEudGJsMTsK K0RST1AgU0VRVUVOQ0Ugc2NoMS5zZXExLCBzY2gyLnNlcTI7CiBEUk9QIFNDSEVNQSBzY2gx IGNhc2NhZGU7CiBEUk9QIFNDSEVNQSBzY2gyIGNhc2NhZGU7CiBSRVNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT047CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1 bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDZj YjYzODg4ODBkLi44YTViMjBlNjJjYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxl cy5vdXQKQEAgLTE0MjksNiArMTQyOSwxNCBAQCBwZ19wcmVwYXJlZF94YWN0c3wgU0VMRUNU IHAudHJhbnNhY3Rpb24sCiAgICBGUk9NICgocGdfcHJlcGFyZWRfeGFjdCgpIHAodHJhbnNh Y3Rpb24sIGdpZCwgcHJlcGFyZWQsIG93bmVyaWQsIGRiaWQpCiAgICAgIExFRlQgSk9JTiBw Z19hdXRoaWQgdSBPTiAoKHAub3duZXJpZCA9IHUub2lkKSkpCiAgICAgIExFRlQgSk9JTiBw Z19kYXRhYmFzZSBkIE9OICgocC5kYmlkID0gZC5vaWQpKSk7CitwZ19wdWJsaWNhdGlvbl9z ZXF1ZW5jZXN8IFNFTEVDVCBwLnB1Ym5hbWUsCisgICAgbi5uc3BuYW1lIEFTIHNjaGVtYW5h bWUsCisgICAgYy5yZWxuYW1lIEFTIHNlcXVlbmNlbmFtZQorICAgRlJPTSBwZ19wdWJsaWNh dGlvbiBwLAorICAgIExBVEVSQUwgcGdfZ2V0X3B1YmxpY2F0aW9uX3NlcXVlbmNlcygocC5w dWJuYW1lKTo6dGV4dCkgZ3BzKHJlbGlkKSwKKyAgICAocGdfY2xhc3MgYworICAgICBKT0lO IHBnX25hbWVzcGFjZSBuIE9OICgobi5vaWQgPSBjLnJlbG5hbWVzcGFjZSkpKQorICBXSEVS RSAoYy5vaWQgPSBncHMucmVsaWQpOwogcGdfcHVibGljYXRpb25fdGFibGVzfCBTRUxFQ1Qg cC5wdWJuYW1lLAogICAgIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIGMucmVsbmFt ZSBBUyB0YWJsZW5hbWUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVj dF9hZGRyZXNzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNx bAppbmRleCBhY2QwNDY4YTlkOS4uOWQ4MzIzNDY4ZDYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKQEAgLTQ5LDYgKzQ5LDcgQEAgQ1JFQVRFIFRSQU5T Rk9STSBGT1IgaW50IExBTkdVQUdFIFNRTCAoCiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9 ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gYWRkcl9wdWIgRk9SIFRBQkxFIGFkZHJf bnNwLmdlbnRhYmxlOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIGFkZHJfcHViX3NjaGVtYSBGT1Ig QUxMIFRBQkxFUyBJTiBTQ0hFTUEgYWRkcl9uc3A7CitDUkVBVEUgUFVCTElDQVRJT04gYWRk cl9wdWJfc2NoZW1hMiBGT1IgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgYWRkcl9uc3A7CiBS RVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNz X2FkZHJfc3ViIENPTk5FQ1RJT04gJycgUFVCTElDQVRJT04gYmFyIFdJVEggKGNvbm5lY3Qg PSBmYWxzZSwgc2xvdF9uYW1lID0gTk9ORSk7CiBDUkVBVEUgU1RBVElTVElDUyBhZGRyX25z cC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50YWJsZTsKQEAgLTE5 OCw3ICsxOTksOCBAQCBXSVRIIG9iamVjdHMgKHR5cGUsIG5hbWUsIGFyZ3MpIEFTIChWQUxV RVMKIAkJCQkoJ3RyYW5zZm9ybScsICd7aW50fScsICd7c3FsfScpLAogCQkJCSgnYWNjZXNz IG1ldGhvZCcsICd7YnRyZWV9JywgJ3t9JyksCiAJCQkJKCdwdWJsaWNhdGlvbicsICd7YWRk cl9wdWJ9JywgJ3t9JyksCi0JCQkJKCdwdWJsaWNhdGlvbiBuYW1lc3BhY2UnLCAne2FkZHJf bnNwfScsICd7YWRkcl9wdWJfc2NoZW1hfScpLAorCQkJCSgncHVibGljYXRpb24gbmFtZXNw YWNlJywgJ3thZGRyX25zcH0nLCAne2FkZHJfcHViX3NjaGVtYSx0fScpLAorCQkJCSgncHVi bGljYXRpb24gbmFtZXNwYWNlJywgJ3thZGRyX25zcH0nLCAne2FkZHJfcHViX3NjaGVtYTIs c30nKSwKIAkJCQkoJ3B1YmxpY2F0aW9uIHJlbGF0aW9uJywgJ3thZGRyX25zcCwgZ2VudGFi bGV9JywgJ3thZGRyX3B1Yn0nKSwKIAkJCQkoJ3N1YnNjcmlwdGlvbicsICd7cmVncmVzc19h ZGRyX3N1Yn0nLCAne30nKSwKIAkJCQkoJ3N0YXRpc3RpY3Mgb2JqZWN0JywgJ3thZGRyX25z cCwgZ2VudGFibGVfc3RhdH0nLCAne30nKQpAQCAtMjE4LDYgKzIyMCw3IEBAIFNFTEVDVCAo cGdfaWRlbnRpZnlfb2JqZWN0KGFkZHIxLmNsYXNzaWQsIGFkZHIxLm9iamlkLCBhZGRyMS5v YmpzdWJpZCkpLiosCiBEUk9QIEZPUkVJR04gREFUQSBXUkFQUEVSIGFkZHJfZmR3IENBU0NB REU7CiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViOwogRFJPUCBQVUJMSUNBVElPTiBhZGRy X3B1Yl9zY2hlbWE7CitEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViX3NjaGVtYTI7CiBEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX2FkZHJfc3ViOwogCiBEUk9QIFNDSEVNQSBhZGRyX25z cCBDQVNDQURFOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRp b24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDU0 NTdjNTZiMzNmLi5jMTk1ZTc1YzZmMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0 aW9uLnNxbApAQCAtMjcsNyArMjcsNyBAQCBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl94 eHggV0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSAndHJ1ZScsIHB1Ymxpcwog CiBcZFJwCiAKLUFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGVmYXVsdCBTRVQgKHB1Ymxp c2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZScpOworQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9kZWZhdWx0IFNFVCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCBz ZXF1ZW5jZScpOwogCiBcZFJwCiAKQEAgLTQ2LDYgKzQ2LDggQEAgQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMgU0VUIChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRl Jyk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwyIChpZCBzZXJpYWwgcHJpbWFyeSBrZXks IGRhdGEgdGV4dCk7CiAtLSBmYWlsIC0gY2FuJ3QgYWRkIHRvIGZvciBhbGwgdGFibGVzIHB1 YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcyBBREQg VEFCTEUgdGVzdHB1Yl90YmwyOworLS0gZmFpbCAtIGNhbid0IGFkZCBhIHRhYmxlIHVzaW5n IEFERCBTRVFVRU5DRSBjb21tYW5kCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFs bHRhYmxlcyBBREQgU0VRVUVOQ0UgdGVzdHB1Yl90YmwyOwogLS0gZmFpbCAtIGNhbid0IGRy b3AgZnJvbSBhbGwgdGFibGVzIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcmFsbHRhYmxlcyBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMjsKIC0tIGZhaWwgLSBj YW4ndCBhZGQgdG8gZm9yIGFsbCB0YWJsZXMgcHVibGljYXRpb24KQEAgLTEwNCw2ICsxMDYs MTgzIEBAIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFRBQkxFIHRlc3RwdWJf dGJsMywgdGVzdHB1Yl90YmwzYTsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3Rw dWI0OwogCistLS0gYWRkaW5nIHNlcXVlbmNlcworQ1JFQVRFIFNFUVVFTkNFIHRlc3RwdWJf c2VxMDsKK0NSRUFURSBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTE7CisKK1NFVCBj bGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcmFsbHNlcXVlbmNlcyBGT1IgQUxMIFNFUVVFTkNFUyBXSVRIIChwdWJsaXNoID0g J3NlcXVlbmNlJyk7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgU0VUIChwdWJsaXNoID0gJ2luc2VydCwg c2VxdWVuY2UnKTsKKworQ1JFQVRFIFNFUVVFTkNFIHRlc3RwdWJfc2VxMjsKKy0tIGZhaWwg LSBjYW4ndCBhZGQgdG8gZm9yIGFsbCBzZXF1ZW5jZXMgcHVibGljYXRpb24KK0FMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsc2VxdWVuY2VzIEFERCBTRVFVRU5DRSB0ZXN0cHVi X3NlcTI7CistLSBmYWlsIC0gY2FuJ3QgZHJvcCBmcm9tIGFsbCBzZXF1ZW5jZXMgcHVibGlj YXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsc2VxdWVuY2VzIERST1Ag U0VRVUVOQ0UgdGVzdHB1Yl9zZXEyOworLS0gZmFpbCAtIGNhbid0IGFkZCB0byBmb3IgYWxs IHNlcXVlbmNlcyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3Jh bGxzZXF1ZW5jZXMgU0VUIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2VxMTsKKworLS0g ZmFpbCAtIGNhbid0IGFkZCBzY2hlbWEgdG8gJ0ZPUiBBTEwgU0VRVUVOQ0VTJyBwdWJsaWNh dGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgQUREIEFM TCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworLS0gZmFpbCAtIGNhbid0IGRyb3Ag c2NoZW1hIGZyb20gJ0ZPUiBBTEwgU0VRVUVOQ0VTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3JhbGxzZXF1ZW5jZXMgRFJPUCBBTEwgU0VRVUVOQ0VTIElO IFNDSEVNQSBwdWJfdGVzdDsKKy0tIGZhaWwgLSBjYW4ndCBzZXQgc2NoZW1hIHRvICdGT1Ig QUxMIFNFUVVFTkNFUycgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf Zm9yYWxsc2VxdWVuY2VzIFNFVCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJfdGVzdDsK KworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZm9yc2VxdWVuY2UgRk9SIFNFUVVFTkNFIHRlc3RwdWJfc2VxMDsKK1JF U0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CistLSBzaG91bGQgYmUgYWJsZSB0byBhZGQgc2No ZW1hIHRvICdGT1IgU0VRVUVOQ0UnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2ZvcnNlcXVlbmNlIEFERCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJfdGVz dDsKK1xkUnArIHRlc3RwdWJfZm9yc2VxdWVuY2UKKy0tIGZhaWwgLSBjYW4ndCBhZGQgc2Vx dWVuY2UgZnJvbSB0aGUgc2NoZW1hIHdlIGFscmVhZHkgYWRkZWQKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZm9yc2VxdWVuY2UgQUREIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJf c2VxMTsKKy0tIGZhaWwgLSBjYW4ndCBhZGQgc2VxdWVuY2UgdXNpbmcgQUREIFRBQkxFIGNv bW1hbmQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2VxdWVuY2UgQUREIFRBQkxF IHB1Yl90ZXN0LnRlc3RwdWJfc2VxMTsKKy0tIHNob3VsZCBiZSBhYmxlIHRvIGRyb3Agc2No ZW1hIGZyb20gJ0ZPUiBTRVFVRU5DRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZm9yc2VxdWVuY2UgRFJPUCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJf dGVzdDsKK1xkUnArIHRlc3RwdWJfZm9yc2VxdWVuY2UKKy0tIHNob3VsZCBiZSBhYmxlIHRv IHNldCBzY2hlbWEgdG8gJ0ZPUiBTRVFVRU5DRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZm9yc2VxdWVuY2UgU0VUIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1B IHB1Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9mb3JzZXF1ZW5jZQorCitTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3Jz Y2hlbWEgRk9SIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworUkVTRVQgY2xp ZW50X21pbl9tZXNzYWdlczsKKy0tIGZhaWwgLSBjYW4ndCBjcmVhdGUgcHVibGljYXRpb24g d2l0aCBzY2hlbWEgYW5kIHNlcXVlbmNlIG9mIHRoZSBzYW1lIHNjaGVtYQorQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9yX3NlcV9zY2hlbWEgRk9SIEFMTCBTRVFVRU5DRVMgSU4g U0NIRU1BIHB1Yl90ZXN0LCBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTE7CistLSBm YWlsIC0gY2FuJ3QgYWRkIGEgc2VxdWVuY2Ugb2YgdGhlIHNhbWUgc2NoZW1hIHRvIHRoZSBz Y2hlbWEgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1h IEFERCBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTE7CistLSBmYWlsIC0gY2FuJ3Qg ZHJvcCBhIHNlcXVlbmNlIGZyb20gdGhlIHNjaGVtYSBwdWJsaWNhdGlvbiB3aGljaCBpc24n dCBpbiB0aGUKKy0tIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cnNjaGVtYSBEUk9QIFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2VxMTsKKy0tIHNob3Vs ZCBiZSBhYmxlIHRvIHNldCBzZXF1ZW5jZSB0byBzY2hlbWEgcHVibGljYXRpb24KK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hIFNFVCBTRVFVRU5DRSBwdWJfdGVzdC50 ZXN0cHViX3NlcTE7CitcZFJwKyB0ZXN0cHViX2ZvcnNjaGVtYQorCitTRUxFQ1QgcHVibmFt ZSwgcHViYWxsdGFibGVzLCBwdWJhbGxzZXF1ZW5jZXMgRlJPTSBwZ19wdWJsaWNhdGlvbiBX SEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZm9yYWxsc2VxdWVuY2VzJzsKK1xkKyBwdWJfdGVz dC50ZXN0cHViX3NlcTEKK1xkUnArIHRlc3RwdWJfZm9yYWxsc2VxdWVuY2VzCitEUk9QIFNF UVVFTkNFIHRlc3RwdWJfc2VxMCwgcHViX3Rlc3QudGVzdHB1Yl9zZXExLCB0ZXN0cHViX3Nl cTI7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsc2VxdWVuY2VzLCB0ZXN0cHVi X2ZvcnNlcXVlbmNlLCB0ZXN0cHViX2ZvcnNjaGVtYTsKKworLS0gUHVibGljYXRpb24gbWl4 aW5nIHRhYmxlcyBhbmQgc2VxdWVuY2VzCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdF UlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9taXg7CitSRVNFVCBjbGllbnRf bWluX21lc3NhZ2VzOworCitDUkVBVEUgU0VRVUVOQ0UgdGVzdHB1Yl9zZXExOworQ1JFQVRF IFNFUVVFTkNFIHB1Yl90ZXN0LnRlc3RwdWJfc2VxMjsKKworQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9taXggQUREIFNFUVVFTkNFIHRlc3RwdWJfc2VxMSwgVEFCTEUgdGVzdHB1Yl90 YmwxOworXGRScCsgdGVzdHB1Yl9taXgKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9t aXggQUREIEFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIHB1Yl90ZXN0LCBBTEwgVEFCTEVTIElO IFNDSEVNQSBwdWJfdGVzdDsKK1xkUnArIHRlc3RwdWJfbWl4CisKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfbWl4IERST1AgQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgcHViX3Rlc3Q7 CitcZFJwKyB0ZXN0cHViX21peAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX21peCBE Uk9QIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OworXGRScCsgdGVzdHB1Yl9taXgK KworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX21peDsKK0RST1AgU0VRVUVOQ0UgdGVzdHB1 Yl9zZXExOworRFJPUCBTRVFVRU5DRSBwdWJfdGVzdC50ZXN0cHViX3NlcTI7CisKKworLS0g bWFrZSBzdXJlIHdlIHJlcGxpY2F0ZSBvbmx5IHRoZSBjb3JyZWN0IHJlbGF0aW9uIHR5cGUK K0NSRUFURSBTQ0hFTUEgcHViX3Rlc3QxOworQ1JFQVRFIFNFUVVFTkNFIHB1Yl90ZXN0MS50 ZXN0X3NlcTE7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3QxLnRlc3RfdGJsMSAoYSBpbnQgcHJp bWFyeSBrZXksIGIgaW50KTsKKworQ1JFQVRFIFNDSEVNQSBwdWJfdGVzdDI7CitDUkVBVEUg U0VRVUVOQ0UgcHViX3Rlc3QyLnRlc3Rfc2VxMjsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdDIu dGVzdF90YmwyIChhIGludCBwcmltYXJ5IGtleSwgYiBpbnQpOworCitTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hl bWFzOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKKworLS0gYWRkIHRhYmxlcyBmcm9t IG9uZSBzY2hlbWEsIHNlcXVlbmNlcyBmcm9tIHRoZSBvdGhlcgorQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9zY2hlbWFzIEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDI7 CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYXMgQUREIEFMTCBTRVFVRU5DRVMg SU4gU0NIRU1BIHB1Yl90ZXN0MTsKKworXGRScCsgdGVzdHB1Yl9zY2hlbWFzCisKK1xkbisg cHViX3Rlc3QxCitcZG4rIHB1Yl90ZXN0MgorCitcZCsgcHViX3Rlc3QxLnRlc3Rfc2VxMTsK K1xkKyBwdWJfdGVzdDEudGVzdF90YmwxOworCitcZCsgcHViX3Rlc3QyLnRlc3Rfc2VxMjsK K1xkKyBwdWJfdGVzdDIudGVzdF90YmwyOworCistLSBhZGQgdGhlIG90aGVyIG9iamVjdCB0 eXBlIGZyb20gZWFjaCBzY2hlbWEKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1h cyBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3Rlc3QxOworQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9zY2hlbWFzIEFERCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJfdGVz dDI7CisKK1xkUnArIHRlc3RwdWJfc2NoZW1hcworCitcZG4rIHB1Yl90ZXN0MQorXGRuKyBw dWJfdGVzdDIKKworXGQrIHB1Yl90ZXN0MS50ZXN0X3NlcTE7CitcZCsgcHViX3Rlc3QxLnRl c3RfdGJsMTsKKworXGQrIHB1Yl90ZXN0Mi50ZXN0X3NlcTI7CitcZCsgcHViX3Rlc3QyLnRl c3RfdGJsMjsKKworLS0gbm93IGRyb3AgdGhlIG9iamVjdCB0eXBlIGFkZGVkIGZpcnN0CitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYXMgRFJPUCBBTEwgVEFCTEVTIElOIFND SEVNQSBwdWJfdGVzdDI7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYXMgRFJP UCBBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSBwdWJfdGVzdDE7CisKK1xkUnArIHRlc3RwdWJf c2NoZW1hcworCitcZG4rIHB1Yl90ZXN0MQorXGRuKyBwdWJfdGVzdDIKKworXGQrIHB1Yl90 ZXN0MS50ZXN0X3NlcTE7CitcZCsgcHViX3Rlc3QxLnRlc3RfdGJsMTsKKworXGQrIHB1Yl90 ZXN0Mi50ZXN0X3NlcTI7CitcZCsgcHViX3Rlc3QyLnRlc3RfdGJsMjsKKworLS0gc2hvdWxk IGZhaWwgKHB1YmxpY2F0aW9uIGNvbnRhaW5zIHRoZSB3aG9sZSBzY2hlbWEpCitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYXMgQUREIFRBQkxFIHB1Yl90ZXN0MS50ZXN0X3Ri bDE7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3NjaGVtYXMgQUREIFNFUVVFTkNFIHB1 Yl90ZXN0Mi50ZXN0X3NlcTI7CisKKy0tIHNob3VsZCB3b3JrIChkaWZmZXJlbnQgc2NoZW1h KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFzIEFERCBUQUJMRSBwdWJfdGVz dDIudGVzdF90YmwyOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFzIEFERCBT RVFVRU5DRSBwdWJfdGVzdDEudGVzdF9zZXExOworCitcZFJwKyB0ZXN0cHViX3NjaGVtYXMK KworXGQrIHB1Yl90ZXN0MS50ZXN0X3NlcTE7CitcZCsgcHViX3Rlc3QxLnRlc3RfdGJsMTsK KworXGQrIHB1Yl90ZXN0Mi50ZXN0X3NlcTI7CitcZCsgcHViX3Rlc3QyLnRlc3RfdGJsMjsK KworLS0gbm93IGRyb3AgdGhlIGV4cGxpY2l0bHkgYWRkZWQgb2JqZWN0cyBhZ2FpbgorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9zY2hlbWFzIERST1AgVEFCTEUgcHViX3Rlc3QyLnRl c3RfdGJsMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hcyBEUk9QIFNFUVVF TkNFIHB1Yl90ZXN0MS50ZXN0X3NlcTE7CisKK1xkUnArIHRlc3RwdWJfc2NoZW1hcworCitc ZCsgcHViX3Rlc3QxLnRlc3Rfc2VxMTsKK1xkKyBwdWJfdGVzdDEudGVzdF90YmwxOworCitc ZCsgcHViX3Rlc3QyLnRlc3Rfc2VxMjsKK1xkKyBwdWJfdGVzdDIudGVzdF90YmwyOworCitE Uk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfc2NoZW1hczsKK0RST1AgVEFCTEUgcHViX3Rlc3Qx LnRlc3RfdGJsMSwgcHViX3Rlc3QyLnRlc3RfdGJsMjsKK0RST1AgU0VRVUVOQ0UgcHViX3Rl c3QxLnRlc3Rfc2VxMSwgcHViX3Rlc3QyLnRlc3Rfc2VxMjsKK0RST1AgU0NIRU1BIHB1Yl90 ZXN0MSwgcHViX3Rlc3QyOworCiAtLSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9mb3JwYXJ0ZWQ7CkBAIC03MTcsMzIgKzg5Niw1MSBAQCBDUkVBVEUgU0NIRU1B IHNjaDE7CiBDUkVBVEUgU0NIRU1BIHNjaDI7CiBDUkVBVEUgVEFCTEUgc2NoMS50YmwxIChh IGludCkgUEFSVElUSU9OIEJZIFJBTkdFKGEpOwogQ1JFQVRFIFRBQkxFIHNjaDIudGJsMV9w YXJ0MSBQQVJUSVRJT04gT0Ygc2NoMS50YmwxIEZPUiBWQUxVRVMgRlJPTSAoMSkgdG8gKDEw KTsKK0NSRUFURSBTRVFVRU5DRSBzY2gxLnNlcTE7CitDUkVBVEUgU0VRVUVOQ0Ugc2NoMi5z ZXEyOwogLS0gU2NoZW1hIHB1YmxpY2F0aW9uIHRoYXQgZG9lcyBub3QgaW5jbHVkZSB0aGUg c2NoZW1hIHRoYXQgaGFzIHRoZSBwYXJlbnQgdGFibGUKIENSRUFURSBQVUJMSUNBVElPTiBw dWIgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHNjaDIgV0lUSCAoUFVCTElTSF9WSUFfUEFS VElUSU9OX1JPT1Q9MSk7CitBTFRFUiBQVUJMSUNBVElPTiBwdWIgQUREIEFMTCBTRVFVRU5D RVMgSU4gU0NIRU1BIHNjaDI7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxl czsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOwogCiBEUk9QIFBV QkxJQ0FUSU9OIHB1YjsKIC0tIFRhYmxlIHB1YmxpY2F0aW9uIHRoYXQgZG9lcyBub3QgaW5j bHVkZSB0aGUgcGFyZW50IHRhYmxlCiBDUkVBVEUgUFVCTElDQVRJT04gcHViIEZPUiBUQUJM RSBzY2gyLnRibDFfcGFydDEgV0lUSCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1Q9MSk7 CitBTFRFUiBQVUJMSUNBVElPTiBwdWIgQUREIFNFUVVFTkNFIHNjaDIuc2VxMjsKIFNFTEVD VCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVzOworU0VMRUNUICogRlJPTSBwZ19wdWJs aWNhdGlvbl9zZXF1ZW5jZXM7CiAKIC0tIFRhYmxlIHB1YmxpY2F0aW9uIHRoYXQgaW5jbHVk ZXMgYm90aCB0aGUgcGFyZW50IHRhYmxlIGFuZCB0aGUgY2hpbGQgdGFibGUKIEFMVEVSIFBV QkxJQ0FUSU9OIHB1YiBBREQgVEFCTEUgc2NoMS50YmwxOworQUxURVIgUFVCTElDQVRJT04g cHViIEFERCBTRVFVRU5DRSBzY2gxLnNlcTE7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0 aW9uX3RhYmxlczsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOwog CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIC0tIFNjaGVtYSBwdWJsaWNhdGlvbiB0aGF0IGRv ZXMgbm90IGluY2x1ZGUgdGhlIHNjaGVtYSB0aGF0IGhhcyB0aGUgcGFyZW50IHRhYmxlCiBD UkVBVEUgUFVCTElDQVRJT04gcHViIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBzY2gyIFdJ VEggKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UPTApOworQUxURVIgUFVCTElDQVRJT04g cHViIEFERCBTRVFVRU5DRSBzY2gxLnNlcTE7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0 aW9uX3RhYmxlczsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOwor CitEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKKy0tIFNlcXVlbmNlIHB1YmxpY2F0aW9uCitDUkVB VEUgUFVCTElDQVRJT04gcHViIEZPUiBTRVFVRU5DRSBzY2gyLnNlcTI7CiBTRUxFQ1QgKiBG Uk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRp b25fc2VxdWVuY2VzOwogCiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIC0tIFRhYmxlIHB1Ymxp Y2F0aW9uIHRoYXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgcGFyZW50IHRhYmxlCiBDUkVBVEUg UFVCTElDQVRJT04gcHViIEZPUiBUQUJMRSBzY2gyLnRibDFfcGFydDEgV0lUSCAoUFVCTElT SF9WSUFfUEFSVElUSU9OX1JPT1Q9MCk7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9u X3RhYmxlczsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOwogCiAt LSBUYWJsZSBwdWJsaWNhdGlvbiB0aGF0IGluY2x1ZGVzIGJvdGggdGhlIHBhcmVudCB0YWJs ZSBhbmQgdGhlIGNoaWxkIHRhYmxlCiBBTFRFUiBQVUJMSUNBVElPTiBwdWIgQUREIFRBQkxF IHNjaDEudGJsMTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHB1YiBBREQgQUxMIFNFUVVFTkNFUyBJ TiBTQ0hFTUEgc2NoMjsKIFNFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVzOwor U0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7CiAKIERST1AgUFVCTElD QVRJT04gcHViOwogRFJPUCBUQUJMRSBzY2gyLnRibDFfcGFydDE7CkBAIC03NTUsMTAgKzk1 MywzNiBAQCBDUkVBVEUgVEFCTEUgc2NoMS50YmwxX3BhcnQzIChhIGludCkgUEFSVElUSU9O IEJZIFJBTkdFKGEpOwogQUxURVIgVEFCTEUgc2NoMS50YmwxIEFUVEFDSCBQQVJUSVRJT04g c2NoMS50YmwxX3BhcnQzIEZPUiBWQUxVRVMgRlJPTSAoMjApIHRvICgzMCk7CiBDUkVBVEUg UFVCTElDQVRJT04gcHViIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBzY2gxIFdJVEggKFBV QkxJU0hfVklBX1BBUlRJVElPTl9ST09UPTEpOwogU0VMRUNUICogRlJPTSBwZ19wdWJsaWNh dGlvbl90YWJsZXM7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3NlcXVlbmNlczsK KworRFJPUCBQVUJMSUNBVElPTiBwdWI7CistLSBTY2hlbWEgcHVibGljYXRpb24KK0NSRUFU RSBQVUJMSUNBVElPTiBwdWIgRk9SIFNFUVVFTkNFIHNjaDIuc2VxMjsKK1NFTEVDVCAqIEZS T00gcGdfcHVibGljYXRpb25fdGFibGVzOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlv bl9zZXF1ZW5jZXM7CisKK0RST1AgUFVCTElDQVRJT04gcHViOworLS0gU2VxdWVuY2UgcHVi bGljYXRpb24KK0NSRUFURSBQVUJMSUNBVElPTiBwdWIgRk9SIEFMTCBTRVFVRU5DRVMgSU4g U0NIRU1BIHNjaDI7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKK1NF TEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fc2VxdWVuY2VzOworCitBTFRFUiBQVUJMSUNB VElPTiBwdWIgQUREIFNFUVVFTkNFIHNjaDEuc2VxMTsKK1NFTEVDVCAqIEZST00gcGdfcHVi bGljYXRpb25fdGFibGVzOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5j ZXM7CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHB1YiBEUk9QIFNFUVVFTkNFIHNjaDEuc2VxMTsK K1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVzOworU0VMRUNUICogRlJPTSBw Z19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHB1YiBBREQg QUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEgc2NoMTsKK1NFTEVDVCAqIEZST00gcGdfcHVibGlj YXRpb25fdGFibGVzOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl9zZXF1ZW5jZXM7 CiAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsK IERST1AgVEFCTEUgc2NoMS50YmwxOworRFJPUCBTRVFVRU5DRSBzY2gxLnNlcTEsIHNjaDIu c2VxMjsKIERST1AgU0NIRU1BIHNjaDEgY2FzY2FkZTsKIERST1AgU0NIRU1BIHNjaDIgY2Fz Y2FkZTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3NlcXVl bmNlcy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9zZXF1ZW5jZXMucGwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlhZTNjMDNkN2QxCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX3NlcXVlbmNlcy5w bApAQCAtMCwwICsxLDIwMiBAQAorCisjIENvcHlyaWdodCAoYykgMjAyMSwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBUaGlzIHRlc3RzIHRoYXQgc2VxdWVu Y2VzIGFyZSByZXBsaWNhdGVkIGNvcnJlY3RseSBieSBsb2dpY2FsIHJlcGxpY2F0aW9uCit1 c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0 ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKwor IyBJbml0aWFsaXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0 Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlz aGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxp c2hlci0+c3RhcnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vi c2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicp OworJG5vZGVfc3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2Fs Jyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKKworIyBDcmVhdGUgc29tZSBwcmVleGlz dGluZyBjb250ZW50IG9uIHB1Ymxpc2hlcgorbXkgJGRkbCA9IHFxKAorCUNSRUFURSBUQUJM RSBzZXFfdGVzdCAodiBCSUdJTlQpOworCUNSRUFURSBTRVFVRU5DRSBzOworKTsKKworIyBT ZXR1cCBzdHJ1Y3R1cmUgb24gdGhlIHB1Ymxpc2hlcgorJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgJGRkbCk7CisKKyMgQ3JlYXRlIHNvbWUgdGhlIHNhbWUgc3Ry dWN0dXJlIG9uIHN1YnNjcmliZXIsIGFuZCBhbiBleHRyYSBzZXF1ZW5jZSB0aGF0CisjIHdl J2xsIGNyZWF0ZSBvbiB0aGUgcHVibGlzaGVyIGxhdGVyCiskZGRsID0gcXEoCisJQ1JFQVRF IFRBQkxFIHNlcV90ZXN0ICh2IEJJR0lOVCk7CisJQ1JFQVRFIFNFUVVFTkNFIHM7CisJQ1JF QVRFIFNFUVVFTkNFIHMyOworKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICRkZGwpOworCisjIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRpb24KK215ICRw dWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1l PXBvc3RncmVzJzsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBQVUJMSUNBVElPTiBzZXFfcHViIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJQ0FUSU9OIHNlcV9wdWIgQUREIFNF UVVFTkNFIHMiKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIkNSRUFURSBTVUJTQ1JJUFRJT04gc2VxX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVy X2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHNlcV9wdWIiCispOworCiskbm9kZV9wdWJsaXNoZXIt PndhaXRfZm9yX2NhdGNodXAoJ3NlcV9zdWInKTsKKworIyBXYWl0IGZvciBpbml0aWFsIHN5 bmMgdG8gZmluaXNoIGFzIHdlbGwKK215ICRzeW5jZWRfcXVlcnkgPQorICAiU0VMRUNUIGNv dW50KDEpID0gMCBGUk9NIHBnX3N1YnNjcmlwdGlvbl9yZWwgV0hFUkUgc3JzdWJzdGF0ZSBO T1QgSU4gKCdzJywgJ3InKTsiOworJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRp bCgncG9zdGdyZXMnLCAkc3luY2VkX3F1ZXJ5KQorICBvciBkaWUgIlRpbWVkIG91dCB3aGls ZSB3YWl0aW5nIGZvciBzdWJzY3JpYmVyIHRvIHN5bmNocm9uaXplIGRhdGEiOworCisjIElu c2VydCBpbml0aWFsIHRlc3QgZGF0YQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJ J3Bvc3RncmVzJywgcXEoCisJLS0gZ2VuZXJhdGUgYSBudW1iZXIgb2YgdmFsdWVzIHVzaW5n IHRoZSBzZXF1ZW5jZQorCUlOU0VSVCBJTlRPIHNlcV90ZXN0IFNFTEVDVCBuZXh0dmFsKCdz JykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDApOworKSk7CisKKyRub2RlX3B1Ymxpc2hl ci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2VxX3N1YicpOworCisjIENoZWNrIHRoZSBkYXRhIG9u IHN1YnNjcmliZXIKK215ICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo CisJJ3Bvc3RncmVzJywgcXEoCisJU0VMRUNUICogRlJPTSBzOworKSk7CisKK2lzKCAkcmVz dWx0LCAnMTMyfDB8dCcsCisJJ2luaXRpYWwgdGVzdCBkYXRhIHJlcGxpY2F0ZWQnKTsKKwor CisjIGFkdmFuY2UgdGhlIHNlcXVlbmNlIGluIGEgcm9sbGVkLWJhY2sgdHJhbnNhY3Rpb24g LSB0aGUgcm9sbGJhY2sKKyMgZG9lcyBub3Qgd2FpdCBmb3IgdGhlIHJlcGxpY2F0aW9uLCBz byB3ZSBjb3VsZCBzZWUgYW55IGludGVybWVkaWF0ZSBzdGF0ZQorIyBzbyBkbyBzb21ldGhp bmcgZWxzZSBhZnRlciB0aGUgdGVzdCwgdG8gZW5zdXJlIHdlIHdhaXQgZm9yIGV2ZXJ5dGhp bmcKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUJF R0lOOworCUlOU0VSVCBJTlRPIHNlcV90ZXN0IFNFTEVDVCBuZXh0dmFsKCdzJykgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDApOworCVJPTExCQUNLOworCUlOU0VSVCBJTlRPIHNlcV90 ZXN0IFZBTFVFUyAoLTEpOworKSk7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0 Y2h1cCgnc2VxX3N1YicpOworCisjIENoZWNrIHRoZSBkYXRhIG9uIHN1YnNjcmliZXIKKyRy ZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEo CisJU0VMRUNUICogRlJPTSBzOworKSk7CisKK2lzKCAkcmVzdWx0LCAnMjMxfDB8dCcsCisJ J2FkdmFuY2Ugc2VxdWVuY2UgaW4gcm9sbGVkLWJhY2sgdHJhbnNhY3Rpb24nKTsKKworCisj IGNyZWF0ZSBhIG5ldyBzZXF1ZW5jZSBhbmQgcm9sbCBpdCBiYWNrIC0gc2hvdWxkIG5vdCBi ZSByZXBsaWNhdGVkLCBkdWUgdG8KKyMgdGhlIHRyYW5zYWN0aW9uYWwgYmVoYXZpb3IKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUJFR0lOOwor CUNSRUFURSBTRVFVRU5DRSBzMjsKKwlBTFRFUiBQVUJMSUNBVElPTiBzZXFfcHViIEFERCBT RVFVRU5DRSBzMjsKKwlJTlNFUlQgSU5UTyBzZXFfdGVzdCBTRUxFQ1QgbmV4dHZhbCgnczIn KSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMCk7CisJUk9MTEJBQ0s7CispKTsKKworJG5v ZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzZXFfc3ViJyk7CisKKyMgQ2hlY2sg dGhlIGRhdGEgb24gc3Vic2NyaWJlcgorJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlTRUxFQ1QgKiBGUk9NIHMyOworKSk7CisK K2lzKCAkcmVzdWx0LCAnMXwwfGYnLAorCSdjcmVhdGUgbmV3IHNlcXVlbmNlIGFuZCByb2xs IGl0IGJhY2snKTsKKworCisjIGNyZWF0ZSBhIG5ldyBzZXF1ZW5jZSwgYWR2YW5jZSBpdCBp biBhIHJvbGxlZC1iYWNrIHRyYW5zYWN0aW9uLCBidXQgY29tbWl0CisjIHRoZSBjcmVhdGUg LSB0aGUgYWR2YW5jZSBzaG91bGQgYmUgcmVwbGljYXRlZCBuZXZlcnRoZWxlc3MKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUJFR0lOOworCUNS RUFURSBTRVFVRU5DRSBzMjsKKwlBTFRFUiBQVUJMSUNBVElPTiBzZXFfcHViIEFERCBTRVFV RU5DRSBzMjsKKwlTQVZFUE9JTlQgc3AxOworCUlOU0VSVCBJTlRPIHNlcV90ZXN0IFNFTEVD VCBuZXh0dmFsKCdzMicpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwKTsKKwlST0xMQkFD SyBUTyBzcDE7CisJQ09NTUlUOworKSk7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3Jf Y2F0Y2h1cCgnc2VxX3N1YicpOworCisjIFdhaXQgZm9yIHN5bmMgb2YgdGhlIHNlY29uZCBz ZXF1ZW5jZSB3ZSBqdXN0IGFkZGVkIHRvIGZpbmlzaAorJHN5bmNlZF9xdWVyeSA9CisgICJT RUxFQ1QgY291bnQoMSkgPSAwIEZST00gcGdfc3Vic2NyaXB0aW9uX3JlbCBXSEVSRSBzcnN1 YnN0YXRlIE5PVCBJTiAoJ3MnLCAncicpOyI7Ciskbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1 ZXJ5X3VudGlsKCdwb3N0Z3JlcycsICRzeW5jZWRfcXVlcnkpCisgIG9yIGRpZSAiVGltZWQg b3V0IHdoaWxlIHdhaXRpbmcgZm9yIHN1YnNjcmliZXIgdG8gc3luY2hyb25pemUgZGF0YSI7 CisKKyMgQ2hlY2sgdGhlIGRhdGEgb24gc3Vic2NyaWJlcgorJHJlc3VsdCA9ICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlTRUxFQ1QgKiBGUk9N IHMyOworKSk7CisKK2lzKCAkcmVzdWx0LCAnMTMyfDB8dCcsCisJJ2NyZWF0ZSBzZXF1ZW5j ZSwgYWR2YW5jZSBpdCBpbiByb2xsZWQtYmFjayB0cmFuc2FjdGlvbiwgYnV0IGNvbW1pdCB0 aGUgY3JlYXRlJyk7CisKKworIyBhZHZhbmNlIHRoZSBuZXcgc2VxdWVuY2UgaW4gYSB0cmFu c2FjdGlvbiwgYW5kIHJvbGwgaXQgYmFjayAtIHRoZSByb2xsYmFjaworIyBkb2VzIG5vdCB3 YWl0IGZvciB0aGUgcmVwbGljYXRpb24sIHNvIHdlIGNvdWxkIHNlZSBhbnkgaW50ZXJtZWRp YXRlIHN0YXRlCisjIHNvIGRvIHNvbWV0aGluZyBlbHNlIGFmdGVyIHRoZSB0ZXN0LCB0byBl bnN1cmUgd2Ugd2FpdCBmb3IgZXZlcnl0aGluZworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQkVHSU47CisJSU5TRVJUIElOVE8gc2VxX3Rlc3Qg U0VMRUNUIG5leHR2YWwoJ3MyJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDApOworCVJP TExCQUNLOworCUlOU0VSVCBJTlRPIHNlcV90ZXN0IFZBTFVFUyAoLTEpOworKSk7CisKKyRu b2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2VxX3N1YicpOworCisjIENoZWNr IHRoZSBkYXRhIG9uIHN1YnNjcmliZXIKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJU0VMRUNUICogRlJPTSBzMjsKKykpOwor CitpcyggJHJlc3VsdCwgJzIzMXwwfHQnLAorCSdhZHZhbmNlIHRoZSBuZXcgc2VxdWVuY2Ug aW4gYSB0cmFuc2FjdGlvbiBhbmQgcm9sbCBpdCBiYWNrJyk7CisKKworIyBhZHZhbmNlIHRo ZSBzZXF1ZW5jZSBpbiBhIHN1YnRyYW5zYWN0aW9uIC0gdGhlIHN1YnRyYW5zYWN0aW9uIGdl dHMgcm9sbGVkCisjIGJhY2ssIGJ1dCBjb21taXQgdGhlIG1haW4gb25lIC0gdGhlIGNoYW5n ZXMgc2hvdWxkIHN0aWxsIGJlIHJlcGxpY2F0ZWQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUJFR0lOOworCVNBVkVQT0lOVCBzMTsKKwlJTlNF UlQgSU5UTyBzZXFfdGVzdCBTRUxFQ1QgbmV4dHZhbCgnczInKSBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwMCk7CisJUk9MTEJBQ0sgVE8gczE7CisJQ09NTUlUOworKSk7CisKKyRub2Rl X3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc2VxX3N1YicpOworCisjIENoZWNrIHRo ZSBkYXRhIG9uIHN1YnNjcmliZXIKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJU0VMRUNUICogRlJPTSBzMjsKKykpOworCitp cyggJHJlc3VsdCwgJzMzMHwwfHQnLAorCSdhZHZhbmNlIHNlcXVlbmNlIGluIGEgc3VidHJh bnNhY3Rpb24nKTsKKworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzQuMQoK --------------3alo4sAQFY1kmPB0isUQaeTG--