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 B01B54A024 for ; Mon, 18 Mar 2024 09:14:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1C4FA68D25B; Mon, 18 Mar 2024 11:14:49 +0200 (EET) Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 02D7A68D23F for ; Mon, 18 Mar 2024 11:14:42 +0200 (EET) Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-29f9af2e0b7so640210a91.1 for ; Mon, 18 Mar 2024 02:14:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710753280; x=1711358080; darn=ffmpeg.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=/+48Vi1eesNaZ385N0vrK/1cuaE+oZpb58J359gHwr0=; b=QaejUbVsPtMVjeanmaBVKBCn50raisQCxyBVIrry6gBHKqS1hl+jv/3EFmIND8TUOi zUL0ityakRpWLlH4ZoCl2lLbQxOlRVVV8ba7Jas9MMcGcvrfq5uQVHwEUO7RxVpHm42v VpO0BLiVDbOkCJ4eXrUNpMJL9nBZkwR/18D+40Bg2up9ZuSCIHZQm4wM4ZzhL5Cz5cZI UHgst/J47rE/RSyLljCKNhQDshWoN17jYOQ7OIQhbQIfDSec/Ms238dQszIWE7iMc/AL AKZtR8kXDxRPYsO4gg3IAnj0+CXuYoWETM19zBddo5sv519wD+WP1bAtzoVYF3lr0B4R Q2Vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710753280; x=1711358080; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=/+48Vi1eesNaZ385N0vrK/1cuaE+oZpb58J359gHwr0=; b=nOyWz6lDczbqdeDgCsTgVZ2IyGup+WMpv80Hg2fVMfz8MN9nnmwH1fkKxkpGDmI8CJ Zx7H5xzguU6UhhgDd3YfpDgkhfBQYYTfXv5xI05K9czoBk3dOOF8mp8uhwQMDpj4YFUa UIZ7M0OG5OwFOxWSoqQ1bu82PhCOExOQEO9O4od3GcxLiuO/Mpvsr2jIkHmvrms6silu LKjmSW7qr5he5//Hc0nWzjQUR7Hojc8698XPb2vrED6e86mg5AC2aeYRLslwQbf6OkjT TzgtW1/oUlh3QWFGCafZ9/2Qc0Enz8Nvfz9vCqBIBNs7RbfB48moaxrA5bTPjKrz90g5 hKfw== X-Gm-Message-State: AOJu0YzLuHSwRpGbifTD/81a5EvC0pv/bFbHNY3nvufqmXmtJkIbhyHN BEMihQPzFbzlHufYbgFTJ0nbBrgEqHkbkX8h+kaxswhINxxuKUe+xNbFxS0fbeqm6lRD9GK+7vV 5z+fvqT5uvGrPKq5EREgvC9PzwHNQH2ewn4jYcQ== X-Google-Smtp-Source: AGHT+IGIEFcnb+9wV5v0Tzb3Lsxf1rWZq00frFof9V5+Guw3SXs4/c34gNwNu8ZwOQBhLVMxRWy8a6senPvkQCUyCGU= X-Received: by 2002:a17:90a:72c4:b0:29c:70e:6ec0 with SMTP id l4-20020a17090a72c400b0029c070e6ec0mr10932560pjk.14.1710753280212; Mon, 18 Mar 2024 02:14:40 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Dennis Mungai Date: Mon, 18 Mar 2024 12:14:03 +0300 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v5 1/3] avformat/flvdec: support enhanced flv PacketTypeMetadata 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: 411294962@qq.com 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: T24gTW9uLCAxOCBNYXIgMjAyNCBhdCAxMjowOSwgU3RldmVuIExpdSA8bGluZ2ppdWppYW5rZUBn bWFpbC5jb20+IHdyb3RlOgoKPiBTdGV2ZW4gTGl1IDxsaW5naml1amlhbmtlQGdtYWlsLmNvbT4g 5LqOMjAyNOW5tDPmnIg35pel5ZGo5ZubIDE3OjMz5YaZ6YGT77yaCj4gPgo+ID4gemh1cGVuZ2Zl aSB2aWEgZmZtcGVnLWRldmVsIDxmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZz4g5LqOMjAyNOW5tDPm nIg05pel5ZGo5LiACj4gMjE6NTLlhpnpgZPvvJoKPiA+ID4KPiA+ID4gRnJvbTogWmh1IFBlbmdm ZWkgPDQxMTI5NDk2MkBxcS5jb20+Cj4gPiA+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IFpodSBQZW5n ZmVpIDw0MTEyOTQ5NjJAcXEuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGxpYmF2Zm9ybWF0L2ZsdmRl Yy5jIHwgMTc3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+ ID4gIDEgZmlsZSBjaGFuZ2VkLCAxNzYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4g Pgo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvZmx2ZGVjLmMgYi9saWJhdmZvcm1hdC9m bHZkZWMuYwo+ID4gPiBpbmRleCBlMjViNWJkMTYzLi4yYTBhZWM3MjkxIDEwMDY0NAo+ID4gPiAt LS0gYS9saWJhdmZvcm1hdC9mbHZkZWMuYwo+ID4gPiArKysgYi9saWJhdmZvcm1hdC9mbHZkZWMu Ywo+ID4gPiBAQCAtMzMsNiArMzMsNyBAQAo+ID4gPiAgI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRl cm5hbC5oIgo+ID4gPiAgI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRmbG9hdC5oIgo+ID4gPiAgI2lu Y2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3JpdGUuaCIKPiA+ID4gKyNpbmNsdWRlICJsaWJhdnV0 aWwvbWFzdGVyaW5nX2Rpc3BsYXlfbWV0YWRhdGEuaCIKPiA+ID4gICNpbmNsdWRlICJsaWJhdnV0 aWwvbWF0aGVtYXRpY3MuaCIKPiA+ID4gICNpbmNsdWRlICJhdmZvcm1hdC5oIgo+ID4gPiAgI2lu Y2x1ZGUgImRlbXV4LmgiCj4gPiA+IEBAIC00NSw2ICs0NiwyOCBAQAo+ID4gPgo+ID4gPiAgI2Rl ZmluZSBNQVhfREVQVEggMTYgICAgICAvLy88IGFyYml0cmFyeSBsaW1pdCB0byBwcmV2ZW50IHVu Ym91bmRlZAo+IHJlY3Vyc2lvbgo+ID4gPgo+ID4gPiArdHlwZWRlZiBzdHJ1Y3QgRkxWTWFzdGVy aW5nTWV0YSB7Cj4gPiA+ICsgICAgZG91YmxlIHJfeDsKPiA+ID4gKyAgICBkb3VibGUgcl95Owo+ ID4gPiArICAgIGRvdWJsZSBnX3g7Cj4gPiA+ICsgICAgZG91YmxlIGdfeTsKPiA+ID4gKyAgICBk b3VibGUgYl94Owo+ID4gPiArICAgIGRvdWJsZSBiX3k7Cj4gPiA+ICsgICAgZG91YmxlIHdoaXRl X3g7Cj4gPiA+ICsgICAgZG91YmxlIHdoaXRlX3k7Cj4gPiA+ICsgICAgZG91YmxlIG1heF9sdW1p bmFuY2U7Cj4gPiA+ICsgICAgZG91YmxlIG1pbl9sdW1pbmFuY2U7Cj4gPiA+ICt9IEZMVk1hc3Rl cmluZ01ldGE7Cj4gPiA+ICsKPiA+ID4gK3R5cGVkZWYgc3RydWN0IEZMVk1ldGFWaWRlb0NvbG9y IHsKPiA+ID4gKyAgICB1aW50NjRfdCBtYXRyaXhfY29lZmZpY2llbnRzOwo+ID4gPiArICAgIHVp bnQ2NF90IHRyYW5zZmVyX2NoYXJhY3RlcmlzdGljczsKPiA+ID4gKyAgICB1aW50NjRfdCBwcmlt YXJpZXM7Cj4gPiA+ICsgICAgdWludDY0X3QgbWF4X2NsbDsKPiA+ID4gKyAgICB1aW50NjRfdCBt YXhfZmFsbDsKPiA+ID4gKyAgICBGTFZNYXN0ZXJpbmdNZXRhIG1hc3RlcmluZ19tZXRhOwo+ID4g PiArfSBGTFZNZXRhVmlkZW9Db2xvcjsKPiA+ID4gKwo+ID4gPiAgdHlwZWRlZiBzdHJ1Y3QgRkxW Q29udGV4dCB7Cj4gPiA+ICAgICAgY29uc3QgQVZDbGFzcyAqY2xhc3M7IC8vLzwgQ2xhc3MgZm9y IHByaXZhdGUgb3B0aW9ucy4KPiA+ID4gICAgICBpbnQgdHJ1c3RfbWV0YWRhdGE7ICAgLy8vPCBj b25maWd1cmUgc3RyZWFtcyBhY2NvcmRpbmcgb25NZXRhRGF0YQo+ID4gPiBAQCAtODAsNiArMTAz LDggQEAgdHlwZWRlZiBzdHJ1Y3QgRkxWQ29udGV4dCB7Cj4gPiA+ICAgICAgaW50NjRfdCB0aW1l X29mZnNldDsKPiA+ID4gICAgICBpbnQ2NF90IHRpbWVfcG9zOwo+ID4gPgo+ID4gPiArICAgIEZM Vk1ldGFWaWRlb0NvbG9yICptZXRhVmlkZW9Db2xvcjsKPiA+ID4gKyAgICBpbnQgbWV0YV9jb2xv cl9pbmZvX2ZsYWc7Cj4gPiA+ICB9IEZMVkNvbnRleHQ7Cj4gPiA+Cj4gPiA+ICAvKiBBTUYgZGF0 ZSB0eXBlICovCj4gPiA+IEBAIC01MjQsNiArNTQ5LDcgQEAgc3RhdGljIGludCBhbWZfcGFyc2Vf b2JqZWN0KEFWRm9ybWF0Q29udGV4dCAqcywKPiBBVlN0cmVhbSAqYXN0cmVhbSwKPiA+ID4gICAg ICBGTFZDb250ZXh0ICpmbHYgPSBzLT5wcml2X2RhdGE7Cj4gPiA+ICAgICAgQVZJT0NvbnRleHQg KmlvYzsKPiA+ID4gICAgICBBTUZEYXRhVHlwZSBhbWZfdHlwZTsKPiA+ID4gKyAgICBGTFZNZXRh VmlkZW9Db2xvciAqbWV0YV92aWRlb19jb2xvciA9IGZsdi0+bWV0YVZpZGVvQ29sb3I7Cj4gPiA+ ICAgICAgY2hhciBzdHJfdmFsWzEwMjRdOwo+ID4gPiAgICAgIGRvdWJsZSBudW1fdmFsOwo+ID4g PiAgICAgIGFtZl9kYXRlIGRhdGU7Cj4gPiA+IEBAIC02NzIsNiArNjk4LDQzIEBAIHN0YXRpYyBp bnQgYW1mX3BhcnNlX29iamVjdChBVkZvcm1hdENvbnRleHQgKnMsCj4gQVZTdHJlYW0gKmFzdHJl YW0sCj4gPiA+ICAgICAgICAgICAgICB9Cj4gPiA+ICAgICAgICAgIH0KPiA+ID4KPiA+ID4gKyAg ICAgICAgaWYgKG1ldGFfdmlkZW9fY29sb3IpIHsKPiA+ID4gKyAgICAgICAgICAgIGlmIChhbWZf dHlwZSA9PSBBTUZfREFUQV9UWVBFX05VTUJFUiB8fAo+ID4gPiArICAgICAgICAgICAgICAgIGFt Zl90eXBlID09IEFNRl9EQVRBX1RZUEVfQk9PTCkgewo+ID4gPiArICAgICAgICAgICAgICAgIGlm ICghc3RyY21wKGtleSwgImNvbG9yUHJpbWFyaWVzIikpIHsKPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgbWV0YV92aWRlb19jb2xvci0+cHJpbWFyaWVzID0gbnVtX3ZhbDsKPiA+ID4gKyAgICAg ICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAidHJhbnNmZXJDaGFyYWN0ZXJpc3Rp Y3MiKSkgewo+ID4gPiArICAgICAgICAgICAgICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT50cmFu c2Zlcl9jaGFyYWN0ZXJpc3RpY3MgPQo+IG51bV92YWw7Cj4gPiA+ICsgICAgICAgICAgICAgICAg fSBlbHNlIGlmICghc3RyY21wKGtleSwgIm1hdHJpeENvZWZmaWNpZW50cyIpKSB7Cj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hdHJpeF9jb2VmZmljaWVudHMg PSBudW1fdmFsOwo+ID4gPiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXks ICJtYXhGYWxsIikpIHsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgbWV0YV92aWRlb19jb2xv ci0+bWF4X2ZhbGwgPSBudW1fdmFsOwo+ID4gPiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo IXN0cmNtcChrZXksICJtYXhDTEwiKSkgewo+ID4gPiArICAgICAgICAgICAgICAgICAgICBtZXRh X3ZpZGVvX2NvbG9yLT5tYXhfY2xsID0gbnVtX3ZhbDsKPiA+ID4gKyAgICAgICAgICAgICAgICB9 IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAicmVkWCIpKSB7Cj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hc3RlcmluZ19tZXRhLnJfeCA9IG51bV92YWw7Cj4gPiA+ ICsgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgInJlZFkiKSkgewo+ID4g PiArICAgICAgICAgICAgICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT5tYXN0ZXJpbmdfbWV0YS5y X3kgPSBudW1fdmFsOwo+ID4gPiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChr ZXksICJncmVlblgiKSkgewo+ID4gPiArICAgICAgICAgICAgICAgICAgICBtZXRhX3ZpZGVvX2Nv bG9yLT5tYXN0ZXJpbmdfbWV0YS5nX3ggPSBudW1fdmFsOwo+ID4gPiArICAgICAgICAgICAgICAg IH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJncmVlblkiKSkgewo+ID4gPiArICAgICAgICAgICAg ICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT5tYXN0ZXJpbmdfbWV0YS5nX3kgPSBudW1fdmFsOwo+ ID4gPiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJibHVlWCIpKSB7 Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hc3RlcmluZ19t ZXRhLmJfeCA9IG51bV92YWw7Cj4gPiA+ICsgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc3Ry Y21wKGtleSwgImJsdWVZIikpIHsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgbWV0YV92aWRl b19jb2xvci0+bWFzdGVyaW5nX21ldGEuYl95ID0gbnVtX3ZhbDsKPiA+ID4gKyAgICAgICAgICAg ICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAid2hpdGVQb2ludFgiKSkgewo+ID4gPiArICAg ICAgICAgICAgICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT5tYXN0ZXJpbmdfbWV0YS53aGl0ZV94 ID0KPiBudW1fdmFsOwo+ID4gPiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChr ZXksICJ3aGl0ZVBvaW50WSIpKSB7Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFfdmlk ZW9fY29sb3ItPm1hc3RlcmluZ19tZXRhLndoaXRlX3kgPQo+IG51bV92YWw7Cj4gPiA+ICsgICAg ICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgIm1heEx1bWluYW5jZSIpKSB7Cj4g PiA+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hc3RlcmluZ19tZXRh Lm1heF9sdW1pbmFuY2UgPQo+IG51bV92YWw7Cj4gPiA+ICsgICAgICAgICAgICAgICAgfSBlbHNl IGlmICghc3RyY21wKGtleSwgIm1pbkx1bWluYW5jZSIpKSB7Cj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hc3RlcmluZ19tZXRhLm1pbl9sdW1pbmFuY2UgPQo+ IG51bV92YWw7Cj4gPiA+ICsgICAgICAgICAgICAgICAgfQo+ID4gPiArICAgICAgICAgICAgfQo+ ID4gPiArICAgICAgICB9Cj4gPiA+ICsKPiA+ID4gICAgICAgICAgaWYgKGFtZl90eXBlID09IEFN Rl9EQVRBX1RZUEVfT0JKRUNUICYmIHMtPm5iX3N0cmVhbXMgPT0gMSAmJgo+ID4gPiAgICAgICAg ICAgICAoKCFhcGFyICYmICFzdHJjbXAoa2V5LCAiYXVkaW9jb2RlY2lkIikpIHx8Cj4gPiA+ICAg ICAgICAgICAgICAoIXZwYXIgJiYgIXN0cmNtcChrZXksICJ2aWRlb2NvZGVjaWQiKSkpKQo+ID4g PiBAQCAtODI0LDYgKzg4Nyw3IEBAIHN0YXRpYyBpbnQgZmx2X3JlYWRfY2xvc2UoQVZGb3JtYXRD b250ZXh0ICpzKQo+ID4gPiAgICAgICAgICBhdl9mcmVlcCgmZmx2LT5uZXdfZXh0cmFkYXRhW2ld KTsKPiA+ID4gICAgICBhdl9mcmVlcCgmZmx2LT5rZXlmcmFtZV90aW1lcyk7Cj4gPiA+ICAgICAg YXZfZnJlZXAoJmZsdi0+a2V5ZnJhbWVfZmlsZXBvc2l0aW9ucyk7Cj4gPiA+ICsgICAgYXZfZnJl ZXAoJmZsdi0+bWV0YVZpZGVvQ29sb3IpOwo+ID4gPiAgICAgIHJldHVybiAwOwo+ID4gPiAgfQo+ ID4gPgo+ID4gPiBAQCAtMTAyOCw2ICsxMDkyLDEwMyBAQCBzdGF0aWMgaW50IHJlc3luYyhBVkZv cm1hdENvbnRleHQgKnMpCj4gPiA+ICAgICAgcmV0dXJuIEFWRVJST1JfRU9GOwo+ID4gPiAgfQo+ ID4gPgo+ID4gPiArc3RhdGljIGludCBmbHZfcGFyc2VfdmlkZW9fY29sb3JfaW5mbyhBVkZvcm1h dENvbnRleHQgKnMsIEFWU3RyZWFtCj4gKnN0LCBpbnQ2NF90IG5leHRfcG9zKQo+ID4gPiArewo+ ID4gPiArICAgIEZMVkNvbnRleHQgKmZsdiA9IHMtPnByaXZfZGF0YTsKPiA+ID4gKyAgICBBTUZE YXRhVHlwZSB0eXBlOwo+ID4gPiArICAgIEFWSU9Db250ZXh0ICppb2M7Cj4gPiA+ICsgICAgY2hh ciBidWZmZXJbMzJdOwo+ID4gPiArICAgIGlvYyAgICAgPSBzLT5wYjsKPiA+ID4gKwo+ID4gPiAr ICAgIC8vIGZpcnN0IG9iamVjdCBuZWVkcyB0byBiZSAiY29sb3JJbmZvIiBzdHJpbmcKPiA+ID4g KyAgICB0eXBlID0gYXZpb19yOChpb2MpOwo+ID4gPiArICAgIGlmICh0eXBlICE9IEFNRl9EQVRB X1RZUEVfU1RSSU5HIHx8Cj4gPiA+ICsgICAgICAgIGFtZl9nZXRfc3RyaW5nKGlvYywgYnVmZmVy LCBzaXplb2YoYnVmZmVyKSkgPCAwKQo+ID4gPiArICAgICAgICByZXR1cm4gVFlQRV9VTktOT1dO Owo+ID4gPiArCj4gPiA+ICsgICAgaWYgKHN0cmNtcChidWZmZXIsICJjb2xvckluZm8iKSkgewo+ ID4gPiArICAgICAgICBhdl9sb2cocywgQVZfTE9HX0RFQlVHLCAiVW5rbm93biB0eXBlICVzXG4i LCBidWZmZXIpOwo+ID4gPiArICAgICAgICByZXR1cm4gVFlQRV9VTktOT1dOOwo+ID4gPiArICAg IH0KPiA+ID4gKwo+ID4gPiArICAgIGlmICghKGZsdi0+bWV0YVZpZGVvQ29sb3IgPQo+IGF2X21h bGxvY3ooc2l6ZW9mKEZMVk1ldGFWaWRlb0NvbG9yKSkpKSB7Cj4gPiA+ICsgICAgICAgIHJldHVy biBBVkVSUk9SKEVOT01FTSk7Cj4gPiA+ICsgICAgfQo+ID4gPiArICAgIGZsdi0+bWV0YV9jb2xv cl9pbmZvX2ZsYWcgPSAxOwo+ID4gPiArICAgIGFtZl9wYXJzZV9vYmplY3QocywgTlVMTCwgTlVM TCwgYnVmZmVyLCBuZXh0X3BvcywgMCk7IC8vIHBhcnNlCj4gbWV0YWRhdGEKPiA+ID4gKyAgICBy ZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIGludCBmbHZfdXBkYXRlX3Zp ZGVvX2NvbG9yX2luZm8oQVZGb3JtYXRDb250ZXh0ICpzLCBBVlN0cmVhbQo+ICpzdCkKPiA+ID4g K3sKPiA+ID4gKyAgICBGTFZDb250ZXh0ICpmbHYgPSBzLT5wcml2X2RhdGE7Cj4gPiA+ICsgICAg Y29uc3QgRkxWTWV0YVZpZGVvQ29sb3IqIG1ldGFfdmlkZW9fY29sb3IgPSBmbHYtPm1ldGFWaWRl b0NvbG9yOwo+ID4gPiArICAgIGNvbnN0IEZMVk1hc3RlcmluZ01ldGEgKm1hc3RlcmluZ19tZXRh ID0KPiAmbWV0YV92aWRlb19jb2xvci0+bWFzdGVyaW5nX21ldGE7Cj4gPiA+ICsKPiA+ID4gKyAg ICBpbnQgaGFzX21hc3RlcmluZ19wcmltYXJpZXMsIGhhc19tYXN0ZXJpbmdfbHVtaW5hbmNlOwo+ ID4gPiArICAgIC8vIE1hc3RlcmluZyBwcmltYXJpZXMgYXJlIENJRSAxOTMxIGNvb3JkcywgYW5k IG11c3QgYmUgPiAwLgo+ID4gPiArICAgIGhhc19tYXN0ZXJpbmdfcHJpbWFyaWVzID0KPiA+ID4g KyAgICAgICAgbWFzdGVyaW5nX21ldGEtPnJfeCA+IDAgJiYgbWFzdGVyaW5nX21ldGEtPnJfeSA+ IDAgJiYKPiA+ID4gKyAgICAgICAgbWFzdGVyaW5nX21ldGEtPmdfeCA+IDAgJiYgbWFzdGVyaW5n X21ldGEtPmdfeSA+IDAgJiYKPiA+ID4gKyAgICAgICAgbWFzdGVyaW5nX21ldGEtPmJfeCA+IDAg JiYgbWFzdGVyaW5nX21ldGEtPmJfeSA+IDAgJiYKPiA+ID4gKyAgICAgICAgbWFzdGVyaW5nX21l dGEtPndoaXRlX3ggPiAwICYmIG1hc3RlcmluZ19tZXRhLT53aGl0ZV95ID4gMDsKPiA+ID4gKyAg ICBoYXNfbWFzdGVyaW5nX2x1bWluYW5jZSA9IG1hc3RlcmluZ19tZXRhLT5tYXhfbHVtaW5hbmNl ID4gMCAmJgo+IG1hc3RlcmluZ19tZXRhLT5taW5fbHVtaW5hbmNlID4gMDsKPiA+ID4gKwo+ID4g PiArICAgIGlmIChtZXRhX3ZpZGVvX2NvbG9yLT5tYXRyaXhfY29lZmZpY2llbnRzICE9IEFWQ09M X1NQQ19SRVNFUlZFRCkKPiA+ID4gKyAgICAgICAgc3QtPmNvZGVjcGFyLT5jb2xvcl9zcGFjZSA9 Cj4gbWV0YV92aWRlb19jb2xvci0+bWF0cml4X2NvZWZmaWNpZW50czsKPiA+ID4gKyAgICBpZiAo bWV0YV92aWRlb19jb2xvci0+cHJpbWFyaWVzICE9IEFWQ09MX1BSSV9SRVNFUlZFRCAmJgo+ID4g PiArICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT5wcmltYXJpZXMgIT0gQVZDT0xfUFJJX1JFU0VS VkVEMCkKPiA+ID4gKyAgICAgICAgc3QtPmNvZGVjcGFyLT5jb2xvcl9wcmltYXJpZXMgPSBtZXRh X3ZpZGVvX2NvbG9yLT5wcmltYXJpZXM7Cj4gPiA+ICsgICAgaWYgKG1ldGFfdmlkZW9fY29sb3It PnRyYW5zZmVyX2NoYXJhY3RlcmlzdGljcyAhPQo+IEFWQ09MX1RSQ19SRVNFUlZFRCAmJgo+ID4g PiArICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT50cmFuc2Zlcl9jaGFyYWN0ZXJpc3RpY3MgIT0K PiBBVkNPTF9UUkNfUkVTRVJWRUQwKQo+ID4gPiArICAgICAgICBzdC0+Y29kZWNwYXItPmNvbG9y X3RyYyA9Cj4gbWV0YV92aWRlb19jb2xvci0+dHJhbnNmZXJfY2hhcmFjdGVyaXN0aWNzOwo+ID4g PiArCj4gPiA+ICsgICAgaWYgKG1ldGFfdmlkZW9fY29sb3ItPm1heF9jbGwgJiYgbWV0YV92aWRl b19jb2xvci0+bWF4X2ZhbGwpIHsKPiA+ID4gKyAgICAgICAgc2l6ZV90IHNpemUgPSAwOwo+ID4g PiArICAgICAgICBBVkNvbnRlbnRMaWdodE1ldGFkYXRhICptZXRhZGF0YSA9Cj4gYXZfY29udGVu dF9saWdodF9tZXRhZGF0YV9hbGxvYygmc2l6ZSk7Cj4gPiA+ICsgICAgICAgIGlmICghbWV0YWRh dGEpCj4gPiA+ICsgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ID4gPiArICAg ICAgICBpZiAoIWF2X3BhY2tldF9zaWRlX2RhdGFfYWRkKCZzdC0+Y29kZWNwYXItPmNvZGVkX3Np ZGVfZGF0YSwKPiAmc3QtPmNvZGVjcGFyLT5uYl9jb2RlZF9zaWRlX2RhdGEsCj4gPiA+ICsKPiBB Vl9QS1RfREFUQV9DT05URU5UX0xJR0hUX0xFVkVMLCBtZXRhZGF0YSwgc2l6ZSwgMCkpIHsKPiA+ ID4gKyAgICAgICAgICAgIGF2X2ZyZWVwKCZtZXRhZGF0YSk7Cj4gPiA+ICsgICAgICAgICAgICBy ZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ID4gPiArICAgICAgICB9Cj4gPiA+ICsgICAgICAgIG1l dGFkYXRhLT5NYXhDTEwgID0gbWV0YV92aWRlb19jb2xvci0+bWF4X2NsbDsKPiA+ID4gKyAgICAg ICAgbWV0YWRhdGEtPk1heEZBTEwgPSBtZXRhX3ZpZGVvX2NvbG9yLT5tYXhfZmFsbDsKPiA+ID4g KyAgICB9Cj4gPiA+ICsKPiA+ID4gKyAgICBpZiAoaGFzX21hc3RlcmluZ19wcmltYXJpZXMgfHwg aGFzX21hc3RlcmluZ19sdW1pbmFuY2UpIHsKPiA+ID4gKyAgICAgICAgQVZNYXN0ZXJpbmdEaXNw bGF5TWV0YWRhdGEgKm1ldGFkYXRhOwo+ID4gPiArICAgICAgICBBVlBhY2tldFNpZGVEYXRhICpz ZCA9Cj4gYXZfcGFja2V0X3NpZGVfZGF0YV9uZXcoJnN0LT5jb2RlY3Bhci0+Y29kZWRfc2lkZV9k YXRhLAo+ID4gPiArCj4gJnN0LT5jb2RlY3Bhci0+bmJfY29kZWRfc2lkZV9kYXRhLAo+ID4gPiAr Cj4gQVZfUEtUX0RBVEFfTUFTVEVSSU5HX0RJU1BMQVlfTUVUQURBVEEsCj4gPiA+ICsKPiBzaXpl b2YoQVZNYXN0ZXJpbmdEaXNwbGF5TWV0YWRhdGEpLCAwKTsKPiA+ID4gKyAgICAgICAgaWYgKCFz ZCkKPiA+ID4gKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7Cj4gPiA+ICsgICAg ICAgIG1ldGFkYXRhID0gKEFWTWFzdGVyaW5nRGlzcGxheU1ldGFkYXRhKilzZC0+ZGF0YTsKPiA+ ID4gKyAgICAgICAgbWVtc2V0KG1ldGFkYXRhLCAwLCBzaXplb2YoQVZNYXN0ZXJpbmdEaXNwbGF5 TWV0YWRhdGEpKTsKPiA+ID4gKyAgICAgICAgLy8gaGRyQ2xsCj4gPiA+ICsgICAgICAgIGlmICho YXNfbWFzdGVyaW5nX2x1bWluYW5jZSkgewo+ID4gPiArICAgICAgICAgICAgbWV0YWRhdGEtPm1h eF9sdW1pbmFuY2UgPQo+IGF2X2QycShtYXN0ZXJpbmdfbWV0YS0+bWF4X2x1bWluYW5jZSwgSU5U X01BWCk7Cj4gPiA+ICsgICAgICAgICAgICBtZXRhZGF0YS0+bWluX2x1bWluYW5jZSA9Cj4gYXZf ZDJxKG1hc3RlcmluZ19tZXRhLT5taW5fbHVtaW5hbmNlLCBJTlRfTUFYKTsKPiA+ID4gKyAgICAg ICAgICAgIG1ldGFkYXRhLT5oYXNfbHVtaW5hbmNlID0gMTsKPiA+ID4gKyAgICAgICAgfQo+ID4g PiArICAgICAgICAvLyBoZHJNZGN2Cj4gPiA+ICsgICAgICAgIGlmIChoYXNfbWFzdGVyaW5nX3By aW1hcmllcykgewo+ID4gPiArICAgICAgICAgICAgbWV0YWRhdGEtPmRpc3BsYXlfcHJpbWFyaWVz WzBdWzBdID0KPiBhdl9kMnEobWFzdGVyaW5nX21ldGEtPnJfeCwgSU5UX01BWCk7Cj4gPiA+ICsg ICAgICAgICAgICBtZXRhZGF0YS0+ZGlzcGxheV9wcmltYXJpZXNbMF1bMV0gPQo+IGF2X2QycSht YXN0ZXJpbmdfbWV0YS0+cl95LCBJTlRfTUFYKTsKPiA+ID4gKyAgICAgICAgICAgIG1ldGFkYXRh LT5kaXNwbGF5X3ByaW1hcmllc1sxXVswXSA9Cj4gYXZfZDJxKG1hc3RlcmluZ19tZXRhLT5nX3gs IElOVF9NQVgpOwo+ID4gPiArICAgICAgICAgICAgbWV0YWRhdGEtPmRpc3BsYXlfcHJpbWFyaWVz WzFdWzFdID0KPiBhdl9kMnEobWFzdGVyaW5nX21ldGEtPmdfeSwgSU5UX01BWCk7Cj4gPiA+ICsg ICAgICAgICAgICBtZXRhZGF0YS0+ZGlzcGxheV9wcmltYXJpZXNbMl1bMF0gPQo+IGF2X2QycSht YXN0ZXJpbmdfbWV0YS0+Yl94LCBJTlRfTUFYKTsKPiA+ID4gKyAgICAgICAgICAgIG1ldGFkYXRh LT5kaXNwbGF5X3ByaW1hcmllc1syXVsxXSA9Cj4gYXZfZDJxKG1hc3RlcmluZ19tZXRhLT5iX3ks IElOVF9NQVgpOwo+ID4gPiArICAgICAgICAgICAgbWV0YWRhdGEtPndoaXRlX3BvaW50WzBdID0K PiBhdl9kMnEobWFzdGVyaW5nX21ldGEtPndoaXRlX3gsIElOVF9NQVgpOwo+ID4gPiArICAgICAg ICAgICAgbWV0YWRhdGEtPndoaXRlX3BvaW50WzFdID0KPiBhdl9kMnEobWFzdGVyaW5nX21ldGEt PndoaXRlX3ksIElOVF9NQVgpOwo+ID4gPiArICAgICAgICAgICAgbWV0YWRhdGEtPmhhc19wcmlt YXJpZXMgPSAxOwo+ID4gPiArICAgICAgICB9Cj4gPiA+ICsgICAgfQo+ID4gPiArICAgIHJldHVy biAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICBzdGF0aWMgaW50IGZsdl9yZWFkX3BhY2tldChB VkZvcm1hdENvbnRleHQgKnMsIEFWUGFja2V0ICpwa3QpCj4gPiA+ICB7Cj4gPiA+ICAgICAgRkxW Q29udGV4dCAqZmx2ID0gcy0+cHJpdl9kYXRhOwo+ID4gPiBAQCAtMTEwMCw4ICsxMjYxLDE3IEBA IHJldHJ5Ogo+ID4gPiAgICAgICAgICAgICAgdmlkZW9fY29kZWNfaWQgPSBhdmlvX3JiMzIocy0+ cGIpOwo+ID4gPiAgICAgICAgICAgICAgc2l6ZSAtPSA0Owo+ID4gPiAgICAgICAgICB9Cj4gPiA+ IC0gICAgICAgIGlmICgoZmxhZ3MgJiBGTFZfVklERU9fRlJBTUVUWVBFX01BU0spID09Cj4gRkxW X0ZSQU1FX1ZJREVPX0lORk9fQ01EKQo+ID4gPiArCj4gPiA+ICsgICAgICAgIGlmIChlbmhhbmNl ZF9mbHYgJiYgc3RyZWFtX3R5cGUgPT0gRkxWX1NUUkVBTV9UWVBFX1ZJREVPICYmCj4gKGZsYWdz ICYgRkxWX1ZJREVPX0ZSQU1FVFlQRV9NQVNLKSA9PSBGTFZfRlJBTUVfVklERU9fSU5GT19DTUQp IHsKPiA+ID4gKyAgICAgICAgICAgIGludCBwa3RfdHlwZSA9IGZsYWdzICYgMHgwRjsKPiA+ID4g KyAgICAgICAgICAgIGlmIChwa3RfdHlwZSA9PSBQYWNrZXRUeXBlTWV0YWRhdGEpIHsKPiA+ID4g KyAgICAgICAgICAgICAgICBpbnQgcmV0ID0gZmx2X3BhcnNlX3ZpZGVvX2NvbG9yX2luZm8ocywg c3QsIG5leHQpOwo+ID4gPiArICAgICAgICAgICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfREVCVUcs ICJlbmhhbmNlZCBmbHYgcGFyc2UgbWV0YWRhdGEKPiByZXQgJWQgYW5kIHNraXBcbiIsIHJldCk7 Cj4gPiA+ICsgICAgICAgICAgICB9Cj4gPiA+ICsgICAgICAgICAgICBnb3RvIHNraXA7Cj4gPiA+ ICsgICAgICAgIH0gZWxzZSBpZiAoKGZsYWdzICYgRkxWX1ZJREVPX0ZSQU1FVFlQRV9NQVNLKSA9 PQo+IEZMVl9GUkFNRV9WSURFT19JTkZPX0NNRCkgewo+ID4gPiAgICAgICAgICAgICAgZ290byBz a2lwOwo+ID4gPiArICAgICAgICB9Cj4gPiA+ICAgICAgfSBlbHNlIGlmICh0eXBlID09IEZMVl9U QUdfVFlQRV9NRVRBKSB7Cj4gPiA+ICAgICAgICAgIHN0cmVhbV90eXBlPUZMVl9TVFJFQU1fVFlQ RV9TVUJUSVRMRTsKPiA+ID4gICAgICAgICAgaWYgKHNpemUgPiAxMyArIDEgKyA0KSB7IC8vIEhl YWRlci10eXBlIG1ldGFkYXRhIHN0dWZmCj4gPiA+IEBAIC0xMjg3LDYgKzE0NTcsMTEgQEAgcmV0 cnlfZHVyYXRpb246Cj4gPiA+ICAgICAgICAgICAgICBnb3RvIGxlYXZlOwo+ID4gPiAgICAgICAg ICB9Cj4gPiA+Cj4gPiA+ICsgICAgICAgIGlmIChlbmhhbmNlZF9mbHYgJiYgc3RyZWFtX3R5cGUg PT0gRkxWX1NUUkVBTV9UWVBFX1ZJREVPICYmCj4gZmx2LT5tZXRhX2NvbG9yX2luZm9fZmxhZykg ewo+ID4gPiArICAgICAgICAgICAgZmx2X3VwZGF0ZV92aWRlb19jb2xvcl9pbmZvKHMsIHN0KTsg Ly8gdXBkYXRlIGF2IHBhY2tldAo+IHNpZGUgZGF0YQo+ID4gPiArICAgICAgICAgICAgZmx2LT5t ZXRhX2NvbG9yX2luZm9fZmxhZyA9IDA7Cj4gPiA+ICsgICAgICAgIH0KPiA+ID4gKwo+ID4gPiAg ICAgICAgICBpZiAoc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IMjY0IHx8 Cj4gc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9NUEVHNCB8fAo+ID4gPiAg ICAgICAgICAgICAgKHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfSEVWQyAm JiB0eXBlID09Cj4gUGFja2V0VHlwZUNvZGVkRnJhbWVzKSkgewo+ID4gPiAgICAgICAgICAgICAg Ly8gc2lnbiBleHRlbnNpb24KPiA+ID4gLS0KPiA+ID4gMi40NC4wCj4gPiA+Cj4gPiA+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+IGZmbXBlZy1k ZXZlbCBtYWlsaW5nIGxpc3QKPiA+ID4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiA+ID4gaHR0 cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4gPiA+Cj4gPiA+ IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+ID4gPiBmZm1wZWct ZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+ID4K PiA+Cj4gPgo+ID4gQW55IGNvbW1lbnRzPwo+Cj4gQXBwbGllZAo+Cj4KPiBUaGFua3MKPiBTdGV2 ZW4KPgoKU3RldmVuIGFuZCBaaHUgUGVuZ2ZlaSwKClRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoc2V0 LiBDYW4gdGhpcyBiZSBiYWNrLXBvcnRlZCB0byByZWxlYXNlLzYuMT8KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlz dApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0 aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBl bWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJz Y3JpYmUiLgo=