From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 619B4427F0 for ; Wed, 30 Mar 2022 23:22:42 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2103468B1E0; Thu, 31 Mar 2022 02:22:39 +0300 (EEST) Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D556E68B18C for ; Thu, 31 Mar 2022 02:22:31 +0300 (EEST) Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-2e5db04460cso181520817b3.17 for ; Wed, 30 Mar 2022 16:22:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc:content-transfer-encoding; bh=ql+V8MuwBXNt7LNzNPmuPU/kxtyh+GKWl0XnvI/OPYc=; b=Ugs/k98EYpFHLzS6lJdnRV7rJMz9OHbf0c7DHMS6dFGAtsLDDixlBJ5rFDkVe7EiZ3 RA/ihrGe/TQlQBopb9JK/pEruhIlpWNVmWmHR5ohgVHBDEwV2uUEol0BcsvJTqS5RUon Cc8Hy4Zmotx0kvBV9GdwSf9IcGMcMiQvr8YLXE3BMEh7BsPgEaqyn1owMQJq1T56jLbJ t0RBge+iGEN6exehelaYNi72R7uzWXR2y11+5mIQXlI5DeEmETr5W4lsQd6Pjn8mQI6L d9DgpBseN9EzmkFuj7ORkb16+v0fHaJ/nlmdn1tY5Z+qG26DqlNiOuvOJOg2o0vJWg6I pJDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=ql+V8MuwBXNt7LNzNPmuPU/kxtyh+GKWl0XnvI/OPYc=; b=fnzyoqEu15A5QKNCYvVrNj9XxI+OQbUJYtIY2XVtTzBz8SCGJT7QoHdB5RUjuZ5aJ+ npfUTs0aV49IGYIRiEo94ajG40Mq1TRXHV01BS0dAKJJwkGqoY1vHUnpHbef12qs9aSn 009sREULO8gJ2wgvU52N42fgzkzb9Bp26xkAR8toG37ct1RYY9IOd0X+qpqBfccvWIP/ w9mTDfBm/B+92W/+i/gQixyit5Yscj0BKLxPfPYaVN++HjwOkLOMx1Y5uZOgW6jvlXgp LRZTR4qbKg135CoYxqRS4HLatcEhrZYYXjcQB1Lm9ukqsl2LvjOE+UTdVZWT0JQ2VwS2 +aog== X-Gm-Message-State: AOAM530s/dVWCrJMAUhXkqpe7Z0KdzZFGFQB1QFTKttWzaUxy+M8XFun Lo4Z4bKeLvB/rviUev+9IO1XykJczw3feRtxtH29VuhtR1CKFzxYr7zaKl6uqv3/BbYtHSaJGVe OZeevWW4t23Bh7Lq8Xf7wL6zMvsMVIdTHtFSI987qcUDDvX6hDqQZYRp3qvx/ X-Google-Smtp-Source: ABdhPJzDJcuzjf5yR0NCzANvPFHUMWd/jH8fuz9Qfz5PsMuLrYbZmUzGueb6aLwYBt7KnYS6KNPp5v8Jaw== X-Received: from izadi.mtv.corp.google.com ([2620:0:1000:4011:5c81:5c70:48eb:30db]) (user=izadi job=sendgmr) by 2002:a81:1cce:0:b0:2e6:4099:e420 with SMTP id c197-20020a811cce000000b002e64099e420mr2355244ywc.291.1648682549773; Wed, 30 Mar 2022 16:22:29 -0700 (PDT) Date: Wed, 30 Mar 2022 16:22:23 -0700 In-Reply-To: <20210818205538.GF4067@pb2> Message-Id: <20220330232223.1135455-1-izadi@google.com> Mime-Version: 1.0 References: <20210818205538.GF4067@pb2> X-Mailer: git-send-email 2.35.1.1021.g381101b075-goog From: Mohammad Izadi To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] avformat/matroska: Support HDR10+ metadata in Matroska. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Gyan Doshi Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: RnJvbTogR3lhbiBEb3NoaSA8ZmZtcGVnQGd5YW5pLnBybz4KClRoZSBmYXRlIHRlc3QgZmlsZSBj YW4gYmUgZm91bmQgaGVyZTogaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2ZpbGUvZC8xakdXM2Y5 NHJnbExmcjVXR21NUWUzU0VucDFZa2JNUnkvdmlldz91c3A9ZHJpdmVzZGsKVGhlIHZpZGVvIGZp bGUgbmVlZHMgdG8gYmUgY29waWVkIHRvIGZhdGUtc3VpdGUvbWt2LwotLS0KIGxpYmF2Y29kZWMv ZHluYW1pY19oZHIxMF9wbHVzLmMgICAgICAgICAgICAgfCAyNjkgKysrKysrKysrKysrKysrKyst LS0KIGxpYmF2Y29kZWMvZHluYW1pY19oZHIxMF9wbHVzLmggICAgICAgICAgICAgfCAgMzUgKyst CiBsaWJhdmZvcm1hdC9tYXRyb3NrYS5oICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKIGxp YmF2Zm9ybWF0L21hdHJvc2thZGVjLmMgICAgICAgICAgICAgICAgICAgfCAgMzAgKystCiBsaWJh dmZvcm1hdC9tYXRyb3NrYWVuYy5jICAgICAgICAgICAgICAgICAgIHwgIDQ0ICsrKy0KIHRlc3Rz L2ZhdGUvbWF0cm9za2EubWFrICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogdGVzdHMvcmVm L2ZhdGUvbWF0cm9za2EtaGRyMTAtcGx1cy1tZXRhZGF0YSB8IDE1MiArKysrKysrKysrKwogNyBm aWxlcyBjaGFuZ2VkLCA0ODQgaW5zZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgdGVzdHMvcmVmL2ZhdGUvbWF0cm9za2EtaGRyMTAtcGx1cy1tZXRhZGF0YQoK ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZHluYW1pY19oZHIxMF9wbHVzLmMgYi9saWJhdmNvZGVj L2R5bmFtaWNfaGRyMTBfcGx1cy5jCmluZGV4IDM0YTQ0YWFjNjUuLmNlMTU1NjkxOTYgMTAwNjQ0 Ci0tLSBhL2xpYmF2Y29kZWMvZHluYW1pY19oZHIxMF9wbHVzLmMKKysrIGIvbGliYXZjb2RlYy9k eW5hbWljX2hkcjEwX3BsdXMuYwpAQCAtMTgsNiArMTgsMTIgQEAKIAogI2luY2x1ZGUgImR5bmFt aWNfaGRyMTBfcGx1cy5oIgogI2luY2x1ZGUgImdldF9iaXRzLmgiCisjaW5jbHVkZSAicHV0X2Jp dHMuaCIKKworc3RhdGljIGNvbnN0IHVpbnQ4X3QgdXNhX2NvdW50cnlfY29kZSA9IDB4QjU7Citz dGF0aWMgY29uc3QgdWludDE2X3Qgc21wdGVfcHJvdmlkZXJfY29kZSA9IDB4MDAzQzsKK3N0YXRp YyBjb25zdCB1aW50MTZfdCBzbXB0ZTIwOTRfNDBfcHJvdmlkZXJfb3JpZW50ZWRfY29kZSA9IDB4 MDAwMTsKK3N0YXRpYyBjb25zdCB1aW50MTZfdCBzbXB0ZTIwOTRfNDBfYXBwbGljYXRpb25faWRl bnRpZmllciA9IDB4MDQ7CiAKIHN0YXRpYyBjb25zdCBpbnQ2NF90IGx1bWluYW5jZV9kZW4gPSAx Owogc3RhdGljIGNvbnN0IGludDMyX3QgcGVha19sdW1pbmFuY2VfZGVuID0gMTU7CkBAIC0yNyw4 ICszMyw4IEBAIHN0YXRpYyBjb25zdCBpbnQzMl90IGtuZWVfcG9pbnRfZGVuID0gNDA5NTsKIHN0 YXRpYyBjb25zdCBpbnQzMl90IGJlemllcl9hbmNob3JfZGVuID0gMTAyMzsKIHN0YXRpYyBjb25z dCBpbnQzMl90IHNhdHVyYXRpb25fd2VpZ2h0X2RlbiA9IDg7CiAKLWludCBmZl9wYXJzZV9pdHVf dF90MzVfdG9fZHluYW1pY19oZHIxMF9wbHVzKEFWRHluYW1pY0hEUlBsdXMgKnMsIGNvbnN0IHVp bnQ4X3QgKmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgc2l6ZSkKK2ludCBmZl9wYXJzZV9pdHVfdF90MzVfdG9fZHluYW1pY19oZHIxMF9wbHVz KEFWRHluYW1pY0hEUlBsdXMqIHMsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsCisJCQkJCSAgICAgaW50 IHNpemUpCiB7CiAgICAgR2V0Qml0Q29udGV4dCBnYmMsICpnYiA9ICZnYmM7CiAgICAgaW50IHJl dDsKQEAgLTQwLDEwICs0NiwxMiBAQCBpbnQgZmZfcGFyc2VfaXR1X3RfdDM1X3RvX2R5bmFtaWNf aGRyMTBfcGx1cyhBVkR5bmFtaWNIRFJQbHVzICpzLCBjb25zdCB1aW50OF90CiAgICAgaWYgKHJl dCA8IDApCiAgICAgICAgIHJldHVybiByZXQ7CiAKLSAgICBpZiAoZ2V0X2JpdHNfbGVmdChnYikg PCAxMCkKKyAgICBpZiAoZ2V0X2JpdHNfbGVmdChnYikgPCA4KQogICAgICAgICByZXR1cm4gQVZF UlJPUl9JTlZBTElEREFUQTsKKyAgICAgcy0+YXBwbGljYXRpb25fdmVyc2lvbiA9IGdldF9iaXRz KGdiLCA4KTsKIAotICAgIHMtPmFwcGxpY2F0aW9uX3ZlcnNpb24gPSBnZXRfYml0cyhnYiwgOCk7 CisgICAgaWYgKGdldF9iaXRzX2xlZnQoZ2IpIDwgMikKKyAgICAgICAgcmV0dXJuIEFWRVJST1Jf SU5WQUxJRERBVEE7CiAgICAgcy0+bnVtX3dpbmRvd3MgPSBnZXRfYml0cyhnYiwgMik7CiAKICAg ICBpZiAocy0+bnVtX3dpbmRvd3MgPCAxIHx8IHMtPm51bV93aW5kb3dzID4gMykgewpAQCAtNTYs MTUgKzY0LDExIEBAIGludCBmZl9wYXJzZV9pdHVfdF90MzVfdG9fZHluYW1pY19oZHIxMF9wbHVz KEFWRHluYW1pY0hEUlBsdXMgKnMsIGNvbnN0IHVpbnQ4X3QKICAgICBmb3IgKGludCB3ID0gMTsg dyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsKICAgICAgICAgLy8gVGhlIGNvcm5lcnMgYXJlIHNl dCB0byBhYnNvbHV0ZSBjb29yZGluYXRlcyBoZXJlLiBUaGV5IHNob3VsZCBiZQogICAgICAgICAv LyBjb252ZXJ0ZWQgdG8gdGhlIHJlbGF0aXZlIGNvb3JkaW5hdGVzIChpbiBbMCwgMV0pIGluIHRo ZSBkZWNvZGVyLgotICAgICAgICBBVkhEUlBsdXNDb2xvclRyYW5zZm9ybVBhcmFtcyAqcGFyYW1z ID0gJnMtPnBhcmFtc1t3XTsKLSAgICAgICAgcGFyYW1zLT53aW5kb3dfdXBwZXJfbGVmdF9jb3Ju ZXJfeCA9Ci0gICAgICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2IsIDE2KSwgMX07Ci0g ICAgICAgIHBhcmFtcy0+d2luZG93X3VwcGVyX2xlZnRfY29ybmVyX3kgPQotICAgICAgICAgICAg KEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCAxNiksIDF9OwotICAgICAgICBwYXJhbXMtPndpbmRv d19sb3dlcl9yaWdodF9jb3JuZXJfeCA9Ci0gICAgICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2Jp dHMoZ2IsIDE2KSwgMX07Ci0gICAgICAgIHBhcmFtcy0+d2luZG93X2xvd2VyX3JpZ2h0X2Nvcm5l cl95ID0KLSAgICAgICAgICAgIChBVlJhdGlvbmFsKXtnZXRfYml0cyhnYiwgMTYpLCAxfTsKKyAg ICAgICAgQVZIRFJQbHVzQ29sb3JUcmFuc2Zvcm1QYXJhbXMqIHBhcmFtcyA9ICZzLT5wYXJhbXNb d107CisgICAgICAgIHBhcmFtcy0+d2luZG93X3VwcGVyX2xlZnRfY29ybmVyX3ggPSAoQVZSYXRp b25hbCkgeyBnZXRfYml0cyhnYiwgMTYpLCAxIH07CisgICAgICAgIHBhcmFtcy0+d2luZG93X3Vw cGVyX2xlZnRfY29ybmVyX3kgPSAoQVZSYXRpb25hbCkgeyBnZXRfYml0cyhnYiwgMTYpLCAxIH07 CisgICAgICAgIHBhcmFtcy0+d2luZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl94ID0gKEFWUmF0aW9u YWwpIHsgZ2V0X2JpdHMoZ2IsIDE2KSwgMSB9OworICAgICAgICBwYXJhbXMtPndpbmRvd19sb3dl cl9yaWdodF9jb3JuZXJfeSA9IChBVlJhdGlvbmFsKSB7IGdldF9iaXRzKGdiLCAxNiksIDEgfTsK IAogICAgICAgICBwYXJhbXMtPmNlbnRlcl9vZl9lbGxpcHNlX3ggPSBnZXRfYml0cyhnYiwgMTYp OwogICAgICAgICBwYXJhbXMtPmNlbnRlcl9vZl9lbGxpcHNlX3kgPSBnZXRfYml0cyhnYiwgMTYp OwpAQCAtNzgsOCArODIsNyBAQCBpbnQgZmZfcGFyc2VfaXR1X3RfdDM1X3RvX2R5bmFtaWNfaGRy MTBfcGx1cyhBVkR5bmFtaWNIRFJQbHVzICpzLCBjb25zdCB1aW50OF90CiAgICAgaWYgKGdldF9i aXRzX2xlZnQoZ2IpIDwgMjgpCiAgICAgICAgIHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwog Ci0gICAgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4aW11bV9sdW1pbmFuY2UgPQotICAg ICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHNfbG9uZyhnYiwgMjcpLCBsdW1pbmFuY2VfZGVufTsK KyAgICBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9tYXhpbXVtX2x1bWluYW5jZSA9IChBVlJh dGlvbmFsKSB7IGdldF9iaXRzX2xvbmcoZ2IsIDI3KSwgbHVtaW5hbmNlX2RlbiB9OwogICAgIHMt PnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnID0gZ2V0 X2JpdHMxKGdiKTsKIAogICAgIGlmIChzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxf cGVha19sdW1pbmFuY2VfZmxhZykgewpAQCAtOTksMjIgKzEwMiwxOSBAQCBpbnQgZmZfcGFyc2Vf aXR1X3RfdDM1X3RvX2R5bmFtaWNfaGRyMTBfcGx1cyhBVkR5bmFtaWNIRFJQbHVzICpzLCBjb25z dCB1aW50OF90CiAKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dzOyBpKyspIHsKICAg ICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY29sczsgaisrKSB7Ci0gICAgICAgICAgICAg ICAgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pd ID0KLSAgICAgICAgICAgICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCA0KSwgcGVh a19sdW1pbmFuY2VfZGVufTsKKyAgICAgICAgICAgICAgICBzLT50YXJnZXRlZF9zeXN0ZW1fZGlz cGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VbaV1bal0gPSAoQVZSYXRpb25hbCkgeyBnZXRfYml0 cyhnYiwgNCksIHBlYWtfbHVtaW5hbmNlX2RlbiB9OwogICAgICAgICAgICAgfQogICAgICAgICB9 CiAgICAgfQogICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgewot ICAgICAgICBBVkhEUlBsdXNDb2xvclRyYW5zZm9ybVBhcmFtcyAqcGFyYW1zID0gJnMtPnBhcmFt c1t3XTsKKyAgICAgICAgQVZIRFJQbHVzQ29sb3JUcmFuc2Zvcm1QYXJhbXMqIHBhcmFtcyA9ICZz LT5wYXJhbXNbd107CiAgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8ICgzICogMTcgKyAx NyArIDQpKQogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAKICAgICAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKLSAgICAgICAgICAgIHBhcmFtcy0+bWF4 c2NsW2ldID0KLSAgICAgICAgICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2IsIDE3KSwg cmdiX2Rlbn07CisgICAgICAgICAgICBwYXJhbXMtPm1heHNjbFtpXSA9IChBVlJhdGlvbmFsKSB7 IGdldF9iaXRzKGdiLCAxNyksIHJnYl9kZW4gfTsKICAgICAgICAgfQotICAgICAgICBwYXJhbXMt PmF2ZXJhZ2VfbWF4cmdiID0KLSAgICAgICAgICAgIChBVlJhdGlvbmFsKXtnZXRfYml0cyhnYiwg MTcpLCByZ2JfZGVufTsKKyAgICAgICAgcGFyYW1zLT5hdmVyYWdlX21heHJnYiA9IChBVlJhdGlv bmFsKSB7IGdldF9iaXRzKGdiLCAxNyksIHJnYl9kZW4gfTsKICAgICAgICAgcGFyYW1zLT5udW1f ZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlcyA9IGdldF9iaXRzKGdiLCA0KTsKIAogICAg ICAgICBpZiAoZ2V0X2JpdHNfbGVmdChnYikgPApAQCAtMTIzLDE0ICsxMjMsMTMgQEAgaW50IGZm X3BhcnNlX2l0dV90X3QzNV90b19keW5hbWljX2hkcjEwX3BsdXMoQVZEeW5hbWljSERSUGx1cyAq cywgY29uc3QgdWludDhfdAogCiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGFyYW1zLT5u dW1fZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlczsgaSsrKSB7CiAgICAgICAgICAgICBw YXJhbXMtPmRpc3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGFnZSA9IGdldF9iaXRzKGdiLCA3 KTsKLSAgICAgICAgICAgIHBhcmFtcy0+ZGlzdHJpYnV0aW9uX21heHJnYltpXS5wZXJjZW50aWxl ID0KLSAgICAgICAgICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2IsIDE3KSwgcmdiX2Rl bn07CisgICAgICAgICAgICBwYXJhbXMtPmRpc3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGls ZSA9IChBVlJhdGlvbmFsKSB7IGdldF9iaXRzKGdiLCAxNyksIHJnYl9kZW4gfTsKICAgICAgICAg fQogCiAgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IDEwKQogICAgICAgICAgICAgcmV0 dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CiAKLSAgICAgICAgcGFyYW1zLT5mcmFjdGlvbl9icmln aHRfcGl4ZWxzID0gKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCAxMCksIGZyYWN0aW9uX3BpeGVs X2Rlbn07CisgICAgICAgIHBhcmFtcy0+ZnJhY3Rpb25fYnJpZ2h0X3BpeGVscyA9IChBVlJhdGlv bmFsKSB7IGdldF9iaXRzKGdiLCAxMCksIGZyYWN0aW9uX3BpeGVsX2RlbiB9OwogICAgIH0KICAg ICBpZiAoZ2V0X2JpdHNfbGVmdChnYikgPCAxKQogICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZB TElEREFUQTsKQEAgLTE1MiwxNCArMTUxLDEzIEBAIGludCBmZl9wYXJzZV9pdHVfdF90MzVfdG9f ZHluYW1pY19oZHIxMF9wbHVzKEFWRHluYW1pY0hEUlBsdXMgKnMsIGNvbnN0IHVpbnQ4X3QKIAog ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd3M7IGkrKykgewogICAgICAgICAgICAgZm9y IChpbnQgaiA9IDA7IGogPCBjb2xzOyBqKyspIHsKLSAgICAgICAgICAgICAgICBzLT5tYXN0ZXJp bmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VbaV1bal0gPQotICAgICAgICAgICAgICAg ICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2IsIDQpLCBwZWFrX2x1bWluYW5jZV9kZW59Owor ICAgICAgICAgICAgICAgIHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5j ZVtpXVtqXSA9IChBVlJhdGlvbmFsKSB7IGdldF9iaXRzKGdiLCA0KSwgcGVha19sdW1pbmFuY2Vf ZGVuIH07CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKICAgICBmb3IgKGludCB3 ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsKLSAgICAgICAgQVZIRFJQbHVzQ29sb3JU cmFuc2Zvcm1QYXJhbXMgKnBhcmFtcyA9ICZzLT5wYXJhbXNbd107CisgICAgICAgIEFWSERSUGx1 c0NvbG9yVHJhbnNmb3JtUGFyYW1zKiBwYXJhbXMgPSAmcy0+cGFyYW1zW3ddOwogICAgICAgICBp ZiAoZ2V0X2JpdHNfbGVmdChnYikgPCAxKQogICAgICAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5W QUxJRERBVEE7CiAKQEAgLTE2OCwxOCArMTY2LDE1IEBAIGludCBmZl9wYXJzZV9pdHVfdF90MzVf dG9fZHluYW1pY19oZHIxMF9wbHVzKEFWRHluYW1pY0hEUlBsdXMgKnMsIGNvbnN0IHVpbnQ4X3QK ICAgICAgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IDI4KQogICAgICAgICAgICAgICAg IHJldHVybiBBVkVSUk9SX0lOVkFMSUREQVRBOwogCi0gICAgICAgICAgICBwYXJhbXMtPmtuZWVf cG9pbnRfeCA9Ci0gICAgICAgICAgICAgICAgKEFWUmF0aW9uYWwpe2dldF9iaXRzKGdiLCAxMiks IGtuZWVfcG9pbnRfZGVufTsKLSAgICAgICAgICAgIHBhcmFtcy0+a25lZV9wb2ludF95ID0KLSAg ICAgICAgICAgICAgICAoQVZSYXRpb25hbCl7Z2V0X2JpdHMoZ2IsIDEyKSwga25lZV9wb2ludF9k ZW59OworICAgICAgICAgICAgcGFyYW1zLT5rbmVlX3BvaW50X3ggPSAoQVZSYXRpb25hbCkgeyBn ZXRfYml0cyhnYiwgMTIpLCBrbmVlX3BvaW50X2RlbiB9OworICAgICAgICAgICAgcGFyYW1zLT5r bmVlX3BvaW50X3kgPSAoQVZSYXRpb25hbCkgeyBnZXRfYml0cyhnYiwgMTIpLCBrbmVlX3BvaW50 X2RlbiB9OwogICAgICAgICAgICAgcGFyYW1zLT5udW1fYmV6aWVyX2N1cnZlX2FuY2hvcnMgPSBn ZXRfYml0cyhnYiwgNCk7CiAKICAgICAgICAgICAgIGlmIChnZXRfYml0c19sZWZ0KGdiKSA8IChw YXJhbXMtPm51bV9iZXppZXJfY3VydmVfYW5jaG9ycyAqIDEwKSkKICAgICAgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKIAogICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBwYXJhbXMtPm51bV9iZXppZXJfY3VydmVfYW5jaG9yczsgaSsrKSB7Ci0gICAgICAgICAg ICAgICAgcGFyYW1zLT5iZXppZXJfY3VydmVfYW5jaG9yc1tpXSA9Ci0gICAgICAgICAgICAgICAg ICAgIChBVlJhdGlvbmFsKXtnZXRfYml0cyhnYiwgMTApLCBiZXppZXJfYW5jaG9yX2Rlbn07Cisg ICAgICAgICAgICAgICAgcGFyYW1zLT5iZXppZXJfY3VydmVfYW5jaG9yc1tpXSA9IChBVlJhdGlv bmFsKSB7IGdldF9iaXRzKGdiLCAxMCksIGJlemllcl9hbmNob3JfZGVuIH07CiAgICAgICAgICAg ICB9CiAgICAgICAgIH0KIApAQCAtMTk2LDMgKzE5MSwyMDkgQEAgaW50IGZmX3BhcnNlX2l0dV90 X3QzNV90b19keW5hbWljX2hkcjEwX3BsdXMoQVZEeW5hbWljSERSUGx1cyAqcywgY29uc3QgdWlu dDhfdAogCiAgICAgcmV0dXJuIDA7CiB9CisKK2ludCBmZl9wYXJzZV9mdWxsX2l0dV90X3QzNV90 b19keW5hbWljX2hkcjEwX3BsdXMoQVZEeW5hbWljSERSUGx1cyogcywgY29uc3QgdWludDhfdCog ZGF0YSwKKwkJCQkJICAgICBpbnQgc2l6ZSkKK3sKKyAgICB1aW50OF90IGNvdW50cnlfY29kZTsK KyAgICB1aW50MTZfdCBwcm92aWRlcl9jb2RlOworICAgIHVpbnQxNl90IHByb3ZpZGVyX29yaWVu dGVkX2NvZGU7CisgICAgdWludDhfdCBhcHBsaWNhdGlvbl9pZGVudGlmaWVyOworICAgIEdldEJp dENvbnRleHQgZ2JjLCAqZ2IgPSAmZ2JjOworICAgIGludCByZXQsIG9mZnNldDsKKworICAgIGlm ICghcykKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKworICAgIGlmIChzaXplIDwg NykKKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7CisKKyAgICByZXQgPSBpbml0 X2dldF9iaXRzOChnYiwgZGF0YSwgc2l6ZSk7CisgICAgaWYgKHJldCA8IDApCisgICAgICAgIHJl dHVybiByZXQ7CisKKyAgICBjb3VudHJ5X2NvZGUgPSBnZXRfYml0cyhnYiwgOCk7CisgICAgcHJv dmlkZXJfY29kZSA9IGdldF9iaXRzKGdiLCAxNik7CisKKyAgICBpZiAoY291bnRyeV9jb2RlICE9 IHVzYV9jb3VudHJ5X2NvZGUgfHwKKyAgICAgICAgcHJvdmlkZXJfY29kZSAhPSBzbXB0ZV9wcm92 aWRlcl9jb2RlKQorICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsKKworICAgIC8v IEEvMzQxIEFtZW5kbWVudCDigJMgMjA5NC00MAorICAgIHByb3ZpZGVyX29yaWVudGVkX2NvZGUg PSBnZXRfYml0cyhnYiwgMTYpOworICAgIGFwcGxpY2F0aW9uX2lkZW50aWZpZXIgPSBnZXRfYml0 cyhnYiwgOCk7CisgICAgaWYgKHByb3ZpZGVyX29yaWVudGVkX2NvZGUgIT0gc21wdGUyMDk0XzQw X3Byb3ZpZGVyX29yaWVudGVkX2NvZGUgfHwKKyAgICAgICAgYXBwbGljYXRpb25faWRlbnRpZmll ciAhPSBzbXB0ZTIwOTRfNDBfYXBwbGljYXRpb25faWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJu IEFWRVJST1JfSU5WQUxJRERBVEE7CisKKyAgICBvZmZzZXQgPSBnZXRfYml0c19jb3VudChnYikg LyA4OworCisgICAgcmV0dXJuIGZmX3BhcnNlX2l0dV90X3QzNV90b19keW5hbWljX2hkcjEwX3Bs dXMocywgZ2ItPmJ1ZmZlciArIG9mZnNldCwgc2l6ZSAtIG9mZnNldCk7Cit9CisKK2ludCBmZl9p dHVfdF90MzVfYnVmZmVyX3NpemUoY29uc3QgQVZEeW5hbWljSERSUGx1cyogcykKK3sKKyAgICBp bnQgYml0X2NvdW50ID0gMDsKKyAgICBpbnQgdywgc2l6ZTsKKworICAgIGlmICghcykKKyAgICAg ICAgcmV0dXJuIDA7CisKKyAgICAvLyA3IGJ5dGVzIGZvciBjb3VudHJ5IGNvZGUsIHByb3ZpZGVy IGNvZGUsIGFuZCB1c2VyIGlkZW50aWZpZXIuCisgICAgYml0X2NvdW50ICs9IDU2OworCisgICAg aWYgKHMtPm51bV93aW5kb3dzIDwgMSB8fCBzLT5udW1fd2luZG93cyA+IDMpCisgICAgICAgIHJl dHVybiAwOworICAgIC8vIENvdW50IGJpdHMgZm9yIHdpbmRvdyBwYXJhbXMuCisgICAgYml0X2Nv dW50ICs9IDIgKyAoKDE5ICogOCArIDEpICogKHMtPm51bV93aW5kb3dzIC0gMSkpOworCisgICAg Yml0X2NvdW50ICs9IDI4OworICAgIGlmIChzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1 YWxfcGVha19sdW1pbmFuY2VfZmxhZykgeworICAgICAgICBpbnQgcm93cywgY29sczsKKyAgICAg ICAgcm93cyA9IHMtPm51bV9yb3dzX3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFr X2x1bWluYW5jZTsKKyAgICAgICAgY29scyA9IHMtPm51bV9jb2xzX3RhcmdldGVkX3N5c3RlbV9k aXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZTsKKyAgICAgICAgaWYgKCgocm93cyA8IDIpIHx8 IChyb3dzID4gMjUpKSB8fCAoKGNvbHMgPCAyKSB8fCAoY29scyA+IDI1KSkpCisgICAgICAgICAg ICByZXR1cm4gMDsKKworICAgICAgICBiaXRfY291bnQgKz0gKDEwICsgcm93cyAqIGNvbHMgKiA0 KTsKKyAgICB9CisgICAgZm9yICh3ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsKKyAg ICAgICAgYml0X2NvdW50ICs9ICgzICogMTcgKyAxNyArIDQgKyAxMCkgKyAocy0+cGFyYW1zW3dd Lm51bV9kaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRpbGVzICogMjQpOworICAgIH0KKyAgICBi aXRfY291bnQrKzsKKworICAgIGlmIChzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19s dW1pbmFuY2VfZmxhZykgeworICAgICAgICBpbnQgcm93cywgY29sczsKKyAgICAgICAgcm93cyA9 IHMtPm51bV9yb3dzX21hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZTsKKyAg ICAgICAgY29scyA9IHMtPm51bV9jb2xzX21hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1 bWluYW5jZTsKKyAgICAgICAgaWYgKCgocm93cyA8IDIpIHx8IChyb3dzID4gMjUpKSB8fCAoKGNv bHMgPCAyKSB8fCAoY29scyA+IDI1KSkpCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAg ICBiaXRfY291bnQgKz0gKDEwICsgcm93cyAqIGNvbHMgKiA0KTsKKyAgICB9CisKKyAgICBmb3Ig KHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAgICBiaXRfY291bnQrKzsK KyAgICAgICAgaWYgKHMtPnBhcmFtc1t3XS50b25lX21hcHBpbmdfZmxhZykKKyAgICAgICAgICAg IGJpdF9jb3VudCArPSAoMjggKyBzLT5wYXJhbXNbd10ubnVtX2Jlemllcl9jdXJ2ZV9hbmNob3Jz ICogMTApOworCisgICAgICAgIGJpdF9jb3VudCsrOworICAgICAgICBpZiAocy0+cGFyYW1zW3dd LmNvbG9yX3NhdHVyYXRpb25fbWFwcGluZ19mbGFnKQorICAgICAgICAgICAgYml0X2NvdW50ICs9 IDY7CisgICAgfQorICAgIHNpemUgPSBiaXRfY291bnQgLyA4OworICAgIGlmIChiaXRfY291bnQg JSA4ICE9IDApCisgICAgICAgIHNpemUrKzsKKyAgICByZXR1cm4gc2l6ZTsKK30KKworaW50IGZm X3dyaXRlX2R5bmFtaWNfaGRyMTBfcGx1c190b19mdWxsX2l0dV90X3QzNShjb25zdCBBVkR5bmFt aWNIRFJQbHVzKiBzLCB1aW50OF90KiogZGF0YSwgc2l6ZV90KiBzaXplKQoreworICAgIGludCB3 LCBpLCBqOworICAgIFB1dEJpdENvbnRleHQgcGJjLCAqcGIgPSAmcGJjOworCisgICAgaWYgKCFz IHx8ICFzaXplKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOworCisgICAgKnNpemUg PSBmZl9pdHVfdF90MzVfYnVmZmVyX3NpemUocyk7CisgICAgaWYgKCpzaXplIDw9IDApCisgICAg ICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CisgICAgKmRhdGEgPSBhdl9tYWxsb2N6KCpzaXpl KTsKKyAgICBpbml0X3B1dF9iaXRzKHBiLCAqZGF0YSwgKnNpemUpOworICAgIGlmIChwdXRfYml0 c19sZWZ0KHBiKSA8ICpzaXplKSB7CisgICAgICAgIGF2X2ZyZWVwKGRhdGEpOworICAgICAgICBy ZXR1cm4gQVZFUlJPUihFSU5WQUwpOworICAgIH0KKyAgICBwdXRfYml0cyhwYiwgOCwgdXNhX2Nv dW50cnlfY29kZSk7CisKKyAgICBwdXRfYml0cyhwYiwgMTYsIHNtcHRlX3Byb3ZpZGVyX2NvZGUp OworICAgIHB1dF9iaXRzKHBiLCAxNiwgc21wdGUyMDk0XzQwX3Byb3ZpZGVyX29yaWVudGVkX2Nv ZGUpOworICAgIHB1dF9iaXRzKHBiLCA4LCBzbXB0ZTIwOTRfNDBfYXBwbGljYXRpb25faWRlbnRp Zmllcik7CisgICAgcHV0X2JpdHMocGIsIDgsIHMtPmFwcGxpY2F0aW9uX3ZlcnNpb24pOworCisg ICAgcHV0X2JpdHMocGIsIDIsIHMtPm51bV93aW5kb3dzKTsKKworICAgIGZvciAodyA9IDE7IHcg PCBzLT5udW1fd2luZG93czsgdysrKSB7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFy YW1zW3ddLndpbmRvd191cHBlcl9sZWZ0X2Nvcm5lcl94Lm51bSAvIHMtPnBhcmFtc1t3XS53aW5k b3dfdXBwZXJfbGVmdF9jb3JuZXJfeC5kZW4pOworICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMt PnBhcmFtc1t3XS53aW5kb3dfdXBwZXJfbGVmdF9jb3JuZXJfeS5udW0gLyBzLT5wYXJhbXNbd10u d2luZG93X3VwcGVyX2xlZnRfY29ybmVyX3kuZGVuKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2 LCBzLT5wYXJhbXNbd10ud2luZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl94Lm51bSAvIHMtPnBhcmFt c1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3guZGVuKTsKKyAgICAgICAgcHV0X2JpdHMo cGIsIDE2LCBzLT5wYXJhbXNbd10ud2luZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl95Lm51bSAvIHMt PnBhcmFtc1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3kuZGVuKTsKKyAgICAgICAgcHV0 X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uY2VudGVyX29mX2VsbGlwc2VfeCk7CisgICAgICAg IHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLmNlbnRlcl9vZl9lbGxpcHNlX3kpOworICAg ICAgICBwdXRfYml0cyhwYiwgOCwgcy0+cGFyYW1zW3ddLnJvdGF0aW9uX2FuZ2xlKTsKKyAgICAg ICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uc2VtaW1ham9yX2F4aXNfaW50ZXJuYWxf ZWxsaXBzZSk7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLnNlbWltYWpv cl9heGlzX2V4dGVybmFsX2VsbGlwc2UpOworICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBh cmFtc1t3XS5zZW1pbWlub3JfYXhpc19leHRlcm5hbF9lbGxpcHNlKTsKKyAgICAgICAgcHV0X2Jp dHMocGIsIDEsIHMtPnBhcmFtc1t3XS5vdmVybGFwX3Byb2Nlc3Nfb3B0aW9uKTsKKyAgICB9Cisg ICAgcHV0X2JpdHMocGIsIDI3LAorICAgICAgICAgICAgIHMtPnRhcmdldGVkX3N5c3RlbV9kaXNw bGF5X21heGltdW1fbHVtaW5hbmNlLm51bSAqIGx1bWluYW5jZV9kZW4gLyBzLT50YXJnZXRlZF9z eXN0ZW1fZGlzcGxheV9tYXhpbXVtX2x1bWluYW5jZS5kZW4pOworICAgIHB1dF9iaXRzKHBiLCAx LCBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZyk7 CisgICAgaWYgKHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5j ZV9mbGFnKSB7CisgICAgICAgIGludCByb3dzLCBjb2xzOworICAgICAgICByb3dzID0gcy0+bnVt X3Jvd3NfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlOworICAg ICAgICBjb2xzID0gcy0+bnVtX2NvbHNfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3Bl YWtfbHVtaW5hbmNlOworICAgICAgICBwdXRfYml0cyhwYiwgNSwgcm93cyk7CisgICAgICAgIHB1 dF9iaXRzKHBiLCA1LCBjb2xzKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHJvd3M7IGkrKykg eworICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGNvbHM7IGorKykgeworICAgICAgICAgICAg ICAgIHB1dF9iaXRzKAorICAgICAgICAgICAgICAgICAgICBwYiwgNCwKKyAgICAgICAgICAgICAg ICAgICAgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ld W2pdLm51bSAqIHBlYWtfbHVtaW5hbmNlX2RlbiAvIHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5 X2FjdHVhbF9wZWFrX2x1bWluYW5jZVtpXVtqXS5kZW4pOworICAgICAgICAgICAgfQorICAgICAg ICB9CisgICAgfQorICAgIGZvciAodyA9IDA7IHcgPCBzLT5udW1fd2luZG93czsgdysrKSB7Cisg ICAgICAgIGZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgICAgIHB1dF9iaXRzKHBi LCAxNywKKyAgICAgICAgICAgICAgICAgICAgIHMtPnBhcmFtc1t3XS5tYXhzY2xbaV0ubnVtICog cmdiX2RlbiAvIHMtPnBhcmFtc1t3XS5tYXhzY2xbaV0uZGVuKTsKKyAgICAgICAgfQorICAgICAg ICBwdXRfYml0cyhwYiwgMTcsCisgICAgICAgICAgICAgICAgIHMtPnBhcmFtc1t3XS5hdmVyYWdl X21heHJnYi5udW0gKiByZ2JfZGVuIC8gcy0+cGFyYW1zW3ddLmF2ZXJhZ2VfbWF4cmdiLmRlbik7 CisgICAgICAgIHB1dF9iaXRzKHBiLCA0LCBzLT5wYXJhbXNbd10ubnVtX2Rpc3RyaWJ1dGlvbl9t YXhyZ2JfcGVyY2VudGlsZXMpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzLT5wYXJhbXNb d10ubnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXM7IGkrKykgeworICAgICAgICAg ICAgcHV0X2JpdHMocGIsIDcsIHMtPnBhcmFtc1t3XS5kaXN0cmlidXRpb25fbWF4cmdiW2ldLnBl cmNlbnRhZ2UpOworICAgICAgICAgICAgcHV0X2JpdHMocGIsIDE3LAorICAgICAgICAgICAgICAg ICAgICAgcy0+cGFyYW1zW3ddLmRpc3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGlsZS5udW0g KiByZ2JfZGVuIC8gcy0+cGFyYW1zW3ddLmRpc3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGls ZS5kZW4pOworICAgICAgICB9CisgICAgICAgIHB1dF9iaXRzKHBiLCAxMCwKKyAgICAgICAgICAg ICAgICAgcy0+cGFyYW1zW3ddLmZyYWN0aW9uX2JyaWdodF9waXhlbHMubnVtICogZnJhY3Rpb25f cGl4ZWxfZGVuIC8gcy0+cGFyYW1zW3ddLmZyYWN0aW9uX2JyaWdodF9waXhlbHMuZGVuKTsKKyAg ICB9CisgICAgcHV0X2JpdHMocGIsIDEsIHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFr X2x1bWluYW5jZV9mbGFnKTsKKyAgICBpZiAocy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3Bl YWtfbHVtaW5hbmNlX2ZsYWcpIHsKKyAgICAgICAgaW50IHJvd3MsIGNvbHM7CisgICAgICAgIHJv d3MgPSBzLT5udW1fcm93c19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2U7 CisgICAgICAgIGNvbHMgPSBzLT5udW1fY29sc19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVh a19sdW1pbmFuY2U7CisgICAgICAgIHB1dF9iaXRzKHBiLCA1LCByb3dzKTsKKyAgICAgICAgcHV0 X2JpdHMocGIsIDUsIGNvbHMpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcm93czsgaSsrKSB7 CisgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgY29sczsgaisrKSB7CisgICAgICAgICAgICAg ICAgcHV0X2JpdHMoCisgICAgICAgICAgICAgICAgICAgIHBiLCA0LAorICAgICAgICAgICAgICAg ICAgICBzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VbaV1bal0ubnVt ICogcGVha19sdW1pbmFuY2VfZGVuIC8gcy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtf bHVtaW5hbmNlW2ldW2pdLmRlbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisK KyAgICBmb3IgKHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAgICBwdXRf Yml0cyhwYiwgMSwgcy0+cGFyYW1zW3ddLnRvbmVfbWFwcGluZ19mbGFnKTsKKyAgICAgICAgaWYg KHMtPnBhcmFtc1t3XS50b25lX21hcHBpbmdfZmxhZykgeworICAgICAgICAgICAgcHV0X2JpdHMo cGIsIDEyLAorICAgICAgICAgICAgICAgICAgICAgcy0+cGFyYW1zW3ddLmtuZWVfcG9pbnRfeC5u dW0gKiBrbmVlX3BvaW50X2RlbiAvIHMtPnBhcmFtc1t3XS5rbmVlX3BvaW50X3guZGVuKTsKKyAg ICAgICAgICAgIHB1dF9iaXRzKHBiLCAxMiwKKyAgICAgICAgICAgICAgICAgICAgIHMtPnBhcmFt c1t3XS5rbmVlX3BvaW50X3kubnVtICoga25lZV9wb2ludF9kZW4gLyBzLT5wYXJhbXNbd10ua25l ZV9wb2ludF95LmRlbik7CisgICAgICAgICAgICBwdXRfYml0cyhwYiwgNCwgcy0+cGFyYW1zW3dd Lm51bV9iZXppZXJfY3VydmVfYW5jaG9ycyk7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwg cy0+cGFyYW1zW3ddLm51bV9iZXppZXJfY3VydmVfYW5jaG9yczsgaSsrKSB7CisgICAgICAgICAg ICAgICAgcHV0X2JpdHMocGIsIDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgIHMtPnBhcmFt c1t3XS5iZXppZXJfY3VydmVfYW5jaG9yc1tpXS5udW0gKiBiZXppZXJfYW5jaG9yX2RlbiAvIHMt PnBhcmFtc1t3XS5iZXppZXJfY3VydmVfYW5jaG9yc1tpXS5kZW4pOworICAgICAgICAgICAgfQor ICAgICAgICB9CisgICAgICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5wYXJhbXNbd10uY29sb3Jfc2F0 dXJhdGlvbl9tYXBwaW5nX2ZsYWcpOworICAgICAgICBpZiAocy0+cGFyYW1zW3ddLmNvbG9yX3Nh dHVyYXRpb25fbWFwcGluZ19mbGFnKQorICAgICAgICAgICAgcHV0X2JpdHMocGIsIDYsCisgICAg ICAgICAgICAgICAgICAgICBzLT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlvbl93ZWlnaHQubnVt ICogc2F0dXJhdGlvbl93ZWlnaHRfZGVuIC8gcy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRpb25f d2VpZ2h0LmRlbik7CisgICAgfQorICAgIGZsdXNoX3B1dF9iaXRzKHBiKTsKKyAgICByZXR1cm4g MDsKK30KZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvZHluYW1pY19oZHIxMF9wbHVzLmggYi9saWJh dmNvZGVjL2R5bmFtaWNfaGRyMTBfcGx1cy5oCmluZGV4IGNkN2FjZjA0MzIuLmRhZmU1NDhkMmQg MTAwNjQ0Ci0tLSBhL2xpYmF2Y29kZWMvZHluYW1pY19oZHIxMF9wbHVzLmgKKysrIGIvbGliYXZj b2RlYy9keW5hbWljX2hkcjEwX3BsdXMuaApAQCAtMjksNyArMjksMzggQEAKICAqCiAgKiBAcmV0 dXJuIDAgaWYgc3VjY2VlZC4gT3RoZXJ3aXNlLCByZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBBVkVS Uk9SLgogICovCi1pbnQgZmZfcGFyc2VfaXR1X3RfdDM1X3RvX2R5bmFtaWNfaGRyMTBfcGx1cyhB VkR5bmFtaWNIRFJQbHVzICpzLCBjb25zdCB1aW50OF90ICpkYXRhLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUpOworaW50IGZmX3BhcnNlX2l0 dV90X3QzNV90b19keW5hbWljX2hkcjEwX3BsdXMoQVZEeW5hbWljSERSUGx1cyogcywgY29uc3Qg dWludDhfdCogZGF0YSwKKwkJCQkJICAgICBpbnQgc2l6ZSk7CisKKy8qKgorICogUGFyc2UgdGhl IHVzZXIgZGF0YSByZWdpc3RlcmVkIElUVS1UIFQuMzUgd2l0aCBoZWFkZXIgdG8gQVZEeW5hbWlj SERSUGx1cy4gQXQgZmlyc3QgY2hlY2sKKyAqIHRoZSBoZWFkZXIgaWYgdGhlIHByb3ZpZGVyIGNv ZGUgaXMgU01QVEUtMjA5NC00MC4gVGhlbiB3aWxsIHBhcnNlIHRoZSBkYXRhIHRvIEFWRHluYW1p Y0hEUlBsdXMuCisgKiBAcGFyYW0gcyBBIHBvaW50ZXIgY29udGFpbmluZyB0aGUgZGVjb2RlZCBB VkR5bmFtaWNIRFJQbHVzIHN0cnVjdHVyZS4KKyAqIEBwYXJhbSBkYXRhIFRoZSBieXRlIGFycmF5 IGNvbnRhaW5pbmcgdGhlIHJhdyBJVFUtVCBULjM1IGRhdGEgd2l0aCBoZWFkZXIuCisgKiBAcGFy YW0gc2l6ZSBTaXplIG9mIHRoZSBkYXRhIGFycmF5IGluIGJ5dGVzLgorICoKKyAqIEByZXR1cm4g MCBpZiBzdWNjZWVkLiBPdGhlcndpc2UsIHJldHVybnMgdGhlIGFwcHJvcHJpYXRlIEFWRVJST1Iu CisgKi8KK2ludCBmZl9wYXJzZV9mdWxsX2l0dV90X3QzNV90b19keW5hbWljX2hkcjEwX3BsdXMo QVZEeW5hbWljSERSUGx1cyogcywgY29uc3QgdWludDhfdCogZGF0YSwKKwkJCQkJICAgICBpbnQg c2l6ZSk7CisKKy8qKgorICogR2V0IHRoZSBzaXplIG9mIGJ1ZmZlciByZXF1aXJlZCB0byBzYXZl IHRoZSBlbmNvZGVkIGJpdCBzdHJlYW0gb2YKKyAqIEFWRHluYW1pY0hEUlBsdXMgaW4gdGhlIGZv cm0gb2YgdGhlIHVzZXIgZGF0YSByZWdpc3RlcmVkIElUVS1UIFQuMzUuCisgKiBAcGFyYW0gcyBU aGUgQVZEeW5hbWljSERSUGx1cyBzdHJ1Y3R1cmUuCisgKgorICogQHJldHVybiBUaGUgc2l6ZSBv ZiBiaXQgc3RyZWFtIHJlcXVpcmVkIGZvciBlbmNvZGluZy4gMCBpZiB0aGUgZGF0YSBpcyBpbnZh bGlkLgorICovCitpbnQgZmZfaXR1X3RfdDM1X2J1ZmZlcl9zaXplKGNvbnN0IEFWRHluYW1pY0hE UlBsdXMqIHMpOworCisvKioKKyAqIEVuY29kZSBhbmQgd3JpdGUgQVZEeW5hbWljSERSUGx1cyB0 byB0aGUgdXNlciBkYXRhIHJlZ2lzdGVyZWQgSVRVLVQgVC4zIHdpdGggaGVhZGVyIChjb250YWlu aW5nIHRoZSBwcm92aWRlciBjb2RlKS4KKyAqIEBwYXJhbSBzIEEgcG9pbnRlciBjb250YWluaW5n IHRoZSBBVkR5bmFtaWNIRFJQbHVzIHN0cnVjdHVyZS4KKyAqIEBwYXJhbSBkYXRhIFRoZSBieXRl IGFycmF5IGNvbnRhaW5pbmcgdGhlIHJhdyBJVFUtVCBULjM1IGRhdGEgd2l0aCBoZWFkZXIuCisg KiBAcGFyYW0gc2l6ZSBUaGUgc2l6ZSBvZiB0aGUgcmF3IElUVS1UIFQuMzUgZGF0YS4KKyAqCisg KiBAcmV0dXJuIDAgaWYgc3VjY2VlZC4gT3RoZXJ3aXNlLCByZXR1cm5zIHRoZSBhcHByb3ByaWF0 ZSBBVkVSUk9SLgorICovCitpbnQgZmZfd3JpdGVfZHluYW1pY19oZHIxMF9wbHVzX3RvX2Z1bGxf aXR1X3RfdDM1KGNvbnN0IEFWRHluYW1pY0hEUlBsdXMqIHMsIHVpbnQ4X3QqKiBkYXRhLCBzaXpl X3QqIHNpemUpOwogCiAjZW5kaWYgLyogQVZDT0RFQ19EWU5BTUlDX0hEUjEwX1BMVVNfSCAqLwpk aWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbWF0cm9za2EuaCBiL2xpYmF2Zm9ybWF0L21hdHJvc2th LmgKaW5kZXggNDUwNzdlZDMzZi4uYzNjZjllZWY1MyAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQv bWF0cm9za2EuaAorKysgYi9saWJhdmZvcm1hdC9tYXRyb3NrYS5oCkBAIC0zNTgsNiArMzU4LDEx IEBAIHR5cGVkZWYgZW51bSB7CiAgIE1BVFJPU0tBX1ZJREVPX1BST0pFQ1RJT05fVFlQRV9NRVNI ICAgICAgICAgICAgICAgPSAzLAogfSBNYXRyb3NrYVZpZGVvUHJvamVjdGlvblR5cGU7CiAKK3R5 cGVkZWYgZW51bSB7CisgIE1BVFJPU0tBX0JMT0NLX0FERF9JRF9ERUZBVUxUICAgICAgICAgICAg ICAgICAgICAgPSAwLAorICBNQVRST1NLQV9CTE9DS19BRERfSURfRFlOQU1JQ19IRFIxMF9QTFVT ICAgICAgICAgID0gNCwKK30gTWF0cm9za2FCbG9ja0FkZElEOworCiAvKgogICogTWF0cm9za2Eg Q29kZWMgSURzLCBzdHJpbmdzCiAgKi8KZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L21hdHJvc2th ZGVjLmMgYi9saWJhdmZvcm1hdC9tYXRyb3NrYWRlYy5jCmluZGV4IGQ5N2ZjMzNkNDQuLmRlOGFk ZjEyZWUgMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L21hdHJvc2thZGVjLmMKKysrIGIvbGliYXZm b3JtYXQvbWF0cm9za2FkZWMuYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgImxpYmF2dXRp bC9zcGhlcmljYWwuaCIKIAogI2luY2x1ZGUgImxpYmF2Y29kZWMvYnl0ZXN0cmVhbS5oIgorI2lu Y2x1ZGUgImxpYmF2Y29kZWMvZHluYW1pY19oZHIxMF9wbHVzLmgiCiAjaW5jbHVkZSAibGliYXZj b2RlYy9mbGFjLmgiCiAjaW5jbHVkZSAibGliYXZjb2RlYy9tcGVnNGF1ZGlvLmgiCiAjaW5jbHVk ZSAibGliYXZjb2RlYy9wYWNrZXRfaW50ZXJuYWwuaCIKQEAgLTM2MzIsMTUgKzM2MzMsMjggQEAg c3RhdGljIGludCBtYXRyb3NrYV9wYXJzZV9mcmFtZShNYXRyb3NrYURlbXV4Q29udGV4dCAqbWF0 cm9za2EsCiAgICAgcGt0LT5zdHJlYW1faW5kZXggPSBzdC0+aW5kZXg7CiAKICAgICBpZiAoYWRk aXRpb25hbF9zaXplID4gMCkgewotICAgICAgICB1aW50OF90ICpzaWRlX2RhdGEgPSBhdl9wYWNr ZXRfbmV3X3NpZGVfZGF0YShwa3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFWX1BLVF9EQVRBX01BVFJPU0tBX0JMT0NLQURESVRJT05BTCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRk aXRpb25hbF9zaXplICsgOCk7Ci0gICAgICAgIGlmICghc2lkZV9kYXRhKSB7Ci0gICAgICAgICAg ICBhdl9wYWNrZXRfdW5yZWYocGt0KTsKLSAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01F TSk7CisgICAgICAgIGlmIChhZGRpdGlvbmFsX2lkID09IE1BVFJPU0tBX0JMT0NLX0FERF9JRF9E WU5BTUlDX0hEUjEwX1BMVVMpIHsKKyAgICAgICAgICAgIEFWRHluYW1pY0hEUlBsdXMgaGRyMTBf cGx1czsKKyAgICAgICAgICAgIGlmICghZmZfcGFyc2VfZnVsbF9pdHVfdF90MzVfdG9fZHluYW1p Y19oZHIxMF9wbHVzKCZoZHIxMF9wbHVzLCBhZGRpdGlvbmFsLCBhZGRpdGlvbmFsX3NpemUpKSB7 CisgICAgICAgICAgICAgICAgdWludDhfdCAqc2lkZV9kYXRhID0gYXZfcGFja2V0X25ld19zaWRl X2RhdGEocGt0LCBBVl9QS1RfREFUQV9EWU5BTUlDX0hEUjEwX1BMVVMsIHNpemVvZihoZHIxMF9w bHVzKSk7CisgICAgICAgICAgICAgICAgaWYgKCFzaWRlX2RhdGEpIHsKKyAgICAgICAgICAgICAg ICAgICAgYXZfcGFja2V0X3VucmVmKHBrdCk7CisgICAgICAgICAgICAgICAgICAgIGF2X2ZyZWUo cGt0KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbWVtY3B5KHNpZGVfZGF0YSwgKHVpbnQ4X3Qq KSgmaGRyMTBfcGx1cyksIHNpemVvZihoZHIxMF9wbHVzKSk7CisgICAgICAgICAgICAgICAgfQor CX0gZWxzZSB7CisJICAgIHVpbnQ4X3QgKnNpZGVfZGF0YSA9IGF2X3BhY2tldF9uZXdfc2lkZV9k YXRhKHBrdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFWX1BLVF9EQVRBX01BVFJPU0tBX0JMT0NLQURESVRJT05BTCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9u YWxfc2l6ZSArIDgpOworICAgICAgICAgICAgaWYgKCFzaWRlX2RhdGEpIHsKKyAgICAgICAgICAg ICAgICBhdl9wYWNrZXRfdW5yZWYocGt0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJP UihFTk9NRU0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVZfV0I2NChzaWRlX2RhdGEs IGFkZGl0aW9uYWxfaWQpOworICAgICAgICAgICAgbWVtY3B5KHNpZGVfZGF0YSArIDgsIGFkZGl0 aW9uYWwsIGFkZGl0aW9uYWxfc2l6ZSk7CiAgICAgICAgIH0KLSAgICAgICAgQVZfV0I2NChzaWRl X2RhdGEsIGFkZGl0aW9uYWxfaWQpOwotICAgICAgICBtZW1jcHkoc2lkZV9kYXRhICsgOCwgYWRk aXRpb25hbCwgYWRkaXRpb25hbF9zaXplKTsKICAgICB9CiAKICAgICBpZiAoZGlzY2FyZF9wYWRk aW5nKSB7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9tYXRyb3NrYWVuYy5jIGIvbGliYXZmb3Jt YXQvbWF0cm9za2FlbmMuYwppbmRleCAzYjhjYTExZjI4Li43YTc3NWU3ZDRlIDEwMDY0NAotLS0g YS9saWJhdmZvcm1hdC9tYXRyb3NrYWVuYy5jCisrKyBiL2xpYmF2Zm9ybWF0L21hdHJvc2thZW5j LmMKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvc2FtcGxlZm10LmgiCiAj aW5jbHVkZSAibGliYXZ1dGlsL3N0ZXJlbzNkLmgiCiAKKyNpbmNsdWRlICJsaWJhdmNvZGVjL2R5 bmFtaWNfaGRyMTBfcGx1cy5oIgogI2luY2x1ZGUgImxpYmF2Y29kZWMveGlwaC5oIgogI2luY2x1 ZGUgImxpYmF2Y29kZWMvbXBlZzRhdWRpby5oIgogCkBAIC0yNDEyLDcgKzI0MTMsNyBAQCBzdGF0 aWMgaW50IG1rdl93cml0ZV9oZWFkZXIoQVZGb3JtYXRDb250ZXh0ICpzKQogCiAjaWYgQ09ORklH X01BVFJPU0tBX01VWEVSCiBzdGF0aWMgaW50IG1rdl9yZWZvcm1hdF9oMjY0NShNYXRyb3NrYU11 eENvbnRleHQgKm1rdiwgQVZJT0NvbnRleHQgKnBiLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgQVZQYWNrZXQgKnBrdCwgaW50ICpzaXplKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IEFWUGFja2V0ICpwa3QsIGludCAqc2l6ZSkKIHsKICAgICBpbnQg cmV0OwogICAgIGlmIChwYikgewpAQCAtMjUxMyw5ICsyNTE0LDEyIEBAIHN0YXRpYyBpbnQgbWt2 X3dyaXRlX2Jsb2NrKHZvaWQgKmxvZ2N0eCwgTWF0cm9za2FNdXhDb250ZXh0ICpta3YsCiB7CiAg ICAgdWludDhfdCAqc2lkZV9kYXRhOwogICAgIHNpemVfdCBzaWRlX2RhdGFfc2l6ZTsKLSAgICB1 aW50NjRfdCBhZGRpdGlvbmFsX2lkOworICAgIHVpbnQ2NF90IGFkZGl0aW9uYWxfaWQgPSAwOwog ICAgIGludDY0X3QgZGlzY2FyZF9wYWRkaW5nID0gMDsKICAgICB1bnNpZ25lZCB0cmFja19udW1i ZXIgPSB0cmFjay0+dHJhY2tfbnVtOworICAgIGludCBoYXNfY29kZWNfc3BlY2lmaWNfYmxvY2tt b3JlID0gMDsKKyAgICB1aW50OF90ICpoZHIxMF9wbHVzX2l0dV90X3QzNTsKKyAgICBzaXplX3Qg aGRyMTBfcGx1c19pdHVfdF90MzVfc2l6ZSA9IDA7CiAgICAgRUJNTF9XUklURVIoOSk7CiAKICAg ICBta3YtPmN1cl9ibG9jay50cmFjayAgPSB0cmFjazsKQEAgLTI1NDcsMjQgKzI1NTEsMzggQEAg c3RhdGljIGludCBta3Zfd3JpdGVfYmxvY2sodm9pZCAqbG9nY3R4LCBNYXRyb3NrYU11eENvbnRl eHQgKm1rdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBVlJhdGlv bmFsKXsxLCAxMDAwMDAwMDAwfSk7CiAgICAgICAgIGVibWxfd3JpdGVyX2FkZF9zaW50KCZ3cml0 ZXIsIE1BVFJPU0tBX0lEX0RJU0NBUkRQQURESU5HLCBkaXNjYXJkX3BhZGRpbmcpOwogICAgIH0K KyAgICBzaWRlX2RhdGEgPSBhdl9wYWNrZXRfZ2V0X3NpZGVfZGF0YShwa3QsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZfUEtUX0RBVEFfRFlOQU1JQ19IRFIxMF9Q TFVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaWRlX2RhdGFf c2l6ZSk7CisgICAgaWYgKHNpZGVfZGF0YSAmJiBzaWRlX2RhdGFfc2l6ZSA+IDApCisgICAgICAg IGZmX3dyaXRlX2R5bmFtaWNfaGRyMTBfcGx1c190b19mdWxsX2l0dV90X3QzNSgoQVZEeW5hbWlj SERSUGx1cyopc2lkZV9kYXRhLCAmaGRyMTBfcGx1c19pdHVfdF90MzUsICZoZHIxMF9wbHVzX2l0 dV90X3QzNV9zaXplKTsKIAogICAgIHNpZGVfZGF0YSA9IGF2X3BhY2tldF9nZXRfc2lkZV9kYXRh KHBrdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVl9QS1RfREFU QV9NQVRST1NLQV9CTE9DS0FERElUSU9OQUwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnNpZGVfZGF0YV9zaXplKTsKLSAgICBpZiAoc2lkZV9kYXRhICYmIHNpZGVf ZGF0YV9zaXplID49IDggJiYKLSAgICAgICAgLy8gT25seSB0aGUgQ29kZWMtc3BlY2lmaWMgQmxv Y2tNb3JlIChpZCA9PSAxKSBpcyBjdXJyZW50bHkgc3VwcG9ydGVkLgotICAgICAgICAoYWRkaXRp b25hbF9pZCA9IEFWX1JCNjQoc2lkZV9kYXRhKSkgPT0gMSkgeworICAgIGhhc19jb2RlY19zcGVj aWZpY19ibG9ja21vcmUgPSBzaWRlX2RhdGEgJiYgc2lkZV9kYXRhX3NpemUgPj0gOCAmJgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWRkaXRpb25hbF9pZCA9IEFWX1JCNjQo c2lkZV9kYXRhKSkgPT0gMTsKKyAgICAvLyBUaGUgQ29kZWMtc3BlY2lmaWMgQmxvY2tNb3JlIChp ZCA9PSAxKSBhbmQgSERSMTArIChpZCA9PSA0KSBhcmUgc3VwcG9ydGVkLgorICAgIGlmIChoYXNf Y29kZWNfc3BlY2lmaWNfYmxvY2ttb3JlIHx8IGhkcjEwX3BsdXNfaXR1X3RfdDM1X3NpemUgPiAw KSB7CiAgICAgICAgIGVibWxfd3JpdGVyX29wZW5fbWFzdGVyKCZ3cml0ZXIsIE1BVFJPU0tBX0lE X0JMT0NLQURESVRJT05TKTsKLSAgICAgICAgZWJtbF93cml0ZXJfb3Blbl9tYXN0ZXIoJndyaXRl ciwgTUFUUk9TS0FfSURfQkxPQ0tNT1JFKTsKLSAgICAgICAgLyogVW50aWwgZGJjNTBmOGEgb3Vy IGRlbXV4ZXIgdXNlZCBhIHdyb25nIGRlZmF1bHQgdmFsdWUKLSAgICAgICAgICogb2YgQmxvY2tB ZGRJRCwgc28gd2Ugd3JpdGUgaXQgdW5jb25kaXRpb25hbGx5LiAqLwotICAgICAgICBlYm1sX3dy aXRlcl9hZGRfdWludCgmd3JpdGVyLCBNQVRST1NLQV9JRF9CTE9DS0FERElELCBhZGRpdGlvbmFs X2lkKTsKLSAgICAgICAgZWJtbF93cml0ZXJfYWRkX2JpbiAoJndyaXRlciwgTUFUUk9TS0FfSURf QkxPQ0tBRERJVElPTkFMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlX2RhdGEg KyA4LCBzaWRlX2RhdGFfc2l6ZSAtIDgpOwotICAgICAgICBlYm1sX3dyaXRlcl9jbG9zZV9tYXN0 ZXIoJndyaXRlcik7CisJaWYgKGhhc19jb2RlY19zcGVjaWZpY19ibG9ja21vcmUpIHsKKyAgICAg ICAgICAgIGVibWxfd3JpdGVyX29wZW5fbWFzdGVyKCZ3cml0ZXIsIE1BVFJPU0tBX0lEX0JMT0NL TU9SRSk7CisgICAgICAgICAgICAvKiBVbnRpbCBkYmM1MGY4YSBvdXIgZGVtdXhlciB1c2VkIGEg d3JvbmcgZGVmYXVsdCB2YWx1ZQorICAgICAgICAgICAgICogb2YgQmxvY2tBZGRJRCwgc28gd2Ug d3JpdGUgaXQgdW5jb25kaXRpb25hbGx5LiAqLworICAgICAgICAgICAgZWJtbF93cml0ZXJfYWRk X3VpbnQoJndyaXRlciwgTUFUUk9TS0FfSURfQkxPQ0tBRERJRCwgYWRkaXRpb25hbF9pZCk7Cisg ICAgICAgICAgICBlYm1sX3dyaXRlcl9hZGRfYmluICgmd3JpdGVyLCBNQVRST1NLQV9JRF9CTE9D S0FERElUSU9OQUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlX2RhdGEg KyA4LCBzaWRlX2RhdGFfc2l6ZSAtIDgpOworICAgICAgICAgICAgZWJtbF93cml0ZXJfY2xvc2Vf bWFzdGVyKCZ3cml0ZXIpOworCX0KKwlpZiAoaGRyMTBfcGx1c19pdHVfdF90MzVfc2l6ZSA+IDAp IHsKKyAgICAgICAgICAgIGVibWxfd3JpdGVyX29wZW5fbWFzdGVyKCZ3cml0ZXIsIE1BVFJPU0tB X0lEX0JMT0NLTU9SRSk7CisgICAgICAgICAgICBlYm1sX3dyaXRlcl9hZGRfdWludCgmd3JpdGVy LCBNQVRST1NLQV9JRF9CTE9DS0FERElELCBNQVRST1NLQV9CTE9DS19BRERfSURfRFlOQU1JQ19I RFIxMF9QTFVTKTsKKyAgICAgICAgICAgIGVibWxfd3JpdGVyX2FkZF9iaW4gKCZ3cml0ZXIsIE1B VFJPU0tBX0lEX0JMT0NLQURESVRJT05BTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGhkcjEwX3BsdXNfaXR1X3RfdDM1LCBoZHIxMF9wbHVzX2l0dV90X3QzNV9zaXplKTsKKyAg ICAgICAgICAgIGVibWxfd3JpdGVyX2Nsb3NlX21hc3Rlcigmd3JpdGVyKTsKKwl9CiAgICAgICAg IGVibWxfd3JpdGVyX2Nsb3NlX21hc3Rlcigmd3JpdGVyKTsKICAgICB9Ci0KICAgICBpZiAoIWZv cmNlX2Jsb2NrZ3JvdXAgJiYgd3JpdGVyLm5iX2VsZW1lbnRzID09IDIpIHsKICAgICAgICAgLyog Tm90aGluZyBleGNlcHQgdGhlIEJsb2NrR3JvdXAgKyBCbG9jay4gQ2FuIHVzZSBhIFNpbXBsZUJs b2NrLiAqLwogICAgICAgICB3cml0ZXIuZWxlbWVudHMrKzsgICAgLy8gU2tpcCB0aGUgQmxvY2tH cm91cC4KZGlmZiAtLWdpdCBhL3Rlc3RzL2ZhdGUvbWF0cm9za2EubWFrIGIvdGVzdHMvZmF0ZS9t YXRyb3NrYS5tYWsKaW5kZXggMzA3M2IwYTA2MS4uNDM4MDBjYjJkNyAxMDA2NDQKLS0tIGEvdGVz dHMvZmF0ZS9tYXRyb3NrYS5tYWsKKysrIGIvdGVzdHMvZmF0ZS9tYXRyb3NrYS5tYWsKQEAgLTEz NSw2ICsxMzUsMTIgQEAgRkFURV9NQVRST1NLQV9GRk1QRUdfRkZQUk9CRS0kKGNhbGwgQUxMWUVT LCBNQVRST1NLQV9ERU1VWEVSIE1BVFJPU0tBX01VWEVSIFwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArPSBmYXRlLW1hdHJvc2thLXNwaGVyaWNhbC1tb25vLXJlbXV4CiBmYXRlLW1h dHJvc2thLXNwaGVyaWNhbC1tb25vLXJlbXV4OiBDTUQgPSB0cmFuc2NvZGUgbWF0cm9za2EgJChU QVJHRVRfU0FNUExFUykvbWt2L3NwaGVyaWNhbC5ta3YgbWF0cm9za2EgIi1tYXAgMCAtbWFwIDAg LWMgY29weSAtZGlzcG9zaXRpb246MCAtZGVmYXVsdCtmb3JjZWQgLWRpc3Bvc2l0aW9uOjEgLWRl ZmF1bHQgLWRlZmF1bHRfbW9kZSBwYXNzdGhyb3VnaCAtY29sb3JfcHJpbWFyaWVzOjEgYnQ3MDkg LWNvbG9yX3RyYzoxIHNtcHRlMTcwbSAtY29sb3JzcGFjZToxIGJ0MjAyMGMgLWNvbG9yX3Jhbmdl OjEgcGMiICAiLW1hcCAwIC1jIGNvcHkgLXQgMCIgIiIgIi1zaG93X2VudHJpZXMgc3RyZWFtX3Np ZGVfZGF0YV9saXN0OnN0cmVhbV9kaXNwb3NpdGlvbj1kZWZhdWx0LGZvcmNlZDpzdHJlYW09Y29s b3JfcmFuZ2UsY29sb3Jfc3BhY2UsY29sb3JfcHJpbWFyaWVzLGNvbG9yX3RyYW5zZmVyIgogCisj IFRoZSBpbnB1dCBmaWxlIG9mIHRoZSBmb2xsb3dpbmcgdGVzdCBjb250YWlucyBIRFIxMCsgbWV0 YWRhdGEgYW5kIHNvIHRoaXMKKyMgdGVzdCB0ZXN0cyBjb3JyZWN0IGVuY29kaW5nIGFuZCBkZWNv ZGluZyBIRFIxMCsgZm9yIFZQOS9NS1YuCitGQVRFX01BVFJPU0tBX0ZGTVBFR19GRlBST0JFLSQo Y2FsbCBBTExZRVMsIE1BVFJPU0tBX0RFTVVYRVIgTUFUUk9TS0FfTVVYRVIpIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArPSBmYXRlLW1hdHJvc2thLWhkcjEwLXBsdXMtbWV0YWRh dGEKK2ZhdGUtbWF0cm9za2EtaGRyMTAtcGx1cy1tZXRhZGF0YTogQ01EID0gdHJhbnNjb2RlIG1h dHJvc2thICQoVEFSR0VUX1NBTVBMRVMpL21rdi9oZHIxMF9wbHVzX3ZwOV9zYW1wbGUubWt2IG1h dHJvc2thICItbWFwIDAgLW1hcCAwIC1jIGNvcHkgLXBpeGVsX2Zvcm1hdCB5dXY0MjBwMTBsZSIg IiIgIiIgIi1zaG93X2ZyYW1lcyIKKwogIyBUaGUgaW5wdXQgZmlsZSBvZiB0aGUgZm9sbG93aW5n IHRlc3QgY29udGFpbnMgQ29udGVudCBMaWdodCBMZXZlbCBhcyB3ZWxsIGFzCiAjIE1hc3Rlcmlu ZyBEaXNwbGF5IE1ldGFkYXRhIGFuZCBzbyB0aGlzIHRlc3QgdGVzdHMgY29ycmVjdCBtdXhpbmcg YW5kIGRlbXV4aW5nCiAjIG9mIHRoZXNlLiBJdCBmdXJ0aGVybW9yZSBhbHNvIHRlc3RzIHRoYXQg dGhpcyBkYXRhIGlzIGNvcnJlY3RseSBwcm9wYWdhdGVkCmRpZmYgLS1naXQgYS90ZXN0cy9yZWYv ZmF0ZS9tYXRyb3NrYS1oZHIxMC1wbHVzLW1ldGFkYXRhIGIvdGVzdHMvcmVmL2ZhdGUvbWF0cm9z a2EtaGRyMTAtcGx1cy1tZXRhZGF0YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi5hNDYxZmI5Njc0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcmVmL2ZhdGUvbWF0cm9z a2EtaGRyMTAtcGx1cy1tZXRhZGF0YQpAQCAtMCwwICsxLDE1MiBAQAorOGUxODRmYmI4ZWM4YmYy NmM1NGNlYjE1YzIxMTA4ZjQgKnRlc3RzL2RhdGEvZmF0ZS9tYXRyb3NrYS1oZHIxMC1wbHVzLW1l dGFkYXRhLm1hdHJvc2thCisyNzQ3NiB0ZXN0cy9kYXRhL2ZhdGUvbWF0cm9za2EtaGRyMTAtcGx1 cy1tZXRhZGF0YS5tYXRyb3NrYQorI3RiIDA6IDEvMjUKKyNtZWRpYV90eXBlIDA6IHZpZGVvCisj Y29kZWNfaWQgMDogcmF3dmlkZW8KKyNkaW1lbnNpb25zIDA6IDEyODB4NzIwCisjc2FyIDA6IDEv MQorMCwgICAgICAgICAgMCwgICAgICAgICAgMCwgICAgICAgIDEsICAyNzY0ODAwLCAweGYyNjE3 YmYyCitbRlJBTUVdCittZWRpYV90eXBlPXZpZGVvCitzdHJlYW1faW5kZXg9MAora2V5X2ZyYW1l PTEKK3B0cz0wCitwdHNfdGltZT0wLjAwMDAwMAorcGt0X2R0cz0wCitwa3RfZHRzX3RpbWU9MC4w MDAwMDAKK2Jlc3RfZWZmb3J0X3RpbWVzdGFtcD0wCitiZXN0X2VmZm9ydF90aW1lc3RhbXBfdGlt ZT0wLjAwMDAwMAorcGt0X2R1cmF0aW9uPTQwCitwa3RfZHVyYXRpb25fdGltZT0wLjA0MDAwMAor cGt0X3Bvcz01NTkKK3BrdF9zaXplPTEzMzUwCit3aWR0aD0xMjgwCitoZWlnaHQ9NzIwCitwaXhf Zm10PXl1djQyMHAxMGxlCitzYW1wbGVfYXNwZWN0X3JhdGlvPTE6MQorcGljdF90eXBlPUkKK2Nv ZGVkX3BpY3R1cmVfbnVtYmVyPTAKK2Rpc3BsYXlfcGljdHVyZV9udW1iZXI9MAoraW50ZXJsYWNl ZF9mcmFtZT0wCit0b3BfZmllbGRfZmlyc3Q9MAorcmVwZWF0X3BpY3Q9MAorY29sb3JfcmFuZ2U9 dHYKK2NvbG9yX3NwYWNlPXVua25vd24KK2NvbG9yX3ByaW1hcmllcz11bmtub3duCitjb2xvcl90 cmFuc2Zlcj11bmtub3duCitjaHJvbWFfbG9jYXRpb249dW5zcGVjaWZpZWQKK1tTSURFX0RBVEFd CitzaWRlX2RhdGFfdHlwZT1IRFIgRHluYW1pYyBNZXRhZGF0YSBTTVBURTIwOTQtNDAgKEhEUjEw KykKK2FwcGxpY2F0aW9uIHZlcnNpb249MQorbnVtX3dpbmRvd3M9MQordGFyZ2V0ZWRfc3lzdGVt X2Rpc3BsYXlfbWF4aW11bV9sdW1pbmFuY2U9NDAwLzEKK21heHNjbD0zMzQwLzEwMDAwMAorbWF4 c2NsPTI4NzAvMTAwMDAwCittYXhzY2w9MjcyMC8xMDAwMDAKK2F2ZXJhZ2VfbWF4cmdiPTUxMC8x MDAwMDAKK251bV9kaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRpbGVzPTkKK2Rpc3RyaWJ1dGlv bl9tYXhyZ2JfcGVyY2VudGFnZT0xCitkaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRpbGU9MzAv MTAwMDAwCitkaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRhZ2U9NQorZGlzdHJpYnV0aW9uX21h eHJnYl9wZXJjZW50aWxlPTI5NDAvMTAwMDAwCitkaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRh Z2U9MTAKK2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZT0yNTUvMTAwMDAwCitkaXN0cmli dXRpb25fbWF4cmdiX3BlcmNlbnRhZ2U9MjUKK2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGls ZT03MC8xMDAwMDAKK2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGFnZT01MAorZGlzdHJpYnV0 aW9uX21heHJnYl9wZXJjZW50aWxlPTEzNDAvMTAwMDAwCitkaXN0cmlidXRpb25fbWF4cmdiX3Bl cmNlbnRhZ2U9NzUKK2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZT0xNjAwLzEwMDAwMAor ZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50YWdlPTkwCitkaXN0cmlidXRpb25fbWF4cmdiX3Bl cmNlbnRpbGU9MTg1MC8xMDAwMDAKK2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGFnZT05NQor ZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlPTE5NTAvMTAwMDAwCitkaXN0cmlidXRpb25f bWF4cmdiX3BlcmNlbnRhZ2U9OTkKK2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZT0yOTQw LzEwMDAwMAorZnJhY3Rpb25fYnJpZ2h0X3BpeGVscz0xLzEwMDAKK2tuZWVfcG9pbnRfeD0wLzQw OTUKK2tuZWVfcG9pbnRfeT0wLzQwOTUKK251bV9iZXppZXJfY3VydmVfYW5jaG9ycz05CitiZXpp ZXJfY3VydmVfYW5jaG9ycz0xMDIvMTAyMworYmV6aWVyX2N1cnZlX2FuY2hvcnM9MjA1LzEwMjMK K2Jlemllcl9jdXJ2ZV9hbmNob3JzPTMwNy8xMDIzCitiZXppZXJfY3VydmVfYW5jaG9ycz00MTAv MTAyMworYmV6aWVyX2N1cnZlX2FuY2hvcnM9NTEyLzEwMjMKK2Jlemllcl9jdXJ2ZV9hbmNob3Jz PTYxNC8xMDIzCitiZXppZXJfY3VydmVfYW5jaG9ycz03MTcvMTAyMworYmV6aWVyX2N1cnZlX2Fu Y2hvcnM9ODE5LzEwMjMKK2Jlemllcl9jdXJ2ZV9hbmNob3JzPTkyMi8xMDIzCitbL1NJREVfREFU QV0KK1svRlJBTUVdCitbRlJBTUVdCittZWRpYV90eXBlPXZpZGVvCitzdHJlYW1faW5kZXg9MQor a2V5X2ZyYW1lPTEKK3B0cz0wCitwdHNfdGltZT0wLjAwMDAwMAorcGt0X2R0cz0wCitwa3RfZHRz X3RpbWU9MC4wMDAwMDAKK2Jlc3RfZWZmb3J0X3RpbWVzdGFtcD0wCitiZXN0X2VmZm9ydF90aW1l c3RhbXBfdGltZT0wLjAwMDAwMAorcGt0X2R1cmF0aW9uPTQwCitwa3RfZHVyYXRpb25fdGltZT0w LjA0MDAwMAorcGt0X3Bvcz0xNDAwOAorcGt0X3NpemU9MTMzNTAKK3dpZHRoPTEyODAKK2hlaWdo dD03MjAKK3BpeF9mbXQ9eXV2NDIwcDEwbGUKK3NhbXBsZV9hc3BlY3RfcmF0aW89MToxCitwaWN0 X3R5cGU9SQorY29kZWRfcGljdHVyZV9udW1iZXI9MAorZGlzcGxheV9waWN0dXJlX251bWJlcj0w CitpbnRlcmxhY2VkX2ZyYW1lPTAKK3RvcF9maWVsZF9maXJzdD0wCityZXBlYXRfcGljdD0wCitj b2xvcl9yYW5nZT10dgorY29sb3Jfc3BhY2U9dW5rbm93bgorY29sb3JfcHJpbWFyaWVzPXVua25v d24KK2NvbG9yX3RyYW5zZmVyPXVua25vd24KK2Nocm9tYV9sb2NhdGlvbj11bnNwZWNpZmllZAor W1NJREVfREFUQV0KK3NpZGVfZGF0YV90eXBlPUhEUiBEeW5hbWljIE1ldGFkYXRhIFNNUFRFMjA5 NC00MCAoSERSMTArKQorYXBwbGljYXRpb24gdmVyc2lvbj0xCitudW1fd2luZG93cz0xCit0YXJn ZXRlZF9zeXN0ZW1fZGlzcGxheV9tYXhpbXVtX2x1bWluYW5jZT00MDAvMQorbWF4c2NsPTMzNDAv MTAwMDAwCittYXhzY2w9Mjg3MC8xMDAwMDAKK21heHNjbD0yNzIwLzEwMDAwMAorYXZlcmFnZV9t YXhyZ2I9NTEwLzEwMDAwMAorbnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXM9OQor ZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50YWdlPTEKK2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVy Y2VudGlsZT0zMC8xMDAwMDAKK2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGFnZT01CitkaXN0 cmlidXRpb25fbWF4cmdiX3BlcmNlbnRpbGU9Mjk0MC8xMDAwMDAKK2Rpc3RyaWJ1dGlvbl9tYXhy Z2JfcGVyY2VudGFnZT0xMAorZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlPTI1NS8xMDAw MDAKK2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGFnZT0yNQorZGlzdHJpYnV0aW9uX21heHJn Yl9wZXJjZW50aWxlPTcwLzEwMDAwMAorZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50YWdlPTUw CitkaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRpbGU9MTM0MC8xMDAwMDAKK2Rpc3RyaWJ1dGlv bl9tYXhyZ2JfcGVyY2VudGFnZT03NQorZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlPTE2 MDAvMTAwMDAwCitkaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRhZ2U9OTAKK2Rpc3RyaWJ1dGlv bl9tYXhyZ2JfcGVyY2VudGlsZT0xODUwLzEwMDAwMAorZGlzdHJpYnV0aW9uX21heHJnYl9wZXJj ZW50YWdlPTk1CitkaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRpbGU9MTk1MC8xMDAwMDAKK2Rp c3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGFnZT05OQorZGlzdHJpYnV0aW9uX21heHJnYl9wZXJj ZW50aWxlPTI5NDAvMTAwMDAwCitmcmFjdGlvbl9icmlnaHRfcGl4ZWxzPTEvMTAwMAora25lZV9w b2ludF94PTAvNDA5NQora25lZV9wb2ludF95PTAvNDA5NQorbnVtX2Jlemllcl9jdXJ2ZV9hbmNo b3JzPTkKK2Jlemllcl9jdXJ2ZV9hbmNob3JzPTEwMi8xMDIzCitiZXppZXJfY3VydmVfYW5jaG9y cz0yMDUvMTAyMworYmV6aWVyX2N1cnZlX2FuY2hvcnM9MzA3LzEwMjMKK2Jlemllcl9jdXJ2ZV9h bmNob3JzPTQxMC8xMDIzCitiZXppZXJfY3VydmVfYW5jaG9ycz01MTIvMTAyMworYmV6aWVyX2N1 cnZlX2FuY2hvcnM9NjE0LzEwMjMKK2Jlemllcl9jdXJ2ZV9hbmNob3JzPTcxNy8xMDIzCitiZXpp ZXJfY3VydmVfYW5jaG9ycz04MTkvMTAyMworYmV6aWVyX2N1cnZlX2FuY2hvcnM9OTIyLzEwMjMK K1svU0lERV9EQVRBXQorWy9GUkFNRV0KLS0gCjIuMzUuMS4xMDIxLmczODExMDFiMDc1LWdvb2cK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1k ZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcu b3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQg bGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRo IHN1YmplY3QgInVuc3Vic2NyaWJlIi4K