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 E67764AAA0 for ; Sun, 12 May 2024 08:54:23 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6801868D5FB; Sun, 12 May 2024 11:54:18 +0300 (EEST) Received: from mail-lf1-f43.google.com (mail-lf1-f43.google.com [209.85.167.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B95B568C191 for ; Sun, 12 May 2024 11:54:11 +0300 (EEST) Received: by mail-lf1-f43.google.com with SMTP id 2adb3069b0e04-51f0f6b613dso4005968e87.1 for ; Sun, 12 May 2024 01:54:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715504051; x=1716108851; 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=G8Q6+YmAozojkv+oRUrjKONOFCWitycbKYrVDYqtsQg=; b=PTTmQJNFzooAPG+BmZ/evUrN8MwoAkK9VS2ZvEQ5HcoRkojwrueU4pP3f0wrq1gnK5 dMOP8v7BZF4X2rFlnPnCfCFFn6Fob1cP6vyG/yLX5c2K+y9ds8H6vs/0DYPmGDZbsURP gQ38udRYX9fhu4KRX+UkStyqtkea+fQXEz5bK0vNDmvHqKt/dOtUhpb+qoJ8DD+EM4KL G0y1LLE9zp0mUtaEu270RGBv8NzTk2xWn0F5tKuj69HZkPYRURc9hYpZoE2jXic1JefK gB7+vejOVs0SRFb5+rDzjeDLCUY58vbiZct23ANCUqkiK3ZqXadBMWHRrlRsRqIvEysE Yinw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715504051; x=1716108851; 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=G8Q6+YmAozojkv+oRUrjKONOFCWitycbKYrVDYqtsQg=; b=Hqm6GWN1gKjUuzTqlv/8Waw9QT06baSK57hx2rMM5O9FrANuQQjNUbbPMJ0kok81Wk 9ZVMoKRDp0hmVZGoMnCfr8ALhLd8nNMEHNpAbdZ1WJdTZYo3PeHsGQzzEWjBvDiLHhIJ xwoMB07PZm8UKvZQGU/Nzk0f40L5R+uTNlL7Bd98b4OTr+mTvmwl4XYVKeWbcB66NTX6 aqTHSfUuMbtk93KyjgxCa+WjqQihEeSFUQWHvGeemNIt6CYbzXGftXzff4IXi9EZpF1F Fplo3DV/h1+A5CL+vzlkXFMxdoUyaynBhuImn4P1dkRAqF4cHmKMAsSKtj+ETabJNkM7 ckzQ== X-Gm-Message-State: AOJu0Yy1/KWXVOr4lfT63/UMjUi82quEa9rExotp0kRtkoG+C2/IY/3N Uct1ALhRjZg2M7nBzKmrcOUA5PRL1du6c26b8SzZBie5Mp4evjaFQuWUqOUuI5OL6iTfNoRylKA IdqwpxFEbOAZ05lvtuqvkegWc6A== X-Google-Smtp-Source: AGHT+IGPNnUxIz+DyJtqr49P6zX+tj8vZ4m1SlFbi1g/QTqFKCiCI6j1TvPX6936IfCkuGSlPQFgM6dMqlb0NaDcDuM= X-Received: by 2002:ac2:4c55:0:b0:51b:cf34:a517 with SMTP id 2adb3069b0e04-5220fc7350bmr5382674e87.2.1715504050363; Sun, 12 May 2024 01:54:10 -0700 (PDT) MIME-Version: 1.0 References: <821cf833-ed3d-4068-92fb-01b247b767ee@gmail.com> In-Reply-To: From: Ruslan Chernenko Date: Sun, 12 May 2024 11:53:59 +0300 Message-ID: To: Cameron Gutman X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 2/2] avcodec/videotoolbox: av1 decoding not copying the sequence header obu into the bitstream 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: ffmpeg-devel@ffmpeg.org 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: KHJlc2VudCBkdWUgdG8gbm90IGFkZGluZyBtYWlsLWxpc3QgaW50byB0aGUgQ0MpCkhleSB0aGVy ZSEKVGhhbmtzIGZvciBjaGVja2luZyBvdXQgdGhlIHBhdGNoOwoKQXMgZm9yIHZpZGVvdG9vbGJv eF9hdjFfc3RhcnRfZnJhbWU6CkZvciB0aGUgYXZfZmFzdF9yZWFsbG9jIGNhbGwgaXQncyBtb3N0 bHkgdGhlIHNhbWUgdGhpbmcgYXMKZmZfdmlkZW90b29sYm94X2J1ZmZlcl9jb3B5IGRlZmluZWQg YXQgbGliYXZjb2RlYy92aWRlb3Rvb2xib3guYzo3OS4gSXQKdGFrZXMgYSBwb2ludGVyIHRvIGEg Yml0c3RyZWFtLCBpdHMgYWxsb2NhdGVkIHNpemUgYW5kIHVwZGF0ZXMgaXQuIEFsc28KdGhlcmUg aXMgYSB2aWRlb3Rvb2xib3hfY29tbW9uX2RlY29kZV9zbGljZSBkZWZpbmVkIGF0IGxpYmF2Y29k ZWMvCnZpZGVvdG9vbGJveDo0MzQsIHdoaWNoIGRvZXMgYSBwcmV0dHkgc2ltaWxhciBqb2IgdG8g dGhlIG9uZSBJIG1lbnRpb25lZCwKYnV0IGEgbGl0dGxlIGRpZmZlcmVudC4KCkFzIGZvciB2aWRl b3Rvb2xib3hfYXYxX2RlY29kZV9wYXJhbXM6CnZ0Y3R4LT5iaXRzdHJlYW0gYXQgdGhhdCBtb21l bnQgc2hhbGwgYmUgZW1wdHkgYXQgdGhhdCBwb2ludCwgc28gZG9lcyB0aGUKdnRjdHgtPmJpdHNy ZWFtX3NpemUKQW5kIGFzIGl0IHR1cm5lZCBvdXQgdGhlIHNlcXVlbmNlIGhlYWRlciBvYnUgbmVl ZHMgdG8gYmUgY29waWVkIGludG8gdGhlCmJpdHN0cmVhbSBmb3IgdmlkZW90b29sYm94IHRvIGRl Y29kZSBhIGZyYW1lIGFzIG1lbnRpb25lZCBpbiB0aGUgdGhyZWFkIG9uCnRoZSBhcHBsZSBmb3J1 bXMoY2hlY2sgdGhlIGxhc3QgYnV0IG9uZSBjb21tZW50KVsxXQoKU28gYmFzaWNhbGx5IHdoYXQn cyBoYXBwZW5pbmcgaGVyZToKdmlkZW90b29sYm94X2F2MV9kZWNvZGVfcGFyYW1zIGdldHRpbmcg Y2FsbGVkIHRoZSBmaXJzdCBpbiB0aGF0IGRlY29kaW5nCmxvb3AgYXQgbGliYXZjb2RlYy9hdjFk ZWMuYzoxMjQzLCBpdCBjb3BpZXMgdGhlIHNlcXVlbmNlIGhlYWRlciBvYnUgaW50bwp0aGUgYml0 c3RyZWFtIGFzIHRoZSBmaXJzdCBieXRlcyhiZWNhdXNlIGF0IHRoYXQgcG9pbnQgYml0c3RyZWFt IHNoYWxsIGJlCnplcm8pLCBhbmQgaW5jcmVhc2VzIHRoZSB2dGN0eC0+Yml0c3RyZWFtX3NpemUg YnkgdGhlIHNpemUgb2YgdGhlIHNlcXVlbmNlCmhlYWRlciBvYnUuClRoZW4gdmlkZW90b29sYm94 X2F2MV9zdGFydF9mcmFtZSBpcyBnZXR0aW5nIGNhbGxlZCBhdApsaWJhdmNvZGVjL2F2MWRlYy5j OjEzNjQgYW5kIGNvcGllcyB0aGUgZnJhbWUgaXRzZWxmIGludG8gdGhlCnZ0Y3R4LT5iaXRzdHJl YW0sIHRha2luZyBpbnRvIGFjY291bnQgdGhlIHNoaWZ0IG5lZWRlZCBieSB0aGUKdnRjdHgtPmJp dHN0cmVhbV9zaXplKHdoaWNoIGF0IHRoYXQgbW9tZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBvZiB0 aGUKc2VxdWVuY2UgaGVhZGVyIG9idSkuCgpbMV0gaHR0cHM6Ly9mb3J1bXMuZGV2ZWxvcGVyLmFw cGxlLmNvbS9mb3J1bXMvdGhyZWFkLzczOTk1MwoKCk9uIFN1biwgMTIgTWF5IDIwMjQgYXQgMTE6 NTIsIFJ1c2xhbiBDaGVybmVua28gPHJhY3R5ZnJlZUBnbWFpbC5jb20+IHdyb3RlOgoKPiBIZXkg dGhlcmUhCj4gVGhhbmtzIGZvciBjaGVja2luZyBvdXQgdGhlIHBhdGNoOwo+Cj4gQXMgZm9yIHZp ZGVvdG9vbGJveF9hdjFfc3RhcnRfZnJhbWU6Cj4gRm9yIHRoZSBhdl9mYXN0X3JlYWxsb2MgY2Fs bCBpdCdzIG1vc3RseSB0aGUgc2FtZSB0aGluZyBhcwo+IGZmX3ZpZGVvdG9vbGJveF9idWZmZXJf Y29weSBkZWZpbmVkIGF0IGxpYmF2Y29kZWMvdmlkZW90b29sYm94LmM6NzkuIEl0Cj4gdGFrZXMg YSBwb2ludGVyIHRvIGEgYml0c3RyZWFtLCBpdHMgYWxsb2NhdGVkIHNpemUgYW5kIHVwZGF0ZXMg aXQuIEFsc28KPiB0aGVyZSBpcyBhIHZpZGVvdG9vbGJveF9jb21tb25fZGVjb2RlX3NsaWNlIGRl ZmluZWQgYXQKPiBsaWJhdmNvZGVjL3ZpZGVvdG9vbGJveDo0MzQsIHdoaWNoIGRvZXMgYSBwcmV0 dHkgc2ltaWxhciBqb2IgdG8gdGhlIG9uZSBJCj4gbWVudGlvbmVkLCBidXQgYSBsaXR0bGUgZGlm ZmVyZW50Lgo+Cj4gQXMgZm9yIHZpZGVvdG9vbGJveF9hdjFfZGVjb2RlX3BhcmFtczoKPiB2dGN0 eC0+Yml0c3RyZWFtIGF0IHRoYXQgbW9tZW50IHNoYWxsIGJlIGVtcHR5IGF0IHRoYXQgcG9pbnQs IHNvIGRvZXMgdGhlCj4gdnRjdHgtPmJpdHNyZWFtX3NpemUKPiBBbmQgYXMgaXQgdHVybmVkIG91 dCB0aGUgc2VxdWVuY2UgaGVhZGVyIG9idSBuZWVkcyB0byBiZSBjb3BpZWQgaW50byB0aGUKPiBi aXRzdHJlYW0gZm9yIHZpZGVvdG9vbGJveCB0byBkZWNvZGUgYSBmcmFtZSBhcyBtZW50aW9uZWQg aW4gdGhlIHRocmVhZCBvbgo+IHRoZSBhcHBsZSBmb3J1bXMoY2hlY2sgdGhlIGxhc3QgYnV0IG9u ZSBjb21tZW50KVsxXQo+Cj4gU28gYmFzaWNhbGx5IHdoYXQncyBoYXBwZW5pbmcgaGVyZToKPiB2 aWRlb3Rvb2xib3hfYXYxX2RlY29kZV9wYXJhbXMgZ2V0dGluZyBjYWxsZWQgdGhlIGZpcnN0IGlu IHRoYXQgZGVjb2RpbmcKPiBsb29wIGF0IGxpYmF2Y29kZWMvYXYxZGVjLmM6MTI0MywgaXQgY29w aWVzIHRoZSBzZXF1ZW5jZSBoZWFkZXIgb2J1IGludG8KPiB0aGUgYml0c3RyZWFtIGFzIHRoZSBm aXJzdCBieXRlcyhiZWNhdXNlIGF0IHRoYXQgcG9pbnQgYml0c3RyZWFtIHNoYWxsIGJlCj4gemVy byksIGFuZCBpbmNyZWFzZXMgdGhlIHZ0Y3R4LT5iaXRzdHJlYW1fc2l6ZSBieSB0aGUgc2l6ZSBv ZiB0aGUgc2VxdWVuY2UKPiBoZWFkZXIgb2J1Lgo+IFRoZW4gdmlkZW90b29sYm94X2F2MV9zdGFy dF9mcmFtZSBpcyBnZXR0aW5nIGNhbGxlZCBhdAo+IGxpYmF2Y29kZWMvYXYxZGVjLmM6MTM2NCBh bmQgY29waWVzIHRoZSBmcmFtZSBpdHNlbGYgaW50byB0aGUKPiB2dGN0eC0+Yml0c3RyZWFtLCB0 YWtpbmcgaW50byBhY2NvdW50IHRoZSBzaGlmdCBuZWVkZWQgYnkgdGhlCj4gdnRjdHgtPmJpdHN0 cmVhbV9zaXplKHdoaWNoIGF0IHRoYXQgbW9tZW50IHNob3VsZCBiZSB0aGUgc2l6ZSBvZiB0aGUK PiBzZXF1ZW5jZSBoZWFkZXIgb2J1KS4KPgo+IFsxXSBodHRwczovL2ZvcnVtcy5kZXZlbG9wZXIu YXBwbGUuY29tL2ZvcnVtcy90aHJlYWQvNzM5OTUzCj4KPgo+IE9uIFN1biwgMTIgTWF5IDIwMjQg YXQgMDQ6NTIsIENhbWVyb24gR3V0bWFuIDxhaWNvbW1hbmRlckBnbWFpbC5jb20+Cj4gd3JvdGU6 Cj4KPj4gT24gTW9uLCBNYXkgNiwgMjAyNCBhdCAzOjQ14oCvUE0g0KfQtdGA0L3QtdC90LrQviDQ oNGD0YHQu9Cw0L0gPHJhY3R5ZnJlZUBnbWFpbC5jb20+Cj4+IHdyb3RlOgo+PiA+Cj4+ID4gU2ln bmVkLW9mZi1ieTogQ2hlcm5lbmtvIFJ1c2xhbiA8cmFjdHlmcmVlQGdtYWlsLmNvbT4KPj4gPiAt LS0KPj4gPiAgIGxpYmF2Y29kZWMvdmlkZW90b29sYm94X2F2MS5jIHwgMTAyICsrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0KPj4gPiAgIDEgZmlsZSBjaGFuZ2VkLCA3MiBpbnNlcnRp b25zKCspLCAzMCBkZWxldGlvbnMoLSkKPj4gPgo+PiA+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVj L3ZpZGVvdG9vbGJveF9hdjEuYwo+PiBiL2xpYmF2Y29kZWMvdmlkZW90b29sYm94X2F2MS5jCj4+ ID4gaW5kZXggN2Y3MjcwYzQ2Ni4uNzM2ZjI1NDhkYiAxMDA2NDQKPj4gPiAtLS0gYS9saWJhdmNv ZGVjL3ZpZGVvdG9vbGJveF9hdjEuYwo+PiA+ICsrKyBiL2xpYmF2Y29kZWMvdmlkZW90b29sYm94 X2F2MS5jCj4+ID4gQEAgLTE5LDUwICsxOSw5MCBAQAo+PiA+ICAgICogRm91bmRhdGlvbiwgSW5j LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQo+PiA+IDAyMTEw LTEzMDEgVVNBCj4+ID4gICAgKi8KPj4gPiAgIC0jaW5jbHVkZSAibGliYXZmb3JtYXQvYXZpby5o Igo+PiA+IC0jaW5jbHVkZSAibGliYXZmb3JtYXQvYXZpb19pbnRlcm5hbC5oIgo+PiA+IC0jZGVm aW5lIENBTExFRF9GUk9NX0FWQ09ERUMgMQo+PiA+IC0jaW5jbHVkZSAibGliYXZmb3JtYXQvYXYx LmMiCj4+ID4gLSN1bmRlZiBDQUxMRURfRlJPTV9BVkNPREVDCj4+ID4gICAtI2luY2x1ZGUgImxp YmF2dXRpbC9hdnV0aWwuaCIKPj4gPiAtI2luY2x1ZGUgImxpYmF2dXRpbC9mcmFtZS5oIgo+PiA+ IC0jaW5jbHVkZSAibGliYXZ1dGlsL3BpeGZtdC5oIgo+PiA+ICsjaW5jbHVkZSAibGliYXZ1dGls L21lbS5oIgo+PiA+ICAgICNpbmNsdWRlICJhdjFkZWMuaCIKPj4gPiAtI2luY2x1ZGUgImNvZGVj X2lkLmgiCj4+ID4gICAjaW5jbHVkZSAiaHdhY2NlbF9pbnRlcm5hbC5oIgo+PiA+ICAgI2luY2x1 ZGUgImludGVybmFsLmgiCj4+ID4gICAjaW5jbHVkZSAidnRfaW50ZXJuYWwuaCIKPj4gPiAgIC1D RkRhdGFSZWYgZmZfdmlkZW90b29sYm94X2F2MWNfZXh0cmFkYXRhX2NyZWF0ZShBVkNvZGVjQ29u dGV4dAo+PiAqYXZjdHgpCj4+ID4gKwo+PiA+ICtDRkRhdGFSZWYgZmZfdmlkZW90b29sYm94X2F2 MWNfZXh0cmFkYXRhX2NyZWF0ZShBVkNvZGVjQ29udGV4dCAqYXZjdHgpCj4+IHsKPj4gPiArCj4+ ID4gKyAgICBBVjFEZWNDb250ZXh0ICpzID0gYXZjdHgtPnByaXZfZGF0YTsKPj4gPiArICAgIGF2 Y3R4LT5leHRyYWRhdGEgPSBhdl9mYXN0X3JlYWxsb2MoYXZjdHgtPmV4dHJhZGF0YSwgKwo+PiA+ ICZhdmN0eC0+ZXh0cmFkYXRhX3NpemUsICsgICAgICAgICAgICBzLT5zZXFfZGF0YV9yZWYtPnNp emUgKyA0KTsKPj4gPiArICAgIGF2Y3R4LT5leHRyYWRhdGFfc2l6ZSA9IHMtPnNlcV9kYXRhX3Jl Zi0+c2l6ZSArIDQ7Cj4+ID4gKyAgICBhdmN0eC0+ZXh0cmFkYXRhWzBdID0gMHg4MTsgLy8gdmVy c2lvbiBhbmQgbWFya2VyIChjb25zdGFudCkKPj4gPiArICAgIGF2Y3R4LT5leHRyYWRhdGFbMV0g PSBzLT5yYXdfc2VxLT5zZXFfcHJvZmlsZSA8PCA1IHwKPj4gPiBzLT5yYXdfc2VxLT5zZXFfbGV2 ZWxfaWR4WzBdOwo+PiA+ICsgICAgYXZjdHgtPmV4dHJhZGF0YVsyXSA9IHMtPnJhd19zZXEtPnNl cV90aWVyWzBdIDw8IDcgfAo+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBzLT5yYXdfc2Vx LT5jb2xvcl9jb25maWcuaGlnaF9iaXRkZXB0aCA8PCA2IHwgKwo+PiA+ICAgICAgICAgICAgICAg ICAgICAgICAgIHMtPnJhd19zZXEtPmNvbG9yX2NvbmZpZy50d2VsdmVfYml0IDw8IDUgfAo+PiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICBzLT5yYXdfc2VxLT5jb2xvcl9jb25maWcubW9ub19j aHJvbWUgPDwgNCB8Cj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHMtPnJhd19zZXEtPmNv bG9yX2NvbmZpZy5zdWJzYW1wbGluZ194IDw8IDMgfAo+PiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICBzLT5yYXdfc2VxLT5jb2xvcl9jb25maWcuc3Vic2FtcGxpbmdfeSA8PCAyIHwKPj4gPiAr Cj4+IHMtPnJhd19zZXEtPmNvbG9yX2NvbmZpZy5jaHJvbWFfc2FtcGxlX3Bvc2l0aW9uOwo+PiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKPj4gPiArICAgIGlmIChzLT5yYXdfc2VxLT5pbml0aWFsX2Rpc3BsYXlf ZGVsYXlfcHJlc2VudF9mbGFnKSArCj4+ID4gYXZjdHgtPmV4dHJhZGF0YVszXSA9IDAgPDwgNSB8 Cj4+ID4gcy0+cmF3X3NlcS0+aW5pdGlhbF9kaXNwbGF5X2RlbGF5X3ByZXNlbnRfZmxhZyA8PCA0 IHwKPj4gPiBzLT5yYXdfc2VxLT5pbml0aWFsX2Rpc3BsYXlfZGVsYXlfbWludXNfMVswXTsKPj4g PiArICAgIGVsc2UKPj4gPiArICAgICAgICBhdmN0eC0+ZXh0cmFkYXRhWzNdID0gMHgwMDsKPj4g PiArICAgIG1lbWNweShhdmN0eC0+ZXh0cmFkYXRhICsgNCwgcy0+c2VxX2RhdGFfcmVmLT5kYXRh LAo+PiA+IHMtPnNlcV9kYXRhX3JlZi0+c2l6ZSk7Cj4+ID4gKyAgICBDRkRhdGFSZWYgZGF0YSA9 IENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LAo+PiA+IGF2Y3R4LT5leHRyYWRhdGEs IGF2Y3R4LT5leHRyYWRhdGFfc2l6ZSk7Cj4+ID4gKyAgICByZXR1cm4gZGF0YTsKPj4gPiArfTsK Pj4gPiArCj4+ID4gKwo+PiA+ICtzdGF0aWMgaW50IHZpZGVvdG9vbGJveF9hdjFfZGVjb2RlX3Bh cmFtcyhBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IGhlYWRlcl90eXBlLAo+PiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmJ1ZmZlciwKPj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzaXplKQo+PiA+ ICAgewo+PiA+IC0gICAgQVZJT0NvbnRleHQgKnBiOwo+PiA+IC0gICAgdWludDhfdCAqYnVmOwo+ PiA+IC0gICAgQ0ZEYXRhUmVmIGRhdGEgPSBOVUxMOwo+PiA+IC0gICAgaW50IGJ1Zl9zaXplID0g MDsKPj4gPiAtICAgIGludCByZXQgPSBhdmlvX29wZW5fZHluX2J1ZigmcGIpOwo+PiA+IC0gICAg aWYgKHJldCA8IDApCj4+ID4gLSAgICAgICAgcmV0dXJuIE5VTEw7Cj4+ID4gKyAgICBWVENvbnRl eHQgKnZ0Y3R4ID0gYXZjdHgtPmludGVybmFsLT5od2FjY2VsX3ByaXZfZGF0YTsKPj4gPiArICAg IHZvaWQgKnRtcDsKPj4gPiAgIC0gICAgcmV0ID0gZmZfaXNvbV93cml0ZV9hdjFjKHBiLCBhdmN0 eC0+ZXh0cmFkYXRhLAo+PiA+IGF2Y3R4LT5leHRyYWRhdGFfc2l6ZSwgMSk7Cj4+ID4gLSAgICBp ZiAocmV0IDwgMCkKPj4gPiAtICAgICAgICBnb3RvIGZhaWw7Cj4+ID4gKyAgICB0bXAgPSBhdl9m YXN0X3JlYWxsb2ModnRjdHgtPmJpdHN0cmVhbSwKPj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICZ2dGN0eC0+YWxsb2NhdGVkX3NpemUsCj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplKTsKPj4KPj4gVGhpcyBzaG91bGQgYmUgJ3NpemUgKyB2dGN0eC0+Yml0c3RyZWFtX3Np emUnIHJpZ2h0Pwo+Pgo+PiBZb3UncmUgZ29pbmcgdG8gd3JpdGUgZnJvbSB2dGN0eC0+Yml0c3Ry ZWFtX3NpemUgdG8KPj4gKHZ0Y3R4LT5iaXRzdHJlYW1fc2l6ZSArIHNpemUpLgo+Pgo+PiA+ICAg LSAgICBidWZfc2l6ZSA9IGF2aW9fZ2V0X2R5bl9idWYocGIsICZidWYpOwo+PiA+IC0gICAgaWYg KGJ1Zl9zaXplKQo+PiA+IC0gICAgICAgIGRhdGEgPSBDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9y RGVmYXVsdCwgYnVmLCBidWZfc2l6ZSk7Cj4+ID4gKyAgICBpZiAoIXRtcCkKPj4gPiArICAgICAg ICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+PiA+ICAgLWZhaWw6Cj4+ID4gLSAgICBmZmlvX2Zy ZWVfZHluX2J1ZigmcGIpOwo+PiA+ICsgICAgdnRjdHgtPmJpdHN0cmVhbSA9IHRtcDsKPj4gPiAg IC0gICAgcmV0dXJuIGRhdGE7Cj4+ID4gKyAgICAvLyBjb3B5IHRoZSBzZXF1ZW5jZSBoZWFkZXIg b2J1IGludG8gdGhlIGJpdHN0cmVhbQo+PiA+ICsgICAgbWVtY3B5KHZ0Y3R4LT5iaXRzdHJlYW0g KyB2dGN0eC0+Yml0c3RyZWFtX3NpemUsICsKPj4gPiBidWZmZXIsICsgICAgICAgICAgICBzaXpl KTsKPj4KPj4gSXQgbG9va3MgbGlrZSB5b3VyIG1haWwgY2xpZW50IG1hbmdsZWQgdGhlIHBhdGNo IGhlcmUuCj4+Cj4+ID4gKwo+PiA+ICsgICAgdnRjdHgtPmJpdHN0cmVhbV9zaXplICs9IHNpemU7 Cj4+ID4gKyAgICByZXR1cm4gMDsKPj4gPiAgIH0KPj4gPiAgICBzdGF0aWMgaW50IHZpZGVvdG9v bGJveF9hdjFfc3RhcnRfZnJhbWUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+PiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmJ1ZmZlciwK Pj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBz aXplKQo+PiA+ICAgewo+PiA+ICsKPj4gPiArICAgICsgICAgVlRDb250ZXh0ICp2dGN0eCA9IGF2 Y3R4LT5pbnRlcm5hbC0+aHdhY2NlbF9wcml2X2RhdGE7Cj4+ID4gKyAgICB2b2lkICp0bXA7Cj4+ ID4gKwo+PiA+ICsgICAgdG1wID0gYXZfZmFzdF9yZWFsbG9jKHZ0Y3R4LT5iaXRzdHJlYW0sCj4+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAmdnRjdHgtPmFsbG9jYXRlZF9zaXplLAo+PiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSk7Cj4+ID4gKwo+Pgo+PiBUaGlzIHNob3Vs ZCBhbHNvIGJlIHNpemUgKyB2dGN0eC0+Yml0c3RyZWFtX3NpemUuCj4+Cj4+ID4gKyAgICBpZiAo IXRtcCkKPj4gPiArICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+PiA+ICsKPj4gPiAr ICAgIHZ0Y3R4LT5iaXRzdHJlYW0gPSB0bXA7Cj4+ID4gKwo+PiA+ICsgICAgLy8gY29weSB0aGUg ZnJhbWUgZGF0YSBpbnRvIHRoZSBiaXRzdHJlYW0KPj4gPiArICAgIG1lbWNweSh2dGN0eC0+Yml0 c3RyZWFtICsgdnRjdHgtPmJpdHN0cmVhbV9zaXplLCBidWZmZXIsIHNpemUpOwo+PiA+ICsgICAg dnRjdHgtPmJpdHN0cmVhbV9zaXplICs9IHNpemU7Cj4+ID4gICAgICAgcmV0dXJuIDA7Cj4+ID4g ICB9Cj4+ID4gICBAQCAtNzAsMTcgKzExMCwxOCBAQCBzdGF0aWMgaW50Cj4+ID4gdmlkZW90b29s Ym94X2F2MV9kZWNvZGVfc2xpY2UoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+PiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpidWZmZXIs Cj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90 IHNpemUpCj4+ID4gICB7Cj4+ID4gLSAgICBWVENvbnRleHQgKnZ0Y3R4ID0gYXZjdHgtPmludGVy bmFsLT5od2FjY2VsX3ByaXZfZGF0YTsKPj4gPiAtCj4+ID4gLSAgICByZXR1cm4gZmZfdmlkZW90 b29sYm94X2J1ZmZlcl9jb3B5KHZ0Y3R4LCBidWZmZXIsIHNpemUpOwo+PiA+ICsgICAgcmV0dXJu IDA7Cj4+ID4gICB9Cj4+ID4gICAgc3RhdGljIGludCB2aWRlb3Rvb2xib3hfYXYxX2VuZF9mcmFt ZShBVkNvZGVjQ29udGV4dCAqYXZjdHgpCj4+ID4gICB7Cj4+ID4gICAgICAgY29uc3QgQVYxRGVj Q29udGV4dCAqcyA9IGF2Y3R4LT5wcml2X2RhdGE7Cj4+ID4gKyAgICBWVENvbnRleHQgKnZ0Y3R4 ID0gYXZjdHgtPmludGVybmFsLT5od2FjY2VsX3ByaXZfZGF0YTsKPj4gPiAgICAgICBBVkZyYW1l ICpmcmFtZSA9IHMtPmN1cl9mcmFtZS5mOwo+PiA+ICAgLSAgICByZXR1cm4gZmZfdmlkZW90b29s Ym94X2NvbW1vbl9lbmRfZnJhbWUoYXZjdHgsIGZyYW1lKTsKPj4gPiArICAgIGludCByZXQgPSAg ZmZfdmlkZW90b29sYm94X2NvbW1vbl9lbmRfZnJhbWUoYXZjdHgsIGZyYW1lKTsKPj4gPiArICAg IHZ0Y3R4LT5iaXRzdHJlYW1fc2l6ZSA9IDA7Cj4+ID4gKyAgICByZXR1cm4gcmV0Owo+PiA+ICAg fQo+PiA+ICAgIGNvbnN0IEZGSFdBY2NlbCBmZl9hdjFfdmlkZW90b29sYm94X2h3YWNjZWwgPSB7 Cj4+ID4gQEAgLTg5LDYgKzEzMCw3IEBAIGNvbnN0IEZGSFdBY2NlbCBmZl9hdjFfdmlkZW90b29s Ym94X2h3YWNjZWwgPSB7Cj4+ID4gICAgICAgLnAuaWQgICAgICAgICAgID0gQVZfQ09ERUNfSURf QVYxLAo+PiA+ICAgICAgIC5wLnBpeF9mbXQgICAgICA9IEFWX1BJWF9GTVRfVklERU9UT09MQk9Y LAo+PiA+ICAgICAgIC5hbGxvY19mcmFtZSAgICA9IGZmX3ZpZGVvdG9vbGJveF9hbGxvY19mcmFt ZSwKPj4gPiArICAgIC5kZWNvZGVfcGFyYW1zICA9IHZpZGVvdG9vbGJveF9hdjFfZGVjb2RlX3Bh cmFtcywKPj4gPiAgICAgICAuc3RhcnRfZnJhbWUgICAgPSB2aWRlb3Rvb2xib3hfYXYxX3N0YXJ0 X2ZyYW1lLAo+PiA+ICAgICAgIC5kZWNvZGVfc2xpY2UgICA9IHZpZGVvdG9vbGJveF9hdjFfZGVj b2RlX3NsaWNlLAo+PiA+ICAgICAgIC5lbmRfZnJhbWUgICAgICA9IHZpZGVvdG9vbGJveF9hdjFf ZW5kX2ZyYW1lLAo+PiA+IC0tCj4+ID4gMi4zOS4zIChBcHBsZSBHaXQtMTQ2KQo+PiA+Cj4+ID4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gPiBmZm1w ZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4+ID4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPj4gPiBo dHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKPj4gPgo+PiA+ IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+PiA+IGZmbXBlZy1k ZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCj4+Cj4K Pgo+IC0tCj4gQyDRg9Cy0LDQttC10L3QuNC10LwsCj4g0KDRg9GB0LvQsNC9Lgo+Cj4gTWFpbDog cmFjdHlmcmVlQGdtYWlsLmNvbQo+IFRlbGVncmFtOiBAbmVua29ydQo+IFZLOiBodHRwczovL3Zr LmNvbS9yYWN0eQo+CgoKLS0gCkMg0YPQstCw0LbQtdC90LjQtdC8LArQoNGD0YHQu9Cw0L0uCgpN YWlsOiByYWN0eWZyZWVAZ21haWwuY29tClRlbGVncmFtOiBAbmVua29ydQpWSzogaHR0cHM6Ly92 ay5jb20vcmFjdHkKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRw czovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2Ny aWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1w ZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=