Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vILam-005KK5-7B for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Nov 2025 06:41:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vILaj-00EQBD-C0 for pgsql-hackers@arkaria.postgresql.org; Mon, 10 Nov 2025 06:41:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vILai-00EQB4-2u for pgsql-hackers@lists.postgresql.org; Mon, 10 Nov 2025 06:41:28 +0000 Received: from mail-yw1-x1131.google.com ([2607:f8b0:4864:20::1131]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vILaS-006KYR-2L for pgsql-hackers@lists.postgresql.org; Mon, 10 Nov 2025 06:41:26 +0000 Received: by mail-yw1-x1131.google.com with SMTP id 00721157ae682-787e7aa1631so7105237b3.1 for ; Sun, 09 Nov 2025 22:41:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762756872; x=1763361672; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=eXzw89oOkyjllnBU+COwFCnakwioM3ywtuVFkdoCSDY=; b=ZUZdilOshfWl157iKLQeDgJkbvct1rytHotcQxMgV1kARNH9oNB+r7Yfg7sGYJCK/w xuY8LlPurY31bRRqAGPpOceHJEYQcGHN4YYC4SlXvGB33DtW+PmRz+ZywqVV3QrktleW vwTADbUIweOMZeVogsqqXec9UWrn072OeThmNABox1Bgsv3mU0VZhgv65RPh5zs54Woc Rznm7fbRJFuzZGdwkrQZphEWLOyu8Dhxb9nVOtVrD/HYqFfrCC04spU8zbzgn3//4PTx kIeECC3ruGNojrpdu5Pvz9qAALDXX7vcjNMMLIbD6PawDPCjUvHfL+YbwGelV4YPlRzR 23yA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762756872; x=1763361672; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=eXzw89oOkyjllnBU+COwFCnakwioM3ywtuVFkdoCSDY=; b=QR8aySpZPkdmBhrDxTHTb7ppcLLYBg9qlrx5eO0UtQkuiNmCYVhCoPqx7B263oXsZ7 zqJbVwXqYqJ6F2h675GZV/2RjRgXv1Q4k/ECb6h9FV73ualEMVouuTDa++TcAFDlkJdJ n8DwZV6roIHd/Pucc/37/Wh6gCwfYQ8DTuLfRc4pMZfEJkWYlheenJ52jjST5KxVTOcq JRrZWq/nr1UoLJWdpVdBvUbe3RK25guQfDZM8uJJmc/M8hBejbYFBozekGVD3BHli1sR hUjkt4NzB28pMD/lrX4VXm21w9aTojwQa9HzyV/3fnGQwpu0P9/A/Gi4y05FvrNp5oGw dt9A== X-Forwarded-Encrypted: i=1; AJvYcCUx6cDFYRg9/PFcrE+iCD+qN+OHe+D1RUwABiDiICCIln/PpBHnLkX84O1wCQ1ZNBkR8ag+fGwI8NN4wu4g@lists.postgresql.org X-Gm-Message-State: AOJu0YyBLn1qnJBOEw/sDRulgnfgXKHWLGueylqCq0T8xJl/ZG+upsQu LzWAZEIBnsJcNknNSpcKC2XhaMH2ZT5FVPiQbYVpBrRSYRc1uYXgcyUeuEH7K5A+zjca+MOuHdz 3RMAhTZwu2rkTKGzwEgkp9I2jSmny1+0= X-Gm-Gg: ASbGncsnqW6T/kxGIT7T7ByYKrgdjdV2c/7/IS2KEq8LXqayt49SuWRVlxlcWsW8/kA j6pK4ZV3QkHwZp1i8KyErLce6DORFKQPtUdPSdyVCY3M4Ox0TYf35fHDF3R1FxxyltUVp8OpYwG sZguFZOGQNpn1DMzHBjhCMIkNUFJ9JawzBalU2OHUTKMeNN/qrDMGmonZB+tUKZHF0sPZ+OjL2b OJEppc2kH96xd6t5oGN9KNuPujSHFOi2qB5NL8RScP7zG05RjvbpEOzob69ULw1fVKOEvJcJ0Vy 2wg532JqDBZ/bMJqfg== X-Google-Smtp-Source: AGHT+IEXtOyp+/XSpvmjWLvKIqjtGDxjuxT/xZCHswFnF/MWwXTUWkkOeJ1ah4mQZZl6LPb+HQMBAUQriVdvvRnuQhM= X-Received: by 2002:a05:690e:1614:b0:63f:b1fd:3850 with SMTP id 956f58d0204a3-640d3310ac8mr5910104d50.33.1762756871865; Sun, 09 Nov 2025 22:41:11 -0800 (PST) MIME-Version: 1.0 References: <9d6897bd-855d-44a6-8ebe-17b2b1d04430@uni-muenster.de> In-Reply-To: From: Pavel Stehule Date: Mon, 10 Nov 2025 07:40:30 +0100 X-Gm-Features: AWmQ_bkoMKDsz4273KbJgNLR6SyPqhlvMAlalmsThv5d7gnZY8__nuhEnVMJdI4 Message-ID: Subject: Re: proposal: schema variables To: Jim Jones Cc: Bruce Momjian , Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers , jian he , Alvaro Herrera , PegoraroF10 Content-Type: multipart/mixed; boundary="0000000000002d69be064337d139" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002d69be064337d139 Content-Type: multipart/alternative; boundary="0000000000002d69bc064337d137" --0000000000002d69bc064337d137 Content-Type: text/plain; charset="UTF-8" Hi fresh rebase Regards Pavel --0000000000002d69bc064337d137 Content-Type: text/html; charset="UTF-8"
Hi

fresh rebase

Regards

Pavel
--0000000000002d69bc064337d137-- --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20251110-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5bd1 RnJvbSAzMGI1OTQ1YWI0MzRiMjgxYzY1ZjczMzIwYjMxZmUwNWQ2NTBmYmE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IE1vbiwgMiBKdW4gMjAyNSAyMjozMzoyNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQv MTVdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBzaW52 YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhhc2gg dGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Igd3Jp dGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fubm90 IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVkIHdo ZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLCB3 aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1NCArKysrKysrKysrKystCiBzcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgIDIgKwogLi4uL2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgMTEwICsrKysrKysrKwogc3JjL3Rl c3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSAgICAgICAgIHwgICAxICsKIC4uLi9pc29s YXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA1MCArKysrCiAuLi4vZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dCAgICAgICAgfCAyMTQgKysrKysrKysrKysr KysrKysrCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbCAgICAgfCAx NTEgKysrKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY4MyBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggZDhlZGU0ZmE4YzguLmM5NDExNDQzYzZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKICNp bmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgpAQCAtMTU0LDcgKzE1NSw4IEBAIGNyZWF0ZV92YXJp YWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogfQogCiAvKgotICogRHJvcCB2YXJpYWJsZSBieSBP SUQKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQgcmVnaXN0ZXIgdGhlIG5lZWRlZCBzZXNz aW9uIHZhcmlhYmxlCisgKiBjbGVhbnVwLgogICovCiB2b2lkCiBEcm9wVmFyaWFibGVCeUlkKE9p ZCB2YXJpZCkKQEAgLTE3NCw0ICsxNzYsNyBAQCBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkK IAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwkvKiBkbyB0aGUgbmVjZXNzYXJ5IGNsZWFudXAgaW4gbG9jYWwgbWVtb3J5LCBp ZiBuZWVkZWQgKi8KKwlTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3ModmFyaWQpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IGM3ZjY0MjRiNzZiLi5i YjA2M2JiN2JiYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAt MTMsOCArMTMsOCBAQAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jl cy5oIgotCiAjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImFjY2Vz cy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCkBAIC03Niw2 ICs3NiwxNCBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJdm9pZAkgICAqZG9tYWlu X2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhp ZDsKIAorCS8qCisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBsYXN0 IHRyYW5zYWN0aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2YXJpYWJsZSwgaWYgYW55LiAgV2Ug bmVlZCB0aGlzIGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgorCSAqIHZh cmlhYmxlcyBkcm9wcGVkIGJ5IHRoZSBsb2NhbCBiYWNrZW5kLCBpbiBjYXNlIHRoZSBvcGVyYXRp b24gaXMgcm9sbGVkCisJICogYmFjay4KKwkgKi8KKwlMb2NhbFRyYW5zYWN0aW9uSWQgZHJvcF9s eGlkOworCiAJLyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJl IG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZSBhCiAJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVu IGhhdmUgdG8gY2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbApAQCAtOTIsNiArMTAw LDE3IEBAIHN0YXRpYyBIVEFCICpzZXNzaW9udmFycyA9IE5VTEw7CS8qIGhhc2ggdGFibGUgZm9y IHNlc3Npb24gdmFyaWFibGVzICovCiAKIHN0YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1l bW9yeUNvbnRleHQgPSBOVUxMOwogCisvKiBiZWNvbWVzIHRydWUgd2hlbiB3ZSByZWNlaXZlIGEg c2ludmFsIG1lc3NhZ2UgKi8KK3N0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsK KworLyoKKyAqIFRoZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90 IHJlbW92ZWQgaW1tZWRpYXRlbHkuICBXZSBkbworICogdGhhdCBpbiB0aGUgbmV4dCB0cmFuc2Fj dGlvbiB0aGF0IHJlYWRzIG9yIHdyaXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCisgKiAidmFsaWRh dGVkX2x4aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQgc2FpZCB2YWxp ZGF0aW9uLCBzbworICogdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZvcnQuCisg Ki8KK3N0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVkX2x4aWQgPSBJbnZhbGlkTG9j YWxUcmFuc2FjdGlvbklkOworCiAvKgogICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24g dmFyaWFibGUgaW52YWxpZGF0aW9uLgogICovCkBAIC0xMjQsNiArMTQzLDM4IEBAIHBnX3Zhcmlh YmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFs dWUpCiAJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFsdWUgPT0gaGFzaHZhbHVl KQogCQl7CiAJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJbmVlZHNfdmFsaWRhdGlvbiA9 IHRydWU7CisJCX0KKwl9Cit9CisKKy8qCisgKiBIYW5kbGUgdGhlIGxvY2FsIG1lbW9yeSBjbGVh bnVwIGZvciBhIERST1AgVkFSSUFCTEUgY29tbWFuZC4KKyAqCisgKiBDYWxsZXIgc2hvdWxkIHRh a2UgY2FyZSBvZiByZW1vdmluZyB0aGUgcGdfdmFyaWFibGUgZW50cnkgZmlyc3QuCisgKi8KK3Zv aWQKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCit7CisJQXNzZXJ0 KExvY2FsVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT52eGlkLmx4aWQpKTsKKworCWlmIChz ZXNzaW9udmFycykKKwl7CisJCWJvb2wJCWZvdW5kOworCQlTVmFyaWFibGUJc3ZhciA9IChTVmFy aWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJCQkJCQkJCQkgICBI QVNIX0ZJTkQsICZmb3VuZCk7CisKKwkJaWYgKGZvdW5kKQorCQl7CisJCQkvKgorCQkJICogU2F2 ZSB0aGUgY3VycmVudCB0b3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQgdG8gbWFrZSBzdXJl IHdlCisJCQkgKiB3b24ndCBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgbG9jYWwgdmFyaWFibGUg c3RvcmFnZSBpbgorCQkJICogdmFsaWRhdGVfYWxsX3Nlc3Npb25fdmFyaWFibGVzKCkgd2hlbiB0 aGUgaW52YWxpZGF0aW9uIG1lc3NhZ2UKKwkJCSAqIGZyb20gRFJPUCBWQVJJQUJMRSBhcnJpdmVz LiAgQWZ0ZXIgYWxsLCB0aGUgdHJhbnNhY3Rpb24gY291bGQKKwkJCSAqIHN0aWxsIGJlIHJvbGxl ZCBiYWNrLgorCQkJICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJc3Zhci0+ZHJv cF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CiAJCX0KIAl9CiB9CkBAIC0xNzcsNiArMjI4LDY3 IEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIpCiAJcmV0dXJuIHJl c3VsdDsKIH0KIAorLyoKKyAqIENoZWNrIGFsbCBwb3RlbnRpYWxseSBpbnZhbGlkIHNlc3Npb24g dmFyaWFibGUgZGF0YSBpbiBsb2NhbCBtZW1vcnkgYW5kIGZyZWUKKyAqIHRoZSBtZW1vcnkgZm9y IGFsbCBpbnZhbGlkIG9uZXMuICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgYW55IHJl YWQgb3IKKyAqIHdyaXRlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZS4gIEZyZWVpbmcgb2YgYSB2YXJp YWJsZSdzIG1lbW9yeSBpcyBwb3N0cG9uZWQgaWYKKyAqIHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBk cm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLCBzaW5jZSB0aGF0CisgKiBvcGVyYXRp b24gY291bGQgc3RpbGwgYmUgcm9sbGVkIGJhY2suCisgKgorICogSXQgaXMgcG9zc2libGUgdGhh dCB3ZSByZWNlaXZlIGEgY2FjaGUgaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2hpbGUKKyAqIHJlbW92 ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCkgaXMgZXhlY3V0aW5nLCBzbyB3ZSBjYW5ub3Qg Z3VhcmFudGVlIHRoYXQKKyAqIGFsbCBlbnRyaWVzIGluICJzZXNzaW9udmFycyIgd2lsbCBiZSBz ZXQgdG8gImlzX3ZhbGlkIiBhZnRlciB0aGUgZnVuY3Rpb24gaXMKKyAqIGRvbmUuICBIb3dldmVy LCB3ZSBjYW4gZ3VhcmFudGVlIHRoYXQgYWxsIGVudHJpZXMgZ2V0IGNoZWNrZWQgb25jZS4KKyAq Lworc3RhdGljIHZvaWQKK3JlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHZvaWQpCit7 CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKworCS8qCisJICog VGhlIHZhbGlkYXRpb24gcmVxdWlyZXMgc3lzdGVtIGNhdGFsb2cgYWNjZXNzLCBzbyB0aGUgc2Vz c2lvbiBzdGF0ZQorCSAqIHNob3VsZCBiZSAiaW4gdHJhbnNhY3Rpb24iLgorCSAqLworCUFzc2Vy dChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisKKwlpZiAoIW5lZWRzX3ZhbGlkYXRpb24gfHwgIXNl c3Npb252YXJzKQorCQlyZXR1cm47CisKKwkvKgorCSAqIFJlc2V0IHRoZSBmbGFnIGJlZm9yZSB3 ZSBzdGFydCB0aGUgdmFsaWRhdGlvbi4gIEl0IGNhbiBiZSBzZXQgYWdhaW4gYnkKKwkgKiBjb25j dXJyZW50bHkgaW5jb21pbmcgc2ludmFsIG1lc3NhZ2VzLgorCSAqLworCW5lZWRzX3ZhbGlkYXRp b24gPSBmYWxzZTsKKworCWVsb2coREVCVUcxLCAiZWZmZWN0aXZlIGNhbGwgb2YgdmFsaWRhdGVf YWxsX3Nlc3Npb25fdmFyaWFibGVzKCkiKTsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vz c2lvbnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgm c3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCWlm IChzdmFyLT5kcm9wX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQl7CisJCQkJLyogdHJ5 IGFnYWluIGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uICovCisJCQkJbmVlZHNfdmFsaWRhdGlvbiA9 IHRydWU7CisJCQkJY29udGludWU7CisJCQl9CisKKwkJCWlmICghaXNfc2Vzc2lvbl92YXJpYWJs ZV92YWxpZChzdmFyKSkKKwkJCXsKKwkJCQlPaWQJCQl2YXJpZCA9IHN2YXItPnZhcmlkOworCisJ CQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCQkJCWhhc2hfc2VhcmNoKHNl c3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQlzdmFyID0gTlVMTDsK KwkJCX0KKwkJCWVsc2UKKwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCX0KKwl9Cit9CisK IC8qCiAgKiBJbml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGluICJzdmFyIgogICovCkBAIC0y MDYsNiArMzE4LDggQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lk IHZhcmlkKQogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWlu X2NoZWNrX2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisJc3Zhci0+ ZHJvcF9seGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisKIAlzdmFyLT5pc251bGwgPSB0cnVl OwogCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOwogCkBAIC0zMjksMjIgKzQ0Myw0MiBAQCBnZXRf c2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJaWYgKCFzZXNzaW9udmFycykKIAkJY3JlYXRl X3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKIAorCWlmICh2YWxpZGF0ZWRfbHhpZCA9PSBJbnZh bGlkTG9jYWxUcmFuc2FjdGlvbklkIHx8CisJCXZhbGlkYXRlZF9seGlkICE9IE15UHJvYy0+dnhp ZC5seGlkKQorCXsKKwkJLyogZnJlZSB0aGUgbWVtb3J5IGZyb20gZHJvcHBlZCBzZXNzaW9uIHZh cmlhYmxlcyAqLworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpOworCisJCS8q IGRvbid0IHJlcGVhdCB0aGUgYWJvdmUgc3RlcCBpbiB0aGUgc2FtZSB0cmFuc2FjdGlvbiAqLwor CQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKwogCXN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAogCQkJCQkJCQkgICBIQVNI X0VOVEVSLCAmZm91bmQpOwogCiAJaWYgKGZvdW5kKQogCXsKKwkJLyoKKwkJICogVGhlIHNlc3Np b24gdmFyaWFibGUgY291bGQgaGF2ZSBiZWVuIGRyb3BwZWQgYnkgYSBEUk9QIFZBUklBQkxFCisJ CSAqIHN0YXRlbWVudCBpbiBhIHN1YnRyYW5zYWN0aW9uIHRoYXQgd2FzIGxhdGVyIHJvbGxlZCBi YWNrLCB3aGljaAorCQkgKiBtZWFucyB0aGF0IHdlIG1heSBoYXZlIHRvIHdvcmsgd2l0aCB0aGUg ZGF0YSBvZiBhIHZhcmlhYmxlIG1hcmtlZAorCQkgKiBhcyBpbnZhbGlkLgorCQkgKi8KIAkJaWYg KCFzdmFyLT5pc192YWxpZCkKIAkJewogCQkJLyoKLQkJCSAqIElmIHRoZXJlIHdhcyBhbiBpbnZh bGlkYXRpb24gbWVzc2FnZSwgdGhlIHZhcmlhYmxlIG1pZ2h0IHN0aWxsCi0JCQkgKiBiZSB2YWxp ZCwgYnV0IHdlIGhhdmUgdG8gY2hlY2sgd2l0aCB0aGUgc3lzdGVtIGNhdGFsb2cuCisJCQkgKiBX ZSBoYXZlIHRvIGNoZWNrIHRoZSBzeXN0ZW0gY2F0YWxvZyB0byBzZWUgaWYgdGhlIHZhcmlhYmxl IGlzCisJCQkgKiBzdGlsbCB2YWxpZCwgZXZlbiBpZiBhbiBpbnZhbGlkYXRpb24gbWVzc2FnZSBz ZXQgaXQgdG8gaW52YWxpZC4KKwkJCSAqCisJCQkgKiBUaGUgdmFyaWFibGUgbXVzdCBiZSB2YWxp ZGF0ZWQgYmVmb3JlIGl0IGlzIGFjY2Vzc2VkLiAgVGhlIG9pZAorCQkJICogc2hvdWxkIGJlIHZh bGlkLCBiZWNhdXNlIHRoZSByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUgaXMKKwkJCSAqIGFscmVh ZHkgbG9ja2VkLCBhbmQgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKSB3b3VsZAor CQkJICogcmVtb3ZlIHZhcmlhYmxlcyBkcm9wcGVkIGJ5IG90aGVyIHRyYW5zYWN0aW9ucy4KIAkJ CSAqLwogCQkJaWYgKGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCiAJCQkJc3Zhci0+ aXNfdmFsaWQgPSB0cnVlOwogCQkJZWxzZQotCQkJCS8qIGlmIHRoZSB2YWx1ZSBjYW5ub3QgYmUg dmFsaWRhdGVkLCB3ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8KLQkJCQlmcmVlX3Nlc3Npb25fdmFy aWFibGVfdmFsdWUoc3Zhcik7CisJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgc3RhdGUgb2Yg c2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKIAkJfQogCX0KIAllbHNlCkBAIC00MDUsNiAr NTM5LDE2IEBAIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29s IGlzTnVsbCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRh YmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRyYW5zYWN0aW9u SWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJeworCQkvKiBm cmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICovCisJCXJlbW92 ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKwkJLyogZG9uJ3QgcmVwZWF0IHRoZSBh Ym92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRlZF9seGlkID0g TXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNo KHNlc3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRleCBhYzM2ZGZjYzE5Yi4u YzA2ZTFmYWYwMmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAg LTIxLDYgKzIxLDggQEAKICNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCiAjaW5jbHVkZSAi dGNvcC9jbWR0YWcuaCIKIAorZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9j ZXNzKE9pZCB2YXJpZCk7CisKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFy aWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZh cmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv aXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5iNjlkYWMyZGY3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtMCwwICsxLDExMCBA QAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRp b246IGxldCB2YWwgZHJvcCB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVw IHZhbDogU0VMRUNUIFZBUklBQkxFKG15dmFyKTsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJv dykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6IFNFTEVDVCBW QVJJQUJMRShteXZhcik7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgIm15dmFyIiBkb2Vzbid0 IGV4aXN0CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQor c3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUo bXl2YXIpOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBCRUdJTjsK K3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1QgVkFSSUFC TEUobXl2YXIpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJteXZhciIgZG9lc24ndCBleGlz dAorc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBk YmcgZHJvcCBjcmVhdGUgZGJnIHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0 ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUobXl2YXIpOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEg cm93KQorCitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgZHJvcHBlZCBGUk9NIHBnX2dl dF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkoKTsKK3NjaGVtYXxuYW1lIHxkcm9wcGVkCistLS0t LS0rLS0tLS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBk cm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBt eXZhciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIGRyb3BwZWQgRlJP TSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCk7CitzY2hlbWF8bmFtZXxkcm9wcGVk CistLS0tLS0rLS0tLSstLS0tLS0tCisgICAgICB8ICAgIHx0ICAgICAgCisoMSByb3cpCisKK3N0 ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUobXl2YXIpOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEg cm93KQorCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0 ZSBkYmcgdmFsIHNyMQorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBT RUxFQ1QgVkFSSUFCTEUobXl2YXIpOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitz dGVwIHMxOiBCRUdJTjsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCBkcm9wcGVkIEZS T00gcGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeSgpOworc2NoZW1hfG5hbWUgfGRyb3Bw ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQor CitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIGNyZWF0ZTogQ1JFQVRFIFZB UklBQkxFIG15dmFyIEFTIHRleHQ7CitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgZHJv cHBlZCBGUk9NIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkoKTsKK3NjaGVtYXxuYW1l fGRyb3BwZWQKKy0tLS0tLSstLS0tKy0tLS0tLS0KKyAgICAgIHwgICAgfHQgICAgICAKKygxIHJv dykKKworc3RlcCB2YWw6IFNFTEVDVCBWQVJJQUJMRShteXZhcik7CitteXZhcgorLS0tLS0KKyAg ICAgCisoMSByb3cpCisKK3N0ZXAgc3IxOiBST0xMQkFDSzsKKworc3RhcnRpbmcgcGVybXV0YXRp b246IGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2Nh cmQgc2MzIHN0YXRlCitzdGVwIGNyZWF0ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4 dDsKK3N0ZXAgbGV0MzogTEVUIG15dmFyMyA9ICd0ZXN0JzsKK3N0ZXAgczM6IEJFR0lOOworc3Rl cCBjcmVhdGU0OiBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7CitzdGVwIGxldDQ6IExF VCBteXZhcjQgPSAndGVzdCc7CitzdGVwIGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsKK3N0 ZXAgZHJvcDM6IERST1AgVkFSSUFCTEUgbXl2YXIzOworc3RlcCBpbnZhbDM6IFNFTEVDVCBDT1VO VCgqKSA+PSAwIEZST00gcGdfZm9yZWlnbl90YWJsZTsKKz9jb2x1bW4/CistLS0tLS0tLQordCAg ICAgICAKKygxIHJvdykKKworc3RlcCBkaXNjYXJkOiBESVNDQVJEIFZBUklBQkxFUzsKK3N0ZXAg c2MzOiBDT01NSVQ7CitzdGVwIHN0YXRlOiBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxl OwordmFybmFtZQorLS0tLS0tLQorbXl2YXIgIAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lz b2xhdGlvbl9zY2hlZHVsZQppbmRleCA1YWZhZTMzZDM3MC4uMzA2OGFlNDAxZGIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3Qv aXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQpAQCAtMTIwLDMgKzEyMCw0IEBAIHRlc3Q6IHNl cmlhbGl6YWJsZS1wYXJhbGxlbC0yCiB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMwogdGVz dDogbWF0dmlldy13cml0ZS1za2V3CiB0ZXN0OiBsb2NrLW5vd2FpdAordGVzdDogc2Vzc2lvbi12 YXJpYWJsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFy aWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNw ZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcyNjI5MzIxZDkwCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFi bGUuc3BlYwpAQCAtMCwwICsxLDUwIEBACisjIFRlc3Qgc2Vzc2lvbiB2YXJpYWJsZXMgbWVtb3J5 IGNsZWFudXAgZm9yIHNpbnZhbAorCitzZXR1cAoreworICAgIENSRUFURSBWQVJJQUJMRSBteXZh ciBBUyB0ZXh0OworfQorCit0ZWFyZG93bgoreworICAgIERST1AgVkFSSUFCTEUgSUYgRVhJU1RT IG15dmFyOworfQorCitzZXNzaW9uIHMxCitzdGVwIHMxCQl7IEJFR0lOOyB9CitzdGVwIGxldAl7 IExFVCBteXZhciA9ICd0ZXN0JzsgfQorc3RlcCB2YWwJeyBTRUxFQ1QgVkFSSUFCTEUobXl2YXIp OyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIGRyb3BwZWQgRlJPTSBwZ19nZXRf c2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCk7IH0KK3N0ZXAgc3IxCXsgUk9MTEJBQ0s7IH0KKwor c2Vzc2lvbiBzMgorc3RlcCBkcm9wCQl7IERST1AgVkFSSUFCTEUgbXl2YXI7IH0KK3N0ZXAgY3Jl YXRlCQl7IENSRUFURSBWQVJJQUJMRSBteXZhciBBUyB0ZXh0OyB9CisKK3Nlc3Npb24gczMKK3N0 ZXAgczMJCQl7IEJFR0lOOyB9CitzdGVwIGxldDMJCXsgTEVUIG15dmFyMyA9ICd0ZXN0JzsgfQor c3RlcCBjcmVhdGU0CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CitzdGVwIGxl dDQJCXsgTEVUIG15dmFyNCA9ICd0ZXN0JzsgfQorc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxF IG15dmFyNDsgfQorc3RlcCBpbnZhbDMJCXsgU0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19m b3JlaWduX3RhYmxlOyB9CitzdGVwIGRpc2NhcmQJeyBESVNDQVJEIFZBUklBQkxFUzsgfQorc3Rl cCBzYzMJCXsgQ09NTUlUOyB9CitzdGVwIHN0YXRlCQl7IFNFTEVDVCB2YXJuYW1lIEZST00gcGdf dmFyaWFibGU7IH0KKworc2Vzc2lvbiBzNAorc3RlcCBjcmVhdGUzCXsgQ1JFQVRFIFZBUklBQkxF IG15dmFyMyBBUyB0ZXh0OyB9CitzdGVwIGRyb3AzCQl7IERST1AgVkFSSUFCTEUgbXl2YXIzOyB9 CisKKyMgQ29uY3VycmVudCBkcm9wIG9mIGEga25vd24gdmFyaWFibGUgc2hvdWxkIGxlYWQgdG8g YW4gZXJyb3IKK3Blcm11dGF0aW9uIGxldCB2YWwgZHJvcCB2YWwKKyMgU2FtZSwgYnV0IHdpdGgg YW4gZXhwbGljaXQgdHJhbnNhY3Rpb24KK3Blcm11dGF0aW9uIGxldCB2YWwgczEgZHJvcCB2YWwg c3IxCisjIENvbmN1cnJlbnQgZHJvcC9jcmVhdGUgb2YgYSBrbm93biB2YXJpYWJsZSBzaG91bGQg bGVhZCB0byBlbXB0eSB2YXJpYWJsZQorcGVybXV0YXRpb24gbGV0IHZhbCBkYmcgZHJvcCBjcmVh dGUgZGJnIHZhbAorIyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUg c2hvdWxkIGxlYWQgdG8gZW1wdHkgdmFyaWFibGUKKyMgV2UgbmVlZCBhIHRyYW5zYWN0aW9uIHRv IG1ha2Ugc3VyZSB0aGF0IHdlIHdvbid0IGFjY2VwdCBpbnZhbGlkYXRpb24gd2hlbgorIyBjYWxs aW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0aGUgY29uY3VycmVudCBkcm9wCitwZXJtdXRhdGlvbiBs ZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsIHNyMQorIyB0ZXN0IGZvciBESVNDQVJE IEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBxdWV1ZXMgaGF2ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKK3Bl cm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwz IGRpc2NhcmQgc2MzIHN0YXRlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzX2RkbC5vdXQKaW5kZXggOWM3NTk1ZTlhNDEuLjNhZWY3NjY1ZWRjIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2Rk bC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19k ZGwub3V0CkBAIC0xNjEsMyArMTYxLDIxNyBAQCBERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHNl c3Npb24gdmFyaWFibGUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTAKIGRyb3AgY2FzY2FkZXMgdG8g c2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMQogRFJPUCBTQ0hFTUEgc3Zh cnRlc3QwMl9kZGwgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2 YXJpYWJsZSBzdmFydGVzdDAyX2RkbC5zZXN2YXIxMAorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9k ZGw7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIHZhcmNoYXI7Cist LSBkcm9wcGVkIHZhcmlhYmxlcyBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIG1lbW9yeSBiZWZvcmUg dGhlIG5leHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBuZXh0IHRy YW5zYWN0aW9uCitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwID0gJ0hlbGxvJzsKK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkoKQorICBXSEVSRSBz Y2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMQorIGNvdW50IAorLS0tLS0tLQorICAgICAxCiso MSByb3cpCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19t ZW1vcnkoKQorICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMAorIGNvdW50IAor LS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBz aG91bGQgYmUgcHJlc2VydmVkIHdoZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBh Ym9ydGVkIHRyYW5zYWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYw IEFTIHZhcmNoYXI7CitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwID0gJ0hlbGxvJzsKK0JFR0lO OworICBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKyAgLS0gc2hvdWxkIGZh aWwKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7CitFUlJPUjogIHNl c3Npb24gdmFyaWFibGUgInN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCIgZG9lc24ndCBleGlzdAorTElO RSAxOiBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgIF4KK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFC TEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsgLS0gSGVsbG8KKyBzZXN2YXI2MCAKKy0tLS0tLS0t LS0KKyBIZWxsbworKDEgcm93KQorCistLSBhbm90aGVyIHRlc3QKK0JFR0lOOworICBEUk9QIFZB UklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKyAgLS0gc2hvdWxkIGJlIG9rCisgIENSRUFU RSBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjAgQVMgaW50OworICBMRVQgc3ZhcnRlc3Rf ZGRsLnNlc3ZhcjYwID0gMTAwOworICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3Zh cjYwKTsgLS0gMTAwCisgc2VzdmFyNjAgCistLS0tLS0tLS0tCisgICAgICAxMDAKKygxIHJvdykK KworUk9MTEJBQ0s7CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsgLS0g SGVsbG8KKyBzZXN2YXI2MCAKKy0tLS0tLS0tLS0KKyBIZWxsbworKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCkKKyAgV0hFUkUg c2NoZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7IC0tIDAKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAor KDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2 MCBBUyBpbnQ7CisgIExFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjAgPSAxMDA7CisgIFNFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOworIHNlc3ZhcjYwIAorLS0tLS0tLS0tLQor ICAgICAgMTAwCisoMSByb3cpCisKKyAgU0VMRUNUIGNvdW50KCopIEZST00gcGdfZ2V0X3Nlc3Np b25fdmFyaWFibGVzX21lbW9yeSgpCisgICAgV0hFUkUgc2NoZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7 IC0tIDEKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQorKDEgcm93KQorCisgIERST1AgVkFSSUFC TEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOworQ09NTUlUOworU0VMRUNUIGNvdW50KCopIEZST00g cGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeSgpCisgIFdIRVJFIHNjaGVtYSA9ICdzdmFy dGVzdF9kZGwnOyAtLSAwCisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQ1JF QVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFC TEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyIEFTIGludDsKK0xFVCBzdmFydGVzdF9kZGwuc2VzdmFy NjEgPSAxMDsKK0xFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjIgPSAwOworQkVHSU47CisgIFNBVkVQ T0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7CisgIC0tIGZv cmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxF Q1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0tLS0t LS0KKyAgICAgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICBTRUxFQ1QgVkFS SUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKyBzZXN2YXI2MSAKKy0tLS0tLS0tLS0KKyAg ICAgICAxMAorKDEgcm93KQorCisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSBzdmFy dGVzdF9kZGwuc2VzdmFyNjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3Ro ZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3Zh cjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0tLS0tLS0KKyAgICAgICAgMAorKDEgcm93KQorCisgIFJP TExCQUNLIFRPIHMyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUo c3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKyBzZXN2YXI2MSAKKy0tLS0tLS0tLS0KKyAgICAgICAx MAorKDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHN2 YXJ0ZXN0X2RkbC5zZXN2YXI2MTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5v dGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2Vz dmFyNjIpOworIHNlc3ZhcjYyIAorLS0tLS0tLS0tLQorICAgICAgICAwCisoMSByb3cpCisKKyAg Uk9MTEJBQ0sgVE8gczE7CisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjEp OworIHNlc3ZhcjYxIAorLS0tLS0tLS0tLQorICAgICAgIDEwCisoMSByb3cpCisKKyAgU0FWRVBP SU5UIHMyOworICBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsKKyAgLS0gZm9y Y2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVD VCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworIHNlc3ZhcjYyIAorLS0tLS0tLS0t LQorICAgICAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczI7CitST0xMQkFDSzsKKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7Cisg c2VzdmFyNjEgCistLS0tLS0tLS0tCisgICAgICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNB VkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7CisgIC0t IGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBT RUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0t LS0tLS0KKyAgICAgICAgMAorKDEgcm93KQorCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2Ug Y2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworIHNlc3ZhcjYyIAorLS0tLS0tLS0tLQor ICAgICAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIC0tIGZvcmNlIGNsZWFu aW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFC TEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0tLS0tLS0KKyAgICAg ICAgMAorKDEgcm93KQorCitDT01NSVQ7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJM RShzdmFydGVzdF9kZGwuc2VzdmFyNjEpOworIHNlc3ZhcjYxIAorLS0tLS0tLS0tLQorICAgICAg IDEwCisoMSByb3cpCisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBE Uk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJP UCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7IFJPTExCQUNLOworQkVHSU47IERST1Ag VkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOyBST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBv aworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7Cisgc2VzdmFyNjEgCist LS0tLS0tLS0tCisgICAgICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9k ZGwuc2VzdmFyNjEsIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MjsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0 X2RkbDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz X2RkbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3Fs CmluZGV4IGY4NDQ0NjllY2IxLi5hNjE2ZWNkYzhlZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCkBAIC0xNDgsMyArMTQ4LDE1NCBAQCBBTFRF UiBWQVJJQUJMRSBzdmFydGVzdDAyX2RkbC5zZXN2YXIxMCBTRVQgU0NIRU1BIHN2YXJ0ZXN0MDFf ZGRsOwogCiBEUk9QIFNDSEVNQSBzdmFydGVzdDAxX2RkbCBDQVNDQURFOwogRFJPUCBTQ0hFTUEg c3ZhcnRlc3QwMl9kZGwgQ0FTQ0FERTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9kZGw7CisK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjAgQVMgdmFyY2hhcjsKKworLS0g ZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBtZW1vcnkgYmVmb3JlIHRo ZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgbmV4dCB0cmFu c2FjdGlvbgorCitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwID0gJ0hlbGxvJzsKKworU0VMRUNU IGNvdW50KCopIEZST00gcGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeSgpCisgIFdIRVJF IHNjaGVtYSA9ICdzdmFydGVzdF9kZGwnOyAtLSAxCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3Rf ZGRsLnNlc3ZhcjYwOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00g cGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeSgpCisgIFdIRVJFIHNjaGVtYSA9ICdzdmFy dGVzdF9kZGwnOyAtLSAwCisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBzaG91bGQgYmUg cHJlc2VydmVkIHdoZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBhYm9ydGVkIHRy YW5zYWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIHZhcmNo YXI7CisKK0xFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjAgPSAnSGVsbG8nOworCitCRUdJTjsKKyAg RFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjA7CisKKyAgLS0gc2hvdWxkIGZhaWwK KyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7CisKK1JPTExCQUNLOwor CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjAp OyAtLSBIZWxsbworCistLSBhbm90aGVyIHRlc3QKK0JFR0lOOworICBEUk9QIFZBUklBQkxFIHN2 YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKworICAtLSBzaG91bGQgYmUgb2sKKyAgQ1JFQVRFIFZBUklB QkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCBBUyBpbnQ7CisgIExFVCBzdmFydGVzdF9kZGwuc2Vz dmFyNjAgPSAxMDA7CisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOyAt LSAxMDAKKworUk9MTEJBQ0s7CisKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFy NjApOyAtLSBIZWxsbworCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKwor LS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX2dldF9zZXNzaW9uX3Zh cmlhYmxlc19tZW1vcnkoKQorICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMAor CitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCBBUyBpbnQ7 CisKKyAgTEVUIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCA9IDEwMDsKKworICBTRUxFQ1QgVkFSSUFC TEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwKTsKKworICBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19n ZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCkKKyAgICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRl c3RfZGRsJzsgLS0gMQorCisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOwor CitDT01NSVQ7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxl c19tZW1vcnkoKQorICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMAorCitDUkVB VEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxIEFTIGludDsKK0NSRUFURSBWQVJJQUJM RSBzdmFydGVzdF9kZGwuc2VzdmFyNjIgQVMgaW50OworCitMRVQgc3ZhcnRlc3RfZGRsLnNlc3Zh cjYxID0gMTA7CitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyID0gMDsKKworQkVHSU47CisgIFNB VkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7CisKKyAg LS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisg IFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworICBST0xMQkFDSyBUTyBz MTsKKworICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKworICBTQVZF UE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworCisgIC0t IGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBT RUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyAgUk9MTEJBQ0sgVE8gczI7 CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2Rk bC5zZXN2YXI2MSk7CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUg c3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworCisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5n IGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRs LnNlc3ZhcjYyKTsKKyAgUk9MTEJBQ0sgVE8gczE7CisKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0 ZXN0X2RkbC5zZXN2YXI2MSk7CisKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHN2 YXJ0ZXN0X2RkbC5zZXN2YXI2MTsKKworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBh bm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5z ZXN2YXI2Mik7CisgIFJPTExCQUNLIFRPIHMyOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBv aworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7CisKK0JFR0lOOworICBT QVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworCisg IC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQor ICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKworICBTQVZFUE9JTlQg czI7CisKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZh cmlhYmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOworICBST0xM QkFDSyBUTyBzMTsKKworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNl c3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7 CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2Rk bC5zZXN2YXI2MSk7CisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBE Uk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJP UCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7IFJPTExCQUNLOworQkVHSU47IERST1Ag VkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOyBST0xMQkFDSzsKKworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKworRFJPUCBWQVJJ QUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjEsIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MjsKKworRFJP UCBTQ0hFTUEgc3ZhcnRlc3RfZGRsOwotLSAKMi41MS4xCgo= --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0015-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20251110-0015-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5ao0 RnJvbSAwZjIxOTZjNGZjMTBhMTQzNmYzMjE2NDQxNTg5NmZhZTRiZmEyODg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMTVdIHBscGdzcWwgdGVzdHMKCnNldCBvZiBwbHBnc3FsIHJlbGF0ZWQgdGVzdHM6CgoqIGNo ZWNrIHNlc3Npb24gdmFyaWFibGVzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcyBhcmUgbm90IGluIGNv bGxpc2lvbiBldmVyCiogY2hlY2sgY29ycmVjdCBwbHBnc3FsIHBsYW4gY2FjaGUgaW52YWxpZGF0 aW9uIHdoZW4gc2Vzc2lvbiB2YXJpYWJsZSBpcyBkcm9wcGVkCiogY2hlY2sgc28gdGhlIHZhbHVl IG9mIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IGNvcnJ1cHRlZCwgd2hlbiB0aGUgdmFyaWFibGUg aXMKICBtb2RpZmllZCBpbnNpZGUgbmVzdGVkIGNhbGxlZCBmdW5jdGlvbnMKLS0tCiBzcmMvcGwv cGxwZ3NxbC9zcmMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9zcmMv ZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCB8IDIzOSArKysrKysrKysrKysr KysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAg MSArCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsICAgICAgfCAxNjgg KysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDQxMCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3Bs cGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxw Z3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9z cmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUK aW5kZXggNjNjYjk2ZmFlM2UuLmJiY2FlMjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvTWFrZWZpbGUKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3 ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9 IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9jYWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9s IFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3NxbF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3Fs X3JlY29yZCBwbHBnc3FsX3NpbXBsZSBwbHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3Ry YXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3Nx bF90cmlnZ2VyIHBscGdzcWxfdmFycHJvcHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQog CiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tleXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVz CiBUT09MU0RJUiA9ICQodG9wX3NyY2Rpcikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9w bC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lYzVmZmNiNDJiMgotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUub3V0CkBAIC0wLDAgKzEsMjM5IEBACistLSB2YXJpYWJsZXMgYXJlIG5vdCBjaGVja2Vk IGluIGNvbXBpbGUgdGltZQorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxw Z3NxbF9mdW5jMDBfMDEoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJ Q0UgJyUnLCBWQVJJQUJMRSh0aGlzX3ZhcmlhYmxlX2RvZXNudF9leGlzdHMpOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3Bs cGdzcWxfZnVuYzAwXzAyKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHRoaXNf dmFyaWFibGVfZG9lc250X2V4aXN0cyA9IDEwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAwXzAzKCkK K1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHRoaXNfdmFyaWFibGVfZG9lc250X2V4 aXN0c1sxMF0gPSAnSGVsbG8nOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3Vs ZCBmYWlsCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDBfMDEoKTsKK0VSUk9SOiAgc2Vz c2lvbiB2YXJpYWJsZSAidGhpc192YXJpYWJsZV9kb2VzbnRfZXhpc3RzIiBkb2Vzbid0IGV4aXN0 CitMSU5FIDE6IFZBUklBQkxFKHRoaXNfdmFyaWFibGVfZG9lc250X2V4aXN0cykKKyAgICAgICAg ICAgICAgICAgXgorUVVFUlk6ICBWQVJJQUJMRSh0aGlzX3ZhcmlhYmxlX2RvZXNudF9leGlzdHMp CitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDBfMDEo KSBsaW5lIDMgYXQgUkFJU0UKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMF8wMigpOwor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ0aGlzX3ZhcmlhYmxlX2RvZXNudF9leGlzdHMiIGRv ZXNuJ3QgZXhpc3QKK0xJTkUgMTogTEVUIHRoaXNfdmFyaWFibGVfZG9lc250X2V4aXN0cyA9IDEw CisgICAgICAgICAgICBeCitRVUVSWTogIExFVCB0aGlzX3ZhcmlhYmxlX2RvZXNudF9leGlzdHMg PSAxMAorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAw XzAyKCkgbGluZSAzIGF0IFNRTCBzdGF0ZW1lbnQKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2Z1 bmMwMF8wMygpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ0aGlzX3ZhcmlhYmxlX2RvZXNu dF9leGlzdHMiIGRvZXNuJ3QgZXhpc3QKK0xJTkUgMTogTEVUIHRoaXNfdmFyaWFibGVfZG9lc250 X2V4aXN0c1sxMF0gPSAnSGVsbG8nCisgICAgICAgICAgICBeCitRVUVSWTogIExFVCB0aGlzX3Zh cmlhYmxlX2RvZXNudF9leGlzdHNbMTBdID0gJ0hlbGxvJworQ09OVEVYVDogIFBML3BnU1FMIGZ1 bmN0aW9uIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAwXzAzKCkgbGluZSAzIGF0IFNRTCBzdGF0ZW1l bnQKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDBfMDEoKTsKK0RST1AgRlVO Q1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDBfMDIoKTsKK0RST1AgRlVOQ1RJT04gc3ZhcnRl c3RfcGxwZ3NxbF9mdW5jMDBfMDMoKTsKKy0tIGNoZWNrIG9mIGNvcnJlY3QgcGxhbiBjYWNoZSBp bnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKK0NS RUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAyIEFTIGludFtdOworLS0gcGxwZ3NxbCB2YXJp YWJsZXMgYW5kIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW4gY29sbGlzaW9uIGV2ZXIKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAxKCkKK1JF VFVSTlMgdm9pZCBBUyAkJAorREVDTEFSRSBwbHBnc3FsX3Nlc3ZhcjAxIGludDsKK0JFR0lOCisg IHBscGdzcWxfc2VzdmFyMDEgOj0gMTAwOworICBMRVQgcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7 CisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBw bHBnc3FsX3Nlc3ZhcjAxLCBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKTsKK0VORDsKKyQkIExB TkdVQUdFIHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEoKTsKK05P VElDRTogIHBscGdzcWwgdmFyOiAxMDAsIHNlc3Npb24gdmFyOiAxMDAwCisgc3ZhcnRlc3RfcGxw Z3NxbF9mdW5jMDFfMDEgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cp CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAy KCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorREVDTEFSRSBfX3BscGdzcWxfc2VzdmFyMDEgaW50Owor QkVHSU4KKyAgX19wbHBnc3FsX3Nlc3ZhcjAxIDo9IDEwMDsKKyAgTEVUIF9fcGxwZ3NxbF9zZXN2 YXIwMSA9IDEwMDA7CisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFy OiAlJywKKyAgICBfX3BscGdzcWxfc2VzdmFyMDEsIFZBUklBQkxFKF9fcGxwZ3NxbF9zZXN2YXIw MSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBz dmFydGVzdF9wbHBnc3FsX2Z1bmMwMV8wMigpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJf X3BscGdzcWxfc2VzdmFyMDEiIGRvZXNuJ3QgZXhpc3QKK0xJTkUgMTogTEVUIF9fcGxwZ3NxbF9z ZXN2YXIwMSA9IDEwMDAKKyAgICAgICAgICAgIF4KK1FVRVJZOiAgTEVUIF9fcGxwZ3NxbF9zZXN2 YXIwMSA9IDEwMDAKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBzdmFydGVzdF9wbHBnc3Fs X2Z1bmMwMV8wMigpIGxpbmUgNSBhdCBTUUwgc3RhdGVtZW50CistLSBzaG91bGQgZmFpbAorQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDMoKQorUkVU VVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBwbHBnc3FsX3Nlc3ZhcjAxIDo9IDEwMDsKKyAgTEVU IHBscGdzcWxfc2VzdmFyMDEgPSAxMDAwOworICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyOiAl LCBzZXNzaW9uIHZhcjogJScsCisgICAgcGxwZ3NxbF9zZXN2YXIwMSwgVkFSSUFCTEUocGxwZ3Nx bF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworRVJST1I6ICAicGxwZ3Nx bF9zZXN2YXIwMSIgaXMgbm90IGEga25vd24gdmFyaWFibGUKK0xJTkUgNDogICBwbHBnc3FsX3Nl c3ZhcjAxIDo9IDEwMDsKKyAgICAgICAgICBeCitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdz cWxfZnVuYzAxXzAxKCk7CitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAy KCk7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMigp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJ TgorICBMRVQgcGxwZ3NxbF9zZXN2YXIwMSA9IDE7CisgIHZbVkFSSUFCTEUocGxwZ3NxbF9zZXN2 YXIwMSldID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2OworICBMRVQgcGxwZ3NxbF9zZXN2 YXIwMiA9IHY7CisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAyW1ZBUklBQkxFKHBscGdzcWxfc2VzdmFy MDEpXSA9IC0xOworICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAy KTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9m dW5jMDIoKTsKK05PVElDRTogIHsxMDB9CitOT1RJQ0U6ICB7LTF9Cisgc3ZhcnRlc3RfcGxwZ3Nx bF9mdW5jMDIgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0RST1Ag VkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSwgcGxwZ3NxbF9zZXN2YXIwMjsKK0NSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nl c3ZhcjAyIEFTIGludFtdOworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAyKCk7CitOT1RJ Q0U6ICB7MTAwfQorTk9USUNFOiAgey0xfQorIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAyIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitEUk9QIEZVTkNUSU9OIHN2YXJ0 ZXN0X3BscGdzcWxfZnVuYzAyKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc2VzdmFyMDEsIHBs cGdzcWxfc2VzdmFyMDI7CistLSByZXR1cm5zIHVwZGF0ZWQgdmFsdWUKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2 YXJ0ZXN0X3BscGdzcWxfaW5jKGludCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQg cGxwZ3NxbF9zZXN2YXIwMSA9IENPQUxFU0NFKFZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDEpICsg JDEsICQxKTsKKyAgUkVUVVJOIFZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDEpOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxKTsKKyBzdmFy dGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7Cisgc3Zh cnRlc3RfcGxwZ3NxbF9pbmMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgIDIKKygxIHJvdykKKworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEpOworIHN2 YXJ0ZXN0X3BscGdzcWxfaW5jIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxKSBGUk9N IGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgICAg ICA1CisgICAgICAgICAgICAgICAgICAgIDYKKyAgICAgICAgICAgICAgICAgICAgNworICAgICAg ICAgICAgICAgICAgICA4CisgICAgICAgICAgICAgICAgICAgIDkKKyAgICAgICAgICAgICAgICAg ICAxMAorICAgICAgICAgICAgICAgICAgIDExCisgICAgICAgICAgICAgICAgICAgMTIKKyAgICAg ICAgICAgICAgICAgICAxMworKDEwIHJvd3MpCisKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nl c3ZhcjAyIEFTIG51bWVyaWM7CitMRVQgcGxwZ3NxbF9zZXN2YXIwMiA9IDAuMDsKK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKG51bWVyaWMpCitSRVRVUk5T IGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc2VzdmFyMDIgPSBDT0FMRVNDRShWQVJJ QUJMRShwbHBnc3FsX3Nlc3ZhcjAyKSArICQxLCAkMSk7CisgIFJFVFVSTiBWQVJJQUJMRShwbHBn c3FsX3Nlc3ZhcjAyKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRl c3RfcGxwZ3NxbF9pbmMoMS4wKTsKKyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qgc3Zh cnRlc3RfcGxwZ3NxbF9pbmMoMS4wKTsKKyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgMgorKDEgcm93KQorCitTRUxFQ1Qg c3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMS4wKTsKKyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgMworKDEgcm93KQorCitTRUxF Q1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMS4wKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsK KyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgICAgICA1CisgICAgICAgICAgICAgICAgICAg IDYKKyAgICAgICAgICAgICAgICAgICAgNworICAgICAgICAgICAgICAgICAgICA4CisgICAgICAg ICAgICAgICAgICAgIDkKKyAgICAgICAgICAgICAgICAgICAxMAorICAgICAgICAgICAgICAgICAg IDExCisgICAgICAgICAgICAgICAgICAgMTIKKyAgICAgICAgICAgICAgICAgICAxMworKDEwIHJv d3MpCisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSwgcGxwZ3NxbF9zZXN2YXIwMjsK K0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoaW50KTsKK0RST1AgRlVOQ1RJT04g c3ZhcnRlc3RfcGxwZ3NxbF9pbmMobnVtZXJpYyk7CistLSB0aGUgdmFsdWUgc2hvdWxkIG5vdCBi ZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAzIHRleHQ7CitMRVQg cGxwZ3NxbF9zZXN2YXIwMyA9ICdhYmMnOworQ1JFQVRFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdz cWxfZnVuYzAzKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIHN2YXJ0ZXN0 X3BscGdzcWxfZnVuY19uZXN0ZWQoVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMykpOworRU5ECisk JCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVu Y19uZXN0ZWQodCB0ZXh0KQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3Nx bF9zZXN2YXIwMyA9ICdCT09NISc7CisgIFJFVFVSTiB0OworRU5EOworJCQgTEFOR1VBR0UgcGxw Z3NxbDsKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMygpOworIHN2YXJ0ZXN0X3BscGdz cWxfZnVuYzAzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGFiYworKDEgcm93KQorCitE Uk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAzKCk7CitEUk9QIEZVTkNUSU9OIHN2 YXJ0ZXN0X3BscGdzcWxfZnVuY19uZXN0ZWQodGV4dCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxf c2VzdmFyMDM7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKaW5kZXggMzNjNDlhYzI1ZDkuLjFkMDFkMWMy NjI5IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCkBAIC04OCw2ICs4OCw3IEBAIHRlc3RzICs9IHsK ICAgICAgICdwbHBnc3FsX3RyYXAnLAogICAgICAgJ3BscGdzcWxfdHJpZ2dlcicsCiAgICAgICAn cGxwZ3NxbF92YXJwcm9wcycsCisgICAgICAncGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlJywKICAg ICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3Fs X3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li42MWQ0NmE3OTJlYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwv cGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDE2OCBAQAorLS0gdmFyaWFi bGVzIGFyZSBub3QgY2hlY2tlZCBpbiBjb21waWxlIHRpbWUKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAwXzAxKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAor QkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUodGhpc192YXJpYWJsZV9kb2VzbnRf ZXhpc3RzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAwXzAyKCkKK1JFVFVSTlMgdm9pZCBBUyAk JAorQkVHSU4KKyAgTEVUIHRoaXNfdmFyaWFibGVfZG9lc250X2V4aXN0cyA9IDEwOworRU5EOwor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRl c3RfcGxwZ3NxbF9mdW5jMDBfMDMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBMRVQg dGhpc192YXJpYWJsZV9kb2VzbnRfZXhpc3RzWzEwXSA9ICdIZWxsbyc7CitFTkQ7CiskJCBMQU5H VUFHRSBwbHBnc3FsOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxf ZnVuYzAwXzAxKCk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDBfMDIoKTsKK1NFTEVD VCBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMF8wMygpOworCitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0 X3BscGdzcWxfZnVuYzAwXzAxKCk7CitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVu YzAwXzAyKCk7CitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAwXzAzKCk7CisK Ky0tIGNoZWNrIG9mIGNvcnJlY3QgcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJ QUJMRSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nl c3ZhcjAyIEFTIGludFtdOworCistLSBwbHBnc3FsIHZhcmlhYmxlcyBhbmQgc2Vzc2lvbiB2YXJp YWJsZXMgYXJlIG5vdCBpbiBjb2xsaXNpb24gZXZlcgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEoKQorUkVUVVJOUyB2b2lkIEFTICQkCitERUNM QVJFIHBscGdzcWxfc2VzdmFyMDEgaW50OworQkVHSU4KKyAgcGxwZ3NxbF9zZXN2YXIwMSA6PSAx MDA7CisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gMTAwMDsKKyAgUkFJU0UgTk9USUNFICdwbHBn c3FsIHZhcjogJSwgc2Vzc2lvbiB2YXI6ICUnLAorICAgIHBscGdzcWxfc2VzdmFyMDEsIFZBUklB QkxFKHBscGdzcWxfc2VzdmFyMDEpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VM RUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAxKCk7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAyKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAor REVDTEFSRSBfX3BscGdzcWxfc2VzdmFyMDEgaW50OworQkVHSU4KKyAgX19wbHBnc3FsX3Nlc3Zh cjAxIDo9IDEwMDsKKyAgTEVUIF9fcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7CisgIFJBSVNFIE5P VElDRSAncGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBfX3BscGdzcWxfc2Vz dmFyMDEsIFZBUklBQkxFKF9fcGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAx XzAyKCk7CisKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFy dGVzdF9wbHBnc3FsX2Z1bmMwMV8wMygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIHBs cGdzcWxfc2VzdmFyMDEgOj0gMTAwOworICBMRVQgcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7Cisg IFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBwbHBn c3FsX3Nlc3ZhcjAxLCBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKTsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEo KTsKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDIoKTsKKworQ1JFQVRF IE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKQorUkVUVVJOUyB2 b2lkIEFTICQkCitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOworQkVHSU4KKyAgTEVUIHBs cGdzcWxfc2VzdmFyMDEgPSAxOworICB2W1ZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDEpXSA9IDEw MDsKKyAgUkFJU0UgTk9USUNFICclJywgdjsKKyAgTEVUIHBscGdzcWxfc2VzdmFyMDIgPSB2Owor ICBMRVQgcGxwZ3NxbF9zZXN2YXIwMltWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKV0gPSAtMTsK KyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMik7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKTsK KworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxLCBwbHBnc3FsX3Nlc3ZhcjAyOworCitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zZXN2YXIwMiBBUyBpbnRbXTsKKworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVu YzAyKCk7CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKTsKKworRFJP UCBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxLCBwbHBnc3FsX3Nlc3ZhcjAyOworCistLSByZXR1 cm5zIHVwZGF0ZWQgdmFsdWUKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGlu dDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoaW50 KQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gQ09B TEVTQ0UoVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMSkgKyAkMSwgJDEpOworICBSRVRVUk4gVkFS SUFCTEUocGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitT RUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9p bmMoMSk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7CisKK1NFTEVDVCBzdmFydGVz dF9wbHBnc3FsX2luYygxKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKworQ1JFQVRFIFZB UklBQkxFIHBscGdzcWxfc2VzdmFyMDIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc2VzdmFy MDIgPSAwLjA7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxf aW5jKG51bWVyaWMpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc2Vz dmFyMDIgPSBDT0FMRVNDRShWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAyKSArICQxLCAkMSk7Cisg IFJFVFVSTiBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAyKTsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CisKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxLjApOworU0VMRUNUIHN2YXJ0 ZXN0X3BscGdzcWxfaW5jKDEuMCk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMS4wKTsK KworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwxMCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSwgcGxwZ3NxbF9zZXN2YXIw MjsKKworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2luYyhpbnQpOworRFJPUCBGVU5D VElPTiBzdmFydGVzdF9wbHBnc3FsX2luYyhudW1lcmljKTsKKworLS0gdGhlIHZhbHVlIHNob3Vs ZCBub3QgYmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMyB0ZXh0 OworTEVUIHBscGdzcWxfc2VzdmFyMDMgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIHN2YXJ0 ZXN0X3BscGdzcWxfZnVuYzAzKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJO IHN2YXJ0ZXN0X3BscGdzcWxfZnVuY19uZXN0ZWQoVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMykp OworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04gc3ZhcnRlc3Rf cGxwZ3NxbF9mdW5jX25lc3RlZCh0IHRleHQpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisg IExFVCBwbHBnc3FsX3Nlc3ZhcjAzID0gJ0JPT00hJzsKKyAgUkVUVVJOIHQ7CitFTkQ7CiskJCBM QU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDMoKTsKKwor RFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMygpOworRFJPUCBGVU5DVElPTiBz dmFydGVzdF9wbHBnc3FsX2Z1bmNfbmVzdGVkKHRleHQpOworCitEUk9QIFZBUklBQkxFIHBscGdz cWxfc2VzdmFyMDM7Ci0tIAoyLjUxLjEKCg== --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0013-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20251110-0013-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5bp2 RnJvbSBkZDNkMmE4YThlYmFjMmZmYzgyZGM0MDhhMjQwN2U2N2I5NzhkNTk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IE1vbiwgMiBKdW4gMjAyNSAyMDo0MTo1NyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MTVdIERJU0NBUkQgVkFSSUFCTEVTCgpJbXBsZW1lbnRhdGlvbiBvZiBESVNDQVJEIFZBUklBQkxF UyBjb21tYW5kcyBieSByZW1vdmluZyBoYXNoIHRhYmxlIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMK YW5kIHJlc2V0dGluZyByZWxhdGVkIG1lbW9yeSBjb250ZXh0LgotLS0KIGRvYy9zcmMvc2dtbC9y ZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8IDEzICsrKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMyICsrKysrKysrKystLQogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrCiBzcmMvYmFj a2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMyArKwogc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRl L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlc19kbWwub3V0ICAgICAgICB8IDUwICsrKysrKysrKysrKysrKysrKysKIC4uLi9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsICAgICB8IDI0ICsrKysrKysrKwog MTEgZmlsZXMgY2hhbmdlZCwgMTM1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2Rpc2NhcmQuc2dtbAppbmRleCBiZjQ0YzUyM2NhYy4uNjFiOTY3ZjljOWIgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCkBAIC0yMSw3ICsyMSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAg PHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VR VUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CitESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFV RU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KIDwvc3lub3BzaXM+CiAgPC9y ZWZzeW5vcHNpc2Rpdj4KIApAQCAtNjYsNiArNjYsMTYgQEAgRElTQ0FSRCB7IEFMTCB8IFBMQU5T IHwgU0VRVUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CiAgICAgPC9saXN0aXRlbT4KICAgIDwv dmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlZB UklBQkxFUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFJlc2V0cyB0aGUgdmFsdWUgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzLiBJZiBhIHZhcmlh YmxlCisgICAgICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIDxsaXRl cmFsPk5VTEw8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPlRF TVBPUkFSWTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+VEVNUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAg PGxpc3RpdGVtPgpAQCAtOTMsNiArMTAzLDcgQEAgU0VMRUNUIHBnX2Fkdmlzb3J5X3VubG9ja19h bGwoKTsKIERJU0NBUkQgUExBTlM7CiBESVNDQVJEIFRFTVA7CiBESVNDQVJEIFNFUVVFTkNFUzsK K0RJU0NBUkQgVkFSSUFCTEVTOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgICAgPC9saXN0 aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZGlzY2FyZC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCmluZGV4IDgxMzM5 YTc1YTUyLi41OTA0YTZjNDkxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlz Y2FyZC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwpAQCAtMTgsNiArMTgs NyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGlz Y2FyZC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKKyNpbmNsdWRlICJjb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKICNp bmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9wb3J0YWwuaCIKQEAgLTQ4LDYg KzQ5LDEwIEBAIERpc2NhcmRDb21tYW5kKERpc2NhcmRTdG10ICpzdG10LCBib29sIGlzVG9wTGV2 ZWwpCiAJCQlSZXNldFRlbXBUYWJsZU5hbWVzcGFjZSgpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBE SVNDQVJEX1ZBUklBQkxFUzoKKwkJCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOworCQkJYnJlYWs7 CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgRElTQ0FSRCB0YXJn ZXQ6ICVkIiwgc3RtdC0+dGFyZ2V0KTsKIAl9CkBAIC03NSw0ICs4MCw1IEBAIERpc2NhcmRBbGwo Ym9vbCBpc1RvcExldmVsKQogCVJlc2V0UGxhbkNhY2hlKCk7CiAJUmVzZXRUZW1wVGFibGVOYW1l c3BhY2UoKTsKIAlSZXNldFNlcXVlbmNlQ2FjaGVzKCk7CisJUmVzZXRTZXNzaW9uVmFyaWFibGVz KCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggM2JhZmE3 MDE1MDkuLmM3ZjY0MjRiNzZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCkBAIC0xMDMsNyArMTAzLDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVt IGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBn X3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAot CUFzc2VydChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Yg c2Vzc2lvbiB2YXJpYWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2Vp dmluZyBhbiBpbnZhbGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJM RVMgXQorCSAqIGRlc3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICgh c2Vzc2lvbnZhcnMpCisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBu b3Qgc3BlY2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjU3LDgg KzY2Myw4IEBAIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkoUEdfRlVOQ1RJT05fQVJH UykKIAogCQkJCS8qCiAJCQkJICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGF0IGEgdmFyaWFibGUg aGFzIGJlZW4gZHJvcHBlZCBhbmQKLQkJCQkgKiBzb21lb25lIGNyZWF0ZWQgYSBuZXcgdmFyaWFi bGUgd2l0aCB0aGUgc2FtZSBvYmplY3QgSUQuCi0JCQkJICogVXNlIHRoZSBjYXRhbG9nIGluZm9y bWF0aW9uIG9ubHkgaWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCisJCQkJICogc29tZW9uZSBjcmVh dGVkIGEgbmV3IHZhcmlhYmxlIHdpdGggdGhlIHNhbWUgb2JqZWN0IElELiBVc2UKKwkJCQkgKiB0 aGUgY2F0YWxvZyBpbmZvcm1hdGlvbiBvbmx5IGlmIHRoYXQgaXMgbm90IHRoZSBjYXNlLgogCQkJ CSAqLwogCQkJCWlmIChzdmFyLT5jcmVhdGVfbHNuID09IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24p CiAJCQkJewpAQCAtNzAwLDMgKzcwNiwyMyBAQCBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVt b3J5KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXR1cm4gKERhdHVtKSAwOwogfQorCisvKgorICog RmFzdCBkcm9wIG9mIHRoZSBjb21wbGV0ZSBjb250ZW50IG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxl cyBoYXNoIHRhYmxlLCBhbmQKKyAqIGNsZWFudXAgb2YgYW55IGxpc3QgdGhhdCB3b3VsZG4ndCBi ZSByZWxldmFudCBhbnltb3JlLgorICogVGhpcyBpcyB1c2VkIGJ5IHRoZSBESVNDQVJEIFZBUklB QkxFUyAoYW5kIERJU0NBUkQgQUxMKSBjb21tYW5kLgorICovCit2b2lkCitSZXNldFNlc3Npb25W YXJpYWJsZXModm9pZCkKK3sKKwkvKiBkZXN0cm95IGhhc2ggdGFibGUgYW5kIHJlc2V0IHJlbGF0 ZWQgbWVtb3J5IGNvbnRleHQgKi8KKwlpZiAoc2Vzc2lvbnZhcnMpCisJeworCQloYXNoX2Rlc3Ry b3koc2Vzc2lvbnZhcnMpOworCQlzZXNzaW9udmFycyA9IE5VTEw7CisJfQorCisJLyogcmVsZWFz ZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IHNlc3Npb24gdmFyaWFibGVzICovCisJaWYgKFNWYXJpYWJs ZU1lbW9yeUNvbnRleHQgIT0gTlVMTCkKKwkJTWVtb3J5Q29udGV4dFJlc2V0KFNWYXJpYWJsZU1l bW9yeUNvbnRleHQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNzM4ZDEzOTE2ODQuLjg1MWMzMDc3MDRj IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKQEAgLTIxNDcsNyArMjE0NywxMyBAQCBEaXNjYXJkU3RtdDoKIAkJCQkJ bi0+dGFyZ2V0ID0gRElTQ0FSRF9TRVFVRU5DRVM7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJ CQl9CisJCQl8IERJU0NBUkQgVkFSSUFCTEVTCisJCQkJeworCQkJCQlEaXNjYXJkU3RtdCAqbiA9 IG1ha2VOb2RlKERpc2NhcmRTdG10KTsKIAorCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1ZBUklB QkxFUzsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJOwogCiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMK aW5kZXggMGVhN2ExNjY5NzcuLmFlY2IzNTdmMDI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtMjk2Nyw2 ICsyOTY3LDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBE SVNDQVJEX1NFUVVFTkNFUzoKIAkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRfU0VRVUVOQ0VTOwog CQkJCQlicmVhazsKKwkJCQljYXNlIERJU0NBUkRfVkFSSUFCTEVTOgorCQkJCQl0YWcgPSBDTURU QUdfRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1bHQ6CiAJCQkJCXRh ZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGZlMDIw YTliMzgxLi5hNDU5N2FiYWQwNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtNDI0MSw3ICs0 MjQxLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIC8qIERJU0NB UkQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJESVNDQVJEIikpCi0JCUNPTVBMRVRFX1dJVEgoIkFM TCIsICJQTEFOUyIsICJTRVFVRU5DRVMiLCAiVEVNUCIpOworCQlDT01QTEVURV9XSVRIKCJBTEwi LCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiLCAiVkFSSUFCTEVTIik7CiAKIC8qIERPICov CiAJZWxzZSBpZiAoTWF0Y2hlcygiRE8iKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaAppbmRleCAyZWJlODQ3Nzc4OS4uYWMzNmRmY2MxOWIgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTI5LDQgKzI5LDYgQEAgZXh0ZXJuIE9iamVjdEFk ZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFy U3RtdCAqc3QKIGV4dGVybiB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg TGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJCQkJCQkgICBRdWVyeUVudmly b25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9uICpxYyk7CiAKK2V4dGVybiB2b2lkIFJl c2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgK aW5kZXggMGZjY2U2MjFjMzQuLjExMjQ0MGZhOGIwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBA IC00MTA3LDYgKzQxMDcsNyBAQCB0eXBlZGVmIGVudW0gRGlzY2FyZE1vZGUKIAlESVNDQVJEX1BM QU5TLAogCURJU0NBUkRfU0VRVUVOQ0VTLAogCURJU0NBUkRfVEVNUCwKKwlESVNDQVJEX1ZBUklB QkxFUywKIH0gRGlzY2FyZE1vZGU7CiAKIHR5cGVkZWYgc3RydWN0IERpc2NhcmRTdG10CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oCmluZGV4IGJlMTQwNTljYzc5Li5iYzJhODFjYmYyZiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0 YWdsaXN0LmgKQEAgLTEzNSw2ICsxMzUsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfQUxM LCAiRElTQ0FSRCBBTEwiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19E SVNDQVJEX1BMQU5TLCAiRElTQ0FSRCBQTEFOUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0RJU0NBUkRfU0VRVUVOQ0VTLCAiRElTQ0FSRCBTRVFVRU5DRVMiLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1RFTVAsICJESVNDQVJE IFRFTVAiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1ZB UklBQkxFUywgIkRJU0NBUkQgVkFSSUFCTEVTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfRE8sICJETyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0RST1BfQUNDRVNTX01FVEhPRCwgIkRST1AgQUNDRVNTIE1FVEhPRCIsIHRydWUsIGZhbHNl LCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BR0dSRUdBVEUsICJEUk9QIEFHR1JFR0FU RSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dAppbmRleCA2N2Y3OGE1NDhkYy4uZGZiZTc5MDBj MWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXNfZG1sLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzX2RtbC5vdXQKQEAgLTQ2NiwzICs0NjYsNTMgQEAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9u IHZhcmlhYmxlIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NwogZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9u IHZhcmlhYmxlIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OAogZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9u IHZhcmlhYmxlIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OQogRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRl c3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sX2Rpc2Nh cmQ7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTAgQVMgdmFy Y2hhcjsKK0xFVCBzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCA9ICdIZWxsbyc7CitTRUxF Q1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTApOworIHNlc3ZhcjUwIAor LS0tLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX2dl dF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkoKSBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZG1s X2Rpc2NhcmQnOworIGNvdW50IAorLS0tLS0tLQorICAgICAxCisoMSByb3cpCisKK0RJU0NBUkQg QUxMOworU0VMRUNUIGNvdW50KCopIEZST00gcGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9y eSgpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK1NFTEVDVCBWQVJJQUJM RShzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7Cisgc2VzdmFyNTAgCistLS0tLS0tLS0t CisgCisoMSByb3cpCisKK0xFVCBzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCA9ICdIZWxs byc7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5 KCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDEKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJM RVM7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5 KCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworU0VMRUNUIFZBUklBQkxF KHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwKTsKKyBzZXN2YXI1MCAKKy0tLS0tLS0tLS0K KyAKKygxIHJvdykKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQgQ0FTQ0FERTsK K05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWxf ZGlzY2FyZC5zZXN2YXI1MApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXNfZG1sLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzX2RtbC5zcWwKaW5kZXggMmM4ZDZjM2E0OTcuLmIwYWVlYjg2NWMyIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKQEAgLTM0OCwzICszNDgs MjcgQEAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OSk7CiAKIERST1AgU0NI RU1BIHN2YXJ0ZXN0X2RtbCBDQVNDQURFOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1s X3dyaXRlX29ubHlfcm9sZTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9kbWxfZGlzY2FyZDsK KworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwIEFTIHZhcmNo YXI7CitMRVQgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTAgPSAnSGVsbG8nOworU0VMRUNU IFZBUklBQkxFKHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwKTsKKworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeSgpIFdIRVJFIHNjaGVtYSA9 ICdzdmFydGVzdF9kbWxfZGlzY2FyZCc7CisKK0RJU0NBUkQgQUxMOworCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCk7CisKK1NFTEVDVCBWQVJJ QUJMRShzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7CitMRVQgc3ZhcnRlc3RfZG1sX2Rp c2NhcmQuc2VzdmFyNTAgPSAnSGVsbG8nOworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19nZXRf c2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCk7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCitTRUxF Q1QgY291bnQoKikgRlJPTSBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5KCk7CisKK1NF TEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7CitEUk9QIFNDSEVN QSBzdmFydGVzdF9kbWxfZGlzY2FyZCBDQVNDQURFOwotLSAKMi41MS4xCgo= --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0012-function-pg_get_session_variables_memory-for-cleanin.patch" Content-Disposition: attachment; filename="v20251110-0012-function-pg_get_session_variables_memory-for-cleanin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5by3 RnJvbSAzMWY2MTQzYThkNjZhZDIzMzkyNTdiMzA2ZjM2OTU4MjYzZjQzYjg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDEy LzE1XSBmdW5jdGlvbiBwZ19nZXRfc2Vzc2lvbl92YXJpYWJsZXNfbWVtb3J5IGZvciBjbGVhbmlu ZwogdGVzdHMKClRoaXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVi dWdnaW5nLiAgSXQgcmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5k IGNhbiB0aGVyZWZvcmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRo YXQgd2VyZSBkcm9wcGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNz IHRoZSBzaGFyZWQgaW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgIHwgICA4ICsrCiAyIGZpbGVzIGNoYW5n ZWQsIDEwOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IDliZGM5MmJmZDMwLi4zYmFmYTcwMTUwOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9y L2V4ZWNkZXNjLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJl eGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNs dWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9wbGFubm9kZXMuaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfdHlwZS5oIgpAQCAtNjAwLDMgKzYwMSwxMDIgQEAgRXhlY3V0ZUxldFN0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoK KyAqIHBnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnkgLSBkZXNpZ25lZCBmb3IgdGVzdGlu ZworICoKKyAqIFRoaXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVi dWdnaW5nLiAgSXQgcmV0dXJucyB0aGUKKyAqIGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMg YXMtaXMsIGFuZCBjYW4gdGhlcmVmb3JlIGRpc3BsYXkgZGF0YSBhYm91dAorICogc2Vzc2lvbiB2 YXJpYWJsZXMgdGhhdCB3ZXJlIGRyb3BwZWQsIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRp ZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVkIGludmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1 bQorcGdfZ2V0X3Nlc3Npb25fdmFyaWFibGVzX21lbW9yeShQR19GVU5DVElPTl9BUkdTKQorewor I2RlZmluZSBOVU1fUEdfR0VUX1NFU1NJT05fVkFSSUFCTEVTX01FTU9SWV9BVFRTIDgKKworCS8q CisJICogTWFrZSBzdXJlIHN5c2NhY2hlIGVudHJpZXMgYXJlIGZsdXNoZWQgZm9yIHJlY2VudCBj YXRhbG9nIGNoYW5nZXMuIEZvcgorCSAqIHN0YWJsZSBiZWhhdmlvciB3ZSBuZWVkIHRvIHJlbGlh Ymx5IGRldGVjdCB3aGljaCB2YXJpYWJsZXMgd2VyZQorCSAqIGRyb3BwZWQuCisJICovCisJQWNj ZXB0SW52YWxpZGF0aW9uTWVzc2FnZXMoKTsKKworCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZv LCAwKTsKKworCWlmIChzZXNzaW9udmFycykKKwl7CisJCVJldHVyblNldEluZm8gKnJzaW5mbyA9 IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+cmVzdWx0aW5mbzsKKwkJSEFTSF9TRVFfU1RBVFVT IHN0YXR1czsKKwkJU1ZhcmlhYmxlCXN2YXI7CisKKwkJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBz ZXNzaW9udmFycyk7CisKKwkJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2Vh cmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCQl7CisJCQlEYXR1bQkJdmFsdWVzW05VTV9QR19HRVRf U0VTU0lPTl9WQVJJQUJMRVNfTUVNT1JZX0FUVFNdOworCQkJYm9vbAkJbnVsbHNbTlVNX1BHX0dF VF9TRVNTSU9OX1ZBUklBQkxFU19NRU1PUllfQVRUU107CisJCQlIZWFwVHVwbGUJdHA7CisJCQli b29sCQl2YXJfaXNfdmFsaWQgPSBmYWxzZTsKKworCQkJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9m KHZhbHVlcykpOworCQkJbWVtc2V0KG51bGxzLCAwLCBzaXplb2YobnVsbHMpKTsKKworCQkJdmFs dWVzWzBdID0gT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCk7CisJCQl2YWx1ZXNbM10gPSBP YmplY3RJZEdldERhdHVtKHN2YXItPnR5cGlkKTsKKworCQkJLyoKKwkJCSAqIEl0IGlzIHBvc3Np YmxlIHRoYXQgdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgZnJvbSB0aGUKKwkJCSAqIGNh dGFsb2csIGJ1dCBub3QgeWV0IHB1cmdlZCBmcm9tIHRoZSBoYXNoIHRhYmxlLgorCQkJICovCisJ CQl0cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShzdmFy LT52YXJpZCkpOworCisJCQlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJCQl7CisJCQkJRm9y bV9wZ192YXJpYWJsZSB2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0cCk7 CisKKwkJCQkvKgorCQkJCSAqIEl0IGlzIGFsc28gcG9zc2libGUgdGhhdCBhIHZhcmlhYmxlIGhh cyBiZWVuIGRyb3BwZWQgYW5kCisJCQkJICogc29tZW9uZSBjcmVhdGVkIGEgbmV3IHZhcmlhYmxl IHdpdGggdGhlIHNhbWUgb2JqZWN0IElELgorCQkJCSAqIFVzZSB0aGUgY2F0YWxvZyBpbmZvcm1h dGlvbiBvbmx5IGlmIHRoYXQgaXMgbm90IHRoZSBjYXNlLgorCQkJCSAqLworCQkJCWlmIChzdmFy LT5jcmVhdGVfbHNuID09IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24pCisJCQkJeworCQkJCQl2YWx1 ZXNbMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKAorCQkJCQkJCQkJCQkJCWdldF9uYW1lc3BhY2Vf bmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpKTsKKworCQkJCQl2YWx1ZXNbMl0gPSBDU3RyaW5n R2V0VGV4dERhdHVtKE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCQkJCQl2YWx1ZXNbNF0g PSBDU3RyaW5nR2V0VGV4dERhdHVtKGZvcm1hdF90eXBlX2JlKHN2YXItPnR5cGlkKSk7CisJCQkJ CXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJdmFsdWVzWzZdID0gQm9v bEdldERhdHVtKAorCQkJCQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25J ZCwgc3Zhci0+dmFyaWQsCisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFDTF9TRUxFQ1Qp ID09IEFDTENIRUNLX09LKTsKKworCQkJCQl2YWx1ZXNbN10gPSBCb29sR2V0RGF0dW0oCisJCQkJ CQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwK KwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwgQUNMX1VQREFURSkgPT0gQUNMQ0hFQ0tfT0sp OworCisJCQkJCXZhcl9pc192YWxpZCA9IHRydWU7CisJCQkJfQorCisJCQkJUmVsZWFzZVN5c0Nh Y2hlKHRwKTsKKwkJCX0KKworCQkJLyogaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgY2F0YWxvZyBl bnRyeSwgcmV0dXJuIG51bGwgdmFsdWVzICovCisJCQlpZiAoIXZhcl9pc192YWxpZCkKKwkJCXsK KwkJCQludWxsc1sxXSA9IHRydWU7CisJCQkJbnVsbHNbMl0gPSB0cnVlOworCQkJCW51bGxzWzRd ID0gdHJ1ZTsKKwkJCQl2YWx1ZXNbNV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJCQkJbnVsbHNb Nl0gPSB0cnVlOworCQkJCW51bGxzWzddID0gdHJ1ZTsKKwkJCX0KKworCQkJdHVwbGVzdG9yZV9w dXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVzYywgdmFsdWVzLCBudWxs cyk7CisJCX0KKwl9CisKKwlyZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKaW5kZXggMDBhZWZlZGE1ZTkuLjRjNjJhYzYxMTA0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5k YXQKQEAgLTEyNjI3LDQgKzEyNjI3LDEyIEBACiAgIHByb2FyZ25hbWVzID0+ICd7cGlkLGlvX2lk LGlvX2dlbmVyYXRpb24sc3RhdGUsb3BlcmF0aW9uLG9mZixsZW5ndGgsdGFyZ2V0LGhhbmRsZV9k YXRhX2xlbixyYXdfcmVzdWx0LHJlc3VsdCx0YXJnZXRfZGVzYyxmX3N5bmMsZl9sb2NhbG1lbSxm X2J1ZmZlcmVkfScsCiAgIHByb3NyYyA9PiAncGdfZ2V0X2Fpb3MnIH0sCiAKKyMgU2Vzc2lvbiB2 YXJpYWJsZXMgc3VwcG9ydAoreyBvaWQgPT4gJzgwNjgnLCBkZXNjciA9PiAnaW50ZXJuYWwgdmll dyBvZiBtZW1vcnkgZW50cmllcyB1c2VkIGJ5IHNlc3Npb24gdmFyaWFibGVzIChmb3IgZGVidWdn aW5nKScsCisgIHByb25hbWUgPT4gJ3BnX2dldF9zZXNzaW9uX3ZhcmlhYmxlc19tZW1vcnknLCBw cm9yb3dzID0+ICcxMDAwJywgcHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvdm9sYXRpbGUgPT4gJ3Mn LCBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCisgIHByb2FyZ3R5 cGVzID0+ICcnLCBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCx0ZXh0LHRleHQsb2lkLHRleHQsYm9v bCxib29sLGJvb2x9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG99JywKKyAg cHJvYXJnbmFtZXMgPT4gJ3t2YXJpZCxzY2hlbWEsbmFtZSx0eXBpZCx0eXBuYW1lLGRyb3BwZWQs Y2FuX3NlbGVjdCxjYW5fdXBkYXRlfScsCisgIHByb3NyYyA9PiAncGdfZ2V0X3Nlc3Npb25fdmFy aWFibGVzX21lbW9yeScgfSwKIF0KLS0gCjIuNTEuMQoK --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="UTF-8"; name="v20251110-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Disposition: attachment; filename="v20251110-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5cc4 RnJvbSA0YzRjOTM3N2RhMTBkN2RmMGIzM2QxMzk1OGEwNjRiMjNjZTBhZDkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IE1vbiwgMiBKdW4gMjAyNSAwODoyOTozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEv MTVdIExFVCBjb21tYW5kIC0gYXNzaWduIGEgcmVzdWx0IG9mIGV4cHJlc3Npb24gdG8gdGhlCiBz ZXNzaW9uIHZhcmlhYmxlCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFp bjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpUaGUgdmFs dWUgaXMgYXNzaWduZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgdXN1YWxseSBieSBTRVQgY29tbWFu ZC4gVW5mb3J0dW5hdGVseQp0aGVyZSBhcmUgdHdvIHJlYXNvbnMgd2h5IFNFVCBzaG91bGQgbm90 IGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZSBpbiBQb3N0Z3Jlcy4KCjEuIFVzaW5nIGFfZXhwciBp bnNpZGUgZ2VuZXJpY19zZXQgcmFtIHJ1bGUgcHJvZHVjZXMgcmVkdWNlIGNvbmZsaWN0cywgc28g aXQgbmVlZHMKwqAgwqB0b3RhbCByZWltcGxlbWVudGF0aW9uIG9mIHJlbGF0ZWQgZ3JhbSBydWxl cy4KCjIuIFNFVCBpcyBubyBwbGFuIGNvbW1hbmQgLSBzbyBpdCBkb2Vzbid0IHN1cHBvcnQgdXNh Z2Ugb2YgcGFyYW1ldGVycy4KCjMuIEV4Y2VwdGluZyBpbXBsZW1lbnRhdGlvbiBpc3N1ZXMsIHRo ZXJlIGlzIGZhY3QsIHNvIGlmIHdlIHVzZSBTRVQgY29tbWFuZArCoCDCoGZvciBhc3NpZ25pbmcg dmFsdWVzIHRvIHNlc3Npb24gdmFyaWFibGVzLCB0aGVuIHRoZXJlIGNhbiBiZSBjb2xsaXNpb25z CsKgIMKgYmV0d2VlbiBzZXNzaW9uIHZhcmlhYmxlcyBhbmQgR1VDLCBhbmQgdGhlbiB3ZSBuZWVk IHNvbWUgY29uY2VwdHMsIGhvdwrCoCDCoHRoZXNlIGNvbGxpc2lvbnMgc2hvdWxkIGJlIHNvbHZl ZCwgb3IgaG93IHRvIHByb3RlY3Qgc2VsZiBhZ2FpbnN0IHRoZXNlCsKgIMKgY29sbGlzaW9ucy4g V2l0aCB0aGUgZGVkaWNhdGVkIGNvbW1hbmQsIHRoZSBjb2xsaXNpb25zIGJldHdlZW4gR1VDIGFu ZCBzZXNzaW9uCsKgIMKgdmFyaWFibGVzIGFyZSBub3QgcG9zc2libGUuCgpUaGUgY29tbWFuZCBM RVQgaXMgZXhlY3V0ZWQgYXMgdXN1YWwgcXVlcnkgZXhlY3V0aW9uLiBUaGUgcmVzdWx0IGlzIHN0 b3JlZAp0byB0aGUgdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgKHJlc3VsdFZhcmlhYmxlKSBieSB1 c2luZyBWYXJpYWJsZURlc3RSZWNlaXZlci4KCkltcGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExF VCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cyBhcmUgbm90IHN1cHBvcnRlZApub3cuIFBvc3Rw b25lZCB0byBuZXh0IHN0ZXAgZHVlIHJlZHVjaW5nIHBhdGNoIHNpemUuCi0tLQogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI5ICsrCiBkb2Mvc3JjL3Nn bWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21sL3Jl Zi9kcm9wX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYv bGV0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKysKIGRvYy9zcmMvc2dtbC9y ZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAgODYgKysrKysrCiBzcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgMjMgKy0KIHNyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAxMCArCiBzcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAgMjQgKysKIHNyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3NldHJlZnMuYyAgICAgICAgICB8ICAzNCArKy0KIHNyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8IDEzNiArKysrKysrKy0KIHNyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAzOSArKy0KIHNyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAgMjYgKy0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMTUgKwogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDExICsKIHNyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMiArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9k ZXMuaCAgICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVz LmggICAgICAgICAgICAgICAgIHwgICA3ICsKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o ICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAg ICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAg ICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oICAgICAg ICAgICAgICAgICB8ICAgMSArCiAuLi4vZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91 dCAgICAgICAgfCAyNzcgKysrKysrKysrKysrKysrKysrCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXNfZG1sLnNxbCAgICAgfCAxODkgKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogMzEgZmlsZXMgY2hhbmdl ZCwgMTA0MyBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Rk bC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDkxMDk4OWE3YWFlLi42Y2JhMzFh YWVmYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9kZGwuc2dtbApAQCAtNTY5NSwxMCArNTY5NSwzOSBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgq KSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7 CiAgICAgc2Vzc2lvbiB2YXJpYWJsZSBpZGVudGlmaWVyLCBhbmQgY2FuIGJlIHVzZWQgb25seSBm b3Igc2Vzc2lvbiB2YXJpYWJsZQogICAgIGlkZW50aWZpZXIuIFRoZSBzcGVjaWFsIHN5bnRheCBm b3IgYWNjZXNzaW5nIHNlc3Npb24gdmFyaWFibGVzIHJlbW92ZXMKICAgICByaXNrIG9mIGNvbGxp c2lvbnMgYmV0d2VlbiB2YXJpYWJsZSBpZGVudGlmaWVycyBhbmQgY29sdW1uIG5hbWVzLgorICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxl IGlzIHNldCB3aXRoIHRoZSBTUUwgc3RhdGVtZW50CisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5k Pi4gIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHJldHJpZXZlZAorICAg IHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPi4KIDxwcm9n cmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CitMRVQgdmFyMSA9IGN1 cnJlbnRfZGF0ZTsKK1NFTEVDVCBWQVJJQUJMRSh2YXIxKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisK KyAgICBvcgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLmN1cnJl bnRfdXNlcl9pZCBBUyBpbnRlZ2VyOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHB1YmxpYy5j dXJyZW50X3VzZXJfaWQgVE8gUFVCTElDOworTEVUIGN1cnJlbnRfdXNlcl9pZCA9IChTRUxFQ1Qg aWQgRlJPTSB1c2VycyBXSEVSRSB1c2VuYW1lID0gc2Vzc2lvbl91c2VyKTsKIFNFTEVDVCBWQVJJ QUJMRShjdXJyZW50X3VzZXJfaWQpOwogPC9wcm9ncmFtbGlzdGluZz4KICAgIDwvcGFyYT4KKwor ICAgPHBhcmE+CisgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0 byB0aGUgY3VycmVudCBzZXNzaW9uLiBSZXRyaWV2aW5nCisgICAgYSB2YXJpYWJsZSdzIHZhbHVl IHJldHVybnMgYSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMK KyAgICBiZWVuIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHVz aW5nIHRoZQorICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFy aWFibGVzIGFyZSBub3QgdHJhbnNhY3Rpb25hbDoKKyAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRo ZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAorICAg IGJlIHVuZG9uZSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2 YXJpYWJsZXMgaW4KKyAgICBwcm9jZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxl cyB0aGVtc2VsdmVzIGFyZSBwZXJzaXN0ZW50LCBidXQKKyAgICB0aGVpciB2YWx1ZXMgYXJlIG5l aXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZSBjb250ZW50IG9mCisgICAgdGVt cG9yYXJ5IHRhYmxlcykuCisgICA8L3BhcmE+CiAgIDwvc2VjdDE+CiAKICA8c2VjdDEgaWQ9ImRk bC1vdGhlcnMiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IDYxZGIyMmE0YzI1Li5lMzkyZGM4 ZDA4NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbApAQCAtMTU4LDYgKzE1OCw3IEBAIENvbXBsZXRl IGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFF TlRJVFkgZ3JhbnQgICAgICAgICAgICAgIFNZU1RFTSAiZ3JhbnQuc2dtbCI+CiA8IUVOVElUWSBp bXBvcnRGb3JlaWduU2NoZW1hIFNZU1RFTSAiaW1wb3J0X2ZvcmVpZ25fc2NoZW1hLnNnbWwiPgog PCFFTlRJVFkgaW5zZXJ0ICAgICAgICAgICAgIFNZU1RFTSAiaW5zZXJ0LnNnbWwiPgorPCFFTlRJ VFkgbGV0ICAgICAgICAgICAgICAgIFNZU1RFTSAibGV0LnNnbWwiPgogPCFFTlRJVFkgbGlzdGVu ICAgICAgICAgICAgIFNZU1RFTSAibGlzdGVuLnNnbWwiPgogPCFFTlRJVFkgbG9hZCAgICAgICAg ICAgICAgIFNZU1RFTSAibG9hZC5zZ21sIj4KIDwhRU5USVRZIGxvY2sgICAgICAgICAgICAgICBT WVNURU0gImxvY2suc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Zh cmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKaW5kZXgg OTZkMjU4NjQyM2UuLjIyMWE2OTk0NjliIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Fs dGVyX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5z Z21sCkBAIC0xNzMsNiArMTczLDcgQEAgQUxURVIgVkFSSUFCTEUgYm9vIFNFVCBTQ0hFTUEgcHJp dmF0ZTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYgbGlu a2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxp bmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlu a2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4K IDwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJs ZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCA2ZTk4 OGYyZTQ3Mi4uNDMwMDBjZTAwNGQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dt bApAQCAtMTIwLDkgKzEyMCwxMSBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICA8dGl0bGU+ RXhhbXBsZXM8L3RpdGxlPgogCiAgIDxwYXJhPgotICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2 YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKyAgIENyZWF0ZSBhIHNlc3Npb24gdmFy aWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD4gb2YgZGF0YSB0eXBlIGRhdGU6CiA8cHJvZ3Jh bWxpc3Rpbmc+CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRlOworTEVUIHZhcjEgPSBjdXJy ZW50X2RhdGU7CitTRUxFQ1QgVkFSSUFCTEUodmFyMSk7CiA8L3Byb2dyYW1saXN0aW5nPgogICA8 L3BhcmE+CiAKQEAgLTE0Myw2ICsxNDUsNyBAQCBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRl OwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5k PSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5k PSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKaW5kZXggNWJkYjM1NjBmMGIuLjY3OTg4YjVmY2Q4 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApAQCAtMTExLDYgKzExMSw3IEBAIERS T1AgVkFSSUFCTEUgdmFyMTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0Pgog IDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4wMGY5YmVhOTFmZQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv bGV0LnNnbWwKQEAgLTAsMCArMSw5NiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dt bAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtbGV0 Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1sZXQiPgorICA8cHJpbWFyeT5MRVQ8L3ByaW1hcnk+ CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlh YmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PmNoYW5naW5nPC9zZWNvbmRhcnk+CisgPC9pbmRl eHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+TEVUPC9yZWZlbnRyeXRpdGxl PgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1 YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2 PgorICA8cmVmbmFtZT5MRVQ8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmNoYW5nZSBhIHNlc3Np b24gdmFyaWFibGUncyB2YWx1ZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVm c3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitMRVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnNlc3Npb25fdmFyaWFibGU8L3JlcGxhY2VhYmxlPiA9IDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5zcWxfZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+Cis8L3N5bm9wc2lzPgorIDwv cmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kIGFz c2lnbnMgYSB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIHNlc3Npb24KKyAgIHZhcmlhYmxlLgorICA8 L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVy czwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3JlcGxh Y2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5h bWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNxbF9leHByZXNzaW9uPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEFuIGFyYml0cmFyeSBT UUwgZXhwcmVzc2lvbi4gIFRoZSByZXN1bHQgbXVzdCBiZSBvZiBhIGRhdGEgdHlwZSB0aGF0IGNh bgorICAgICAgYmUgY2FzdCB0byB0aGUgdHlwZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbiBh biBhc3NpZ25tZW50LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFS SUFCTEUgbXl2YXIgQVMgaW50ZWdlcjsKK0xFVCBteXZhciA9IDEwOworTEVUIG15dmFyID0gKFNF TEVDVCBzdW0odmFsKSBGUk9NIHRhYik7Cis8L3Byb2dyYW1saXN0aW5nPgorIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFy YT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGlzIGEgPHByb2R1Y3RuYW1lPlBvc3Rn cmVTUUw8L3Byb2R1Y3RuYW1lPgorICAgZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxl bGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2 YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRl dmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2 YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVm ZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggMGZlMzNhN2VmY2IuLjViM2JlODlmNzMyIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl ZmVyZW5jZS5zZ21sCkBAIC0xODYsNiArMTg2LDcgQEAKICAgICZncmFudDsKICAgICZpbXBvcnRG b3JlaWduU2NoZW1hOwogICAgJmluc2VydDsKKyAgICZsZXQ7CiAgICAmbGlzdGVuOwogICAgJmxv YWQ7CiAgICAmbG9jazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRl eCBkYmMwNTQ3OTViYi4uOWJkYzkyYmZkMzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmMKQEAgLTE5LDE1ICsxOSwyMiBAQAogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNw YWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNkZXNjLmgiCisjaW5j bHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgIm5vZGVzL3BsYW5u b2Rlcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAicmV3cml0 ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUg InN0b3JhZ2UvcHJvYy5oIgorI2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKICNpbmNsdWRlICJ1 dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdHVtLmgiCiAjaW5jbHVkZSAidXRp bHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGls cy9tZW11dGlscy5oIgorI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGls cy9zeXNjYWNoZS5oIgogCiAvKgpAQCAtNTE0LDMgKzUyMSw4MiBAQCBDcmVhdGVWYXJpYWJsZShQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCiAJcmV0dXJu IHZhcmlhYmxlOwogfQorCisvKgorICogQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRl ZCBleHByZXNzaW9uIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3ZvaWQKK0V4ZWN1dGVM ZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCSAgIExldFN0bXQgKnN0bXQsCisJCQkgICBQ YXJhbUxpc3RJbmZvIHBhcmFtcywKKwkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAor CQkJICAgUXVlcnlDb21wbGV0aW9uICpxYykKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSBjYXN0Tm9k ZShRdWVyeSwgc3RtdC0+cXVlcnkpOworCUxpc3QJICAgKnJld3JpdHRlbjsKKwlEZXN0UmVjZWl2 ZXIgKmRlc3Q7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlQbGFubmVkU3RtdCAqcGxhbjsKKwlR dWVyeURlc2MgICpxdWVyeURlc2M7CisJT2lkCQkJdmFyaWQgPSBxdWVyeS0+cmVzdWx0VmFyaWFi bGU7CisKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJLyogZG8gd2UgaGF2ZSBwZXJt aXNzaW9uIHRvIHdyaXRlIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlPyAqLworCWFjbHJlc3VsdCA9 IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwg QUNMX1VQREFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tf ZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWUodmFyaWQpKTsKKworCS8qIGNyZWF0ZSBhIGRlc3QgcmVjZWl2ZXIgZm9yIExFVCAqLworCWRl c3QgPSBDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcih2YXJpZCk7CisKKwkvKiBydW4gdGhlIHF1 ZXJ5IHJld3JpdGVyICovCisJcXVlcnkgPSBjb3B5T2JqZWN0KHF1ZXJ5KTsKKworCXJld3JpdHRl biA9IFF1ZXJ5UmV3cml0ZShxdWVyeSk7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVu KSA9PSAxKTsKKworCXF1ZXJ5ID0gbGluaXRpYWxfbm9kZShRdWVyeSwgcmV3cml0dGVuKTsKKwlB c3NlcnQocXVlcnktPmNvbW1hbmRUeXBlID09IENNRF9TRUxFQ1QpOworCisJLyogcGxhbiB0aGUg cXVlcnkgKi8KKwlwbGFuID0gcGdfcGxhbl9xdWVyeShxdWVyeSwgcHN0YXRlLT5wX3NvdXJjZXRl eHQsCisJCQkJCQkgQ1VSU09SX09QVF9QQVJBTExFTF9PSywgcGFyYW1zLCBOVUxMKTsKKworCS8q CisJICogVXNlIGEgc25hcHNob3Qgd2l0aCBhbiB1cGRhdGVkIGNvbW1hbmQgSUQgdG8gZW5zdXJl IHRoaXMgcXVlcnkgc2VlcyB0aGUKKwkgKiByZXN1bHRzIG9mIGFueSBwcmV2aW91c2x5IGV4ZWN1 dGVkIHF1ZXJpZXMuICAoVGhpcyBjb3VsZCBvbmx5IG1hdHRlciBpZgorCSAqIHRoZSBwbGFubmVy IGV4ZWN1dGVkIGFuIGFsbGVnZWRseS1zdGFibGUgZnVuY3Rpb24gdGhhdCBjaGFuZ2VkIHRoZQor CSAqIGRhdGFiYXNlIGNvbnRlbnRzLCBidXQgbGV0J3MgZG8gaXQgYW55d2F5IHRvIGJlIHBhcmFs bGVsIHRvIHRoZSBFWFBMQUlOCisJICogY29kZSBwYXRoLikKKwkgKi8KKwlQdXNoQ29waWVkU25h cHNob3QoR2V0QWN0aXZlU25hcHNob3QoKSk7CisJVXBkYXRlQWN0aXZlU25hcHNob3RDb21tYW5k SWQoKTsKKworCS8qIGNyZWF0ZSBhIFF1ZXJ5RGVzYywgcmVkaXJlY3Rpbmcgb3V0cHV0IHRvIG91 ciB0dXBsZSByZWNlaXZlciAqLworCXF1ZXJ5RGVzYyA9IENyZWF0ZVF1ZXJ5RGVzYyhwbGFuLCBw c3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJCQkJR2V0QWN0aXZlU25hcHNob3QoKSwgSW52YWxp ZFNuYXBzaG90LAorCQkJCQkJCQlkZXN0LCBwYXJhbXMsIHF1ZXJ5RW52LCAwKTsKKworCS8qIGNh bGwgRXhlY3V0b3JTdGFydCB0byBwcmVwYXJlIHRoZSBwbGFuIGZvciBleGVjdXRpb24gKi8KKwlF eGVjdXRvclN0YXJ0KHF1ZXJ5RGVzYywgMCk7CisKKwkvKgorCSAqIFJ1biB0aGUgcGxhbiB0byBj b21wbGV0aW9uLiAgVGhlIHJlc3VsdCBzaG91bGQgYmUgb25seSBvbmUgcm93LiAgVG8KKwkgKiBj aGVjayBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVzdWx0IHJvd3MsIHdlIHRyeSB0byBmZXRjaCB0 d28uCisJICovCisJRXhlY3V0b3JSdW4ocXVlcnlEZXNjLCBGb3J3YXJkU2NhbkRpcmVjdGlvbiwg MkwpOworCisJLyogc2F2ZSB0aGUgcm93Y291bnQgaWYgd2UncmUgZ2l2ZW4gYSBRdWVyeUNvbXBs ZXRpb24gdG8gZmlsbCAqLworCWlmIChxYykKKwkJU2V0UXVlcnlDb21wbGV0aW9uKHFjLCBDTURU QUdfTEVULCBxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfcHJvY2Vzc2VkKTsKKworCS8qIGFuZCBjbGVh biB1cCAqLworCUV4ZWN1dG9yRmluaXNoKHF1ZXJ5RGVzYyk7CisJRXhlY3V0b3JFbmQocXVlcnlE ZXNjKTsKKworCUZyZWVRdWVyeURlc2MocXVlcnlEZXNjKTsKKworCVBvcEFjdGl2ZVNuYXBzaG90 KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCA0YzViMTAxYzhlZS4uNzZmNDc4ZmY1 ODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtMjM0LDEzICsyMzQsMjQgQEAgc3RhbmRh cmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkJLyog ZmlsbCB0aGUgYXJyYXkgKi8KIAkJZm9yZWFjaF9vaWQodmFyaWQsIHF1ZXJ5RGVzYy0+cGxhbm5l ZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCiAJCXsKLQkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJ CQkvKgorCQkJICogUGVybWlzc2lvbiBjaGVjayBzaG91bGQgYmUgZXhlY3V0ZWQgb24gYWxsIGV4 cGxpY2l0bHkgdXNlZAorCQkJICogdmFyaWFibGVzIGluIHRoZSBxdWVyeS4gRm9yIGltcGxpY2l0 bHkgdXNlZCB2YXJpYWJsZSAobGlrZSBiYXNlCisJCQkgKiBub2RlIG9mIGFzc2lnbm1lbnQgaW5k aXJlY3QpIHdlIGNhbm5vdCBkbyBwZXJtaXNzaW9uIGNoZWNrLAorCQkJICogYmVjYXVzZSB3ZSBu ZWVkIHJlYWQgdGhlIHZhbHVlIChhbmQgdXNlciBjYW4gaGF2ZSBvbmx5IFVQREFURQorCQkJICog dmFyaWFibGUpLiBJbiB0aGlzIGNhc2UgdGhlIHBlcm1pc3Npb24gY2hlY2sgaXMgZXhlY3V0ZWQg aW4KKwkJCSAqIHdyaXRlIHRpbWUuCisJCQkgKi8KKwkJCWlmICh2YXJpZCAhPSBxdWVyeURlc2Mt PnBsYW5uZWRzdG10LT5leGNsU2VsZWN0UGVybUNoZWNrVmFyaWQpCisJCQl7CisJCQkJQWNsUmVz dWx0CWFjbHJlc3VsdDsKIAotCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxl UmVsYXRpb25JZCwgdmFyaWQsCi0JCQkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpOwot CQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKLQkJCQlhY2xjaGVja19lcnJvcihhY2xy ZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwKLQkJCQkJCQkgICBnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHZhcmlkKSk7CisJCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVs YXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQkJCUdldFVzZXJJZCgpLCBBQ0xfU0VMRUNUKTsKKwkJ CQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJCQlhY2xjaGVja19lcnJvcihhY2xy ZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwKKwkJCQkJCQkJICAgZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCkpOworCQkJfQogCiAJCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ld LnZhbHVlID0KIAkJCQlHZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5j CmluZGV4IGM3NjFmZGU2YWNiLi4wZDU0NjFjYmQ2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv bm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAg LTQzNzQsNiArNDM3NCwxNiBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUg Km5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9MZXRT dG10OgorCQkJeworCQkJCUxldFN0bXQgICAgKnN0bXQgPSAoTGV0U3RtdCAqKSBub2RlOworCisJ CQkJaWYgKFdBTEsoc3RtdC0+dGFyZ2V0KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdB TEsoc3RtdC0+cXVlcnkpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQlj YXNlIFRfUExBc3NpZ25TdG10OgogCQkJewogCQkJCVBMQXNzaWduU3RtdCAqc3RtdCA9IChQTEFz c2lnblN0bXQgKikgbm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCBj YzAzYjAzMTFhNC4uOGRjY2Q1MDczN2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXpl ci9wbGFuL3BsYW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVy LmMKQEAgLTM3Niw2ICszNzYsMjAgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNv bnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJZ2xvYi0+cmVsX25v dG51bGxhdHRzX2hhc2ggPSBOVUxMOwogCWdsb2ItPnNlc3Npb25WYXJpYWJsZXMgPSBOSUw7CiAK KwkvKgorCSAqIFRoZSAoc2Vzc2lvbikgcmVzdWx0IHZhcmlhYmxlIHNob3VsZCBiZSBzdG9yZWQg dG8gZ2xvYmFsLCBiZWNhdXNlIGl0IGlzCisJICogbm90IHNldCBpbiBzdWJxdWVyeS4gIFdoZW4g dGhpcyB2YXJpYWJsZSBpcyB1c2VkIG90aGVyIHRoYW4gaW4gYmFzZQorCSAqIG5vZGUgb2YgYXNz aWdubWVudCBpbmRpcmVjdGlvbiwgd2UgbmVlZCB0byBjaGVjayB0aGUgYWNjZXNzIHJpZ2h0cyAo YW5kCisJICogdGhlbiB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzIHNpdHVhdGlvbikuIFRoZSB2YXJp YWJsZSB1c2VkIGxpa2UgYmFzZQorCSAqIG5vZGUgY2Fubm90IGJlIGRpZmZlcmVudCB0aGFuIHRh cmdldCAocmVzdWx0KSB2YXJpYWJsZS4gQmVjYXVzZSB3ZSBrbm93CisJICogdGhlIHJlc3VsdCB2 YXJpYWJsZSBiZWZvcmUgcGxhbm5lciBpbnZvY2F0aW9uLCB3ZSBjYW4gc2ltcGx5IHNlYXJjaCBv ZgorCSAqIHVzYWdlIGp1c3QgdGhpcyB2YXJpYWJsZSwgYW5kIHdlIGRvbid0IG5lZWQgdG8gdG8g d2FpdCB1bnRpbCB0aGUgZW5kIG9mCisJICogcGxhbm5pbmcgd2hlbiB3ZSBrbm93IGJhc2Vub2Rl U2Vzc2lvblZhcmlkLgorCSAqLworCWdsb2ItPnJlc3VsdFZhcmlhYmxlID0gcGFyc2UtPnJlc3Vs dFZhcmlhYmxlOworCWdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkID0gSW52YWxpZE9pZDsKKwln bG9iLT5iYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RDaGVjayA9IGZhbHNlOworCiAJLyoKIAkgKiBB c3Nlc3Mgd2hldGhlciBpdCdzIGZlYXNpYmxlIHRvIHVzZSBwYXJhbGxlbCBtb2RlIGZvciB0aGlz IHF1ZXJ5LiBXZQogCSAqIGNhbid0IGRvIHRoaXMgaW4gYSBzdGFuZGFsb25lIGJhY2tlbmQsIG9y IGlmIHRoZSBjb21tYW5kIHdpbGwgdHJ5IHRvCkBAIC02MjEsNiArNjM1LDE2IEBAIHN0YW5kYXJk X3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJz b3JPcHRpb25zLAogCiAJcmVzdWx0LT5zZXNzaW9uVmFyaWFibGVzID0gZ2xvYi0+c2Vzc2lvblZh cmlhYmxlczsKIAorCS8qCisJICogVGhlIHNlc3Npb24gdmFyaWFibGUgdXNlZCAoYW5kIG9ubHkg dXNlZCkgbGlrZSBiYXNlIG5vZGUgZm9yIGFzc2lnbmVtbnQKKwkgKiBpbmRpcmVjdGlvbiBzaG91 bGQgYmUgZXhjbHVkZWQgZnJvbSBwZXJtaXNzaW9uIGNoZWNrLgorCSAqLworCWlmIChPaWRJc1Zh bGlkKGdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkKSAmJgorCQkoIWdsb2ItPmJhc2Vub2RlU2Vz c2lvblZhclNlbGVjdENoZWNrKSkKKwkJcmVzdWx0LT5leGNsU2VsZWN0UGVybUNoZWNrVmFyaWQg PSBnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZDsKKwllbHNlCisJCXJlc3VsdC0+ZXhjbFNlbGVj dFBlcm1DaGVja1ZhcmlkID0gSW52YWxpZE9pZDsKKwogCXJlc3VsdC0+c3RtdF9sb2NhdGlvbiA9 IHBhcnNlLT5zdG10X2xvY2F0aW9uOwogCXJlc3VsdC0+c3RtdF9sZW4gPSBwYXJzZS0+c3RtdF9s ZW47CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyBi L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRleCBhMTJhM2M2MDk0Yy4u MGNiZTA5ODM0YzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJl ZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKQEAgLTIyNDks NiArMjI0OSwyNyBAQCBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFyYW0gKnAp CiAJCQlwLT5wYXJhbWlkID0gbjsKIAkJfQogCisJCS8qCisJCSAqIFdlIGRvIFNFTEVDVCBwZXJt aXNzaW9uIGNoZWNrIG9mIGFsbCB2YXJpYWJsZXMgdXNlZCBieSB0aGUgcXVlcnkKKwkJICogZXhj bHVkaW5nIHRoZSB2YXJpYWJsZSB0aGF0IGlzIHVzZWQgb25seSBhcyBiYXNlIG5vZGUgb2YgYXNz aWdubWVudAorCQkgKiBpbmRpcmVjdGlvbi4gVGhlIHZhcmlhYmxlIGlkIGFzc2lnbmVkIHRvIHRo aXMgcGFyYW0gc2hvdWxkIGJlIHNhbWUKKwkJICogbGlrZSByZXN1bHRWYXJpYWJsZSBpZCwgYW5k IHRoaXMgcGFyYW0gc2hvdWxkIGJlIHVzZWQgb25seSBvbmNlIGluCisJCSAqIHF1ZXJ5LiBXaGVu IHRoZSB2YXJpYWJsZSBpcyByZWZlcmVuY2VkIGJ5IGFueSBvdGhlciBwYXJhbSwgd2UKKwkJICog c2hvdWxkIHRvIGRvIFNFTEVDVCBwZXJtaXNzaW9uIGNoZWNrIGZvciB0aGlzIHZhcmlhYmxlIHRv by4KKwkJICovCisJCWlmIChwLT5wYXJhbWJhc2Vub2RlKQorCQl7CisJCQlBc3NlcnQoIU9pZElz VmFsaWQocm9vdC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQpKTsKKwkJCUFzc2VydChyb290 LT5nbG9iLT5yZXN1bHRWYXJpYWJsZSA9PSBwLT5wYXJhbXZhcmlkKTsKKworCQkJcm9vdC0+Z2xv Yi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQgPSBwLT5wYXJhbXZhcmlkOworCQl9CisJCWVsc2UKKwkJ eworCQkJaWYgKHAtPnBhcmFtdmFyaWQgPT0gcm9vdC0+Z2xvYi0+cmVzdWx0VmFyaWFibGUpCisJ CQkJcm9vdC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hlY2sgPSB0cnVlOworCQl9 CisKIAkJcmV0dXJuIChOb2RlICopIHA7CiAJfQogCkBAIC0zNzM0LDcgKzM3NTUsNyBAQCByZWNv cmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCkKIAog LyoKICAqIFJlY29yZCBkZXBlbmRlbmN5IG9uIGEgc2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSB2YXJp YWJsZSBjYW4gYmUgdXNlZCBhcyBhCi0gKiBzZXNzaW9uIHZhcmlhYmxlIGluIGFuIGV4cHJlc3Np b24gbGlzdC4KKyAqIHNlc3Npb24gdmFyaWFibGUgaW4gYW4gZXhwcmVzc2lvbiBsaXN0LCBvciBh cyB0aGUgdGFyZ2V0IG9mIGEgTEVUIHN0YXRlbWVudC4KICAqLwogc3RhdGljIHZvaWQKIHJlY29y ZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB2YXJpZCkK QEAgLTM4MzYsOSArMzg1NywxMCBAQCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIo Tm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpCiAJCQl9CiAKIAkJCS8qCi0JCQkgKiBJ Z25vcmUgb3RoZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2ggYXMgRVhQ TEFJTikKLQkJCSAqIHRoYXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnku ICBGb3IgdGhvc2UsIHdlCi0JCQkgKiBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlv biB0byB0aGUgY29udGFpbmVkIHF1ZXJ5LgorCQkJICogSWdub3JlIG90aGVyIHV0aWxpdHkgc3Rh dGVtZW50cywgZXhjZXB0IHRob3NlIChzdWNoIGFzIEVYUExBSU4KKwkJCSAqIG9yIExFVCkgdGhh dCBjb250YWluIGEgcGFyc2VkLWJ1dC1ub3QtcGxhbm5lZCBxdWVyeS4gIEZvcgorCQkJICogdGhv c2UsIHdlIGp1c3QgbmVlZCB0byB0cmFuc2ZlciBvdXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWlu ZWQKKwkJCSAqIHF1ZXJ5LgogCQkJICovCiAJCQlxdWVyeSA9IFV0aWxpdHlDb250YWluc1F1ZXJ5 KHF1ZXJ5LT51dGlsaXR5U3RtdCk7CiAJCQlpZiAocXVlcnkgPT0gTlVMTCkKQEAgLTM4NjEsNiAr Mzg4MywxMCBAQCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwg UGxhbm5lckluZm8gKmNvbnRleHQpCiAJCQkJCWxhcHBlbmRfb2lkKGNvbnRleHQtPmdsb2ItPnJl bGF0aW9uT2lkcywgcnRlLT5yZWxpZCk7CiAJCX0KIAorCQkvKiByZWNvcmQgZGVwZW5kZW5jeSBv biB0aGUgdGFyZ2V0IHZhcmlhYmxlIG9mIGEgTEVUIGNvbW1hbmQgKi8KKwkJaWYgKE9pZElzVmFs aWQocXVlcnktPnJlc3VsdFZhcmlhYmxlKSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVu ZGVuY3koY29udGV4dCwgcXVlcnktPnJlc3VsdFZhcmlhYmxlKTsKKwogCQkvKiBBbmQgcmVjdXJz ZSBpbnRvIHRoZSBxdWVyeSdzIHN1YmV4cHJlc3Npb25zICovCiAJCXJldHVybiBxdWVyeV90cmVl X3dhbGtlcihxdWVyeSwgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyLAogCQkJCQkJ CQkgY29udGV4dCwgMCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCBjMzg5N2FhZmQyMS4uNDAzODg3 NjQ5N2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtNTIsMTUgKzUyLDE4IEBACiAjaW5jbHVkZSAi dXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGls cy9yZWwuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9z eXNjYWNoZS5oIgogCiAKLS8qIFBhc3N0aHJvdWdoIGRhdGEgZm9yIHRyYW5zZm9ybVBMQXNzaWdu U3RtdFRhcmdldCAqLworLyogUGFzc3Rocm91Z2ggZGF0YSBmb3IgdHJhbnNmb3JtQXNzaWduVGFy Z2V0ICovCiB0eXBlZGVmIHN0cnVjdCBTZWxlY3RTdG10UGFzc3Rocm91Z2gKIHsKLQlQTEFzc2ln blN0bXQgKnN0bXQ7CQkJLyogdGhlIGFzc2lnbm1lbnQgc3RhdGVtZW50ICovCisJTm9kZQkgICAq c3RtdDsJCQkvKiB0aGUgYXNzaWdubWVudCBzdGF0ZW1lbnQgKi8KIAlOb2RlCSAgICp0YXJnZXQ7 CQkJLyogbm9kZSByZXByZXNlbnRpbmcgdGhlIHRhcmdldCB2YXJpYWJsZSAqLworCWNoYXIJICAg KnRhcmdldF9uYW1lOwkvKiB0aGUgbmFtZSB1c2VkIGJ5IGVyciAqLwogCUxpc3QJICAgKmluZGly ZWN0aW9uOwkvKiBpbmRpcmVjdGlvbiB5ZXQgdG8gYmUgYXBwbGllZCB0byB0YXJnZXQgKi8KKwlD b2VyY2lvbkNvbnRleHQgY2NvbnRleHQ7IAkvKiBjb250ZXh0IGluZGljYXRvcnMgdG8gY29udHJv bCBjb2VyY2lvbnMgKi8KIH0gU2VsZWN0U3RtdFBhc3N0aHJvdWdoOwogCiAvKiBIb29rIGZvciBw bHVnaW5zIHRvIGdldCBjb250cm9sIGF0IGVuZCBvZiBwYXJzZSBhbmFseXNpcyAqLwpAQCAtODQs NyArODcsNyBAQCBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybVJldHVyblN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBSZXR1cm5TdG10ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtVXBkYXRl U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQgKnN0bXQpOwogc3RhdGljIFF1ZXJ5 ICp0cmFuc2Zvcm1QTEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJUExB c3NpZ25TdG10ICpzdG10KTsKLXN0YXRpYyBMaXN0ICp0cmFuc2Zvcm1QTEFzc2lnblN0bXRUYXJn ZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICp0bGlzdCwKK3N0YXRpYyBMaXN0ICp0cmFuc2Zv cm1Bc3NpZ25UYXJnZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICp0bGlzdCwKIAkJCQkJCQkJ CQkgU2VsZWN0U3RtdFBhc3N0aHJvdWdoICpwYXNzdGhydSk7CiBzdGF0aWMgUXVlcnkgKnRyYW5z Zm9ybURlY2xhcmVDdXJzb3JTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgRGVj bGFyZUN1cnNvclN0bXQgKnN0bXQpOwpAQCAtOTQsNiArOTcsOCBAQCBzdGF0aWMgUXVlcnkgKnRy YW5zZm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkg Q3JlYXRlVGFibGVBc1N0bXQgKnN0bXQpOwogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1DYWxsU3Rt dChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCUNhbGxTdG10ICpzdG10KTsKK3N0YXRpYyBR dWVyeSAqdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJICAgTGV0 U3RtdCAqc3RtdCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1Mb2NraW5nQ2xhdXNlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUXVlcnkgKnFyeSwKIAkJCQkJCQkJICAgTG9ja2luZ0NsYXVzZSAqbGMsIGJv b2wgcHVzaGVkRG93bik7CiAjaWZkZWYgREVCVUdfTk9ERV9URVNUU19FTkFCTEVECkBAIC0zNDEs NiArMzQ2LDcgQEAgdHJhbnNmb3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNl VHJlZSkKIAkJCWNhc2UgVF9VcGRhdGVTdG10OgogCQkJY2FzZSBUX0RlbGV0ZVN0bXQ6CiAJCQlj YXNlIFRfTWVyZ2VTdG10OgorCQkJY2FzZSBUX0xldFN0bXQ6CiAJCQkJKHZvaWQpIHRlc3RfcmF3 X2V4cHJlc3Npb25fY292ZXJhZ2UocGFyc2VUcmVlLCBOVUxMKTsKIAkJCQlicmVhazsKIAkJCWRl ZmF1bHQ6CkBAIC00MjAsNiArNDI2LDExIEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBOb2RlICpwYXJzZVRyZWUpCiAJCQkJCQkJCQkgICAoQ2FsbFN0bXQgKikgcGFyc2VUcmVl KTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcmVzdWx0ID0gdHJhbnNmb3Jt TGV0U3RtdChwc3RhdGUsCisJCQkJCQkJCQkgIChMZXRTdG10ICopIHBhcnNlVHJlZSk7CisJCQli cmVhazsKKwogCQlkZWZhdWx0OgogCiAJCQkvKgpAQCAtNDgxLDYgKzQ5Miw3IEBAIHN0bXRfcmVx dWlyZXNfcGFyc2VfYW5hbHlzaXMoUmF3U3RtdCAqcGFyc2VUcmVlKQogCQljYXNlIFRfRXhwbGFp blN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVUYWJsZUFzU3RtdDoKIAkJY2FzZSBUX0NhbGxTdG10Ogor CQljYXNlIFRfTGV0U3RtdDoKIAkJCXJlc3VsdCA9IHRydWU7CiAJCQlicmVhazsKIApAQCAtNTQ2 LDYgKzU1OCw3IEBAIHF1ZXJ5X3JlcXVpcmVzX3Jld3JpdGVfcGxhbihRdWVyeSAqcXVlcnkpCiAJ CQljYXNlIFRfRXhwbGFpblN0bXQ6CiAJCQljYXNlIFRfQ3JlYXRlVGFibGVBc1N0bXQ6CiAJCQlj YXNlIFRfQ2FsbFN0bXQ6CisJCQljYXNlIFRfTGV0U3RtdDoKIAkJCQlyZXN1bHQgPSB0cnVlOwog CQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKQEAgLTEzODksNyArMTQwMiw3IEBAIGNvdW50X3Jvd2V4 cHJfY29sdW1ucyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAgKgogICogVGhpcyBm dW5jdGlvbiBpcyBhbHNvIHVzZWQgdG8gdHJhbnNmb3JtIHRoZSBzb3VyY2UgZXhwcmVzc2lvbiBv ZiBhCiAgKiBQTEFzc2lnblN0bXQuICBJbiB0aGF0IHVzYWdlLCBwYXNzdGhydSBpcyBub24tTlVM TCBhbmQgd2UgbmVlZCB0bwotICogY2FsbCB0cmFuc2Zvcm1QTEFzc2lnblN0bXRUYXJnZXQgYWZ0 ZXIgdGhlIGluaXRpYWwgdHJhbnNmb3JtYXRpb24gb2YgdGhlCisgKiBjYWxsIHRyYW5zZm9ybUFz c2lnblRhcmdldCBhZnRlciB0aGUgaW5pdGlhbCB0cmFuc2Zvcm1hdGlvbiBvZiB0aGUKICAqIFNF TEVDVCdzIHRhcmdldGxpc3QuICAoV2UgY291bGQgZ2VuZXJhbGl6ZSB0aGlzIGludG8gYW4gYXJi aXRyYXJ5IGNhbGxiYWNrCiAgKiBmdW5jdGlvbiwgYnV0IGZvciBub3cgdGhhdCB3b3VsZCBqdXN0 IGJlIG1vcmUgbm90YXRpb24gd2l0aCBubyBiZW5lZml0LikKICAqIEFsbCB0aGUgcmVzdCBpcyB0 aGUgc2FtZSBhcyBhIHJlZ3VsYXIgU2VsZWN0U3RtdC4KQEAgLTE0NDIsOCArMTQ1NSw4IEBAIHRy YW5zZm9ybVNlbGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10LAog CSAqIE90aGVyd2lzZSwgbWFyayBjb2x1bW4gb3JpZ2lucyAod2hpY2ggYXJlIHVzZWxlc3MgaW4g YSBQTEFzc2lnblN0bXQpLgogCSAqLwogCWlmIChwYXNzdGhydSkKLQkJcXJ5LT50YXJnZXRMaXN0 ID0gdHJhbnNmb3JtUExBc3NpZ25TdG10VGFyZ2V0KHBzdGF0ZSwgcXJ5LT50YXJnZXRMaXN0LAot CQkJCQkJCQkJCQkJCSAgcGFzc3RocnUpOworCQlxcnktPnRhcmdldExpc3QgPSB0cmFuc2Zvcm1B c3NpZ25UYXJnZXQocHN0YXRlLCBxcnktPnRhcmdldExpc3QsCisJCQkJCQkJCQkJCQlwYXNzdGhy dSk7CiAJZWxzZQogCQltYXJrVGFyZ2V0TGlzdE9yaWdpbnMocHN0YXRlLCBxcnktPnRhcmdldExp c3QpOwogCkBAIC0yODQxLDkgKzI4NTQsMTEgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCQkJCQkJICAgRVhQUl9LSU5EX1VQ REFURV9UQVJHRVQpOwogCiAJLyogU2V0IHVwIHBhc3N0aHJvdWdoIGRhdGEgZm9yIHRyYW5zZm9y bVBMQXNzaWduU3RtdFRhcmdldCAqLwotCXBhc3N0aHJ1LnN0bXQgPSBzdG10OworCXBhc3N0aHJ1 LnN0bXQgPSAoTm9kZSAqKSBzdG10OwogCXBhc3N0aHJ1LnRhcmdldCA9IHRhcmdldDsKKwlwYXNz dGhydS50YXJnZXRfbmFtZSA9IHN0bXQtPm5hbWU7CiAJcGFzc3RocnUuaW5kaXJlY3Rpb24gPSBp bmRpcmVjdGlvbjsKKwlwYXNzdGhydS5jY29udGV4dCA9IENPRVJDSU9OX1BMUEdTUUw7CiAKIAkv KgogCSAqIFRvIGF2b2lkIGR1cGxpY2F0aW5nIGEgbG90IG9mIGNvZGUsIHdlIHVzZSB0cmFuc2Zv cm1TZWxlY3RTdG10IHRvIGRvCkBAIC0yODY2LDE4ICsyODgxLDIxIEBAIHRyYW5zZm9ybVBMQXNz aWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAogLyoKICAq IENhbGxiYWNrIGZ1bmN0aW9uIHRvIGFkanVzdCBhIFNFTEVDVCdzIHRsaXN0IHRvIG1ha2UgdGhl IG91dHB1dCBzdWl0YWJsZQotICogZm9yIGFzc2lnbm1lbnQgdG8gYSBQTEFzc2lnblN0bXQncyB0 YXJnZXQgdmFyaWFibGUuCisgKiBmb3IgYXNzaWdubWVudCB0byBhIFBMQXNzaWduU3RtdCdzIHRh cmdldCB2YXJpYWJsZSBwciBMRVQncyB0YXJnZXQKKyAqIHNlc3Npb24gdmFyaWFibGUuCiAgKgog ICogTm90ZTogd2UgYWN0dWFsbHkgbW9kaWZ5IHRoZSB0bGUtPmV4cHIgaW4tcGxhY2UsIGJ1dCB0 aGUgZnVuY3Rpb24ncyBBUEkKICAqIGlzIHNldCB1cCB0byBub3QgcHJlc3VtZSB0aGF0LgogICov CiBzdGF0aWMgTGlzdCAqCi10cmFuc2Zvcm1QTEFzc2lnblN0bXRUYXJnZXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBMaXN0ICp0bGlzdCwKLQkJCQkJCQlTZWxlY3RTdG10UGFzc3Rocm91Z2ggKnBhc3N0 aHJ1KQordHJhbnNmb3JtQXNzaWduVGFyZ2V0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGxp c3QsCisJCQkJCSAgU2VsZWN0U3RtdFBhc3N0aHJvdWdoICpwYXNzdGhydSkKIHsKLQlQTEFzc2ln blN0bXQgKnN0bXQgPSBwYXNzdGhydS0+c3RtdDsKKwlOb2RlCSAgICpzdG10ID0gcGFzc3RocnUt PnN0bXQ7CiAJTm9kZQkgICAqdGFyZ2V0ID0gcGFzc3RocnUtPnRhcmdldDsKKwljaGFyCSAgICp0 YXJnZXRfbmFtZSA9IHBhc3N0aHJ1LT50YXJnZXRfbmFtZTsKIAlMaXN0CSAgICppbmRpcmVjdGlv biA9IHBhc3N0aHJ1LT5pbmRpcmVjdGlvbjsKKwlDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQgPSBw YXNzdGhydS0+Y2NvbnRleHQ7CiAJT2lkCQkJdGFyZ2V0dHlwZTsKIAlpbnQzMgkJdGFyZ2V0dHlw bW9kOwogCU9pZAkJCXRhcmdldGNvbGxhdGlvbjsKQEAgLTI5MTIsNyArMjkzMCw3IEBAIHRyYW5z Zm9ybVBMQXNzaWduU3RtdFRhcmdldChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRsaXN0LAog CQl0bGUtPmV4cHIgPSAoRXhwciAqKQogCQkJdHJhbnNmb3JtQXNzaWdubWVudEluZGlyZWN0aW9u KHBzdGF0ZSwKIAkJCQkJCQkJCQkgICB0YXJnZXQsCi0JCQkJCQkJCQkJICAgc3RtdC0+bmFtZSwK KwkJCQkJCQkJCQkgICB0YXJnZXRfbmFtZSwKIAkJCQkJCQkJCQkgICBmYWxzZSwKIAkJCQkJCQkJ CQkgICB0YXJnZXR0eXBlLAogCQkJCQkJCQkJCSAgIHRhcmdldHR5cG1vZCwKQEAgLTI5MjAsMTAg KzI5MzgsMTAgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10VGFyZ2V0KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTGlzdCAqdGxpc3QsCiAJCQkJCQkJCQkJICAgaW5kaXJlY3Rpb24sCiAJCQkJCQkJCQkJICAg bGlzdF9oZWFkKGluZGlyZWN0aW9uKSwKIAkJCQkJCQkJCQkgICAoTm9kZSAqKSB0bGUtPmV4cHIs Ci0JCQkJCQkJCQkJICAgQ09FUkNJT05fUExQR1NRTCwKKwkJCQkJCQkJCQkgICBjY29udGV4dCwK IAkJCQkJCQkJCQkgICBleHByTG9jYXRpb24odGFyZ2V0KSk7CiAJfQotCWVsc2UgaWYgKHRhcmdl dHR5cGUgIT0gdHlwZV9pZCAmJgorCWVsc2UgaWYgKElzQShzdG10LCBQTEFzc2lnblN0bXQpICYm IHRhcmdldHR5cGUgIT0gdHlwZV9pZCAmJgogCQkJICh0YXJnZXR0eXBlID09IFJFQ09SRE9JRCB8 fCBJU0NPTVBMRVgodGFyZ2V0dHlwZSkpICYmCiAJCQkgKHR5cGVfaWQgPT0gUkVDT1JET0lEIHx8 IElTQ09NUExFWCh0eXBlX2lkKSkpCiAJewpAQCAtMjk0Niw3ICsyOTY0LDcgQEAgdHJhbnNmb3Jt UExBc3NpZ25TdG10VGFyZ2V0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGxpc3QsCiAJCQlj b2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLAogCQkJCQkJCQkgIG9yaWdfZXhwciwgdHlwZV9p ZCwKIAkJCQkJCQkJICB0YXJnZXR0eXBlLCB0YXJnZXR0eXBtb2QsCi0JCQkJCQkJCSAgQ09FUkNJ T05fUExQR1NRTCwKKwkJCQkJCQkJICBjY29udGV4dCwKIAkJCQkJCQkJICBDT0VSQ0VfSU1QTElD SVRfQ0FTVCwKIAkJCQkJCQkJICAtMSk7CiAJCS8qIFdpdGggQ09FUkNJT05fUExQR1NRTCwgdGhp cyBlcnJvciBpcyBwcm9iYWJseSB1bnJlYWNoYWJsZSAqLwpAQCAtMjk1NSw3ICsyOTczLDcgQEAg dHJhbnNmb3JtUExBc3NpZ25TdG10VGFyZ2V0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGxp c3QsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAogCQkJCQkgZXJy bXNnKCJ2YXJpYWJsZSBcIiVzXCIgaXMgb2YgdHlwZSAlcyIKIAkJCQkJCQkiIGJ1dCBleHByZXNz aW9uIGlzIG9mIHR5cGUgJXMiLAotCQkJCQkJCXN0bXQtPm5hbWUsCisJCQkJCQkJdGFyZ2V0X25h bWUsCiAJCQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0dHlwZSksCiAJCQkJCQkJZm9ybWF0X3R5 cGVfYmUodHlwZV9pZCkpLAogCQkJCQkgZXJyaGludCgiWW91IHdpbGwgbmVlZCB0byByZXdyaXRl IG9yIGNhc3QgdGhlIGV4cHJlc3Npb24uIiksCkBAIC0zMzE5LDYgKzMzMzcsOTIgQEAgdHJhbnNm b3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYWxsU3RtdCAqc3RtdCkKIAlyZXR1cm4g cmVzdWx0OwogfQogCisvKgorICogdHJhbnNmb3JtTGV0U3RtdCAtCisgKgkgIHRyYW5zZm9ybSBh biBMZXQgU3RhdGVtZW50CisgKi8KK3N0YXRpYyBRdWVyeSAqCit0cmFuc2Zvcm1MZXRTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCkKK3sKKwlRdWVyeQkgICAqcXJ5OworCVF1 ZXJ5CSAgICpyZXN1bHQ7CisJTm9kZQkgICAqdGFyZ2V0OworCUxpc3QJICAgKm5hbWVzID0gTlVM TDsKKwlpbnQJCQlubmFtZXM7CisJTGlzdAkgICAqaW5kaXJlY3Rpb247CisJVmFyaWFibGVGZW5j ZSAqdmY7CisJU2VsZWN0U3RtdFBhc3N0aHJvdWdoIHBhc3N0aHJ1OworCVBhcmFtCSAgICpwYXJh bXZhcjsKKworCS8qIGdyYW0gYWxsb3dzIG9ubHkgU0VMRUNUICovCisJQXNzZXJ0KElzQShzdG10 LT5xdWVyeSwgU2VsZWN0U3RtdCkpOworCisJbmFtZXMgPSBOYW1lc0Zyb21MaXN0KHN0bXQtPnRh cmdldCk7CisJbm5hbWVzID0gbGlzdF9sZW5ndGgobmFtZXMpOworCisJLyogVXNlIGltcGxpY2l0 IFZhcmlhYmxlRmVuY2UgZm9yIGZvcmNpbmcgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwl2ZiA9IG1h a2VOb2RlKFZhcmlhYmxlRmVuY2UpOworCXZmLT52YXJuYW1lID0gbmFtZXM7CisJdmYtPmxvY2F0 aW9uID0gc3RtdC0+bG9jYXRpb247CisKKwl0YXJnZXQgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwg KE5vZGUgKikgdmYsIEVYUFJfS0lORF9MRVRfVEFSR0VUKTsKKworCS8qCisJICogVGhlIEZpZWxk U3RvcmUgaXMgcmV0dXJuZWQgd2hlbiBmaWVsZCBuYW1lIGlzIHNwZWNpZmllZC4KKwkgKiBJbiB0 aGlzIGNhc2UgZGVjcmVhc2Ugbm5hbWVzIG51bWJlciAobnVtYmVyIG9mIGRvdHRlZCBuYW1lcyks CisJICogYW5kIGdldCB0YXJnZXQgZnJvbSBGaWVsZFNlbGVjdCBub2RlLiBGaWVsZCBuYW1lIHdp bGwgYmUgcGFydAorCSAqIG9mIGluZGlyZWN0aW9uLgorCSAqLworCWlmIChJc0EodGFyZ2V0LCBG aWVsZFN0b3JlKSkKKwl7CisJCW5uYW1lcyAtPSAxOworCQl0YXJnZXQgPSAoTm9kZSAqKSgoRmll bGRTdG9yZSAqKSB0YXJnZXQpLT5hcmc7CisJfQorCisJcGFyYW12YXIgPSBjYXN0Tm9kZShQYXJh bSwgdGFyZ2V0KTsKKworCUFzc2VydChwYXJhbXZhci0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklB QkxFKTsKKworCWlmIChsaXN0X2xlbmd0aChzdG10LT50YXJnZXQpID4gbm5hbWVzKQorCQlpbmRp cmVjdGlvbiA9IGxpc3RfY29weV90YWlsKHN0bXQtPnRhcmdldCwgbm5hbWVzKTsKKwllbHNlCisJ CWluZGlyZWN0aW9uID0gTklMOworCisJLyoKKwkgKiBUaGUgcGFyYW1ldGVyIHVzZWQgYXMgYmFz ZW5vZGUgaGFzIHRvIGhhdmUgc3BlY2lhbCBtYXJrLAorCSAqIGJlY2F1c2UgcmVxdWlyZXMgc3Bl Y2lhbCBhY2Nlc3Mgd2hlbiB3ZSBkbyBTRUxFQ1QgYWNjZXNzIGNoZWNrLgorCSAqLworCWlmIChp bmRpcmVjdGlvbikKKwl7CisJCXBhcmFtdmFyLT5wYXJhbWJhc2Vub2RlID0gdHJ1ZTsKKwkJcHN0 YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCX0KKworCS8qIFNldCB1cCBwYXNz dGhyb3VnaCBkYXRhIGZvciB0cmFuc2Zvcm1Bc3NpZ25UYXJnZXQgKi8KKwlwYXNzdGhydS5zdG10 ID0gKE5vZGUgKikgc3RtdDsKKwlwYXNzdGhydS50YXJnZXQgPSAoTm9kZSAqKSBwYXJhbXZhcjsK KwlwYXNzdGhydS50YXJnZXRfbmFtZSA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUocGFyYW12 YXItPnBhcmFtdmFyaWQpOworCXBhc3N0aHJ1LmluZGlyZWN0aW9uID0gaW5kaXJlY3Rpb247CisJ cGFzc3RocnUuY2NvbnRleHQgPSBDT0VSQ0lPTl9BU1NJR05NRU5UOworCisJLyogd2UgbmVlZCB0 byBwb3N0cG9uZSBjb252ZXJzaW9uIG9mICJ1bmtub3duIiB0byB0ZXh0ICovCisJcHN0YXRlLT5w X3Jlc29sdmVfdW5rbm93bnMgPSBmYWxzZTsKKworCXFyeSA9IHRyYW5zZm9ybVNlbGVjdFN0bXQo cHN0YXRlLCAoU2VsZWN0U3RtdCAqKSBzdG10LT5xdWVyeSwgJnBhc3N0aHJ1KTsKKworCXFyeS0+ cmVzdWx0VmFyaWFibGUgPSBwYXJhbXZhci0+cGFyYW12YXJpZDsKKwlxcnktPmNhblNldFRhZyA9 IHRydWU7CisKKwlzdG10LT5xdWVyeSA9IChOb2RlICopIHFyeTsKKworCS8qIHJlcHJlc2VudCB0 aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8KKwlyZXN1bHQgPSBtYWtlTm9kZShRdWVy eSk7CisJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9VVElMSVRZOworCXJlc3VsdC0+dXRpbGl0 eVN0bXQgPSAoTm9kZSAqKSBzdG10OworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIFBy b2R1Y2UgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBMb2NrQ2xhdXNlU3RyZW5ndGggdmFs dWUuCiAgKiBUaGlzIHNob3VsZCBvbmx5IGJlIGFwcGxpZWQgdG8gdmFsaWQgdmFsdWVzIChub3Qg TENTX05PTkUpLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZjVjMmYxNTE3NTIuLjczOGQxMzkxNjg0IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTMwMiw3ICszMDIsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZp ZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlE cm9wVHJhbnNmb3JtU3RtdAogCQlEcm9wVXNlck1hcHBpbmdTdG10IEV4cGxhaW5TdG10IEZldGNo U3RtdAogCQlHcmFudFN0bXQgR3JhbnRSb2xlU3RtdCBJbXBvcnRGb3JlaWduU2NoZW1hU3RtdCBJ bmRleFN0bXQgSW5zZXJ0U3RtdAotCQlMaXN0ZW5TdG10IExvYWRTdG10IExvY2tTdG10IE1lcmdl U3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQcmVwYXJhYmxlU3RtdAorCQlMZXRTdG10 IExpc3RlblN0bXQgTG9hZFN0bXQgTG9ja1N0bXQgTWVyZ2VTdG10IE5vdGlmeVN0bXQgRXhwbGFp bmFibGVTdG10IFByZXBhcmFibGVTdG10CiAJCUNyZWF0ZUZ1bmN0aW9uU3RtdCBBbHRlckZ1bmN0 aW9uU3RtdCBSZWluZGV4U3RtdCBSZW1vdmVBZ2dyU3RtdAogCQlSZW1vdmVGdW5jU3RtdCBSZW1v dmVPcGVyU3RtdCBSZW5hbWVTdG10IFJldHVyblN0bXQgUmV2b2tlU3RtdCBSZXZva2VSb2xlU3Rt dAogCQlSdWxlQWN0aW9uU3RtdCBSdWxlQWN0aW9uU3RtdE9yRW1wdHkgUnVsZVN0bXQKQEAgLTc0 OCw3ICs3NDgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAq cmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCUtFRVAgS0VZIEtFWVMKIAog CUxBQkVMIExBTkdVQUdFIExBUkdFX1AgTEFTVF9QIExBVEVSQUxfUAotCUxFQURJTkcgTEVBS1BS T09GIExFQVNUIExFRlQgTEVWRUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAorCUxFQURJ TkcgTEVBS1BST09GIExFQVNUIExFVCBMRUZUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQg TE9DQUwKIAlMT0NBTFRJTUUgTE9DQUxUSU1FU1RBTVAgTE9DQVRJT04gTE9DS19QIExPQ0tFRCBM T0dHRUQgTFNOX1AKIAogCU1BUFBJTkcgTUFUQ0ggTUFUQ0hFRCBNQVRFUklBTElaRUQgTUFYVkFM VUUgTUVSR0UgTUVSR0VfQUNUSU9OIE1FVEhPRApAQCAtMTA5NSw2ICsxMDk1LDcgQEAgc3RtdDoK IAkJCXwgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQKIAkJCXwgSW5kZXhTdG10CiAJCQl8IEluc2Vy dFN0bXQKKwkJCXwgTGV0U3RtdAogCQkJfCBMaXN0ZW5TdG10CiAJCQl8IFJlZnJlc2hNYXRWaWV3 U3RtdAogCQkJfCBMb2FkU3RtdApAQCAtMTI5ODMsNiArMTI5ODQsMzggQEAgb3B0X2hvbGQ6IC8q IEVNUFRZICovCQkJCQkJeyAkJCA9IDA7IH0KIAkJCXwgV0lUSE9VVCBIT0xECQkJCQl7ICQkID0g MDsgfQogCQk7CiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlRVUVSWToKKyAqCQkJ CUxFVCBTVEFURU1FTlQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitMZXRTdG10OglMRVQg Q29sSWQgb3B0X2luZGlyZWN0aW9uICc9JyBhX2V4cHIKKwkJCQl7CisJCQkJCUxldFN0bXQJICAg Km4gPSBtYWtlTm9kZShMZXRTdG10KTsKKwkJCQkJU2VsZWN0U3RtdCAqc2VsZWN0OworCQkJCQlS ZXNUYXJnZXQgICpyZXM7CisKKwkJCQkJbi0+dGFyZ2V0ID0gbGNvbnMobWFrZVN0cmluZygkMiks CisJCQkJCQkJCQkgIGNoZWNrX2luZGlyZWN0aW9uKCQzLCB5eXNjYW5uZXIpKTsKKworCQkJCQlz ZWxlY3QgPSBtYWtlTm9kZShTZWxlY3RTdG10KTsKKwkJCQkJcmVzID0gbWFrZU5vZGUoUmVzVGFy Z2V0KTsKKworCQkJCQkvKiBjcmVhdGUgdGFyZ2V0IGxpc3QgZm9yIGltcGxpY2l0IHF1ZXJ5ICov CisJCQkJCXJlcy0+bmFtZSA9IE5VTEw7CisJCQkJCXJlcy0+aW5kaXJlY3Rpb24gPSBOSUw7CisJ CQkJCXJlcy0+dmFsID0gKE5vZGUgKikgJDU7CisJCQkJCXJlcy0+bG9jYXRpb24gPSBANTsKKwor CQkJCQlzZWxlY3QtPnRhcmdldExpc3QgPSBsaXN0X21ha2UxKHJlcyk7CisJCQkJCW4tPnF1ZXJ5 ID0gKE5vZGUgKikgc2VsZWN0OworCisJCQkJCW4tPmxvY2F0aW9uID0gQDI7CisJCQkJCSQkID0g KE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICoJ CVFVRVJZOgpAQCAtMTgwOTksNiArMTgxMzIsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8 IExBUkdFX1AKIAkJCXwgTEFTVF9QCiAJCQl8IExFQUtQUk9PRgorCQkJfCBMRVQKIAkJCXwgTEVW RUwKIAkJCXwgTElTVEVOCiAJCQl8IExPQUQKQEAgLTE4NzE2LDYgKzE4NzUwLDcgQEAgYmFyZV9s YWJlbF9rZXl3b3JkOgogCQkJfCBMRUFLUFJPT0YKIAkJCXwgTEVBU1QKIAkJCXwgTEVGVAorCQkJ fCBMRVQKIAkJCXwgTEVWRUwKIAkJCXwgTElLRQogCQkJfCBMSVNURU4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9h Z2cuYwppbmRleCAzMjU0YzgzY2M2Yy4uZGRmNzkwNTY1NGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdn LmMKQEAgLTU4MCw2ICs1ODAsMTAgQEAgY2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQ YXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJy ZWFrOwogCisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQllcnJraW5kID0gdHJ1ZTsK KwkJCWJyZWFrOworCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZh dWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCiAJCQkgKiBjb21waWxlciB3aWxsIHdhcm4gaWYg d2UgYWRkIGEgbmV3IFBhcnNlRXhwcktpbmQgd2l0aG91dApAQCAtOTk2LDYgKzEwMDAsOSBAQCB0 cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndm dW5jLAogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJZXJya2luZCA9IHRydWU7CiAJ CQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCWVycmtpbmQgPSB0cnVl OworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRl ZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4 IDhiMzJmNzRkZTIzLi5mZjE2YTNiYzNjYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC01 OTMsNiArNTkzLDkgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29s dW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJfS0lORF9QQVJUSVRJT05fQk9VTkQ6CiAJCQllcnIg PSBfKCJjYW5ub3QgdXNlIGNvbHVtbiByZWZlcmVuY2UgaW4gcGFydGl0aW9uIGJvdW5kIGV4cHJl c3Npb24iKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJZXJy ID0gXygiY2Fubm90IHVzZSBjb2x1bW4gcmVmZXJlbmNlIGFzIHRhcmdldCBvZiBMRVQgY29tbWFu ZCIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5v IGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKQEAgLTk2Myw2ICs5NjYsNyBAQCBleHBy X2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQp CiAJCWNhc2UgRVhQUl9LSU5EX1JFVFVSTklORzoKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTOgog CQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFS R0VUOgogCQkJcmVzdWx0ID0gdHJ1ZTsKIAkJCWJyZWFrOwogCkBAIC0xOTk4LDYgKzIwMDIsOSBA QCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykK IAkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJCWVyciA9IF8oImNhbm5vdCB1 c2Ugc3VicXVlcnkgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7 CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1 YnF1ZXJ5IGFzIGEgdGFyZ2V0IG9mIExFVCBjb21tYW5kIik7CisJCQlicmVhazsKIAogCQkJLyoK IAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0 aGF0IHRoZQpAQCAtMzI2MSw3ICszMjY4LDggQEAgbWFrZV9udWxsdGVzdF9mcm9tX2Rpc3RpbmN0 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9FeHByICpkaXN0aW5jdGEsIE5vZGUgKmFyZykKIH0KIAog LyoKLSAqIEdlbmVyYXRlIHBhcmFtIHZhcmlhYmxlIGZvciByZWZlcmVuY2UgdG8gc2Vzc2lvbiB2 YXJpYWJsZQorICogR2VuZXJhdGUgcGFyYW0gdmFyaWFibGUgZm9yIHJlZmVyZW5jZSB0byBzZXNz aW9uIHZhcmlhYmxlLiBJdCBjYW4gYmUKKyAqIHdyYXBwZWQgYnkgRmllbGRTZWxlY3QgKFJlYWQp IG9yIEZpZWxkU3RvcmUgKFdyaXRlKSBub2Rlcy4KICAqLwogc3RhdGljIE5vZGUgKgogbWFrZVBh cmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKQEAgLTMyODUsNiArMzI5Mywy MCBAQCBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQlUdXBs ZURlc2MJdHVwZGVzYzsKIAkJaW50CQkJaTsKIAorCQlpZiAocHN0YXRlLT5wX2V4cHJfa2luZCA9 PSBFWFBSX0tJTkRfTEVUX1RBUkdFVCkKKwkJeworCQkJRmllbGRTdG9yZSAqZnN0b3JlID0gbWFr ZU5vZGUoRmllbGRTdG9yZSk7CisKKwkJCS8qCisJCQkgKiBtYWtlIGF1eCBGaWVsZFN0b3JlIHdy YXBwZXIgLSBpdCBpcyB1c2VkIGp1c3QgZm9yIHNpZ25hbGl6YXRpb24sCisJCQkgKiBzbyBzZXNz aW9uIHZhcmlhYmxlIGhhcyBhbiBhdHRyaWJ1dGUuIEFsbCBuZWNlc3NhcnkgdHJhbnNmb3JtYXRp b25zCisJCQkgKiBhbmQgY2hlY2tzIHdpbGwgYmUgZG9uZSBpbiB0cmFuc2Zvcm1Bc3NpZ25tZW50 SW5kaXJlY3Rpb24uCisJCQkgKi8KKwkJCWZzdG9yZS0+YXJnID0gKEV4cHIgKikgcGFyYW07CisK KwkJCXJldHVybiAoTm9kZSAqKSBmc3RvcmU7CisJCX0KKwogCQl0dXBkZXNjID0gbG9va3VwX3Jv d3R5cGVfdHVwZGVzY19ub2Vycm9yKHR5cGlkLCB0eXBtb2QsIHRydWUpOwogCQlpZiAoIXR1cGRl c2MpCiAJCQllcmVwb3J0KEVSUk9SLApAQCAtMzQyNiw2ICszNDQ4LDggQEAgUGFyc2VFeHByS2lu ZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2luZCkKIAkJCXJldHVybiAiR0VORVJBVEVEIEFTIjsK IAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCXJldHVybiAiQ1lDTEUiOworCQljYXNl IEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJcmV0dXJuICJMRVQiOwogCiAJCQkvKgogCQkJICog VGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhl CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA3NzhkNjljNmYzYy4uMTM2MTZjOWIzYzIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjc4Myw2ICsyNzgzLDkgQEAgY2hlY2tfc3JmX2Nh bGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGludCBsb2Nh dGlvbikKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVycmtpbmQgPSB0cnVlOwog CQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQllcnJraW5kID0gdHJ1 ZTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBk ZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDc2MGQwZmFh YWQwLi4wZWE3YTE2Njk3NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMK KysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTIzNiw2ICsyMzYsNyBAQCBDbGFz c2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAKIAkJY2FzZSBU X0NhbGxTdG10OgogCQljYXNlIFRfRG9TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXsKIAkJ CQkvKgogCQkJCSAqIENvbW1hbmRzIGluc2lkZSB0aGUgRE8gYmxvY2sgb3IgdGhlIGNhbGxlZCBw cm9jZWR1cmUgbWlnaHQKQEAgLTEwNjUsNiArMTA2NiwxMSBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRp bGl0eShQbGFubmVkU3RtdCAqcHN0bXQsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0 U3RtdDoKKwkJCUV4ZWN1dGVMZXRTdG10KHBzdGF0ZSwgKExldFN0bXQgKikgcGFyc2V0cmVlLCBw YXJhbXMsCisJCQkJCQkgICBxdWVyeUVudiwgcWMpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoK IAkJCS8qIEFsbCBvdGhlciBzdGF0ZW1lbnQgdHlwZXMgaGF2ZSBldmVudCB0cmlnZ2VyIHN1cHBv cnQgKi8KIAkJCVByb2Nlc3NVdGlsaXR5U2xvdyhwc3RhdGUsIHBzdG10LCBxdWVyeVN0cmluZywK QEAgLTIyMTIsNiArMjIxOCwxMCBAQCBVdGlsaXR5Q29udGFpbnNRdWVyeShOb2RlICpwYXJzZXRy ZWUpCiAJCQkJcmV0dXJuIFV0aWxpdHlDb250YWluc1F1ZXJ5KHFyeS0+dXRpbGl0eVN0bXQpOwog CQkJcmV0dXJuIHFyeTsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXFyeSA9IGNhc3ROb2RlKFF1 ZXJ5LCAoKExldFN0bXQgKikgcGFyc2V0cmVlKS0+cXVlcnkpOworCQkJcmV0dXJuIHFyeTsKKwog CQlkZWZhdWx0OgogCQkJcmV0dXJuIE5VTEw7CiAJfQpAQCAtMjQxMCw2ICsyNDIwLDEwIEBAIENy ZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJdGFnID0gQ01EVEFHX1NFTEVDVDsK IAkJCWJyZWFrOwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJdGFnID0gQ01EVEFHX0xFVDsKKwkJ CWJyZWFrOworCiAJCQkvKiB1dGlsaXR5IHN0YXRlbWVudHMgLS0tIHNhbWUgd2hldGhlciByYXcg b3IgY29va2VkICovCiAJCWNhc2UgVF9UcmFuc2FjdGlvblN0bXQ6CiAJCQl7CkBAIC0zMjk5LDYg KzMzMTMsNyBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJYnJlYWs7 CiAKIAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlsZXYgPSBM T0dTVE1UX0FMTDsKIAkJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9wbGFuY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmlu ZGV4IDFkMjBmMzM4MmIwLi5jOGU5MWJlMTQ4MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvcGxhbmNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNh Y2hlLmMKQEAgLTIwNTMsNiArMjA1MywxNyBAQCBTY2FuUXVlcnlGb3JMb2NrcyhRdWVyeSAqcGFy c2V0cmVlLCBib29sIGFjcXVpcmUpCiAJCXF1ZXJ5X3RyZWVfd2Fsa2VyKHBhcnNldHJlZSwgU2Nh blF1ZXJ5V2Fsa2VyLCAmYWNxdWlyZSwKIAkJCQkJCSAgUVRXX0lHTk9SRV9SQ19TVUJRVUVSSUVT KTsKIAl9CisKKwkvKiBwcm9jZXNzIHNlc3Npb24gdmFyaWFibGVzICovCisJaWYgKE9pZElzVmFs aWQocGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSkpCisJeworCQlpZiAoYWNxdWlyZSkKKwkJCUxv Y2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcnNldHJlZS0+cmVzdWx0VmFy aWFibGUsCisJCQkJCQkJICAgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJZWxzZQorCQkJVW5sb2Nr RGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlh YmxlLAorCQkJCQkJCQkgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwl9CiB9CiAKIC8qCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMKaW5kZXggMDk0ZTY1ZGI4NDkuLmZlMDIwYTliMzgxIDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCkBAIC0xMjcyLDggKzEyNzIsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg c3FsX2NvbW1hbmRzW10gPSB7CiAJIkFCT1JUIiwgIkFMVEVSIiwgIkFOQUxZWkUiLCAiQkVHSU4i LCAiQ0FMTCIsICJDSEVDS1BPSU5UIiwgIkNMT1NFIiwgIkNMVVNURVIiLAogCSJDT01NRU5UIiwg IkNPTU1JVCIsICJDT1BZIiwgIkNSRUFURSIsICJERUFMTE9DQVRFIiwgIkRFQ0xBUkUiLAogCSJE RUxFVEUgRlJPTSIsICJESVNDQVJEIiwgIkRPIiwgIkRST1AiLCAiRU5EIiwgIkVYRUNVVEUiLCAi RVhQTEFJTiIsCi0JIkZFVENIIiwgIkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJ TlNFUlQgSU5UTyIsICJMSVNURU4iLCAiTE9BRCIsICJMT0NLIiwKLQkiTUVSR0UgSU5UTyIsICJN T1ZFIiwgIk5PVElGWSIsICJQUkVQQVJFIiwKKwkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZP UkVJR04gU0NIRU1BIiwgIklOU0VSVCBJTlRPIiwgIkxFVCIsCisJIkxJU1RFTiIsICJMT0FEIiwg IkxPQ0siLCAiTUVSR0UgSU5UTyIsICJNT1ZFIiwgIk5PVElGWSIsICJQUkVQQVJFIiwKIAkiUkVB U1NJR04iLCAiUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyIsICJSRUlOREVYIiwgIlJFTEVBU0Ui LAogCSJSRVNFVCIsICJSRVZPS0UiLCAiUk9MTEJBQ0siLAogCSJTQVZFUE9JTlQiLCAiU0VDVVJJ VFkgTEFCRUwiLCAiU0VMRUNUIiwgIlNFVCIsICJTSE9XIiwgIlNUQVJUIiwKQEAgLTQ4MjAsNiAr NDgyMCwxNCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNlIGlm IChUYWlsTWF0Y2hlcygiVkFMVUVTIikgJiYgIVRhaWxNYXRjaGVzKCJERUZBVUxUIiwgIlZBTFVF UyIpKQogCQlDT01QTEVURV9XSVRIKCIoIik7CiAKKy8qIExFVCAqLworCS8qIElmIHByZXYuIHdv cmQgaXMgTEVUIHN1Z2dlc3QgYSBsaXN0IG9mIHZhcmlhYmxlcyAqLworCWVsc2UgaWYgKE1hdGNo ZXMoIkxFVCIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9v Zl92YXJpYWJsZXMpOworCS8qIENvbXBsZXRlIExFVCA8dmFyaWFibGU+IHdpdGggIj0iICovCisJ ZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkxFVCIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgi PSIpOworCiAvKiBMT0NLICovCiAJLyogQ29tcGxldGUgTE9DSyBbVEFCTEVdIFtPTkxZXSB3aXRo IGEgbGlzdCBvZiB0YWJsZXMgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJMT0NLIikpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggOWY1YzZlMzBmYmQuLjJlYmU4NDc3 Nzg5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0xNywxMSAr MTcsMTYgQEAKIAogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgogI2luY2x1ZGUg InBhcnNlci9wYXJzZV9ub2RlLmgiCisjaW5jbHVkZSAibm9kZXMvcGFyYW1zLmgiCiAjaW5jbHVk ZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgorI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAKIGV4dGVy biB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlz TnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAq aXNOdWxsKTsKIAogZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CiAKK2V4dGVybiB2b2lkIEV4 ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0 SW5mbyBwYXJhbXMsCisJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlD b21wbGV0aW9uICpxYyk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGE0YTll MjgxNDYzLi4wZmNjZTYyMWMzNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTQ3LDYgKzE0 Nyw5IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJICovCiAJaW50CQkJcmVzdWx0UmVsYXRpb24g cGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCisJLyogdGFyZ2V0IHZhcmlhYmxl IG9mIExFVCBzdGF0ZW1lbnQgKi8KKwlPaWQJCQlyZXN1bHRWYXJpYWJsZTsKKwogCS8qIGhhcyBh Z2dyZWdhdGVzIGluIHRsaXN0IG9yIGhhdmluZ1F1YWwgKi8KIAlib29sCQloYXNBZ2dzIHBnX25v ZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBoYXMgd2luZG93IGZ1bmN0aW9ucyBp biB0bGlzdCAqLwpAQCAtMjE3MCw2ICsyMTczLDE4IEBAIHR5cGVkZWYgc3RydWN0IE1lcmdlU3Rt dAogCVdpdGhDbGF1c2UgKndpdGhDbGF1c2U7CQkvKiBXSVRIIGNsYXVzZSAqLwogfSBNZXJnZVN0 bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlMZXQgU3RhdGVtZW50CisgKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IExldFN0bXQKK3sKKwlO b2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnRhcmdldDsJCQkvKiB0YXJnZXQgdmFyaWFibGUgKi8K KwlOb2RlCSAgICpxdWVyeTsJCQkvKiBzb3VyY2UgZXhwcmVzc2lvbiAqLworCVBhcnNlTG9jCWxv Y2F0aW9uOworfSBMZXRTdG10OworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJU2Vs ZWN0IFN0YXRlbWVudAogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5kZXggNzVhODYzZGFkOTMuLjUw ZDRhMjBiZTc3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaApAQCAtMTkyLDYgKzE5MiwxNSBAQCB0eXBl ZGVmIHN0cnVjdCBQbGFubmVyR2xvYmFsCiAKIAkvKiBsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJp YWJsZXMgKi8KIAlMaXN0CSAgICpzZXNzaW9uVmFyaWFibGVzOworCisJLyogT2lkIG9mIHNlc3Np b24gdmFyaWFibGUgdXNlZCBsaWtlIHRhcmdldCBvZiBMRVQgY29tbWFuZCAqLworCU9pZAkJCXJl c3VsdFZhcmlhYmxlOworCisJLyogb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgdXNlZCBsaWtlIGJh c2Ugbm9kZSBmb3IgYXNzaWdubWVudCBpbmRpcmVjdGlvbiAqLworCU9pZAkJCWJhc2Vub2RlU2Vz c2lvblZhcmlkOworCisJLyogdHJ1ZSwgaWYgd2UgZG8gU0VMRUNUIHBlcm1pc3Npb24gY2hlY2sg b24gYmFzZW5vZGVTZXNzaW9uVmFyaWQgKi8KKwlib29sCQliYXNlbm9kZVNlc3Npb25WYXJTZWxl Y3RDaGVjazsKIH0gUGxhbm5lckdsb2JhbDsKIAogLyogbWFjcm8gZm9yIGZldGNoaW5nIHRoZSBQ bGFuIGFzc29jaWF0ZWQgd2l0aCBhIFN1YlBsYW4gbm9kZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApp bmRleCAwYWE1MmNiYzRjNS4uY2Y4NjNjNDNkOGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0x NjEsNiArMTYxLDEzIEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAJLyogT0lEcyBmb3Ig UEFSQU1fVkFSSUFCTEUgUGFyYW1zICovCiAJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsKIAor CS8qCisJICogVGhlIG9pZCBvZiBzZXNzaW9uIHZhcmlhYmxlIGV4ZWNsdWRlZCBmcm9tIHBlcm1p c3Npb24gY2hlY2suIFRoaXMKKwkgKiBzZXNzaW9uIHZhcmlhYmxlIGlzIHVzZWQgYXMgYmFzZSBu b2RlIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24gKGFuZCBpdAorCSAqIGlzIHVzZWQgb25seSB0 aGVyZSkuCisJICovCisJaW50CQkJZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkOworCiAJLyogc3Rh dGVtZW50IGxvY2F0aW9uIGluIHNvdXJjZSBzdHJpbmcgKGNvcGllZCBmcm9tIFF1ZXJ5KSAqLwog CS8qIHN0YXJ0IGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJc3RtdF9s b2NhdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggNWYzYTFhMmQxYmUuLjkxMDc4OTFmYTlk IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtNDA0LDYgKzQwNCwxNSBAQCB0eXBlZGVmIHN0cnVj dCBQYXJhbQogCU9pZAkJCXBhcmFtY29sbGlkOwogCS8qIE9JRCBvZiB1c2VkIHNlc3Npb24gdmFy aWFibGUgb3IgSW52YWxpZE9pZCBpZiBub25lICovCiAJT2lkCQkJcGFyYW12YXJpZCBwZ19ub2Rl X2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisKKwkvKgorCSAqIHRydWUgaWYgcGFyYW0gaXMg dXNlZCBhcyBiYXNlIG5vZGUgb2YgYXNzaWdubWVudCBpbmRpcmVjdGlvbiAod2hlbgorCSAqIHRh cmdldCBvZiBMRVQgc3RhdGVtZW50IGlzIGFuIGFycmF5IGZpZWxkIG9yIGFuIHJlY29yZCBmaWVs ZCkuIEZvciB0aGlzCisJICogcGFyYW0gd2UgZG8gbm90IGNoZWNrIFNFTEVDVCBhY2Nlc3Mgcmln aHQsIGJlY2F1c2UgdGhpcyBwYXJhbSBpcyB1c2VkCisJICoganVzdCBmb3IgZXhlY3V0aW9uIG9m IGFuIG1vZGlmeSBvcGVyYXRpb24uCisJICovCisJYm9vbAkJcGFyYW1iYXNlbm9kZTsKKwogCS8q IHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247 CiB9IFBhcmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IGQxYWQ2ODYxODA1Li5iYWRkMTYxOGFmOCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaApAQCAtMjU4LDYgKzI1OCw3IEBAIFBHX0tFWVdPUkQoImxlYWRpbmci LCBMRUFESU5HLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVh a3Byb29mIiwgTEVBS1BST09GLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJsZWFzdCIsIExFQVNULCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgibGVmdCIsIExFRlQsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwp CitQR19LRVlXT1JEKCJsZXQiLCBMRVQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoImxldmVsIiwgTEVWRUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoImxpa2UiLCBMSUtFLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgibGltaXQiLCBMSU1JVCwgUkVTRVJWRURfS0VZV09SRCwgQVNf TEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCA4NGU4ODY5NDBkOC4uMDI2NzQzYjcz MzcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtODIsNiArODIsNyBAQCB0eXBlZGVmIGVu dW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9DT1BZX1dIRVJFLAkJLyogV0hFUkUgY29uZGl0 aW9uIGluIENPUFkgRlJPTSAqLwogCUVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OLCAvKiBnZW5l cmF0aW9uIGV4cHJlc3Npb24gZm9yIGEgY29sdW1uICovCiAJRVhQUl9LSU5EX0NZQ0xFX01BUkss CQkvKiBjeWNsZSBtYXJrIHZhbHVlICovCisJRVhQUl9LSU5EX0xFVF9UQVJHRVQsCQkvKiBvbmx5 IHNlc3Npb24gdmFyaWFibGVzICovCiB9IFBhcnNlRXhwcktpbmQ7CiAKIApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xp c3QuaAppbmRleCBjYmIwOWZjZjUxMS4uYmUxNDA1OWNjNzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5o CkBAIC0xODYsNiArMTg2LDcgQEAgUEdfQ01EVEFHKENNRFRBR19HUkFOVCwgIkdSQU5UIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19HUkFOVF9ST0xFLCAiR1JBTlQgUk9M RSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0lNUE9SVF9GT1JFSUdO X1NDSEVNQSwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfSU5TRVJULCAiSU5TRVJUIiwgZmFsc2UsIGZhbHNlLCB0cnVlKQorUEdf Q01EVEFHKENNRFRBR19MRVQsICJMRVQiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19MSVNURU4sICJMSVNURU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19MT0FELCAiTE9BRCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0xPQ0tfVEFCTEUsICJMT0NLIFRBQkxFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dApp bmRleCAzZTIxMDU5YWNjMi4uNjdmNzhhNTQ4ZGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQKQEAgLTE4OSwzICsxODksMjgw IEBAIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgc3ZhcnRlc3RfZG1sLnRlc3R0YWIKIERST1AgUk9M RSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CiBEUk9QIFZBUklBQkxFIHNlc3ZhcjQw OwogRFJPUCBUQUJMRSBzdmFydGVzdF9kbWw7CitDUkVBVEUgVkFSSUFCTEUgc2VzdmFyNDMgQVMg bnVtZXJpYzsKKy0tIExFVCBzdG10IGlzIG5vdCBhbGxvd2VkIGluc2lkZSBDVEUKK1dJVEggeCBB UyAoTEVUIHNlc3ZhcjQzID0gMy4xNCkgU0VMRUNUICogRlJPTSB4OworRVJST1I6ICBzeW50YXgg ZXJyb3IgYXQgb3IgbmVhciAiTEVUIgorTElORSAxOiBXSVRIIHggQVMgKExFVCBzZXN2YXI0MyA9 IDMuMTQpIFNFTEVDVCAqIEZST00geDsKKyAgICAgICAgICAgICAgICAgICBeCistLSBMRVQgc3Rt dCByZXF1aXJlcyByZXN1bHQgd2l0aCBleGFjdGx5IG9uZSByb3cKK0xFVCBzZXN2YXI0MyA9IGdl bmVyYXRlX3NlcmllcygxLDEpOworLS0gc2hvdWxkIGZhaWwKK0xFVCBzZXN2YXI0MyA9IGdlbmVy YXRlX3NlcmllcygxLDIpOworRVJST1I6ICBleHByZXNzaW9uIHJldHVybmVkIG1vcmUgdGhhbiBv bmUgcm93CitMRVQgc2VzdmFyNDMgPSBnZW5lcmF0ZV9zZXJpZXMoMSwwKTsKK0VSUk9SOiAgZXhw cmVzc2lvbiByZXR1cm5lZCBubyByb3dzCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2RtbDsKK0NS RUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDQgQVMgdmFyY2hhcjsKK0NSRUFURSBU WVBFIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7 CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1IEFTIHN2YXJ0ZXN0X2RtbC5j b21wb3NpdGVfdHlwZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5m eDAxKG51bWVyaWMpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0xFVCBzZXN2YXI0MyA9ICQxOworJCQg TEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ4 MDIoKQorUkVUVVJOUyBudW1lcmljIEFTICQkCitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDMpOwor JCQgTEFOR1VBR0Ugc3FsOworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDAxKDMuMTQpOworIGZ4MDEg CistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDAyKCksIFZBUklB QkxFKHNlc3ZhcjQzKTsKKyBmeDAyIHwgc2VzdmFyNDMgCistLS0tLS0rLS0tLS0tLS0tLQorIDMu MTQgfCAgICAgMy4xNAorKDEgcm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFy dGVzdF9kbWwuZngwMyhzIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQKK0JFR0lOCisg IExFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDQgPSBzOworICBSRVRVUk4gVkFSSUFCTEUoc3ZhcnRl c3RfZG1sLnNlc3ZhcjQ0KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBzdmFy dGVzdF9kbWwuZngwMygnSGVsbG8nKTsKKyBmeDAzICAKKy0tLS0tLS0KKyBIZWxsbworKDEgcm93 KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwNChzIHZhcmNo YXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQKK0JFR0lOCisgIExFVCBzZXN2YXI0NCA9IHM7Cisg IFJFVFVSTiBWQVJJQUJMRShzZXN2YXI0NCk7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWwKK1NF VCBTRUFSQ0hfUEFUSCBUTyAnc3ZhcnRlc3RfZG1sJzsKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngw NCgnSGVsbG8nKTsKKyBmeDA0ICAKKy0tLS0tLS0KKyBIZWxsbworKDEgcm93KQorCitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwNShhIGludCwgYiBpbnQsIGMgaW50 KQorUkVUVVJOUyBzdmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGUgQVMgJCQKK0JFR0lOCisgIExF VCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coYSwgYiwgYyk7CisgIFJFVFVSTiBWQVJJQUJM RShzdmFydGVzdF9kbWwuc2VzdmFyNDUpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NF TEVDVCByb3dfdG9fanNvbihzdmFydGVzdF9kbWwuZngwNSgxMCwgMjAsIDMwKSk7CisgICAgICBy b3dfdG9fanNvbiAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYSI6MTAsImIi OjIwLCJjIjozMH0KKygxIHJvdykKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2 YXI0NSk7CisgIHNlc3ZhcjQ1ICAKKy0tLS0tLS0tLS0tLQorICgxMCwyMCwzMCkKKygxIHJvdykK KworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkuKjsKKyBhICB8IGIgIHwg YyAgCistLS0tKy0tLS0rLS0tLQorIDEwIHwgMjAgfCAzMAorKDEgcm93KQorCitTRUxFQ1QgVkFS SUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1LmEpOworIGEgIAorLS0tLQorIDEwCisoMSByb3cp CisKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpLmE7CisgYSAgCistLS0t CisgMTAKKygxIHJvdykKKworQUxURVIgVFlQRSBzdmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGUg QUREIEFUVFJJQlVURSBkIGludDsKKy0tIGNvbXBvc2l0ZSB2YWx1ZSBzaG91bGQgYmUgc3RpbGwg cmVhZGFibGUKK1NFTEVDVCByb3dfdG9fanNvbihWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFy NDUpKTsKKyAgICAgICAgICAgcm93X3RvX2pzb24gICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgeyJhIjoxMCwiYiI6MjAsImMiOjMwLCJkIjpudWxsfQorKDEg cm93KQorCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1ID0gUk9XKDEwMCwgMjAwLCAzMDAsIE5V TEwpOworU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkp OworICAgICAgICAgICAgcm93X3RvX2pzb24gICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImEiOjEwMCwiYiI6MjAwLCJjIjozMDAsImQiOm51bGx9 CisoMSByb3cpCisKKy0tIHVzZSB2YXJpYWJsZXMgaW5zaWRlIHZpZXcKK0NSRUFURSBWSUVXIHN2 YXJ0ZXN0X2RtbC52aWV3MDEgQVMgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0 NSkuKjsKK1NFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKyAgYSAgfCAgYiAgfCAg YyAgfCBkIAorLS0tLS0rLS0tLS0rLS0tLS0rLS0tCisgMTAwIHwgMjAwIHwgMzAwIHwgIAorKDEg cm93KQorCistLSBzdGFydCBuZXcgY29ubmVjdGlvbgorXGMKK1NFTEVDVCAqIEZST00gc3ZhcnRl c3RfZG1sLnZpZXcwMTsKKyBhIHwgYiB8IGMgfCBkIAorLS0tKy0tLSstLS0rLS0tCisgICB8ICAg fCAgIHwgIAorKDEgcm93KQorCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1ID0gUk9XKDUsIDYs IDcsIDgpOworU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwudmlldzAxOworIGEgfCBiIHwgYyB8 IGQgCistLS0rLS0tKy0tLSstLS0KKyA1IHwgNiB8IDcgfCA4CisoMSByb3cpCisKKy0tIHNob3Vs ZCBmYWlsIChkZXBlbmRlbmN5KQorRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDU7 CitFUlJPUjogIGNhbm5vdCBkcm9wIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1sLnNlc3Zh cjQ1IGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHZpZXcgc3Zh cnRlc3RfZG1sLnZpZXcwMSBkZXBlbmRzIG9uIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ1CitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5k ZW50IG9iamVjdHMgdG9vLgorRFJPUCBWSUVXIHN2YXJ0ZXN0X2RtbC52aWV3MDE7CistLSB0ZXN0 IG9mIGFjY2VzcyB2YXJpYWJsZXMgZnJvbSBnZW5lcmljIHBsYW5zCitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwNigpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQKK0JF R0lOCisgIFJFVFVSTiBWQVJJQUJMRShzZXN2YXI0Myk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBn c3FsOworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CitMRVQgc2Vz dmFyNDMgPSA2LjI4OworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisgZngwNiAKKy0tLS0t LQorIDYuMjgKKygxIHJvdykKKworTEVUIHNlc3ZhcjQzID0gVkFSSUFCTEUoc2VzdmFyNDMpICog MjsKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwNigpOworIGZ4MDYgIAorLS0tLS0tLQorIDEyLjU2 CisoMSByb3cpCisKKy0tIHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uIHRlc3QKK0RST1AgVkFSSUFC TEUgc2VzdmFyNDM7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7 CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInNlc3ZhcjQzIiBkb2Vzbid0IGV4aXN0CitMSU5F IDE6IFZBUklBQkxFKHNlc3ZhcjQzKQorICAgICAgICAgICAgICAgICBeCitRVUVSWTogIFZBUklB QkxFKHNlc3ZhcjQzKQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHN2YXJ0ZXN0X2RtbC5m eDA2KCkgbGluZSAzIGF0IFJFVFVSTgorQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjQzIEFTIG51bWVy aWM7CitMRVQgc2VzdmFyNDMgPSAyLjcyOworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7Cisg ZngwNiAKKy0tLS0tLQorIDIuNzIKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBzZXN2YXI0MzsK K0NSRUFURSBET01BSU4gc3ZhcnRlc3RfZG1sLmludF9ub3RfbnVsbCBBUyBpbnQgQ0hFQ0sodmFs dWUgSVMgTk9UIE5VTEwpOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NiBB UyBzdmFydGVzdF9kbWwuaW50X25vdF9udWxsOworLS0gc2hvdWxkIGZhaWwKK0xFVCBzdmFydGVz dF9kbWwuc2VzdmFyNDYgPSBOVUxMOworRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIHN2YXJ0ZXN0 X2RtbC5pbnRfbm90X251bGwgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiaW50X25vdF9udWxs X2NoZWNrIgorLS0gc2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ2ID0gMTAw OworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9IFJPVygxLDIsMyw0KTsKK0xFVCBzdmFydGVz dF9kbWwuc2VzdmFyNDUuYSA9IDEwMDsKK1NFTEVDVCByb3dfdG9fanNvbihWQVJJQUJMRShzdmFy dGVzdF9kbWwuc2VzdmFyNDUpKTsKKyAgICAgICAgIHJvd190b19qc29uICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYSI6MTAwLCJiIjoyLCJjIjozLCJkIjo0fQor KDEgcm93KQorCitDUkVBVEUgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3Jv bGU7CitHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgc3ZhcnRlc3RfZG1sIFRPIHJlZ3Jlc3Nfc3ZhcnRl c3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKK0dSQU5UIFVQREFURSBPTiBWQVJJQUJMRSBzdmFydGVz dF9kbWwuc2VzdmFyNDUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOwor U0VUIFJPTEUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOworLS0gc2hv dWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpOworRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBzZXN2YXI0NQorLS0gc2hv dWxkIGJlIG9rCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1LmIgPSAyMDA7CitTRVQgUk9MRSBU TyBERUZBVUxUOworU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2 YXI0NSkpOworICAgICAgICAgIHJvd190b19qc29uICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHsiYSI6MTAwLCJiIjoyMDAsImMiOjMsImQiOjR9CisoMSByb3cp CisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDcgQVMgaW50W107CitMRVQg c3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3ID0gQVJSQVlbMSwyLDNdOworR1JBTlQgVVBEQVRFIE9OIFZB UklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NyBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0 ZV9vbmx5X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5 X3JvbGU7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2 YXI0Nyk7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHNl c3ZhcjQ3CistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDdbMV0gPSAy MDA7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0Nyk7Cisgc2VzdmFyNDcgIAorLS0tLS0tLS0tLS0KKyB7MjAwLDIsM30KKygxIHJvdykK KworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCBBUyBpbnQ0bXVsdGlyYW5n ZVtdOworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCA9IE5VTEw7CitMRVQgc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ4ID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworTEVU IHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OFsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKK1NFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDgpOworICAgICAgICAgICAgICAgIHNlc3ZhcjQ4 ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHsie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxMDApfSJ9CisoMSByb3cpCisKKy0t IHRlc3QgZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9k bWwuc2VzdmFyNDkgQVMgaW50OworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OSA9ICQxIFxiaW5k IDEwIFxnCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ5KTsKKyBzZXN2YXI0 OSAKKy0tLS0tLS0tLS0KKyAgICAgICAxMAorKDEgcm93KQorCitMRVQgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ5ID0gJDEgXHBhcnNlIGxldHBzCitcYmluZF9uYW1lZCBsZXRwcyAxMDAgXGcKK1NFTEVD VCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDkpOworIHNlc3ZhcjQ5IAorLS0tLS0tLS0t LQorICAgICAgMTAwCisoMSByb3cpCisKK1xjbG9zZV9wcmVwYXJlZCBsZXRwcworRFJPUCBTQ0hF TUEgc3ZhcnRlc3RfZG1sIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDE0IG90 aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBz dmFydGVzdF9kbWwuc2VzdmFyNDQKK2Ryb3AgY2FzY2FkZXMgdG8gdHlwZSBzdmFydGVzdF9kbWwu Y29tcG9zaXRlX3R5cGUKK2Ryb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVz dF9kbWwuc2VzdmFyNDUKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1sLmZ4 MDEobnVtZXJpYykKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1sLmZ4MDIo KQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBzdmFydGVzdF9kbWwuZngwMyhjaGFyYWN0ZXIg dmFyeWluZykKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1sLmZ4MDQoY2hh cmFjdGVyIHZhcnlpbmcpCitkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIHN2YXJ0ZXN0X2RtbC5m eDA1KGludGVnZXIsaW50ZWdlcixpbnRlZ2VyKQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBz dmFydGVzdF9kbWwuZngwNigpCitkcm9wIGNhc2NhZGVzIHRvIHR5cGUgc3ZhcnRlc3RfZG1sLmlu dF9ub3RfbnVsbAorZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0NgorZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0NworZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0OAorZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0OQorRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9s ZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2Rt bC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCmlu ZGV4IGIyODcwZGRlOWU5Li4yYzhkNmMzYTQ5NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCkBAIC0xNTksMyArMTU5LDE5MiBAQCBEUk9QIFJP TEUgcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOwogRFJPUCBWQVJJQUJMRSBzZXN2YXI0 MDsKIAogRFJPUCBUQUJMRSBzdmFydGVzdF9kbWw7CisKK0NSRUFURSBWQVJJQUJMRSBzZXN2YXI0 MyBBUyBudW1lcmljOworCistLSBMRVQgc3RtdCBpcyBub3QgYWxsb3dlZCBpbnNpZGUgQ1RFCitX SVRIIHggQVMgKExFVCBzZXN2YXI0MyA9IDMuMTQpIFNFTEVDVCAqIEZST00geDsKKworLS0gTEVU IHN0bXQgcmVxdWlyZXMgcmVzdWx0IHdpdGggZXhhY3RseSBvbmUgcm93CitMRVQgc2VzdmFyNDMg PSBnZW5lcmF0ZV9zZXJpZXMoMSwxKTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCBzZXN2YXI0MyA9 IGdlbmVyYXRlX3NlcmllcygxLDIpOworTEVUIHNlc3ZhcjQzID0gZ2VuZXJhdGVfc2VyaWVzKDEs MCk7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NCBBUyB2YXJjaGFyOworQ1JFQVRFIFRZUEUgc3ZhcnRlc3RfZG1sLmNv bXBvc2l0ZV90eXBlIEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFURSBWQVJJQUJMRSBz dmFydGVzdF9kbWwuc2VzdmFyNDUgQVMgc3ZhcnRlc3RfZG1sLmNvbXBvc2l0ZV90eXBlOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwMShudW1lcmljKQorUkVU VVJOUyB2b2lkIEFTICQkCitMRVQgc2VzdmFyNDMgPSAkMTsKKyQkIExBTkdVQUdFIHNxbDsKKwor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ4MDIoKQorUkVUVVJOUyBu dW1lcmljIEFTICQkCitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDMpOworJCQgTEFOR1VBR0Ugc3Fs OworCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDEoMy4xNCk7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1s LmZ4MDIoKSwgVkFSSUFCTEUoc2VzdmFyNDMpOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiBzdmFydGVzdF9kbWwuZngwMyhzIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQKK0JF R0lOCisgIExFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDQgPSBzOworICBSRVRVUk4gVkFSSUFCTEUo c3ZhcnRlc3RfZG1sLnNlc3ZhcjQ0KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VM RUNUIHN2YXJ0ZXN0X2RtbC5meDAzKCdIZWxsbycpOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBzdmFydGVzdF9kbWwuZngwNChzIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQK K0JFR0lOCisgIExFVCBzZXN2YXI0NCA9IHM7CisgIFJFVFVSTiBWQVJJQUJMRShzZXN2YXI0NCk7 CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWwKK1NFVCBTRUFSQ0hfUEFUSCBUTyAnc3ZhcnRlc3Rf ZG1sJzsKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA0KCdIZWxsbycpOworCitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwNShhIGludCwgYiBpbnQsIGMgaW50KQor UkVUVVJOUyBzdmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGUgQVMgJCQKK0JFR0lOCisgIExFVCBz dmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coYSwgYiwgYyk7CisgIFJFVFVSTiBWQVJJQUJMRShz dmFydGVzdF9kbWwuc2VzdmFyNDUpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VM RUNUIHJvd190b19qc29uKHN2YXJ0ZXN0X2RtbC5meDA1KDEwLCAyMCwgMzApKTsKKworU0VMRUNU IFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRl c3RfZG1sLnNlc3ZhcjQ1KS4qOworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0 NS5hKTsKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpLmE7CisKK0FMVEVS IFRZUEUgc3ZhcnRlc3RfZG1sLmNvbXBvc2l0ZV90eXBlIEFERCBBVFRSSUJVVEUgZCBpbnQ7CisK Ky0tIGNvbXBvc2l0ZSB2YWx1ZSBzaG91bGQgYmUgc3RpbGwgcmVhZGFibGUKK1NFTEVDVCByb3df dG9fanNvbihWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKworTEVUIHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0NSA9IFJPVygxMDAsIDIwMCwgMzAwLCBOVUxMKTsKK1NFTEVDVCByb3dfdG9f anNvbihWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKworLS0gdXNlIHZhcmlhYmxl cyBpbnNpZGUgdmlldworQ1JFQVRFIFZJRVcgc3ZhcnRlc3RfZG1sLnZpZXcwMSBBUyBTRUxFQ1Qg VkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KS4qOworU0VMRUNUICogRlJPTSBzdmFydGVz dF9kbWwudmlldzAxOworCistLSBzdGFydCBuZXcgY29ubmVjdGlvbgorXGMKK1NFTEVDVCAqIEZS T00gc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9IFJP Vyg1LCA2LCA3LCA4KTsKKworU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwudmlldzAxOworCist LSBzaG91bGQgZmFpbCAoZGVwZW5kZW5jeSkKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ1OworCitEUk9QIFZJRVcgc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKworLS0gdGVzdCBvZiBh Y2Nlc3MgdmFyaWFibGVzIGZyb20gZ2VuZXJpYyBwbGFucworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gc3ZhcnRlc3RfZG1sLmZ4MDYoKQorUkVUVVJOUyBudW1lcmljIEFTICQkCitCRUdJTgor ICBSRVRVUk4gVkFSSUFCTEUoc2VzdmFyNDMpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK KworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CisKK0xFVCBzZXN2 YXI0MyA9IDYuMjg7CisKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwNigpOworCitMRVQgc2VzdmFy NDMgPSBWQVJJQUJMRShzZXN2YXI0MykgKiAyOworCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYo KTsKKworLS0gcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24gdGVzdAorRFJPUCBWQVJJQUJMRSBzZXN2 YXI0MzsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwNigpOworCitD UkVBVEUgVkFSSUFCTEUgc2VzdmFyNDMgQVMgbnVtZXJpYzsKKworTEVUIHNlc3ZhcjQzID0gMi43 MjsKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisKK0RST1AgVkFSSUFCTEUgc2VzdmFy NDM7CisKK0NSRUFURSBET01BSU4gc3ZhcnRlc3RfZG1sLmludF9ub3RfbnVsbCBBUyBpbnQgQ0hF Q0sodmFsdWUgSVMgTk9UIE5VTEwpOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2 YXI0NiBBUyBzdmFydGVzdF9kbWwuaW50X25vdF9udWxsOworCistLSBzaG91bGQgZmFpbAorTEVU IHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NiA9IE5VTEw7CistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFy dGVzdF9kbWwuc2VzdmFyNDYgPSAxMDA7CisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBS T1coMSwyLDMsNCk7CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1LmEgPSAxMDA7CitTRUxFQ1Qg cm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KSk7CisKK0NSRUFURSBS T0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKK0dSQU5UIFVTQUdFIE9O IFNDSEVNQSBzdmFydGVzdF9kbWwgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9y b2xlOworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSBUTyBy ZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jl c3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVD VCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpOworCistLSBzaG91bGQgYmUgb2sKK0xF VCBzdmFydGVzdF9kbWwuc2VzdmFyNDUuYiA9IDIwMDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsK KworU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkpOwor CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3IEFTIGludFtdOworTEVUIHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0NyA9IEFSUkFZWzEsMiwzXTsKKworR1JBTlQgVVBEQVRFIE9OIFZB UklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NyBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0 ZV9vbmx5X3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29u bHlfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwu c2VzdmFyNDcpOworCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDdb MV0gPSAyMDA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFTEVDVCBWQVJJQUJMRShzdmFy dGVzdF9kbWwuc2VzdmFyNDcpOworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3Zh cjQ4IEFTIGludDRtdWx0aXJhbmdlW107CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4ID0gTlVM TDsKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDggPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUs OCksWzEyLDE0KX0ifSc7CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4WzJdID0gJ3tbNSw4KSxb MTIsMTAwKX0nOworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCk7CisKKy0t IHRlc3QgZXh0ZW5kZWQgcXVlcnkgcHJvdG9jb2wKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9k bWwuc2VzdmFyNDkgQVMgaW50OworCitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ5ID0gJDEgXGJp bmQgMTAgXGcKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDkpOworCitMRVQg c3ZhcnRlc3RfZG1sLnNlc3ZhcjQ5ID0gJDEgXHBhcnNlIGxldHBzCitcYmluZF9uYW1lZCBsZXRw cyAxMDAgXGcKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDkpOworCitcY2xv c2VfcHJlcGFyZWQgbGV0cHMKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfZG1sIENBU0NBREU7CitE Uk9QIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdAppbmRleCBjMDIyOTU5ZWNjYS4uZDNhOTQzM2I0MzIgMTAwNjQ0Ci0tLSBh L3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CkBAIC0xNTQ5LDYgKzE1NDksNyBAQCBMYXJnZU9iamVjdERlc2MKIExh dGNoCiBMYXVuY2hlckxhc3RTdGFydFRpbWVzRW50cnkKIExlcnBGdW5jCitMZXRTdG10CiBMZXhE ZXNjcgogTGV4ZW1lRW50cnkKIExleGVtZUhhc2hLZXkKLS0gCjIuNTEuMQoK --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0010-svariableReceiver.patch" Content-Disposition: attachment; filename="v20251110-0010-svariableReceiver.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5ck5 RnJvbSBiNDU2NWM1ZWQ0MTNmMGExMWI3NGEyM2Y0MTdjMTZiODNlMGU3NDkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMSBKdW4gMjAyNSAyMToyMDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAv MTVdIHN2YXJpYWJsZVJlY2VpdmVyCgphbGxvd3MgdG8gc3RvcmUgcmVzdWx0IG9mIHRoZSBxdWVy eSB0byBzZXNzaW9uIHZhcmlhYmxlCgpDaGVjayBjb3JyZWN0IGZvcm1hdCBvZiByZXN1bHQgLSBv bmUgY29sdW1uLCBvbmUgcm93LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQgICAgICAg ICB8ICAgMSArCiBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jIHwgMTcz ICsrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC90Y29wL2Rlc3QuYyAgICAgICAg ICAgICAgICAgIHwgICA3ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVy LmggfCAgMjIgKysrCiBzcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgfCAgIDEgKwog NyBmaWxlcyBjaGFuZ2VkLCAyMDYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtl ZmlsZQppbmRleCAxMTExOGQwY2UwMi4uNzEyNDhhMzRmMjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxl CkBAIC03Niw2ICs3Niw3IEBAIE9CSlMgPSBcCiAJbm9kZVdpbmRvd0FnZy5vIFwKIAlub2RlV29y a3RhYmxlc2Nhbi5vIFwKIAlzcGkubyBcCisJc3ZhcmlhYmxlUmVjZWl2ZXIubyBcCiAJdHF1ZXVl Lm8gXAogCXRzdG9yZVJlY2VpdmVyLm8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAppbmRleCAy Y2VhNDFmODc3MS4uNDkxMDkyZmNjNGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCkBAIC02 NCw2ICs2NCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ25vZGVXaW5kb3dBZ2cu YycsCiAgICdub2RlV29ya3RhYmxlc2Nhbi5jJywKICAgJ3NwaS5jJywKKyAgJ3N2YXJpYWJsZVJl Y2VpdmVyLmMnLAogICAndHF1ZXVlLmMnLAogICAndHN0b3JlUmVjZWl2ZXIuYycsCiApCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uYWFkZDQ0NmYyNzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCkBAIC0wLDAgKzEsMTczIEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5jCisgKgkgIEFuIGltcGxl bWVudGF0aW9uIG9mIERlc3RSZWNlaXZlciB0aGF0IHN0b3JlcyB0aGUgcmVzdWx0IHZhbHVlIGlu CisgKgkgIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNs dWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorCisjaW5jbHVkZSAiYWNj ZXNzL2RldG9hc3QuaCIKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgorI2luY2x1 ZGUgInN0b3JhZ2UvbG9jay5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVk ZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworLyoK KyAqIFRoaXMgRGVzdFJlY2VpdmVyIGlzIHVzZWQgYnkgdGhlIExFVCBjb21tYW5kIGZvciBzdG9y aW5nIHRoZSByZXN1bHQgdG8gYQorICogc2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSByZXN1bHQgaGFz IHRvIGhhdmUgb25seSBvbmUgdHVwbGUgd2l0aCBvbmx5IG9uZQorICogbm9uLWRlbGV0ZWQgYXR0 cmlidXRlLiAgVGhlIHJvdyBjb3VudGVyIChmaWVsZCAicm93cyIpIGlzIGluY3JlbWVudGVkCisg KiBhZnRlciByZWNlaXZpbmcgYSByb3csIGFuZCBhbiBlcnJvciBpcyByYWlzZWQgd2hlbiB0aGVy ZSBhcmUgbm8gcm93cyBvcgorICogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgcmVjZWl2ZWQgcm93 cy4gIEEgcmVjZWl2ZWQgdHVwbGUgY2Fubm90IHRvIGhhdmUKKyAqIGRlbGV0ZWQgYXR0cmlidXRl cy4gIFRoZSB2YWx1ZSBpcyBkZXRvYXN0ZWQgYmVmb3JlIHN0b3JpbmcgaXQgaW4gdGhlCisgKiBz ZXNzaW9uIHZhcmlhYmxlLgorICovCit0eXBlZGVmIHN0cnVjdAoreworCURlc3RSZWNlaXZlciBw dWI7CisJT2lkCQkJdmFyaWQ7CisJYm9vbAkJbmVlZF9kZXRvYXN0OwkvKiBkbyB3ZSBuZWVkIHRv IGRldG9hc3QgdGhlIGF0dHJpYnV0ZT8gKi8KKwlpbnQJCQlyb3dzOwkJCS8qIHJvdyBjb3VudGVy ICovCit9IFNWYXJpYWJsZVN0YXRlOworCisvKgorICogUHJlcGFyZSB0byByZWNlaXZlIHR1cGxl cyBmcm9tIGV4ZWN1dG9yLgorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlU3RhcnR1cFJlY2Vp dmVyKERlc3RSZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR5cGVpbmZv KQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNlbGY7 CisJTE9DS1RBRwkJbG9ja3RhZyBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJRm9ybV9wZ19h dHRyaWJ1dGUgYXR0cjsKKwlPaWQJCQl0eXBpZCBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJ T2lkCQkJY29sbGlkIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKwlpbnQzMgkJdHlwbW9kIFBH X1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKworCUFzc2VydChteVN0YXRlLT5wdWIubXlkZXN0ID09 IERlc3RWYXJpYWJsZSk7CisJQXNzZXJ0KE9pZElzVmFsaWQobXlTdGF0ZS0+dmFyaWQpKTsKKwlB c3NlcnQoU2VhcmNoU3lzQ2FjaGVFeGlzdHMxKFZBUklBQkxFT0lELCBteVN0YXRlLT52YXJpZCkp OworCUFzc2VydCh0eXBlaW5mby0+bmF0dHMgPT0gMSk7CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NI RUNLSU5HCisKKwlTRVRfTE9DS1RBR19PQkpFQ1QobG9ja3RhZywKKwkJCQkJICAgTXlEYXRhYmFz ZUlkLAorCQkJCQkgICBWYXJpYWJsZVJlbGF0aW9uSWQsCisJCQkJCSAgIG15U3RhdGUtPnZhcmlk LAorCQkJCQkgICAwKTsKKworCUFzc2VydChMb2NrSGVsZEJ5TWUoJmxvY2t0YWcsIEFjY2Vzc1No YXJlTG9jaywgZmFsc2UpKTsKKworI2VuZGlmCisKKwlhdHRyID0gVHVwbGVEZXNjQXR0cih0eXBl aW5mbywgMCk7CisKKwlBc3NlcnQoIWF0dHItPmF0dGlzZHJvcHBlZCk7CisKKyNpZmRlZiBVU0Vf QVNTRVJUX0NIRUNLSU5HCisKKwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xs aWQobXlTdGF0ZS0+dmFyaWQsCisJCQkJCQkJCQkJCSZ0eXBpZCwKKwkJCQkJCQkJCQkJJnR5cG1v ZCwKKwkJCQkJCQkJCQkJJmNvbGxpZCk7CisKKwlBc3NlcnQoYXR0ci0+YXR0dHlwaWQgPT0gdHlw aWQpOworCUFzc2VydChhdHRyLT5hdHR0eXBtb2QgPCAwIHx8IGF0dHItPmF0dHR5cG1vZCA9PSB0 eXBtb2QpOworCisjZW5kaWYKKworCW15U3RhdGUtPm5lZWRfZGV0b2FzdCA9IGF0dHItPmF0dGxl biA9PSAtMTsKKwlteVN0YXRlLT5yb3dzID0gMDsKK30KKworLyoKKyAqIFJlY2VpdmUgYSB0dXBs ZSBmcm9tIHRoZSBleGVjdXRvciBhbmQgc3RvcmUgaXQgaW4gdGhlIHNlc3Npb24gdmFyaWFibGUu CisgKi8KK3N0YXRpYyBib29sCitzdmFyaWFibGVSZWNlaXZlU2xvdChUdXBsZVRhYmxlU2xvdCAq c2xvdCwgRGVzdFJlY2VpdmVyICpzZWxmKQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0YXRlID0g KFNWYXJpYWJsZVN0YXRlICopIHNlbGY7CisJRGF0dW0JCXZhbHVlOworCWJvb2wJCWlzbnVsbDsK Kwlib29sCQlmcmVldmFsID0gZmFsc2U7CisKKwkvKiBtYWtlIHN1cmUgdGhlIHR1cGxlIGlzIGZ1 bGx5IGRlY29uc3RydWN0ZWQgKi8KKwlzbG90X2dldGFsbGF0dHJzKHNsb3QpOworCisJdmFsdWUg PSBzbG90LT50dHNfdmFsdWVzWzBdOworCWlzbnVsbCA9IHNsb3QtPnR0c19pc251bGxbMF07CisK KwlpZiAobXlTdGF0ZS0+bmVlZF9kZXRvYXN0ICYmICFpc251bGwgJiYgVkFSQVRUX0lTX0VYVEVS TkFMKERhdHVtR2V0UG9pbnRlcih2YWx1ZSkpKQorCXsKKwkJdmFsdWUgPSBQb2ludGVyR2V0RGF0 dW0oZGV0b2FzdF9leHRlcm5hbF9hdHRyKChzdHJ1Y3QgdmFybGVuYSAqKQorCQkJCQkJCQkJCQkJ CSAgRGF0dW1HZXRQb2ludGVyKHZhbHVlKSkpOworCQlmcmVldmFsID0gdHJ1ZTsKKwl9CisKKwlt eVN0YXRlLT5yb3dzICs9IDE7CisKKwlpZiAobXlTdGF0ZS0+cm93cyA+IDEpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9UT09fTUFOWV9ST1dTKSwKKwkJCQkgZXJybXNn KCJleHByZXNzaW9uIHJldHVybmVkIG1vcmUgdGhhbiBvbmUgcm93IikpKTsKKworCVNldFNlc3Np b25WYXJpYWJsZShteVN0YXRlLT52YXJpZCwgdmFsdWUsIGlzbnVsbCk7CisKKwlpZiAoZnJlZXZh bCkKKwkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHZhbHVlKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30K KworLyoKKyAqIENsZWFuIHVwIGF0IGVuZCBvZiB0aGUgZXhlY3V0b3IgcnVuCisgKi8KK3N0YXRp YyB2b2lkCitzdmFyaWFibGVTaHV0ZG93blJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sK KwlpZiAoKChTVmFyaWFibGVTdGF0ZSAqKSBzZWxmKS0+cm93cyA9PSAwKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfTk9fREFUQV9GT1VORCksCisJCQkJIGVycm1zZygi ZXhwcmVzc2lvbiByZXR1cm5lZCBubyByb3dzIikpKTsKK30KKworLyoKKyAqIERlc3Ryb3kgdGhl IHJlY2VpdmVyIHdoZW4gd2UgYXJlIGRvbmUgd2l0aCBpdAorICovCitzdGF0aWMgdm9pZAorc3Zh cmlhYmxlRGVzdHJveVJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlwZnJlZShzZWxm KTsKK30KKworLyoKKyAqIEluaXRpYWxseSBjcmVhdGUgYSBEZXN0UmVjZWl2ZXIgb2JqZWN0Lgor ICovCitEZXN0UmVjZWl2ZXIgKgorQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlk KQoreworCVNWYXJpYWJsZVN0YXRlICpzZWxmID0gKFNWYXJpYWJsZVN0YXRlICopIHBhbGxvYzAo c2l6ZW9mKFNWYXJpYWJsZVN0YXRlKSk7CisKKwlzZWxmLT5wdWIucmVjZWl2ZVNsb3QgPSBzdmFy aWFibGVSZWNlaXZlU2xvdDsKKwlzZWxmLT5wdWIuclN0YXJ0dXAgPSBzdmFyaWFibGVTdGFydHVw UmVjZWl2ZXI7CisJc2VsZi0+cHViLnJTaHV0ZG93biA9IHN2YXJpYWJsZVNodXRkb3duUmVjZWl2 ZXI7CisJc2VsZi0+cHViLnJEZXN0cm95ID0gc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyOworCXNl bGYtPnB1Yi5teWRlc3QgPSBEZXN0VmFyaWFibGU7CisKKwlzZWxmLT52YXJpZCA9IHZhcmlkOwor CisJcmV0dXJuIChEZXN0UmVjZWl2ZXIgKikgc2VsZjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3Rjb3AvZGVzdC5jIGIvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKaW5kZXggYjYyMDc2NmM5 MzguLmIyZjc2NGI2NTdmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYworKysg Yi9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImV4 ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3RxdWV1ZS5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL3RzdG9yZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3Zhcmlh YmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS5oIgogI2luY2x1ZGUgImxpYnBx L3BxZm9ybWF0LmgiCiAKQEAgLTE1NSw2ICsxNTYsOSBAQCBDcmVhdGVEZXN0UmVjZWl2ZXIoQ29t bWFuZERlc3QgZGVzdCkKIAogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgogCQkJcmV0dXJu IENyZWF0ZUV4cGxhaW5TZXJpYWxpemVEZXN0UmVjZWl2ZXIoTlVMTCk7CisKKwkJY2FzZSBEZXN0 VmFyaWFibGU6CisJCQlyZXR1cm4gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoSW52YWxpZE9p ZCk7CiAJfQogCiAJLyogc2hvdWxkIG5ldmVyIGdldCBoZXJlICovCkBAIC0xOTEsNiArMTk1LDcg QEAgRW5kQ29tbWFuZChjb25zdCBRdWVyeUNvbXBsZXRpb24gKnFjLCBDb21tYW5kRGVzdCBkZXN0 LCBib29sIGZvcmNlX3VuZGVjb3JhdGVkX28KIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQlj YXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNl IERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0KIH0KQEAgLTIzNyw2ICsyNDIsNyBAQCBOdWxs Q29tbWFuZChDb21tYW5kRGVzdCBkZXN0KQogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNh c2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2Ug RGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpAQCAtMjgxLDYgKzI4Nyw3IEBAIFJlYWR5 Rm9yUXVlcnkoQ29tbWFuZERlc3QgZGVzdCkKIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQlj YXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNl IERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFy aWFibGVSZWNlaXZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5k YjQ0ZDhiOTRjNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmgKQEAgLTAsMCArMSwyMiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgor ICogc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoJICBwcm90b3R5cGVzIGZvciBzdmFyaWFibGVSZWNl aXZlci5jCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBz cmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCisgKgorICotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKi8KKworI2lmbmRlZiBTVkFSSUFCTEVfUkVDRUlWRVJfSAorI2RlZmluZSBTVkFS SUFCTEVfUkVDRUlWRVJfSAorCisjaW5jbHVkZSAidGNvcC9kZXN0LmgiCisKK2V4dGVybiBEZXN0 UmVjZWl2ZXIgKkNyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCk7CisKKyNlbmRp ZgkJCQkJCQkvKiBTVkFSSUFCTEVfUkVDRUlWRVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvdGNvcC9kZXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaAppbmRleCAwMGMwOTJlM2Q3 Yy4uNmNlM2VhMGU2MTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCisrKyBi L3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCkBAIC05Nyw2ICs5Nyw3IEBAIHR5cGVkZWYgZW51bQog CURlc3RUcmFuc2llbnRSZWwsCQkJLyogcmVzdWx0cyBzZW50IHRvIHRyYW5zaWVudCByZWxhdGlv biAqLwogCURlc3RUdXBsZVF1ZXVlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gdHVwbGUgcXVldWUg Ki8KIAlEZXN0RXhwbGFpblNlcmlhbGl6ZSwJCS8qIHJlc3VsdHMgYXJlIHNlcmlhbGl6ZWQgYW5k IGRpc2NhcmRlZCAqLworCURlc3RWYXJpYWJsZSwJCQkJLyogcmVzdWx0cyBzZW50IHRvIHNlc3Np b24gdmFyaWFibGUgKi8KIH0gQ29tbWFuZERlc3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlm ZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggMTEzZTc5YzMzZmEuLmMwMjI5NTllY2NhIDEwMDY0 NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjY2Nyw2ICsyNjY3LDcgQEAgU1RSTEVOCiBTVgog U1ZhcmlhYmxlRGF0YQogU1ZhcmlhYmxlCitTVmFyaWFibGVTdGF0ZQogU1lOQ0hST05JWkFUSU9O X0JBUlJJRVIKIFNZU1RFTV9JTkZPCiBTYW1wbGVTY2FuCi0tIAoyLjUxLjEKCg== --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Disposition: attachment; filename="v20251110-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5ct6 RnJvbSBjMDQ0NWRjMWU3NDlhM2I1OGU4NmQwOWIwODU2NTg2Mjk1NTE4ODM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMSBKdW4gMjAyNSAwNzozMjowMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkv MTVdIGZpbGwgYW4gYXV4aWxpYXJ5IGJ1ZmZlciB3aXRoIHZhbHVlcyBvZiBzZXNzaW9uCiB2YXJp YWJsZXMgdXNlZCBpbiBxdWVyeQoKYW5kIGxvY2tzIHZhcmlhYmxlcyB1c2VkIGluIHF1ZXJ5LiBO b3cgd2UgY2FuIHJlYWQgdGhlIGNvbnRlbnQgb2YgYW55CnNlc3Npb24gdmFyaWFibGUuIERpcmVj dCByZWFkaW5nIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvciBpcyBub3QgYWxsb3dlZCwKc28gd2Ug Y2Fubm90IHRvIHVzZSBzZXNzaW9uIHZhcmlhYmxlcyBpbnNpZGUgQ0FMTCBvciBFWEVDVVRFIGNv bW1hbmRzCihjYW4gYmUgc3VwcG9ydGVkIHdpdGggZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZh cmlhYmxlcyAoZnJvbSBleHByZXNzaW9uCmV4ZWN1dG9yKSAtIHBvc3Rwb25lZCkuCgpVc2luZyBz ZXNzaW9uIHZhcmlhYmxlcyBibG9ja3MgcGFyYWxsZWwgcXVlcnkgZXhlY3V0aW9uLiBJdCBpcyBu b3QKdGVjaG5pY2FsIHByb2JsZW0gKGl0IGp1c3QgbmVlZHMgYSBzZXJpYWxpemF0aW9uL2Rlc2Vy aWFsaXphdGlvbiBvZgplc19zZXNzaW9uX3ZhcmlibGVzIGJ1ZmZlciksIGJ1dCBpdCBpbmNyZWFz ZXMgYSBzaXplIG9mIHBhdGNoIChhbmQgdGhlbgppdCBpcyBwb3N0cG9uZWQpLgotLS0KIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAyOSArKysKIHNyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8ICA1NiArKysrKwogc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDI0ICsrLQogc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDE0ICsrCiAuLi4v ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dCAgICAgICAgfCAxOTEgKysrKysrKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAg fCAgIDcgKy0KIC4uLi9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsICAgICB8 IDE2MSArKysrKysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAg ICAgICAgICAgICB8ICAgMSArCiA4IGZpbGVzIGNoYW5nZWQsIDQ3OSBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYwppbmRleCBmMTU2OTg3OWI1Mi4uMDQ1N2E3Mjk1MzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYwpAQCAtMTA2OSw2ICsxMDY5LDM1IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBF eHByU3RhdGUgKnN0YXRlLAogCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNo KTsKIAkJCQkJCX0KIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIFBBUkFNX1ZBUklBQkxFOgorCQkJ CQkJeworCQkJCQkJCWludAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJCQkJCQkJ U2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzID0gTlVMTDsKKwkJCQkJ CQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqdmFyOworCisJCQkJCQkJaWYgKHN0YXRlLT5wYXJlbnQg JiYgc3RhdGUtPnBhcmVudC0+c3RhdGUpCisJCQkJCQkJeworCQkJCQkJCQllc19zZXNzaW9uX3Zh cmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlczsKKwkJ CQkJCQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVz X251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQl9CisKKwkJCQkJCQlBc3NlcnQoZXNfc2Vz c2lvbl92YXJpYWJsZXMpOworCisJCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8K KwkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQor CQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBv dXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJh bS0+cGFyYW1pZF07CisKKwkJCQkJCQkvKgorCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwgcGFzcyB0 aGUgdmFsdWUgbGlrZSBhIGNvbnN0YW50LgorCQkJCQkJCSAqLworCQkJCQkJCXNjcmF0Y2gub3Bj b2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwudmFsdWUgPSB2YXIt PnZhbHVlOworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsK KwkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQl9CisJCQkJ CQlicmVhazsKIAkJCQkJZGVmYXVsdDoKIAkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQg cGFyYW1raW5kOiAlZCIsCiAJCQkJCQkJIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKaW5kZXggMjdjOWVlYzY5N2IuLjRjNWIxMDFjOGVlIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKQEAgLTQzLDcgKzQzLDkgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5o IgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wYXJ0 aXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvbWF0dmlldy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIK ICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0 b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjUGFydGl0aW9uLmgiCkBAIC0xOTYsNiArMTk4 LDYwIEBAIHN0YW5kYXJkX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBl ZmxhZ3MpCiAJQXNzZXJ0KHF1ZXJ5RGVzYy0+c291cmNlVGV4dCAhPSBOVUxMKTsKIAllc3RhdGUt PmVzX3NvdXJjZVRleHQgPSBxdWVyeURlc2MtPnNvdXJjZVRleHQ7CiAKKwkvKgorCSAqIFRoZSBl eGVjdXRvciBkb2Vzbid0IHdvcmsgd2l0aCBzZXNzaW9uIHZhcmlhYmxlcyBkaXJlY3RseS4gVmFs dWVzIG9mCisJICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgY29waWVkIHRvIGEgZGVk aWNhdGVkIGFycmF5LCBhbmQgdGhpcworCSAqIGFycmF5IGlzIHBhc3NlZCB0byB0aGUgZXhlY3V0 b3IuIFRoaXMgYXJyYXkgaXMgc3RhYmxlICJzbmFwc2hvdCIgb2YKKwkgKiB2YWx1ZXMgb2YgdXNl ZCBzZXNzaW9uIHZhcmlhYmxlcy4gVGhlcmUgYXJlIHRocmVlIGJlbmVmaXRzIG9mIHRoaXMKKwkg KiBzdHJhdGVneToKKwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0aCBleHRlcm5hbCBwYXJhbWV0 ZXJzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0gc2Vzc2lvbiB2YXJpYWJsZXMg Y2FuIGJlIHBhcmFsbGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRvbid0IG5lZWQgbWFrZSBmcmVz aCBjb3B5IGZvciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxlICh0aGlzCisJICogaXMgbmVj ZXNzYXJ5IGJlY2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNlc3Npb24gdmFyaWFibGUgY2FuIGJl IGNoYW5nZWQKKwkgKiBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVm ZXJlbmNlIHRvIHByZXZpb3VzbHkKKwkgKiByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVk KS4KKwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykK Kwl7CisJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOworCQlpbnQJCQlpID0gMDsKKworCQkvKgor CQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQg d2UgaGF2ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBhcnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9m IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAqIGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJ c1BhcmFsbGVsV29ya2VyKCkpOworCQluU2Vzc2lvblZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1 ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpOworCisJCS8qIGNyZWF0ZSB0 aGUgYXJyYXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxl cyAqLworCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZh bHVlICopCisJCQlwYWxsb2MoblNlc3Npb25WYXJpYWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlh YmxlVmFsdWUpKTsKKworCQkvKiBmaWxsIHRoZSBhcnJheSAqLworCQlmb3JlYWNoX29pZCh2YXJp ZCwgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJQWNs UmVzdWx0CWFjbHJlc3VsdDsKKworCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlh YmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9TRUxFQ1Qp OworCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQlhY2xjaGVja19lcnJvcihh Y2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwKKwkJCQkJCQkgICBnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKHZhcmlkKSk7CisKKwkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFs dWUgPQorCQkJCUdldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwKKwkJCQkJCQkJICAgJmVzdGF0ZS0+ ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0uaXNudWxsKTsKKworCQkJaSsrOworCQl9CisKKwkJZXN0 YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBuU2Vzc2lvblZhcmlhYmxlczsKKwl9CisK IAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5IGVudmlyb25tZW50LCBpZiBhbnksIGZyb20gcXVl cnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNh Y2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCBhYjFmMmFm MTNlNS4uMWQyMGYzMzgyYjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Bs YW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBAIC0y MDQzLDkgKzIwNDMsMTIgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkgKnBhcnNldHJlZSwgYm9v bCBhY3F1aXJlKQogCiAJLyoKIAkgKiBSZWN1cnNlIGludG8gc3VibGluayBzdWJxdWVyaWVzLCB0 b28uICBCdXQgd2UgYWxyZWFkeSBkaWQgdGhlIG9uZXMgaW4KLQkgKiB0aGUgcnRhYmxlIGFuZCBj dGVMaXN0LgorCSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuICBXZSBuZWVkIHRvIGZvcmNlIGEg cmVjdXJzaXZlIGNhbGwgZm9yIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMgdG9vLCB0byBmaW5kIGFu ZCBsb2NrIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBxdWVyeSAoc2VlCisJICogU2NhblF1ZXJ5V2Fs a2VyKS4KIAkgKi8KLQlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcykKKwlpZiAocGFyc2V0cmVl LT5oYXNTdWJMaW5rcyB8fAorCQlwYXJzZXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewog CQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdhbGtlciwgJmFjcXVpcmUs CiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CkBAIC0yMDUzLDcgKzIwNTYsOCBA QCBTY2FuUXVlcnlGb3JMb2NrcyhRdWVyeSAqcGFyc2V0cmVlLCBib29sIGFjcXVpcmUpCiB9CiAK IC8qCi0gKiBXYWxrZXIgdG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMgZm9yIFNjYW5RdWVyeUZv ckxvY2tzCisgKiBXYWxrZXIgdG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMgb3IgcmVmZXJlbmNl ZCBzZXNzaW9uIHZhcmlhYmxlcworICogZm9yIFNjYW5RdWVyeUZvckxvY2tzCiAgKi8KIHN0YXRp YyBib29sCiBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWlyZSkKQEAgLTIw NjgsNiArMjA3MiwyMCBAQCBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWly ZSkKIAkJU2NhblF1ZXJ5Rm9yTG9ja3MoY2FzdE5vZGUoUXVlcnksIHN1Yi0+c3Vic2VsZWN0KSwg KmFjcXVpcmUpOwogCQkvKiBGYWxsIHRocm91Z2ggdG8gcHJvY2VzcyBsZWZ0aGFuZCBhcmdzIG9m IFN1YkxpbmsgKi8KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFt CSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9W QVJJQUJMRSkKKwkJeworCQkJaWYgKGFjcXVpcmUpCisJCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZh cmlhYmxlUmVsYXRpb25JZCwgcC0+cGFyYW12YXJpZCwKKwkJCQkJCQkJICAgMCwgQWNjZXNzU2hh cmVMb2NrKTsKKwkJCWVsc2UKKwkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0 aW9uSWQsIHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCQkgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJ fQorCX0KIAogCS8qCiAJICogRG8gTk9UIHJlY3Vyc2UgaW50byBRdWVyeSBub2RlcywgYmVjYXVz ZSBTY2FuUXVlcnlGb3JMb2NrcyBhbHJlYWR5CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDE4YWU4 ZjBkNGJiLi5iNjA0OGQ5NjkwMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTY0NSw2ICs2NDUs MTYgQEAgdHlwZWRlZiBzdHJ1Y3QgQXN5bmNSZXF1ZXN0CiAJCQkJCQkJCSAqIHR1cGxlcykgKi8K IH0gQXN5bmNSZXF1ZXN0OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKiBTZXNzaW9uVmFyaWFi bGVWYWx1ZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBTZXNzaW9u VmFyaWFibGVWYWx1ZQoreworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7Cit9IFNlc3Np b25WYXJpYWJsZVZhbHVlOworCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkgIEVTdGF0ZSBpbmZv cm1hdGlvbgogICoKQEAgLTcwNCw2ICs3MTQsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJ UGFyYW1MaXN0SW5mbyBlc19wYXJhbV9saXN0X2luZm87CS8qIHZhbHVlcyBvZiBleHRlcm5hbCBw YXJhbXMgKi8KIAlQYXJhbUV4ZWNEYXRhICplc19wYXJhbV9leGVjX3ZhbHM7CS8qIHZhbHVlcyBv ZiBpbnRlcm5hbCBwYXJhbXMgKi8KIAorCS8qIFNlc3Npb24gdmFyaWFibGVzIGluZm86ICovCisJ aW50CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOwkvKiBudW1iZXIgb2YgdXNlZCB2YXJpYWJs ZXMgKi8KKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXM7IC8qIGFy cmF5IG9mIGNvcGllcyBvZiB2YWx1ZXMgKi8KKwogCVF1ZXJ5RW52aXJvbm1lbnQgKmVzX3F1ZXJ5 RW52OwkvKiBxdWVyeSBlbnZpcm9ubWVudCAqLwogCiAJLyogT3RoZXIgd29ya2luZyBzdGF0ZTog Ki8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXNfZG1sLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNf ZG1sLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2UyMTA1OWFj YzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzX2RtbC5vdXQKQEAgLTAsMCArMSwxOTEgQEAKK0NSRUFURSBWQVJJQUJMRSBzZXN2 YXI0MCBBUyBpbnQ7CistLSBzaG91bGQgbm90IGJlIGFjY2Vzc2libGUgd2l0aG91dCB2YXJpYWJs ZSdzIGZlbmNlCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHNlc3ZhcjQwOworRVJST1I6ICBjb2x1 bW4gInNlc3ZhcjQwIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1Qgc2VzdmFyNDA7Cisg ICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0 MCk7Cisgc2VzdmFyNDAgCistLS0tLS0tLS0tCisgICAgICAgICAKKygxIHJvdykKKworQ1JFQVRF IFNDSEVNQSBzdmFydGVzdF9kbWw7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3Zh cjQxIEFTIGludDsKKy0tIGlkZW50aWZpZXIgY29sbGlzaW9uIHRlc3QKK0NSRUFURSBUQUJMRSBz dmFydGVzdF9kbWwoc2VzdmFyNDEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJ0ZXN0X2RtbCBWQUxV RVMoMTAwKTsKK1NFTEVDVCBzZXN2YXI0MSBGUk9NIHN2YXJ0ZXN0X2RtbDsgLS0gMTAwCisgc2Vz dmFyNDEgCistLS0tLS0tLS0tCisgICAgICAxMDAKKygxIHJvdykKKworU0VMRUNUIFZBUklBQkxF KHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7IC0tIE5VTEwKKyBzZXN2YXI0MSAKKy0tLS0tLS0tLS0K KyAgICAgICAgIAorKDEgcm93KQorCistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHNl c3ZhcjQxKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAic2VzdmFyNDEiIGRvZXNuJ3QgZXhp c3QKK0xJTkUgMTogU0VMRUNUIFZBUklBQkxFKHNlc3ZhcjQxKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgIF4KK1NFVCBTRUFSQ0hfUEFUSCBUTyBzdmFydGVzdF9kbWw7CistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0MSk7Cisgc2VzdmFyNDEgCistLS0tLS0tLS0tCisg ICAgICAgICAKKygxIHJvdykKKworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CistLSBzaG91 bGQgbm90IGNyYXNoCitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUo c3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKK0VORDsKKyQkOworTk9USUNFOiAgPE5VTEw+CitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwudGVzdHNxbCgpCitSRVRVUk5TIGlu dCBBUyAkJAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CiskJCBMQU5H VUFHRSBzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLnRlc3RzcWwoKTsKKyB0ZXN0c3FsIAorLS0t LS0tLS0tCisgICAgICAgIAorKDEgcm93KQorCistLSBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBi ZSB1c2VkIGFzIHBhcmFtZXRlciBvZiBDQUxMIG9yIEVYRUNVVEUKK0NSRUFURSBPUiBSRVBMQUNF IFBST0NFRFVSRSBzdmFydGVzdF9kbWwucHJvYyhpbnQpCitBUyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICclJywgJDE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIG5v dCBjcmFzaAorQ0FMTCBzdmFydGVzdF9kbWwucHJvYyhWQVJJQUJMRShzdmFydGVzdF9kbWwuc2Vz dmFyNDEpKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgaXMgbm90IHN1cHBv cnRlZCBoZXJlCitMSU5FIDE6IENBTEwgc3ZhcnRlc3RfZG1sLnByb2MoVkFSSUFCTEUoc3ZhcnRl c3RfZG1sLnNlc3ZhcjQxKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorUFJFUEFSRSBzdmFydGVzdF9kbWxfcHJlcHN0bXQoaW50KSBBUyBTRUxFQ1QgJDE7Cist LSBzaG91bGQgbm90IGNyYXNoCitFWEVDVVRFIHN2YXJ0ZXN0X2RtbF9wcmVwc3RtdChWQVJJQUJM RShzdmFydGVzdF9kbWwuc2VzdmFyNDEpKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZl cmVuY2UgaXMgbm90IHN1cHBvcnRlZCBoZXJlCitMSU5FIDE6IEVYRUNVVEUgc3ZhcnRlc3RfZG1s X3ByZXBzdG10KFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MS4uLgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitEUk9QIFBST0NFRFVSRSBzdmFy dGVzdF9kbWwucHJvYzsKK0RFQUxMT0NBVEUgc3ZhcnRlc3RfZG1sX3ByZXBzdG10OworLS0gZG9t YWlucyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgRE9NQUlOIHN2YXJ0ZXN0X2RtbF9pbnRfbm90X251 bGwgQVMgaW50IENIRUNLKHZhbHVlIElTIE5PVCBOVUxMKTsKK0NSRUFURSBWQVJJQUJMRSBzdmFy dGVzdF9kbWwuc3ZhcnRlc3Q0MiBBUyBzdmFydGVzdF9kbWxfaW50X25vdF9udWxsOworLS0gc2hv dWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc3ZhcnRlc3Q0Mik7CitFUlJP UjogIHZhbHVlIGZvciBkb21haW4gc3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbCB2aW9sYXRlcyBj aGVjayBjb25zdHJhaW50ICJzdmFydGVzdF9kbWxfaW50X25vdF9udWxsX2NoZWNrIgorRFJPUCBW QVJJQUJMRSBzdmFydGVzdF9kbWwuc3ZhcnRlc3Q0MjsKK0RST1AgRE9NQUlOIHN2YXJ0ZXN0X2Rt bF9pbnRfbm90X251bGw7CitDUkVBVEUgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3Jv bGU7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYo KQorUkVUVVJOUyBpbnQgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFy NDEpOworJCQgTEFOR1VBR0UgU1FMIFNFQ1VSSVRZIERFRklORVI7CitHUkFOVCBVU0FHRSBPTiBT Q0hFTUEgc3ZhcnRlc3RfZG1sIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKK1NF VCBST0xFIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKKy0tIHNob3VsZCBmYWls CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKK0VSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgc2VzdmFyNDEKKy0tIHNob3VsZCBmYWls CitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQxKTsKK0VORDsKKyQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vz c2lvbiB2YXJpYWJsZSBzZXN2YXI0MQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIlZB UklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSkiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVf Y29kZV9ibG9jayBsaW5lIDMgYXQgUkFJU0UKKy0tIHVzaW5nIHNxbCBmdW5jdGlvbiBzaG91bGQg dG8gZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X2RtbC50ZXN0c3FsKCk7CitFUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcjQxCitDT05URVhUOiAgU1FMIGZ1 bmN0aW9uICJ0ZXN0c3FsIiBzdGF0ZW1lbnQgMQorLS0gdXNpbmcgc2VjdXJpdHkgZGVmaW5lciBz aG91bGQgYmUgb2sKK1NFTEVDVCBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYoKTsKKyBmdW5jX3Nl Y2RlZiAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIAorKDEgcm93KQorCitTRVQgUk9MRSBU TyBERUZBVUxUOworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYoKTsKK0dS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDEgVE8gcmVncmVzc19z dmFydGVzdF9kbWxfcmVhZF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxf cmVhZF9yb2xlOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQxKTsKKyBzZXN2YXI0MSAKKy0tLS0tLS0tLS0KKyAgICAgICAgIAorKDEgcm93KQor CistLSBzaG91bGQgYmUgb2sKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJ QUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOworRU5EOworJCQ7CitOT1RJQ0U6ICA8TlVMTD4K K1NFVCBST0xFIFRPIERFRkFVTFQ7CitDUkVBVEUgVEFCTEUgc3ZhcnRlc3RfZG1sLnRlc3R0YWIo YSBpbnQpOworSU5TRVJUIElOVE8gc3ZhcnRlc3RfZG1sLnRlc3R0YWIgU0VMRUNUICogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKK0NSRUFURSBJTkRFWCBzdmFydGVzdF9kbWxfdGVzdHRh Yl9hIE9OIHN2YXJ0ZXN0X2RtbC50ZXN0dGFiKGEpOworQU5BTFlaRSBzdmFydGVzdF9kbWwudGVz dHRhYjsKKy0tIGZvcmNlIGluZGV4CitTRVQgZW5hYmxlX3NlcXNjYW4gVE8gT0ZGOworLS0gaW5k ZXggc2NhbiBzaG91bGQgYmUgdXNlZAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IHN2YXJ0ZXN0X2RtbC50ZXN0dGFiIFdIRVJFIGEgPSBWQVJJQUJMRShzZXN2YXI0MCk7CisgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IEluZGV4IE9ubHkgU2NhbiB1c2luZyBzdmFydGVzdF9kbWxfdGVzdHRhYl9hIG9uIHRlc3R0YWIK KyAgIEluZGV4IENvbmQ6IChhID0gVkFSSUFCTEUoc2VzdmFyNDApKQorKDIgcm93cykKKworRFJP UCBJTkRFWCBzdmFydGVzdF9kbWwuc3ZhcnRlc3RfZG1sX3Rlc3R0YWJfYTsKK1NFVCBlbmFibGVf c2Vxc2NhbiBUTyBERUZBVUxUOworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIHNob3VsZCBiZSBibG9j a2VkCistLSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0 dXBfY29zdCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3BhcmFs bGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dh dGhlciA9IDI7CistLSBwYXJhbGxlbCBwbGFuIHNob3VsZCBiZSB1c2VkCitFWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnRlc3R0YWIgV0hFUkUgYSA9IDEwMDsK KyAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgR2F0aGVyCisgICBXb3JrZXJzIFBsYW5uZWQ6IDIKKyAgIC0+ ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiB0ZXN0dGFiCisgICAgICAgICBGaWx0ZXI6IChhID0gMTAw KQorKDQgcm93cykKKworLS0gcGFyYWxsZWwgcGxhbiBzaG91bGQgbm90IGJlIHVzZWQKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwudGVzdHRhYiBXSEVSRSBh ID0gVkFSSUFCTEUoc2VzdmFyNDApOworICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiB0 ZXN0dGFiCisgICBGaWx0ZXI6IChhID0gVkFSSUFCTEUoc2VzdmFyNDApKQorKDIgcm93cykKKwor UkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Q7CitS RVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFsbGVsX3dv cmtlcnNfcGVyX2dhdGhlcjsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RtbCBDQVNDQURFOworTk9U SUNFOiAgZHJvcCBjYXNjYWRlcyB0byAzIG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2Fz Y2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwuc2VzdmFyNDEKK2Ryb3AgY2Fz Y2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3RfZG1sLnRlc3RzcWwoKQorZHJvcCBjYXNjYWRlcyB0 byB0YWJsZSBzdmFydGVzdF9kbWwudGVzdHRhYgorRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3Rf ZG1sX3JlYWRfcm9sZTsKK0RST1AgVkFSSUFCTEUgc2VzdmFyNDA7CitEUk9QIFRBQkxFIHN2YXJ0 ZXN0X2RtbDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUg Yi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IGQ4MDAwZGEzZjg2Li44 NjBjNTI2ZWRiZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMTUsNyArMTE1 LDcgQEAgdGVzdDoganNvbiBqc29uYiBqc29uX2VuY29kaW5nIGpzb25wYXRoIGpzb25wYXRoX2Vu Y29kaW5nIGpzb25iX2pzb25wYXRoIHNxbGpzb24KICMgTkI6IHRlbXAuc3FsIGRvZXMgcmVjb25u ZWN0cyB3aGljaCB0cmFuc2llbnRseSB1c2VzIDIgY29ubmVjdGlvbnMsCiAjIHNvIGtlZXAgdGhp cyBwYXJhbGxlbCBncm91cCB0byBhdCBtb3N0IDE5IHRlc3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6 IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJl cGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBvbHltb3JwaGlz bSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwgc2Vzc2lvbl92YXJpYWJs ZXNfZGRsIHNlc3Npb25fdmFyaWFibGVzX2FjbAordGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdz cWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNh dGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBs YXJnZW9iamVjdCB3aXRoIHhtbAogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBw YXJhbGxlbCB0ZXN0cwpAQCAtMTQwLDMgKzE0MCw4IEBAIHRlc3Q6IGZhc3RfZGVmYXVsdAogIyBy dW4gdGFibGVzcGFjZSB0ZXN0IGF0IHRoZSBlbmQgYmVjYXVzZSBpdCBkcm9wcyB0aGUgdGFibGVz cGFjZSBjcmVhdGVkIGR1cmluZwogIyBzZXR1cCB0aGF0IG90aGVyIHRlc3RzIG1heSB1c2UuCiB0 ZXN0OiB0YWJsZXNwYWNlCisKKyMgLS0tLS0tLS0tLQorIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFs bGVsIHRlc3RzIChzZXNzaW9uIHZhcmlhYmxlcyByZWxhdGVkKQorIyAtLS0tLS0tLS0tCit0ZXN0 OiBzZXNzaW9uX3ZhcmlhYmxlc19kZGwgc2Vzc2lvbl92YXJpYWJsZXNfYWNsIHNlc3Npb25fdmFy aWFibGVzX2RtbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXNfZG1sLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2Rt bC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIyODcwZGRlOWU5 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXNfZG1sLnNxbApAQCAtMCwwICsxLDE2MSBAQAorQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjQwIEFT IGludDsKKworLS0gc2hvdWxkIG5vdCBiZSBhY2Nlc3NpYmxlIHdpdGhvdXQgdmFyaWFibGUncyBm ZW5jZQorLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBzZXN2YXI0MDsKKworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDApOworCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2Rt bDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDEgQVMgaW50OworCistLSBp ZGVudGlmaWVyIGNvbGxpc2lvbiB0ZXN0CitDUkVBVEUgVEFCTEUgc3ZhcnRlc3RfZG1sKHNlc3Zh cjQxIGludCk7CitJTlNFUlQgSU5UTyBzdmFydGVzdF9kbWwgVkFMVUVTKDEwMCk7CisKK1NFTEVD VCBzZXN2YXI0MSBGUk9NIHN2YXJ0ZXN0X2RtbDsgLS0gMTAwCitTRUxFQ1QgVkFSSUFCTEUoc3Zh cnRlc3RfZG1sLnNlc3ZhcjQxKTsgLS0gTlVMTAorCistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZB UklBQkxFKHNlc3ZhcjQxKTsKKworU0VUIFNFQVJDSF9QQVRIIFRPIHN2YXJ0ZXN0X2RtbDsKKwor LS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDEpOworCitTRVQgU0VBUkNI X1BBVEggVE8gREVGQVVMVDsKKworLS0gc2hvdWxkIG5vdCBjcmFzaAorRE8gJCQKK0JFR0lOCisg IFJBSVNFIE5PVElDRSAnJScsIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CitFTkQ7 CiskJDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLnRlc3RzcWwo KQorUkVUVVJOUyBpbnQgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFy NDEpOworJCQgTEFOR1VBR0Ugc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLnRlc3RzcWwoKTsK KworLS0gc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBwYXJhbWV0ZXIgb2YgQ0FM TCBvciBFWEVDVVRFCitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUgc3ZhcnRlc3RfZG1sLnBy b2MoaW50KQorQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScsICQxOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hvdWxkIG5vdCBjcmFzaAorQ0FMTCBzdmFydGVzdF9k bWwucHJvYyhWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpKTsKKworUFJFUEFSRSBzdmFy dGVzdF9kbWxfcHJlcHN0bXQoaW50KSBBUyBTRUxFQ1QgJDE7CisKKy0tIHNob3VsZCBub3QgY3Jh c2gKK0VYRUNVVEUgc3ZhcnRlc3RfZG1sX3ByZXBzdG10KFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0MSkpOworCitEUk9QIFBST0NFRFVSRSBzdmFydGVzdF9kbWwucHJvYzsKK0RFQUxMT0NB VEUgc3ZhcnRlc3RfZG1sX3ByZXBzdG10OworCistLSBkb21haW5zIGFyZSBzdXBwb3J0ZWQKK0NS RUFURSBET01BSU4gc3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbCBBUyBpbnQgQ0hFQ0sodmFsdWUg SVMgTk9UIE5VTEwpOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zdmFydGVzdDQyIEFT IHN2YXJ0ZXN0X2RtbF9pbnRfbm90X251bGw7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgVkFS SUFCTEUoc3ZhcnRlc3RfZG1sLnN2YXJ0ZXN0NDIpOworCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0 X2RtbC5zdmFydGVzdDQyOworRFJPUCBET01BSU4gc3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbDsK KworQ1JFQVRFIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOworCitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZnVuY19zZWNkZWYoKQorUkVUVVJOUyBp bnQgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOworJCQgTEFO R1VBR0UgU1FMIFNFQ1VSSVRZIERFRklORVI7CisKK0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBzdmFy dGVzdF9kbWwgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsCitTRUxF Q1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKKworLS0gc2hvdWxkIGZhaWwKK0RP ICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2Vz dmFyNDEpOworRU5EOworJCQ7CisKKy0tIHVzaW5nIHNxbCBmdW5jdGlvbiBzaG91bGQgdG8gZmFp bAorU0VMRUNUIHN2YXJ0ZXN0X2RtbC50ZXN0c3FsKCk7CisKKy0tIHVzaW5nIHNlY3VyaXR5IGRl ZmluZXIgc2hvdWxkIGJlIG9rCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ1bmNfc2VjZGVmKCk7CisK K1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ1bmNf c2VjZGVmKCk7CisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFy NDEgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOworCitTRVQgUk9MRSBUTyByZWdy ZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZB UklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CisKKy0tIHNob3VsZCBiZSBvaworRE8gJCQK K0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScsIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0 MSk7CitFTkQ7CiskJDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworQ1JFQVRFIFRBQkxFIHN2 YXJ0ZXN0X2RtbC50ZXN0dGFiKGEgaW50KTsKKworSU5TRVJUIElOVE8gc3ZhcnRlc3RfZG1sLnRl c3R0YWIgU0VMRUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKKworQ1JFQVRFIElO REVYIHN2YXJ0ZXN0X2RtbF90ZXN0dGFiX2EgT04gc3ZhcnRlc3RfZG1sLnRlc3R0YWIoYSk7CisK K0FOQUxZWkUgc3ZhcnRlc3RfZG1sLnRlc3R0YWI7CisKKy0tIGZvcmNlIGluZGV4CitTRVQgZW5h YmxlX3NlcXNjYW4gVE8gT0ZGOworCistLSBpbmRleCBzY2FuIHNob3VsZCBiZSB1c2VkCitFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnRlc3R0YWIgV0hFUkUg YSA9IFZBUklBQkxFKHNlc3ZhcjQwKTsKKworRFJPUCBJTkRFWCBzdmFydGVzdF9kbWwuc3ZhcnRl c3RfZG1sX3Rlc3R0YWJfYTsKKworU0VUIGVuYWJsZV9zZXFzY2FuIFRPIERFRkFVTFQ7CisKKy0t IHBhcmFsbGVsIGV4ZWN1dGlvbiBzaG91bGQgYmUgYmxvY2tlZAorLS0gRW5jb3VyYWdlIHVzZSBv ZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3QgPSAwOworU0VUIHBhcmFs bGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemUgPSAw OworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAyOworCistLSBwYXJhbGxl bCBwbGFuIHNob3VsZCBiZSB1c2VkCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g c3ZhcnRlc3RfZG1sLnRlc3R0YWIgV0hFUkUgYSA9IDEwMDsKKworLS0gcGFyYWxsZWwgcGxhbiBz aG91bGQgbm90IGJlIHVzZWQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzdmFy dGVzdF9kbWwudGVzdHRhYiBXSEVSRSBhID0gVkFSSUFCTEUoc2VzdmFyNDApOworCitSRVNFVCBw YXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQgcGFyYWxsZWxfdHVwbGVfY29zdDsKK1JFU0VUIG1p bl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitSRVNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19w ZXJfZ2F0aGVyOworCitEUk9QIFNDSEVNQSBzdmFydGVzdF9kbWwgQ0FTQ0FERTsKK0RST1AgUk9M RSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgc2VzdmFy NDA7CisKK0RST1AgVEFCTEUgc3ZhcnRlc3RfZG1sOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApp bmRleCAzMTVjNzZhYzAzZi4uMTEzZTc5YzMzZmEgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CkBAIC0yNzI1LDYgKzI3MjUsNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQogU2Vzc2lv bgogU2Vzc2lvbkJhY2t1cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlhYmxlVmFs dWUKIFNldENvbnN0cmFpbnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0Q29uc3Ry YWludFRyaWdnZXJEYXRhCi0tIAoyLjUxLjEKCg== --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Disposition: attachment; filename="v20251110-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5d37 RnJvbSBmZDJjZTQxODc4MTZmOWFjMTlmZTQwNTA3OGUwMTBkYjgxMjA0NGNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMzAgTWF5IDIwMjUgMDk6MzE6MDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4 LzE1XSBjb2xsZWN0IHNlc3Npb24gdmFyaWFibGVzIHVzZWQgaW4gcGxhbiBhbmQgYXNzaWduCiBw YXJhbWlkCgpJbiB0aGUgcGxhbiBzdGFnZSB3ZSBuZWVkIHRvIGNvbGxlY3QgdXNlZCBzZXNzaW9u IHZhcmlhYmxlcy4gT24gdGhlCm9yZGVyIG9mIHRoaXMgbGlzdCwgdGhlIHBhcmFtIG5vZGVzIGdl dHMgcGFyYW1pZCAoZml4X3BhcmFtX25vZGUpLgpUaGlzIG51bWJlciBpcyB1c2VkIChsYXRlcikg YXMgaW5kZXggdG8gYnVmZmVyIG9mIHZhbHVlcyBvZiB0aGUKdXNlZCBzZXNzaW9uIHZhcmlhYmxl cy4gVGhlIGJ1ZmZlciBpcyBwcmVwYXJlZCBhbmQgZmlsbGVkIGJ5IGV4ZWN1dG9yLgoKU29tZSB1 bnN1cHBvcnRlZCBvcHRpbWl6YXRpb25zIGFyZSBkaXNhYmxlZDoKCiogcGFyYWxsZWwgZXhlY3V0 aW9uCiogc2ltcGxlIGV4cHJlc3Npb24gZXhlY3V0aW9uIGluIFBML3BnU1FMCiogU1FMIGZ1bmN0 aW9ucyBpbmxpbmluZwoKQmVmb3JlIGV4ZWN1dGlvbiBvZiBxdWVyeSB3aXRoIHNlc3Npb24gdmFy aWFibGVzIHdlIG5lZWQgdG8gY29sbGVjdAp1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGlzIGxp c3QgaXMgdXNlZCBmb3IKLS0tCiBkb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCAgICAgICAgICAg ICAgICB8ICAgNiArKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAg fCAgIDUgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jICAgICAgfCAgMTEg KysKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyAgICAgIHwgMTI0ICsrKysr KysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJl ZS5jIHwgICAzICsKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgIHwg IDMzICsrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgfCAg IDYgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jICAgICAgICAgICAgIHwgIDEwICst CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICB8ICAgNSArCiBzcmMv aW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCAgICAgICAgICB8ICAgMiArCiAxMSBmaWxlcyBjaGFuZ2Vk LCAxOTkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcGFyYWxsZWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDFj ZTlhYmY4NmY1Li42ODNkZWRlNmFkYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVs LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKQEAgLTUxNSw2ICs1MTUsMTIg QEAgRVhQTEFJTiBTRUxFQ1QgKiBGUk9NIHBnYmVuY2hfYWNjb3VudHMgV0hFUkUgZmlsbGVyIExJ S0UgJyV4JSc7CiAgICAgICAgIFBsYW4gbm9kZXMgdGhhdCByZWZlcmVuY2UgYSBjb3JyZWxhdGVk IDxsaXRlcmFsPlN1YlBsYW48L2xpdGVyYWw+LgogICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0 ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICAgUGxhbiBub2RlcyB0 aGF0IHVzZSBhIHNlc3Npb24gdmFyaWFibGUuCisgICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KICAgPC9pdGVtaXplZGxpc3Q+CiAKICA8c2VjdDIgaWQ9InBhcmFsbGVsLWxhYmVsaW5nIj4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggMWQ2MmU2M2Q0ZjcuLmViOTFiNDZiMTI4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMTg3NSw2ICsxODc1LDExIEBAIGZpbmRfZXhw cl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAogCXsKIAkJUGFyYW0JICAgKnBhcmFtID0g KFBhcmFtICopIG5vZGU7CiAKKwkJLyogYSB2YXJpYWJsZSBwYXJhbWV0ZXIgZGVwZW5kcyBvbiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9W QVJJQUJMRSkKKwkJCWFkZF9vYmplY3RfYWRkcmVzcyhWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcmFt LT5wYXJhbXZhcmlkLCAwLAorCQkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKKwogCQkvKiBBIHBh cmFtZXRlciBtdXN0IGRlcGVuZCBvbiB0aGUgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KIAkJYWRk X29iamVjdF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBwYXJhbS0+cGFyYW10eXBlLCAwLAogCQkJ CQkJICAgY29udGV4dC0+YWRkcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmlu ZGV4IGM0ZmQ2NDZiOTk5Li5jYzAzYjAzMTFhNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYwpAQCAtMzc0LDYgKzM3NCw3IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNl LCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCWdsb2ItPmRl cGVuZHNPblJvbGUgPSBmYWxzZTsKIAlnbG9iLT5wYXJ0aXRpb25fZGlyZWN0b3J5ID0gTlVMTDsK IAlnbG9iLT5yZWxfbm90bnVsbGF0dHNfaGFzaCA9IE5VTEw7CisJZ2xvYi0+c2Vzc2lvblZhcmlh YmxlcyA9IE5JTDsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJsZSB0byB1 c2UgcGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTYxNyw2ICs2MTgsOSBAQCBz dGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBp bnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xvYi0+cGFyYW1F eGVjVHlwZXM7CiAJLyogdXRpbGl0eVN0bXQgc2hvdWxkIGJlIG51bGwsIGJ1dCB3ZSBtaWdodCBh cyB3ZWxsIGNvcHkgaXQgKi8KIAlyZXN1bHQtPnV0aWxpdHlTdG10ID0gcGFyc2UtPnV0aWxpdHlT dG10OworCisJcmVzdWx0LT5zZXNzaW9uVmFyaWFibGVzID0gZ2xvYi0+c2Vzc2lvblZhcmlhYmxl czsKKwogCXJlc3VsdC0+c3RtdF9sb2NhdGlvbiA9IHBhcnNlLT5zdG10X2xvY2F0aW9uOwogCXJl c3VsdC0+c3RtdF9sZW4gPSBwYXJzZS0+c3RtdF9sZW47CiAKQEAgLTgwNSw2ICs4MDksMTMgQEAg c3VicXVlcnlfcGxhbm5lcihQbGFubmVyR2xvYmFsICpnbG9iLCBRdWVyeSAqcGFyc2UsIGNoYXIg KnBsYW5fbmFtZSwKIAkgKi8KIAlwdWxsX3VwX3N1YnF1ZXJpZXMocm9vdCk7CiAKKwkvKgorCSAq IENoZWNrIGlmIHNvbWUgc3VicXVlcnkgdXNlcyBhIHNlc3Npb24gdmFyaWFibGUuICBUaGUgZmxh ZworCSAqIGhhc1Nlc3Npb25WYXJpYWJsZXMgc2hvdWxkIGJlIHRydWUgaWYgdGhlIHF1ZXJ5IG9y IHNvbWUgc3VicXVlcnkgdXNlcyBhCisJICogc2Vzc2lvbiB2YXJpYWJsZS4KKwkgKi8KKwlwdWxs X3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhyb290KTsKKwogCS8qCiAJICogSWYgdGhpcyBpcyBh IHNpbXBsZSBVTklPTiBBTEwgcXVlcnksIGZsYXR0ZW4gaXQgaW50byBhbiBhcHBlbmRyZWwuIFdl CiAJICogZG8gdGhpcyBub3cgYmVjYXVzZSBpdCByZXF1aXJlcyBhcHBseWluZyBwdWxsX3VwX3N1 YnF1ZXJpZXMgdG8gdGhlIGxlYWYKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRl eCBjY2RjOWJjMjY0YS4uYTEyYTNjNjA5NGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRy ZWZzLmMKQEAgLTIxMCw2ICsyMTAsOSBAQCBzdGF0aWMgTGlzdCAqc2V0X3JldHVybmluZ19jbGF1 c2VfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIHN0YXRpYyBMaXN0ICpzZXRfd2luZG93 YWdnX3J1bmNvbmRpdGlvbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJ CQkJICAgTGlzdCAqcnVuY29uZGl0aW9uLAogCQkJCQkJCQkJCQkJICAgUGxhbiAqcGxhbik7Citz dGF0aWMgYm9vbCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9k ZSwKKwkJCQkJCQkJCQkJCSBQbGFubmVySW5mbyAqcm9vdCk7CitzdGF0aWMgdm9pZCByZWNvcmRf cGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpOwog CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTM0MSw2ICsxMzQ0LDUwIEBAIHNldF9wbGFu X3JlZnMoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4gKnBsYW4sIGludCBydG9mZnNldCkKIAlyZXR1 cm4gcGxhbjsKIH0KIAorLyoKKyAqIFNlYXJjaCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBp biBzdWJxdWVyaWVzCisgKi8KK3ZvaWQKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBs YW5uZXJJbmZvICpyb290KQoreworCVF1ZXJ5CSAgICpxdWVyeSA9IHJvb3QtPnBhcnNlOworCisJ aWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCXsKKwkJcm9vdC0+aGFzU2Vzc2lvblZh cmlhYmxlcyA9IHRydWU7CisJfQorCWVsc2UKKwl7CisJCSh2b2lkKSBxdWVyeV90cmVlX3dhbGtl cihxdWVyeSwKKwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwK KwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDApOworCX0KK30KKworc3RhdGljIGJvb2wKK3B1bGxf dXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAq cm9vdCkKK3sKKwlpZiAobm9kZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKElzQShu b2RlLCBRdWVyeSkpCisJeworCQlRdWVyeQkgICAqcXVlcnkgPSAoUXVlcnkgKikgbm9kZTsKKwor CQlpZiAocXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCXJvb3QtPmhhc1Nlc3Np b25WYXJpYWJsZXMgPSB0cnVlOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJLyogcmVjdXJz ZSBpbnRvIHN1YnNlbGVjdHMgKi8KKwkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAq KSBub2RlLAorCQkJCQkJCQkgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAor CQkJCQkJCQkgKHZvaWQgKikgcm9vdCwgMCk7CisJfQorCXJldHVybiBleHByZXNzaW9uX3RyZWVf d2Fsa2VyKG5vZGUsIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJ CQkJICAodm9pZCAqKSByb290KTsKK30KKwogLyoKICAqIHNldF9pbmRleG9ubHlzY2FuX3JlZmVy ZW5jZXMKICAqCQlEbyBzZXRfcGxhbl9yZWZlcmVuY2VzIHByb2Nlc3Npbmcgb24gYW4gSW5kZXhP bmx5U2NhbgpAQCAtMjA0MSw4ICsyMDg4LDkgQEAgY29weVZhcihWYXIgKnZhcikKICAqIFRoaXMg aXMgY29kZSB0aGF0IGlzIGNvbW1vbiB0byBhbGwgdmFyaWFudHMgb2YgZXhwcmVzc2lvbi1maXhp bmcuCiAgKiBXZSBtdXN0IGxvb2sgdXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBh bmQgcmVsYXRlZCBub2RlcywKICAqIGFkZCBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMg aW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMsIGFuZAotICogYWRkIFBsYW5JbnZhbEl0ZW1z IGZvciB1c2VyLWRlZmluZWQgZnVuY3Rpb25zIGludG8gcm9vdC0+Z2xvYi0+aW52YWxJdGVtcy4K LSAqIFdlIGFsc28gZmlsbCBpbiBjb2x1bW4gaW5kZXggbGlzdHMgZm9yIEdST1VQSU5HKCkgZXhw cmVzc2lvbnMuCisgKiBhZGQgUGxhbkludmFsSXRlbXMgZm9yIHVzZXItZGVmaW5lZCBmdW5jdGlv bnMgYW5kIHNlc3Npb24gdmFyaWFibGVzIGludG8KKyAqIHJvb3QtPmdsb2ItPmludmFsSXRlbXMu ICBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElORygpCisgKiBl eHByZXNzaW9ucy4KICAqCiAgKiBXZSBhc3N1bWUgaXQncyBva2F5IHRvIHVwZGF0ZSBvcGNvZGUg aW5mbyBpbi1wbGFjZS4gIFNvIHRoaXMgY291bGQgcG9zc2libHkKICAqIHNjcmliYmxlIG9uIHRo ZSBwbGFubmVyJ3MgaW5wdXQgZGF0YSBzdHJ1Y3R1cmVzLCBidXQgaXQncyBPSy4KQEAgLTIxMzIs NiArMjE4MCwxMyBAQCBmaXhfZXhwcl9jb21tb24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5v ZGUpCiAJCQkJZy0+Y29scyA9IGNvbHM7CiAJCX0KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBh cmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBh cmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVu ZGVuY3kocm9vdCwgcC0+cGFyYW12YXJpZCk7CisJfQogfQogCiAvKgpAQCAtMjE0MSw2ICsyMTk2 LDEwIEBAIGZpeF9leHByX2NvbW1vbihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKICAq IElmIGl0J3MgYSBQQVJBTV9NVUxUSUVYUFIsIHJlcGxhY2UgaXQgd2l0aCB0aGUgYXBwcm9wcmlh dGUgUGFyYW0gZnJvbQogICogcm9vdC0+bXVsdGlleHByX3BhcmFtczsgb3RoZXJ3aXNlIG5vIGNo YW5nZSBpcyBuZWVkZWQuCiAgKiBKdXN0IGZvciBwYXJhbm9pYSdzIHNha2UsIHdlIG1ha2UgYSBj b3B5IG9mIHRoZSBub2RlIGluIGVpdGhlciBjYXNlLgorICoKKyAqIElmIGl0J3MgYSBQQVJBTV9W QVJJQUJMRSwgdGhlbiB3ZSBjb2xsZWN0IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaW4KKyAqIHRo ZSBsaXN0IHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZS4gIEFsc28sIGFzc2lnbiB0aGUgcGFy YW1ldGVyJ3MKKyAqICJwYXJhbWlkIiB0byB0aGUgcGFyYW1ldGVyJ3MgcG9zaXRpb24gaW4gdGhh dCBsaXN0LgogICovCiBzdGF0aWMgTm9kZSAqCiBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAq cm9vdCwgUGFyYW0gKnApCkBAIC0yMTU5LDYgKzIyMTgsNDAgQEAgZml4X3BhcmFtX25vZGUoUGxh bm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQogCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgUEFS QU1fTVVMVElFWFBSIElEOiAlZCIsIHAtPnBhcmFtaWQpOwogCQlyZXR1cm4gY29weU9iamVjdChs aXN0X250aChwYXJhbXMsIGNvbG5vIC0gMSkpOwogCX0KKworCWlmIChwLT5wYXJhbWtpbmQgPT0g UEFSQU1fVkFSSUFCTEUpCisJeworCQlpbnQJCQluID0gMDsKKwkJYm9vbAkJZm91bmQgPSBmYWxz ZTsKKworCQkvKiB3ZSB3aWxsIG1vZGlmeSBvYmplY3QgKi8KKwkJcCA9IChQYXJhbSAqKSBjb3B5 T2JqZWN0KHApOworCisJCS8qCisJCSAqIE5vdywgd2UgY2FuIGFjdHVhbGl6ZSBsaXN0IG9mIHNl c3Npb24gdmFyaWFibGVzLCBhbmQgd2UgY2FuCisJCSAqIGNvbXBsZXRlIHBhcmFtaWQgcGFyYW1l dGVyLgorCQkgKi8KKwkJZm9yZWFjaF9vaWQodmFyaWQsIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJp YWJsZXMpCisJCXsKKwkJCWlmICh2YXJpZCA9PSBwLT5wYXJhbXZhcmlkKQorCQkJeworCQkJCXAt PnBhcmFtaWQgPSBuOworCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCW4g Kz0gMTsKKwkJfQorCisJCWlmICghZm91bmQpCisJCXsKKwkJCXJvb3QtPmdsb2ItPnNlc3Npb25W YXJpYWJsZXMgPSBsYXBwZW5kX29pZChyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzLAorCQkJ CQkJCQkJCQkJCSAgIHAtPnBhcmFtdmFyaWQpOworCQkJcC0+cGFyYW1pZCA9IG47CisJCX0KKwor CQlyZXR1cm4gKE5vZGUgKikgcDsKKwl9CisKIAlyZXR1cm4gKE5vZGUgKikgY29weU9iamVjdChw KTsKIH0KIApAQCAtMjIyMCw3ICsyMzEzLDEwIEBAIGZpeF9hbHRlcm5hdGl2ZV9zdWJwbGFuKFBs YW5uZXJJbmZvICpyb290LCBBbHRlcm5hdGl2ZVN1YlBsYW4gKmFzcGxhbiwKICAqIHJlcGxhY2lu ZyBBZ2dyZWYgbm9kZXMgdGhhdCBzaG91bGQgYmUgcmVwbGFjZWQgYnkgaW5pdHBsYW4gb3V0cHV0 IFBhcmFtcywKICAqIGNob29zaW5nIHRoZSBiZXN0IGltcGxlbWVudGF0aW9uIGZvciBBbHRlcm5h dGl2ZVN1YlBsYW5zLAogICogbG9va2luZyB1cCBvcGVyYXRvciBvcGNvZGUgaW5mbyBmb3IgT3BF eHByIGFuZCByZWxhdGVkIG5vZGVzLAotICogYW5kIGFkZGluZyBPSURzIGZyb20gcmVnY2xhc3Mg Q29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMuCisgKiBhZGRpbmcgT0lE cyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRz LAorICogYXNzaWduaW5nIHBhcmFtdmFyaWQgdG8gUEFSQU1fVkFSSUFCTEUgcGFyYW1zLCBhbmQg Y29sbGVjdGluZyB0aGUKKyAqIE9JRHMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhlIHJvb3Qt Pmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgbGlzdAorICogKHBhcmFtdmFyaWQgaXMgdGhlIHBvc2l0 aW9uIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoaXMgbGlzdCkuCiAgKgogICogJ25vZGUn OiB0aGUgZXhwcmVzc2lvbiB0byBiZSBtb2RpZmllZAogICogJ3J0b2Zmc2V0JzogaG93IG11Y2gg dG8gaW5jcmVtZW50IHZhcm5vcyBieQpAQCAtMjI0Miw3ICsyMzM4LDggQEAgZml4X3NjYW5fZXhw cihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSwgaW50IHJ0b2Zmc2V0LCBkb3VibGUgbnVt X2V4ZWMpCiAJCXJvb3QtPm11bHRpZXhwcl9wYXJhbXMgIT0gTklMIHx8CiAJCXJvb3QtPmdsb2It Pmxhc3RQSElkICE9IDAgfHwKIAkJcm9vdC0+bWlubWF4X2FnZ3MgIT0gTklMIHx8Ci0JCXJvb3Qt Pmhhc0FsdGVybmF0aXZlU3ViUGxhbnMpCisJCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMg fHwKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCXJldHVybiBmaXhfc2Nhbl9l eHByX211dGF0b3Iobm9kZSwgJmNvbnRleHQpOwogCX0KQEAgLTM2MzUsNiArMzczMiwyNSBAQCBy ZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCkK IAl9CiB9CiAKKy8qCisgKiBSZWNvcmQgZGVwZW5kZW5jeSBvbiBhIHNlc3Npb24gdmFyaWFibGUu ICBUaGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgYXMgYQorICogc2Vzc2lvbiB2YXJpYWJsZSBpbiBh biBleHByZXNzaW9uIGxpc3QuCisgKi8KK3N0YXRpYyB2b2lkCityZWNvcmRfcGxhbl92YXJpYWJs ZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpCit7CisJUGxhbkludmFs SXRlbSAqaW52YWxfaXRlbSA9IG1ha2VOb2RlKFBsYW5JbnZhbEl0ZW0pOworCisJLyogcGFyYW1p ZCBpcyBzdGlsbCBzZXNzaW9uIHZhcmlhYmxlIGlkICovCisJaW52YWxfaXRlbS0+Y2FjaGVJZCA9 IFZBUklBQkxFT0lEOworCWludmFsX2l0ZW0tPmhhc2hWYWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZh bHVlMShWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkp OworCisJLyogYXBwZW5kIHRoaXMgdmFyaWFibGUgdG8gZ2xvYmFsLCByZWdpc3RlciBkZXBlbmRl bmN5ICovCisJcm9vdC0+Z2xvYi0+aW52YWxJdGVtcyA9IGxhcHBlbmQocm9vdC0+Z2xvYi0+aW52 YWxJdGVtcywKKwkJCQkJCQkJCSBpbnZhbF9pdGVtKTsKK30KKwogLyoKICAqIGV4dHJhY3RfcXVl cnlfZGVwZW5kZW5jaWVzCiAgKgkJR2l2ZW4gYSByZXdyaXR0ZW4sIGJ1dCBub3QgeWV0IHBsYW5u ZWQsIHF1ZXJ5IG9yIHF1ZXJpZXMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w cmVwL3ByZXBqb2ludHJlZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50 cmVlLmMKaW5kZXggNDgxZDgwMTE3OTEuLjIzNTVhN2NlOTIyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYworKysgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwpAQCAtMTY0Nyw2ICsxNjQ3LDkgQEAgcHVsbF91cF9z aW1wbGVfc3VicXVlcnkoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwgUmFuZ2VUYmxF bnRyeSAqcnRlLAogCS8qIElmIHN1YnF1ZXJ5IGhhZCBhbnkgUkxTIGNvbmRpdGlvbnMsIG5vdyBt YWluIHF1ZXJ5IGRvZXMgdG9vICovCiAJcGFyc2UtPmhhc1Jvd1NlY3VyaXR5IHw9IHN1YnF1ZXJ5 LT5oYXNSb3dTZWN1cml0eTsKIAorCS8qIGlmIHRoZSBzdWJxdWVyeSBoYWQgc2Vzc2lvbiB2YXJp YWJsZXMsIHRoZSBtYWluIHF1ZXJ5IGRvZXMgdG9vICovCisJcGFyc2UtPmhhc1Nlc3Npb25WYXJp YWJsZXMgfD0gc3VicXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXM7CisKIAkvKgogCSAqIHN1YnF1 ZXJ5IHdvbid0IGJlIHB1bGxlZCB1cCBpZiBpdCBoYXNBZ2dzLCBoYXNXaW5kb3dGdW5jcywgb3IK IAkgKiBoYXNUYXJnZXRTUkZzLCBzbyBubyB3b3JrIG5lZWRlZCBvbiB0aG9zZSBmbGFncwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDgxZDc2OGZmMmEyLi41NWMyZWM1MGM5 NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBi L3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtMjUsNiArMjUsNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3By b2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNs dWRlICJleGVjdXRvci9mdW5jdGlvbnMuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05Mzks NiArOTQwLDEzIEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9w YXJhbGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQg PT0gUEFSQU1fRVhURVJOKQogCQkJcmV0dXJuIGZhbHNlOwogCisJCS8qIHdlIGRvbid0IHN1cHBv cnQgcGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlmIChwYXJhbS0+ cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQl7CisJCQlpZiAobWF4X3BhcmFsbGVsX2hh emFyZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJCXJldHVybiB0 cnVlOworCQl9CisKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJ IWxpc3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQp KQogCQl7CkBAIC0yMzk3LDYgKzI0MDUsNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVkX3Nhb3Bf d2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9mIHRoZSBQYXJh bS4KICAqIDIuIEZvbGQgc3RhYmxlLCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVuY3Rpb25zIHRv IGNvbnN0YW50cy4KICAqIDMuIFJlZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0byB0aGVpciBj b250YWluZWQgZXhwcmVzc2lvbnMuCisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNlc3Npb24gdmFy aWFibGUgY2FuIGJlIHVzZWQgZm9yIGVzdGltYXRpb24gdG9vLgogICotLS0tLS0tLS0tLS0tLS0t LS0tLQogICovCiBOb2RlICoKQEAgLTI1MjMsNiArMjUzMiwyNyBAQCBldmFsX2NvbnN0X2V4cHJl c3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJCX0KKwkJCQll bHNlIGlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJCQkJCQkgY29u dGV4dC0+ZXN0aW1hdGUpCisJCQkJeworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJCQlib29sCQl0 eXBCeVZhbDsKKwkJCQkJRGF0dW0JCXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsKKworCQkJCQln ZXRfdHlwbGVuYnl2YWwocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBMZW4sICZ0eXBC eVZhbCk7CisKKwkJCQkJcHZhbCA9IEdldFNlc3Npb25WYXJpYWJsZShwYXJhbS0+cGFyYW12YXJp ZCwgJmlzbnVsbCk7CisKKwkJCQkJcmV0dXJuIChOb2RlICopIG1ha2VDb25zdChwYXJhbS0+cGFy YW10eXBlLAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbXR5cG1vZCwKKwkJCQkJCQkJCQkJICBw YXJhbS0+cGFyYW1jb2xsaWQsCisJCQkJCQkJCQkJCSAgKGludCkgdHlwTGVuLAorCQkJCQkJCQkJ CQkgIHB2YWwsCisJCQkJCQkJCQkJCSAgaXNudWxsLAorCQkJCQkJCQkJCQkgIHR5cEJ5VmFsKTsK KwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIE5vdCByZXBsYWNlYWJsZSwgc28ganVzdCBjb3B5IHRo ZSBQYXJhbSAobm8gbmVlZCB0bwpAQCAtNDgyMiw3ICs0ODUyLDggQEAgaW5saW5lX2Z1bmN0aW9u KE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgT2lkIHJlc3VsdF9jb2xsaWQsCiAJCXF1ZXJ5 dHJlZS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnl0cmVlLT5saW1pdENvdW50IHx8CiAJCXF1ZXJ5 dHJlZS0+c2V0T3BlcmF0aW9ucyB8fAotCQlsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExp c3QpICE9IDEpCisJCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExpc3QpICE9IDEpIHx8 CisJCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJZ290byBmYWlsOwogCiAJLyog SWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQgKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKaW5kZXggNjY2MWQyYzZiNzMuLmFiMWYyYWYxM2U1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwpAQCAtNTgsNiArNTgsNyBAQAogCiAjaW5j bHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj dXRvci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5j cy5oIgpAQCAtMTUzLDYgKzE1NCw3IEBAIEluaXRQbGFuQ2FjaGUodm9pZCkKIAlDYWNoZVJlZ2lz dGVyU3lzY2FjaGVDYWxsYmFjayhBTU9QT1BJRCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1 bSkgMCk7CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soRk9SRUlHTlNFUlZFUk9JRCwg UGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hl Q2FsbGJhY2soRk9SRUlHTkRBVEFXUkFQUEVST0lELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERh dHVtKSAwKTsKKwlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhWQVJJQUJMRU9JRCwgUGxh bkNhY2hlT2JqZWN0Q2FsbGJhY2ssIChEYXR1bSkgMCk7CiB9CiAKIC8qCkBAIC0yMTk2LDcgKzIx OTgsOSBAQCBQbGFuQ2FjaGVSZWxDYWxsYmFjayhEYXR1bSBhcmcsIE9pZCByZWxpZCkKIAogLyoK ICAqIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrCi0gKgkJU3lzY2FjaGUgaW52YWwgY2FsbGJhY2sg ZnVuY3Rpb24gZm9yIFBST0NPSUQgYW5kIFRZUEVPSUQgY2FjaGVzCisgKgkJU3lzY2FjaGUgaW52 YWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFRZUEVPSUQsIFBST0NPSUQsIE5BTUVTUEFDRU9JRCwK KyAqCQlPUEVST0lELCBBTU9QT1BJRCwgRk9SRUlHTlNFUlZFUk9JRCwgRk9SRUlHTkRBVEFXUkFQ UEVST0lEIGFuZAorICoJCVZBUklBQkxFT0lEIGNhY2hlcy4KICAqCiAgKiBJbnZhbGlkYXRlIGFs bCBwbGFucyBtZW50aW9uaW5nIHRoZSBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGhhc2ggdmFs dWUsCiAgKiBvciBhbGwgcGxhbnMgbWVudGlvbmluZyBhbnkgbWVtYmVyIG9mIHRoaXMgY2FjaGUg aWYgaGFzaHZhbHVlID09IDAuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2Zt Z3IuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCmluZGV4IDBmZTYzYzZiYjgzLi5k MjZlNzQ0ZTI5NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKQEAgLTE5OTEsOSArMTk5MSwxMyBAQCBn ZXRfY2FsbF9leHByX2FyZ19zdGFibGUoTm9kZSAqZXhwciwgaW50IGFyZ251bSkKIAkgKi8KIAlp ZiAoSXNBKGFyZywgQ29uc3QpKQogCQlyZXR1cm4gdHJ1ZTsKLQlpZiAoSXNBKGFyZywgUGFyYW0p ICYmCi0JCSgoUGFyYW0gKikgYXJnKS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKLQkJcmV0 dXJuIHRydWU7CisJaWYgKElzQShhcmcsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBh cmFtICopIGFyZzsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTiB8fCBwLT5w YXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CiAKIAlyZXR1 cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCmluZGV4IDMwZDg4OWI1NGM1Li43NWE4NjNk YWQ5MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTE4OSw2ICsxODksOSBAQCB0eXBlZGVmIHN0 cnVjdCBQbGFubmVyR2xvYmFsCiAJLyogZXh0ZW5zaW9uIHN0YXRlICovCiAJdm9pZAkgICoqZXh0 ZW5zaW9uX3N0YXRlIHBnX25vZGVfYXR0cihyZWFkX3dyaXRlX2lnbm9yZSk7CiAJaW50CQkJZXh0 ZW5zaW9uX3N0YXRlX2FsbG9jYXRlZDsKKworCS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlh YmxlcyAqLworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CiB9IFBsYW5uZXJHbG9iYWw7CiAK IC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFu IG5vZGUgKi8KQEAgLTU0Nyw2ICs1NTAsOCBAQCBzdHJ1Y3QgUGxhbm5lckluZm8KIAlib29sCQlo YXNSZWN1cnNpb247CiAJLyogdHJ1ZSBpZiBhIHBsYW5uZXIgZXh0ZW5zaW9uIG1heSByZXBsYW4g dGhpcyBzdWJxdWVyeSAqLwogCWJvb2wJCWFzc3VtZVJlcGxhbm5pbmc7CisJLyogdHJ1ZSBpZiBz ZXNzaW9uIHZhcmlhYmxlcyB3ZXJlIHVzZWQgKi8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVz OwogCiAJLyoKIAkgKiBUaGUgcmFuZ2V0YWJsZSBpbmRleCBmb3IgdGhlIFJURV9HUk9VUCBSVEUs IG9yIDAgaWYgdGhlcmUgaXMgbm8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5u b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggYzQzOTNhOTQzMjEu LjBhYTUyY2JjNGM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTU4LDYgKzE1OCw5IEBAIHR5 cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAJICovCiAJTGlzdAkgICAqZXh0ZW5zaW9uX3N0YXRl OwogCisJLyogT0lEcyBmb3IgUEFSQU1fVkFSSUFCTEUgUGFyYW1zICovCisJTGlzdAkgICAqc2Vz c2lvblZhcmlhYmxlczsKKwogCS8qIHN0YXRlbWVudCBsb2NhdGlvbiBpbiBzb3VyY2Ugc3RyaW5n IChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KIAkvKiBzdGFydCBsb2NhdGlvbiwgb3IgLTEgaWYgdW5r bm93biAqLwogCVBhcnNlTG9jCXN0bXRfbG9jYXRpb247CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5o CmluZGV4IDAwYWRkZjE1OTkyLi5mYjgxY2ViMzc1ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv b3B0aW1pemVyL3BsYW5tYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWlu LmgKQEAgLTEzMiw0ICsxMzIsNiBAQCBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl9mdW5jdGlvbl9k ZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgZnVuY2lkKTsKIGV4dGVybiB2b2lkIHJl Y29yZF9wbGFuX3R5cGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKTsK IGV4dGVybiBib29sIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2Rl LCBQbGFubmVySW5mbyAqY29udGV4dCk7CiAKK2V4dGVybiB2b2lkIHB1bGxfdXBfaGFzX3Nlc3Np b25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290KTsKKwogI2VuZGlmCQkJCQkJCS8qIFBMQU5N QUlOX0ggKi8KLS0gCjIuNTEuMQoK --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Disposition: attachment; filename="v20251110-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5da8 RnJvbSA4OWQ1Y2NkMTExMGRmYjk2MWQxMDMxYzRiOTY5YzJhMTEyYWFjYjI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMzAgTWF5IDIwMjUgMjI6NDQ6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzE1XSBsb2NhbCBIQVNIVEFCIGZvciBjdXJyZW50bHkgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyBh bmQKIGxvdyBsZXZlbCBhY2Nlc3MgZnVuY3Rpb25zCgpTZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3Rv cmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVkIGhhc2ggdGFibGUuClRoZXkgYXJl IHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkgdGhlIFNFTEVDVCBjb21tYW5kLgpU aGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4KCkhhc2ggZW50cmllcyByZWxhdGVk IHRvIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCByZWxlYXNlZC4gVGhlIG1lbW9y eQpjbGVhbmluZyBpcyBpbXBsZW1lbnRlZCBpbiBtZW1vcnktY2xlYW5pbmctYWZ0ZXItRFJPUC1W QVJJQUJMRSBwYXRjaC4KLS0tCiBkb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCAgICAgICAgICAg ICAgfCAgIDUgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyB8IDQy OCArKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCB8ICAgMyArCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAg ICAgfCAgIDIgKwogNCBmaWxlcyBjaGFuZ2VkLCA0MzYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMv c2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4IDhmNjk3YmIyMjY2Li5iMjllM2RkZTFhYyAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwKQEAgLTE3MzIsOCArMTczMiw5IEBACiAgICAgPHBhcmE+CiAgICAgIEEgcGVyc2lz dGVudCBkYXRhYmFzZSBvYmplY3QgdGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5 LiAgVGhpcwogICAgICB2YWx1ZSBpcyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVs ZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgotICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0 byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCi0gICAgIHNp bWlsYXIgdG8gb3RoZXIgZGF0YWJhc2Ugb2JqZWN0cy4KKyAgICAgVGhlIGRlZmF1bHQgdmFsdWUg b2YgdGhlIHNlc3Npb24gdmFyaWFibGUgaXMgbnVsbC4gIFJlYWQgb3Igd3JpdGUgYWNjZXNzCisg ICAgIHRvIHNlc3Npb24gdmFyaWFibGVzIGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywgc2lt aWxhciB0byBvdGhlciBkYXRhYmFzZQorICAgICBvYmplY3RzLgogICAgIDwvcGFyYT4KICAgICA8 cGFyYT4KICAgICAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwt c2Vzc2lvbi12YXJpYWJsZXMiLz4uCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKaW5kZXggZjY0MWUwMGMxYWMuLmRiYzA1NDc5NWJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNCwxNCArMTQsNDQyIEBACiAgKi8KICNpbmNsdWRlICJw b3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFy c2VfdHlwZS5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInN0b3JhZ2Uv cHJvYy5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZGF0 dW0uaCIKKyNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNo ZS5oIgorI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2Fj aGUuaCIKKworLyoKKyAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3Jl ZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CisgKiBpbiB0aGUgZGVkaWNhdGVkIG1l bW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KKyAq IFRoZXkgYXJlIHN0b3JlZCBpbiB0aGUgInNlc3Npb252YXJzIiBoYXNoIHRhYmxlLCB3aG9zZSBr ZXkgaXMgdGhlIE9JRCBvZiB0aGUKKyAqIHZhcmlhYmxlLiAgSG93ZXZlciwgdGhlIE9JRCBpcyBu b3QgZ29vZCBlbm91Z2ggdG8gaWRlbnRpZnkgYSBzZXNzaW9uCisgKiB2YXJpYWJsZTogY29uY3Vy cmVudCBzZXNzaW9ucyBjb3VsZCBkcm9wIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGFuZCBjcmVhdGUg YQorICogbmV3IG9uZSwgd2hpY2ggY291bGQgYmUgYXNzaWduZWQgdGhlIHNhbWUgT0lELiAgVG8g ZW5zdXJlIHRoYXQgdGhlIHZhbHVlcworICogc3RvcmVkIGluIG1lbW9yeSBhbmQgdGhlIGNhdGFs b2cgZGVmaW5pdGlvbiBtYXRjaCwgd2UgYWxzbyBrZWVwIHRyYWNrIG9mCisgKiB0aGUgImNyZWF0 ZV9sc24iLiAgQmVmb3JlIGFueSBhY2Nlc3MgdG8gdGhlIHZhcmlhYmxlIHZhbHVlcywgd2UgbmVl ZCB0bworICogY2hlY2sgaWYgdGhlIExTTiBzdG9yZWQgaW4gbWVtb3J5IG1hdGNoZXMgdGhlIExT TiBpbiB0aGUgY2F0YWxvZy4gIElmIHRoZXJlCisgKiBpcyBhIG1pc21hdGNoIGJldHdlZW4gdGhl IExTTnMsIG9yIGlmIHRoZSBPSUQgaXMgbm90IHByZXNlbnQgaW4gcGdfdmFyaWFibGUKKyAqIGF0 IGFsbCwgdGhlIHZhbHVlIHN0b3JlZCBpbiBtZW1vcnkgaXMgcmVsZWFzZWQuCisgKi8KK3R5cGVk ZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKK3sKKwlPaWQJCQl2YXJpZDsJCQkvKiBwZ192YXJpYWJs ZSBPSUQgb2YgdGhlIHZhcmlhYmxlIChoYXNoIGtleSkgKi8KKwlYTG9nUmVjUHRyCWNyZWF0ZV9s c247CisKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOworCisJT2lkCQkJdHlwaWQ7CisJ aW50MTYJCXR5cGxlbjsKKwlib29sCQl0eXBieXZhbDsKKworCWJvb2wJCWlzX2RvbWFpbjsKKwor CS8qCisJICogZG9tYWluX2NoZWNrX2V4dHJhIGhvbGRzIGNhY2hlZCBkb21haW4gbWV0YWRhdGEu ICBUaGlzICJleHRyYSIgaXMKKwkgKiB1c3VhbGx5IHN0b3JlZCBpbiBmbl9tY3h0LiAgV2UgZG8g bm90IGhhdmUgYWNjZXNzIHRvIHRoYXQgbWVtb3J5CisJICogY29udGV4dCBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMsIGJ1dCB3ZSBjYW4gdXNlIFRvcFRyYW5zYWN0aW9uQ29udGV4dAorCSAqIGluc3Rl YWQuIEEgZnJlc2ggdmFsdWUgaXMgZm9yY2VkIHdoZW4gd2UgZGV0ZWN0IHdlIGFyZSBpbiBhIGRp ZmZlcmVudAorCSAqIHRyYW5zYWN0aW9uICh0aGUgbG9jYWwgdHJhbnNhY3Rpb24gSUQgZGlmZmVy cyBmcm9tCisJICogZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQpLgorCSAqLworCXZvaWQJICAgKmRv bWFpbl9jaGVja19leHRyYTsKKwlMb2NhbFRyYW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJh X2x4aWQ7CisKKwkvKgorCSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBjYW4g YmUgb3V0ZGF0ZWQgd2hlbiB3ZSByZWNlaXZlIGEKKwkgKiBzaW52YWwgbWVzc2FnZS4gIFdlIHRo ZW4gaGF2ZSB0byBjaGVjayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCisJICogdHJ1c3R3 b3J0aHkuCisJICovCisJYm9vbAkJaXNfdmFsaWQ7CisKKwl1aW50MzIJCWhhc2h2YWx1ZTsJCS8q IHVzZWQgZm9yIHBhaXJpbmcgc2ludmFsIG1lc3NhZ2UgKi8KK30gU1ZhcmlhYmxlRGF0YTsKKwor dHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CisKK3N0YXRpYyBIVEFCICpzZXNzaW9u dmFycyA9IE5VTEw7CS8qIGhhc2ggdGFibGUgZm9yIHNlc3Npb24gdmFyaWFibGVzICovCisKK3N0 YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPSBOVUxMOworCisvKgor ICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9uLgor ICovCitzdGF0aWMgdm9pZAorcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBp bnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3RhdHVz OworCVNWYXJpYWJsZQlzdmFyOworCisJZWxvZyhERUJVRzEsICJwZ192YXJpYWJsZV9jYWNoZV9j YWxsYmFjayAldSAldSIsIGNhY2hlaWQsIGhhc2h2YWx1ZSk7CisKKwlBc3NlcnQoc2Vzc2lvbnZh cnMpOworCisJLyoKKwkgKiBJZiB0aGUgaGFzaHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQsIHdlIGhh dmUgdG8gcmVjaGVjayBhbGwgY3VycmVudGx5CisJICogdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4g IFNpbmNlIHdlIGNhbid0IHRlbGwgdGhlIGV4YWN0IHNlc3Npb24gdmFyaWFibGUKKwkgKiBmcm9t IGl0cyBoYXNodmFsdWUsIHdlIGhhdmUgdG8gaXRlcmF0ZSBvdmVyIGFsbCBpdGVtcyBpbiB0aGUg aGFzaAorCSAqIGJ1Y2tldC4KKwkgKi8KKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252 YXJzKTsKKworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3Rh dHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFs dWUgPT0gaGFzaHZhbHVlKQorCQl7CisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQl9CisJ fQorfQorCisvKgorICogUmVsZWFzZSBzdG9yZWQgdmFsdWUsIGZyZWUgbWVtb3J5CisgKi8KK3N0 YXRpYyB2b2lkCitmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIpCit7 CisJLyogY2xlYW4gdGhlIGN1cnJlbnQgdmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7 CisJCWlmICghc3Zhci0+dHlwYnl2YWwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoc3Zhci0+ dmFsdWUpKTsKKworCQlzdmFyLT5pc251bGwgPSB0cnVlOworCX0KKworCXN2YXItPnZhbHVlID0g KERhdHVtKSAwOworfQorCisvKgorICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIGVudHJ5IGluIHBn X3ZhcmlhYmxlIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZ2l2ZW4KKyAqIHNlc3Npb24gdmFyaWFi bGUuCisgKi8KK3N0YXRpYyBib29sCitpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJs ZSBzdmFyKQoreworCUhlYXBUdXBsZQl0cDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCUFz c2VydChPaWRJc1ZhbGlkKHN2YXItPnZhcmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShW QVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCkpOworCisJaWYgKEhlYXBU dXBsZUlzVmFsaWQodHApKQorCXsKKwkJLyoKKwkJICogVGhlIE9JRCBhbG9uZSBpcyBub3QgZW5v dWdoIGFzIGFuIHVuaXF1ZSBpZGVudGlmaWVyLCBiZWNhdXNlIE9JRAorCQkgKiB2YWx1ZXMgZ2V0 IHJlY3ljbGVkLCBhbmQgYSBuZXcgc2Vzc2lvbiB2YXJpYWJsZSBjb3VsZCBoYXZlIGdvdCB0aGUK KwkJICogc2FtZSBPSUQuICBXZSBkbyBhIHNlY29uZCBjaGVjayBhZ2FpbnN0IHRoZSA2NC1iaXQg TFNOIHdoZW4gdGhlCisJCSAqIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorCQkgKi8KKwkJaWYgKHN2 YXItPmNyZWF0ZV9sc24gPT0gKChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHApKS0+dmFy Y3JlYXRlX2xzbikKKwkJCXJlc3VsdCA9IHRydWU7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsK Kwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVz IGNhY2hlZCBpbiAic3ZhciIKKyAqLworc3RhdGljIHZvaWQKK3NldHVwX3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1f cGdfdmFyaWFibGUgdmFyZm9ybTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwl0 dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQp KTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUg bG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZv cm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwlzdmFyLT52YXJpZCA9 IHZhcmlkOworCXN2YXItPmNyZWF0ZV9sc24gPSB2YXJmb3JtLT52YXJjcmVhdGVfbHNuOworCisJ c3Zhci0+dHlwaWQgPSB2YXJmb3JtLT52YXJ0eXBlOworCisJZ2V0X3R5cGxlbmJ5dmFsKHN2YXIt PnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOworCisJc3Zhci0+aXNfZG9t YWluID0gKGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsK KwlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOworCXN2YXItPmRvbWFpbl9jaGVja19l eHRyYV9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKworCXN2YXItPmlzbnVsbCA9 IHRydWU7CisJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7CisKKwlzdmFyLT5pc192YWxpZCA9IHRy dWU7CisKKwlzdmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVP SUQsCisJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCVJlbGVhc2VTeXND YWNoZSh0dXApOworfQorCisvKgorICogQXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9u IHZhcmlhYmxlLiAgSXQgaXMgY29waWVkIHRvCisgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlm IG5lY2Vzc2FyeS4KKyAqCisgKiBJZiBhbnkgZXJyb3IgaGFwcGVucywgdGhlIGV4aXN0aW5nIHZh bHVlIHdvbid0IGJlIG1vZGlmaWVkLgorICovCitzdGF0aWMgdm9pZAorc2V0X3Nlc3Npb25fdmFy aWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKK3sKKwlEYXR1 bQkJbmV3dmFsOworCVNWYXJpYWJsZURhdGEgbG9jc3ZhciwKKwkJCSAgICpfc3ZhcjsKKworCUFz c2VydChzdmFyKTsKKwlBc3NlcnQoIWlzbnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOworCisJ LyoKKwkgKiBVc2UgdHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5 IHdoZW4gdGhleSBhcmUKKwkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdl IHdhcyBub3QgYWNjZXB0ZWQgZm9yIHRoaXMKKwkgKiB2YXJpYWJsZSkuICBJZiB0aGUgdmFyaWFi bGUgbWlnaHQgYmUgaW52YWxpZCwgZm9yY2Ugc2V0dXAuCisJICoKKwkgKiBEbyBub3Qgb3Zlcndy aXRlIHRoZSBwYXNzZWQgc2Vzc2lvbiB2YXJpYWJsZSB1bnRpbCB3ZSBjYW4gYmUgY2VydGFpbgor CSAqIHRoYXQgbm8gZXJyb3IgY2FuIGJlIHRocm93bi4KKwkgKi8KKwlpZiAoIXN2YXItPmlzX3Zh bGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFyaWQp OworCQlfc3ZhciA9ICZsb2NzdmFyOworCX0KKwllbHNlCisJCV9zdmFyID0gc3ZhcjsKKworCWlm ICghaXNudWxsKQorCXsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dp dGNoVG8oU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CisKKwkJbmV3dmFsID0gZGF0dW1Db3B5KHZh bHVlLCBfc3Zhci0+dHlwYnl2YWwsIF9zdmFyLT50eXBsZW4pOworCisJCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRjeHQpOworCX0KKwllbHNlCisJCW5ld3ZhbCA9IHZhbHVlOworCisJZnJlZV9z ZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCisJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZh cmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgbmV3IHZhbHVlIiwKKwkJIGdldF9uYW1lc3Bh Y2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJ IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpLAorCQkgc3Zhci0+dmFyaWQp OworCisJLyogbm8gbW9yZSBlcnJvciBleHBlY3RlZCwgc28gd2UgY2FuIG92ZXJ3cml0ZSB0aGUg b2xkIHZhcmlhYmxlIG5vdyAqLworCWlmIChzdmFyICE9IF9zdmFyKQorCQltZW1jcHkoc3Zhciwg X3N2YXIsIHNpemVvZihTVmFyaWFibGVEYXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsK KwlzdmFyLT5pc251bGwgPSBpc251bGw7Cit9CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFi bGUgZm9yIHN0b3Jpbmcgc2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVh dGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxlcyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOwor CisJQXNzZXJ0KCFzZXNzaW9udmFycyk7CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQp CisJeworCQkvKiByZWFkIHNpbnZhbCBtZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lzdGVyU3lzY2Fj aGVDYWxsYmFjayhWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCSAgcGdfdmFyaWFibGVfY2FjaGVfY2Fs bGJhY2ssCisJCQkJCQkJCQkgIChEYXR1bSkgMCk7CisKKwkJLyogd2UgbmVlZCBvdXIgb3duIGxv bmctbGl2ZWQgbWVtb3J5IGNvbnRleHQgKi8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9CisJ CQlBbGxvY1NldENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJICAic2Vz c2lvbiB2YXJpYWJsZXMiLAorCQkJCQkJCQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxMX1NJWkVTKTsK Kwl9CisKKwltZW1zZXQoJnZhcnNfY3RsLCAwLCBzaXplb2YodmFyc19jdGwpKTsKKwl2YXJzX2N0 bC5rZXlzaXplID0gc2l6ZW9mKE9pZCk7CisJdmFyc19jdGwuZW50cnlzaXplID0gc2l6ZW9mKFNW YXJpYWJsZURhdGEpOworCXZhcnNfY3RsLmhjeHQgPSBTVmFyaWFibGVNZW1vcnlDb250ZXh0Owor CisJc2Vzc2lvbnZhcnMgPSBoYXNoX2NyZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMiLCA2NCwgJnZh cnNfY3RsLAorCQkJCQkJCSAgSEFTSF9FTEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hfQ09OVEVYVCk7 Cit9CisKKy8qCisgKiBTZWFyY2ggYSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBoYXNoIHRhYmxl IGdpdmVuIGl0cyBPSUQuICBJZiBpdAorICogZG9lc24ndCBleGlzdCwgdGhlbiBpbnNlcnQgaXQg dGhlcmUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlz c2lvbiBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1 aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUgdW50aWwg dGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3N0YXRpYyBTVmFyaWFibGUKK2dldF9z ZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlm b3VuZDsKKworCS8qIHByb3RlY3QgdGhlIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERS T1AgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwg QWNjZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9u dmFyc19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vz c2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKworCWlm IChmb3VuZCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCS8qCisJCQkgKiBJ ZiB0aGVyZSB3YXMgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2UsIHRoZSB2YXJpYWJsZSBtaWdodCBz dGlsbAorCQkJICogYmUgdmFsaWQsIGJ1dCB3ZSBoYXZlIHRvIGNoZWNrIHdpdGggdGhlIHN5c3Rl bSBjYXRhbG9nLgorCQkJICovCisJCQlpZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFy KSkKKwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCQllbHNlCisJCQkJLyogaWYgdGhlIHZh bHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQsIHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLworCQkJCWZy ZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJfQorCX0KKwllbHNlCisJCXN2YXIt PmlzX3ZhbGlkID0gZmFsc2U7CisKKwkvKgorCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGlu aXRpYWxpemVkIHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5ub3QKKwkgKiBiZSB2YWxp ZGF0ZWQuCisJICovCisJaWYgKCFzdmFyLT5pc192YWxpZCkKKwl7CisJCXNldHVwX3Nlc3Npb25f dmFyaWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRl ZCBieSBSRUFEKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZSh2YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQp LAorCQkJIHZhcmlkKTsKKwl9CisKKwkvKiBlbnN1cmUgdGhlIHJldHVybmVkIGRhdGEgaXMgc3Rp bGwgb2YgdGhlIGNvcnJlY3QgZG9tYWluICovCisJaWYgKHN2YXItPmlzX2RvbWFpbikKKwl7CisJ CS8qCisJCSAqIFN0b3JlICJleHRyYSIgZm9yIGRvbWFpbl9jaGVjaygpIGluIFRvcFRyYW5zYWN0 aW9uQ29udGV4dC4gIFdoZW4gd2UKKwkJICogYXJlIGluIGEgbmV3IHRyYW5zYWN0aW9uLCBkb21h aW5fY2hlY2tfZXh0cmEgY2FjaGUgaXMgbm90IHZhbGlkIGFueQorCQkgKiBtb3JlLgorCQkgKi8K KwkJaWYgKHN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkICE9IE15UHJvYy0+dnhpZC5seGlk KQorCQkJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKworCQlkb21haW5fY2hlY2so c3Zhci0+dmFsdWUsIHN2YXItPmlzbnVsbCwKKwkJCQkJIHN2YXItPnR5cGlkLCAmc3Zhci0+ZG9t YWluX2NoZWNrX2V4dHJhLAorCQkJCQkgVG9wVHJhbnNhY3Rpb25Db250ZXh0KTsKKworCQlzdmFy LT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKworCXJl dHVybiBzdmFyOworfQorCisvKgorICogU3RvcmUgdGhlIGdpdmVuIHZhbHVlIGluIGEgc2Vzc2lv biB2YXJpYWJsZSBpbiB0aGUgY2FjaGUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJs ZSBmb3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwg dGhpcyBmdW5jdGlvbiBhY3F1aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbgor ICogdmFyaWFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQK K1NldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkK K3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdXNlZCBz ZXNzaW9uIHZhcmlhYmxlIGFnYWluc3QgRFJPUCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNz aW9udmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAo U1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBI QVNIX0VOVEVSLCAmZm91bmQpOworCisJaWYgKCFmb3VuZCkKKwl7CisJCXNldHVwX3Nlc3Npb25f dmFyaWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRl ZCBieSBXUklURSkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHN2YXItPnZhcmlkKSwKKwkJCSB2YXJpZCk7CisJfQorCisJLyogaWYgdGhpcyBmYWlscywgaXQg d29uJ3QgY2hhbmdlIHRoZSBzdG9yZWQgdmFsdWUgKi8KKwlzZXRfc2Vzc2lvbl92YXJpYWJsZShz dmFyLCB2YWx1ZSwgaXNOdWxsKTsKK30KKworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2 YWx1ZSBzdG9yZWQgaW4gYSB2YXJpYWJsZS4KKyAqLworc3RhdGljIGlubGluZSBEYXR1bQorY29w eV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyLCBib29sICppc051bGwpCit7 CisJRGF0dW0JCXZhbHVlOworCisJLyogZm9yY2UgY29weSBvZiBub24gTlVMTCB2YWx1ZSAqLwor CWlmICghc3Zhci0+aXNudWxsKQorCXsKKwkJdmFsdWUgPSBkYXR1bUNvcHkoc3Zhci0+dmFsdWUs IHN2YXItPnR5cGJ5dmFsLCBzdmFyLT50eXBsZW4pOworCQkqaXNOdWxsID0gZmFsc2U7CisJfQor CWVsc2UKKwl7CisJCXZhbHVlID0gKERhdHVtKSAwOworCQkqaXNOdWxsID0gdHJ1ZTsKKwl9CisK KwlyZXR1cm4gdmFsdWU7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUg b2YgdGhlIHNlc3Npb24gdmFyaWFibGUgKGluIHRoZSBjdXJyZW50IG1lbW9yeQorICogY29udGV4 dCkuICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBwZXJtaXNzaW9uIGNoZWNrcy4KKyAq LworRGF0dW0KK0dldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCkKK3sK KwlTVmFyaWFibGUJc3ZhcjsKKworCXN2YXIgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2YXJpZCk7 CisKKwkvKgorCSAqIEFsdGhvdWdoICJzdmFyIiBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0aGlz IHBvaW50LCBzdmFyLT5pc192YWxpZCBjYW4KKwkgKiBiZSBmYWxzZSwgaWYgYW4gaW52YWxpZGF0 aW9uIG1lc3NhZ2Ugd2FzIHByb2Nlc3NlZCBkdXJpbmcgdGhlIGRvbWFpbgorCSAqIGNoZWNrLiBC dXQgdGhlIHZhcmlhYmxlIGFuZCBhbGwgaXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5vdywg c28gd2UKKwkgKiBkb24ndCBuZWVkIHRvIHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8KKwly ZXR1cm4gY29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CiAKIC8q CiAgKiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKaW5kZXggNDlmMzZhYzY4ODUuLjlmNWM2ZTMwZmJkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0xOSw2ICsxOSw5IEBACiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX25vZGUuaCIKICNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCiAKK2V4dGVy biB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlz TnVsbCk7CitleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAq aXNOdWxsKTsKKwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CiAKICNlbmRpZgpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCA3ZjQyNzIzMTYwMi4uMzE1Yzc2YWMwM2YgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0yNjY1LDYgKzI2NjUsOCBAQCBTU0xfQ1RYCiBTVEFSVFVQ SU5GTwogU1RSTEVOCiBTVgorU1ZhcmlhYmxlRGF0YQorU1ZhcmlhYmxlCiBTWU5DSFJPTklaQVRJ T05fQkFSUklFUgogU1lTVEVNX0lORk8KIFNhbXBsZVNjYW4KLS0gCjIuNTEuMQoK --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0005-support-of-session-variables-for-pg_dump.patch" Content-Disposition: attachment; filename="v20251110-0005-support-of-session-variables-for-pg_dump.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5dr10 RnJvbSAyNzhiNTgzMDk1MjAyZjQ0MjExZDYwYTcxYzc0ZDEwMTMwNWRjYWQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjggTWF5IDIwMjUgMjI6NTQ6MDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA1 LzE1XSBzdXBwb3J0IG9mIHNlc3Npb24gdmFyaWFibGVzIGZvciBwZ19kdW1wCgpUaGlzIHBhdGNo IGVuaGFuY2luZyBwZ19kdW1wIHRvIHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuCi0tLQogc3Jj L2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcGdfZHVt cC9kdW1wdXRpbHMuYyAgICAgICAgICB8ICAgNiArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw LmggICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5j IHwgICA5ICsrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgfCAxOTAgKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAg ICAgICAgfCAgMTUgKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgICAgICAgfCAg IDcgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgIHwgIDYzICsrKysrKysr Kwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgIHwgICAxICsKIDkgZmlsZXMg Y2hhbmdlZCwgMjk2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv Y29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKaW5kZXggNGU3MzAzZWE2MzEuLmFl YTgzZTUwYTdiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL2NvbW1vbi5jCkBAIC0yNDcsNiArMjQ3LDkgQEAgZ2V0U2NoZW1hRGF0YShB cmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlc1B0cikKIAlwZ19sb2dfaW5mbygicmVhZGluZyBz dWJzY3JpcHRpb24gbWVtYmVyc2hpcCBvZiByZWxhdGlvbnMiKTsKIAlnZXRTdWJzY3JpcHRpb25S ZWxhdGlvbnMoZm91dCk7CiAKKwlwZ19sb2dfaW5mbygicmVhZGluZyB2YXJpYWJsZXMiKTsKKwln ZXRWYXJpYWJsZXMoZm91dCk7CisKIAlmcmVlKGluaGluZm8pOwkJCQkvKiBub3QgbmVlZGVkIGFu eSBsb25nZXIgKi8KIAogCSpudW1UYWJsZXNQdHIgPSBudW1UYWJsZXM7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMgYi9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMK aW5kZXggMmQyMjcyM2FhOTEuLjBiZjU0NTNhZDdhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvZHVtcHV0aWxzLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCkBAIC01NTIs NiArNTUyLDEyIEBAIGRvIHsgXAogCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7CiAJCUNP TlZFUlRfUFJJVigndycsICJVUERBVEUiKTsKIAl9CisJZWxzZSBpZiAoc3RyY21wKHR5cGUsICJW QVJJQUJMRSIpID09IDAgfHwKKwkJCSBzdHJjbXAodHlwZSwgIlZBUklBQkxFUyIpID09IDApCisJ eworCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7CisJCUNPTlZFUlRfUFJJVigndycsICJV UERBVEUiKTsKKwl9CiAJZWxzZQogCQlhYm9ydCgpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKaW5kZXggZDkw NDFkYWQ3MjAuLmRhYzA2N2JkYzRjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC0xMzQsMTIgKzEzNCwx NCBAQCB0eXBlZGVmIHN0cnVjdCBfcmVzdG9yZU9wdGlvbnMKIAlpbnQJCQlzZWxGdW5jdGlvbjsK IAlpbnQJCQlzZWxUcmlnZ2VyOwogCWludAkJCXNlbFRhYmxlOworCWludAkJCXNlbFZhcmlhYmxl OwogCVNpbXBsZVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IGZ1bmN0 aW9uTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFOYW1lczsKIAlTaW1wbGVTdHJpbmdM aXN0IHNjaGVtYUV4Y2x1ZGVOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRyaWdnZXJOYW1lczsK IAlTaW1wbGVTdHJpbmdMaXN0IHRhYmxlTmFtZXM7CisJU2ltcGxlU3RyaW5nTGlzdCB2YXJpYWJs ZU5hbWVzOwogCiAJaW50CQkJdXNlREI7CiAJQ29ublBhcmFtcwljcGFyYW1zOwkJLyogcGFyYW1l dGVycyB0byB1c2UgaWYgdXNlREIgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19i YWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpp bmRleCA1OWVhZWNiNGVkNy4uMDY3NzRkYzc1YzEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Fy Y2hpdmVyLmMKQEAgLTMyNDEsNiArMzI0MSwxNCBAQCBfdG9jRW50cnlSZXF1aXJlZChUb2NFbnRy eSAqdGUsIHRlU2VjdGlvbiBjdXJTZWN0aW9uLCBBcmNoaXZlSGFuZGxlICpBSCkKIAkJCQkJIXNp bXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnRyaWdnZXJOYW1lcywgdGUtPnRhZykpCiAJ CQkJCXJldHVybiAwOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKHRlLT5kZXNjLCAiVkFSSUFC TEUiKSA9PSAwKQorCQkJeworCQkJCWlmICghcm9wdC0+c2VsVmFyaWFibGUpCisJCQkJCXJldHVy biAwOworCQkJCWlmIChyb3B0LT52YXJpYWJsZU5hbWVzLmhlYWQgIT0gTlVMTCAmJgorCQkJCQkh c2ltcGxlX3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dmFyaWFibGVOYW1lcywgdGUtPnRhZykp CisJCQkJCXJldHVybiAwOworCQkJfQogCQkJZWxzZQogCQkJCXJldHVybiAwOwogCQl9CkBAIC0z ODE2LDYgKzM4MjQsNyBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIgYnVmLCBj b25zdCBUb2NFbnRyeSAqdGUpCiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggRElDVElPTkFS WSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJURVhUIFNFQVJDSCBDT05GSUdVUkFUSU9OIikg PT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRZUEUiKSA9PSAwIHx8CisJCXN0cmNtcCh0eXBlLCAi VkFSSUFCTEUiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVklFVyIpID09IDAgfHwKIAkvKiBu b24tc2NoZW1hLXNwZWNpZmllZCBvYmplY3RzICovCiAJCXN0cmNtcCh0eXBlLCAiREFUQUJBU0Ui KSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBhMDA5MThiYWNiNC4uNzAyYWM3ZmExYzEgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYwpAQCAtMzgxLDYgKzM4MSw3IEBAIHN0YXRpYyB2b2lkIGR1bXBQdWJsaWNhdGlvbihB cmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8pOwogc3RhdGljIHZv aWQgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25S ZWxJbmZvICpwdWJyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vic2NyaXB0aW9uKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8pOwogc3RhdGljIHZvaWQgZHVt cFN1YnNjcmlwdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YlJlbEluZm8gKnN1YnJp bmZvKTsKK3N0YXRpYyB2b2lkIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJp YWJsZUluZm8gKnZhcmluZm8pOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNlKEFyY2hpdmUgKmZv dXQpOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNlQ29uZmlnKEFyY2hpdmUgKkFILCBQUUV4cEJ1 ZmZlciBvdXRidWYsCiAJCQkJCQkJICAgY29uc3QgY2hhciAqZGJuYW1lLCBPaWQgZGJvaWQpOwpA QCAtNTY5NCw2ICs1Njk1LDE4OCBAQCBnZXRfbmV4dF9wb3NzaWJsZV9mcmVlX3BnX3R5cGVfb2lk KEFyY2hpdmUgKmZvdXQsIFBRRXhwQnVmZmVyIHVwZ3JhZGVfcXVlcnkpCiAJcmV0dXJuIG5leHRf cG9zc2libGVfZnJlZV9vaWQ7CiB9CiAKKy8qCisgKiBnZXRWYXJpYWJsZXMKKyAqCSAgZ2V0IGlu Zm9ybWF0aW9uIGFib3V0IHZhcmlhYmxlcworICovCit2b2lkCitnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jlc3VsdCAgICpyZXM7CisJVmFy aWFibGVJbmZvICp2YXJpbmZvOworCWludAkJCWlfdGFibGVvaWQ7CisJaW50CQkJaV9vaWQ7CisJ aW50CQkJaV92YXJuYW1lOworCWludAkJCWlfdmFybmFtZXNwYWNlOworCWludAkJCWlfdmFydHlw ZTsKKwlpbnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJvd25lcjsKKwlpbnQJCQlpX3Zh cmNvbGxhdGlvbjsKKwlpbnQJCQlpX3ZhcmFjbDsKKwlpbnQJCQlpX2FjbGRlZmF1bHQ7CisJaW50 CQkJaSwKKwkJCQludHVwczsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uIDwgMTgwMDAwKQor CQlyZXR1cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwkvKiBnZXQgdGhl IHZhcmlhYmxlcyBpbiBjdXJyZW50IGRhdGFiYXNlICovCisJYXBwZW5kUFFFeHBCdWZmZXIocXVl cnksCisJCQkJCSAgIlNFTEVDVCB2LnRhYmxlb2lkLCB2Lm9pZCwgdi52YXJuYW1lLFxuIgorCQkJ CQkgICIgICAgICAgdi52YXJuYW1lc3BhY2UsIHYudmFydHlwZSxcbiIKKwkJCQkJICAiICAgICAg IHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlw bmFtZSxcbiIKKwkJCQkJICAiICAgICAgIENBU0UgV0hFTiB2LnZhcmNvbGxhdGlvbiA8PiB0LnR5 cGNvbGxhdGlvbiAiCisJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIK KwkJCQkJICAiICAgICAgICAgICAgRUxTRSAwXG4iCisJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFy Y29sbGF0aW9uLFxuIgorCQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4iCisJ CQkJCSAgIiAgICAgICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVsdFxu IgorCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdlxuIgorCQkJCQkgICJKT0lO IHBnX2NhdGFsb2cucGdfdHlwZSB0ICIKKwkJCQkJICAiT04gKHYudmFydHlwZSA9IHQub2lkKSIp OworCisJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBM RVNfT0spOworCisJbnR1cHMgPSBQUW50dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZu dW1iZXIocmVzLCAidGFibGVvaWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsK KwlpX3Zhcm5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFybmFtZSIpOworCWlfdmFybmFtZXNwYWNl ID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWVzcGFjZSIpOworCWlfdmFydHlwZSA9IFBRZm51bWJl cihyZXMsICJ2YXJ0eXBlIik7CisJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5 cG5hbWUiKTsKKwlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24i KTsKKworCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKKwlpX3ZhcmFj bCA9IFBRZm51bWJlcihyZXMsICJ2YXJhY2wiKTsKKwlpX2FjbGRlZmF1bHQgPSBQUWZudW1iZXIo cmVzLCAiYWNsZGVmYXVsdCIpOworCisJdmFyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVv ZihWYXJpYWJsZUluZm8pKTsKKworCWZvciAoaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJ VHlwZUluZm8gICAqdnR5cGU7CisKKwkJdmFyaW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19WQVJJ QUJMRTsKKwkJdmFyaW5mb1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KKwkJCWF0b29pZChQUWdl dHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOworCQl2YXJpbmZvW2ldLmRvYmouY2F0SWQub2lk ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJnZh cmluZm9baV0uZG9iaik7CisJCXZhcmluZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3Zhcm5hbWUpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLm5hbWVzcGFjZSA9 CisJCQlmaW5kTmFtZXNwYWNlKGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lc3Bh Y2UpKSk7CisKKwkJdmFyaW5mb1tpXS52YXJ0eXBlID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBp LCBpX3ZhcnR5cGUpKTsKKwkJdmFyaW5mb1tpXS52YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3ZhcnR5cG5hbWUpKTsKKwkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24g PSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisKKwkJdmFyaW5m b1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsK KwkJdmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMs IGksIGlfYWNsZGVmYXVsdCkpOworCQl2YXJpbmZvW2ldLmRhY2wucHJpdnR5cGUgPSAwOworCQl2 YXJpbmZvW2ldLmRhY2wuaW5pdHByaXZzID0gTlVMTDsKKwkJdmFyaW5mb1tpXS5yb2xuYW1lID0g Z2V0Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyb3duZXIpKTsKKworCQkvKiBkbyBu b3QgdHJ5IHRvIGR1bXAgQUNMIGlmIG5vIEFDTCBleGlzdHMgKi8KKwkJaWYgKCFQUWdldGlzbnVs bChyZXMsIGksIGlfdmFyYWNsKSkKKwkJCXZhcmluZm9baV0uZG9iai5jb21wb25lbnRzIHw9IERV TVBfQ09NUE9ORU5UX0FDTDsKKworCQlpZiAoc3RybGVuKHZhcmluZm9baV0ucm9sbmFtZSkgPT0g MCkKKwkJCXBnX2xvZ193YXJuaW5nKCJvd25lciBvZiB2YXJpYWJsZSBcIiVzXCIgYXBwZWFycyB0 byBiZSBpbnZhbGlkIiwKKwkJCQkJCSAgIHZhcmluZm9baV0uZG9iai5uYW1lKTsKKworCQkvKiBk ZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KKwkJc2VsZWN0RHVtcGFibGVPYmpl Y3QoJih2YXJpbmZvW2ldLmRvYmopLCBmb3V0KTsKKworCQl2dHlwZSA9IGZpbmRUeXBlQnlPaWQo dmFyaW5mb1tpXS52YXJ0eXBlKTsKKwkJYWRkT2JqZWN0RGVwZW5kZW5jeSgmdmFyaW5mb1tpXS5k b2JqLCB2dHlwZS0+ZG9iai5kdW1wSWQpOworCX0KKwlQUWNsZWFyKHJlcyk7CisKKwlkZXN0cm95 UFFFeHBCdWZmZXIocXVlcnkpOworfQorCisvKgorICogZHVtcFZhcmlhYmxlCisgKgkgIGR1bXAg dGhlIGRlZmluaXRpb24gb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGlj IHZvaWQKK2R1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZh cmluZm8pCit7CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCisJUFFFeHBCdWZm ZXIgZGVscTsKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwljaGFyCSAgICpxdWFsdmFybmFtZTsKKwlj b25zdCBjaGFyICp2YXJ0eXBuYW1lOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKworCS8qIHNraXAg aWYgbm90IHRvIGJlIGR1bXBlZCAqLworCWlmICghdmFyaW5mby0+ZG9iai5kdW1wIHx8ICFkb3B0 LT5kdW1wU2NoZW1hKQorCQlyZXR1cm47CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsK KwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxdWFsdmFybmFtZSA9IHBnX3N0cmR1 cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CisJdmFydHlwbmFtZSA9IHZhcmluZm8t PnZhcnR5cG5hbWU7CisJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOworCisJ YXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFCTEUgJXM7XG4iLAorCQkJCQkgIHF1 YWx2YXJuYW1lKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFZBUklBQkxF ICVzIEFTICVzIiwKKwkJCQkJICBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CisKKwlpZiAoT2lk SXNWYWxpZCh2YXJjb2xsYXRpb24pKQorCXsKKwkJQ29sbEluZm8gICAqY29sbDsKKworCQljb2xs ID0gZmluZENvbGxhdGlvbkJ5T2lkKHZhcmNvbGxhdGlvbik7CisJCWlmIChjb2xsKQorCQkJYXBw ZW5kUFFFeHBCdWZmZXIocXVlcnksICIgQ09MTEFURSAlcyIsCisJCQkJCQkJICBmbXRRdWFsaWZp ZWREdW1wYWJsZShjb2xsKSk7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICI7XG4i KTsKKworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9O KQorCQlBcmNoaXZlRW50cnkoZm91dCwgdmFyaW5mby0+ZG9iai5jYXRJZCwgdmFyaW5mby0+ZG9i ai5kdW1wSWQsCisJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IHZhcmluZm8tPmRvYmoubmFtZSwK KwkJCQkJCQkJICAubmFtZXNwYWNlID0gdmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFt ZSwKKwkJCQkJCQkJICAub3duZXIgPSB2YXJpbmZvLT5yb2xuYW1lLAorCQkJCQkJCQkgIC5kZXNj cmlwdGlvbiA9ICJWQVJJQUJMRSIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9E QVRBLAorCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRy b3BTdG10ID0gZGVscS0+ZGF0YSkpOworCisJLyogZHVtcCBjb21tZW50IGlmIGFueSAqLworCWlm ICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9DT01NRU5UKQorCQlkdW1wQ29t bWVudChmb3V0LCAiVkFSSUFCTEUiLCBxdWFsdmFybmFtZSwKKwkJCQkJTlVMTCwgdmFyaW5mby0+ cm9sbmFtZSwKKwkJCQkJdmFyaW5mby0+ZG9iai5jYXRJZCwgMCwgdmFyaW5mby0+ZG9iai5kdW1w SWQpOworCisJLyogZHVtcCBBQ0wgaWYgYW55ICovCisJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAm IERVTVBfQ09NUE9ORU5UX0FDTCkKKwl7CisJCWNoYXIJICAgKnF2YXJuYW1lID0gcGdfc3RyZHVw KGZtdElkKHZhcmluZm8tPmRvYmoubmFtZSkpOworCisJCWR1bXBBQ0woZm91dCwgdmFyaW5mby0+ ZG9iai5kdW1wSWQsIEludmFsaWREdW1wSWQsICJWQVJJQUJMRSIsCisJCQkJcXZhcm5hbWUsIE5V TEwsCisJCQkJdmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwgTlVMTCwgdmFyaW5m by0+cm9sbmFtZSwKKwkJCQkmdmFyaW5mby0+ZGFjbCk7CisKKwkJZnJlZShxdmFybmFtZSk7CisJ fQorCisJZGVzdHJveVBRRXhwQnVmZmVyKGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVy eSk7CisKKwlmcmVlKHF1YWx2YXJuYW1lKTsKK30KKwogc3RhdGljIHZvaWQKIGJpbmFyeV91cGdy YWRlX3NldF90eXBlX29pZHNfYnlfdHlwZV9vaWQoQXJjaGl2ZSAqZm91dCwKIAkJCQkJCQkJCQkg UFFFeHBCdWZmZXIgdXBncmFkZV9idWZmZXIsCkBAIC0xMTgyOCw2ICsxMjAxMSw5IEBAIGR1bXBE dW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2Fz ZSBET19SRUxfU1RBVFM6CiAJCQlkdW1wUmVsYXRpb25TdGF0cyhmb3V0LCAoY29uc3QgUmVsU3Rh dHNJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9fVkFSSUFCTEU6CisJCQlkdW1w VmFyaWFibGUoZm91dCwgKFZhcmlhYmxlSW5mbyAqKSBkb2JqKTsKKwkJCWJyZWFrOwogCQljYXNl IERPX1BSRV9EQVRBX0JPVU5EQVJZOgogCQljYXNlIERPX1BPU1RfREFUQV9CT1VOREFSWToKIAkJ CS8qIG5ldmVyIGR1bXBlZCwgbm90aGluZyB0byBkbyAqLwpAQCAtMTYzMzMsNiArMTY1MTksOSBA QCBkdW1wRGVmYXVsdEFDTChBcmNoaXZlICpmb3V0LCBjb25zdCBEZWZhdWx0QUNMSW5mbyAqZGFj bGluZm8pCiAJCWNhc2UgREVGQUNMT0JKX0xBUkdFT0JKRUNUOgogCQkJdHlwZSA9ICJMQVJHRSBP QkpFQ1RTIjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCXR5cGUg PSAiVkFSSUFCTEVTIjsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyogc2hvdWxkbid0IGdl dCBoZXJlICovCiAJCQlwZ19mYXRhbCgidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlIGluIGRlZmF1 bHQgcHJpdmlsZWdlczogJWQiLApAQCAtMjAxNTEsNiArMjAzNDAsNyBAQCBhZGRCb3VuZGFyeURl cGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2Ug RE9fQ09OVkVSU0lPTjoKIAkJCWNhc2UgRE9fVEFCTEU6CiAJCQljYXNlIERPX1RBQkxFX0FUVEFD SDoKKwkJCWNhc2UgRE9fVkFSSUFCTEU6CiAJCQljYXNlIERPX0FUVFJERUY6CiAJCQljYXNlIERP X1BST0NMQU5HOgogCQkJY2FzZSBET19DQVNUOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNzJhMDBlMWJjMjAu LmY5NGUwNWEwNWYxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTUzLDYgKzUzLDcgQEAgdHlwZWRlZiBlbnVt CiAJRE9fVEFCTEUsCiAJRE9fVEFCTEVfQVRUQUNILAogCURPX0FUVFJERUYsCisJRE9fVkFSSUFC TEUsCiAJRE9fSU5ERVgsCiAJRE9fSU5ERVhfQVRUQUNILAogCURPX1NUQVRTRVhULApAQCAtNzQ2 LDYgKzc0NywxOSBAQCB0eXBlZGVmIHN0cnVjdCBfU3ViUmVsSW5mbwogCWNoYXIJICAgKnNyc3Vi bHNuOwogfSBTdWJSZWxJbmZvOwogCisvKgorICogVGhlIFZhcmlhYmxlSW5mbyBzdHJ1Y3QgaXMg dXNlZCB0byByZXByZXNlbnQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqLwordHlwZWRlZiBzdHJ1Y3Qg X1ZhcmlhYmxlSW5mbworeworCUR1bXBhYmxlT2JqZWN0IGRvYmo7CisJRHVtcGFibGVBY2wgZGFj bDsKKwlPaWQJCQl2YXJ0eXBlOworCWNoYXIJICAgKnZhcnR5cG5hbWU7CisJT2lkCQkJdmFyY29s bGF0aW9uOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0 eSBzdHJpbmcgKi8KK30gVmFyaWFibGVJbmZvOworCiAvKgogICoJY29tbW9uIHV0aWxpdHkgZnVu Y3Rpb25zCiAgKi8KQEAgLTgzMCw1ICs4NDQsNiBAQCBleHRlcm4gdm9pZCBnZXRQdWJsaWNhdGlv blRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLAogCQkJCQkJCQkgaW50 IG51bVRhYmxlcyk7CiBleHRlcm4gdm9pZCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQp OwogZXh0ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9uUmVsYXRpb25zKEFyY2hpdmUgKmZvdXQpOwor ZXh0ZXJuIHZvaWQgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpOwogCiAjZW5kaWYJCQkJCQkJ LyogUEdfRFVNUF9IICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0 LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggMTY0Yzc2ZTA4NjQuLjlm NmZmNmI3ZDU3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC03Niw2ICs3Niw3IEBAIGVudW0g ZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBSSU9fVEFCTEVfQVRUQUNILAogCVBSSU9fRFVNTVlf VFlQRSwKIAlQUklPX0FUVFJERUYsCisJUFJJT19WQVJJQUJMRSwKIAlQUklPX1BSRV9EQVRBX0JP VU5EQVJZLAkJLyogYm91bmRhcnkhICovCiAJUFJJT19UQUJMRV9EQVRBLAogCVBSSU9fU0VRVUVO Q0VfU0VULApAQCAtMTE5LDYgKzEyMCw3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJPYmplY3RUeXBl UHJpb3JpdHlbXSA9CiAJW0RPX1RBQkxFXSA9IFBSSU9fVEFCTEUsCiAJW0RPX1RBQkxFX0FUVEFD SF0gPSBQUklPX1RBQkxFX0FUVEFDSCwKIAlbRE9fQVRUUkRFRl0gPSBQUklPX0FUVFJERUYsCisJ W0RPX1ZBUklBQkxFXSA9IFBSSU9fVkFSSUFCTEUsCiAJW0RPX0lOREVYXSA9IFBSSU9fSU5ERVgs CiAJW0RPX0lOREVYX0FUVEFDSF0gPSBQUklPX0lOREVYX0FUVEFDSCwKIAlbRE9fU1RBVFNFWFRd ID0gUFJJT19TVEFUU0VYVCwKQEAgLTE3NTAsNiArMTc1MiwxMSBAQCBkZXNjcmliZUR1bXBhYmxl T2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJ CSAiUkVMQVRJT04gU1RBVElTVElDUyBGT1IgJXMgIChJRCAlZCBPSUQgJXUpIiwKIAkJCQkJIG9i ai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAkJCXJldHVybjsKKwkJY2Fz ZSBET19WQVJJQUJMRToKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJWQVJJQUJM RSAlcyAgKElEICVkIE9JRCAldSkiLAorCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2Jq LT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOwogCX0KIAkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8K IAlzbnByaW50ZihidWYsIGJ1ZnNpemUsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8w MDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDQ0 NWE1NDFhYmY2Li5kNWE3MGIzOWNjNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTc1 MCw2ICs3NTAsMTYgQEAgbXkgJXRlc3RzID0gKAogCQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAx LCB9LAogCSAgfSwKIAorCSdBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVz c19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQycKKwkg ID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDU2LAorCQljcmVhdGVfc3FsICAgPT4gJ0FMVEVSIERF RkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNF TEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUFM VEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDO1xFL3htLAorCQlsaWtlID0+IHsgJWZ1 bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsgbm9fcHJp dnMgPT4gMSwgfSwKKwkgIH0sCisKIAknQUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xl JyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eCiAJCQlcUUFMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rl c3Rfcm9sZSBXSVRIIFxFCkBAIC0xNzc2LDYgKzE3ODYsMjMgQEAgbXkgJXRlc3RzID0gKAogCQl9 LAogCX0sCiAKKwknQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxJyA9PiB7 CisJCWNyZWF0ZV9vcmRlciA9PiA3MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDT01NRU5UIE9OIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEKKwkJCQkJICAgSVMgXCdjb21tZW50IG9uIHZhcmlh YmxlXCc7JywKKwkJcmVnZXhwID0+CisJCSAgcXIvXlxRQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGUxIElTICdjb21tZW50IG9uIHZhcmlhYmxlJztcRS9tLAorCQlsaWtlID0+ IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlv bl9wcmVfZGF0YSAgICAgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVt cF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJ CX0sCisJfSwKKwogCSdDT1BZIHRlc3RfdGFibGUnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDQs CiAJCWNyZWF0ZV9zcWwgPT4gJ0lOU0VSVCBJTlRPIGR1bXBfdGVzdC50ZXN0X3RhYmxlIChjb2wx KSAnCkBAIC00MDc0LDYgKzQxMDEsMjMgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwkn Q1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJY2F0Y2hfYWxsICAgID0+ICdD UkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIEFTIGludGVnZXI7JywK KwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJs ZTEgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1 bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJ dW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9k dW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0 X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVB VEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CkBAIC00NTM4LDYgKzQ1ODIsMjUgQEAgbXkgJXRl c3RzID0gKAogCQlsaWtlID0+IHt9LAogCX0sCiAKKwknR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxF IGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDczLAorCQljcmVh dGVfc3FsID0+CisJCSAgJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFi bGUxIFRPIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxR R1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19k dW1wX3Rlc3Rfcm9sZTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJ CQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9 LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlu b19wcml2cyAgICAgICAgICAgICAgICAgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAg ICA9PiAxLAorCQl9LAorCX0sCisKIAknUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBtYXR2aWV3 JyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eXFFSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIGR1bXBf dGVzdC5tYXR2aWV3O1xFL20sCiAJCWxpa2UgPT4KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5k ZXggNzhjYzgzNzJkMzMuLjAwMjkxYjRmMzhlIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApA QCAtMzIyMSw2ICszMjIxLDcgQEAgVmFyU3RyaW5nCiBWYXJTdHJpbmdTb3J0U3VwcG9ydAogVmFy aWFibGUKIFZhcmlhYmxlQXNzaWduSG9vaworVmFyaWFibGVJbmZvCiBWYXJpYWJsZVNldEtpbmQK IFZhcmlhYmxlU2V0U3RtdAogVmFyaWFibGVTaG93U3RtdAotLSAKMi41MS4xCgo= --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0006-session-variable-fences-parsing.patch" Content-Disposition: attachment; filename="v20251110-0006-session-variable-fences-parsing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5di9 RnJvbSBhMWIwN2EzZDVmMzYxNWZiYjA5MDZjY2VlYTZhM2IzZmMzYWVhOGFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMzAgTWF5IDIwMjUgMDc6Mjc6MjcgKzAyMDAKU3ViamVjdDogW1BBVENIIDA2 LzE1XSBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBwYXJzaW5nCgpUaGUgc2Vzc2lvbiB2YXJpYWJs ZXMgY2FuIGJlIHVzZWQgaW4gcXVlcnkgb25seSBpbnNpZGUgdGhlIHZhcmlhYmxlIGZlbmNlLgpU aGlzIGlzIHNwZWNpYWwgc3ludGF4IFZBUklBQkxFKHZhcm5hbWUpLCB0aGF0IGVsaW1pbmF0ZXMg YSByaXNrIG9mCmNvbGxpc2lvbiBiZXR3ZWVuIHZhcmlhYmxlIGFuZCBjb2x1bW4gaWRlbnRpZmll ci4KClRoZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW5ub3QgYmUgdXNlZCBhcyBwYXJhbWV0ZXJzIG9m IENBTEwgb3IgRVhFQ1VURQpjb21tYW5kcy4gVGhlc2UgY29tbWFuZHMgZXZhbHVhdGVzIGFyZ3Vt ZW50cyBieSBkaXJlY3QgY2FsbCBvZiBleHByZXNzaW9uCmV4ZWN1dG9yLCBhbmQgZGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKd2lsbCBi ZSBpbXBsZW1lbnRlZCBsYXRlciAoaW4gbmV4dCBzdGVwKS4KLS0tCiBkb2Mvc3JjL3NnbWwvZGRs LnNnbWwgICAgICAgICAgICAgICB8ICAxMSArKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3Bh Y2UuYyAgICAgfCAyODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHJlcGFyZS5jICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMgICAgICAgfCAgIDYgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAg fCAgIDcgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgfCAgMjggKystCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICB8IDIwOCArKysrKysrKysrKysrKysr KysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3J1bGV1dGlscy5jICAgfCAgNDYgKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xz eXNjYWNoZS5jIHwgIDI0ICsrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCAgICAg fCAgIDIgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgfCAgMTIgKysKIHNy Yy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9ub2RlLmggICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNo ZS5oICAgICAgIHwgICA0ICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAgIHwg ICAzICstCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICB8ICAgMSArCiAxOCBm aWxlcyBjaGFuZ2VkLCA2NTkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXgg OThkN2MyMTIwYjEuLjkxMDk4OWE3YWFlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01Njg4LDYgKzU2ODgsMTcgQEAgRVhQ TEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9 IERBVEUgJzIwMDgtMDEtMDEnOwogICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlIGhvbGRzIHZhbHVl IGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBwcml2YXRlCiAgICAgdG8gZWFjaCBz ZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNzaW9uIGVuZHMuCiAgICA8L3BhcmE+ CisKKyAgIDxwYXJhPgorICAgIEluIGFuIHF1ZXJ5IHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBi ZSB1c2VkIG9ubHkgaW5zaWRlCisgICAgPGZpcnN0dGVybT52YXJpYWJsZSBmZW5jZTwvZmlyc3R0 ZXJtPi4gVGhpcyBpcyBzcGVjaWFsIHN5bnRheCBmb3IKKyAgICBzZXNzaW9uIHZhcmlhYmxlIGlk ZW50aWZpZXIsIGFuZCBjYW4gYmUgdXNlZCBvbmx5IGZvciBzZXNzaW9uIHZhcmlhYmxlCisgICAg aWRlbnRpZmllci4gVGhlIHNwZWNpYWwgc3ludGF4IGZvciBhY2Nlc3Npbmcgc2Vzc2lvbiB2YXJp YWJsZXMgcmVtb3ZlcworICAgIHJpc2sgb2YgY29sbGlzaW9ucyBiZXR3ZWVuIHZhcmlhYmxlIGlk ZW50aWZpZXJzIGFuZCBjb2x1bW4gbmFtZXMuCis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1QgVkFS SUFCTEUoY3VycmVudF91c2VyX2lkKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CiAg IDwvc2VjdDE+CiAKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMKaW5kZXggODAwZjM3ZGMyZWEuLmIyMGQyMDc0MzgyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNl LmMKQEAgLTM1NjcsNiArMzU2NywyOTUgQEAgTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcykKIAly ZXR1cm4gcmVzdWx0OwogfQogCisvKiAtLS0tLQorICogSWRlbnRpZnlWYXJpYWJsZSAtIHRyeSB0 byBmaW5kIGEgdmFyaWFibGUgZnJvbSBhIGxpc3Qgb2YgaWRlbnRpZmllcnMKKyAqCisgKiBSZXR1 cm5zIHRoZSBPSUQgb2YgdGhlIHZhcmlhYmxlIGZvdW5kLCBvciBJbnZhbGlkT2lkLgorICoKKyAq ICJuYW1lcyIgaXMgYSBsaXN0IG9mIHVwIHRvIGZvdXIgaWRlbnRpZmllcnM7IHBvc3NpYmxlIG1l YW5pbmdzIGFyZToKKyAqIC0gdmFyaWFibGUgIChzZWFyY2hlZCBvbiB0aGUgc2VhcmNoX3BhdGgp CisgKiAtIHNjaGVtYS52YXJpYWJsZQorICogLSB2YXJpYWJsZS5hdHRyaWJ1dGUgIChzZWFyY2hl ZCBvbiB0aGUgc2VhcmNoX3BhdGgpCisgKiAtIHNjaGVtYS52YXJpYWJsZS5hdHRyaWJ1dGUKKyAq IC0gZGF0YWJhc2Uuc2NoZW1hLnZhcmlhYmxlCisgKiAtIGRhdGFiYXNlLnNjaGVtYS52YXJpYWJs ZS5hdHRyaWJ1dGUKKyAqCisgKiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHdheSB0byBpZGVu dGlmeSBhIHZhcmlhYmxlLCAibm90X3VuaXF1ZSIgd2lsbCBiZQorICogc2V0IHRvIHRydWUuCisg KgorICogVW5sZXNzICJub2Vycm9yIiBpcyB0cnVlLCBhbiBlcnJvciBpcyByYWlzZWQgaWYgdGhl cmUgYXJlIG1vcmUgdGhhbiBmb3VyCisgKiAgaWRlbnRpZmllcnMgaW4gdGhlIGxpc3QsIG9yIGlm IHRoZSBuYW1lZCBkYXRhYmFzZSBpcyBub3QgdGhlIGN1cnJlbnQgb25lLgorICogVGhpcyBpcyB1 c2VmdWwgaWYgd2Ugd2FudCB0byBpZGVudGlmeSBhIHNoYWRvd2VkIHZhcmlhYmxlLgorICoKKyAq IElmIGFuIGF0dHJpYnV0ZSBpcyBpZGVudGlmaWVkLCBpdCBpcyBzdG9yZWQgaW4gImF0dHJuYW1l Iiwgb3RoZXJ3aXNlIHRoZQorICogcGFyYW1ldGVyIGlzIHNldCB0byBOVUxMLgorICoKKyAqIFRo ZSBpZGVudGlmaWVkIHNlc3Npb24gdmFyaWFibGUgd2lsbCBiZSBsb2NrZWQgd2l0aCBhbiBBY2Nl c3NTaGFyZUxvY2suCisgKiAtLS0tLQorICovCitPaWQKK0lkZW50aWZ5VmFyaWFibGUoTGlzdCAq bmFtZXMsIGNoYXIgKiphdHRybmFtZSwgYm9vbCAqbm90X3VuaXF1ZSwgYm9vbCBub2Vycm9yKQor eworCU9pZAkJCXZhcmlkID0gSW52YWxpZE9pZDsKKwlPaWQJCQlvbGRfdmFyaWQgPSBJbnZhbGlk T2lkOworCXVpbnQ2NAkJaW52YWxfY291bnQ7CisJYm9vbAkJcmV0cnkgPSBmYWxzZTsKKworCS8q CisJICogRERMIG9wZXJhdGlvbnMgY2FuIGNoYW5nZSB0aGUgcmVzdWx0cyBvZiBhIG5hbWUgbG9v a3VwLiAgU2luY2UgYWxsIHN1Y2gKKwkgKiBvcGVyYXRpb25zIHdpbGwgZ2VuZXJhdGUgaW52YWxp ZGF0aW9uIG1lc3NhZ2VzLCB3ZSBrZWVwIHRyYWNrIG9mCisJICogd2hldGhlciBhbnkgc3VjaCBt ZXNzYWdlcyBzaG93IHVwIHdoaWxlIHdlJ3JlIHBlcmZvcm1pbmcgdGhlIG9wZXJhdGlvbiwKKwkg KiBhbmQgcmV0cnkgdW50aWwgZWl0aGVyICgxKSBubyBtb3JlIGludmFsaWRhdGlvbiBtZXNzYWdl cyBzaG93IHVwIG9yICgyKQorCSAqIHRoZSBhbnN3ZXIgZG9lc24ndCBjaGFuZ2UuCisJICovCisJ Zm9yICg7OykKKwl7CisJCU5vZGUJICAgKmZpZWxkMSA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxk MiA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxkMyA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxkNCA9 IE5VTEw7CisJCWNoYXIJICAgKmEgPSBOVUxMOworCQljaGFyCSAgICpiID0gTlVMTDsKKwkJY2hh cgkgICAqYyA9IE5VTEw7CisJCWNoYXIJICAgKmQgPSBOVUxMOworCQlPaWQJCQl2YXJvaWRfd2l0 aG91dF9hdHRyID0gSW52YWxpZE9pZDsKKwkJT2lkCQkJdmFyb2lkX3dpdGhfYXR0ciA9IEludmFs aWRPaWQ7CisKKwkJKm5vdF91bmlxdWUgPSBmYWxzZTsKKwkJKmF0dHJuYW1lID0gTlVMTDsKKwkJ dmFyaWQgPSBJbnZhbGlkT2lkOworCisJCWludmFsX2NvdW50ID0gU2hhcmVkSW52YWxpZE1lc3Nh Z2VDb3VudGVyOworCisJCXN3aXRjaCAobGlzdF9sZW5ndGgobmFtZXMpKQorCQl7CisJCQljYXNl IDE6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCisJCQkJQXNzZXJ0KElzQShmaWVs ZDEsIFN0cmluZykpOworCisJCQkJdmFyaWQgPSBMb29rdXBWYXJpYWJsZShOVUxMLCBzdHJWYWwo ZmllbGQxKSwgdHJ1ZSk7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgMjoKKwkJCQlmaWVsZDEgPSBs aW5pdGlhbChuYW1lcyk7CisJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisKKwkJCQlBc3Nl cnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCisJCQkJ aWYgKElzQShmaWVsZDIsIFN0cmluZykpCisJCQkJeworCQkJCQkvKiB3aGVuIGJvdGggZmllbGRz IGFyZSBvZiBzdHJpbmcgdHlwZSAqLworCQkJCQliID0gc3RyVmFsKGZpZWxkMik7CisKKwkJCQkJ LyoKKwkJCQkJICogYS5iIGNhbiBtZWFuICJzY2hlbWEiLiJ2YXJpYWJsZSIgb3IKKwkJCQkJICog InZhcmlhYmxlIi4iYXR0cmlidXRlIi4gIENoZWNrIGJvdGggdmFyaWFudHMsIGFuZAorCQkJCQkg KiByZXR1cm5zIEludmFsaWRPaWQgd2l0aCBub3RfdW5pcXVlIGZsYWcsIHdoZW4gYm90aAorCQkJ CQkgKiBpbnRlcnByZXRhdGlvbnMgYXJlIHBvc3NpYmxlLgorCQkJCQkgKi8KKwkJCQkJdmFyb2lk X3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGEsIGIsIHRydWUpOworCQkJCQl2YXJvaWRf d2l0aF9hdHRyID0gTG9va3VwVmFyaWFibGUoTlVMTCwgYSwgdHJ1ZSk7CisJCQkJfQorCQkJCWVs c2UKKwkJCQl7CisJCQkJCS8qIHRoZSBsYXN0IGZpZWxkIG9mIGxpc3QgY2FuIGJlIHN0YXIgdG9v ICovCisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBBX1N0YXIpKTsKKworCQkJCQkvKgorCQkJCQkg KiBUaGUgc3ludGF4IGlkZW50LiogaXMgdXNlZCBvbmx5IGJ5IHJlbGF0aW9uIGFsaWFzZXMsCisJ CQkJCSAqIGFuZCB0aGVuIHRoaXMgaWRlbnRpZmllciBjYW5ub3QgYmUgYSByZWZlcmVuY2UgdG8K KwkJCQkJICogc2Vzc2lvbiB2YXJpYWJsZS4KKwkJCQkJICovCisJCQkJCXJldHVybiBJbnZhbGlk T2lkOworCQkJCX0KKworCQkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpICYm IE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJeworCQkJCQkqbm90X3VuaXF1ZSA9 IHRydWU7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQl9CisJCQkJZWxz ZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSkKKwkJCQl7CisJCQkJCXZhcmlk ID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQl9CisJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2 YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSphdHRybmFtZSA9IGI7CisJCQkJCXZhcmlk ID0gdmFyb2lkX3dpdGhfYXR0cjsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgMzoKKwkJ CQl7CisJCQkJCWJvb2wJCWZpZWxkMV9pc19jYXRhbG9nID0gZmFsc2U7CisKKwkJCQkJZmllbGQx ID0gbGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwkJCQkJ ZmllbGQzID0gbHRoaXJkKG5hbWVzKTsKKworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5n KSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBTdHJpbmcpKTsKKworCQkJCQlhID0gc3RyVmFs KGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKworCQkJCQlpZiAoSXNBKGZpZWxk MywgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJYyA9IHN0clZhbChmaWVsZDMpOworCisJCQkJCQkv KgorCQkJCQkJICogYS5iLmMgY2FuIG1lYW4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb3IKKwkJ CQkJCSAqIHNjaGVtYS52YXJpYWJsZS5hdHRyaWJ1dGUuCisJCQkJCQkgKgorCQkJCQkJICogQ2hl Y2sgYm90aCB2YXJpYW50cywgYW5kIHNldCBub3RfdW5pcXVlIGZsYWcsIHdoZW4KKwkJCQkJCSAq IGJvdGggaW50ZXJwcmV0YXRpb25zIGFyZSBwb3NzaWJsZS4KKwkJCQkJCSAqCisJCQkJCQkgKiBX aGVuIHRoaXJkIG5vZGUgaXMgc3Rhciwgb25seSBwb3NzaWJsZQorCQkJCQkJICogaW50ZXJwcmV0 YXRpb24gaXMgc2NoZW1hLnZhcmlhYmxlLiosIGJ1dCB0aGlzCisJCQkJCQkgKiBwYXR0ZXJuIGlz IG5vdCBzdXBwb3J0ZWQgbm93LgorCQkJCQkJICovCisJCQkJCQl2YXJvaWRfd2l0aF9hdHRyID0g TG9va3VwVmFyaWFibGUoYSwgYiwgdHJ1ZSk7CisKKwkJCQkJCS8qCisJCQkJCQkgKiBjaGVjayBw YXR0ZXJuIGNhdGFsb2cuc2NoZW1hLnZhcmlhYmxlIG9ubHkgd2hlbgorCQkJCQkJICogdGhlcmUg aXMgcG9zc2liaWxpdHkgdG8gc3VjY2Vzcy4KKwkJCQkJCSAqLworCQkJCQkJaWYgKHN0cmNtcChh LCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSA9PSAwKQorCQkJCQkJeworCQkJCQkJ CWZpZWxkMV9pc19jYXRhbG9nID0gdHJ1ZTsKKwkJCQkJCQl2YXJvaWRfd2l0aG91dF9hdHRyID0g TG9va3VwVmFyaWFibGUoYiwgYywgdHJ1ZSk7CisJCQkJCQl9CisJCQkJCX0KKwkJCQkJZWxzZQor CQkJCQl7CisJCQkJCQlBc3NlcnQoSXNBKGZpZWxkMywgQV9TdGFyKSk7CisJCQkJCQlyZXR1cm4g SW52YWxpZE9pZDsKKwkJCQkJfQorCisJCQkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0 X2F0dHIpICYmIE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJCXsKKwkJCQkJCSpu b3RfdW5pcXVlID0gdHJ1ZTsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJ CQkJfQorCQkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpKQorCQkJ CQl7CisJCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxz ZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQkJeworCQkJCQkJKmF0dHJu YW1lID0gYzsKKwkJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhfYXR0cjsKKwkJCQkJfQorCisJCQkJ CS8qCisJCQkJCSAqIFdoZW4gd2UgZGlkbid0IGZpbmQgdmFyaWFibGUsIHdlIGNhbiAod2hlbiBp dCBpcworCQkJCQkgKiBhbGxvd2VkKSByYWlzZSBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2UgZXJy b3IuCisJCQkJCSAqLworCQkJCQlpZiAoIU9pZElzVmFsaWQodmFyaWQpICYmICFub2Vycm9yICYm ICFmaWVsZDFfaXNfY2F0YWxvZykKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkJIGVycm1zZygiY3Jv c3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJCQkJ CQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQlj YXNlIDQ6CisJCQkJeworCQkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJCWZpZWxk MiA9IGxzZWNvbmQobmFtZXMpOworCQkJCQlmaWVsZDMgPSBsdGhpcmQobmFtZXMpOworCQkJCQlm aWVsZDQgPSBsZm91cnRoKG5hbWVzKTsKKworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5n KSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQyLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShm aWVsZDMsIFN0cmluZykpOworCisJCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJYiA9IHN0 clZhbChmaWVsZDIpOworCQkJCQljID0gc3RyVmFsKGZpZWxkMyk7CisKKwkJCQkJLyoKKwkJCQkJ ICogSW4gdGhpcyBjYXNlLCAiYSIgaXMgdXNlZCBhcyBjYXRhbG9nIG5hbWUgLSBjaGVjayBpdC4K KwkJCQkJICovCisJCQkJCWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFz ZUlkKSkgIT0gMCkKKwkJCQkJeworCQkJCQkJaWYgKCFub2Vycm9yKQorCQkJCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJCQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1w bGVtZW50ZWQ6ICVzIiwKKwkJCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJ CQkJCX0KKworCQkJCQlpZiAoSXNBKGZpZWxkNCwgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJZCA9 IHN0clZhbChmaWVsZDQpOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNzZXJ0 KElzQShmaWVsZDQsIEFfU3RhcikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCX0K KworCQkJCQkqYXR0cm5hbWUgPSBkOworCQkJCQl2YXJpZCA9IExvb2t1cFZhcmlhYmxlKGIsIGMs IHRydWUpOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJZGVmYXVsdDoKKwkJCQlpZiAoIW5vZXJy b3IpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhf RVJST1IpLAorCQkJCQkJCSBlcnJtc2coImltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFu eSBkb3R0ZWQgbmFtZXMpOiAlcyIsCisJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkp KTsKKwkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJfQorCisJCS8qCisJCSAqIElmLCB1cG9uIHJl dHJ5LCB3ZSBnZXQgYmFjayB0aGUgc2FtZSBPSUQgd2UgZGlkIGxhc3QgdGltZSwgdGhlbiB0aGUK KwkJICogaW52YWxpZGF0aW9uIG1lc3NhZ2VzIHdlIHByb2Nlc3NlZCBkaWQgbm90IGNoYW5nZSB0 aGUgZmluYWwgYW5zd2VyLgorCQkgKiBTbyB3ZSdyZSBkb25lLgorCQkgKgorCQkgKiBJZiB3ZSBn b3QgYSBkaWZmZXJlbnQgT0lELCB3ZSd2ZSBsb2NrZWQgdGhlIHZhcmlhYmxlIHRoYXQgdXNlZCB0 bworCQkgKiBoYXZlIHRoaXMgbmFtZSByYXRoZXIgdGhhbiB0aGUgb25lIHRoYXQgZG9lcyBub3cu ICBTbyByZWxlYXNlIHRoZQorCQkgKiBsb2NrLgorCQkgKi8KKwkJaWYgKHJldHJ5KQorCQl7CisJ CQlpZiAob2xkX3ZhcmlkID09IHZhcmlkKQorCQkJCWJyZWFrOworCisJCQlpZiAoT2lkSXNWYWxp ZChvbGRfdmFyaWQpKQorCQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25J ZCwgb2xkX3ZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQl9CisKKwkJLyoKKwkJICogTG9j ayB0aGUgdmFyaWFibGUuICBUaGlzIHdpbGwgYWxzbyBhY2NlcHQgYW55IHBlbmRpbmcgaW52YWxp ZGF0aW9uCisJCSAqIG1lc3NhZ2VzLiAgSWYgd2UgZ290IGJhY2sgSW52YWxpZE9pZCwgaW5kaWNh dGluZyBub3QgZm91bmQsIHRoZW4KKwkJICogdGhlcmUncyBub3RoaW5nIHRvIGxvY2ssIGJ1dCB3 ZSBhY2NlcHQgaW52YWxpZGF0aW9uIG1lc3NhZ2VzCisJCSAqIGFueXdheSwgdG8gZmx1c2ggYW55 IG5lZ2F0aXZlIGNhdGNhY2hlIGVudHJpZXMgdGhhdCBtYXkgYmUKKwkJICogbGluZ2VyaW5nLgor CQkgKi8KKwkJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCUFjY2VwdEludmFsaWRhdGlvbk1l c3NhZ2VzKCk7CisJCWVsc2UKKwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9u SWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJCS8qCisJCSAqIElmIG5vIGludmFs aWRhdGlvbiBtZXNzYWdlIHdlcmUgcHJvY2Vzc2VkLCB3ZSdyZSBkb25lIQorCQkgKi8KKwkJaWYg KGludmFsX2NvdW50ID09IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcikKKwkJCWJyZWFrOwor CisJCXJldHJ5ID0gdHJ1ZTsKKwkJb2xkX3ZhcmlkID0gdmFyaWQ7CisJCXZhcmlkID0gSW52YWxp ZE9pZDsKKwl9CisKKwlyZXR1cm4gdmFyaWQ7Cit9CisKIC8qCiAgKiBEZWNvbnN0cnVjdFF1YWxp ZmllZE5hbWUKICAqCQlHaXZlbiBhIHBvc3NpYmx5LXF1YWxpZmllZCBuYW1lIGV4cHJlc3NlZCBh cyBhIGxpc3Qgb2YgU3RyaW5nIG5vZGVzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDM0YjY0 MTBkNmEyLi5mY2FkY2Q5YmMzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwpAQCAtMzQxLDYgKzM0 MSwxNCBAQCBFdmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUsIFByZXBhcmVkU3RhdGVt ZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJLyoKKwkgKiBUaGUgYXJn dW1lbnRzIG9mIEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVjdCBleHByZXNzaW9uIGV4 ZWN1dG9yCisJICogY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBvcnQgc2Vzc2lvbiB2YXJp YWJsZXMgeWV0LiBJdCB3aWxsIGJlCisJICogZW5hYmxlZCBsYXRlci4gVGhpcyBjYXNlIHNob3Vs ZCBiZSBibG9ja2VkIHBhcnNlciBieQorCSAqIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJp YWJsZXMsIHNvIG9ubHkgYXNzZXJ0aW9ucyBpcyB1c2VkIGhlcmUuCisJICovCisJQXNzZXJ0KCFw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyk7CisKIAkvKiBQcmVwYXJlIHRoZSBleHByZXNz aW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhwcnN0YXRlcyA9IEV4ZWNQcmVwYXJlRXhwckxpc3Qo cGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVu Y3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGVkZTgzOGNkNDBjLi5j NzYxZmRlNmFjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysr IGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTE2NjksNiArMTY2OSw5IEBAIGV4 cHJMb2NhdGlvbihjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfUGFyYW1SZWY6CiAJCQlsb2Mg PSAoKGNvbnN0IFBhcmFtUmVmICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFrOworCQljYXNl IFRfVmFyaWFibGVGZW5jZToKKwkJCWxvYyA9ICgoY29uc3QgVmFyaWFibGVGZW5jZSAqKSBleHBy KS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0FfQ29uc3Q6CiAJCQlsb2MgPSAoKGNv bnN0IEFfQ29uc3QgKikgZXhwciktPmxvY2F0aW9uOwogCQkJYnJlYWs7CkBAIC00NzAxLDYgKzQ3 MDQsOSBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJ CXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgor CQkJLyogd2UgYXNzdW1lIHRoZSBmaWVsZHMgY29udGFpbiBub3RoaW5nIGludGVyZXN0aW5nICov CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9k ZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcobm9kZSkpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMK aW5kZXggM2IzOTJiMDg0YWQuLmMzODk3YWFmZDIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTYx OCw2ICs2MTgsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVs ZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRv d0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwog CXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlh YmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2Nv bGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xMDQzLDYgKzEwNDQsNyBAQCB0cmFuc2Zvcm1J bnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5zZXJ0U3RtdCAqc3RtdCkKIAogCXFyeS0+ aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlu a3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0g cHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9u cyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE1MjYsNiArMTUyOCw3IEBAIHRyYW5zZm9ybVNlbGVjdFN0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10LAogCXFyeS0+aGFzV2luZG93 RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0g cHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0Fn Z3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJp YWJsZXM7CiAKIAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tpbmdDbGF1c2UpCiAJewpAQCAtMTc1Miw2 ICsxNzU1LDcgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2Vs ZWN0U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9q b2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1Ykxp bmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFy aWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0y MDAzLDYgKzIwMDcsNyBAQCB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5w X2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJn ZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vz c2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFj aChsLCBsb2NraW5nQ2xhdXNlKQogCXsKQEAgLTI0NzUsNiArMjQ4MCw3IEBAIHRyYW5zZm9ybVJl dHVyblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFz V2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRT UkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5w X2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Np b25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAK QEAgLTI1NDIsNiArMjU0OCw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5w X2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5r czsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlh YmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKaW5kZXggMTUxMDU1MWUwM2MuLmY1YzJmMTUxNzUyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTUzMiw3 ICs1MzIsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPG5vZGU+CWRlZl9hcmcg Y29sdW1uRWxlbSB3aGVyZV9jbGF1c2Ugd2hlcmVfb3JfY3VycmVudF9jbGF1c2UKIAkJCQlhX2V4 cHIgYl9leHByIGNfZXhwciBBZXhwckNvbnN0IGluZGlyZWN0aW9uX2VsIG9wdF9zbGljZV9ib3Vu ZAogCQkJCWNvbHVtbnJlZiBoYXZpbmdfY2xhdXNlIGZ1bmNfdGFibGUgeG1sdGFibGUgYXJyYXlf ZXhwcgotCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcKKwkJCQlPcHRXaGVyZUNs YXVzZSBvcGVyYXRvcl9kZWZfYXJnIHZhcmlhYmxlX2ZlbmNlCiAldHlwZSA8bGlzdD4Jb3B0X2Nv bHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBlIDxsaXN0Pglyb3dzZnJvbV9pdGVtIHJvd3Nmcm9t X2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAogJXR5cGUgPGJvb2xlYW4+IG9wdF9vcmRpbmFsaXR5IG9w dF93aXRob3V0X292ZXJsYXBzCkBAIC04ODgsNyArODg4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VS ZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1 ZXJ5KTsKICAqLwogJW5vbmFzc29jCVVOQk9VTkRFRCBORVNURUQgLyogaWRlYWxseSB3b3VsZCBo YXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAqLwogJW5vbmFzc29jCUlERU5UIFBBUlRJVElP TiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJTkcgRk9MTE9XSU5HIENVQkUgUk9MTFVQCi0JCQlT RVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRIIFdJVEhPVVQgUEFUSAorCQkJU0VU IEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VUIFBBVEggVkFSSUFCTEUK ICVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVsdGktY2hhcmFjdGVyIG9wcyBhbmQgdXNlci1kZWZp bmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScrJyAnLScKICVsZWZ0CQknKicgJy8nICclJwpAQCAt MTU3NzAsNiArMTU3NzAsMTkgQEAgY19leHByOgkJY29sdW1ucmVmCQkJCQkJCQl7ICQkID0gJDE7 IH0KIAkJCQkJZWxzZQogCQkJCQkJJCQgPSAkMjsKIAkJCQl9CisJCQl8IHZhcmlhYmxlX2ZlbmNl IG9wdF9pbmRpcmVjdGlvbgorCQkJCXsKKwkJCQkJaWYgKCQyKQorCQkJCQl7CisJCQkJCQlBX0lu ZGlyZWN0aW9uICpuID0gbWFrZU5vZGUoQV9JbmRpcmVjdGlvbik7CisKKwkJCQkJCW4tPmFyZyA9 IChOb2RlICopICQxOworCQkJCQkJbi0+aW5kaXJlY3Rpb24gPSBjaGVja19pbmRpcmVjdGlvbigk MiwgeXlzY2FubmVyKTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQkJfQorCQkJCQllbHNl CisJCQkJCQkkJCA9ICQxOworCQkJCX0KIAkJCXwgY2FzZV9leHByCiAJCQkJeyAkJCA9ICQxOyB9 CiAJCQl8IGZ1bmNfZXhwcgpAQCAtMTcxNzIsNiArMTcxODUsMTcgQEAgY2FzZV9hcmc6CWFfZXhw cgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxM OyB9CiAJCTsKIAordmFyaWFibGVfZmVuY2U6CisJCQlWQVJJQUJMRSAnKCcgYW55X25hbWUgJykn CisJCQkJeworCQkJCQlWYXJpYWJsZUZlbmNlICp2ZiA9IG1ha2VOb2RlKFZhcmlhYmxlRmVuY2Up OworCisJCQkJCXZmLT52YXJuYW1lID0gJDM7CisJCQkJCXZmLT5sb2NhdGlvbiA9IEAzOworCQkJ CQkkJCA9IChOb2RlICopIHZmOworCQkJCX0KKwkJOworCiBjb2x1bW5yZWY6CUNvbElkCiAJCQkJ ewogCQkJCQkkJCA9IG1ha2VDb2x1bW5SZWYoJDEsIE5JTCwgQDEsIHl5c2Nhbm5lcik7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYwppbmRleCAzMmQ2YWU5MThjYS4uOGIzMmY3NGRlMjMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgi CiAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9u YW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgpAQCAtNzcsNiArNzgs NyBAQCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtV2hvbGVSb3dSZWYoUGFyc2VTdGF0ZSAqcHN0YXRl LAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1UeXBlQ2FzdChQYXJz ZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29s bGF0ZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIENvbGxhdGVDbGF1c2UgKmMpOworc3RhdGlj IE5vZGUgKnRyYW5zZm9ybVZhcmlhYmxlRmVuY2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBWYXJpYWJs ZUZlbmNlICp2Zik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0cnVjdG9y KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJSnNvbk9iamVjdENvbnN0cnVjdG9yICpj dG9yKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uQXJyYXlDb25zdHJ1Y3RvcihQYXJzZVN0 YXRlICpwc3RhdGUsCkBAIC0xMDcsNyArMTA5LDkgQEAgc3RhdGljIEV4cHIgKm1ha2VfZGlzdGlu Y3Rfb3AoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcG5hbWUsCiAJCQkJCQkJICBOb2RlICps dHJlZSwgTm9kZSAqcnRyZWUsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqbWFrZV9udWxs dGVzdF9mcm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgQV9FeHBy ICpkaXN0aW5jdGEsIE5vZGUgKmFyZyk7Ci0KK3N0YXRpYyBOb2RlICptYWtlUGFyYW1TZXNzaW9u VmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJICBPaWQgdmFyaWQsIE9pZCB0 eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAorCQkJCQkJCQkJICBjaGFyICphdHRybmFt ZSwgaW50IGxvY2F0aW9uKTsKIAogLyoKICAqIHRyYW5zZm9ybUV4cHIgLQpAQCAtMzcxLDYgKzM3 NSwxMCBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIpCiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1Kc29uRnVuY0V4cHIocHN0YXRlLCAoSnNvbkZ1bmNF eHByICopIGV4cHIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQly ZXN1bHQgPSB0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKHBzdGF0ZSwgKFZhcmlhYmxlRmVuY2UgKikg ZXhwcik7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogc2hvdWxkIG5vdCByZWFjaCBo ZXJlICovCiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLCAoaW50 KSBub2RlVGFnKGV4cHIpKTsKQEAgLTkwNCw2ICs5MTIsMTM1IEBAIHRyYW5zZm9ybVBhcmFtUmVm KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpCiAJcmV0dXJuIHJlc3VsdDsKIH0K IAorLyoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBraW5kIGlzIHZh bGlkIGZvciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSB1 c2VkIGV2ZXJ5d2hlcmUgd2hlcmUgZXh0ZXJuYWwgcGFyYW1ldGVycyBjYW4gYmUKKyAqIHVzZWQu ICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IGFsbG93ZWQgaW4gRERMIGNvbW1hbmRzIG9yIGlu IGNvbnN0cmFpbnRzLgorICoKKyAqIEFuIGlkZW50aWZpZXIgY2FuIGJlIHBhcnNlZCBhcyBhIHNl c3Npb24gdmFyaWFibGUgb25seSBmb3IgZXhwcmVzc2lvbiBraW5kcworICogd2hlcmUgc2Vzc2lv biB2YXJpYWJsZXMgYXJlIGFsbG93ZWQuICBUaGlzIGlzIHRoZSBwcmltYXJ5IHVzYWdlIG9mIHRo aXMKKyAqIGZ1bmN0aW9uLgorICoKKyAqIFRoZSBzZWNvbmQgdXNhZ2Ugb2YgdGhpcyBmdW5jdGlv biBpcyB0byBkZWNpZGUgd2hldGhlciBhICJjb2x1bW4gZG9lcyBub3QKKyAqIGV4aXN0IiBvciBh ICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lcyBub3QgZXhpc3QiIGVycm9yIG1lc3NhZ2Ugc2hvdWxk IGJlCisgKiBwcmludGVkLiAgV2hlbiB3ZSBhcmUgaW4gYW4gZXhwcmVzc2lvbiB3aGVyZSBzZXNz aW9uIHZhcmlhYmxlcyBjYW5ub3QgYmUKKyAqIHVzZWQsIHdlIHJhaXNlIHRoZSBmaXJzdCBmb3Jt IG9mIGVycm9yIG1lc3NhZ2UuCisgKi8KK3N0YXRpYyBib29sCitleHByX2tpbmRfYWxsb3dzX3Nl c3Npb25fdmFyaWFibGVzKFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQpCit7CisJYm9vbAkJcmVz dWx0ID0gZmFsc2U7CisKKwlzd2l0Y2ggKHBfZXhwcl9raW5kKQorCXsKKwkJY2FzZSBFWFBSX0tJ TkRfTk9ORToKKwkJCUFzc2VydChmYWxzZSk7CQkvKiBjYW4ndCBoYXBwZW4gKi8KKwkJCXJldHVy biBmYWxzZTsKKworCQkJLyogc2Vzc2lvbiB2YXJpYWJsZXMgYWxsb3dlZCAqLworCQljYXNlIEVY UFJfS0lORF9PVEhFUjoKKwkJY2FzZSBFWFBSX0tJTkRfSk9JTl9PTjoKKwkJY2FzZSBFWFBSX0tJ TkRfRlJPTV9TVUJTRUxFQ1Q6CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fRlVOQ1RJT046CisJCWNh c2UgRVhQUl9LSU5EX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9IQVZJTkc6CisJCWNhc2UgRVhQ Ul9LSU5EX0ZJTFRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX1BBUlRJVElPTjoKKwkJY2Fz ZSBFWFBSX0tJTkRfV0lORE9XX09SREVSOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVf UkFOR0U6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9ST1dTOgorCQljYXNlIEVYUFJf S0lORF9XSU5ET1dfRlJBTUVfR1JPVVBTOgorCQljYXNlIEVYUFJfS0lORF9TRUxFQ1RfVEFSR0VU OgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9VUERB VEVfU09VUkNFOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9XSEVOOgorCQljYXNlIEVYUFJfS0lO RF9NRVJHRV9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX0dST1VQX0JZOgorCQljYXNlIEVY UFJfS0lORF9PUkRFUl9CWToKKwkJY2FzZSBFWFBSX0tJTkRfRElTVElOQ1RfT046CisJCWNhc2Ug RVhQUl9LSU5EX0xJTUlUOgorCQljYXNlIEVYUFJfS0lORF9PRkZTRVQ6CisJCWNhc2UgRVhQUl9L SU5EX1JFVFVSTklORzoKKwkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTOgorCQljYXNlIEVYUFJfS0lO RF9WQUxVRVNfU0lOR0xFOgorCQkJcmVzdWx0ID0gdHJ1ZTsKKwkJCWJyZWFrOworCisJCQkvKiBz ZXNzaW9uIHZhcmlhYmxlcyBub3QgYWxsb3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9JTlNFUlRf VEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9FWEVDVVRFX1BBUkFNRVRFUjoKKwkJY2FzZSBFWFBS X0tJTkRfQ0FMTF9BUkdVTUVOVDoKKwkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoK KwkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DT0xVTU5f REVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBS X0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfUFJFRElDQVRF OgorCQljYXNlIEVYUFJfS0lORF9TVEFUU19FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9U UklHR0VSX1dIRU46CisJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9CT1VORDoKKwkJY2FzZSBF WFBSX0tJTkRfUEFSVElUSU9OX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRF RF9DT0xVTU46CisJCWNhc2UgRVhQUl9LSU5EX0pPSU5fVVNJTkc6CisJCWNhc2UgRVhQUl9LSU5E X0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FMVEVSX0NPTF9UUkFOU0ZPUk06CisJCWNh c2UgRVhQUl9LSU5EX1BPTElDWToKKwkJY2FzZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKKwkJCXJl c3VsdCA9IGZhbHNlOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKworc3Rh dGljIE5vZGUgKgordHJhbnNmb3JtVmFyaWFibGVGZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIFZh cmlhYmxlRmVuY2UgKnZmKQoreworCU5vZGUJICAgKnJlc3VsdDsKKwlPaWQJCQl2YXJpZCA9IElu dmFsaWRPaWQ7CisJY2hhcgkgICAqYXR0cm5hbWUgPSBOVUxMOworCWJvb2wJCW5vdF91bmlxdWU7 CisKKwkvKiBWYXJpYWJsZUZlbmNlIGNhbiBiZSB1c2VkIG9ubHkgaW4gY29udGV4dCB3aGVuIHZh cmlhYmxlcyBhcmUgc3VwcG9ydGVkICovCisJaWYgKCFleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25f dmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJzZXNz aW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUiKSwKKwkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9uKSkpOworCisJLyogdGFrZXMgYW4g QWNjZXNzU2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJdmFyaWQgPSBJZGVu dGlmeVZhcmlhYmxlKHZmLT52YXJuYW1lLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7 CisKKwlpZiAobm90X3VuaXF1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX0FNQklHVU9VU19QQVJBTUVURVIpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUg cmVmZXJlbmNlIFwiJXNcIiBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyh2 Zi0+dmFybmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRp b24pKSk7CisKKwlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJeworCQlPaWQJCQl0eXBpZDsKKwkJ aW50MzIJCXR5cG1vZDsKKwkJT2lkCQkJY29sbGlkOworCisJCWdldF9zZXNzaW9uX3ZhcmlhYmxl X3R5cGVfdHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAorCQkJCQkJCQkJCQkJ JmNvbGxpZCk7CisKKwkJcmVzdWx0ID0gbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwK KwkJCQkJCQkJCQkgIHZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQsCisJCQkJCQkJCQkJICBh dHRybmFtZSwgdmYtPmxvY2F0aW9uKTsKKwl9CisJZWxzZQorCQllcmVwb3J0KEVSUk9SLAorCQkJ CShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSBcIiVzXCIgZG9lc24ndCBleGlzdCIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5n KHZmLT52YXJuYW1lKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHZmLT5sb2Nh dGlvbikpKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qIFRlc3Qgd2hldGhlciBhbiBhX2V4 cHIgaXMgYSBwbGFpbiBOVUxMIGNvbnN0YW50IG9yIG5vdCAqLwogc3RhdGljIGJvb2wKIGV4cHJJ c051bGxDb25zdGFudChOb2RlICphcmcpCkBAIC0zMTIzLDYgKzMyNjAsNzUgQEAgbWFrZV9udWxs dGVzdF9mcm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9FeHByICpkaXN0aW5jdGEs IE5vZGUgKmFyZykKIAlyZXR1cm4gKE5vZGUgKikgbnQ7CiB9CiAKKy8qCisgKiBHZW5lcmF0ZSBw YXJhbSB2YXJpYWJsZSBmb3IgcmVmZXJlbmNlIHRvIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3Rh dGljIE5vZGUgKgorbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwK KwkJCQkJCSBPaWQgdmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAor CQkJCQkJIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pCit7CisJUGFyYW0JICAgKnBhcmFt OworCisJcGFyYW0gPSBtYWtlTm9kZShQYXJhbSk7CisKKwlwYXJhbS0+cGFyYW1raW5kID0gUEFS QU1fVkFSSUFCTEU7CisJcGFyYW0tPnBhcmFtdmFyaWQgPSB2YXJpZDsKKwlwYXJhbS0+cGFyYW10 eXBlID0gdHlwaWQ7CisJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOworCXBhcmFtLT5wYXJh bWNvbGxpZCA9IGNvbGxpZDsKKworCXBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1 ZTsKKworCWlmIChhdHRybmFtZSAhPSBOVUxMKQorCXsKKwkJVHVwbGVEZXNjCXR1cGRlc2M7CisJ CWludAkJCWk7CisKKwkJdHVwZGVzYyA9IGxvb2t1cF9yb3d0eXBlX3R1cGRlc2Nfbm9lcnJvcih0 eXBpZCwgdHlwbW9kLCB0cnVlKTsKKwkJaWYgKCF0dXBkZXNjKQorCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2co InZhcmlhYmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlIFwiJXNcIiwgd2hpY2ggaXMgbm90IGEgY29t cG9zaXRlIHR5cGUiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisKKwkJZm9yIChpID0gMDsgaSA8IHR1cGRl c2MtPm5hdHRzOyBpKyspCisJCXsKKwkJCUZvcm1fcGdfYXR0cmlidXRlIGF0dCA9IFR1cGxlRGVz Y0F0dHIodHVwZGVzYywgaSk7CisKKwkJCWlmIChzdHJjbXAoYXR0cm5hbWUsIE5hbWVTdHIoYXR0 LT5hdHRuYW1lKSkgPT0gMCAmJgorCQkJCSFhdHQtPmF0dGlzZHJvcHBlZCkKKwkJCXsKKwkJCQkv KiBzdWNjZXNzLCBzbyBnZW5lcmF0ZSBhIEZpZWxkU2VsZWN0IGV4cHJlc3Npb24gKi8KKwkJCQlG aWVsZFNlbGVjdCAqZnNlbGVjdCA9IG1ha2VOb2RlKEZpZWxkU2VsZWN0KTsKKworCQkJCWZzZWxl Y3QtPmFyZyA9IChFeHByICopIHBhcmFtOworCQkJCWZzZWxlY3QtPmZpZWxkbnVtID0gaSArIDE7 CisJCQkJZnNlbGVjdC0+cmVzdWx0dHlwZSA9IGF0dC0+YXR0dHlwaWQ7CisJCQkJZnNlbGVjdC0+ cmVzdWx0dHlwbW9kID0gYXR0LT5hdHR0eXBtb2Q7CisJCQkJLyogc2F2ZSBhdHRyaWJ1dGUncyBj b2xsYXRpb24gZm9yIHBhcnNlX2NvbGxhdGUuYyAqLworCQkJCWZzZWxlY3QtPnJlc3VsdGNvbGxp ZCA9IGF0dC0+YXR0Y29sbGF0aW9uOworCisJCQkJUmVsZWFzZVR1cGxlRGVzYyh0dXBkZXNjKTsK KwkJCQlyZXR1cm4gKE5vZGUgKikgZnNlbGVjdDsKKwkJCX0KKwkJfQorCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkgZXJybXNn KCJjb3VsZCBub3QgaWRlbnRpZnkgY29sdW1uIFwiJXNcIiBpbiB2YXJpYWJsZSBcIiVzLiVzXCIi LAorCQkJCQkJYXR0cm5hbWUsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHZhcmlkKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkp OworCX0KKworCXJldHVybiAoTm9kZSAqKSBwYXJhbTsKK30KKwogLyoKICAqIFByb2R1Y2UgYSBz dHJpbmcgaWRlbnRpZnlpbmcgYW4gZXhwcmVzc2lvbiBieSBraW5kLgogICoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX21lcmdlLmMKaW5kZXggNTFkNzcwM2VmZjcuLjI0NGVmY2RkZjMyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfbWVyZ2UuYwpAQCAtNDA1LDYgKzQwNSw3IEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIE1lcmdlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9 IGZhbHNlOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5 LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAK IAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgzYi4uOGI1MjQwY2Q1NGIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdGFyZ2V0LmMKQEAgLTIwMzMsNiArMjAzMywxMyBAQCBGaWd1cmVDb2xuYW1lSW50ZXJu YWwoTm9kZSAqbm9kZSwgY2hhciAqKm5hbWUpCiAJCQkJCQkgKGludCkgKChKc29uRnVuY0V4cHIg Kikgbm9kZSktPm9wKTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToK KwkJCXsKKwkJCQkvKiByZXR1cm4gbGFzdCBmaWVsZCBuYW1lICovCisJCQkJKm5hbWUgPSBzdHJW YWwobGxhc3QoKChWYXJpYWJsZUZlbmNlICopIG5vZGUpLT52YXJuYW1lKSk7CisJCQkJcmV0dXJu IDI7CisJCQl9CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwogCX0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYwppbmRleCA1NTZhYjA1N2U1YS4uNWYzYzk5MDRhZjggMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BnX3N0YXRpc3RpY19leHQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFi bGVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1vbi9rZXl3b3Jkcy5oIgpAQCAtNTM0LDYgKzUzNSw3 IEBAIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9mdW5jdGlvbl9uYW1lKE9pZCBmdW5jaWQsIGludCBu YXJncywKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9vcGVyYXRvcl9uYW1lKE9pZCBvcGVyaWQsIE9p ZCBhcmcxLCBPaWQgYXJnMik7CiBzdGF0aWMgdm9pZCBhZGRfY2FzdF90byhTdHJpbmdJbmZvIGJ1 ZiwgT2lkIHR5cGlkKTsKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9xdWFsaWZpZWRfdHlwZV9uYW1l KE9pZCB0eXBpZCk7CitzdGF0aWMgY2hhciAqZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KE9pZCB2YXJpZCk7CiBzdGF0aWMgdGV4dCAqc3RyaW5nX3RvX3RleHQoY2hhciAqc3RyKTsKIHN0 YXRpYyBjaGFyICpmbGF0dGVuX3JlbG9wdGlvbnMoT2lkIHJlbGlkKTsKIHN0YXRpYyB2b2lkIGdl dF9yZWxvcHRpb25zKFN0cmluZ0luZm8gYnVmLCBEYXR1bSByZWxvcHRpb25zKTsKQEAgLTg4MTYs NiArODgxOCwxNCBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJzZV9jb250ZXh0 ICpjb250ZXh0KQogCQl9CiAJfQogCisJLyogdHJhbnNsYXRlIHBhcmFtdmFyaWQgdG8gc2Vzc2lv biB2YXJpYWJsZSBuYW1lICovCisJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFC TEUpCisJeworCQlhcHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIlZBUklBQkxFKCVzKSIs CisJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlk KSk7CisJCXJldHVybjsKKwl9CisKIAkvKgogCSAqIE5vdCBQQVJBTV9FWEVDLCBvciBjb3VsZG4n dCBmaW5kIHJlZmVyZW50OiBqdXN0IHByaW50ICROLgogCSAqCkBAIC0xMzYwMSw2ICsxMzYxMSw0 MiBAQCBnZW5lcmF0ZV9jb2xsYXRpb25fbmFtZShPaWQgY29sbGlkKQogCXJldHVybiByZXN1bHQ7 CiB9CiAKKy8qCisgKiBnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUKKyAqCQlDb21wdXRl IHRoZSBuYW1lIHRvIGRpc3BsYXkgZm9yIGEgc2Vzc2lvbiB2YXJpYWJsZSBzcGVjaWZpZWQgYnkg T0lECisgKgorICogVGhlIHJlc3VsdCBpbmNsdWRlcyBhbGwgbmVjZXNzYXJ5IHF1b3RpbmcgYW5k IHNjaGVtYS1wcmVmaXhpbmcuCisgKi8KK3N0YXRpYyBjaGFyICoKK2dlbmVyYXRlX3Nlc3Npb25f dmFyaWFibGVfbmFtZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3Zh cmlhYmxlIHZhcmZvcm07CisJY2hhcgkgICAqdmFybmFtZTsKKwljaGFyCSAgICpuc3BuYW1lOwor CWNoYXIJICAgKnJlc3VsdDsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwg T2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkp CisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZh cmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisK Kwl2YXJuYW1lID0gTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKworCWlmICghVmFyaWFibGVJ c1Zpc2libGUodmFyaWQpKQorCQluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAo dmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKwllbHNlCisJCW5zcG5hbWUgPSBOVUxMOworCisJcmVz dWx0ID0gcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwgdmFybmFtZSk7CisKKwlS ZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBHaXZl biBhIEMgc3RyaW5nLCBwcm9kdWNlIGEgVEVYVCBkYXR1bS4KICAqCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L2xzeXNjYWNoZS5jCmluZGV4IDFjNDAzMWVlYTIzLi5iOWIwYWM1NTQ3NSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTM5NDYsMyArMzk0NiwyNyBAQCBnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKQogCiAJcmV0dXJuIHZhcm5hbWVzcGFjZTsKIH0K KworLyoKKyAqIFJldHVybnMgdGhlIHR5cGUsIHR5cG1vZCBhbmQgY29sbGlkIG9mIHRoZSBnaXZl biBzZXNzaW9uIHZhcmlhYmxlLgorICovCit2b2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBl X3R5cG1vZF9jb2xsaWQoT2lkIHZhcmlkLCBPaWQgKnR5cGlkLCBpbnQzMiAqdHlwbW9kLAorCQkJ CQkJCQkJCU9pZCAqY29sbGlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJs ZSB2YXJmb3JtOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJ ZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxv ZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2 YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOwor CisJKnR5cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKwkqdHlwbW9kID0gdmFyZm9ybS0+dmFydHlw bW9kOworCSpjb2xsaWQgPSB2YXJmb3JtLT52YXJjb2xsYXRpb247CisKKwlSZWxlYXNlU3lzQ2Fj aGUodHVwKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IGQxMmMzYjk1N2I3Li41YWE4 NmIxZGI3MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xMTYsNiArMTE2LDggQEAgZXh0 ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlkRXh0ZW5kZWQoY29uc3QgY2hhciAqdHlwbmFtZSwgYm9v bCB0ZW1wX29rKTsKIGV4dGVybiBib29sIFR5cGVJc1Zpc2libGUoT2lkIHR5cGlkKTsKIAogZXh0 ZXJuIGJvb2wgVmFyaWFibGVJc1Zpc2libGUoT2lkIHZhcmlkKTsKK2V4dGVybiBPaWQJSWRlbnRp ZnlWYXJpYWJsZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1lLAorCQkJCQkJCSBib29sICpu b3RfdW5pcXVlLCBib29sIG5vZXJyb3IpOwogCiBleHRlcm4gRnVuY0NhbmRpZGF0ZUxpc3QgRnVu Y25hbWVHZXRDYW5kaWRhdGVzKExpc3QgKm5hbWVzLAogCQkJCQkJCQkJCQkgICBpbnQgbmFyZ3Ms IExpc3QgKmFyZ25hbWVzLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGUyYjQ1MmUzMWM5Li5h NGE5ZTI4MTQ2MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTY3LDYgKzE2Nyw4IEBAIHR5 cGVkZWYgc3RydWN0IFF1ZXJ5CiAJYm9vbAkJaGFzUm93U2VjdXJpdHkgcGdfbm9kZV9hdHRyKHF1 ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIHBhcnNlciBoYXMgYWRkZWQgYW4gUlRFX0dST1VQIFJU RSAqLwogCWJvb2wJCWhhc0dyb3VwUlRFIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3Jl KTsKKwkvKiB1c2VzIHNlc3Npb24gdmFyaWFibGVzICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlh YmxlcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaXMgYSBSRVRVUk4g c3RhdGVtZW50ICovCiAJYm9vbAkJaXNSZXR1cm4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9p Z25vcmUpOwogCkBAIC0zMjIsNiArMzI0LDE2IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtUmVmCiAJ UGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAq LwogfSBQYXJhbVJlZjsKIAorLyoKKyAqIFZhcmlhYmxlRmVuY2UgLSBlbnN1cmUgc28gZmllbGRz IHdpbGwgYmUgaW50ZXJwcmV0dGVkIGFzIGEgdmFyaWFibGUKKyAqLwordHlwZWRlZiBzdHJ1Y3Qg VmFyaWFibGVGZW5jZQoreworCU5vZGVUYWcJCXR5cGU7CisJTGlzdAkgICAqdmFybmFtZTsJCS8q IHZhcmlhYmxlIG5hbWUgKFN0cmluZyBub2RlcykgKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsJCS8q IHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCit9IFZhcmlhYmxlRmVuY2U7CisK IC8qCiAgKiBBX0V4cHIgLSBpbmZpeCwgcHJlZml4LCBhbmQgcG9zdGZpeCBleHByZXNzaW9ucwog ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDFiNDQzNmYyZmY2Li41ZjNhMWEyZDFiZSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKQEAgLTM3OCw2ICszNzgsOCBAQCB0eXBlZGVmIHN0cnVjdCBDb25z dAogICoJCQkJb2YgdGhlIGBwYXJhbWlkJyBmaWVsZCBjb250YWluIHRoZSBTdWJMaW5rJ3Mgc3Vi TGlua0lkLCBhbmQKICAqCQkJCXRoZSBsb3ctb3JkZXIgMTYgYml0cyBjb250YWluIHRoZSBjb2x1 bW4gbnVtYmVyLiAgKFRoaXMgdHlwZQogICoJCQkJb2YgUGFyYW0gaXMgYWxzbyBjb252ZXJ0ZWQg dG8gUEFSQU1fRVhFQyBkdXJpbmcgcGxhbm5pbmcuKQorICoJCVBBUkFNX1ZBUklBQkxFOiAgVGhl IHBhcmFtZXRlciBpcyBhIHJlZmVyZW5jZSB0byBhIHNlc3Npb24gdmFyaWFibGUKKyAqCQkJCShw YXJhbXZhcmlkIGhvbGRzIHRoZSB2YXJpYWJsZSdzIE9JRCkuCiAgKi8KIHR5cGVkZWYgZW51bSBQ YXJhbUtpbmQKIHsKQEAgLTM4NSw2ICszODcsNyBAQCB0eXBlZGVmIGVudW0gUGFyYW1LaW5kCiAJ UEFSQU1fRVhFQywKIAlQQVJBTV9TVUJMSU5LLAogCVBBUkFNX01VTFRJRVhQUiwKKwlQQVJBTV9W QVJJQUJMRSwKIH0gUGFyYW1LaW5kOwogCiB0eXBlZGVmIHN0cnVjdCBQYXJhbQpAQCAtMzk5LDYg KzQwMiw4IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtCiAJaW50MzIJCXBhcmFtdHlwbW9kOwogCS8q IE9JRCBvZiBjb2xsYXRpb24sIG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXBhcmFt Y29sbGlkOworCS8qIE9JRCBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGUgb3IgSW52YWxpZE9pZCBp ZiBub25lICovCisJT2lkCQkJcGFyYW12YXJpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2ln bm9yZSk7CiAJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxv Ywlsb2NhdGlvbjsKIH0gUGFyYW07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCBmN2QwN2M4 NDU0Mi4uODRlODg2OTQwZDggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9u b2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtMjI4LDYgKzIy OCw3IEBAIHN0cnVjdCBQYXJzZVN0YXRlCiAJYm9vbAkJcF9oYXNUYXJnZXRTUkZzOwogCWJvb2wJ CXBfaGFzU3ViTGlua3M7CiAJYm9vbAkJcF9oYXNNb2RpZnlpbmdDVEU7CisJYm9vbAkJcF9oYXNT ZXNzaW9uVmFyaWFibGVzOwogCiAJTm9kZQkgICAqcF9sYXN0X3NyZjsJCS8qIG1vc3QgcmVjZW50 IHNldC1yZXR1cm5pbmcgZnVuYy9vcCBmb3VuZCAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4 IDAzYzRjNTg1ODBlLi41OTI2YTg1NGQxMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMv bHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTIxNCw2 ICsyMTQsMTAgQEAgZXh0ZXJuIGNoYXIgKmdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQs IGJvb2wgbWlzc2luZ19vayk7CiAKIGV4dGVybiBjaGFyICpnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKE9pZCB2YXJpZCk7CiBleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZShPaWQgdmFyaWQpOworZXh0ZXJuIHZvaWQgZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBt b2RfY29sbGlkKE9pZCB2YXJpZCwKKwkJCQkJCQkJCQkJCQlPaWQgKnR5cGlkLAorCQkJCQkJCQkJ CQkJCWludDMyICp0eXBtb2QsCisJCQkJCQkJCQkJCQkJT2lkICpjb2xsaWQpOwogCiAjZGVmaW5l IHR5cGVfaXNfYXJyYXkodHlwaWQpICAoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxp ZE9pZCkKIC8qIHR5cGVfaXNfYXJyYXlfZG9tYWluIGFjY2VwdHMgYm90aCBwbGFpbiBhcnJheXMg YW5kIGRvbWFpbnMgb3ZlciBhcnJheXMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGQxOTQyNWI3 YTcxLi45Njg1Nzg3NGZmZSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MjY4LDcgKzgyNjgsOCBA QCBleGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5LT5zb3J0 Q2xhdXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRDb3VudCB8 fAotCQlxdWVyeS0+c2V0T3BlcmF0aW9ucykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMgfHwKKwkJ cXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCmRpZmYg LS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDAwMjkxYjRmMzhlLi43ZjQyNzIzMTYwMiAxMDA2NDQK LS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTMyMTMsNiArMzIxMyw3IEBAIFZhbGlkYXRvclZhbGlk YXRlQ0IKIFZhbHVlc1NjYW4KIFZhbHVlc1NjYW5TdGF0ZQogVmFyCitWYXJpYWJsZUZlbmNlCiBW YXJCaXQKIFZhckNoYXIKIFZhclBhcmFtU3RhdGUKLS0gCjIuNTEuMQoK --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0004-support-of-session-variables-for-psql.patch" Content-Disposition: attachment; filename="v20251110-0004-support-of-session-variables-for-psql.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5dz11 RnJvbSAxZDg5ZmQzOWRmZjZkOTY4ZDMxMThlYmIwMDc1OTQ0ZDFjYTQ5NjUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDUgQXVnIDIwMjUgMDY6NDI6MDIgKzAyMDAKU3ViamVjdDogW1BB VENIIDA0LzE1XSBzdXBwb3J0IG9mIHNlc3Npb24gdmFyaWFibGVzIGZvciBwc3FsCgpUaGlzIHBh dGNoIGVuaGFuY2luZyBwc3FsIHRvIHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXM6CgogKiBcZFZb K10gY29tbWFuZAogKiB0YWIgY29tcGxldGUgZm9yIENSRUFURSwgRFJPUCwgQUxURVIgVkFSSUFC TEUKCk5vdGU6IHRhYiBjb21wbGV0ZSBmb3IgdmFyaWFibGUgZmVuY2luZyBpcyBub3Qgc3VwcG9y dGVkIHlldAotLS0KIGRvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtaW5mby5zZ21sICAgfCAgMTMgKysr KwogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICB8ICAxMyArKysrCiBzcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jICAgIHwgIDE0ICsrKysKIHNyYy9iaW4vcHNxbC9jb21t YW5kLmMgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAg ICAgICB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmggICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BzcWwvaGVscC5jICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgfCAgNDUg KysrKysrKysrKystLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICB8ICAgMyAr CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IHwgIDUwICsrKysrKysrKysrKysr Kwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgICAgICB8ICAyMSArKysrKysKIDExIGZp bGVzIGNoYW5nZWQsIDI1OSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtaW5mby5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMv ZnVuYy1pbmZvLnNnbWwKaW5kZXggYzAwNTA2YzQ0Y2IuLjdmOTdjYmJkM2IwIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWluZm8uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVu Yy9mdW5jLWluZm8uc2dtbApAQCAtMTM3Nyw2ICsxMzc3LDE5IEBAIFNFTEVDVCByZWxuYW1lIEZS T00gcGdfY2xhc3MgV0hFUkUgcGdfdGFibGVfaXNfdmlzaWJsZShvaWQpOwogICAgICAgICBJcyB0 eXBlIChvciBkb21haW4pIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CiAgICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgICA8L3Jvdz4KKworICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0i ZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8 aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+cGdfdmFyaWFibGVfaXNfdmlzaWJsZTwvcHJp bWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5wZ192YXJpYWJs ZV9pc192aXNpYmxlPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnZhcmlhYmxlPC9wYXJhbWV0ZXI+ IDx0eXBlPm9pZDwvdHlwZT4gKQorICAgICAgICA8cmV0dXJudmFsdWU+Ym9vbGVhbjwvcmV0dXJu dmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBJcyBzZXNzaW9u IHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/CisgICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4KICAgICA8L3Rncm91cD4KICAgIDwvdGFibGU+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggZjU2YzcwMjYzZTAuLjBlOWMyZWFkNzNjIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMTQ0LDYgKzIxNDQsMTkgQEAgU0VMRUNUICQxIFxwYXJz ZSBzdG10MQogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg ICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1wc3FsLW1ldGEtY29tbWFuZC1kdiI+CisgICAgICAg IDx0ZXJtPjxsaXRlcmFsPlxkVlsrXSBbIDxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5z Ij48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+PC9s aW5rPiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFy YT4KKyAgICAgICAgTGlzdHMgc2Vzc2lvbiB2YXJpYWJsZXMuCisgICAgICAgIElmIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMKKyAgICAgICAg c3BlY2lmaWVkLCBvbmx5IHNlc3Npb24gdmFyaWFibGVzIHdob3NlIG5hbWVzIG1hdGNoIHRoZSBw YXR0ZXJuIGFyZSBsaXN0ZWQuCisgICAgICAgIElmIHRoZSBmb3JtIDxsaXRlcmFsPlxkVis8L2xp dGVyYWw+IGlzIHVzZWQsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAgICAgICAgYWJvdXQgZWFj aCB2YXJpYWJsZSBpcyBzaG93biwgbGlrZSAgYWNjZXNzIHByaXZpbGVnZXMgYW5kIGRlc2NyaXB0 aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxp c3RlbnRyeT4KKwogICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5k LWR1Ij4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGR1W1N4K10gWyA8bGluayBsaW5rZW5kPSJh cHAtcHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48 L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRl bT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGFiODM3YTNjYjllLi44MDBmMzdkYzJlYSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC01MzYyLDMgKzUzNjIsMTcgQEAgcGdfaXNfb3Ro ZXJfdGVtcF9zY2hlbWEoUEdfRlVOQ1RJT05fQVJHUykKIAogCVBHX1JFVFVSTl9CT09MKGlzT3Ro ZXJUZW1wTmFtZXNwYWNlKG9pZCkpOwogfQorCitEYXR1bQorcGdfdmFyaWFibGVfaXNfdmlzaWJs ZShQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCW9pZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJ Ym9vbAkJcmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCXJlc3VsdCA9IFZh cmlhYmxlSXNWaXNpYmxlRXh0KG9pZCwgJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3Npbmcp CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJUEdfUkVUVVJOX0JPT0wocmVzdWx0KTsKK30KZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmlu ZGV4IDRhMjk3NmRkZGYwLi41ZDEwNjQ2NzcxYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Nv bW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC0xMjcwLDYgKzEyNzAsOSBA QCBleGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2Jy YW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCQkJYnJlYWs7CiAJCQkJfQogCQkJCWJyZWFrOwor CQkJY2FzZSAnVic6CQkJLyogVmFyaWFibGVzICovCisJCQkJc3VjY2VzcyA9IGxpc3RWYXJpYWJs ZXMocGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ3gnOgkJCS8q IEV4dGVuc2lvbnMgKi8KIAkJCQlpZiAoc2hvd192ZXJib3NlKQogCQkJCQlzdWNjZXNzID0gbGlz dEV4dGVuc2lvbkNvbnRlbnRzKHBhdHRlcm4pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAzNmYyNDUwMjg0Mi4uMTJi YzM4M2U4M2UgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xMjI0LDcgKzEyMjQsNyBAQCBsaXN0RGVmYXVsdEFDTHMo Y29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X3Vz ZXJieWlkKGQuZGVmYWNscm9sZSkgQVMgXCIlc1wiLFxuIgogCQkJCQkgICIgIG4ubnNwbmFtZSBB UyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSBkLmRlZmFjbG9ianR5cGUgIgotCQkJCQkgICIg ICAgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVO ICclcyciCisJCQkJCSAgIiAgICBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICcl cycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIgogCQkJCQkgICIgICAg V0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICcl cycgRU5EIEFTIFwiJXNcIixcbiIKIAkJCQkJICAiICAiLAogCQkJCQkgIGdldHRleHRfbm9vcCgi T3duZXIiKSwKQEAgLTEyNDEsNiArMTI0MSw4IEBAIGxpc3REZWZhdWx0QUNMcyhjb25zdCBjaGFy ICpwYXR0ZXJuKQogCQkJCQkgIGdldHRleHRfbm9vcCgic2NoZW1hIiksCiAJCQkJCSAgREVGQUNM T0JKX0xBUkdFT0JKRUNULAogCQkJCQkgIGdldHRleHRfbm9vcCgibGFyZ2Ugb2JqZWN0IiksCisJ CQkJCSAgREVGQUNMT0JKX1ZBUklBQkxFLAorCQkJCQkgIGdldHRleHRfbm9vcCgic2Vzc2lvbiB2 YXJpYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpKTsKIAogCXByaW50QUNMQ29s dW1uKCZidWYsICJkLmRlZmFjbGFjbCIpOwpAQCAtNTM0OCw2ICs1MzUwLDEwMiBAQCBlcnJvcl9y ZXR1cm46CiAJcmV0dXJuIGZhbHNlOwogfQogCisvKgorICogXGRWCisgKgorICogbGlzdFZhcmlh YmxlcygpCisgKi8KK2Jvb2wKK2xpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v bCB2ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVzOwor CXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisJc3RhdGljIGNvbnN0IGJvb2wgdHJh bnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZX07CisKKwlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKKwl7CisJCWNoYXIJ CXN2ZXJidWZbMzJdOworCisJCXBnX2xvZ19lcnJvcigiVGhlIHNlcnZlciAodmVyc2lvbiAlcykg ZG9lcyBub3Qgc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcy4iLAorCQkJCQkgZm9ybWF0UEdWZXJz aW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24sIGZhbHNlLAorCQkJCQkJCQkJCSAgIHN2ZXJidWYsIHNp emVvZihzdmVyYnVmKSkpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBCdWZmZXIo JmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1Qgbi5uc3Bu YW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICB2LnZhcm5hbWUgYXMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMg XCIlc1wiLFxuIgorCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cu cGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgorCQkJCQkgICIgICBXSEVS RSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFy Y29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBn X2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIlxuIiwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAor CQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0 aW9uIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpKTsKKworCWlmICh2ZXJib3NlKQor CXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgIik7CisJCXByaW50QUNMQ29s dW1uKCZidWYsICJ2LnZhcmFjbCIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJ ICAiLFxuICBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbih2Lm9pZCwgJ3BnX3ZhcmlhYmxlJykg QVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZXNjcmlwdGlvbiIpKTsKKwl9CisK KwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJCQkJICJcbkZST00gcGdfY2F0YWxvZy5w Z192YXJpYWJsZSB2IgorCQkJCQkJICJcbiAgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfbmFt ZXNwYWNlIG4gT04gbi5vaWQgPSB2LnZhcm5hbWVzcGFjZSIpOworCisJYXBwZW5kUFFFeHBCdWZm ZXJTdHIoJmJ1ZiwgIlxuV0hFUkUgdHJ1ZVxuIik7CisJaWYgKCFwYXR0ZXJuKQorCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiICAgICAgQU5EIG4ubnNwbmFtZSA8PiAncGdfY2F0YWxvZydc biIKKwkJCQkJCQkgIiAgICAgIEFORCBuLm5zcG5hbWUgPD4gJ2luZm9ybWF0aW9uX3NjaGVtYSdc biIpOworCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIHRydWUs IGZhbHNlLAorCQkJCQkJCQkibi5uc3BuYW1lIiwgInYudmFybmFtZSIsIE5VTEwsCisJCQkJCQkJ CSJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwkJCQkJCQkJTlVM TCwgMykpCisJCXJldHVybiBmYWxzZTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJP UkRFUiBCWSAxLDI7Iik7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJdGVybVBRRXhw QnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIE1v c3QgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgY29udGVudCB0byBwcmludCBhbiBlbXB0eSB0 YWJsZSB3aGVuCisJICogdGhlcmUgYXJlIG5vIG1hdGNoaW5nIG9iamVjdHMuICBXZSBpbnRlbnRp b25hbGx5IGRldmlhdGUgZnJvbSB0aGF0CisJICogaGVyZSwgYnV0IG9ubHkgaW4gIXF1aWV0IG1v ZGUsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMuCisJICovCisJaWYgKFBRbnR1cGxlcyhyZXMpID09 IDAgJiYgIXBzZXQucXVpZXQpCisJeworCQlpZiAocGF0dGVybikKKwkJCXBnX2xvZ19lcnJvcigi RGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxlIG5hbWVkIFwiJXNcIi4iLAorCQkJCQkJ IHBhdHRlcm4pOworCQllbHNlCisJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc2Vz c2lvbiB2YXJpYWJsZXMuIik7CisJfQorCWVsc2UKKwl7CisJCW15b3B0Lm51bGxQcmludCA9IE5V TEw7CisJCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiB2YXJpYWJsZXMiKTsKKwkJbXlvcHQudHJh bnNsYXRlX2hlYWRlciA9IHRydWU7CisJCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNs YXRlX2NvbHVtbnM7CisJCW15b3B0Lm5fdHJhbnNsYXRlX2NvbHVtbnMgPSBsZW5ndGhvZih0cmFu c2xhdGVfY29sdW1ucyk7CisKKwkJcHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZv dXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCX0KKworCVBRY2xlYXIocmVzKTsKKwlyZXR1cm4g dHJ1ZTsKK30KIAogLyoKICAqIFxkRnAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5kZXggMThlY2FhNjA5NDkuLjU1Y2VkNGFh YjdiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAorKysgYi9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuaApAQCAtMTQ5LDQgKzE0OSw3IEBAIGV4dGVybiBib29sIGxpc3RPcEZhbWls eUZ1bmN0aW9ucyhjb25zdCBjaGFyICphY2Nlc3NfbWV0aG9kX3BhdHRlcm4sCiAvKiBcZGwgb3Ig XGxvX2xpc3QgKi8KIGV4dGVybiBib29sIGxpc3RMYXJnZU9iamVjdHMoYm9vbCB2ZXJib3NlKTsK IAorLyogXGRWICovCitleHRlcm4gYm9vbCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRl cm4sIGJvb2wgdmFyYm9zZSk7CisKICNlbmRpZgkJCQkJCQkvKiBERVNDUklCRV9IICovCmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwppbmRleCBl YzBiNDliOTU3Yi4uOTdiYWY5NWQyZWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMK KysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjY2LDYgKzI2Niw3IEBAIHNsYXNoVXNhZ2Uo dW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAwKCIgIFxcZFRbU3grXSBbUEFUVEVSTl0g ICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7CiAJSEVMUDAoIiAgXFxkdVtTeCtdIFtQQVRURVJOXSAg ICAgbGlzdCByb2xlc1xuIik7CiAJSEVMUDAoIiAgXFxkdltTeCtdIFtQQVRURVJOXSAgICAgbGlz dCB2aWV3c1xuIik7CisJSEVMUDAoIiAgXFxkVlt4K10gIFtQQVRURVJOXSAgICAgbGlzdCBzZXNz aW9uIHZhcmlhYmxlc1xuIik7CiAJSEVMUDAoIiAgXFxkeFt4K10gIFtQQVRURVJOXSAgICAgbGlz dCBleHRlbnNpb25zXG4iKTsKIAlIRUxQMCgiICBcXGRYW3hdICAgW1BBVFRFUk5dICAgICBsaXN0 IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIpOwogCUhFTFAwKCIgIFxcZHlbeCtdICBbUEFUVEVSTl0g ICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNcbiIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDMx NmEyZGFmYmYxLi4wOTRlNjVkYjg0OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtOTk4LDYg Kzk5OCwxMyBAQCBzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX3RyaWdnZXJfb2Zf dGFibGUgPSB7CiAJLnJlZm5hbWVzcGFjZSA9ICJjMS5yZWxuYW1lc3BhY2UiLAogfTsKIAorc3Rh dGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyA9IHsKKwku bWluX3NlcnZlcl92ZXJzaW9uID0gMTgwMDAwLAorCS5jYXRuYW1lID0gInBnX2NhdGFsb2cucGdf dmFyaWFibGUgdiIsCisJLnZpc2NvbmRpdGlvbiA9ICJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lz X3Zpc2libGUodi5vaWQpIiwKKwkubmFtZXNwYWNlID0gInYudmFybmFtZXNwYWNlIiwKKwkucmVz dWx0ID0gInYudmFybmFtZSIsCit9OwogCiAvKgogICogUXVlcmllcyB0byBnZXQgbGlzdHMgb2Yg bmFtZXMgb2YgdmFyaW91cyBraW5kcyBvZiB0aGluZ3MsIHBvc3NpYmx5CkBAIC0xMzYyLDYgKzEz NjksNyBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9 IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAuLi4gKi8KIAl7IlVTRVIiLCBRdWVyeV9m b3JfbGlzdF9vZl9yb2xlcywgTlVMTCwgTlVMTCwgS2V5d29yZHNfZm9yX3VzZXJfdGhpbmd9LAog CXsiVVNFUiBNQVBQSU5HIEZPUiIsIE5VTEwsIE5VTEwsIE5VTEx9LAorCXsiVkFSSUFCTEUiLCBO VUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzfSwKIAl7IlZJRVciLCBOVUxM LCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3N9LAogCXtOVUxMfQkJCQkJCS8qIGVuZCBv ZiBsaXN0ICovCiB9OwpAQCAtMTkyOSw3ICsxOTM3LDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0 IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJIlxcZEYiLCAiXFxkRmQiLCAiXFxk RnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRpIiwgIlxcZGwiLCAiXFxkTCIsCiAJCSJcXGRtIiwg IlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxcZHAiLCAiXFxkUCIsICJcXGRQaSIsICJcXGRQdCIs CiAJCSJcXGRyZHMiLCAiXFxkcmciLCAiXFxkUnMiLCAiXFxkUnAiLCAiXFxkcyIsCi0JCSJcXGR0 IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxkWCIsICJcXGR5IiwKKwkJIlxc ZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAiXFxkeCIsICJcXGRYIiwgIlxcZHkiLCAiXFxk ViIsCiAJCSJcXGVjaG8iLCAiXFxlZGl0IiwgIlxcZWYiLCAiXFxlbGlmIiwgIlxcZWxzZSIsICJc XGVuY29kaW5nIiwKIAkJIlxcZW5kaWYiLCAiXFxlbmRwaXBlbGluZSIsICJcXGVycnZlcmJvc2Ui LCAiXFxldiIsCiAJCSJcXGYiLCAiXFxmbHVzaCIsICJcXGZsdXNocmVxdWVzdCIsCkBAIC0yNjQz LDYgKzI2NTEsOSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJ CQkJCQkgICJBTEwiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTWVNURU0iLCAiU0VU IiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJUTyIpOworCS8qIEFMVEVSIFZBUklBQkxF IDxuYW1lPiAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlZBUklBQkxFIiwgTWF0Y2hB bnkpKQorCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVN QSIpOwogCS8qIEFMVEVSIFZJRVcgPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIi LCAiVklFVyIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQUxURVIgQ09MVU1OIiwgIk9X TkVSIFRPIiwgIlJFTkFNRSIsICJSRVNFVCIsICJTRVQiKTsKQEAgLTMyNDksNyArMzI2MCw3IEBA IG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJST1VUSU5FIiwg IlJVTEUiLCAiU0NIRU1BIiwgIlNFUVVFTkNFIiwgIlNFUlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJ Q1MiLCAiU1VCU0NSSVBUSU9OIiwgIlRBQkxFIiwKIAkJCQkJICAiVEFCTEVTUEFDRSIsICJURVhU IFNFQVJDSCIsICJUUkFOU0ZPUk0gRk9SIiwKLQkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwgIlZJ RVciKTsKKwkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKIAll bHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwgIkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJ Q09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9hY2Nlc3NfbWV0aG9kcyk7CiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJDT05TVFJBSU5UIikpCkBAIC00MDc0 LDYgKzQwODUsMTMgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCWVs c2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0Y2hBbnlFeGNlcHQoIiopIikpKQogCQkJQ09NUExF VEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2Vk IGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KKwkvKiBDb21wbGV0 ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hl cygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJBUyIp OworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKKwkJ LyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCisJCUNP TVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CiAK IC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1 c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgWyBPUiBSRVBMQUNFIF0gVklF VyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICovCkBAIC00MzUxLDYgKzQzNjksMTIgQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIs ICJUUkFOU0ZPUk0iLCAiRk9SIiwgTWF0Y2hBbnksICJMQU5HVUFHRSIsIE1hdGNoQW55KSkKIAkJ Q09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNUUklDVCIpOwogCisJLyogRFJPUCBWQVJJQUJM RSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVkFSSUFCTEUiKSkKKwkJQ09NUExFVEVf V0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwllbHNlIGlm IChNYXRjaGVzKCJEUk9QIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRI KCJDQVNDQURFIiwgIlJFU1RSSUNUIik7CisKIC8qIEVYRUNVVEUgKi8KIAllbHNlIGlmIChNYXRj aGVzKCJFWEVDVVRFIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zf cHJlcGFyZWRfc3RhdGVtZW50cyk7CkBAIC00NTUyLDcgKzQ1NzYsOSBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJICogb2JqZWN0cyBzdXBwb3J0ZWQuCiAJCSAqLwog CQlpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIkRFRkFVTFQiLCAiUFJJVklMRUdFUyIpKQotCQkJ Q09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VE VVJFUyIsICJST1VUSU5FUyIsICJUWVBFUyIsICJTQ0hFTUFTIiwgIkxBUkdFIE9CSkVDVFMiKTsK KwkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBS T0NFRFVSRVMiLAorCQkJCQkJICAiUk9VVElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIsICJMQVJH RSBPQkpFQ1RTIiwKKwkJCQkJCSAgIlZBUklBQkxFUyIpOwogCQllbHNlCiAJCQlDT01QTEVURV9X SVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX2dyYW50YWJsZXMsCiAJCQkJ CQkJCQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIsCkBAIC00NTYwLDYgKzQ1ODYsNyBAQCBt YXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkJIkFMTCBST1VU SU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxMIFNFUVVFTkNFUyBJTiBTQ0hFTUEiLAog CQkJCQkJCQkJCQkiQUxMIFRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkJCQkJCQkiQUxMIFZBUklB QkxFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiREFUQUJBU0UiLAogCQkJCQkJCQkJCQkiRE9N QUlOIiwKIAkJCQkJCQkJCQkJIkZPUkVJR04gREFUQSBXUkFQUEVSIiwKQEAgLTQ1NzQsNyArNDYw MSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQki U0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAogCQkJCQkJCQkJCQkiVEFCTEVTUEFDRSIs Ci0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJCSJUWVBFIiwKKwkJCQkJCQkJCQkJIlZB UklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRj aEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9LRSIsICJHUkFOVCIs ICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJBTEwiKSkKQEAgLTQ1ODIsNyArNDYx MCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJQUk9D RURVUkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlJPVVRJTkVTIElOIFNDSEVNQSIsCiAJCQkJCSAg IlNFUVVFTkNFUyBJTiBTQ0hFTUEiLAotCQkJCQkgICJUQUJMRVMgSU4gU0NIRU1BIik7CisJCQkJ CSAgIlRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkgICJWQVJJQUJMRVMgSU4gU0NIRU1BIik7CiAK IAkvKgogCSAqIENvbXBsZXRlICJHUkFOVC9SRVZPS0UgKiBPTiBEQVRBQkFTRS9ET01BSU4vLi4u IiB3aXRoIGEgbGlzdCBvZgpAQCAtNDYyNCw2ICs0NjUzLDggQEAgbWF0Y2hfcHJldmlvdXNfd29y ZHMoaW50IHBhdHRlcm5faWQsCiAJCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0 X29mX3RhYmxlc3BhY2VzKTsKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlRZUEUiKSkKIAkJCUNP TVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CisJ CWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIpKQorCQkJQ09NUExFVEVfV0lUSF9TQ0hF TUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKIAkJZWxzZSBpZiAoVGFpbE1h dGNoZXMoIkdSQU5UIiwgTWF0Y2hBbnksIE1hdGNoQW55LCBNYXRjaEFueSkpCiAJCQlDT01QTEVU RV9XSVRIKCJUTyIpOwogCQllbHNlCkBAIC00OTUwLDcgKzQ5ODEsNyBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAogLyogUFJFUEFSRSB4eCBBUyAqLwogCWVsc2UgaWYg KE1hdGNoZXMoIlBSRVBBUkUiLCBNYXRjaEFueSwgIkFTIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNF TEVDVCIsICJVUERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iKTsKKwkJQ09NUExF VEVfV0lUSCgiU0VMRUNUIiwgIlVQREFURSIsICJJTlNFUlQgSU5UTyIsICJERUxFVEUgRlJPTSIs ICJMRVQiKTsKIAogLyoKICAqIFBSRVBBUkUgVFJBTlNBQ1RJT04gaXMgbWlzc2luZyBvbiBwdXJw b3NlLiBJdCdzIGludGVuZGVkIGZvciB0cmFuc2FjdGlvbgpAQCAtNTQzOSw2ICs1NDcwLDggQEAg bWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVF UlkoUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxc ZHYqIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Zp ZXdzKTsKKwllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGRWKiIpKQorCQlDT01QTEVURV9XSVRI X1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCWVsc2UgaWYgKFRh aWxNYXRjaGVzQ1MoIlxcZHgqIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2ZfZXh0ZW5zaW9ucyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkWCoiKSkKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGRjY2NjYmRlNDg0Li4wMGFlZmVkYTVlOSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CkBAIC02NzE3LDYgKzY3MTcsOSBAQAogICBwcm9uYW1lID0+ICdw Z19jb2xsYXRpb25faXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEwJywgcHJvdm9sYXRpbGUgPT4g J3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCiAgIHBy b3NyYyA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0sCit7IG9pZCA9PiAnOTk5OScsIGRl c2NyID0+ICdpcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/JywKKyAg cHJvbmFtZSA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEwJywgcHJv dm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4g J29pZCcsIHByb3NyYyA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScgfSwKIAogeyBvaWQgPT4g JzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJyZW50IHNlc3Npb25cJ3MgdGVtcCBzY2hl bWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3BnX215X3RlbXBfc2NoZW1hJywgcHJvdm9sYXRp bGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91 dAppbmRleCBjOGYzOTMyZWRmMC4uZGIyMTQxYmI2MDYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w c3FsLm91dApAQCAtNjA1Nyw2ICs2MDU3LDMwIEBAIENPTU1JVDsKICMgZmluYWwgT05fRVJST1Jf Uk9MTEJBQ0s6IG9mZgogRFJPUCBUQUJMRSBibGE7CiBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7 CistLSBzZXNzaW9uIHZhcmlhYmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVt YSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBj aGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAg ICAgICAgICAgICAgICAgICB8IAorKDEgcm93KQorCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUg dmFyMSBUTyBQVUJMSUM7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3Jp cHRpb24nOworXGRWKyB2YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFt ZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAg ICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAg RGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwg dmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lciB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8 IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9v d25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUg dmFyMTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9v d25lcjsKIC0tIGNoZWNrIGRlc2NyaWJpbmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMKIFxkQSBy ZWdyZXNzaW9uLmhlYXAKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQg bmFtZXMpOiByZWdyZXNzaW9uLmhlYXAKQEAgLTYyNzgsNiArNjMwMiwxMiBAQCBjcm9zcy1kYXRh YmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVzdWNoLnB1YmxpYy5mdW5j X2RlcHNfc3RhdAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1l cyk6IHJlZ3Jlc3Npb24ubXlldnQKIFxkeSBub25lc3VjaC5teWV2dAogaW1wcm9wZXIgcXVhbGlm aWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IG5vbmVzdWNoLm15ZXZ0CitcZFYgaG9z dC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK2ltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFu eSBkb3R0ZWQgbmFtZXMpOiBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRWIHJlZ3Jlc3Np b258bXlkYi5wdWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1w bGVtZW50ZWQ6IHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9uZXN1Y2gucHVibGlj LnZhcgorY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBub25l c3VjaC5wdWJsaWMudmFyCiAtLSBjaGVjayB0aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBuYW1lIHNl Z21lbnRzIGFyZSBub3QgY291bnRlZAogXGRBICJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCiBMaXN0 IG9mIGFjY2VzcyBtZXRob2RzCkBAIC02NTEyLDYgKzY1NDIsMTIgQEAgTGlzdCBvZiBzY2hlbWFz CiAtLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLQogKDAg cm93cykKIAorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2YXJp YWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBhZ2Fp biwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkQSAibm8uc3VjaC5z Y2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAo dG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3Mu bWV0aG9kIgpAQCAtNjY4MSw2ICs2NzE3LDEyIEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiAK IFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBx dWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFy aWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBU eXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFi YXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Npb24uIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKICAgICAgICAgTGlzdCBvZiB0 YWJsZXMKQEAgLTY4MTQsNiArNjg1NiwxMiBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRl cwogLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLQogKDAgcm93cykKIAorXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRl ZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCAibm8uc3Vj aC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKIGNy b3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0 YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC02ODYx LDYgKzY5MDksOCBAQCBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50 ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbQogY3Jvc3MtZGF0YWJhc2UgcmVm ZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2gu c2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIGNyb3NzLWRhdGFiYXNl IHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5k YXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKK2Nyb3NzLWRhdGFi YXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUK IENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3Jv bGUxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9wc3FsLnNxbAppbmRleCBkY2RiZDRmYzAyMC4uNjFjYTJiYjYwZWUgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3BzcWwuc3FsCkBAIC0xNjYxLDYgKzE2NjEsMTkgQEAgQ09NTUlUOwogRFJPUCBU QUJMRSBibGE7CiBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiAKKy0tIHNlc3Npb24gdmFyaWFi bGUgdGVzdAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFy IENPTExBVEUgIkMiOworXGRWKyB2YXIxCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBU TyBQVUJMSUM7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24n OworXGRWKyB2YXIxCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7 CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKwogLS0gY2hlY2sgZGVzY3JpYmlu ZyBpbnZhbGlkIG11bHRpcGFydCBuYW1lcwogXGRBIHJlZ3Jlc3Npb24uaGVhcAogXGRBIG5vbmVz dWNoLmhlYXAKQEAgLTE3NzIsNiArMTc4NSw5IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsK IFxkWCBub25lc3VjaC5wdWJsaWMuZnVuY19kZXBzX3N0YXQKIFxkeSByZWdyZXNzaW9uLm15ZXZ0 CiBcZHkgbm9uZXN1Y2gubXlldnQKK1xkViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRW IHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9uZXN1Y2gucHVibGljLnZhcgogCiAt LSBjaGVjayB0aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBuYW1lIHNlZ21lbnRzIGFyZSBub3QgY291 bnRlZAogXGRBICJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCkBAIC0xODEzLDYgKzE4MjksOCBAQCBE Uk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZHggIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lv biIKIFxkWCAibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogXGR5ICJuby5zdWNoLmV2ZW50 LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisKIAogLS0gYWdhaW4sIGJ1dCB3aXRo IGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZEEgIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtMTg1Myw2ICsxODcxLDcgQEAgRFJPUCBGVU5DVElPTiBw c3FsX2Vycm9yOwogXGR4ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVu c2lvbiIKIFxkWCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3Mi CiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJy ZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKQEAgLTE4Nzcs NiArMTg5Niw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkUCByZWdyZXNzaW9uLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQucmVsYXRpb24iCiBcZFQgcmVncmVz c2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCByZWdyZXNzaW9u LiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViByZWdy ZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBi dXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMu CiBcZHQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUu cmVsYXRpb24iCkBAIC0xOTAyLDYgKzE5MjIsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7 CiBcZFAgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0 aW9uZWQucmVsYXRpb24iCiBcZFQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2guZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgIm5vLnN1Y2guZGF0YWJhc2Ui LiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGNoZWNrIFxkcmcgYW5k IFxkdQogQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMDsKLS0gCjIuNTEuMQoK --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0003-GRANT-REVOKE-variable.patch" Content-Disposition: attachment; filename="v20251110-0003-GRANT-REVOKE-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5ec12 RnJvbSAwZWU5NjRjYWY0ZDBjYTQ3MTk2YjE3NTllZTY1YThmMzA0NDdiZmUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDUgQXVnIDIwMjUgMDY6Mzc6MjggKzAyMDAKU3ViamVjdDogW1BB VENIIDAzLzE1XSBHUkFOVCwgUkVWT0tFIHZhcmlhYmxlCgpBY2Nlc3MgdG8gc2Vzc2lvbiB2YXJp YWJsZXMgY2FuIGJlIGNvbnRyb2xsZWQgYnkgU0VMRUNUIG9yIFVQREFURSByaWdodHMuIEJvdGgg cmlnaHRzIGFyZQppbnRyb2R1Y2VkIGJ5IHRoaXMgcGF0Y2ggdG9vLiBEZWZhdWx0IEFDTCBhcmUg c3VwcG9ydGVkLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAg ICAgICB8ICAgMyArLQogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDE5ICstCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWluZm8uc2dtbCAgICAgICAgICAg ICAgfCAgMjMgKy0KIC4uLi9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCAg ICB8ICAyOSArLQogZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sICAgICAgICAgICAgICAgICAg IHwgIDIwICstCiBkb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sICAgICAgICAgICAgICAgICAg fCAgIDggKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAgICAgICAgICAgIHwg IDc0ICsrKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8 ICAyMiArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwg IDExICstCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAg MjEgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8IDIy MSArKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaCAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAg ICAgfCAgMjAgKysKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAg ICB8ICAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wuaCAgICAgICAgICAgICAgICAgICAgICAg fCAgIDEgKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2FjbC5vdXQgICAgICAgIHwg MzM1ICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVs ZSAgICAgICAgICAgIHwgICAyICstCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNf YWNsLnNxbCAgICAgfCAxODIgKysrKysrKysrKwogMTggZmlsZXMgY2hhbmdlZCwgOTY3IGluc2Vy dGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfYWNsLm91dAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2FjbC5zcWwKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCmluZGV4IDdjNzlkZGM5YzA5Li43YTZkMjVlMjkyMCAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAg LTMzNjMsNyArMzM2Myw4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRp b24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICAgPGxpdGVy YWw+ZjwvbGl0ZXJhbD4gPSBmdW5jdGlvbiwKICAgICAgICA8bGl0ZXJhbD5UPC9saXRlcmFsPiA9 IHR5cGUsCiAgICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4gPSBzY2hlbWEsCi0gICAgICAgPGxp dGVyYWw+TDwvbGl0ZXJhbD4gPSBsYXJnZSBvYmplY3QKKyAgICAgICA8bGl0ZXJhbD5MPC9saXRl cmFsPiA9IGxhcmdlIG9iamVjdCwKKyAgICAgICA8bGl0ZXJhbD5WPC9saXRlcmFsPiA9IHNlc3Np b24gdmFyaWFibGUKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4 IDc2YzkxZWE0NjFkLi45OGQ3YzIxMjBiMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMjMxNyw2ICsyMzE3LDcgQEAgUkVW T0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICBGb3Igc2VxdWVuY2VzLCB0 aGlzIHByaXZpbGVnZSBhbHNvIGFsbG93cyB1c2Ugb2YgdGhlCiAgICAgICAgPGZ1bmN0aW9uPmN1 cnJ2YWw8L2Z1bmN0aW9uPiBmdW5jdGlvbi4KICAgICAgICBGb3IgbGFyZ2Ugb2JqZWN0cywgdGhp cyBwcml2aWxlZ2UgYWxsb3dzIHRoZSBvYmplY3QgdG8gYmUgcmVhZC4KKyAgICAgICBGb3Igc2Vz c2lvbiB2YXJpYWJsZXMsIHRoaXMgIHByaXZpbGVnZSBhbGxvd3MgdGhlIG9iamVjdCB0byBiZSBy ZWFkLgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5 PgpAQCAtMjM1Miw2ICsyMzUzLDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJ QzsKICAgICAgICA8ZnVuY3Rpb24+c2V0dmFsPC9mdW5jdGlvbj4gZnVuY3Rpb25zLgogICAgICAg IEZvciBsYXJnZSBvYmplY3RzLCB0aGlzIHByaXZpbGVnZSBhbGxvd3Mgd3JpdGluZyBvciB0cnVu Y2F0aW5nIHRoZQogICAgICAgIG9iamVjdC4KKyAgICAgICBGb3Igc2Vzc2lvbiB2YXJpYWJsZXMs IHRoaXMgcHJpdmlsZWdlIGFsbG93cyB0byBzZXQgYSB2YWx1ZSB0byB0aGUKKyAgICAgICBvYmpl Y3QuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+ CkBAIC0yNTk2LDcgKzI1OTksOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElD OwogICAgICAgIDxsaXRlcmFsPkxBUkdFIE9CSkVDVDwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVy YWw+U0VRVUVOQ0U8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlRBQkxFPC9saXRlcmFsPiAo YW5kIHRhYmxlLWxpa2Ugb2JqZWN0cyksCi0gICAgICAgdGFibGUgY29sdW1uCisgICAgICAgdGFi bGUgY29sdW1uLAorICAgICAgIDxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVyYWw+CiAg ICAgICA8L2VudHJ5PgogICAgICA8L3Jvdz4KICAgICAgPHJvdz4KQEAgLTI2MTEsNyArMjYxNSw4 IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICAgPGxpdGVyYWw+ TEFSR0UgT0JKRUNUPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5TRVFVRU5DRTwvbGl0ZXJh bD4sCiAgICAgICAgPGxpdGVyYWw+VEFCTEU8L2xpdGVyYWw+LAotICAgICAgIHRhYmxlIGNvbHVt bgorICAgICAgIHRhYmxlIGNvbHVtbiwKKyAgICAgICA8bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxF PC9saXRlcmFsPgogICAgICAgPC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgIDxyb3c+CkBAIC0y Nzk4LDYgKzI4MDMsMTIgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5VPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICA8ZW50cnk+PGxp dGVyYWw+XGRUKzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT48bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+cnc8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48 bGl0ZXJhbD5ub25lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+XGRW KzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3Jv dXA+CiAgIDwvdGFibGU+CkBAIC01NjY3LDYgKzU2NzgsMTAgQEAgRVhQTEFJTiBTRUxFQ1QgY291 bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEt MDEnOwogCiAgICA8cGFyYT4KICAgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgZGF0YWJhc2Ugb2Jq ZWN0cyB0aGF0IGNhbiBob2xkIGEgdmFsdWUuCisgICAgU2Vzc2lvbiB2YXJpYWJsZXMsIGxpa2Ug cmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBzY2hlbWEgYW5kIHRoZWlyIGFjY2VzcworICAgIGlz IGNvbnRyb2xsZWQgdmlhIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+UkVW T0tFPC9jb21tYW5kPgorICAgIGNvbW1hbmRzLiAgQSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSBj cmVhdGVkIGJ5IHRoZSA8Y29tbWFuZD5DUkVBVEUKKyAgICBWQVJJQUJMRTwvY29tbWFuZD4gY29t bWFuZC4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv ZnVuYy9mdW5jLWluZm8uc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtaW5mby5zZ21sCmlu ZGV4IGQ0NTA4MTE0YTQ4Li5jMDA1MDZjNDRjYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1 bmMvZnVuYy1pbmZvLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1pbmZvLnNnbWwK QEAgLTc0MCw2ICs3NDAsMjUgQEAgU0VMRUNUIGhhc19mdW5jdGlvbl9wcml2aWxlZ2UoJ2pvZXVz ZXInLCAnbXlmdW5jKGludCwgdGV4dCknLCAnZXhlY3V0ZScpOwogICAgICAgIDwvcGFyYT48L2Vu dHJ5PgogICAgICAgPC9yb3c+CiAKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1 bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGlu ZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pmhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5oYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2U8L2Z1bmN0aW9uPiAoCisgICAgICAgICAgPG9wdGlv bmFsPiA8cGFyYW1ldGVyPnVzZXI8L3BhcmFtZXRlcj4gPHR5cGU+bmFtZTwvdHlwZT4gb3IgPHR5 cGU+b2lkPC90eXBlPiwgPC9vcHRpb25hbD4KKyAgICAgICAgICA8cGFyYW1ldGVyPnNlc3Npb25f dmFyaWFibGU8L3BhcmFtZXRlcj4gPHR5cGU+dGV4dDwvdHlwZT4gb3IgPHR5cGU+b2lkPC90eXBl PiwKKyAgICAgICAgICA8cGFyYW1ldGVyPnByaXZpbGVnZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0 PC90eXBlPiApCisgICAgICAgIDxyZXR1cm52YWx1ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKyAg ICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIERvZXMgdXNlciBoYXZlIHByaXZp bGVnZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZT8KKyAgICAgICAgQWxsb3dhYmxlIHByaXZpbGVnZSB0 eXBlcyBhcmUKKyAgICAgICAgPGxpdGVyYWw+U0VMRUNUPC9saXRlcmFsPiwgYW5kCisgICAgICAg IDxsaXRlcmFsPlVQREFURTwvbGl0ZXJhbD4uCisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg ICA8L3Jvdz4KKwogICAgICAgPHJvdz4KICAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgogICAgICAgICA8aW5kZXh0ZXJtPgpA QCAtMTA4OSw4ICsxMTA4LDggQEAgU0VMRUNUIGhhc19mdW5jdGlvbl9wcml2aWxlZ2UoJ2pvZXVz ZXInLCAnbXlmdW5jKGludCwgdGV4dCknLCAnZXhlY3V0ZScpOwogICAgICAgICAndCcgZm9yIDxs aXRlcmFsPlRBQkxFU1BBQ0U8L2xpdGVyYWw+LAogICAgICAgICAnRicgZm9yIDxsaXRlcmFsPkZP UkVJR04gREFUQSBXUkFQUEVSPC9saXRlcmFsPiwKICAgICAgICAgJ1MnIGZvciA8bGl0ZXJhbD5G T1JFSUdOIFNFUlZFUjwvbGl0ZXJhbD4sCi0gICAgICAgIG9yCi0gICAgICAgICdUJyBmb3IgPGxp dGVyYWw+VFlQRTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+RE9NQUlOPC9saXRlcmFsPi4KKyAgICAg ICAgJ1QnIGZvciA8bGl0ZXJhbD5UWVBFPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5ET01BSU48L2xp dGVyYWw+IG9yCisgICAgICAgICdWJyBmb3IgPGxpdGVyYWw+U0VTU0lPTiBWQVJJQUJMRTwvbGl0 ZXJhbD4uCiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIApkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKaW5kZXggNmFjZDBmMWRm OTEuLmJjNzM4MTcwNjFmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1 bHRfcHJpdmlsZWdlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9w cml2aWxlZ2VzLnNnbWwKQEAgLTU2LDYgKzU2LDExIEBAIEdSQU5UIHsgeyBTRUxFQ1QgfCBVUERB VEUgfQogICAgIE9OIExBUkdFIE9CSkVDVFMKICAgICBUTyB7IFsgR1JPVVAgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBb LCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQogCitHUkFOVCB7IHsgU0VMRUNUIHwgVVBEQVRF IH0KKyAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiBWQVJJQUJMRVMK KyAgICBUTyB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9u YW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04g XQorCiBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgICB7IHsgU0VMRUNUIHwgSU5TRVJU IHwgVVBEQVRFIHwgREVMRVRFIHwgVFJVTkNBVEUgfCBSRUZFUkVOQ0VTIHwgVFJJR0dFUiB8IE1B SU5UQUlOIH0KICAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KQEAgLTk1LDYgKzEw MCwxNCBAQCBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgICBPTiBMQVJHRSBPQkpFQ1RT CiAgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9s ZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCiAgICAgWyBDQVNDQURFIHwg UkVTVFJJQ1QgXQorCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KKyAgICB7IHsgU0VMRUNU IHwgVVBEQVRFIH0KKyAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICB7IHsg U0VMRUNUIHwgVVBEQVRFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04g VkFSSUFCTEVTCisgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCisgICAgWyBD QVNDQURFIHwgUkVTVFJJQ1QgXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBA IC0xMjksMTQgKzE0MiwxNCBAQCBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgPHBhcmE+ CiAgICBDdXJyZW50bHksCiAgICBvbmx5IHRoZSBwcml2aWxlZ2VzIGZvciBzY2hlbWFzLCB0YWJs ZXMgKGluY2x1ZGluZyB2aWV3cyBhbmQgZm9yZWlnbgotICAgdGFibGVzKSwgc2VxdWVuY2VzLCBm dW5jdGlvbnMsIHR5cGVzIChpbmNsdWRpbmcgZG9tYWlucyksIGFuZCBsYXJnZSBvYmplY3RzCi0g ICBjYW4gYmUgYWx0ZXJlZC4gIEZvciB0aGlzIGNvbW1hbmQsIGZ1bmN0aW9ucyBpbmNsdWRlIGFn Z3JlZ2F0ZXMgYW5kIHByb2NlZHVyZXMuCi0gICBUaGUgd29yZHMgPGxpdGVyYWw+RlVOQ1RJT05T PC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGFyZQotICAgZXF1aXZh bGVudCBpbiB0aGlzIGNvbW1hbmQuICAoPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGlzIHBy ZWZlcnJlZAotICAgZ29pbmcgZm9yd2FyZCBhcyB0aGUgc3RhbmRhcmQgdGVybSBmb3IgZnVuY3Rp b25zIGFuZCBwcm9jZWR1cmVzIHRha2VuCi0gICB0b2dldGhlci4gIEluIGVhcmxpZXIgUG9zdGdy ZVNRTCByZWxlYXNlcywgb25seSB0aGUKLSAgIHdvcmQgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRl cmFsPiB3YXMgYWxsb3dlZC4gIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBzZXQKLSAgIGRlZmF1bHQg cHJpdmlsZWdlcyBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHNlcGFyYXRlbHkuKQorICAg dGFibGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHR5cGVzIChpbmNsdWRpbmcgZG9tYWlucyks IGxhcmdlIG9iamVjdHMKKyAgIGFuZCBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgYWx0ZXJlZC4g IEZvciB0aGlzIGNvbW1hbmQsIGZ1bmN0aW9ucyBpbmNsdWRlCisgICBhZ2dyZWdhdGVzIGFuZCBw cm9jZWR1cmVzLiAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kCisg ICA8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gYXJlIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21t YW5kLgorICAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQgZ29pbmcg Zm9yd2FyZCBhcyB0aGUgc3RhbmRhcmQgdGVybQorICAgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2Vk dXJlcyB0YWtlbiB0b2dldGhlci4gIEluIGVhcmxpZXIgUG9zdGdyZVNRTCByZWxlYXNlcywKKyAg IG9ubHkgdGhlIHdvcmQgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiB3YXMgYWxsb3dlZC4g IEl0IGlzIG5vdCBwb3NzaWJsZQorICAgdG8gc2V0IGRlZmF1bHQgcHJpdmlsZWdlcyBmb3IgZnVu Y3Rpb25zIGFuZCBwcm9jZWR1cmVzIHNlcGFyYXRlbHkuKQogICA8L3BhcmE+CiAKICAgPHBhcmE+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2dyYW50LnNnbWwKaW5kZXggMDQzZjVkNWE0MGEuLmI3NmJlNTJlYTdlIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9ncmFu dC5zZ21sCkBAIC0xMDEsNiArMTAxLDEyIEBAIEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAgICAg WyBXSVRIIHsgQURNSU4gfCBJTkhFUklUIHwgU0VUIH0geyBPUFRJT04gfCBUUlVFIHwgRkFMU0Ug fSBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xl X3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCiAKK0dSQU5UIHsgU0VMRUNUIHwgVVBEQVRF IHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiB7IFZBUklBQkxFIDxyZXBsYWNlYWJsZT52 YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQorICAgICAgIHwgQUxMIFZBUklBQkxF UyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAgVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gWyBXSVRIIEdSQU5U IE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCisKIDxwaHJhc2U+d2hlcmUgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFi bGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAgIFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4KQEAgLTExOSw4ICsxMjUsOCBAQCBH UkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJs ZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAgdGhhdCBncmFudHMgcHJpdmlsZWdlcyBvbiBhIGRh dGFiYXNlIG9iamVjdCAodGFibGUsIGNvbHVtbiwgdmlldywKICAgIGZvcmVpZ24gdGFibGUsIHNl cXVlbmNlLCBkYXRhYmFzZSwgZm9yZWlnbi1kYXRhIHdyYXBwZXIsIGZvcmVpZ24gc2VydmVyLAog ICAgZnVuY3Rpb24sIHByb2NlZHVyZSwgcHJvY2VkdXJhbCBsYW5ndWFnZSwgbGFyZ2Ugb2JqZWN0 LCBjb25maWd1cmF0aW9uCi0gICBwYXJhbWV0ZXIsIHNjaGVtYSwgdGFibGVzcGFjZSwgb3IgdHlw ZSksIGFuZCBvbmUgdGhhdCBncmFudHMKLSAgIG1lbWJlcnNoaXAgaW4gYSByb2xlLiAgVGhlc2Ug dmFyaWFudHMgYXJlIHNpbWlsYXIgaW4gbWFueSB3YXlzLCBidXQKKyAgIHBhcmFtZXRlciwgc2No ZW1hLCBzZXNzaW9uIHZhcmlhYmxlLCB0YWJsZXNwYWNlLCBvciB0eXBlKSwgYW5kIG9uZSB0aGF0 CisgICBncmFudHMgbWVtYmVyc2hpcCBpbiBhIHJvbGUuICBUaGVzZSB2YXJpYW50cyBhcmUgc2lt aWxhciBpbiBtYW55IHdheXMsIGJ1dAogICAgdGhleSBhcmUgZGlmZmVyZW50IGVub3VnaCB0byBi ZSBkZXNjcmliZWQgc2VwYXJhdGVseS4KICAgPC9wYXJhPgogCkBAIC0yMzYsOSArMjQyLDkgQEAg R1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAgPHBhcmE+CiAgICBUaGVyZSBpcyBhbHNvIGFuIG9w dGlvbiB0byBncmFudCBwcml2aWxlZ2VzIG9uIGFsbCBvYmplY3RzIG9mIHRoZSBzYW1lCiAgICB0 eXBlIHdpdGhpbiBvbmUgb3IgbW9yZSBzY2hlbWFzLiAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGN1 cnJlbnRseSBzdXBwb3J0ZWQKLSAgIG9ubHkgZm9yIHRhYmxlcywgc2VxdWVuY2VzLCBmdW5jdGlv bnMsIGFuZCBwcm9jZWR1cmVzLiAgPGxpdGVyYWw+QUxMCi0gICBUQUJMRVM8L2xpdGVyYWw+IGFs c28gYWZmZWN0cyB2aWV3cyBhbmQgZm9yZWlnbiB0YWJsZXMsIGp1c3QgbGlrZSB0aGUKLSAgIHNw ZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gY29tbWFuZC4gIDxsaXRlcmFs PkFMTAorICAgb25seSBmb3IgdGFibGVzLCBzZXF1ZW5jZXMsIGZ1bmN0aW9ucywgcHJvY2VkdXJl cyBhbmQgdmFyaWFibGVzLgorICAgPGxpdGVyYWw+QUxMIFRBQkxFUzwvbGl0ZXJhbD4gYWxzbyBh ZmZlY3RzIHZpZXdzIGFuZCBmb3JlaWduIHRhYmxlcywganVzdAorICAgbGlrZSB0aGUgc3BlY2lm aWMtb2JqZWN0IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBjb21tYW5kLiAgPGxpdGVyYWw+QUxM CiAgICBGVU5DVElPTlM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyBhZ2dyZWdhdGUgYW5kIHdpbmRv dyBmdW5jdGlvbnMsIGJ1dCBub3QKICAgIHByb2NlZHVyZXMsIGFnYWluIGp1c3QgbGlrZSB0aGUg c3BlY2lmaWMtb2JqZWN0IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPgogICAgY29tbWFuZC4gIFVz ZSA8bGl0ZXJhbD5BTEwgUk9VVElORVM8L2xpdGVyYWw+IHRvIGluY2x1ZGUgcHJvY2VkdXJlcy4K QEAgLTUxOCw4ICs1MjQsOCBAQCBHUkFOVCBhZG1pbnMgVE8gam9lOwogICAgPC9wYXJhPgogCiAg ICA8cGFyYT4KLSAgICBQcml2aWxlZ2VzIG9uIGRhdGFiYXNlcywgdGFibGVzcGFjZXMsIHNjaGVt YXMsIGxhbmd1YWdlcywgYW5kCi0gICAgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZQorICAg IFByaXZpbGVnZXMgb24gZGF0YWJhc2VzLCB0YWJsZXNwYWNlcywgc2NoZW1hcywgbGFuZ3VhZ2Vz LCBzZXNzaW9uIHZhcmlhYmxlcworICAgIGFuZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgYXJl CiAgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb25zLgog ICAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Jl dm9rZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAppbmRleCA4ZGY0OTIyODFh MS4uNzYwZmRkYjdjMjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbApAQCAtMTMwLDYgKzEzMCwxNCBAQCBS RVZPS0UgWyB7IEFETUlOIHwgSU5IRVJJVCB8IFNFVCB9IE9QVElPTiBGT1IgXQogICAgIFsgR1JB TlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9u PC9yZXBsYWNlYWJsZT4gXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIAorUkVWT0tFIFsg R1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBB TEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIHsgVkFSSUFCTEUgPHJlcGxhY2VhYmxlPnZhcmlh YmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgICAgfCBBTEwgVkFSSUFCTEVTIElO IFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxh Y2VhYmxlPiBbLCAuLi5dIH0KKyAgICBGUk9NIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQor ICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVj aWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKwog PHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZp Y2F0aW9uPC9yZXBsYWNlYWJsZT4gY2FuIGJlOjwvcGhyYXNlPgogCiAgICAgWyBHUk9VUCBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvYWNsY2hrLmMKaW5kZXggMDBlMzYzMGUwZWMuLjkzYzEwYmVlYmU5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNs Y2hrLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2V4dGVuc2lvbi5oIgpAQCAtMjkwLDYgKzI5MSw5IEBAIHJlc3RyaWN0X2Fu ZF9jaGVja19ncmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2YWlsX2dvcHRpb25zLCBib29s IGFsbF9wcml2cywKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCXdob2xlX21hc2sg PSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNU X1ZBUklBQkxFOgorCQkJd2hvbGVfbWFzayA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJ YnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0 eXBlOiAlZCIsIG9ianR5cGUpOwogCQkJLyogbm90IHJlYWNoZWQsIGJ1dCBrZWVwIGNvbXBpbGVy IHF1aWV0ICovCkBAIC01MzQsNiArNTM4LDEwIEBAIEV4ZWN1dGVHcmFudFN0bXQoR3JhbnRTdG10 ICpzdG10KQogCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNM OwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMg Zm9yIHBhcmFtZXRlciIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJ YWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWVycm9ybXNnID0g Z2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzZXNzaW9uIHZhcmlh YmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6 ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgc3RtdC0+b2JqdHlwZSk7CkBA IC02MzksNiArNjQ3LDkgQEAgRXhlY0dyYW50U3RtdF9vaWRzKEludGVybmFsR3JhbnQgKmlzdG10 KQogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQkJRXhlY0dyYW50X1BhcmFtZXRlcihp c3RtdCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlFeGVjR3JhbnRf Y29tbW9uKGlzdG10LCBWYXJpYWJsZVJlbGF0aW9uSWQsIEFDTF9BTExfUklHSFRTX1ZBUklBQkxF LCBOVUxMKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBpc3RtdC0+b2JqdHlwZSk7 CkBAIC03NzMsNiArNzg0LDE4IEBAIG9iamVjdE5hbWVzVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlw ZSwgTGlzdCAqb2JqbmFtZXMsIGJvb2wgaXNfZ3JhbnQpCiAJCQkJCW9iamVjdHMgPSBsYXBwZW5k X29pZChvYmplY3RzLCBwYXJhbWV0ZXJJZCk7CiAJCQl9CiAJCQlicmVhazsKKworCQljYXNlIE9C SkVDVF9WQVJJQUJMRToKKwkJCWZvcmVhY2hfbm9kZShSYW5nZVZhciwgdmFydmFyLCBvYmpuYW1l cykKKwkJCXsKKwkJCQlPaWQJCQlyZWxPaWQ7CisKKwkJCQlyZWxPaWQgPSBMb29rdXBWYXJpYWJs ZSh2YXJ2YXItPnNjaGVtYW5hbWUsCisJCQkJCQkJCQkJdmFydmFyLT5yZWxuYW1lLAorCQkJCQkJ CQkJCWZhbHNlKTsKKwkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcmVsT2lkKTsK KwkJCX0KKwkJCWJyZWFrOwogCX0KIAogCXJldHVybiBvYmplY3RzOwpAQCAtODU5LDYgKzg4Miwz MiBAQCBvYmplY3RzSW5TY2hlbWFUb09pZHMoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpuc3Bu YW1lcykKIAkJCQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCQkJCX0KIAkJ CQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCXsKKwkJCQkJU2NhbktleURh dGEga2V5OworCQkJCQlSZWxhdGlvbglyZWw7CisJCQkJCVRhYmxlU2NhbkRlc2Mgc2NhbjsKKwkJ CQkJSGVhcFR1cGxlCXR1cGxlOworCisJCQkJCVNjYW5LZXlJbml0KCZrZXksCisJCQkJCQkJCUFu dW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNlLAorCQkJCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1i ZXIsIEZfT0lERVEsCisJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwor CQkJCQlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2Nr KTsKKwkJCQkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9jYXRhbG9nKHJlbCwgMSwgJmtleSk7CisK KwkJCQkJd2hpbGUgKCh0dXBsZSA9IGhlYXBfZ2V0bmV4dChzY2FuLCBGb3J3YXJkU2NhbkRpcmVj dGlvbikpICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJCU9pZAkJCW9pZCA9ICgoRm9ybV9wZ19wcm9j KSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lkOworCisJCQkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQo b2JqZWN0cywgb2lkKTsKKwkJCQkJfQorCisJCQkJCXRhYmxlX2VuZHNjYW4oc2Nhbik7CisJCQkJ CXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQl9CisJCQkJYnJlYWs7CiAJ CQlkZWZhdWx0OgogCQkJCS8qIHNob3VsZCBub3QgaGFwcGVuICovCiAJCQkJZWxvZyhFUlJPUiwg InVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLApAQCAtMTAyMiw2ICsxMDcxLDEw IEBAIEV4ZWNBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEFs dGVyRGVmYXVsdFByaXZpbGVnZXNTdG10ICpzCiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExf UklHSFRTX0xBUkdFT0JKRUNUOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQg cHJpdmlsZWdlIHR5cGUgJXMgZm9yIGxhcmdlIG9iamVjdCIpOwogCQkJYnJlYWs7CisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgorCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJ QUJMRTsKKwkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBl ICVzIGZvciBzZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVs b2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGlu dCkgYWN0aW9uLT5vYmp0eXBlKTsKQEAgLTEyMjIsNiArMTI3NSwxMSBAQCBTZXREZWZhdWx0QUNM KEludGVybmFsRGVmYXVsdEFDTCAqaWFjbHMpCiAJCQlpZiAoaWFjbHMtPmFsbF9wcml2cyAmJiB0 aGlzX3ByaXZpbGVnZXMgPT0gQUNMX05PX1JJR0hUUykKIAkJCQl0aGlzX3ByaXZpbGVnZXMgPSBB Q0xfQUxMX1JJR0hUU19MQVJHRU9CSkVDVDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJ QUJMRToKKwkJCW9ianR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQlpZiAoaWFjbHMtPmFs bF9wcml2cyAmJiB0aGlzX3ByaXZpbGVnZXMgPT0gQUNMX05PX1JJR0hUUykKKwkJCQl0aGlzX3By aXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCiAJCWRlZmF1 bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCkBAIC0x NDY5LDYgKzE1MjcsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFDTChPaWQgcm9sZWlkLCBPaWQg Y2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1Q6CiAJCQkJ aWFjbHMub2JqdHlwZSA9IE9CSkVDVF9MQVJHRU9CSkVDVDsKIAkJCQlicmVhazsKKwkJCWNhc2Ug REVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCWlhY2xzLm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7 CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIFNob3VsZG4ndCBnZXQgaGVyZSAqLwog CQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGRlZmF1bHQgQUNMIHR5cGU6ICVkIiwKQEAgLTE1 MjksNiArMTU5MCw5IEBAIFJlbW92ZVJvbGVGcm9tT2JqZWN0QUNMKE9pZCByb2xlaWQsIE9pZCBj bGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNlIFBhcmFtZXRlckFjbFJlbGF0aW9uSWQ6CiAJCQkJ aXN0bXQub2JqdHlwZSA9IE9CSkVDVF9QQVJBTUVURVJfQUNMOwogCQkJCWJyZWFrOworCQkJY2Fz ZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQkJaXN0bXQub2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJM RTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQg b2JqZWN0IGNsYXNzICV1IiwgY2xhc3NpZCk7CiAJCQkJYnJlYWs7CkBAIC0yNzYyLDYgKzI4MjYs OSBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUs CiAJCQkJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1p c3Npb24gZGVuaWVkIGZvciB0eXBlICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVk IGZvciBzZXNzaW9uIHZhcmlhYmxlICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpF Q1RfVklFVzoKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9y IHZpZXcgJXMiKTsKIAkJCQkJCWJyZWFrOwpAQCAtMjc4NCw3ICsyODUxLDYgQEAgYWNsY2hlY2tf ZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9C SkVDVF9UU1BBUlNFUjoKIAkJCQkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJCQkJY2FzZSBP QkpFQ1RfVVNFUl9NQVBQSU5HOgotCQkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCQkJCWVs b2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0eXBlKTsKIAkJCQl9 CiAKQEAgLTMwMjUsNiArMzA5MSw4IEBAIHBnX2FjbG1hc2soT2JqZWN0VHlwZSBvYmp0eXBlLCBP aWQgb2JqZWN0X29pZCwgQXR0ck51bWJlciBhdHRudW0sIE9pZCByb2xlaWQsCiAJCQlyZXR1cm4g QUNMX05PX1JJR0hUUzsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiBvYmplY3RfYWNs bWFzayhUeXBlUmVsYXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOworCQlj YXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiBvYmplY3RfYWNsbWFzayhWYXJpYWJsZVJl bGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywgaG93KTsKIAkJZGVmYXVsdDoKIAkJ CWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwKIAkJCQkgKGludCkg b2JqdHlwZSk7CkBAIC00Mjg4LDYgKzQzNTYsMTAgQEAgZ2V0X3VzZXJfZGVmYXVsdF9hY2woT2Jq ZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCwgT2lkIG5zcF9vaWQpCiAJCQlkZWZhY2xvYmp0 eXBlID0gREVGQUNMT0JKX0xBUkdFT0JKRUNUOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CisJCQlkZWZhY2xvYmp0eXBlID0gREVGQUNMT0JKX1ZBUklBQkxFOworCQkJYnJl YWs7CisKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBOVUxMOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmpl Y3RhZGRyZXNzLmMKaW5kZXggYWMxZjhhNGRiM2IuLjMyY2QwNzhjMTYyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysgYi9zcmMvYmFja2VuZC9jYXRh bG9nL29iamVjdGFkZHJlc3MuYwpAQCAtMjAyOSwxNyArMjAyOSwyMSBAQCBnZXRfb2JqZWN0X2Fk ZHJlc3NfZGVmYWNsKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQljYXNlIERFRkFD TE9CSl9MQVJHRU9CSkVDVDoKIAkJCW9ianR5cGVfc3RyID0gImxhcmdlIG9iamVjdHMiOwogCQkJ YnJlYWs7CisJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJb2JqdHlwZV9zdHIgPSAidmFy aWFibGVzIjsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJCSBlcnJtc2co InVucmVjb2duaXplZCBkZWZhdWx0IEFDTCBvYmplY3QgdHlwZSBcIiVjXCIiLCBvYmp0eXBlKSwK LQkJCQkJIGVycmhpbnQoIlZhbGlkIG9iamVjdCB0eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIsIFwi JWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4iLAorCQkJCQkgZXJyaGludCgiVmFsaWQgb2Jq ZWN0IHR5cGVzIGFyZSBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIl Y1wiLCBcIiVjXCIuIiwKIAkJCQkJCQkgREVGQUNMT0JKX1JFTEFUSU9OLAogCQkJCQkJCSBERUZB Q0xPQkpfU0VRVUVOQ0UsCiAJCQkJCQkJIERFRkFDTE9CSl9GVU5DVElPTiwKIAkJCQkJCQkgREVG QUNMT0JKX1RZUEUsCiAJCQkJCQkJIERFRkFDTE9CSl9OQU1FU1BBQ0UsCi0JCQkJCQkJIERFRkFD TE9CSl9MQVJHRU9CSkVDVCkpKTsKKwkJCQkJCQkgREVGQUNMT0JKX0xBUkdFT0JKRUNULAorCQkJ CQkJCSBERUZBQ0xPQkpfVkFSSUFCTEUpKSk7CiAJfQogCiAJLyoKQEAgLTM5MjEsNiArMzkyNSwx NiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJv b2wgbWlzc2luZ19vaykKIAkJCQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBs YXJnZSBvYmplY3RzIGJlbG9uZ2luZyB0byByb2xlICVzIiksCiAJCQkJCQkJCQkJIHJvbGVuYW1l KTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQkJCWlm IChuc3BuYW1lKQorCQkJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJ IF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vzc2lvbiB2YXJpYWJsZXMgYmVsb25naW5n IHRvIHJvbGUgJXMgaW4gc2NoZW1hICVzIiksCisJCQkJCQkJCQkJCSByb2xlbmFtZSwgbnNwbmFt ZSk7CisJCQkJCQllbHNlCisJCQkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLAorCQkJCQkJ CQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBzZXNzaW9uIHZhcmlhYmxlcyBiZWxv bmdpbmcgdG8gcm9sZSAlcyIpLAorCQkJCQkJCQkJCQkgcm9sZW5hbWUpOworCQkJCQkJYnJlYWs7 CiAJCQkJCWRlZmF1bHQ6CiAJCQkJCQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCQkJCWlm IChuc3BuYW1lKQpAQCAtNTg1MSw2ICs1ODY1LDEwIEBAIGdldE9iamVjdElkZW50aXR5UGFydHMo Y29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmlu ZygmYnVmZmVyLAogCQkJCQkJCQkJCQkgICAiIG9uIGxhcmdlIG9iamVjdHMiKTsKIAkJCQkJCWJy ZWFrOworCQkJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCQkJICAgIiBvbiBzZXNzaW9uIHZhcmlhYmxlcyIp OworCQkJCQkJYnJlYWs7CiAJCQkJfQogCiAJCQkJaWYgKG9iam5hbWUpCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMKaW5kZXggYmQ2YTI5YTc5ZTUuLmQ4ZWRlNGZhOGM4IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ192YXJpYWJsZS5jCkBAIC0zOCw2ICszOCw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBj aGFyICp2YXJOYW1lLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJYm9vbCBpZl9ub3RfZXhp c3RzKQogeworCUFjbAkJICAgKnZhcmFjbDsKIAlOYW1lRGF0YQl2YXJuYW1lOwogCWJvb2wJCW51 bGxzW05hdHRzX3BnX3ZhcmlhYmxlXTsKIAlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3ZhcmlhYmxl XTsKQEAgLTk3LDcgKzk4LDEyIEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1l LAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERh dHVtKHZhck93bmVyKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAx XSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKIAotCW51bGxzW0FudW1fcGdfdmFy aWFibGVfdmFyYWNsIC0gMV0gPSB0cnVlOworCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNs KE9CSkVDVF9WQVJJQUJMRSwgdmFyT3duZXIsCisJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKKwlp ZiAodmFyYWNsICE9IE5VTEwpCisJCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFd ID0gUG9pbnRlckdldERhdHVtKHZhcmFjbCk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3Zhcmlh YmxlX3ZhcmFjbCAtIDFdID0gdHJ1ZTsKIAogCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJl bCk7CiAKQEAgLTEzMSw2ICsxMzcsOSBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFy TmFtZSwKIAkvKiBkZXBlbmRlbmN5IG9uIG93bmVyICovCiAJcmVjb3JkRGVwZW5kZW5jeU9uT3du ZXIoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgdmFyT3duZXIpOwogCisJLyogZGVwZW5kZW5j aWVzIG9uIHJvbGVzIG1lbnRpb25lZCBpbiBkZWZhdWx0IEFDTCAqLworCXJlY29yZERlcGVuZGVu Y3lPbk5ld0FjbChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCB2YXJPd25lciwgdmFyYWNs KTsKKwogCS8qIGRlcGVuZGVuY3kgb24gZXh0ZW5zaW9uICovCiAJcmVjb3JkRGVwZW5kZW5jeU9u Q3VycmVudEV4dGVuc2lvbigmbXlzZWxmLCBmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDA5ZDE2 YzFiZDA1Li4xNTEwNTUxZTAzYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC03OTEsNyArNzkxLDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlVTkxJU1RFTiBVTkxPR0dFRCBVTlRJTCBVUERBVEUgVVNF UiBVU0lORwogCiAJVkFDVVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVF UyBWQVJDSEFSIFZBUklBRElDIFZBUklBQkxFCi0JVkFSWUlORyBWRVJCT1NFIFZFUlNJT05fUCBW SUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUKKwlWQVJJQUJMRVMgVkFSWUlORyBWRVJCT1NFIFZF UlNJT05fUCBWSUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUKIAogCVdBSVQgV0hFTiBXSEVSRSBX SElURVNQQUNFX1AgV0lORE9XIFdJVEggV0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRF CiAKQEAgLTgwODcsNiArODA4NywxNCBAQCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpz ID0gJDI7CiAJCQkJCSQkID0gbjsKIAkJCQl9CisJCQl8IFZBUklBQkxFIHF1YWxpZmllZF9uYW1l X2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Mo c2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVD VDsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQy OworCQkJCQkkJCA9IG47CisJCQkJfQogCQkJfCBBTEwgVEFCTEVTIElOX1AgU0NIRU1BIG5hbWVf bGlzdAogCQkJCXsKIAkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhz aXplb2YoUHJpdlRhcmdldCkpOwpAQCAtODEzMiw2ICs4MTQwLDE0IEBAIHByaXZpbGVnZV90YXJn ZXQ6CiAJCQkJCW4tPm9ianMgPSAkNTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgQUxMIFZB UklBQkxFUyBJTl9QIFNDSEVNQSBuYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4g PSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFy Z3R5cGUgPSBBQ0xfVEFSR0VUX0FMTF9JTl9TQ0hFTUE7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpF Q1RfVkFSSUFCTEU7CisJCQkJCW4tPm9ianMgPSAkNTsKKwkJCQkJJCQgPSBuOworCQkJCX0KIAkJ OwogCiAKQEAgLTgzMzAsNiArODM0Niw3IEBAIGRlZmFjbF9wcml2aWxlZ2VfdGFyZ2V0OgogCQkJ fCBUWVBFU19QCQl7ICQkID0gT0JKRUNUX1RZUEU7IH0KIAkJCXwgU0NIRU1BUwkJeyAkJCA9IE9C SkVDVF9TQ0hFTUE7IH0KIAkJCXwgTEFSR0VfUCBPQkpFQ1RTX1AJeyAkJCA9IE9CSkVDVF9MQVJH RU9CSkVDVDsgfQorCQkJfCBWQVJJQUJMRVMJCXsgJCQgPSBPQkpFQ1RfVkFSSUFCTEU7IH0KIAkJ OwogCiAKQEAgLTE4MjMyLDYgKzE4MjQ5LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBW QUxJREFUT1IKIAkJCXwgVkFMVUVfUAogCQkJfCBWQVJJQUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJ CXwgVkFSWUlORwogCQkJfCBWRVJTSU9OX1AKIAkJCXwgVklFVwpAQCAtMTg4OTEsNiArMTg5MDks NyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFZBTFVFUwogCQkJfCBWQVJDSEFSCiAJCQl8 IFZBUklBQkxFCisJCQl8IFZBUklBQkxFUwogCQkJfCBWQVJJQURJQwogCQkJfCBWRVJCT1NFCiAJ CQl8IFZFUlNJT05fUApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCmluZGV4IGZiY2Q2NGEyNjA5Li45ODI4MzgyYjkw MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9hY2wuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNp bmNsdWRlICJjb21tYW5kcy9wcm9jbGFuZy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3Bh Y2UuaCIKICNpbmNsdWRlICJjb21tb24vaGFzaGZuLmgiCkBAIC0xMjgsNiArMTI5LDggQEAgc3Rh dGljIEFjbE1vZGUgY29udmVydF90eXBlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0 KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfcGFyYW1ldGVyX3ByaXZfc3RyaW5nKHRleHQgKnBy aXZfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X2xhcmdlb2JqZWN0X3ByaXZfc3RyaW5n KHRleHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfcm9sZV9wcml2 X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7CitzdGF0aWMgT2lkCWNvbnZlcnRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lKHRleHQgKnZhcm5hbWUpOworc3RhdGljIEFjbE1vZGUgY29udmVydF9z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0YXRp YyBBY2xSZXN1bHQgcGdfcm9sZV9hY2xjaGVjayhPaWQgcm9sZV9vaWQsIE9pZCByb2xlaWQsIEFj bE1vZGUgbW9kZSk7CiAKIHN0YXRpYyB2b2lkIFJvbGVNZW1iZXJzaGlwQ2FjaGVDYWxsYmFjayhE YXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKTsKQEAgLTg2Nyw2ICs4NzAs MTAgQEAgYWNsZGVmYXVsdChPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBvd25lcklkKQogCQkJd29y bGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CiAJCQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9S SUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK KwkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOworCQkJb3duZXJfZGVmYXVsdCA9IEFD TF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVS Uk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIG9ianR5cGUpOwogCQkJ d29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8K QEAgLTk2NCw2ICs5NzEsOSBAQCBhY2xkZWZhdWx0X3NxbChQR19GVU5DVElPTl9BUkdTKQogCQlj YXNlICdUJzoKIAkJCW9ianR5cGUgPSBPQkpFQ1RfVFlQRTsKIAkJCWJyZWFrOworCQljYXNlICdW JzoKKwkJCW9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoK IAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGUgYWJicmV2aWF0aW9uOiAl YyIsIG9ianR5cGVjKTsKIAl9CkBAIC01MDMyLDYgKzUwNDIsMjE3IEBAIHBnX3JvbGVfYWNsY2hl Y2soT2lkIHJvbGVfb2lkLCBPaWQgcm9sZWlkLCBBY2xNb2RlIG1vZGUpCiAJcmV0dXJuIEFDTENI RUNLX05PX1BSSVY7CiB9CiAKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug dmFyaWFudHMKKyAqCQlUaGVzZSBhcmUgYWxsIG5hbWVkICJoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UiIGF0IHRoZSBTUUwgbGV2ZWwuCisgKgkJVGhleSB0YWtlIHZhcmlvdXMgY29tYmlu YXRpb25zIG9mIHZhcmlhYmxlIG5hbWUsIHZhcmlhYmxlIE9JRCwKKyAqCQl1c2VyIG5hbWUsIHVz ZXIgT0lELCBvciBpbXBsaWNpdCB1c2VyID0gY3VycmVudF91c2VyLgorICoKKyAqCQlUaGUgcmVz dWx0IGlzIGEgYm9vbGVhbiB2YWx1ZTogdHJ1ZSBpZiB1c2VyIGhhcyB0aGUgaW5kaWNhdGVkCisg KgkJcHJpdmlsZWdlLCBmYWxzZSBpZiBub3QsIG9yIE5VTEwgaWYgc2Vzc2lvbiB2YXJpYWJsZSBk b2Vzbid0CisgKgkJZXhpc3RzLgorICovCisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2VfbmFtZV9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lv biB2YXJpYWJsZSBnaXZlbgorICoJCW5hbWUgdXNlcm5hbWUsIHRleHQgc2Vzc2lvbiB2YXJpYWJs ZSBuYW1lLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1lKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJTmFtZQkJcm9s ZW5hbWUgPSBQR19HRVRBUkdfTkFNRSgwKTsKKwl0ZXh0CSAgICp2YXJuYW1lID0gUEdfR0VUQVJH X1RFWFRfUFAoMSk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9Q UCgyKTsKKwlPaWQJCQlyb2xlaWQ7CisJT2lkCQkJdmFyaWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlB Y2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCXJvbGVp ZCA9IGdldF9yb2xlX29pZF9vcl9wdWJsaWMoTmFtZVN0cigqcm9sZW5hbWUpKTsKKwltb2RlID0g Y29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKwl2 YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcm5hbWUpOworCisJYWNscmVz dWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJ CQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21p c3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQg PT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxl IGdpdmVuCisgKgkJdGV4dCBzZXNzaW9uIHZhcmlhYmxlIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAq CQljdXJyZW50X3VzZXIgaXMgYXNzdW1lZAorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlX25hbWUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwl0ZXh0CSAgICp2YXJuYW1l ID0gUEdfR0VUQVJHX1RFWFRfUFAoMCk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19H RVRBUkdfVEVYVF9QUCgxKTsKKwlPaWQJCQlyb2xlaWQ7CisJT2lkCQkJdmFyaWQ7CisJQWNsTW9k ZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxz ZTsKKworCXJvbGVpZCA9IEdldFVzZXJJZCgpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFy aWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCXZhcmlkID0gY29udmVydF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodmFybmFtZSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUs CisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0g QUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl X25hbWVfaWQKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxl IGdpdmVuCisgKgkJbmFtZSB1c2VuYW1lLCBzZXNzaW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRleHQg cHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25h bWVfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlOYW1lCQl1c2VybmFtZSA9IFBHX0dFVEFSR19O QU1FKDApOworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgxKTsKKwl0ZXh0CSAgICpwcml2 X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXJvbGVpZDsKKwlBY2xN b2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZh bHNlOworCisJcm9sZWlkID0gZ2V0X3JvbGVfb2lkX29yX3B1YmxpYyhOYW1lU3RyKCp1c2VybmFt ZSkpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90 eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJl bGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21p c3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19S RVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9u IGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCXNlc3Npb24gdmFyaWFibGUgb2lkLCBhbmQg dGV4dCBwcml2IG5hbWUuCisgKgkJY3VycmVudF91c2VyIGlzIGFzc3VtZWQKKyAqLworRGF0dW0K K2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZChQR19GVU5DVElPTl9BUkdTKQorewor CU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4 dCA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCU9pZAkJCXJvbGVpZDsKKwlBY2xNb2RlCQltb2Rl OworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJ cm9sZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9w cml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUs CisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJO X05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9 CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfbmFtZQorICoJCUNo ZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlyb2xl aWQsIHRleHQgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8K K0RhdHVtCitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfbmFtZShQR19GVU5DVElP Tl9BUkdTKQoreworCU9pZAkJCXJvbGVpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJdGV4dAkgICAq dmFybmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0 ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJT2lkCQkJdmFyaWQ7CisJQWNsTW9kZQkJbW9kZTsK KwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCW1v ZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQp OworCXZhcmlkID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFybmFtZSk7CisKKwlh Y2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs CisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAo aXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJl c3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2VfaWRfaWQKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZh cmlhYmxlIGdpdmVuCisgKgkJcm9sZWlkLCBzZXNzaW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRleHQg cHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lk X2lkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJHX09JRCgw KTsKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJdGV4dAkgICAqcHJpdl90eXBl X3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3Vs dAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJbW9kZSA9IGNvbnZl cnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xy ZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJ CQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNf bWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3Vs dCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBHaXZlbiBhIHNlc3Npb24gdmFyaWFibGUg bmFtZSBleHByZXNzZWQgYXMgYSBzdHJpbmcsIGxvb2sgaXQgdXAgYW5kIHJldHVybgorICogT2lk CisgKi8KK3N0YXRpYyBPaWQKK2NvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHRleHQgKnZh cm5hbWUpCit7CisJcmV0dXJuIExvb2t1cFZhcmlhYmxlRnJvbU5hbWVMaXN0KHRleHRUb1F1YWxp ZmllZE5hbWVMaXN0KHZhcm5hbWUpLCB0cnVlKTsKK30KKworLyoKKyAqIGNvbnZlcnRfdmFyaWFi bGVfcHJpdl9zdHJpbmcKKyAqCQlDb252ZXJ0IHRleHQgc3RyaW5nIHRvIEFjbE1vZGUgdmFsdWUu CisgKi8KK3N0YXRpYyBBY2xNb2RlCitjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJp bmcodGV4dCAqcHJpdl90eXBlX3RleHQpCit7CisJc3RhdGljIGNvbnN0IHByaXZfbWFwIHNlc3Np b25fdmFyaWFibGVfcHJpdl9tYXBbXSA9IHsKKwkJeyJTRUxFQ1QiLCBBQ0xfU0VMRUNUfSwKKwkJ eyJTRUxFQ1QgV0lUSCBHUkFOVCBPUFRJT04iLCBBQ0xfR1JBTlRfT1BUSU9OX0ZPUihBQ0xfU0VM RUNUKX0sCisJCXsiVVBEQVRFIiwgQUNMX1VQREFURX0sCisJCXsiVVBEQVRFIFdJVEggR1JBTlQg T1BUSU9OIiwgQUNMX0dSQU5UX09QVElPTl9GT1IoQUNMX1VQREFURSl9LAorCQl7TlVMTCwgMH0K Kwl9OworCisJcmV0dXJuIGNvbnZlcnRfYW55X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0LCBz ZXNzaW9uX3ZhcmlhYmxlX3ByaXZfbWFwKTsKK30KIAogLyoKICAqIGluaXRpYWxpemF0aW9uIGZ1 bmN0aW9uIChjYWxsZWQgYnkgSW5pdFBvc3RncmVzKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0 X2FjbC5oCmluZGV4IGNlNmU1MDk4ZWFmLi4wODdkMzViOTQzZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfZGVmYXVsdF9hY2wuaApAQCAtNjksNiArNjksNyBAQCBNQUtFX1NZU0NBQ0hFKERFRkFDTFJP TEVOU1BPQkosIHBnX2RlZmF1bHRfYWNsX3JvbGVfbnNwX29ial9pbmRleCwgOCk7CiAjZGVmaW5l IERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8qIHR5cGUgKi8KICNkZWZpbmUgREVGQUNMT0JKX05BTUVT UEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAqLwogI2RlZmluZSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1QJ J0wnIC8qIGxhcmdlIG9iamVjdCAqLworI2RlZmluZSBERUZBQ0xPQkpfVkFSSUFCTEUJCSdWJyAv KiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NFX1RPX0NMSUVOVF9DT0RFICov CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDVjZjllMTJmY2I5Li5kY2NjY2JkZTQ4NCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC01NDc5LDYgKzU0NzksMjYgQEAKICAgcHJvcmV0 dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQgb2lkIHRleHQnLAogICBwcm9zcmMg PT4gJ2hhc19sYXJnZW9iamVjdF9wcml2aWxlZ2VfaWRfaWQnIH0sCiAKK3sgb2lkID0+ICc5NjEz JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlcm5h bWUsIHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJn dHlwZXMgPT4gJ25hbWUgdGV4dCB0ZXh0JywKKyAgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1lJyB9LAoreyBvaWQgPT4gJzk2MTQnLCBkZXNjciA9PiAn dXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1c2VybmFtZSwgc2VxIG9pZCcs CisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0 aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICduYW1l IG9pZCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFt ZV9pZCcgfSwKK3sgb2lkID0+ICc5NjE1JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNl c3Npb24gdmFyaWFibGUgYnkgdXNlciBvaWQsIHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0 eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCB0ZXh0IHRleHQnLCBwcm9zcmMg PT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9uYW1lJyB9LAoreyBvaWQgPT4g Jzk2MTYnLCBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1 c2VyIG9pZCwgc2VxIG9pZCcsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHBy b2FyZ3R5cGVzID0+ICdvaWQgb2lkIHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZV9pZF9pZCcgfSwKK3sgb2lkID0+ICc5NjE3JywgZGVzY3IgPT4gJ2N1cnJl bnQgdXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSBzZXEgbmFtZScsCisgIHBy b25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICd0ZXh0IHRleHQn LCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lJyB9LAoreyBv aWQgPT4gJzk2MTgnLCBkZXNjciA9PiAnY3VycmVudCB1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9u IHZhcmlhYmxlIGJ5IHNlcSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAor ICBwcm9hcmd0eXBlcyA9PiAnb2lkIHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZV9pZCcgfSwKKwogeyBvaWQgPT4gJzMzNTUnLCBkZXNjciA9PiAnSS9PJywK ICAgcHJvbmFtZSA9PiAncGdfbmRpc3RpbmN0X2luJywgcHJvcmV0dHlwZSA9PiAncGdfbmRpc3Rp bmN0JywKICAgcHJvYXJndHlwZXMgPT4gJ2NzdHJpbmcnLCBwcm9zcmMgPT4gJ3BnX25kaXN0aW5j dF9pbicgfSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA4YjFmMmJkM2I2OC4uZDFhZDY4NjE4MDUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmgKQEAgLTQ5MCw2ICs0OTAsNyBAQCBQR19LRVlXT1JEKCJ2YWx1ZSIsIFZB TFVFX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhbHVl cyIsIFZBTFVFUywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZh cmNoYXIiLCBWQVJDSEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgidmFyaWFibGUiLCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQor UEdfS0VZV09SRCgidmFyaWFibGVzIiwgVkFSSUFCTEVTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVOUkVTRVJW RURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwgVFlQ RV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3V0aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggMDFhZTViNzE5ZmQu LjVlMWE4YTgyZTkwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAorKysgYi9z cmMvaW5jbHVkZS91dGlscy9hY2wuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHR5cGVkZWYgc3RydWN0 IEFycmF5VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1NDSEVNQQkJKEFDTF9VU0FH RXxBQ0xfQ1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UQUJMRVNQQUNFCShBQ0xfQ1JF QVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UWVBFCQkJKEFDTF9VU0FHRSkKKyNkZWZpbmUg QUNMX0FMTF9SSUdIVFNfVkFSSUFCTEUJCShBQ0xfU0VMRUNUfEFDTF9VUERBVEUpCiAKIC8qIG9w ZXJhdGlvbiBjb2RlcyBmb3IgcGdfKl9hY2xtYXNrICovCiB0eXBlZGVmIGVudW0KZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfYWNsLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfYWNsLm91dApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjIyMTk1Mjk5MTYKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2Fj bC5vdXQKQEAgLTAsMCArMSwzMzUgQEAKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBv cnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9hY2w7CitDUkVBVEUgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVh ZGVyX2FjbDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRlc3RfYWNsIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXJfYWNsOworR1JBTlQgQUxMIE9OIFNDSEVNQSBwdWJsaWMgVE8gcmVncmVzc192 YXJpYWJsZV9vd25lcl9hY2w7CitBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3RfYWNsCisg ICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyX2Fj bDsKK0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJs ZV9vd25lcl9hY2wKKyAgIElOIFNDSEVNQSBzdmFydGVzdF9hY2wKKyAgIEdSQU5UIFVQREFURSBP TiBWQVJJQUJMRVMgVE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsOworLS0gc2hvdWxkIHRv IGZhaWwKK0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcl9hY2wKKyAgIElOIFNDSEVNQSBzdmFydGVzdF9hY2wKKyAgIEdSQU5UIElOU0VS VCBPTiBWQVJJQUJMRVMgVE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsOworRVJST1I6ICBp bnZhbGlkIHByaXZpbGVnZSB0eXBlIElOU0VSVCBmb3Igc2Vzc2lvbiB2YXJpYWJsZQorLS0gc2hv dWxkIHRvIGZhaWwKK0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVz c192YXJpYWJsZV9vd25lcl9hY2wKKyAgIElOIFNDSEVNQSBzdmFydGVzdF9hY2wKKyAgIEdSQU5U IERFTEVURSBPTiBWQVJJQUJMRVMgVE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsOworRVJS T1I6ICBpbnZhbGlkIHByaXZpbGVnZSB0eXBlIERFTEVURSBmb3Igc2Vzc2lvbiB2YXJpYWJsZQor LS0gY3JlYXRpbmcgdmFyaWFibGUgd2l0aCBkZWZhdWx0IHByaXZpbGVnZXMKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2Fj bC5zZXN2YXIyMCBBUyBpbnQ7CitTRVQgUk9MRSBUTyBERUZBVUxUOworLS0gc2hvdWxkIGJlIG9r LiBzaW5jZSBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKy0tIGFsbG93IHJlZ3Jlc3NfdmFyaWFi bGVfcmVhZGVyX2FjbCB0byBoYXZlIFNFTEVDVCBwcml2aWxlZGdlCitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcl9hY2wnLCAnc3Zh cnRlc3RfYWNsLnNlc3ZhcjIwJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSBy b3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcmVhZGVyX2FjbCcsICdzdmFydGVzdF9hY2wuc2VzdmFyMjAnLCAnVVBEQVRFJyk7IC0t IHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9hY2wu c2VzdmFyMjA7CitEUk9QIFNDSEVNQSBzdmFydGVzdF9hY2w7CitEUk9QIFJPTEUgcmVncmVzc192 YXJpYWJsZV9yZWFkZXJfYWNsOworLS0KKy0tIGJlZ2luIG9mIGNoZWNrIEdSQU5UIFdJVEggR1JB TlQgT1BUSU9OIGFuZCBSRVZPS0UgR1JBTlRFRCBCWQorLS0KK0NSRUFURSBST0xFIHJlZ3Jlc3Nf dmFyaWFibGVfcjFfYWNsOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMl9hY2w7CitT RVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0NSRUFURSBWQVJJQUJMRSBz ZXN2YXIyMl9hY2wgQVMgaW50OyAgICAgIC0tc2VzdmFyMjJfYWNsIHdpbGwgb3duZWQgYnkgcmVn cmVzc192YXJpYWJsZV9vd25lcl9hY2wKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzZXN2YXIy Ml9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9yMV9hY2wgV0lUSCBHUkFOVCBPUFRJT047CitTRVQg Uk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJM RSBzZXN2YXIyMl9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9yMl9hY2wgV0lUSCBHUkFOVCBPUFRJ T047CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2FjbCcs ICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdwdWJs aWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKK1JFVk9LRSBBTEwgUFJJVklMRUdFUyBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wgRlJPTSBy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCBDQVNDQURFOworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAncHVibGljLnNlc3ZhcjIy X2FjbCcsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcs ICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCiso MSByb3cpCisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworLS0gc2hv dWxkIHRvIGZhaWwKK0dSQU5UIElOU0VSVCBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wgVE8gcmVn cmVzc192YXJpYWJsZV9yMl9hY2w7CitFUlJPUjogIGludmFsaWQgcHJpdmlsZWdlIHR5cGUgSU5T RVJUIGZvciBzZXNzaW9uIHZhcmlhYmxlCitHUkFOVCBERUxFVEUgT04gVkFSSUFCTEUgc2VzdmFy MjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsOworRVJST1I6ICBpbnZhbGlkIHByaXZp bGVnZSB0eXBlIERFTEVURSBmb3Igc2Vzc2lvbiB2YXJpYWJsZQorLS0gc2hvdWxkIGJlIG9rCitH UkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVf cjJfYWNsOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMV9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gZgor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywg J1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1JFVk9LRSBBTEwgT04g VkFSSUFCTEUgc2VzdmFyMjJfYWNsIEZST00gcmVncmVzc192YXJpYWJsZV9yMl9hY2wgR1JBTlRF RCBCWSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIy Ml9hY2wnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wn LCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgor KDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX293bmVyX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAt LSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9Q IFZBUklBQkxFIHNlc3ZhcjIyX2FjbDsKKy0tCistLSBlbmQgb2YgY2hlY2sgR1JBTlQgV0lUSCBH UkFOVCBPUFRJT04gYW5kIFJFVk9LRSBHUkFOVEVEIEJZCistLQorLS0KKy0tIGJlZ2luIG9mIHRl c3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1B CistLQorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9hY2w7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2 YXJ0ZXN0X2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5z ZXN2YXIyMCBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3ZhcjIxIEFT IGludDsKK0dSQU5UIFNFTEVDVCBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVzdF9h Y2wgVE8gcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzdmFydGVzdF9hY2wuc2Vz dmFyMjAnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wn LCAnc3ZhcnRlc3RfYWNsLnNlc3ZhcjIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0 CisoMSByb3cpCisKK1JFVk9LRSBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3Zh cnRlc3RfYWNsIEZST00gcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzdmFydGVz dF9hY2wuc2VzdmFyMjAnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykK KworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJs ZV9yMV9hY2wnLCAnc3ZhcnRlc3RfYWNsLnNlc3ZhcjIxJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBmCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxF IHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMDsKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3Zh cjIxOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfYWNsOworLS0KKy0tIGVuZCBvZiB0ZXN0OiBHUkFO VHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQQorLS0KKy0t CistLSBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgaGF2ZSB2YXJpb3Vz IGtpbmQgb2Ygc2lnbmF0dXJlLgorLS0gdGhlIGZvbGxvd2luZyBhcmUgZXh0ZW5zaXZlIHRlc3Qg Zm9yIGl0LgorLS0KK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JF QVRFIFZBUklBQkxFIHB1YmxpYy5zZXN2YXIyMl9hY2wgQVMgaW50OworU0VUIHNlYXJjaF9wYXRo IFRPIHB1YmxpYzsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwdWJsaWMuc2VzdmFyMjJfYWNs IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworR1JBTlQgU0VMRUNULCBVUERBVEUgT04gVkFS SUFCTEUgcHVibGljLnNlc3ZhcjIyX2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbDsKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFf YWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7CisgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0Ciso MSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5ub3RleGlzdHMnLCAnU0VMRUNUJykgSVMgTlVMTDsK KyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyaWFibGVfcjFfYWNsOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAt LSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3Nlc3ZhcjIyX2FjbCcsICdV UERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdzZXN2YXIy Ml9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wn LCAnc2VzdmFyMjJfYWNsJywgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcs ICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdzZXN2YXIyMl9hY2wnLCAnVVBEQVRFJyk7IC0tIGYK KyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIG9pZCBBUyB2YXJpZAorICBGUk9NIHBn X3ZhcmlhYmxlCisgIFdIRVJFIHZhcm5hbWUgPSAnc2VzdmFyMjJfYWNsJyBBTkQgdmFybmFtZXNw YWNlID0gJ3B1YmxpYyc6OnJlZ25hbWVzcGFjZSBcZ3NldAorU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgnc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IxX2FjbCcsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjFfYWNsJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJv dykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9yMl9hY2wnLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEg cm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyX2FjbCcsIDp2YXJpZCwgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0Ciso MSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAn U0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCc6OnJlZ3JvbGUsICdzZXN2YXIyMl9hY2wnLCAnU0VMRUNU Jyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnOjpyZWdyb2xlLCAnc2Vz dmFyMjJfYWNsJywgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJf YWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCc6OnJlZ3JvbGUsICdzZXN2YXIyMl9hY2wnLCAnVVBEQVRF Jyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnOjpyZWdyb2xlLCA6dmFy aWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCc6OnJl Z3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjJfYWNsJzo6cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMl9hY2wnOjpyZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gdAorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgdAorKDEgcm93KQorCistLQorLS0gZW5kIG9mIGZ1bmN0aW9uIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSB0ZXN0cy4KKy0tCitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VU IHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHB1YmxpYy5zZXN2YXIyMl9h Y2w7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CitEUk9QIFJPTEUgcmVncmVz c192YXJpYWJsZV9yMl9hY2w7CitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy X2FjbDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDFiY2Y2OTAzMWRhLi5kODAw MGRhM2Y4NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMTUsNyArMTE1LDcg QEAgdGVzdDoganNvbiBqc29uYiBqc29uX2VuY29kaW5nIGpzb25wYXRoIGpzb25wYXRoX2VuY29k aW5nIGpzb25iX2pzb25wYXRoIHNxbGpzb24KICMgTkI6IHRlbXAuc3FsIGRvZXMgcmVjb25uZWN0 cyB3aGljaCB0cmFuc2llbnRseSB1c2VzIDIgY29ubmVjdGlvbnMsCiAjIHNvIGtlZXAgdGhpcyBw YXJhbGxlbCBncm91cCB0byBhdCBtb3N0IDE5IHRlc3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IHBs YW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJlcGFy ZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBvbHltb3JwaGlzbSBy b3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwgc2Vzc2lvbl92YXJpYWJsZXNf ZGRsCit0ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5n ZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBw b2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sIHNlc3Np b25fdmFyaWFibGVzX2RkbCBzZXNzaW9uX3ZhcmlhYmxlc19hY2wKIAogIyAtLS0tLS0tLS0tCiAj IEFub3RoZXIgZ3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2FjbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlc19hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi40YjM2NTNjZDRlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2FjbC5zcWwKQEAgLTAsMCArMSwxODIgQEAKKy0tIGNo ZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBvcnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFy dGVzdF9hY2w7CitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0NSRUFU RSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyX2FjbDsKKworR1JBTlQgQUxMIE9OIFNDSEVN QSBzdmFydGVzdF9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitHUkFOVCBBTEwg T04gU0NIRU1BIHB1YmxpYyBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKKworQUxURVIg REVGQVVMVCBQUklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2Fj bAorICAgSU4gU0NIRU1BIHN2YXJ0ZXN0X2FjbAorICAgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxF UyBUTyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcl9hY2w7CisKK0FMVEVSIERFRkFVTFQgUFJJVklM RUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2wKKyAgIElOIFNDSEVN QSBzdmFydGVzdF9hY2wKKyAgIEdSQU5UIFVQREFURSBPTiBWQVJJQUJMRVMgVE8gcmVncmVzc192 YXJpYWJsZV9yZWFkZXJfYWNsOworCistLSBzaG91bGQgdG8gZmFpbAorQUxURVIgREVGQVVMVCBQ UklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbAorICAgSU4g U0NIRU1BIHN2YXJ0ZXN0X2FjbAorICAgR1JBTlQgSU5TRVJUIE9OIFZBUklBQkxFUyBUTyByZWdy ZXNzX3ZhcmlhYmxlX3JlYWRlcl9hY2w7CisKKy0tIHNob3VsZCB0byBmYWlsCitBTFRFUiBERUZB VUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsCisg ICBJTiBTQ0hFTUEgc3ZhcnRlc3RfYWNsCisgICBHUkFOVCBERUxFVEUgT04gVkFSSUFCTEVTIFRP IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyX2FjbDsKKworLS0gY3JlYXRpbmcgdmFyaWFibGUgd2l0 aCBkZWZhdWx0IHByaXZpbGVnZXMKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJf YWNsOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMCBBUyBpbnQ7CitTRVQg Uk9MRSBUTyBERUZBVUxUOworCistLSBzaG91bGQgYmUgb2suIHNpbmNlIEFMVEVSIERFRkFVTFQg UFJJVklMRUdFUworLS0gYWxsb3cgcmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsIHRvIGhhdmUg U0VMRUNUIHByaXZpbGVkZ2UKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyX2FjbCcsICdzdmFydGVzdF9hY2wuc2VzdmFyMjAnLCAn U0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfdmFyaWFibGVfcmVhZGVyX2FjbCcsICdzdmFydGVzdF9hY2wuc2VzdmFyMjAnLCAnVVBE QVRFJyk7IC0tIHQKKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjA7CitEUk9Q IFNDSEVNQSBzdmFydGVzdF9hY2w7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXJf YWNsOworCistLQorLS0gYmVnaW4gb2YgY2hlY2sgR1JBTlQgV0lUSCBHUkFOVCBPUFRJT04gYW5k IFJFVk9LRSBHUkFOVEVEIEJZCistLQorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMV9h Y2w7CitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbDsKKworU0VUIFJPTEUgVE8g cmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUgVkFSSUFCTEUgc2VzdmFyMjJfYWNs IEFTIGludDsgICAgICAtLXNlc3ZhcjIyX2FjbCB3aWxsIG93bmVkIGJ5IHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXJfYWNsCisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wgVE8g cmVncmVzc192YXJpYWJsZV9yMV9hY2wgV0lUSCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyBy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzZXN2YXIy Ml9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9yMl9hY2wgV0lUSCBHUkFOVCBPUFRJT047CitTRVQg Uk9MRSBUTyBERUZBVUxUOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVD VCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IyX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0 CisKK1JFVk9LRSBBTEwgUFJJVklMRUdFUyBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wgRlJPTSBy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCBDQVNDQURFOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFy MjJfYWNsJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywg J1NFTEVDVCcpOyAtLSBmCisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNs OworCistLSBzaG91bGQgdG8gZmFpbAorR1JBTlQgSU5TRVJUIE9OIFZBUklBQkxFIHNlc3ZhcjIy X2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbDsKK0dSQU5UIERFTEVURSBPTiBWQVJJQUJM RSBzZXN2YXIyMl9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9yMl9hY2w7CisKKy0tIHNob3VsZCBi ZSBvaworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBUTyByZWdyZXNzX3Zh cmlhYmxlX3IyX2FjbDsKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1Qn KTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMl9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAor CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBGUk9NIHJlZ3Jlc3NfdmFyaWFi bGVfcjJfYWNsIEdSQU5URUQgQlkgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CisKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNs JywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3B1Ymxp Yy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsJywgJ3B1YmxpYy5zZXN2 YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0RST1Ag VkFSSUFCTEUgc2VzdmFyMjJfYWNsOworLS0KKy0tIGVuZCBvZiBjaGVjayBHUkFOVCBXSVRIIEdS QU5UIE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCisKKy0tCistLSBiZWdpbiBvZiB0 ZXN0OiBHUkFOVHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVN QQorLS0KK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfYWNsOworR1JBTlQgQUxMIE9OIFNDSEVNQSBz dmFydGVzdF9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitTRVQgUk9MRSBUTyBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2Fj bC5zZXN2YXIyMCBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3ZhcjIx IEFTIGludDsKKworR1JBTlQgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0 ZXN0X2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKKworU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc3ZhcnRlc3Rf YWNsLnNlc3ZhcjIwJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzdmFydGVzdF9hY2wuc2Vz dmFyMjEnLCAnU0VMRUNUJyk7IC0tIHQKKworUkVWT0tFIFNFTEVDVCBPTiBBTEwgVkFSSUFCTEVT IElOIFNDSEVNQSBzdmFydGVzdF9hY2wgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MV9hY2wnLCAnc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcs ICdzdmFydGVzdF9hY2wuc2VzdmFyMjEnLCAnU0VMRUNUJyk7IC0tIGYKKworU0VUIFJPTEUgVE8g REVGQVVMVDsKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwOworRFJPUCBWQVJJ QUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjE7CitEUk9QIFNDSEVNQSBzdmFydGVzdF9hY2w7Cist LQorLS0gZW5kIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJ QUJMRVMgSU4gU0NIRU1BCistLQorCistLQorLS0gZnVuY3Rpb24gaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlIGhhdmUgdmFyaW91cyBraW5kIG9mIHNpZ25hdHVyZS4KKy0tIHRoZSBmb2xs b3dpbmcgYXJlIGV4dGVuc2l2ZSB0ZXN0IGZvciBpdC4KKy0tCitTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyX2FjbDsKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5zZXN2YXIyMl9h Y2wgQVMgaW50OworCitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworCitHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxX2Fj bDsKK0dSQU5UIFNFTEVDVCwgVVBEQVRFIE9OIFZBUklBQkxFIHB1YmxpYy5zZXN2YXIyMl9hY2wg VE8gcmVncmVzc192YXJpYWJsZV9yMl9hY2w7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9h Y2wnLCAnU0VMRUNUJyk7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdwdWJsaWMubm90ZXhpc3RzJywgJ1NFTEVDVCcpIElT IE5VTEw7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcs ICdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3Nlc3ZhcjIyX2FjbCcs ICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAnc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0 CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IyX2FjbCcsICdzZXN2YXIyMl9hY2wnLCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgnc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0 CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdzZXN2YXIyMl9hY2wnLCAn VVBEQVRFJyk7IC0tIGYKKworU0VMRUNUIG9pZCBBUyB2YXJpZAorICBGUk9NIHBnX3ZhcmlhYmxl CisgIFdIRVJFIHZhcm5hbWUgPSAnc2VzdmFyMjJfYWNsJyBBTkQgdmFybmFtZXNwYWNlID0gJ3B1 YmxpYyc6OnJlZ25hbWVzcGFjZSBcZ3NldAorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsgLS0gZgor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IxX2FjbCcsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsIDp2YXJpZCwgJ1VQREFU RScpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IyX2FjbCcsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsIDp2YXJp ZCwgJ1VQREFURScpOyAtLSB0CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnOjpyZWdyb2xlLCAnc2Vz dmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCc6OnJlZ3JvbGUsICdzZXN2YXIyMl9h Y2wnLCAnVVBEQVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIyX2FjbCcsICdT RUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVn cmVzc192YXJpYWJsZV9yMl9hY2wnOjpyZWdyb2xlLCAnc2VzdmFyMjJfYWNsJywgJ1VQREFURScp OyAtLSB0CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjFfYWNsJzo6cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNs Jzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJzo6cmVncm9sZSwgOnZh cmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7 IC0tIHQKKy0tCistLSBlbmQgb2YgZnVuY3Rpb24gaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIHRlc3RzLgorLS0KKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBzZWFyY2hfcGF0aCBU TyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHB1YmxpYy5zZXN2YXIyMl9hY2w7CisKK0RST1Ag Uk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxl X3IyX2FjbDsKKworUkVWT0tFIEFMTCBPTiBTQ0hFTUEgcHVibGljIEZST00gcmVncmVzc192YXJp YWJsZV9vd25lcl9hY2w7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7Ci0t IAoyLjUxLjEKCg== --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Disposition: attachment; filename="v20251110-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5er13 RnJvbSBmNjdiMTBkNWQ1MDI2ZmI3ZWNiYTNhMzJhMzNjNTZmNWY4MDJkODBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjggTWF5IDIwMjUgMTE6MjY6MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDAy LzE1XSBDUkVBVEUsIERST1AsIEFMVEVSIFZBUklBQkxFCgpJbXBsZW1lbnRhdGlvbiBvZiBjb21t YW5kczoKCiAgICBDUkVBVEUgVkFSSUFCTEUgdmFybmFtZSBBUyB0eXBlCiAgICBEUk9QIFZBUklB QkxFIHZhcm5hbWUKICAgIEFMVEVSIFZBUklBQkxFIHZhcm5hbWUgT1dORVIgVE8KICAgIEFMVEVS IFZBUklBQkxFIHZhcm5hbWUgUkVOQU1FIFRPCiAgICBBTFRFUiBWQVJJQUJMRSB2YXJuYW1lIFNF VCBTQ0hFTUEKCkFMVEVSIGNvbW1hbmQgdXNlcyBhbHJlYWR5IHByZXBhcmVkIGluZnJhc3RydWN0 dXJlIGJhc2VkIG9uIE9iamVjdEFkZHJlc3MgQVBJLApzbyB0aGlzIHBhdGNoIGltcGxlbWVudHMg T2JqZWN0QWRkcmVzcyByZWxhdGVkIGZ1bmN0aW9uYWxpdHkgdG9vLgoKRXZlbnQgdHJpZ2dlcnMg Zm9yIERETCBvdmVyIHNlc3Npb24gdmFyaWFibGVzIGFyZSBzdXBwb3J0ZWQuCi0tLQogZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIxICsrCiBkb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTUgKysKIGRvYy9zcmMv c2dtbC9wbHBnc3FsLnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAxNCArKwogZG9jL3NyYy9z Z21sL3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAgICAgIHwgICAzICsKIGRvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8IDE3OCArKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sICAgICAgICAgICAgICAgICB8ICAgMSArCiBk b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCAgICAgICAgICAgfCAgMTIgKy0KIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8IDE0OSArKysrKysr KysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAx MTcgKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAg ICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAg ICB8ICAgNCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAg fCAgIDYgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICAgICAgICAgICAgIHwg MjA3ICsrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNz LmMgICAgICAgICAgIHwgIDk5ICsrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRl cGVuZC5jICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxl ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAg ICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAg ICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIu YyAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZCAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAg ICAgICB8ICA4OCArKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAg ICAgICAgICAgIHwgIDQxICsrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgICAg ICAgICAgICAgICB8ICAxNSArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAg ICAgICAgICAgIHwgIDg2ICsrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNt ZC5jICAgICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAg ICAgICAgICAgICAgIHwgIDIwICsrCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUu YyAgICAgICAgICAgfCAgNjUgKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5o ICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oICAgICAgIHwgIDI0ICsrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAg ICAgICAgICAgICAgfCAgMTYgKysKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAg ICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAg ICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQg ICAgICB8ICAxNyArKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgICAg ICAgIHwgMTYzICsrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3ku c3FsICAgICAgICAgICB8ICAxNCArKwogLi4uL3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz X2RkbC5zcWwgICAgIHwgMTUwICsrKysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiA0MCBmaWxlcyBjaGFuZ2VkLCAxNTcxIGlu c2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMv c2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2lu Y2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0CiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNx bAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwu c2dtbAppbmRleCA5NDhiOTMyN2YyNC4uNzZjOTFlYTQ2MWQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU2NTQsNiArNTY1 NCwyNyBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxv Z2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAgICA8L3BhcmE+CiAgPC9zZWN0MT4KIAor ICA8c2VjdDEgaWQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyI+CisgICA8dGl0bGU+U2Vzc2lvbiBW YXJpYWJsZXM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJtIHpvbmU9ImRkbC1zZXNzaW9uLXZhcmlh YmxlcyI+CisgICAgPHByaW1hcnk+U2Vzc2lvbiB2YXJpYWJsZXM8L3ByaW1hcnk+CisgICA8L2lu ZGV4dGVybT4KKworICAgPGluZGV4dGVybT4KKyAgICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxl PC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxwYXJhPgorICAgIFNlc3Npb24gdmFy aWFibGVzIGFyZSBkYXRhYmFzZSBvYmplY3RzIHRoYXQgY2FuIGhvbGQgYSB2YWx1ZS4KKyAgIDwv cGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIHNlc3Npb24gdmFyaWFibGUgaG9sZHMgdmFsdWUg aW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzIHZhbHVlIGlzIHByaXZhdGUKKyAgICB0byBlYWNoIHNl c3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4KKyAgIDwvcGFyYT4K KyAgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CiAgIDx0aXRsZT5PdGhlciBE YXRhYmFzZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3Nz YXJ5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBhNzZjZjVjMzgzZi4u OGY2OTdiYjIyNjYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0xNzI2LDYgKzE3MjYsMjEgQEAKICAgIDwv Z2xvc3NkZWY+CiAgIDwvZ2xvc3NlbnRyeT4KIAorICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnkt c2Vzc2lvbi12YXJpYWJsZSI+CisgICA8Z2xvc3N0ZXJtPlNlc3Npb24gdmFyaWFibGU8L2dsb3Nz dGVybT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBwZXJzaXN0ZW50IGRhdGFi YXNlIG9iamVjdCB0aGF0IGhvbGRzIGEgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzCisg ICAgIHZhbHVlIGlzIHByaXZhdGUgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVu IHRoZSBzZXNzaW9uIGVuZHMuCisgICAgIFJlYWQgb3Igd3JpdGUgYWNjZXNzIHRvIHNlc3Npb24g dmFyaWFibGVzIGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywKKyAgICAgc2ltaWxhciB0byBv dGhlciBkYXRhYmFzZSBvYmplY3RzLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAgRm9y IG1vcmUgaW5mb3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJs ZXMiLz4uCisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCiAg IDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1zaGFyZWQtbWVtb3J5Ij4KICAgIDxnbG9zc3Rlcm0+ U2hhcmVkIG1lbW9yeTwvZ2xvc3N0ZXJtPgogICAgPGdsb3NzZGVmPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXgg YjU2MWI0Y2M1ODAuLmRlMTBjMzU2ZmUxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGxwZ3Nx bC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKQEAgLTYwMzYsNiArNjAzNiwy MCBAQCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNUUklDVCBJTU1VVEFCTEU7CiA8L3Byb2dyYW1saXN0 aW5nPgogICAgIDwvcGFyYT4KICAgIDwvc2VjdDM+CisKKyAgIDxzZWN0MyBpZD0icGxwZ3NxbC1w b3J0aW5nLXBhY2thZ2UtdmFyaWFibGVzIj4KKyAgICA8dGl0bGU+PGNvbW1hbmQ+UGFja2FnZXMg YW5kIHBhY2thZ2UgdmFyaWFibGVzPC9jb21tYW5kPjwvdGl0bGU+CisKKyAgICA8cGFyYT4KKyAg ICAgVGhlIDxhcHBsaWNhdGlvbj5QTC9wZ1NRTDwvYXBwbGljYXRpb24+IGxhbmd1YWdlIGhhcyBu byBwYWNrYWdlcywgYW5kCisgICAgIHRoZXJlZm9yZSBubyBwYWNrYWdlIHZhcmlhYmxlcyBvciBw YWNrYWdlIGNvbnN0YW50cy4KKyAgICAgWW91IGNhbiBjb25zaWRlciB0cmFuc2xhdGluZyBhbiBP cmFjbGUgcGFja2FnZSBpbnRvIGEgc2NoZW1hIGluCisgICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3Jl U1FMPC9wcm9kdWN0bmFtZT4uICBQYWNrYWdlIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcworICAg ICB3b3VsZCB0aGVuIGJlY29tZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgaW4gdGhhdCBzY2hl bWEsIGFuZCBwYWNrYWdlCisgICAgIHZhcmlhYmxlcyBjb3VsZCBiZSB0cmFuc2xhdGVkIHRvIHNl c3Npb24gdmFyaWFibGVzIGluIHRoYXQgc2NoZW1hLgorICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9 ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPikuCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mz4KICAg PC9zZWN0Mj4KIAogICA8c2VjdDIgaWQ9InBscGdzcWwtcG9ydGluZy1hcHBlbmRpeCI+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsbGZpbGVzLnNnbWwKaW5kZXggZTE2NzQwNmM3NDQuLjYxZGIyMmE0YzI1IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9h bGxmaWxlcy5zZ21sCkBAIC00Nyw2ICs0Nyw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNn bWwgc291cmNlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgYWx0ZXJUeXBlICAg ICAgICAgIFNZU1RFTSAiYWx0ZXJfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVXNlciAgICAg ICAgICBTWVNURU0gImFsdGVyX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBhbHRlclVzZXJNYXBwaW5n ICAgU1lTVEVNICJhbHRlcl91c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElUWSBhbHRlclZhcmlh YmxlICAgICAgU1lTVEVNICJhbHRlcl92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVmll dyAgICAgICAgICBTWVNURU0gImFsdGVyX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBhbmFseXplICAg ICAgICAgICAgU1lTVEVNICJhbmFseXplLnNnbWwiPgogPCFFTlRJVFkgYmVnaW4gICAgICAgICAg ICAgIFNZU1RFTSAiYmVnaW4uc2dtbCI+CkBAIC05OSw2ICsxMDAsNyBAQCBDb21wbGV0ZSBsaXN0 IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZ IGNyZWF0ZVR5cGUgICAgICAgICBTWVNURU0gImNyZWF0ZV90eXBlLnNnbWwiPgogPCFFTlRJVFkg Y3JlYXRlVXNlciAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBj cmVhdGVVc2VyTWFwcGluZyAgU1lTVEVNICJjcmVhdGVfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFF TlRJVFkgY3JlYXRlVmFyaWFibGUgICAgIFNZU1RFTSAiY3JlYXRlX3ZhcmlhYmxlLnNnbWwiPgog PCFFTlRJVFkgY3JlYXRlVmlldyAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3ZpZXcuc2dtbCI+CiA8 IUVOVElUWSBkZWFsbG9jYXRlICAgICAgICAgU1lTVEVNICJkZWFsbG9jYXRlLnNnbWwiPgogPCFF TlRJVFkgZGVjbGFyZSAgICAgICAgICAgIFNZU1RFTSAiZGVjbGFyZS5zZ21sIj4KQEAgLTE0Nyw2 ICsxNDksNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0 aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGRyb3BUeXBlICAgICAgICAgICBTWVNURU0gImRyb3Bf dHlwZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2VyICAgICAgICAgICBTWVNURU0gImRyb3BfdXNl ci5zZ21sIj4KIDwhRU5USVRZIGRyb3BVc2VyTWFwcGluZyAgICBTWVNURU0gImRyb3BfdXNlcl9t YXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgZHJvcFZhcmlhYmxlICAgICAgIFNZU1RFTSAiZHJvcF92 YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BWaWV3ICAgICAgICAgICBTWVNURU0gImRyb3Bf dmlldy5zZ21sIj4KIDwhRU5USVRZIGVuZCAgICAgICAgICAgICAgICBTWVNURU0gImVuZC5zZ21s Ij4KIDwhRU5USVRZIGV4ZWN1dGUgICAgICAgICAgICBTWVNURU0gImV4ZWN1dGUuc2dtbCI+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjk2ZDI1ODY0MjNlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTc4IEBACis8IS0tCitkb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgor LS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWFsdGVydmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9u ZT0ic3FsLWFsdGVydmFyaWFibGUiPgorICA8cHJpbWFyeT5BTFRFUiBWQVJJQUJMRTwvcHJpbWFy eT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFy aWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+YWx0ZXJpbmc8L3NlY29uZGFyeT4KKyA8L2lu ZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBWQVJJQUJMRTwv cmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5m bz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisK KyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxy ZWZwdXJwb3NlPgorICAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgc2Vzc2lvbiB2YXJpYWJs ZQorICA8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2Pgor PHN5bm9wc2lzPgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNF UiB8IFNFU1NJT05fVVNFUiB9CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgVkFSSUFCTEUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgU0NIRU1BIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT4KKzwv c3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRl c2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5BTFRFUiBWQVJJ QUJMRTwvY29tbWFuZD4gY29tbWFuZCBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGFuCisgICBl eGlzdGluZyBzZXNzaW9uIHZhcmlhYmxlLiBUaGVyZSBhcmUgc2V2ZXJhbCBzdWJmb3JtczoKKwor ICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5P V05FUjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoaXMgZm9ybSBjaGFuZ2VzIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZh cmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUg bmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48 bGl0ZXJhbD5TRVQgU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgVGhpcyBmb3JtIG1vdmVzIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGludG8g YW5vdGhlciBzY2hlbWEuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAg IE9ubHkgdGhlIG93bmVyIG9yIGEgc3VwZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYWx0ZXIgYSBzZXNz aW9uIHZhcmlhYmxlLgorICAgSW4gb3JkZXIgdG8gbW92ZSBhIHNlc3Npb24gdmFyaWFibGUgZnJv bSBvbmUgc2NoZW1hIHRvIGFub3RoZXIsIHRoZSB1c2VyCisgICBtdXN0IGFsc28gaGF2ZSB0aGUg PGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIG5ldyBzY2hlbWEgKG9y CisgICBiZSBhIHN1cGVydXNlcikuCisKKyAgIEluIG9yZGVyIHRvIG1vdmUgdGhlIHNlc3Npb24g dmFyaWFibGUgb3duZXJzaGlwIGZyb20gb25lIHJvbGUgdG8gYW5vdGhlciwKKyAgIHRoZSB1c2Vy IG11c3QgYWxzbyBiZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIgb2YgdGhlIG5ldworICAg b3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlIHRoZSA8bGl0ZXJhbD5DUkVBVEU8 L2xpdGVyYWw+IHByaXZpbGVnZQorICAgb24gdGhlIHNlc3Npb24gdmFyaWFibGUncyBzY2hlbWEg KG9yIGJlIGEgc3VwZXJ1c2VyKS4gVGhlc2UgcmVzdHJpY3Rpb25zCisgICBlbmZvcmNlIHRoYXQg YWx0ZXJpbmcgdGhlIG93bmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5 CisgICBkcm9wcGluZyBhbmQgcmVjcmVhdGluZyB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgPC9w YXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90 aXRsZT4KKworICAgPHBhcmE+CisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3RlbnRy eT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAg IFRoZSBuYW1lIChwb3NzaWJseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgZXhpc3Rpbmcgc2Vz c2lvbiB2YXJpYWJsZQorICAgICAgICB0byBhbHRlci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5Pgor ICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVw bGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAg ICBUaGUgdXNlciBuYW1lIG9mIHRoZSBuZXcgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUu CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IG5hbWUgZm9yIHRoZSBzZXNzaW9uIHZh cmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAg PGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IHNjaGVtYSBmb3IgdGhl IHNlc3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAg ICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+CisgICA8L3BhcmE+CisgIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBUbyByZW5hbWUgYSBzZXNzaW9uIHZhcmlhYmxlOgorPHByb2dyYW1saXN0aW5n PgorQUxURVIgVkFSSUFCTEUgZm9vIFJFTkFNRSBUTyBib287Cis8L3Byb2dyYW1saXN0aW5nPgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBzZXNz aW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwv bGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28gT1dORVIgVE8g am9lOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hh bmdlIHRoZSBzY2hlbWEgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9saXRl cmFsPiB0bworICAgPGxpdGVyYWw+cHJpdmF0ZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+ CitBTFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVNQSBwcml2YXRlOworPC9wcm9ncmFtbGlzdGlu Zz4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21w YXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFuZCB0 aGlzIGNvbW1hbmQgaW4gcGFydGljdWxhciBhcmUgYSBQb3N0Z3JlU1FMIGV4dGVuc2lvbi4KKyAg PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNxbC1hbHRlcnZhcmlhYmxl LXNlZS1hbHNvIj4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0 eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFi bGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJs ZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvY29tbWVudC5zZ21sCmluZGV4IDhkODEyNDQ5MTBiLi41MzM2YmY0ZWFlNiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jb21tZW50LnNnbWwKQEAgLTY1LDYgKzY1LDcgQEAgQ09NTUVOVCBPTgogICBUUkFOU0ZPUk0g Rk9SIDxyZXBsYWNlYWJsZT50eXBlX25hbWU8L3JlcGxhY2VhYmxlPiBMQU5HVUFHRSA8cmVwbGFj ZWFibGU+bGFuZ19uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBUUklHR0VSIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8L3JlcGxhY2VhYmxlPiBPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFlQRSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPiB8 CisgIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwv cmVwbGFjZWFibGU+IHwKICAgVklFVyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2Jq ZWN0X25hbWU8L3JlcGxhY2VhYmxlPgogfSBJUyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5zdHJpbmdfbGl0ZXJhbDwvcmVwbGFjZWFibGU+IHwgTlVMTCB9CiAKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfc2NoZW1hLnNnbWwKaW5kZXggZWQ2OTI5OGNjYzYuLmQyYmIyNjUyMDliIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbApAQCAtMTAzLDkgKzEwMywxMCBAQCBDUkVBVEUgU0NI RU1BIElGIE5PVCBFWElTVFMgQVVUSE9SSVpBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9zcAogICAgICAgICBzY2hlbWEuIEN1cnJlbnRseSwgb25seSA8Y29tbWFuZD5D UkVBVEUKICAgICAgICAgVEFCTEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUgVklFVzwvY29t bWFuZD4sIDxjb21tYW5kPkNSRUFURQogICAgICAgICBJTkRFWDwvY29tbWFuZD4sIDxjb21tYW5k PkNSRUFURSBTRVFVRU5DRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURQotICAgICAgICBUUklH R0VSPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFyZSBhY2NlcHRlZCBh cyBjbGF1c2VzCi0gICAgICAgIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUgU0NIRU1BPC9jb21tYW5k Pi4gT3RoZXIga2luZHMgb2Ygb2JqZWN0cyBtYXkKLSAgICAgICAgYmUgY3JlYXRlZCBpbiBzZXBh cmF0ZSBjb21tYW5kcyBhZnRlciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQuCisgICAgICAgIFRSSUdH RVI8L2NvbW1hbmQ+LCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkNSRUFU RQorICAgICAgICBWQVJJQUJMRTwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVzZXMgd2l0 aGluIDxjb21tYW5kPkNSRUFURQorICAgICAgICBTQ0hFTUE8L2NvbW1hbmQ+LiBPdGhlciBraW5k cyBvZiBvYmplY3RzIG1heSBiZSBjcmVhdGVkIGluIHNlcGFyYXRlCisgICAgICAgIGNvbW1hbmRz IGFmdGVyIHRoZSBzY2hlbWEgaXMgY3JlYXRlZC4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xp c3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTIxNCw2ICsyMTUsMTEgQEAgQ1JFQVRF IFZJRVcgaG9sbHl3b29kLndpbm5lcnMgQVMKICAgIFRoZSA8bGl0ZXJhbD5JRiBOT1QgRVhJU1RT PC9saXRlcmFsPiBvcHRpb24gaXMgYQogICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPiBleHRlbnNpb24uCiAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFu ZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHByb2R1Y3RuYW1l PlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4KICA8L3JlZnNl Y3QxPgogCiAgPHJlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZlOTg4ZjJlNDcyCi0tLSAvZGV2 L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMCww ICsxLDE0OSBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAor UG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRl dmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyAgPHBy aW1hcnk+Q1JFQVRFIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4 dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFy eT5kZWZpbmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkNSRUFURSBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51 bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRz PC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+ Q1JFQVRFIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBzZXNzaW9u IHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rp dj4KKzxzeW5vcHNpcz4KK0NSRUFURSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRF IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBd Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisgPHJlZnNlY3QxPgorICA8dGl0bGU+ RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBW QVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBjcmVhdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAg IFNlc3Npb24gdmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1h IGFuZCB0aGVpciBhY2Nlc3MgaXMKKyAgIGNvbnRyb2xsZWQgdmlhIHRoZSBjb21tYW5kcyA8Y29t bWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4uCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMg bG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gIFJldHJpZXZpbmcKKyAgIGEgc2Vzc2lvbiB2 YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCwgdW5sZXNzIGl0cyB2YWx1ZSBpcyBzZXQgdG8K KyAgIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gd2l0aCBhIDxjb21tYW5k PkxFVDwvY29tbWFuZD4gY29tbWFuZC4KKyAgIFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2YXJp YWJsZSBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcworICAgcmVndWxh ciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMuCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNF TEVDVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGVpciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgorICA8L3BhcmE+CisKKyAgPG5vdGU+Cisg ICA8cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgPHF1b3RlPnNoYWRvd2VkPC9x dW90ZT4gYnkgb3RoZXIgaWRlbnRpZmllcnMuCisgICAgRm9yIGRldGFpbHMsIHNlZSA8eHJlZiBs aW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4uCisgICA8L3BhcmE+CisgIDwvbm90ZT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+ CisKKyAgPHZhcmlhYmxlbGlzdD4KKworICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2 YXJpYWJsZS1pZi1ub3QtZXhpc3RzIj4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RT PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8g bm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBuYW1lIGFscmVhZHkgZXhpc3RzLiBBIG5vdGljZSBp cyBpc3N1ZWQgaW4KKyAgICAgIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLW5hbWUiPgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBzZXNz aW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGF0YV90 eXBlIj4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBl PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBkYXRhIHR5cGUg b2YgdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3Jl YXRldmFyaWFibGUtY29sbGF0ZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+Q09MTEFURSA8cmVwbGFj ZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+Q09MTEFURTwvbGl0ZXJhbD4g Y2xhdXNlIGFzc2lnbnMgYSBjb2xsYXRpb24gdG8gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxl ICh3aGljaCBtdXN0IGJlIG9mIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUpLiAgSWYgbm90IHNwZWNp ZmllZCwKKyAgICAgIHRoZSBkYXRhIHR5cGUncyBkZWZhdWx0IGNvbGxhdGlvbiBpcyB1c2VkLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwv dmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Ob3Rl czwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBVc2UgdGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8 L2NvbW1hbmQ+IGNvbW1hbmQgdG8gcmVtb3ZlIGEgc2Vzc2lvbgorICAgdmFyaWFibGUuCisgIDwv cGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3Rp dGxlPgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0 ZXJhbD52YXIxPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGRhdGU7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBh cmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlz IGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgor ICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNv PC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4K KyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dt bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWJkYjM1NjBmMGIKLS0t IC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApAQCAt MCwwICsxLDExNyBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwK K1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWRyb3B2 YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtZHJvcHZhcmlhYmxlIj4KKyAgPHByaW1h cnk+RFJPUCBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+ CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+cmVt b3Zpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50 cnl0aXRsZT5EUk9QIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21h bnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1p c2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5EUk9QIFZB UklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBzZXNzaW9uIHZhcmlhYmxl PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5v cHNpcz4KK0RST1AgVkFSSUFCTEUgWyBJRiBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gWyBDQVNDQURFIHwgUkVTVFJJQ1Qg XQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+RFJPUCBWQVJJ QUJMRTwvY29tbWFuZD4gcmVtb3ZlcyBhIHNlc3Npb24gdmFyaWFibGUuCisgICBBIHNlc3Npb24g dmFyaWFibGUgY2FuIG9ubHkgYmUgcmVtb3ZlZCBieSBpdHMgb3duZXIgb3IgYSBzdXBlcnVzZXIu CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1l dGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBzZXNzaW9u IHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0LiBBIG5vdGljZSBpcworICAgICAgaXNzdWVkIGluIHRo aXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiBh IHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+Q0FT Q0FERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IEF1dG9tYXRpY2FsbHkgZHJvcCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRoZSBzZXNzaW9uIHZh cmlhYmxlIChzdWNoIGFzCisgICAgICB2aWV3cyksIGFuZCBpbiB0dXJuIGFsbCBvYmplY3RzIHRo YXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRs LWRlcGVuZCIvPikuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8 L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWZ1 c2UgdG8gZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpZiBhbnkgb2JqZWN0cyBkZXBlbmQgb24g aXQuICBUaGlzIGlzCisgICAgICB0aGUgZGVmYXVsdC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4K KyAgIFRvIHJlbW92ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFs PjoKKworPHByb2dyYW1saXN0aW5nPgorRFJPUCBWQVJJQUJMRSB2YXIxOworPC9wcm9ncmFtbGlz dGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBh dGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkRST1AgVkFSSUFC TEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3By b2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9Imlu bGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9t ZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwv bWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZl cmVuY2Uuc2dtbAppbmRleCAyY2YwMmMzN2IxNy4uMGZlMzNhN2VmY2IgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNn bWwKQEAgLTc1LDYgKzc1LDcgQEAKICAgICZhbHRlclR5cGU7CiAgICAmYWx0ZXJVc2VyOwogICAg JmFsdGVyVXNlck1hcHBpbmc7CisgICAmYWx0ZXJWYXJpYWJsZTsKICAgICZhbHRlclZpZXc7CiAg ICAmYW5hbHl6ZTsKICAgICZiZWdpbjsKQEAgLTEyNyw2ICsxMjgsNyBAQAogICAgJmNyZWF0ZVR5 cGU7CiAgICAmY3JlYXRlVXNlcjsKICAgICZjcmVhdGVVc2VyTWFwcGluZzsKKyAgICZjcmVhdGVW YXJpYWJsZTsKICAgICZjcmVhdGVWaWV3OwogICAgJmRlYWxsb2NhdGU7CiAgICAmZGVjbGFyZTsK QEAgLTE3NSw2ICsxNzcsNyBAQAogICAgJmRyb3BUeXBlOwogICAgJmRyb3BVc2VyOwogICAgJmRy b3BVc2VyTWFwcGluZzsKKyAgICZkcm9wVmFyaWFibGU7CiAgICAmZHJvcFZpZXc7CiAgICAmZW5k OwogICAgJmV4ZWN1dGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCBjZDEzOWJkNjVhNi4uMDBlMzYz MGUwZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtMjc4NCw2ICsyNzg0LDcgQEAgYWNsY2hlY2tf ZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9C SkVDVF9UU1BBUlNFUjoKIAkJCQkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJCQkJY2FzZSBP QkpFQ1RfVVNFUl9NQVBQSU5HOgorCQkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCQkJCWVs b2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0eXBlKTsKIAkJCQl9 CiAKQEAgLTI4OTEsNiArMjg5Miw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIs IE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQkJ CQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHRleHQgc2VhcmNoIGRpY3Rp b25hcnkgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJ CQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxl ICVzIik7CisJCQkJCQlicmVhazsKIAogCQkJCQkJLyoKIAkJCQkJCSAqIFNwZWNpYWwgY2FzZXM6 IEZvciB0aGVzZSwgdGhlIGVycm9yIG1lc3NhZ2UgdGFsa3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5 LmMKaW5kZXggN2RkZWQ2MzRlYjguLjFkNjJlNjNkNGY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVu Y3kuYwpAQCAtNjUsMTIgKzY1LDE0IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0 ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNp bmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXh0 ZW5zaW9uLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcG9saWN5LmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVu Y2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCkBAIC0xNDQ0LDYgKzE0NDYsMTAg QEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBmbGFncykKIAkJ CVJlbW92ZVB1YmxpY2F0aW9uQnlJZChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJyZWFrOwogCisJ CWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJRHJvcFZhcmlhYmxlQnlJZChvYmplY3QtPm9i amVjdElkKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgQ2FzdFJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29s bGF0aW9uUmVsYXRpb25JZDoKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jCmluZGV4IGQyMzQ3NGRhNGZiLi5hYjgzN2EzY2I5ZSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19w YXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2lu Y2x1ZGUgImNvbW1vbi9oYXNoZm5fdW5zdGFibGUuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAj aW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKQEAgLTIyNCw2ICsyMjUsNyBAQCBzdGF0aWMgYm9vbCBU U1BhcnNlcklzVmlzaWJsZUV4dChPaWQgcHJzSWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGlj IGJvb2wgVFNEaWN0aW9uYXJ5SXNWaXNpYmxlRXh0KE9pZCBkaWN0SWQsIGJvb2wgKmlzX21pc3Np bmcpOwogc3RhdGljIGJvb2wgVFNUZW1wbGF0ZUlzVmlzaWJsZUV4dChPaWQgdG1wbElkLCBib29s ICppc19taXNzaW5nKTsKIHN0YXRpYyBib29sIFRTQ29uZmlnSXNWaXNpYmxlRXh0KE9pZCBjZmdp ZCwgYm9vbCAqaXNfbWlzc2luZyk7CitzdGF0aWMgYm9vbCBWYXJpYWJsZUlzVmlzaWJsZUV4dChP aWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIHZvaWQgcmVjb21wdXRlTmFtZXNw YWNlUGF0aCh2b2lkKTsKIHN0YXRpYyB2b2lkIEFjY2Vzc1RlbXBUYWJsZU5hbWVzcGFjZShib29s IGZvcmNlKTsKIHN0YXRpYyB2b2lkIEluaXRUZW1wVGFibGVOYW1lc3BhY2Uodm9pZCk7CkBAIC05 ODUsNiArOTg3LDg0IEBAIFJlbGF0aW9uSXNWaXNpYmxlRXh0KE9pZCByZWxpZCwgYm9vbCAqaXNf bWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFZhcmlhYmxlSXNWaXNpYmxl CisgKgkJRGV0ZXJtaW5lIHdoZXRoZXIgYSB2YXJpYWJsZSAoaWRlbnRpZmllZCBieSBPSUQpIGlz IHZpc2libGUgaW4gdGhlCisgKgkJY3VycmVudCBzZWFyY2ggcGF0aC4gVmlzaWJsZSBtZWFucyAi d291bGQgYmUgZm91bmQgYnkgc2VhcmNoaW5nCisgKgkJZm9yIHRoZSB1bnF1YWxpZmllZCB2YXJp YWJsZSBuYW1lIi4KKyAqLworYm9vbAorVmFyaWFibGVJc1Zpc2libGUoT2lkIHZhcmlkKQorewor CXJldHVybiBWYXJpYWJsZUlzVmlzaWJsZUV4dCh2YXJpZCwgTlVMTCk7Cit9CisKKy8qCisgKiBW YXJpYWJsZUlzVmlzaWJsZUV4dAorICoJCUFzIGFib3ZlLCBidXQgaWYgdGhlIHZhcmlhYmxlIGlz bid0IGZvdW5kIGFuZCBpc19taXNzaW5nIGlzIG5vdCBOVUxMLAorICoJCXRoZW4gc2V0ICppc19t aXNzaW5nID0gdHJ1ZSBhbmQgcmV0dXJuIGZhbHNlLCBpbnN0ZWFkIG9mIHRocm93aW5nCisgKgkJ YW4gZXJyb3IuIChDYWxsZXIgbXVzdCBpbml0aWFsaXplICppc19taXNzaW5nID0gZmFsc2UuKQor ICovCitzdGF0aWMgYm9vbAorVmFyaWFibGVJc1Zpc2libGVFeHQoT2lkIHZhcmlkLCBib29sICpp c19taXNzaW5nKQoreworCUhlYXBUdXBsZQl2YXJ0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJm b3JtOworCU9pZAkJCXZhcm5hbWVzcGFjZTsKKwlib29sCQl2aXNpYmxlOworCisJdmFydHVwID0g U2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHZhcnR1cCkpCisJeworCQlpZiAoaXNfbWlzc2luZyAhPSBO VUxMKQorCQl7CisJCQkqaXNfbWlzc2luZyA9IHRydWU7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0K KworCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSAldSIsIHZhcmlkKTsKKwl9CisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJV Q1QodmFydHVwKTsKKworCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCS8qCisJICogUXVp Y2sgY2hlY2s6IGlmIGl0IGFpbid0IGluIHRoZSBwYXRoIGF0IGFsbCwgaXQgYWluJ3QgdmlzaWJs ZS4gV2UgZG9uJ3QKKwkgKiBleHBlY3QgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhl IHN5c3RlbSBuYW1lc3BhY2UuCisJICovCisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+dmFybmFt ZXNwYWNlOworCWlmICghbGlzdF9tZW1iZXJfb2lkKGFjdGl2ZVNlYXJjaFBhdGgsIHZhcm5hbWVz cGFjZSkpCisJCXZpc2libGUgPSBmYWxzZTsKKwllbHNlCisJeworCQkvKgorCQkgKiBJZiBpdCBp cyBpbiB0aGUgcGF0aCwgaXQgbWlnaHQgc3RpbGwgbm90IGJlIHZpc2libGU7IGl0IGNvdWxkIGJl CisJCSAqIGhpZGRlbiBieSBhbm90aGVyIHZhcmlhYmxlIG9mIHRoZSBzYW1lIG5hbWUgZWFybGll ciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBhIHNsb3cgY2hlY2sgZm9yIGNvbmZs aWN0aW5nIHJlbGF0aW9ucy4KKwkJICovCisJCWNoYXIJICAgKnZhcm5hbWUgPSBOYW1lU3RyKHZh cmZvcm0tPnZhcm5hbWUpOworCisJCXZpc2libGUgPSBmYWxzZTsKKwkJZm9yZWFjaF9vaWQobmFt ZXNwYWNlSWQsIGFjdGl2ZVNlYXJjaFBhdGgpCisJCXsKKwkJCWlmIChuYW1lc3BhY2VJZCA9PSB2 YXJuYW1lc3BhY2UpCisJCQl7CisJCQkJLyogZm91bmQgaXQgZmlyc3QgaW4gcGF0aCAqLworCQkJ CXZpc2libGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKE9pZElzVmFsaWQoZ2V0 X3Zhcm5hbWVfdmFyaWQodmFybmFtZSwgbmFtZXNwYWNlSWQpKSkKKwkJCXsKKwkJCQkvKiBmb3Vu ZCBzb21ldGhpbmcgZWxzZSBmaXJzdCBpbiBwYXRoICovCisJCQkJYnJlYWs7CisJCQl9CisJCX0K Kwl9CisKKwlSZWxlYXNlU3lzQ2FjaGUodmFydHVwKTsKKworCXJldHVybiB2aXNpYmxlOworfQog CiAvKgogICogVHlwZW5hbWVHZXRUeXBpZApAQCAtMzM1OSw2ICszNDM5LDEzMyBAQCBUU0NvbmZp Z0lzVmlzaWJsZUV4dChPaWQgY2ZnaWQsIGJvb2wgKmlzX21pc3NpbmcpCiAJcmV0dXJuIHZpc2li bGU7CiB9CiAKKy8qCisgKiBSZXR1cm5zIG9pZCBvZiBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmll ZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRlbnRpZmllci4KKyAqCisgKiBJZiBub3QgZm91bmQs IHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29rLCBlbHNlIHRocm93cyBlcnJvci4KKyAq LworT2lkCitMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLAorCQkJICAgY29uc3Qg Y2hhciAqdmFybmFtZSwKKwkJCSAgIGJvb2wgbWlzc2luZ19vaykKK3sKKwlPaWQJCQl2YXJvaWQg PSBJbnZhbGlkT2lkOworCisJaWYgKG5zcG5hbWUpCisJeworCQlPaWQJCQluYW1lc3BhY2VJZCA9 IExvb2t1cEV4cGxpY2l0TmFtZXNwYWNlKG5zcG5hbWUsIG1pc3Npbmdfb2spOworCisJCS8qIGlm IG5zcG5hbWUgaXMgYSBrbm93biBuYW1lc3BhY2UsIHRoZSB2YXJpYWJsZSBtdXN0IGJlIHRoZXJl ICovCisJCWlmIChPaWRJc1ZhbGlkKG5hbWVzcGFjZUlkKSkKKwkJeworCQkJdmFyb2lkID0gR2V0 U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJ CQkJCQkgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0 dW0obmFtZXNwYWNlSWQpKTsKKwkJfQorCX0KKwllbHNlCisJeworCQkvKiBpdGVyYXRlIG92ZXIg dGhlIHNjaGVtYXMgb24gdGhlIHNlYXJjaF9wYXRoICovCisJCXJlY29tcHV0ZU5hbWVzcGFjZVBh dGgoKTsKKworCQlmb3JlYWNoX29pZChuYW1lc3BhY2VJZCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJ eworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192 YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJ CQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKworCQkJaWYgKE9pZElzVmFsaWQo dmFyb2lkKSkKKwkJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghT2lkSXNWYWxpZCh2YXJvaWQp ICYmICFtaXNzaW5nX29rKQorCXsKKwkJaWYgKG5zcG5hbWUpCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJz ZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJbnNwbmFt ZSwgdmFybmFtZSkpKTsKKwkJZWxzZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXZhcm5hbWUpKSk7CisJfQorCisJcmV0 dXJuIHZhcm9pZDsKK30KKworLyoKKyAqIFJldHVybnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUg c3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxpZmllZCBpZGVudGlmaWVyCisgKgorICogSWYgbm90 IGZvdW5kLCByZXR1cm5zIEludmFsaWRPaWQgaWYgbWlzc2luZ19vaywgZWxzZSB0aHJvd3MgZXJy b3IuCisgKi8KK09pZAorTG9va3VwVmFyaWFibGVGcm9tTmFtZUxpc3QoTGlzdCAqbmFtZXMsCisJ CQkJCQkgICBib29sIG1pc3Npbmdfb2spCit7CisJY2hhcgkgICAqY2F0bmFtZSA9IE5VTEw7CisJ Y2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7CisJY2hhcgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlz d2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwl7CisJCWNhc2UgMToKKwkJCXZhcm5hbWUgPSBz dHJWYWwobGluaXRpYWwobmFtZXMpKTsKKwkJCWJyZWFrOworCQljYXNlIDI6CisJCQluc3BuYW1l ID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQl2YXJuYW1lID0gc3RyVmFsKGxzZWNvbmQo bmFtZXMpKTsKKwkJCWJyZWFrOworCQljYXNlIDM6CisJCQljYXRuYW1lID0gc3RyVmFsKGxpbml0 aWFsKG5hbWVzKSk7CisJCQluc3BuYW1lID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCXZh cm5hbWUgPSBzdHJWYWwobHRoaXJkKG5hbWVzKSk7CisKKwkJCS8qIGNoZWNrIGNhdGFsb2cgbmFt ZSAqLworCQkJaWYgKHN0cmNtcChjYXRuYW1lLCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNl SWQpKSAhPSAwKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZl cmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwKKwkJCQkJCQkJTmFtZUxpc3RUb1N0cmlu ZyhuYW1lcykpKSk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiaW1wcm9w ZXIgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAlcyIsCisJ CQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQlicmVhazsKKwl9CisKKwlyZXR1 cm4gTG9va3VwVmFyaWFibGUobnNwbmFtZSwgdmFybmFtZSwgbWlzc2luZ19vayk7Cit9CisKKy8q CisgKiBUaGUgaW5wdXQgbGlzdCBjb250YWlucyBuYW1lcyB3aXRoIGluZGlyZWN0aW9uIGV4cHJl c3Npb25zIHVzZWQgYXMgdGhlIGxlZnQKKyAqIHBhcnQgb2YgTEVUIHN0YXRlbWVudC4gVGhlIGZv bGxvd2luZyByb3V0aW5lIHJldHVybnMgYSBuZXcgbGlzdCB3aXRoIG9ubHkKKyAqIGluaXRpYWwg c3RyaW5ncyAobmFtZXMpIC0gd2l0aG91dCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucy4KKyAqLwor TGlzdCAqCitOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKQoreworCUxpc3RDZWxsICAgKmw7CisJ TGlzdAkgICAqcmVzdWx0ID0gTklMOworCisJZm9yZWFjaChsLCBuYW1lcykKKwl7CisJCU5vZGUJ ICAgKm4gPSBsZmlyc3QobCk7CisKKwkJaWYgKElzQShuLCBTdHJpbmcpKQorCQl7CisJCQlyZXN1 bHQgPSBsYXBwZW5kKHJlc3VsdCwgbik7CisJCX0KKwkJZWxzZQorCQkJYnJlYWs7CisJfQorCisJ cmV0dXJuIHJlc3VsdDsKK30KIAogLyoKICAqIERlY29uc3RydWN0UXVhbGlmaWVkTmFtZQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCBjNzViNzEzMWVkNy4uYWMxZjhhNGRiM2Ig MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC02Miw2ICs2Miw3IEBACiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9leHRlbnNp b24uaCIKQEAgLTYzNSw2ICs2MzYsMjAgQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3BlcnR5VHlw ZSBPYmplY3RQcm9wZXJ0eVtdID0KIAkJT0JKRUNUX1VTRVJfTUFQUElORywKIAkJZmFsc2UKIAl9 LAorCXsKKwkJInNlc3Npb24gdmFyaWFibGUiLAorCQlWYXJpYWJsZVJlbGF0aW9uSWQsCisJCVZh cmlhYmxlT2lkSW5kZXhJZCwKKwkJVkFSSUFCTEVPSUQsCisJCVZBUklBQkxFTkFNRU5TUCwKKwkJ QW51bV9wZ192YXJpYWJsZV9vaWQsCisJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZSwKKwkJQW51 bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyb3duZXIs CisJCUFudW1fcGdfdmFyaWFibGVfdmFyYWNsLAorCQlPQkpFQ1RfVkFSSUFCTEUsCisJCXRydWUK Kwl9CiB9OwogCiAvKgpAQCAtODMwLDYgKzg0NSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2Jq ZWN0X3R5cGVfbWFwCiAJfSwKIAl7CiAJCSJzdGF0aXN0aWNzIG9iamVjdCIsIE9CSkVDVF9TVEFU SVNUSUNfRVhUCisJfSwKKwl7CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwgT0JKRUNUX1ZBUklBQkxF CiAJfQogfTsKIApAQCAtODU1LDYgKzg3Myw3IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9v YmplY3RfYWRkcmVzc19hdHRyZGVmKE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJCQkJCQkJCWJv b2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3Nf dHlwZShPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJCSBUeXBlTmFtZSAqdHlwZW5hbWUs IGJvb2wgbWlzc2luZ19vayk7CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJl c3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVj dEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wY2YoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0 ICpvYmplY3QsCiAJCQkJCQkJCQkJCSBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVjdEFk ZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wZl9tZW1iZXIoT2JqZWN0VHlwZSBvYmp0eXBlLApA QCAtMTEyNiw2ICsxMTQ1LDkgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5cGUgb2JqdHlw ZSwgTm9kZSAqb2JqZWN0LAogCQkJCQkJCQkJCQkJCQkJIG1pc3Npbmdfb2spOwogCQkJCWFkZHJl c3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCWJyZWFrOworCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6 CisJCQkJYWRkcmVzcyA9IGdldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShjYXN0Tm9kZShMaXN0 LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKKwkJCQlicmVhazsKIAkJCQkvKiBubyBkZWZhdWx0LCB0 byBsZXQgY29tcGlsZXIgd2FybiBhYm91dCBtaXNzaW5nIGNhc2UgKi8KIAkJfQogCkBAIC0yMTAx LDYgKzIxMjMsMjQgQEAgdGV4dGFycmF5X3RvX3N0cnZhbHVlbGlzdChBcnJheVR5cGUgKmFycikK IAlyZXR1cm4gbGlzdDsKIH0KIAorLyoKKyAqIEZpbmQgdGhlIE9iamVjdEFkZHJlc3MgZm9yIGEg c2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgT2JqZWN0QWRkcmVzcworZ2V0X29iamVjdF9h ZGRyZXNzX3ZhcmlhYmxlKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQoreworCU9iamVj dEFkZHJlc3MgYWRkcmVzczsKKwljaGFyCSAgICpuc3BuYW1lID0gTlVMTDsKKwljaGFyCSAgICp2 YXJuYW1lID0gTlVMTDsKKworCU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgVmFyaWFibGVSZWxh dGlvbklkLCBJbnZhbGlkT2lkKTsKKworCURlY29uc3RydWN0UXVhbGlmaWVkTmFtZShvYmplY3Qs ICZuc3BuYW1lLCAmdmFybmFtZSk7CisJYWRkcmVzcy5vYmplY3RJZCA9IExvb2t1cFZhcmlhYmxl KG5zcG5hbWUsIHZhcm5hbWUsIG1pc3Npbmdfb2spOworCisJcmV0dXJuIGFkZHJlc3M7Cit9CisK IC8qCiAgKiBTUUwtY2FsbGFibGUgdmVyc2lvbiBvZiBnZXRfb2JqZWN0X2FkZHJlc3MKICAqLwpA QCAtMjI5NSw2ICsyMzM1LDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6 CiAJCWNhc2UgT0JKRUNUX09QRkFNSUxZOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCW9i am5vZGUgPSAoTm9kZSAqKSBuYW1lOwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19N RVRIT0Q6CkBAIC0yNDY2LDYgKzI1MDcsNyBAQCBjaGVja19vYmplY3Rfb3duZXJzaGlwKE9pZCBy b2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNzLAogCQljYXNl IE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNh c2UgT0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlp ZiAoIW9iamVjdF9vd25lcmNoZWNrKGFkZHJlc3MuY2xhc3NJZCwgYWRkcmVzcy5vYmplY3RJZCwg cm9sZWlkKSkKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUs CiAJCQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7CkBA IC0zNDk1LDYgKzM1MzcsMzIgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRk cmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2Fz ZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQl7CisJCQkJY2hhcgkgICAqbnNwbmFtZTsKKwkJCQlI ZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCQkJCXR1cCA9 IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9i amVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwKKwkJCQkJ CSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkg R0VUU1RSVUNUKHR1cCk7CisKKwkJCQlpZiAoVmFyaWFibGVJc1Zpc2libGUob2JqZWN0LT5vYmpl Y3RJZCkpCisJCQkJCW5zcG5hbWUgPSBOVUxMOworCQkJCWVsc2UKKwkJCQkJbnNwbmFtZSA9IGdl dF9uYW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmZmVyLCBfKCJzZXNzaW9uIHZhcmlhYmxlICVzIiksCisJCQkJCQkJCSBxdW90 ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3BuYW1lLAorCQkJCQkJCQkJCQkJCQkJTmFtZVN0cih2 YXJmb3JtLT52YXJuYW1lKSkpOworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJl YWs7CisJCQl9CisKIAkJY2FzZSBUU1BhcnNlclJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJSGVhcFR1 cGxlCXR1cDsKQEAgLTQ2NjksNiArNDczNywxMCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24o Y29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJ0cmFuc2Zvcm0iKTsKIAkJCWJyZWFrOwogCisJCWNh c2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVy LCAic2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2co RVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKTsK IAl9CkBAIC02MDE5LDYgKzYwOTEsMzMgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxl UmVsYXRpb25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpzY2hlbWE7CisJCQkJY2hhcgkgICAqdmFy bmFtZTsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsK KworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1 bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJ CQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxl ICV1IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9w Z192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCQlzY2hlbWEgPSBnZXRfbmFtZXNwYWNl X25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCQkJCXZhcm5hbWUgPSBOYW1l U3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAi JXMiLAorCQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoc2NoZW1hLCB2YXJuYW1l KSk7CisKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UyKHNjaGVt YSwgcHN0cmR1cCh2YXJuYW1lKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQli cmVhazsKKwkJCX0KKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9i amVjdCBjbGFzczogJXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hk ZXBlbmQuYwppbmRleCAxNmUzZTVjNzQ1Ny4uNmUzZTg4MTMzMjggMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3NoZGVwZW5kLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX2Rp Y3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTE3MTQsNiArMTcxNSw3IEBAIHNo ZGVwUmVhc3NpZ25Pd25lZF9Pd25lcihGb3JtX3BnX3NoZGVwZW5kIHNkZXBGb3JtLCBPaWQgbmV3 cm9sZSkKIAkJY2FzZSBEYXRhYmFzZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxhdGlv bklkOgogCQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVSZWxh dGlvbklkOgogCQkJQWx0ZXJPYmplY3RPd25lcl9pbnRlcm5hbChzZGVwRm9ybS0+Y2xhc3NpZCwK IAkJCQkJCQkJCSAgc2RlcEZvcm0tPm9iamlkLAogCQkJCQkJCQkJICBuZXdyb2xlKTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvTWFrZWZpbGUKaW5kZXggZjk5YWNmZDJiNGIuLjI5ZmU4NzJkYzE2IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9N YWtlZmlsZQpAQCAtNTMsNiArNTMsNyBAQCBPQkpTID0gXAogCXNjaGVtYWNtZHMubyBcCiAJc2Vj bGFiZWwubyBcCiAJc2VxdWVuY2UubyBcCisJc2Vzc2lvbl92YXJpYWJsZS5vIFwKIAlzdGF0c2Nt ZHMubyBcCiAJc3Vic2NyaXB0aW9uY21kcy5vIFwKIAl0YWJsZWNtZHMubyBcCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0 ZXIuYwppbmRleCBjYjc1ZTExZmNlZC4uYWFmNjFhNmY2MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2FsdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpA QCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1w bGF0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21t YW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbGxhdGlvbmNtZHMuaCIKICNpbmNs dWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCkBAIC0xNDAsNiArMTQxLDEwIEBAIHJlcG9ydF9u YW1lc3BhY2VfY29uZmxpY3QoT2lkIGNsYXNzSWQsIGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuc3BP aWQpCiAJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKIAkJCW1zZ2ZtdCA9IGdldHRleHRf bm9vcCgidGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4g c2NoZW1hIFwiJXNcIiIpOwogCQkJYnJlYWs7CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgor CQkJQXNzZXJ0KE9pZElzVmFsaWQobnNwT2lkKSk7CisJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3Ao InNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSBcIiVzXCIi KTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9i amVjdCBjbGFzczogJXUiLCBjbGFzc0lkKTsKIAkJCWJyZWFrOwpAQCAtNDM1LDYgKzQ0MCw3IEBA IEV4ZWNSZW5hbWVTdG10KFJlbmFtZVN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RTVEVNUExB VEU6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9TVUJTQ1JJUFRJ T046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCU9iamVjdEFkZHJlc3MgYWRk cmVzczsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwpAQCAtNTc1LDYgKzU4MSw3IEBAIEV4ZWNBbHRl ck9iamVjdFNjaGVtYVN0bXQoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAogCQljYXNlIE9C SkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgogCQljYXNlIE9CSkVD VF9UU1RFTVBMQVRFOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlSZWxhdGlv bgljYXRhbG9nOwogCQkJCU9pZAkJCWNsYXNzSWQ7CkBAIC02NTcsNiArNjY0LDcgQEAgQWx0ZXJP YmplY3ROYW1lc3BhY2Vfb2lkKE9pZCBjbGFzc0lkLCBPaWQgb2JqaWQsIE9pZCBuc3BPaWQsCiAJ CWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRpb25JZDoKIAkJY2FzZSBUU1RlbXBsYXRlUmVsYXRpb25J ZDoKIAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklk OgogCQkJewogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CiAKQEAgLTg4Nyw2ICs4OTUsNyBAQCBFeGVj QWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RBQkxF U1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNDT05G SUdVUkFUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlPYmplY3RBZGRy ZXNzIGFkZHJlc3M7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IGNlYjlhMjI5YjYzLi5l YmI1ODVkYzRhMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC00NzYsNiArNDc2LDEwIEBA IGRvZXNfbm90X2V4aXN0X3NraXBwaW5nKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0 KQogCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhp c3QsIHNraXBwaW5nIik7CiAJCQluYW1lID0gc3RyVmFsKG9iamVjdCk7CiAJCQlicmVhazsKKwkJ Y2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQltc2cgPSBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFy aWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIpOworCQkJbmFtZSA9IE5hbWVM aXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSk7CisJCQlicmVhazsKIAogCQljYXNl IE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXZlbnRfdHJpZ2dlci5jCmluZGV4IGYzNDg2OGRhNWFiLi42YjQ2YWVhZWY1OSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwpAQCAtMjI4MSw2ICsyMjgxLDggQEAgc3RyaW5naWZ5 X2dyYW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNF IjsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiAiVFlQRSI7CisJCWNhc2UgT0JKRUNU X1ZBUklBQkxFOgorCQkJcmV0dXJuICJWQVJJQUJMRSI7CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkg YXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJY2FzZSBPQkpF Q1RfQUdHUkVHQVRFOgpAQCAtMjM2NCw2ICsyMzY2LDggQEAgc3RyaW5naWZ5X2FkZWZwcml2c19v Ymp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJCXJldHVybiAiVEFCTEVTUEFDRVMiOwogCQlj YXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuICJUWVBFUyI7CisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJcmV0dXJuICJWQVJJQUJMRVMiOwogCQkJLyogdGhlc2UgY3VycmVudGx5IGFyZW4n dCB1c2VkICovCiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCWNhc2UgT0JKRUNUX0FH R1JFR0FURToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKaW5kZXggOWY2NDBhZDQ4MTAuLmJlZWNm M2M4YWRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAorKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZApAQCAtNDEsNiArNDEsNyBAQCBiYWNr ZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdzY2hlbWFjbWRzLmMnLAogICAnc2VjbGFiZWwuYycs CiAgICdzZXF1ZW5jZS5jJywKKyAgJ3Nlc3Npb25fdmFyaWFibGUuYycsCiAgICdzdGF0c2NtZHMu YycsCiAgICdzdWJzY3JpcHRpb25jbWRzLmMnLAogICAndGFibGVjbWRzLmMnLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3NlY2xhYmVsLmMKaW5kZXggY2VlNWQ3YmJiOWMuLjU3YjRlNjcxOWMyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3NlY2xhYmVsLmMKQEAgLTkyLDYgKzkyLDcgQEAgU2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUo T2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9UU1BBUlNFUjoKIAkJY2FzZSBPQkpF Q1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgorCQljYXNlIE9CSkVD VF9WQVJJQUJMRToKIAkJCXJldHVybiBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uZjY0MWUwMGMxYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTAsMCArMSw4OCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KgorICogc2Vzc2lvbl92YXJpYWJsZS5jCisgKgkgIHNlc3Npb24gdmFyaWFibGUgY3JlYXRpb24v bWFuaXB1bGF0aW9uIGNvbW1hbmRzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2 LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUg InBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNp bmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAibWlzY2FkbWlu LmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorCisvKgorICogQ3JlYXRlcyBh IG5ldyB2YXJpYWJsZQorICoKKyAqIFVzZWQgYnkgQ1JFQVRFIFZBUklBQkxFIGNvbW1hbmQKKyAq LworT2JqZWN0QWRkcmVzcworQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVh dGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKK3sKKwlPaWQJCQluYW1lc3BhY2VpZDsKKwlBY2xSZXN1 bHQJYWNscmVzdWx0OworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBtb2Q7CisJT2lkCQkJdmFy b3duZXIgPSBHZXRVc2VySWQoKTsKKwlPaWQJCQljb2xsYXRpb247CisJT2lkCQkJdHlwY29sbGF0 aW9uOworCU9iamVjdEFkZHJlc3MgdmFyaWFibGU7CisKKwluYW1lc3BhY2VpZCA9CisJCVJhbmdl VmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShzdG10LT52YXJpYWJsZSwgTm9Mb2NrLCBO VUxMKTsKKworCXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBzdGF0ZSwgc3RtdC0+dHlwZU5hbWUsICZ0 eXBpZCwgJnR5cG1vZCk7CisKKwkvKiBkaXNhbGxvdyBwc2V1ZG90eXBlcyAqLworCWlmIChnZXRf dHlwdHlwZSh0eXBpZCkgPT0gVFlQVFlQRV9QU0VVRE8pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSBjYW5ub3QgYmUgcHNldWRvLXR5cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5cGVf YmUodHlwaWQpKSkpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFR5cGVSZWxhdGlv bklkLCB0eXBpZCwgR2V0VXNlcklkKCksIEFDTF9VU0FHRSk7CisJaWYgKGFjbHJlc3VsdCAhPSBB Q0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3JfdHlwZShhY2xyZXN1bHQsIHR5cGlkKTsKKwor CXR5cGNvbGxhdGlvbiA9IGdldF90eXBjb2xsYXRpb24odHlwaWQpOworCisJaWYgKHN0bXQtPmNv bGxDbGF1c2UpCisJCWNvbGxhdGlvbiA9IExvb2t1cENvbGxhdGlvbihwc3RhdGUsCisJCQkJCQkJ CQlzdG10LT5jb2xsQ2xhdXNlLT5jb2xsbmFtZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2Ut PmxvY2F0aW9uKTsKKwllbHNlCisJCWNvbGxhdGlvbiA9IHR5cGNvbGxhdGlvbjsKKworCS8qIGNv bXBsYWluIGlmIENPTExBVEUgaXMgYXBwbGllZCB0byBhbiB1bmNvbGxhdGFibGUgdHlwZSAqLwor CWlmIChPaWRJc1ZhbGlkKGNvbGxhdGlvbikgJiYgIU9pZElzVmFsaWQodHlwY29sbGF0aW9uKSkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENI KSwKKwkJCQkgZXJybXNnKCJjb2xsYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHR5cGUgJXMi LAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgc3RtdC0+Y29sbENsYXVzZS0+bG9jYXRpb24pKSk7CisKKwl2YXJpYWJsZSA9IGNy ZWF0ZV92YXJpYWJsZShzdG10LT52YXJpYWJsZS0+cmVsbmFtZSwKKwkJCQkJCQkgICBuYW1lc3Bh Y2VpZCwKKwkJCQkJCQkgICB0eXBpZCwKKwkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJICAgdmFy b3duZXIsCisJCQkJCQkJICAgY29sbGF0aW9uLAorCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlz dHMpOworCisJZWxvZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wi IChvaWQ6JWQpIHdhcyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKKwkJIHN0bXQtPnZhcmlhYmxl LT5yZWxuYW1lLCB2YXJpYWJsZS5vYmplY3RJZCk7CisKKwlyZXR1cm4gdmFyaWFibGU7Cit9CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDNhYWM0NTllNDgzLi4xMjMwNzRmNTlkZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9y YWdlX3hsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCkBAIC02OTEyLDYgKzY5 MTMsNyBAQCBBVFR5cGVkVGFibGVSZWN1cnNpb24oTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVs LCBBbHRlclRhYmxlQ21kICpjbWQsCiAgKiAocG9zc2libHkgbmVzdGVkIHNldmVyYWwgbGV2ZWxz IGRlZXAgaW4gY29tcG9zaXRlIHR5cGVzLCBhcnJheXMsIGV0YyEpLgogICogRXZlbnR1YWxseSwg d2UnZCBsaWtlIHRvIHByb3BhZ2F0ZSB0aGUgY2hlY2sgb3IgcmV3cml0ZSBvcGVyYXRpb24KICAq IGludG8gc3VjaCB0YWJsZXMsIGJ1dCBmb3Igbm93LCBqdXN0IGVycm9yIG91dCBpZiB3ZSBmaW5k IGFueS4KKyAqIEFsc28sIGNoZWNrIGlmICJ0eXBlT2lkIiBpcyB1c2VkIGFzIHR5cGUgb2Ygc29t ZSBzZXNzaW9uIHZhcmlhYmxlLgogICoKICAqIENhbGxlciBzaG91bGQgcHJvdmlkZSBlaXRoZXIg dGhlIGFzc29jaWF0ZWQgcmVsYXRpb24gb2YgYSByb3d0eXBlLAogICogb3IgYSB0eXBlIG5hbWUg KG5vdCBib3RoKSBmb3IgdXNlIGluIHRoZSBlcnJvciBtZXNzYWdlLCBpZiBhbnkuCkBAIC02OTc1 LDYgKzY5NzcsNDUgQEAgZmluZF9jb21wb3NpdGVfdHlwZV9kZXBlbmRlbmNpZXMoT2lkIHR5cGVP aWQsIFJlbGF0aW9uIG9yaWdSZWxhdGlvbiwKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJLyogY2hl Y2sgaWYgdGhlIHR5cGUgaXMgdXNlZCBhcyB0eXBlIG9mIHNvbWUgc2Vzc2lvbiB2YXJpYWJsZSAq LworCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkID09IFZhcmlhYmxlUmVsYXRpb25JZCkKKwkJewor CQkJT2lkCQkJdmFyaWQgPSBwZ19kZXBlbmQtPm9iamlkOworCisJCQlpZiAob3JpZ1R5cGVOYW1l KQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVj YXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJb3JpZ1R5 cGVOYW1lLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFy aWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVM S0lORF9DT01QT1NJVEVfVFlQRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFs dGVyIHR5cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBp dCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJ CQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFy aWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQll bHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05f VEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBmb3JlaWduIHRh YmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAor CQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmlnUmVsYXRpb24pLAorCQkJCQkJCQln ZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSks CisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBp ZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAor CQkJCQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXIHx8 CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElP TkVEX1RBQkxFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdGFibGUg XCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9u YW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJ CQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisKKwkJCWNvbnRpbnVl OworCQl9CisKIAkJLyogRWxzZSwgaWdub3JlIGRlcGVuZGVlcyB0aGF0IGFyZW4ndCByZWxhdGlv bnMgKi8KIAkJaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCAhPSBSZWxhdGlvblJlbGF0aW9uSWQpCiAJ CQljb250aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IDU5Nzk1ODAxMzlmLi4wODY2 NmZmN2E4YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC01Myw2ICs1Myw3IEBACiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19yYW5nZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFi bGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy90 YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90eXBlY21kcy5oIgpAQCAtMzM5Miw2ICsz MzkzLDIwIEBAIGdldF9yZWxzX3dpdGhfZG9tYWluKE9pZCBkb21haW5PaWQsIExPQ0tNT0RFIGxv Y2ttb2RlKQogCQkJfQogCQkJY29udGludWU7CiAJCX0KKwkJZWxzZSBpZiAocGdfZGVwZW5kLT5j bGFzc2lkID09IFZhcmlhYmxlUmVsYXRpb25JZCkKKwkJeworCQkJLyoKKwkJCSAqIFdlIGNhbm5v dCB0byB2YWxpZGF0ZSBjb25zdHJhaW50IGluc2lkZSBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tCisJ CQkgKiBvdGhlciBzZXNzaW9ucywgc28gYmV0dGVyIHRvIGZhaWwgaWYgdGhlcmUgYXJlIGFueSBz ZXNzaW9uCisJCQkgKiB2YXJpYWJsZSwgdGhhdCB1c2UgdGhpcyBkb21haW4uCisJCQkgKi8KKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKKwkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGRvbWFpbiBcIiVzXCIgYmVjYXVzZSBz ZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQlkb21haW5UeXBlTmFt ZSwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHBnX2RlcGVuZC0+b2JqaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHBnX2RlcGVuZC0+b2JqaWQpKSkpOworCQl9CiAKIAkJLyogRWxzZSwgaWdub3JlIGRlcGVuZGVl cyB0aGF0IGFyZW4ndCB1c2VyIGNvbHVtbnMgb2YgcmVsYXRpb25zICovCiAJCS8qICh3ZSBhc3N1 bWUgc3lzdGVtIGNvbHVtbnMgYXJlIG5ldmVyIG9mIGRvbWFpbiB0eXBlcykgKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CmluZGV4IDU3ZmUwMTg2NTQ3Li4wOWQxNmMxYmQwNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01Miw2ICs1 Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmlnZ2VyLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJncmFtcGFyc2UuaCIKQEAgLTI5MCw4 ICsyOTEsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQlDb25zdHJhaW50c1NldFN0bXQg Q29weVN0bXQgQ3JlYXRlQXNTdG10IENyZWF0ZUNhc3RTdG10CiAJCUNyZWF0ZURvbWFpblN0bXQg Q3JlYXRlRXh0ZW5zaW9uU3RtdCBDcmVhdGVHcm91cFN0bXQgQ3JlYXRlT3BDbGFzc1N0bXQKIAkJ Q3JlYXRlT3BGYW1pbHlTdG10IEFsdGVyT3BGYW1pbHlTdG10IENyZWF0ZVBMYW5nU3RtdAotCQlD cmVhdGVTY2hlbWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU3RtdCBDcmVhdGVTdGF0c1N0bXQg Q3JlYXRlVGFibGVTcGFjZVN0bXQKLQkJQ3JlYXRlRmR3U3RtdCBDcmVhdGVGb3JlaWduU2VydmVy U3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CisJCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2Vx U3RtdCBDcmVhdGVTZXNzaW9uVmFyU3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0YXRzU3RtdAorCQlD cmVhdGVUYWJsZVNwYWNlU3RtdCBDcmVhdGVGZHdTdG10IENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10 IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKIAkJQ3JlYXRlQXNzZXJ0aW9uU3RtdCBDcmVhdGVUcmFu c2Zvcm1TdG10IENyZWF0ZVRyaWdTdG10IENyZWF0ZUV2ZW50VHJpZ1N0bXQKIAkJQ3JlYXRlVXNl clN0bXQgQ3JlYXRlVXNlck1hcHBpbmdTdG10IENyZWF0ZVJvbGVTdG10IENyZWF0ZVBvbGljeVN0 bXQKIAkJQ3JlYXRlZGJTdG10IERlY2xhcmVDdXJzb3JTdG10IERlZmluZVN0bXQgRGVsZXRlU3Rt dCBEaXNjYXJkU3RtdCBEb1N0bXQKQEAgLTc4OSw4ICs3OTAsOCBAQCBzdGF0aWMgTm9kZSAqbWFr ZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCVVFU0NBUEUgVU5CT1VOREVEIFVOQ09ORElUSU9OQUwgVU5DT01NSVRURUQgVU5F TkNSWVBURUQgVU5JT04gVU5JUVVFIFVOS05PV04KIAlVTkxJU1RFTiBVTkxPR0dFRCBVTlRJTCBV UERBVEUgVVNFUiBVU0lORwogCi0JVkFDVVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxV RV9QIFZBTFVFUyBWQVJDSEFSIFZBUklBRElDIFZBUllJTkcKLQlWRVJCT1NFIFZFUlNJT05fUCBW SUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUKKwlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURB VE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSSUFCTEUKKwlWQVJZSU5HIFZF UkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVklSVFVBTCBWT0xBVElMRQogCiAJV0FJVCBXSEVO IFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9VVCBXT1JLIFdSQVBQ RVIgV1JJVEUKIApAQCAtMTA1Niw2ICsxMDU3LDcgQEAgc3RtdDoKIAkJCXwgQ3JlYXRlUG9saWN5 U3RtdAogCQkJfCBDcmVhdGVQTGFuZ1N0bXQKIAkJCXwgQ3JlYXRlU2NoZW1hU3RtdAorCQkJfCBD cmVhdGVTZXNzaW9uVmFyU3RtdAogCQkJfCBDcmVhdGVTZXFTdG10CiAJCQl8IENyZWF0ZVN0bXQK IAkJCXwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdApAQCAtMTYzNCw2ICsxNjM2LDcgQEAgc2NoZW1h X3N0bXQ6CiAJCQl8IENyZWF0ZVRyaWdTdG10CiAJCQl8IEdyYW50U3RtdAogCQkJfCBWaWV3U3Rt dAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQk7CiAKIApAQCAtNTMzNiw2ICs1MzM5LDM0 IEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAJCQkJfQogCQk7CiAKKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorICoKKyAqCQlRVUVSWSA6CisgKgkJCQlDUkVBVEUgVkFSSUFCTEUgdmFybmFt ZSBbQVNdIHR5cGUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0NyZWF0ZVNlc3Npb25W YXJTdG10OgorCQkJQ1JFQVRFIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFt ZSBvcHRfY29sbGF0ZV9jbGF1c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpu ID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52YXJpYWJsZSA9ICQz OworCQkJCQluLT50eXBlTmFtZSA9ICQ1OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVD bGF1c2UgKikgJDY7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKKwkJCQkJJCQgPSAo Tm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBx dWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQkJewor CQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJT dG10KTsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkODsKKwkJ CQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJCQluLT5pZl9ub3Rf ZXhpc3RzID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERBVEUgWyBU TyB2ZXJzaW9uIF0KQEAgLTcxNDcsNiArNzE3OCw3IEBAIG9iamVjdF90eXBlX2FueV9uYW1lOgog CQkJfCBURVhUX1AgU0VBUkNIIERJQ1RJT05BUlkJCQkJeyAkJCA9IE9CSkVDVF9UU0RJQ1RJT05B Ulk7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBURU1QTEFURQkJCQl7ICQkID0gT0JKRUNUX1RTVEVN UExBVEU7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBDT05GSUdVUkFUSU9OCQkJeyAkJCA9IE9CSkVD VF9UU0NPTkZJR1VSQVRJT047IH0KKwkJCXwgVkFSSUFCTEUJCQkJCQkJCXsgJCQgPSBPQkpFQ1Rf VkFSSUFCTEU7IH0KIAkJOwogCiAvKgpAQCAtMTAwODIsNiArMTAxMTQsMjQgQEAgUmVuYW1lU3Rt dDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBuYW1l CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJ CX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJ CQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1l VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJ CQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkk JCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RTIGFu eV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5v ZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJ CQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXduYW1lID0gJDg7CisJCQkJ CW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsK IAogb3B0X2NvbHVtbjogQ09MVU1OCkBAIC0xMDQ0Myw2ICsxMDQ5MywyNCBAQCBBbHRlck9iamVj dFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9k ZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgU0VUIFNDSEVNQSBu YW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRl ck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxF OworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDY7 CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJ fQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFtZSBTRVQgU0NIRU1BIG5h bWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVy T2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7 CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXdzY2hlbWEgPSAkODsK KwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0K IAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwNzI0LDYgKzEwNzkyLDE0IEBAIEFs dGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dO RVIgVE8gUm9sZVNwZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgT1dORVIgVE8gUm9sZVNw ZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0 bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmpl Y3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3b3duZXIgPSAkNjsKKwkJCQkJJCQgPSAoTm9k ZSAqKW47CisJCQkJfQogCQk7CiAKIApAQCAtMTgxNTUsNiArMTgyMzEsNyBAQCB1bnJlc2VydmVk X2tleXdvcmQ6CiAJCQl8IFZBTElEQVRFCiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxVRV9QCisJ CQl8IFZBUklBQkxFCiAJCQl8IFZBUllJTkcKIAkJCXwgVkVSU0lPTl9QCiAJCQl8IFZJRVcKQEAg LTE4ODEzLDYgKzE4ODkwLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBWQUxVRV9QCiAJ CQl8IFZBTFVFUwogCQkJfCBWQVJDSEFSCisJCQl8IFZBUklBQkxFCiAJCQl8IFZBUklBRElDCiAJ CQl8IFZFUkJPU0UKIAkJCXwgVkVSU0lPTl9QCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpp bmRleCBlOTZiMzhhNTlkNS4uMDU5ZDhmN2YxODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxj bWQuYwpAQCAtMTA1LDYgKzEwNSw3IEBAIHR5cGVkZWYgc3RydWN0CiAJTGlzdAkgICAqaW5kZXhl czsJCS8qIENSRUFURSBJTkRFWCBpdGVtcyAqLwogCUxpc3QJICAgKnRyaWdnZXJzOwkJLyogQ1JF QVRFIFRSSUdHRVIgaXRlbXMgKi8KIAlMaXN0CSAgICpncmFudHM7CQkJLyogR1JBTlQgaXRlbXMg Ki8KKwlMaXN0CSAgICp2YXJpYWJsZXM7CQkvKiBDUkVBVEUgVkFSSUFCTEUgaXRlbXMgKi8KIH0g Q3JlYXRlU2NoZW1hU3RtdENvbnRleHQ7CiAKIApAQCAtNDExMiw2ICs0MTEzLDcgQEAgdHJhbnNm b3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIg KnNjaGVtYU5hbWUpCiAJY3h0LmluZGV4ZXMgPSBOSUw7CiAJY3h0LnRyaWdnZXJzID0gTklMOwog CWN4dC5ncmFudHMgPSBOSUw7CisJY3h0LnZhcmlhYmxlcyA9IE5JTDsKIAogCS8qCiAJICogUnVu IHRocm91Z2ggZWFjaCBzY2hlbWEgZWxlbWVudCBpbiB0aGUgc2NoZW1hIGVsZW1lbnQgbGlzdC4g U2VwYXJhdGUKQEAgLTQxODAsNiArNDE4MiwxNSBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10 RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAkJCQlj eHQuZ3JhbnRzID0gbGFwcGVuZChjeHQuZ3JhbnRzLCBlbGVtZW50KTsKIAkJCQlicmVhazsKIAor CQkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lv blZhclN0bXQgKmVscCA9IChDcmVhdGVTZXNzaW9uVmFyU3RtdCAqKSBlbGVtZW50OworCisJCQkJ CXNldFNjaGVtYU5hbWUoY3h0LnNjaGVtYW5hbWUsICZlbHAtPnZhcmlhYmxlLT5zY2hlbWFuYW1l KTsKKwkJCQkJY3h0LnZhcmlhYmxlcyA9IGxhcHBlbmQoY3h0LnZhcmlhYmxlcywgZWxlbWVudCk7 CisJCQkJfQorCQkJCWJyZWFrOworCiAJCQlkZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1bnJl Y29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJCSAoaW50KSBub2RlVGFnKGVsZW1lbnQpKTsK QEAgLTQxOTMsNiArNDIwNCw3IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhM aXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogCXJlc3VsdCA9IGxpc3Rf Y29uY2F0KHJlc3VsdCwgY3h0LmluZGV4ZXMpOwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3Vs dCwgY3h0LnRyaWdnZXJzKTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC5ncmFu dHMpOworCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LnZhcmlhYmxlcyk7CiAKIAly ZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMg Yi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCAwODI5NjdjMGE4Ni4uNzYwZDBmYWFh ZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNr ZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMv c2NoZW1hY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvc2VxdWVuY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oIgogI2luY2x1ZGUgImNv bW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAg LTE4Myw2ICsxODQsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpw YXJzZXRyZWUpCiAJCWNhc2UgVF9DcmVhdGVSYW5nZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVSb2xl U3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNjaGVtYVN0bXQ6CisJCWNhc2UgVF9DcmVhdGVTZXNzaW9u VmFyU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNlcVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdGF0c1N0 bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdG10OgpAQCAtMTM4OCw2ICsxMzkwLDEwIEBAIFByb2Nlc3NV dGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJfQogCQkJCWJyZWFrOwogCisJCQlj YXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJYWRkcmVzcyA9IENyZWF0ZVZhcmlhYmxl KHBzdGF0ZSwgKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIHBhcnNldHJlZSk7CisJCQkJYnJlYWs7 CisKIAkJCQkvKgogCQkJCSAqICoqKioqKioqKioqKiogb2JqZWN0IGNyZWF0aW9uIC8gZGVzdHJ1 Y3Rpb24gKioqKioqKioqKioqKioKIAkJCQkgKi8KQEAgLTIzNDcsNiArMjM1Myw5IEBAIEFsdGVy T2JqZWN0VHlwZUNvbW1hbmRUYWcoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9T VEFUSVNUSUNfRVhUOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX1NUQVRJU1RJQ1M7CiAJCQlicmVh azsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfVkFSSUFC TEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJ YnJlYWs7CkBAIC0yNjU1LDYgKzI2NjQsOSBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNl dHJlZSkKIAkJCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQkJCQl0YWcgPSBDTURUQUdf RFJPUF9TVEFUSVNUSUNTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK KwkJCQkJdGFnID0gQ01EVEFHX0RST1BfVkFSSUFCTEU7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1 bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpAQCAtMzIzNSw2ICszMjQ3LDEw IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJfQogCQkJYnJlYWs7CiAK KwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJdGFnID0gQ01EVEFHX0NSRUFURV9W QVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKFdBUk5JTkcsICJ1bnJl Y29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcocGFyc2V0cmVlKSk7 CkBAIC0zNzczLDYgKzM3ODksMTAgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJl ZSkKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJ CWxldiA9IExPR1NUTVRfRERMOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coV0FS TklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhw YXJzZXRyZWUpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNo ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggZmE3Y2Q3ZTA2 YTcuLjFjNDAzMWVlYTIzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lz Y2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtNDAs NiArNDAsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ190cmFuc2Zvcm0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgi CiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIK QEAgLTM4ODEsMyArMzg4Miw2NyBAQCBnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBi b29sIG1pc3Npbmdfb2spCiAKIAlyZXR1cm4gc3VibmFtZTsKIH0KKworLyoJCQkJLS0tLS0tLS0t LSBQR19WQVJJQUJMRSBDQUNIRSAtLS0tLS0tLS0tCQkJCSAqLworCisvKgorICogZ2V0X3Zhcm5h bWVfdmFyaWQKKyAqCQlHaXZlbiBuYW1lIGFuZCBuYW1lc3BhY2Ugb2YgdmFyaWFibGUsIGxvb2sg dXAgdGhlIE9JRC4KKyAqLworT2lkCitnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJu YW1lLCBPaWQgdmFybmFtZXNwYWNlKQoreworCXJldHVybiBHZXRTeXNDYWNoZU9pZDIoVkFSSUFC TEVOQU1FTlNQLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJCQkJCSAgIFBvaW50ZXJHZXREYXR1 bSh2YXJuYW1lKSwKKwkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0odmFybmFtZXNwYWNlKSk7Cit9 CisKKy8qCisgKiBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lCisgKgkJUmV0dXJucyBhIHBhbGxv YydkIGNvcHkgb2YgdGhlIG5hbWUgb2YgYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitj aGFyICoKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBs ZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNoYXIJICAgKnZhcm5hbWU7CisK Kwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFy aWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZh cmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lID0g cHN0cmR1cChOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0 dXApOworCisJcmV0dXJuIHZhcm5hbWU7Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2UKKyAqCQlSZXR1cm5zIHRoZSBwZ19uYW1lc3BhY2UgT0lEIGFzc29jaWF0ZWQg d2l0aCBhIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK09pZAorZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZXNwYWNlKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdf dmFyaWFibGUgdmFyZm9ybTsKKwlPaWQJCQl2YXJuYW1lc3BhY2U7CisKKwl0dXAgPSBTZWFyY2hT eXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxl ZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFi bGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+dmFybmFtZXNw YWNlOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFybmFtZXNwYWNlOwor fQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKaW5kZXggZjE0MjNmMjhjMzIuLmQxMmMzYjk1N2I3IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTExNSw2ICsxMTUsOCBAQCBleHRlcm4gT2lkCVR5 cGVuYW1lR2V0VHlwaWQoY29uc3QgY2hhciAqdHlwbmFtZSk7CiBleHRlcm4gT2lkCVR5cGVuYW1l R2V0VHlwaWRFeHRlbmRlZChjb25zdCBjaGFyICp0eXBuYW1lLCBib29sIHRlbXBfb2spOwogZXh0 ZXJuIGJvb2wgVHlwZUlzVmlzaWJsZShPaWQgdHlwaWQpOwogCitleHRlcm4gYm9vbCBWYXJpYWJs ZUlzVmlzaWJsZShPaWQgdmFyaWQpOworCiBleHRlcm4gRnVuY0NhbmRpZGF0ZUxpc3QgRnVuY25h bWVHZXRDYW5kaWRhdGVzKExpc3QgKm5hbWVzLAogCQkJCQkJCQkJCQkgICBpbnQgbmFyZ3MsIExp c3QgKmFyZ25hbWVzLAogCQkJCQkJCQkJCQkgICBib29sIGV4cGFuZF92YXJpYWRpYywKQEAgLTE4 OSw2ICsxOTEsMTAgQEAgZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpHZXRTZWFyY2hQYXRoTWF0 Y2hlcihNZW1vcnlDb250ZXh0IGNvbnRleHQpOwogZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpD b3B5U2VhcmNoUGF0aE1hdGNoZXIoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogZXh0ZXJuIGJv b2wgU2VhcmNoUGF0aE1hdGNoZXNDdXJyZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIg KnBhdGgpOwogCitleHRlcm4gTGlzdCAqTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcyk7CitleHRl cm4gT2lkCUxvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZh cm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlRnJvbU5h bWVMaXN0KExpc3QgKm5hbWVzLCBib29sIG1pc3Npbmdfb2spOworCiBleHRlcm4gT2lkCWdldF9j b2xsYXRpb25fb2lkKExpc3QgKmNvbGxuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9p ZAlnZXRfY29udmVyc2lvbl9vaWQoTGlzdCAqY29ubmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4 dGVybiBPaWQJRmluZERlZmF1bHRDb252ZXJzaW9uUHJvYyhpbnQzMiBmb3JfZW5jb2RpbmcsIGlu dDMyIHRvX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDlmMzZhYzY4ODUKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAg LTAsMCArMSwyNCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbnZhcmlhYmxl LmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc2Vzc2lvbnZhcmlhYmxlLmMuCisgKgorICoKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRo ZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVm IFNFU1NJT05WQVJJQUJMRV9ICisjZGVmaW5lIFNFU1NJT05WQVJJQUJMRV9ICisKKyNpbmNsdWRl ICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5o IgorI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKworZXh0ZXJuIE9iamVjdEFkZHJlc3Mg Q3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAq c3RtdCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGQxNDI5NGE0ZWNlLi5l MmI0NTJlMzFjOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjM3Myw2ICsyMzczLDcgQEAg dHlwZWRlZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfVFNURU1QTEFURSwKIAlPQkpFQ1RfVFlQ RSwKIAlPQkpFQ1RfVVNFUl9NQVBQSU5HLAorCU9CSkVDVF9WQVJJQUJMRSwKIAlPQkpFQ1RfVklF VywKIH0gT2JqZWN0VHlwZTsKIApAQCAtMzU1NSw2ICszNTU2LDIxIEBAIHR5cGVkZWYgc3RydWN0 IEFsdGVyU3RhdHNTdG10CiAJYm9vbAkJbWlzc2luZ19vazsJCS8qIHNraXAgZXJyb3IgaWYgc3Rh dGlzdGljcyBvYmplY3QgaXMgbWlzc2luZyAqLwogfSBBbHRlclN0YXRzU3RtdDsKIAorCisvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJe0NyZWF0ZXxBbHRlcn0gVkFSSUFCTEUgU3RhdGVt ZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IENyZWF0 ZVNlc3Npb25WYXJTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICp2YXJpYWJs ZTsJCS8qIHRoZSB2YXJpYWJsZSB0byBjcmVhdGUgKi8KKwlUeXBlTmFtZSAgICp0eXBlTmFtZTsJ CS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCisJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsK Kwlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3Rz ICovCit9IENyZWF0ZVNlc3Npb25WYXJTdG10OworCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAqCQlDcmVhdGUgRnVuY3Rpb24gU3RhdGVtZW50CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggNWQ0ZmUyN2VmOTYuLjhiMWYyYmQzYjY4IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oCkBAIC00ODksNiArNDg5LDcgQEAgUEdfS0VZV09SRCgidmFsaWRhdG9yIiwgVkFM SURBVE9SLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1 ZSIsIFZBTFVFX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InZhbHVlcyIsIFZBTFVFUywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoInZhcmNoYXIiLCBWQVJDSEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdf S0VZV09SRCgidmFyaWFibGUiLCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgidmFyaWFkaWMiLCBWQVJJQURJQywgUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcnlpbmciLCBWQVJZSU5HLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgidmVyYm9zZSIsIFZFUkJPU0UsIFRZUEVfRlVO Q19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IGM0NjA2 ZDY1MDQzLi5jYmIwOWZjZjUxMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTY4LDYgKzY4LDcg QEAgUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUkFOU0ZPUk0sICJBTFRFUiBUUkFOU0ZPUk0iLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSSUdHRVIsICJBTFRF UiBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9U WVBFLCAiQUxURVIgVFlQRSIsIHRydWUsIHRydWUsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19B TFRFUl9VU0VSX01BUFBJTkcsICJBTFRFUiBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFs c2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZBUklBQkxFLCAiQUxURVIgVkFSSUFCTEUiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZJRVcsICJBTFRFUiBW SUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTkFMWVpFLCAiQU5B TFlaRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0JFR0lOLCAiQkVH SU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTIzLDYgKzEyNCw3IEBAIFBHX0NNRFRBRyhD TURUQUdfQ1JFQVRFX1RSQU5TRk9STSwgIkNSRUFURSBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UUklHR0VSLCAiQ1JFQVRFIFRSSUdHRVIi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UWVBFLCAiQ1JF QVRFIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9V U0VSX01BUFBJTkcsICJDUkVBVEUgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQor UEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVkFSSUFCTEUsICJDUkVBVEUgVkFSSUFCTEUiLCB0cnVl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WSUVXLCAiQ1JFQVRFIFZJ RVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxMT0NBVEUsICJE RUFMTE9DQVRFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExP Q0FURV9BTEwsICJERUFMTE9DQVRFIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xNzUs NiArMTc3LDcgQEAgUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSQU5TRk9STSwgIkRST1AgVFJBTlNG T1JNIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSSUdHRVIs ICJEUk9QIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RS T1BfVFlQRSwgIkRST1AgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRFJPUF9VU0VSX01BUFBJTkcsICJEUk9QIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBm YWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRFJPUF9WQVJJQUJMRSwgIkRST1AgVkFSSUFCTEUiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVklFVywgIkRST1AgVklF VyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhFQ1VURSwgIkVYRUNV VEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWFBMQUlOLCAiRVhQ TEFJTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGls cy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IDUwZmIx NDllOWFjLi4wM2M0YzU4NTgwZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTEzOSw2ICsxMzks NyBAQCBleHRlcm4gY2hhciBnZXRfZnVuY19wcm9raW5kKE9pZCBmdW5jaWQpOwogZXh0ZXJuIGJv b2wgZ2V0X2Z1bmNfbGVha3Byb29mKE9pZCBmdW5jaWQpOwogZXh0ZXJuIFJlZ1Byb2NlZHVyZSBn ZXRfZnVuY19zdXBwb3J0KE9pZCBmdW5jaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsbmFtZV9yZWxp ZChjb25zdCBjaGFyICpyZWxuYW1lLCBPaWQgcmVsbmFtZXNwYWNlKTsKK2V4dGVybiBPaWQJZ2V0 X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwgT2lkIHZhcm5hbWVzcGFjZSk7CiBl eHRlcm4gY2hhciAqZ2V0X3JlbF9uYW1lKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxf bmFtZXNwYWNlKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxfdHlwZV9pZChPaWQgcmVs aWQpOwpAQCAtMjExLDYgKzIxMiw5IEBAIGV4dGVybiBjaGFyICpnZXRfcHVibGljYXRpb25fbmFt ZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9zdWJzY3JpcHRp b25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gY2hh ciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIAor ZXh0ZXJuIGNoYXIgKmdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKTsKK2V4dGVy biBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJpZCk7CisKICNkZWZp bmUgdHlwZV9pc19hcnJheSh0eXBpZCkgIChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZh bGlkT2lkKQogLyogdHlwZV9pc19hcnJheV9kb21haW4gYWNjZXB0cyBib3RoIHBsYWluIGFycmF5 cyBhbmQgZG9tYWlucyBvdmVyIGFycmF5cyAqLwogI2RlZmluZSB0eXBlX2lzX2FycmF5X2RvbWFp bih0eXBpZCkgIChnZXRfYmFzZV9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dAppbmRleCA3NWEwNzhhZGE5ZS4u Y2Q4ZTQ0MTJmYTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5k ZW5jeS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dApA QCAtMTUxLDMgKzE1MSwyMCBAQCBvd25lciBvZiB0eXBlIGRlcHRlc3RfdAogRFJPUCBPV05FRCBC WSByZWdyZXNzX2RlcF91c2VyMiwgcmVncmVzc19kZXBfdXNlcjA7CiBEUk9QIFVTRVIgcmVncmVz c19kZXBfdXNlcjI7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjA7CistLSBkZXBlbmRlbmN5 IG9uIHR5cGUKK0NSRUFURSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZh cnR5cGUgQVMgKGEgaW50LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgdmFydHlwZTsKKy0tIHNob3VsZCBmYWlsCitEUk9QIERPTUFJTiB2YXJkb21haW47CitF UlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgdmFyZG9tYWluIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBk ZXBlbmQgb24gaXQKK0RFVEFJTDogIGNvbHVtbiBjIG9mIGNvbXBvc2l0ZSB0eXBlIHZhcnR5cGUg ZGVwZW5kcyBvbiB0eXBlIHZhcmRvbWFpbgorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRv IGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0RST1AgVFlQRSB2YXJ0eXBlOworRVJS T1I6ICBjYW5ub3QgZHJvcCB0eXBlIHZhcnR5cGUgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVu ZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSB2 YXJ0eXBlCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50 IG9iamVjdHMgdG9vLgorLS0gY2xlYW4gdXAKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQ RSB2YXJ0eXBlOworRFJPUCBET01BSU4gdmFyZG9tYWluOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45Yzc1OTVlOWE0MQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dApAQCAtMCww ICsxLDE2MyBAQAorU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGRsOworQ1JFQVRFIFZBUklBQkxFIGRk bHRlc3Rfc2VzdmFyMDEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5kZGx0ZXN0X3Nl c3ZhcjAyIEFTIGludDsKK0NSRUFURSBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CitDUkVBVEUgVkFS SUFCTEUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwMyBBUyBpbnQ7CitTRUxFQ1QgcGdf aWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKQorICBG Uk9NIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc2Vzc2lvbiB2YXJpYWJsZScsICd7ZGRsdGVzdF9z ZXN2YXIwMX0nLCAne30nKTsKKyAgICAgICAgICAgIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRy ZXNzICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICgic2Vzc2lvbiB2YXJpYWJsZSIsIntwdWJsaWMsZGRsdGVzdF9zZXN2 YXIwMX0iLHt9KQorKDEgcm93KQorCitTRUxFQ1QgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJl c3MoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKQorICBGUk9NIHBnX2dldF9vYmplY3RfYWRkcmVz cygnc2Vzc2lvbiB2YXJpYWJsZScsICd7cHVibGljLGRkbHRlc3Rfc2VzdmFyMDJ9JywgJ3t9Jyk7 CisgICAgICAgICAgICBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAo InNlc3Npb24gdmFyaWFibGUiLCJ7cHVibGljLGRkbHRlc3Rfc2VzdmFyMDJ9Iix7fSkKKygxIHJv dykKKworU0VMRUNUIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzKGNsYXNzaWQsIG9iamlk LCBvYmpzdWJpZCkKKyAgRlJPTSBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3Nlc3Npb24gdmFyaWFi bGUnLCAne3Nlc3ZhcnRlc3RfZGRsLGRkbHRlc3Rfc2VzdmFyMDN9JywgJ3t9Jyk7CisgICAgICAg ICAgICAgICAgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKCJzZXNzaW9uIHZhcmlhYmxlIiwie3Nlc3ZhcnRlc3RfZGRsLGRkbHRlc3Rfc2VzdmFy MDN9Iix7fSkKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjAxOworRFJP UCBWQVJJQUJMRSBwdWJsaWMuZGRsdGVzdF9zZXN2YXIwMjsKK0NSRUFURSBUWVBFIHNlc3ZhcnRl c3RfdHlwZV9kZGwgQVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgRE9NQUlOIHNlc3ZhcnRlc3Rf ZG9tYWluX2RkbCBBUyBpbnQ7CitDUkVBVEUgVEFCTEUgc2VzdmFydGVzdF90YWJsZV9kZGwgKGEg aW50LCBiIGludCk7CisvKiBwcmVmaXggZGRsdGVzdF8gc2hvdWxkIG5vdCBiZSB1c2VkIGV2ZXIg aW4gYW5vdGhlciB0ZXN0cyAqLworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDQgQVMg c2VzdmFydGVzdF90eXBlX2RkbDsKK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA1IEFT IHNlc3ZhcnRlc3RfZG9tYWluX2RkbDsKK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA2 IEFTIHNlc3ZhcnRlc3RfdGFibGVfZGRsOworLS0gYWRkIG5ldyBmaWVsZCB0byBjb21wb3NpdGUg dmFsdWUgaXMgc3VwcG9ydGVkLAorLS0gY2hhbmdlIHR5cGUgb2YgZmllbGQgaXMgcHJvaGliaXRl ZAorLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHNlc3ZhcnRlc3RfdHlwZV9kZGwgQUREIEFU VFJJQlVURSBjIGludDsKK0FMVEVSIFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRsIEFERCBDT0xV TU4gYyBpbnQ7CistLSBzaG91bGQgZmFpbAorQUxURVIgVFlQRSBzZXN2YXJ0ZXN0X3R5cGVfZGRs IEFMVEVSIEFUVFJJQlVURSBiIFRZUEUgbnVtZXJpYzsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHR5 cGUgInNlc3ZhcnRlc3RfdHlwZV9kZGwiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGlj LmRkbHRlc3Rfc2VzdmFyMDQiIHVzZXMgaXQKK0FMVEVSIFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVf ZGRsIEFMVEVSIENPTFVNTiBiIFRZUEUgbnVtZXJpYzsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRh YmxlICJzZXN2YXJ0ZXN0X3RhYmxlX2RkbCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlICJwdWJs aWMuZGRsdGVzdF9zZXN2YXIwNiIgdXNlcyBpdAorQUxURVIgRE9NQUlOIHNlc3ZhcnRlc3RfZG9t YWluX2RkbCBBREQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIGRv bWFpbiAic2VzdmFydGVzdF9kb21haW5fZGRsIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1 YmxpYy5kZGx0ZXN0X3Nlc3ZhcjA1IiB1c2VzIGl0CistLSBzaG91bGQgZmFpbAorRFJPUCBUWVBF IHNlc3ZhcnRlc3RfdHlwZV9kZGw7CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgc2VzdmFydGVz dF90eXBlX2RkbCBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBz ZXNzaW9uIHZhcmlhYmxlIGRkbHRlc3Rfc2VzdmFyMDQgZGVwZW5kcyBvbiB0eXBlIHNlc3ZhcnRl c3RfdHlwZV9kZGwKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBl bmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitF UlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgc2VzdmFydGVzdF9kb21haW5fZGRsIGJlY2F1c2Ugb3Ro ZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgZGRsdGVz dF9zZXN2YXIwNSBkZXBlbmRzIG9uIHR5cGUgc2VzdmFydGVzdF9kb21haW5fZGRsCitISU5UOiAg VXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgor RFJPUCBUQUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbDsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdGFi bGUgc2VzdmFydGVzdF90YWJsZV9kZGwgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBp dAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSBkZGx0ZXN0X3Nlc3ZhcjA2IGRlcGVuZHMgb24g dHlwZSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRv IGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIGNoZWNrIGV2ZW50IHRyaWdnZXIg c3VwcG9ydAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3Jl cG9ydF9kcm9wcGVkKCkKK1JFVFVSTlMgZXZlbnRfdHJpZ2dlcgorQVMgJCQKK0RFQ0xBUkUgciBy ZWNvcmQ7CitCRUdJTgorICBGT1IgciBJTiBTRUxFQ1QgKiBmcm9tIHBnX2V2ZW50X3RyaWdnZXJf ZHJvcHBlZF9vYmplY3RzKCkKKyAgTE9PUAorICAgIElGIHIuY2xhc3NpZCA9ICdwZ192YXJpYWJs ZSc6OnJlZ2NsYXNzIEFORAorICAgICAgIHIuYWRkcmVzc19uYW1lc1syXSBsaWtlICdkZGx0ZXN0 X3Nlc3ZhciUnCisgICAgVEhFTgorICAgICAgUkFJU0UgTk9USUNFCisgICAgICAgICAnTk9STUFM OiBvcmlnPSUgbm9ybWFsPSUgaXN0ZW1wPSUgdHlwZT0lIGlkZW50aXR5PSUgbmFtZT0lIGFyZ3M9 JScsCisgICAgICAgICByLm9yaWdpbmFsLCByLm5vcm1hbCwgci5pc190ZW1wb3JhcnksIHIub2Jq ZWN0X3R5cGUsCisgICAgICAgICByLm9iamVjdF9pZGVudGl0eSwgci5hZGRyZXNzX25hbWVzLCBy LmFkZHJlc3NfYXJnczsKKyAgICBFTkQgSUY7CisgIEVORCBMT09QOworRU5EOworJCQgTEFOR1VB R0UgcGxwZ3NxbDsKK0NSRUFURSBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmln Z2VyX3JlcG9ydF9kcm9wcGVkIE9OIHNxbF9kcm9wCisgIFdIRU4gVEFHIElOICgnRFJPUCBWQVJJ QUJMRScsICdEUk9QIFNDSEVNQScpCisgIEVYRUNVVEUgUFJPQ0VEVVJFIHN2YXJfZXZlbnRfdHJp Z2dlcl9yZXBvcnRfZHJvcHBlZCgpOworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA0Owor Tk9USUNFOiAgTk9STUFMOiBvcmlnPXQgbm9ybWFsPWYgaXN0ZW1wPWYgdHlwZT1zZXNzaW9uIHZh cmlhYmxlIGlkZW50aXR5PXB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjA0IG5hbWU9e3B1YmxpYyxkZGx0 ZXN0X3Nlc3ZhcjA0fSBhcmdzPXt9CitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDU7CitO T1RJQ0U6ICBOT1JNQUw6IG9yaWc9dCBub3JtYWw9ZiBpc3RlbXA9ZiB0eXBlPXNlc3Npb24gdmFy aWFibGUgaWRlbnRpdHk9cHVibGljLmRkbHRlc3Rfc2VzdmFyMDUgbmFtZT17cHVibGljLGRkbHRl c3Rfc2VzdmFyMDV9IGFyZ3M9e30KK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNjsKK05P VElDRTogIE5PUk1BTDogb3JpZz10IG5vcm1hbD1mIGlzdGVtcD1mIHR5cGU9c2Vzc2lvbiB2YXJp YWJsZSBpZGVudGl0eT1wdWJsaWMuZGRsdGVzdF9zZXN2YXIwNiBuYW1lPXtwdWJsaWMsZGRsdGVz dF9zZXN2YXIwNn0gYXJncz17fQorLS0gc2hvdWxkIHRvIGZhaWwKK0RST1AgU0NIRU1BIHNlc3Zh cnRlc3RfZGRsOworRVJST1I6ICBjYW5ub3QgZHJvcCBzY2hlbWEgc2VzdmFydGVzdF9kZGwgYmVj YXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJs ZSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjAzIGRlcGVuZHMgb24gc2NoZW1hIHNlc3Zh cnRlc3RfZGRsCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5k ZW50IG9iamVjdHMgdG9vLgorLS0gc2hvdWxkIGJlIG9rCitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0 X2RkbCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxl IHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDMKK05PVElDRTogIE5PUk1BTDogb3JpZz1m IG5vcm1hbD10IGlzdGVtcD1mIHR5cGU9c2Vzc2lvbiB2YXJpYWJsZSBpZGVudGl0eT1zZXN2YXJ0 ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjAzIG5hbWU9e3Nlc3ZhcnRlc3RfZGRsLGRkbHRlc3Rfc2Vz dmFyMDN9IGFyZ3M9e30KK0RST1AgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJp Z2dlcl9yZXBvcnRfZHJvcHBlZDsKK0RST1AgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3Jl cG9ydF9kcm9wcGVkKCk7CistLSBzaG91bGQgYmUgb2sKK0RST1AgVFlQRSBzZXN2YXJ0ZXN0X3R5 cGVfZGRsOworRFJPUCBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRsOworRFJPUCBUQUJMRSBz ZXN2YXJ0ZXN0X3RhYmxlX2RkbDsKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUKK0NSRUFU RSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA3IEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFCTEUg ZGRsdGVzdF9zZXN2YXIwNyBJUyAnc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNvbW1lbnQnOworU0VM RUNUIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykgRlJPTSBw Z192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ2RkbHRlc3Rfc2VzdmFyMDcnOworICAgICAgICBv YmpfZGVzY3JpcHRpb24gICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHNvbWUgc2Vzc2lvbiB2YXJpYWJsZSBjb21tZW50CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUg ZGRsdGVzdF9zZXN2YXIwNzsKK0NSRUFURSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4IEFTIGlu dDsKK0FMVEVSIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDggUkVOQU1FIFRPIGRkbHRlc3Rfc2Vz dmFyMDhfcmVuYW1lZDsKK0NSRUFURSBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CitBTFRFUiBWQVJJ QUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQgU0VUIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsK K0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworR1JBTlQgQUxMIE9OIFND SEVNQSBzZXN2YXJ0ZXN0X2RkbCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKK1NFVCBS T0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworLS0gc2hvdWxkIGZhaWwKK0RST1Ag VkFSSUFCTEUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkOworRVJST1I6 ICBtdXN0IGJlIG93bmVyIG9mIHNlc3Npb24gdmFyaWFibGUgc2VzdmFydGVzdF9kZGwuZGRsdGVz dF9zZXN2YXIwOF9yZW5hbWVkCitTRVQgUk9MRSBUTyBERUZBVUxUOworQUxURVIgVkFSSUFCTEUg c2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkIE9XTkVSIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXJfZGRsOworLS0gc2hvdWxkIGZhaWwKK0RST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX293bmVyX2RkbDsKK0VSUk9SOiAgcm9sZSAicmVncmVzc192YXJpYWJsZV9vd25lcl9k ZGwiIGNhbm5vdCBiZSBkcm9wcGVkIGJlY2F1c2Ugc29tZSBvYmplY3RzIGRlcGVuZCBvbiBpdAor REVUQUlMOiAgb3duZXIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0 X3Nlc3ZhcjA4X3JlbmFtZWQKK3ByaXZpbGVnZXMgZm9yIHNjaGVtYSBzZXN2YXJ0ZXN0X2RkbAor LS0gc2hvdWxkIGZhaWwgLSBub3Qgb24gc2VhcmNoIHBhdGgKK0RST1AgVkFSSUFCTEUgZGRsdGVz dF9zZXN2YXIwOF9yZW5hbWVkOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJkZGx0ZXN0X3Nl c3ZhcjA4X3JlbmFtZWQiIGRvZXMgbm90IGV4aXN0CitTRVQgU0VBUkNIX1BBVEggVE8gJ3Nlc3Zh cnRlc3RfZGRsJzsKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3Zh cjA4X3JlbmFtZWQ7CitTRVQgU0VBUkNIX1BBVEggVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKK0RST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX293bmVyX2RkbDsKK1NFVCBsb2dfc3RhdGVtZW50IFRPIERFRkFVTFQ7CitDUkVBVEUg VkFSSUFCTEUgSUYgTk9UIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5IEFTIGludDsKK0NSRUFURSBW QVJJQUJMRSBJRiBOT1QgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDkgQVMgaW50OworTk9USUNFOiAg c2Vzc2lvbiB2YXJpYWJsZSAiZGRsdGVzdF9zZXN2YXIwOSIgYWxyZWFkeSBleGlzdHMsIHNraXBw aW5nCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5OworRFJPUCBWQVJJ QUJMRSBJRiBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOTsKK05PVElDRTogIHNlc3Npb24gdmFyaWFi bGUgImRkbHRlc3Rfc2VzdmFyMDkiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworQ1JFQVRFIFND SEVNQSBzdmFydGVzdDAxX2RkbCBDUkVBVEUgVkFSSUFCTEUgc2VzdmFyMTAgQVMgaW50OworQ1JF QVRFIFZBUklBQkxFIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjExIEFTIGludDsKK0NSRUFURSBTQ0hF TUEgc3ZhcnRlc3QwMl9kZGwgQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjEwIEFTIGludDsKKy0tIHNo b3VsZCB0byBmYWlsCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTAgQVMg aW50OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJzZXN2YXIxMCIgYWxyZWFkeSBleGlzdHMK K0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjExIFJFTkFNRSBUTyBzZXN2YXIx MDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAic2VzdmFyMTAiIGFscmVhZHkgZXhpc3RzIGlu IHNjaGVtYSAic3ZhcnRlc3QwMV9kZGwiCitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdDAyX2RkbC5z ZXN2YXIxMCBTRVQgU0NIRU1BIHN2YXJ0ZXN0MDFfZGRsOworRVJST1I6ICBzZXNzaW9uIHZhcmlh YmxlICJzZXN2YXIxMCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hICJzdmFydGVzdDAxX2RkbCIK K0RST1AgU0NIRU1BIHN2YXJ0ZXN0MDFfZGRsIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2Nh ZGVzIHRvIDIgb3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9u IHZhcmlhYmxlIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjEwCitkcm9wIGNhc2NhZGVzIHRvIHNlc3Np b24gdmFyaWFibGUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTEKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0 MDJfZGRsIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFi bGUgc3ZhcnRlc3QwMl9kZGwuc2VzdmFyMTAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmlu ZGV4IGEwZjVmYWIwZjVkLi4xYmNmNjkwMzFkYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlCkBAIC0xMTUsNyArMTE1LDcgQEAgdGVzdDoganNvbiBqc29uYiBqc29uX2VuY29kaW5nIGpz b25wYXRoIGpzb25wYXRoX2VuY29kaW5nIGpzb25iX2pzb25wYXRoIHNxbGpzb24KICMgTkI6IHRl bXAuc3FsIGRvZXMgcmVjb25uZWN0cyB3aGljaCB0cmFuc2llbnRseSB1c2VzIDIgY29ubmVjdGlv bnMsCiAjIHNvIGtlZXAgdGhpcyBwYXJhbGxlbCBncm91cCB0byBhdCBtb3N0IDE5IHRlc3RzCiAj IC0tLS0tLS0tLS0KLXRlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9t YWluIHJhbmdlZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNl cXVlbmNlIHBvbHltb3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4 bWwKK3Rlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdl ZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBv bHltb3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwgc2Vzc2lv bl92YXJpYWJsZXNfZGRsCiAKICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFs bGVsIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCmluZGV4IDhkNzRlZDcxMjJj Li42YzE4YjdmODQwYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5j eS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKQEAgLTExNCwz ICsxMTQsMTcgQEAgRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJPUCBPV05FRCBCWSBy ZWdyZXNzX2RlcF91c2VyMiwgcmVncmVzc19kZXBfdXNlcjA7CiBEUk9QIFVTRVIgcmVncmVzc19k ZXBfdXNlcjI7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjA7CisKKy0tIGRlcGVuZGVuY3kg b24gdHlwZQorQ1JFQVRFIERPTUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdmFy dHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyB2YXJ0eXBlOworCistLSBzaG91bGQgZmFpbAorRFJPUCBET01BSU4gdmFyZG9tYWluOwor RFJPUCBUWVBFIHZhcnR5cGU7CisKKy0tIGNsZWFuIHVwCitEUk9QIFZBUklBQkxFIHZhcjE7CitE Uk9QIFRZUEUgdmFydHlwZTsKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5mODQ0NDY5ZWNiMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwKQEAgLTAsMCArMSwxNTAg QEAKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRkbDsKKworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rf c2VzdmFyMDEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjAy IEFTIGludDsKK0NSRUFURSBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CitDUkVBVEUgVkFSSUFCTEUg c2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwMyBBUyBpbnQ7CisKK1NFTEVDVCBwZ19pZGVu dGlmeV9vYmplY3RfYXNfYWRkcmVzcyhjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpCisgIEZST00g cGdfZ2V0X29iamVjdF9hZGRyZXNzKCdzZXNzaW9uIHZhcmlhYmxlJywgJ3tkZGx0ZXN0X3Nlc3Zh cjAxfScsICd7fScpOworCitTRUxFQ1QgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoY2xh c3NpZCwgb2JqaWQsIG9ianN1YmlkKQorICBGUk9NIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc2Vz c2lvbiB2YXJpYWJsZScsICd7cHVibGljLGRkbHRlc3Rfc2VzdmFyMDJ9JywgJ3t9Jyk7CisKK1NF TEVDVCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyhjbGFzc2lkLCBvYmppZCwgb2Jqc3Vi aWQpCisgIEZST00gcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdzZXNzaW9uIHZhcmlhYmxlJywgJ3tz ZXN2YXJ0ZXN0X2RkbCxkZGx0ZXN0X3Nlc3ZhcjAzfScsICd7fScpOworCitEUk9QIFZBUklBQkxF IGRkbHRlc3Rfc2VzdmFyMDE7CitEUk9QIFZBUklBQkxFIHB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjAy OworCitDUkVBVEUgVFlQRSBzZXN2YXJ0ZXN0X3R5cGVfZGRsIEFTIChhIGludCwgYiBpbnQpOwor Q1JFQVRFIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGwgQVMgaW50OworQ1JFQVRFIFRBQkxF IHNlc3ZhcnRlc3RfdGFibGVfZGRsIChhIGludCwgYiBpbnQpOworCisvKiBwcmVmaXggZGRsdGVz dF8gc2hvdWxkIG5vdCBiZSB1c2VkIGV2ZXIgaW4gYW5vdGhlciB0ZXN0cyAqLworQ1JFQVRFIFZB UklBQkxFIGRkbHRlc3Rfc2VzdmFyMDQgQVMgc2VzdmFydGVzdF90eXBlX2RkbDsKK0NSRUFURSBW QVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA1IEFTIHNlc3ZhcnRlc3RfZG9tYWluX2RkbDsKK0NSRUFU RSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA2IEFTIHNlc3ZhcnRlc3RfdGFibGVfZGRsOworCist LSBhZGQgbmV3IGZpZWxkIHRvIGNvbXBvc2l0ZSB2YWx1ZSBpcyBzdXBwb3J0ZWQsCistLSBjaGFu Z2UgdHlwZSBvZiBmaWVsZCBpcyBwcm9oaWJpdGVkCisKKy0tIHNob3VsZCBiZSBvaworQUxURVIg VFlQRSBzZXN2YXJ0ZXN0X3R5cGVfZGRsIEFERCBBVFRSSUJVVEUgYyBpbnQ7CitBTFRFUiBUQUJM RSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCBBREQgQ09MVU1OIGMgaW50OworCistLSBzaG91bGQgZmFp bAorQUxURVIgVFlQRSBzZXN2YXJ0ZXN0X3R5cGVfZGRsIEFMVEVSIEFUVFJJQlVURSBiIFRZUEUg bnVtZXJpYzsKK0FMVEVSIFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRsIEFMVEVSIENPTFVNTiBi IFRZUEUgbnVtZXJpYzsKK0FMVEVSIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGwgQUREIENI RUNLKHZhbHVlIDw+IDEwMCk7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRZUEUgc2VzdmFydGVz dF90eXBlX2RkbDsKK0RST1AgRE9NQUlOIHNlc3ZhcnRlc3RfZG9tYWluX2RkbDsKK0RST1AgVEFC TEUgc2VzdmFydGVzdF90YWJsZV9kZGw7CisKKy0tIGNoZWNrIGV2ZW50IHRyaWdnZXIgc3VwcG9y dAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9ydF9k cm9wcGVkKCkKK1JFVFVSTlMgZXZlbnRfdHJpZ2dlcgorQVMgJCQKK0RFQ0xBUkUgciByZWNvcmQ7 CitCRUdJTgorICBGT1IgciBJTiBTRUxFQ1QgKiBmcm9tIHBnX2V2ZW50X3RyaWdnZXJfZHJvcHBl ZF9vYmplY3RzKCkKKyAgTE9PUAorICAgIElGIHIuY2xhc3NpZCA9ICdwZ192YXJpYWJsZSc6OnJl Z2NsYXNzIEFORAorICAgICAgIHIuYWRkcmVzc19uYW1lc1syXSBsaWtlICdkZGx0ZXN0X3Nlc3Zh ciUnCisgICAgVEhFTgorICAgICAgUkFJU0UgTk9USUNFCisgICAgICAgICAnTk9STUFMOiBvcmln PSUgbm9ybWFsPSUgaXN0ZW1wPSUgdHlwZT0lIGlkZW50aXR5PSUgbmFtZT0lIGFyZ3M9JScsCisg ICAgICAgICByLm9yaWdpbmFsLCByLm5vcm1hbCwgci5pc190ZW1wb3JhcnksIHIub2JqZWN0X3R5 cGUsCisgICAgICAgICByLm9iamVjdF9pZGVudGl0eSwgci5hZGRyZXNzX25hbWVzLCByLmFkZHJl c3NfYXJnczsKKyAgICBFTkQgSUY7CisgIEVORCBMT09QOworRU5EOworJCQgTEFOR1VBR0UgcGxw Z3NxbDsKKworQ1JFQVRFIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJf cmVwb3J0X2Ryb3BwZWQgT04gc3FsX2Ryb3AKKyAgV0hFTiBUQUcgSU4gKCdEUk9QIFZBUklBQkxF JywgJ0RST1AgU0NIRU1BJykKKyAgRVhFQ1VURSBQUk9DRURVUkUgc3Zhcl9ldmVudF90cmlnZ2Vy X3JlcG9ydF9kcm9wcGVkKCk7CisKK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNDsKK0RS T1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNTsKK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2 YXIwNjsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0RST1AgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOwor CistLSBzaG91bGQgYmUgb2sKK0RST1AgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsIENBU0NBREU7CisK K0RST1AgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJv cHBlZDsKKworRFJPUCBGVU5DVElPTiBzdmFyX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQo KTsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbDsKK0RS T1AgRE9NQUlOIHNlc3ZhcnRlc3RfZG9tYWluX2RkbDsKK0RST1AgVEFCTEUgc2VzdmFydGVzdF90 YWJsZV9kZGw7CisKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUKK0NSRUFURSBWQVJJQUJM RSBkZGx0ZXN0X3Nlc3ZhcjA3IEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFCTEUgZGRsdGVzdF9z ZXN2YXIwNyBJUyAnc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBnX2Nh dGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJpYWJs ZSBXSEVSRSB2YXJuYW1lID0gJ2RkbHRlc3Rfc2VzdmFyMDcnOworRFJPUCBWQVJJQUJMRSBkZGx0 ZXN0X3Nlc3ZhcjA3OworCitDUkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOCBBUyBpbnQ7 CitBTFRFUiBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4IFJFTkFNRSBUTyBkZGx0ZXN0X3Nlc3Zh cjA4X3JlbmFtZWQ7CisKK0NSRUFURSBTQ0hFTUEgc2VzdmFydGVzdF9kZGw7CitBTFRFUiBWQVJJ QUJMRSBkZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQgU0VUIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsK KworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CisKK0dSQU5UIEFMTCBP TiBTQ0hFTUEgc2VzdmFydGVzdF9kZGwgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CisK K1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworCistLSBzaG91bGQgZmFp bAorRFJPUCBWQVJJQUJMRSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQ7 CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0FMVEVSIFZBUklBQkxFIHNlc3ZhcnRlc3RfZGRs LmRkbHRlc3Rfc2VzdmFyMDhfcmVuYW1lZCBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVy X2RkbDsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy X2RkbDsKKworLS0gc2hvdWxkIGZhaWwgLSBub3Qgb24gc2VhcmNoIHBhdGgKK0RST1AgVkFSSUFC TEUgZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkOworCitTRVQgU0VBUkNIX1BBVEggVE8gJ3Nlc3Zh cnRlc3RfZGRsJzsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2Vz dmFyMDhfcmVuYW1lZDsKKworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CisKK1NFVCBST0xF IFRPIERFRkFVTFQ7CisKK0RST1AgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworCitEUk9QIFJPTEUg cmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CisKK1NFVCBsb2dfc3RhdGVtZW50IFRPIERFRkFV TFQ7CisKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDkgQVMg aW50OworQ1JFQVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOSBBUyBp bnQ7CitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5OworRFJPUCBWQVJJ QUJMRSBJRiBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVz dDAxX2RkbCBDUkVBVEUgVkFSSUFCTEUgc2VzdmFyMTAgQVMgaW50OworQ1JFQVRFIFZBUklBQkxF IHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjExIEFTIGludDsKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Qw Ml9kZGwgQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjEwIEFTIGludDsKKworLS0gc2hvdWxkIHRvIGZh aWwKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMCBBUyBpbnQ7CitBTFRF UiBWQVJJQUJMRSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMSBSRU5BTUUgVE8gc2VzdmFyMTA7CitB TFRFUiBWQVJJQUJMRSBzdmFydGVzdDAyX2RkbC5zZXN2YXIxMCBTRVQgU0NIRU1BIHN2YXJ0ZXN0 MDFfZGRsOworCitEUk9QIFNDSEVNQSBzdmFydGVzdDAxX2RkbCBDQVNDQURFOworRFJPUCBTQ0hF TUEgc3ZhcnRlc3QwMl9kZGwgQ0FTQ0FERTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXgg Y2Y1Yzg3YzAzYTIuLjc4Y2M4MzcyZDMzIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAt NTYyLDYgKzU2Miw3IEBAIENyZWF0ZVJvbGVTdG10CiBDcmVhdGVTY2hlbWFTdG10CiBDcmVhdGVT Y2hlbWFTdG10Q29udGV4dAogQ3JlYXRlU2VxU3RtdAorQ3JlYXRlU2Vzc2lvblZhclN0bXQKIENy ZWF0ZVN0YXRzU3RtdAogQ3JlYXRlU3RtdAogQ3JlYXRlU3RtdENvbnRleHQKLS0gCjIuNTEuMQoK --0000000000002d69be064337d139 Content-Type: text/x-patch; charset="US-ASCII"; name="v20251110-0001-introduce-new-class-catalog-pg_variable.patch" Content-Disposition: attachment; filename="v20251110-0001-introduce-new-class-catalog-pg_variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhsrw5f414 RnJvbSBhNzUxM2IzNDgyODA5MWI2NjA4YjNhYmY5M2MxNWVmYWVhOWE4MDBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFdlZCwgMjggTWF5IDIwMjUgMDg6MzA6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDAx LzE1XSBpbnRyb2R1Y2UgbmV3IGNsYXNzIChjYXRhbG9nKSBwZ192YXJpYWJsZQoKVGhpcyB0YWJs ZSBob2xkcyBtZXRhZGF0YSBhYm91dCBzZXNzaW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5CmNvbW1h bmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJvcHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUu Ci0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgfCAxMzMgKysrKysr KysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgIHwg ICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgIHwgICAxICsKIHNy Yy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgIHwgMTY4ICsrKysrKysrKysrKysr KysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgIHwgICAz ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICB8ICAgMSArCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICB8ICA5NiArKysrKysrKysrKysrKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQgfCAgIDQgKwogc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgfCAgIDIgKwogOSBmaWxlcyBjaGFuZ2VkLCA0 MDggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggNmM4YTBmMTczYzku LjdjNzlkZGM5YzA5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMzY5LDYgKzM2OSwxMSBAQAogICAgICAg PGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdXNlci1tYXBwaW5nIj48c3RydWN0bmFt ZT5wZ191c2VyX21hcHBpbmc8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+CiAgICAgICA8ZW50 cnk+bWFwcGluZ3Mgb2YgdXNlcnMgdG8gZm9yZWlnbiBzZXJ2ZXJzPC9lbnRyeT4KICAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LXZhcmlhYmxlIj48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L2xpbms+PC9l bnRyeT4KKyAgICAgIDxlbnRyeT5zZXNzaW9uIHZhcmlhYmxlczwvZW50cnk+CisgICAgIDwvcm93 PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KQEAgLTk4MzQsNCArOTgz OSwxMzIgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZn dDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgPC90YWJsZT4KICA8L3NlY3QxPgog CisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1l PnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJj YXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgIDxwcmltYXJ5PnBnX3ZhcmlhYmxlPC9wcmltYXJ5Pgor ICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBn X3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBzdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQKKyAgIHNlc3Np b24gdmFyaWFibGVzLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3Ru YW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3JvdXAg Y29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgRGVzY3Jp cHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgor CisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+dmFydHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAo cmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXR5cGUiPjxzdHJ1Y3RuYW1lPnBn X3R5cGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4p CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgT0lEIG9mIHRoZSB2YXJp YWJsZSdzIGRhdGEgdHlwZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjcmVhdGVf bHNuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cGdfbHNuPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgTFNOIG9mIHRoZSB0cmFuc2FjdGlvbiB3aGVyZSB0aGUgdmFyaWFi bGUgd2FzIGNyZWF0ZWQuCisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNyZWF0ZV9sc248L3N0cnVj dGZpZWxkPiBhbmQKKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gdG9nZXRo ZXIgZm9ybSB0aGUgYWxsLXRpbWUgdW5pcXVlCisgICAgICAgaWRlbnRpZmllciAoPHN0cnVjdGZp ZWxkPm9pZDwvc3RydWN0ZmllbGQ+IGFsb25lIGlzIG5vdCBlbm91Z2gsIHNpbmNlCisgICAgICAg b2JqZWN0IGlkZW50aWZpZXJzIGNhbiBnZXQgcmV1c2VkKS4KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+dmFybmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxl CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRh bG9nLXBnLW5hbWVzcGFjZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwv bGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMg dGhpcyB2YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25lcjwvc3Ry dWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5r ZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1l PjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlw bW9kPC9zdHJ1Y3RmaWVsZD4gcmVjb3JkcyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAgICBzdXBw bGllZCBhdCB2YXJpYWJsZSBjcmVhdGlvbiB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1heGltdW0K KyAgICAgICBsZW5ndGggb2YgYSA8dHlwZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAgSXQgaXMg cGFzc2VkIHRvCisgICAgICAgdHlwZS1zcGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5kIGxlbmd0 aCBjb2VyY2lvbiBmdW5jdGlvbnMuCisgICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJhbGx5IGJl IC0xIGZvciB0eXBlcyB0aGF0IGRvIG5vdCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0 cnVjdGZpZWxkPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxp bmtlbmQ9ImNhdGFsb2ctcGctY29sbGF0aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0 cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24gb2YgdGhl IHZhcmlhYmxlLCBvciB6ZXJvIGlmIHRoZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBvZiBhIGNv bGxhdGFibGUgZGF0YSB0eXBlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJhY2w8 L3N0cnVjdGZpZWxkPiA8dHlwZT5hY2xpdGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBBY2Nlc3MgcHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhyZWYgbGlu a2VuZD0ic3FsLWdyYW50Ii8+IGFuZAorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1yZXZva2Ui Lz4KKyAgICAgICBmb3IgZGV0YWlscworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CiA8 L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCBjMDkwMDk0ZWQwOC4uMmMyMGQ2MGRiMTkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNDUsNiArNDUsNyBAQCBPQkpTID0gXAogCXBnX3NoZGVw ZW5kLm8gXAogCXBnX3N1YnNjcmlwdGlvbi5vIFwKIAlwZ190eXBlLm8gXAorCXBnX3ZhcmlhYmxl Lm8gXAogCXN0b3JhZ2UubyBcCiAJdG9hc3RpbmcubwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZApp bmRleCAxOTU4ZWE5MjM4YS4uZWQ0NGM4NzdmY2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZApA QCAtMzIsNiArMzIsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdwZ19zaGRlcGVu ZC5jJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5jJywKICAgJ3BnX3R5cGUuYycsCisgICdwZ192YXJp YWJsZS5jJywKICAgJ3N0b3JhZ2UuYycsCiAgICd0b2FzdGluZy5jJywKICkKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmQ2 YTI5YTc5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zhcmlh YmxlLmMKQEAgLTAsMCArMSwxNjggQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3Zh cmlhYmxlLmMKKyAqCQlzZXNzaW9uIHZhcmlhYmxlcworICoKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m IENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJCXNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgorI2luY2x1ZGUgImNh dGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKKyNpbmNs dWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNz LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNs dWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgorI2luY2x1 ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBDcmVhdGVzIGVudHJ5IGluIHBnX3Zhcmlh YmxlIHRhYmxlCisgKi8KK09iamVjdEFkZHJlc3MKK2NyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFy ICp2YXJOYW1lLAorCQkJCU9pZCB2YXJOYW1lc3BhY2UsCisJCQkJT2lkIHZhclR5cGUsCisJCQkJ aW50MzIgdmFyVHlwbW9kLAorCQkJCU9pZCB2YXJPd25lciwKKwkJCQlPaWQgdmFyQ29sbGF0aW9u LAorCQkJCWJvb2wgaWZfbm90X2V4aXN0cykKK3sKKwlOYW1lRGF0YQl2YXJuYW1lOworCWJvb2wJ CW51bGxzW05hdHRzX3BnX3ZhcmlhYmxlXTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Zhcmlh YmxlXTsKKwlSZWxhdGlvbglyZWw7CisJSGVhcFR1cGxlCXR1cDsKKwlUdXBsZURlc2MJdHVwZGVz YzsKKwlPYmplY3RBZGRyZXNzIG15c2VsZiwKKwkJCQlyZWZlcmVuY2VkOworCU9iamVjdEFkZHJl c3NlcyAqYWRkcnM7CisJT2lkCQkJdmFyaWQ7CisKKwlBc3NlcnQodmFyTmFtZSk7CisJQXNzZXJ0 KE9pZElzVmFsaWQodmFyTmFtZXNwYWNlKSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyVHlwZSkp OworCUFzc2VydChPaWRJc1ZhbGlkKHZhck93bmVyKSk7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFZh cmlhYmxlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkvKgorCSAqIENoZWNrIGZv ciBkdXBsaWNhdGVzLiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCByZWFsbHkgcHJldmVudAorCSAq IGR1cGxpY2F0ZXMsIGl0J3MgaGVyZSBqdXN0IHRvIHByb3ZpZGUgbmljZXIgZXJyb3IgbWVzc2Fn ZSBpbiBjb21tb24KKwkgKiBjYXNlLiBUaGUgcmVhbCBwcm90ZWN0aW9uIGlzIHRoZSB1bmlxdWUg a2V5IG9uIHRoZSBjYXRhbG9nLgorCSAqLworCWlmIChTZWFyY2hTeXNDYWNoZUV4aXN0czIoVkFS SUFCTEVOQU1FTlNQLAorCQkJCQkJCSAgUG9pbnRlckdldERhdHVtKHZhck5hbWUpLAorCQkJCQkJ CSAgT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3BhY2UpKSkKKwl7CisJCWlmIChpZl9ub3RfZXhp c3RzKQorCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRF X09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkg ZXhpc3RzLCBza2lwcGluZyIsCisJCQkJCQkJdmFyTmFtZSkpKTsKKwkJZWxzZQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJ IGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJ CXZhck5hbWUpKSk7CisKKwkJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwor CQlyZXR1cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJfQorCisJbWVtc2V0KHZhbHVlcywgMCwg c2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOwor CisJbmFtZXN0cmNweSgmdmFybmFtZSwgdmFyTmFtZSk7CisKKwl2YXJpZCA9IEdldE5ld09pZFdp dGhJbmRleChyZWwsIFZhcmlhYmxlT2lkSW5kZXhJZCwgQW51bV9wZ192YXJpYWJsZV9vaWQpOwor CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZh cmlkKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjcmVhdGVfbHNuIC0gMV0gPSBMU05H ZXREYXR1bShHZXRYTG9nSW5zZXJ0UmVjUHRyKCkpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3Zhcm5hbWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmdmFybmFtZSk7CisJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFybmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFj ZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwZSAtIDFdID0gT2JqZWN0SWRHZXRE YXR1bSh2YXJUeXBlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9 IEludDMyR2V0RGF0dW0odmFyVHlwbW9kKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJv d25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CisJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlv bik7CisKKwludWxsc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gdHJ1ZTsKKworCXR1 cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUo dHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsK KwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJYWRkcnMgPSBuZXdfb2JqZWN0X2FkZHJl c3NlcygpOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFZhcmlhYmxlUmVsYXRpb25JZCwg dmFyaWQpOworCisJLyogZGVwZW5kZW5jeSBvbiBuYW1lc3BhY2UgKi8KKwlPYmplY3RBZGRyZXNz U2V0KHJlZmVyZW5jZWQsIE5hbWVzcGFjZVJlbGF0aW9uSWQsIHZhck5hbWVzcGFjZSk7CisJYWRk X2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisKKwkvKiBkZXBlbmRl bmN5IG9uIHVzZWQgdHlwZSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgVHlwZVJl bGF0aW9uSWQsIHZhclR5cGUpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNl ZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBjb2xsYXRpb24gKi8KKwlpZiAoT2lkSXNW YWxpZCh2YXJDb2xsYXRpb24pICYmCisJCXZhckNvbGxhdGlvbiAhPSBERUZBVUxUX0NPTExBVElP Tl9PSUQpCisJeworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENvbGxhdGlvblJlbGF0 aW9uSWQsIHZhckNvbGxhdGlvbik7CisJCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJl bmNlZCwgYWRkcnMpOworCX0KKworCXJlY29yZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMo Jm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKKwlmcmVlX29iamVjdF9hZGRyZXNz ZXMoYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLworCXJlY29yZERlcGVuZGVu Y3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVyKTsKKworCS8qIGRl cGVuZGVuY3kgb24gZXh0ZW5zaW9uICovCisJcmVjb3JkRGVwZW5kZW5jeU9uQ3VycmVudEV4dGVu c2lvbigmbXlzZWxmLCBmYWxzZSk7CisKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJLyogcG9z dCBjcmVhdGlvbiBob29rIGZvciBuZXcgZnVuY3Rpb24gKi8KKwlJbnZva2VPYmplY3RQb3N0Q3Jl YXRlSG9vayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwKTsKKworCXRhYmxlX2Nsb3NlKHJl bCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gbXlzZWxmOworfQorCisvKgorICogRHJv cCB2YXJpYWJsZSBieSBPSUQKKyAqLwordm9pZAorRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQp Cit7CisJUmVsYXRpb24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisKKwlyZWwgPSB0YWJsZV9vcGVu KFZhcmlhYmxlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwl0dXAgPSBTZWFyY2hT eXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxl ZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAm dHVwLT50X3NlbGYpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwl0YWJsZV9jbG9zZShy ZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9NYWtlZmlsZSBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMmJiYzc4MDVm ZTMuLmY5ODc2MGRlNjM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxl CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTgxLDcgKzgxLDggQEAgQ0FU QUxPR19IRUFERVJTIDo9IFwKIAlwZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UuaCBcCiAJcGdfcHVi bGljYXRpb25fcmVsLmggXAogCXBnX3N1YnNjcmlwdGlvbi5oIFwKLQlwZ19zdWJzY3JpcHRpb25f cmVsLmgKKwlwZ19zdWJzY3JpcHRpb25fcmVsLmggXAorCXBnX3ZhcmlhYmxlLmgKIAogR0VORVJB VEVEX0hFQURFUlMgOj0gJChDQVRBTE9HX0hFQURFUlM6JS5oPSVfZC5oKQogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9t ZXNvbi5idWlsZAppbmRleCBlYzFjZjQ2N2Y2Zi4uODEzOThlZmE3YzkgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9t ZXNvbi5idWlsZApAQCAtNjksNiArNjksNyBAQCBjYXRhbG9nX2hlYWRlcnMgPSBbCiAgICdwZ19w dWJsaWNhdGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcsCiAgICdwZ19zdWJzY3Jp cHRpb25fcmVsLmgnLAorICAncGdfdmFyaWFibGUuaCcsCiBdCiAKICMgVGhlIC5kYXQgZmlsZXMg d2UgbmVlZCBjYW4ganVzdCBiZSBsaXN0ZWQgYWxwaGFiZXRpY2FsbHkuCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE1ZjUz MDg5NGM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJs ZS5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3Zhcmlh YmxlLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzeXN0ZW0gY2F0YWxv ZyAocGdfdmFyaWFibGVzKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYt MjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh CisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisgKgorICogTk9URVMK KyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBz Y2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNp Zm5kZWYgUEdfVkFSSUFCTEVfSAorI2RlZmluZSBQR19WQVJJQUJMRV9ICisKKyNpbmNsdWRlICJh Y2Nlc3MveGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGVf ZC5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJ cGdfdmFyaWFibGUgZGVmaW5pdGlvbi4gIGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVm IHN0cnVjdCBGb3JtRGF0YV9wZ192YXJpYWJsZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitD QVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQoreworCU9pZAkJCW9p ZDsJCQkvKiBvaWQgKi8KKworCS8qIE9JRCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJs ZSdzIHR5cGUgKi8KKwlPaWQJCQl2YXJ0eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CisKKwkvKgor CSAqIFVzZWQgZm9yIGlkZW50aXR5IGNoZWNrIFtvaWQsIGNyZWF0ZV9sc25dLgorCSAqCisJICog VGhpcyBjb2x1bW4gb2YgdGhlIDgtYnl0ZSBYbG9nUmVjUHRyIHR5cGUgc2hvdWxkIGJlIGF0IGFu IGFkZHJlc3MgdGhhdAorCSAqIGlzIGRpdmlzaWJsZSBieSA4LCBidXQgYmVmb3JlIGFueSBjb2x1 bW4gb2YgdHlwZSBOYW1lRGF0YS4KKwkgKi8KKwlYTG9nUmVjUHRyCXZhcmNyZWF0ZV9sc247CisK KwkvKiB2YXJpYWJsZSBuYW1lICovCisJTmFtZURhdGEJdmFybmFtZTsKKworCS8qIE9JRCBvZiBu YW1lc3BhY2UgY29udGFpbmluZyB2YXJpYWJsZSBjbGFzcyAqLworCU9pZAkJCXZhcm5hbWVzcGFj ZSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7CisKKwkvKiB2YXJpYWJsZSBvd25lciAqLworCU9p ZAkJCXZhcm93bmVyIEJLSV9MT09LVVAocGdfYXV0aGlkKTsKKworCS8qIHR5cG1vZCBmb3IgdmFy aWFibGUncyB0eXBlICovCisJaW50MzIJCXZhcnR5cG1vZCBCS0lfREVGQVVMVCgtMSk7CisKKwkv KiB2YXJpYWJsZSBjb2xsYXRpb24gKi8KKwlPaWQJCQl2YXJjb2xsYXRpb24gQktJX0RFRkFVTFQo MCkgQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9uKTsKKworCisjaWZkZWYgQ0FUQUxPR19WQVJM RU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKworCS8qIGFjY2Vz cyBwZXJtaXNzaW9ucyAqLworCWFjbGl0ZW0JCXZhcmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8p OworCisjZW5kaWYKK30gRm9ybURhdGFfcGdfdmFyaWFibGU7CisKKy8qIC0tLS0tLS0tLS0tLS0t LS0KKyAqCQlGb3JtX3BnX3ZhcmlhYmxlIGNvcnJlc3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1 cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHRoZSBwZ192YXJpYWJsZSByZWxhdGlvbi4KKyAq IC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBGb3JtRGF0YV9wZ192YXJpYWJsZSAqRm9y bV9wZ192YXJpYWJsZTsKKworREVDTEFSRV9UT0FTVChwZ192YXJpYWJsZSwgOTIyMywgOTIyNCk7 CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfdmFyaWFibGVfb2lkX2luZGV4LCA5MjI1 LCBWYXJpYWJsZU9pZEluZGV4SWQsIHBnX3ZhcmlhYmxlLCBidHJlZShvaWQgb2lkX29wcykpOwor REVDTEFSRV9VTklRVUVfSU5ERVgocGdfdmFyaWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDkyMjYs IFZhcmlhYmxlTmFtZU5zcEluZGV4SWQsIHBnX3ZhcmlhYmxlLCBidHJlZSh2YXJuYW1lIG5hbWVf b3BzLCB2YXJuYW1lc3BhY2Ugb2lkX29wcykpOworCitNQUtFX1NZU0NBQ0hFKFZBUklBQkxFTkFN RU5TUCwgcGdfdmFyaWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDgpOworTUFLRV9TWVNDQUNIRShW QVJJQUJMRU9JRCwgcGdfdmFyaWFibGVfb2lkX2luZGV4LCA4KTsKKworZXh0ZXJuIE9iamVjdEFk ZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCisJCQkJCQkJCQkgT2lk IHZhck5hbWVzcGFjZSwKKwkJCQkJCQkJCSBPaWQgdmFyVHlwZSwKKwkJCQkJCQkJCSBpbnQzMiB2 YXJUeXBtb2QsCisJCQkJCQkJCQkgT2lkIHZhck93bmVyLAorCQkJCQkJCQkJIE9pZCB2YXJDb2xs YXRpb24sCisJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKworZXh0ZXJuIHZvaWQgRHJv cFZhcmlhYmxlQnlJZChPaWQgdmFyaWQpOworCisjZW5kaWYJCQkJCQkJLyogUEdfVkFSSUFCTEVf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCAyMTVlYjg5OWJl My4uZDk5NTMzMjE0MDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CkBA IC0yNjYsMyArMjY2LDcgQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJk YmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0 aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19z dWJzY3JpcHRpb25fcmVsIHtzcnN1YmlkfSA9PiBwZ19zdWJzY3JpcHRpb24ge29pZH0KIE5PVElD RTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3NycmVsaWR9ID0+IHBnX2NsYXNzIHtv aWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFydHlwZX0gPT4gcGdfdHlwZSB7 b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zhcm5hbWVzcGFjZX0gPT4gcGdf bmFtZXNwYWNlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFyb3duZXJ9 ID0+IHBnX2F1dGhpZCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3ZhcmNv bGxhdGlvbn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cmlu ZGV4IDQzMjUwOTI3N2M5Li5jZjVjODdjMDNhMiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK QEAgLTkxMSw2ICs5MTEsNyBAQCBGb3JtRGF0YV9wZ190c19wYXJzZXIKIEZvcm1EYXRhX3BnX3Rz X3RlbXBsYXRlCiBGb3JtRGF0YV9wZ190eXBlCiBGb3JtRGF0YV9wZ191c2VyX21hcHBpbmcKK0Zv cm1EYXRhX3BnX3ZhcmlhYmxlCiBGb3JtRXh0cmFEYXRhX3BnX2F0dHJpYnV0ZQogRm9ybV9wZ19h Z2dyZWdhdGUKIEZvcm1fcGdfYW0KQEAgLTk3MCw2ICs5NzEsNyBAQCBGb3JtX3BnX3RzX3BhcnNl cgogRm9ybV9wZ190c190ZW1wbGF0ZQogRm9ybV9wZ190eXBlCiBGb3JtX3BnX3VzZXJfbWFwcGlu ZworRm9ybV9wZ192YXJpYWJsZQogRm9ybWF0Tm9kZQogRnJlZUJsb2NrTnVtYmVyQXJyYXkKIEZy ZWVMaXN0RGF0YQotLSAKMi41MS4xCgo= --0000000000002d69be064337d139--