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 D38094A5C7 for ; Sat, 30 Mar 2024 23:04:58 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A174768C899; Sun, 31 Mar 2024 01:04:55 +0200 (EET) Received: from mail-ua1-f46.google.com (mail-ua1-f46.google.com [209.85.222.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5941368C308 for ; Sun, 31 Mar 2024 01:04:49 +0200 (EET) Received: by mail-ua1-f46.google.com with SMTP id a1e0cc1a2514c-7de446125f7so679221241.1 for ; Sat, 30 Mar 2024 16:04:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711839888; x=1712444688; 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=ZLQFRKzEmFhHPJwKeY4NgHsMj5b0sEB4eabllBWz+eI=; b=GUZPtwKIoTYtLqQGyVAPGd6JndT61imCizj4RmZIeiLtbagAg1qygXiZPLIx0gGuFS SDhqRKMGS/MgKGYZje9/GGU09yVhw+x1adl1DdFQ8BeqNHshWSWU5nImnsgsoButnWP2 a4mxJ/rcEQgPKU92P2qQZBvO5ZFSuSCaMM3f/ahtZ9+BjNRAsutmydTiNVftim3HxDwQ VVNF0HJrADF4fWW8evFkx8vkxIlQ0y1QT/GYOPv/Wi4+ErhKI6n2dXbwjiJ7MivzT1ow 6gcs0BAI0XgpUGeKYboxjQGYtdZIyvWkNzswIiDVwSc2QfTESWGAB5nGYhNs1tfgiTQc Oseg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711839888; x=1712444688; 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=ZLQFRKzEmFhHPJwKeY4NgHsMj5b0sEB4eabllBWz+eI=; b=TSRTrWAjasqQSV9vfPl+6RbkJvlTM5EiHhbXylWk0fJ3Fgwl2C9qCq8iZY/3eWdnFX w1CMjmelP3ADSIr6dP/4FeM9Maf4wfKyii0E10cbQVbOcMfKQf4wsQbdW5BpZyfnBNHp 1jfvPppmSCugALJkyxabNoMzzkVZmkcdoVs7y1W49hV+/PO1aNhz4QhWM1KHvMfTAu2x ym7YJbZvmOtDJZrRbOH3wC+jbXXrdDg4IqTyWnMEsztYlyXv+C+qIPhGx6tHXUCnqkMw yQbpk5/ovaen7R+DilPAz4Rlp4yoSv6EHixKwv+kfZPEXbXCM7aMlompzDr+Gzc3fLP6 GRow== X-Gm-Message-State: AOJu0YxIJbUBK9v6jNxVHgVENjXn4WRYJauAXSAoMlUgjq3tVaTNX4MW 084t21uLUqFOHLW+btoyNqXbw3bD45yDLSxgf8TIHjL7m2yb0APi2EkPiCfP+7Ghfmc0fbbCVf6 JH/meVdD2tYjDuybCUN5/s4XFDbI= X-Google-Smtp-Source: AGHT+IHZKd42kb/TMXyMuAJrRlGiWMbzxCuIGfFnJ0RNXrHpDWj3bKLqulOABuaRwgJ6bmXYm4S/2+4MgxaZpdEUn4Y= X-Received: by 2002:a05:6102:212d:b0:478:4b8a:cad0 with SMTP id f13-20020a056102212d00b004784b8acad0mr3643251vsg.31.1711839887409; Sat, 30 Mar 2024 16:04:47 -0700 (PDT) MIME-Version: 1.0 References: <20240329173032.1122372-1-asoulier@google.com> <20240329173032.1122372-2-asoulier@google.com> In-Reply-To: From: Paul B Mahol Date: Sun, 31 Mar 2024 00:15:13 +0100 Message-ID: To: Antoine Soulier X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH 2/2] avformat/lc3: Add file format for LC3/LC3plus transport 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 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: T24gU2F0LCBNYXIgMzAsIDIwMjQgYXQgMTA6NTHigK9QTSBBbnRvaW5lIFNvdWxpZXIgPGFzb3Vs aWVyQGdvb2dsZS5jb20+Cndyb3RlOgoKPiBJIGFtIG5vdCBzdXJlIGFib3V0IHRoZSBibG9jazoK Pgo+PiArICAgIGxjMy0+dGltZXN0YW1wICs9IGxjMy0+ZHQ7Cj4+ICsgICAgaWYgKGxjMy0+dGlt ZXN0YW1wID4gbGMzLT5sZW5ndGgpIHsKPj4gKyAgICAgICAgcGt0LT5kdXJhdGlvbiAtPSBsYzMt PnRpbWVzdGFtcCAtIGxjMy0+bGVuZ3RoOwo+PiArICAgICAgICBsYzMtPnRpbWVzdGFtcCA9IGxj My0+bGVuZ3RoOwo+PiArICAgIH0KPgo+Cj4gVGhlIHB1cnBvc2UgaXMgdG8gcmVkdWNlIHRoZSBk dXJhdGlvbiBvZiB0aGUgbGFzdCBwYWNrZXQuCj4gV2hlbiBjb252ZXJ0aW5nIGEgZmlsZSwgdGhl IGxhc3QgZnJhbWUgY2FuIGNvbnRhaW4gInplcm9zIiAob3IgaXJyZWxldmFudCkKPiBzYW1wbGVz IHRoYXQgYXJlIG5vdCBwcmVzZW50IGluIHRoZSBzb3VyY2UgZmlsZSAoYWxpZ25tZW50IHRvIGZy YW1lCj4gYm91bmRhcnkpLiBUaGVzZSBzYW1wbGVzIHNob3VsZCBiZSBkaXNjYXJkZWQuCj4gPiBJ ZiBJIHJlbW92ZSB0aGUgInJlYWRfc2VlaygpIiBpbXBsZW1lbnRhdGlvbiwgSSBsb3NlIHRoZSBQ VFMgLyB0aW1lc3RhbXAKPiBpbmZvcm1hdGlvbiwgYW5kIEkgZG9uJ3Qga25vdyBob3cgdG8gZGV0 ZWN0IHRoZSBsYXN0IGZyYW1lIGluIHRoZSBzdHJlYW0uCj4gRG8geW91IGtub3cgaG93IEkgY2Fu IGhhbmRsZSBhIHJlZHVjZWQgZHVyYXRpb24gZm9yIHRoZSBsYXN0IGZyYW1lIHdpdGhvdXQKPiBo YXZpbmcgYW4gaW1wbGVtZW50YXRpb24gb2YgInJlYWRfc2VlaygpIj8KPgo+IChJIGNhbiBwbGF5 IHdpdGggdGhlIHBvc2l0aW9uIGFuZCBFT0YgaW5mb3JtYXRpb24sIGJ1dCBjYW4gbGVhZCB0byBz dHJhbmdlCj4gYmVoYXZpb3JzIGlmIHRoZSBlbmNvZGVyIGFkZHMgZXh0cmEgZnJhbWVzIGF0IHRo ZSBlbmQpLgo+CgpMb29rcyBsaWtlIGZvcm1hdCBsaW1pdGF0aW9uLiBJZiBkdXJhdGlvbiBpcyBu b3Qgc3RvcmVkIGluIGVhY2ggcGFja2V0IHRoYW4KZGVtdXhlciBjYW4gbm90IGRvIGl0IGFuZCBu byBzcGFnZXR0aSBjb2RlIGNhbiBmaXggaXQgaW4gZGVtdXhlci4gU3RpbGwKb3V0cHV0IGZyYW1l IGR1cmF0aW9uIGlzIHNldCBieSBkZWNvZGVyIHRvbyB3aGVuIGRlY29kaW5nLCBzbyBtYWtlIHN1 cmUKdGhhdCBkZWNvZGVyIG91dHB1dHMgdmFsaWQgb3V0cHV0IGFuZCB0aW1lc3RhbXBzL2R1cmF0 aW9ucy4KU28gaXRzIG5vdCByZWFsbHkgcG9zc2libGUgdG8gaGF2ZSBhbHNvIGNvcnJlY3QgYW5k IHJvYnVzdCBkdXJhdGlvbiBvZiBsYXN0CnBhY2tldCByZXR1cm5lZCBieSBkZW11eGVyLiBFdmVu IG1vcmUgdGhlIGZpbGUgbWF5IGJlIG1hbmlwdWxhdGVkIGluIHN1Y2gKd2F5IHRoYXQgaXRzIG5v IGxvbmdlciBjb3JyZWN0IHRvIGRlcml2ZSBsYXN0IHBhY2tldCBkdXJhdGlvbiBmcm9tIGZ1bGwK ZHVyYXRpb24gc3RvcmVkIGluIGhlYWRlciB3aGVuIHRoZSBFT0YgcmVhY2hlZC4KCgo+Cj4KPiBP biBTYXQsIE1hciAzMCwgMjAyNCBhdCA0OjQ24oCvQU0gUGF1bCBCIE1haG9sIDxvbmVtZGFAZ21h aWwuY29tPiB3cm90ZToKPgo+Pgo+Pgo+PiBPbiBGcmksIE1hciAyOSwgMjAyNCBhdCA2OjMw4oCv UE0gQW50b2luZSBTb3VsaWVyIHZpYSBmZm1wZWctZGV2ZWwgPAo+PiBmZm1wZWctZGV2ZWxAZmZt cGVnLm9yZz4gd3JvdGU6Cj4+Cj4+PiBBIGZpbGUgZm9ybWF0IGlzIGRlc2NyaWJlZCBpbiBCbHVl dG9vdGggU0lHIExDMyBhbmQgRVRTSSBUUyAxMDMgNjM0LCBmb3IKPj4+IHRlc3QgcHVycG9zZS4g VGhpcyBpcyB0aGUgZm9ybWF0IGltcGxlbWVudGVkIGhlcmUuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1i eTogQW50b2luZSBTb3VsaWVyIDxhc291bGllckBnb29nbGUuY29tPgo+Pj4gLS0tCj4+PiAgQ2hh bmdlbG9nICAgICAgICAgICAgICAgIHwgICAxICsKPj4+ICBkb2MvbXV4ZXJzLnRleGkgICAgICAg ICAgfCAgIDYgKysKPj4+ICBsaWJhdmZvcm1hdC9NYWtlZmlsZSAgICAgfCAgIDIgKwo+Pj4gIGxp YmF2Zm9ybWF0L2FsbGZvcm1hdHMuYyB8ICAgMiArCj4+PiAgbGliYXZmb3JtYXQvbGMzZGVjLmMg ICAgIHwgMTY0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4gIGxp YmF2Zm9ybWF0L2xjM2VuYy5jICAgICB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrKysKPj4+ ICA2IGZpbGVzIGNoYW5nZWQsIDI3NSBpbnNlcnRpb25zKCspCj4+PiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGxpYmF2Zm9ybWF0L2xjM2RlYy5jCj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Zm9y bWF0L2xjM2VuYy5jCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL0NoYW5nZWxvZyBiL0NoYW5nZWxvZwo+ Pj4gaW5kZXggODNhNGNmNzg4OC4uMDhjMjAwYTQxZCAxMDA2NDQKPj4+IC0tLSBhL0NoYW5nZWxv Zwo+Pj4gKysrIGIvQ2hhbmdlbG9nCj4+PiBAQCAtMiw2ICsyLDcgQEAgRW50cmllcyBhcmUgc29y dGVkIGNocm9ub2xvZ2ljYWxseSBmcm9tIG9sZGVzdCB0bwo+Pj4geW91bmdlc3Qgd2l0aGluIGVh Y2ggcmVsZWFzZSwKPj4+ICByZWxlYXNlcyBhcmUgc29ydGVkIGZyb20geW91bmdlc3QgdG8gb2xk ZXN0Lgo+Pj4KPj4+ICB2ZXJzaW9uIDxuZXh0PjoKPj4+ICstIExDMy9MQzNwbHVzIGRlbXV4ZXIg YW5kIG11eGVyCj4+PiAgLSBMQzMvTEMzcGx1cyBkZWNvZGluZy9lbmNvZGluZyB1c2luZyBleHRl cm5hbCBsaWJyYXJ5IGxpYmxjMwo+Pj4KPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZG9jL211eGVycy50 ZXhpIGIvZG9jL211eGVycy50ZXhpCj4+PiBpbmRleCBhMTBhOGUyMTZmLi45Njg3NzQ2YzMwIDEw MDY0NAo+Pj4gLS0tIGEvZG9jL211eGVycy50ZXhpCj4+PiArKysgYi9kb2MvbXV4ZXJzLnRleGkK Pj4+IEBAIC0yNjEyLDYgKzI2MTIsMTIgQEAgV2ViREFWIHNlcnZlciBldmVyeSBzZWNvbmQ6Cj4+ PiAgZmZtcGVnIC1mIHgxMWdyYWIgLWZyYW1lcmF0ZSAxIC1pIDowLjAgLXE6diA2IC11cGRhdGUg MSAtcHJvdG9jb2xfb3B0cwo+Pj4gbWV0aG9kPVBVVCBodHRwOi8vZXhhbXBsZS5jb20vZGVza3Rv cC5qcGcKPj4+ICBAZW5kIGV4YW1wbGUKPj4+Cj4+PiArQHNlY3Rpb24gbGMzCj4+PiArQmx1ZXRv b3RoIFNJRyBMb3cgQ29tcGxleGl0eSBDb21tdW5pY2F0aW9uIENvZGVjIGF1ZGlvIChMQzMpLCBv cgo+Pj4gK0VUU0kgVFMgMTAzIDYzNCBMb3cgQ29tcGxleGl0eSBDb21tdW5pY2F0aW9uIENvZGVj IHBsdXMgKExDM3BsdXMpLgo+Pj4gKwo+Pj4gK1RoaXMgbXV4ZXIgYWNjZXB0cyBhIHNpbmdsZSBA Y29kZXtsYzN9IGF1ZGlvIHN0cmVhbS4KPj4+ICsKPj4+ICBAc2VjdGlvbiBtYXRyb3NrYQo+Pj4K Pj4+ICBNYXRyb3NrYSBjb250YWluZXIgbXV4ZXIuCj4+PiBkaWZmIC0tZ2l0IGEvbGliYXZmb3Jt YXQvTWFrZWZpbGUgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+Pj4gaW5kZXggNDRhYTQ4NTAyOS4u NDk2MWM0Mjg1MiAxMDA2NDQKPj4+IC0tLSBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlCj4+PiArKysg Yi9saWJhdmZvcm1hdC9NYWtlZmlsZQo+Pj4gQEAgLTMzMiw2ICszMzIsOCBAQCBPQkpTLSQoQ09O RklHX0tWQUdfREVNVVhFUikgICAgICAgICAgICAgICs9IGt2YWcubwo+Pj4gIE9CSlMtJChDT05G SUdfS1ZBR19NVVhFUikgICAgICAgICAgICAgICAgKz0ga3ZhZy5vIHJhd2VuYy5vCj4+PiAgT0JK Uy0kKENPTkZJR19MQUZfREVNVVhFUikgICAgICAgICAgICAgICArPSBsYWZkZWMubwo+Pj4gIE9C SlMtJChDT05GSUdfTEFUTV9NVVhFUikgICAgICAgICAgICAgICAgKz0gbGF0bWVuYy5vIHJhd2Vu Yy5vCj4+PiArT0JKUy0kKENPTkZJR19MQzNfREVNVVhFUikgICAgICAgICAgICAgICArPSBsYzNk ZWMubwo+Pj4gK09CSlMtJChDT05GSUdfTEMzX01VWEVSKSAgICAgICAgICAgICAgICAgKz0gbGMz ZW5jLm8KPj4+ICBPQkpTLSQoQ09ORklHX0xNTE00X0RFTVVYRVIpICAgICAgICAgICAgICs9IGxt bG00Lm8KPj4+ICBPQkpTLSQoQ09ORklHX0xPQVNfREVNVVhFUikgICAgICAgICAgICAgICs9IGxv YXNkZWMubyByYXdkZWMubwo+Pj4gIE9CSlMtJChDT05GSUdfTFVPREFUX0RFTVVYRVIpICAgICAg ICAgICAgKz0gbHVvZGF0ZGVjLm8KPj4+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9hbGxmb3Jt YXRzLmMgYi9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKPj4+IGluZGV4IDlkZjQyYmI4N2EuLjBi MzZhN2MzZWIgMTAwNjQ0Cj4+PiAtLS0gYS9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMKPj4+ICsr KyBiL2xpYmF2Zm9ybWF0L2FsbGZvcm1hdHMuYwo+Pj4gQEAgLTI1Miw2ICsyNTIsOCBAQCBleHRl cm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfa3ZhZ19kZW11eGVyOwo+Pj4gIGV4dGVybiBjb25z dCBGRk91dHB1dEZvcm1hdCBmZl9rdmFnX211eGVyOwo+Pj4gIGV4dGVybiBjb25zdCBGRklucHV0 Rm9ybWF0ICBmZl9sYWZfZGVtdXhlcjsKPj4+ICBleHRlcm4gY29uc3QgRkZPdXRwdXRGb3JtYXQg ZmZfbGF0bV9tdXhlcjsKPj4+ICtleHRlcm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfbGMzX2Rl bXV4ZXI7Cj4+PiArZXh0ZXJuIGNvbnN0IEZGT3V0cHV0Rm9ybWF0IGZmX2xjM19tdXhlcjsKPj4+ ICBleHRlcm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfbG1sbTRfZGVtdXhlcjsKPj4+ICBleHRl cm4gY29uc3QgRkZJbnB1dEZvcm1hdCAgZmZfbG9hc19kZW11eGVyOwo+Pj4gIGV4dGVybiBjb25z dCBGRklucHV0Rm9ybWF0ICBmZl9sdW9kYXRfZGVtdXhlcjsKPj4+IGRpZmYgLS1naXQgYS9saWJh dmZvcm1hdC9sYzNkZWMuYyBiL2xpYmF2Zm9ybWF0L2xjM2RlYy5jCj4+PiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMDAwMC4uNzRkNjc5NGQwMAo+Pj4gLS0tIC9kZXYvbnVs bAo+Pj4gKysrIGIvbGliYXZmb3JtYXQvbGMzZGVjLmMKPj4+IEBAIC0wLDAgKzEsMTY0IEBACj4+ PiArLyoKPj4+ICsgKiBMQzMgZGVtdXhlcgo+Pj4gKyAqIENvcHlyaWdodCAoQykgMjAyNCAgQW50 b2luZSBTb3VsaWVyIDxhc291bGllckBnb29nbGUuY29tPgo+Pj4gKyAqCj4+PiArICogVGhpcyBm aWxlIGlzIHBhcnQgb2YgRkZtcGVnLgo+Pj4gKyAqCj4+PiArICogRkZtcGVnIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+Pj4gKyAqIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4+ICsgKiBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIKPj4+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KPj4+ICsgKgo+Pj4gKyAqIEZGbXBlZyBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo+Pj4gKyAqIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4+PiAr ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUKPj4+ICsgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgo+Pj4gKyAqCj4+PiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwo+Pj4gKyAqIExpY2Vuc2UgYWxvbmcg d2l0aCBGRm1wZWc7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKPj4+ICsgKiBG b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s IE1BCj4+PiAwMjExMC0xMzAxIFVTQQo+Pj4gKyAqLwo+Pj4gKwo+Pj4gKy8qKgo+Pj4gKyAqIEBm aWxlCj4+PiArICogQmFzZWQgb24gdGhlIGZpbGUgZm9ybWF0IHNwZWNpZmllZCBieSA6Cj4+PiAr ICoKPj4+ICsgKiAtIEJsdWV0b290aCBTSUcgLSBMb3cgQ29tcGxleGl0eSBDb21tdW5pY2F0aW9u IENvZGVjIFRlc3QgU3VpdGUKPj4+ICsgKgo+Pj4gaHR0cHM6Ly93d3cuYmx1ZXRvb3RoLm9yZy9k b2NtYW4vaGFuZGxlcnMvZG93bmxvYWRkb2MuYXNoeD9kb2NfaWQ9NTAyMzAxCj4+PiArICogICAz LjIuOC4yIFJlZmVyZW5jZSBMQzMgQ29kZWMgQml0c3RyZWFtIEZvcm1hdAo+Pj4gKyAqCj4+PiAr ICogLSBFVFNJIFRJIDEwMyA2MzQgVjEuNC4xIC0gTG93IENvbXBsZXhpdHkgQ29tbXVuaWNhdGlv biBDb2RlYyBwbHVzCj4+PiArICoKPj4+IGh0dHBzOi8vd3d3LmV0c2kub3JnL2RlbGl2ZXIvZXRz aV90cy8xMDM2MDBfMTAzNjk5LzEwMzYzNC8wMS4wNC4wMV82MC90c18xMDM2MzR2MDEwNDAxcC5w ZGYKPj4+ICsgKiAgIExDM3BsdXMgY29uZm9ybWFuY2Ugc2NyaXB0IHBhY2thZ2UKPj4+ICsgKi8K Pj4+ICsKPj4+ICsjaW5jbHVkZSAibGliYXZjb2RlYy9wYWNrZXQuaCIKPj4+ICsjaW5jbHVkZSAi bGliYXZ1dGlsL2ludHJlYWR3cml0ZS5oIgo+Pj4gKwo+Pj4gKyNpbmNsdWRlICJhdmZvcm1hdC5o Igo+Pj4gKyNpbmNsdWRlICJhdmlvLmgiCj4+PiArI2luY2x1ZGUgImRlbXV4LmgiCj4+PiArI2lu Y2x1ZGUgImludGVybmFsLmgiCj4+PiArCj4+PiArdHlwZWRlZiBzdHJ1Y3QgTEMzRGVtdXhDb250 ZXh0IHsKPj4+ICsgICAgaW50IGR0LCBkZWxheTsKPj4+ICsgICAgaW50NjRfdCB0aW1lc3RhbXA7 Cj4+PiArICAgIGludDY0X3QgbGVuZ3RoOwo+Pj4gK30gTEMzRGVtdXhDb250ZXh0Owo+Pj4gKwo+ Pj4gK3N0YXRpYyBpbnQgbGMzX3JlYWRfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKPj4+ICt7 Cj4+PiArICAgIExDM0RlbXV4Q29udGV4dCAqbGMzID0gcy0+cHJpdl9kYXRhOwo+Pj4gKyAgICBB VlN0cmVhbSAqc3QgPSBOVUxMOwo+Pj4gKyAgICB1aW50MTZfdCB0YWcsIGhkcl9zaXplOwo+Pj4g KyAgICB1aW50MTZfdCBmcmFtZV8xMHVzOwo+Pj4gKyAgICB1aW50MzJfdCBsZW5ndGg7Cj4+PiAr ICAgIGludCBlcF9tb2RlLCBocl9tb2RlOwo+Pj4gKyAgICBpbnQgc3JhdGVfaHosIGNoYW5uZWxz LCBiaXRfcmF0ZTsKPj4+ICsgICAgaW50IG51bV9leHRyYV9wYXJhbXMsIHJldDsKPj4+ICsKPj4+ ICsgICAgdGFnID0gYXZpb19yYjE2KHMtPnBiKTsKPj4+ICsgICAgaGRyX3NpemUgPSBhdmlvX3Js MTYocy0+cGIpOwo+Pj4gKwo+Pj4gKyAgICBpZiAodGFnICE9IDB4MWNjYyB8fCBoZHJfc2l6ZSA8 IDkgKiBzaXplb2YodWludDE2X3QpKQo+Pj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJ RERBVEE7Cj4+PiArCj4+PiArICAgIG51bV9leHRyYV9wYXJhbXMgPSBoZHJfc2l6ZSAvIHNpemVv Zih1aW50MTZfdCkgLSA5Owo+Pj4gKwo+Pj4gKyAgICBzcmF0ZV9oeiAgID0gYXZpb19ybDE2KHMt PnBiKSAqIDEwMDsKPj4+ICsgICAgYml0X3JhdGUgICA9IGF2aW9fcmwxNihzLT5wYikgKiAxMDA7 Cj4+PiArICAgIGNoYW5uZWxzICAgPSBhdmlvX3JsMTYocy0+cGIpOwo+Pj4gKyAgICBmcmFtZV8x MHVzID0gYXZpb19ybDE2KHMtPnBiKTsKPj4+ICsgICAgZXBfbW9kZSAgICA9IGF2aW9fcmwxNihz LT5wYikgIT0gMDsKPj4+ICsgICAgbGVuZ3RoICAgICA9IGF2aW9fcmwzMihzLT5wYik7Cj4+PiAr ICAgIGhyX21vZGUgICAgPSBudW1fZXh0cmFfcGFyYW1zID49IDEgJiYgYXZpb19ybDE2KHMtPnBi KTsKPj4+ICsKPj4+ICsgICAgc3QgPSBhdmZvcm1hdF9uZXdfc3RyZWFtKHMsIE5VTEwpOwo+Pj4g KyAgICBpZiAoIXN0KQo+Pj4gKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKPj4+ICsK Pj4+ICsgICAgYXZwcml2X3NldF9wdHNfaW5mbyhzdCwgNjQsIDEsIHNyYXRlX2h6KTsKPj4+ICsg ICAgc3QtPnN0YXJ0X3RpbWUgPSAwOwo+Pj4gKyAgICBzdC0+ZHVyYXRpb24gPSBsZW5ndGg7Cj4+ PiArCj4+PiArICAgIHN0LT5jb2RlY3Bhci0+Y29kZWNfdHlwZSA9IEFWTUVESUFfVFlQRV9BVURJ TzsKPj4+ICsgICAgc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9IEFWX0NPREVDX0lEX0xDMzsKPj4+ ICsgICAgc3QtPmNvZGVjcGFyLT5zYW1wbGVfcmF0ZSA9IHNyYXRlX2h6Owo+Pj4gKyAgICBzdC0+ Y29kZWNwYXItPmJpdF9yYXRlID0gYml0X3JhdGU7Cj4+PiArICAgIHN0LT5jb2RlY3Bhci0+Y2hf bGF5b3V0Lm5iX2NoYW5uZWxzID0gY2hhbm5lbHM7Cj4+PiArCj4+PiArICAgIGlmICgocmV0ID0g ZmZfYWxsb2NfZXh0cmFkYXRhKHN0LT5jb2RlY3BhciwgNikpIDwgMCkgewo+Pj4gKyAgICAgICAg YXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIkNvdWxkIG5vdCBhbGxvY2F0ZSBleHRyYWRhdGEuXG4i KTsKPj4+ICsgICAgICAgIHJldHVybiByZXQ7Cj4+PiArICAgIH0KPj4+ICsKPj4+ICsgICAgQVZf V0wxNihzdC0+Y29kZWNwYXItPmV4dHJhZGF0YSArIDAsIGZyYW1lXzEwdXMpOwo+Pj4gKyAgICBB Vl9XTDE2KHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgMiwgZXBfbW9kZSk7Cj4+PiArICAgIEFW X1dMMTYoc3QtPmNvZGVjcGFyLT5leHRyYWRhdGEgKyA0LCBocl9tb2RlKTsKPj4+ICsKPj4+ICsg ICAgbGMzLT5kdCA9IGF2X3Jlc2NhbGUoZnJhbWVfMTB1cywgc3JhdGVfaHosIDEwMCoxMDAwKTsK Pj4+ICsgICAgbGMzLT5kZWxheSA9IGF2X3Jlc2NhbGUoZnJhbWVfMTB1cyA9PSA3NTAgPyA0MDAg OiAyNTAsIHNyYXRlX2h6LAo+Pj4gMTAwKjEwMDApOwo+Pj4gKwo+Pj4gKyAgICBsYzMtPnRpbWVz dGFtcCA9IC1sYzMtPmRlbGF5Owo+Pj4gKyAgICBsYzMtPmxlbmd0aCA9IHN0LT5kdXJhdGlvbjsK Pj4+ICsKPj4+ICsgICAgcmV0dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQgbGMz X3JlYWRfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKPj4+ICt7Cj4+ PiArICAgIExDM0RlbXV4Q29udGV4dCAqbGMzID0gcy0+cHJpdl9kYXRhOwo+Pj4gKyAgICBBVklP Q29udGV4dCAqcGIgPSBzLT5wYjsKPj4+ICsgICAgaW50IHJldDsKPj4+ICsKPj4+Cj4+Cj4+IGlu dDY0X3QgcG9zID0gYXZpb190ZWxsKHBiKTsKPj4KPj4KPj4+ICsgICAgcmV0ID0gYXZfZ2V0X3Bh Y2tldChzLT5wYiwgcGt0LCBhdmlvX3JsMTYocGIpKTsKPj4+ICsgICAgaWYgKHJldCA8IDApCj4+ PiArICAgICAgICByZXR1cm4gcmV0Owo+Pj4gKwo+Pj4gKyAgICBwa3QtPnBvcyAtPSAyOwo+Pj4K Pj4KPj4gcGt0LT5wb3MgPSBwb3M7Cj4+Cj4+ICsgICAgcGt0LT5wdHMgPSBGRk1BWChsYzMtPnRp bWVzdGFtcCwgMCk7Cj4+Pgo+Pgo+PiBSZW1vdmUgdGhhdCBsaW5lIGFib3ZlLgo+Pgo+Pgo+Pj4g KyAgICBwa3QtPmR1cmF0aW9uID0gbGMzLT5kdDsKPj4+ICsKPj4+ICsgICAgbGMzLT50aW1lc3Rh bXAgKz0gbGMzLT5kdDsKPj4+ICsgICAgaWYgKGxjMy0+dGltZXN0YW1wID4gbGMzLT5sZW5ndGgp IHsKPj4+ICsgICAgICAgIHBrdC0+ZHVyYXRpb24gLT0gbGMzLT50aW1lc3RhbXAgLSBsYzMtPmxl bmd0aDsKPj4+ICsgICAgICAgIGxjMy0+dGltZXN0YW1wID0gbGMzLT5sZW5ndGg7Cj4+PiArICAg IH0KPj4+ICsKPj4+Cj4+Cj4+IFJlbW92ZSBhYm92ZSBibG9jay4KPj4KPj4KPj4+ICsgICAgcmV0 dXJuIDA7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQgbGMzX3JlYWRfc2VlayhBVkZvcm1h dENvbnRleHQgKnMsIGludCBzdHJlYW1faW5kZXgsIGludDY0X3QKPj4+IHRpbWVzdGFtcCwgaW50 IGZsYWdzKQo+Pj4gK3sKPj4+ICsgICAgQVZTdHJlYW0gKnN0ID0gcy0+c3RyZWFtc1tzdHJlYW1f aW5kZXhdOwo+Pj4gKyAgICBGRlN0cmVhbSAqY29uc3Qgc3RpID0gZmZzdHJlYW0oc3QpOwo+Pj4g KyAgICBMQzNEZW11eENvbnRleHQgKmxjMyA9IHMtPnByaXZfZGF0YTsKPj4+ICsgICAgY29uc3Qg QVZJbmRleEVudHJ5ICppZTsKPj4+ICsgICAgaW50IGluZGV4Owo+Pj4gKwo+Pj4gKyAgICB0aW1l c3RhbXAgPSBGRk1BWCh0aW1lc3RhbXAgLSBsYzMtPmRlbGF5LCAwKTsKPj4+ICsgICAgaWYgKHRp bWVzdGFtcCA+PSBsYzMtPmxlbmd0aCkKPj4+ICsgICAgICAgIHJldHVybiBBVkVSUk9SX0VPRjsK Pj4+ICsKPj4+ICsgICAgaW5kZXggPSBhdl9pbmRleF9zZWFyY2hfdGltZXN0YW1wKHN0LCB0aW1l c3RhbXAsIGZsYWdzKTsKPj4+ICsgICAgaWUgPSBpbmRleCA8IDAgPyBOVUxMIDogJnN0aS0+aW5k ZXhfZW50cmllc1tpbmRleF07Cj4+PiArICAgIGlmICghaWUgfHwgYXZpb19zZWVrKHMtPnBiLCBp ZS0+cG9zLCBTRUVLX1NFVCkgPCAwKQo+Pj4gKyAgICAgICAgcmV0dXJuIC0xOwo+Pj4gKwo+Pj4g KyAgICBsYzMtPnRpbWVzdGFtcCA9IGllLT50aW1lc3RhbXA7Cj4+PiArICAgIGlmIChsYzMtPnRp bWVzdGFtcCA9PSAwKQo+Pj4gKyAgICAgIGxjMy0+dGltZXN0YW1wIC09IGxjMy0+ZGVsYXk7Cj4+ PiArCj4+PiArICAgIHJldHVybiAwOwo+Pj4gK30KPj4+Cj4+Cj4+IFRoaXMgbG9naWMgaXMgdW5u ZWNlc3NhcnkuCj4+IEZvcm1hdCBkb2VzIG5vdCBzdG9yZSB0aW1lc3RhbXAgaW50ZXJuYWxseSBp biBiaXRzdHJlYW0uCj4+IEp1c3Qgc2V0IHBhY2tldCBkdXJhdGlvbiB0byBudW1iZXIgb2Ygc2Ft cGxlcyBzdG9yZWQgaW4gdGhhdCBwYWNrZXQuCj4+IE5vIG5lZWQgZm9yIHB0cyBvdmVyZGVzaWdu LCBhbmQgcmVtb3ZlIHRoaXMgcmVhZF9zZWVrX2Z1bmN0aW9uLgo+PiBBbmQganVzdCBsZWF2ZSBH RU5FUklDX0lOREVYIGZsYWdzIGJlbGxvdy4KPj4KPj4KPj4+ICsKPj4+ICtjb25zdCBGRklucHV0 Rm9ybWF0IGZmX2xjM19kZW11eGVyID0gewo+Pj4gKyAgICAucC5uYW1lICAgICAgICAgPSAibGMz IiwKPj4+ICsgICAgLnAubG9uZ19uYW1lICAgID0gTlVMTF9JRl9DT05GSUdfU01BTEwoIkxDMyAo TG93IENvbXBsZXhpdHkKPj4+IENvbW11bmljYXRpb24gQ29kZWMpIiksCj4+PiArICAgIC5wLmV4 dGVuc2lvbnMgICA9ICJsYzMiLAo+Pj4gKyAgICAucC5mbGFncyAgICAgICAgPSBBVkZNVF9HRU5F UklDX0lOREVYLAo+Pj4gKyAgICAucHJpdl9kYXRhX3NpemUgPSBzaXplb2YoTEMzRGVtdXhDb250 ZXh0KSwKPj4+ICsgICAgLnJlYWRfaGVhZGVyICAgID0gbGMzX3JlYWRfaGVhZGVyLAo+Pj4gKyAg ICAucmVhZF9wYWNrZXQgICAgPSBsYzNfcmVhZF9wYWNrZXQsCj4+PiArICAgIC5yZWFkX3NlZWsg ICAgICA9IGxjM19yZWFkX3NlZWssCj4+PiArfTsKPj4+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1h dC9sYzNlbmMuYyBiL2xpYmF2Zm9ybWF0L2xjM2VuYy5jCj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+Pj4gaW5kZXggMDAwMDAwMDAwMC4uZTc2ODIxMmY2Mwo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4g KysrIGIvbGliYXZmb3JtYXQvbGMzZW5jLmMKPj4+IEBAIC0wLDAgKzEsMTAwIEBACj4+PiArLyoK Pj4+ICsgKiBMQzMgbXV4ZXIKPj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjQgIEFudG9pbmUgU291 bGllciA8YXNvdWxpZXJAZ29vZ2xlLmNvbT4KPj4+ICsgKgo+Pj4gKyAqIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEZGbXBlZy4KPj4+ICsgKgo+Pj4gKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPj4+ICsgKiBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4+PiArICogTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCj4+PiAr ICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCj4+PiArICoKPj4+ICsgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPj4+ICsgKiBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+Pj4gKyAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCj4+PiArICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KPj4+ICsgKgo+Pj4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPj4+ICsgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZt cGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCj4+PiArICogRm91bmRhdGlv biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQo+Pj4g MDIxMTAtMTMwMSBVU0EKPj4+ICsgKi8KPj4+ICsKPj4+ICsvKioKPj4+ICsgKiBAZmlsZQo+Pj4g KyAqIEJhc2VkIG9uIHRoZSBmaWxlIGZvcm1hdCBzcGVjaWZpZWQgYnkgOgo+Pj4gKyAqCj4+PiAr ICogLSBCbHVldG9vdGggU0lHIC0gTG93IENvbXBsZXhpdHkgQ29tbXVuaWNhdGlvbiBDb2RlYyBU ZXN0IFN1aXRlCj4+PiArICoKPj4+IGh0dHBzOi8vd3d3LmJsdWV0b290aC5vcmcvZG9jbWFuL2hh bmRsZXJzL2Rvd25sb2FkZG9jLmFzaHg/ZG9jX2lkPTUwMjMwMQo+Pj4gKyAqICAgMy4yLjguMiBS ZWZlcmVuY2UgTEMzIENvZGVjIEJpdHN0cmVhbSBGb3JtYXQKPj4+ICsgKgo+Pj4gKyAqIC0gRVRT SSBUSSAxMDMgNjM0IFYxLjQuMSAtIExvdyBDb21wbGV4aXR5IENvbW11bmljYXRpb24gQ29kZWMg cGx1cwo+Pj4gKyAqCj4+PiBodHRwczovL3d3dy5ldHNpLm9yZy9kZWxpdmVyL2V0c2lfdHMvMTAz NjAwXzEwMzY5OS8xMDM2MzQvMDEuMDQuMDFfNjAvdHNfMTAzNjM0djAxMDQwMXAucGRmCj4+PiAr ICogICBMQzNwbHVzIGNvbmZvcm1hbmNlIHNjcmlwdCBwYWNrYWdlCj4+PiArICovCj4+PiArCj4+ PiArI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3JpdGUuaCIKPj4+ICsKPj4+ICsjaW5jbHVk ZSAiYXZmb3JtYXQuaCIKPj4+ICsjaW5jbHVkZSAiYXZpby5oIgo+Pj4gKyNpbmNsdWRlICJtdXgu aCIKPj4+ICsjaW5jbHVkZSAiaW50ZXJuYWwuaCIKPj4+ICsKPj4+ICtzdGF0aWMgYXZfY29sZCBp bnQgbGMzX2luaXQoQVZGb3JtYXRDb250ZXh0ICpzKQo+Pj4gK3sKPj4+ICsgICAgaWYgKHMtPm5i X3N0cmVhbXMgIT0gMSkgewo+Pj4gKyAgICAgICAgYXZfbG9nKHMsIEFWX0xPR19FUlJPUiwgIlRo aXMgbXV4ZXIgb25seSBzdXBwb3J0cyBhIHNpbmdsZQo+Pj4gc3RyZWFtLlxuIik7Cj4+PiArICAg ICAgICByZXR1cm4gQVZFUlJPUihFSU5WQUwpOwo+Pj4gKyAgICB9Cj4+PiArCj4+PiArICAgIHJl dHVybiAwOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgaW50IGxjM193cml0ZV9oZWFkZXIoQVZG b3JtYXRDb250ZXh0ICpzKQo+Pj4gK3sKPj4+ICsgICAgQVZTdHJlYW0gKnN0ID0gcy0+c3RyZWFt c1swXTsKPj4+ICsgICAgaW50IGNoYW5uZWxzID0gc3QtPmNvZGVjcGFyLT5jaF9sYXlvdXQubmJf Y2hhbm5lbHM7Cj4+PiArICAgIGludCBzcmF0ZV9oeiA9IHN0LT5jb2RlY3Bhci0+c2FtcGxlX3Jh dGU7Cj4+PiArICAgIGludCBiaXRfcmF0ZSA9IHN0LT5jb2RlY3Bhci0+Yml0X3JhdGU7Cj4+PiAr ICAgIGludCBmcmFtZV91cywgZXBfbW9kZSwgaHJfbW9kZTsKPj4+ICsgICAgdWludDMyX3QgbmJf c2FtcGxlcyA9IGF2X3Jlc2NhbGVfcSgKPj4+ICsgICAgICAgIHN0LT5kdXJhdGlvbiwgc3QtPnRp bWVfYmFzZSwgKEFWUmF0aW9uYWwpeyAxLCBzcmF0ZV9oeiB9KTsKPj4+ICsKPj4+ICsgICAgaWYg KHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhX3NpemUgPCA2KQo+Pj4gKyAgICAgICAgcmV0dXJuIEFW RVJST1JfSU5WQUxJRERBVEE7Cj4+PiArCj4+PiArICAgIGZyYW1lX3VzID0gQVZfUkwxNihzdC0+ Y29kZWNwYXItPmV4dHJhZGF0YSArIDApICogMTA7Cj4+PiArICAgIGVwX21vZGUgPSBBVl9STDE2 KHN0LT5jb2RlY3Bhci0+ZXh0cmFkYXRhICsgMikgIT0gMDsKPj4+ICsgICAgaHJfbW9kZSA9IEFW X1JMMTYoc3QtPmNvZGVjcGFyLT5leHRyYWRhdGEgKyA0KSAhPSAwOwo+Pj4gKwo+Pj4gKyAgICBh dmlvX3diMTYocy0+cGIsIDB4MWNjYyk7Cj4+PiArICAgIGF2aW9fd2wxNihzLT5wYiwgKDkgKyBo cl9tb2RlKSAqIHNpemVvZih1aW50MTZfdCkpOwo+Pj4gKyAgICBhdmlvX3dsMTYocy0+cGIsIHNy YXRlX2h6IC8gMTAwKTsKPj4+ICsgICAgYXZpb193bDE2KHMtPnBiLCBiaXRfcmF0ZSAvIDEwMCk7 Cj4+PiArICAgIGF2aW9fd2wxNihzLT5wYiwgY2hhbm5lbHMpOwo+Pj4gKyAgICBhdmlvX3dsMTYo cy0+cGIsIGZyYW1lX3VzIC8gMTApOwo+Pj4gKyAgICBhdmlvX3dsMTYocy0+cGIsIGVwX21vZGUp Owo+Pj4gKyAgICBhdmlvX3dsMzIocy0+cGIsIG5iX3NhbXBsZXMpOwo+Pj4gKyAgICBpZiAoaHJf bW9kZSkKPj4+ICsgICAgICAgIGF2aW9fd2wxNihzLT5wYiwgaHJfbW9kZSk7Cj4+PiArCj4+PiAr ICAgIHJldHVybiAwOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgaW50IGxjM193cml0ZV9wYWNr ZXQoQVZGb3JtYXRDb250ZXh0ICpzLCBBVlBhY2tldCAqcGt0KQo+Pj4gK3sKPj4+ICsgICAgYXZp b193bDE2KHMtPnBiLCBwa3QtPnNpemUpOwo+Pj4gKyAgICBhdmlvX3dyaXRlKHMtPnBiLCBwa3Qt PmRhdGEsIHBrdC0+c2l6ZSk7Cj4+PiArICAgIHJldHVybiAwOwo+Pj4gK30KPj4+ICsKPj4+ICtj b25zdCBGRk91dHB1dEZvcm1hdCBmZl9sYzNfbXV4ZXIgPSB7Cj4+PiArICAgIC5wLm5hbWUgICAg ICAgID0gImxjMyIsCj4+PiArICAgIC5wLmxvbmdfbmFtZSAgID0gTlVMTF9JRl9DT05GSUdfU01B TEwoIkxDMyAoTG93IENvbXBsZXhpdHkKPj4+IENvbW11bmljYXRpb24gQ29kZWMpIiksCj4+PiAr ICAgIC5wLmV4dGVuc2lvbnMgID0gImxjMyIsCj4+PiArICAgIC5wLmF1ZGlvX2NvZGVjID0gQVZf Q09ERUNfSURfTEMzLAo+Pj4gKyAgICAucC52aWRlb19jb2RlYyA9IEFWX0NPREVDX0lEX05PTkUs Cj4+PiArICAgIC5wLmZsYWdzICAgICAgID0gQVZGTVRfTk9USU1FU1RBTVBTLAo+Pj4gKyAgICAu aW5pdCAgICAgICAgICA9IGxjM19pbml0LAo+Pj4gKyAgICAud3JpdGVfaGVhZGVyICA9IGxjM193 cml0ZV9oZWFkZXIsCj4+PiArICAgIC53cml0ZV9wYWNrZXQgID0gbGMzX3dyaXRlX3BhY2tldCwK Pj4+ICt9Owo+Pj4gLS0KPj4+IDIuNDQuMC40NzguZ2Q5MjYzOTllZjktZ29vZwo+Pj4KPj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+PiBmZm1wZWct ZGV2ZWwgbWFpbGluZyBsaXN0Cj4+PiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+Pj4gaHR0cHM6 Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4+Pgo+Pj4gVG8gdW5z dWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4+PiBmZm1wZWctZGV2ZWwtcmVx dWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+Pj4KPj4KX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1h aWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFp bG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFi b3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVj dCAidW5zdWJzY3JpYmUiLgo=