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 C8E234A01E for ; Mon, 18 Mar 2024 09:09:21 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5545E68D25A; Mon, 18 Mar 2024 11:09:19 +0200 (EET) Received: from mail-ua1-f53.google.com (mail-ua1-f53.google.com [209.85.222.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DFF9768C4B0 for ; Mon, 18 Mar 2024 11:09:12 +0200 (EET) Received: by mail-ua1-f53.google.com with SMTP id a1e0cc1a2514c-7de12bcec8bso1840887241.1 for ; Mon, 18 Mar 2024 02:09:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710752951; x=1711357751; darn=ffmpeg.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=o3IIzMyJx5CBiqsJWJaTUXECnNohgO47HoVpPlSFJTE=; b=hxF4pr2aqTyb/R7RvUb3dQK3Euw+Kp9zInm7mcC+NP3t2AcPgDhE96cbAg3dn8bZMV JgzTxKisOkce8iVUh72aLvh1JOpaKfDLppODPoOucR0SH54GgG34Sdl8YC2A9eWjAciB qZjhq2GVU1HwFxIoDqWHri7RYQq51enulezmJ5VgLwsH4IK3fTIVuUQW8jmaY2oSMzmq Vhiqy50xYtFwoUcjcSM/IuA1EjXEEfRJQgsr7i9lRBHLpU5fiQMv749e92x9AwhBLLf6 2pbG9ocQlUO0cgUd3MH0RyGuOIVv4xGxtdCBE4obdW8E2eg/u6UONdnrdZd1GIL58u+D Zfug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710752951; x=1711357751; h=content-transfer-encoding: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=o3IIzMyJx5CBiqsJWJaTUXECnNohgO47HoVpPlSFJTE=; b=VikYlQLTGiTYvdP1uMQ9r/F5hZef1roFFA+BJCDyUpSgtfQGZG2S0yPyQLop06Rtso loh5IFXfSjRvrBesmPKFMqNtx/Uvh8zZiZvQ/wLqW/+8dEidAJAcDy1g0C5aHsGNnN/y PW+YZOVx9ku9RHBdv5p6p0xFQj2l+g74lxxIfsaxIhbUZ5LY0EF3khe2TBXpniwYcZtH 7q/K+tL6hDqzW8WjbvcL5CpyAblz6XvyAy+C61k+2Ju5QAKo+2RWY2CdClR6IO3VDBq+ GQRfzaXb93ywpAgcWuF4KzgfdO+SQAKgWI0PKA6a3HiHn/5k8fPviETYRDSOs2avxuzv NjNA== X-Gm-Message-State: AOJu0YxxtMdhPXI+aORp/urdJbvhcv8YF2rj2OcnvZEOCJqO+ukQJn0V wyrfwx5Dy6+KgoRf+2ulalBsRUd+uuhbrhoFGyJO3d4JCH5kcmnnO3ipSpzJqKqA/kvTUliRq/0 gh+0JhVnDZW20nblkujStMzJvlcs+4j0D X-Google-Smtp-Source: AGHT+IE8W1uyGkJhGp9EsJmQTx0EU2mMNjpUDFS0PR8S0M0Qx2LTvHd/oopuRr9lC1ZL8ph+Ar0x9MYeiflEpOfHrmg= X-Received: by 2002:a67:af03:0:b0:475:1bd7:29c9 with SMTP id v3-20020a67af03000000b004751bd729c9mr9026274vsl.16.1710752951042; Mon, 18 Mar 2024 02:09:11 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Steven Liu Date: Mon, 18 Mar 2024 17:09:00 +0800 Message-ID: To: FFmpeg development discussions and patches 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: U3RldmVuIExpdSA8bGluZ2ppdWppYW5rZUBnbWFpbC5jb20+IOS6jjIwMjTlubQz5pyIN+aXpeWR qOWbmyAxNzozM+WGmemBk++8mgo+Cj4gemh1cGVuZ2ZlaSB2aWEgZmZtcGVnLWRldmVsIDxmZm1w ZWctZGV2ZWxAZmZtcGVnLm9yZz4g5LqOMjAyNOW5tDPmnIg05pel5ZGo5LiAIDIxOjUy5YaZ6YGT 77yaCj4gPgo+ID4gRnJvbTogWmh1IFBlbmdmZWkgPDQxMTI5NDk2MkBxcS5jb20+Cj4gPgo+ID4g U2lnbmVkLW9mZi1ieTogWmh1IFBlbmdmZWkgPDQxMTI5NDk2MkBxcS5jb20+Cj4gPiAtLS0KPiA+ ICBsaWJhdmZvcm1hdC9mbHZkZWMuYyB8IDE3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDE3NiBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2ZsdmRlYy5jIGIv bGliYXZmb3JtYXQvZmx2ZGVjLmMKPiA+IGluZGV4IGUyNWI1YmQxNjMuLjJhMGFlYzcyOTEgMTAw NjQ0Cj4gPiAtLS0gYS9saWJhdmZvcm1hdC9mbHZkZWMuYwo+ID4gKysrIGIvbGliYXZmb3JtYXQv Zmx2ZGVjLmMKPiA+IEBAIC0zMyw2ICszMyw3IEBACj4gPiAgI2luY2x1ZGUgImxpYmF2dXRpbC9p bnRlcm5hbC5oIgo+ID4gICNpbmNsdWRlICJsaWJhdnV0aWwvaW50ZmxvYXQuaCIKPiA+ICAjaW5j bHVkZSAibGliYXZ1dGlsL2ludHJlYWR3cml0ZS5oIgo+ID4gKyNpbmNsdWRlICJsaWJhdnV0aWwv bWFzdGVyaW5nX2Rpc3BsYXlfbWV0YWRhdGEuaCIKPiA+ICAjaW5jbHVkZSAibGliYXZ1dGlsL21h dGhlbWF0aWNzLmgiCj4gPiAgI2luY2x1ZGUgImF2Zm9ybWF0LmgiCj4gPiAgI2luY2x1ZGUgImRl bXV4LmgiCj4gPiBAQCAtNDUsNiArNDYsMjggQEAKPiA+Cj4gPiAgI2RlZmluZSBNQVhfREVQVEgg MTYgICAgICAvLy88IGFyYml0cmFyeSBsaW1pdCB0byBwcmV2ZW50IHVuYm91bmRlZCByZWN1cnNp b24KPiA+Cj4gPiArdHlwZWRlZiBzdHJ1Y3QgRkxWTWFzdGVyaW5nTWV0YSB7Cj4gPiArICAgIGRv dWJsZSByX3g7Cj4gPiArICAgIGRvdWJsZSByX3k7Cj4gPiArICAgIGRvdWJsZSBnX3g7Cj4gPiAr ICAgIGRvdWJsZSBnX3k7Cj4gPiArICAgIGRvdWJsZSBiX3g7Cj4gPiArICAgIGRvdWJsZSBiX3k7 Cj4gPiArICAgIGRvdWJsZSB3aGl0ZV94Owo+ID4gKyAgICBkb3VibGUgd2hpdGVfeTsKPiA+ICsg ICAgZG91YmxlIG1heF9sdW1pbmFuY2U7Cj4gPiArICAgIGRvdWJsZSBtaW5fbHVtaW5hbmNlOwo+ ID4gK30gRkxWTWFzdGVyaW5nTWV0YTsKPiA+ICsKPiA+ICt0eXBlZGVmIHN0cnVjdCBGTFZNZXRh VmlkZW9Db2xvciB7Cj4gPiArICAgIHVpbnQ2NF90IG1hdHJpeF9jb2VmZmljaWVudHM7Cj4gPiAr ICAgIHVpbnQ2NF90IHRyYW5zZmVyX2NoYXJhY3RlcmlzdGljczsKPiA+ICsgICAgdWludDY0X3Qg cHJpbWFyaWVzOwo+ID4gKyAgICB1aW50NjRfdCBtYXhfY2xsOwo+ID4gKyAgICB1aW50NjRfdCBt YXhfZmFsbDsKPiA+ICsgICAgRkxWTWFzdGVyaW5nTWV0YSBtYXN0ZXJpbmdfbWV0YTsKPiA+ICt9 IEZMVk1ldGFWaWRlb0NvbG9yOwo+ID4gKwo+ID4gIHR5cGVkZWYgc3RydWN0IEZMVkNvbnRleHQg ewo+ID4gICAgICBjb25zdCBBVkNsYXNzICpjbGFzczsgLy8vPCBDbGFzcyBmb3IgcHJpdmF0ZSBv cHRpb25zLgo+ID4gICAgICBpbnQgdHJ1c3RfbWV0YWRhdGE7ICAgLy8vPCBjb25maWd1cmUgc3Ry ZWFtcyBhY2NvcmRpbmcgb25NZXRhRGF0YQo+ID4gQEAgLTgwLDYgKzEwMyw4IEBAIHR5cGVkZWYg c3RydWN0IEZMVkNvbnRleHQgewo+ID4gICAgICBpbnQ2NF90IHRpbWVfb2Zmc2V0Owo+ID4gICAg ICBpbnQ2NF90IHRpbWVfcG9zOwo+ID4KPiA+ICsgICAgRkxWTWV0YVZpZGVvQ29sb3IgKm1ldGFW aWRlb0NvbG9yOwo+ID4gKyAgICBpbnQgbWV0YV9jb2xvcl9pbmZvX2ZsYWc7Cj4gPiAgfSBGTFZD b250ZXh0Owo+ID4KPiA+ICAvKiBBTUYgZGF0ZSB0eXBlICovCj4gPiBAQCAtNTI0LDYgKzU0OSw3 IEBAIHN0YXRpYyBpbnQgYW1mX3BhcnNlX29iamVjdChBVkZvcm1hdENvbnRleHQgKnMsIEFWU3Ry ZWFtICphc3RyZWFtLAo+ID4gICAgICBGTFZDb250ZXh0ICpmbHYgPSBzLT5wcml2X2RhdGE7Cj4g PiAgICAgIEFWSU9Db250ZXh0ICppb2M7Cj4gPiAgICAgIEFNRkRhdGFUeXBlIGFtZl90eXBlOwo+ ID4gKyAgICBGTFZNZXRhVmlkZW9Db2xvciAqbWV0YV92aWRlb19jb2xvciA9IGZsdi0+bWV0YVZp ZGVvQ29sb3I7Cj4gPiAgICAgIGNoYXIgc3RyX3ZhbFsxMDI0XTsKPiA+ICAgICAgZG91YmxlIG51 bV92YWw7Cj4gPiAgICAgIGFtZl9kYXRlIGRhdGU7Cj4gPiBAQCAtNjcyLDYgKzY5OCw0MyBAQCBz dGF0aWMgaW50IGFtZl9wYXJzZV9vYmplY3QoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlN0cmVhbSAq YXN0cmVhbSwKPiA+ICAgICAgICAgICAgICB9Cj4gPiAgICAgICAgICB9Cj4gPgo+ID4gKyAgICAg ICAgaWYgKG1ldGFfdmlkZW9fY29sb3IpIHsKPiA+ICsgICAgICAgICAgICBpZiAoYW1mX3R5cGUg PT0gQU1GX0RBVEFfVFlQRV9OVU1CRVIgfHwKPiA+ICsgICAgICAgICAgICAgICAgYW1mX3R5cGUg PT0gQU1GX0RBVEFfVFlQRV9CT09MKSB7Cj4gPiArICAgICAgICAgICAgICAgIGlmICghc3RyY21w KGtleSwgImNvbG9yUHJpbWFyaWVzIikpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFf dmlkZW9fY29sb3ItPnByaW1hcmllcyA9IG51bV92YWw7Cj4gPiArICAgICAgICAgICAgICAgIH0g ZWxzZSBpZiAoIXN0cmNtcChrZXksICJ0cmFuc2ZlckNoYXJhY3RlcmlzdGljcyIpKSB7Cj4gPiAr ICAgICAgICAgICAgICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT50cmFuc2Zlcl9jaGFyYWN0ZXJp c3RpY3MgPSBudW1fdmFsOwo+ID4gKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAo a2V5LCAibWF0cml4Q29lZmZpY2llbnRzIikpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgIG1l dGFfdmlkZW9fY29sb3ItPm1hdHJpeF9jb2VmZmljaWVudHMgPSBudW1fdmFsOwo+ID4gKyAgICAg ICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAibWF4RmFsbCIpKSB7Cj4gPiArICAg ICAgICAgICAgICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT5tYXhfZmFsbCA9IG51bV92YWw7Cj4g PiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJtYXhDTEwiKSkgewo+ ID4gKyAgICAgICAgICAgICAgICAgICAgbWV0YV92aWRlb19jb2xvci0+bWF4X2NsbCA9IG51bV92 YWw7Cj4gPiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJyZWRYIikp IHsKPiA+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hc3RlcmluZ19t ZXRhLnJfeCA9IG51bV92YWw7Cj4gPiArICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNt cChrZXksICJyZWRZIikpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFfdmlkZW9fY29s b3ItPm1hc3RlcmluZ19tZXRhLnJfeSA9IG51bV92YWw7Cj4gPiArICAgICAgICAgICAgICAgIH0g ZWxzZSBpZiAoIXN0cmNtcChrZXksICJncmVlblgiKSkgewo+ID4gKyAgICAgICAgICAgICAgICAg ICAgbWV0YV92aWRlb19jb2xvci0+bWFzdGVyaW5nX21ldGEuZ194ID0gbnVtX3ZhbDsKPiA+ICsg ICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgImdyZWVuWSIpKSB7Cj4gPiAr ICAgICAgICAgICAgICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT5tYXN0ZXJpbmdfbWV0YS5nX3kg PSBudW1fdmFsOwo+ID4gKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAi Ymx1ZVgiKSkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgbWV0YV92aWRlb19jb2xvci0+bWFz dGVyaW5nX21ldGEuYl94ID0gbnVtX3ZhbDsKPiA+ICsgICAgICAgICAgICAgICAgfSBlbHNlIGlm ICghc3RyY21wKGtleSwgImJsdWVZIikpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFf dmlkZW9fY29sb3ItPm1hc3RlcmluZ19tZXRhLmJfeSA9IG51bV92YWw7Cj4gPiArICAgICAgICAg ICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJ3aGl0ZVBvaW50WCIpKSB7Cj4gPiArICAg ICAgICAgICAgICAgICAgICBtZXRhX3ZpZGVvX2NvbG9yLT5tYXN0ZXJpbmdfbWV0YS53aGl0ZV94 ID0gbnVtX3ZhbDsKPiA+ICsgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwg IndoaXRlUG9pbnRZIikpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFfdmlkZW9fY29s b3ItPm1hc3RlcmluZ19tZXRhLndoaXRlX3kgPSBudW1fdmFsOwo+ID4gKyAgICAgICAgICAgICAg ICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAibWF4THVtaW5hbmNlIikpIHsKPiA+ICsgICAgICAg ICAgICAgICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPm1hc3RlcmluZ19tZXRhLm1heF9sdW1pbmFu Y2UgPSBudW1fdmFsOwo+ID4gKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5 LCAibWluTHVtaW5hbmNlIikpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgIG1ldGFfdmlkZW9f Y29sb3ItPm1hc3RlcmluZ19tZXRhLm1pbl9sdW1pbmFuY2UgPSBudW1fdmFsOwo+ID4gKyAgICAg ICAgICAgICAgICB9Cj4gPiArICAgICAgICAgICAgfQo+ID4gKyAgICAgICAgfQo+ID4gKwo+ID4g ICAgICAgICAgaWYgKGFtZl90eXBlID09IEFNRl9EQVRBX1RZUEVfT0JKRUNUICYmIHMtPm5iX3N0 cmVhbXMgPT0gMSAmJgo+ID4gICAgICAgICAgICAgKCghYXBhciAmJiAhc3RyY21wKGtleSwgImF1 ZGlvY29kZWNpZCIpKSB8fAo+ID4gICAgICAgICAgICAgICghdnBhciAmJiAhc3RyY21wKGtleSwg InZpZGVvY29kZWNpZCIpKSkpCj4gPiBAQCAtODI0LDYgKzg4Nyw3IEBAIHN0YXRpYyBpbnQgZmx2 X3JlYWRfY2xvc2UoQVZGb3JtYXRDb250ZXh0ICpzKQo+ID4gICAgICAgICAgYXZfZnJlZXAoJmZs di0+bmV3X2V4dHJhZGF0YVtpXSk7Cj4gPiAgICAgIGF2X2ZyZWVwKCZmbHYtPmtleWZyYW1lX3Rp bWVzKTsKPiA+ICAgICAgYXZfZnJlZXAoJmZsdi0+a2V5ZnJhbWVfZmlsZXBvc2l0aW9ucyk7Cj4g PiArICAgIGF2X2ZyZWVwKCZmbHYtPm1ldGFWaWRlb0NvbG9yKTsKPiA+ICAgICAgcmV0dXJuIDA7 Cj4gPiAgfQo+ID4KPiA+IEBAIC0xMDI4LDYgKzEwOTIsMTAzIEBAIHN0YXRpYyBpbnQgcmVzeW5j KEFWRm9ybWF0Q29udGV4dCAqcykKPiA+ICAgICAgcmV0dXJuIEFWRVJST1JfRU9GOwo+ID4gIH0K PiA+Cj4gPiArc3RhdGljIGludCBmbHZfcGFyc2VfdmlkZW9fY29sb3JfaW5mbyhBVkZvcm1hdENv bnRleHQgKnMsIEFWU3RyZWFtICpzdCwgaW50NjRfdCBuZXh0X3BvcykKPiA+ICt7Cj4gPiArICAg IEZMVkNvbnRleHQgKmZsdiA9IHMtPnByaXZfZGF0YTsKPiA+ICsgICAgQU1GRGF0YVR5cGUgdHlw ZTsKPiA+ICsgICAgQVZJT0NvbnRleHQgKmlvYzsKPiA+ICsgICAgY2hhciBidWZmZXJbMzJdOwo+ ID4gKyAgICBpb2MgICAgID0gcy0+cGI7Cj4gPiArCj4gPiArICAgIC8vIGZpcnN0IG9iamVjdCBu ZWVkcyB0byBiZSAiY29sb3JJbmZvIiBzdHJpbmcKPiA+ICsgICAgdHlwZSA9IGF2aW9fcjgoaW9j KTsKPiA+ICsgICAgaWYgKHR5cGUgIT0gQU1GX0RBVEFfVFlQRV9TVFJJTkcgfHwKPiA+ICsgICAg ICAgIGFtZl9nZXRfc3RyaW5nKGlvYywgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSkgPCAwKQo+ID4g KyAgICAgICAgcmV0dXJuIFRZUEVfVU5LTk9XTjsKPiA+ICsKPiA+ICsgICAgaWYgKHN0cmNtcChi dWZmZXIsICJjb2xvckluZm8iKSkgewo+ID4gKyAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19ERUJV RywgIlVua25vd24gdHlwZSAlc1xuIiwgYnVmZmVyKTsKPiA+ICsgICAgICAgIHJldHVybiBUWVBF X1VOS05PV047Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsgICAgaWYgKCEoZmx2LT5tZXRhVmlkZW9D b2xvciA9IGF2X21hbGxvY3ooc2l6ZW9mKEZMVk1ldGFWaWRlb0NvbG9yKSkpKSB7Cj4gPiArICAg ICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ID4gKyAgICB9Cj4gPiArICAgIGZsdi0+bWV0 YV9jb2xvcl9pbmZvX2ZsYWcgPSAxOwo+ID4gKyAgICBhbWZfcGFyc2Vfb2JqZWN0KHMsIE5VTEws IE5VTEwsIGJ1ZmZlciwgbmV4dF9wb3MsIDApOyAvLyBwYXJzZSBtZXRhZGF0YQo+ID4gKyAgICBy ZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBmbHZfdXBkYXRlX3ZpZGVvX2Nv bG9yX2luZm8oQVZGb3JtYXRDb250ZXh0ICpzLCBBVlN0cmVhbSAqc3QpCj4gPiArewo+ID4gKyAg ICBGTFZDb250ZXh0ICpmbHYgPSBzLT5wcml2X2RhdGE7Cj4gPiArICAgIGNvbnN0IEZMVk1ldGFW aWRlb0NvbG9yKiBtZXRhX3ZpZGVvX2NvbG9yID0gZmx2LT5tZXRhVmlkZW9Db2xvcjsKPiA+ICsg ICAgY29uc3QgRkxWTWFzdGVyaW5nTWV0YSAqbWFzdGVyaW5nX21ldGEgPSAmbWV0YV92aWRlb19j b2xvci0+bWFzdGVyaW5nX21ldGE7Cj4gPiArCj4gPiArICAgIGludCBoYXNfbWFzdGVyaW5nX3By aW1hcmllcywgaGFzX21hc3RlcmluZ19sdW1pbmFuY2U7Cj4gPiArICAgIC8vIE1hc3RlcmluZyBw cmltYXJpZXMgYXJlIENJRSAxOTMxIGNvb3JkcywgYW5kIG11c3QgYmUgPiAwLgo+ID4gKyAgICBo YXNfbWFzdGVyaW5nX3ByaW1hcmllcyA9Cj4gPiArICAgICAgICBtYXN0ZXJpbmdfbWV0YS0+cl94 ID4gMCAmJiBtYXN0ZXJpbmdfbWV0YS0+cl95ID4gMCAmJgo+ID4gKyAgICAgICAgbWFzdGVyaW5n X21ldGEtPmdfeCA+IDAgJiYgbWFzdGVyaW5nX21ldGEtPmdfeSA+IDAgJiYKPiA+ICsgICAgICAg IG1hc3RlcmluZ19tZXRhLT5iX3ggPiAwICYmIG1hc3RlcmluZ19tZXRhLT5iX3kgPiAwICYmCj4g PiArICAgICAgICBtYXN0ZXJpbmdfbWV0YS0+d2hpdGVfeCA+IDAgJiYgbWFzdGVyaW5nX21ldGEt PndoaXRlX3kgPiAwOwo+ID4gKyAgICBoYXNfbWFzdGVyaW5nX2x1bWluYW5jZSA9IG1hc3Rlcmlu Z19tZXRhLT5tYXhfbHVtaW5hbmNlID4gMCAmJiBtYXN0ZXJpbmdfbWV0YS0+bWluX2x1bWluYW5j ZSA+IDA7Cj4gPiArCj4gPiArICAgIGlmIChtZXRhX3ZpZGVvX2NvbG9yLT5tYXRyaXhfY29lZmZp Y2llbnRzICE9IEFWQ09MX1NQQ19SRVNFUlZFRCkKPiA+ICsgICAgICAgIHN0LT5jb2RlY3Bhci0+ Y29sb3Jfc3BhY2UgPSBtZXRhX3ZpZGVvX2NvbG9yLT5tYXRyaXhfY29lZmZpY2llbnRzOwo+ID4g KyAgICBpZiAobWV0YV92aWRlb19jb2xvci0+cHJpbWFyaWVzICE9IEFWQ09MX1BSSV9SRVNFUlZF RCAmJgo+ID4gKyAgICAgICAgbWV0YV92aWRlb19jb2xvci0+cHJpbWFyaWVzICE9IEFWQ09MX1BS SV9SRVNFUlZFRDApCj4gPiArICAgICAgICBzdC0+Y29kZWNwYXItPmNvbG9yX3ByaW1hcmllcyA9 IG1ldGFfdmlkZW9fY29sb3ItPnByaW1hcmllczsKPiA+ICsgICAgaWYgKG1ldGFfdmlkZW9fY29s b3ItPnRyYW5zZmVyX2NoYXJhY3RlcmlzdGljcyAhPSBBVkNPTF9UUkNfUkVTRVJWRUQgJiYKPiA+ ICsgICAgICAgIG1ldGFfdmlkZW9fY29sb3ItPnRyYW5zZmVyX2NoYXJhY3RlcmlzdGljcyAhPSBB VkNPTF9UUkNfUkVTRVJWRUQwKQo+ID4gKyAgICAgICAgc3QtPmNvZGVjcGFyLT5jb2xvcl90cmMg PSBtZXRhX3ZpZGVvX2NvbG9yLT50cmFuc2Zlcl9jaGFyYWN0ZXJpc3RpY3M7Cj4gPiArCj4gPiAr ICAgIGlmIChtZXRhX3ZpZGVvX2NvbG9yLT5tYXhfY2xsICYmIG1ldGFfdmlkZW9fY29sb3ItPm1h eF9mYWxsKSB7Cj4gPiArICAgICAgICBzaXplX3Qgc2l6ZSA9IDA7Cj4gPiArICAgICAgICBBVkNv bnRlbnRMaWdodE1ldGFkYXRhICptZXRhZGF0YSA9IGF2X2NvbnRlbnRfbGlnaHRfbWV0YWRhdGFf YWxsb2MoJnNpemUpOwo+ID4gKyAgICAgICAgaWYgKCFtZXRhZGF0YSkKPiA+ICsgICAgICAgICAg ICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ID4gKyAgICAgICAgaWYgKCFhdl9wYWNrZXRfc2lk ZV9kYXRhX2FkZCgmc3QtPmNvZGVjcGFyLT5jb2RlZF9zaWRlX2RhdGEsICZzdC0+Y29kZWNwYXIt Pm5iX2NvZGVkX3NpZGVfZGF0YSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQVZfUEtUX0RBVEFfQ09OVEVOVF9MSUdIVF9MRVZFTCwgbWV0YWRhdGEsIHNpemUs IDApKSB7Cj4gPiArICAgICAgICAgICAgYXZfZnJlZXAoJm1ldGFkYXRhKTsKPiA+ICsgICAgICAg ICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ID4gKyAgICAgICAgfQo+ID4gKyAgICAgICAg bWV0YWRhdGEtPk1heENMTCAgPSBtZXRhX3ZpZGVvX2NvbG9yLT5tYXhfY2xsOwo+ID4gKyAgICAg ICAgbWV0YWRhdGEtPk1heEZBTEwgPSBtZXRhX3ZpZGVvX2NvbG9yLT5tYXhfZmFsbDsKPiA+ICsg ICAgfQo+ID4gKwo+ID4gKyAgICBpZiAoaGFzX21hc3RlcmluZ19wcmltYXJpZXMgfHwgaGFzX21h c3RlcmluZ19sdW1pbmFuY2UpIHsKPiA+ICsgICAgICAgIEFWTWFzdGVyaW5nRGlzcGxheU1ldGFk YXRhICptZXRhZGF0YTsKPiA+ICsgICAgICAgIEFWUGFja2V0U2lkZURhdGEgKnNkID0gYXZfcGFj a2V0X3NpZGVfZGF0YV9uZXcoJnN0LT5jb2RlY3Bhci0+Y29kZWRfc2lkZV9kYXRhLAo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0 LT5jb2RlY3Bhci0+bmJfY29kZWRfc2lkZV9kYXRhLAo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZfUEtUX0RBVEFfTUFTVEVSSU5H X0RJU1BMQVlfTUVUQURBVEEsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoQVZNYXN0ZXJpbmdEaXNwbGF5TWV0YWRhdGEp LCAwKTsKPiA+ICsgICAgICAgIGlmICghc2QpCj4gPiArICAgICAgICAgICAgcmV0dXJuIEFWRVJS T1IoRU5PTUVNKTsKPiA+ICsgICAgICAgIG1ldGFkYXRhID0gKEFWTWFzdGVyaW5nRGlzcGxheU1l dGFkYXRhKilzZC0+ZGF0YTsKPiA+ICsgICAgICAgIG1lbXNldChtZXRhZGF0YSwgMCwgc2l6ZW9m KEFWTWFzdGVyaW5nRGlzcGxheU1ldGFkYXRhKSk7Cj4gPiArICAgICAgICAvLyBoZHJDbGwKPiA+ ICsgICAgICAgIGlmIChoYXNfbWFzdGVyaW5nX2x1bWluYW5jZSkgewo+ID4gKyAgICAgICAgICAg IG1ldGFkYXRhLT5tYXhfbHVtaW5hbmNlID0gYXZfZDJxKG1hc3RlcmluZ19tZXRhLT5tYXhfbHVt aW5hbmNlLCBJTlRfTUFYKTsKPiA+ICsgICAgICAgICAgICBtZXRhZGF0YS0+bWluX2x1bWluYW5j ZSA9IGF2X2QycShtYXN0ZXJpbmdfbWV0YS0+bWluX2x1bWluYW5jZSwgSU5UX01BWCk7Cj4gPiAr ICAgICAgICAgICAgbWV0YWRhdGEtPmhhc19sdW1pbmFuY2UgPSAxOwo+ID4gKyAgICAgICAgfQo+ ID4gKyAgICAgICAgLy8gaGRyTWRjdgo+ID4gKyAgICAgICAgaWYgKGhhc19tYXN0ZXJpbmdfcHJp bWFyaWVzKSB7Cj4gPiArICAgICAgICAgICAgbWV0YWRhdGEtPmRpc3BsYXlfcHJpbWFyaWVzWzBd WzBdID0gYXZfZDJxKG1hc3RlcmluZ19tZXRhLT5yX3gsIElOVF9NQVgpOwo+ID4gKyAgICAgICAg ICAgIG1ldGFkYXRhLT5kaXNwbGF5X3ByaW1hcmllc1swXVsxXSA9IGF2X2QycShtYXN0ZXJpbmdf bWV0YS0+cl95LCBJTlRfTUFYKTsKPiA+ICsgICAgICAgICAgICBtZXRhZGF0YS0+ZGlzcGxheV9w cmltYXJpZXNbMV1bMF0gPSBhdl9kMnEobWFzdGVyaW5nX21ldGEtPmdfeCwgSU5UX01BWCk7Cj4g PiArICAgICAgICAgICAgbWV0YWRhdGEtPmRpc3BsYXlfcHJpbWFyaWVzWzFdWzFdID0gYXZfZDJx KG1hc3RlcmluZ19tZXRhLT5nX3ksIElOVF9NQVgpOwo+ID4gKyAgICAgICAgICAgIG1ldGFkYXRh LT5kaXNwbGF5X3ByaW1hcmllc1syXVswXSA9IGF2X2QycShtYXN0ZXJpbmdfbWV0YS0+Yl94LCBJ TlRfTUFYKTsKPiA+ICsgICAgICAgICAgICBtZXRhZGF0YS0+ZGlzcGxheV9wcmltYXJpZXNbMl1b MV0gPSBhdl9kMnEobWFzdGVyaW5nX21ldGEtPmJfeSwgSU5UX01BWCk7Cj4gPiArICAgICAgICAg ICAgbWV0YWRhdGEtPndoaXRlX3BvaW50WzBdID0gYXZfZDJxKG1hc3RlcmluZ19tZXRhLT53aGl0 ZV94LCBJTlRfTUFYKTsKPiA+ICsgICAgICAgICAgICBtZXRhZGF0YS0+d2hpdGVfcG9pbnRbMV0g PSBhdl9kMnEobWFzdGVyaW5nX21ldGEtPndoaXRlX3ksIElOVF9NQVgpOwo+ID4gKyAgICAgICAg ICAgIG1ldGFkYXRhLT5oYXNfcHJpbWFyaWVzID0gMTsKPiA+ICsgICAgICAgIH0KPiA+ICsgICAg fQo+ID4gKyAgICByZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIGludCBmbHZfcmVh ZF9wYWNrZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQo+ID4gIHsKPiA+ICAg ICAgRkxWQ29udGV4dCAqZmx2ID0gcy0+cHJpdl9kYXRhOwo+ID4gQEAgLTExMDAsOCArMTI2MSwx NyBAQCByZXRyeToKPiA+ICAgICAgICAgICAgICB2aWRlb19jb2RlY19pZCA9IGF2aW9fcmIzMihz LT5wYik7Cj4gPiAgICAgICAgICAgICAgc2l6ZSAtPSA0Owo+ID4gICAgICAgICAgfQo+ID4gLSAg ICAgICAgaWYgKChmbGFncyAmIEZMVl9WSURFT19GUkFNRVRZUEVfTUFTSykgPT0gRkxWX0ZSQU1F X1ZJREVPX0lORk9fQ01EKQo+ID4gKwo+ID4gKyAgICAgICAgaWYgKGVuaGFuY2VkX2ZsdiAmJiBz dHJlYW1fdHlwZSA9PSBGTFZfU1RSRUFNX1RZUEVfVklERU8gJiYgKGZsYWdzICYgRkxWX1ZJREVP X0ZSQU1FVFlQRV9NQVNLKSA9PSBGTFZfRlJBTUVfVklERU9fSU5GT19DTUQpIHsKPiA+ICsgICAg ICAgICAgICBpbnQgcGt0X3R5cGUgPSBmbGFncyAmIDB4MEY7Cj4gPiArICAgICAgICAgICAgaWYg KHBrdF90eXBlID09IFBhY2tldFR5cGVNZXRhZGF0YSkgewo+ID4gKyAgICAgICAgICAgICAgICBp bnQgcmV0ID0gZmx2X3BhcnNlX3ZpZGVvX2NvbG9yX2luZm8ocywgc3QsIG5leHQpOwo+ID4gKyAg ICAgICAgICAgICAgICBhdl9sb2cocywgQVZfTE9HX0RFQlVHLCAiZW5oYW5jZWQgZmx2IHBhcnNl IG1ldGFkYXRhIHJldCAlZCBhbmQgc2tpcFxuIiwgcmV0KTsKPiA+ICsgICAgICAgICAgICB9Cj4g PiArICAgICAgICAgICAgZ290byBza2lwOwo+ID4gKyAgICAgICAgfSBlbHNlIGlmICgoZmxhZ3Mg JiBGTFZfVklERU9fRlJBTUVUWVBFX01BU0spID09IEZMVl9GUkFNRV9WSURFT19JTkZPX0NNRCkg ewo+ID4gICAgICAgICAgICAgIGdvdG8gc2tpcDsKPiA+ICsgICAgICAgIH0KPiA+ICAgICAgfSBl bHNlIGlmICh0eXBlID09IEZMVl9UQUdfVFlQRV9NRVRBKSB7Cj4gPiAgICAgICAgICBzdHJlYW1f dHlwZT1GTFZfU1RSRUFNX1RZUEVfU1VCVElUTEU7Cj4gPiAgICAgICAgICBpZiAoc2l6ZSA+IDEz ICsgMSArIDQpIHsgLy8gSGVhZGVyLXR5cGUgbWV0YWRhdGEgc3R1ZmYKPiA+IEBAIC0xMjg3LDYg KzE0NTcsMTEgQEAgcmV0cnlfZHVyYXRpb246Cj4gPiAgICAgICAgICAgICAgZ290byBsZWF2ZTsK PiA+ICAgICAgICAgIH0KPiA+Cj4gPiArICAgICAgICBpZiAoZW5oYW5jZWRfZmx2ICYmIHN0cmVh bV90eXBlID09IEZMVl9TVFJFQU1fVFlQRV9WSURFTyAmJiBmbHYtPm1ldGFfY29sb3JfaW5mb19m bGFnKSB7Cj4gPiArICAgICAgICAgICAgZmx2X3VwZGF0ZV92aWRlb19jb2xvcl9pbmZvKHMsIHN0 KTsgLy8gdXBkYXRlIGF2IHBhY2tldCBzaWRlIGRhdGEKPiA+ICsgICAgICAgICAgICBmbHYtPm1l dGFfY29sb3JfaW5mb19mbGFnID0gMDsKPiA+ICsgICAgICAgIH0KPiA+ICsKPiA+ICAgICAgICAg IGlmIChzdC0+Y29kZWNwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0gyNjQgfHwgc3QtPmNv ZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9NUEVHNCB8fAo+ID4gICAgICAgICAgICAg IChzdC0+Y29kZWNwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0hFVkMgJiYgdHlwZSA9PSBQ YWNrZXRUeXBlQ29kZWRGcmFtZXMpKSB7Cj4gPiAgICAgICAgICAgICAgLy8gc2lnbiBleHRlbnNp b24KPiA+IC0tCj4gPiAyLjQ0LjAKPiA+Cj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+ID4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gZmZt cGVnLWRldmVsQGZmbXBlZy5vcmcKPiA+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ZmbXBlZy1kZXZlbAo+ID4KPiA+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3Zl LCBvciBlbWFpbAo+ID4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1Ympl Y3QgInVuc3Vic2NyaWJlIi4KPgo+Cj4KPiBBbnkgY29tbWVudHM/CgpBcHBsaWVkCgoKVGhhbmtz ClN0ZXZlbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpm Zm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8v ZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUs IHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5v cmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==