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 1ncs2M-0006ZJ-RB for pgsql-hackers@arkaria.postgresql.org; Fri, 08 Apr 2022 17:04:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ncs2L-0003Jw-J4 for pgsql-hackers@arkaria.postgresql.org; Fri, 08 Apr 2022 17:04:41 +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 1ncs2L-0003Jm-02 for pgsql-hackers@lists.postgresql.org; Fri, 08 Apr 2022 17:04:41 +0000 Received: from mail-io1-xd35.google.com ([2607:f8b0:4864:20::d35]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1ncs2F-0000jN-3d for pgsql-hackers@postgresql.org; Fri, 08 Apr 2022 17:04:39 +0000 Received: by mail-io1-xd35.google.com with SMTP id b16so11376305ioz.3 for ; Fri, 08 Apr 2022 10:04:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crunchydata.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ed2V3ItkXTud3FJK6u3gTKbJOE7qgvmOByJSoX4+fkA=; b=lzJRwSzu0Q7t8VNEtf0gpyxE8uNCw4v9nVapX+lPGq8Xg8Zgvcrj7bXo5TwbHUnnVO 7wBe/HghHkTd+0fc/dSGd6c7Iii+sT1EIgtSVw4nlDGHbuqTms7xMDzHwmN8OPm8fEcv L4zQ7rh3c8N0DBYKX+I9Zp5pUWs6YwTzqo+kQclKozxL/7HvQmuKXyhlbEzslmz5a9bp ExFJGvj+B5SMMqKJK9OgqZS83hjjFs+LDRJhLHixROPN+qzk8yRaJVb/jHEjP7j4Zpba oFbmPMd2gcdBSGRbtyebVgg6SLAP73MBcECCMLC6kYCz40hOPl/HJ56JmgP7Rh3/mZ0Y jadQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ed2V3ItkXTud3FJK6u3gTKbJOE7qgvmOByJSoX4+fkA=; b=TgLKFzkJLg9VxDIHrd5wtvEe3vxk3ZKFyAO4cqJJI9uTxZD6TDHHVrN1U/wthe+PgX yZWKFWEHlkN09GAgCG2qmZLJLDuc77kJ4wPK3QQakP6AqLZ9osAtMJlBVjCXgmqXmgOk iuKrXiVdfH7Pj2SYpjtG6Vd9jvSebNyw/6SsThQbZX1pUn+8vnLYvLhOrRzGp54tx4Vq jpH4RiXqMUvS1KP9lMyy7kg9kldn9Ksz382gXirFiLRPz3gFvRZzT2NYRgb5LX0neLo4 0u6SEB+RVZqmIMb8OkZGL+4z8Pt1EwpIlsoJnz9f1k9zrwPvprfFRwy2Yw6dbthS30rz FaZA== X-Gm-Message-State: AOAM5324Z+8SMsf4iWdAsmznxftqOQIhLu/oYfVmZVTrDsxk0UbPqHiG VHiTVsoNi6RQZiMw668JJtfYqXch6GyTNWzLfwFydyPPyi0= X-Google-Smtp-Source: ABdhPJwq7MVNdpl8XSV/tyDYqtjB5U/MANXOvvnM5mcQX8Q0ry5DBnXgH5srJrHIr4C6Elcux82BFQGe6JMYUDLoR+0= X-Received: by 2002:a05:6602:185a:b0:645:d914:35e9 with SMTP id d26-20020a056602185a00b00645d91435e9mr8798987ioi.154.1649437472862; Fri, 08 Apr 2022 10:04:32 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Joshua Brindle Date: Fri, 8 Apr 2022 13:04:22 -0400 Message-ID: Subject: Re: [PoC/RFC] Multiple passwords, interval expirations To: PostgreSQL-development Cc: Stephen Frost Content-Type: multipart/mixed; boundary="000000000000a6d4f605dc27965c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a6d4f605dc27965c Content-Type: text/plain; charset="UTF-8" > > On Wed, Mar 2, 2022 at 9:58 AM Joshua Brindle > > wrote: > > > > > > This is not intended for PG15. > > > > > > Attached are a proof of concept patchset to implement multiple valid > > > passwords, which have independent expirations, set by a GUC or SQL > > > using an interval. > > > > > > > > > > > > postgres=# select * from pg_auth_password ; > > > roleid | name | > > > password > > > | expiration > > > --------+---------+------------------------------------------------------------------------------------------------------------------- > > > --------------------+------------------------------- > > > 10 | __def__ | > > > SCRAM-SHA-256$4096:yGiHIYPwc2az7xj/7TIyTA==$OQL/AEcEY1yOCNbrZEj4zDvNnOLpIqltOW1uQvosLvc=:9VRRppuIkSrwhiBN5ePy8wB1y > > > zDa/2uX0WUx6gXi93E= | > > > 16384 | __def__ | > > > SCRAM-SHA-256$4096:AAAAAAAAAAAAAAAAAAAAAA==$1Ivp4d+vAWxowpuGEn05KR9lxyGOms3yy85k3D7XpBg=:k8xUjU6xrJG17PMGa/Zya6pAE > > > /M7pEDaoIFmWvNIEUg= | 2022-03-02 06:52:31.217193-08 > > > 16384 | newone | > > > SCRAM-SHA-256$4096:AAAAAAAAAAAAAAAAAAAAAA==$WK3+41CCGDognSnZrtpHhv00z9LuVUjHR1hWq8T1+iE=:w2C5GuhgiEB7wXqPxYfxBKB+e > > > hm4h6Oeif1uzpPIFVk= | 2022-03-03 06:47:53.728159-08 > > > (3 rows) > > > > There's obviously a salt problem here that I'll need to fix that > > apparently snuck in at the last rebase, but this brings up one aspect > > of the patchset I didn't mention in the original email: > > > > Attached are fixed patches rebased against the lastest master. > > > > For the SCRAM protocol to work as is with existing clients the salt > > for each password must be the same. Right now ALTER USER will find and > > reuse the salt, but a user passing in a pre-computed SCRAM secret > > currently has no way to get the salt. > > > > for \password (we'll need a new one that takes a password name) I was > > thinking libpq could hold onto the salt that was used to log in, but > > for outside computation we'll need some way for the client to request > > it. > > > > None of that is done yet. Now that the commitfest is over these are rebased on master. It's unclear if I will be able to continue working on this featureset, this email address will be inactive after today. --000000000000a6d4f605dc27965c Content-Type: application/x-patch; name="v2-0003-Per-password-expiration.patch" Content-Disposition: attachment; filename="v2-0003-Per-password-expiration.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l1qnst691 RnJvbSA2YTUyYjJjMTZlOTllMmQ5YzczNDUyNWNjMGI3NWEzNTYxZTBlMmM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NodWEgQnJpbmRsZSA8am9zaHVhLmJyaW5kbGVAY3J1bmNo eWRhdGEuY29tPgpEYXRlOiBXZWQsIDIgTWFyIDIwMjIgMDY6MDc6NDAgLTA4MDAKU3ViamVjdDog W1BBVENIIHYyIDMvM10gUGVyLXBhc3N3b3JkIGV4cGlyYXRpb24KClRvIGJ1aWxkIG9uIHRoZSBt dWx0aS1wYXNzd29yZCBzdXBwb3J0IHRoaXMKYWRkcyBwZXItcGFzc3dvcmQgZXhwaXJhdGlvbiwg ZWl0aGVyIHBhc3NlZCBpbiB2aWEgQUxURVIgUk9MRS9DUkVBVEUKUk9MRSB3aXRoIHRoZSBncmFt bWFyIEVYUElSRVMgSU4sIG9yIHZpYSBhIHN5c3RlbS13aWRlIHNldHRpbmcKY2FsbGVkIHBhc3N3 b3JkX3ZhbGlkX2R1cmF0aW9uCgpTaWduZWQtb2ZmLWJ5OiBKb3NodWEgQnJpbmRsZSA8am9zaHVh LmJyaW5kbGVAY3J1bmNoeWRhdGEuY29tPgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3VzZXIu YyAgICAgICAgICAgIHwgMTIxICsrKysrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3ZhcmlhYmxlLmMgICAgICAgIHwgMTA1ICsrKysrKysrKysrKysrKysrKysrKwog c3JjL2JhY2tlbmQvbGlicHEvYXV0aC5jICAgICAgICAgICAgICAgfCAgIDkgKy0KIHNyYy9iYWNr ZW5kL2xpYnBxL2NyeXB0LmMgICAgICAgICAgICAgIHwgIDM4ICsrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICB8ICAxMSArKy0KIHNyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjLmMgICAgICAgICAgIHwgIDEzICsrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19h dXRoX3Bhc3N3b3JkLmggfCAgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvdXNlci5oICAgICAg ICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFyaWFibGUuaCAgICAgICAgfCAg IDQgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgfCAgIDEgKwogMTAg ZmlsZXMgY2hhbmdlZCwgMjkyIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3VzZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3VzZXIuYwppbmRleCA0MTE3ZTU4ODQwYS4uZTEzZjk4NGFlMDkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3VzZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy91c2VyLmMK QEAgLTQ4LDggKzQ4LDkgQEAKIE9pZAkJCWJpbmFyeV91cGdyYWRlX25leHRfcGdfYXV0aGlkX29p ZCA9IEludmFsaWRPaWQ7CiAKIAotLyogR1VDIHBhcmFtZXRlciAqLworLyogR1VDIHBhcmFtZXRl cnMgKi8KIGludAkJCVBhc3N3b3JkX2VuY3J5cHRpb24gPSBQQVNTV09SRF9UWVBFX1NDUkFNX1NI QV8yNTY7CitJbnRlcnZhbCAqZGVmYXVsdF9wYXNzd29yZF9kdXJhdGlvbiA9IE5VTEw7CiAKIC8q IGRlZmF1bHQgcGFzc3dvcmQgbmFtZSAqLwogY29uc3QgY2hhciogZGVmYXVsdF9wYXNzbmFtZSA9 ICJfX2RlZl9fIjsKQEAgLTE2Nyw2ICsxNjgsODQgQEAgdmFsaWRhdGVfYW5kX2dldF9zYWx0KGNo YXIgKnJvbGVuYW1lLCBjaGFyICoqc2FsdCwgY29uc3QgY2hhciAqKmxvZ2RldGFpbCkKIAlyZXR1 cm4gdHJ1ZTsKIH0KIAorc3RhdGljCitEYXR1bQorZXhwaXJlc19pbl9kYXR1bShEZWZFbGVtICpw YXNzRXhwaXJlc0luKQoreworCUludGVydmFsICppbnRlcnZhbDsKKwlOb2RlCSAgICphcmc7CisJ QV9Db25zdCAgICAqY29uOworCVRpbWVzdGFtcFR6IG5vdyA9IEdldEN1cnJlbnRUaW1lc3RhbXAo KTsKKwlEYXR1bQkJcGFzc0V4cGlyZXNJbl9kYXR1bTsKKwljaGFyICpkYXRlb3V0OworCisJaWYg KGRlZmF1bHRfcGFzc3dvcmRfZHVyYXRpb24gIT0gTlVMTCkgCisJeworCQkvKiBUaGUgZGVmYXVs dCBkdXJhdGlvbiBHVUMgaXMgc2V0LCB1c2UgaXQgaWYgbm90aGluZyBjYW1lIGZyb20gU1FMCisJ CSAqIG9yIGlmIHNvbWV0aGluZyBjYW1lIGZyb20gU1FMLCByZWplY3QgaXQgaWYgbm90IGZyb20g YSBzdXBlcnVzZXIKKwkJICovCisKKwkJaWYgKHBhc3NFeHBpcmVzSW4gIT0gTlVMTCkKKwkJCWlm ICghc3VwZXJ1c2VyKCkpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNP REVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJCQkgZXJybXNnKCJtdXN0IGJlIHN1cGVy dXNlciB0byBvdmVycmlkZSBwYXNzd29yZF92YWxpZGl0eV9kdXJhdGlvbiBHVUMiKSkpOworCQkJ ZWxzZQorCQkJCWdvdG8gYnlwYXNzOworCQllbHNlCisJCXsKKwkJCXBhc3NFeHBpcmVzSW5fZGF0 dW0gPSAgRGlyZWN0RnVuY3Rpb25DYWxsMih0aW1lc3RhbXB0el9wbF9pbnRlcnZhbCwKKwkJCQkJ CQkJCQlUaW1lc3RhbXBHZXREYXR1bShub3cpLAorCQkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0o ZGVmYXVsdF9wYXNzd29yZF9kdXJhdGlvbikpOworCisJCQlkYXRlb3V0ID0KKwkJCQlEYXR1bUdl dENTdHJpbmcoRGlyZWN0RnVuY3Rpb25DYWxsMSh0aW1lc3RhbXBfb3V0LAorCQkJCQkJCQkJCQkJ CXBhc3NFeHBpcmVzSW5fZGF0dW0pKTsKKworCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJKGVycm1z ZygiUGFzc3dvcmQgd2lsbCBleHBpcmUgYXQ6IFwiJXNcIiAoZnJvbSBHVUMpIiwgZGF0ZW91dCkp KTsKKworCQkJcmV0dXJuIHBhc3NFeHBpcmVzSW5fZGF0dW07CisJCX0KKwl9CisKKwlpZiAocGFz c0V4cGlyZXNJbiA9PSBOVUxMKSAJLyogTm8gZHVyYXRpb24gcmVxdWVzdGVkIHZpYSBTUUwgYW5k IG5vIHN5c3RlbSBkZWZhdWx0LCBubyBleHBpcmF0aW9uICovCisJCXJldHVybiBQb2ludGVyR2V0 RGF0dW0oTlVMTCk7CisKK2J5cGFzczoKKyAJYXJnID0gKE5vZGUgKilwYXNzRXhwaXJlc0luLT5h cmc7CisJaWYgKElzQShhcmcsIFR5cGVDYXN0KSkKKwl7CisJCVR5cGVDYXN0ICAgKnRjID0gKFR5 cGVDYXN0ICopIHBhc3NFeHBpcmVzSW4tPmFyZzsKKwkJYXJnID0gdGMtPmFyZzsKKwl9CisKKwlp ZiAoIUlzQShhcmcsIEFfQ29uc3QpKQorCXsKKwkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBu b2RlIHR5cGU6ICVkIiwgKGludCkgbm9kZVRhZyhhcmcpKTsKKwkJcmV0dXJuIFBvaW50ZXJHZXRE YXR1bShOVUxMKTsKKwl9CisJY29uID0gKEFfQ29uc3QgKikgYXJnOworCisJaW50ZXJ2YWwgPSBE YXR1bUdldEludGVydmFsUChEaXJlY3RGdW5jdGlvbkNhbGwzKGludGVydmFsX2luLAorCQkJCQkJ CQlDU3RyaW5nR2V0RGF0dW0oc3RyVmFsKCZjb24tPnZhbCkpLAorCQkJCQkJCQlPYmplY3RJZEdl dERhdHVtKEludmFsaWRPaWQpLAorCQkJCQkJCQlJbnQzMkdldERhdHVtKC0xKSkpOworCisJcGFz c0V4cGlyZXNJbl9kYXR1bSA9ICBEaXJlY3RGdW5jdGlvbkNhbGwyKHRpbWVzdGFtcHR6X3BsX2lu dGVydmFsLAorCQkJCQkJCQkJCVRpbWVzdGFtcEdldERhdHVtKG5vdyksCisJCQkJCQkJCQkJUG9p bnRlckdldERhdHVtKGludGVydmFsKSk7CisKKwlkYXRlb3V0ID0KKwkJCQlEYXR1bUdldENTdHJp bmcoRGlyZWN0RnVuY3Rpb25DYWxsMSh0aW1lc3RhbXBfb3V0LAorCQkJCQkJCQkJCQkJCXBhc3NF eHBpcmVzSW5fZGF0dW0pKTsKKworCWVyZXBvcnQoTk9USUNFLAorCQkoZXJybXNnKCJQYXNzd29y ZCB3aWxsIGV4cGlyZSBhdDogXCIlc1wiIChmcm9tIFNRTCkiLCBkYXRlb3V0KSkpOworCisJcmV0 dXJuIHBhc3NFeHBpcmVzSW5fZGF0dW07Cit9CisKIC8qCiAgKiBDUkVBVEUgUk9MRQogICovCkBA IC0yMTEsNyArMjkwLDcgQEAgQ3JlYXRlUm9sZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVJv bGVTdG10ICpzdG10KQogCURlZkVsZW0gICAgKmR2YWxpZFVudGlsID0gTlVMTDsKIAlEZWZFbGVt ICAgICpkYnlwYXNzUkxTID0gTlVMTDsKIAlEZWZFbGVtICAgICpkcGFzc05hbWUgPSBOVUxMOwot CisJRGVmRWxlbSAgICAqZHBhc3NFeHBpcmVzSW4gPSBOVUxMOwogCiAJLyogVGhlIGRlZmF1bHRz IGNhbiB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgb3JpZ2luYWwgc3RhdGVtZW50IHR5cGUgKi8KIAlz d2l0Y2ggKHN0bXQtPnN0bXRfdHlwZSkKQEAgLTMyMCw2ICszOTksMTIgQEAgQ3JlYXRlUm9sZShQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVJvbGVTdG10ICpzdG10KQogCQkJCWVycm9yQ29uZmxp Y3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOwogCQkJZHBhc3NOYW1lID0gZGVmZWw7CiAJCX0K KwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiZXhwaXJlc2luIikgPT0gMCkKKwkJ eworCQkJaWYgKGRwYXNzRXhwaXJlc0luKQorCQkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRl ZmVsLCBwc3RhdGUpOworCQkJZHBhc3NFeHBpcmVzSW4gPSBkZWZlbDsKKwkJfQogCiAJCWVsc2UK IAkJCWVsb2coRVJST1IsICJvcHRpb24gXCIlc1wiIG5vdCByZWNvZ25pemVkIiwKQEAgLTUwOCw2 ICs1OTMsNyBAQCBDcmVhdGVSb2xlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUm9sZVN0bXQg KnN0bXQpCiAJCVJlbGF0aW9uCXBnX2F1dGhfcGFzc3dvcmRfcmVsOwogCQlUdXBsZURlc2MJcGdf YXV0aF9wYXNzd29yZF9kc2M7CiAJCUhlYXBUdXBsZQluZXdfdHVwbGU7CisJCURhdHVtCQlwYXNz RXhwaXJlc0luX2RhdHVtOwogCiAJCS8qCiAJCSAqIERvbid0IGFsbG93IGFuIGVtcHR5IHBhc3N3 b3JkLiBMaWJwcSB0cmVhdHMgYW4gZW1wdHkgcGFzc3dvcmQgdGhlCkBAIC01MjksMTkgKzYxNSwy NyBAQCBDcmVhdGVSb2xlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUm9sZVN0bXQgKnN0bXQp CiAJCX0KIAkJZWxzZQogCQl7CisJCQlNZW1TZXQobmV3X3Bhc3N3b3JkX3JlY29yZCwgMCwgc2l6 ZW9mKG5ld19wYXNzd29yZF9yZWNvcmQpKTsKKwkJCU1lbVNldChuZXdfcGFzc3dvcmRfcmVjb3Jk X251bGxzLCBmYWxzZSwgc2l6ZW9mKG5ld19wYXNzd29yZF9yZWNvcmRfbnVsbHMpKTsKKworCQkJ cGFzc0V4cGlyZXNJbl9kYXR1bSA9IGV4cGlyZXNfaW5fZGF0dW0oZHBhc3NFeHBpcmVzSW4pOwor CQkJaWYgKHBhc3NFeHBpcmVzSW5fZGF0dW0gIT0gUG9pbnRlckdldERhdHVtKE5VTEwpKQorCQkJ CW5ld19wYXNzd29yZF9yZWNvcmRbQW51bV9wZ19hdXRoX3Bhc3N3b3JkX2V4cGlyYXRpb24gLSAx XSA9IHBhc3NFeHBpcmVzSW5fZGF0dW07CisJCQllbHNlCisJCQkJbmV3X3Bhc3N3b3JkX3JlY29y ZF9udWxsc1tBbnVtX3BnX2F1dGhfcGFzc3dvcmRfZXhwaXJhdGlvbiAtIDFdID0gdHJ1ZTsKKwkK IAkJCS8qIEVuY3J5cHQgdGhlIHBhc3N3b3JkIHRvIHRoZSByZXF1ZXN0ZWQgZm9ybWF0LiAqLwog CQkJdmFsaWRhdGVfYW5kX2dldF9zYWx0KHN0bXQtPnJvbGUsICZzYWx0LCAmbG9nZGV0YWlsKTsK IAkJCXNoYWRvd19wYXNzID0gZW5jcnlwdF9wYXNzd29yZChQYXNzd29yZF9lbmNyeXB0aW9uLCBz YWx0LAogCQkJCQkJCQkJCSAgIHBhc3N3b3JkKTsKIAotCQkJTWVtU2V0KG5ld19wYXNzd29yZF9y ZWNvcmQsIDAsIHNpemVvZihuZXdfcGFzc3dvcmRfcmVjb3JkKSk7Ci0JCQlNZW1TZXQobmV3X3Bh c3N3b3JkX3JlY29yZF9udWxscywgZmFsc2UsIHNpemVvZihuZXdfcGFzc3dvcmRfcmVjb3JkX251 bGxzKSk7CiAJCQlpZiAocGFzc25hbWUgIT0gTlVMTCkKIAkJCQluZXdfcGFzc3dvcmRfcmVjb3Jk W0FudW1fcGdfYXV0aF9wYXNzd29yZF9uYW1lIC0gMV0gPSAKIAkJCQkJCQkJRGlyZWN0RnVuY3Rp b25DYWxsMShuYW1laW4sIENTdHJpbmdHZXREYXR1bShwYXNzbmFtZSkpOwogCQkJZWxzZQogCQkJ CW5ld19wYXNzd29yZF9yZWNvcmRbQW51bV9wZ19hdXRoX3Bhc3N3b3JkX25hbWUgLSAxXSA9IAog CQkJCQkJCQlEaXJlY3RGdW5jdGlvbkNhbGwxKG5hbWVpbiwgQ1N0cmluZ0dldERhdHVtKGRlZmF1 bHRfcGFzc25hbWUpKTsKKwogCQkJLyogb3BlbiBwYXNzd29yZCB0YWJsZSBhbmQgaW5zZXJ0IGl0 LiAqLwogCQkJcGdfYXV0aF9wYXNzd29yZF9yZWwgPSB0YWJsZV9vcGVuKEF1dGhQYXNzd29yZFJl bGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCQkJcGdfYXV0aF9wYXNzd29yZF9kc2MgPSBS ZWxhdGlvbkdldERlc2NyKHBnX2F1dGhfcGFzc3dvcmRfcmVsKTsKQEAgLTY0OCw2ICs3NDIsNyBA QCBBbHRlclJvbGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclJvbGVTdG10ICpzdG10KQogCWNo YXIJICAgKnZhbGlkVW50aWwgPSBOVUxMOwkvKiB0aW1lIHRoZSBsb2dpbiBpcyB2YWxpZCB1bnRp bCAqLwogCURhdHVtCQl2YWxpZFVudGlsX2RhdHVtOwkvKiBzYW1lLCBhcyB0aW1lc3RhbXB0eiBE YXR1bSAqLwogCWJvb2wJCXZhbGlkVW50aWxfbnVsbDsKKwlEYXR1bQkJcGFzc0V4cGlyZXNJbl9k YXR1bTsgLyogVGltZSBwZXJpb2QgdW50aWwgcGFzc3dvcmQgZXhwaXJlcyAqLwogCURlZkVsZW0g ICAgKmRwYXNzd29yZCA9IE5VTEw7CiAJRGVmRWxlbSAgICAqZGlzc3VwZXIgPSBOVUxMOwogCURl ZkVsZW0gICAgKmRpbmhlcml0ID0gTlVMTDsKQEAgLTY2MCw2ICs3NTUsNyBAQCBBbHRlclJvbGUo UGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclJvbGVTdG10ICpzdG10KQogCURlZkVsZW0gICAgKmR2 YWxpZFVudGlsID0gTlVMTDsKIAlEZWZFbGVtICAgICpkYnlwYXNzUkxTID0gTlVMTDsKIAlEZWZF bGVtICAgICpkcGFzc05hbWUgPSBOVUxMOworCURlZkVsZW0JICAgKmRwYXNzRXhwaXJlc0luID0g TlVMTDsKIAlPaWQJCQlyb2xlaWQ7CiAKIAljaGVja19yb2xlc3BlY19uYW1lKHN0bXQtPnJvbGUs CkBAIC03NDMsNiArODM5LDEyIEBAIEFsdGVyUm9sZShQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVy Um9sZVN0bXQgKnN0bXQpCiAJCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0 ZSk7CiAJCQlkcGFzc05hbWUgPSBkZWZlbDsKIAkJfQorCQllbHNlIGlmIChzdHJjbXAoZGVmZWwt PmRlZm5hbWUsICJleHBpcmVzaW4iKSA9PSAwKQorCQl7CisJCQlpZiAoZHBhc3NFeHBpcmVzSW4p CisJCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisJCQlkcGFzc0V4 cGlyZXNJbiA9IGRlZmVsOworCQl9CiAJCWVsc2UKIAkJCWVsb2coRVJST1IsICJvcHRpb24gXCIl c1wiIG5vdCByZWNvZ25pemVkIiwKIAkJCQkgZGVmZWwtPmRlZm5hbWUpOwpAQCAtNzYzLDYgKzg2 NSw3IEBAIEFsdGVyUm9sZShQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUm9sZVN0bXQgKnN0bXQp CiAJaWYgKGRwYXNzTmFtZSkKIAkJcGFzc25hbWUgPSBzdHJWYWwoZHBhc3NOYW1lLT5hcmcpOwog CisKIAkvKgogCSAqIFNjYW4gdGhlIHBnX2F1dGhpZCByZWxhdGlvbiB0byBiZSBjZXJ0YWluIHRo ZSB1c2VyIGV4aXN0cy4KIAkgKi8KQEAgLTg0OSw2ICs5NTIsMTMgQEAgQWx0ZXJSb2xlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQWx0ZXJSb2xlU3RtdCAqc3RtdCkKIAlNZW1TZXQobmV3X3Bhc3N3b3Jk X3JlY29yZF9udWxscywgZmFsc2UsIHNpemVvZihuZXdfcGFzc3dvcmRfcmVjb3JkX251bGxzKSk7 CiAJTWVtU2V0KG5ld19wYXNzd29yZF9yZWNvcmRfcmVwbCwgZmFsc2UsIHNpemVvZihuZXdfcGFz c3dvcmRfcmVjb3JkX3JlcGwpKTsKIAorCXBhc3NFeHBpcmVzSW5fZGF0dW0gPSBleHBpcmVzX2lu X2RhdHVtKGRwYXNzRXhwaXJlc0luKTsKKwlpZiAocGFzc0V4cGlyZXNJbl9kYXR1bSAhPSBQb2lu dGVyR2V0RGF0dW0oTlVMTCkpIHsKKwkJbmV3X3Bhc3N3b3JkX3JlY29yZFtBbnVtX3BnX2F1dGhf cGFzc3dvcmRfZXhwaXJhdGlvbiAtIDFdID0gcGFzc0V4cGlyZXNJbl9kYXR1bTsKKwkJbmV3X3Bh c3N3b3JkX3JlY29yZF9yZXBsW0FudW1fcGdfYXV0aF9wYXNzd29yZF9leHBpcmF0aW9uIC0gMV0g PSB0cnVlOworCX0KKwllbHNlCisJCW5ld19wYXNzd29yZF9yZWNvcmRfbnVsbHNbQW51bV9wZ19h dXRoX3Bhc3N3b3JkX2V4cGlyYXRpb24gLSAxXSA9IHRydWU7CiAKIAkvKgogCSAqIGlzc3VwZXIv Y3JlYXRlcm9sZS9ldGMKQEAgLTk1OCw3ICsxMDY4LDggQEAgQWx0ZXJSb2xlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQWx0ZXJSb2xlU3RtdCAqc3RtdCkKIAlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwog CWhlYXBfZnJlZXR1cGxlKG5ld190dXBsZSk7CiAKLQlpZiAobmV3X3Bhc3N3b3JkX3JlY29yZF9y ZXBsW0FudW1fcGdfYXV0aF9wYXNzd29yZF9wYXNzd29yZCAtIDFdID09IHRydWUpCisJaWYgKG5l d19wYXNzd29yZF9yZWNvcmRfcmVwbFtBbnVtX3BnX2F1dGhfcGFzc3dvcmRfcGFzc3dvcmQgLSAx XSA9PSB0cnVlIAorCQl8fCBuZXdfcGFzc3dvcmRfcmVjb3JkX3JlcGxbQW51bV9wZ19hdXRoX3Bh c3N3b3JkX2V4cGlyYXRpb24gLSAxXSA9PSB0cnVlKQogCXsKIAkJUmVsYXRpb24JcGdfYXV0aF9w YXNzd29yZF9yZWw7CiAJCVR1cGxlRGVzYwlwZ19hdXRoX3Bhc3N3b3JkX2RzYzsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy92YXJpYWJsZS5jCmluZGV4IGU1ZGRjZGEwYjRhLi5jYTg1YTEwYjgwYiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy92YXJpYWJsZS5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hsb2cuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Zhcmlh YmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvdXNlci5oIgogI2luY2x1ZGUgIm1iL3BnX3djaGFy LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAidXRpbHMvYWNsLmgiCkBAIC05 MzMsMyArOTM0LDEwNyBAQCBzaG93X3JvbGUodm9pZCkKIAkvKiBPdGhlcndpc2Ugd2UgY2FuIGp1 c3QgdXNlIHRoZSBHVUMgc3RyaW5nICovCiAJcmV0dXJuIHJvbGVfc3RyaW5nID8gcm9sZV9zdHJp bmcgOiAibm9uZSI7CiB9CisKKworLyoKKyAqIGNoZWNrX3Bhc3N3b3JkX2R1cmF0aW9uOiBHVUMg Y2hlY2tfaG9vayBmb3IgcGFzc3dvcmRfZHVyYXRpb24KKyAqLworYm9vbAorY2hlY2tfcGFzc3dv cmRfZHVyYXRpb24oY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNl KQoreworCUludGVydmFsCSpuZXdfaW50ZXJ2YWw7CisJY2hhcgkgICAqZW5kcHRyOworCisJY29u c3QgY2hhciAqdmFsdWVwdHIgPSAqbmV3dmFsOworCWNoYXIJICAgKnZhbDsKKwlJbnRlcnZhbCAg ICppbnRlcnZhbDsKKworCWlmIChuZXd2YWwgPT0gTlVMTCB8fCAqbmV3dmFsID09IE5VTEwpIHsK KwkJZXh0cmEgPSBOVUxMOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwllbG9nKE5PVElDRSwiU2V0 dGluZyBwYXNzd29yZCBkdXJhdGlvbiB0byBcIiVzXCIiLAorCQkJCQkqbmV3dmFsKTsKKworCXdo aWxlIChpc3NwYWNlKCh1bnNpZ25lZCBjaGFyKSAqdmFsdWVwdHIpKQorCQl2YWx1ZXB0cisrOwor CWlmICgqdmFsdWVwdHIgIT0gJ1wnJykgeworCQl2YWwgPSBwc3RyZHVwKHZhbHVlcHRyKTsKKwl9 CisJZWxzZQorCXsKKwkJdmFsdWVwdHIrKzsKKwkJdmFsID0gcHN0cmR1cCh2YWx1ZXB0cik7CisJ CS8qIENoZWNrIGFuZCByZW1vdmUgdHJhaWxpbmcgcXVvdGUgKi8KKwkJZW5kcHRyID0gc3RyY2hy KHZhbCwgJ1wnJyk7CisJCWlmICghZW5kcHRyIHx8IGVuZHB0clsxXSAhPSAnXDAnKQorCQl7CisJ CQlwZnJlZSh2YWwpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisJCSplbmRwdHIgPSAnXDAnOwor CX0KKworCS8qCisJCSogVHJ5IHRvIHBhcnNlIGl0LiAgWFhYIGFuIGludmFsaWQgaW50ZXJ2YWwg Zm9ybWF0IHdpbGwgcmVzdWx0IGluCisJCSogZXJlcG9ydChFUlJPUiksIHdoaWNoIGlzIG5vdCBk ZXNpcmFibGUgZm9yIEdVQy4gIFdlIGRpZCB3aGF0IHdlCisJCSogY291bGQgdG8gZ3VhcmQgYWdh aW5zdCB0aGlzIGluIGZsYXR0ZW5fc2V0X3ZhcmlhYmxlX2FyZ3MsIGJ1dCBhCisJCSogc3RyaW5n IGNvbWluZyBpbiBmcm9tIHBvc3RncmVzcWwuY29uZiBtaWdodCBjb250YWluIGFueXRoaW5nLgor CQkqLworCWludGVydmFsID0gRGF0dW1HZXRJbnRlcnZhbFAoRGlyZWN0RnVuY3Rpb25DYWxsMyhp bnRlcnZhbF9pbiwKKwkJCQkJCQkJCQkJCQkJQ1N0cmluZ0dldERhdHVtKHZhbCksCisJCQkJCQkJ CQkJCQkJCU9iamVjdElkR2V0RGF0dW0oSW52YWxpZE9pZCksCisJCQkJCQkJCQkJCQkJCUludDMy R2V0RGF0dW0oLTEpKSk7CisKKwlwZnJlZSh2YWwpOworCisJaWYgKCFpbnRlcnZhbCkgeworCQly ZXR1cm4gZmFsc2U7CisJfQorCisJbmV3X2ludGVydmFsID0gbWFsbG9jKHNpemVvZihJbnRlcnZh bCkpOworCW1lbWNweShuZXdfaW50ZXJ2YWwsIGludGVydmFsLCBzaXplb2YoSW50ZXJ2YWwpKTsK KwlwZnJlZShpbnRlcnZhbCk7CisKKwkvKgorCSAqIFBhc3MgYmFjayBkYXRhIGZvciBhc3NpZ25f cGFzc3dvcmRfdmFsaWRpdHkgdG8gdXNlCisJICovCisJKmV4dHJhID0gbWFsbG9jKHNpemVvZihJ bnRlcnZhbCAqKSk7CisJaWYgKCEqZXh0cmEpCisJCXJldHVybiBmYWxzZTsKKwkqKChJbnRlcnZh bCAqKikgKmV4dHJhKSA9IG5ld19pbnRlcnZhbDsKKworCXJldHVybiB0cnVlOworfQorCisvKgor ICogYXNzaWduX3Bhc3N3b3JkX3ZhbGlkaXR5OiBHVUMgYXNzaWduX2hvb2sgZm9yIHRpbWV6b25l CisgKi8KK3ZvaWQKK2Fzc2lnbl9wYXNzd29yZF9kdXJhdGlvbihjb25zdCBjaGFyICpuZXd2YWws IHZvaWQgKmV4dHJhKQoreworCWlmIChleHRyYSA9PSBOVUxMKQorCQlkZWZhdWx0X3Bhc3N3b3Jk X2R1cmF0aW9uID0gTlVMTDsKKwllbHNlCisJCWRlZmF1bHRfcGFzc3dvcmRfZHVyYXRpb24gPSAq KChJbnRlcnZhbCAqKikgZXh0cmEpOworfQorCisvKgorICogc2hvd19wYXNzd29yZF92YWxpZGl0 eTogR1VDIHNob3dfaG9vayBmb3IgdGltZXpvbmUKKyAqLworY29uc3QgY2hhciAqCitzaG93X3Bh c3N3b3JkX2R1cmF0aW9uKHZvaWQpCit7CisJY29uc3QgY2hhciAqaW50ZXJ2YWxvdXQ7CisJaWYg KGRlZmF1bHRfcGFzc3dvcmRfZHVyYXRpb24gPT0gTlVMTCkgeworCQlyZXR1cm4gIiI7CisJfQor CWludGVydmFsb3V0ID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2FsbDEoaW50ZXJ2 YWxfb3V0LAorCQkJCQkJCQkJCVBvaW50ZXJHZXREYXR1bShkZWZhdWx0X3Bhc3N3b3JkX2R1cmF0 aW9uKSkpOworCisJaWYgKGludGVydmFsb3V0ICE9IE5VTEwpCisJCXJldHVybiBpbnRlcnZhbG91 dDsKKworCXJldHVybiAiIjsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9saWJwcS9hdXRoLmMgYi9zcmMvYmFja2VuZC9saWJwcS9hdXRoLmMK aW5kZXggNTU2OTU5OWFiMzEuLjY0MWNjOTI1NDliIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9s aWJwcS9hdXRoLmMKKysrIGIvc3JjL2JhY2tlbmQvbGlicHEvYXV0aC5jCkBAIC04NTUsOSArODU1 LDE0IEBAIENoZWNrUFdDaGFsbGVuZ2VBdXRoKFBvcnQgKnBvcnQsIGNvbnN0IGNoYXIgKipsb2dk ZXRhaWwpCiAJCQlhdXRoX3Jlc3VsdCA9IENoZWNrU0FTTEF1dGgoJnBnX2JlX3NjcmFtX21lY2gs IHBvcnQsIChjb25zdCBjaGFyICoqKSBwYXNzd29yZHMsIG51bSwKIAkJCQkJCQkJCQkJbG9nZGV0 YWlsKTsKIAotCQlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIAotCQkJcGZyZWUocGFzc3dvcmRz W2ldKTsKKwkJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CiAKKwkJCWlmIChwYXNzd29yZHNb aV0gIT0gTlVMTCkKKwkJCQlwZnJlZShwYXNzd29yZHNbaV0pOworCQkJZWxzZQorCQkJCWVyZXBv cnQoTE9HLAorCQkJCQkoZXJybXNnKCJQYXNzd29yZCAlZCB3YXMgbnVsbCIsIGkpKSk7CisJCX0K IAkJcGZyZWUocGFzc3dvcmRzKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2xpYnBx L2NyeXB0LmMgYi9zcmMvYmFja2VuZC9saWJwcS9jcnlwdC5jCmluZGV4IDA5YjZiZWJmNDBjLi44 ZWZiNzNiNmMyOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbGlicHEvY3J5cHQuYworKysgYi9z cmMvYmFja2VuZC9saWJwcS9jcnlwdC5jCkBAIC00MCwxMCArNDAsMTIgQEAgZ2V0X3JvbGVfcGFz c3dvcmRzKGNvbnN0IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKipsb2dkZXRhaWwsIGludCAqbnVt KQogewogCUhlYXBUdXBsZQlyb2xlVHVwOwogCURhdHVtCQlkYXR1bTsKKwlUaW1lc3RhbXBUeiBj dXJyZW50LCB2dW50aWwgPSAwOworCiAJYm9vbAkJaXNudWxsOwogCWNoYXIJICAgKipwYXNzd29y ZHM7CiAJQ2F0Q0xpc3QgICAqcGFzc2xpc3Q7Ci0JaW50CQkgICAgaTsKKwlpbnQJCSAgICBpLCBq ID0gMCwgbnVtX3ZhbGlkX3Bhc3N3b3JkcyA9IDA7CiAKIAkvKiBHZXQgcm9sZSBpbmZvIGZyb20g cGdfYXV0aGlkICovCiAJcm9sZVR1cCA9IFNlYXJjaFN5c0NhY2hlMShBVVRITkFNRSwgUG9pbnRl ckdldERhdHVtKHJvbGUpKTsKQEAgLTUxLDYgKzUzLDcgQEAgZ2V0X3JvbGVfcGFzc3dvcmRzKGNv bnN0IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKipsb2dkZXRhaWwsIGludCAqbnVtKQogCXsKIAkJ KmxvZ2RldGFpbCA9IHBzcHJpbnRmKF8oIlJvbGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0LiIpLAog CQkJCQkJCSAgcm9sZSk7CisJCSpudW0gPSAwOwogCQlyZXR1cm4gTlVMTDsJCQkvKiBubyBzdWNo IHVzZXIgKi8KIAl9CiAKQEAgLTU4LDcgKzYxLDYgQEAgZ2V0X3JvbGVfcGFzc3dvcmRzKGNvbnN0 IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKipsb2dkZXRhaWwsIGludCAqbnVtKQogCVJlbGVhc2VT eXNDYWNoZShyb2xlVHVwKTsKIAkvKiBGaW5kIGFueSBleGlzdGluZyBwYXNzd29yZCB0aGF0IGlz IG5vdCB0aGUgb25lIGJlaW5nIHVwZGF0ZWQgdG8gZ2V0IHRoZSBzYWx0ICovCiAJcGFzc2xpc3Qg PSBTZWFyY2hTeXNDYWNoZUxpc3QxKEFVVEhQQVNTV09SRE5BTUUsIGRhdHVtKTsKLQkqbnVtID0g cGFzc2xpc3QtPm5fbWVtYmVyczsKIAogCWlmIChwYXNzbGlzdC0+bl9tZW1iZXJzID09IDApCiAJ ewpAQCAtNjksMTUgKzcxLDQxIEBAIGdldF9yb2xlX3Bhc3N3b3Jkcyhjb25zdCBjaGFyICpyb2xl LCBjb25zdCBjaGFyICoqbG9nZGV0YWlsLCBpbnQgKm51bSkKIAkJcmV0dXJuIE5VTEw7CQkJLyog dXNlciBoYXMgbm8gcGFzc3dvcmQgKi8KIAl9CiAKLQlwYXNzd29yZHMgPSBwYWxsb2MwKHNpemVv ZihjaGFyICopICogcGFzc2xpc3QtPm5fbWVtYmVycyk7IAorCWN1cnJlbnQgPSBHZXRDdXJyZW50 VGltZXN0YW1wKCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgcGFzc2xpc3QtPm5fbWVtYmVyczsgaSsr KQogCXsKIAkJSGVhcFR1cGxlCXR1cCA9ICZwYXNzbGlzdC0+bWVtYmVyc1tpXS0+dHVwbGU7CiAK IAkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoQVVUSFBBU1NXT1JETkFNRSwgdHVwLAotCQkJCQkJ CUFudW1fcGdfYXV0aF9wYXNzd29yZF9wYXNzd29yZCwgJmlzbnVsbCk7Ci0JCXBhc3N3b3Jkc1tp XSA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCQkJCQkJCUFudW1fcGdfYXV0aF9wYXNz d29yZF9leHBpcmF0aW9uLCAmaXNudWxsKTsKKworCQlpZiAoIWlzbnVsbCkKKwkJCXZ1bnRpbCA9 IERhdHVtR2V0VGltZXN0YW1wVHooZGF0dW0pOworCisJCWlmIChpc251bGwgfHwgdnVudGlsID4g Y3VycmVudCkKKwkJCW51bV92YWxpZF9wYXNzd29yZHMrKzsKKwl9CisKKwlwYXNzd29yZHMgPSBw YWxsb2MwKHNpemVvZihjaGFyICopICogbnVtX3ZhbGlkX3Bhc3N3b3Jkcyk7IAorCSpudW0gPSBu dW1fdmFsaWRfcGFzc3dvcmRzOworCQorCWZvciAoaSA9IDA7IGkgPCBwYXNzbGlzdC0+bl9tZW1i ZXJzOyBpKyspCisJeworCQlIZWFwVHVwbGUJdHVwID0gJnBhc3NsaXN0LT5tZW1iZXJzW2ldLT50 dXBsZTsKKworCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihBVVRIUEFTU1dPUkROQU1FLCB0dXAs CisJCQkJCQkJQW51bV9wZ19hdXRoX3Bhc3N3b3JkX2V4cGlyYXRpb24sICZpc251bGwpOworCisJ CWlmICghaXNudWxsKQorCQkJdnVudGlsID0gRGF0dW1HZXRUaW1lc3RhbXBUeihkYXR1bSk7CisK KwkJaWYgKGlzbnVsbCB8fCB2dW50aWwgPiBjdXJyZW50KQorCQl7CisJCQlkYXR1bSA9IFN5c0Nh Y2hlR2V0QXR0cihBVVRIUEFTU1dPUkROQU1FLCB0dXAsCisJCQkJCQkJCUFudW1fcGdfYXV0aF9w YXNzd29yZF9wYXNzd29yZCwgJmlzbnVsbCk7CisJCQlwYXNzd29yZHNbaisrXSA9IHBzdHJkdXAo VGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSkpOworCQl9CiAJfQogCiAJUmVsZWFzZUNhdENhY2hl TGlzdChwYXNzbGlzdCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBjM2NiNmM3NmFhNS4uMDEyMWNjNzllZTYg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQpAQCAtNzkwLDcgKzc5MCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJz aXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7 CiAJRE9VQkxFX1AgRFJPUAogCiAJRUFDSCBFTFNFIEVNUFRZX1AgRU5BQkxFX1AgRU5DT0RJTkcg RU5DUllQVEVEIEVORF9QIEVOVU1fUCBFUlJPUl9QIEVTQ0FQRQotCUVWRU5UIEVYQ0VQVCBFWENM VURFIEVYQ0xVRElORyBFWENMVVNJVkUgRVhFQ1VURSBFWElTVFMgRVhQTEFJTiBFWFBSRVNTSU9O CisJRVZFTlQgRVhDRVBUIEVYQ0xVREUgRVhDTFVESU5HIEVYQ0xVU0lWRSBFWEVDVVRFIEVYSVNU UyBFWFBJUkVTIEVYUExBSU4gRVhQUkVTU0lPTgogCUVYVEVOU0lPTiBFWFRFUk5BTCBFWFRSQUNU CiAKIAlGQUxTRV9QIEZBTUlMWSBGRVRDSCBGSUxURVIgRklOQUxJWkUgRklSU1RfUCBGTE9BVF9Q IEZPTExPV0lORyBGT1IKQEAgLTgyNiw3ICs4MjYsNiBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vy c2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogCU9SREVSIE9SRElOQUxJVFkgT1RIRVJTIE9VVF9QIE9VVEVSX1AKIAlPVkVSIE9WRVJMQVBT IE9WRVJMQVkgT1ZFUlJJRElORyBPV05FRCBPV05FUgogCi0KIAlQQVJBTExFTCBQQVJBTUVURVIg UEFSU0VSIFBBUlRJQUwgUEFSVElUSU9OIFBBU1NJTkcgUEFTU05BTUUgUEFTU1dPUkQgCiAJUEFU SCBQTEFDSU5HIFBMQU4gUExBTlMgUE9MSUNZCiAJUE9TSVRJT04gUFJFQ0VESU5HIFBSRUNJU0lP TiBQUkVTRVJWRSBQUkVQQVJFIFBSRVBBUkVEIFBSSU1BUlkKQEAgLTEyNjIsNiArMTI2MSwxMiBA QCBBbHRlck9wdFJvbGVFbGVtOgogCQkJCQkkJCA9IG1ha2VEZWZFbGVtKCJwYXNzbmFtZSIsCiAJ CQkJCQkJCQkgKE5vZGUgKiltYWtlU3RyaW5nKCQyKSwgQDEpOwogCQkJCX0KKwkJCXwgRVhQSVJF UyBJTl9QIFNjb25zdCBvcHRfaW50ZXJ2YWwKKwkJCQl7CisJCQkJCVR5cGVOYW1lICp0ID0gU3lz dGVtVHlwZU5hbWUoImludGVydmFsIik7CisJCQkJCXQtPnR5cG1vZHMgPSAkNDsKKwkJCQkJJCQg PSBtYWtlRGVmRWxlbSgiZXhwaXJlc2luIiwgKE5vZGUgKiltYWtlU3RyaW5nQ29uc3RDYXN0KCQz LCBAMywgdCksIEAxKTsKKwkJCQl9CiAJCQl8IFZBTElEIEZPUiBTY29uc3QKIAkJCQl7CiAJCQkJ CSQkID0gbWFrZURlZkVsZW0oInZhbGlkRm9yIiwgKE5vZGUgKiltYWtlU3RyaW5nKCQzKSwgQDEp OwpAQCAtMTY5ODYsNiArMTY5OTEsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IEVYQ0xV RElORwogCQkJfCBFWENMVVNJVkUKIAkJCXwgRVhFQ1VURQorCQkJfCBFWFBJUkVTCiAJCQl8IEVY UExBSU4KIAkJCXwgRVhQUkVTU0lPTgogCQkJfCBFWFRFTlNJT04KQEAgLTE3NTYwLDYgKzE3NTY2 LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBFWENMVVNJVkUKIAkJCXwgRVhFQ1VURQog CQkJfCBFWElTVFMKKwkJCXwgRVhQSVJFUwogCQkJfCBFWFBMQUlOCiAJCQl8IEVYUFJFU1NJT04K IAkJCXwgRVhURU5TSU9OCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwppbmRleCAyMmI1NTcxYTcwNC4uODEyMDhj MDBlYTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwpAQCAtNzE2LDYgKzcxNiw3IEBAIHN0YXRpYyBjaGFy ICpyZWNvdmVyeV90YXJnZXRfc3RyaW5nOwogc3RhdGljIGNoYXIgKnJlY292ZXJ5X3RhcmdldF94 aWRfc3RyaW5nOwogc3RhdGljIGNoYXIgKnJlY292ZXJ5X3RhcmdldF9uYW1lX3N0cmluZzsKIHN0 YXRpYyBjaGFyICpyZWNvdmVyeV90YXJnZXRfbHNuX3N0cmluZzsKK3N0YXRpYyBjaGFyICpwYXNz d29yZF9kdXJhdGlvbl9zdHJpbmc7CiAKIAogLyogc2hvdWxkIGJlIHN0YXRpYywgYnV0IGNvbW1h bmRzL3ZhcmlhYmxlLmMgbmVlZHMgdG8gZ2V0IGF0IHRoaXMgKi8KQEAgLTQ3MjEsNiArNDcyMiwx NyBAQCBzdGF0aWMgc3RydWN0IGNvbmZpZ19zdHJpbmcgQ29uZmlndXJlTmFtZXNTdHJpbmdbXSA9 CiAJCWNoZWNrX2JhY2t0cmFjZV9mdW5jdGlvbnMsIGFzc2lnbl9iYWNrdHJhY2VfZnVuY3Rpb25z LCBOVUxMCiAJfSwKIAorCXsKKwkJeyJwYXNzd29yZF92YWxpZF9kdXJhdGlvbiIsIFBHQ19TVVNF VCwgQ09OTl9BVVRIX0FVVEgsCisJCQlnZXR0ZXh0X25vb3AoIlNwZWNpZmllcyB0aGUgZGVmYXVs dCB2YWxpZGl0eSBkdXJhdGlvbiBvZiBuZXcgcGFzc3dvcmRzLiIpLAorCQkJTlVMTCwKKwkJCUdV Q19TVVBFUlVTRVJfT05MWSB8IEdVQ19OT1RfSU5fU0FNUExFCisJCX0sCisJCSZwYXNzd29yZF9k dXJhdGlvbl9zdHJpbmcsCisJCU5VTEwsCisJCWNoZWNrX3Bhc3N3b3JkX2R1cmF0aW9uLCBhc3Np Z25fcGFzc3dvcmRfZHVyYXRpb24sIHNob3dfcGFzc3dvcmRfZHVyYXRpb24KKwl9LAorCiAJLyog RW5kLW9mLWxpc3QgbWFya2VyICovCiAJewogCQl7TlVMTCwgMCwgMCwgTlVMTCwgTlVMTH0sIE5V TEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwKQEAgLTUxMTksNiArNTEzMSw3IEBAIHN0YXRpYyBz dHJ1Y3QgY29uZmlnX2VudW0gQ29uZmlndXJlTmFtZXNFbnVtW10gPQogCQlOVUxMLCBOVUxMLCBO VUxMCiAJfSwKIAorCiAJLyogRW5kLW9mLWxpc3QgbWFya2VyICovCiAJewogCQl7TlVMTCwgMCwg MCwgTlVMTCwgTlVMTH0sIE5VTEwsIDAsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXV0aF9wYXNzd29yZC5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19hdXRoX3Bhc3N3b3JkLmgKaW5kZXggNDE4MWNhYWQzMGIuLjFjYjBhMjExZWU3 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1dGhfcGFzc3dvcmQuaAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1dGhfcGFzc3dvcmQuaApAQCAtMzEsNiArMzEsNyBA QCBDQVRBTE9HKHBnX2F1dGhfcGFzc3dvcmQsNDU1MSxBdXRoUGFzc3dvcmRSZWxhdGlvbklkKSBC S0lfU0hBUkVEX1JFTEFUSU9OIEJLSV9STwogCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4gICAgICAg ICAgICAgICAgLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCiAgICAgdGV4 dCAgICAgICAgICAgIHBhc3N3b3JkIEJLSV9GT1JDRV9OT1RfTlVMTDsgICAgICAgIC8qIHBhc3N3 b3JkICovCisgICAgdGltZXN0YW1wdHogICAgIGV4cGlyYXRpb24gQktJX0ZPUkNFX05VTEw7CSAg ICAgICAgLyogcGFzc3dvcmQgZXhwaXJhdGlvbiB0aW1lLCBpZiBhbnkgKi8KICNlbmRpZgogfSBG b3JtRGF0YV9wZ19hdXRoX3Bhc3N3b3JkOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21t YW5kcy91c2VyLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy91c2VyLmgKaW5kZXggMWMxNGY2MGEw NWIuLjEzZDM0NzlmYWNiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy91c2VyLmgK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdXNlci5oCkBAIC0xOSw2ICsxOSw5IEBACiAvKiBH VUMuIElzIGFjdHVhbGx5IG9mIHR5cGUgUGFzc3dvcmRUeXBlLiAqLwogZXh0ZXJuIFBHRExMSU1Q T1JUIGludCBQYXNzd29yZF9lbmNyeXB0aW9uOwogCisvKiBHVUMuIHN5c3RlbS13aWRlIHBhc3N3 b3JkIHZhbGlkaXR5IGR1cmF0aW9uICovCitleHRlcm4gSW50ZXJ2YWwgKmRlZmF1bHRfcGFzc3dv cmRfZHVyYXRpb247CisKIC8qIEhvb2sgdG8gY2hlY2sgcGFzc3dvcmRzIGluIENyZWF0ZVJvbGUo KSBhbmQgQWx0ZXJSb2xlKCkgKi8KIHR5cGVkZWYgdm9pZCAoKmNoZWNrX3Bhc3N3b3JkX2hvb2tf dHlwZSkgKGNvbnN0IGNoYXIgKnVzZXJuYW1lLCBjb25zdCBjaGFyICpzaGFkb3dfcGFzcywgUGFz c3dvcmRUeXBlIHBhc3N3b3JkX3R5cGUsIERhdHVtIHZhbGlkdW50aWxfdGltZSwgYm9vbCB2YWxp ZHVudGlsX251bGwpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YXJpYWJs ZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFyaWFibGUuaAppbmRleCAwZTVkZGNiY2YzNy4u M2I5NDFjNTU0Y2IgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhcmlhYmxlLmgK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFyaWFibGUuaApAQCAtMzQsNSArMzQsOSBAQCBl eHRlcm4gdm9pZCBhc3NpZ25fc2Vzc2lvbl9hdXRob3JpemF0aW9uKGNvbnN0IGNoYXIgKm5ld3Zh bCwgdm9pZCAqZXh0cmEpOwogZXh0ZXJuIGJvb2wgY2hlY2tfcm9sZShjaGFyICoqbmV3dmFsLCB2 b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpOwogZXh0ZXJuIHZvaWQgYXNzaWduX3JvbGUo Y29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSk7CiBleHRlcm4gY29uc3QgY2hhciAqc2hv d19yb2xlKHZvaWQpOworZXh0ZXJuIGJvb2wgY2hlY2tfcGFzc3dvcmRfZHVyYXRpb24oY2hhciAq Km5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKTsKK2V4dGVybiB2b2lkIGFz c2lnbl9wYXNzd29yZF9kdXJhdGlvbihjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKTsK K2V4dGVybiBjb25zdCBjaGFyICpzaG93X3Bhc3N3b3JkX2R1cmF0aW9uKHZvaWQpOworCiAKICNl bmRpZgkJCQkJCQkvKiBWQVJJQUJMRV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJz ZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggYmY4NDU5M2E2 MWMuLjYxNmZmZTM4ZmNiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgK KysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0xNjMsNiArMTYzLDcgQEAgUEdf S0VZV09SRCgiZXhjbHVkaW5nIiwgRVhDTFVESU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJleGNsdXNpdmUiLCBFWENMVVNJVkUsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImV4ZWN1dGUiLCBFWEVDVVRFLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJleGlzdHMiLCBFWElTVFMsIENP TF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJleHBpcmVzIiwgRVhQSVJF UywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZXhwbGFpbiIs IEVYUExBSU4sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImV4 cHJlc3Npb24iLCBFWFBSRVNTSU9OLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJleHRlbnNpb24iLCBFWFRFTlNJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKLS0gCjIuMzUuMQoK --000000000000a6d4f605dc27965c Content-Type: application/x-patch; name="v2-0001-Move-rolpassword-out-of-pg_authid-into-a-new-tabl.patch" Content-Disposition: attachment; filename="v2-0001-Move-rolpassword-out-of-pg_authid-into-a-new-tabl.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l1qnst640 RnJvbSAxZDg3MzE5YTYwYTFlZDE0ZWM2ZWE1YzJlZWE4MGQ5NWU3MDQzM2JiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NodWEgQnJpbmRsZSA8am9zaHVhLmJyaW5kbGVAY3J1bmNo eWRhdGEuY29tPgpEYXRlOiBUaHUsIDkgRGVjIDIwMjEgMTY6MTg6MjUgLTA4MDAKU3ViamVjdDog W1BBVENIIHYyIDEvM10gTW92ZSByb2xwYXNzd29yZCBvdXQgb2YgcGdfYXV0aGlkIGludG8gYSBu ZXcgdGFibGUKCkluIHByZXBhcmF0aW9uIGZvciBtb3JlIGZsZXhpYmlsaXR5IGluIHBhc3N3b3Jk Cm1hbmFnZW1lbnQgdGhlIHJvbHBhc3N3b3JkIGNvbHVtbiBuZWVkcyB0byBiZQptb3ZlZCBpbnRv IGEgbmV3IHRhYmxlLgoKU2lnbmVkLW9mZi1ieTogSm9zaHVhIEJyaW5kbGUgPGpvc2h1YS5icmlu ZGxlQGNydW5jaHlkYXRhLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlICAg ICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgICAg ICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNx bCAgICAgICAgIHwgICA1ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy91c2VyLmMgICAgICAgICAg ICAgICAgICB8IDIyNiArKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9saWJwcS9hdXRoLXNh c2wuYyAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvbGlicHEvYXV0aC1zY3Jh bS5jICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2xpYnBxL2F1dGguYyAgICAg ICAgICAgICAgICAgICAgIHwgIDE2ICsrCiBzcmMvYmFja2VuZC9saWJwcS9jcnlwdC5jICAgICAg ICAgICAgICAgICAgICB8ICA0MCArKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2NhdGNhY2hl LmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMg ICAgICAgICAgIHwgIDEzICstCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jICAg ICAgICAgICB8ICAxMiArCiBzcmMvYmluL2luaXRkYi9pbml0ZGIuYyAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYyAgICAgICAgICAgICAg ICAgfCAgMTMgKy0KIHNyYy9jb21tb24vc2NyYW0tY29tbW9uLmMgICAgICAgICAgICAgICAgICAg IHwgICAyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1dGhfcGFzc3dvcmQuaCAgICAgICB8 ICA1MCArKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1dGhpZC5kYXQgICAgICAgICAgICB8 ICAyNiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoaWQuaCAgICAgICAgICAgICAgfCAg IDkgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3VzZXIuaCAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9pbmNsdWRlL2xpYnBxL2NyeXB0LmggICAgICAgICAgICAgICAgICAgIHwgICAyICst CiBzcmMvaW5jbHVkZS91dGlscy9zeXNjYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRleC5vdXQgICB8ICAxNCArLQogc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQgICAgICAgfCAgIDEgKwogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wYXNzd29yZC5vdXQgICAgICAgfCAgNDQgKystLQogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9yb2xlYXR0cmlidXRlcy5vdXQgfCAyNTYgKysrKysrKysrLS0t LS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgICAgICAgICAgfCAg IDUgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGFibGVzcGFjZS5vdXQgICAgIHwgIDEy ICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfaW5kZXguc3FsICAgICAgICB8ICAxMCAr LQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFzc3dvcmQuc3FsICAgICAgICAgICAgfCAgMzIgKyst CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9yb2xlYXR0cmlidXRlcy5zcWwgICAgICB8ICA2NCArKy0t LQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGFibGVzcGFjZS5zcWwgICAgICAgICAgfCAgIDggKy0K IDMwIGZpbGVzIGNoYW5nZWQsIDU2MyBpbnNlcnRpb25zKCspLCAzMTggZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoX3Bhc3N3b3JkLmgK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9NYWtlZmlsZQppbmRleCA4OWEwMjIxZWM5Yi4uNDUwY2ZkOWE1ODkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9NYWtlZmlsZQpAQCAtNjMsNyArNjMsNyBAQCBDQVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX3Jl d3JpdGUuaCBwZ190cmlnZ2VyLmggcGdfZXZlbnRfdHJpZ2dlci5oIHBnX2Rlc2NyaXB0aW9uLmgg XAogCXBnX2Nhc3QuaCBwZ19lbnVtLmggcGdfbmFtZXNwYWNlLmggcGdfY29udmVyc2lvbi5oIHBn X2RlcGVuZC5oIFwKIAlwZ19kYXRhYmFzZS5oIHBnX2RiX3JvbGVfc2V0dGluZy5oIHBnX3RhYmxl c3BhY2UuaCBcCi0JcGdfYXV0aGlkLmggcGdfYXV0aF9tZW1iZXJzLmggcGdfc2hkZXBlbmQuaCBw Z19zaGRlc2NyaXB0aW9uLmggXAorCXBnX2F1dGhpZC5oIHBnX2F1dGhfbWVtYmVycy5oIHBnX2F1 dGhfcGFzc3dvcmQuaCBwZ19zaGRlcGVuZC5oIHBnX3NoZGVzY3JpcHRpb24uaCBcCiAJcGdfdHNf Y29uZmlnLmggcGdfdHNfY29uZmlnX21hcC5oIHBnX3RzX2RpY3QuaCBcCiAJcGdfdHNfcGFyc2Vy LmggcGdfdHNfdGVtcGxhdGUuaCBwZ19leHRlbnNpb24uaCBcCiAJcGdfZm9yZWlnbl9kYXRhX3dy YXBwZXIuaCBwZ19mb3JlaWduX3NlcnZlci5oIHBnX3VzZXJfbWFwcGluZy5oIFwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9j YXRhbG9nLmMKaW5kZXggNTIwZjc3OTcxYjMuLjExYzE0OWZkNjI1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2NhdGFs b2cuYwpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoX21l bWJlcnMuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfcGFzc3dvcmQuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2RiX3JvbGVfc2V0dGluZy5oIgpAQCAtMjQ2LDYgKzI0Nyw3 IEBAIElzU2hhcmVkUmVsYXRpb24oT2lkIHJlbGF0aW9uSWQpCiB7CiAJLyogVGhlc2UgYXJlIHRo ZSBzaGFyZWQgY2F0YWxvZ3MgKGxvb2sgZm9yIEJLSV9TSEFSRURfUkVMQVRJT04pICovCiAJaWYg KHJlbGF0aW9uSWQgPT0gQXV0aElkUmVsYXRpb25JZCB8fAorCQlyZWxhdGlvbklkID09IEF1dGhQ YXNzd29yZFJlbGF0aW9uSWQgfHwKIAkJcmVsYXRpb25JZCA9PSBBdXRoTWVtUmVsYXRpb25JZCB8 fAogCQlyZWxhdGlvbklkID09IERhdGFiYXNlUmVsYXRpb25JZCB8fAogCQlyZWxhdGlvbklkID09 IERiUm9sZVNldHRpbmdSZWxhdGlvbklkIHx8CkBAIC0yNjAsNiArMjYyLDggQEAgSXNTaGFyZWRS ZWxhdGlvbihPaWQgcmVsYXRpb25JZCkKIAkvKiBUaGVzZSBhcmUgdGhlaXIgaW5kZXhlcyAqLwog CWlmIChyZWxhdGlvbklkID09IEF1dGhJZE9pZEluZGV4SWQgfHwKIAkJcmVsYXRpb25JZCA9PSBB dXRoSWRSb2xuYW1lSW5kZXhJZCB8fAorCQlyZWxhdGlvbklkID09IEF1dGhQYXNzd29yZFJvbGVP aWRJbmRleElkIHx8CisJCXJlbGF0aW9uSWQgPT0gQXV0aE1lbVJvbGVNZW1JbmRleElkIHx8CiAJ CXJlbGF0aW9uSWQgPT0gQXV0aE1lbU1lbVJvbGVJbmRleElkIHx8CiAJCXJlbGF0aW9uSWQgPT0g QXV0aE1lbVJvbGVNZW1JbmRleElkIHx8CiAJCXJlbGF0aW9uSWQgPT0gRGF0YWJhc2VOYW1lSW5k ZXhJZCB8fApAQCAtMjc5LDggKzI4Myw4IEBAIElzU2hhcmVkUmVsYXRpb24oT2lkIHJlbGF0aW9u SWQpCiAJCXJlbGF0aW9uSWQgPT0gVGFibGVzcGFjZU9pZEluZGV4SWQpCiAJCXJldHVybiB0cnVl OwogCS8qIFRoZXNlIGFyZSB0aGVpciB0b2FzdCB0YWJsZXMgYW5kIHRvYXN0IGluZGV4ZXMgKi8K LQlpZiAocmVsYXRpb25JZCA9PSBQZ0F1dGhpZFRvYXN0VGFibGUgfHwKLQkJcmVsYXRpb25JZCA9 PSBQZ0F1dGhpZFRvYXN0SW5kZXggfHwKKwlpZiAocmVsYXRpb25JZCA9PSBQZ0F1dGhQYXNzd29y ZFRvYXN0VGFibGUgfHwKKwkJcmVsYXRpb25JZCA9PSBQZ0F1dGhQYXNzd29yZFRvYXN0SW5kZXgg fHwKIAkJcmVsYXRpb25JZCA9PSBQZ0RhdGFiYXNlVG9hc3RUYWJsZSB8fAogCQlyZWxhdGlvbklk ID09IFBnRGF0YWJhc2VUb2FzdEluZGV4IHx8CiAJCXJlbGF0aW9uSWQgPT0gUGdEYlJvbGVTZXR0 aW5nVG9hc3RUYWJsZSB8fApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDBm YzYxNGUzMmMwLi5jMWU0MmU2NzE2ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNx bApAQCAtNDAsMTEgKzQwLDE0IEBAIENSRUFURSBWSUVXIHBnX3NoYWRvdyBBUwogICAgICAgICBy b2xzdXBlciBBUyB1c2VzdXBlciwKICAgICAgICAgcm9scmVwbGljYXRpb24gQVMgdXNlcmVwbCwK ICAgICAgICAgcm9sYnlwYXNzcmxzIEFTIHVzZWJ5cGFzc3JscywKLSAgICAgICAgcm9scGFzc3dv cmQgQVMgcGFzc3dkLAorICAgICAgICBwLnBhc3N3b3JkIEFTIHBhc3N3ZCwKICAgICAgICAgcm9s dmFsaWR1bnRpbCBBUyB2YWx1bnRpbCwKICAgICAgICAgc2V0Y29uZmlnIEFTIHVzZWNvbmZpZwog ICAgIEZST00gcGdfYXV0aGlkIExFRlQgSk9JTiBwZ19kYl9yb2xlX3NldHRpbmcgcwogICAgIE9O IChwZ19hdXRoaWQub2lkID0gc2V0cm9sZSBBTkQgc2V0ZGF0YWJhc2UgPSAwKQorICAgIExFRlQg Sk9JTiBwZ19hdXRoX3Bhc3N3b3JkIHAKKyAgICBPTiBwLnJvbGVpZCA9IHBnX2F1dGhpZC5vaWQK KwogICAgIFdIRVJFIHJvbGNhbmxvZ2luOwogCiBSRVZPS0UgQUxMIE9OIHBnX3NoYWRvdyBGUk9N IHB1YmxpYzsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3VzZXIuYyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3VzZXIuYwppbmRleCBjMjYzZjZjOGI5Zi4uNWI2Y2UzN2YxYmYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3VzZXIuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy91c2VyLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL29iamVj dGFjY2Vzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aF9tZW1iZXJzLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfcGFzc3dv cmQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19kYl9yb2xlX3NldHRpbmcuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCkBA IC02NCw2ICs2NSw0MiBAQCBoYXZlX2NyZWF0ZXJvbGVfcHJpdmlsZWdlKHZvaWQpCiAJcmV0dXJu IGhhc19jcmVhdGVyb2xlX3ByaXZpbGVnZShHZXRVc2VySWQoKSk7CiB9CiAKKy8qCisgKiBJcyB0 aGUgcm9sZSBhYmxlIHRvIGxvZyBpbgorKi8KK2Jvb2wKK2lzX3JvbGVfdmFsaWQoY29uc3QgY2hh ciAqcm9sZW5hbWUsIGNoYXIgKipsb2dkZXRhaWwpCit7CisJSGVhcFR1cGxlCXJvbGVUdXA7CisJ RGF0dW0JCWRhdHVtOworCWJvb2wJCWlzbnVsbDsKKwlUaW1lc3RhbXBUeiB2dW50aWwgPSAwOwor CisJLyogR2V0IHJvbGUgaW5mbyBmcm9tIHBnX2F1dGhpZCAqLworCXJvbGVUdXAgPSBTZWFyY2hT eXNDYWNoZTEoQVVUSE5BTUUsIFBvaW50ZXJHZXREYXR1bShyb2xlbmFtZSkpOworCWlmICghSGVh cFR1cGxlSXNWYWxpZChyb2xlVHVwKSkKKwl7CisJCSpsb2dkZXRhaWwgPSBwc3ByaW50ZihfKCJS b2xlIFwiJXNcIiBkb2VzIG5vdCBleGlzdC4iKSwKKwkJCQkJCQkgIHJvbGVuYW1lKTsKKwkJcmV0 dXJuIGZhbHNlOwkJCS8qIG5vIHN1Y2ggdXNlciAqLworCX0KKworCWRhdHVtID0gU3lzQ2FjaGVH ZXRBdHRyKEFVVEhOQU1FLCByb2xlVHVwLAorCQkJCQkJCUFudW1fcGdfYXV0aGlkX3JvbHZhbGlk dW50aWwsICZpc251bGwpOworCVJlbGVhc2VTeXNDYWNoZShyb2xlVHVwKTsKKworCWlmICghaXNu dWxsKQorCQl2dW50aWwgPSBEYXR1bUdldFRpbWVzdGFtcFR6KGRhdHVtKTsKKworCWlmICghaXNu dWxsICYmIHZ1bnRpbCA8IEdldEN1cnJlbnRUaW1lc3RhbXAoKSkKKwl7CisJCSpsb2dkZXRhaWwg PSBwc3ByaW50ZihfKCJVc2VyIFwiJXNcIiBoYXMgYW4gZXhwaXJlZCBwYXNzd29yZC4iKSwgcm9s ZW5hbWUpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKIAogLyoK ICAqIENSRUFURSBST0xFCkBAIC0zNTEsNDMgKzM4OCw2IEBAIENyZWF0ZVJvbGUoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVSb2xlU3RtdCAqc3RtdCkKIAluZXdfcmVjb3JkW0FudW1fcGdfYXV0 aGlkX3JvbGNhbmxvZ2luIC0gMV0gPSBCb29sR2V0RGF0dW0oY2FubG9naW4pOwogCW5ld19yZWNv cmRbQW51bV9wZ19hdXRoaWRfcm9scmVwbGljYXRpb24gLSAxXSA9IEJvb2xHZXREYXR1bShpc3Jl cGxpY2F0aW9uKTsKIAluZXdfcmVjb3JkW0FudW1fcGdfYXV0aGlkX3JvbGNvbm5saW1pdCAtIDFd ID0gSW50MzJHZXREYXR1bShjb25ubGltaXQpOwotCi0JaWYgKHBhc3N3b3JkKQotCXsKLQkJY2hh cgkgICAqc2hhZG93X3Bhc3M7Ci0JCWNvbnN0IGNoYXIgKmxvZ2RldGFpbCA9IE5VTEw7Ci0KLQkJ LyoKLQkJICogRG9uJ3QgYWxsb3cgYW4gZW1wdHkgcGFzc3dvcmQuIExpYnBxIHRyZWF0cyBhbiBl bXB0eSBwYXNzd29yZCB0aGUKLQkJICogc2FtZSBhcyBubyBwYXNzd29yZCBhdCBhbGwsIGFuZCB3 b24ndCBldmVuIHRyeSB0byBhdXRoZW50aWNhdGUuIEJ1dAotCQkgKiBvdGhlciBjbGllbnRzIG1p Z2h0LCBzbyBhbGxvd2luZyBpdCB3b3VsZCBiZSBjb25mdXNpbmcuIEJ5IGNsZWFyaW5nCi0JCSAq IHRoZSBwYXNzd29yZCB3aGVuIGFuIGVtcHR5IHN0cmluZyBpcyBzcGVjaWZpZWQsIHRoZSBhY2Nv dW50IGlzCi0JCSAqIGNvbnNpc3RlbnRseSBsb2NrZWQgZm9yIGFsbCBjbGllbnRzLgotCQkgKgot CQkgKiBOb3RlIHRoYXQgdGhpcyBvbmx5IGNvdmVycyBwYXNzd29yZHMgc3RvcmVkIGluIHRoZSBk YXRhYmFzZSBpdHNlbGYuCi0JCSAqIFRoZXJlIGFyZSBhbHNvIGNoZWNrcyBpbiB0aGUgYXV0aGVu dGljYXRpb24gY29kZSwgdG8gZm9yYmlkIGFuCi0JCSAqIGVtcHR5IHBhc3N3b3JkIGZyb20gYmVp bmcgdXNlZCB3aXRoIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgdGhhdAotCQkgKiBmZXRjaCB0aGUg cGFzc3dvcmQgZnJvbSBhbiBleHRlcm5hbCBzeXN0ZW0sIGxpa2UgTERBUCBvciBQQU0uCi0JCSAq LwotCQlpZiAocGFzc3dvcmRbMF0gPT0gJ1wwJyB8fAotCQkJcGxhaW5fY3J5cHRfdmVyaWZ5KHN0 bXQtPnJvbGUsIHBhc3N3b3JkLCAiIiwgJmxvZ2RldGFpbCkgPT0gU1RBVFVTX09LKQotCQl7Ci0J CQllcmVwb3J0KE5PVElDRSwKLQkJCQkJKGVycm1zZygiZW1wdHkgc3RyaW5nIGlzIG5vdCBhIHZh bGlkIHBhc3N3b3JkLCBjbGVhcmluZyBwYXNzd29yZCIpKSk7Ci0JCQluZXdfcmVjb3JkX251bGxz W0FudW1fcGdfYXV0aGlkX3JvbHBhc3N3b3JkIC0gMV0gPSB0cnVlOwotCQl9Ci0JCWVsc2UKLQkJ ewotCQkJLyogRW5jcnlwdCB0aGUgcGFzc3dvcmQgdG8gdGhlIHJlcXVlc3RlZCBmb3JtYXQuICov Ci0JCQlzaGFkb3dfcGFzcyA9IGVuY3J5cHRfcGFzc3dvcmQoUGFzc3dvcmRfZW5jcnlwdGlvbiwg c3RtdC0+cm9sZSwKLQkJCQkJCQkJCQkgICBwYXNzd29yZCk7Ci0JCQluZXdfcmVjb3JkW0FudW1f cGdfYXV0aGlkX3JvbHBhc3N3b3JkIC0gMV0gPQotCQkJCUNTdHJpbmdHZXRUZXh0RGF0dW0oc2hh ZG93X3Bhc3MpOwotCQl9Ci0JfQotCWVsc2UKLQkJbmV3X3JlY29yZF9udWxsc1tBbnVtX3BnX2F1 dGhpZF9yb2xwYXNzd29yZCAtIDFdID0gdHJ1ZTsKLQogCW5ld19yZWNvcmRbQW51bV9wZ19hdXRo aWRfcm9sdmFsaWR1bnRpbCAtIDFdID0gdmFsaWRVbnRpbF9kYXR1bTsKIAluZXdfcmVjb3JkX251 bGxzW0FudW1fcGdfYXV0aGlkX3JvbHZhbGlkdW50aWwgLSAxXSA9IHZhbGlkVW50aWxfbnVsbDsK IApAQCAtNDIyLDYgKzQyMiw2MCBAQCBDcmVhdGVSb2xlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3Jl YXRlUm9sZVN0bXQgKnN0bXQpCiAJICovCiAJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHBnX2F1dGhpZF9y ZWwsIHR1cGxlKTsKIAorCWlmIChwYXNzd29yZCkKKwl7CisJCWNoYXIJICAgKnNoYWRvd19wYXNz OworCQljaGFyCSAgICpsb2dkZXRhaWw7CisJCURhdHVtCQluZXdfcGFzc3dvcmRfcmVjb3JkW05h dHRzX3BnX2F1dGhfcGFzc3dvcmRdOworCQlib29sCQluZXdfcGFzc3dvcmRfcmVjb3JkX251bGxz W05hdHRzX3BnX2F1dGhfcGFzc3dvcmRdOworCQlSZWxhdGlvbglwZ19hdXRoX3Bhc3N3b3JkX3Jl bDsKKwkJVHVwbGVEZXNjCXBnX2F1dGhfcGFzc3dvcmRfZHNjOworCQlIZWFwVHVwbGUJbmV3X3R1 cGxlOworCisJCS8qCisJCSAqIERvbid0IGFsbG93IGFuIGVtcHR5IHBhc3N3b3JkLiBMaWJwcSB0 cmVhdHMgYW4gZW1wdHkgcGFzc3dvcmQgdGhlCisJCSAqIHNhbWUgYXMgbm8gcGFzc3dvcmQgYXQg YWxsLCBhbmQgd29uJ3QgZXZlbiB0cnkgdG8gYXV0aGVudGljYXRlLiBCdXQKKwkJICogb3RoZXIg Y2xpZW50cyBtaWdodCwgc28gYWxsb3dpbmcgaXQgd291bGQgYmUgY29uZnVzaW5nLiBCeSBjbGVh cmluZworCQkgKiB0aGUgcGFzc3dvcmQgd2hlbiBhbiBlbXB0eSBzdHJpbmcgaXMgc3BlY2lmaWVk LCB0aGUgYWNjb3VudCBpcworCQkgKiBjb25zaXN0ZW50bHkgbG9ja2VkIGZvciBhbGwgY2xpZW50 cy4KKwkJICoKKwkJICogTm90ZSB0aGF0IHRoaXMgb25seSBjb3ZlcnMgcGFzc3dvcmRzIHN0b3Jl ZCBpbiB0aGUgZGF0YWJhc2UgaXRzZWxmLgorCQkgKiBUaGVyZSBhcmUgYWxzbyBjaGVja3MgaW4g dGhlIGF1dGhlbnRpY2F0aW9uIGNvZGUsIHRvIGZvcmJpZCBhbgorCQkgKiBlbXB0eSBwYXNzd29y ZCBmcm9tIGJlaW5nIHVzZWQgd2l0aCBhdXRoZW50aWNhdGlvbiBtZXRob2RzIHRoYXQKKwkJICog ZmV0Y2ggdGhlIHBhc3N3b3JkIGZyb20gYW4gZXh0ZXJuYWwgc3lzdGVtLCBsaWtlIExEQVAgb3Ig UEFNLgorCQkgKi8KKwkJaWYgKHBhc3N3b3JkWzBdID09ICdcMCcgfHwKKwkJCXBsYWluX2NyeXB0 X3ZlcmlmeShzdG10LT5yb2xlLCBwYXNzd29yZCwgIiIsICZsb2dkZXRhaWwpID09IFNUQVRVU19P SykKKwkJeworCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJtc2coImVtcHR5IHN0cmluZyBp cyBub3QgYSB2YWxpZCBwYXNzd29yZCwgY2xlYXJpbmcgcGFzc3dvcmQiKSkpOworCQl9CisJCWVs c2UKKwkJeworCQkJLyogRW5jcnlwdCB0aGUgcGFzc3dvcmQgdG8gdGhlIHJlcXVlc3RlZCBmb3Jt YXQuICovCisJCQlzaGFkb3dfcGFzcyA9IGVuY3J5cHRfcGFzc3dvcmQoUGFzc3dvcmRfZW5jcnlw dGlvbiwgc3RtdC0+cm9sZSwKKwkJCQkJCQkJCQkgICBwYXNzd29yZCk7CisKKwkJCU1lbVNldChu ZXdfcGFzc3dvcmRfcmVjb3JkLCAwLCBzaXplb2YobmV3X3Bhc3N3b3JkX3JlY29yZCkpOworCQkJ TWVtU2V0KG5ld19wYXNzd29yZF9yZWNvcmRfbnVsbHMsIGZhbHNlLCBzaXplb2YobmV3X3Bhc3N3 b3JkX3JlY29yZF9udWxscykpOworCisJCQkvKiBvcGVuIHBhc3N3b3JkIHRhYmxlIGFuZCBpbnNl cnQgaXQuICovCisJCQlwZ19hdXRoX3Bhc3N3b3JkX3JlbCA9IHRhYmxlX29wZW4oQXV0aFBhc3N3 b3JkUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisJCQlwZ19hdXRoX3Bhc3N3b3JkX2Rz YyA9IFJlbGF0aW9uR2V0RGVzY3IocGdfYXV0aF9wYXNzd29yZF9yZWwpOworCisJCQluZXdfcGFz c3dvcmRfcmVjb3JkW0FudW1fcGdfYXV0aF9wYXNzd29yZF9wYXNzd29yZCAtIDFdID0KKwkJCQlD U3RyaW5nR2V0VGV4dERhdHVtKHNoYWRvd19wYXNzKTsKKwkJCW5ld19wYXNzd29yZF9yZWNvcmRb QW51bV9wZ19hdXRoX3Bhc3N3b3JkX3JvbGVpZCAtIDFdID0gcm9sZWlkOworCisJCQluZXdfdHVw bGUgPSBoZWFwX2Zvcm1fdHVwbGUocGdfYXV0aF9wYXNzd29yZF9kc2MsCisJCQkJCQkJCQkJbmV3 X3Bhc3N3b3JkX3JlY29yZCwgbmV3X3Bhc3N3b3JkX3JlY29yZF9udWxscyk7CisJCQlDYXRhbG9n VHVwbGVJbnNlcnQocGdfYXV0aF9wYXNzd29yZF9yZWwsIG5ld190dXBsZSk7CisJCQloZWFwX2Zy ZWV0dXBsZShuZXdfdHVwbGUpOworCQkJdGFibGVfY2xvc2UocGdfYXV0aF9wYXNzd29yZF9yZWws IE5vTG9jayk7CisKKwkJfQorCX0KKwogCS8qCiAJICogQWR2YW5jZSBjb21tYW5kIGNvdW50ZXIg c28gd2UgY2FuIHNlZSBuZXcgcmVjb3JkOyBlbHNlIHRlc3RzIGluCiAJICogQWRkUm9sZU1lbXMg bWF5IGZhaWwuCkBAIC00OTUsNiArNTQ5LDkgQEAgQWx0ZXJSb2xlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQWx0ZXJSb2xlU3RtdCAqc3RtdCkKIAlEYXR1bQkJbmV3X3JlY29yZFtOYXR0c19wZ19hdXRo aWRdOwogCWJvb2wJCW5ld19yZWNvcmRfbnVsbHNbTmF0dHNfcGdfYXV0aGlkXTsKIAlib29sCQlu ZXdfcmVjb3JkX3JlcGxbTmF0dHNfcGdfYXV0aGlkXTsKKwlEYXR1bQkJbmV3X3Bhc3N3b3JkX3Jl Y29yZFtOYXR0c19wZ19hdXRoX3Bhc3N3b3JkXTsKKwlib29sCQluZXdfcGFzc3dvcmRfcmVjb3Jk X251bGxzW05hdHRzX3BnX2F1dGhfcGFzc3dvcmRdOworCWJvb2wJCW5ld19wYXNzd29yZF9yZWNv cmRfcmVwbFtOYXR0c19wZ19hdXRoX3Bhc3N3b3JkXTsKIAlSZWxhdGlvbglwZ19hdXRoaWRfcmVs OwogCVR1cGxlRGVzYwlwZ19hdXRoaWRfZHNjOwogCUhlYXBUdXBsZQl0dXBsZSwKQEAgLTYyNCw2 ICs2ODEsNyBAQCBBbHRlclJvbGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclJvbGVTdG10ICpz dG10KQogCXJvbGVuYW1lID0gcHN0cmR1cChOYW1lU3RyKGF1dGhmb3JtLT5yb2xuYW1lKSk7CiAJ cm9sZWlkID0gYXV0aGZvcm0tPm9pZDsKIAorCiAJLyoKIAkgKiBUbyBtZXNzIHdpdGggYSBzdXBl cnVzZXIgb3IgcmVwbGljYXRpb24gcm9sZSBpbiBhbnkgd2F5IHlvdSBnb3R0YSBiZQogCSAqIHN1 cGVydXNlci4gIFdlIGFsc28gaW5zaXN0IG9uIHN1cGVydXNlciB0byBjaGFuZ2UgdGhlIEJZUEFT U1JMUwpAQCAtNjk0LDYgKzc1MiwxMCBAQCBBbHRlclJvbGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBB bHRlclJvbGVTdG10ICpzdG10KQogCU1lbVNldChuZXdfcmVjb3JkLCAwLCBzaXplb2YobmV3X3Jl Y29yZCkpOwogCU1lbVNldChuZXdfcmVjb3JkX251bGxzLCBmYWxzZSwgc2l6ZW9mKG5ld19yZWNv cmRfbnVsbHMpKTsKIAlNZW1TZXQobmV3X3JlY29yZF9yZXBsLCBmYWxzZSwgc2l6ZW9mKG5ld19y ZWNvcmRfcmVwbCkpOworCU1lbVNldChuZXdfcGFzc3dvcmRfcmVjb3JkLCAwLCBzaXplb2YobmV3 X3Bhc3N3b3JkX3JlY29yZCkpOworCU1lbVNldChuZXdfcGFzc3dvcmRfcmVjb3JkX251bGxzLCBm YWxzZSwgc2l6ZW9mKG5ld19wYXNzd29yZF9yZWNvcmRfbnVsbHMpKTsKKwlNZW1TZXQobmV3X3Bh c3N3b3JkX3JlY29yZF9yZXBsLCBmYWxzZSwgc2l6ZW9mKG5ld19wYXNzd29yZF9yZWNvcmRfcmVw bCkpOworCiAKIAkvKgogCSAqIGlzc3VwZXIvY3JlYXRlcm9sZS9ldGMKQEAgLTc1MiwyNCArODE0 LDI0IEBAIEFsdGVyUm9sZShQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUm9sZVN0bXQgKnN0bXQp CiAJCXsKIAkJCWVyZXBvcnQoTk9USUNFLAogCQkJCQkoZXJybXNnKCJlbXB0eSBzdHJpbmcgaXMg bm90IGEgdmFsaWQgcGFzc3dvcmQsIGNsZWFyaW5nIHBhc3N3b3JkIikpKTsKLQkJCW5ld19yZWNv cmRfbnVsbHNbQW51bV9wZ19hdXRoaWRfcm9scGFzc3dvcmQgLSAxXSA9IHRydWU7CisJCQluZXdf cGFzc3dvcmRfcmVjb3JkX251bGxzW0FudW1fcGdfYXV0aF9wYXNzd29yZF9wYXNzd29yZCAtIDFd ID0gdHJ1ZTsKIAkJfQogCQllbHNlCiAJCXsKIAkJCS8qIEVuY3J5cHQgdGhlIHBhc3N3b3JkIHRv IHRoZSByZXF1ZXN0ZWQgZm9ybWF0LiAqLwogCQkJc2hhZG93X3Bhc3MgPSBlbmNyeXB0X3Bhc3N3 b3JkKFBhc3N3b3JkX2VuY3J5cHRpb24sIHJvbGVuYW1lLAogCQkJCQkJCQkJCSAgIHBhc3N3b3Jk KTsKLQkJCW5ld19yZWNvcmRbQW51bV9wZ19hdXRoaWRfcm9scGFzc3dvcmQgLSAxXSA9CisJCQlu ZXdfcGFzc3dvcmRfcmVjb3JkW0FudW1fcGdfYXV0aF9wYXNzd29yZF9wYXNzd29yZCAtIDFdID0K IAkJCQlDU3RyaW5nR2V0VGV4dERhdHVtKHNoYWRvd19wYXNzKTsKIAkJfQotCQluZXdfcmVjb3Jk X3JlcGxbQW51bV9wZ19hdXRoaWRfcm9scGFzc3dvcmQgLSAxXSA9IHRydWU7CisJCW5ld19wYXNz d29yZF9yZWNvcmRfcmVwbFtBbnVtX3BnX2F1dGhfcGFzc3dvcmRfcGFzc3dvcmQgLSAxXSA9IHRy dWU7CiAJfQogCiAJLyogdW5zZXQgcGFzc3dvcmQgKi8KIAlpZiAoZHBhc3N3b3JkICYmIGRwYXNz d29yZC0+YXJnID09IE5VTEwpCiAJewotCQluZXdfcmVjb3JkX3JlcGxbQW51bV9wZ19hdXRoaWRf cm9scGFzc3dvcmQgLSAxXSA9IHRydWU7Ci0JCW5ld19yZWNvcmRfbnVsbHNbQW51bV9wZ19hdXRo aWRfcm9scGFzc3dvcmQgLSAxXSA9IHRydWU7CisJCW5ld19wYXNzd29yZF9yZWNvcmRfcmVwbFtB bnVtX3BnX2F1dGhfcGFzc3dvcmRfcGFzc3dvcmQgLSAxXSA9IHRydWU7CisJCW5ld19wYXNzd29y ZF9yZWNvcmRfbnVsbHNbQW51bV9wZ19hdXRoX3Bhc3N3b3JkX3Bhc3N3b3JkIC0gMV0gPSB0cnVl OwogCX0KIAogCS8qIHZhbGlkIHVudGlsICovCkBAIC03ODYsMTIgKzg0OCw0OCBAQCBBbHRlclJv bGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclJvbGVTdG10ICpzdG10KQogCW5ld190dXBsZSA9 IGhlYXBfbW9kaWZ5X3R1cGxlKHR1cGxlLCBwZ19hdXRoaWRfZHNjLCBuZXdfcmVjb3JkLAogCQkJ CQkJCQkgIG5ld19yZWNvcmRfbnVsbHMsIG5ld19yZWNvcmRfcmVwbCk7CiAJQ2F0YWxvZ1R1cGxl VXBkYXRlKHBnX2F1dGhpZF9yZWwsICZ0dXBsZS0+dF9zZWxmLCBuZXdfdHVwbGUpOwotCi0JSW52 b2tlT2JqZWN0UG9zdEFsdGVySG9vayhBdXRoSWRSZWxhdGlvbklkLCByb2xlaWQsIDApOwotCiAJ UmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKIAloZWFwX2ZyZWV0dXBsZShuZXdfdHVwbGUpOwogCisJ aWYgKG5ld19wYXNzd29yZF9yZWNvcmRfcmVwbFtBbnVtX3BnX2F1dGhfcGFzc3dvcmRfcGFzc3dv cmQgLSAxXSA9PSB0cnVlKQorCXsKKwkJUmVsYXRpb24JcGdfYXV0aF9wYXNzd29yZF9yZWw7CisJ CVR1cGxlRGVzYwlwZ19hdXRoX3Bhc3N3b3JkX2RzYzsKKwkJSGVhcFR1cGxlICAgcGFzc3dvcmRf dHVwbGU7CisKKwkJcGdfYXV0aF9wYXNzd29yZF9yZWwgPSB0YWJsZV9vcGVuKEF1dGhQYXNzd29y ZFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCQlwZ19hdXRoX3Bhc3N3b3JkX2RzYyA9 IFJlbGF0aW9uR2V0RGVzY3IocGdfYXV0aF9wYXNzd29yZF9yZWwpOworCQlwYXNzd29yZF90dXBs ZSA9IFNlYXJjaFN5c0NhY2hlMShBVVRIUEFTU1dPUkQsIE9iamVjdElkR2V0RGF0dW0ocm9sZWlk KSk7CisKKwkJaWYgKG5ld19wYXNzd29yZF9yZWNvcmRfbnVsbHNbQW51bV9wZ19hdXRoX3Bhc3N3 b3JkX3Bhc3N3b3JkIC0gMV0gPT0gdHJ1ZSkgLyogZGVsZXRlIGV4aXN0aW5nIHBhc3N3b3JkICov CisJCXsKKwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHBhc3N3b3JkX3R1cGxlKSkgeworCQkJCUNh dGFsb2dUdXBsZURlbGV0ZShwZ19hdXRoX3Bhc3N3b3JkX3JlbCwgJnBhc3N3b3JkX3R1cGxlLT50 X3NlbGYpOworCQkJCVJlbGVhc2VTeXNDYWNoZShwYXNzd29yZF90dXBsZSk7CisJCQl9CisJCX0K KwkJZWxzZSBpZiAoSGVhcFR1cGxlSXNWYWxpZChwYXNzd29yZF90dXBsZSkpIC8qIHVwZGF0ZSBl eGlzdGluZyBwYXNzd29yZCAqLworCQl7CisJCQluZXdfdHVwbGUgPSBoZWFwX21vZGlmeV90dXBs ZShwYXNzd29yZF90dXBsZSwgcGdfYXV0aF9wYXNzd29yZF9kc2MsIG5ld19wYXNzd29yZF9yZWNv cmQsCisJCQkJCQkJCQkJbmV3X3Bhc3N3b3JkX3JlY29yZF9udWxscywgbmV3X3Bhc3N3b3JkX3Jl Y29yZF9yZXBsKTsKKwkJCUNhdGFsb2dUdXBsZVVwZGF0ZShwZ19hdXRoX3Bhc3N3b3JkX3JlbCwg JnBhc3N3b3JkX3R1cGxlLT50X3NlbGYsIG5ld190dXBsZSk7CisJCQlSZWxlYXNlU3lzQ2FjaGUo cGFzc3dvcmRfdHVwbGUpOworCQkJaGVhcF9mcmVldHVwbGUobmV3X3R1cGxlKTsKKwkJfQorCQll bHNlIC8qIGluc2VydCBuZXcgcGFzc3dvcmQgKi8KKwkJeworCQkJbmV3X3Bhc3N3b3JkX3JlY29y ZFtBbnVtX3BnX2F1dGhfcGFzc3dvcmRfcm9sZWlkIC0gMV0gPSByb2xlaWQ7CisKKwkJCW5ld190 dXBsZSA9IGhlYXBfZm9ybV90dXBsZShwZ19hdXRoX3Bhc3N3b3JkX2RzYywKKwkJCQkJCQkJCQlu ZXdfcGFzc3dvcmRfcmVjb3JkLCBuZXdfcGFzc3dvcmRfcmVjb3JkX251bGxzKTsKKwkJCUNhdGFs b2dUdXBsZUluc2VydChwZ19hdXRoX3Bhc3N3b3JkX3JlbCwgbmV3X3R1cGxlKTsKKwkJCWhlYXBf ZnJlZXR1cGxlKG5ld190dXBsZSk7CisJCX0KKworCQl0YWJsZV9jbG9zZShwZ19hdXRoX3Bhc3N3 b3JkX3JlbCwgTm9Mb2NrKTsKKwl9CisJSW52b2tlT2JqZWN0UG9zdEFsdGVySG9vayhBdXRoSWRS ZWxhdGlvbklkLCByb2xlaWQsIDApOworCiAJLyoKIAkgKiBBZHZhbmNlIGNvbW1hbmQgY291bnRl ciBzbyB3ZSBjYW4gc2VlIG5ldyByZWNvcmQ7IGVsc2UgdGVzdHMgaW4KIAkgKiBBZGRSb2xlTWVt cyBtYXkgZmFpbC4KQEAgLTkwMSw3ICs5OTksNiBAQCBBbHRlclJvbGVTZXQoQWx0ZXJSb2xlU2V0 U3RtdCAqc3RtdCkKIAlyZXR1cm4gcm9sZWlkOwogfQogCi0KIC8qCiAgKiBEUk9QIFJPTEUKICAq LwpAQCAtOTA5LDcgKzEwMDYsOCBAQCB2b2lkCiBEcm9wUm9sZShEcm9wUm9sZVN0bXQgKnN0bXQp CiB7CiAJUmVsYXRpb24JcGdfYXV0aGlkX3JlbCwKLQkJCQlwZ19hdXRoX21lbWJlcnNfcmVsOwor CQkJCXBnX2F1dGhfbWVtYmVyc19yZWwsCisJCQkJcGdfYXV0aF9wYXNzd29yZF9yZWw7CiAJTGlz dENlbGwgICAqaXRlbTsKIAogCWlmICghaGF2ZV9jcmVhdGVyb2xlX3ByaXZpbGVnZSgpKQpAQCAt OTIzLDYgKzEwMjEsOCBAQCBEcm9wUm9sZShEcm9wUm9sZVN0bXQgKnN0bXQpCiAJICovCiAJcGdf YXV0aGlkX3JlbCA9IHRhYmxlX29wZW4oQXV0aElkUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9j ayk7CiAJcGdfYXV0aF9tZW1iZXJzX3JlbCA9IHRhYmxlX29wZW4oQXV0aE1lbVJlbGF0aW9uSWQs IFJvd0V4Y2x1c2l2ZUxvY2spOworCXBnX2F1dGhfcGFzc3dvcmRfcmVsID0gdGFibGVfb3BlbihB dXRoUGFzc3dvcmRSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwogCiAJZm9yZWFjaChp dGVtLCBzdG10LT5yb2xlcykKIAl7CkBAIC0xMDU2LDYgKzExNTYsMTUgQEAgRHJvcFJvbGUoRHJv cFJvbGVTdG10ICpzdG10KQogCQlEZWxldGVTaGFyZWRDb21tZW50cyhyb2xlaWQsIEF1dGhJZFJl bGF0aW9uSWQpOwogCQlEZWxldGVTaGFyZWRTZWN1cml0eUxhYmVsKHJvbGVpZCwgQXV0aElkUmVs YXRpb25JZCk7CiAKKwkJLyoKKwkJICogRHJvcCBwYXNzd29yZAorCQkgKi8KKwkJdHVwbGUgPSBT ZWFyY2hTeXNDYWNoZTEoQVVUSFBBU1NXT1JELCByb2xlaWQpOworCQlpZiAoSGVhcFR1cGxlSXNW YWxpZCh0dXBsZSkpIHsKKwkJCUNhdGFsb2dUdXBsZURlbGV0ZShwZ19hdXRoX3Bhc3N3b3JkX3Jl bCwgJnR1cGxlLT50X3NlbGYpOworCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKwkJfQorCiAJ CS8qCiAJCSAqIFJlbW92ZSBzZXR0aW5ncyBmb3IgdGhpcyByb2xlLgogCQkgKi8KQEAgLTEwNzcs NyArMTE4Niw5IEBAIERyb3BSb2xlKERyb3BSb2xlU3RtdCAqc3RtdCkKIAkgKiBOb3cgd2UgY2Fu IGNsZWFuIHVwOyBidXQga2VlcCBsb2NrcyB1bnRpbCBjb21taXQuCiAJICovCiAJdGFibGVfY2xv c2UocGdfYXV0aF9tZW1iZXJzX3JlbCwgTm9Mb2NrKTsKKwl0YWJsZV9jbG9zZShwZ19hdXRoX3Bh c3N3b3JkX3JlbCwgTm9Mb2NrKTsKIAl0YWJsZV9jbG9zZShwZ19hdXRoaWRfcmVsLCBOb0xvY2sp OworCiB9CiAKIC8qCkBAIC0xMDg3LDExICsxMTk4LDEyIEBAIE9iamVjdEFkZHJlc3MKIFJlbmFt ZVJvbGUoY29uc3QgY2hhciAqb2xkbmFtZSwgY29uc3QgY2hhciAqbmV3bmFtZSkKIHsKIAlIZWFw VHVwbGUJb2xkdHVwbGUsCi0JCQkJbmV3dHVwbGU7CisJCQkJbmV3dHVwbGUsCisJCQkJcGFzc3R1 cGxlOwogCVR1cGxlRGVzYwlkc2M7CiAJUmVsYXRpb24JcmVsOwogCURhdHVtCQlkYXR1bTsKLQli b29sCQlpc251bGw7CisJYm9vbAkJaXNudWxsID0gdHJ1ZTsKIAlEYXR1bQkJcmVwbF92YWxbTmF0 dHNfcGdfYXV0aGlkXTsKIAlib29sCQlyZXBsX251bGxbTmF0dHNfcGdfYXV0aGlkXTsKIAlib29s CQlyZXBsX3JlcGxbTmF0dHNfcGdfYXV0aGlkXTsKQEAgLTExODksMTQgKzEzMDEsMjQgQEAgUmVu YW1lUm9sZShjb25zdCBjaGFyICpvbGRuYW1lLCBjb25zdCBjaGFyICpuZXduYW1lKQogCQkJCQkJ CQkJCQkJCQkJICAgQ1N0cmluZ0dldERhdHVtKG5ld25hbWUpKTsKIAlyZXBsX251bGxbQW51bV9w Z19hdXRoaWRfcm9sbmFtZSAtIDFdID0gZmFsc2U7CiAKLQlkYXR1bSA9IGhlYXBfZ2V0YXR0cihv bGR0dXBsZSwgQW51bV9wZ19hdXRoaWRfcm9scGFzc3dvcmQsIGRzYywgJmlzbnVsbCk7CisJcGFz c3R1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKEFVVEhQQVNTV09SRCwgcm9sZWlkKTsKKworCWlmIChI ZWFwVHVwbGVJc1ZhbGlkKHBhc3N0dXBsZSkpCisJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKEFV VEhQQVNTV09SRCwgcGFzc3R1cGxlLAorCQkJCQkJCQlBbnVtX3BnX2F1dGhfcGFzc3dvcmRfcGFz c3dvcmQsICZpc251bGwpOwogCiAJaWYgKCFpc251bGwgJiYgZ2V0X3Bhc3N3b3JkX3R5cGUoVGV4 dERhdHVtR2V0Q1N0cmluZyhkYXR1bSkpID09IFBBU1NXT1JEX1RZUEVfTUQ1KQogCXsKKwkJUmVs YXRpb24JcGdfYXV0aF9wYXNzd29yZF9yZWw7CisKIAkJLyogTUQ1IHVzZXMgdGhlIHVzZXJuYW1l IGFzIHNhbHQsIHNvIGp1c3QgY2xlYXIgaXQgb24gYSByZW5hbWUgKi8KLQkJcmVwbF9yZXBsW0Fu dW1fcGdfYXV0aGlkX3JvbHBhc3N3b3JkIC0gMV0gPSB0cnVlOwotCQlyZXBsX251bGxbQW51bV9w Z19hdXRoaWRfcm9scGFzc3dvcmQgLSAxXSA9IHRydWU7CisJCXBnX2F1dGhfcGFzc3dvcmRfcmVs ID0gdGFibGVfb3BlbihBdXRoUGFzc3dvcmRSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsK IAorCQlpZiAoSGVhcFR1cGxlSXNWYWxpZChwYXNzdHVwbGUpKSB7CisJCQlDYXRhbG9nVHVwbGVE ZWxldGUocGdfYXV0aF9wYXNzd29yZF9yZWwsICZwYXNzdHVwbGUtPnRfc2VsZik7CisJCQlSZWxl YXNlU3lzQ2FjaGUocGFzc3R1cGxlKTsKKwkJfQorCQl0YWJsZV9jbG9zZShwZ19hdXRoX3Bhc3N3 b3JkX3JlbCwgTm9Mb2NrKTsKIAkJZXJlcG9ydChOT1RJQ0UsCiAJCQkJKGVycm1zZygiTUQ1IHBh c3N3b3JkIGNsZWFyZWQgYmVjYXVzZSBvZiByb2xlIHJlbmFtZSIpKSk7CiAJfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvbGlicHEvYXV0aC1zYXNsLmMgYi9zcmMvYmFja2VuZC9saWJwcS9hdXRo LXNhc2wuYwppbmRleCBhMWQ3ZGJiNmQ1OC4uODA1YjM2OTViNzggMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2xpYnBxL2F1dGgtc2FzbC5jCisrKyBiL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2Fz bC5jCkBAIC0zMyw3ICszMyw3IEBACiAgKiBpbXBsZW1lbnRhdGlvbi4KICAqCiAgKiBzaGFkb3df cGFzcyBpcyBhbiBvcHRpb25hbCBwb2ludGVyIHRvIHRoZSBzdG9yZWQgc2VjcmV0IG9mIHRoZSBy b2xlCi0gKiBhdXRoZW50aWNhdGVkLCBmcm9tIHBnX2F1dGhpZC5yb2xwYXNzd29yZC4gIEZvciBt ZWNoYW5pc21zIHRoYXQgdXNlCisgKiBhdXRoZW50aWNhdGVkLCBmcm9tIHBnX2F1dGhfcGFzc3dv cmQucGFzc3dvcmQuICBGb3IgbWVjaGFuaXNtcyB0aGF0IHVzZQogICogc2hhZG93ZWQgcGFzc3dv cmRzLCBhIE5VTEwgcG9pbnRlciBoZXJlIG1lYW5zIHRoYXQgYW4gZW50cnkgY291bGQgbm90CiAg KiBiZSBmb3VuZCBmb3IgdGhlIHJvbGUgKG9yIHRoZSB1c2VyIGRvZXMgbm90IGV4aXN0KSwgYW5k IHRoZSBtZWNoYW5pc20KICAqIHNob3VsZCBmYWlsIHRoZSBhdXRoZW50aWNhdGlvbiBleGNoYW5n ZS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0uYyBiL3NyYy9iYWNr ZW5kL2xpYnBxL2F1dGgtc2NyYW0uYwppbmRleCBlZTdmNTIyMThhYi4uNzk1ZjFjYmE1NTUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0uYworKysgYi9zcmMvYmFja2Vu ZC9saWJwcS9hdXRoLXNjcmFtLmMKQEAgLTIyMCw3ICsyMjAsNyBAQCBzY3JhbV9nZXRfbWVjaGFu aXNtcyhQb3J0ICpwb3J0LCBTdHJpbmdJbmZvIGJ1ZikKICAqIEl0IHNob3VsZCBiZSBvbmUgb2Yg dGhlIG1lY2hhbmlzbXMgdGhhdCB3ZSBzdXBwb3J0LCBhcyByZXR1cm5lZCBieQogICogc2NyYW1f Z2V0X21lY2hhbmlzbXMoKS4KICAqCi0gKiAnc2hhZG93X3Bhc3MnIGlzIHRoZSByb2xlJ3Mgc3Rv cmVkIHNlY3JldCwgZnJvbSBwZ19hdXRoaWQucm9scGFzc3dvcmQuCisgKiAnc2hhZG93X3Bhc3Mn IGlzIHRoZSByb2xlJ3Mgc3RvcmVkIHNlY3JldCwgZnJvbSBwZ19hdXRoX3Bhc3N3b3JkLnBhc3N3 b3JkLgogICogVGhlIHVzZXJuYW1lIHdhcyBwcm92aWRlZCBieSB0aGUgY2xpZW50IGluIHRoZSBz dGFydHVwIG1lc3NhZ2UsIGFuZCBpcwogICogYXZhaWxhYmxlIGluIHBvcnQtPnVzZXJfbmFtZS4g IElmICdzaGFkb3dfcGFzcycgaXMgTlVMTCwgd2Ugc3RpbGwgcGVyZm9ybQogICogYW4gYXV0aGVu dGljYXRpb24gZXhjaGFuZ2UsIGJ1dCBpdCB3aWxsIGZhaWwsIGFzIGlmIGFuIGluY29ycmVjdCBw YXNzd29yZApAQCAtNDU0LDcgKzQ1NCw3IEBAIHNjcmFtX2V4Y2hhbmdlKHZvaWQgKm9wYXEsIGNv bnN0IGNoYXIgKmlucHV0LCBpbnQgaW5wdXRsZW4sCiB9CiAKIC8qCi0gKiBDb25zdHJ1Y3QgYSBT Q1JBTSBzZWNyZXQsIGZvciBzdG9yaW5nIGluIHBnX2F1dGhpZC5yb2xwYXNzd29yZC4KKyAqIENv bnN0cnVjdCBhIFNDUkFNIHNlY3JldCwgZm9yIHN0b3JpbmcgaW4gcGdfYXV0aF9wYXNzd29yZC5w YXNzd29yZC4KICAqCiAgKiBUaGUgcmVzdWx0IGlzIHBhbGxvYydkLCBzbyBjYWxsZXIgaXMgcmVz cG9uc2libGUgZm9yIGZyZWVpbmcgaXQuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2xp YnBxL2F1dGguYyBiL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGguYwppbmRleCBlZmM1M2YzMTM1My4u NWNmZGUxZWFhMTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGguYworKysgYi9z cmMvYmFja2VuZC9saWJwcS9hdXRoLmMKQEAgLTU5MiwxMCArNTkyLDI2IEBAIENsaWVudEF1dGhl bnRpY2F0aW9uKFBvcnQgKnBvcnQpCiAKIAkJY2FzZSB1YU1ENToKIAkJY2FzZSB1YVNDUkFNOgor CQkJLyoKKwkJCSAqIGNoZWNrIHRvIGJlIHN1cmUgd2UgYXJlIG5vdCBwYXN0IHJvbHZhbGlkdW50 aWwKKwkgCQkgKi8KKwkJCWlmICghaXNfcm9sZV92YWxpZChwb3J0LT51c2VyX25hbWUsICZsb2dk ZXRhaWwpKSB7CisJCQkJc3RhdHVzID0gU1RBVFVTX0VSUk9SOworCQkJCWJyZWFrOworCQkJfQor CiAJCQlzdGF0dXMgPSBDaGVja1BXQ2hhbGxlbmdlQXV0aChwb3J0LCAmbG9nZGV0YWlsKTsKIAkJ CWJyZWFrOwogCiAJCWNhc2UgdWFQYXNzd29yZDoKKwkJCS8qCisJCQkgKiBjaGVjayB0byBiZSBz dXJlIHdlIGFyZSBub3QgcGFzdCByb2x2YWxpZHVudGlsCisJIAkJICovCisJCQlpZiAoIWlzX3Jv bGVfdmFsaWQocG9ydC0+dXNlcl9uYW1lLCAmbG9nZGV0YWlsKSkgeworCQkJCXN0YXR1cyA9IFNU QVRVU19FUlJPUjsKKwkJCQlicmVhazsKKwkJCX0KKwogCQkJc3RhdHVzID0gQ2hlY2tQYXNzd29y ZEF1dGgocG9ydCwgJmxvZ2RldGFpbCk7CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvbGlicHEvY3J5cHQuYyBiL3NyYy9iYWNrZW5kL2xpYnBxL2NyeXB0LmMKaW5kZXggMWZm OGIwNTA3ZDQuLjc0NWU2MTAzNGMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9saWJwcS9jcnlw dC5jCisrKyBiL3NyYy9iYWNrZW5kL2xpYnBxL2NyeXB0LmMKQEAgLTIsNyArMiw3IEBACiAgKgog ICogY3J5cHQuYwogICoJICBGdW5jdGlvbnMgZm9yIGRlYWxpbmcgd2l0aCBlbmNyeXB0ZWQgcGFz c3dvcmRzIHN0b3JlZCBpbgotICoJICBwZ19hdXRoaWQucm9scGFzc3dvcmQuCisgKgkgIHBnX2F1 dGhfcGFzc3dvcmQucGFzc3dvcmQuCiAgKgogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2 LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YQpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19hdXRoaWQuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfcGFzc3dvcmQuaCIK ICNpbmNsdWRlICJjb21tb24vbWQ1LmgiCiAjaW5jbHVkZSAiY29tbW9uL3NjcmFtLWNvbW1vbi5o IgogI2luY2x1ZGUgImxpYnBxL2NyeXB0LmgiCkBAIC0zNiw4ICszNyw3IEBACiBjaGFyICoKIGdl dF9yb2xlX3Bhc3N3b3JkKGNvbnN0IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKipsb2dkZXRhaWwp CiB7Ci0JVGltZXN0YW1wVHogdnVudGlsID0gMDsKLQlIZWFwVHVwbGUJcm9sZVR1cDsKKwlIZWFw VHVwbGUJcm9sZVR1cCwgcGFzc1R1cDsKIAlEYXR1bQkJZGF0dW07CiAJYm9vbAkJaXNudWxsOwog CWNoYXIJICAgKnNoYWRvd19wYXNzOwpAQCAtNTEsMzMgKzUxLDI5IEBAIGdldF9yb2xlX3Bhc3N3 b3JkKGNvbnN0IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKipsb2dkZXRhaWwpCiAJCXJldHVybiBO VUxMOwkJCS8qIG5vIHN1Y2ggdXNlciAqLwogCX0KIAotCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRy KEFVVEhOQU1FLCByb2xlVHVwLAotCQkJCQkJCUFudW1fcGdfYXV0aGlkX3JvbHBhc3N3b3JkLCAm aXNudWxsKTsKLQlpZiAoaXNudWxsKQorCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKEFVVEhOQU1F LCByb2xlVHVwLCBBbnVtX3BnX2F1dGhpZF9vaWQsICZpc251bGwpOworCQorCXBhc3NUdXAgPSBT ZWFyY2hTeXNDYWNoZTEoQVVUSFBBU1NXT1JELCBkYXR1bSk7CisKKwlpZiAoIUhlYXBUdXBsZUlz VmFsaWQocGFzc1R1cCkpCiAJewotCQlSZWxlYXNlU3lzQ2FjaGUocm9sZVR1cCk7CiAJCSpsb2dk ZXRhaWwgPSBwc3ByaW50ZihfKCJVc2VyIFwiJXNcIiBoYXMgbm8gcGFzc3dvcmQgYXNzaWduZWQu IiksCiAJCQkJCQkJICByb2xlKTsKIAkJcmV0dXJuIE5VTEw7CQkJLyogdXNlciBoYXMgbm8gcGFz c3dvcmQgKi8KIAl9Ci0Jc2hhZG93X3Bhc3MgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsK LQotCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKEFVVEhOQU1FLCByb2xlVHVwLAotCQkJCQkJCUFu dW1fcGdfYXV0aGlkX3JvbHZhbGlkdW50aWwsICZpc251bGwpOwotCWlmICghaXNudWxsKQotCQl2 dW50aWwgPSBEYXR1bUdldFRpbWVzdGFtcFR6KGRhdHVtKTsKKwlkYXR1bSA9IFN5c0NhY2hlR2V0 QXR0cihBVVRIUEFTU1dPUkQsIHBhc3NUdXAsCisJCQkJCQkJQW51bV9wZ19hdXRoX3Bhc3N3b3Jk X3Bhc3N3b3JkLCAmaXNudWxsKTsKIAogCVJlbGVhc2VTeXNDYWNoZShyb2xlVHVwKTsKLQotCS8q Ci0JICogUGFzc3dvcmQgT0ssIGJ1dCBjaGVjayB0byBiZSBzdXJlIHdlIGFyZSBub3QgcGFzdCBy b2x2YWxpZHVudGlsCi0JICovCi0JaWYgKCFpc251bGwgJiYgdnVudGlsIDwgR2V0Q3VycmVudFRp bWVzdGFtcCgpKQorCWlmIChpc251bGwpIC8qIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gYW55IG1v cmUgYnV0IGp1c3QgaW4gY2FzZSAqLwogCXsKLQkJKmxvZ2RldGFpbCA9IHBzcHJpbnRmKF8oIlVz ZXIgXCIlc1wiIGhhcyBhbiBleHBpcmVkIHBhc3N3b3JkLiIpLAorCQlSZWxlYXNlU3lzQ2FjaGUo cGFzc1R1cCk7CisJCSpsb2dkZXRhaWwgPSBwc3ByaW50ZihfKCJVc2VyIFwiJXNcIiBoYXMgbm8g cGFzc3dvcmQgYXNzaWduZWQuIiksCiAJCQkJCQkJICByb2xlKTsKLQkJcmV0dXJuIE5VTEw7CisJ CXJldHVybiBOVUxMOwkJCS8qIHVzZXIgaGFzIG5vIHBhc3N3b3JkICovCiAJfQorCXNoYWRvd19w YXNzID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJUmVsZWFzZVN5c0NhY2hlKHBhc3NU dXApOwogCiAJcmV0dXJuIHNoYWRvd19wYXNzOwogfQpAQCAtMTU2LDcgKzE1Miw3IEBAIGVuY3J5 cHRfcGFzc3dvcmQoUGFzc3dvcmRUeXBlIHRhcmdldF90eXBlLCBjb25zdCBjaGFyICpyb2xlLAog ICogQ2hlY2sgTUQ1IGF1dGhlbnRpY2F0aW9uIHJlc3BvbnNlLCBhbmQgcmV0dXJuIFNUQVRVU19P SyBvciBTVEFUVVNfRVJST1IuCiAgKgogICogJ3NoYWRvd19wYXNzJyBpcyB0aGUgdXNlcidzIGNv cnJlY3QgcGFzc3dvcmQgb3IgcGFzc3dvcmQgaGFzaCwgYXMgc3RvcmVkCi0gKiBpbiBwZ19hdXRo aWQucm9scGFzc3dvcmQuCisgKiBpbiBwZ19hdXRoX3Bhc3N3b3JkLnBhc3N3b3JkLgogICogJ2Ns aWVudF9wYXNzJyBpcyB0aGUgcmVzcG9uc2UgZ2l2ZW4gYnkgdGhlIHJlbW90ZSB1c2VyIHRvIHRo ZSBNRDUgY2hhbGxlbmdlLgogICogJ21kNV9zYWx0JyBpcyB0aGUgc2FsdCB1c2VkIGluIHRoZSBN RDUgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLgogICoKQEAgLTIxMSw3ICsyMDcsNyBAQCBtZDVf Y3J5cHRfdmVyaWZ5KGNvbnN0IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKnNoYWRvd19wYXNzLAog ICogQ2hlY2sgZ2l2ZW4gcGFzc3dvcmQgZm9yIGdpdmVuIHVzZXIsIGFuZCByZXR1cm4gU1RBVFVT X09LIG9yIFNUQVRVU19FUlJPUi4KICAqCiAgKiAnc2hhZG93X3Bhc3MnIGlzIHRoZSB1c2VyJ3Mg Y29ycmVjdCBwYXNzd29yZCBoYXNoLCBhcyBzdG9yZWQgaW4KLSAqIHBnX2F1dGhpZC5yb2xwYXNz d29yZC4KKyAqIHBnX2F1dGhfcGFzc3dvcmQucGFzc3dvcmQuCiAgKiAnY2xpZW50X3Bhc3MnIGlz IHRoZSBwYXNzd29yZCBnaXZlbiBieSB0aGUgcmVtb3RlIHVzZXIuCiAgKgogICogSW4gdGhlIGVy cm9yIGNhc2UsIHN0b3JlIGEgc3RyaW5nIGF0ICpsb2dkZXRhaWwgdGhhdCB3aWxsIGJlIHNlbnQg dG8gdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9jYXRjYWNoZS5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvY2F0Y2FjaGUuYwppbmRleCBlYzA3M2UxZWQwNi4uMzU2 ZTljZGU2ZmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2NhdGNhY2hlLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvY2F0Y2FjaGUuYwpAQCAtMTEwNCw2ICsxMTA0 LDcgQEAgSW5kZXhTY2FuT0soQ2F0Q2FjaGUgKmNhY2hlLCBTY2FuS2V5IGN1cl9za2V5KQogCiAJ CWNhc2UgQVVUSE5BTUU6CiAJCWNhc2UgQVVUSE9JRDoKKwkJY2FzZSBBVVRIUEFTU1dPUkQ6CiAJ CWNhc2UgQVVUSE1FTU1FTVJPTEU6CiAJCWNhc2UgREFUQUJBU0VPSUQ6CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9yZWxjYWNoZS5jCmluZGV4IDQzZjE0YzIzM2Q2Li5kODRjYjg4M2Y1MSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9yZWxjYWNoZS5jCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19hdHRyZGVmLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoX21lbWJlcnMuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aF9w YXNzd29yZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfZGF0YWJhc2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5o IgpAQCAtMTEzLDYgKzExNCw3IEBAIHN0YXRpYyBjb25zdCBGb3JtRGF0YV9wZ19hdHRyaWJ1dGUg RGVzY19wZ19wcm9jW05hdHRzX3BnX3Byb2NdID0ge1NjaGVtYV9wZ19wcm9jCiBzdGF0aWMgY29u c3QgRm9ybURhdGFfcGdfYXR0cmlidXRlIERlc2NfcGdfdHlwZVtOYXR0c19wZ190eXBlXSA9IHtT Y2hlbWFfcGdfdHlwZX07CiBzdGF0aWMgY29uc3QgRm9ybURhdGFfcGdfYXR0cmlidXRlIERlc2Nf cGdfZGF0YWJhc2VbTmF0dHNfcGdfZGF0YWJhc2VdID0ge1NjaGVtYV9wZ19kYXRhYmFzZX07CiBz dGF0aWMgY29uc3QgRm9ybURhdGFfcGdfYXR0cmlidXRlIERlc2NfcGdfYXV0aGlkW05hdHRzX3Bn X2F1dGhpZF0gPSB7U2NoZW1hX3BnX2F1dGhpZH07CitzdGF0aWMgY29uc3QgRm9ybURhdGFfcGdf YXR0cmlidXRlIERlc2NfcGdfYXV0aF9wYXNzd29yZFtOYXR0c19wZ19hdXRoX3Bhc3N3b3JkXSA9 IHtTY2hlbWFfcGdfYXV0aF9wYXNzd29yZH07CiBzdGF0aWMgY29uc3QgRm9ybURhdGFfcGdfYXR0 cmlidXRlIERlc2NfcGdfYXV0aF9tZW1iZXJzW05hdHRzX3BnX2F1dGhfbWVtYmVyc10gPSB7U2No ZW1hX3BnX2F1dGhfbWVtYmVyc307CiBzdGF0aWMgY29uc3QgRm9ybURhdGFfcGdfYXR0cmlidXRl IERlc2NfcGdfaW5kZXhbTmF0dHNfcGdfaW5kZXhdID0ge1NjaGVtYV9wZ19pbmRleH07CiBzdGF0 aWMgY29uc3QgRm9ybURhdGFfcGdfYXR0cmlidXRlIERlc2NfcGdfc2hzZWNsYWJlbFtOYXR0c19w Z19zaHNlY2xhYmVsXSA9IHtTY2hlbWFfcGdfc2hzZWNsYWJlbH07CkBAIC0zNDg1LDYgKzM0ODcs NyBAQCBSZWxhdGlvbkJ1aWxkTG9jYWxSZWxhdGlvbihjb25zdCBjaGFyICpyZWxuYW1lLAogCXsK IAkJY2FzZSBEYXRhYmFzZVJlbGF0aW9uSWQ6CiAJCWNhc2UgQXV0aElkUmVsYXRpb25JZDoKKwkJ Y2FzZSBBdXRoUGFzc3dvcmRSZWxhdGlvbklkOgogCQljYXNlIEF1dGhNZW1SZWxhdGlvbklkOgog CQljYXNlIFJlbGF0aW9uUmVsYXRpb25JZDoKIAkJY2FzZSBBdHRyaWJ1dGVSZWxhdGlvbklkOgpA QCAtMzkwNSw3ICszOTA4LDcgQEAgUmVsYXRpb25DYWNoZUluaXRpYWxpemUodm9pZCkKICAqCQlS ZWxhdGlvbkNhY2hlSW5pdGlhbGl6ZVBoYXNlMgogICoKICAqCQlUaGlzIGlzIGNhbGxlZCB0byBw cmVwYXJlIGZvciBhY2Nlc3MgdG8gc2hhcmVkIGNhdGFsb2dzIGR1cmluZyBzdGFydHVwLgotICoJ CVdlIG11c3QgYXQgbGVhc3Qgc2V0IHVwIG5haWxlZCByZWxkZXNjcyBmb3IgcGdfZGF0YWJhc2Us IHBnX2F1dGhpZCwKKyAqCQlXZSBtdXN0IGF0IGxlYXN0IHNldCB1cCBuYWlsZWQgcmVsZGVzY3Mg Zm9yIHBnX2RhdGFiYXNlLCBwZ19hdXRoaWQsIHBnX2F1dGhfcGFzc3dvcmQsCiAgKgkJcGdfYXV0 aF9tZW1iZXJzLCBhbmQgcGdfc2hzZWNsYWJlbC4gSWRlYWxseSB3ZSdkIGxpa2UgdG8gaGF2ZSBy ZWxkZXNjcwogICoJCWZvciB0aGVpciBpbmRleGVzLCB0b28uICBXZSBhdHRlbXB0IHRvIGxvYWQg dGhpcyBpbmZvcm1hdGlvbiBmcm9tIHRoZQogICoJCXNoYXJlZCByZWxjYWNoZSBpbml0IGZpbGUu ICBJZiB0aGF0J3MgbWlzc2luZyBvciBicm9rZW4sIGp1c3QgbWFrZQpAQCAtMzk1MCw4ICszOTUz LDEwIEBAIFJlbGF0aW9uQ2FjaGVJbml0aWFsaXplUGhhc2UyKHZvaWQpCiAJCQkJICBOYXR0c19w Z19zaHNlY2xhYmVsLCBEZXNjX3BnX3Noc2VjbGFiZWwpOwogCQlmb3JtcmRlc2MoInBnX3N1YnNj cmlwdGlvbiIsIFN1YnNjcmlwdGlvblJlbGF0aW9uX1Jvd3R5cGVfSWQsIHRydWUsCiAJCQkJICBO YXR0c19wZ19zdWJzY3JpcHRpb24sIERlc2NfcGdfc3Vic2NyaXB0aW9uKTsKKwkJZm9ybXJkZXNj KCJwZ19hdXRoX3Bhc3N3b3JkIiwgQXV0aFBhc3N3b3JkUmVsYXRpb25fUm93dHlwZV9JZCwgdHJ1 ZSwKKwkJCQkgIE5hdHRzX3BnX2F1dGhfcGFzc3dvcmQsIERlc2NfcGdfYXV0aF9wYXNzd29yZCk7 CiAKLSNkZWZpbmUgTlVNX0NSSVRJQ0FMX1NIQVJFRF9SRUxTCTUJLyogZml4IGlmIHlvdSBjaGFu Z2UgbGlzdCBhYm92ZSAqLworI2RlZmluZSBOVU1fQ1JJVElDQUxfU0hBUkVEX1JFTFMJNgkvKiBm aXggaWYgeW91IGNoYW5nZSBsaXN0IGFib3ZlICovCiAJfQogCiAJTWVtb3J5Q29udGV4dFN3aXRj aFRvKG9sZGN4dCk7CkBAIC00MDkwLDggKzQwOTUsMTAgQEAgUmVsYXRpb25DYWNoZUluaXRpYWxp emVQaGFzZTModm9pZCkKIAkJCQkJCQlBdXRoTWVtUmVsYXRpb25JZCk7CiAJCWxvYWRfY3JpdGlj YWxfaW5kZXgoU2hhcmVkU2VjTGFiZWxPYmplY3RJbmRleElkLAogCQkJCQkJCVNoYXJlZFNlY0xh YmVsUmVsYXRpb25JZCk7CisJCWxvYWRfY3JpdGljYWxfaW5kZXgoQXV0aFBhc3N3b3JkUm9sZU9p ZEluZGV4SWQsCisJCQkJCQkJQXV0aFBhc3N3b3JkUmVsYXRpb25JZCk7CiAKLSNkZWZpbmUgTlVN X0NSSVRJQ0FMX1NIQVJFRF9JTkRFWEVTIDYJLyogZml4IGlmIHlvdSBjaGFuZ2UgbGlzdCBhYm92 ZSAqLworI2RlZmluZSBOVU1fQ1JJVElDQUxfU0hBUkVEX0lOREVYRVMgNwkvKiBmaXggaWYgeW91 IGNoYW5nZSBsaXN0IGFib3ZlICovCiAKIAkJY3JpdGljYWxTaGFyZWRSZWxjYWNoZXNCdWlsdCA9 IHRydWU7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKaW5kZXggMTkxMmIxMjE0NjMu LmRlMmIzZWMxZWJmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNo ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKQEAgLTI3LDYgKzI3 LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Ftb3AuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2FtcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aF9tZW1iZXJzLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ19hdXRoX3Bhc3N3b3JkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRo aWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2NvbGxhdGlvbi5oIgpAQCAtMjU1LDYgKzI1NiwxNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNh Y2hlZGVzYyBjYWNoZWluZm9bXSA9IHsKIAkJfSwKIAkJOAogCX0sCisJe0F1dGhQYXNzd29yZFJl bGF0aW9uSWQsCQkJLyogQVVUSFBBU1NXT1JEICovCisJCUF1dGhQYXNzd29yZFJvbGVPaWRJbmRl eElkLAorCQkxLAorCQl7CisJCQlBbnVtX3BnX2F1dGhfcGFzc3dvcmRfcm9sZWlkLAorCQkJMCwK KwkJCTAsCisJCQkwCisJCX0sCisJCTgKKwl9LAogCXsKIAkJQ2FzdFJlbGF0aW9uSWQsCQkJLyog Q0FTVFNPVVJDRVRBUkdFVCAqLwogCQlDYXN0U291cmNlVGFyZ2V0SW5kZXhJZCwKZGlmZiAtLWdp dCBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKaW5k ZXggYmJjYTEyMzZkOTUuLjE2MzQ5ZGMwNTEwIDEwMDY0NAotLS0gYS9zcmMvYmluL2luaXRkYi9p bml0ZGIuYworKysgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwpAQCAtMTQ1Miw3ICsxNDUyLDcg QEAgc2V0dXBfYXV0aChGSUxFICpjbWRmZCkKIAkJICogVGhlIGF1dGhpZCB0YWJsZSBzaG91bGRu J3QgYmUgcmVhZGFibGUgZXhjZXB0IHRocm91Z2ggdmlld3MsIHRvCiAJCSAqIGVuc3VyZSBwYXNz d29yZHMgYXJlIG5vdCBwdWJsaWNseSB2aXNpYmxlLgogCQkgKi8KLQkJIlJFVk9LRSBBTEwgT04g cGdfYXV0aGlkIEZST00gcHVibGljO1xuXG4iLAorCQkiUkVWT0tFIEFMTCBPTiBwZ19hdXRoX3Bh c3N3b3JkIEZST00gcHVibGljO1xuXG4iLAogCQlOVUxMCiAJfTsKIApkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMK aW5kZXggMmRjMzM2Mjc2MzAuLmZjMjgyYzgwNDZkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcGFsbC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKQEAgLTc1 OSw3ICs3NTksMTggQEAgZHVtcFJvbGVzKFBHY29ubiAqY29ubikKIAlpbnQJCQlpOwogCiAJLyog bm90ZTogcm9sY29uZmlnIGlzIGR1bXBlZCBsYXRlciAqLwotCWlmIChzZXJ2ZXJfdmVyc2lvbiA+ PSA5MDYwMCkKKwlpZiAoc2VydmVyX3ZlcnNpb24gPj0gMTUwMDAwKQorCQlwcmludGZQUUV4cEJ1 ZmZlcihidWYsCisJCQkJCQkgICJTRUxFQ1Qgb2lkLCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5o ZXJpdCwgIgorCQkJCQkJICAicm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsICIKKwkJCQkJCSAg InJvbGNhbmxvZ2luLCByb2xjb25ubGltaXQsIHAucGFzc3dvcmQgYXMgcm9scGFzc3dvcmQsICIK KwkJCQkJCSAgInJvbHZhbGlkdW50aWwsIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsICIK KwkJCQkJCSAgInBnX2NhdGFsb2cuc2hvYmpfZGVzY3JpcHRpb24ob2lkLCAnJXMnKSBhcyByb2xj b21tZW50LCAiCisJCQkJCQkgICJyb2xuYW1lID0gY3VycmVudF91c2VyIEFTIGlzX2N1cnJlbnRf dXNlciAiCisJCQkJCQkgICJGUk9NICVzIExFRlQgSk9JTiBwZ19hdXRoX3Bhc3N3b3JkIHAgT04g JXMub2lkID0gcC5yb2xlaWQgIgorCQkJCQkJICAiV0hFUkUgcm9sbmFtZSAhfiAnXnBnXycgIgor CQkJCQkJICAiT1JERVIgQlkgMiIsIHJvbGVfY2F0YWxvZywgcm9sZV9jYXRhbG9nLCByb2xlX2Nh dGFsb2cpOworCWVsc2UgaWYgKHNlcnZlcl92ZXJzaW9uID49IDkwNjAwKQogCQlwcmludGZQUUV4 cEJ1ZmZlcihidWYsCiAJCQkJCQkgICJTRUxFQ1Qgb2lkLCByb2xuYW1lLCByb2xzdXBlciwgcm9s aW5oZXJpdCwgIgogCQkJCQkJICAicm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsICIKZGlmZiAt LWdpdCBhL3NyYy9jb21tb24vc2NyYW0tY29tbW9uLmMgYi9zcmMvY29tbW9uL3NjcmFtLWNvbW1v bi5jCmluZGV4IDEyNjg2MjU5Mjk5Li5kOWQwY2JhNzM3OSAxMDA2NDQKLS0tIGEvc3JjL2NvbW1v bi9zY3JhbS1jb21tb24uYworKysgYi9zcmMvY29tbW9uL3NjcmFtLWNvbW1vbi5jCkBAIC0xODEs NyArMTgxLDcgQEAgc2NyYW1fU2VydmVyS2V5KGNvbnN0IHVpbnQ4ICpzYWx0ZWRfcGFzc3dvcmQs IHVpbnQ4ICpyZXN1bHQsCiAKIAogLyoKLSAqIENvbnN0cnVjdCBhIFNDUkFNIHNlY3JldCwgZm9y IHN0b3JpbmcgaW4gcGdfYXV0aGlkLnJvbHBhc3N3b3JkLgorICogQ29uc3RydWN0IGEgU0NSQU0g c2VjcmV0LCBmb3Igc3RvcmluZyBpbiBwZ19hdXRoX3Bhc3N3b3JkLnBhc3N3b3JkLgogICoKICAq IFRoZSBwYXNzd29yZCBzaG91bGQgYWxyZWFkeSBoYXZlIGJlZW4gcHJvY2Vzc2VkIHdpdGggU0FT THByZXAsIGlmIG5lY2Vzc2FyeSEKICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2F1dGhfcGFzc3dvcmQuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXV0aF9wYXNzd29y ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZWFhMmQ0MGI5MAot LS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXV0aF9wYXNzd29yZC5o CkBAIC0wLDAgKzEsNTAgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2F1dGhfcGFz c3dvcmQuaAorICoJICBkZWZpbml0aW9uIG9mIHRoZSAiYXV0aG9yaXphdGlvbiBpZGVudGlmaWVy IiBzeXN0ZW0gY2F0YWxvZyAocGdfYXV0aF9wYXNzd29yZCkKKyAqCisgKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDIwMjEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgor ICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoX3Bhc3N3b3JkLmgKKyAqCisgKiBOT1RFUwor ICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNj aGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lm bmRlZiBQR19BVVRIX1BBU1NXT1JEX0gKKyNkZWZpbmUgUEdfQVVUSF9QQVNTV09SRF9ICisKKyNp bmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aF9wYXNz d29yZF9kLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ19hdXRoX3Bhc3N3b3JkIGRl ZmluaXRpb24uICBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURh dGFfcGdfYXV0aF9wYXNzd29yZAorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBn X2F1dGhfcGFzc3dvcmQsNDU0OCxBdXRoUGFzc3dvcmRSZWxhdGlvbklkKSBCS0lfU0hBUkVEX1JF TEFUSU9OIEJLSV9ST1dUWVBFX09JRCg0NTQ5LEF1dGhQYXNzd29yZFJlbGF0aW9uX1Jvd3R5cGVf SWQpIEJLSV9TQ0hFTUFfTUFDUk8KK3sKKwlPaWQJCQlyb2xlaWQgQktJX0xPT0tVUChwZ19hdXRo aWQpOwkvKiBJRCBvZiBhIHJvbGUgKi8KKyNpZmRlZiBDQVRBTE9HX1ZBUkxFTiAgICAgICAgICAg ICAgICAvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKyAgICB0ZXh0ICAg ICAgICAgICAgcGFzc3dvcmQ7ICAgICAgICAvKiBwYXNzd29yZCAqLworI2VuZGlmCit9IEZvcm1E YXRhX3BnX2F1dGhfcGFzc3dvcmQ7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3Bn X2F1dGhfcGFzc3dvcmQgY29ycmVzcG9uZHMgdG8gYSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAor ICoJCXRoZSBmb3JtYXQgb2YgcGdfYXV0aF9wYXNzd29yZCByZWxhdGlvbi4KKyAqIC0tLS0tLS0t LS0tLS0tLS0KKyAqLworCitERUNMQVJFX1RPQVNUKHBnX2F1dGhfcGFzc3dvcmQsIDQxNzUsIDQx NzYpOworI2RlZmluZSBQZ0F1dGhQYXNzd29yZFRvYXN0VGFibGUgNDE3NQorI2RlZmluZSBQZ0F1 dGhQYXNzd29yZFRvYXN0SW5kZXggNDE3NgorCit0eXBlZGVmIEZvcm1EYXRhX3BnX2F1dGhfcGFz c3dvcmQgKkZvcm1fcGdfYXV0aF9wYXNzd29yZDsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtF WShwZ19hdXRoX3Bhc3N3b3JkX3JvbGVvaWRfaW5kZXgsIDQ1NTAsIEF1dGhQYXNzd29yZFJvbGVP aWRJbmRleElkLCBvbiBwZ19hdXRoX3Bhc3N3b3JkIHVzaW5nIGJ0cmVlKHJvbGVpZCBvaWRfb3Bz KSk7CisKKworI2VuZGlmCQkJCQkJCS8qIFBHX0FVVEhfUEFTU1dPUkRfSCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoaWQuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19hdXRoaWQuZGF0CmluZGV4IDZjMjgxMTlmYTFhLi5kYTM2Mzc1YTU4MiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoaWQuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYXV0aGlkLmRhdApAQCAtMjMsNjYgKzIzLDY2IEBACiAgIHJvbG5hbWUgPT4gJ1BP U1RHUkVTJywgcm9sc3VwZXIgPT4gJ3QnLCByb2xpbmhlcml0ID0+ICd0JywKICAgcm9sY3JlYXRl cm9sZSA9PiAndCcsIHJvbGNyZWF0ZWRiID0+ICd0Jywgcm9sY2FubG9naW4gPT4gJ3QnLAogICBy b2xyZXBsaWNhdGlvbiA9PiAndCcsIHJvbGJ5cGFzc3JscyA9PiAndCcsIHJvbGNvbm5saW1pdCA9 PiAnLTEnLAotICByb2xwYXNzd29yZCA9PiAnX251bGxfJywgcm9sdmFsaWR1bnRpbCA9PiAnX251 bGxfJyB9LAorICByb2x2YWxpZHVudGlsID0+ICdfbnVsbF8nIH0sCiB7IG9pZCA9PiAnNjE3MScs IG9pZF9zeW1ib2wgPT4gJ1JPTEVfUEdfREFUQUJBU0VfT1dORVInLAogICByb2xuYW1lID0+ICdw Z19kYXRhYmFzZV9vd25lcicsIHJvbHN1cGVyID0+ICdmJywgcm9saW5oZXJpdCA9PiAndCcsCiAg IHJvbGNyZWF0ZXJvbGUgPT4gJ2YnLCByb2xjcmVhdGVkYiA9PiAnZicsIHJvbGNhbmxvZ2luID0+ ICdmJywKICAgcm9scmVwbGljYXRpb24gPT4gJ2YnLCByb2xieXBhc3NybHMgPT4gJ2YnLCByb2xj b25ubGltaXQgPT4gJy0xJywKLSAgcm9scGFzc3dvcmQgPT4gJ19udWxsXycsIHJvbHZhbGlkdW50 aWwgPT4gJ19udWxsXycgfSwKKyAgcm9sdmFsaWR1bnRpbCA9PiAnX251bGxfJyB9LAogeyBvaWQg PT4gJzYxODEnLCBvaWRfc3ltYm9sID0+ICdST0xFX1BHX1JFQURfQUxMX0RBVEEnLAogICByb2xu YW1lID0+ICdwZ19yZWFkX2FsbF9kYXRhJywgcm9sc3VwZXIgPT4gJ2YnLCByb2xpbmhlcml0ID0+ ICd0JywKICAgcm9sY3JlYXRlcm9sZSA9PiAnZicsIHJvbGNyZWF0ZWRiID0+ICdmJywgcm9sY2Fu bG9naW4gPT4gJ2YnLAogICByb2xyZXBsaWNhdGlvbiA9PiAnZicsIHJvbGJ5cGFzc3JscyA9PiAn ZicsIHJvbGNvbm5saW1pdCA9PiAnLTEnLAotICByb2xwYXNzd29yZCA9PiAnX251bGxfJywgcm9s dmFsaWR1bnRpbCA9PiAnX251bGxfJyB9LAorICByb2x2YWxpZHVudGlsID0+ICdfbnVsbF8nIH0s CiB7IG9pZCA9PiAnNjE4MicsIG9pZF9zeW1ib2wgPT4gJ1JPTEVfUEdfV1JJVEVfQUxMX0RBVEEn LAogICByb2xuYW1lID0+ICdwZ193cml0ZV9hbGxfZGF0YScsIHJvbHN1cGVyID0+ICdmJywgcm9s aW5oZXJpdCA9PiAndCcsCiAgIHJvbGNyZWF0ZXJvbGUgPT4gJ2YnLCByb2xjcmVhdGVkYiA9PiAn ZicsIHJvbGNhbmxvZ2luID0+ICdmJywKICAgcm9scmVwbGljYXRpb24gPT4gJ2YnLCByb2xieXBh c3NybHMgPT4gJ2YnLCByb2xjb25ubGltaXQgPT4gJy0xJywKLSAgcm9scGFzc3dvcmQgPT4gJ19u dWxsXycsIHJvbHZhbGlkdW50aWwgPT4gJ19udWxsXycgfSwKKyAgcm9sdmFsaWR1bnRpbCA9PiAn X251bGxfJyB9LAogeyBvaWQgPT4gJzMzNzMnLCBvaWRfc3ltYm9sID0+ICdST0xFX1BHX01PTklU T1InLAogICByb2xuYW1lID0+ICdwZ19tb25pdG9yJywgcm9sc3VwZXIgPT4gJ2YnLCByb2xpbmhl cml0ID0+ICd0JywKICAgcm9sY3JlYXRlcm9sZSA9PiAnZicsIHJvbGNyZWF0ZWRiID0+ICdmJywg cm9sY2FubG9naW4gPT4gJ2YnLAogICByb2xyZXBsaWNhdGlvbiA9PiAnZicsIHJvbGJ5cGFzc3Js cyA9PiAnZicsIHJvbGNvbm5saW1pdCA9PiAnLTEnLAotICByb2xwYXNzd29yZCA9PiAnX251bGxf Jywgcm9sdmFsaWR1bnRpbCA9PiAnX251bGxfJyB9LAorICByb2x2YWxpZHVudGlsID0+ICdfbnVs bF8nIH0sCiB7IG9pZCA9PiAnMzM3NCcsIG9pZF9zeW1ib2wgPT4gJ1JPTEVfUEdfUkVBRF9BTExf U0VUVElOR1MnLAogICByb2xuYW1lID0+ICdwZ19yZWFkX2FsbF9zZXR0aW5ncycsIHJvbHN1cGVy ID0+ICdmJywgcm9saW5oZXJpdCA9PiAndCcsCiAgIHJvbGNyZWF0ZXJvbGUgPT4gJ2YnLCByb2xj cmVhdGVkYiA9PiAnZicsIHJvbGNhbmxvZ2luID0+ICdmJywKICAgcm9scmVwbGljYXRpb24gPT4g J2YnLCByb2xieXBhc3NybHMgPT4gJ2YnLCByb2xjb25ubGltaXQgPT4gJy0xJywKLSAgcm9scGFz c3dvcmQgPT4gJ19udWxsXycsIHJvbHZhbGlkdW50aWwgPT4gJ19udWxsXycgfSwKKyAgcm9sdmFs aWR1bnRpbCA9PiAnX251bGxfJyB9LAogeyBvaWQgPT4gJzMzNzUnLCBvaWRfc3ltYm9sID0+ICdS T0xFX1BHX1JFQURfQUxMX1NUQVRTJywKICAgcm9sbmFtZSA9PiAncGdfcmVhZF9hbGxfc3RhdHMn LCByb2xzdXBlciA9PiAnZicsIHJvbGluaGVyaXQgPT4gJ3QnLAogICByb2xjcmVhdGVyb2xlID0+ ICdmJywgcm9sY3JlYXRlZGIgPT4gJ2YnLCByb2xjYW5sb2dpbiA9PiAnZicsCiAgIHJvbHJlcGxp Y2F0aW9uID0+ICdmJywgcm9sYnlwYXNzcmxzID0+ICdmJywgcm9sY29ubmxpbWl0ID0+ICctMScs Ci0gIHJvbHBhc3N3b3JkID0+ICdfbnVsbF8nLCByb2x2YWxpZHVudGlsID0+ICdfbnVsbF8nIH0s CisgIHJvbHZhbGlkdW50aWwgPT4gJ19udWxsXycgfSwKIHsgb2lkID0+ICczMzc3Jywgb2lkX3N5 bWJvbCA9PiAnUk9MRV9QR19TVEFUX1NDQU5fVEFCTEVTJywKICAgcm9sbmFtZSA9PiAncGdfc3Rh dF9zY2FuX3RhYmxlcycsIHJvbHN1cGVyID0+ICdmJywgcm9saW5oZXJpdCA9PiAndCcsCiAgIHJv bGNyZWF0ZXJvbGUgPT4gJ2YnLCByb2xjcmVhdGVkYiA9PiAnZicsIHJvbGNhbmxvZ2luID0+ICdm JywKICAgcm9scmVwbGljYXRpb24gPT4gJ2YnLCByb2xieXBhc3NybHMgPT4gJ2YnLCByb2xjb25u bGltaXQgPT4gJy0xJywKLSAgcm9scGFzc3dvcmQgPT4gJ19udWxsXycsIHJvbHZhbGlkdW50aWwg PT4gJ19udWxsXycgfSwKKyAgcm9sdmFsaWR1bnRpbCA9PiAnX251bGxfJyB9LAogeyBvaWQgPT4g JzQ1NjknLCBvaWRfc3ltYm9sID0+ICdST0xFX1BHX1JFQURfU0VSVkVSX0ZJTEVTJywKICAgcm9s bmFtZSA9PiAncGdfcmVhZF9zZXJ2ZXJfZmlsZXMnLCByb2xzdXBlciA9PiAnZicsIHJvbGluaGVy aXQgPT4gJ3QnLAogICByb2xjcmVhdGVyb2xlID0+ICdmJywgcm9sY3JlYXRlZGIgPT4gJ2YnLCBy b2xjYW5sb2dpbiA9PiAnZicsCiAgIHJvbHJlcGxpY2F0aW9uID0+ICdmJywgcm9sYnlwYXNzcmxz ID0+ICdmJywgcm9sY29ubmxpbWl0ID0+ICctMScsCi0gIHJvbHBhc3N3b3JkID0+ICdfbnVsbF8n LCByb2x2YWxpZHVudGlsID0+ICdfbnVsbF8nIH0sCisgIHJvbHZhbGlkdW50aWwgPT4gJ19udWxs XycgfSwKIHsgb2lkID0+ICc0NTcwJywgb2lkX3N5bWJvbCA9PiAnUk9MRV9QR19XUklURV9TRVJW RVJfRklMRVMnLAogICByb2xuYW1lID0+ICdwZ193cml0ZV9zZXJ2ZXJfZmlsZXMnLCByb2xzdXBl ciA9PiAnZicsIHJvbGluaGVyaXQgPT4gJ3QnLAogICByb2xjcmVhdGVyb2xlID0+ICdmJywgcm9s Y3JlYXRlZGIgPT4gJ2YnLCByb2xjYW5sb2dpbiA9PiAnZicsCiAgIHJvbHJlcGxpY2F0aW9uID0+ ICdmJywgcm9sYnlwYXNzcmxzID0+ICdmJywgcm9sY29ubmxpbWl0ID0+ICctMScsCi0gIHJvbHBh c3N3b3JkID0+ICdfbnVsbF8nLCByb2x2YWxpZHVudGlsID0+ICdfbnVsbF8nIH0sCisgIHJvbHZh bGlkdW50aWwgPT4gJ19udWxsXycgfSwKIHsgb2lkID0+ICc0NTcxJywgb2lkX3N5bWJvbCA9PiAn Uk9MRV9QR19FWEVDVVRFX1NFUlZFUl9QUk9HUkFNJywKICAgcm9sbmFtZSA9PiAncGdfZXhlY3V0 ZV9zZXJ2ZXJfcHJvZ3JhbScsIHJvbHN1cGVyID0+ICdmJywgcm9saW5oZXJpdCA9PiAndCcsCiAg IHJvbGNyZWF0ZXJvbGUgPT4gJ2YnLCByb2xjcmVhdGVkYiA9PiAnZicsIHJvbGNhbmxvZ2luID0+ ICdmJywKICAgcm9scmVwbGljYXRpb24gPT4gJ2YnLCByb2xieXBhc3NybHMgPT4gJ2YnLCByb2xj b25ubGltaXQgPT4gJy0xJywKLSAgcm9scGFzc3dvcmQgPT4gJ19udWxsXycsIHJvbHZhbGlkdW50 aWwgPT4gJ19udWxsXycgfSwKKyAgcm9sdmFsaWR1bnRpbCA9PiAnX251bGxfJyB9LAogeyBvaWQg PT4gJzQyMDAnLCBvaWRfc3ltYm9sID0+ICdST0xFX1BHX1NJR05BTF9CQUNLRU5EJywKICAgcm9s bmFtZSA9PiAncGdfc2lnbmFsX2JhY2tlbmQnLCByb2xzdXBlciA9PiAnZicsIHJvbGluaGVyaXQg PT4gJ3QnLAogICByb2xjcmVhdGVyb2xlID0+ICdmJywgcm9sY3JlYXRlZGIgPT4gJ2YnLCByb2xj YW5sb2dpbiA9PiAnZicsCiAgIHJvbHJlcGxpY2F0aW9uID0+ICdmJywgcm9sYnlwYXNzcmxzID0+ ICdmJywgcm9sY29ubmxpbWl0ID0+ICctMScsCi0gIHJvbHBhc3N3b3JkID0+ICdfbnVsbF8nLCBy b2x2YWxpZHVudGlsID0+ICdfbnVsbF8nIH0sCisgIHJvbHZhbGlkdW50aWwgPT4gJ19udWxsXycg fSwKIHsgb2lkID0+ICc0NTQ0Jywgb2lkX3N5bWJvbCA9PiAnUk9MRV9QR19DSEVDS1BPSU5URVIn LAogICByb2xuYW1lID0+ICdwZ19jaGVja3BvaW50ZXInLCByb2xzdXBlciA9PiAnZicsIHJvbGlu aGVyaXQgPT4gJ3QnLAogICByb2xjcmVhdGVyb2xlID0+ICdmJywgcm9sY3JlYXRlZGIgPT4gJ2Yn LCByb2xjYW5sb2dpbiA9PiAnZicsCiAgIHJvbHJlcGxpY2F0aW9uID0+ICdmJywgcm9sYnlwYXNz cmxzID0+ICdmJywgcm9sY29ubmxpbWl0ID0+ICctMScsCi0gIHJvbHBhc3N3b3JkID0+ICdfbnVs bF8nLCByb2x2YWxpZHVudGlsID0+ICdfbnVsbF8nIH0sCisgIHJvbHZhbGlkdW50aWwgPT4gJ19u dWxsXycgfSwKIAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoaWQu aCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXV0aGlkLmgKaW5kZXggNGI2NWUzOWExZjkuLjBj YjU2NzVhMzNmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1dGhpZC5oCisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXV0aGlkLmgKQEAgLTQyLDkgKzQyLDggQEAgQ0FU QUxPRyhwZ19hdXRoaWQsMTI2MCxBdXRoSWRSZWxhdGlvbklkKSBCS0lfU0hBUkVEX1JFTEFUSU9O IEJLSV9ST1dUWVBFX09JRCgyODQKIAlpbnQzMgkJcm9sY29ubmxpbWl0OwkvKiBtYXggY29ubmVj dGlvbnMgYWxsb3dlZCAoLTE9bm8gbGltaXQpICovCiAKIAkvKiByZW1haW5pbmcgZmllbGRzIG1h eSBiZSBudWxsOyB1c2UgaGVhcF9nZXRhdHRyIHRvIHJlYWQgdGhlbSEgKi8KLSNpZmRlZiBDQVRB TE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwotCXRl eHQJCXJvbHBhc3N3b3JkOwkvKiBwYXNzd29yZCwgaWYgYW55ICovCi0JdGltZXN0YW1wdHogcm9s dmFsaWR1bnRpbDsJLyogcGFzc3dvcmQgZXhwaXJhdGlvbiB0aW1lLCBpZiBhbnkgKi8KKyNpZmRl ZiBDQVRBTE9HX1ZBUkxFTgorCXRpbWVzdGFtcHR6IHJvbHZhbGlkdW50aWwgQktJX0ZPUkNFX05V TEw7CS8qIHJvbGUgZXhwaXJhdGlvbiB0aW1lLCBpZiBhbnkgKi8KICNlbmRpZgogfSBGb3JtRGF0 YV9wZ19hdXRoaWQ7CiAKQEAgLTU1LDEwICs1NCw2IEBAIENBVEFMT0cocGdfYXV0aGlkLDEyNjAs QXV0aElkUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lfUk9XVFlQRV9PSUQoMjg0 CiAgKi8KIHR5cGVkZWYgRm9ybURhdGFfcGdfYXV0aGlkICpGb3JtX3BnX2F1dGhpZDsKIAotREVD TEFSRV9UT0FTVChwZ19hdXRoaWQsIDQxNzUsIDQxNzYpOwotI2RlZmluZSBQZ0F1dGhpZFRvYXN0 VGFibGUgNDE3NQotI2RlZmluZSBQZ0F1dGhpZFRvYXN0SW5kZXggNDE3NgotCiBERUNMQVJFX1VO SVFVRV9JTkRFWChwZ19hdXRoaWRfcm9sbmFtZV9pbmRleCwgMjY3NiwgQXV0aElkUm9sbmFtZUlu ZGV4SWQsIG9uIHBnX2F1dGhpZCB1c2luZyBidHJlZShyb2xuYW1lIG5hbWVfb3BzKSk7CiBERUNM QVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX2F1dGhpZF9vaWRfaW5kZXgsIDI2NzcsIEF1dGhJZE9p ZEluZGV4SWQsIG9uIHBnX2F1dGhpZCB1c2luZyBidHJlZShvaWQgb2lkX29wcykpOwogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy91c2VyLmggYi9zcmMvaW5jbHVkZS9jb21tYW5k cy91c2VyLmgKaW5kZXggZDNkZDgzMDNkMjguLjNlMWFhZTU3ODU0IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jb21tYW5kcy91c2VyLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdXNlci5o CkBAIC0yNCw2ICsyNCw3IEBAIHR5cGVkZWYgdm9pZCAoKmNoZWNrX3Bhc3N3b3JkX2hvb2tfdHlw ZSkgKGNvbnN0IGNoYXIgKnVzZXJuYW1lLCBjb25zdCBjaGFyICpzaGFkCiAKIGV4dGVybiBQR0RM TElNUE9SVCBjaGVja19wYXNzd29yZF9ob29rX3R5cGUgY2hlY2tfcGFzc3dvcmRfaG9vazsKIAor ZXh0ZXJuIGJvb2wgaXNfcm9sZV92YWxpZChjb25zdCBjaGFyICpyb2xlbmFtZSwgY2hhciAqKmxv Z2RldGFpbCk7CiBleHRlcm4gT2lkCUNyZWF0ZVJvbGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVh dGVSb2xlU3RtdCAqc3RtdCk7CiBleHRlcm4gT2lkCUFsdGVyUm9sZShQYXJzZVN0YXRlICpwc3Rh dGUsIEFsdGVyUm9sZVN0bXQgKnN0bXQpOwogZXh0ZXJuIE9pZAlBbHRlclJvbGVTZXQoQWx0ZXJS b2xlU2V0U3RtdCAqc3RtdCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9saWJwcS9jcnlwdC5o IGIvc3JjL2luY2x1ZGUvbGlicHEvY3J5cHQuaAppbmRleCAzMjM4Y2Y2NmQzYS4uYjhmZjhjY2I0 MTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2xpYnBxL2NyeXB0LmgKKysrIGIvc3JjL2luY2x1 ZGUvbGlicHEvY3J5cHQuaApAQCAtMjEsNyArMjEsNyBAQAogICogUGxhaW50ZXh0IHBhc3N3b3Jk cyBjYW4gYmUgcGFzc2VkIGluIGJ5IHRoZSB1c2VyLCBpbiBhIENSRUFURS9BTFRFUiBVU0VSCiAg KiBjb21tYW5kLiBUaGV5IHdpbGwgYmUgZW5jcnlwdGVkIHRvIE1ENSBvciBTQ1JBTS1TSEEtMjU2 IGZvcm1hdCwgYmVmb3JlCiAgKiBzdG9yaW5nIG9uLWRpc2ssIHNvIG9ubHkgTUQ1IGFuZCBTQ1JB TS1TSEEtMjU2IHBhc3N3b3JkcyBzaG91bGQgYXBwZWFyCi0gKiBpbiBwZ19hdXRoaWQucm9scGFz c3dvcmQuIFRoZXkgYXJlIGFsc28gdGhlIGFsbG93ZWQgdmFsdWVzIGZvciB0aGUKKyAqIGluIHBn X2F1dGhfcGFzc3dvcmQucGFzc3dvcmQuIFRoZXkgYXJlIGFsc28gdGhlIGFsbG93ZWQgdmFsdWVz IGZvciB0aGUKICAqIHBhc3N3b3JkX2VuY3J5cHRpb24gR1VDLgogICovCiB0eXBlZGVmIGVudW0g UGFzc3dvcmRUeXBlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9zeXNjYWNoZS5oIGIv c3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUuaAppbmRleCA0NDYzZWE2NmJlYS4uYzdiYzY0OGY0 NmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvc3lzY2FjaGUuaApAQCAtNDMsNiArNDMsNyBAQCBlbnVtIFN5c0NhY2hlSWRl bnRpZmllcgogCUFVVEhNRU1ST0xFTUVNLAogCUFVVEhOQU1FLAogCUFVVEhPSUQsCisJQVVUSFBB U1NXT1JELAogCUNBU1RTT1VSQ0VUQVJHRVQsCiAJQ0xBQU1OQU1FTlNQLAogCUNMQU9JRCwKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2luZGV4Lm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2luZGV4Lm91dAppbmRleCBkNTVhZWMzYTFk MC4uOTg3NWIyNzdmMjYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3Jl YXRlX2luZGV4Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9pbmRl eC5vdXQKQEAgLTI1MTUsMTAgKzI1MTUsMTAgQEAgUkVJTkRFWCBUQUJMRSBDT05DVVJSRU5UTFkg cGdfY2xhc3M7IC0tIG5vIGNhdGFsb2cgcmVsYXRpb24KIEVSUk9SOiAgY2Fubm90IHJlaW5kZXgg c3lzdGVtIGNhdGFsb2dzIGNvbmN1cnJlbnRseQogUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkg cGdfY2xhc3Nfb2lkX2luZGV4OyAtLSBubyBjYXRhbG9nIGluZGV4CiBFUlJPUjogIGNhbm5vdCBy ZWluZGV4IHN5c3RlbSBjYXRhbG9ncyBjb25jdXJyZW50bHkKLS0tIFRoZXNlIGFyZSB0aGUgdG9h c3QgdGFibGUgYW5kIGluZGV4IG9mIHBnX2F1dGhpZC4KLVJFSU5ERVggVEFCTEUgQ09OQ1VSUkVO VExZIHBnX3RvYXN0LnBnX3RvYXN0XzEyNjA7IC0tIG5vIGNhdGFsb2cgdG9hc3QgdGFibGUKKy0t IFRoZXNlIGFyZSB0aGUgdG9hc3QgdGFibGUgYW5kIGluZGV4IG9mIHBnX2RhdGFiYXNlLgorUkVJ TkRFWCBUQUJMRSBDT05DVVJSRU5UTFkgcGdfdG9hc3QucGdfdG9hc3RfMTI2MjsgLS0gbm8gY2F0 YWxvZyB0b2FzdCB0YWJsZQogRVJST1I6ICBjYW5ub3QgcmVpbmRleCBzeXN0ZW0gY2F0YWxvZ3Mg Y29uY3VycmVudGx5Ci1SRUlOREVYIElOREVYIENPTkNVUlJFTlRMWSBwZ190b2FzdC5wZ190b2Fz dF8xMjYwX2luZGV4OyAtLSBubyBjYXRhbG9nIHRvYXN0IGluZGV4CitSRUlOREVYIElOREVYIENP TkNVUlJFTlRMWSBwZ190b2FzdC5wZ190b2FzdF8xMjYyX2luZGV4OyAtLSBubyBjYXRhbG9nIHRv YXN0IGluZGV4CiBFUlJPUjogIGNhbm5vdCByZWluZGV4IHN5c3RlbSBjYXRhbG9ncyBjb25jdXJy ZW50bHkKIFJFSU5ERVggU1lTVEVNIENPTkNVUlJFTlRMWSBwb3N0Z3JlczsgLS0gbm90IGFsbG93 ZWQgZm9yIFNZU1RFTQogRVJST1I6ICBjYW5ub3QgcmVpbmRleCBzeXN0ZW0gY2F0YWxvZ3MgY29u Y3VycmVudGx5CkBAIC0yODE3LDEwICsyODE3LDEwIEBAIEVSUk9SOiAgbXVzdCBiZSBvd25lciBv ZiBzY2hlbWEgc2NoZW1hX3RvX3JlaW5kZXgKIFJFU0VUIFJPTEU7CiBHUkFOVCBVU0FHRSBPTiBT Q0hFTUEgcGdfdG9hc3QgVE8gcmVncmVzc19yZWluZGV4dXNlcjsKIFNFVCBTRVNTSU9OIFJPTEUg cmVncmVzc19yZWluZGV4dXNlcjsKLVJFSU5ERVggVEFCTEUgcGdfdG9hc3QucGdfdG9hc3RfMTI2 MDsKLUVSUk9SOiAgbXVzdCBiZSBvd25lciBvZiB0YWJsZSBwZ190b2FzdF8xMjYwCi1SRUlOREVY IElOREVYIHBnX3RvYXN0LnBnX3RvYXN0XzEyNjBfaW5kZXg7Ci1FUlJPUjogIG11c3QgYmUgb3du ZXIgb2YgaW5kZXggcGdfdG9hc3RfMTI2MF9pbmRleAorUkVJTkRFWCBUQUJMRSBwZ190b2FzdC5w Z190b2FzdF8xMjYyOworRVJST1I6ICBtdXN0IGJlIG93bmVyIG9mIHRhYmxlIHBnX3RvYXN0XzEy NjIKK1JFSU5ERVggSU5ERVggcGdfdG9hc3QucGdfdG9hc3RfMTI2Ml9pbmRleDsKK0VSUk9SOiAg bXVzdCBiZSBvd25lciBvZiBpbmRleCBwZ190b2FzdF8xMjYyX2luZGV4CiAtLSBDbGVhbiB1cAog UkVTRVQgUk9MRTsKIFJFVk9LRSBVU0FHRSBPTiBTQ0hFTUEgcGdfdG9hc3QgRlJPTSByZWdyZXNz X3JlaW5kZXh1c2VyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRq b2lucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCAy MTVlYjg5OWJlMy4uYjY5YTJhNzJhN2IgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb2lkam9pbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9p bnMub3V0CkBAIC0xOTcsNiArMTk3LDcgQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfdGFibGVzcGFj ZSB7c3Bjb3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYXV0 aF9tZW1iZXJzIHtyb2xlaWR9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcg cGdfYXV0aF9tZW1iZXJzIHttZW1iZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hl Y2tpbmcgcGdfYXV0aF9tZW1iZXJzIHtncmFudG9yfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElD RTogIGNoZWNraW5nIHBnX2F1dGhfcGFzc3dvcmQge3JvbGVpZH0gPT4gcGdfYXV0aGlkIHtvaWR9 CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zaGRlcGVuZCB7ZGJpZH0gPT4gcGdfZGF0YWJhc2Uge29p ZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3NoZGVwZW5kIHtjbGFzc2lkfSA9PiBwZ19jbGFzcyB7 b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc2hkZXBlbmQge3JlZmNsYXNzaWR9ID0+IHBnX2Ns YXNzIHtvaWR9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Bhc3N3b3Jk Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFzc3dvcmQub3V0CmluZGV4IDdjODRj OWRhMzM3Li40ZmZjNDFhNTQ1NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wYXNzd29yZC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXNzd29yZC5v dXQKQEAgLTI0LDEwICsyNCwxMiBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3Bhc3N3ZDQgUEFTU1dP UkQgTlVMTDsKIC0tCiAtLSBTaW5jZSB0aGUgc2FsdCBpcyByYW5kb20sIHRoZSBleGFjdCB2YWx1 ZSBzdG9yZWQgd2lsbCBiZSBkaWZmZXJlbnQgb24gZXZlcnkgdGVzdAogLS0gcnVuLiBVc2UgYSBy ZWd1bGFyIGV4cHJlc3Npb24gdG8gbWFzayB0aGUgY2hhbmdpbmcgcGFydHMuCi1TRUxFQ1Qgcm9s bmFtZSwgcmVnZXhwX3JlcGxhY2Uocm9scGFzc3dvcmQsICcoU0NSQU0tU0hBLTI1NilcJChcZCsp OihbYS16QS1aMC05Ky89XSspXCQoW2EtekEtWjAtOSs9L10rKTooW2EtekEtWjAtOSsvPV0rKScs ICdcMSRcMjo8c2FsdD4kPHN0b3JlZGtleT46PHNlcnZlcmtleT4nKSBhcyByb2xwYXNzd29yZF9t YXNrZWQKK1NFTEVDVCByb2xuYW1lLCByZWdleHBfcmVwbGFjZShwYXNzd29yZCwgJyhTQ1JBTS1T SEEtMjU2KVwkKFxkKyk6KFthLXpBLVowLTkrLz1dKylcJChbYS16QS1aMC05Kz0vXSspOihbYS16 QS1aMC05Ky89XSspJywgJ1wxJFwyOjxzYWx0PiQ8c3RvcmVka2V5Pjo8c2VydmVya2V5PicpIGFz IHJvbHBhc3N3b3JkX21hc2tlZAogICAgIEZST00gcGdfYXV0aGlkCisgICAgTEVGVCBKT0lOIHBn X2F1dGhfcGFzc3dvcmQgcCAKKyAgICBPTiBwZ19hdXRoaWQub2lkID0gcC5yb2xlaWQKICAgICBX SEVSRSByb2xuYW1lIExJS0UgJ3JlZ3Jlc3NfcGFzc3dkJScKLSAgICBPUkRFUiBCWSByb2xuYW1l LCByb2xwYXNzd29yZDsKKyAgICBPUkRFUiBCWSByb2xuYW1lLCBwYXNzd29yZDsKICAgICAgcm9s bmFtZSAgICAgfCAgICAgICAgICAgICAgICByb2xwYXNzd29yZF9tYXNrZWQgICAgICAgICAgICAg ICAgIAogLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgcmVncmVzc19wYXNzd2QxIHwgbWQ1NzgzMjc3YmFjYTI4MDAz YjMzNDUzMjUyYmU0ZGJiMzQKQEAgLTQwLDEyICs0MiwxNCBAQCBTRUxFQ1Qgcm9sbmFtZSwgcmVn ZXhwX3JlcGxhY2Uocm9scGFzc3dvcmQsICcoU0NSQU0tU0hBLTI1NilcJChcZCspOihbYS16QS1a MC05KwogQUxURVIgUk9MRSByZWdyZXNzX3Bhc3N3ZDIgUkVOQU1FIFRPIHJlZ3Jlc3NfcGFzc3dk Ml9uZXc7CiBOT1RJQ0U6ICBNRDUgcGFzc3dvcmQgY2xlYXJlZCBiZWNhdXNlIG9mIHJvbGUgcmVu YW1lCiAtLSBtZDUgZW50cnkgc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkCi1TRUxFQ1Qgcm9sbmFt ZSwgcm9scGFzc3dvcmQKK1NFTEVDVCByb2xuYW1lLCBwYXNzd29yZAogICAgIEZST00gcGdfYXV0 aGlkCisgICAgTEVGVCBKT0lOIHBnX2F1dGhfcGFzc3dvcmQgcCAKKyAgICBPTiBwZ19hdXRoaWQu b2lkID0gcC5yb2xlaWQKICAgICBXSEVSRSByb2xuYW1lIExJS0UgJ3JlZ3Jlc3NfcGFzc3dkMl9u ZXcnCi0gICAgT1JERVIgQlkgcm9sbmFtZSwgcm9scGFzc3dvcmQ7Ci0gICAgICAgcm9sbmFtZSAg ICAgICB8IHJvbHBhc3N3b3JkIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyAgICBPUkRFUiBCWSByb2xuYW1lLCBwYXNzd29yZDsKKyAgICAgICByb2xuYW1lICAgICAgIHwg cGFzc3dvcmQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogIHJlZ3Jlc3NfcGFz c3dkMl9uZXcgfCAKICgxIHJvdykKIApAQCAtNzIsMTAgKzc2LDEyIEBAIENSRUFURSBST0xFIHJl Z3Jlc3NfcGFzc3dkNiBQQVNTV09SRCAnU0NSQU0tU0hBLTI1NiQxMjM0JzsKIENSRUFURSBST0xF IHJlZ3Jlc3NfcGFzc3dkNyBQQVNTV09SRCAnbWQ1MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2 Nzg5enonOwogLS0gaW52YWxpZCBsZW5ndGgKIENSRUFURSBST0xFIHJlZ3Jlc3NfcGFzc3dkOCBQ QVNTV09SRCAnbWQ1MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDF6eic7Ci1TRUxFQ1Qg cm9sbmFtZSwgcmVnZXhwX3JlcGxhY2Uocm9scGFzc3dvcmQsICcoU0NSQU0tU0hBLTI1NilcJChc ZCspOihbYS16QS1aMC05Ky89XSspXCQoW2EtekEtWjAtOSs9L10rKTooW2EtekEtWjAtOSsvPV0r KScsICdcMSRcMjo8c2FsdD4kPHN0b3JlZGtleT46PHNlcnZlcmtleT4nKSBhcyByb2xwYXNzd29y ZF9tYXNrZWQKK1NFTEVDVCByb2xuYW1lLCByZWdleHBfcmVwbGFjZShwYXNzd29yZCwgJyhTQ1JB TS1TSEEtMjU2KVwkKFxkKyk6KFthLXpBLVowLTkrLz1dKylcJChbYS16QS1aMC05Kz0vXSspOihb YS16QS1aMC05Ky89XSspJywgJ1wxJFwyOjxzYWx0PiQ8c3RvcmVka2V5Pjo8c2VydmVya2V5Picp IGFzIHJvbHBhc3N3b3JkX21hc2tlZAogICAgIEZST00gcGdfYXV0aGlkCisgICAgTEVGVCBKT0lO IHBnX2F1dGhfcGFzc3dvcmQgcCAKKyAgICBPTiBwZ19hdXRoaWQub2lkID0gcC5yb2xlaWQKICAg ICBXSEVSRSByb2xuYW1lIExJS0UgJ3JlZ3Jlc3NfcGFzc3dkJScKLSAgICBPUkRFUiBCWSByb2xu YW1lLCByb2xwYXNzd29yZDsKKyAgICBPUkRFUiBCWSByb2xuYW1lLCBwYXNzd29yZDsKICAgICAg cm9sbmFtZSAgICAgfCAgICAgICAgICAgICAgICByb2xwYXNzd29yZF9tYXNrZWQgICAgICAgICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgcmVncmVzc19wYXNzd2QxIHwgbWQ1Y2QzNTc4MDI1ZmUy YzNkN2VkMWI5YTliMjYyMzhiNzAKQEAgLTk1LDkgKzEwMSwxMSBAQCBBTFRFUiBST0xFIHJlZ3Jl c3NfcGFzc3dkX2VtcHR5IFBBU1NXT1JEICdtZDU4NTkzOWE1Y2U4NDVmMWExYjYyMDc0MmUzYzY1 OWUwYSc7CiBOT1RJQ0U6ICBlbXB0eSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgcGFzc3dvcmQsIGNs ZWFyaW5nIHBhc3N3b3JkCiBBTFRFUiBST0xFIHJlZ3Jlc3NfcGFzc3dkX2VtcHR5IFBBU1NXT1JE ICdTQ1JBTS1TSEEtMjU2JDQwOTY6aHBGeUhUVXNTV2NSN085UCRMZ1pGSXQ2T3FkbzI3WkZLYloy blYrdnRuWU05OTVwRGg5Y2E2V1NpMTIwPTpxVlY1TmVsdU5mVVBrd203VnFhdDI1UmpTUExrR2Vv WkJRczZ3VnYrdW00PSc7CiBOT1RJQ0U6ICBlbXB0eSBzdHJpbmcgaXMgbm90IGEgdmFsaWQgcGFz c3dvcmQsIGNsZWFyaW5nIHBhc3N3b3JkCi1TRUxFQ1Qgcm9scGFzc3dvcmQgRlJPTSBwZ19hdXRo aWQgV0hFUkUgcm9sbmFtZT0ncmVncmVzc19wYXNzd2RfZW1wdHknOwotIHJvbHBhc3N3b3JkIAot LS0tLS0tLS0tLS0tLQorU0VMRUNUIHBhc3N3b3JkIEZST00gcGdfYXV0aGlkCitMRUZUIEpPSU4g cGdfYXV0aF9wYXNzd29yZCBwIAorT04gcGdfYXV0aGlkLm9pZCA9IHAucm9sZWlkIFdIRVJFIHJv bG5hbWU9J3JlZ3Jlc3NfcGFzc3dkX2VtcHR5JzsKKyBwYXNzd29yZCAKKy0tLS0tLS0tLS0KICAK ICgxIHJvdykKIApAQCAtMTEwLDggKzExOCwxMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3Bhc3N3 ZF9zaGFfbGVuMSBQQVNTV09SRCAnU0NSQU0tU0hBLTI1NiQ0MDk2OkE2eEhLb0gvNDk0RTk0MQog Q1JFQVRFIFJPTEUgcmVncmVzc19wYXNzd2Rfc2hhX2xlbjIgUEFTU1dPUkQgJ1NDUkFNLVNIQS0y NTYkNDA5NjpBNnhIS29ILzQ5NEU5NDFkb2FQT1lnPT0kS3krQTMwc2V3SElIM1ZIUUxSTjl2WXN1 emxnTnlHTktDaDM3ZHk5NlJxdz06Q09QZGxOaUlrcnNhY1U1UW94eWRFdU9INmUvS2ZpaXBlRVRi L2JQdzhaSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBPSc7CiAtLSBDaGVjayB0aGF0IHRoZSBpbnZhbGlkIHNlY3JldHMg d2VyZSByZS1oYXNoZWQuIEEgcmUtaGFzaGVkIHNlY3JldAogLS0gc2hvdWxkIG5vdCBjb250YWlu IHRoZSBvcmlnaW5hbCBzYWx0LgotU0VMRUNUIHJvbG5hbWUsIHJvbHBhc3N3b3JkIG5vdCBsaWtl ICclQTZ4SEtvSC80OTRFOTQxZG9hUE9ZZz09JScgYXMgaXNfcm9scGFzc3dvcmRfcmVoYXNoZWQK K1NFTEVDVCByb2xuYW1lLCBwYXNzd29yZCBub3QgbGlrZSAnJUE2eEhLb0gvNDk0RTk0MWRvYVBP WWc9PSUnIGFzIGlzX3JvbHBhc3N3b3JkX3JlaGFzaGVkCiAgICAgRlJPTSBwZ19hdXRoaWQKKyAg ICBMRUZUIEpPSU4gcGdfYXV0aF9wYXNzd29yZCBwIAorICAgIE9OIHBnX2F1dGhpZC5vaWQgPSBw LnJvbGVpZAogICAgIFdIRVJFIHJvbG5hbWUgTElLRSAncmVncmVzc19wYXNzd2Rfc2hhX2xlbiUn CiAgICAgT1JERVIgQlkgcm9sbmFtZTsKICAgICAgICAgIHJvbG5hbWUgICAgICAgICB8IGlzX3Jv bHBhc3N3b3JkX3JlaGFzaGVkIApAQCAtMTM0LDExICsxNDQsMTMgQEAgRFJPUCBST0xFIHJlZ3Jl c3NfcGFzc3dkX3NoYV9sZW4wOwogRFJPUCBST0xFIHJlZ3Jlc3NfcGFzc3dkX3NoYV9sZW4xOwog RFJPUCBST0xFIHJlZ3Jlc3NfcGFzc3dkX3NoYV9sZW4yOwogLS0gYWxsIGVudHJpZXMgc2hvdWxk IGhhdmUgYmVlbiByZW1vdmVkCi1TRUxFQ1Qgcm9sbmFtZSwgcm9scGFzc3dvcmQKK1NFTEVDVCBy b2xuYW1lLCBwYXNzd29yZAogICAgIEZST00gcGdfYXV0aGlkCisgICAgTEVGVCBKT0lOIHBnX2F1 dGhfcGFzc3dvcmQgcCAKKyAgICBPTiBwZ19hdXRoaWQub2lkID0gcC5yb2xlaWQKICAgICBXSEVS RSByb2xuYW1lIExJS0UgJ3JlZ3Jlc3NfcGFzc3dkJScKLSAgICBPUkRFUiBCWSByb2xuYW1lLCBy b2xwYXNzd29yZDsKLSByb2xuYW1lIHwgcm9scGFzc3dvcmQgCi0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLQorICAgIE9SREVSIEJZIHJvbG5hbWUsIHBhc3N3b3JkOworIHJvbG5hbWUgfCBwYXNzd29y ZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tCiAoMCByb3dzKQogCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3JvbGVhdHRyaWJ1dGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcm9sZWF0dHJpYnV0ZXMub3V0CmluZGV4IDVlNjk2OWIxNzNlLi4xOGE5ZGFjYWRk ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yb2xlYXR0cmlidXRlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yb2xlYXR0cmlidXRlcy5vdXQKQEAg LTEsMjMzICsxLDIzMyBAQAogLS0gZGVmYXVsdCBmb3Igc3VwZXJ1c2VyIGlzIGZhbHNlCiBDUkVB VEUgUk9MRSByZWdyZXNzX3Rlc3RfZGVmX3N1cGVydXNlcjsKLVNFTEVDVCByb2xuYW1lLCByb2xz dXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2lu LCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3Jk LCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190 ZXN0X2RlZl9zdXBlcnVzZXInOwotICAgICAgICAgIHJvbG5hbWUgICAgICAgICAgIHwgcm9sc3Vw ZXIgfCByb2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9n aW4gfCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHBh c3N3b3JkIHwgcm9sdmFsaWR1bnRpbCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0X2RlZl9zdXBlcnVzZXIg fCBmICAgICAgICB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBm ICAgICAgICAgICB8IGYgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgIHwgICAgICAgICAgIC0x IHwgICAgICAgICAgICAgfCAKK1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwg cm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwg cm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQg V0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfZGVmX3N1cGVydXNlcic7CisgICAgICAgICAg cm9sbmFtZSAgICAgICAgICAgfCByb2xzdXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xl IHwgcm9sY3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNz cmxzIHwgcm9sY29ubmxpbWl0IHwgcm9sdmFsaWR1bnRpbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdF9kZWZfc3VwZXJ1c2VyIHwg ZiAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAg ICAgICAgICAgfCBmICAgICAgICAgICAgICB8IGYgICAgICAgICAgICB8ICAgICAgICAgICAtMSB8 IAogKDEgcm93KQogCiBDUkVBVEUgUk9MRSByZWdyZXNzX3Rlc3Rfc3VwZXJ1c2VyIFdJVEggU1VQ RVJVU0VSOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVy b2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3Ny bHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRo aWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3Rfc3VwZXJ1c2VyJzsKLSAgICAgICAgcm9s bmFtZSAgICAgICAgIHwgcm9sc3VwZXIgfCByb2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJv bGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8 IHJvbGNvbm5saW1pdCB8IHJvbHBhc3N3b3JkIHwgcm9sdmFsaWR1bnRpbCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rl c3Rfc3VwZXJ1c2VyIHwgdCAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYg ICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8IGYgICAgICAgICAgICB8 ICAgICAgICAgICAtMSB8ICAgICAgICAgICAgIHwgCitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIs IHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9s cmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxpZHVudGlsIEZS T00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3N1cGVydXNlcic7Cisg ICAgICAgIHJvbG5hbWUgICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0 ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xi eXBhc3NybHMgfCByb2xjb25ubGltaXQgfCByb2x2YWxpZHVudGlsIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3Rfc3VwZXJ1c2VyIHwgdCAg ICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAg ICAgICAgfCBmICAgICAgICAgICAgICB8IGYgICAgICAgICAgICB8ICAgICAgICAgICAtMSB8IAog KDEgcm93KQogCiBBTFRFUiBST0xFIHJlZ3Jlc3NfdGVzdF9zdXBlcnVzZXIgV0lUSCBOT1NVUEVS VVNFUjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9s ZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxz LCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlk IFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3N1cGVydXNlcic7Ci0gICAgICAgIHJvbG5h bWUgICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xj cmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCBy b2xjb25ubGltaXQgfCByb2xwYXNzd29yZCB8IHJvbHZhbGlkdW50aWwgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 X3N1cGVydXNlciB8IGYgICAgICAgIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAg ICAgICAgICAgLTEgfCAgICAgICAgICAgICB8IAorU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCBy b2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJl cGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9N IHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9zdXBlcnVzZXInOworICAg ICAgICByb2xuYW1lICAgICAgICAgfCByb2xzdXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVy b2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlw YXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9sdmFsaWR1bnRpbCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0X3N1cGVydXNlciB8IGYgICAg ICAgIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAKICgx IHJvdykKIAogQUxURVIgUk9MRSByZWdyZXNzX3Rlc3Rfc3VwZXJ1c2VyIFdJVEggU1VQRVJVU0VS OwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCBy b2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJv bGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hF UkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3Rfc3VwZXJ1c2VyJzsKLSAgICAgICAgcm9sbmFtZSAg ICAgICAgIHwgcm9sc3VwZXIgfCByb2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0 ZWRiIHwgcm9sY2FubG9naW4gfCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNv bm5saW1pdCB8IHJvbHBhc3N3b3JkIHwgcm9sdmFsaWR1bnRpbCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3Rfc3Vw ZXJ1c2VyIHwgdCAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg ICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8IGYgICAgICAgICAgICB8ICAgICAg ICAgICAtMSB8ICAgICAgICAgICAgIHwgCitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGlu aGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGlj YXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00gcGdf YXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3N1cGVydXNlcic7CisgICAgICAg IHJvbG5hbWUgICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUg fCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3Ny bHMgfCByb2xjb25ubGltaXQgfCByb2x2YWxpZHVudGlsIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3Rfc3VwZXJ1c2VyIHwgdCAgICAgICAg fCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAg fCBmICAgICAgICAgICAgICB8IGYgICAgICAgICAgICB8ICAgICAgICAgICAtMSB8IAogKDEgcm93 KQogCiAtLSBkZWZhdWx0IGZvciBpbmhlcml0IGlzIHRydWUKIENSRUFURSBST0xFIHJlZ3Jlc3Nf dGVzdF9kZWZfaW5oZXJpdDsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwg cm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwg cm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZS T00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2RlZl9pbmhlcml0JzsK LSAgICAgICAgIHJvbG5hbWUgICAgICAgICAgfCByb2xzdXBlciB8IHJvbGluaGVyaXQgfCByb2xj cmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwg cm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9scGFzc3dvcmQgfCByb2x2YWxpZHVudGls IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tCi0gcmVncmVzc190ZXN0X2RlZl9pbmhlcml0IHwgZiAgICAgICAgfCB0ICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICB8ICAgICAgICAgICAtMSB8ICAgICAgICAgICAgIHwgCitTRUxFQ1Qg cm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRi LCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0 LCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190 ZXN0X2RlZl9pbmhlcml0JzsKKyAgICAgICAgIHJvbG5hbWUgICAgICAgICAgfCByb2xzdXBlciB8 IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8 IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9sdmFsaWR1 bnRpbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyByZWdy ZXNzX3Rlc3RfZGVmX2luaGVyaXQgfCBmICAgICAgICB8IHQgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgIHwgICAgICAgICAgIC0xIHwgCiAoMSByb3cpCiAKIENSRUFURSBST0xFIHJlZ3Jlc3Nf dGVzdF9pbmhlcml0IFdJVEggTk9JTkhFUklUOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCBy b2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJl cGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZh bGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfaW5o ZXJpdCc7Ci0gICAgICAgcm9sbmFtZSAgICAgICAgfCByb2xzdXBlciB8IHJvbGluaGVyaXQgfCBy b2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9u IHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9scGFzc3dvcmQgfCByb2x2YWxpZHVu dGlsIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RfaW5oZXJpdCB8IGYgICAgICAgIHwgZiAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAgICAgICAgICAgICB8IAorU0VMRUNUIHJvbG5h bWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9s Y2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9s dmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9p bmhlcml0JzsKKyAgICAgICByb2xuYW1lICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8 IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRp b24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGltaXQgfCByb2x2YWxpZHVudGlsIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0X2luaGVyaXQg fCBmICAgICAgICB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBm ICAgICAgICAgICB8IGYgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgIHwgICAgICAgICAgIC0x IHwgCiAoMSByb3cpCiAKIEFMVEVSIFJPTEUgcmVncmVzc190ZXN0X2luaGVyaXQgV0lUSCBJTkhF UklUOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xl LCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMs IHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQg V0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfaW5oZXJpdCc7Ci0gICAgICAgcm9sbmFtZSAg ICAgICAgfCByb2xzdXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRl ZGIgfCByb2xjYW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29u bmxpbWl0IHwgcm9scGFzc3dvcmQgfCByb2x2YWxpZHVudGlsIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RfaW5oZXJp dCB8IGYgICAgICAgIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICAgICB8 IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAg LTEgfCAgICAgICAgICAgICB8IAorU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0 LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9u LCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhp ZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9pbmhlcml0JzsKKyAgICAgICByb2xuYW1l ICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVh dGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xj b25ubGltaXQgfCByb2x2YWxpZHVudGlsIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tCisgcmVncmVzc190ZXN0X2luaGVyaXQgfCBmICAgICAgICB8IHQgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgIHwgICAgICAgICAgIC0xIHwgCiAoMSByb3cpCiAKIEFMVEVSIFJP TEUgcmVncmVzc190ZXN0X2luaGVyaXQgV0lUSCBOT0lOSEVSSVQ7Ci1TRUxFQ1Qgcm9sbmFtZSwg cm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5s b2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2xwYXNz d29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jl c3NfdGVzdF9pbmhlcml0JzsKLSAgICAgICByb2xuYW1lICAgICAgICB8IHJvbHN1cGVyIHwgcm9s aW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9s cmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGltaXQgfCByb2xwYXNzd29yZCB8 IHJvbHZhbGlkdW50aWwgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdF9pbmhlcml0IHwgZiAgICAgICAgfCBmICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICB8ICAgICAgICAgICAtMSB8ICAgICAgICAgICAgIHwgCitT RUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNy ZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29u bmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVn cmVzc190ZXN0X2luaGVyaXQnOworICAgICAgIHJvbG5hbWUgICAgICAgIHwgcm9sc3VwZXIgfCBy b2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCBy b2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHZhbGlkdW50 aWwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rl c3RfaW5oZXJpdCB8IGYgICAgICAgIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAg ICAgICAgICAgLTEgfCAKICgxIHJvdykKIAogLS0gZGVmYXVsdCBmb3IgY3JlYXRlIHJvbGUgaXMg ZmFsc2UKIENSRUFURSBST0xFIHJlZ3Jlc3NfdGVzdF9kZWZfY3JlYXRlcm9sZTsKLVNFTEVDVCBy b2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIs IHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQs IHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUg PSAncmVncmVzc190ZXN0X2RlZl9jcmVhdGVyb2xlJzsKLSAgICAgICAgICAgcm9sbmFtZSAgICAg ICAgICAgfCByb2xzdXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRl ZGIgfCByb2xjYW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29u bmxpbWl0IHwgcm9scGFzc3dvcmQgfCByb2x2YWxpZHVudGlsIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 X2RlZl9jcmVhdGVyb2xlIHwgZiAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICB8ICAgICAgICAgICAtMSB8ICAgICAgICAgICAgIHwgCitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3Vw ZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwg cm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxpZHVudGls IEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2RlZl9jcmVhdGVy b2xlJzsKKyAgICAgICAgICAgcm9sbmFtZSAgICAgICAgICAgfCByb2xzdXBlciB8IHJvbGluaGVy aXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8IHJvbHJlcGxp Y2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9sdmFsaWR1bnRpbCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rl c3RfZGVmX2NyZWF0ZXJvbGUgfCBmICAgICAgICB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgIHwgICAgICAgICAgIC0xIHwgCiAoMSByb3cpCiAKIENSRUFURSBST0xFIHJlZ3Jlc3NfdGVz dF9jcmVhdGVyb2xlIFdJVEggQ1JFQVRFUk9MRTsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwg cm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xy ZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2 YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2Ny ZWF0ZXJvbGUnOwotICAgICAgICAgcm9sbmFtZSAgICAgICAgIHwgcm9sc3VwZXIgfCByb2xpbmhl cml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCByb2xyZXBs aWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHBhc3N3b3JkIHwgcm9s dmFsaWR1bnRpbCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0X2NyZWF0ZXJvbGUgfCBmICAgICAgICB8IHQgICAg ICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgIHwgICAgICAgICAgIC0xIHwgICAgICAgICAgICAgfCAK K1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9s Y3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xj b25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdy ZWdyZXNzX3Rlc3RfY3JlYXRlcm9sZSc7CisgICAgICAgICByb2xuYW1lICAgICAgICAgfCByb2xz dXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5s b2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9s dmFsaWR1bnRpbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfdGVzdF9jcmVhdGVyb2xlIHwgZiAgICAgICAgfCB0ICAgICAgICAgIHwgdCAgICAg ICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICB8ICAgICAgICAgICAtMSB8IAogKDEgcm93KQogCiBBTFRFUiBST0xFIHJlZ3Jl c3NfdGVzdF9jcmVhdGVyb2xlIFdJVEggTk9DUkVBVEVST0xFOwotU0VMRUNUIHJvbG5hbWUsIHJv bHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9n aW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dv cmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNz X3Rlc3RfY3JlYXRlcm9sZSc7Ci0gICAgICAgICByb2xuYW1lICAgICAgICAgfCByb2xzdXBlciB8 IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8 IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9scGFzc3dv cmQgfCByb2x2YWxpZHVudGlsIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RfY3JlYXRlcm9sZSB8IGYgICAgICAg IHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAgICAgICAg ICAgICB8IAorU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVy b2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3Ny bHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xu YW1lID0gJ3JlZ3Jlc3NfdGVzdF9jcmVhdGVyb2xlJzsKKyAgICAgICAgIHJvbG5hbWUgICAgICAg ICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8 IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGlt aXQgfCByb2x2YWxpZHVudGlsIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tCisgcmVncmVzc190ZXN0X2NyZWF0ZXJvbGUgfCBmICAgICAgICB8IHQgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgIHwgICAgICAgICAgIC0xIHwgCiAoMSByb3cpCiAKIEFMVEVSIFJP TEUgcmVncmVzc190ZXN0X2NyZWF0ZXJvbGUgV0lUSCBDUkVBVEVST0xFOwotU0VMRUNUIHJvbG5h bWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9s Y2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9s cGFzc3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdy ZWdyZXNzX3Rlc3RfY3JlYXRlcm9sZSc7Ci0gICAgICAgICByb2xuYW1lICAgICAgICAgfCByb2xz dXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5s b2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9s cGFzc3dvcmQgfCByb2x2YWxpZHVudGlsIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RfY3JlYXRlcm9sZSB8IGYg ICAgICAgIHwgdCAgICAgICAgICB8IHQgICAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAg ICAgICAgICAgICB8IAorU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xj cmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xi eXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVS RSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9jcmVhdGVyb2xlJzsKKyAgICAgICAgIHJvbG5hbWUg ICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVh dGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xj b25ubGltaXQgfCByb2x2YWxpZHVudGlsIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0X2NyZWF0ZXJvbGUgfCBmICAgICAgICB8IHQgICAg ICAgICAgfCB0ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgIHwgICAgICAgICAgIC0xIHwgCiAoMSByb3cpCiAKIC0t IGRlZmF1bHQgZm9yIGNyZWF0ZSBkYXRhYmFzZSBpcyBmYWxzZQogQ1JFQVRFIFJPTEUgcmVncmVz c190ZXN0X2RlZl9jcmVhdGVkYjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJp dCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlv biwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGls IEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2RlZl9jcmVhdGVk Yic7Ci0gICAgICAgICAgcm9sbmFtZSAgICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8 IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRp b24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGltaXQgfCByb2xwYXNzd29yZCB8IHJvbHZhbGlk dW50aWwgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tCi0gcmVncmVzc190ZXN0X2RlZl9jcmVhdGVkYiB8IGYgICAgICAgIHwgdCAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAgICAgICAgICAgICB8IAor U0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xj cmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNv bm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3Jl Z3Jlc3NfdGVzdF9kZWZfY3JlYXRlZGInOworICAgICAgICAgIHJvbG5hbWUgICAgICAgICAgfCBy b2xzdXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xj YW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwg cm9sdmFsaWR1bnRpbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tCisgcmVncmVzc190ZXN0X2RlZl9jcmVhdGVkYiB8IGYgICAgICAgIHwgdCAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAKICgxIHJvdykKIAogQ1JFQVRFIFJP TEUgcmVncmVzc190ZXN0X2NyZWF0ZWRiIFdJVEggQ1JFQVRFREI7Ci1TRUxFQ1Qgcm9sbmFtZSwg cm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5s b2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2xwYXNz d29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jl c3NfdGVzdF9jcmVhdGVkYic7Ci0gICAgICAgIHJvbG5hbWUgICAgICAgIHwgcm9sc3VwZXIgfCBy b2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCBy b2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHBhc3N3b3Jk IHwgcm9sdmFsaWR1bnRpbCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdF9jcmVhdGVkYiB8IGYgICAgICAgIHwgdCAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAgICAgICAgICAgICB8 IAorU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCBy b2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJv bGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0g J3JlZ3Jlc3NfdGVzdF9jcmVhdGVkYic7CisgICAgICAgIHJvbG5hbWUgICAgICAgIHwgcm9sc3Vw ZXIgfCByb2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9n aW4gfCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHZh bGlkdW50aWwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0X2NyZWF0ZWRiIHwgZiAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IHQgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICB8ICAgICAgICAgICAtMSB8IAogKDEgcm93KQogCiBBTFRFUiBST0xFIHJlZ3Jlc3NfdGVz dF9jcmVhdGVkYiBXSVRIIE5PQ1JFQVRFREI7Ci1TRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJv bGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVw bGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2xwYXNzd29yZCwgcm9sdmFs aWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9jcmVh dGVkYic7Ci0gICAgICAgIHJvbG5hbWUgICAgICAgIHwgcm9sc3VwZXIgfCByb2xpbmhlcml0IHwg cm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCByb2xyZXBsaWNhdGlv biB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHBhc3N3b3JkIHwgcm9sdmFsaWR1 bnRpbCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLQotIHJlZ3Jlc3NfdGVzdF9jcmVhdGVkYiB8IGYgICAgICAgIHwgdCAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAgICAgICAgICAgICB8IAorU0VMRUNUIHJv bG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwg cm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwg cm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVz dF9jcmVhdGVkYic7CisgICAgICAgIHJvbG5hbWUgICAgICAgIHwgcm9sc3VwZXIgfCByb2xpbmhl cml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCByb2xyZXBs aWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHZhbGlkdW50aWwgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0X2Ny ZWF0ZWRiIHwgZiAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg ICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8IGYgICAgICAgICAgICB8ICAgICAg ICAgICAtMSB8IAogKDEgcm93KQogCiBBTFRFUiBST0xFIHJlZ3Jlc3NfdGVzdF9jcmVhdGVkYiBX SVRIIENSRUFURURCOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xj cmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xi eXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBw Z19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfY3JlYXRlZGInOwotICAgICAg ICByb2xuYW1lICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUg fCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3Ny bHMgfCByb2xjb25ubGltaXQgfCByb2xwYXNzd29yZCB8IHJvbHZhbGlkdW50aWwgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RfY3JlYXRlZGIgfCBmICAgICAgICB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg dCAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg IHwgICAgICAgICAgIC0xIHwgICAgICAgICAgICAgfCAKK1NFTEVDVCByb2xuYW1lLCByb2xzdXBl ciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCBy b2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHZhbGlkdW50aWwg RlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfY3JlYXRlZGInOwor ICAgICAgICByb2xuYW1lICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0 ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xi eXBhc3NybHMgfCByb2xjb25ubGltaXQgfCByb2x2YWxpZHVudGlsIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdF9jcmVhdGVkYiB8IGYgICAg ICAgIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgICAgICB8IGYgICAgICAg ICAgIHwgZiAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAKICgx IHJvdykKIAogLS0gZGVmYXVsdCBmb3IgY2FuIGxvZ2luIGlzIGZhbHNlIGZvciByb2xlCiBDUkVB VEUgUk9MRSByZWdyZXNzX3Rlc3RfZGVmX3JvbGVfY2FubG9naW47Ci1TRUxFQ1Qgcm9sbmFtZSwg cm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5s b2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2xwYXNz d29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jl c3NfdGVzdF9kZWZfcm9sZV9jYW5sb2dpbic7Ci0gICAgICAgICAgICByb2xuYW1lICAgICAgICAg ICAgIHwgcm9sc3VwZXIgfCByb2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRi IHwgcm9sY2FubG9naW4gfCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5s aW1pdCB8IHJvbHBhc3N3b3JkIHwgcm9sdmFsaWR1bnRpbCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVz dF9kZWZfcm9sZV9jYW5sb2dpbiB8IGYgICAgICAgIHwgdCAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgfCAgICAgICAgICAgLTEgfCAgICAgICAgICAgICB8IAorU0VMRUNUIHJvbG5hbWUsIHJv bHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9n aW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1 bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9kZWZfcm9s ZV9jYW5sb2dpbic7CisgICAgICAgICAgICByb2xuYW1lICAgICAgICAgICAgIHwgcm9sc3VwZXIg fCByb2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4g fCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHZhbGlk dW50aWwgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t CisgcmVncmVzc190ZXN0X2RlZl9yb2xlX2NhbmxvZ2luIHwgZiAgICAgICAgfCB0ICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICB8ICAgICAgICAgICAtMSB8IAogKDEgcm93KQogCiBDUkVBVEUg Uk9MRSByZWdyZXNzX3Rlc3Rfcm9sZV9jYW5sb2dpbiBXSVRIIExPR0lOOwotU0VMRUNUIHJvbG5h bWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9s Y2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9s cGFzc3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdy ZWdyZXNzX3Rlc3Rfcm9sZV9jYW5sb2dpbic7Ci0gICAgICAgICAgcm9sbmFtZSAgICAgICAgICAg fCByb2xzdXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCBy b2xjYW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0 IHwgcm9scGFzc3dvcmQgfCByb2x2YWxpZHVudGlsIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3Rfcm9sZV9j YW5sb2dpbiB8IGYgICAgICAgIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICAgICB8IHQgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAg ICAgICAgLTEgfCAgICAgICAgICAgICB8IAorU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xp bmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxp Y2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBn X2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9yb2xlX2NhbmxvZ2luJzsKKyAg ICAgICAgICByb2xuYW1lICAgICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNy ZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCBy b2xieXBhc3NybHMgfCByb2xjb25ubGltaXQgfCByb2x2YWxpZHVudGlsIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0X3JvbGVfY2Fu bG9naW4gfCBmICAgICAgICB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgfCB0ICAgICAgICAgICB8IGYgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgIHwgICAgICAg ICAgIC0xIHwgCiAoMSByb3cpCiAKIEFMVEVSIFJPTEUgcmVncmVzc190ZXN0X3JvbGVfY2FubG9n aW4gV0lUSCBOT0xPR0lOOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCBy b2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCBy b2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZhbGlkdW50aWwgRlJP TSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3Rfcm9sZV9jYW5sb2dpbic7 Ci0gICAgICAgICAgcm9sbmFtZSAgICAgICAgICAgfCByb2xzdXBlciB8IHJvbGluaGVyaXQgfCBy b2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9u IHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9scGFzc3dvcmQgfCByb2x2YWxpZHVu dGlsIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0KLSByZWdyZXNzX3Rlc3Rfcm9sZV9jYW5sb2dpbiB8IGYgICAgICAgIHwgdCAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAgICAgICAgICAgICB8IAor U0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xj cmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNv bm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3Jl Z3Jlc3NfdGVzdF9yb2xlX2NhbmxvZ2luJzsKKyAgICAgICAgICByb2xuYW1lICAgICAgICAgICB8 IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJv bGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGltaXQg fCByb2x2YWxpZHVudGlsIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tCisgcmVncmVzc190ZXN0X3JvbGVfY2FubG9naW4gfCBmICAgICAgICB8IHQgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgIHwgICAgICAgICAgIC0xIHwgCiAoMSByb3cpCiAKIEFMVEVS IFJPTEUgcmVncmVzc190ZXN0X3JvbGVfY2FubG9naW4gV0lUSCBMT0dJTjsKLVNFTEVDVCByb2xu YW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJv bGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJv bHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAn cmVncmVzc190ZXN0X3JvbGVfY2FubG9naW4nOwotICAgICAgICAgIHJvbG5hbWUgICAgICAgICAg IHwgcm9sc3VwZXIgfCByb2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwg cm9sY2FubG9naW4gfCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1p dCB8IHJvbHBhc3N3b3JkIHwgcm9sdmFsaWR1bnRpbCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0X3JvbGVf Y2FubG9naW4gfCBmICAgICAgICB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgfCB0ICAgICAgICAgICB8IGYgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgIHwgICAg ICAgICAgIC0xIHwgICAgICAgICAgICAgfCAKK1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9s aW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBs aWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJPTSBw Z19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3Rfcm9sZV9jYW5sb2dpbic7Cisg ICAgICAgICAgcm9sbmFtZSAgICAgICAgICAgfCByb2xzdXBlciB8IHJvbGluaGVyaXQgfCByb2xj cmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwg cm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9sdmFsaWR1bnRpbCAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdF9yb2xlX2Nh bmxvZ2luIHwgZiAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg ICAgIHwgdCAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8IGYgICAgICAgICAgICB8ICAgICAg ICAgICAtMSB8IAogKDEgcm93KQogCiAtLSBkZWZhdWx0IGZvciBjYW4gbG9naW4gaXMgdHJ1ZSBm b3IgdXNlcgogQ1JFQVRFIFVTRVIgcmVncmVzc190ZXN0X2RlZl91c2VyX2NhbmxvZ2luOwotU0VM RUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVh dGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5s aW1pdCwgcm9scGFzc3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9s bmFtZSA9ICdyZWdyZXNzX3Rlc3RfZGVmX3VzZXJfY2FubG9naW4nOwotICAgICAgICAgICAgcm9s bmFtZSAgICAgICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUg fCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3Ny bHMgfCByb2xjb25ubGltaXQgfCByb2xwYXNzd29yZCB8IHJvbHZhbGlkdW50aWwgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0K LSByZWdyZXNzX3Rlc3RfZGVmX3VzZXJfY2FubG9naW4gfCBmICAgICAgICB8IHQgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCB0ICAgICAgICAgICB8IGYgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgIHwgICAgICAgICAgIC0xIHwgICAgICAgICAgICAgfCAKK1NFTEVD VCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRl ZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGlt aXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNz X3Rlc3RfZGVmX3VzZXJfY2FubG9naW4nOworICAgICAgICAgICAgcm9sbmFtZSAgICAgICAgICAg ICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8 IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGlt aXQgfCByb2x2YWxpZHVudGlsIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdF9kZWZfdXNlcl9jYW5sb2dpbiB8IGYgICAgICAg IHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICAgICB8IHQgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAKICgxIHJv dykKIAogQ1JFQVRFIFVTRVIgcmVncmVzc190ZXN0X3VzZXJfY2FubG9naW4gV0lUSCBOT0xPR0lO OwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCBy b2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJv bGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hF UkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfdXNlcl9jYW5sb2dpbic7Ci0gICAgICAgICAgcm9s bmFtZSAgICAgICAgICAgfCByb2xzdXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwg cm9sY3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxz IHwgcm9sY29ubmxpbWl0IHwgcm9scGFzc3dvcmQgfCByb2x2YWxpZHVudGlsIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KLSByZWdy ZXNzX3Rlc3RfdXNlcl9jYW5sb2dpbiB8IGYgICAgICAgIHwgdCAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgfCAgICAgICAgICAgLTEgfCAgICAgICAgICAgICB8IAorU0VMRUNUIHJvbG5hbWUs IHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2Fu bG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFs aWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF91c2Vy X2NhbmxvZ2luJzsKKyAgICAgICAgICByb2xuYW1lICAgICAgICAgICB8IHJvbHN1cGVyIHwgcm9s aW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9s cmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGltaXQgfCByb2x2YWxpZHVudGls IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVncmVz c190ZXN0X3VzZXJfY2FubG9naW4gfCBmICAgICAgICB8IHQgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgIHwgICAgICAgICAgIC0xIHwgCiAoMSByb3cpCiAKIEFMVEVSIFVTRVIgcmVncmVzc190 ZXN0X3VzZXJfY2FubG9naW4gV0lUSCBMT0dJTjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwg cm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xy ZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2 YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3Vz ZXJfY2FubG9naW4nOwotICAgICAgICAgIHJvbG5hbWUgICAgICAgICAgIHwgcm9sc3VwZXIgfCBy b2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCBy b2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHBhc3N3b3Jk IHwgcm9sdmFsaWR1bnRpbCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0X3VzZXJfY2FubG9naW4gfCBmICAg ICAgICB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCB0ICAgICAg ICAgICB8IGYgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgIHwgICAgICAgICAgIC0xIHwgICAg ICAgICAgICAgfCAKK1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3Jl YXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlw YXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUg cm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfdXNlcl9jYW5sb2dpbic7CisgICAgICAgICAgcm9sbmFt ZSAgICAgICAgICAgfCByb2xzdXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9s Y3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwg cm9sY29ubmxpbWl0IHwgcm9sdmFsaWR1bnRpbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdF91c2VyX2NhbmxvZ2luIHwgZiAgICAg ICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgdCAgICAgICAg ICAgfCBmICAgICAgICAgICAgICB8IGYgICAgICAgICAgICB8ICAgICAgICAgICAtMSB8IAogKDEg cm93KQogCiBBTFRFUiBVU0VSIHJlZ3Jlc3NfdGVzdF91c2VyX2NhbmxvZ2luIFdJVEggTk9MT0dJ TjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwg cm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCBy b2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdI RVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3VzZXJfY2FubG9naW4nOwotICAgICAgICAgIHJv bG5hbWUgICAgICAgICAgIHwgcm9sc3VwZXIgfCByb2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8 IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3Js cyB8IHJvbGNvbm5saW1pdCB8IHJvbHBhc3N3b3JkIHwgcm9sdmFsaWR1bnRpbCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCi0gcmVn cmVzc190ZXN0X3VzZXJfY2FubG9naW4gfCBmICAgICAgICB8IHQgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgIHwgICAgICAgICAgIC0xIHwgICAgICAgICAgICAgfCAKK1NFTEVDVCByb2xuYW1l LCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNh bmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHZh bGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfdXNl cl9jYW5sb2dpbic7CisgICAgICAgICAgcm9sbmFtZSAgICAgICAgICAgfCByb2xzdXBlciB8IHJv bGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5sb2dpbiB8IHJv bHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9sdmFsaWR1bnRp bCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGVzdF91c2VyX2NhbmxvZ2luIHwgZiAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICB8ICAgICAgICAgICAtMSB8IAogKDEgcm93KQogCiAtLSBkZWZhdWx0IGZvciByZXBs aWNhdGlvbiBpcyBmYWxzZQogQ1JFQVRFIFJPTEUgcmVncmVzc190ZXN0X2RlZl9yZXBsaWNhdGlv bjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwg cm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCBy b2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdI RVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2RlZl9yZXBsaWNhdGlvbic7Ci0gICAgICAgICAg IHJvbG5hbWUgICAgICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJv bGUgfCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBh c3NybHMgfCByb2xjb25ubGltaXQgfCByb2xwYXNzd29yZCB8IHJvbHZhbGlkdW50aWwgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ci0gcmVncmVzc190ZXN0X2RlZl9yZXBsaWNhdGlvbiB8IGYgICAgICAgIHwgdCAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAgICAgICAgICAgICB8IAorU0VMRUNU IHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVk Yiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1p dCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3Nf dGVzdF9kZWZfcmVwbGljYXRpb24nOworICAgICAgICAgICByb2xuYW1lICAgICAgICAgICAgfCBy b2xzdXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xj YW5sb2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwg cm9sdmFsaWR1bnRpbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tCisgcmVncmVzc190ZXN0X2RlZl9yZXBsaWNhdGlvbiB8IGYgICAgICAgIHwgdCAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAKICgxIHJvdykKIAogQ1JF QVRFIFJPTEUgcmVncmVzc190ZXN0X3JlcGxpY2F0aW9uIFdJVEggUkVQTElDQVRJT047Ci1TRUxF Q1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0 ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxp bWl0LCByb2xwYXNzd29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xu YW1lID0gJ3JlZ3Jlc3NfdGVzdF9yZXBsaWNhdGlvbic7Ci0gICAgICAgICByb2xuYW1lICAgICAg ICAgIHwgcm9sc3VwZXIgfCByb2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRi IHwgcm9sY2FubG9naW4gfCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5s aW1pdCB8IHJvbHBhc3N3b3JkIHwgcm9sdmFsaWR1bnRpbCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdF9yZXBs aWNhdGlvbiB8IGYgICAgICAgIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAg ICAgICB8IGYgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAg ICAgICAgLTEgfCAgICAgICAgICAgICB8IAorU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xp bmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxp Y2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBn X2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9yZXBsaWNhdGlvbic7CisgICAg ICAgICByb2xuYW1lICAgICAgICAgIHwgcm9sc3VwZXIgfCByb2xpbmhlcml0IHwgcm9sY3JlYXRl cm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5 cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHZhbGlkdW50aWwgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0X3JlcGxpY2F0aW9uIHwg ZiAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAg ICAgICAgICAgfCB0ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICB8ICAgICAgICAgICAtMSB8 IAogKDEgcm93KQogCiBBTFRFUiBST0xFIHJlZ3Jlc3NfdGVzdF9yZXBsaWNhdGlvbiBXSVRIIE5P UkVQTElDQVRJT047Ci1TRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNy ZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5 cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2xwYXNzd29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBn X2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9yZXBsaWNhdGlvbic7Ci0gICAg ICAgICByb2xuYW1lICAgICAgICAgIHwgcm9sc3VwZXIgfCByb2xpbmhlcml0IHwgcm9sY3JlYXRl cm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5 cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHBhc3N3b3JkIHwgcm9sdmFsaWR1bnRpbCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQot IHJlZ3Jlc3NfdGVzdF9yZXBsaWNhdGlvbiB8IGYgICAgICAgIHwgdCAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAgICAgICAgICAgICB8IAorU0VMRUNUIHJvbG5h bWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9s Y2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9s dmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9y ZXBsaWNhdGlvbic7CisgICAgICAgICByb2xuYW1lICAgICAgICAgIHwgcm9sc3VwZXIgfCByb2xp bmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCByb2xy ZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHZhbGlkdW50aWwg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190 ZXN0X3JlcGxpY2F0aW9uIHwgZiAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICB8ICAgICAgICAgICAtMSB8IAogKDEgcm93KQogCiBBTFRFUiBST0xFIHJlZ3Jlc3NfdGVzdF9y ZXBsaWNhdGlvbiBXSVRIIFJFUExJQ0FUSU9OOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCBy b2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJl cGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZh bGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfcmVw bGljYXRpb24nOwotICAgICAgICAgcm9sbmFtZSAgICAgICAgICB8IHJvbHN1cGVyIHwgcm9saW5o ZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9scmVw bGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGltaXQgfCByb2xwYXNzd29yZCB8IHJv bHZhbGlkdW50aWwgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RfcmVwbGljYXRpb24gfCBmICAgICAgICB8IHQg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICB8IHQg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgIHwgICAgICAgICAgIC0xIHwgICAgICAgICAgICAg fCAKK1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwg cm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCBy b2xjb25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9 ICdyZWdyZXNzX3Rlc3RfcmVwbGljYXRpb24nOworICAgICAgICAgcm9sbmFtZSAgICAgICAgICB8 IHJvbHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJv bGNhbmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGltaXQg fCByb2x2YWxpZHVudGlsIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLQorIHJlZ3Jlc3NfdGVzdF9yZXBsaWNhdGlvbiB8IGYgICAgICAgIHwgdCAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgdCAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAKICgxIHJvdykKIAogLS0gZGVmYXVs dCBmb3IgYnlwYXNzcmxzIGlzIGZhbHNlCiBDUkVBVEUgUk9MRSByZWdyZXNzX3Rlc3RfZGVmX2J5 cGFzc3JsczsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRl cm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNz cmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0 aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2RlZl9ieXBhc3NybHMnOwotICAgICAg ICAgIHJvbG5hbWUgICAgICAgICAgIHwgcm9sc3VwZXIgfCByb2xpbmhlcml0IHwgcm9sY3JlYXRl cm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCByb2xyZXBsaWNhdGlvbiB8IHJvbGJ5 cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHBhc3N3b3JkIHwgcm9sdmFsaWR1bnRpbCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ci0gcmVncmVzc190ZXN0X2RlZl9ieXBhc3NybHMgfCBmICAgICAgICB8IHQgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgIHwgICAgICAgICAgIC0xIHwgICAgICAgICAgICAgfCAKK1NFTEVDVCBy b2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIs IHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQs IHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rl c3RfZGVmX2J5cGFzc3Jscyc7CisgICAgICAgICAgcm9sbmFtZSAgICAgICAgICAgfCByb2xzdXBl ciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5sb2dp biB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9sdmFs aWR1bnRpbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQor IHJlZ3Jlc3NfdGVzdF9kZWZfYnlwYXNzcmxzIHwgZiAgICAgICAgfCB0ICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICB8ICAgICAgICAgICAtMSB8IAogKDEgcm93KQogCiBDUkVBVEUgUk9MRSBy ZWdyZXNzX3Rlc3RfYnlwYXNzcmxzIFdJVEggQllQQVNTUkxTOwotU0VMRUNUIHJvbG5hbWUsIHJv bHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9n aW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dv cmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNz X3Rlc3RfYnlwYXNzcmxzJzsKLSAgICAgICAgcm9sbmFtZSAgICAgICAgIHwgcm9sc3VwZXIgfCBy b2xpbmhlcml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCBy b2xyZXBsaWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHBhc3N3b3Jk IHwgcm9sdmFsaWR1bnRpbCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RfYnlwYXNzcmxzIHwgZiAgICAgICAgfCB0 ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBm ICAgICAgICAgICAgICB8IHQgICAgICAgICAgICB8ICAgICAgICAgICAtMSB8ICAgICAgICAgICAg IHwgCitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUs IHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywg cm9sY29ubmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUg PSAncmVncmVzc190ZXN0X2J5cGFzc3Jscyc7CisgICAgICAgIHJvbG5hbWUgICAgICAgICB8IHJv bHN1cGVyIHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJvbGNh bmxvZ2luIHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGltaXQgfCBy b2x2YWxpZHVudGlsIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RfYnlwYXNzcmxzIHwgZiAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8IHQg ICAgICAgICAgICB8ICAgICAgICAgICAtMSB8IAogKDEgcm93KQogCiBBTFRFUiBST0xFIHJlZ3Jl c3NfdGVzdF9ieXBhc3NybHMgV0lUSCBOT0JZUEFTU1JMUzsKLVNFTEVDVCByb2xuYW1lLCByb2xz dXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2lu LCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3Jk LCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190 ZXN0X2J5cGFzc3Jscyc7Ci0gICAgICAgIHJvbG5hbWUgICAgICAgICB8IHJvbHN1cGVyIHwgcm9s aW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2luIHwgcm9s cmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGltaXQgfCByb2xwYXNzd29yZCB8 IHJvbHZhbGlkdW50aWwgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0X2J5cGFzc3JscyB8IGYgICAgICAgIHwgdCAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgfCAgICAgICAgICAgLTEgfCAgICAgICAgICAgICB8 IAorU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCBy b2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJv bGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0g J3JlZ3Jlc3NfdGVzdF9ieXBhc3NybHMnOworICAgICAgICByb2xuYW1lICAgICAgICAgfCByb2xz dXBlciB8IHJvbGluaGVyaXQgfCByb2xjcmVhdGVyb2xlIHwgcm9sY3JlYXRlZGIgfCByb2xjYW5s b2dpbiB8IHJvbHJlcGxpY2F0aW9uIHwgcm9sYnlwYXNzcmxzIHwgcm9sY29ubmxpbWl0IHwgcm9s dmFsaWR1bnRpbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc190ZXN0X2J5cGFzc3JscyB8IGYgICAgICAgIHwgdCAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgfCAgICAgICAgICAgLTEgfCAKICgxIHJvdykKIAogQUxURVIgUk9MRSByZWdyZXNz X3Rlc3RfYnlwYXNzcmxzIFdJVEggQllQQVNTUkxTOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVy LCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJv bHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJv bHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3Rf YnlwYXNzcmxzJzsKLSAgICAgICAgcm9sbmFtZSAgICAgICAgIHwgcm9sc3VwZXIgfCByb2xpbmhl cml0IHwgcm9sY3JlYXRlcm9sZSB8IHJvbGNyZWF0ZWRiIHwgcm9sY2FubG9naW4gfCByb2xyZXBs aWNhdGlvbiB8IHJvbGJ5cGFzc3JscyB8IHJvbGNvbm5saW1pdCB8IHJvbHBhc3N3b3JkIHwgcm9s dmFsaWR1bnRpbCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RfYnlwYXNzcmxzIHwgZiAgICAgICAgfCB0ICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAg ICAgICAgICB8IHQgICAgICAgICAgICB8ICAgICAgICAgICAtMSB8ICAgICAgICAgICAgIHwgCitT RUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNy ZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29u bmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVn cmVzc190ZXN0X2J5cGFzc3Jscyc7CisgICAgICAgIHJvbG5hbWUgICAgICAgICB8IHJvbHN1cGVy IHwgcm9saW5oZXJpdCB8IHJvbGNyZWF0ZXJvbGUgfCByb2xjcmVhdGVkYiB8IHJvbGNhbmxvZ2lu IHwgcm9scmVwbGljYXRpb24gfCByb2xieXBhc3NybHMgfCByb2xjb25ubGltaXQgfCByb2x2YWxp ZHVudGlsIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyByZWdy ZXNzX3Rlc3RfYnlwYXNzcmxzIHwgZiAgICAgICAgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgICAgIHwgZiAgICAgICAgICAgfCBmICAgICAgICAgICAgICB8IHQgICAgICAg ICAgICB8ICAgICAgICAgICAtMSB8IAogKDEgcm93KQogCiAtLSBjbGVhbiB1cCByb2xlcwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCBmMjkzNzVjMmE5MC4uNTZiYzU4MWFiMzUg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xNzE2LDExICsxNzE2LDEyIEBA IHBnX3NoYWRvd3wgU0VMRUNUIHBnX2F1dGhpZC5yb2xuYW1lIEFTIHVzZW5hbWUsCiAgICAgcGdf YXV0aGlkLnJvbHN1cGVyIEFTIHVzZXN1cGVyLAogICAgIHBnX2F1dGhpZC5yb2xyZXBsaWNhdGlv biBBUyB1c2VyZXBsLAogICAgIHBnX2F1dGhpZC5yb2xieXBhc3NybHMgQVMgdXNlYnlwYXNzcmxz LAotICAgIHBnX2F1dGhpZC5yb2xwYXNzd29yZCBBUyBwYXNzd2QsCisgICAgcC5wYXNzd29yZCBB UyBwYXNzd2QsCiAgICAgcGdfYXV0aGlkLnJvbHZhbGlkdW50aWwgQVMgdmFsdW50aWwsCiAgICAg cy5zZXRjb25maWcgQVMgdXNlY29uZmlnCi0gICBGUk9NIChwZ19hdXRoaWQKKyAgIEZST00gKChw Z19hdXRoaWQKICAgICAgTEVGVCBKT0lOIHBnX2RiX3JvbGVfc2V0dGluZyBzIE9OICgoKHBnX2F1 dGhpZC5vaWQgPSBzLnNldHJvbGUpIEFORCAocy5zZXRkYXRhYmFzZSA9ICgwKTo6b2lkKSkpKQor ICAgICBMRUZUIEpPSU4gcGdfYXV0aF9wYXNzd29yZCBwIE9OICgocC5yb2xlaWQgPSBwZ19hdXRo aWQub2lkKSkpCiAgIFdIRVJFIHBnX2F1dGhpZC5yb2xjYW5sb2dpbjsKIHBnX3NobWVtX2FsbG9j YXRpb25zfCBTRUxFQ1QgcGdfZ2V0X3NobWVtX2FsbG9jYXRpb25zLm5hbWUsCiAgICAgcGdfZ2V0 X3NobWVtX2FsbG9jYXRpb25zLm9mZiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvdGFibGVzcGFjZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RhYmxlc3Bh Y2Uub3V0CmluZGV4IGM1MmNmMWNmY2Y5Li4yY2EyY2QxODFmMSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC90YWJsZXNwYWNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3RhYmxlc3BhY2Uub3V0CkBAIC01MywxMyArNTMsMTMgQEAgRVJST1I6ICBjYW5u b3QgbW92ZSBzeXN0ZW0gcmVsYXRpb24gInBnX2F1dGhpZF9yb2xuYW1lX2luZGV4IgogUkVJTkRF WCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBUQUJMRSBDT05DVVJSRU5UTFkgcGdfYXV0 aGlkOwogRVJST1I6ICBjYW5ub3QgcmVpbmRleCBzeXN0ZW0gY2F0YWxvZ3MgY29uY3VycmVudGx5 CiAtLSB0b2FzdCByZWxhdGlvbnMsIGZhaWwKLVJFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190 YmxzcGFjZSkgSU5ERVggcGdfdG9hc3QucGdfdG9hc3RfMTI2MF9pbmRleDsKLUVSUk9SOiAgY2Fu bm90IG1vdmUgc3lzdGVtIHJlbGF0aW9uICJwZ190b2FzdF8xMjYwX2luZGV4IgotUkVJTkRFWCAo VEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBJTkRFWCBDT05DVVJSRU5UTFkgcGdfdG9hc3Qu cGdfdG9hc3RfMTI2MF9pbmRleDsKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFj ZSkgSU5ERVggcGdfdG9hc3QucGdfdG9hc3RfMTI2Ml9pbmRleDsKK0VSUk9SOiAgY2Fubm90IG1v dmUgc3lzdGVtIHJlbGF0aW9uICJwZ190b2FzdF8xMjYyX2luZGV4IgorUkVJTkRFWCAoVEFCTEVT UEFDRSByZWdyZXNzX3RibHNwYWNlKSBJTkRFWCBDT05DVVJSRU5UTFkgcGdfdG9hc3QucGdfdG9h c3RfMTI2Ml9pbmRleDsKIEVSUk9SOiAgY2Fubm90IHJlaW5kZXggc3lzdGVtIGNhdGFsb2dzIGNv bmN1cnJlbnRseQotUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBUQUJMRSBw Z190b2FzdC5wZ190b2FzdF8xMjYwOwotRVJST1I6ICBjYW5ub3QgbW92ZSBzeXN0ZW0gcmVsYXRp b24gInBnX3RvYXN0XzEyNjBfaW5kZXgiCi1SRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJs c3BhY2UpIFRBQkxFIENPTkNVUlJFTlRMWSBwZ190b2FzdC5wZ190b2FzdF8xMjYwOworUkVJTkRF WCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBUQUJMRSBwZ190b2FzdC5wZ190b2FzdF8x MjYyOworRVJST1I6ICBjYW5ub3QgbW92ZSBzeXN0ZW0gcmVsYXRpb24gInBnX3RvYXN0XzEyNjJf aW5kZXgiCitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxFIENPTkNV UlJFTlRMWSBwZ190b2FzdC5wZ190b2FzdF8xMjYyOwogRVJST1I6ICBjYW5ub3QgcmVpbmRleCBz eXN0ZW0gY2F0YWxvZ3MgY29uY3VycmVudGx5CiAtLSBzeXN0ZW0gY2F0YWxvZywgZmFpbAogUkVJ TkRFWCAoVEFCTEVTUEFDRSBwZ19nbG9iYWwpIFRBQkxFIHBnX2F1dGhpZDsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9pbmRleC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9jcmVhdGVfaW5kZXguc3FsCmluZGV4IGQ4ZmRlZDNkOTMwLi44ZDY0OWYyMzU1ZiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2luZGV4LnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfaW5kZXguc3FsCkBAIC0xMDY4LDkgKzEwNjgsOSBAQCBS RUlOREVYIFRBQkxFIENPTkNVUlJFTlRMWSBjb25jdXJfcmVpbmRleF90YWI7CiBDT01NSVQ7CiBS RUlOREVYIFRBQkxFIENPTkNVUlJFTlRMWSBwZ19jbGFzczsgLS0gbm8gY2F0YWxvZyByZWxhdGlv bgogUkVJTkRFWCBJTkRFWCBDT05DVVJSRU5UTFkgcGdfY2xhc3Nfb2lkX2luZGV4OyAtLSBubyBj YXRhbG9nIGluZGV4Ci0tLSBUaGVzZSBhcmUgdGhlIHRvYXN0IHRhYmxlIGFuZCBpbmRleCBvZiBw Z19hdXRoaWQuCi1SRUlOREVYIFRBQkxFIENPTkNVUlJFTlRMWSBwZ190b2FzdC5wZ190b2FzdF8x MjYwOyAtLSBubyBjYXRhbG9nIHRvYXN0IHRhYmxlCi1SRUlOREVYIElOREVYIENPTkNVUlJFTlRM WSBwZ190b2FzdC5wZ190b2FzdF8xMjYwX2luZGV4OyAtLSBubyBjYXRhbG9nIHRvYXN0IGluZGV4 CistLSBUaGVzZSBhcmUgdGhlIHRvYXN0IHRhYmxlIGFuZCBpbmRleCBvZiBwZ19kYXRhYmFzZS4K K1JFSU5ERVggVEFCTEUgQ09OQ1VSUkVOVExZIHBnX3RvYXN0LnBnX3RvYXN0XzEyNjI7IC0tIG5v IGNhdGFsb2cgdG9hc3QgdGFibGUKK1JFSU5ERVggSU5ERVggQ09OQ1VSUkVOVExZIHBnX3RvYXN0 LnBnX3RvYXN0XzEyNjJfaW5kZXg7IC0tIG5vIGNhdGFsb2cgdG9hc3QgaW5kZXgKIFJFSU5ERVgg U1lTVEVNIENPTkNVUlJFTlRMWSBwb3N0Z3JlczsgLS0gbm90IGFsbG93ZWQgZm9yIFNZU1RFTQog LS0gV2FybnMgYWJvdXQgY2F0YWxvZyByZWxhdGlvbnMKIFJFSU5ERVggU0NIRU1BIENPTkNVUlJF TlRMWSBwZ19jYXRhbG9nOwpAQCAtMTI0Myw4ICsxMjQzLDggQEAgUkVJTkRFWCBTQ0hFTUEgc2No ZW1hX3RvX3JlaW5kZXg7CiBSRVNFVCBST0xFOwogR1JBTlQgVVNBR0UgT04gU0NIRU1BIHBnX3Rv YXN0IFRPIHJlZ3Jlc3NfcmVpbmRleHVzZXI7CiBTRVQgU0VTU0lPTiBST0xFIHJlZ3Jlc3NfcmVp bmRleHVzZXI7Ci1SRUlOREVYIFRBQkxFIHBnX3RvYXN0LnBnX3RvYXN0XzEyNjA7Ci1SRUlOREVY IElOREVYIHBnX3RvYXN0LnBnX3RvYXN0XzEyNjBfaW5kZXg7CitSRUlOREVYIFRBQkxFIHBnX3Rv YXN0LnBnX3RvYXN0XzEyNjI7CitSRUlOREVYIElOREVYIHBnX3RvYXN0LnBnX3RvYXN0XzEyNjJf aW5kZXg7CiAKIC0tIENsZWFuIHVwCiBSRVNFVCBST0xFOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcGFzc3dvcmQuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFzc3dvcmQu c3FsCmluZGV4IDk4ZjQ5OTE2ZTVkLi5iYjBjODE1MTIxZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcGFzc3dvcmQuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Bhc3N3 b3JkLnNxbApAQCAtMjMsMTggKzIzLDIyIEBAIENSRUFURSBST0xFIHJlZ3Jlc3NfcGFzc3dkNCBQ QVNTV09SRCBOVUxMOwogLS0KIC0tIFNpbmNlIHRoZSBzYWx0IGlzIHJhbmRvbSwgdGhlIGV4YWN0 IHZhbHVlIHN0b3JlZCB3aWxsIGJlIGRpZmZlcmVudCBvbiBldmVyeSB0ZXN0CiAtLSBydW4uIFVz ZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBtYXNrIHRoZSBjaGFuZ2luZyBwYXJ0cy4KLVNFTEVD VCByb2xuYW1lLCByZWdleHBfcmVwbGFjZShyb2xwYXNzd29yZCwgJyhTQ1JBTS1TSEEtMjU2KVwk KFxkKyk6KFthLXpBLVowLTkrLz1dKylcJChbYS16QS1aMC05Kz0vXSspOihbYS16QS1aMC05Ky89 XSspJywgJ1wxJFwyOjxzYWx0PiQ8c3RvcmVka2V5Pjo8c2VydmVya2V5PicpIGFzIHJvbHBhc3N3 b3JkX21hc2tlZAorU0VMRUNUIHJvbG5hbWUsIHJlZ2V4cF9yZXBsYWNlKHBhc3N3b3JkLCAnKFND UkFNLVNIQS0yNTYpXCQoXGQrKTooW2EtekEtWjAtOSsvPV0rKVwkKFthLXpBLVowLTkrPS9dKyk6 KFthLXpBLVowLTkrLz1dKyknLCAnXDEkXDI6PHNhbHQ+JDxzdG9yZWRrZXk+OjxzZXJ2ZXJrZXk+ JykgYXMgcm9scGFzc3dvcmRfbWFza2VkCiAgICAgRlJPTSBwZ19hdXRoaWQKKyAgICBMRUZUIEpP SU4gcGdfYXV0aF9wYXNzd29yZCBwIAorICAgIE9OIHBnX2F1dGhpZC5vaWQgPSBwLnJvbGVpZAog ICAgIFdIRVJFIHJvbG5hbWUgTElLRSAncmVncmVzc19wYXNzd2QlJwotICAgIE9SREVSIEJZIHJv bG5hbWUsIHJvbHBhc3N3b3JkOworICAgIE9SREVSIEJZIHJvbG5hbWUsIHBhc3N3b3JkOwogCiAt LSBSZW5hbWUgYSByb2xlCiBBTFRFUiBST0xFIHJlZ3Jlc3NfcGFzc3dkMiBSRU5BTUUgVE8gcmVn cmVzc19wYXNzd2QyX25ldzsKIC0tIG1kNSBlbnRyeSBzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQK LVNFTEVDVCByb2xuYW1lLCByb2xwYXNzd29yZAorU0VMRUNUIHJvbG5hbWUsIHBhc3N3b3JkCiAg ICAgRlJPTSBwZ19hdXRoaWQKKyAgICBMRUZUIEpPSU4gcGdfYXV0aF9wYXNzd29yZCBwIAorICAg IE9OIHBnX2F1dGhpZC5vaWQgPSBwLnJvbGVpZAogICAgIFdIRVJFIHJvbG5hbWUgTElLRSAncmVn cmVzc19wYXNzd2QyX25ldycKLSAgICBPUkRFUiBCWSByb2xuYW1lLCByb2xwYXNzd29yZDsKKyAg ICBPUkRFUiBCWSByb2xuYW1lLCBwYXNzd29yZDsKIEFMVEVSIFJPTEUgcmVncmVzc19wYXNzd2Qy X25ldyBSRU5BTUUgVE8gcmVncmVzc19wYXNzd2QyOwogCiAtLSBDaGFuZ2UgcGFzc3dvcmRzIHdp dGggQUxURVIgVVNFUi4gV2l0aCBwbGFpbnRleHQgb3IgYWxyZWFkeS1lbmNyeXB0ZWQKQEAgLTYz LDE2ICs2NywyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3Bhc3N3ZDcgUEFTU1dPUkQgJ21kNTAx MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OXp6JzsKIC0tIGludmFsaWQgbGVuZ3RoCiBDUkVB VEUgUk9MRSByZWdyZXNzX3Bhc3N3ZDggUEFTU1dPUkQgJ21kNTAxMjM0NTY3ODkwMTIzNDU2Nzg5 MDEyMzQ1Njc4OTAxenonOwogCi1TRUxFQ1Qgcm9sbmFtZSwgcmVnZXhwX3JlcGxhY2Uocm9scGFz c3dvcmQsICcoU0NSQU0tU0hBLTI1NilcJChcZCspOihbYS16QS1aMC05Ky89XSspXCQoW2EtekEt WjAtOSs9L10rKTooW2EtekEtWjAtOSsvPV0rKScsICdcMSRcMjo8c2FsdD4kPHN0b3JlZGtleT46 PHNlcnZlcmtleT4nKSBhcyByb2xwYXNzd29yZF9tYXNrZWQKK1NFTEVDVCByb2xuYW1lLCByZWdl eHBfcmVwbGFjZShwYXNzd29yZCwgJyhTQ1JBTS1TSEEtMjU2KVwkKFxkKyk6KFthLXpBLVowLTkr Lz1dKylcJChbYS16QS1aMC05Kz0vXSspOihbYS16QS1aMC05Ky89XSspJywgJ1wxJFwyOjxzYWx0 PiQ8c3RvcmVka2V5Pjo8c2VydmVya2V5PicpIGFzIHJvbHBhc3N3b3JkX21hc2tlZAogICAgIEZS T00gcGdfYXV0aGlkCisgICAgTEVGVCBKT0lOIHBnX2F1dGhfcGFzc3dvcmQgcCAKKyAgICBPTiBw Z19hdXRoaWQub2lkID0gcC5yb2xlaWQKICAgICBXSEVSRSByb2xuYW1lIExJS0UgJ3JlZ3Jlc3Nf cGFzc3dkJScKLSAgICBPUkRFUiBCWSByb2xuYW1lLCByb2xwYXNzd29yZDsKKyAgICBPUkRFUiBC WSByb2xuYW1lLCBwYXNzd29yZDsKIAogLS0gQW4gZW1wdHkgcGFzc3dvcmQgaXMgbm90IGFsbG93 ZWQsIGluIGFueSBmb3JtCiBDUkVBVEUgUk9MRSByZWdyZXNzX3Bhc3N3ZF9lbXB0eSBQQVNTV09S RCAnJzsKIEFMVEVSIFJPTEUgcmVncmVzc19wYXNzd2RfZW1wdHkgUEFTU1dPUkQgJ21kNTg1OTM5 YTVjZTg0NWYxYTFiNjIwNzQyZTNjNjU5ZTBhJzsKIEFMVEVSIFJPTEUgcmVncmVzc19wYXNzd2Rf ZW1wdHkgUEFTU1dPUkQgJ1NDUkFNLVNIQS0yNTYkNDA5NjpocEZ5SFRVc1NXY1I3TzlQJExnWkZJ dDZPcWRvMjdaRktiWjJuVit2dG5ZTTk5NXBEaDljYTZXU2kxMjA9OnFWVjVOZWx1TmZVUGt3bTdW cWF0MjVSalNQTGtHZW9aQlFzNndWdit1bTQ9JzsKLVNFTEVDVCByb2xwYXNzd29yZCBGUk9NIHBn X2F1dGhpZCBXSEVSRSByb2xuYW1lPSdyZWdyZXNzX3Bhc3N3ZF9lbXB0eSc7CitTRUxFQ1QgcGFz c3dvcmQgRlJPTSBwZ19hdXRoaWQKK0xFRlQgSk9JTiBwZ19hdXRoX3Bhc3N3b3JkIHAgCitPTiBw Z19hdXRoaWQub2lkID0gcC5yb2xlaWQgV0hFUkUgcm9sbmFtZT0ncmVncmVzc19wYXNzd2RfZW1w dHknOwogCiAtLSBUZXN0IHdpdGggaW52YWxpZCBzdG9yZWQgYW5kIHNlcnZlciBrZXlzLgogLS0K QEAgLTg0LDggKzkyLDEwIEBAIENSRUFURSBST0xFIHJlZ3Jlc3NfcGFzc3dkX3NoYV9sZW4yIFBB U1NXT1JEICdTQ1JBTS1TSEEtMjU2JDQwOTY6QTZ4SEtvSC80OTRFOTQxCiAKIC0tIENoZWNrIHRo YXQgdGhlIGludmFsaWQgc2VjcmV0cyB3ZXJlIHJlLWhhc2hlZC4gQSByZS1oYXNoZWQgc2VjcmV0 CiAtLSBzaG91bGQgbm90IGNvbnRhaW4gdGhlIG9yaWdpbmFsIHNhbHQuCi1TRUxFQ1Qgcm9sbmFt ZSwgcm9scGFzc3dvcmQgbm90IGxpa2UgJyVBNnhIS29ILzQ5NEU5NDFkb2FQT1lnPT0lJyBhcyBp c19yb2xwYXNzd29yZF9yZWhhc2hlZAorU0VMRUNUIHJvbG5hbWUsIHBhc3N3b3JkIG5vdCBsaWtl ICclQTZ4SEtvSC80OTRFOTQxZG9hUE9ZZz09JScgYXMgaXNfcm9scGFzc3dvcmRfcmVoYXNoZWQK ICAgICBGUk9NIHBnX2F1dGhpZAorICAgIExFRlQgSk9JTiBwZ19hdXRoX3Bhc3N3b3JkIHAKKyAg ICBPTiBwZ19hdXRoaWQub2lkID0gcC5yb2xlaWQKICAgICBXSEVSRSByb2xuYW1lIExJS0UgJ3Jl Z3Jlc3NfcGFzc3dkX3NoYV9sZW4lJwogICAgIE9SREVSIEJZIHJvbG5hbWU7CiAKQEAgLTEwMyw3 ICsxMTMsOSBAQCBEUk9QIFJPTEUgcmVncmVzc19wYXNzd2Rfc2hhX2xlbjE7CiBEUk9QIFJPTEUg cmVncmVzc19wYXNzd2Rfc2hhX2xlbjI7CiAKIC0tIGFsbCBlbnRyaWVzIHNob3VsZCBoYXZlIGJl ZW4gcmVtb3ZlZAotU0VMRUNUIHJvbG5hbWUsIHJvbHBhc3N3b3JkCitTRUxFQ1Qgcm9sbmFtZSwg cGFzc3dvcmQKICAgICBGUk9NIHBnX2F1dGhpZAorICAgIExFRlQgSk9JTiBwZ19hdXRoX3Bhc3N3 b3JkIHAgCisgICAgT04gcGdfYXV0aGlkLm9pZCA9IHAucm9sZWlkCiAgICAgV0hFUkUgcm9sbmFt ZSBMSUtFICdyZWdyZXNzX3Bhc3N3ZCUnCi0gICAgT1JERVIgQlkgcm9sbmFtZSwgcm9scGFzc3dv cmQ7CisgICAgT1JERVIgQlkgcm9sbmFtZSwgcGFzc3dvcmQ7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9yb2xlYXR0cmlidXRlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9y b2xlYXR0cmlidXRlcy5zcWwKaW5kZXggYzk2MWIyZDczMDMuLjA5NTA1YzZhM2JlIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yb2xlYXR0cmlidXRlcy5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcm9sZWF0dHJpYnV0ZXMuc3FsCkBAIC0xLDgzICsxLDgzIEBACiAtLSBk ZWZhdWx0IGZvciBzdXBlcnVzZXIgaXMgZmFsc2UKIENSRUFURSBST0xFIHJlZ3Jlc3NfdGVzdF9k ZWZfc3VwZXJ1c2VyOwogCi1TRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJv bGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJv bGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2xwYXNzd29yZCwgcm9sdmFsaWR1bnRpbCBGUk9N IHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9kZWZfc3VwZXJ1c2VyJzsK K1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9s Y3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xj b25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdy ZWdyZXNzX3Rlc3RfZGVmX3N1cGVydXNlcic7CiBDUkVBVEUgUk9MRSByZWdyZXNzX3Rlc3Rfc3Vw ZXJ1c2VyIFdJVEggU1VQRVJVU0VSOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhl cml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0 aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZhbGlkdW50 aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3Rfc3VwZXJ1c2Vy JzsKK1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwg cm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCBy b2xjb25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9 ICdyZWdyZXNzX3Rlc3Rfc3VwZXJ1c2VyJzsKIEFMVEVSIFJPTEUgcmVncmVzc190ZXN0X3N1cGVy dXNlciBXSVRIIE5PU1VQRVJVU0VSOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhl cml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0 aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZhbGlkdW50 aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3Rfc3VwZXJ1c2Vy JzsKK1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwg cm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCBy b2xjb25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9 ICdyZWdyZXNzX3Rlc3Rfc3VwZXJ1c2VyJzsKIEFMVEVSIFJPTEUgcmVncmVzc190ZXN0X3N1cGVy dXNlciBXSVRIIFNVUEVSVVNFUjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJp dCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlv biwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGls IEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3N1cGVydXNlcic7 CitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJv bGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9s Y29ubmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAn cmVncmVzc190ZXN0X3N1cGVydXNlcic7CiAKIC0tIGRlZmF1bHQgZm9yIGluaGVyaXQgaXMgdHJ1 ZQogQ1JFQVRFIFJPTEUgcmVncmVzc190ZXN0X2RlZl9pbmhlcml0OwotU0VMRUNUIHJvbG5hbWUs IHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2Fu bG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFz c3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdy ZXNzX3Rlc3RfZGVmX2luaGVyaXQnOworU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhl cml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0 aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1 dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9kZWZfaW5oZXJpdCc7CiBDUkVBVEUg Uk9MRSByZWdyZXNzX3Rlc3RfaW5oZXJpdCBXSVRIIE5PSU5IRVJJVDsKLVNFTEVDVCByb2xuYW1l LCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNh bmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBh c3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVn cmVzc190ZXN0X2luaGVyaXQnOworU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0 LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9u LCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhp ZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9pbmhlcml0JzsKIEFMVEVSIFJPTEUgcmVn cmVzc190ZXN0X2luaGVyaXQgV0lUSCBJTkhFUklUOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVy LCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJv bHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJv bHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3Rf aW5oZXJpdCc7CitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0 ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFz c3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJv bG5hbWUgPSAncmVncmVzc190ZXN0X2luaGVyaXQnOwogQUxURVIgUk9MRSByZWdyZXNzX3Rlc3Rf aW5oZXJpdCBXSVRIIE5PSU5IRVJJVDsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5o ZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNh dGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVu dGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2luaGVyaXQn OworU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCBy b2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJv bGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0g J3JlZ3Jlc3NfdGVzdF9pbmhlcml0JzsKIAogLS0gZGVmYXVsdCBmb3IgY3JlYXRlIHJvbGUgaXMg ZmFsc2UKIENSRUFURSBST0xFIHJlZ3Jlc3NfdGVzdF9kZWZfY3JlYXRlcm9sZTsKLVNFTEVDVCBy b2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIs IHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQs IHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUg PSAncmVncmVzc190ZXN0X2RlZl9jcmVhdGVyb2xlJzsKK1NFTEVDVCByb2xuYW1lLCByb2xzdXBl ciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCBy b2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHZhbGlkdW50aWwg RlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfZGVmX2NyZWF0ZXJv bGUnOwogQ1JFQVRFIFJPTEUgcmVncmVzc190ZXN0X2NyZWF0ZXJvbGUgV0lUSCBDUkVBVEVST0xF OwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCBy b2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJv bGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hF UkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfY3JlYXRlcm9sZSc7CitTRUxFQ1Qgcm9sbmFtZSwg cm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5s b2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxp ZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2NyZWF0 ZXJvbGUnOwogQUxURVIgUk9MRSByZWdyZXNzX3Rlc3RfY3JlYXRlcm9sZSBXSVRIIE5PQ1JFQVRF Uk9MRTsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9s ZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxz LCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlk IFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2NyZWF0ZXJvbGUnOworU0VMRUNUIHJvbG5h bWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9s Y2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9s dmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9j cmVhdGVyb2xlJzsKIEFMVEVSIFJPTEUgcmVncmVzc190ZXN0X2NyZWF0ZXJvbGUgV0lUSCBDUkVB VEVST0xFOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVy b2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3Ny bHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRo aWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfY3JlYXRlcm9sZSc7CitTRUxFQ1Qgcm9s bmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCBy b2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCBy b2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0 X2NyZWF0ZXJvbGUnOwogCiAtLSBkZWZhdWx0IGZvciBjcmVhdGUgZGF0YWJhc2UgaXMgZmFsc2UK IENSRUFURSBST0xFIHJlZ3Jlc3NfdGVzdF9kZWZfY3JlYXRlZGI7Ci1TRUxFQ1Qgcm9sbmFtZSwg cm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5s b2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2xwYXNz d29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jl c3NfdGVzdF9kZWZfY3JlYXRlZGInOworU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhl cml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0 aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1 dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9kZWZfY3JlYXRlZGInOwogQ1JFQVRF IFJPTEUgcmVncmVzc190ZXN0X2NyZWF0ZWRiIFdJVEggQ1JFQVRFREI7Ci1TRUxFQ1Qgcm9sbmFt ZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xj YW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2xw YXNzd29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3Jl Z3Jlc3NfdGVzdF9jcmVhdGVkYic7CitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVy aXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRp b24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0 aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2NyZWF0ZWRiJzsKIEFMVEVSIFJPTEUg cmVncmVzc190ZXN0X2NyZWF0ZWRiIFdJVEggTk9DUkVBVEVEQjsKLVNFTEVDVCByb2xuYW1lLCBy b2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxv Z2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3 b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVz c190ZXN0X2NyZWF0ZWRiJzsKK1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwg cm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwg cm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQg V0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfY3JlYXRlZGInOwogQUxURVIgUk9MRSByZWdy ZXNzX3Rlc3RfY3JlYXRlZGIgV0lUSCBDUkVBVEVEQjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBl ciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCBy b2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCBy b2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0 X2NyZWF0ZWRiJzsKK1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3Jl YXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlw YXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUg cm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfY3JlYXRlZGInOwogCiAtLSBkZWZhdWx0IGZvciBjYW4g bG9naW4gaXMgZmFsc2UgZm9yIHJvbGUKIENSRUFURSBST0xFIHJlZ3Jlc3NfdGVzdF9kZWZfcm9s ZV9jYW5sb2dpbjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3Jl YXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlw YXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdf YXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2RlZl9yb2xlX2NhbmxvZ2luJzsK K1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9s Y3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xj b25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdy ZWdyZXNzX3Rlc3RfZGVmX3JvbGVfY2FubG9naW4nOwogQ1JFQVRFIFJPTEUgcmVncmVzc190ZXN0 X3JvbGVfY2FubG9naW4gV0lUSCBMT0dJTjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9s aW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBs aWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxp ZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3JvbGVf Y2FubG9naW4nOworU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVh dGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBh c3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSBy b2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9yb2xlX2NhbmxvZ2luJzsKIEFMVEVSIFJPTEUgcmVncmVz c190ZXN0X3JvbGVfY2FubG9naW4gV0lUSCBOT0xPR0lOOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1 cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4s IHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQs IHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rl c3Rfcm9sZV9jYW5sb2dpbic7CitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQs IHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24s IHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlk IFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3JvbGVfY2FubG9naW4nOwogQUxURVIgUk9M RSByZWdyZXNzX3Rlc3Rfcm9sZV9jYW5sb2dpbiBXSVRIIExPR0lOOwotU0VMRUNUIHJvbG5hbWUs IHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2Fu bG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFz c3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdy ZXNzX3Rlc3Rfcm9sZV9jYW5sb2dpbic7CitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGlu aGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGlj YXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00gcGdf YXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3JvbGVfY2FubG9naW4nOwogCiAt LSBkZWZhdWx0IGZvciBjYW4gbG9naW4gaXMgdHJ1ZSBmb3IgdXNlcgogQ1JFQVRFIFVTRVIgcmVn cmVzc190ZXN0X2RlZl91c2VyX2NhbmxvZ2luOwotU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCBy b2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJl cGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFzc3dvcmQsIHJvbHZh bGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfZGVm X3VzZXJfY2FubG9naW4nOworU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCBy b2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCBy b2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBX SEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9kZWZfdXNlcl9jYW5sb2dpbic7CiBDUkVBVEUg VVNFUiByZWdyZXNzX3Rlc3RfdXNlcl9jYW5sb2dpbiBXSVRIIE5PTE9HSU47Ci1TRUxFQ1Qgcm9s bmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCBy b2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCBy b2xwYXNzd29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0g J3JlZ3Jlc3NfdGVzdF91c2VyX2NhbmxvZ2luJzsKK1NFTEVDVCByb2xuYW1lLCByb2xzdXBlciwg cm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xy ZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHZhbGlkdW50aWwgRlJP TSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfdXNlcl9jYW5sb2dpbic7 CiBBTFRFUiBVU0VSIHJlZ3Jlc3NfdGVzdF91c2VyX2NhbmxvZ2luIFdJVEggTE9HSU47Ci1TRUxF Q1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0 ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxp bWl0LCByb2xwYXNzd29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xu YW1lID0gJ3JlZ3Jlc3NfdGVzdF91c2VyX2NhbmxvZ2luJzsKK1NFTEVDVCByb2xuYW1lLCByb2xz dXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2lu LCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHZhbGlkdW50 aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3RfdXNlcl9jYW5s b2dpbic7CiBBTFRFUiBVU0VSIHJlZ3Jlc3NfdGVzdF91c2VyX2NhbmxvZ2luIFdJVEggTk9MT0dJ TjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwg cm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCBy b2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdI RVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3VzZXJfY2FubG9naW4nOworU0VMRUNUIHJvbG5h bWUsIHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9s Y2FubG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9s dmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF91 c2VyX2NhbmxvZ2luJzsKIAogLS0gZGVmYXVsdCBmb3IgcmVwbGljYXRpb24gaXMgZmFsc2UKIENS RUFURSBST0xFIHJlZ3Jlc3NfdGVzdF9kZWZfcmVwbGljYXRpb247Ci1TRUxFQ1Qgcm9sbmFtZSwg cm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5s b2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2xwYXNz d29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jl c3NfdGVzdF9kZWZfcmVwbGljYXRpb24nOworU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xp bmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxp Y2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBn X2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9kZWZfcmVwbGljYXRpb24nOwog Q1JFQVRFIFJPTEUgcmVncmVzc190ZXN0X3JlcGxpY2F0aW9uIFdJVEggUkVQTElDQVRJT047Ci1T RUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNy ZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29u bmxpbWl0LCByb2xwYXNzd29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSBy b2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9yZXBsaWNhdGlvbic7CitTRUxFQ1Qgcm9sbmFtZSwgcm9s c3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dp biwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxpZHVu dGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3JlcGxpY2F0 aW9uJzsKIEFMVEVSIFJPTEUgcmVncmVzc190ZXN0X3JlcGxpY2F0aW9uIFdJVEggTk9SRVBMSUNB VElPTjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9s ZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxz LCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlk IFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3JlcGxpY2F0aW9uJzsKK1NFTEVDVCByb2xu YW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJv bGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQsIHJv bHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNzX3Rlc3Rf cmVwbGljYXRpb24nOwogQUxURVIgUk9MRSByZWdyZXNzX3Rlc3RfcmVwbGljYXRpb24gV0lUSCBS RVBMSUNBVElPTjsKLVNFTEVDVCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3Jl YXRlcm9sZSwgcm9sY3JlYXRlZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlw YXNzcmxzLCByb2xjb25ubGltaXQsIHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdf YXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X3JlcGxpY2F0aW9uJzsKK1NFTEVD VCByb2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRl ZGIsIHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGlt aXQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdyZXNz X3Rlc3RfcmVwbGljYXRpb24nOwogCiAtLSBkZWZhdWx0IGZvciBieXBhc3NybHMgaXMgZmFsc2UK IENSRUFURSBST0xFIHJlZ3Jlc3NfdGVzdF9kZWZfYnlwYXNzcmxzOwotU0VMRUNUIHJvbG5hbWUs IHJvbHN1cGVyLCByb2xpbmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2Fu bG9naW4sIHJvbHJlcGxpY2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9scGFz c3dvcmQsIHJvbHZhbGlkdW50aWwgRlJPTSBwZ19hdXRoaWQgV0hFUkUgcm9sbmFtZSA9ICdyZWdy ZXNzX3Rlc3RfZGVmX2J5cGFzc3Jscyc7CitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJvbGlu aGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVwbGlj YXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00gcGdf YXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2RlZl9ieXBhc3NybHMnOwogQ1JF QVRFIFJPTEUgcmVncmVzc190ZXN0X2J5cGFzc3JscyBXSVRIIEJZUEFTU1JMUzsKLVNFTEVDVCBy b2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIs IHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQs IHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUg PSAncmVncmVzc190ZXN0X2J5cGFzc3Jscyc7CitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJv bGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVw bGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00g cGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2J5cGFzc3Jscyc7CiBBTFRF UiBST0xFIHJlZ3Jlc3NfdGVzdF9ieXBhc3NybHMgV0lUSCBOT0JZUEFTU1JMUzsKLVNFTEVDVCBy b2xuYW1lLCByb2xzdXBlciwgcm9saW5oZXJpdCwgcm9sY3JlYXRlcm9sZSwgcm9sY3JlYXRlZGIs IHJvbGNhbmxvZ2luLCByb2xyZXBsaWNhdGlvbiwgcm9sYnlwYXNzcmxzLCByb2xjb25ubGltaXQs IHJvbHBhc3N3b3JkLCByb2x2YWxpZHVudGlsIEZST00gcGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUg PSAncmVncmVzc190ZXN0X2J5cGFzc3Jscyc7CitTRUxFQ1Qgcm9sbmFtZSwgcm9sc3VwZXIsIHJv bGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCByb2xjYW5sb2dpbiwgcm9scmVw bGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCByb2x2YWxpZHVudGlsIEZST00g cGdfYXV0aGlkIFdIRVJFIHJvbG5hbWUgPSAncmVncmVzc190ZXN0X2J5cGFzc3Jscyc7CiBBTFRF UiBST0xFIHJlZ3Jlc3NfdGVzdF9ieXBhc3NybHMgV0lUSCBCWVBBU1NSTFM7Ci1TRUxFQ1Qgcm9s bmFtZSwgcm9sc3VwZXIsIHJvbGluaGVyaXQsIHJvbGNyZWF0ZXJvbGUsIHJvbGNyZWF0ZWRiLCBy b2xjYW5sb2dpbiwgcm9scmVwbGljYXRpb24sIHJvbGJ5cGFzc3Jscywgcm9sY29ubmxpbWl0LCBy b2xwYXNzd29yZCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBnX2F1dGhpZCBXSEVSRSByb2xuYW1lID0g J3JlZ3Jlc3NfdGVzdF9ieXBhc3NybHMnOworU0VMRUNUIHJvbG5hbWUsIHJvbHN1cGVyLCByb2xp bmhlcml0LCByb2xjcmVhdGVyb2xlLCByb2xjcmVhdGVkYiwgcm9sY2FubG9naW4sIHJvbHJlcGxp Y2F0aW9uLCByb2xieXBhc3NybHMsIHJvbGNvbm5saW1pdCwgcm9sdmFsaWR1bnRpbCBGUk9NIHBn X2F1dGhpZCBXSEVSRSByb2xuYW1lID0gJ3JlZ3Jlc3NfdGVzdF9ieXBhc3NybHMnOwogCiAtLSBj bGVhbiB1cCByb2xlcwogRFJPUCBST0xFIHJlZ3Jlc3NfdGVzdF9kZWZfc3VwZXJ1c2VyOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGFibGVzcGFjZS5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC90YWJsZXNwYWNlLnNxbAppbmRleCAyMWRiNDMzZjJhOC4uZDkyMTM1MTczZmIg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RhYmxlc3BhY2Uuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3RhYmxlc3BhY2Uuc3FsCkBAIC00MiwxMCArNDIsMTAgQEAgUkVJ TkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBUQUJMRSBDT05DVVJSRU5UTFkgcGdf YW07CiBSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxFIHBnX2F1dGhp ZDsKIFJFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgVEFCTEUgQ09OQ1VSUkVO VExZIHBnX2F1dGhpZDsKIC0tIHRvYXN0IHJlbGF0aW9ucywgZmFpbAotUkVJTkRFWCAoVEFCTEVT UEFDRSByZWdyZXNzX3RibHNwYWNlKSBJTkRFWCBwZ190b2FzdC5wZ190b2FzdF8xMjYwX2luZGV4 OwotUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBJTkRFWCBDT05DVVJSRU5U TFkgcGdfdG9hc3QucGdfdG9hc3RfMTI2MF9pbmRleDsKLVJFSU5ERVggKFRBQkxFU1BBQ0UgcmVn cmVzc190YmxzcGFjZSkgVEFCTEUgcGdfdG9hc3QucGdfdG9hc3RfMTI2MDsKLVJFSU5ERVggKFRB QkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgVEFCTEUgQ09OQ1VSUkVOVExZIHBnX3RvYXN0LnBn X3RvYXN0XzEyNjA7CitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIElOREVY IHBnX3RvYXN0LnBnX3RvYXN0XzEyNjJfaW5kZXg7CitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jl c3NfdGJsc3BhY2UpIElOREVYIENPTkNVUlJFTlRMWSBwZ190b2FzdC5wZ190b2FzdF8xMjYyX2lu ZGV4OworUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBUQUJMRSBwZ190b2Fz dC5wZ190b2FzdF8xMjYyOworUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBU QUJMRSBDT05DVVJSRU5UTFkgcGdfdG9hc3QucGdfdG9hc3RfMTI2MjsKIC0tIHN5c3RlbSBjYXRh bG9nLCBmYWlsCiBSRUlOREVYIChUQUJMRVNQQUNFIHBnX2dsb2JhbCkgVEFCTEUgcGdfYXV0aGlk OwogUkVJTkRFWCAoVEFCTEVTUEFDRSBwZ19nbG9iYWwpIFRBQkxFIENPTkNVUlJFTlRMWSBwZ19h dXRoaWQ7Ci0tIAoyLjM1LjEKCg== --000000000000a6d4f605dc27965c Content-Type: application/x-patch; name="v2-0002-multiple-passwords-work-with-scram-and-md5.patch" Content-Disposition: attachment; filename="v2-0002-multiple-passwords-work-with-scram-and-md5.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l1qnst6a2 RnJvbSA0NDZmNDIxNmI1NWRiMGIzYWUxYTkwZTQ2YTllZjE5ODM2MzRlMjQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NodWEgQnJpbmRsZSA8am9zaHVhLmJyaW5kbGVAY3J1bmNo eWRhdGEuY29tPgpEYXRlOiBUdWUsIDEgRmViIDIwMjIgMTQ6MzI6NTUgLTA4MDAKU3ViamVjdDog W1BBVENIIHYyIDIvM10gbXVsdGlwbGUgcGFzc3dvcmRzIHdvcmsgd2l0aCBzY3JhbSBhbmQgbWQ1 CgphbHNvIHJlbmFtaW5nIHJvbGVzLCBkcm9wcGluZyByb2xlcywgc3dpdGNoaW5nIGJldHdlZW4K cGFzc3dvcmRfZW5jcnlwdGlvbgoKU2lnbmVkLW9mZi1ieTogSm9zaHVhIEJyaW5kbGUgPGpvc2h1 YS5icmluZGxlQGNydW5jaHlkYXRhLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy91c2Vy LmMgICAgICAgICAgICB8IDE5OSArKysrKysrKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2Vu ZC9saWJwcS9hdXRoLXNhc2wuYyAgICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvbGlicHEv YXV0aC1zY3JhbS5jICAgICAgICAgfCAxODQgKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9i YWNrZW5kL2xpYnBxL2F1dGguYyAgICAgICAgICAgICAgIHwgIDk0ICsrKysrLS0tLS0tLQogc3Jj L2JhY2tlbmQvbGlicHEvY3J5cHQuYyAgICAgICAgICAgICAgfCAgNTEgKysrKy0tLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgfCAgMTYgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL2NhdGNhY2hlLmMgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC91dGlscy9jYWNo ZS9zeXNjYWNoZS5jICAgICB8ICAgNiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoX3Bh c3N3b3JkLmggfCAgIDkgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3VzZXIuaCAgICAgICAgICAg IHwgICAyICstCiBzcmMvaW5jbHVkZS9saWJwcS9jcnlwdC5oICAgICAgICAgICAgICB8ICAgMiAr LQogc3JjL2luY2x1ZGUvbGlicHEvc2FzbC5oICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9p bmNsdWRlL2xpYnBxL3NjcmFtLmggICAgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmggICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9zeXNj YWNoZS5oICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXNz d29yZC5vdXQgfCAgIDIgKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDM3NiBpbnNlcnRpb25zKCspLCAy MDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdXNlci5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdXNlci5jCmluZGV4IDViNmNlMzdmMWJmLi40MTE3ZTU4 ODQwYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdXNlci5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3VzZXIuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgImFjY2Vz cy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9iaW5hcnlfdXBncmFkZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvY2F0YWxvZy5oIgorCiAjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNj ZXNzLmgiCkBAIC0zMSwxMSArMzIsMTQgQEAKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK ICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3VzZXIu aCIKKyNpbmNsdWRlICJjb21tb24vc2NyYW0tY29tbW9uLmgiCiAjaW5jbHVkZSAibGlicHEvY3J5 cHQuaCIKKyNpbmNsdWRlICJsaWJwcS9zY3JhbS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgog I2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInV0aWxzL2FjbC5oIgogI2luY2x1 ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvY2F0Y2FjaGUuaCIKICNpbmNs dWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAjaW5j bHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCkBAIC00Nyw2ICs1MSw5IEBAIE9pZAkJCWJpbmFyeV91 cGdyYWRlX25leHRfcGdfYXV0aGlkX29pZCA9IEludmFsaWRPaWQ7CiAvKiBHVUMgcGFyYW1ldGVy ICovCiBpbnQJCQlQYXNzd29yZF9lbmNyeXB0aW9uID0gUEFTU1dPUkRfVFlQRV9TQ1JBTV9TSEFf MjU2OwogCisvKiBkZWZhdWx0IHBhc3N3b3JkIG5hbWUgKi8KK2NvbnN0IGNoYXIqIGRlZmF1bHRf cGFzc25hbWUgPSAiX19kZWZfXyI7CisKIC8qIEhvb2sgdG8gY2hlY2sgcGFzc3dvcmRzIGluIENy ZWF0ZVJvbGUoKSBhbmQgQWx0ZXJSb2xlKCkgKi8KIGNoZWNrX3Bhc3N3b3JkX2hvb2tfdHlwZSBj aGVja19wYXNzd29yZF9ob29rID0gTlVMTDsKIApAQCAtNjksNyArNzYsNyBAQCBoYXZlX2NyZWF0 ZXJvbGVfcHJpdmlsZWdlKHZvaWQpCiAgKiBJcyB0aGUgcm9sZSBhYmxlIHRvIGxvZyBpbgogKi8K IGJvb2wKLWlzX3JvbGVfdmFsaWQoY29uc3QgY2hhciAqcm9sZW5hbWUsIGNoYXIgKipsb2dkZXRh aWwpCitpc19yb2xlX3ZhbGlkKGNvbnN0IGNoYXIgKnJvbGVuYW1lLCBjb25zdCBjaGFyICoqbG9n ZGV0YWlsKQogewogCUhlYXBUdXBsZQlyb2xlVHVwOwogCURhdHVtCQlkYXR1bTsKQEAgLTEwMiw2 ICsxMDksNjQgQEAgaXNfcm9sZV92YWxpZChjb25zdCBjaGFyICpyb2xlbmFtZSwgY2hhciAqKmxv Z2RldGFpbCkKIH0KIAogCitzdGF0aWMKK2Jvb2wKK3ZhbGlkYXRlX2FuZF9nZXRfc2FsdChjaGFy ICpyb2xlbmFtZSwgY2hhciAqKnNhbHQsIGNvbnN0IGNoYXIgKipsb2dkZXRhaWwpCit7CisJY2hh cgkgICoqY3VycmVudF9zZWNyZXRzOworCWNoYXIJICAgKnNhbHQxLCAqc2FsdDIgPSBOVUxMOwor CWludAkJCWksIG51bTsKKwlQYXNzd29yZFR5cGUgcGFzc3R5cGU7CisKKwlpZiAoUGFzc3dvcmRf ZW5jcnlwdGlvbiA9PSBQQVNTV09SRF9UWVBFX01ENSkKKwl7CisJCSpzYWx0ID0gcm9sZW5hbWU7 IC8qIG1kNSBhbHdheXMgdXNlcyByb2xlIG5hbWUsIG5vIG5lZWQgdG8gbG9vayB0aHJvdWdoIHRo ZSBwYXNzd29yZHMgKi8KKwkJcmV0dXJuIHRydWU7CisJfQorCWVsc2UgaWYgKFBhc3N3b3JkX2Vu Y3J5cHRpb24gPT0gUEFTU1dPUkRfVFlQRV9QTEFJTlRFWFQpCisJeworCQkqc2FsdCA9IE5VTEw7 IC8qIFBsYWludGV4dCBkb2VzIG5vdCBoYXZlIGEgc2FsdCAqLworCQlyZXR1cm4gdHJ1ZTsKKwl9 CisKKwljdXJyZW50X3NlY3JldHMgPSBnZXRfcm9sZV9wYXNzd29yZHMocm9sZW5hbWUsIGxvZ2Rl dGFpbCwgJm51bSk7CisJaWYgKG51bSA9PSAwKQorCXsKKwkJKnNhbHQgPSBOVUxMOyAvKiBObyBl eGlzdGluZyBwYXNzd29yZHMsIGFsbG93IG9uZSB0byBiZSBnZW5lcmF0ZWQgKi8KKwkJcmV0dXJu IHRydWU7CisJfQorCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgeworCQlwYXNzdHlwZSA9IGdl dF9wYXNzd29yZF90eXBlKGN1cnJlbnRfc2VjcmV0c1tpXSk7CisJCWlmIChwYXNzdHlwZSA9PSBQ QVNTV09SRF9UWVBFX01ENSB8fCBwYXNzdHlwZSA9PSBQQVNTV09SRF9UWVBFX1BMQUlOVEVYVCkK KwkJCWNvbnRpbnVlOyAvKiBtZDUgdXNlcyByb2xlbmFtZSBhcyBzYWx0IHNvIGl0IGlzIGFsd2F5 cyB0aGUgc2FtZSBhbmQgcGxhaW50ZXh0IGhhcyBubyBzYWx0ICovCisJCWVsc2UgaWYgKHBhc3N0 eXBlID09IFBBU1NXT1JEX1RZUEVfU0NSQU1fU0hBXzI1NikgeworCQkJCWludAkJCWl0ZXJhdGlv bnM7CisJCQkJdWludDgJCXN0b3JlZF9rZXlbU0NSQU1fS0VZX0xFTl07CisJCQkJdWludDgJCXNl cnZlcl9rZXlbU0NSQU1fS0VZX0xFTl07CisKKwkJCQlwYXJzZV9zY3JhbV9zZWNyZXQoY3VycmVu dF9zZWNyZXRzW2ldLCAmaXRlcmF0aW9ucywgJnNhbHQxLAorCQkJCQkJCQkJc3RvcmVkX2tleSwg c2VydmVyX2tleSk7CisKKwkJCQlpZiAoc2FsdDIgIT0gTlVMTCkgeworCQkJCQlpZiAoc3RyY21w KHNhbHQxLCBzYWx0MikpIHsKKwkJCQkJCSpsb2dkZXRhaWwgPSBwc3ByaW50ZihfKCJpbmNvbnNp c3RlbnQgc2FsdHMsIGNsZWFyaW5nIHBhc3N3b3JkIikpOworCQkJCQkJKnNhbHQgPSBOVUxMOwor CQkJCQkJcmV0dXJuIGZhbHNlOworCQkJCQl9CisJCQkJfQorCQkJCWVsc2UKKwkJCQkJc2FsdDIg PSBzYWx0MTsKKwkJfQorCisJfQorCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykKKwkJcGZyZWUo Y3VycmVudF9zZWNyZXRzW2ldKTsKKwlwZnJlZShjdXJyZW50X3NlY3JldHMpOworCWlmIChzYWx0 MikKKwkJKnNhbHQgPSBwc3RyZHVwKHNhbHQyKTsKKwlyZXR1cm4gdHJ1ZTsKK30KKwogLyoKICAq IENSRUFURSBST0xFCiAgKi8KQEAgLTExNyw2ICsxODIsNyBAQCBDcmVhdGVSb2xlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQ3JlYXRlUm9sZVN0bXQgKnN0bXQpCiAJTGlzdENlbGwgICAqaXRlbTsKIAlM aXN0Q2VsbCAgICpvcHRpb247CiAJY2hhcgkgICAqcGFzc3dvcmQgPSBOVUxMOwkvKiB1c2VyIHBh c3N3b3JkICovCisJY2hhciAgICAgICAqcGFzc25hbWUgPSBOVUxMOyAgICAvKiBuYW1lIG9mIHRo ZSBwYXNzd29yZCBmb3IgbWFuYWdpbmcgbXVsdGlwbGUgcGFzc3dvcmRzICovCiAJYm9vbAkJaXNz dXBlciA9IGZhbHNlOwkvKiBNYWtlIHRoZSB1c2VyIGEgc3VwZXJ1c2VyPyAqLwogCWJvb2wJCWlu aGVyaXQgPSB0cnVlOyAvKiBBdXRvIGluaGVyaXQgcHJpdmlsZWdlcz8gKi8KIAlib29sCQljcmVh dGVyb2xlID0gZmFsc2U7IC8qIENhbiB0aGlzIHVzZXIgY3JlYXRlIHJvbGVzPyAqLwpAQCAtMTQ0 LDYgKzIxMCw4IEBAIENyZWF0ZVJvbGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVSb2xlU3Rt dCAqc3RtdCkKIAlEZWZFbGVtICAgICpkYWRtaW5tZW1iZXJzID0gTlVMTDsKIAlEZWZFbGVtICAg ICpkdmFsaWRVbnRpbCA9IE5VTEw7CiAJRGVmRWxlbSAgICAqZGJ5cGFzc1JMUyA9IE5VTEw7CisJ RGVmRWxlbSAgICAqZHBhc3NOYW1lID0gTlVMTDsKKwogCiAJLyogVGhlIGRlZmF1bHRzIGNhbiB2 YXJ5IGRlcGVuZGluZyBvbiB0aGUgb3JpZ2luYWwgc3RhdGVtZW50IHR5cGUgKi8KIAlzd2l0Y2gg KHN0bXQtPnN0bXRfdHlwZSkKQEAgLTI0Niw2ICszMTQsMTMgQEAgQ3JlYXRlUm9sZShQYXJzZVN0 YXRlICpwc3RhdGUsIENyZWF0ZVJvbGVTdG10ICpzdG10KQogCQkJCWVycm9yQ29uZmxpY3RpbmdE ZWZFbGVtKGRlZmVsLCBwc3RhdGUpOwogCQkJZGJ5cGFzc1JMUyA9IGRlZmVsOwogCQl9CisJCWVs c2UgaWYgKHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgInBhc3NuYW1lIikgPT0gMCkKKwkJeworCQkJ aWYgKGRwYXNzTmFtZSkKKwkJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWZlbCwgcHN0YXRl KTsKKwkJCWRwYXNzTmFtZSA9IGRlZmVsOworCQl9CisKIAkJZWxzZQogCQkJZWxvZyhFUlJPUiwg Im9wdGlvbiBcIiVzXCIgbm90IHJlY29nbml6ZWQiLAogCQkJCSBkZWZlbC0+ZGVmbmFtZSk7CkBA IC0yODMsNiArMzU4LDggQEAgQ3JlYXRlUm9sZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVJv bGVTdG10ICpzdG10KQogCQl2YWxpZFVudGlsID0gc3RyVmFsKGR2YWxpZFVudGlsLT5hcmcpOwog CWlmIChkYnlwYXNzUkxTKQogCQlieXBhc3NybHMgPSBib29sVmFsKGRieXBhc3NSTFMtPmFyZyk7 CisJaWYgKGRwYXNzTmFtZSkKKwkJcGFzc25hbWUgPSBzdHJWYWwoZHBhc3NOYW1lLT5hcmcpOwog CiAJLyogQ2hlY2sgc29tZSBwZXJtaXNzaW9ucyBmaXJzdCAqLwogCWlmIChpc3N1cGVyKQpAQCAt NDI0LDggKzUwMSw4IEBAIENyZWF0ZVJvbGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVSb2xl U3RtdCAqc3RtdCkKIAogCWlmIChwYXNzd29yZCkKIAl7Ci0JCWNoYXIJICAgKnNoYWRvd19wYXNz OwotCQljaGFyCSAgICpsb2dkZXRhaWw7CisJCWNoYXIJICAgKnNoYWRvd19wYXNzLCAqc2FsdDsK KwkJY29uc3QgY2hhcgkgICAqbG9nZGV0YWlsOwogCQlEYXR1bQkJbmV3X3Bhc3N3b3JkX3JlY29y ZFtOYXR0c19wZ19hdXRoX3Bhc3N3b3JkXTsKIAkJYm9vbAkJbmV3X3Bhc3N3b3JkX3JlY29yZF9u dWxsc1tOYXR0c19wZ19hdXRoX3Bhc3N3b3JkXTsKIAkJUmVsYXRpb24JcGdfYXV0aF9wYXNzd29y ZF9yZWw7CkBAIC00NTMsMTIgKzUzMCwxOCBAQCBDcmVhdGVSb2xlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ3JlYXRlUm9sZVN0bXQgKnN0bXQpCiAJCWVsc2UKIAkJewogCQkJLyogRW5jcnlwdCB0aGUg cGFzc3dvcmQgdG8gdGhlIHJlcXVlc3RlZCBmb3JtYXQuICovCi0JCQlzaGFkb3dfcGFzcyA9IGVu Y3J5cHRfcGFzc3dvcmQoUGFzc3dvcmRfZW5jcnlwdGlvbiwgc3RtdC0+cm9sZSwKKwkJCXZhbGlk YXRlX2FuZF9nZXRfc2FsdChzdG10LT5yb2xlLCAmc2FsdCwgJmxvZ2RldGFpbCk7CisJCQlzaGFk b3dfcGFzcyA9IGVuY3J5cHRfcGFzc3dvcmQoUGFzc3dvcmRfZW5jcnlwdGlvbiwgc2FsdCwKIAkJ CQkJCQkJCQkgICBwYXNzd29yZCk7CiAKIAkJCU1lbVNldChuZXdfcGFzc3dvcmRfcmVjb3JkLCAw LCBzaXplb2YobmV3X3Bhc3N3b3JkX3JlY29yZCkpOwogCQkJTWVtU2V0KG5ld19wYXNzd29yZF9y ZWNvcmRfbnVsbHMsIGZhbHNlLCBzaXplb2YobmV3X3Bhc3N3b3JkX3JlY29yZF9udWxscykpOwot CisJCQlpZiAocGFzc25hbWUgIT0gTlVMTCkKKwkJCQluZXdfcGFzc3dvcmRfcmVjb3JkW0FudW1f cGdfYXV0aF9wYXNzd29yZF9uYW1lIC0gMV0gPSAKKwkJCQkJCQkJRGlyZWN0RnVuY3Rpb25DYWxs MShuYW1laW4sIENTdHJpbmdHZXREYXR1bShwYXNzbmFtZSkpOworCQkJZWxzZQorCQkJCW5ld19w YXNzd29yZF9yZWNvcmRbQW51bV9wZ19hdXRoX3Bhc3N3b3JkX25hbWUgLSAxXSA9IAorCQkJCQkJ CQlEaXJlY3RGdW5jdGlvbkNhbGwxKG5hbWVpbiwgQ1N0cmluZ0dldERhdHVtKGRlZmF1bHRfcGFz c25hbWUpKTsKIAkJCS8qIG9wZW4gcGFzc3dvcmQgdGFibGUgYW5kIGluc2VydCBpdC4gKi8KIAkJ CXBnX2F1dGhfcGFzc3dvcmRfcmVsID0gdGFibGVfb3BlbihBdXRoUGFzc3dvcmRSZWxhdGlvbklk LCBSb3dFeGNsdXNpdmVMb2NrKTsKIAkJCXBnX2F1dGhfcGFzc3dvcmRfZHNjID0gUmVsYXRpb25H ZXREZXNjcihwZ19hdXRoX3Bhc3N3b3JkX3JlbCk7CkBAIC01NjAsNiArNjQzLDcgQEAgQWx0ZXJS b2xlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJSb2xlU3RtdCAqc3RtdCkKIAlMaXN0Q2VsbCAg ICpvcHRpb247CiAJY2hhcgkgICAqcm9sZW5hbWU7CiAJY2hhcgkgICAqcGFzc3dvcmQgPSBOVUxM OwkvKiB1c2VyIHBhc3N3b3JkICovCisJY2hhciAgICAgICAqcGFzc25hbWUgPSBOVUxMOyAgICAv KiBwYXNzd29yZCBuYW1lIGZvciBtYW5hZ2luZyBtdWx0aXBsZSBwYXNzd29yZHMgKi8KIAlpbnQJ CQljb25ubGltaXQgPSAtMTsgLyogbWF4aW11bSBjb25uZWN0aW9ucyBhbGxvd2VkICovCiAJY2hh cgkgICAqdmFsaWRVbnRpbCA9IE5VTEw7CS8qIHRpbWUgdGhlIGxvZ2luIGlzIHZhbGlkIHVudGls ICovCiAJRGF0dW0JCXZhbGlkVW50aWxfZGF0dW07CS8qIHNhbWUsIGFzIHRpbWVzdGFtcHR6IERh dHVtICovCkBAIC01NzUsNiArNjU5LDcgQEAgQWx0ZXJSb2xlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QWx0ZXJSb2xlU3RtdCAqc3RtdCkKIAlEZWZFbGVtICAgICpkcm9sZW1lbWJlcnMgPSBOVUxMOwog CURlZkVsZW0gICAgKmR2YWxpZFVudGlsID0gTlVMTDsKIAlEZWZFbGVtICAgICpkYnlwYXNzUkxT ID0gTlVMTDsKKwlEZWZFbGVtICAgICpkcGFzc05hbWUgPSBOVUxMOwogCU9pZAkJCXJvbGVpZDsK IAogCWNoZWNrX3JvbGVzcGVjX25hbWUoc3RtdC0+cm9sZSwKQEAgLTY1Miw2ICs3MzcsMTIgQEAg QWx0ZXJSb2xlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJSb2xlU3RtdCAqc3RtdCkKIAkJCQll cnJvckNvbmZsaWN0aW5nRGVmRWxlbShkZWZlbCwgcHN0YXRlKTsKIAkJCWRieXBhc3NSTFMgPSBk ZWZlbDsKIAkJfQorCQllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJwYXNzbmFtZSIp ID09IDApCisJCXsKKwkJCWlmIChkcGFzc05hbWUpCisJCQkJZXJyb3JDb25mbGljdGluZ0RlZkVs ZW0oZGVmZWwsIHBzdGF0ZSk7CisJCQlkcGFzc05hbWUgPSBkZWZlbDsKKwkJfQogCQllbHNlCiAJ CQllbG9nKEVSUk9SLCAib3B0aW9uIFwiJXNcIiBub3QgcmVjb2duaXplZCIsCiAJCQkJIGRlZmVs LT5kZWZuYW1lKTsKQEAgLTY2OSw2ICs3NjAsOCBAQCBBbHRlclJvbGUoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlclJvbGVTdG10ICpzdG10KQogCX0KIAlpZiAoZHZhbGlkVW50aWwpCiAJCXZhbGlk VW50aWwgPSBzdHJWYWwoZHZhbGlkVW50aWwtPmFyZyk7CisJaWYgKGRwYXNzTmFtZSkKKwkJcGFz c25hbWUgPSBzdHJWYWwoZHBhc3NOYW1lLT5hcmcpOwogCiAJLyoKIAkgKiBTY2FuIHRoZSBwZ19h dXRoaWQgcmVsYXRpb24gdG8gYmUgY2VydGFpbiB0aGUgdXNlciBleGlzdHMuCkBAIC04MDUsOCAr ODk4LDkgQEAgQWx0ZXJSb2xlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJSb2xlU3RtdCAqc3Rt dCkKIAkvKiBwYXNzd29yZCAqLwogCWlmIChwYXNzd29yZCkKIAl7Ci0JCWNoYXIJICAgKnNoYWRv d19wYXNzOwotCQljb25zdCBjaGFyICpsb2dkZXRhaWwgPSBOVUxMOworCQljaGFyCSpzYWx0ID0g TlVMTDsKKwkJY29uc3QgY2hhciAJKmxvZ2RldGFpbCA9IE5VTEw7CisJCWNoYXIJKnNoYWRvd19w YXNzOwogCiAJCS8qIExpa2UgaW4gQ1JFQVRFIFVTRVIsIGRvbid0IGFsbG93IGFuIGVtcHR5IHBh c3N3b3JkLiAqLwogCQlpZiAocGFzc3dvcmRbMF0gPT0gJ1wwJyB8fApAQCAtODE4LDEzICs5MTIs MjYgQEAgQWx0ZXJSb2xlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJSb2xlU3RtdCAqc3RtdCkK IAkJfQogCQllbHNlCiAJCXsKLQkJCS8qIEVuY3J5cHQgdGhlIHBhc3N3b3JkIHRvIHRoZSByZXF1 ZXN0ZWQgZm9ybWF0LiAqLwotCQkJc2hhZG93X3Bhc3MgPSBlbmNyeXB0X3Bhc3N3b3JkKFBhc3N3 b3JkX2VuY3J5cHRpb24sIHJvbGVuYW1lLAotCQkJCQkJCQkJCSAgIHBhc3N3b3JkKTsKLQkJCW5l d19wYXNzd29yZF9yZWNvcmRbQW51bV9wZ19hdXRoX3Bhc3N3b3JkX3Bhc3N3b3JkIC0gMV0gPQot CQkJCUNTdHJpbmdHZXRUZXh0RGF0dW0oc2hhZG93X3Bhc3MpOworCQkJaWYgKCF2YWxpZGF0ZV9h bmRfZ2V0X3NhbHQocm9sZW5hbWUsICZzYWx0LCAmbG9nZGV0YWlsKSkKKwkJCQluZXdfcGFzc3dv cmRfcmVjb3JkX251bGxzW0FudW1fcGdfYXV0aF9wYXNzd29yZF9wYXNzd29yZCAtIDFdID0gdHJ1 ZTsKKwkJCWVsc2UKKwkJCXsKKwkJCQkvKiBFbmNyeXB0IHRoZSBwYXNzd29yZCB0byB0aGUgcmVx dWVzdGVkIGZvcm1hdC4gKi8KKwkJCQlzaGFkb3dfcGFzcyA9IGVuY3J5cHRfcGFzc3dvcmQoUGFz c3dvcmRfZW5jcnlwdGlvbiwgc2FsdCwKKwkJCQkJCQkJCQkJcGFzc3dvcmQpOworCQkJCW5ld19w YXNzd29yZF9yZWNvcmRbQW51bV9wZ19hdXRoX3Bhc3N3b3JkX3Bhc3N3b3JkIC0gMV0gPQorCQkJ CQlDU3RyaW5nR2V0VGV4dERhdHVtKHNoYWRvd19wYXNzKTsKKworCQkJCW5ld19wYXNzd29yZF9y ZWNvcmRfcmVwbFtBbnVtX3BnX2F1dGhfcGFzc3dvcmRfcGFzc3dvcmQgLSAxXSA9IHRydWU7CisK KwkJCQlpZiAocGFzc25hbWUpCisJCQkJCW5ld19wYXNzd29yZF9yZWNvcmRbQW51bV9wZ19hdXRo X3Bhc3N3b3JkX25hbWUgLSAxXSA9CisJCQkJCQlEaXJlY3RGdW5jdGlvbkNhbGwxKG5hbWVpbiwg Q1N0cmluZ0dldERhdHVtKHBhc3NuYW1lKSk7CisJCQkJZWxzZQorCQkJCQluZXdfcGFzc3dvcmRf cmVjb3JkW0FudW1fcGdfYXV0aF9wYXNzd29yZF9uYW1lIC0gMV0gPQorCQkJCQlEaXJlY3RGdW5j dGlvbkNhbGwxKG5hbWVpbiwgQ1N0cmluZ0dldERhdHVtKGRlZmF1bHRfcGFzc25hbWUpKTsKKwkJ CX0KIAkJfQotCQluZXdfcGFzc3dvcmRfcmVjb3JkX3JlcGxbQW51bV9wZ19hdXRoX3Bhc3N3b3Jk X3Bhc3N3b3JkIC0gMV0gPSB0cnVlOwogCX0KIAogCS8qIHVuc2V0IHBhc3N3b3JkICovCkBAIC04 NTksNyArOTY2LDEwIEBAIEFsdGVyUm9sZShQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUm9sZVN0 bXQgKnN0bXQpCiAKIAkJcGdfYXV0aF9wYXNzd29yZF9yZWwgPSB0YWJsZV9vcGVuKEF1dGhQYXNz d29yZFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCQlwZ19hdXRoX3Bhc3N3b3JkX2Rz YyA9IFJlbGF0aW9uR2V0RGVzY3IocGdfYXV0aF9wYXNzd29yZF9yZWwpOwotCQlwYXNzd29yZF90 dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShBVVRIUEFTU1dPUkQsIE9iamVjdElkR2V0RGF0dW0ocm9s ZWlkKSk7CisJCWlmIChkcGFzc05hbWUpCisJCQlwYXNzd29yZF90dXBsZSA9IFNlYXJjaFN5c0Nh Y2hlMihBVVRIUEFTU1dPUkROQU1FLCBPYmplY3RJZEdldERhdHVtKHJvbGVpZCksIENTdHJpbmdH ZXREYXR1bShwYXNzbmFtZSkpOworCQllbHNlCisJCQlwYXNzd29yZF90dXBsZSA9IFNlYXJjaFN5 c0NhY2hlMihBVVRIUEFTU1dPUkROQU1FLCBPYmplY3RJZEdldERhdHVtKHJvbGVpZCksIENTdHJp bmdHZXREYXR1bShkZWZhdWx0X3Bhc3NuYW1lKSk7CiAKIAkJaWYgKG5ld19wYXNzd29yZF9yZWNv cmRfbnVsbHNbQW51bV9wZ19hdXRoX3Bhc3N3b3JkX3Bhc3N3b3JkIC0gMV0gPT0gdHJ1ZSkgLyog ZGVsZXRlIGV4aXN0aW5nIHBhc3N3b3JkICovCiAJCXsKQEAgLTExNTcsMTQgKzEyNjcsMjMgQEAg RHJvcFJvbGUoRHJvcFJvbGVTdG10ICpzdG10KQogCQlEZWxldGVTaGFyZWRTZWN1cml0eUxhYmVs KHJvbGVpZCwgQXV0aElkUmVsYXRpb25JZCk7CiAKIAkJLyoKLQkJICogRHJvcCBwYXNzd29yZAor CQkgKiBEcm9wIHBhc3N3b3JkKHMpCiAJCSAqLwotCQl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShB VVRIUEFTU1dPUkQsIHJvbGVpZCk7Ci0JCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkgewot CQkJQ2F0YWxvZ1R1cGxlRGVsZXRlKHBnX2F1dGhfcGFzc3dvcmRfcmVsLCAmdHVwbGUtPnRfc2Vs Zik7Ci0JCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCQlTY2FuS2V5SW5pdCgmc2NhbmtleSwK KwkJCQkJQW51bV9wZ19hdXRoX3Bhc3N3b3JkX3JvbGVpZCwKKwkJCQkJQlRFcXVhbFN0cmF0ZWd5 TnVtYmVyLCBGX09JREVRLAorCQkJCQlPYmplY3RJZEdldERhdHVtKHJvbGVpZCkpOworCisJCXNz Y2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHBnX2F1dGhfcGFzc3dvcmRfcmVsLCBBdXRoUGFzc3dv cmRSb2xlT2lkSW5kZXhJZCwKKwkJCQkJCQkJICAgdHJ1ZSwgTlVMTCwgMSwgJnNjYW5rZXkpOwor CisJCXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHRtcF90dXBsZSA9IHN5c3RhYmxlX2dldG5leHQo c3NjYW4pKSkKKwkJeworCQkJQ2F0YWxvZ1R1cGxlRGVsZXRlKHBnX2F1dGhfcGFzc3dvcmRfcmVs LCAmdG1wX3R1cGxlLT50X3NlbGYpOwogCQl9CiAKKwkJc3lzdGFibGVfZW5kc2Nhbihzc2Nhbik7 CisKIAkJLyoKIAkJICogUmVtb3ZlIHNldHRpbmdzIGZvciB0aGlzIHJvbGUuCiAJCSAqLwpAQCAt MTIwMSw2ICsxMzIwLDkgQEAgUmVuYW1lUm9sZShjb25zdCBjaGFyICpvbGRuYW1lLCBjb25zdCBj aGFyICpuZXduYW1lKQogCQkJCW5ld3R1cGxlLAogCQkJCXBhc3N0dXBsZTsKIAlUdXBsZURlc2MJ ZHNjOworCVNjYW5LZXlEYXRhIHNjYW5rZXk7CisJU3lzU2NhbkRlc2Mgc3NjYW47CisKIAlSZWxh dGlvbglyZWw7CiAJRGF0dW0JCWRhdHVtOwogCWJvb2wJCWlzbnVsbCA9IHRydWU7CkBAIC0xMjEx LDYgKzEzMzMsNyBAQCBSZW5hbWVSb2xlKGNvbnN0IGNoYXIgKm9sZG5hbWUsIGNvbnN0IGNoYXIg Km5ld25hbWUpCiAJT2lkCQkJcm9sZWlkOwogCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIAlGb3Jt X3BnX2F1dGhpZCBhdXRoZm9ybTsKKwlSZWxhdGlvbglwZ19hdXRoX3Bhc3N3b3JkX3JlbDsKIAog CXJlbCA9IHRhYmxlX29wZW4oQXV0aElkUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CiAJ ZHNjID0gUmVsYXRpb25HZXREZXNjcihyZWwpOwpAQCAtMTMwMSwyOCArMTQyNCwzOCBAQCBSZW5h bWVSb2xlKGNvbnN0IGNoYXIgKm9sZG5hbWUsIGNvbnN0IGNoYXIgKm5ld25hbWUpCiAJCQkJCQkJ CQkJCQkJCQkgICBDU3RyaW5nR2V0RGF0dW0obmV3bmFtZSkpOwogCXJlcGxfbnVsbFtBbnVtX3Bn X2F1dGhpZF9yb2xuYW1lIC0gMV0gPSBmYWxzZTsKIAotCXBhc3N0dXBsZSA9IFNlYXJjaFN5c0Nh Y2hlMShBVVRIUEFTU1dPUkQsIHJvbGVpZCk7CisJU2NhbktleUluaXQoJnNjYW5rZXksCisJCQkJ QW51bV9wZ19hdXRoX3Bhc3N3b3JkX3JvbGVpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIs IEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShyb2xlaWQpKTsKKworCXBnX2F1dGhfcGFz c3dvcmRfcmVsID0gdGFibGVfb3BlbihBdXRoUGFzc3dvcmRSZWxhdGlvbklkLCBSb3dFeGNsdXNp dmVMb2NrKTsKIAotCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHBhc3N0dXBsZSkpCi0JCWRhdHVtID0g U3lzQ2FjaGVHZXRBdHRyKEFVVEhQQVNTV09SRCwgcGFzc3R1cGxlLAotCQkJCQkJCQlBbnVtX3Bn X2F1dGhfcGFzc3dvcmRfcGFzc3dvcmQsICZpc251bGwpOworCXNzY2FuID0gc3lzdGFibGVfYmVn aW5zY2FuKHBnX2F1dGhfcGFzc3dvcmRfcmVsLCBBdXRoUGFzc3dvcmRSb2xlT2lkSW5kZXhJZCwK KwkJCQkJCQkJdHJ1ZSwgTlVMTCwgMSwgJnNjYW5rZXkpOwogCi0JaWYgKCFpc251bGwgJiYgZ2V0 X3Bhc3N3b3JkX3R5cGUoVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSkpID09IFBBU1NXT1JEX1RZ UEVfTUQ1KQorCXdoaWxlIChIZWFwVHVwbGVJc1ZhbGlkKHBhc3N0dXBsZSA9IHN5c3RhYmxlX2dl dG5leHQoc3NjYW4pKSkKIAl7Ci0JCVJlbGF0aW9uCXBnX2F1dGhfcGFzc3dvcmRfcmVsOworCQlk YXR1bSA9IFN5c0NhY2hlR2V0QXR0cihBVVRIUEFTU1dPUkROQU1FLCBwYXNzdHVwbGUsCisJCQkJ CQkJQW51bV9wZ19hdXRoX3Bhc3N3b3JkX3Bhc3N3b3JkLCAmaXNudWxsKTsKIAotCQkvKiBNRDUg dXNlcyB0aGUgdXNlcm5hbWUgYXMgc2FsdCwgc28ganVzdCBjbGVhciBpdCBvbiBhIHJlbmFtZSAq LwotCQlwZ19hdXRoX3Bhc3N3b3JkX3JlbCA9IHRhYmxlX29wZW4oQXV0aFBhc3N3b3JkUmVsYXRp b25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisJCWlmICghaXNudWxsICYmIGdldF9wYXNzd29yZF90 eXBlKFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pKSA9PSBQQVNTV09SRF9UWVBFX01ENSkKKwkJ ewogCi0JCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHBhc3N0dXBsZSkpIHsKLQkJCUNhdGFsb2dUdXBs ZURlbGV0ZShwZ19hdXRoX3Bhc3N3b3JkX3JlbCwgJnBhc3N0dXBsZS0+dF9zZWxmKTsKLQkJCVJl bGVhc2VTeXNDYWNoZShwYXNzdHVwbGUpOworCQkJLyogTUQ1IHVzZXMgdGhlIHVzZXJuYW1lIGFz IHNhbHQsIHNvIGp1c3QgY2xlYXIgaXQgb24gYSByZW5hbWUgKi8KKworCQkJaWYgKEhlYXBUdXBs ZUlzVmFsaWQocGFzc3R1cGxlKSkgeworCQkJCUNhdGFsb2dUdXBsZURlbGV0ZShwZ19hdXRoX3Bh c3N3b3JkX3JlbCwgJnBhc3N0dXBsZS0+dF9zZWxmKTsKKwkJCQllcmVwb3J0KE5PVElDRSwKKwkJ CQkJKGVycm1zZygiTUQ1IHBhc3N3b3JkIGNsZWFyZWQgYmVjYXVzZSBvZiByb2xlIHJlbmFtZSIp KSk7CisKKwkJCX0KIAkJfQotCQl0YWJsZV9jbG9zZShwZ19hdXRoX3Bhc3N3b3JkX3JlbCwgTm9M b2NrKTsKLQkJZXJlcG9ydChOT1RJQ0UsCi0JCQkJKGVycm1zZygiTUQ1IHBhc3N3b3JkIGNsZWFy ZWQgYmVjYXVzZSBvZiByb2xlIHJlbmFtZSIpKSk7CiAJfQogCisJc3lzdGFibGVfZW5kc2Nhbihz c2Nhbik7CisJdGFibGVfY2xvc2UocGdfYXV0aF9wYXNzd29yZF9yZWwsIE5vTG9jayk7CisKIAlu ZXd0dXBsZSA9IGhlYXBfbW9kaWZ5X3R1cGxlKG9sZHR1cGxlLCBkc2MsIHJlcGxfdmFsLCByZXBs X251bGwsIHJlcGxfcmVwbCk7CiAJQ2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJm9sZHR1cGxlLT50 X3NlbGYsIG5ld3R1cGxlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbGlicHEvYXV0aC1z YXNsLmMgYi9zcmMvYmFja2VuZC9saWJwcS9hdXRoLXNhc2wuYwppbmRleCA4MDViMzY5NWI3OC4u NjUyYzE4ZmE5NGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2FzbC5jCisr KyBiL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2FzbC5jCkBAIC00OSw3ICs0OSw3IEBACiAgKiBz aG91bGQganVzdCBwYXNzIE5VTEwuCiAgKi8KIGludAotQ2hlY2tTQVNMQXV0aChjb25zdCBwZ19i ZV9zYXNsX21lY2ggKm1lY2gsIFBvcnQgKnBvcnQsIGNoYXIgKnNoYWRvd19wYXNzLAorQ2hlY2tT QVNMQXV0aChjb25zdCBwZ19iZV9zYXNsX21lY2ggKm1lY2gsIFBvcnQgKnBvcnQsIGNvbnN0IGNo YXIgKipwYXNzd29yZHMsIGludCBudW0sCiAJCQkgIGNvbnN0IGNoYXIgKipsb2dkZXRhaWwpCiB7 CiAJU3RyaW5nSW5mb0RhdGEgc2FzbF9tZWNoczsKQEAgLTEzNiw3ICsxMzYsNyBAQCBDaGVja1NB U0xBdXRoKGNvbnN0IHBnX2JlX3Nhc2xfbWVjaCAqbWVjaCwgUG9ydCAqcG9ydCwgY2hhciAqc2hh ZG93X3Bhc3MsCiAJCQkgKiBUaGlzIGlzIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byByZXZlYWwg dG8gYW4gYXR0YWNrZXIgd2hhdAogCQkJICogdXNlcm5hbWVzIGFyZSB2YWxpZCwgbm9yIHdoaWNo IHVzZXJzIGhhdmUgYSB2YWxpZCBwYXNzd29yZC4KIAkJCSAqLwotCQkJb3BhcSA9IG1lY2gtPmlu aXQocG9ydCwgc2VsZWN0ZWRfbWVjaCwgc2hhZG93X3Bhc3MpOworCQkJb3BhcSA9IG1lY2gtPmlu aXQocG9ydCwgc2VsZWN0ZWRfbWVjaCwgcGFzc3dvcmRzLCBudW0pOwogCiAJCQlpbnB1dGxlbiA9 IHBxX2dldG1zZ2ludCgmYnVmLCA0KTsKIAkJCWlmIChpbnB1dGxlbiA9PSAtMSkKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0uYyBiL3NyYy9iYWNrZW5kL2xpYnBxL2F1 dGgtc2NyYW0uYwppbmRleCA3OTVmMWNiYTU1NS4uOTVkYjRhYWY5NTggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0uYworKysgYi9zcmMvYmFja2VuZC9saWJwcS9hdXRo LXNjcmFtLmMKQEAgLTEwOSw3ICsxMDksNyBAQAogCiBzdGF0aWMgdm9pZCBzY3JhbV9nZXRfbWVj aGFuaXNtcyhQb3J0ICpwb3J0LCBTdHJpbmdJbmZvIGJ1Zik7CiBzdGF0aWMgdm9pZCAqc2NyYW1f aW5pdChQb3J0ICpwb3J0LCBjb25zdCBjaGFyICpzZWxlY3RlZF9tZWNoLAotCQkJCQkJY29uc3Qg Y2hhciAqc2hhZG93X3Bhc3MpOworCQkJCQkJY29uc3QgY2hhciAqKnNlY3JldHMsIGNvbnN0IGlu dCBudW1fc2VjcmV0cyk7CiBzdGF0aWMgaW50CXNjcmFtX2V4Y2hhbmdlKHZvaWQgKm9wYXEsIGNv bnN0IGNoYXIgKmlucHV0LCBpbnQgaW5wdXRsZW4sCiAJCQkJCQkgICBjaGFyICoqb3V0cHV0LCBp bnQgKm91dHB1dGxlbiwKIAkJCQkJCSAgIGNvbnN0IGNoYXIgKipsb2dkZXRhaWwpOwpAQCAtMTMy LDYgKzEzMiwxMyBAQCB0eXBlZGVmIGVudW0KIAlTQ1JBTV9BVVRIX0ZJTklTSEVECiB9IHNjcmFt X3N0YXRlX2VudW07CiAKK3R5cGVkZWYgc3RydWN0Cit7CisJdWludDgJCVN0b3JlZEtleVtTQ1JB TV9LRVlfTEVOXTsKKwl1aW50OAkJU2VydmVyS2V5W1NDUkFNX0tFWV9MRU5dOworfSBzY3JhbV9z ZWNyZXQ7CisKKwogdHlwZWRlZiBzdHJ1Y3QKIHsKIAlzY3JhbV9zdGF0ZV9lbnVtIHN0YXRlOwpA QCAtMTQxLDEwICsxNDgsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlQb3J0CSAgICpwb3J0OwogCWJv b2wJCWNoYW5uZWxfYmluZGluZ19pbl91c2U7CiAKKwkvKiAKKwkgKiBUaGUgc2FsdCBhbmQgaXRl cmF0aW9ucyBtdXN0IGJlIHRoZSBzYW1lIGZvciBhbGwgCisJICogc2VjcmV0cyBzaW5jZSB0aGV5 IGFyZSBzZW50IGFzIHBhcnQgb2YgdGhlIGluaXRpYWwgbWVzc2FnZQorCSAqLwogCWludAkJCWl0 ZXJhdGlvbnM7CiAJY2hhcgkgICAqc2FsdDsJCQkvKiBiYXNlNjQtZW5jb2RlZCAqLwotCXVpbnQ4 CQlTdG9yZWRLZXlbU0NSQU1fS0VZX0xFTl07Ci0JdWludDgJCVNlcnZlcktleVtTQ1JBTV9LRVlf TEVOXTsKKwkvKiBBcnJheSBvZiBwb3NzaWJsZSBzZWNyZXRzICovCisJc2NyYW1fc2VjcmV0ICpz ZWNyZXRzOworCWludAkJCW51bV9zZWNyZXRzOworCWludAkJCWNob3Nlbl9zZWNyZXQ7IC8qIHNl Y3JldCBjaG9zZW4gZHVyaW5nIGZpbmFsIGNsaWVudCBtZXNzYWdlICovCiAKIAkvKiBGaWVsZHMg b2YgdGhlIGZpcnN0IG1lc3NhZ2UgZnJvbSBjbGllbnQgKi8KIAljaGFyCQljYmluZF9mbGFnOwpA QCAtMjIwLDE3ICsyMzMsMjAgQEAgc2NyYW1fZ2V0X21lY2hhbmlzbXMoUG9ydCAqcG9ydCwgU3Ry aW5nSW5mbyBidWYpCiAgKiBJdCBzaG91bGQgYmUgb25lIG9mIHRoZSBtZWNoYW5pc21zIHRoYXQg d2Ugc3VwcG9ydCwgYXMgcmV0dXJuZWQgYnkKICAqIHNjcmFtX2dldF9tZWNoYW5pc21zKCkuCiAg KgotICogJ3NoYWRvd19wYXNzJyBpcyB0aGUgcm9sZSdzIHN0b3JlZCBzZWNyZXQsIGZyb20gcGdf YXV0aF9wYXNzd29yZC5wYXNzd29yZC4KKyAqICdwYXNzd29yZHMnIGFyZSB0aGUgcm9sZSdzIHN0 b3JlZCBzZWNyZXRzLCBmcm9tIHBnX2F1dGhfcGFzc3dvcmQucGFzc3dvcmQuCiAgKiBUaGUgdXNl cm5hbWUgd2FzIHByb3ZpZGVkIGJ5IHRoZSBjbGllbnQgaW4gdGhlIHN0YXJ0dXAgbWVzc2FnZSwg YW5kIGlzCiAgKiBhdmFpbGFibGUgaW4gcG9ydC0+dXNlcl9uYW1lLiAgSWYgJ3NoYWRvd19wYXNz JyBpcyBOVUxMLCB3ZSBzdGlsbCBwZXJmb3JtCiAgKiBhbiBhdXRoZW50aWNhdGlvbiBleGNoYW5n ZSwgYnV0IGl0IHdpbGwgZmFpbCwgYXMgaWYgYW4gaW5jb3JyZWN0IHBhc3N3b3JkCiAgKiB3YXMg Z2l2ZW4uCiAgKi8KIHN0YXRpYyB2b2lkICoKLXNjcmFtX2luaXQoUG9ydCAqcG9ydCwgY29uc3Qg Y2hhciAqc2VsZWN0ZWRfbWVjaCwgY29uc3QgY2hhciAqc2hhZG93X3Bhc3MpCitzY3JhbV9pbml0 KFBvcnQgKnBvcnQsIGNvbnN0IGNoYXIgKnNlbGVjdGVkX21lY2gsIGNvbnN0IGNoYXIgKipzZWNy ZXRzLCBjb25zdCBpbnQgbnVtX3NlY3JldHMpCiB7CiAJc2NyYW1fc3RhdGUgKnN0YXRlOwotCWJv b2wJCWdvdF9zZWNyZXQ7CisJYm9vbAkJZ290X3NlY3JldCA9IGZhbHNlOworCWludAkJCWk7CisJ aW50CWl0ZXJhdGlvbnM7CisJY2hhciAqc2FsdCA9IE5VTEw7CQkJLyogYmFzZTY0LWVuY29kZWQg Ki8KIAogCXN0YXRlID0gKHNjcmFtX3N0YXRlICopIHBhbGxvYzAoc2l6ZW9mKHNjcmFtX3N0YXRl KSk7CiAJc3RhdGUtPnBvcnQgPSBwb3J0OwpAQCAtMjYwLDQ2ICsyNzYsNDggQEAgc2NyYW1faW5p dChQb3J0ICpwb3J0LCBjb25zdCBjaGFyICpzZWxlY3RlZF9tZWNoLCBjb25zdCBjaGFyICpzaGFk b3dfcGFzcykKIAkvKgogCSAqIFBhcnNlIHRoZSBzdG9yZWQgc2VjcmV0LgogCSAqLwotCWlmIChz aGFkb3dfcGFzcykKKwlpZiAoc2VjcmV0cykKIAl7Ci0JCWludAkJCXBhc3N3b3JkX3R5cGUgPSBn ZXRfcGFzc3dvcmRfdHlwZShzaGFkb3dfcGFzcyk7Ci0KLQkJaWYgKHBhc3N3b3JkX3R5cGUgPT0g UEFTU1dPUkRfVFlQRV9TQ1JBTV9TSEFfMjU2KQorCQlzdGF0ZS0+c2VjcmV0cyA9IHBhbGxvYzAo c2l6ZW9mKHNjcmFtX3NlY3JldCkgKiBudW1fc2VjcmV0cyk7CisJCXN0YXRlLT5udW1fc2VjcmV0 cyA9IG51bV9zZWNyZXRzOworCQlmb3IgKGkgPSAwOyBpIDwgbnVtX3NlY3JldHM7IGkrKykKIAkJ ewotCQkJaWYgKHBhcnNlX3NjcmFtX3NlY3JldChzaGFkb3dfcGFzcywgJnN0YXRlLT5pdGVyYXRp b25zLCAmc3RhdGUtPnNhbHQsCi0JCQkJCQkJCSAgIHN0YXRlLT5TdG9yZWRLZXksIHN0YXRlLT5T ZXJ2ZXJLZXkpKQotCQkJCWdvdF9zZWNyZXQgPSB0cnVlOwotCQkJZWxzZQorCQkJaW50CQkJcGFz c3dvcmRfdHlwZSA9IGdldF9wYXNzd29yZF90eXBlKHNlY3JldHNbaV0pOworCisJCQlpZiAocGFz c3dvcmRfdHlwZSA9PSBQQVNTV09SRF9UWVBFX1NDUkFNX1NIQV8yNTYpCiAJCQl7Ci0JCQkJLyoK LQkJCQkgKiBUaGUgcGFzc3dvcmQgbG9va2VkIGxpa2UgYSBTQ1JBTSBzZWNyZXQsIGJ1dCBjb3Vs ZCBub3QgYmUKLQkJCQkgKiBwYXJzZWQuCi0JCQkJICovCi0JCQkJZXJlcG9ydChMT0csCi0JCQkJ CQkoZXJybXNnKCJpbnZhbGlkIFNDUkFNIHNlY3JldCBmb3IgdXNlciBcIiVzXCIiLAotCQkJCQkJ CQlzdGF0ZS0+cG9ydC0+dXNlcl9uYW1lKSkpOwotCQkJCWdvdF9zZWNyZXQgPSBmYWxzZTsKKwkJ CQorCQkJCWlmIChwYXJzZV9zY3JhbV9zZWNyZXQoc2VjcmV0c1tpXSwgJnN0YXRlLT5pdGVyYXRp b25zLCAmc3RhdGUtPnNhbHQsCisJCQkJCQkJCQlzdGF0ZS0+c2VjcmV0c1tpXS5TdG9yZWRLZXks IHN0YXRlLT5zZWNyZXRzW2ldLlNlcnZlcktleSkpCisJCQkJeworCQkJCQlpZiAoc2FsdCkgewor CQkJCQkJLyogVGhlIHN0b3JlZCBpdGVyYXRpb25zIGFuZCBzYWx0IG11c3QgbWF0Y2ggb3Igd2Ug Y2Fubm90IHByb2NlZWQsIGFsbG93IGZhaWx1cmUgdmlhIG1vY2sgKi8KKwkJCQkJCWlmIChzdHJj bXAoc2FsdCwgc3RhdGUtPnNhbHQpIHx8IGl0ZXJhdGlvbnMgIT0gc3RhdGUtPml0ZXJhdGlvbnMp IHsKKwkJCQkJCQllcmVwb3J0KFdBUk5JTkcsIChlcnJtc2coImluY29uc2lzdGVudCBzYWx0IG9y IGl0ZXJhdGlvbnMgZm9yIHVzZXIgXCIlc1wiIiwKKwkJCQkJCQkJCXN0YXRlLT5wb3J0LT51c2Vy X25hbWUpKSk7CisJCQkJCQkJZ290X3NlY3JldCA9IGZhbHNlOyAvKiBmYWlsIGFuZCBhbGxvdyBt b2NrIGNyZWRpdGlhbHMgdG8gYmUgY3JlYXRlZCAqLworCQkJCQkJCWJyZWFrOworCQkJCQkJfQor CQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJc2FsdCA9IHN0YXRlLT5zYWx0OworCQkJ CQkJaXRlcmF0aW9ucyA9IHN0YXRlLT5pdGVyYXRpb25zOworCQkJCQkJZ290X3NlY3JldCA9IHRy dWU7IC8qIFdlIGdvdCBhdCBsZWFzdCBvbmUgZ29vZCBTQ1JBTSBzZWNyZXQgKi8KKwkJCQkJfQor CQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkvKgorCQkJCQkqIFRoZSBwYXNzd29yZCBsb29r ZWQgbGlrZSBhIFNDUkFNIHNlY3JldCwgYnV0IGNvdWxkIG5vdCBiZQorCQkJCQkqIHBhcnNlZC4K KwkJCQkJKi8KKwkJCQkJZXJlcG9ydChMT0csCisJCQkJCQkJKGVycm1zZygiaW52YWxpZCBTQ1JB TSBzZWNyZXQgZm9yIHVzZXIgXCIlc1wiIiwKKwkJCQkJCQkJCXN0YXRlLT5wb3J0LT51c2VyX25h bWUpKSk7CisJCQkJfQogCQkJfQogCQl9Ci0JCWVsc2UKLQkJewotCQkJLyoKLQkJCSAqIFRoZSB1 c2VyIGRvZXNuJ3QgaGF2ZSBTQ1JBTSBzZWNyZXQuIChZb3UgY2Fubm90IGRvIFNDUkFNCi0JCQkg KiBhdXRoZW50aWNhdGlvbiB3aXRoIGFuIE1ENSBoYXNoLikKLQkJCSAqLwotCQkJc3RhdGUtPmxv Z2RldGFpbCA9IHBzcHJpbnRmKF8oIlVzZXIgXCIlc1wiIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBT Q1JBTSBzZWNyZXQuIiksCi0JCQkJCQkJCQkJc3RhdGUtPnBvcnQtPnVzZXJfbmFtZSk7Ci0JCQln b3Rfc2VjcmV0ID0gZmFsc2U7Ci0JCX0KLQl9Ci0JZWxzZQotCXsKLQkJLyoKLQkJICogVGhlIGNh bGxlciByZXF1ZXN0ZWQgdXMgdG8gcGVyZm9ybSBhIGR1bW15IGF1dGhlbnRpY2F0aW9uLiAgVGhp cyBpcwotCQkgKiBjb25zaWRlcmVkIG5vcm1hbCwgc2luY2UgdGhlIGNhbGxlciByZXF1ZXN0ZWQg aXQsIHNvIGRvbid0IHNldCBsb2cKLQkJICogZGV0YWlsLgotCQkgKi8KLQkJZ290X3NlY3JldCA9 IGZhbHNlOwogCX0KIAogCS8qCkBAIC0zMTAsOCArMzI4LDEwIEBAIHNjcmFtX2luaXQoUG9ydCAq cG9ydCwgY29uc3QgY2hhciAqc2VsZWN0ZWRfbWVjaCwgY29uc3QgY2hhciAqc2hhZG93X3Bhc3Mp CiAJICovCiAJaWYgKCFnb3Rfc2VjcmV0KQogCXsKKwkJc3RhdGUtPnNlY3JldHMgPSBwYWxsb2Mw KHNpemVvZihzY3JhbV9zZWNyZXQpKTsKKwogCQltb2NrX3NjcmFtX3NlY3JldChzdGF0ZS0+cG9y dC0+dXNlcl9uYW1lLCAmc3RhdGUtPml0ZXJhdGlvbnMsCi0JCQkJCQkgICZzdGF0ZS0+c2FsdCwg c3RhdGUtPlN0b3JlZEtleSwgc3RhdGUtPlNlcnZlcktleSk7CisJCQkJCQkgICZzdGF0ZS0+c2Fs dCwgc3RhdGUtPnNlY3JldHNbMF0uU3RvcmVkS2V5LCBzdGF0ZS0+c2VjcmV0c1swXS5TZXJ2ZXJL ZXkpOwogCQlzdGF0ZS0+ZG9vbWVkID0gdHJ1ZTsKIAl9CiAKQEAgLTQ1OSw3ICs0NzksNyBAQCBz Y3JhbV9leGNoYW5nZSh2b2lkICpvcGFxLCBjb25zdCBjaGFyICppbnB1dCwgaW50IGlucHV0bGVu LAogICogVGhlIHJlc3VsdCBpcyBwYWxsb2MnZCwgc28gY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZv ciBmcmVlaW5nIGl0LgogICovCiBjaGFyICoKLXBnX2JlX3NjcmFtX2J1aWxkX3NlY3JldChjb25z dCBjaGFyICpwYXNzd29yZCkKK3BnX2JlX3NjcmFtX2J1aWxkX3NlY3JldChjb25zdCBjaGFyICpw YXNzd29yZCwgY29uc3QgY2hhciAqc2FsdCkKIHsKIAljaGFyCSAgICpwcmVwX3Bhc3N3b3JkOwog CXBnX3Nhc2xwcmVwX3JjIHJjOwpAQCAtNDc2LDEyICs0OTYsMTQgQEAgcGdfYmVfc2NyYW1fYnVp bGRfc2VjcmV0KGNvbnN0IGNoYXIgKnBhc3N3b3JkKQogCWlmIChyYyA9PSBTQVNMUFJFUF9TVUND RVNTKQogCQlwYXNzd29yZCA9IChjb25zdCBjaGFyICopIHByZXBfcGFzc3dvcmQ7CiAKLQkvKiBH ZW5lcmF0ZSByYW5kb20gc2FsdCAqLwotCWlmICghcGdfc3Ryb25nX3JhbmRvbShzYWx0YnVmLCBT Q1JBTV9ERUZBVUxUX1NBTFRfTEVOKSkKKwkvKiBVc2UgcGFzc2VkIGluIHNhbHQgb3IgZ2VuZXJh dGUgcmFuZG9tIHNhbHQgKi8KKwlpZiAoIXNhbHQgJiYgIXBnX3N0cm9uZ19yYW5kb20oc2FsdGJ1 ZiwgU0NSQU1fREVGQVVMVF9TQUxUX0xFTikpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlRFUk5BTF9FUlJPUiksCiAJCQkJIGVycm1zZygiY291bGQgbm90IGdlbmVy YXRlIHJhbmRvbSBzYWx0IikpKTsKLQorCWVsc2UgaWYgKHNhbHQpCisJCXBnX2I2NF9kZWNvZGUo c2FsdCwgc3RybGVuKHNhbHQpLCBzYWx0YnVmLCBTQ1JBTV9ERUZBVUxUX1NBTFRfTEVOKTsKKwkK IAlyZXN1bHQgPSBzY3JhbV9idWlsZF9zZWNyZXQoc2FsdGJ1ZiwgU0NSQU1fREVGQVVMVF9TQUxU X0xFTiwKIAkJCQkJCQkJU0NSQU1fREVGQVVMVF9JVEVSQVRJT05TLCBwYXNzd29yZCwKIAkJCQkJ CQkJJmVycnN0cik7CkBAIC0xMTE0LDQ3ICsxMTM2LDU3IEBAIHZlcmlmeV9jbGllbnRfcHJvb2Yo c2NyYW1fc3RhdGUgKnN0YXRlKQogCXVpbnQ4CQlDbGllbnRTaWduYXR1cmVbU0NSQU1fS0VZX0xF Tl07CiAJdWludDgJCUNsaWVudEtleVtTQ1JBTV9LRVlfTEVOXTsKIAl1aW50OAkJY2xpZW50X1N0 b3JlZEtleVtTQ1JBTV9LRVlfTEVOXTsKLQlwZ19obWFjX2N0eCAqY3R4ID0gcGdfaG1hY19jcmVh dGUoUEdfU0hBMjU2KTsKLQlpbnQJCQlpOworCXBnX2htYWNfY3R4ICpjdHg7CisJaW50CQkJaSwg ajsKIAljb25zdCBjaGFyICplcnJzdHIgPSBOVUxMOwotCiAJLyoKIAkgKiBDYWxjdWxhdGUgQ2xp ZW50U2lnbmF0dXJlLiAgTm90ZSB0aGF0IHdlIGRvbid0IGxvZyBkaXJlY3RseSBhIGZhaWx1cmUK IAkgKiBoZXJlIGV2ZW4gd2hlbiBwcm9jZXNzaW5nIHRoZSBjYWxjdWxhdGlvbnMgYXMgdGhpcyBj b3VsZCBpbnZvbHZlIGEgbW9jawogCSAqIGF1dGhlbnRpY2F0aW9uLgogCSAqLwotCWlmIChwZ19o bWFjX2luaXQoY3R4LCBzdGF0ZS0+U3RvcmVkS2V5LCBTQ1JBTV9LRVlfTEVOKSA8IDAgfHwKLQkJ cGdfaG1hY191cGRhdGUoY3R4LAotCQkJCQkgICAodWludDggKikgc3RhdGUtPmNsaWVudF9maXJz dF9tZXNzYWdlX2JhcmUsCi0JCQkJCSAgIHN0cmxlbihzdGF0ZS0+Y2xpZW50X2ZpcnN0X21lc3Nh Z2VfYmFyZSkpIDwgMCB8fAotCQlwZ19obWFjX3VwZGF0ZShjdHgsICh1aW50OCAqKSAiLCIsIDEp IDwgMCB8fAotCQlwZ19obWFjX3VwZGF0ZShjdHgsCi0JCQkJCSAgICh1aW50OCAqKSBzdGF0ZS0+ c2VydmVyX2ZpcnN0X21lc3NhZ2UsCi0JCQkJCSAgIHN0cmxlbihzdGF0ZS0+c2VydmVyX2ZpcnN0 X21lc3NhZ2UpKSA8IDAgfHwKLQkJcGdfaG1hY191cGRhdGUoY3R4LCAodWludDggKikgIiwiLCAx KSA8IDAgfHwKLQkJcGdfaG1hY191cGRhdGUoY3R4LAotCQkJCQkgICAodWludDggKikgc3RhdGUt PmNsaWVudF9maW5hbF9tZXNzYWdlX3dpdGhvdXRfcHJvb2YsCi0JCQkJCSAgIHN0cmxlbihzdGF0 ZS0+Y2xpZW50X2ZpbmFsX21lc3NhZ2Vfd2l0aG91dF9wcm9vZikpIDwgMCB8fAotCQlwZ19obWFj X2ZpbmFsKGN0eCwgQ2xpZW50U2lnbmF0dXJlLCBzaXplb2YoQ2xpZW50U2lnbmF0dXJlKSkgPCAw KQorCWZvciAoaiA9IDA7IGogPCBzdGF0ZS0+bnVtX3NlY3JldHM7IGorKykKIAl7Ci0JCWVsb2co RVJST1IsICJjb3VsZCBub3QgY2FsY3VsYXRlIGNsaWVudCBzaWduYXR1cmU6ICVzIiwKLQkJCSBw Z19obWFjX2Vycm9yKGN0eCkpOwotCX0KKwkJY3R4ID0gcGdfaG1hY19jcmVhdGUoUEdfU0hBMjU2 KTsKKwkJZWxvZyhMT0csICJUcnlpbmcgdG8gdmVyaWZ5IHBhc3N3b3JkICVkIiwgaik7CisKKwkJ aWYgKHBnX2htYWNfaW5pdChjdHgsIHN0YXRlLT5zZWNyZXRzW2pdLlN0b3JlZEtleSwgU0NSQU1f S0VZX0xFTikgPCAwIHx8CisJCQlwZ19obWFjX3VwZGF0ZShjdHgsCisJCQkJCQkodWludDggKikg c3RhdGUtPmNsaWVudF9maXJzdF9tZXNzYWdlX2JhcmUsCisJCQkJCQlzdHJsZW4oc3RhdGUtPmNs aWVudF9maXJzdF9tZXNzYWdlX2JhcmUpKSA8IDAgfHwKKwkJCXBnX2htYWNfdXBkYXRlKGN0eCwg KHVpbnQ4ICopICIsIiwgMSkgPCAwIHx8CisJCQlwZ19obWFjX3VwZGF0ZShjdHgsCisJCQkJCQko dWludDggKikgc3RhdGUtPnNlcnZlcl9maXJzdF9tZXNzYWdlLAorCQkJCQkJc3RybGVuKHN0YXRl LT5zZXJ2ZXJfZmlyc3RfbWVzc2FnZSkpIDwgMCB8fAorCQkJcGdfaG1hY191cGRhdGUoY3R4LCAo dWludDggKikgIiwiLCAxKSA8IDAgfHwKKwkJCXBnX2htYWNfdXBkYXRlKGN0eCwKKwkJCQkJCSh1 aW50OCAqKSBzdGF0ZS0+Y2xpZW50X2ZpbmFsX21lc3NhZ2Vfd2l0aG91dF9wcm9vZiwKKwkJCQkJ CXN0cmxlbihzdGF0ZS0+Y2xpZW50X2ZpbmFsX21lc3NhZ2Vfd2l0aG91dF9wcm9vZikpIDwgMCB8 fAorCQkJcGdfaG1hY19maW5hbChjdHgsIENsaWVudFNpZ25hdHVyZSwgc2l6ZW9mKENsaWVudFNp Z25hdHVyZSkpIDwgMCkKKwkJeworCQkJZWxvZyhMT0csICJjb3VsZCBub3QgY2FsY3VsYXRlIGNs aWVudCBzaWduYXR1cmUiKTsKKwkJCXBnX2htYWNfZnJlZShjdHgpOworCQkJY29udGludWU7CisJ CX0KIAotCXBnX2htYWNfZnJlZShjdHgpOworCQllbG9nKExPRywgInN1Y2Nlc3Mgb24gJWQiLCBq KTsKIAotCS8qIEV4dHJhY3QgdGhlIENsaWVudEtleSB0aGF0IHRoZSBjbGllbnQgY2FsY3VsYXRl ZCBmcm9tIHRoZSBwcm9vZiAqLwotCWZvciAoaSA9IDA7IGkgPCBTQ1JBTV9LRVlfTEVOOyBpKysp Ci0JCUNsaWVudEtleVtpXSA9IHN0YXRlLT5DbGllbnRQcm9vZltpXSBeIENsaWVudFNpZ25hdHVy ZVtpXTsKKwkJcGdfaG1hY19mcmVlKGN0eCk7CiAKLQkvKiBIYXNoIGl0IG9uZSBtb3JlIHRpbWUs IGFuZCBjb21wYXJlIHdpdGggU3RvcmVkS2V5ICovCi0JaWYgKHNjcmFtX0goQ2xpZW50S2V5LCBT Q1JBTV9LRVlfTEVOLCBjbGllbnRfU3RvcmVkS2V5LCAmZXJyc3RyKSA8IDApCi0JCWVsb2coRVJS T1IsICJjb3VsZCBub3QgaGFzaCBzdG9yZWQga2V5OiAlcyIsIGVycnN0cik7CisJCWZvciAoaSA9 IDA7IGkgPCBTQ1JBTV9LRVlfTEVOOyBpKyspCisJCQlDbGllbnRLZXlbaV0gPSBzdGF0ZS0+Q2xp ZW50UHJvb2ZbaV0gXiBDbGllbnRTaWduYXR1cmVbaV07CiAKLQlpZiAobWVtY21wKGNsaWVudF9T dG9yZWRLZXksIHN0YXRlLT5TdG9yZWRLZXksIFNDUkFNX0tFWV9MRU4pICE9IDApCi0JCXJldHVy biBmYWxzZTsKKwkJLyogSGFzaCBpdCBvbmUgbW9yZSB0aW1lLCBhbmQgY29tcGFyZSB3aXRoIFN0 b3JlZEtleSAqLworCQlpZiAoc2NyYW1fSChDbGllbnRLZXksIFNDUkFNX0tFWV9MRU4sIGNsaWVu dF9TdG9yZWRLZXksICZlcnJzdHIpIDwgMCkKKwkJCWVsb2coRVJST1IsICJjb3VsZCBub3QgaGFz aCBzdG9yZWQga2V5OiAlcyIsIGVycnN0cik7CiAKLQlyZXR1cm4gdHJ1ZTsKKwkJaWYgKG1lbWNt cChjbGllbnRfU3RvcmVkS2V5LCBzdGF0ZS0+c2VjcmV0c1tqXS5TdG9yZWRLZXksIFNDUkFNX0tF WV9MRU4pID09IDApIHsKKwkJCWVsb2coTE9HLCAiTW92aW5nIGZvcndhcmQgd2l0aCBQYXNzd29y ZCAlZCIsIGopOworCQkJc3RhdGUtPmNob3Nlbl9zZWNyZXQgPSBqOworCQkJcmV0dXJuIHRydWU7 IAorCQl9CisJfQorCisJcmV0dXJuIGZhbHNlOwogfQogCiAvKgpAQCAtMTM4MCw3ICsxNDEyLDcg QEAgYnVpbGRfc2VydmVyX2ZpbmFsX21lc3NhZ2Uoc2NyYW1fc3RhdGUgKnN0YXRlKQogCXBnX2ht YWNfY3R4ICpjdHggPSBwZ19obWFjX2NyZWF0ZShQR19TSEEyNTYpOwogCiAJLyogY2FsY3VsYXRl IFNlcnZlclNpZ25hdHVyZSAqLwotCWlmIChwZ19obWFjX2luaXQoY3R4LCBzdGF0ZS0+U2VydmVy S2V5LCBTQ1JBTV9LRVlfTEVOKSA8IDAgfHwKKwlpZiAocGdfaG1hY19pbml0KGN0eCwgc3RhdGUt PnNlY3JldHNbc3RhdGUtPmNob3Nlbl9zZWNyZXRdLlNlcnZlcktleSwgU0NSQU1fS0VZX0xFTikg PCAwIHx8CiAJCXBnX2htYWNfdXBkYXRlKGN0eCwKIAkJCQkJICAgKHVpbnQ4ICopIHN0YXRlLT5j bGllbnRfZmlyc3RfbWVzc2FnZV9iYXJlLAogCQkJCQkgICBzdHJsZW4oc3RhdGUtPmNsaWVudF9m aXJzdF9tZXNzYWdlX2JhcmUpKSA8IDAgfHwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2xpYnBx L2F1dGguYyBiL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGguYwppbmRleCA1Y2ZkZTFlYWExMy4uNTU2 OTU5OWFiMzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGguYworKysgYi9zcmMv YmFja2VuZC9saWJwcS9hdXRoLmMKQEAgLTU4LDggKzU4LDcgQEAgc3RhdGljIHZvaWQgc2V0X2F1 dGhuX2lkKFBvcnQgKnBvcnQsIGNvbnN0IGNoYXIgKmlkKTsKIHN0YXRpYyBpbnQJQ2hlY2tQYXNz d29yZEF1dGgoUG9ydCAqcG9ydCwgY29uc3QgY2hhciAqKmxvZ2RldGFpbCk7CiBzdGF0aWMgaW50 CUNoZWNrUFdDaGFsbGVuZ2VBdXRoKFBvcnQgKnBvcnQsIGNvbnN0IGNoYXIgKipsb2dkZXRhaWwp OwogCi1zdGF0aWMgaW50CUNoZWNrTUQ1QXV0aChQb3J0ICpwb3J0LCBjaGFyICpzaGFkb3dfcGFz cywKLQkJCQkJCSBjb25zdCBjaGFyICoqbG9nZGV0YWlsKTsKK3N0YXRpYyBpbnQJQ2hlY2tNRDVB dXRoKFBvcnQgKnBvcnQsIGNvbnN0IGNoYXIgKipwYXNzd29yZHMsIGludCBudW0sIGNvbnN0IGNo YXIgKipsb2dkZXRhaWwpOwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNzkwLDggKzc4OSw5IEBAIHN0YXRp YyBpbnQKIENoZWNrUGFzc3dvcmRBdXRoKFBvcnQgKnBvcnQsIGNvbnN0IGNoYXIgKipsb2dkZXRh aWwpCiB7CiAJY2hhcgkgICAqcGFzc3dkOwotCWludAkJCXJlc3VsdDsKLQljaGFyCSAgICpzaGFk b3dfcGFzczsKKwlpbnQJCQlyZXN1bHQgPSBTVEFUVVNfRVJST1I7CisJaW50CQkJaSwgbnVtOwor CWNoYXIJICAgKipwYXNzd29yZHM7CiAKIAlzZW5kQXV0aFJlcXVlc3QocG9ydCwgQVVUSF9SRVFf UEFTU1dPUkQsIE5VTEwsIDApOwogCkBAIC03OTksMTcgKzc5OSwyMSBAQCBDaGVja1Bhc3N3b3Jk QXV0aChQb3J0ICpwb3J0LCBjb25zdCBjaGFyICoqbG9nZGV0YWlsKQogCWlmIChwYXNzd2QgPT0g TlVMTCkKIAkJcmV0dXJuIFNUQVRVU19FT0Y7CQkvKiBjbGllbnQgd291bGRuJ3Qgc2VuZCBwYXNz d29yZCAqLwogCi0Jc2hhZG93X3Bhc3MgPSBnZXRfcm9sZV9wYXNzd29yZChwb3J0LT51c2VyX25h bWUsIGxvZ2RldGFpbCk7Ci0JaWYgKHNoYWRvd19wYXNzKQotCXsKLQkJcmVzdWx0ID0gcGxhaW5f Y3J5cHRfdmVyaWZ5KHBvcnQtPnVzZXJfbmFtZSwgc2hhZG93X3Bhc3MsIHBhc3N3ZCwKLQkJCQkJ CQkJCWxvZ2RldGFpbCk7Ci0JfQotCWVsc2UKLQkJcmVzdWx0ID0gU1RBVFVTX0VSUk9SOworCXBh c3N3b3JkcyA9IGdldF9yb2xlX3Bhc3N3b3Jkcyhwb3J0LT51c2VyX25hbWUsIGxvZ2RldGFpbCwg Jm51bSk7CisJaWYgKHBhc3N3b3JkcyAhPSBOVUxMKSB7CisJCWZvciAoaSA9IDA7IGkgPCBudW07 IGkrKykgCisJCXsKKwkJCXJlc3VsdCA9IHBsYWluX2NyeXB0X3ZlcmlmeShwb3J0LT51c2VyX25h bWUsIHBhc3N3b3Jkc1tpXSwgcGFzc3dkLAorCQkJCQkJCQkJCWxvZ2RldGFpbCk7CisJCQlpZiAo cmVzdWx0ID09IFNUQVRVU19PSykKKwkJCQlicmVhazsgLyogRm91bmQgYSBtYXRjaGluZyBwYXNz d29yZCwgbm8gbmVlZCB0byB0cnkgYW55IG90aGVycyAqLworCQl9CisJCWZvciAoaSA9IDA7IHBh c3N3b3Jkc1tpXSAhPSBOVUxMOyBpKyspIAorCQkJcGZyZWUocGFzc3dvcmRzW2ldKTsKIAotCWlm IChzaGFkb3dfcGFzcykKLQkJcGZyZWUoc2hhZG93X3Bhc3MpOworCQlwZnJlZShwYXNzd29yZHMp OworCX0KKwkKIAlwZnJlZShwYXNzd2QpOwogCiAJaWYgKHJlc3VsdCA9PSBTVEFUVVNfT0spCkBA IC04MjQsMjkgKzgyOCwxNSBAQCBDaGVja1Bhc3N3b3JkQXV0aChQb3J0ICpwb3J0LCBjb25zdCBj aGFyICoqbG9nZGV0YWlsKQogc3RhdGljIGludAogQ2hlY2tQV0NoYWxsZW5nZUF1dGgoUG9ydCAq cG9ydCwgY29uc3QgY2hhciAqKmxvZ2RldGFpbCkKIHsKLQlpbnQJCQlhdXRoX3Jlc3VsdDsKLQlj aGFyCSAgICpzaGFkb3dfcGFzczsKLQlQYXNzd29yZFR5cGUgcHd0eXBlOworCWludAkJCWF1dGhf cmVzdWx0ID0gU1RBVFVTX0VSUk9SOworCWludAkJCWksIG51bTsKKwljaGFyCSAgKipwYXNzd29y ZHM7CiAKIAlBc3NlcnQocG9ydC0+aGJhLT5hdXRoX21ldGhvZCA9PSB1YVNDUkFNIHx8CiAJCSAg IHBvcnQtPmhiYS0+YXV0aF9tZXRob2QgPT0gdWFNRDUpOwogCi0JLyogRmlyc3QgbG9vayB1cCB0 aGUgdXNlcidzIHBhc3N3b3JkLiAqLwotCXNoYWRvd19wYXNzID0gZ2V0X3JvbGVfcGFzc3dvcmQo cG9ydC0+dXNlcl9uYW1lLCBsb2dkZXRhaWwpOwotCi0JLyoKLQkgKiBJZiB0aGUgdXNlciBkb2Vz IG5vdCBleGlzdCwgb3IgaGFzIG5vIHBhc3N3b3JkIG9yIGl0J3MgZXhwaXJlZCwgd2UKLQkgKiBz dGlsbCBnbyB0aHJvdWdoIHRoZSBtb3Rpb25zIG9mIGF1dGhlbnRpY2F0aW9uLCB0byBhdm9pZCBy ZXZlYWxpbmcgdG8KLQkgKiB0aGUgY2xpZW50IHRoYXQgdGhlIHVzZXIgZGlkbid0IGV4aXN0LiAg SWYgJ21kNScgaXMgYWxsb3dlZCwgd2UgY2hvb3NlCi0JICogd2hldGhlciB0byB1c2UgJ21kNScg b3IgJ3NjcmFtLXNoYS0yNTYnIGF1dGhlbnRpY2F0aW9uIGJhc2VkIG9uIGN1cnJlbnQKLQkgKiBw YXNzd29yZF9lbmNyeXB0aW9uIHNldHRpbmcuICBUaGUgaWRlYSBpcyB0aGF0IG1vc3QgZ2VudWlu ZSB1c2VycwotCSAqIHByb2JhYmx5IGhhdmUgYSBwYXNzd29yZCBvZiB0aGF0IHR5cGUsIGFuZCBp ZiB3ZSBwcmV0ZW5kIHRoYXQgdGhpcyB1c2VyCi0JICogaGFkIGEgcGFzc3dvcmQgb2YgdGhhdCB0 eXBlLCB0b28sIGl0ICJibGVuZHMgaW4iIGJlc3QuCi0JICovCi0JaWYgKCFzaGFkb3dfcGFzcykK LQkJcHd0eXBlID0gUGFzc3dvcmRfZW5jcnlwdGlvbjsKLQllbHNlCi0JCXB3dHlwZSA9IGdldF9w YXNzd29yZF90eXBlKHNoYWRvd19wYXNzKTsKKwkvKiBGaXJzdCBsb29rIHVwIHRoZSB1c2VyJ3Mg cGFzc3dvcmRzLiAqLworCXBhc3N3b3JkcyA9IGdldF9yb2xlX3Bhc3N3b3Jkcyhwb3J0LT51c2Vy X25hbWUsIGxvZ2RldGFpbCwgJm51bSk7CiAKIAkvKgogCSAqIElmICdtZDUnIGF1dGhlbnRpY2F0 aW9uIGlzIGFsbG93ZWQsIGRlY2lkZSB3aGV0aGVyIHRvIHBlcmZvcm0gJ21kNScgb3IKQEAgLTg1 OCwyMyArODQ4LDE3IEBAIENoZWNrUFdDaGFsbGVuZ2VBdXRoKFBvcnQgKnBvcnQsIGNvbnN0IGNo YXIgKipsb2dkZXRhaWwpCiAJICogaGFkIGFuIE1ENSBwYXNzd29yZCwgQ2hlY2tTQVNMQXV0aCgp IHdpdGggdGhlIFNDUkFNIG1lY2hhbmlzbSB3aWxsCiAJICogZmFpbC4KIAkgKi8KLQlpZiAocG9y dC0+aGJhLT5hdXRoX21ldGhvZCA9PSB1YU1ENSAmJiBwd3R5cGUgPT0gUEFTU1dPUkRfVFlQRV9N RDUpCi0JCWF1dGhfcmVzdWx0ID0gQ2hlY2tNRDVBdXRoKHBvcnQsIHNoYWRvd19wYXNzLCBsb2dk ZXRhaWwpOwotCWVsc2UKLQkJYXV0aF9yZXN1bHQgPSBDaGVja1NBU0xBdXRoKCZwZ19iZV9zY3Jh bV9tZWNoLCBwb3J0LCBzaGFkb3dfcGFzcywKLQkJCQkJCQkJCWxvZ2RldGFpbCk7CisJaWYgKHBh c3N3b3JkcyAhPSBOVUxMKSB7CisJCWlmIChwb3J0LT5oYmEtPmF1dGhfbWV0aG9kID09IHVhTUQ1 KQorCQkJYXV0aF9yZXN1bHQgPSBDaGVja01ENUF1dGgocG9ydCwgKGNvbnN0IGNoYXIgKiopIHBh c3N3b3JkcywgbnVtLCBsb2dkZXRhaWwpOworCQllbHNlCisJCQlhdXRoX3Jlc3VsdCA9IENoZWNr U0FTTEF1dGgoJnBnX2JlX3NjcmFtX21lY2gsIHBvcnQsIChjb25zdCBjaGFyICoqKSBwYXNzd29y ZHMsIG51bSwKKwkJCQkJCQkJCQkJbG9nZGV0YWlsKTsKIAotCWlmIChzaGFkb3dfcGFzcykKLQkJ cGZyZWUoc2hhZG93X3Bhc3MpOworCQlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIAorCQkJcGZy ZWUocGFzc3dvcmRzW2ldKTsKIAotCS8qCi0JICogSWYgZ2V0X3JvbGVfcGFzc3dvcmQoKSByZXR1 cm5lZCBlcnJvciwgcmV0dXJuIGVycm9yLCBldmVuIGlmIHRoZQotCSAqIGF1dGhlbnRpY2F0aW9u IHN1Y2NlZWRlZC4KLQkgKi8KLQlpZiAoIXNoYWRvd19wYXNzKQotCXsKLQkJQXNzZXJ0KGF1dGhf cmVzdWx0ICE9IFNUQVRVU19PSyk7Ci0JCXJldHVybiBTVEFUVVNfRVJST1I7CisJCXBmcmVlKHBh c3N3b3Jkcyk7CiAJfQogCiAJaWYgKGF1dGhfcmVzdWx0ID09IFNUQVRVU19PSykKQEAgLTg4NCwx MSArODY4LDEyIEBAIENoZWNrUFdDaGFsbGVuZ2VBdXRoKFBvcnQgKnBvcnQsIGNvbnN0IGNoYXIg Kipsb2dkZXRhaWwpCiB9CiAKIHN0YXRpYyBpbnQKLUNoZWNrTUQ1QXV0aChQb3J0ICpwb3J0LCBj aGFyICpzaGFkb3dfcGFzcywgY29uc3QgY2hhciAqKmxvZ2RldGFpbCkKK0NoZWNrTUQ1QXV0aChQ b3J0ICpwb3J0LCBjb25zdCBjaGFyICoqcGFzc3dvcmRzLCBpbnQgbnVtLCBjb25zdCBjaGFyICoq bG9nZGV0YWlsKQogewogCWNoYXIJCW1kNVNhbHRbNF07CQkvKiBQYXNzd29yZCBzYWx0ICovCiAJ Y2hhcgkgICAqcGFzc3dkOwogCWludAkJCXJlc3VsdDsKKwlpbnQJCQlpOwogCiAJaWYgKERiX3Vz ZXJfbmFtZXNwYWNlKQogCQllcmVwb3J0KEZBVEFMLApAQCAtOTA5LDEyICs4OTQsMTMgQEAgQ2hl Y2tNRDVBdXRoKFBvcnQgKnBvcnQsIGNoYXIgKnNoYWRvd19wYXNzLCBjb25zdCBjaGFyICoqbG9n ZGV0YWlsKQogCWlmIChwYXNzd2QgPT0gTlVMTCkKIAkJcmV0dXJuIFNUQVRVU19FT0Y7CQkvKiBj bGllbnQgd291bGRuJ3Qgc2VuZCBwYXNzd29yZCAqLwogCi0JaWYgKHNoYWRvd19wYXNzKQotCQly ZXN1bHQgPSBtZDVfY3J5cHRfdmVyaWZ5KHBvcnQtPnVzZXJfbmFtZSwgc2hhZG93X3Bhc3MsIHBh c3N3ZCwKKwlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspCisJeworCQlyZXN1bHQgPSBtZDVfY3J5 cHRfdmVyaWZ5KHBvcnQtPnVzZXJfbmFtZSwgcGFzc3dvcmRzW2ldLCBwYXNzd2QsCiAJCQkJCQkJ CSAgbWQ1U2FsdCwgNCwgbG9nZGV0YWlsKTsKLQllbHNlCi0JCXJlc3VsdCA9IFNUQVRVU19FUlJP UjsKLQorCQlpZiAocmVzdWx0ID09IFNUQVRVU19PSykKKwkJCWJyZWFrOworCX0KIAlwZnJlZShw YXNzd2QpOwogCiAJcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2xpYnBx L2NyeXB0LmMgYi9zcmMvYmFja2VuZC9saWJwcS9jcnlwdC5jCmluZGV4IDc0NWU2MTAzNGMyLi4w OWI2YmViZjQwYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbGlicHEvY3J5cHQuYworKysgYi9z cmMvYmFja2VuZC9saWJwcS9jcnlwdC5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAibGli cHEvc2NyYW0uaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2NhdGNhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lz Y2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKIApAQCAtMzQsMTMgKzM1LDE1 IEBACiAgKiBmb3IgdGhlIHBvc3RtYXN0ZXIgbG9nLCBpbiAqbG9nZGV0YWlsLiAgVGhlIGVycm9y IHJlYXNvbiBzaG91bGQgKm5vdCogYmUKICAqIHNlbnQgdG8gdGhlIGNsaWVudCwgdG8gYXZvaWQg Z2l2aW5nIGF3YXkgdXNlciBpbmZvcm1hdGlvbiEKICAqLwotY2hhciAqCi1nZXRfcm9sZV9wYXNz d29yZChjb25zdCBjaGFyICpyb2xlLCBjb25zdCBjaGFyICoqbG9nZGV0YWlsKQorY2hhciAqKgor Z2V0X3JvbGVfcGFzc3dvcmRzKGNvbnN0IGNoYXIgKnJvbGUsIGNvbnN0IGNoYXIgKipsb2dkZXRh aWwsIGludCAqbnVtKQogewotCUhlYXBUdXBsZQlyb2xlVHVwLCBwYXNzVHVwOworCUhlYXBUdXBs ZQlyb2xlVHVwOwogCURhdHVtCQlkYXR1bTsKIAlib29sCQlpc251bGw7Ci0JY2hhcgkgICAqc2hh ZG93X3Bhc3M7CisJY2hhcgkgICAqKnBhc3N3b3JkczsKKwlDYXRDTGlzdCAgICpwYXNzbGlzdDsK KwlpbnQJCSAgICBpOwogCiAJLyogR2V0IHJvbGUgaW5mbyBmcm9tIHBnX2F1dGhpZCAqLwogCXJv bGVUdXAgPSBTZWFyY2hTeXNDYWNoZTEoQVVUSE5BTUUsIFBvaW50ZXJHZXREYXR1bShyb2xlKSk7 CkBAIC01MiwzMCArNTUsMzQgQEAgZ2V0X3JvbGVfcGFzc3dvcmQoY29uc3QgY2hhciAqcm9sZSwg Y29uc3QgY2hhciAqKmxvZ2RldGFpbCkKIAl9CiAKIAlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihB VVRITkFNRSwgcm9sZVR1cCwgQW51bV9wZ19hdXRoaWRfb2lkLCAmaXNudWxsKTsKLQkKLQlwYXNz VHVwID0gU2VhcmNoU3lzQ2FjaGUxKEFVVEhQQVNTV09SRCwgZGF0dW0pOworCVJlbGVhc2VTeXND YWNoZShyb2xlVHVwKTsKKwkvKiBGaW5kIGFueSBleGlzdGluZyBwYXNzd29yZCB0aGF0IGlzIG5v dCB0aGUgb25lIGJlaW5nIHVwZGF0ZWQgdG8gZ2V0IHRoZSBzYWx0ICovCisJcGFzc2xpc3QgPSBT ZWFyY2hTeXNDYWNoZUxpc3QxKEFVVEhQQVNTV09SRE5BTUUsIGRhdHVtKTsKKwkqbnVtID0gcGFz c2xpc3QtPm5fbWVtYmVyczsKIAotCWlmICghSGVhcFR1cGxlSXNWYWxpZChwYXNzVHVwKSkKKwlp ZiAocGFzc2xpc3QtPm5fbWVtYmVycyA9PSAwKQogCXsKKwkJKm51bSA9IDA7CiAJCSpsb2dkZXRh aWwgPSBwc3ByaW50ZihfKCJVc2VyIFwiJXNcIiBoYXMgbm8gcGFzc3dvcmQgYXNzaWduZWQuIiks CiAJCQkJCQkJICByb2xlKTsKKwkJUmVsZWFzZUNhdENhY2hlTGlzdChwYXNzbGlzdCk7CiAJCXJl dHVybiBOVUxMOwkJCS8qIHVzZXIgaGFzIG5vIHBhc3N3b3JkICovCiAJfQotCWRhdHVtID0gU3lz Q2FjaGVHZXRBdHRyKEFVVEhQQVNTV09SRCwgcGFzc1R1cCwKLQkJCQkJCQlBbnVtX3BnX2F1dGhf cGFzc3dvcmRfcGFzc3dvcmQsICZpc251bGwpOwogCi0JUmVsZWFzZVN5c0NhY2hlKHJvbGVUdXAp OwotCWlmIChpc251bGwpIC8qIHRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gYW55IG1vcmUgYnV0IGp1 c3QgaW4gY2FzZSAqLworCXBhc3N3b3JkcyA9IHBhbGxvYzAoc2l6ZW9mKGNoYXIgKikgKiBwYXNz bGlzdC0+bl9tZW1iZXJzKTsgCisKKwlmb3IgKGkgPSAwOyBpIDwgcGFzc2xpc3QtPm5fbWVtYmVy czsgaSsrKQogCXsKLQkJUmVsZWFzZVN5c0NhY2hlKHBhc3NUdXApOwotCQkqbG9nZGV0YWlsID0g cHNwcmludGYoXygiVXNlciBcIiVzXCIgaGFzIG5vIHBhc3N3b3JkIGFzc2lnbmVkLiIpLAotCQkJ CQkJCSAgcm9sZSk7Ci0JCXJldHVybiBOVUxMOwkJCS8qIHVzZXIgaGFzIG5vIHBhc3N3b3JkICov CisJCUhlYXBUdXBsZQl0dXAgPSAmcGFzc2xpc3QtPm1lbWJlcnNbaV0tPnR1cGxlOworCisJCWRh dHVtID0gU3lzQ2FjaGVHZXRBdHRyKEFVVEhQQVNTV09SRE5BTUUsIHR1cCwKKwkJCQkJCQlBbnVt X3BnX2F1dGhfcGFzc3dvcmRfcGFzc3dvcmQsICZpc251bGwpOworCQlwYXNzd29yZHNbaV0gPSBU ZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKIAl9Ci0Jc2hhZG93X3Bhc3MgPSBUZXh0RGF0dW1H ZXRDU3RyaW5nKGRhdHVtKTsKLQlSZWxlYXNlU3lzQ2FjaGUocGFzc1R1cCk7CiAKLQlyZXR1cm4g c2hhZG93X3Bhc3M7CisJUmVsZWFzZUNhdENhY2hlTGlzdChwYXNzbGlzdCk7CisKKwlyZXR1cm4g cGFzc3dvcmRzOwogfQogCiAvKgpAQCAtMTA3LDcgKzExNCw3IEBAIGdldF9wYXNzd29yZF90eXBl KGNvbnN0IGNoYXIgKnNoYWRvd19wYXNzKQogICogaGFzaCwgc28gaXQgaXMgc3RvcmVkIGFzIGl0 IGlzIHJlZ2FyZGxlc3Mgb2YgdGhlIHJlcXVlc3RlZCB0eXBlLgogICovCiBjaGFyICoKLWVuY3J5 cHRfcGFzc3dvcmQoUGFzc3dvcmRUeXBlIHRhcmdldF90eXBlLCBjb25zdCBjaGFyICpyb2xlLAor ZW5jcnlwdF9wYXNzd29yZChQYXNzd29yZFR5cGUgdGFyZ2V0X3R5cGUsIGNvbnN0IGNoYXIgKnNh bHQsCiAJCQkJIGNvbnN0IGNoYXIgKnBhc3N3b3JkKQogewogCVBhc3N3b3JkVHlwZSBndWVzc2Vk X3R5cGUgPSBnZXRfcGFzc3dvcmRfdHlwZShwYXNzd29yZCk7CkBAIC0xMjgsMTMgKzEzNSwxMyBA QCBlbmNyeXB0X3Bhc3N3b3JkKFBhc3N3b3JkVHlwZSB0YXJnZXRfdHlwZSwgY29uc3QgY2hhciAq cm9sZSwKIAkJY2FzZSBQQVNTV09SRF9UWVBFX01ENToKIAkJCWVuY3J5cHRlZF9wYXNzd29yZCA9 IHBhbGxvYyhNRDVfUEFTU1dEX0xFTiArIDEpOwogCi0JCQlpZiAoIXBnX21kNV9lbmNyeXB0KHBh c3N3b3JkLCByb2xlLCBzdHJsZW4ocm9sZSksCisJCQlpZiAoIXBnX21kNV9lbmNyeXB0KHBhc3N3 b3JkLCBzYWx0LCBzdHJsZW4oc2FsdCksCiAJCQkJCQkJCWVuY3J5cHRlZF9wYXNzd29yZCwgJmVy cnN0cikpCi0JCQkJZWxvZyhFUlJPUiwgInBhc3N3b3JkIGVuY3J5cHRpb24gZmFpbGVkOiAlcyIs IGVycnN0cik7CisJCQkJZWxvZyhFUlJPUiwgInBhc3N3b3JkIGVuY3J5cHRpb24gZmFpbGVkICVz IiwgZXJyc3RyKTsKIAkJCXJldHVybiBlbmNyeXB0ZWRfcGFzc3dvcmQ7CiAKIAkJY2FzZSBQQVNT V09SRF9UWVBFX1NDUkFNX1NIQV8yNTY6Ci0JCQlyZXR1cm4gcGdfYmVfc2NyYW1fYnVpbGRfc2Vj cmV0KHBhc3N3b3JkKTsKKwkJCXJldHVybiBwZ19iZV9zY3JhbV9idWlsZF9zZWNyZXQocGFzc3dv cmQsIHNhbHQpOwogCiAJCWNhc2UgUEFTU1dPUkRfVFlQRV9QTEFJTlRFWFQ6CiAJCQllbG9nKEVS Uk9SLCAiY2Fubm90IGVuY3J5cHQgcGFzc3dvcmQgd2l0aCAncGxhaW50ZXh0JyIpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKaW5kZXggYzk5NDFkOWNiNGYuLmMzY2I2Yzc2YWE1IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTgyNiw4 ICs4MjYsOSBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCU9SREVSIE9SRElOQUxJVFkgT1RI RVJTIE9VVF9QIE9VVEVSX1AKIAlPVkVSIE9WRVJMQVBTIE9WRVJMQVkgT1ZFUlJJRElORyBPV05F RCBPV05FUgogCi0JUEFSQUxMRUwgUEFSQU1FVEVSIFBBUlNFUiBQQVJUSUFMIFBBUlRJVElPTiBQ QVNTSU5HIFBBU1NXT1JEIFBBVEgKLQlQTEFDSU5HIFBMQU4gUExBTlMgUE9MSUNZCisKKwlQQVJB TExFTCBQQVJBTUVURVIgUEFSU0VSIFBBUlRJQUwgUEFSVElUSU9OIFBBU1NJTkcgUEFTU05BTUUg UEFTU1dPUkQgCisJUEFUSCBQTEFDSU5HIFBMQU4gUExBTlMgUE9MSUNZCiAJUE9TSVRJT04gUFJF Q0VESU5HIFBSRUNJU0lPTiBQUkVTRVJWRSBQUkVQQVJFIFBSRVBBUkVEIFBSSU1BUlkKIAlQUklP UiBQUklWSUxFR0VTIFBST0NFRFVSQUwgUFJPQ0VEVVJFIFBST0NFRFVSRVMgUFJPR1JBTSBQVUJM SUNBVElPTgogCkBAIC0xMjU2LDYgKzEyNTcsMTUgQEAgQWx0ZXJPcHRSb2xlRWxlbToKIAkJCQkJ CQkgZXJyaGludCgiUmVtb3ZlIFVORU5DUllQVEVEIHRvIHN0b3JlIHRoZSBwYXNzd29yZCBpbiBl bmNyeXB0ZWQgZm9ybSBpbnN0ZWFkLiIpLAogCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24oQDEp KSk7CiAJCQkJfQorCQkJfCBQQVNTTkFNRSBTY29uc3QKKwkJCQl7CisJCQkJCSQkID0gbWFrZURl ZkVsZW0oInBhc3NuYW1lIiwKKwkJCQkJCQkJCSAoTm9kZSAqKW1ha2VTdHJpbmcoJDIpLCBAMSk7 CisJCQkJfQorCQkJfCBWQUxJRCBGT1IgU2NvbnN0CisJCQkJeworCQkJCQkkJCA9IG1ha2VEZWZF bGVtKCJ2YWxpZEZvciIsIChOb2RlICopbWFrZVN0cmluZygkMyksIEAxKTsKKwkJCQl9CiAJCQl8 IElOSEVSSVQKIAkJCQl7CiAJCQkJCSQkID0gbWFrZURlZkVsZW0oImluaGVyaXQiLCAoTm9kZSAq KW1ha2VCb29sZWFuKHRydWUpLCBAMSk7CkBAIC0xNzA4Miw2ICsxNzA5Miw3IEBAIHVucmVzZXJ2 ZWRfa2V5d29yZDoKIAkJCXwgUEFSVElBTAogCQkJfCBQQVJUSVRJT04KIAkJCXwgUEFTU0lORwor CQkJfCBQQVNTTkFNRQogCQkJfCBQQVNTV09SRAogCQkJfCBQQVRICiAJCQl8IFBMQU4KQEAgLTE3 NzAwLDYgKzE3NzExLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBQQVJUSUFMCiAJCQl8 IFBBUlRJVElPTgogCQkJfCBQQVNTSU5HCisJCQl8IFBBU1NOQU1FCiAJCQl8IFBBU1NXT1JECiAJ CQl8IFBBVEgKIAkJCXwgUExBQ0lORwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2Fj aGUvY2F0Y2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2NhdGNhY2hlLmMKaW5kZXgg MzU2ZTljZGU2ZmIuLmM0MjFhYzBiMTlmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9jYXRjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2NhdGNhY2hlLmMK QEAgLTExMDQsNyArMTEwNCw3IEBAIEluZGV4U2Nhbk9LKENhdENhY2hlICpjYWNoZSwgU2Nhbktl eSBjdXJfc2tleSkKIAogCQljYXNlIEFVVEhOQU1FOgogCQljYXNlIEFVVEhPSUQ6Ci0JCWNhc2Ug QVVUSFBBU1NXT1JEOgorCQljYXNlIEFVVEhQQVNTV09SRE5BTUU6CiAJCWNhc2UgQVVUSE1FTU1F TVJPTEU6CiAJCWNhc2UgREFUQUJBU0VPSUQ6CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL3N5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5j CmluZGV4IGRlMmIzZWMxZWJmLi45ODc5MTIwYmY3NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNj YWNoZS5jCkBAIC0yNTYsMTIgKzI1NiwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNhY2hlZGVz YyBjYWNoZWluZm9bXSA9IHsKIAkJfSwKIAkJOAogCX0sCi0Je0F1dGhQYXNzd29yZFJlbGF0aW9u SWQsCQkJLyogQVVUSFBBU1NXT1JEICovCisJe0F1dGhQYXNzd29yZFJlbGF0aW9uSWQsCQkJLyog QVVUSFBBU1NXT1JETkFNRSAqLwogCQlBdXRoUGFzc3dvcmRSb2xlT2lkSW5kZXhJZCwKLQkJMSwK KwkJMiwKIAkJewogCQkJQW51bV9wZ19hdXRoX3Bhc3N3b3JkX3JvbGVpZCwKLQkJCTAsCisJCQlB bnVtX3BnX2F1dGhfcGFzc3dvcmRfbmFtZSwKIAkJCTAsCiAJCQkwCiAJCX0sCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1dGhfcGFzc3dvcmQuaCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYXV0aF9wYXNzd29yZC5oCmluZGV4IGJlYWEyZDQwYjkwLi40MTgxY2FhZDMwYiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoX3Bhc3N3b3JkLmgKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoX3Bhc3N3b3JkLmgKQEAgLTI0LDExICsyNCwxMyBA QAogICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX2F1dGhfcGFzc3dvcmQKICAqIC0tLS0t LS0tLS0tLS0tLS0KICAqLwotQ0FUQUxPRyhwZ19hdXRoX3Bhc3N3b3JkLDQ1NDgsQXV0aFBhc3N3 b3JkUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lfUk9XVFlQRV9PSUQoNDU0OSxB dXRoUGFzc3dvcmRSZWxhdGlvbl9Sb3d0eXBlX0lkKSBCS0lfU0NIRU1BX01BQ1JPCitDQVRBTE9H KHBnX2F1dGhfcGFzc3dvcmQsNDU1MSxBdXRoUGFzc3dvcmRSZWxhdGlvbklkKSBCS0lfU0hBUkVE X1JFTEFUSU9OIEJLSV9ST1dUWVBFX09JRCg0NTUyLEF1dGhQYXNzd29yZFJlbGF0aW9uX1Jvd3R5 cGVfSWQpIEJLSV9TQ0hFTUFfTUFDUk8KIHsKIAlPaWQJCQlyb2xlaWQgQktJX0xPT0tVUChwZ19h dXRoaWQpOwkvKiBJRCBvZiBhIHJvbGUgKi8KKyAgICBOYW1lRGF0YSAgICBuYW1lOyAgICAgICAg ICAgIC8qIG5hbWUgb2YgcGFzc3dvcmQgZm9yIG11bHRpcGxlIHBhc3N3b3JkIHN1cHBvcnQgKi8K KwogI2lmZGVmIENBVEFMT0dfVkFSTEVOICAgICAgICAgICAgICAgIC8qIHZhcmlhYmxlLWxlbmd0 aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwotICAgIHRleHQgICAgICAgICAgICBwYXNzd29yZDsgICAg ICAgIC8qIHBhc3N3b3JkICovCisgICAgdGV4dCAgICAgICAgICAgIHBhc3N3b3JkIEJLSV9GT1JD RV9OT1RfTlVMTDsgICAgICAgIC8qIHBhc3N3b3JkICovCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdf YXV0aF9wYXNzd29yZDsKIApAQCAtNDQsNyArNDYsNiBAQCBERUNMQVJFX1RPQVNUKHBnX2F1dGhf cGFzc3dvcmQsIDQxNzUsIDQxNzYpOwogCiB0eXBlZGVmIEZvcm1EYXRhX3BnX2F1dGhfcGFzc3dv cmQgKkZvcm1fcGdfYXV0aF9wYXNzd29yZDsKIAotREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShw Z19hdXRoX3Bhc3N3b3JkX3JvbGVvaWRfaW5kZXgsIDQ1NTAsIEF1dGhQYXNzd29yZFJvbGVPaWRJ bmRleElkLCBvbiBwZ19hdXRoX3Bhc3N3b3JkIHVzaW5nIGJ0cmVlKHJvbGVpZCBvaWRfb3BzKSk7 Ci0KK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfYXV0aF9wYXNzd29yZF9yb2xlb2lkX2lu ZGV4LCA0NTUzLCBBdXRoUGFzc3dvcmRSb2xlT2lkSW5kZXhJZCwgb24gcGdfYXV0aF9wYXNzd29y ZCB1c2luZyBidHJlZShyb2xlaWQgb2lkX29wcywgbmFtZSBuYW1lX29wcykpOwogCiAjZW5kaWYJ CQkJCQkJLyogUEdfQVVUSF9QQVNTV09SRF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tYW5kcy91c2VyLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy91c2VyLmgKaW5kZXggM2UxYWFl NTc4NTQuLjFjMTRmNjBhMDViIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy91c2Vy LmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdXNlci5oCkBAIC0yNCw3ICsyNCw3IEBAIHR5 cGVkZWYgdm9pZCAoKmNoZWNrX3Bhc3N3b3JkX2hvb2tfdHlwZSkgKGNvbnN0IGNoYXIgKnVzZXJu YW1lLCBjb25zdCBjaGFyICpzaGFkCiAKIGV4dGVybiBQR0RMTElNUE9SVCBjaGVja19wYXNzd29y ZF9ob29rX3R5cGUgY2hlY2tfcGFzc3dvcmRfaG9vazsKIAotZXh0ZXJuIGJvb2wgaXNfcm9sZV92 YWxpZChjb25zdCBjaGFyICpyb2xlbmFtZSwgY2hhciAqKmxvZ2RldGFpbCk7CitleHRlcm4gYm9v bCBpc19yb2xlX3ZhbGlkKGNvbnN0IGNoYXIgKnJvbGVuYW1lLCBjb25zdCBjaGFyICoqbG9nZGV0 YWlsKTsKIGV4dGVybiBPaWQJQ3JlYXRlUm9sZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVJv bGVTdG10ICpzdG10KTsKIGV4dGVybiBPaWQJQWx0ZXJSb2xlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QWx0ZXJSb2xlU3RtdCAqc3RtdCk7CiBleHRlcm4gT2lkCUFsdGVyUm9sZVNldChBbHRlclJvbGVT ZXRTdG10ICpzdG10KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBxL2NyeXB0LmggYi9z cmMvaW5jbHVkZS9saWJwcS9jcnlwdC5oCmluZGV4IGI4ZmY4Y2NiNDE3Li44NGM5YzRiNGY0OCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGlicHEvY3J5cHQuaAorKysgYi9zcmMvaW5jbHVkZS9s aWJwcS9jcnlwdC5oCkBAIC0zNSw3ICszNSw3IEBAIGV4dGVybiBQYXNzd29yZFR5cGUgZ2V0X3Bh c3N3b3JkX3R5cGUoY29uc3QgY2hhciAqc2hhZG93X3Bhc3MpOwogZXh0ZXJuIGNoYXIgKmVuY3J5 cHRfcGFzc3dvcmQoUGFzc3dvcmRUeXBlIHRhcmdldF90eXBlLCBjb25zdCBjaGFyICpyb2xlLAog CQkJCQkJCSAgY29uc3QgY2hhciAqcGFzc3dvcmQpOwogCi1leHRlcm4gY2hhciAqZ2V0X3JvbGVf cGFzc3dvcmQoY29uc3QgY2hhciAqcm9sZSwgY29uc3QgY2hhciAqKmxvZ2RldGFpbCk7CitleHRl cm4gY2hhciAqKmdldF9yb2xlX3Bhc3N3b3Jkcyhjb25zdCBjaGFyICpyb2xlLCBjb25zdCBjaGFy ICoqbG9nZGV0YWlsLCBpbnQgKm51bSk7CiAKIGV4dGVybiBpbnQJbWQ1X2NyeXB0X3ZlcmlmeShj b25zdCBjaGFyICpyb2xlLCBjb25zdCBjaGFyICpzaGFkb3dfcGFzcywKIAkJCQkJCQkgY29uc3Qg Y2hhciAqY2xpZW50X3Bhc3MsIGNvbnN0IGNoYXIgKm1kNV9zYWx0LApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbGlicHEvc2FzbC5oIGIvc3JjL2luY2x1ZGUvbGlicHEvc2FzbC5oCmluZGV4IDM5 Y2NmOGYwZTMxLi4yN2I0ZTU3MDMzMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbGlicHEvc2Fz bC5oCisrKyBiL3NyYy9pbmNsdWRlL2xpYnBxL3Nhc2wuaApAQCAtNzcsNyArNzcsNyBAQCB0eXBl ZGVmIHN0cnVjdCBwZ19iZV9zYXNsX21lY2gKIAkgKgkJCQkgZGlzY2xvc2luZyB2YWxpZCB1c2Vy IG5hbWVzLgogCSAqLS0tLS0tLS0tCiAJICovCi0Jdm9pZAkgICAqKCppbml0KSAoUG9ydCAqcG9y dCwgY29uc3QgY2hhciAqbWVjaCwgY29uc3QgY2hhciAqc2hhZG93X3Bhc3MpOworCXZvaWQJICAg KigqaW5pdCkgKFBvcnQgKnBvcnQsIGNvbnN0IGNoYXIgKm1lY2gsIGNvbnN0IGNoYXIgKipzZWNy ZXRzLCBjb25zdCBpbnQgbnVtX3NlY3JldHMpOwogCiAJLyotLS0tLS0tLS0KIAkgKiBleGNoYW5n ZSgpCkBAIC0xMzEsNiArMTMxLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgcGdfYmVfc2FzbF9tZWNoCiAK IC8qIENvbW1vbiBpbXBsZW1lbnRhdGlvbiBmb3IgYXV0aC5jICovCiBleHRlcm4gaW50CUNoZWNr U0FTTEF1dGgoY29uc3QgcGdfYmVfc2FzbF9tZWNoICptZWNoLCBQb3J0ICpwb3J0LAotCQkJCQkJ ICBjaGFyICpzaGFkb3dfcGFzcywgY29uc3QgY2hhciAqKmxvZ2RldGFpbCk7CisJCQkJCQkgIGNv bnN0IGNoYXIgKipwYXNzd29yZHMsIGludCBudW0sIGNvbnN0IGNoYXIgKipsb2dkZXRhaWwpOwog CiAjZW5kaWYJCQkJCQkJLyogUEdfU0FTTF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9s aWJwcS9zY3JhbS5oIGIvc3JjL2luY2x1ZGUvbGlicHEvc2NyYW0uaAppbmRleCBjNTFlODQ4YzI0 ZC4uNzBiMDFiNTExZjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2xpYnBxL3NjcmFtLmgKKysr IGIvc3JjL2luY2x1ZGUvbGlicHEvc2NyYW0uaApAQCAtMjEsNyArMjEsNyBAQAogZXh0ZXJuIFBH RExMSU1QT1JUIGNvbnN0IHBnX2JlX3Nhc2xfbWVjaCBwZ19iZV9zY3JhbV9tZWNoOwogCiAvKiBS b3V0aW5lcyB0byBoYW5kbGUgYW5kIGNoZWNrIFNDUkFNLVNIQS0yNTYgc2VjcmV0ICovCi1leHRl cm4gY2hhciAqcGdfYmVfc2NyYW1fYnVpbGRfc2VjcmV0KGNvbnN0IGNoYXIgKnBhc3N3b3JkKTsK K2V4dGVybiBjaGFyICpwZ19iZV9zY3JhbV9idWlsZF9zZWNyZXQoY29uc3QgY2hhciAqcGFzc3dv cmQsIGNvbnN0IGNoYXIgKnNhbHQpOwogZXh0ZXJuIGJvb2wgcGFyc2Vfc2NyYW1fc2VjcmV0KGNv bnN0IGNoYXIgKnNlY3JldCwgaW50ICppdGVyYXRpb25zLCBjaGFyICoqc2FsdCwKIAkJCQkJCQkg ICB1aW50OCAqc3RvcmVkX2tleSwgdWludDggKnNlcnZlcl9rZXkpOwogZXh0ZXJuIGJvb2wgc2Ny YW1fdmVyaWZ5X3BsYWluX3Bhc3N3b3JkKGNvbnN0IGNoYXIgKnVzZXJuYW1lLApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oCmluZGV4IDhhMmFiNDA1YTI4Li5iZjg0NTkzYTYxYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAt MzM0LDYgKzMzNCw3IEBAIFBHX0tFWVdPUkQoInBhcnNlciIsIFBBUlNFUiwgVU5SRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGFydGlhbCIsIFBBUlRJQUwsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhcnRpdGlvbiIsIFBBUlRJ VElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGFzc2lu ZyIsIFBBU1NJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQo InBhc3NuYW1lIiwgUEFTU05BTUUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInBhc3N3b3JkIiwgUEFTU1dPUkQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoInBhdGgiLCBQQVRILCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJwbGFjaW5nIiwgUExBQ0lORywgUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3N5c2NhY2hlLmggYi9z cmMvaW5jbHVkZS91dGlscy9zeXNjYWNoZS5oCmluZGV4IGM3YmM2NDhmNDZhLi5hNTQzYzE4MTg4 OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUuaAorKysgYi9zcmMvaW5j bHVkZS91dGlscy9zeXNjYWNoZS5oCkBAIC00Myw3ICs0Myw3IEBAIGVudW0gU3lzQ2FjaGVJZGVu dGlmaWVyCiAJQVVUSE1FTVJPTEVNRU0sCiAJQVVUSE5BTUUsCiAJQVVUSE9JRCwKLQlBVVRIUEFT U1dPUkQsCisJQVVUSFBBU1NXT1JETkFNRSwKIAlDQVNUU09VUkNFVEFSR0VULAogCUNMQUFNTkFN RU5TUCwKIAlDTEFPSUQsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Bh c3N3b3JkLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFzc3dvcmQub3V0CmluZGV4 IDRmZmM0MWE1NDU1Li5jNmE4NGY4NmE4NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wYXNzd29yZC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXNz d29yZC5vdXQKQEAgLTEyMCw3ICsxMjAsNyBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3Bhc3N3ZF9z aGFfbGVuMiBQQVNTV09SRCAnU0NSQU0tU0hBLTI1NiQ0MDk2OkE2eEhLb0gvNDk0RTk0MQogLS0g c2hvdWxkIG5vdCBjb250YWluIHRoZSBvcmlnaW5hbCBzYWx0LgogU0VMRUNUIHJvbG5hbWUsIHBh c3N3b3JkIG5vdCBsaWtlICclQTZ4SEtvSC80OTRFOTQxZG9hUE9ZZz09JScgYXMgaXNfcm9scGFz c3dvcmRfcmVoYXNoZWQKICAgICBGUk9NIHBnX2F1dGhpZAotICAgIExFRlQgSk9JTiBwZ19hdXRo X3Bhc3N3b3JkIHAgCisgICAgTEVGVCBKT0lOIHBnX2F1dGhfcGFzc3dvcmQgcAogICAgIE9OIHBn X2F1dGhpZC5vaWQgPSBwLnJvbGVpZAogICAgIFdIRVJFIHJvbG5hbWUgTElLRSAncmVncmVzc19w YXNzd2Rfc2hhX2xlbiUnCiAgICAgT1JERVIgQlkgcm9sbmFtZTsKLS0gCjIuMzUuMQoK --000000000000a6d4f605dc27965c--