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 CAA80454DF for ; Thu, 2 Mar 2023 18:34:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5CB3A68B263; Thu, 2 Mar 2023 20:34:04 +0200 (EET) Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BA22D68AFAC for ; Thu, 2 Mar 2023 20:33:57 +0200 (EET) Received: by mail-qv1-f42.google.com with SMTP id jo29so186522qvb.0 for ; Thu, 02 Mar 2023 10:33:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1677782036; h=content-transfer-encoding:in-reply-to:content-language:references :to:subject:user-agent:mime-version:date:message-id:from:from:to:cc :subject:date:message-id:reply-to; bh=MX4iOTmG5O6DMKqI3/YbI+2xIHWzTCoIJsW9V35PxLE=; b=UHmJYo75TnHv4pkezW3Q0VAI7BVRkmbo2L56W9hcbzm0PUe1gmThEOdhlvuGkBFchp Cz0rGS3oJnx7RYjwAAY+7vG1pIpRoL1i4doP1ThNGx84qwq+S/g+MtiFuX4kHkkVhdQY IXjxNiymoULAGoY/W53d4MVF93oBVv8/Ev0OH11vsmTCR5NA69IGtSW0gqGc0yHkkkbU 3TINeYiHCMZYE4WP456GfYjEyBMQqWhW30MMMwOxMJO0UkaoJfmrGsJJi7QvjLlUs1Cc Cp2uGIfn+zwuLMaWm/soFIiZQi89q1icjS06PhdN7PZbUL2rKDOX3sqXZk5Vm8ZGeJRa sryA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677782036; h=content-transfer-encoding:in-reply-to:content-language:references :to:subject:user-agent:mime-version:date:message-id:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MX4iOTmG5O6DMKqI3/YbI+2xIHWzTCoIJsW9V35PxLE=; b=afC5+FCrosio/WLI+UIMHnwjQ78IFK3gw//kn0wcndU1Y4izmunDVRnJ/GfLoNlfGA UeFccHwKpBAt35C+A7hoqz4Gcqw1iJlY7y50GhxHBtglY4PH9nFu9yG8mUpEdC10YHrR ZvOAeRyk+FsPMTNB+gz6Py7bnqpPDSFoYvoRCdmSZi3fCn1LkhotxrFaPPS4H6FLwg1u ZtA1YneCCyYXff4zoqlPZWnx6viVNQHCcawSmoZOG1OfTyZapb27eIAXRJQjs+vs9BGA 1XaxM1aV4vbZMoIiN0CvJCfUfd1OCWW0lGW75hPIEVpomt9eiW3RLj1YQYl5+guEmFIG uyzQ== X-Gm-Message-State: AO0yUKX0zw36Rd6o2Td5OgQlPOW/CeomgF9xFM/vrwDC2jUiZu2Kta0D Gs15qQ12zQCBi7dJGpua/CZw3xn5IE0= X-Google-Smtp-Source: AK7set8jTZ2ICodYKvNJRMVvCytjBVz1XGOIEiVosB/r3np5MXtoymaUrB4/do1A0HLxWNZQQA9Odg== X-Received: by 2002:a05:6214:cad:b0:56e:957f:dd5f with SMTP id s13-20020a0562140cad00b0056e957fdd5fmr22026194qvs.50.1677782035927; Thu, 02 Mar 2023 10:33:55 -0800 (PST) Received: from [10.66.220.18] ([89.36.78.251]) by smtp.gmail.com with ESMTPSA id p23-20020a05620a057700b0071f0d0aaef7sm130917qkp.80.2023.03.02.10.33.55 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 02 Mar 2023 10:33:55 -0800 (PST) From: quietvoid X-Google-Original-From: quietvoid Message-ID: <81927ee2-9dab-62c0-f220-015a674fdeb4@gmail.com> Date: Thu, 2 Mar 2023 13:33:54 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 To: ffmpeg-devel@ffmpeg.org References: <725ad573-5e22-84a3-b12f-e68baa2b3980@vimeo.com> Content-Language: en-US In-Reply-To: <725ad573-5e22-84a3-b12f-e68baa2b3980@vimeo.com> Subject: Re: [FFmpeg-devel] [PATCH 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gMjcvMDIvMjAyMyAxMi4zNCwgUmFwaGHDq2wgWnVtZXIgd3JvdGU6Cgo+IFJlc2VudCBkdWUg dG8gbXkgbWFpbCBjbGllbnQgaW5jb3JyZWN0bHkgcmUtd3JhcHBpbmcgbGluZXMgaW4gdGhlIHZl cnNpb24gSSBzZW50IGVhcmxpZXIuCj4gU2VlIHRoZSBwcmV2aW91cyBwYXRjaCBmb3IgY29udGV4 dC4KPgo+IFNpZ25lZC1vZmYtYnk6IFJhcGhhw6tsIFp1bWVyPHJ6dW1lckB0ZWJha28ubmV0Pgo+ IC0tLQo+ICAgbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMgfCAxNDcgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICAgbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRh LmggfCAgMTAgKysrCj4gICBsaWJhdnV0aWwvdmVyc2lvbi5oICAgICAgICAgICAgICB8ICAgMiAr LQo+ICAgMyBmaWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ Cj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5jIGIvbGliYXZ1 dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMKPiBpbmRleCA5OGYzOTliMDMyLi43MmQzMTBlNjMz IDEwMDY0NAo+IC0tLSBhL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5jCj4gKysrIGIv bGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMKPiBAQCAtMjI1LDMgKzIyNSwxNTAgQEAg aW50IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUoQVZEeW5hbWljSERSUGx1cyAqcywgY29u c3QgdWludDhfdCAqZGF0YSwKPiAgIAo+ICAgICAgIHJldHVybiAwOwo+ICAgfQo+ICsKPiArQVZC dWZmZXJSZWYgKmF2X2R5bmFtaWNfaGRyX3BsdXNfdG9fdDM1KEFWRHluYW1pY0hEUlBsdXMgKnMp Cj4gK3sKPiArICAgIEFWQnVmZmVyUmVmICpidWY7Cj4gKyAgICBzaXplX3Qgc2l6ZV9iaXRzLCBz aXplX2J5dGVzOwo+ICsgICAgUHV0Qml0Q29udGV4dCBwYmMsICpwYiA9ICZwYmM7Cj4gKwo+ICsg ICAgaWYgKCFzKQo+ICsgICAgICAgIHJldHVybiBOVUxMOwo+ICsKPiArICAgIC8vIEJ1ZmZlciBz aXplIHBlciBDVEEtODYxLUggcC4yNTMtMjU0Ogo+ICsgICAgc2l6ZV9iaXRzID0KPiArICAgIC8v IDU2IGJpdHMgZm9yIHRoZSBoZWFkZXIKPiArICAgIDU4ICsKPiArICAgIC8vIDIgYml0cyBmb3Ig bnVtX3dpbmRvd3MKPiArICAgIDIgKwo+ICsgICAgLy8gOTM3IGJpdHMgZm9yIHdpbmRvdyBnZW9t ZXRyeSBmb3IgZWFjaCB3aW5kb3cgYWJvdmUgMQo+ICsgICAgRkZNQVgoKHMtPm51bV93aW5kb3dz IC0gMSksIDApICogOTM3ICsKPiArICAgIC8vIDI3IGJpdHMgZm9yIHRhcmdldGVkX3N5c3RlbV9k aXNwbGF5X21heGltdW1fbHVtaW5hbmNlCj4gKyAgICAyNyArCj4gKyAgICAvLyAxLTM4NTUgYml0 cyBmb3IgdGFyZ2V0ZWQgc3lzdGVtIGRpc3BsYXkgcGVhayBsdW1pbmFuY2UgaW5mb3JtYXRpb24K PiArICAgIDEgKyAocy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5h bmNlX2ZsYWcgPyAxMCArCj4gKyAgICAgICAgcy0+bnVtX3Jvd3NfdGFyZ2V0ZWRfc3lzdGVtX2Rp c3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICoKPiArICAgICAgICBzLT5udW1fY29sc190YXJn ZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UgKiA0IDogMCkgKwo+ICsg ICAgLy8gMC00NDIgYml0cyBmb3IgaW50cmEtd2luZG93IHBpeGVsIGRpc3RyaWJ1dGlvbiBpbmZv cm1hdGlvbgo+ICsgICAgcy0+bnVtX3dpbmRvd3MgKiA4MjsKPiArICAgIGZvciAoaW50IHcgPSAw OyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgewo+ICsgICAgICAgIHNpemVfYml0cyArPSBzLT5w YXJhbXNbd10ubnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXMgKiAyNDsKPiArICAg IH0KPiArICAgIC8vIDEtMzg1NSBiaXRzIGZvciBtYXN0ZXJpbmcgZGlzcGxheSBwZWFrIGx1bWlu YW5jZSBpbmZvcm1hdGlvbgo+ICsgICAgc2l6ZV9iaXRzICs9IDEgKyAocy0+bWFzdGVyaW5nX2Rp c3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcgPyAxMCArCj4gKyAgICAgICAgcy0+bnVt X3Jvd3NfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICoKPiArICAgICAg ICBzLT5udW1fY29sc19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UgKiA0 IDogMCkgKwo+ICsgICAgLy8gMC01MzcgYml0cyBmb3IgcGVyLXdpbmRvdyB0b25lbWFwcGluZyBp bmZvcm1hdGlvbgo+ICsgICAgcy0+bnVtX3dpbmRvd3MgKiAxOwo+ICsgICAgZm9yIChpbnQgdyA9 IDA7IHcgPCBzLT5udW1fd2luZG93czsgdysrKSB7Cj4gKyAgICAgICAgaWYgKHMtPnBhcmFtc1t3 XS50b25lX21hcHBpbmdfZmxhZykgewo+ICsgICAgICAgICAgICBzaXplX2JpdHMgKz0gMjggKyBz LT5wYXJhbXNbd10ubnVtX2Jlemllcl9jdXJ2ZV9hbmNob3JzICogMTA7Cj4gKyAgICAgICAgfQo+ ICsgICAgfQo+ICsgICAgLy8gMC0yMSBiaXRzIGZvciBwZXItd2luZG93IGNvbG9yIHNhdHVyYXRp b24gbWFwcGluZyBpbmZvcm1hdGlvbgo+ICsgICAgc2l6ZV9iaXRzICs9IHMtPm51bV93aW5kb3dz ICogMTsKPiArICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgewo+ ICsgICAgICAgIGlmIChzLT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlvbl9tYXBwaW5nX2ZsYWcp IHsKPiArICAgICAgICAgICAgc2l6ZV9iaXRzICs9IDY7Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ ICsKPiArICAgIHNpemVfYnl0ZXMgPSAoc2l6ZV9iaXRzICsgNykgLyA4Owo+ICsKPiArICAgIGJ1 ZiA9IGF2X2J1ZmZlcl9hbGxvYyhzaXplX2J5dGVzKTsKPiArICAgIGlmICghYnVmKSB7Cj4gKyAg ICAgICAgcmV0dXJuIE5VTEw7Cj4gKyAgICB9Cj4gKwo+ICsgICAgaW5pdF9wdXRfYml0cyhwYiwg YnVmLT5kYXRhLCBzaXplX2J5dGVzKTsKPiArCj4gKyAgICAvLyBpdHVfdF90MzVfY291bnRyeV9j b2RlIHNoYWxsIGJlIDB4QjUgKFVTQSkKPiArICAgIHB1dF9iaXRzKHBiLCA4LCAweEI1KTsKClRo aXMgcGF0Y2ggc2VyaWVzIG1lbnRpb25zIHRoYXQgaXQgd291bGQgYmUgdXNlZCBmb3IgQVYxLCBo b3dldmVyIHRoZSBBVjEKc3BlY2lmaWNhdGlvbiBpcyBjbGVhciB0aGF0IHRoZSBwYXlsb2FkIGRv ZXMgbm90IGNvbnRhaW4gdGhlIGNvdW50cnkgY29kZS4KaHR0cHM6Ly9hb21lZGlhY29kZWMuZ2l0 aHViLmlvL2F2MS1oZHIxMHBsdXMvI2hkcjEwcGx1cy1tZXRhZGF0YSwgRmlndXJlIDEuCgpTbyBm YXIgYWxsIHRoZSBBVjEgSERSMTArIGNvbmZvcm1hbmNlIHNhbXBsZXMgYWxzbyByZXNwZWN0IHRo aXMuClRoZXJlIHdvdWxkIHByb2JhYmx5IGJlIGEgbmVlZCB0byBzcGVjaWZ5IHdoaWNoIGJlaGF2 aW91ciBpcyB3YW50ZWQuClRoZSBTRUkgZm9yIEhFVkMgZG9lcyBrZWVwIHRoZSBjb3VudHJ5IGNv ZGUgaW4gdGhlIHBheWxvYWQsIGJ1dCBub3QgQVYxLgoKPiArICAgIC8vIGl0dV90X3QzNV90ZXJt aW5hbF9wcm92aWRlcl9jb2RlIHNoYWxsIGJlIDB4MDAzQwo+ICsgICAgcHV0X2JpdHMocGIsIDE2 LCAweDAwM0MpOwo+ICsgICAgLy8gaXR1X3RfdDM1X3Rlcm1pbmFsX3Byb3ZpZGVyX29yaWVudGVk X2NvZGUgaXMgc2V0IHRvIFNUIDIwOTQtNDAKPiArICAgIHB1dF9iaXRzKHBiLCAxNiwgMHgwMDAx KTsKPiArICAgIC8vIGFwcGxpY2F0aW9uX2lkZW50aWZpZXIgc2hhbGwgYmUgc2V0IHRvIDQKPiAr ICAgIHB1dF9iaXRzKHBiLCA4LCA0KTsKPiArICAgIC8vIGFwcGxpY2F0aW9uX21vZGUgaXMgc2V0 IHRvIEFwcGxpY2F0aW9uIFZlcnNpb24gMQo+ICsgICAgcHV0X2JpdHMocGIsIDgsIDEpOwo+ICsK PiArICAgIC8vIFBheWxvYWQgYXMgcGVyIENUQS04NjEtSCBwLjI1My0yNTQKPiArICAgIHB1dF9i aXRzKHBiLCAyLCBzLT5udW1fd2luZG93cyk7Cj4gKwo+ICsgICAgZm9yIChpbnQgdyA9IDE7IHcg PCBzLT5udW1fd2luZG93czsgdysrKSB7Cj4gKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5w YXJhbXNbd10ud2luZG93X3VwcGVyX2xlZnRfY29ybmVyX3gubnVtIC8gcy0+cGFyYW1zW3ddLndp bmRvd191cHBlcl9sZWZ0X2Nvcm5lcl94LmRlbik7Cj4gKyAgICAgICAgcHV0X2JpdHMocGIsIDE2 LCBzLT5wYXJhbXNbd10ud2luZG93X3VwcGVyX2xlZnRfY29ybmVyX3kubnVtIC8gcy0+cGFyYW1z W3ddLndpbmRvd191cHBlcl9sZWZ0X2Nvcm5lcl95LmRlbik7Cj4gKyAgICAgICAgcHV0X2JpdHMo cGIsIDE2LCBzLT5wYXJhbXNbd10ud2luZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl94Lm51bSAvIHMt PnBhcmFtc1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3guZGVuKTsKPiArICAgICAgICBw dXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3ku bnVtIC8gcy0+cGFyYW1zW3ddLndpbmRvd19sb3dlcl9yaWdodF9jb3JuZXJfeS5kZW4pOwo+ICsg ICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLmNlbnRlcl9vZl9lbGxpcHNlX3gp Owo+ICsgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLmNlbnRlcl9vZl9lbGxp cHNlX3kpOwo+ICsgICAgICAgIHB1dF9iaXRzKHBiLCA4LCBzLT5wYXJhbXNbd10ucm90YXRpb25f YW5nbGUpOwo+ICsgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLnNlbWltYWpv cl9heGlzX2ludGVybmFsX2VsbGlwc2UpOwo+ICsgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+ cGFyYW1zW3ddLnNlbWltYWpvcl9heGlzX2V4dGVybmFsX2VsbGlwc2UpOwo+ICsgICAgICAgIHB1 dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLnNlbWltaW5vcl9heGlzX2V4dGVybmFsX2VsbGlw c2UpOwo+ICsgICAgICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5wYXJhbXNbd10ub3ZlcmxhcF9wcm9j ZXNzX29wdGlvbik7Cj4gKyAgICB9Cj4gKwo+ICsgICAgcHV0X2JpdHMocGIsIDI3LCBzLT50YXJn ZXRlZF9zeXN0ZW1fZGlzcGxheV9tYXhpbXVtX2x1bWluYW5jZS5udW0gKiBsdW1pbmFuY2VfZGVu IC8KPiArICAgICAgICBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9tYXhpbXVtX2x1bWluYW5j ZS5kZW4pOwo+ICsgICAgcHV0X2JpdHMocGIsIDEsIHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5 X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnKTsKPiArICAgIGlmIChzLT50YXJnZXRlZF9zeXN0 ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZykgewo+ICsgICAgICAgIHB1dF9i aXRzKHBiLCA1LCBzLT5udW1fcm93c190YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVh a19sdW1pbmFuY2UpOwo+ICsgICAgICAgIHB1dF9iaXRzKHBiLCA1LCBzLT5udW1fY29sc190YXJn ZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UpOwo+ICsgICAgICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgcy0+bnVtX3Jvd3NfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0 dWFsX3BlYWtfbHVtaW5hbmNlOyBpKyspIHsKPiArICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7 IGogPCBzLT5udW1fY29sc190YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1p bmFuY2U7IGorKykgewo+ICsgICAgICAgICAgICAgICAgcHV0X2JpdHMocGIsIDQsIHMtPnRhcmdl dGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZVtpXVtqXS5udW0gKiBwZWFr X2x1bWluYW5jZV9kZW4gLwo+ICsgICAgICAgICAgICAgICAgICAgIHMtPnRhcmdldGVkX3N5c3Rl bV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZVtpXVtqXS5kZW4pOwo+ICsgICAgICAgICAg ICB9Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICsKPiArICAgIGZvciAoaW50IHcgPSAwOyB3IDwg cy0+bnVtX3dpbmRvd3M7IHcrKykgewo+ICsgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsg aSsrKSB7Cj4gKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAxNywgcy0+cGFyYW1zW3ddLm1heHNj bFtpXS5udW0gKiByZ2JfZGVuIC8gcy0+cGFyYW1zW3ddLm1heHNjbFtpXS5kZW4pOwo+ICsgICAg ICAgIH0KPiArICAgICAgICBwdXRfYml0cyhwYiwgMTcsIHMtPnBhcmFtc1t3XS5hdmVyYWdlX21h eHJnYi5udW0gKiByZ2JfZGVuIC8gcy0+cGFyYW1zW3ddLmF2ZXJhZ2VfbWF4cmdiLmRlbik7Cj4g KyAgICAgICAgcHV0X2JpdHMocGIsIDQsIHMtPnBhcmFtc1t3XS5udW1fZGlzdHJpYnV0aW9uX21h eHJnYl9wZXJjZW50aWxlcyk7Cj4gKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLT5wYXJh bXNbd10ubnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXM7IGkrKykgewo+ICsgICAg ICAgICAgICBwdXRfYml0cyhwYiwgNywgcy0+cGFyYW1zW3ddLmRpc3RyaWJ1dGlvbl9tYXhyZ2Jb aV0ucGVyY2VudGFnZSk7Cj4gKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAxNywgcy0+cGFyYW1z W3ddLmRpc3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGlsZS5udW0gKiByZ2JfZGVuIC8KPiAr ICAgICAgICAgICAgICAgIHMtPnBhcmFtc1t3XS5kaXN0cmlidXRpb25fbWF4cmdiW2ldLnBlcmNl bnRpbGUuZGVuKTsKPiArICAgICAgICB9Cj4gKyAgICAgICAgcHV0X2JpdHMocGIsIDEwLCBzLT5w YXJhbXNbd10uZnJhY3Rpb25fYnJpZ2h0X3BpeGVscy5udW0gKiBmcmFjdGlvbl9waXhlbF9kZW4g Lwo+ICsgICAgICAgICAgICBzLT5wYXJhbXNbd10uZnJhY3Rpb25fYnJpZ2h0X3BpeGVscy5kZW4p Owo+ICsgICAgfQo+ICsKPiArICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5tYXN0ZXJpbmdfZGlzcGxh eV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZyk7Cj4gKyAgICBpZiAocy0+bWFzdGVyaW5nX2Rp c3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcpIHsKPiArICAgICAgICBwdXRfYml0cyhw YiwgNSwgcy0+bnVtX3Jvd3NfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNl KTsKPiArICAgICAgICBwdXRfYml0cyhwYiwgNSwgcy0+bnVtX2NvbHNfbWFzdGVyaW5nX2Rpc3Bs YXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlKTsKPiArICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8 IHMtPm51bV9yb3dzX21hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZTsgaSsr KSB7Cj4gKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcy0+bnVtX2NvbHNfbWFzdGVy aW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlOyBqKyspIHsKPiArICAgICAgICAgICAg ICAgIHB1dF9iaXRzKHBiLCA0LCBzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1p bmFuY2VbaV1bal0ubnVtICogcGVha19sdW1pbmFuY2VfZGVuIC8KPiArICAgICAgICAgICAgICAg ICAgICBzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VbaV1bal0uZGVu KTsKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgIH0KPiArICAgIH0KPiArCj4gKyAgICBmb3Ig KGludCB3ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsKPiArICAgICAgICBwdXRfYml0 cyhwYiwgMSwgcy0+cGFyYW1zW3ddLnRvbmVfbWFwcGluZ19mbGFnKTsKPiArICAgICAgICBpZiAo cy0+cGFyYW1zW3ddLnRvbmVfbWFwcGluZ19mbGFnKSB7Cj4gKyAgICAgICAgICAgIHB1dF9iaXRz KHBiLCAxMiwgcy0+cGFyYW1zW3ddLmtuZWVfcG9pbnRfeC5udW0gKiBrbmVlX3BvaW50X2RlbiAv IHMtPnBhcmFtc1t3XS5rbmVlX3BvaW50X3guZGVuKTsKPiArICAgICAgICAgICAgcHV0X2JpdHMo cGIsIDEyLCBzLT5wYXJhbXNbd10ua25lZV9wb2ludF95Lm51bSAqIGtuZWVfcG9pbnRfZGVuIC8g cy0+cGFyYW1zW3ddLmtuZWVfcG9pbnRfeS5kZW4pOwo+ICsgICAgICAgICAgICBwdXRfYml0cyhw YiwgNCwgcy0+cGFyYW1zW3ddLm51bV9iZXppZXJfY3VydmVfYW5jaG9ycyk7Cj4gKyAgICAgICAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy0+cGFyYW1zW3ddLm51bV9iZXppZXJfY3VydmVfYW5j aG9yczsgaSsrKSB7Cj4gKyAgICAgICAgICAgICAgICBwdXRfYml0cyhwYiwgMTAsIHMtPnBhcmFt c1t3XS5iZXppZXJfY3VydmVfYW5jaG9yc1tpXS5udW0gKiBiZXppZXJfYW5jaG9yX2RlbiAvCj4g KyAgICAgICAgICAgICAgICAgICAgcy0+cGFyYW1zW3ddLmJlemllcl9jdXJ2ZV9hbmNob3JzW2ld LmRlbik7Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgcHV0X2JpdHMocGIsIDEsIHMt PnBhcmFtc1t3XS5jb2xvcl9zYXR1cmF0aW9uX21hcHBpbmdfZmxhZyk7Cj4gKyAgICAgICAgICAg IGlmIChzLT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlvbl9tYXBwaW5nX2ZsYWcpIHsKPiArICAg ICAgICAgICAgICAgIHB1dF9iaXRzKHBiLCA2LCBzLT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlv bl93ZWlnaHQubnVtICogc2F0dXJhdGlvbl93ZWlnaHRfZGVuIC8KPiArICAgICAgICAgICAgICAg ICAgICBzLT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlvbl93ZWlnaHQuZGVuKTsKPiArICAgICAg ICAgICAgfQo+ICsgICAgICAgIH0KPiArICAgIH0KPiArCj4gKyAgICBmbHVzaF9wdXRfYml0cyhw Yik7Cj4gKyAgICByZXR1cm4gYnVmOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9oZHJf ZHluYW1pY19tZXRhZGF0YS5oIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmgKPiBp bmRleCAxZjk1M2VmMWY1Li5mNzVkM2UwNzM5IDEwMDY0NAo+IC0tLSBhL2xpYmF2dXRpbC9oZHJf ZHluYW1pY19tZXRhZGF0YS5oCj4gKysrIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRh LmgKPiBAQCAtMjEsNiArMjEsNyBAQAo+ICAgI2lmbmRlZiBBVlVUSUxfSERSX0RZTkFNSUNfTUVU QURBVEFfSAo+ICAgI2RlZmluZSBBVlVUSUxfSERSX0RZTkFNSUNfTUVUQURBVEFfSAo+ICAgCj4g KyNpbmNsdWRlICJidWZmZXIuaCIKPiAgICNpbmNsdWRlICJmcmFtZS5oIgo+ICAgI2luY2x1ZGUg InJhdGlvbmFsLmgiCj4gICAKPiBAQCAtMzUxLDQgKzM1MiwxMyBAQCBBVkR5bmFtaWNIRFJQbHVz ICphdl9keW5hbWljX2hkcl9wbHVzX2NyZWF0ZV9zaWRlX2RhdGEoQVZGcmFtZSAqZnJhbWUpOwo+ ICAgaW50IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUoQVZEeW5hbWljSERSUGx1cyAqcywg Y29uc3QgdWludDhfdCAqZGF0YSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCBzaXplKTsKPiAgIAo+ICsvKioKPiArICogU2VyaWFsaXplIGR5bmFtaWMgSERSMTArIG1l dGFkYXRhIHRvIGEgdXNlciBkYXRhIHJlZ2lzdGVyZWQgSVRVLVQgVC4zNSBidWZmZXIuCj4gKyAq IEBwYXJhbSBzIEEgcG9pbnRlciBjb250YWluaW5nIHRoZSBkZWNvZGVkIEFWRHluYW1pY0hEUlBs dXMgc3RydWN0dXJlLgo+ICsgKgo+ICsgKiBAcmV0dXJuIFBvaW50ZXIgdG8gYW4gQVZCdWZmZXJS ZWYgY29udGFpbmluZyB0aGUgcmF3IElUVS1UIFQuMzUgcmVwcmVzZW50YXRpb24KPiArICogICAg ICAgICBvZiB0aGUgSERSMTArIG1ldGFkYXRhIGlmIHN1Y2NlZWQsIG9yIE5VTEwgaWYgYnVmZmVy IGFsbG9jYXRpb24gZmFpbHMuCj4gKyAqLwo+ICtBVkJ1ZmZlclJlZiAqYXZfZHluYW1pY19oZHJf cGx1c190b190MzUoQVZEeW5hbWljSERSUGx1cyAqcyk7Cj4gKwo+ICAgI2VuZGlmIC8qIEFWVVRJ TF9IRFJfRFlOQU1JQ19NRVRBREFUQV9IICovCj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC92ZXJz aW9uLmggYi9saWJhdnV0aWwvdmVyc2lvbi5oCj4gaW5kZXggOTAwYjc5ODk3MS4uNzYzNTY3Mjk4 NSAxMDA2NDQKPiAtLS0gYS9saWJhdnV0aWwvdmVyc2lvbi5oCj4gKysrIGIvbGliYXZ1dGlsL3Zl cnNpb24uaAo+IEBAIC03OSw3ICs3OSw3IEBACj4gICAgKi8KPiAgIAo+ICAgI2RlZmluZSBMSUJB VlVUSUxfVkVSU0lPTl9NQUpPUiAgNTgKPiAtI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSU5P UiAgIDMKPiArI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSU5PUiAgIDQKPiAgICNkZWZpbmUg TElCQVZVVElMX1ZFUlNJT05fTUlDUk8gMTAwCj4gICAKPiAgICNkZWZpbmUgTElCQVZVVElMX1ZF UlNJT05fSU5UICAgQVZfVkVSU0lPTl9JTlQoTElCQVZVVElMX1ZFUlNJT05fTUFKT1IsIFwKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVs IG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcv bWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5r IGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3Vi amVjdCAidW5zdWJzY3JpYmUiLgo=