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 5F34B45A91 for ; Tue, 14 Mar 2023 23:05:46 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CC20668BE4E; Wed, 15 Mar 2023 01:05:44 +0200 (EET) Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6BF9068BD6B for ; Wed, 15 Mar 2023 01:05:38 +0200 (EET) Received: by mail-qv1-f50.google.com with SMTP id bo10so13887473qvb.12 for ; Tue, 14 Mar 2023 16:05:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vimeo.com; s=google; t=1678835137; h=content-transfer-encoding:content-language:to:subject:from :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=NxmqgGcAa535aqTF9U3Sb8G5q7qdeylyBxMvHoRfnqs=; b=dRE2u1ye8mtJxueMASJJJ4NsWr4KuzDIpY5H9sJQjio2m1naeRTSoMtfy1jSpM6h8r 6uJyIKKyE6i5ffkGxu31Xepyw8MjkRR9UeeGYn7UPRG/R2VE46ylLRnVJWML+LKGc7HN 4Z6T3A4515RqSqM7WAhvQKdQAuE8iBwmb2Kjo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678835137; h=content-transfer-encoding:content-language:to:subject:from :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=NxmqgGcAa535aqTF9U3Sb8G5q7qdeylyBxMvHoRfnqs=; b=oRt5Fk5xaFojCcbtq1gRXydpARLagZR3gfTnhYAPeWWUruVPUgedW3Nm0XQ+Lsc4vT 6/q0Kmf+jBzvEcb4n1jUNxclwf6al4Nk1JB79rUcilUPMtju6SztgJUbWs8Pz4FAWRVe vC5PQUY0dVcemLJBprO+4NCjK/tOl2F0SDy5Jkypi+cAlIMNqqzTKPz253mb3EC1vGUj Wz/vPDDp4Oltl7JYWgO89rdcSYjViDYPjAF41Tz3354aGeJgordF6doRfKFCGP5NeTKR UANC+zcBLzxOojpw0aUlk4yixmo4av0MdgSidf3W+h1WqH/rygumhNntX+l9p7IK5kQa GuaA== X-Gm-Message-State: AO0yUKWfdryjsOFMLc5ajcUOXA1UyWhMQYGYyTLRM1BAt7qhRnTkOjsH IeBTiKNho0a2RIb30ExP2o8ZIcIygLzDdtoxuaFoiA== X-Google-Smtp-Source: AK7set9UZIBBRmHxGByJFEPrRVLke1KPMiQKOZr2pTrEYj5XTKvyUKlMPItnB1ABoI9/ONLX6OUYwg== X-Received: by 2002:a05:622a:18c:b0:3bf:a760:cb5 with SMTP id s12-20020a05622a018c00b003bfa7600cb5mr35433070qtw.4.1678835136751; Tue, 14 Mar 2023 16:05:36 -0700 (PDT) Received: from ?IPV6:2600:4041:6c:7000:1f01:20c:8ba9:815b? ([2600:4041:6c:7000:1f01:20c:8ba9:815b]) by smtp.gmail.com with ESMTPSA id x9-20020ac87a89000000b003a530a32f67sm2575643qtr.65.2023.03.14.16.05.36 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Mar 2023 16:05:36 -0700 (PDT) Message-ID: <4944f0c6-a902-6a2f-ba71-08bf9b716ae5@vimeo.com> Date: Tue, 14 Mar 2023 19:05:35 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 From: =?UTF-8?Q?Rapha=c3=abl_Zumer?= To: ffmpeg-devel@ffmpeg.org Content-Language: en-US, fr-FR Subject: [FFmpeg-devel] [PATCH v7 2/2] avutil: add HDR10+ dynamic metadata serialization function 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 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: Q28tYXV0aG9yZWQtYnk6IE1vaGFtbWFkIEl6YWRpIDxtb2guaXphZGlAZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBSYXBoYcOrbCBadW1lciA8cnp1bWVyQHRlYmFrby5uZXQ+Ci0tLQogZG9jL0FQ SWNoYW5nZXMgICAgICAgICAgICAgICAgICAgfCAgIDUgKysKIGxpYmF2dXRpbC9oZHJfZHluYW1p Y19tZXRhZGF0YS5jIHwgMTQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYmF2 dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5oIHwgIDEzICsrKwogbGliYXZ1dGlsL3ZlcnNpb24u aCAgICAgICAgICAgICAgfCAgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTY3IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kb2MvQVBJY2hhbmdlcyBiL2RvYy9BUElj aGFuZ2VzCmluZGV4IDE0NzM3MjIzY2IuLjNhNjFkNjE5MzEgMTAwNjQ0Ci0tLSBhL2RvYy9BUElj aGFuZ2VzCisrKyBiL2RvYy9BUEljaGFuZ2VzCkBAIC0yLDYgKzIsMTEgQEAgVGhlIGxhc3QgdmVy c2lvbiBpbmNyZWFzZXMgb2YgYWxsIGxpYnJhcmllcyB3ZXJlIG9uIDIwMjMtMDItMDkKIAogQVBJ IGNoYW5nZXMsIG1vc3QgcmVjZW50IGZpcnN0OgogCisyMDIzLTAzLTEzIC0geHh4eHh4eHh4eCAt IGxhdnUgNTguNC4xMDAgLSBoZHJfZHluYW1pY19tZXRhZGF0YS5oCisgIEFkZCBhdl9keW5hbWlj X2hkcl9wbHVzX2Zyb21fdDM1KCkgYW5kIGF2X2R5bmFtaWNfaGRyX3BsdXNfdG9fdDM1KCkKKyAg ZnVuY3Rpb25zIHRvIGNvbnZlcnQgYmV0d2VlbiByYXcgVC4zNSBwYXlsb2FkcyBjb250YWluaW5n IGR5bmFtaWMKKyAgSERSMTArIG1ldGFkYXRhIGFuZCB0aGVpciBwYXJzZWQgcmVwcmVzZW50YXRp b25zIGFzIEFWRHluYW1pY0hEUlBsdXMuCisKIDIwMjMtMDMtMDIgLSB4eHh4eHh4eHh4IC0gbGF2 YyA2MC42LjEwMCAtIGF2Y29kZWMuaAogICBBZGQgRkZfUFJPRklMRV9FQUMzX0REUF9BVE1PUywg RkZfUFJPRklMRV9UUlVFSERfQVRNT1MsCiAgIEZGX1BST0ZJTEVfRFRTX0hEX01BX1ggYW5kIEZG X1BST0ZJTEVfRFRTX0hEX01BX1hfSU1BWC4KZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9oZHJfZHlu YW1pY19tZXRhZGF0YS5jIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMKaW5kZXgg NWVkOTAzZjQ3NS4uYjI2ZWFmYzVmMiAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2hkcl9keW5hbWlj X21ldGFkYXRhLmMKKysrIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMKQEAgLTIw LDYgKzIwLDcgQEAKIAogI2luY2x1ZGUgImhkcl9keW5hbWljX21ldGFkYXRhLmgiCiAjaW5jbHVk ZSAibWVtLmgiCisjaW5jbHVkZSAibGliYXZjb2RlYy9kZWZzLmgiCiAjaW5jbHVkZSAibGliYXZj b2RlYy9nZXRfYml0cy5oIgogI2luY2x1ZGUgImxpYmF2Y29kZWMvcHV0X2JpdHMuaCIKIApAQCAt MjMwLDMgKzIzMSwxNTAgQEAgaW50IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUoQVZEeW5h bWljSERSUGx1cyAqcywgY29uc3QgdWludDhfdCAqZGF0YSwKIAogICAgIHJldHVybiAwOwogfQor CitpbnQgYXZfZHluYW1pY19oZHJfcGx1c190b190MzUoY29uc3QgQVZEeW5hbWljSERSUGx1cyAq cywgdWludDhfdCAqKmRhdGEsIHNpemVfdCAqc2l6ZSkKK3sKKyAgICB1aW50OF90ICpidWY7Cisg ICAgc2l6ZV90IHNpemVfYml0cywgc2l6ZV9ieXRlczsKKyAgICBQdXRCaXRDb250ZXh0IHBiYywg KnBiID0gJnBiYzsKKworICAgIGlmICghcyB8fCAhZGF0YSkKKyAgICAgICAgcmV0dXJuIEFWRVJS T1IoRUlOVkFMKTsKKworICAgIC8qKgorICAgICAqIEJ1ZmZlciBzaXplIHBlciBDVEEtODYxLUgg cC4yNTMtMjU0OgorICAgICAqIDQ4IGhlYWRlciBiaXRzIChleGNsdWRlZCBmcm9tIHRoZSBzZXJp YWxpemVkIHBheWxvYWQpCisgICAgICogOCBiaXRzIGZvciBhcHBsaWNhdGlvbl9tb2RlCisgICAg ICogMiBiaXRzIGZvciBudW1fd2luZG93cworICAgICAqIDE1MyBiaXRzIGZvciB3aW5kb3cgZ2Vv bWV0cnksIGZvciBlYWNoIHdpbmRvdyBhYm92ZSAxCisgICAgICogMjcgYml0cyBmb3IgdGFyZ2V0 ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4aW11bV9sdW1pbmFuY2UKKyAgICAgKiAxLTI1MTEgYml0cyBm b3IgdGFyZ2V0ZWQgc3lzdGVtIGRpc3BsYXkgcGVhayBsdW1pbmFuY2UgaW5mb3JtYXRpb24KKyAg ICAgKiA4Mi00NDIgYml0cyBwZXIgd2luZG93IGZvciBwaXhlbCBkaXN0cmlidXRpb24gaW5mb3Jt YXRpb24KKyAgICAgKiAxLTI1MTEgYml0cyBmb3IgbWFzdGVyaW5nIGRpc3BsYXkgcGVhayBsdW1p bmFuY2UgaW5mb3JtYXRpb24KKyAgICAgKiAxLTE3OSBiaXRzIHBlciB3aW5kb3cgZm9yIHRvbmVt YXBwaW5nIGluZm9ybWF0aW9uCisgICAgICogMS03IGJpdHMgcGVyIHdpbmRvdyBmb3IgY29sb3Ig c2F0dXJhdGlvbiBtYXBwaW5nIGluZm9ybWF0aW9uCisgICAgICogVG90YWw6IDEyMy03MjQ5IGJp dHMsIGV4Y2x1ZGluZyB0cmltbWVkIGhlYWRlciBiaXRzCisgICAgICovCisgICAgc2l6ZV9iaXRz ID0gODsKKworICAgIHNpemVfYml0cyArPSAyOworCisgICAgZm9yIChpbnQgdyA9IDE7IHcgPCBz LT5udW1fd2luZG93czsgdysrKQorICAgICAgICBzaXplX2JpdHMgKz0gMTUzOworCisgICAgc2l6 ZV9iaXRzICs9IDI3OworCisgICAgc2l6ZV9iaXRzICs9IDE7CisgICAgaWYgKHMtPnRhcmdldGVk X3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnKQorICAgICAgICBzaXpl X2JpdHMgKz0gMTAgKworICAgICAgICAgICAgICAgICAgICAgcy0+bnVtX3Jvd3NfdGFyZ2V0ZWRf c3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICoKKyAgICAgICAgICAgICAgICAg ICAgIHMtPm51bV9jb2xzX3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWlu YW5jZSAqIDQ7CisKKyAgICBmb3IgKGludCB3ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3Kysp CisgICAgICAgIHNpemVfYml0cyArPSA3MiArIHMtPnBhcmFtc1t3XS5udW1fZGlzdHJpYnV0aW9u X21heHJnYl9wZXJjZW50aWxlcyAqIDI0ICsgMTA7CisKKyAgICBzaXplX2JpdHMgKz0gMTsKKyAg ICBpZiAocy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcpCisg ICAgICAgIHNpemVfYml0cyArPSAxMCArCisgICAgICAgICAgICAgICAgICAgICBzLT5udW1fcm93 c19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UgKgorICAgICAgICAgICAg ICAgICAgICAgcy0+bnVtX2NvbHNfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5h bmNlICogNDsKKworICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykg eworICAgICAgICBzaXplX2JpdHMgKz0gMTsKKyAgICAgICAgaWYgKHMtPnBhcmFtc1t3XS50b25l X21hcHBpbmdfZmxhZykKKyAgICAgICAgICAgIHNpemVfYml0cyArPSAyOCArIHMtPnBhcmFtc1t3 XS5udW1fYmV6aWVyX2N1cnZlX2FuY2hvcnMgKiAxMDsKKworICAgICAgICBzaXplX2JpdHMgKz0g MTsKKyAgICAgICAgaWYgKHMtPnBhcmFtc1t3XS5jb2xvcl9zYXR1cmF0aW9uX21hcHBpbmdfZmxh ZykKKyAgICAgICAgICAgIHNpemVfYml0cyArPSA2OworICAgIH0KKworICAgIHNpemVfYnl0ZXMg PSAoc2l6ZV9iaXRzICsgNykgLyA4OworCisgICAgYnVmID0gYXZfbWFsbG9jKHNpemVfYnl0ZXMp OworICAgIGlmICghYnVmKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAg aW5pdF9wdXRfYml0cyhwYiwgYnVmLCBzaXplX2J5dGVzKTsKKworICAgIC8vIGFwcGxpY2F0aW9u X21vZGUgaXMgc2V0IHRvIEFwcGxpY2F0aW9uIFZlcnNpb24gMQorICAgIHB1dF9iaXRzKHBiLCA4 LCAxKTsKKworICAgIC8vIFBheWxvYWQgYXMgcGVyIENUQS04NjEtSCBwLjI1My0yNTQKKyAgICBw dXRfYml0cyhwYiwgMiwgcy0+bnVtX3dpbmRvd3MpOworCisgICAgZm9yIChpbnQgdyA9IDE7IHcg PCBzLT5udW1fd2luZG93czsgdysrKSB7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFy YW1zW3ddLndpbmRvd191cHBlcl9sZWZ0X2Nvcm5lcl94Lm51bSAvIHMtPnBhcmFtc1t3XS53aW5k b3dfdXBwZXJfbGVmdF9jb3JuZXJfeC5kZW4pOworICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMt PnBhcmFtc1t3XS53aW5kb3dfdXBwZXJfbGVmdF9jb3JuZXJfeS5udW0gLyBzLT5wYXJhbXNbd10u d2luZG93X3VwcGVyX2xlZnRfY29ybmVyX3kuZGVuKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2 LCBzLT5wYXJhbXNbd10ud2luZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl94Lm51bSAvIHMtPnBhcmFt c1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3guZGVuKTsKKyAgICAgICAgcHV0X2JpdHMo cGIsIDE2LCBzLT5wYXJhbXNbd10ud2luZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl95Lm51bSAvIHMt PnBhcmFtc1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3kuZGVuKTsKKyAgICAgICAgcHV0 X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uY2VudGVyX29mX2VsbGlwc2VfeCk7CisgICAgICAg IHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLmNlbnRlcl9vZl9lbGxpcHNlX3kpOworICAg ICAgICBwdXRfYml0cyhwYiwgOCwgcy0+cGFyYW1zW3ddLnJvdGF0aW9uX2FuZ2xlKTsKKyAgICAg ICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uc2VtaW1ham9yX2F4aXNfaW50ZXJuYWxf ZWxsaXBzZSk7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLnNlbWltYWpv cl9heGlzX2V4dGVybmFsX2VsbGlwc2UpOworICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBh cmFtc1t3XS5zZW1pbWlub3JfYXhpc19leHRlcm5hbF9lbGxpcHNlKTsKKyAgICAgICAgcHV0X2Jp dHMocGIsIDEsIHMtPnBhcmFtc1t3XS5vdmVybGFwX3Byb2Nlc3Nfb3B0aW9uKTsKKyAgICB9CisK KyAgICBwdXRfYml0cyhwYiwgMjcsIHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X21heGltdW1f bHVtaW5hbmNlLm51bSAqIGx1bWluYW5jZV9kZW4gLworICAgICAgICBzLT50YXJnZXRlZF9zeXN0 ZW1fZGlzcGxheV9tYXhpbXVtX2x1bWluYW5jZS5kZW4pOworICAgIHB1dF9iaXRzKHBiLCAxLCBz LT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZyk7Cisg ICAgaWYgKHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9m bGFnKSB7CisgICAgICAgIHB1dF9iaXRzKHBiLCA1LCBzLT5udW1fcm93c190YXJnZXRlZF9zeXN0 ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UpOworICAgICAgICBwdXRfYml0cyhwYiwg NSwgcy0+bnVtX2NvbHNfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5h bmNlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLT5udW1fcm93c190YXJnZXRlZF9z eXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2U7IGkrKykgeworICAgICAgICAgICAg Zm9yIChpbnQgaiA9IDA7IGogPCBzLT5udW1fY29sc190YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9h Y3R1YWxfcGVha19sdW1pbmFuY2U7IGorKykKKyAgICAgICAgICAgICAgICBwdXRfYml0cyhwYiwg NCwgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pd Lm51bSAqIHBlYWtfbHVtaW5hbmNlX2RlbiAvCisgICAgICAgICAgICAgICAgICAgIHMtPnRhcmdl dGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZVtpXVtqXS5kZW4pOworICAg ICAgICB9CisgICAgfQorCisgICAgZm9yIChpbnQgdyA9IDA7IHcgPCBzLT5udW1fd2luZG93czsg dysrKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSsrKQorICAgICAgICAgICAg cHV0X2JpdHMocGIsIDE3LCBzLT5wYXJhbXNbd10ubWF4c2NsW2ldLm51bSAqIHJnYl9kZW4gLyBz LT5wYXJhbXNbd10ubWF4c2NsW2ldLmRlbik7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNywgcy0+ cGFyYW1zW3ddLmF2ZXJhZ2VfbWF4cmdiLm51bSAqIHJnYl9kZW4gLyBzLT5wYXJhbXNbd10uYXZl cmFnZV9tYXhyZ2IuZGVuKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDQsIHMtPnBhcmFtc1t3XS5u dW1fZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlcyk7CisgICAgICAgIGZvciAoaW50IGkg PSAwOyBpIDwgcy0+cGFyYW1zW3ddLm51bV9kaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRpbGVz OyBpKyspIHsKKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCA3LCBzLT5wYXJhbXNbd10uZGlzdHJp YnV0aW9uX21heHJnYltpXS5wZXJjZW50YWdlKTsKKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAx Nywgcy0+cGFyYW1zW3ddLmRpc3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGlsZS5udW0gKiBy Z2JfZGVuIC8KKyAgICAgICAgICAgICAgICBzLT5wYXJhbXNbd10uZGlzdHJpYnV0aW9uX21heHJn YltpXS5wZXJjZW50aWxlLmRlbik7CisgICAgICAgIH0KKyAgICAgICAgcHV0X2JpdHMocGIsIDEw LCBzLT5wYXJhbXNbd10uZnJhY3Rpb25fYnJpZ2h0X3BpeGVscy5udW0gKiBmcmFjdGlvbl9waXhl bF9kZW4gLworICAgICAgICAgICAgcy0+cGFyYW1zW3ddLmZyYWN0aW9uX2JyaWdodF9waXhlbHMu ZGVuKTsKKyAgICB9CisKKyAgICBwdXRfYml0cyhwYiwgMSwgcy0+bWFzdGVyaW5nX2Rpc3BsYXlf YWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcpOworICAgIGlmIChzLT5tYXN0ZXJpbmdfZGlzcGxh eV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZykgeworICAgICAgICBwdXRfYml0cyhwYiwgNSwg cy0+bnVtX3Jvd3NfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlKTsKKyAg ICAgICAgcHV0X2JpdHMocGIsIDUsIHMtPm51bV9jb2xzX21hc3RlcmluZ19kaXNwbGF5X2FjdHVh bF9wZWFrX2x1bWluYW5jZSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy0+bnVtX3Jv d3NfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlOyBpKyspIHsKKyAgICAg ICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcy0+bnVtX2NvbHNfbWFzdGVyaW5nX2Rpc3BsYXlf YWN0dWFsX3BlYWtfbHVtaW5hbmNlOyBqKyspCisgICAgICAgICAgICAgICAgcHV0X2JpdHMocGIs IDQsIHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZVtpXVtqXS5udW0g KiBwZWFrX2x1bWluYW5jZV9kZW4gLworICAgICAgICAgICAgICAgICAgICBzLT5tYXN0ZXJpbmdf ZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VbaV1bal0uZGVuKTsKKyAgICAgICAgfQorICAg IH0KKworICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAg ICAgICBwdXRfYml0cyhwYiwgMSwgcy0+cGFyYW1zW3ddLnRvbmVfbWFwcGluZ19mbGFnKTsKKyAg ICAgICAgaWYgKHMtPnBhcmFtc1t3XS50b25lX21hcHBpbmdfZmxhZykgeworICAgICAgICAgICAg cHV0X2JpdHMocGIsIDEyLCBzLT5wYXJhbXNbd10ua25lZV9wb2ludF94Lm51bSAqIGtuZWVfcG9p bnRfZGVuIC8gcy0+cGFyYW1zW3ddLmtuZWVfcG9pbnRfeC5kZW4pOworICAgICAgICAgICAgcHV0 X2JpdHMocGIsIDEyLCBzLT5wYXJhbXNbd10ua25lZV9wb2ludF95Lm51bSAqIGtuZWVfcG9pbnRf ZGVuIC8gcy0+cGFyYW1zW3ddLmtuZWVfcG9pbnRfeS5kZW4pOworICAgICAgICAgICAgcHV0X2Jp dHMocGIsIDQsIHMtPnBhcmFtc1t3XS5udW1fYmV6aWVyX2N1cnZlX2FuY2hvcnMpOworICAgICAg ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLT5wYXJhbXNbd10ubnVtX2Jlemllcl9jdXJ2ZV9h bmNob3JzOyBpKyspCisgICAgICAgICAgICAgICAgcHV0X2JpdHMocGIsIDEwLCBzLT5wYXJhbXNb d10uYmV6aWVyX2N1cnZlX2FuY2hvcnNbaV0ubnVtICogYmV6aWVyX2FuY2hvcl9kZW4gLworICAg ICAgICAgICAgICAgICAgICBzLT5wYXJhbXNbd10uYmV6aWVyX2N1cnZlX2FuY2hvcnNbaV0uZGVu KTsKKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5wYXJhbXNbd10uY29sb3Jfc2F0dXJh dGlvbl9tYXBwaW5nX2ZsYWcpOworICAgICAgICAgICAgaWYgKHMtPnBhcmFtc1t3XS5jb2xvcl9z YXR1cmF0aW9uX21hcHBpbmdfZmxhZykKKyAgICAgICAgICAgICAgICBwdXRfYml0cyhwYiwgNiwg cy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRpb25fd2VpZ2h0Lm51bSAqIHNhdHVyYXRpb25fd2Vp Z2h0X2RlbiAvCisgICAgICAgICAgICAgICAgICAgIHMtPnBhcmFtc1t3XS5jb2xvcl9zYXR1cmF0 aW9uX3dlaWdodC5kZW4pOworICAgICAgICB9CisgICAgfQorCisgICAgZmx1c2hfcHV0X2JpdHMo cGIpOworCisgICAgKmRhdGEgPSBidWY7CisgICAgaWYgKHNpemUpCisgICAgICAgICpzaXplID0g c2l6ZV9ieXRlczsKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9oZHJf ZHluYW1pY19tZXRhZGF0YS5oIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmgKaW5k ZXggZmFhNGY0NmIwYi4uZWE2ZTYyOTU3NyAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2hkcl9keW5h bWljX21ldGFkYXRhLmgKKysrIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmgKQEAg LTIxLDYgKzIxLDcgQEAKICNpZm5kZWYgQVZVVElMX0hEUl9EWU5BTUlDX01FVEFEQVRBX0gKICNk ZWZpbmUgQVZVVElMX0hEUl9EWU5BTUlDX01FVEFEQVRBX0gKIAorI2luY2x1ZGUgImJ1ZmZlci5o IgogI2luY2x1ZGUgImZyYW1lLmgiCiAjaW5jbHVkZSAicmF0aW9uYWwuaCIKIApAQCAtMzUzLDQg KzM1NCwxNiBAQCBBVkR5bmFtaWNIRFJQbHVzICphdl9keW5hbWljX2hkcl9wbHVzX2NyZWF0ZV9z aWRlX2RhdGEoQVZGcmFtZSAqZnJhbWUpOwogaW50IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90 MzUoQVZEeW5hbWljSERSUGx1cyAqcywgY29uc3QgdWludDhfdCAqZGF0YSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKTsKIAorLyoqCisgKiBTZXJpYWxpemUg ZHluYW1pYyBIRFIxMCsgbWV0YWRhdGEgdG8gYSB1c2VyIGRhdGEgcmVnaXN0ZXJlZCBJVFUtVCBU LjM1IGJ1ZmZlciwKKyAqIGV4Y2x1ZGluZyB0aGUgZmlyc3QgNDggYnl0ZXMgb2YgdGhlIGhlYWRl ciwgYW5kIGJlZ2lubmluZyB3aXRoIHRoZSBhcHBsaWNhdGlvbiBtb2RlLgorICogQHBhcmFtIHMg QSBwb2ludGVyIGNvbnRhaW5pbmcgdGhlIGRlY29kZWQgQVZEeW5hbWljSERSUGx1cyBzdHJ1Y3R1 cmUuCisgKiBAcGFyYW0gZGF0YSBBIHBvaW50ZXIgdG8gYSBieXRlIGJ1ZmZlciB0byBiZSBhbGxv Y2F0ZWQgYW5kIGZpbGxlZAorICogICAgICAgICAgICAgd2l0aCB0aGUgc2VyaWFsaXplZCBtZXRh ZGF0YS4KKyAqIEBwYXJhbSBzaXplIEEgcG9pbnRlciB0byBhIHNpemUgdG8gYmUgc2V0IHRvIHRo ZSByZXR1cm5lZCBidWZmZXIncyBzaXplIChvcHRpb25hbCkuCisgKgorICogQHJldHVybiAwIGlm IHN1Y2NlZWQuIE90aGVyd2lzZSwgcmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQVZFUlJPUi4KKyAq LworaW50IGF2X2R5bmFtaWNfaGRyX3BsdXNfdG9fdDM1KGNvbnN0IEFWRHluYW1pY0hEUlBsdXMg KnMsIHVpbnQ4X3QgKipkYXRhLCBzaXplX3QgKnNpemUpOworCiAjZW5kaWYgLyogQVZVVElMX0hE Ul9EWU5BTUlDX01FVEFEQVRBX0ggKi8KZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC92ZXJzaW9uLmgg Yi9saWJhdnV0aWwvdmVyc2lvbi5oCmluZGV4IDkwMGI3OTg5NzEuLjc2MzU2NzI5ODUgMTAwNjQ0 Ci0tLSBhL2xpYmF2dXRpbC92ZXJzaW9uLmgKKysrIGIvbGliYXZ1dGlsL3ZlcnNpb24uaApAQCAt NzksNyArNzksNyBAQAogICovCiAKICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUFKT1IgIDU4 Ci0jZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01JTk9SICAgMworI2RlZmluZSBMSUJBVlVUSUxf VkVSU0lPTl9NSU5PUiAgIDQKICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlDUk8gMTAwCiAK ICNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fSU5UICAgQVZfVkVSU0lPTl9JTlQoTElCQVZVVElM X1ZFUlNJT05fTUFKT1IsIFwKLS0gCjIuMzkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2 ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWct ZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWct ZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=