Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1whn4Z-000Q9y-1D for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2026 11:37:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1whn4X-00CmTi-2f for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2026 11:37:42 +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.96) (envelope-from ) id 1whn4X-00CmTC-0X for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2026 11:37:42 +0000 Received: from mail-lf1-x12b.google.com ([2a00:1450:4864:20::12b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1whn4R-00000000JJN-15ma for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2026 11:37:41 +0000 Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-5aeb8c19017so1750137e87.0 for ; Thu, 09 Jul 2026 04:37:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783597052; cv=none; d=google.com; s=arc-20260327; b=NMeZahDEcg396bHPbVHgw9UPxY3WZryrLfjlKUrvUfZmEZvew2imQ/3TilHNCsxdSi TbGtrCZE1iPC+UADiI8r+ZGp42BnfhHsC6ATUQVpxB3GZj8/btqQpUL9rj6GB/7TlCzk X5x7M0wBDDWlUn5cqyJz9ezxadBYbS8MA7ITMwFAGweY58qCdWhuOUPN9V4d/fsFpoWn A+dtXVqxFdqZ2SLPX59ZzAhwpT7wuwvuDd98RMn/ZtjojQc8hELCEpphy407QnP20rqi JuVKyQlwpj6CpV9D4olsJgEnoMAIpkli/CfJeNXyRaspeC9Rd9NlU35tJ5Zq2UBYznoV LyHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=fgmjo/eySQgdDef4lobhwN68ZwZL6kS5GqGUiDK+/3U=; fh=WdcotWpM4v5t8WFicYIreQeSG2qa4z3X2GuYymv30nQ=; b=Zv5+KNMYpB5TVs8oFgF8/KPNyUYdoAatdGuh0tc8a9d10r7w9VS1od07cVzDfYTTrd DV2JZF44nZSqAd0iRT8p7WQB2Mt6wmv1BttjADGHZXQBa4YkflHp60g7+/liZDNaDueD dsmbaQArY2pBI4tYMTrUiDe6L/zPGdVe+0LWYchRNtHr2RTcTDHq2UWp4KU47TzFhb5w 1uGAw0khHRqxCAzKQHskhesjacy/n+TCB5cjorYR/UaR86QHfSZzod3O1NpQQSwshNA2 jk5fu1ddOb0XS5RD7Fsnlthg+7ZkKdejE2rk4KTT/QGqMnBQJp8V8Z6WUBkq+EtlpRav zrYQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783597052; x=1784201852; darn=lists.postgresql.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=fgmjo/eySQgdDef4lobhwN68ZwZL6kS5GqGUiDK+/3U=; b=PFwZV13X2KU0UNMRdJGjwWS44R+nZtiRMbwpr/ayB3RP19ZXhVGd90rfCKwnW2B/Xa CiE4Rb/vWtfd1ez4LN2qjQwAP8nOKuCCFkY6aChTrygDwtDxutyfxs5hLK37xgebZnJT 6y8qr80FO44DAq5z07aom73YqHgMynY+aUhaoPFMGON1qQj4S1HFyb79u5fii3qq0KU8 nAwRBzK++w1kJ5ogHEoHwv69rW3OwANJVJNmqG00FGUQWTkq+C3L8+s2RRycmfNpB4Gv DOAlU8GDYJ76svehJa0OfDrWD6mq6gbgPOpyt3ymxBnq0J3it1jHgykVt3N6D2GX5OaN J7Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783597052; x=1784201852; h=content-type: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:content-type; bh=fgmjo/eySQgdDef4lobhwN68ZwZL6kS5GqGUiDK+/3U=; b=an4W96T9XUZl4rQTgnRuWJHrvAPEREt3zMX4FunLMhUcEAqRYKJE61/ksASM2EhjlD zFYP/JMBWus3p2rA1aPjHVnVTr80LdlZ1qOELqpTELVaOsW+t4KaT5+4iW7zEuKchQ7s GJTnzHDZSRuyacGASssb6pDel6JM9xpv7bluhrHeAyMWpLgosmnPLW/7976LyTApo0Dw wguEi7p4lEAQrP67rn7WecmCC4CPMhAaI9oOnzHjFtuwBIkpPLLTyO+hkAy4xgtKjqCs dLz6SBEHZFeR7cnbA7GuaDk9dccm9SH1LwJoJzOKeD4al9848XLMcXoPw1/9jMcB4liK SEvw== X-Forwarded-Encrypted: i=1; AHgh+RrchaE6W39uH+Wx5Rpr/ZyIHrjA0uTYI1Gn4DCPGA3RFaiE5LCXA8q5NK+Ef07x3wahsxq/gaPZhQaPy38E@lists.postgresql.org X-Gm-Message-State: AOJu0Ywi/5bOkfaZcDcASPKa5NuK7nL7caxEycHJ0W4nvizKI0A5cazQ SBoLHv2E8lnjL1zvl6TOOgzujfItTRo3rSBR2QgFkcvQgNXalyK40BcSqLG9NGbjP4+ehOlppIA v2mvv5vFmka98Uel4tJF5JV8yHdKPkdk= X-Gm-Gg: AfdE7cldQmLZTqfM6PmBpDIIMi3Iep0dpv0IbP6FSNIX/qEMffH4clBhXRC1ZrfO5yc IIQep2utJ8+NGjPoV0xo9pHsWqEQdFqaOvWLkSIoFues+3+nEceYYRRup+A835FLFxymU9eDL7Q gWA4PA4SKbgnJHpv8slnHp2lRC7s39UjNaTGVcHRsY+Xn83KjqUXcCrfCa+ZyFKgcb2Xg0/fvhD Tw17TAgCsMCdv7lLtZa0vzlL4rQEKzH8iCQ4arHDtFGZVbib2Dpetp+16HduKsYQqUYbga1R2JE X2elaW+u+SWyJbf2oVExmRU4SmeI9LsMuR96kYpQJ31r9j7lX4K3NX75s2Pb72nG2dh3xTeCuuQ WbWur2g== X-Received: by 2002:ac2:5202:0:b0:5ae:a9eb:eff0 with SMTP id 2adb3069b0e04-5b011497f3amr1078865e87.57.1783597051927; Thu, 09 Jul 2026 04:37:31 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ajin Cherian Date: Thu, 9 Jul 2026 21:37:16 +1000 X-Gm-Features: AVVi8Ce85IOP3N314QZQ5f9dxj-ajCOh9kNhnVDI-A9By_ZvtMMCJ20iycYke0k Message-ID: Subject: Re: [PATCH] Preserve replication origin OIDs in pg_upgrade To: shveta malik Cc: Amit Kapila , "Hayato Kuroda (Fujitsu)" , Shlok Kyal , Zsolt Parragi , "pgsql-hackers@lists.postgresql.org" Content-Type: multipart/mixed; boundary="000000000000b4027a06562c0c7e" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b4027a06562c0c7e Content-Type: text/plain; charset="UTF-8" Thank you all for the comments. I have tried to address all the comments. I am not responding to each of them here. Based on the discussion above, I have retained the logic as mentioned by Shlok to compare active origins against max_active_replication_origins. Attaching v11 with all comments addressed. regards, Ajin Cherian Fujitsu Australia --000000000000b4027a06562c0c7e Content-Type: application/octet-stream; name="v11-0001-Preserve-subscription-OIDs-during-pg_upgrade.patch" Content-Disposition: attachment; filename="v11-0001-Preserve-subscription-OIDs-during-pg_upgrade.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrdfkx720 RnJvbSBkOGRkZjExYzQ4NzdlZmEyZjJhNWJmMTgzYThlMGUwMmU5NzM3Mjc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBamluIENoZXJpYW4gPGl0c2FqaW5AZ21haWwuY29tPgpEYXRl OiBUaHUsIDkgSnVsIDIwMjYgMjE6MDY6MDQgKzEwMDAKU3ViamVjdDogW1BBVENIIHYxMSAxLzJd IFByZXNlcnZlIHN1YnNjcmlwdGlvbiBPSURzIGR1cmluZyBwZ191cGdyYWRlCgpSZXBsaWNhdGlv biBvcmlnaW5zIGFyZSBsaW5rZWQgdG8gdGhlaXIgc3Vic2NyaXB0aW9ucyBvbmx5IGJ5Cm5hbWlu ZyBjb252ZW50aW9uLCB3aGVyZSB0aGUgb3JpZ2luIG5hbWUgZW1iZWRzIHRoZSBzdWJzY3JpcHRp b24ncwpPSUQgKGUuZy4gInBnXzxzdWJvaWQ+IikuIHBnX2R1bXBhbGwgcmVzdG9yZXMgb3JpZ2lu cyBpbmRlcGVuZGVudGx5Cm9mIENyZWF0ZVN1YnNjcmlwdGlvbiwgc28gaWYgc3Vic2NyaXB0aW9u IE9JRHMgY2hhbmdlIGR1cmluZwp1cGdyYWRlLCByZXN0b3JlZCBvcmlnaW5zIHdpbGwgbm8gbG9u Z2VyIG1hdGNoIHRoZWlyIHN1YnNjcmlwdGlvbnMuClRoaXMgcGF0Y2ggcHJlc2VydmVzIHN1YnNj cmlwdGlvbiBPSURzIHNvIGEgZm9sbG93LXVwIHBhdGNoIGNhbgpjb3JyZWN0bHkgcmVzdG9yZSBy ZXBsaWNhdGlvbiBvcmlnaW5zLgoKQXV0aG9yOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5j b20+ClJldmlld2VyOiBBamluIENoZXJpYW4gPGl0c2FqaW5AZ21haWwuY29tPgotLS0KIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyAgICAgICB8IDI1ICsrKysrKysrKysr KysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191cGdyYWRlX3N1cHBvcnQuYyAgICB8 IDEwICsrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAg ICAgfCAgOCArKysrKysKIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgICAgICAgICAg ICAgICB8ICAzICsrKwogc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5wbCAg ICAgIHwgIDcgKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2JpbmFyeV91cGdyYWRlLmggICAg ICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAg ICAgfCAgNCArKysKIC4uLi9leHBlY3RlZC9zcGdpc3RfbmFtZV9vcHMub3V0ICAgICAgICAgICAg ICB8ICA2ICsrKy0tCiA4IGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCmluZGV4IDQyOTJl N2ZiOGY0Li5lODdjMTgzNTZkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNt ZHMuYwpAQCAtODYsNiArODYsMTIgQEAKIC8qIGNoZWNrIGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMn IHNldCAqLwogI2RlZmluZSBJc1NldCh2YWwsIGJpdHMpICAoKCh2YWwpICYgKGJpdHMpKSA9PSAo Yml0cykpCiAKKy8qCisgKiBUaGlzIHdpbGwgYmUgc2V0IGJ5IHRoZSBwZ191cGdyYWRlX3N1cHBv cnQgZnVuY3Rpb24gLS0KKyAqIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlv bl9vaWQoKS4KKyAqLworT2lkCQkJYmluYXJ5X3VwZ3JhZGVfbmV4dF9wZ19zdWJzY3JpcHRpb25f b2lkID0gSW52YWxpZE9pZDsKKwogLyoKICAqIFN0cnVjdHVyZSB0byBob2xkIGEgYml0bWFwIHJl cHJlc2VudGluZyB0aGUgdXNlci1wcm92aWRlZCBDUkVBVEUvQUxURVIKICAqIFNVQlNDUklQVElP TiBjb21tYW5kIG9wdGlvbnMgYW5kIHRoZSBwYXJzZWQvZGVmYXVsdCB2YWx1ZXMgb2YgZWFjaCBv ZiB0aGVtLgpAQCAtODI4LDggKzgzNCwyMyBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCW1lbXNldCh2YWx1ZXMs IDAsIHNpemVvZih2YWx1ZXMpKTsKIAltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMp KTsKIAotCXN1YmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgU3Vic2NyaXB0aW9uT2JqZWN0 SW5kZXhJZCwKLQkJCQkJCQkgICBBbnVtX3BnX3N1YnNjcmlwdGlvbl9vaWQpOworCS8qIFVzZSBi aW5hcnktdXBncmFkZSBvdmVycmlkZSBmb3IgcGdfc3Vic2NyaXB0aW9uLm9pZD8gKi8KKwlpZiAo SXNCaW5hcnlVcGdyYWRlKQorCXsKKwkJaWYgKCFPaWRJc1ZhbGlkKGJpbmFyeV91cGdyYWRlX25l eHRfcGdfc3Vic2NyaXB0aW9uX29pZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJIGVycm1zZygicGdfc3Vi c2NyaXB0aW9uIE9JRCB2YWx1ZSBub3Qgc2V0IHdoZW4gaW4gYmluYXJ5IHVwZ3JhZGUgbW9kZSIp KSk7CisKKwkJc3ViaWQgPSBiaW5hcnlfdXBncmFkZV9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQ7 CisJCWJpbmFyeV91cGdyYWRlX25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCA9IEludmFsaWRPaWQ7 CisJfQorCWVsc2UKKwl7CisJCXN1YmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgU3Vic2Ny aXB0aW9uT2JqZWN0SW5kZXhJZCwKKwkJCQkJCQkJICAgQW51bV9wZ19zdWJzY3JpcHRpb25fb2lk KTsKKwl9CisKIAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fb2lkIC0gMV0gPSBPYmplY3RJ ZEdldERhdHVtKHN1YmlkKTsKIAl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViZGJpZCAt IDFdID0gT2JqZWN0SWRHZXREYXR1bShNeURhdGFiYXNlSWQpOwogCXZhbHVlc1tBbnVtX3BnX3N1 YnNjcmlwdGlvbl9zdWJza2lwbHNuIC0gMV0gPSBMU05HZXREYXR1bShJbnZhbGlkWExvZ1JlY1B0 cik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0 LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfdXBncmFkZV9zdXBwb3J0LmMKaW5kZXggYjUw NWE2YjRmZWUuLjU5YzNlN2YwMTQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv cGdfdXBncmFkZV9zdXBwb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3Jh ZGVfc3VwcG9ydC5jCkBAIC0xODEsNiArMTgxLDE2IEBAIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0 X3BnX2F1dGhpZF9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fVk9JRCgpOwogfQog CitEYXR1bQorYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZChQR19G VU5DVElPTl9BUkdTKQoreworCU9pZAkJCXN1YmlkID0gUEdfR0VUQVJHX09JRCgwKTsKKworCUNI RUNLX0lTX0JJTkFSWV9VUEdSQURFOworCWJpbmFyeV91cGdyYWRlX25leHRfcGdfc3Vic2NyaXB0 aW9uX29pZCA9IHN1YmlkOworCVBHX1JFVFVSTl9WT0lEKCk7Cit9CisKIERhdHVtCiBiaW5hcnlf dXBncmFkZV9jcmVhdGVfZW1wdHlfZXh0ZW5zaW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwppbmRleCA0ZDY2MGQxNGI0Yy4uNzUwNzVhZTA4MGIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTUz Nyw2ICs1NTM3LDE0IEBAIGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vi c2NyaXB0aW9uSW5mbyAqc3ViaW5mbykKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBT VUJTQ1JJUFRJT04gJXM7XG4iLAogCQkJCQkgIHFzdWJuYW1lKTsKIAorCWlmIChkb3B0LT5iaW5h cnlfdXBncmFkZSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiXG4tLSBGb3Ig YmluYXJ5IHVwZ3JhZGUsIG11c3QgcHJlc2VydmUgcGdfc3Vic2NyaXB0aW9uLm9pZFxuIik7CisJ CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cuYmlu YXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCgnJXUnOjpwZ19jYXRhbG9n Lm9pZCk7XG5cbiIsCisJCQkJCQkgIHN1YmluZm8tPmRvYmouY2F0SWQub2lkKTsKKwl9CisKIAlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBTVUJTQ1JJUFRJT04gJXMgIiwKIAkJCQkJ ICBxc3VibmFtZSk7CiAJaWYgKHN1YmluZm8tPnN1YnNlcnZlcm5hbWUpCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3Vw Z3JhZGUuYwppbmRleCA3MzY2ZmQ0NjI3Yy4uMjZiMWM4MzYyZGQgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3Vw Z3JhZGUuYwpAQCAtMzUsNiArMzUsOSBAQAogICoKICAqCVdlIGNvbnRyb2wgYWxsIGFzc2lnbm1l bnRzIG9mIHBnX2RhdGFiYXNlLm9pZCBiZWNhdXNlIHdlIHdhbnQgdGhlIGRpcmVjdG9yeQogICoJ bmFtZXMgdG8gbWF0Y2ggYmV0d2VlbiB0aGUgb2xkIGFuZCBuZXcgY2x1c3Rlci4KKyAqCisgKiAg V2UgY29udHJvbCBhc3NpZ25tZW50IG9mIHBnX3N1YnNjcmlwdGlvbi5vaWQgYmVjYXVzZSB3ZSB3 YW50IHRoZSBvaWQgdG8KKyAqICBtYXRjaCBiZXR3ZWVuIHRoZSBvbGQgYW5kIG5ldyBjbHVzdGVy LgogICovCiAKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlw dGlvbi5wbCBiL3NyYy9iaW4vcGdfdXBncmFkZS90LzAwNF9zdWJzY3JpcHRpb24ucGwKaW5kZXgg MzZmMDU5ZmFhMmUuLjkyODZjMWRjODVlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUv dC8wMDRfc3Vic2NyaXB0aW9uLnBsCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS90LzAwNF9zdWJz Y3JpcHRpb24ucGwKQEAgLTMxMyw2ICszMTMsOSBAQCBteSAkdGFiX3VwZ3JhZGVkMV9vaWQgPSAk b2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiBteSAkdGFiX3VwZ3JhZGVkMl9vaWQgPSAk b2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCBvaWQgRlJPTSBwZ19jbGFz cyBXSEVSRSByZWxuYW1lID0gJ3RhYl91cGdyYWRlZDInIik7CiAKKyRzdWJfb2lkID0gJG9sZF9z dWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1Qgb2lkIEZST00gcGdfc3Vic2NyaXB0 aW9uIE9SREVSIEJZIHN1Ym5hbWUiKTsKKwogJG9sZF9zdWItPnN0b3A7CiAKICMgQ2hhbmdlIGNv bmZpZ3VyYXRpb24gc28gdGhhdCBpbml0aWFsIHRhYmxlIHN5bmMgZG9lcyBub3QgZ2V0IHN0YXJ0 ZWQKQEAgLTM1OSw2ICszNjIsMTAgQEAgJHB1Ymxpc2hlci0+c2FmZV9wc3FsKAogCiAkbmV3X3N1 Yi0+c3RhcnQ7CiAKKyMgVGhlIHN1YnNjcmlwdGlvbiBvaWQgc2hvdWxkIGJlIHByZXNlcnZlZAor JHJlc3VsdCA9ICRuZXdfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBvaWQgRlJP TSBwZ19zdWJzY3JpcHRpb24gT1JERVIgQlkgc3VibmFtZSIpOworaXMoJHJlc3VsdCwgcXEoJHN1 Yl9vaWQpLCAic3Vic2NyaXB0aW9uIG9pZCBzaG91bGQgaGF2ZSBiZWVuIHByZXNlcnZlZCIpOwor CiAjIFRoZSBzdWJzY3JpcHRpb24ncyBydW5uaW5nIHN0YXR1cywgZmFpbG92ZXIgb3B0aW9uLCBh bmQgcmV0YWluX2RlYWRfdHVwbGVzCiAjIG9wdGlvbiBzaG91bGQgYmUgcHJlc2VydmVkIGluIHRo ZSB1cGdyYWRlZCBpbnN0YW5jZS4gU28gcmVncmVzc19zdWI0IHNob3VsZAogIyBzdGlsbCBoYXZl IHN1YmVuYWJsZWQsIHN1YmZhaWxvdmVyLCBhbmQgc3VicmV0YWluZGVhZHR1cGxlcyBzZXQgdG8g dHJ1ZSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvYmluYXJ5X3VwZ3JhZGUuaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvYmluYXJ5X3VwZ3JhZGUuaAppbmRleCA3YmY3YWU0NDM4NS4u YjE1YjE4ZTdkYzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvYmluYXJ5X3VwZ3Jh ZGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2JpbmFyeV91cGdyYWRlLmgKQEAgLTMyLDYg KzMyLDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIFJlbEZpbGVOdW1iZXIgYmluYXJ5X3VwZ3JhZGVf bmV4dF90b2FzdF9wZ19jbGFzc19yZWxmaWxlbnVtYmUKIAogZXh0ZXJuIFBHRExMSU1QT1JUIE9p ZCBiaW5hcnlfdXBncmFkZV9uZXh0X3BnX2VudW1fb2lkOwogZXh0ZXJuIFBHRExMSU1QT1JUIE9p ZCBiaW5hcnlfdXBncmFkZV9uZXh0X3BnX2F1dGhpZF9vaWQ7CitleHRlcm4gUEdETExJTVBPUlQg T2lkIGJpbmFyeV91cGdyYWRlX25leHRfcGdfc3Vic2NyaXB0aW9uX29pZDsKIAogZXh0ZXJuIFBH RExMSU1QT1JUIGJvb2wgYmluYXJ5X3VwZ3JhZGVfcmVjb3JkX2luaXRfcHJpdnM7CiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0CmluZGV4IDNjYjg0MzU5YWRmLi42NWQ5MWUwZDhkZSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0CkBAIC0xMTk5NCw2ICsxMTk5NCwxMCBAQAogICBwcm9pc3N0cmljdCA9 PiAnZicsIHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcGFyYWxsZWwgPT4gJ3UnLAogICBwcm9yZXR0 eXBlID0+ICd2b2lkJywgcHJvYXJndHlwZXMgPT4gJycsCiAgIHByb3NyYyA9PiAnYmluYXJ5X3Vw Z3JhZGVfY3JlYXRlX2NvbmZsaWN0X2RldGVjdGlvbl9zbG90JyB9LAoreyBvaWQgPT4gJzkxNjAn LCBkZXNjciA9PiAnZm9yIHVzZSBieSBwZ191cGdyYWRlJywKKyAgcHJvbmFtZSA9PiAnYmluYXJ5 X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vic2NyaXB0aW9uX29pZCcsIHByb3ZvbGF0aWxlID0+ICd2 JywKKyAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICd2b2lkJywgcHJvYXJndHlw ZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAnYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfc3Vi c2NyaXB0aW9uX29pZCcgfSwKIAogIyBjb252ZXJzaW9uIGZ1bmN0aW9ucwogeyBvaWQgPT4gJzQz MTAnLCBkZXNjciA9PiAnaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmb3IgS09JOFIgdG8g V0lOMTI1MScsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3NwZ2lzdF9uYW1lX29wcy9l eHBlY3RlZC9zcGdpc3RfbmFtZV9vcHMub3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy9zcGdpc3RfbmFt ZV9vcHMvZXhwZWN0ZWQvc3BnaXN0X25hbWVfb3BzLm91dAppbmRleCAxZWU2NWVkZTI0My4uMzlk NDMzNjhjNDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvc3BnaXN0X25hbWVfb3BzL2V4 cGVjdGVkL3NwZ2lzdF9uYW1lX29wcy5vdXQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9zcGdpc3Rf bmFtZV9vcHMvZXhwZWN0ZWQvc3BnaXN0X25hbWVfb3BzLm91dApAQCAtNTksMTEgKzU5LDEyIEBA IHNlbGVjdCAqIGZyb20gdAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X211bHRpcmFuZ2VfcGdf dHlwZV9vaWQgICAgICAgfCAgMSB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X211bHRpcmFuZ2Vf cGdfdHlwZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19hdXRoaWRfb2lkICAgICAg ICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19hdXRoaWRfb2lkCiAg YmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfZW51bV9vaWQgICAgICAgICAgICAgICAgICB8ICAg IHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfcGdfZW51bV9vaWQKKyBiaW5hcnlfdXBncmFkZV9z ZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFk ZV9zZXRfbmV4dF9wZ19zdWJzY3JpcHRpb25fb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRf cGdfdGFibGVzcGFjZV9vaWQgICAgICAgICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25l eHRfcGdfdGFibGVzcGFjZV9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190eXBlX29p ZCAgICAgICAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ190eXBl X29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3BnX2NsYXNzX29pZCAgICAgICAg ICAgfCAgMSB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3BnX2NsYXNzX29pZAogIGJp bmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3JlbGZpbGVub2RlICAgICAgICAgICAgfCAgICB8 IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3RvYXN0X3JlbGZpbGVub2RlCi0oMTMgcm93cykKKygx NCByb3dzKQogCiAtLSBWZXJpZnkgY2xlYW4gZmFpbHVyZSB3aGVuIElOQ0xVREUnZCBjb2x1bW5z IHJlc3VsdCBpbiBvdmVybGVuZ3RoIHR1cGxlCiAtLSBUaGUgZXJyb3IgbWVzc2FnZSBkZXRhaWxz IGFyZSBwbGF0Zm9ybS1kZXBlbmRlbnQsIHNvIHNob3cgb25seSBTUUxTVEFURQpAQCAtMTA4LDEx ICsxMDksMTIgQEAgc2VsZWN0ICogZnJvbSB0CiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfbXVs dGlyYW5nZV9wZ190eXBlX29pZCAgICAgICB8ICAxIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRf bXVsdGlyYW5nZV9wZ190eXBlX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX2F1dGhp ZF9vaWQgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX2F1 dGhpZF9vaWQKICBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19lbnVtX29pZCAgICAgICAgICAg ICAgICAgIHwgICAgfCBiaW5hcnlfdXBncmFkZV9zZXRfbmV4dF9wZ19lbnVtX29pZAorIGJpbmFy eV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQgICAgICAgICAgfCAgICB8IGJp bmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQKICBiaW5hcnlfdXBncmFk ZV9zZXRfbmV4dF9wZ190YWJsZXNwYWNlX29pZCAgICAgICAgICAgIHwgICAgfCBiaW5hcnlfdXBn cmFkZV9zZXRfbmV4dF9wZ190YWJsZXNwYWNlX29pZAogIGJpbmFyeV91cGdyYWRlX3NldF9uZXh0 X3BnX3R5cGVfb2lkICAgICAgICAgICAgICAgICAgfCAgICB8IGJpbmFyeV91cGdyYWRlX3NldF9u ZXh0X3BnX3R5cGVfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9hc3RfcGdfY2xhc3Nf b2lkICAgICAgICAgICB8ICAxIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9hc3RfcGdfY2xh c3Nfb2lkCiAgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9hc3RfcmVsZmlsZW5vZGUgICAgICAg ICAgICB8ICAgIHwgYmluYXJ5X3VwZ3JhZGVfc2V0X25leHRfdG9hc3RfcmVsZmlsZW5vZGUKLSgx MyByb3dzKQorKDE0IHJvd3MpCiAKIFxzZXQgVkVSQk9TSVRZIHNxbHN0YXRlCiBpbnNlcnQgaW50 byB0IHZhbHVlcyhyZXBlYXQoJ3h5enp5JywgMTIpLCA0MiwgcmVwZWF0KCd4eXp6eScsIDQwMDAp KTsKLS0gCjIuNDcuMwoK --000000000000b4027a06562c0c7e Content-Type: application/octet-stream; name="v11-0002-Preserve-replication-origin-OIDs-during-pg_upgra.patch" Content-Disposition: attachment; filename="v11-0002-Preserve-replication-origin-OIDs-during-pg_upgra.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrdfkx7w1 RnJvbSAxNmY2NzE5YmNlYzRmYjA2YTE2ZDVkNzk1MjdkZjY4ZjYzY2JkNjNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBamluIENoZXJpYW4gPGl0c2FqaW5AZ21haWwuY29tPgpEYXRl OiBUaHUsIDkgSnVsIDIwMjYgMjE6MTM6MDkgKzEwMDAKU3ViamVjdDogW1BBVENIIHYxMSAyLzJd IFByZXNlcnZlIHJlcGxpY2F0aW9uIG9yaWdpbiBPSURzIGR1cmluZyBwZ191cGdyYWRlCgpXaGVu IHBnX3VwZ3JhZGUgbWlncmF0ZXMgYSBzdWJzY3JpYmVyLCByZXBsaWNhdGlvbiBvcmlnaW4gT0lE cwoocm9pZGVudCkgY2FuIGNoYW5nZSBhY3Jvc3MgdGhlIHVwZ3JhZGUuIFRoaXMgaXMgYSBwcm9i bGVtIGJlY2F1c2UKY29tbWl0LXRpbWVzdGFtcCByZWNvcmRzIGVtYmVkIHJvaWRlbnQgYW5kIGFy ZSBjb3BpZWQgZGlyZWN0bHkgZnJvbQp0aGUgb2xkIGNsdXN0ZXIncyBwZ19jb21taXRfdHMgZGly ZWN0b3J5LCBjYXVzaW5nIHNwdXJpb3VzCiJ1cGRhdGVfb3JpZ2luX2RpZmZlcnMiIGNvbmZsaWN0 cyBhZnRlciB0aGUgdXBncmFkZS4KCkZpeCB0aGlzIGJ5IGR1bXBpbmcgcmVwbGljYXRpb24gb3Jp Z2lucyBhcyBnbG9iYWwgb2JqZWN0cyB2aWEKcGdfZHVtcGFsbCBkdXJpbmcgYmluYXJ5IHVwZ3Jh ZGUsIHVzaW5nIGEgbmV3IGZ1bmN0aW9uCmJpbmFyeV91cGdyYWRlX2NyZWF0ZV9yZXBsaWNhdGlv bl9vcmlnaW4ob2lkLCBuYW1lLCBsc24pIHRvIHJlY3JlYXRlCmVhY2ggb3JpZ2luIHdpdGggaXRz IHByZXNlcnZlZCByb2lkZW50IGFuZCByZW1vdGVfbHNuLiBUbyBhdm9pZApjb25mbGljdHMgd2l0 aCB0aGlzLCBDcmVhdGVTdWJzY3JpcHRpb24oKSBza2lwcyByZXBsb3JpZ2luX2NyZWF0ZSgpCmlu IGJpbmFyeS11cGdyYWRlIG1vZGUgc2luY2UgdGhlIG9yaWdpbiBpcyBhbHJlYWR5IGNyZWF0ZWQg YnkgdGhlCnRpbWUgdGhlIHN1YnNjcmlwdGlvbiBpcyByZXN0b3JlZC4KCkF1dGhvcjogQWppbiBD aGVyaWFuIDxpdHNhamluQGdtYWlsLmNvbT4KUmV2aWV3ZXI6IEhheWF0byBLdXJvZGEgKEZ1aml0 c3UpIDxrdXJvZGEuaGF5YXRvQGZ1aml0c3UuY29tPgpSZXZpZXdlcjogWnNvbHQgUGFycmFnaSA8 enNvbHQucGFycmFnaUBwZXJjb25hLmNvbT4KUmV2aWV3ZXI6IFNobG9rIEt5YWwgPHNobG9rLmt5 YWwub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZXI6IFNodmV0YSBtYWxpayA8c2h2ZXRhLm1hbGlrQGdt YWlsLmNvbT4KUmV2aWV3ZXI6IFZpZ25lc2ggQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4KUmV2aWV3 ZXI6IE5pc2hhIE1vb25kIDxuaXNoYS5tb29uZDQxMkBnbWFpbC5jb20+ClJldmlld2VyOiBSdWkg WmhhbyA8emhhb3J1aTEyNkBnbWFpbC5jb20+Ci0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbCAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3Jp cHRpb25jbWRzLmMgICAgfCAgMTIgKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L29yaWdpbi5jICAgfCAgOTUgKysrKysrKysrKystLS0tLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jIHwgMTAxICsrKysrKysrKysrLS0tLS0tLS0tLQogc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgIHwgIDUxICsrLS0tLS0tLS0t CiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgfCAgIDEgLQogc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYyAgICAgICAgICAgICAgIHwgIDY4ICsrKysrKysrKysr KysrCiBzcmMvYmluL3BnX3VwZ3JhZGUvY2hlY2suYyAgICAgICAgICAgICAgICAgfCAgNjUgKysr KysrKysrLS0tLQogc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYyAgICAgICAgICAgICAgICAgIHwg IDQ5ICsrKysrKysrLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgICAgICAgICAg ICB8ICAxMyArKy0KIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggICAgICAgICAgICB8 ICAgNCArLQogc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5wbCAgIHwgIDc0 ICsrKysrKysrKysrKystLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAg ICAgIHwgICA4ICstCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9vcmlnaW4uaCAgICAgICAgICAg fCAgIDMgKwogMTQgZmlsZXMgY2hhbmdlZCwgMzc0IGluc2VydGlvbnMoKyksIDE3NCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21s IGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAppbmRleCA2OTA1OThiZmY5 OC4uNGRiNzI5ZGYyODMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAt Mjg0NCw3ICsyODQ0LDcgQEAgQ09OVEVYVDogIHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJl cGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5TRVIKIAogICAgPG5vdGU+CiAg ICAgPHBhcmE+Ci0gICAgIENvbW1pdCB0aW1lc3RhbXBzIGFuZCBvcmlnaW4gZGF0YSBhcmUgbm90 IHByZXNlcnZlZCBkdXJpbmcgdGhlIHVwZ3JhZGUuCisgICAgIENvbW1pdCB0aW1lc3RhbXBzIGFy ZSBub3QgcHJlc2VydmVkIGR1cmluZyB0aGUgdXBncmFkZS4KICAgICAgQXMgYSByZXN1bHQsIGV2 ZW4gaWYKICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1yZXRhaW4tZGVhZC10dXBsZXMiPjxsaXRlcmFsPnJldGFpbl9kZWFkX3R1cGxlczwvbGl0 ZXJhbD48L2xpbms+CiAgICAgIGlzIGVuYWJsZWQsIHRoZSB1cGdyYWRlZCBzdWJzY3JpYmVyIG1h eSBiZSB1bmFibGUgdG8gZGV0ZWN0IGNvbmZsaWN0cyBvcgpAQCAtMjg4Niw3ICsyODg2LDcgQEAg Q09OVEVYVDogIHByb2Nlc3NpbmcgcmVtb3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAi cGdfMTYzOTUiIGR1cmluZyAiSU5TRVIKICAgICAgIFRoZSBuZXcgY2x1c3RlciBtdXN0IGhhdmUK ICAgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1tYXgtYWN0aXZlLXJlcGxpY2F0aW9uLW9yaWdpbnMi Pjx2YXJuYW1lPm1heF9hY3RpdmVfcmVwbGljYXRpb25fb3JpZ2luczwvdmFybmFtZT48L2xpbms+ CiAgICAgICBjb25maWd1cmVkIHRvIGEgdmFsdWUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRo ZSBudW1iZXIgb2YKLSAgICAgIHN1YnNjcmlwdGlvbnMgcHJlc2VudCBpbiB0aGUgb2xkIGNsdXN0 ZXIuCisgICAgICByZXBsaWNhdGlvbiBvcmlnaW5zIHByZXNlbnQgaW4gdGhlIG9sZCBjbHVzdGVy LiBUaGUgbmV3IGNsdXN0ZXIgbXVzdCBjb250YWluIG5vIHJlcGxpY2F0aW9uIG9yaWdpbnMuCiAg ICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYwppbmRleCBlODdjMTgzNTZkZS4uMjhiZDBlNDhmMmMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKQEAgLTE5LDYgKzE5LDcg QEAKICNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKICNpbmNsdWRlICJhY2Nlc3MvdHdvcGhhc2Uu aCIKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvYmluYXJ5X3Vw Z3JhZGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9n L2RlcGVuZGVuY3kuaCIKICNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCkBAIC05NTcsOSAr OTU4LDE2IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1 YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJICogYXBwbHkgd29ya2VycyBpbml0aWFsaXphdGlvbiwg YW5kIHRvIGhhbmRsZSBvcmlnaW4gY3JlYXRpb24gZHluYW1pY2FsbHkKIAkgKiB3aGVuIHRhYmxl cyBhcmUgYWRkZWQgdG8gdGhlIHN1YnNjcmlwdGlvbi4gSXQgaXMgbm90IGNsZWFyIHdoZXRoZXIK IAkgKiBwcmV2ZW50aW5nIGNyZWF0aW9uIG9mIG9yaWdpbnMgaXMgd29ydGggYWRkaXRpb25hbCBj b21wbGV4aXR5LgorCSAqCisJICogSW4gYmluYXJ5LXVwZ3JhZGUgbW9kZSwgc2tpcCBvcmlnaW4g Y3JlYXRpb24gaGVyZS4gSXQgd2lsbCBiZSBjcmVhdGVkCisJICogc2VwYXJhdGVseSBzbyB0aGF0 IHRoZSBvcmlnaW4gSUQgKHJvaWRlbnQpIGZyb20gdGhlIG9sZCBjbHVzdGVyIGNhbiBiZQorCSAq IHByZXNlcnZlZCBmb3IgdGhpcyBzdWJzY3JpcHRpb24uCiAJICovCi0JUmVwbGljYXRpb25Pcmln aW5OYW1lRm9yTG9naWNhbFJlcChzdWJpZCwgSW52YWxpZE9pZCwgb3JpZ2lubmFtZSwgc2l6ZW9m KG9yaWdpbm5hbWUpKTsKLQlyZXBsb3JpZ2luX2NyZWF0ZShvcmlnaW5uYW1lKTsKKwlpZiAoIUlz QmluYXJ5VXBncmFkZSkKKwl7CisJCVJlcGxpY2F0aW9uT3JpZ2luTmFtZUZvckxvZ2ljYWxSZXAo c3ViaWQsIEludmFsaWRPaWQsIG9yaWdpbm5hbWUsIHNpemVvZihvcmlnaW5uYW1lKSk7CisJCXJl cGxvcmlnaW5fY3JlYXRlKG9yaWdpbm5hbWUpOworCX0KIAogCS8qCiAJICogQ29ubmVjdCB0byBy ZW1vdGUgc2lkZSB0byBleGVjdXRlIHJlcXVlc3RlZCBjb21tYW5kcyBhbmQgZmV0Y2ggdGFibGUK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvb3JpZ2luLmMgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL29yaWdpbi5jCmluZGV4IGM5ZGZiMDk0YzJi Li42YmExYTllNmI2MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9vcmlnaW4uYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL29yaWdpbi5j CkBAIC0yNjUsNiArMjY1LDUxIEBAIHJlcGxvcmlnaW5fYnlfbmFtZShjb25zdCBjaGFyICpyb25h bWUsIGJvb2wgbWlzc2luZ19vaykKIAlyZXR1cm4gcm9pZGVudDsKIH0KIAorLyoKKyAqIHJlcGxv cmlnaW5fY3JlYXRlX3dpdGhfaWQKKyAqCisgKiBDcmVhdGUgYSByZXBsaWNhdGlvbiBvcmlnaW4g d2l0aCBhIHNwZWNpZmljIElEIGFuZCBuYW1lLCBvcHRpb25hbGx5CisgKiByZXN0b3JpbmcgaXRz IHJlbW90ZV9sc24uICBVc2VkIGJ5IHBnX3VwZ3JhZGUgdG8gcHJlc2VydmUgcmVwbGljYXRpb24K KyAqIG9yaWdpbiBJRHMgYWNyb3NzIHRoZSB1cGdyYWRlLgorICoKKyAqIENhbGxlciBtdXN0IGhv bGQgYW4gZXhjbHVzaXZlIGxvY2sgb24gUmVwbGljYXRpb25PcmlnaW5SZWxhdGlvbklkLgorICoK KyAqIE5lZWRzIHRvIGJlIGNhbGxlZCBpbiBhIHRyYW5zYWN0aW9uLgorICovCit2b2lkCityZXBs b3JpZ2luX2NyZWF0ZV93aXRoX2lkKFJlcGxPcmlnaW5JZCByb2lkZW50LCBjb25zdCBjaGFyICpy b25hbWUsCisJCQkJCQkgIFhMb2dSZWNQdHIgcmVtb3RlX2xzbiwgUmVsYXRpb24gcmVsKQorewor CURhdHVtCQkJcm9uYW1lX2Q7CisJYm9vbAkJCW51bGxzW05hdHRzX3BnX3JlcGxpY2F0aW9uX29y aWdpbl07CisJRGF0dW0JCQl2YWx1ZXNbTmF0dHNfcGdfcmVwbGljYXRpb25fb3JpZ2luXTsKKwlI ZWFwVHVwbGUJCXR1cGxlOworCisJQXNzZXJ0KElzVHJhbnNhY3Rpb25TdGF0ZSgpKTsKKwlBc3Nl cnQoQ2hlY2tSZWxhdGlvbkxvY2tlZEJ5TWUocmVsLCBFeGNsdXNpdmVMb2NrLCBmYWxzZSkpOwor CisJcm9uYW1lX2QgPSBDU3RyaW5nR2V0VGV4dERhdHVtKHJvbmFtZSk7CisKKwltZW1zZXQoJm51 bGxzLCAwLCBzaXplb2YobnVsbHMpKTsKKwltZW1zZXQoJnZhbHVlcywgMCwgc2l6ZW9mKHZhbHVl cykpOworCisJdmFsdWVzW0FudW1fcGdfcmVwbGljYXRpb25fb3JpZ2luX3JvaWRlbnQgLSAxXSA9 IE9iamVjdElkR2V0RGF0dW0ocm9pZGVudCk7CisJdmFsdWVzW0FudW1fcGdfcmVwbGljYXRpb25f b3JpZ2luX3JvbmFtZSAtIDFdID0gcm9uYW1lX2Q7CisKKwl0dXBsZSA9IGhlYXBfZm9ybV90dXBs ZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUlu c2VydChyZWwsIHR1cGxlKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXBsZSk7CisJQ29tbWFuZENvdW50 ZXJJbmNyZW1lbnQoKTsKKworCWlmIChyZW1vdGVfbHNuICE9IEludmFsaWRYTG9nUmVjUHRyKQor CXsKKwkJQXNzZXJ0KElzQmluYXJ5VXBncmFkZSk7CisJCXJlcGxvcmlnaW5fYWR2YW5jZShyb2lk ZW50LCByZW1vdGVfbHNuLCBJbnZhbGlkWExvZ1JlY1B0ciwKKwkJCQkJCSAgIGZhbHNlIC8qIGJh Y2t3YXJkICovLAorCQkJCQkJICAgZmFsc2UgLyogV0FMIGxvZyAqLyk7CisJfQorfQorCiAvKgog ICogQ3JlYXRlIGEgcmVwbGljYXRpb24gb3JpZ2luLgogICoKQEAgLTI3MywxMyArMzE4LDExIEBA IHJlcGxvcmlnaW5fYnlfbmFtZShjb25zdCBjaGFyICpyb25hbWUsIGJvb2wgbWlzc2luZ19vaykK IFJlcGxPcmlnaW5JZAogcmVwbG9yaWdpbl9jcmVhdGUoY29uc3QgY2hhciAqcm9uYW1lKQogewot CU9pZAkJCXJvaWRlbnQ7Ci0JSGVhcFR1cGxlCXR1cGxlID0gTlVMTDsKLQlSZWxhdGlvbglyZWw7 Ci0JRGF0dW0JCXJvbmFtZV9kOwotCVNuYXBzaG90RGF0YSBTbmFwc2hvdERpcnR5OwotCVN5c1Nj YW5EZXNjIHNjYW47Ci0JU2NhbktleURhdGEga2V5OworCU9pZAkJCQlyb2lkZW50OworCVJlbGF0 aW9uCQlyZWw7CisJU25hcHNob3REYXRhCVNuYXBzaG90RGlydHk7CisJU3lzU2NhbkRlc2MJCXNj YW47CisJU2NhbktleURhdGEJCWtleTsKIAogCS8qCiAJICogVG8gYXZvaWQgbmVlZGluZyBhIFRP QVNUIHRhYmxlIGZvciBwZ19yZXBsaWNhdGlvbl9vcmlnaW4sIHdlIGxpbWl0CkBAIC0yOTMsOCAr MzM2LDYgQEAgcmVwbG9yaWdpbl9jcmVhdGUoY29uc3QgY2hhciAqcm9uYW1lKQogCQkJCSBlcnJk ZXRhaWwoIlJlcGxpY2F0aW9uIG9yaWdpbiBuYW1lcyBtdXN0IGJlIG5vIGxvbmdlciB0aGFuICVk IGJ5dGVzLiIsCiAJCQkJCQkgICBNQVhfUk9OQU1FX0xFTikpKTsKIAotCXJvbmFtZV9kID0gQ1N0 cmluZ0dldFRleHREYXR1bShyb25hbWUpOwotCiAJQXNzZXJ0KElzVHJhbnNhY3Rpb25TdGF0ZSgp KTsKIAogCS8qCkBAIC0zMjEsMTcgKzM2MiwxNSBAQCByZXBsb3JpZ2luX2NyZWF0ZShjb25zdCBj aGFyICpyb25hbWUpCiAJICogc25hcHNob3QuICBUbyBtYWtlIHRoYXQgc2FmZSwgaXQgbmVlZHMg dG8gbm90IGhhdmUgYSBUT0FTVCB0YWJsZSwgc2luY2UKIAkgKiBUT0FTVGVkIGRhdGEgY2Fubm90 IGJlIGZldGNoZWQgd2l0aG91dCBhIHNuYXBzaG90LiAgQXMgb2YgdGhpcyB3cml0aW5nLAogCSAq IGl0cyBvbmx5IHZhcmxlbmEgY29sdW1uIGlzIHJvbmFtZSwgd2hpY2ggd2UgbGltaXQgdG8gNTEy IGJ5dGVzIHRvIGF2b2lkCi0JICogbmVlZGluZyBvdXQtb2YtbGluZSBzdG9yYWdlLiAgSWYgeW91 IGFkZCBhIFRPQVNUIHRhYmxlIHRvIHRoaXMgY2F0YWxvZywKLQkgKiBiZSBzdXJlIHRvIHNldCB1 cCBhIHNuYXBzaG90IGV2ZXJ5d2hlcmUgaXQgbWlnaHQgYmUgbmVlZGVkLiAgRm9yIG1vcmUKKwkg KiBuZWVkaW5nIG91dC1vZi1saW5lIHN0b3JhZ2UuIElmIHlvdSBhZGQgYSBUT0FTVCB0YWJsZSB0 byB0aGlzIGNhdGFsb2csCisJICogYmUgc3VyZSB0byBzZXQgdXAgYSBzbmFwc2hvdCBldmVyeXdo ZXJlIGl0IG1pZ2h0IGJlIG5lZWRlZC4gRm9yIG1vcmUKIAkgKiBpbmZvcm1hdGlvbiwgc2VlIGh0 dHBzOi8vcG9zdGdyLmVzL20vWnZNU1VQT3FVVS1WTkFETiU0MG5hdGhhbi4KIAkgKi8KIAlBc3Nl cnQoIU9pZElzVmFsaWQocmVsLT5yZF9yZWwtPnJlbHRvYXN0cmVsaWQpKTsKIAogCWZvciAocm9p ZGVudCA9IEludmFsaWRPaWQgKyAxOyByb2lkZW50IDwgUEdfVUlOVDE2X01BWDsgcm9pZGVudCsr KQogCXsKLQkJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcmVwbGljYXRpb25fb3JpZ2luXTsKLQkJRGF0 dW0JCXZhbHVlc1tOYXR0c19wZ19yZXBsaWNhdGlvbl9vcmlnaW5dOwotCQlib29sCQljb2xsaWRl czsKKwkJYm9vbAljb2xsaWRlczsKIAogCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOwogCkBAIC0z NDEsNDEgKzM4MCwyNSBAQCByZXBsb3JpZ2luX2NyZWF0ZShjb25zdCBjaGFyICpyb25hbWUpCiAJ CQkJCU9iamVjdElkR2V0RGF0dW0ocm9pZGVudCkpOwogCiAJCXNjYW4gPSBzeXN0YWJsZV9iZWdp bnNjYW4ocmVsLCBSZXBsaWNhdGlvbk9yaWdpbklkZW50SW5kZXgsCi0JCQkJCQkJCSAgdHJ1ZSAv KiBpbmRleE9LICovICwKKwkJCQkJCQkJICB0cnVlIC8qIGluZGV4T0sgKi8sCiAJCQkJCQkJCSAg JlNuYXBzaG90RGlydHksCiAJCQkJCQkJCSAgMSwgJmtleSk7Ci0KIAkJY29sbGlkZXMgPSBIZWFw VHVwbGVJc1ZhbGlkKHN5c3RhYmxlX2dldG5leHQoc2NhbikpOwotCiAJCXN5c3RhYmxlX2VuZHNj YW4oc2Nhbik7CiAKIAkJaWYgKCFjb2xsaWRlcykKLQkJewotCQkJLyoKLQkJCSAqIE9rLCBmb3Vu ZCBhbiB1bnVzZWQgcm9pZGVudCwgaW5zZXJ0IHRoZSBuZXcgcm93IGFuZCBkbyBhIENDSSwKLQkJ CSAqIHNvIG91ciBjYWxsZXJzIGNhbiBsb29rIGl0IHVwIGlmIHRoZXkgd2FudCB0by4KLQkJCSAq LwotCQkJbWVtc2V0KCZudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7Ci0KLQkJCXZhbHVlc1tBbnVt X3BnX3JlcGxpY2F0aW9uX29yaWdpbl9yb2lkZW50IC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHJv aWRlbnQpOwotCQkJdmFsdWVzW0FudW1fcGdfcmVwbGljYXRpb25fb3JpZ2luX3JvbmFtZSAtIDFd ID0gcm9uYW1lX2Q7Ci0KLQkJCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVz Y3IocmVsKSwgdmFsdWVzLCBudWxscyk7Ci0JCQlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXBs ZSk7Ci0JCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwogCQkJYnJlYWs7Ci0JCX0KIAl9CiAK LQkvKiBub3cgcmVsZWFzZSBsb2NrIGFnYWluLAkqLwotCXRhYmxlX2Nsb3NlKHJlbCwgRXhjbHVz aXZlTG9jayk7Ci0KLQlpZiAodHVwbGUgPT0gTlVMTCkKKwlpZiAocm9pZGVudCA+PSBQR19VSU5U MTZfTUFYKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfUFJPR1JBTV9M SU1JVF9FWENFRURFRCksCiAJCQkJIGVycm1zZygiY291bGQgbm90IGZpbmQgZnJlZSByZXBsaWNh dGlvbiBvcmlnaW4gSUQiKSkpOwogCi0JaGVhcF9mcmVldHVwbGUodHVwbGUpOworCXJlcGxvcmln aW5fY3JlYXRlX3dpdGhfaWQocm9pZGVudCwgcm9uYW1lLCBJbnZhbGlkWExvZ1JlY1B0ciwgcmVs KTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgRXhjbHVzaXZlTG9jayk7CisKIAlyZXR1cm4gcm9pZGVu dDsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3Vw cG9ydC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCmluZGV4 IDU5YzNlN2YwMTQ2Li42MjhiMDc3YWI2OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3BnX3VwZ3JhZGVfc3VwcG9ydC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ191 cGdyYWRlX3N1cHBvcnQuYwpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgInV0aWxzL2FycmF5 LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2Fj aGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3BnX2xz bi5oIgogCiAKQEAgLTM3Nyw3MSArMzc4LDc5IEBAIGJpbmFyeV91cGdyYWRlX2FkZF9zdWJfcmVs X3N0YXRlKFBHX0ZVTkNUSU9OX0FSR1MpCiB9CiAKIC8qCi0gKiBiaW5hcnlfdXBncmFkZV9yZXBs b3JpZ2luX2FkdmFuY2UKKyAqIGJpbmFyeV91cGdyYWRlX2NyZWF0ZV9jb25mbGljdF9kZXRlY3Rp b25fc2xvdAogICoKLSAqIFVwZGF0ZSB0aGUgcmVtb3RlX2xzbiBmb3IgdGhlIHN1YnNjcmliZXIn cyByZXBsaWNhdGlvbiBvcmlnaW4uCisgKiBDcmVhdGUgYSByZXBsaWNhdGlvbiBzbG90IHRvIHJl dGFpbiBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgZm9yIGNvbmZsaWN0CisgKiBkZXRlY3Rpb24gc3Vj aCBhcyBkZWFkIHR1cGxlcywgY29tbWl0IHRpbWVzdGFtcHMsIGFuZCBvcmlnaW5zLgogICovCiBE YXR1bQotYmluYXJ5X3VwZ3JhZGVfcmVwbG9yaWdpbl9hZHZhbmNlKFBHX0ZVTkNUSU9OX0FSR1Mp CitiaW5hcnlfdXBncmFkZV9jcmVhdGVfY29uZmxpY3RfZGV0ZWN0aW9uX3Nsb3QoUEdfRlVOQ1RJ T05fQVJHUykKIHsKLQlSZWxhdGlvbglyZWw7Ci0JT2lkCQkJc3ViaWQ7Ci0JY2hhcgkgICAqc3Vi bmFtZTsKLQljaGFyCQlvcmlnaW5uYW1lW05BTUVEQVRBTEVOXTsKLQlSZXBsT3JpZ2luSWQgbm9k ZTsKLQlYTG9nUmVjUHRyCXJlbW90ZV9jb21taXQ7Ci0KIAlDSEVDS19JU19CSU5BUllfVVBHUkFE RTsKIAotCS8qCi0JICogV2UgbXVzdCBlbnN1cmUgYSBub24tTlVMTCBzdWJzY3JpcHRpb24gbmFt ZSBiZWZvcmUgZGVyZWZlcmVuY2luZyB0aGUKLQkgKiBhcmd1bWVudHMuCi0JICovCi0JaWYgKFBH X0FSR0lTTlVMTCgwKSkKLQkJZWxvZyhFUlJPUiwgIm51bGwgYXJndW1lbnQgdG8gYmluYXJ5X3Vw Z3JhZGVfcmVwbG9yaWdpbl9hZHZhbmNlIGlzIG5vdCBhbGxvd2VkIik7Ci0KLQlzdWJuYW1lID0g dGV4dF90b19jc3RyaW5nKFBHX0dFVEFSR19URVhUX1BQKDApKTsKLQlyZW1vdGVfY29tbWl0ID0g UEdfQVJHSVNOVUxMKDEpID8gSW52YWxpZFhMb2dSZWNQdHIgOiBQR19HRVRBUkdfTFNOKDEpOwot Ci0JcmVsID0gdGFibGVfb3BlbihTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVM b2NrKTsKLQlzdWJpZCA9IGdldF9zdWJzY3JpcHRpb25fb2lkKHN1Ym5hbWUsIGZhbHNlKTsKLQot CVJlcGxpY2F0aW9uT3JpZ2luTmFtZUZvckxvZ2ljYWxSZXAoc3ViaWQsIEludmFsaWRPaWQsIG9y aWdpbm5hbWUsIHNpemVvZihvcmlnaW5uYW1lKSk7Ci0KLQkvKiBMb2NrIHRvIHByZXZlbnQgdGhl IHJlcGxpY2F0aW9uIG9yaWdpbiBmcm9tIHZhbmlzaGluZyAqLwotCUxvY2tSZWxhdGlvbk9pZChS ZXBsaWNhdGlvbk9yaWdpblJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwotCW5vZGUgPSBy ZXBsb3JpZ2luX2J5X25hbWUob3JpZ2lubmFtZSwgZmFsc2UpOwotCi0JLyoKLQkgKiBUaGUgc2Vy dmVyIHdpbGwgYmUgc3RvcHBlZCBhZnRlciBzZXR0aW5nIHVwIHRoZSBvYmplY3RzIGluIHRoZSBu ZXcKLQkgKiBjbHVzdGVyIGFuZCB0aGUgb3JpZ2lucyB3aWxsIGJlIGZsdXNoZWQgZHVyaW5nIHRo ZSBzaHV0ZG93biBjaGVja3BvaW50LgotCSAqIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgbGF0 ZXN0IExTTiB2YWx1ZXMgZm9yIG9yaWdpbiB3aWxsIGJlCi0JICogYXZhaWxhYmxlIGFmdGVyIHRo ZSB1cGdyYWRlLgotCSAqLwotCXJlcGxvcmlnaW5fYWR2YW5jZShub2RlLCByZW1vdGVfY29tbWl0 LCBJbnZhbGlkWExvZ1JlY1B0ciwKLQkJCQkJICAgZmFsc2UgLyogYmFja3dhcmQgKi8gLAotCQkJ CQkgICBmYWxzZSAvKiBXQUwgbG9nICovICk7CisJQ3JlYXRlQ29uZmxpY3REZXRlY3Rpb25TbG90 KCk7CiAKLQlVbmxvY2tSZWxhdGlvbk9pZChSZXBsaWNhdGlvbk9yaWdpblJlbGF0aW9uSWQsIFJv d0V4Y2x1c2l2ZUxvY2spOwotCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisJ UmVwbGljYXRpb25TbG90UmVsZWFzZSgpOwogCiAJUEdfUkVUVVJOX1ZPSUQoKTsKIH0KIAogLyoK LSAqIGJpbmFyeV91cGdyYWRlX2NyZWF0ZV9jb25mbGljdF9kZXRlY3Rpb25fc2xvdAorICogYmlu YXJ5X3VwZ3JhZGVfY3JlYXRlX3JlcGxpY2F0aW9uX29yaWdpbgogICoKLSAqIENyZWF0ZSBhIHJl cGxpY2F0aW9uIHNsb3QgdG8gcmV0YWluIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgY29uZmxp Y3QKLSAqIGRldGVjdGlvbiBzdWNoIGFzIGRlYWQgdHVwbGVzLCBjb21taXQgdGltZXN0YW1wcywg YW5kIG9yaWdpbnMuCisgKiBDcmVhdGUgYSByZXBsaWNhdGlvbiBvcmlnaW4gd2l0aCBhIHNwZWNp ZmljIE9JRCBhbmQgbmFtZSwgb3B0aW9uYWxseQorICogcmVzdG9yaW5nIGl0cyByZW1vdGVfbHNu LiBVc2VkIGJ5IHBnX3VwZ3JhZGUgdG8gcHJlc2VydmUgcmVwbGljYXRpb24KKyAqIG9yaWdpbiBP SURzIGFjcm9zcyB0aGUgdXBncmFkZS4KICAqLwogRGF0dW0KLWJpbmFyeV91cGdyYWRlX2NyZWF0 ZV9jb25mbGljdF9kZXRlY3Rpb25fc2xvdChQR19GVU5DVElPTl9BUkdTKQorYmluYXJ5X3VwZ3Jh ZGVfY3JlYXRlX3JlcGxpY2F0aW9uX29yaWdpbihQR19GVU5DVElPTl9BUkdTKQogeworCU9pZCAg ICAgICAgICAgICBub2RlX29pZDsKKwlSZXBsT3JpZ2luSWQgICAgbm9kZTsKKwlSZWxhdGlvbgkJ cmVsOworCWNoYXIgICAgICAgICAgICpvcmlnaW5uYW1lOworCVhMb2dSZWNQdHIgICAgICByZW1v dGVfbHNuID0gSW52YWxpZFhMb2dSZWNQdHI7CisKIAlDSEVDS19JU19CSU5BUllfVVBHUkFERTsK IAotCUNyZWF0ZUNvbmZsaWN0RGV0ZWN0aW9uU2xvdCgpOworCWlmIChQR19BUkdJU05VTEwoMCkg fHwgUEdfQVJHSVNOVUxMKDEpKQorCQllbG9nKEVSUk9SLAorCQkJICJudWxsIGFyZ3VtZW50IHRv IGJpbmFyeV91cGdyYWRlX2NyZWF0ZV9yZXBsaWNhdGlvbl9vcmlnaW4gaXMgbm90IGFsbG93ZWQi KTsKIAotCVJlcGxpY2F0aW9uU2xvdFJlbGVhc2UoKTsKKwlub2RlX29pZCA9IFBHX0dFVEFSR19P SUQoMCk7CisKKwlpZiAobm9kZV9vaWQgPT0gSW52YWxpZE9pZCB8fCBub2RlX29pZCA+PSBEb05v dFJlcGxpY2F0ZUlkKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZB TElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJZXJybXNnKCJyZXBsaWNhdGlvbiBvcmlnaW4gSUQg JXUgaXMgb3V0IG9mIHJhbmdlIiwgbm9kZV9vaWQpKTsKKworCW5vZGUgPSAoUmVwbE9yaWdpbklk KSBub2RlX29pZDsKKworCW9yaWdpbm5hbWUgPSB0ZXh0X3RvX2NzdHJpbmcoUEdfR0VUQVJHX1RF WFRfUFAoMSkpOworCisJLyoKKwkgKiBUbyBhdm9pZCBuZWVkaW5nIGEgVE9BU1QgdGFibGUgZm9y IHBnX3JlcGxpY2F0aW9uX29yaWdpbiwgd2UgbGltaXQKKwkgKiByZXBsaWNhdGlvbiBvcmlnaW4g bmFtZXMgdG8gNTEyIGJ5dGVzLiAgVGhpcyBzaG91bGQgYmUgbW9yZSB0aGFuIGVub3VnaAorCSAq IGZvciBhbGwgcHJhY3RpY2FsIHVzZS4KKwkgKi8KKwlpZiAoc3RybGVuKG9yaWdpbm5hbWUpID4g TUFYX1JPTkFNRV9MRU4pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1BS T0dSQU1fTElNSVRfRVhDRUVERUQpLAorCQkJCWVycm1zZygicmVwbGljYXRpb24gb3JpZ2luIG5h bWUgaXMgdG9vIGxvbmciKSwKKwkJCQllcnJkZXRhaWwoIlJlcGxpY2F0aW9uIG9yaWdpbiBuYW1l cyBtdXN0IGJlIG5vIGxvbmdlciB0aGFuICVkIGJ5dGVzLiIsCisJCQkJCQkgIE1BWF9ST05BTUVf TEVOKSk7CisKKwlpZiAoIVBHX0FSR0lTTlVMTCgyKSkKKwkJcmVtb3RlX2xzbiA9IFBHX0dFVEFS R19MU04oMik7CisKKwlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCisJLyogQWNxdWly ZSBhbiBleGNsdXNpdmUgbG9jayBiZWZvcmUgaW5zZXJ0aW5nIHRoZSBuZXcgb3JpZ2luLiAqLwor CXJlbCA9IHRhYmxlX29wZW4oUmVwbGljYXRpb25PcmlnaW5SZWxhdGlvbklkLCBFeGNsdXNpdmVM b2NrKTsKKworCXJlcGxvcmlnaW5fY3JlYXRlX3dpdGhfaWQobm9kZSwgb3JpZ2lubmFtZSwgcmVt b3RlX2xzbiwgcmVsKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgRXhjbHVzaXZlTG9jayk7CiAKIAlQ R19SRVRVUk5fVk9JRCgpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggNzUwNzVhZTA4MGIuLmEwMzU5OTUz OGFlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKQEAgLTUxMzMsNyArNTEzMyw2IEBAIGdldFN1YnNjcmlwdGlvbnMo QXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlpX3N1YndhbHJjdnRpbWVvdXQ7CiAJaW50CQkJaV9zdWJw dWJsaWNhdGlvbnM7CiAJaW50CQkJaV9zdWJvcmlnaW47Ci0JaW50CQkJaV9zdWJvcmlnaW5yZW1v dGVsc247CiAJaW50CQkJaV9zdWJlbmFibGVkOwogCWludAkJCWlfc3ViZmFpbG92ZXI7CiAJaW50 CQkJaV9zdWJyZXRhaW5kZWFkdHVwbGVzOwpAQCAtNTIwMiwxMSArNTIwMSw5IEBAIGdldFN1YnNj cmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJCSAgTE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsK IAogCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSAmJiBmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE3 MDAwMCkKLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgby5yZW1vdGVfbHNuIEFTIHN1 Ym9yaWdpbnJlbW90ZWxzbixcbiIKLQkJCQkJCQkgIiBzLnN1YmVuYWJsZWQsXG4iKTsKKwkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgcy5zdWJlbmFibGVkLFxuIik7CiAJZWxzZQotCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBOVUxMIEFTIHN1Ym9yaWdpbnJlbW90ZWxzbixc biIKLQkJCQkJCQkgIiBmYWxzZSBBUyBzdWJlbmFibGVkLFxuIik7CisJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LCAiIGZhbHNlIEFTIHN1YmVuYWJsZWQsXG4iKTsKIAogCWlmIChmb3V0LT5y ZW1vdGVWZXJzaW9uID49IDE3MDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCkBA IC01Mjg2LDcgKzUyODMsNiBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJaV9z dWJ3YWxyY3Z0aW1lb3V0ID0gUFFmbnVtYmVyKHJlcywgInN1YndhbHJjdnRpbWVvdXQiKTsKIAlp X3N1YnB1YmxpY2F0aW9ucyA9IFBRZm51bWJlcihyZXMsICJzdWJwdWJsaWNhdGlvbnMiKTsKIAlp X3N1Ym9yaWdpbiA9IFBRZm51bWJlcihyZXMsICJzdWJvcmlnaW4iKTsKLQlpX3N1Ym9yaWdpbnJl bW90ZWxzbiA9IFBRZm51bWJlcihyZXMsICJzdWJvcmlnaW5yZW1vdGVsc24iKTsKIAogCXN1Ymlu Zm8gPSBwZ19tYWxsb2NfYXJyYXkoU3Vic2NyaXB0aW9uSW5mbywgbnR1cHMpOwogCkBAIC01MzM5 LDExICs1MzM1LDYgQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCQlzdWJpbmZv W2ldLnN1YnB1YmxpY2F0aW9ucyA9CiAJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlf c3VicHVibGljYXRpb25zKSk7CiAJCXN1YmluZm9baV0uc3Vib3JpZ2luID0gcGdfc3RyZHVwKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3N1Ym9yaWdpbikpOwotCQlpZiAoUFFnZXRpc251bGwocmVzLCBp LCBpX3N1Ym9yaWdpbnJlbW90ZWxzbikpCi0JCQlzdWJpbmZvW2ldLnN1Ym9yaWdpbnJlbW90ZWxz biA9IE5VTEw7Ci0JCWVsc2UKLQkJCXN1YmluZm9baV0uc3Vib3JpZ2lucmVtb3RlbHNuID0KLQkJ CQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3Vib3JpZ2lucmVtb3RlbHNuKSk7CiAK IAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBh YmxlT2JqZWN0KCYoc3ViaW5mb1tpXS5kb2JqKSwgZm91dCk7CkBAIC01NjIyLDM3ICs1NjEzLDE1 IEBAIGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5m byAqc3ViaW5mbykKIAkgKiBJbiBiaW5hcnktdXBncmFkZSBtb2RlLCB3ZSBhbGxvdyB0aGUgcmVw bGljYXRpb24gdG8gY29udGludWUgYWZ0ZXIgdGhlCiAJICogdXBncmFkZS4KIAkgKi8KLQlpZiAo ZG9wdC0+YmluYXJ5X3VwZ3JhZGUgJiYgZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNzAwMDApCisJ aWYgKGRvcHQtPmJpbmFyeV91cGdyYWRlICYmIHN1YmluZm8tPnN1YmVuYWJsZWQgJiYgZm91dC0+ cmVtb3RlVmVyc2lvbiA+PSAxNzAwMDApCiAJewotCQlpZiAoc3ViaW5mby0+c3Vib3JpZ2lucmVt b3RlbHNuKQotCQl7Ci0JCQkvKgotCQkJICogUHJlc2VydmUgdGhlIHJlbW90ZV9sc24gZm9yIHRo ZSBzdWJzY3JpYmVyJ3MgcmVwbGljYXRpb24KLQkJCSAqIG9yaWdpbi4gVGhpcyB2YWx1ZSBpcyBy ZXF1aXJlZCB0byBzdGFydCB0aGUgcmVwbGljYXRpb24gZnJvbQotCQkJICogdGhlIHBvc2l0aW9u IGJlZm9yZSB0aGUgdXBncmFkZS4gVGhpcyB2YWx1ZSB3aWxsIGJlIHN0YWxlIGlmCi0JCQkgKiB0 aGUgcHVibGlzaGVyIGdldHMgdXBncmFkZWQgYmVmb3JlIHRoZSBzdWJzY3JpYmVyIG5vZGUuCi0J CQkgKiBIb3dldmVyLCB0aGlzIHNob3VsZG4ndCBiZSBhIHByb2JsZW0gYXMgdGhlIHVwZ3JhZGUg b2YgdGhlCi0JCQkgKiBwdWJsaXNoZXIgZW5zdXJlcyB0aGF0IGFsbCB0aGUgdHJhbnNhY3Rpb25z IHdlcmUgcmVwbGljYXRlZAotCQkJICogYmVmb3JlIHVwZ3JhZGluZyBpdC4KLQkJCSAqLwotCQkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkJCSAiXG4tLSBGb3IgYmluYXJ5IHVw Z3JhZGUsIG11c3QgcHJlc2VydmUgdGhlIHJlbW90ZV9sc24gZm9yIHRoZSBzdWJzY3JpYmVyJ3Mg cmVwbGljYXRpb24gb3JpZ2luLlxuIik7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwK LQkJCQkJCQkJICJTRUxFQ1QgcGdfY2F0YWxvZy5iaW5hcnlfdXBncmFkZV9yZXBsb3JpZ2luX2Fk dmFuY2UoIik7Ci0JCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgocXVlcnksIHN1YmluZm8tPmRvYmou bmFtZSwgZm91dCk7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiwgJyVzJyk7XG4iLCBz dWJpbmZvLT5zdWJvcmlnaW5yZW1vdGVsc24pOwotCQl9Ci0KLQkJaWYgKHN1YmluZm8tPnN1YmVu YWJsZWQpCi0JCXsKLQkJCS8qCi0JCQkgKiBFbmFibGUgdGhlIHN1YnNjcmlwdGlvbiB0byBhbGxv dyB0aGUgcmVwbGljYXRpb24gdG8gY29udGludWUKLQkJCSAqIGFmdGVyIHRoZSB1cGdyYWRlLgot CQkJICovCi0JCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKLQkJCQkJCQkJICJcbi0tIEZv ciBiaW5hcnkgdXBncmFkZSwgbXVzdCBwcmVzZXJ2ZSB0aGUgc3Vic2NyaWJlcidzIHJ1bm5pbmcg c3RhdGUuXG4iKTsKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQUxURVIgU1VCU0NSSVBU SU9OICVzIEVOQUJMRTtcbiIsIHFzdWJuYW1lKTsKLQkJfQorCQkvKgorCQkgKiBFbmFibGUgdGhl IHN1YnNjcmlwdGlvbiB0byBhbGxvdyB0aGUgcmVwbGljYXRpb24gdG8gY29udGludWUKKwkJICog YWZ0ZXIgdGhlIHVwZ3JhZGUuCisJCSAqLworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwK KwkJCQkJCQkgIlxuLS0gRm9yIGJpbmFyeSB1cGdyYWRlLCBtdXN0IHByZXNlcnZlIHRoZSBzdWJz Y3JpYmVyJ3MgcnVubmluZyBzdGF0ZS5cbiIpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwg IkFMVEVSIFNVQlNDUklQVElPTiAlcyBFTkFCTEU7XG4iLCBxc3VibmFtZSk7CiAJfQogCiAJaWYg KHN1YmluZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aAppbmRleCA1YTY3MjZkOGIxMi4uOGYxMjUyYjg1NGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzI5LDcg KzcyOSw2IEBAIHR5cGVkZWYgc3RydWN0IF9TdWJzY3JpcHRpb25JbmZvCiAJY2hhcgkgICAqc3Vi d2FscmN2dGltZW91dDsKIAljaGFyCSAgICpzdWJwdWJsaWNhdGlvbnM7CiAJY2hhcgkgICAqc3Vi b3JpZ2luOwotCWNoYXIJICAgKnN1Ym9yaWdpbnJlbW90ZWxzbjsKIH0gU3Vic2NyaXB0aW9uSW5m bzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMgYi9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcGFsbC5jCmluZGV4IGM1M2U3N2MyODc4Li42YWY1YmIwNThjZCAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYworKysgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcGFsbC5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8dGltZS5oPgog I2luY2x1ZGUgPHVuaXN0ZC5oPgogCisjaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19hdXRoaWRfZC5oIgogI2luY2x1ZGUgImNvbW1vbi9jb25uZWN0Lmgi CiAjaW5jbHVkZSAiY29tbW9uL2ZpbGVfcGVybS5oIgpAQCAtNjcsNiArNjgsNyBAQCBzdGF0aWMg dm9pZCBkcm9wREJzKFBHY29ubiAqY29ubik7CiBzdGF0aWMgdm9pZCBkdW1wVXNlckNvbmZpZyhQ R2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnVzZXJuYW1lKTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRh YmFzZXMoUEdjb25uICpjb25uKTsKIHN0YXRpYyB2b2lkIGR1bXBUaW1lc3RhbXAoY29uc3QgY2hh ciAqbXNnKTsKK3N0YXRpYyB2b2lkIGR1bXBSZXBsaWNhdGlvbk9yaWdpbnMoUEdjb25uICpjb25u KTsKIHN0YXRpYyBpbnQJcnVuUGdEdW1wKGNvbnN0IGNoYXIgKmRibmFtZSwgY29uc3QgY2hhciAq Y3JlYXRlX29wdHMpOwogc3RhdGljIHZvaWQgYnVpbGRTaFNlY0xhYmVscyhQR2Nvbm4gKmNvbm4s CiAJCQkJCQkJIGNvbnN0IGNoYXIgKmNhdGFsb2dfbmFtZSwgT2lkIG9iamVjdElkLApAQCAtNjYz LDggKzY2NSwxMyBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQkvKiBEdW1wIHJv bGUgR1VDIHByaXZpbGVnZXMgKi8KIAkJCWlmIChzZXJ2ZXJfdmVyc2lvbiA+PSAxNTAwMDAgJiYg IXNraXBfYWNscykKIAkJCQlkdW1wUm9sZUdVQ1ByaXZzKGNvbm4pOworCiAJCX0KIAorCQkvKiBE dW1wIHJlcGxpY2F0aW9uIG9yaWdpbnMgKi8KKwkJaWYgKCF0YWJsZXNwYWNlc19vbmx5ICYmICFy b2xlc19vbmx5ICYmIGJpbmFyeV91cGdyYWRlKQorCQkJZHVtcFJlcGxpY2F0aW9uT3JpZ2lucyhj b25uKTsKKwogCQkvKiBEdW1wIHRhYmxlc3BhY2VzICovCiAJCWlmICghcm9sZXNfb25seSAmJiAh bm9fdGFibGVzcGFjZXMpCiAJCQlkdW1wVGFibGVzcGFjZXMoY29ubik7CkBAIC0xODA0LDYgKzE4 MTEsNjcgQEAgZHVtcFRpbWVzdGFtcChjb25zdCBjaGFyICptc2cpCiAJCWZwcmludGYoT1BGLCAi LS0gJXMgJXNcblxuIiwgbXNnLCBidWYpOwogfQogCitzdGF0aWMgdm9pZAorZHVtcFJlcGxpY2F0 aW9uT3JpZ2lucyhQR2Nvbm4gKmNvbm4pCit7CisJUFFFeHBCdWZmZXIgYnVmID0gY3JlYXRlUFFF eHBCdWZmZXIoKTsKKwlQR3Jlc3VsdCAgICpyZXM7CisJaW50CQkJaV9yb2lkZW50OworCWludAkJ CWlfcm9uYW1lOworCWludAkJCWlfcmVtb3RlbHNuOworCWludAkJCW50dXBzOworCisJLyogR2V0 IHJlcGxpY2F0aW9uIG9yaWdpbnMgZnJvbSBjYXRhbG9ncyAqLworCWFwcGVuZFBRRXhwQnVmZmVy U3RyKGJ1ZiwKKwkJCQkJCSAiU0VMRUNUIG8ucm9pZGVudCwgby5yb25hbWUsIG9zLnJlbW90ZV9s c24gIgorCQkJCQkJICJGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fb3JpZ2luIG8gIgor CQkJCQkJICJMRUZUIE9VVEVSIEpPSU4gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9vcmlnaW5f c3RhdHVzIG9zIE9OIG8ucm9pZGVudCA9IG9zLmxvY2FsX2lkICIKKwkJCQkJCSAiT1JERVIgQlkg by5yb2lkZW50Iik7CisKKwlyZXMgPSBleGVjdXRlUXVlcnkoY29ubiwgYnVmLT5kYXRhKTsKKwor CWlfcm9pZGVudCA9IFBRZm51bWJlcihyZXMsICJyb2lkZW50Iik7CisJaV9yb25hbWUgPSBQUWZu dW1iZXIocmVzLCAicm9uYW1lIik7CisJaV9yZW1vdGVsc24gPSBQUWZudW1iZXIocmVzLCAicmVt b3RlX2xzbiIpOworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisKKwlpZiAobnR1cHMgPiAwKQor CQlmcHJpbnRmKE9QRiwgIi0tXG4tLSBSZXBsaWNhdGlvbiBPcmlnaW5zIFxuLS1cblxuIik7CisK Kwlmb3IgKGludCBpID0gMDsgaSA8IG50dXBzOyBpKyspCisJeworCQlSZXBsT3JpZ2luSWQgcm9p ZGVudDsKKwkJY29uc3QgY2hhciAqcm9uYW1lOworCisJCXJvaWRlbnQgPSBhdG9vaWQoUFFnZXR2 YWx1ZShyZXMsIGksIGlfcm9pZGVudCkpOworCQlyb25hbWUgPSBQUWdldHZhbHVlKHJlcywgaSwg aV9yb25hbWUpOworCisJCXJlc2V0UFFFeHBCdWZmZXIoYnVmKTsKKworCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihidWYsICJcbi0tIEZvciBiaW5hcnkgdXBncmFkZSwgbXVzdCBwcmVzZXJ2ZSBwZ19y ZXBsaWNhdGlvbl9vcmlnaW4gcm9pZGVudCBhbmQgcmVtb3RlX2xzblxuIik7CisJCWFwcGVuZFBR RXhwQnVmZmVyKGJ1ZiwKKwkJCSJTRUxFQ1QgcGdfY2F0YWxvZy5iaW5hcnlfdXBncmFkZV9jcmVh dGVfcmVwbGljYXRpb25fb3JpZ2luKCIKKwkJCSInJXUnOjpwZ19jYXRhbG9nLm9pZCwgIiwgcm9p ZGVudCk7CisJCWFwcGVuZFN0cmluZ0xpdGVyYWxDb25uKGJ1Ziwgcm9uYW1lLCBjb25uKTsKKwkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoYnVmLCAiOjpwZ19jYXRhbG9nLnRleHQiKTsKKworCQlpZiAo IVBRZ2V0aXNudWxsKHJlcywgaSwgaV9yZW1vdGVsc24pKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihidWYsICIsICIpOworCQkJYXBwZW5kU3RyaW5nTGl0ZXJhbENvbm4oYnVmLCBQUWdl dHZhbHVlKHJlcywgaSwgaV9yZW1vdGVsc24pLCBjb25uKTsKKwkJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKGJ1ZiwgIjo6cGdfY2F0YWxvZy5wZ19sc24iKTsKKwkJfQorCQllbHNlCisJCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cihidWYsICIsIE5VTEwiKTsKKworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihi dWYsICIpO1xuIik7CisJCWZwcmludGYoT1BGLCAiJXMiLCBidWYtPmRhdGEpOworCX0KKworCVBR Y2xlYXIocmVzKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIoYnVmKTsKK30KKwogLyoKICAqIHJlYWRf ZHVtcGFsbF9maWx0ZXJzIC0gcmV0cmlldmUgZGF0YWJhc2UgaWRlbnRpZmllciBwYXR0ZXJucyBm cm9tIGZpbGUKICAqCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvY2hlY2suYyBiL3Ny Yy9iaW4vcGdfdXBncmFkZS9jaGVjay5jCmluZGV4IDIxNTViMDFiMTFmLi4xZDJkYjQ1MjdhOCAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2NoZWNrLmMKKysrIGIvc3JjL2Jpbi9wZ191 cGdyYWRlL2NoZWNrLmMKQEAgLTMyLDcgKzMyLDcgQEAgc3RhdGljIHZvaWQgY2hlY2tfZm9yX25l d190YWJsZXNwYWNlX2Rpcih2b2lkKTsKIHN0YXRpYyB2b2lkIGNoZWNrX2Zvcl91c2VyX2RlZmlu ZWRfZW5jb2RpbmdfY29udmVyc2lvbnMoQ2x1c3RlckluZm8gKmNsdXN0ZXIpOwogc3RhdGljIHZv aWQgY2hlY2tfZm9yX3VuaWNvZGVfdXBkYXRlKENsdXN0ZXJJbmZvICpjbHVzdGVyKTsKIHN0YXRp YyB2b2lkIGNoZWNrX25ld19jbHVzdGVyX3JlcGxpY2F0aW9uX3Nsb3RzKHZvaWQpOwotc3RhdGlj IHZvaWQgY2hlY2tfbmV3X2NsdXN0ZXJfc3Vic2NyaXB0aW9uX2NvbmZpZ3VyYXRpb24odm9pZCk7 CitzdGF0aWMgdm9pZCBjaGVja19uZXdfY2x1c3Rlcl9yZXBsaWNhdGlvbl9vcmlnaW5zKHZvaWQp Owogc3RhdGljIHZvaWQgY2hlY2tfb2xkX2NsdXN0ZXJfZm9yX3ZhbGlkX3Nsb3RzKHZvaWQpOwog c3RhdGljIHZvaWQgY2hlY2tfb2xkX2NsdXN0ZXJfc3Vic2NyaXB0aW9uX3N0YXRlKHZvaWQpOwog c3RhdGljIHZvaWQgY2hlY2tfb2xkX2NsdXN0ZXJfZ2xvYmFsX25hbWVzKENsdXN0ZXJJbmZvICpj bHVzdGVyKTsKQEAgLTU4OSw2ICs1ODksOSBAQCBjaGVja19hbmRfZHVtcF9vbGRfY2x1c3Rlcih2 b2lkKQogCQljaGVja19vbGRfY2x1c3Rlcl9zdWJzY3JpcHRpb25fc3RhdGUoKTsKIAl9CiAKKwkv KiBHZXQgcmVwbGljYXRpb24gb3JpZ2luIGluZm9ybWF0aW9uICovCisJZ2V0X3JlcGxpY2F0aW9u X29yaWdpbl9pbmZvKCZvbGRfY2x1c3Rlcik7CisKIAljaGVja19mb3JfZGF0YV90eXBlc191c2Fn ZSgmb2xkX2NsdXN0ZXIpOwogCiAJLyoKQEAgLTcwNyw3ICs3MTAsNyBAQCBjaGVja19uZXdfY2x1 c3Rlcih2b2lkKQogCiAJY2hlY2tfbmV3X2NsdXN0ZXJfcmVwbGljYXRpb25fc2xvdHMoKTsKIAot CWNoZWNrX25ld19jbHVzdGVyX3N1YnNjcmlwdGlvbl9jb25maWd1cmF0aW9uKCk7CisJY2hlY2tf bmV3X2NsdXN0ZXJfcmVwbGljYXRpb25fb3JpZ2lucygpOwogfQogCiAKQEAgLTIxNTAsMzEgKzIx NTMsNDUgQEAgY2hlY2tfbmV3X2NsdXN0ZXJfcmVwbGljYXRpb25fc2xvdHModm9pZCkKIH0KIAog LyoKLSAqIGNoZWNrX25ld19jbHVzdGVyX3N1YnNjcmlwdGlvbl9jb25maWd1cmF0aW9uKCkKKyAq IGNoZWNrX25ld19jbHVzdGVyX3JlcGxpY2F0aW9uX29yaWdpbnMoKQorICoKKyAqIFZlcmlmeSB0 aGF0IHRoZSBuZXcgY2x1c3RlciBoYXMgbm8gcmVwbGljYXRpb24gb3JpZ2lucy4gRHVyaW5nIHVw Z3JhZGUsCisgKiBwZ191cGdyYWRlIHJlc3RvcmVzIHJlcGxpY2F0aW9uIG9yaWdpbnMgZnJvbSB0 aGUgb2xkIGNsdXN0ZXIgd2l0aCB0aGVpcgorICogb3JpZ2luYWwgT0lEcy4gSWYgdGhlIG5ldyBj bHVzdGVyIGFscmVhZHkgY29udGFpbnMgb3JpZ2lucywgdGhvc2UgT0lEcworICogbWF5IGNvbGxp ZGUsIGNhdXNpbmcgdGhlIHVwZ3JhZGUgdG8gZmFpbCBtaWQtd2F5LgogICoKLSAqIFZlcmlmeSB0 aGF0IHRoZSBtYXhfYWN0aXZlX3JlcGxpY2F0aW9uX29yaWdpbnMgY29uZmlndXJhdGlvbiBzcGVj aWZpZWQgaXMKLSAqIGVub3VnaCBmb3IgY3JlYXRpbmcgdGhlIHN1YnNjcmlwdGlvbnMuIFRoaXMg aXMgcmVxdWlyZWQgdG8gY3JlYXRlIHRoZQotICogcmVwbGljYXRpb24gb3JpZ2luIGZvciBlYWNo IHN1YnNjcmlwdGlvbi4KKyAqIEFsc28gdmVyaWZ5IHRoYXQgdGhlIG1heF9hY3RpdmVfcmVwbGlj YXRpb25fb3JpZ2lucyBjb25maWd1cmF0aW9uIGlzCisgKiBlbm91Z2ggZm9yIGNyZWF0aW5nIGFs bCB0aGUgcmVwbGljYXRpb24gb3JpZ2lucy4KICAqLwogc3RhdGljIHZvaWQKLWNoZWNrX25ld19j bHVzdGVyX3N1YnNjcmlwdGlvbl9jb25maWd1cmF0aW9uKHZvaWQpCitjaGVja19uZXdfY2x1c3Rl cl9yZXBsaWNhdGlvbl9vcmlnaW5zKHZvaWQpCiB7Ci0JUEdyZXN1bHQgICAqcmVzOwogCVBHY29u bgkgICAqY29ubjsKKwlQR3Jlc3VsdCAgICpyZXM7CisJaW50CQkJbm9yaWdpbnM7CiAJaW50CQkJ bWF4X2FjdGl2ZV9yZXBsaWNhdGlvbl9vcmlnaW5zOwogCi0JLyogU3Vic2NyaXB0aW9ucyBhbmQg dGhlaXIgZGVwZW5kZW5jaWVzIGNhbiBiZSBtaWdyYXRlZCBzaW5jZSBQRzE3LiAqLwotCWlmIChH RVRfTUFKT1JfVkVSU0lPTihvbGRfY2x1c3Rlci5tYWpvcl92ZXJzaW9uKSA8IDE3MDApCisJLyog UXVpY2sgcmV0dXJuIGlmIHRoZXJlIGFyZSBubyByZXBsaWNhdGlvbiBvcmlnaW5zIHRvIG1pZ3Jh dGUuICovCisJaWYgKG9sZF9jbHVzdGVyLm5yZXBsX29yaWdpbnMgPT0gMCkKIAkJcmV0dXJuOwog Ci0JLyogUXVpY2sgcmV0dXJuIGlmIHRoZXJlIGFyZSBubyBzdWJzY3JpcHRpb25zIHRvIGJlIG1p Z3JhdGVkLiAqLwotCWlmIChvbGRfY2x1c3Rlci5uc3VicyA9PSAwKQotCQlyZXR1cm47Ci0KLQlw cmVwX3N0YXR1cygiQ2hlY2tpbmcgbmV3IGNsdXN0ZXIgY29uZmlndXJhdGlvbiBmb3Igc3Vic2Ny aXB0aW9ucyIpOworCXByZXBfc3RhdHVzKCJDaGVja2luZyByZXBsaWNhdGlvbiBvcmlnaW5zIGlu IG5ldyBjbHVzdGVyIik7CiAKIAljb25uID0gY29ubmVjdFRvU2VydmVyKCZuZXdfY2x1c3Rlciwg InRlbXBsYXRlMSIpOwogCisJcmVzID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwKKwkJCQkJCQki U0VMRUNUIGNvdW50KCopICIKKwkJCQkJCQkiRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9u X29yaWdpbiIpOworCisJaWYgKFBRbnR1cGxlcyhyZXMpICE9IDEpCisJCXBnX2ZhdGFsKCJjb3Vs ZCBub3QgY291bnQgdGhlIG51bWJlciBvZiByZXBsaWNhdGlvbiBvcmlnaW5zIik7CisKKwlub3Jp Z2lucyA9IGF0b2koUFFnZXR2YWx1ZShyZXMsIDAsIDApKTsKKwlQUWNsZWFyKHJlcyk7CisKKwlp ZiAobm9yaWdpbnMgPiAwKQorCQlwZ19mYXRhbCgiZXhwZWN0ZWQgMCByZXBsaWNhdGlvbiBvcmln aW5zIGJ1dCBmb3VuZCAlZCIsIG5vcmlnaW5zKTsKKwogCXJlcyA9IGV4ZWN1dGVRdWVyeU9yRGll KGNvbm4sICJTRUxFQ1Qgc2V0dGluZyBGUk9NIHBnX3NldHRpbmdzICIKIAkJCQkJCQkiV0hFUkUg bmFtZSA9ICdtYXhfYWN0aXZlX3JlcGxpY2F0aW9uX29yaWdpbnMnOyIpOwogCkBAIC0yMTgyLDEy ICsyMTk5LDIwIEBAIGNoZWNrX25ld19jbHVzdGVyX3N1YnNjcmlwdGlvbl9jb25maWd1cmF0aW9u KHZvaWQpCiAJCXBnX2ZhdGFsKCJjb3VsZCBub3QgZGV0ZXJtaW5lIHBhcmFtZXRlciBzZXR0aW5n cyBvbiBuZXcgY2x1c3RlciIpOwogCiAJbWF4X2FjdGl2ZV9yZXBsaWNhdGlvbl9vcmlnaW5zID0g YXRvaShQUWdldHZhbHVlKHJlcywgMCwgMCkpOwotCWlmIChvbGRfY2x1c3Rlci5uc3VicyA+IG1h eF9hY3RpdmVfcmVwbGljYXRpb25fb3JpZ2lucykKLQkJcGdfZmF0YWwoIlwibWF4X2FjdGl2ZV9y ZXBsaWNhdGlvbl9vcmlnaW5zXCIgKCVkKSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0 byB0aGUgbnVtYmVyIG9mICIKLQkJCQkgInN1YnNjcmlwdGlvbnMgKCVkKSBpbiB0aGUgb2xkIGNs dXN0ZXIiLAotCQkJCSBtYXhfYWN0aXZlX3JlcGxpY2F0aW9uX29yaWdpbnMsIG9sZF9jbHVzdGVy Lm5zdWJzKTsKLQogCVBRY2xlYXIocmVzKTsKKworCS8qCisJICogQ29tcGFyZSBhZ2FpbnN0IHRo ZSBudW1iZXIgb2YgYWN0aXZlIG9yaWdpbnMgaW4gdGhlIG9sZCBjbHVzdGVyIG5vdCB0aGUKKwkg KiB0b3RhbCBudW1iZXIgb2Ygb3JpZ2lucyBpbiBwZ19yZXBsaWNhdGlvbl9vcmlnaW4uIEFuIG9y aWdpbiBjYW4gZXhpc3QKKwkgKiB3aXRob3V0IGV2ZXIgYmVjb21pbmcgYWN0aXZlLCBpbiB3aGlj aCBjYXNlIGl0IGRvZXMgbm90IGNvdW50IGFnYWluc3QKKwkgKiBtYXhfYWN0aXZlX3JlcGxpY2F0 aW9uX29yaWdpbnMuCisJICovCisJaWYgKG9sZF9jbHVzdGVyLm5yZXBsX29yaWdpbnNfYWN0aXZl ID4gbWF4X2FjdGl2ZV9yZXBsaWNhdGlvbl9vcmlnaW5zKQorCQlwZ19mYXRhbCgiXCJtYXhfYWN0 aXZlX3JlcGxpY2F0aW9uX29yaWdpbnNcIiAoJWQpIG11c3QgYmUgZ3JlYXRlciAiCisJCQkJICJ0 aGFuIG9yIGVxdWFsIHRvIHRoZSBudW1iZXIgb2YgYWN0aXZlIHJlcGxpY2F0aW9uIG9yaWdpbnMg IgorCQkJCSAiKCVkKSBpbiB0aGUgb2xkIGNsdXN0ZXIiLAorCQkJCSBtYXhfYWN0aXZlX3JlcGxp Y2F0aW9uX29yaWdpbnMsIG9sZF9jbHVzdGVyLm5yZXBsX29yaWdpbnNfYWN0aXZlKTsKKwogCVBR ZmluaXNoKGNvbm4pOwogCiAJY2hlY2tfb2soKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBn cmFkZS9pbmZvLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jCmluZGV4IDM3ZmZmOTM4OTJm Li4zMTFkMDhmZTIzMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYworKysg Yi9zcmMvYmluL3BnX3VwZ3JhZGUvaW5mby5jCkBAIC04MzIsNiArODMyLDQzIEBAIGNvdW50X29s ZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdHModm9pZCkKIAlyZXR1cm4gc2xvdF9jb3VudDsKIH0KIAor LyoKKyAqIGdldF9yZXBsaWNhdGlvbl9vcmlnaW5faW5mbygpCisgKgorICogR2V0cyB0aGUgaW5m b3JtYXRpb24gb2YgcmVwbGljYXRpb24gb3JpZ2lucyBpbiB0aGUgY2x1c3Rlci4KKyAqLwordm9p ZAorZ2V0X3JlcGxpY2F0aW9uX29yaWdpbl9pbmZvKENsdXN0ZXJJbmZvICpjbHVzdGVyKQorewor CVBHY29ubgkgICAqY29ubjsKKwlQR3Jlc3VsdCAgICpyZXM7CisKKwljb25uID0gY29ubmVjdFRv U2VydmVyKGNsdXN0ZXIsICJ0ZW1wbGF0ZTEiKTsKKworCXJlcyA9IGV4ZWN1dGVRdWVyeU9yRGll KGNvbm4sICJTRUxFQ1QgY291bnQoKikgIgorCQkJCQkJCSAiRlJPTSBwZ19jYXRhbG9nLnBnX3Jl cGxpY2F0aW9uX29yaWdpbiIpOworCWlmIChQUW50dXBsZXMocmVzKSAhPSAxKQorCQlwZ19mYXRh bCgiY291bGQgbm90IGdldCB0aGUgbnVtYmVyIG9mIHJlcGxpY2F0aW9uIG9yaWdpbnMiKTsKKwlj bHVzdGVyLT5ucmVwbF9vcmlnaW5zID0gYXRvaShQUWdldHZhbHVlKHJlcywgMCwgMCkpOworCVBR Y2xlYXIocmVzKTsKKworCS8qCisJICogR2V0IHRoZSBudW1iZXIgb2YgYWN0aXZlbHkgdHJhY2tl ZCByZXBsaWNhdGlvbiBvcmlnaW5zLCBpLmUuLCB0aG9zZQorCSAqIHdpdGggYW4gZW50cnkgaW4g cGdfcmVwbGljYXRpb25fb3JpZ2luX3N0YXR1cy4gVGhpcyBjYW4gYmUgbGVzcyB0aGFuCisJICog bnJlcGxfb3JpZ2lucywgc2luY2UgYW4gb3JpZ2luIGNhbiBleGlzdCB3aXRob3V0IGV2ZXIgYmVj b21pbmcKKwkgKiBhY3RpdmUuIFRoaXMgY291bnQgaXMgd2hhdCBpcyBhY3R1YWxseSBib3VuZGVk IGJ5CisJICogbWF4X2FjdGl2ZV9yZXBsaWNhdGlvbl9vcmlnaW5zLgorCSAqLworCXJlcyA9IGV4 ZWN1dGVRdWVyeU9yRGllKGNvbm4sICJTRUxFQ1QgY291bnQoKikgIgorCQkJCQkJCSAiRlJPTSBw Z19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX29yaWdpbl9zdGF0dXMiKTsKKwlpZiAoUFFudHVwbGVz KHJlcykgIT0gMSkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBnZXQgdGhlIG51bWJlciBvZiBhY3Rp dmUgcmVwbGljYXRpb24gb3JpZ2lucyIpOworCWNsdXN0ZXItPm5yZXBsX29yaWdpbnNfYWN0aXZl ID0gYXRvaShQUWdldHZhbHVlKHJlcywgMCwgMCkpOworCVBRY2xlYXIocmVzKTsKKworCVBRZmlu aXNoKGNvbm4pOworfQorCiAvKgogICogZ2V0X3N1YnNjcmlwdGlvbl9pbmZvKCkKICAqCkBAIC04 NDIsMjMgKzg3OSwxOSBAQCBnZXRfc3Vic2NyaXB0aW9uX2luZm8oQ2x1c3RlckluZm8gKmNsdXN0 ZXIpCiB7CiAJUEdjb25uCSAgICpjb25uOwogCVBHcmVzdWx0ICAgKnJlczsKLQlpbnQJCQlpX25z dWI7CiAJaW50CQkJaV9yZXRhaW5fZGVhZF90dXBsZXM7CiAKIAljb25uID0gY29ubmVjdFRvU2Vy dmVyKGNsdXN0ZXIsICJ0ZW1wbGF0ZTEiKTsKIAlpZiAoR0VUX01BSk9SX1ZFUlNJT04oY2x1c3Rl ci0+bWFqb3JfdmVyc2lvbikgPj0gMTkwMCkKLQkJcmVzID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29u biwgIlNFTEVDVCBjb3VudCgqKSBBUyBuc3ViLCIKLQkJCQkJCQkJIkNPVU5UKENBU0UgV0hFTiBz dWJyZXRhaW5kZWFkdHVwbGVzIFRIRU4gMSBFTkQpID4gMCBBUyByZXRhaW5fZGVhZF90dXBsZXMg IgorCQlyZXMgPSBleGVjdXRlUXVlcnlPckRpZShjb25uLAorCQkJCQkJCQkiU0VMRUNUIENPVU5U KENBU0UgV0hFTiBzdWJyZXRhaW5kZWFkdHVwbGVzIFRIRU4gMSBFTkQpID4gMCBBUyByZXRhaW5f ZGVhZF90dXBsZXMgIgogCQkJCQkJCQkiRlJPTSBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiIp OwogCWVsc2UKLQkJcmVzID0gZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwgIlNFTEVDVCBjb3VudCgq KSBBUyBuc3ViLCIKLQkJCQkJCQkJIidmJyBBUyByZXRhaW5fZGVhZF90dXBsZXMgIgotCQkJCQkJ CQkiRlJPTSBwZ19jYXRhbG9nLnBnX3N1YnNjcmlwdGlvbiIpOworCQlyZXMgPSBleGVjdXRlUXVl cnlPckRpZShjb25uLAorCQkJCQkJCQkiU0VMRUNUICdmJyBBUyByZXRhaW5fZGVhZF90dXBsZXMg Iik7CiAKLQlpX25zdWIgPSBQUWZudW1iZXIocmVzLCAibnN1YiIpOwogCWlfcmV0YWluX2RlYWRf dHVwbGVzID0gUFFmbnVtYmVyKHJlcywgInJldGFpbl9kZWFkX3R1cGxlcyIpOwogCi0JY2x1c3Rl ci0+bnN1YnMgPSBhdG9pKFBRZ2V0dmFsdWUocmVzLCAwLCBpX25zdWIpKTsKIAljbHVzdGVyLT5z dWJfcmV0YWluX2RlYWRfdHVwbGVzID0gKHN0cmNtcChQUWdldHZhbHVlKHJlcywgMCwgaV9yZXRh aW5fZGVhZF90dXBsZXMpLCAidCIpID09IDApOwogCiAJUFFjbGVhcihyZXMpOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYyBiL3NyYy9iaW4vcGdfdXBncmFkZS9w Z191cGdyYWRlLmMKaW5kZXggMjZiMWM4MzYyZGQuLjk2MTU0NjBkNGY2IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9w Z191cGdyYWRlLmMKQEAgLTIxOSwxMyArMjE5LDEyIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogCSAqIGFzIGl0IG9ubHkgcmV0YWlucyB0aGUgZGVhZCB0dXBsZXMuIEl0IGlzIGNyZWF0 ZWQgaGVyZSBmb3IgY29uc2lzdGVuY3kuCiAJICogTm90ZSB0aGF0IHRoZSBuZXcgY29uZmxpY3Qg ZGV0ZWN0aW9uIHNsb3QgdXNlcyB0aGUgbGF0ZXN0IHRyYW5zYWN0aW9uCiAJICogSUQgYXMgeG1p biwgc28gaXQgY2Fubm90IHByb3RlY3QgZGVhZCB0dXBsZXMgdGhhdCBleGlzdGVkIGJlZm9yZSB0 aGUKLQkgKiB1cGdyYWRlLiBBZGRpdGlvbmFsbHksIGNvbW1pdCB0aW1lc3RhbXBzIGFuZCBvcmln aW4gZGF0YSBhcmUgbm90Ci0JICogcHJlc2VydmVkIGR1cmluZyB0aGUgdXBncmFkZS4gU28sIGV2 ZW4gYWZ0ZXIgY3JlYXRpbmcgdGhlIHNsb3QsIHRoZQotCSAqIHVwZ3JhZGVkIHN1YnNjcmliZXIg bWF5IGJlIHVuYWJsZSB0byBkZXRlY3QgY29uZmxpY3RzIG9yIGxvZyByZWxldmFudAotCSAqIGNv bW1pdCB0aW1lc3RhbXBzIGFuZCBvcmlnaW5zIHdoZW4gYXBwbHlpbmcgY2hhbmdlcyBmcm9tIHRo ZSBwdWJsaXNoZXIKLQkgKiBvY2N1cnJlZCBiZWZvcmUgdGhlIHVwZ3JhZGUgZXNwZWNpYWxseSBp ZiB0aG9zZSBjaGFuZ2VzIHdlcmUgbm90Ci0JICogcmVwbGljYXRlZC4gSXQgY2FuIG9ubHkgcHJv dGVjdCB0dXBsZXMgdGhhdCBtaWdodCBiZSBkZWxldGVkIGFmdGVyIHRoZQotCSAqIG5ldyBjbHVz dGVyIHN0YXJ0cy4KKwkgKiB1cGdyYWRlLiBBZGRpdGlvbmFsbHksIGNvbW1pdCB0aW1lc3RhbXBz IGFyZSBub3QgcHJlc2VydmVkIGR1cmluZyB0aGUKKwkgKiB1cGdyYWRlLiBTbywgZXZlbiBhZnRl ciBjcmVhdGluZyB0aGUgc2xvdCwgdGhlIHVwZ3JhZGVkIHN1YnNjcmliZXIgbWF5CisJICogYmUg dW5hYmxlIHRvIGRldGVjdCBjb25mbGljdHMgb3IgbG9nIHJlbGV2YW50IGNvbW1pdCB0aW1lc3Rh bXBzIHdoZW4KKwkgKiBhcHBseWluZyBjaGFuZ2VzIGZyb20gdGhlIHB1Ymxpc2hlciBvY2N1cnJl ZCBiZWZvcmUgdGhlIHVwZ3JhZGUKKwkgKiBlc3BlY2lhbGx5IGlmIHRob3NlIGNoYW5nZXMgd2Vy ZSBub3QgcmVwbGljYXRlZC4gSXQgY2FuIG9ubHkgcHJvdGVjdAorCSAqIHR1cGxlcyB0aGF0IG1p Z2h0IGJlIGRlbGV0ZWQgYWZ0ZXIgdGhlIG5ldyBjbHVzdGVyIHN0YXJ0cy4KIAkgKi8KIAlpZiAo bWlncmF0ZV9sb2dpY2FsX3Nsb3RzIHx8IG9sZF9jbHVzdGVyLnN1Yl9yZXRhaW5fZGVhZF90dXBs ZXMpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCBiL3Ny Yy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKaW5kZXggZDZlNWJjYTU3OTIuLmEwOTU1NGVh M2RjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCisrKyBiL3Ny Yy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKQEAgLTI4Niw3ICsyODYsOCBAQCB0eXBlZGVm IHN0cnVjdAogCWNoYXIJICAqKnRhYmxlc3BhY2VzOwkvKiB0YWJsZXNwYWNlIGRpcmVjdG9yaWVz ICovCiAJaW50CQkJbnVtX3RhYmxlc3BhY2VzOwogCWNvbnN0IGNoYXIgKnRhYmxlc3BhY2Vfc3Vm Zml4OwkvKiBkaXJlY3Rvcnkgc3BlY2lmaWNhdGlvbiAqLwotCWludAkJCW5zdWJzOwkJCS8qIG51 bWJlciBvZiBzdWJzY3JpcHRpb25zICovCisJaW50CQkJbnJlcGxfb3JpZ2luczsJLyogbnVtYmVy IG9mIHJlcGxpY2F0aW9uIG9yaWdpbnMgKi8KKwlpbnQJCQlucmVwbF9vcmlnaW5zX2FjdGl2ZTsJ LyogbnVtYmVyIG9mIHJlcGxpY2F0aW9uIG9yaWdpbnMgdGhhdCBhcmUgYWN0aXZlICovCiAJYm9v bAkJc3ViX3JldGFpbl9kZWFkX3R1cGxlczsgLyogd2hldGhlciBhIHN1YnNjcmlwdGlvbiBlbmFi bGVzCiAJCQkJCQkJCQkJICogcmV0YWluX2RlYWRfdHVwbGVzLiAqLwogfSBDbHVzdGVySW5mbzsK QEAgLTQyNSw2ICs0MjYsNyBAQCBGaWxlTmFtZU1hcCAqZ2VuX2RiX2ZpbGVfbWFwcyhEYkluZm8g Km9sZF9kYiwKIHZvaWQJCWdldF9kYl9yZWxfYW5kX3Nsb3RfaW5mb3MoQ2x1c3RlckluZm8gKmNs dXN0ZXIpOwogaW50CQkJY291bnRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90cyh2b2lkKTsKIHZv aWQJCWdldF9zdWJzY3JpcHRpb25faW5mbyhDbHVzdGVySW5mbyAqY2x1c3Rlcik7Cit2b2lkCQln ZXRfcmVwbGljYXRpb25fb3JpZ2luX2luZm8oQ2x1c3RlckluZm8gKmNsdXN0ZXIpOwogCiAvKiBv cHRpb24uYyAqLwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDRfc3Vic2Ny aXB0aW9uLnBsIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1YnNjcmlwdGlvbi5wbAppbmRl eCA5Mjg2YzFkYzg1ZS4uYmU5M2YwZTNjYmMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFk ZS90LzAwNF9zdWJzY3JpcHRpb24ucGwKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDA0X3N1 YnNjcmlwdGlvbi5wbApAQCAtNDIsMTMgKzQyLDEyIEBAIG15ICRjb25uc3RyID0gJHB1Ymxpc2hl ci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgQ2hlY2sgdGhhdCBwZ191cGdy YWRlIGZhaWxzIHdoZW4gbWF4X2FjdGl2ZV9yZXBsaWNhdGlvbl9vcmlnaW5zIGNvbmZpZ3VyZWQK LSMgaW4gdGhlIG5ldyBjbHVzdGVyIGlzIGxlc3MgdGhhbiB0aGUgbnVtYmVyIG9mIHN1YnNjcmlw dGlvbnMgaW4gdGhlIG9sZAotIyBjbHVzdGVyLgorIyBpbiB0aGUgbmV3IGNsdXN0ZXIgaXMgbGVz cyB0aGFuIHRoZSBudW1iZXIgb2YgYWN0aXZlIHJlcGxpY2F0aW9uIG9yaWdpbnMgaW4KKyMgdGhl IG9sZCBjbHVzdGVyLgogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSMgSXQgaXMgc3VmZmljaWVudCB0byB1c2UgZGlzYWJsZWQgc3Vic2Ny aXB0aW9uIHRvIHRlc3QgdXBncmFkZSBmYWlsdXJlLgogJHB1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJDUkVBVEUgUFVCTElDQVRJT04gcmVncmVzc19wdWIxIik7CiAkb2xkX3N1Yi0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0JIkNSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19zdWIx IENPTk5FQ1RJT04gJyRjb25uc3RyJyBQVUJMSUNBVElPTiByZWdyZXNzX3B1YjEgV0lUSCAoZW5h YmxlZCA9IGZhbHNlKSIKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3N1YjEgQ09OTkVD VElPTiAnJGNvbm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViMSIKICk7CiAKICRvbGRfc3Vi LT5zdG9wOwpAQCAtNzQsNyArNzMsNyBAQCBjb21tYW5kX2NoZWNrc19hbGwoCiAJXSwKIAkxLAog CVsKLQkJcXIvIm1heF9hY3RpdmVfcmVwbGljYXRpb25fb3JpZ2lucyIgXCgwXCkgbXVzdCBiZSBn cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBzdWJzY3JpcHRpb25zIFwoMVwp IGluIHRoZSBvbGQgY2x1c3Rlci8KKwkJcXIvIm1heF9hY3RpdmVfcmVwbGljYXRpb25fb3JpZ2lu cyIgXCgwXCkgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBh Y3RpdmUgcmVwbGljYXRpb24gb3JpZ2lucyBcKDFcKSBpbiB0aGUgb2xkIGNsdXN0ZXIvCiAJXSwK IAlbcXIvL10sCiAJJ3J1biBvZiBwZ191cGdyYWRlIHdoZXJlIHRoZSBuZXcgY2x1c3RlciBoYXMg aW5zdWZmaWNpZW50IG1heF9hY3RpdmVfcmVwbGljYXRpb25fb3JpZ2lucycKQEAgLTMwMSw4ICsz MDAsMzggQEAgaXMoJHJlc3VsdCwgcXEodCksICJDaGVjayB0aGF0IHRoZSB0YWJsZSBpcyBpbiBp bml0IHN0YXRlIik7CiAKICMgR2V0IHRoZSByZXBsaWNhdGlvbiBvcmlnaW4ncyByZW1vdGVfbHNu IG9mIHRoZSBvbGQgc3Vic2NyaWJlcgogbXkgJHJlbW90ZV9sc24gPSAkb2xkX3N1Yi0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCi0JIlNFTEVDVCByZW1vdGVfbHNuIEZST00gcGdfcmVwbGljYXRpb25f b3JpZ2luX3N0YXR1cyBvcywgcGdfc3Vic2NyaXB0aW9uIHMgV0hFUkUgb3MuZXh0ZXJuYWxfaWQg PSAncGdfJyB8fCBzLm9pZCBBTkQgcy5zdWJuYW1lID0gJ3JlZ3Jlc3Nfc3ViNCciCisgICAgIlNF TEVDVCBvcy5yZW1vdGVfbHNuCisgICAgIEZST00gcGdfcmVwbGljYXRpb25fb3JpZ2luX3N0YXR1 cyBvcworICAgICBKT0lOIHBnX3JlcGxpY2F0aW9uX29yaWdpbiBvIE9OIG8ucm9pZGVudCA9IG9z LmxvY2FsX2lkCisgICAgIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gby5yb25hbWUgPSAncGdf JyB8fCBzLm9pZDo6dGV4dAorICAgICBXSEVSRSBzLnN1Ym5hbWUgPSAncmVncmVzc19zdWI0JyIK Kyk7CisKKyMgR2V0IHRoZSByZXBsaWNhdGlvbiBvcmlnaW4gaWRzIChyb2lkZW50KSBmb3IgYWxs IHN1YnNjcmlwdGlvbnMsIGtleWVkIGJ5CisjIHN1YnNjcmlwdGlvbiBuYW1lICh3aGljaCBpcyBz dGFibGUgYWNyb3NzIHVwZ3JhZGUsIHVubGlrZSBzdWJvaWQpLiBUaGVzZQorIyBtdXN0IGJlIHBy ZXNlcnZlZCBhZnRlciB1cGdyYWRlLiBBIG1pc21hdGNoIHdvdWxkIGNhdXNlIHNwdXJpb3VzCisj IHVwZGF0ZV9vcmlnaW5fZGlmZmVycyBjb25mbGljdHMuCitteSAlcHJlX3VwZ3JhZGVfcm9pZGVu dDsKK215ICRyb2lkZW50X3Jvd3MgPSAkb2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisg ICAgIlNFTEVDVCBzLnN1Ym5hbWUsIG8ucm9pZGVudAorICAgICBGUk9NIHBnX3N1YnNjcmlwdGlv biBzCisgICAgIEpPSU4gcGdfcmVwbGljYXRpb25fb3JpZ2luIG8gT04gby5yb25hbWUgPSAncGdf JyB8fCBzLm9pZDo6dGV4dAorICAgICBPUkRFUiBCWSBzLnN1Ym5hbWUiCiApOworZm9yIG15ICRy b3cgKHNwbGl0IC9cbi8sICRyb2lkZW50X3Jvd3MpCit7CisgICAgbXkgKCRzdWJuYW1lLCAkcm9p ZGVudCkgPSBzcGxpdCAvXHwvLCAkcm93OworICAgICRwcmVfdXBncmFkZV9yb2lkZW50eyRzdWJu YW1lfSA9ICRyb2lkZW50OworfQorCisjIENyZWF0ZSBhIHVzZXIgY3JlYXRlZCByZXBsaWNhdGlv biBvcmlnaW4sIHdoaWNoIHNob3VsZCBhbHNvIGJlIHByZXNlcnZlZCBhZnRlciB1cGdyYWRlLgor bXkgJHVzZXJfb3JpZ2luX25hbWUgPSAncmVncmVzc191c2VyX29yaWdpbic7Ciskb2xkX3N1Yi0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBwZ19yZXBsaWNhdGlvbl9vcmlnaW5f Y3JlYXRlKCckdXNlcl9vcmlnaW5fbmFtZScpIik7CiskcHJlX3VwZ3JhZGVfcm9pZGVudHskdXNl cl9vcmlnaW5fbmFtZX0gPSAkb2xkX3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgIlNF TEVDVCByb2lkZW50IEZST00gcGdfcmVwbGljYXRpb25fb3JpZ2luIFdIRVJFIHJvbmFtZSA9ICck dXNlcl9vcmlnaW5fbmFtZSciCispOworCiAjIEhhdmUgdGhlIHN1YnNjcmlwdGlvbiBpbiBkaXNh YmxlZCBzdGF0ZSBiZWZvcmUgdXBncmFkZQogJG9sZF9zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc3ViNSBESVNBQkxFIik7CiAKQEAgLTM3OCw2 ICs0MDcsMzkgQEAgcmVncmVzc19zdWI1fGZ8ZnxmKSwKIAkiY2hlY2sgdGhhdCB0aGUgc3Vic2Ny aXB0aW9uJ3MgcnVubmluZyBzdGF0dXMsIGZhaWxvdmVyLCBhbmQgcmV0YWluX2RlYWRfdHVwbGVz IGFyZSBwcmVzZXJ2ZWQiCiApOwogCisjIFZlcmlmeSB0aGF0IHRoZSBzdWJzY3JpcHRpb24gcmVs YXRlZCByZXBsaWNhdGlvbiBvcmlnaW5zIGFyZSBwcmVzZXJ2ZWQgYWZ0ZXIgdXBncmFkZS4KK215 ICRwb3N0X3JvaWRlbnRfcm93cyA9ICRuZXdfc3ViLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKyAg ICAiU0VMRUNUIHMuc3VibmFtZSwgby5yb2lkZW50CisgICAgIEZST00gcGdfc3Vic2NyaXB0aW9u IHMKKyAgICAgSk9JTiBwZ19yZXBsaWNhdGlvbl9vcmlnaW4gbyBPTiBvLnJvbmFtZSA9ICdwZ18n IHx8IHMub2lkOjp0ZXh0CisgICAgIE9SREVSIEJZIHMuc3VibmFtZSIKKyk7CisKK215ICVwb3N0 X3VwZ3JhZGVfcm9pZGVudDsKK2ZvciBteSAkcm93IChzcGxpdCAvXG4vLCAkcG9zdF9yb2lkZW50 X3Jvd3MpCit7CisgICAgbXkgKCRzdWJuYW1lLCAkcm9pZGVudCkgPSBzcGxpdCAvXHwvLCAkcm93 OworCSRwb3N0X3VwZ3JhZGVfcm9pZGVudHskc3VibmFtZX0gPSAkcm9pZGVudDsKK30KKworIyBJ dGVyYXRlIG92ZXIgdGhlIHVuaW9uIG9mIHByZS0gYW5kIHBvc3QtdXBncmFkZSBrZXlzIHNvIGEg bWlzc2luZyBvcgorIyB1bmV4cGVjdGVkIGVudHJ5IG9uIGVpdGhlciBzaWRlIGlzIGNhdWdodC4K K215ICVhbGxfc3VibmFtZXMgPSAoJXByZV91cGdyYWRlX3JvaWRlbnQsICVwb3N0X3VwZ3JhZGVf cm9pZGVudCk7Citmb3IgbXkgJHN1Ym5hbWUgKHNvcnQga2V5cyAlYWxsX3N1Ym5hbWVzKQorewor ICAgIG5leHQgaWYgJHN1Ym5hbWUgZXEgJHVzZXJfb3JpZ2luX25hbWU7CisgICAgaXMoJHBvc3Rf dXBncmFkZV9yb2lkZW50eyRzdWJuYW1lfSwgJHByZV91cGdyYWRlX3JvaWRlbnR7JHN1Ym5hbWV9 LAorICAgICAgICAicm9pZGVudCBwcmVzZXJ2ZWQgZm9yIHN1YnNjcmlwdGlvbiAnJHN1Ym5hbWUn IGFmdGVyIHVwZ3JhZGUiKTsKK30KKworIyBWZXJpZnkgdGhhdCB1c2VyIGNyZWF0ZWQgcmVwbGlj YXRpb24gb3JpZ2lucyBhcmUgcHJlc2VydmVkIGFmdGVyIHVwZ3JhZGUuCitteSAkcG9zdF91c2Vy X3JvaWRlbnQgPSAkbmV3X3N1Yi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBy b2lkZW50IEZST00gcGdfcmVwbGljYXRpb25fb3JpZ2luIFdIRVJFIHJvbmFtZSA9ICckdXNlcl9v cmlnaW5fbmFtZSciCispOworaXMoJHBvc3RfdXNlcl9yb2lkZW50LCAkcHJlX3VwZ3JhZGVfcm9p ZGVudHskdXNlcl9vcmlnaW5fbmFtZX0sCisgICAgInJvaWRlbnQgcHJlc2VydmVkIGZvciB1c2Vy LWNyZWF0ZWQgb3JpZ2luICckdXNlcl9vcmlnaW5fbmFtZScgYWZ0ZXIgdXBncmFkZSIKKyk7CisK ICMgU3Vic2NyaXB0aW9uIHJlbGF0aW9ucyBzaG91bGQgYmUgcHJlc2VydmVkCiAkcmVzdWx0ID0g JG5ld19zdWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1Qgc3JyZWxpZCwgc3JzdWJz dGF0ZSBGUk9NIHBnX3N1YnNjcmlwdGlvbl9yZWwgT1JERVIgQlkgc3JyZWxpZCIpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKaW5kZXggNjVkOTFlMGQ4ZGUuLmJmNTY0ODVjN2Y5IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKQEAgLTExOTg1LDEwICsxMTk4NSw2IEBACiAgIHByb3ZvbGF0aWxlID0+ ICd2JywgcHJvcGFyYWxsZWwgPT4gJ3UnLCBwcm9yZXR0eXBlID0+ICd2b2lkJywKICAgcHJvYXJn dHlwZXMgPT4gJ3RleHQgb2lkIGNoYXIgcGdfbHNuJywKICAgcHJvc3JjID0+ICdiaW5hcnlfdXBn cmFkZV9hZGRfc3ViX3JlbF9zdGF0ZScgfSwKLXsgb2lkID0+ICc2MzIwJywgZGVzY3IgPT4gJ2Zv ciB1c2UgYnkgcGdfdXBncmFkZSAocmVtb3RlX2xzbiBmb3Igb3JpZ2luKScsCi0gIHByb25hbWUg PT4gJ2JpbmFyeV91cGdyYWRlX3JlcGxvcmlnaW5fYWR2YW5jZScsIHByb2lzc3RyaWN0ID0+ICdm JywKLSAgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9wYXJhbGxlbCA9PiAndScsIHByb3JldHR5cGUg PT4gJ3ZvaWQnLAotICBwcm9hcmd0eXBlcyA9PiAndGV4dCBwZ19sc24nLCBwcm9zcmMgPT4gJ2Jp bmFyeV91cGdyYWRlX3JlcGxvcmlnaW5fYWR2YW5jZScgfSwKIHsgb2lkID0+ICc2NTA1JywgZGVz Y3IgPT4gJ2ZvciB1c2UgYnkgcGdfdXBncmFkZSAoY29uZmxpY3QgZGV0ZWN0aW9uIHNsb3QpJywK ICAgcHJvbmFtZSA9PiAnYmluYXJ5X3VwZ3JhZGVfY3JlYXRlX2NvbmZsaWN0X2RldGVjdGlvbl9z bG90JywKICAgcHJvaXNzdHJpY3QgPT4gJ2YnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3BhcmFs bGVsID0+ICd1JywKQEAgLTExOTk4LDYgKzExOTk0LDEwIEBACiAgIHByb25hbWUgPT4gJ2JpbmFy eV91cGdyYWRlX3NldF9uZXh0X3BnX3N1YnNjcmlwdGlvbl9vaWQnLCBwcm92b2xhdGlsZSA9PiAn dicsCiAgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAndm9pZCcsIHByb2FyZ3R5 cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ2JpbmFyeV91cGdyYWRlX3NldF9uZXh0X3BnX3N1 YnNjcmlwdGlvbl9vaWQnIH0sCit7IG9pZCA9PiAnOTE2MScsIGRlc2NyID0+ICdmb3IgdXNlIGJ5 IHBnX3VwZ3JhZGUgKHJlcGxpY2F0aW9uIG9yaWdpbiknLAorICBwcm9uYW1lID0+ICdiaW5hcnlf dXBncmFkZV9jcmVhdGVfcmVwbGljYXRpb25fb3JpZ2luJywgcHJvaXNzdHJpY3QgPT4gJ2YnLAor ICBwcm92b2xhdGlsZSA9PiAndicsIHByb3BhcmFsbGVsID0+ICd1JywgcHJvcmV0dHlwZSA9PiAn dm9pZCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQgdGV4dCBwZ19sc24nLCBwcm9zcmMgPT4gJ2Jp bmFyeV91cGdyYWRlX2NyZWF0ZV9yZXBsaWNhdGlvbl9vcmlnaW4nIH0sCiAKICMgY29udmVyc2lv biBmdW5jdGlvbnMKIHsgb2lkID0+ICc0MzEwJywgZGVzY3IgPT4gJ2ludGVybmFsIGNvbnZlcnNp b24gZnVuY3Rpb24gZm9yIEtPSThSIHRvIFdJTjEyNTEnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vb3JpZ2luLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9vcmlnaW4u aAppbmRleCBhNjlmYWY2ZWFhZi4uMTFlZTYzMGZiMjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL29yaWdpbi5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL29yaWdp bi5oCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgiCiAjaW5j bHVkZSAiYWNjZXNzL3hsb2dyZWFkZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3JlcGxpY2F0 aW9uX29yaWdpbi5oIgorI2luY2x1ZGUgInV0aWxzL3JlbGNhY2hlLmgiCiAKIHR5cGVkZWYgc3Ry dWN0IHhsX3JlcGxvcmlnaW5fc2V0CiB7CkBAIC01NSw2ICs1Niw4IEBAIGV4dGVybiBQR0RMTElN UE9SVCBpbnQgbWF4X2FjdGl2ZV9yZXBsaWNhdGlvbl9vcmlnaW5zOwogLyogQVBJIGZvciBxdWVy eWluZyAmIG1hbmlwdWxhdGluZyByZXBsaWNhdGlvbiBvcmlnaW5zICovCiBleHRlcm4gUmVwbE9y aWdpbklkIHJlcGxvcmlnaW5fYnlfbmFtZShjb25zdCBjaGFyICpyb25hbWUsIGJvb2wgbWlzc2lu Z19vayk7CiBleHRlcm4gUmVwbE9yaWdpbklkIHJlcGxvcmlnaW5fY3JlYXRlKGNvbnN0IGNoYXIg KnJvbmFtZSk7CitleHRlcm4gdm9pZCByZXBsb3JpZ2luX2NyZWF0ZV93aXRoX2lkKFJlcGxPcmln aW5JZCByb2lkZW50LCBjb25zdCBjaGFyICpyb25hbWUsCisJCQkJCQkJCQkgIFhMb2dSZWNQdHIg cmVtb3RlX2xzbiwgUmVsYXRpb24gcmVsKTsKIGV4dGVybiB2b2lkIHJlcGxvcmlnaW5fZHJvcF9i eV9uYW1lKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbWlzc2luZ19vaywgYm9vbCBub3dhaXQpOwog ZXh0ZXJuIGJvb2wgcmVwbG9yaWdpbl9ieV9vaWQoUmVwbE9yaWdpbklkIHJvaWRlbnQsIGJvb2wg bWlzc2luZ19vaywKIAkJCQkJCQkgIGNoYXIgKipyb25hbWUpOwotLSAKMi40Ny4zCgo= --000000000000b4027a06562c0c7e--