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 C1B2C4797E for ; Thu, 28 Sep 2023 11:28:04 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BCF1168CB64; Thu, 28 Sep 2023 14:28:01 +0300 (EEST) Received: from glom.nmugroup.com (glom.nmugroup.com [193.183.80.6]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3A73D68CA3A for ; Thu, 28 Sep 2023 14:27:55 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by glom.nmugroup.com (Postfix) with ESMTP id BEAFB5428EA7 for ; Thu, 28 Sep 2023 13:27:54 +0200 (CEST) Received: from debian.lan (unknown [IPv6:2a00:66c0:a::72c]) (Authenticated sender: git01) by glom.nmugroup.com (Postfix) with ESMTPSA id 89DD35428E93 for ; Thu, 28 Sep 2023 13:27:54 +0200 (CEST) Message-ID: From: Tomas =?ISO-8859-1?Q?H=E4rdin?= To: FFmpeg development discussions and patches Date: Thu, 28 Sep 2023 13:27:53 +0200 In-Reply-To: <165ecf91-e236-c8c3-bf1c-8f298d3eb676@gmail.com> References: <20230906143832.54604-1-jamrial@gmail.com> <84f75b7d8b56bb5d4e08cc9e821ad54f32377778.camel@haerdin.se> <165ecf91-e236-c8c3-bf1c-8f298d3eb676@gmail.com> User-Agent: Evolution 3.46.4-2 MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH] [RFC]avformat: introduce AVStreamGroup 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-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: ZnJlIDIwMjMtMDktMTUga2xvY2thbiAxNToxMCAtMDMwMCBza3JldiBKYW1lcyBBbG1lcjoKPiBP biA5LzEzLzIwMjMgNjozNCBBTSwgVG9tYXMgSMOkcmRpbiB3cm90ZToKPiA+IG9ucyAyMDIzLTA5 LTA2IGtsb2NrYW4gMTY6MTYgLTAzMDAgc2tyZXYgSmFtZXMgQWxtZXI6Cj4gPiA+IE9uIDkvNi8y MDIzIDI6NTMgUE0sIFRvbWFzIEjDpHJkaW4gd3JvdGU6Cj4gPiA+ID4gb25zIDIwMjMtMDktMDYg a2xvY2thbiAxMTozOCAtMDMwMCBza3JldiBKYW1lcyBBbG1lcjoKPiA+ID4gPiA+IFNpZ25lZC1v ZmYtYnk6IEphbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT4KPiA+ID4gPiA+IC0tLQo+ID4g PiA+ID4gVGhpcyBpcyBhbiBpbml0aWFsIHByb29mIG9mIGNvbmNlcHQgZm9yIEFWU3RyZWFtIGdy b3VwcywKPiA+ID4gPiA+IHNvbWV0aGluZwo+ID4gPiA+ID4gdGhhdCdzCj4gPiA+ID4gPiBuZWVk ZWQgZm9yIHF1aXRlIGEgZmV3IGV4aXN0aW5nIGFuZCB1cGNvbWluZyBmb3JtYXRzIHRoYXQKPiA+ ID4gPiA+IGxhdmYKPiA+ID4gPiA+IGhhcyBubwo+ID4gPiA+ID4gd2F5IHRvCj4gPiA+ID4gPiBj dXJyZW50bHkgZXhwb3J0LiBTYWlkIGZvcm1hdHMgZGVmaW5lIGEgc2luZ2xlIHZpZGVvIG9yIGF1 ZGlvCj4gPiA+ID4gPiBzdHJlYW0KPiA+ID4gPiA+IGNvbXBvc2VkCj4gPiA+ID4gPiBieSBtZXJn aW5nIHNldmVyYWwgaW5kaXZpZHVhbHkgbXVsdGlwbGV4ZWQgc3RyZWFtcyB3aXRoaW4gYQo+ID4g PiA+ID4gbWVkaWEKPiA+ID4gPiA+IGZpbGUuCj4gPiA+ID4gPiBUaGlzIGlzIHRoZSBjYXNlIG9m IEhFSUYsIGEgZm9ybWF0IGRlZmluaW5nIGEgdGlsZWQgaW1hZ2UKPiA+ID4gPiA+IHdoZXJlCj4g PiA+ID4gPiBlYWNoCj4gPiA+ID4gPiB0aWxlIGlzIGEKPiA+ID4gPiA+IHNlcGFyYXRlIGltYWdl IChlaXRoZXIgaGV2YywgYXYxLCBldGMpIGFsbCBvZiB3aGljaCBuZWVkIHRvCj4gPiA+ID4gPiBi ZQo+ID4gPiA+ID4gZGVjb2RlZAo+ID4gPiA+ID4gaW5kaXZpZHVhbHkgYW5kIHRoZW4gc3RpdGNo ZWQgdG9nZXRoZXIgZm9yIHByZXNlbnRhdGlvbiB1c2luZwo+ID4gPiA+ID4gY29udGFpbmVyIGxl dmVsCj4gPiA+ID4gPiBpbmZvcm1hdGlvbjsKPiA+ID4gPiAKPiA+ID4gPiBJIHJlbWVtYmVyIHRo aXMgYmxvY2tpbmcgSEVJRiBhcyBhIEdTb0MgcHJvamVjdC4gSG9uZXN0bHkgdGhlCj4gPiA+ID4g d2F5Cj4gPiA+ID4gdGhhdAo+ID4gPiA+IGZvcm1hdCBpcyBkZXNpZ25lZCBpcyBpbW1lbnNlbHkg aG9ycmlibGUuCj4gPiA+ID4gCj4gPiA+ID4gPiBNUEVHLVRTIHByb2dyYW1zLCBjdXJyZW50bHkg ZXhwb3J0ZWQgYXMKPiA+ID4gPiA+IEFWUHJvZ3JhbSwgd2hpY2ggdGhpcyBuZXcgZ2VuZXJhbCBw dXJwb3NlIEFQSSB3b3VsZCByZXBsYWNlLgo+ID4gPiA+IAo+ID4gPiA+IEkgY2FuIGZvcmVzZWUg dGhpcyBiZWluZyBhIG51aXNhbmNlIGZvciB1c2VycyBhY2N1c3RvbWVkIHRvCj4gPiA+ID4gQVZQ cm9ncmFtLgo+ID4gPiA+IEFsc28gdGhpcyBmZWF0dXJlIGJvcmRlcnMgb24gTkxFIHRlcnJpdG9y eS4gTm90IG5lY2Vzc2FyaWx5IGEKPiA+ID4gPiBiYWQKPiA+ID4gPiB0aGluZywgYnV0IEZGbXBl ZyBpcyBvdmVyYWxsIHBvb3JseSBhcmNoaXRlY3R1cmVkIGZvciBOTEUKPiA+ID4gPiBzdHVmZi4g SQo+ID4gPiA+IGJlbGlldmUgSSByYWlzZWQgdGhpcyBpc3N1ZSBiYWNrIHdoZW4gbGF2Zmkgd2Fz IHByb3Bvc2VkLCBpdAo+ID4gPiA+IGJlaW5nCj4gPiA+ID4gd2hvbGx5IHVuc3VpdGFibGUgZm9y IE5MRSB3b3JrLgo+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+ID4gK3R5cGVkZWYgc3RydWN0IEFW U3RyZWFtR3JvdXAgewo+ID4gPiA+ID4gK8KgwqDCoCAvKioKPiA+ID4gPiA+ICvCoMKgwqDCoCAq IEEgY2xhc3MgZm9yIEByZWYgYXZvcHRpb25zLiBTZXQgb24gc3RyZWFtIGNyZWF0aW9uLgo+ID4g PiA+ID4gK8KgwqDCoMKgICovCj4gPiA+ID4gPiArwqDCoMKgIGNvbnN0IEFWQ2xhc3MgKmF2X2Ns YXNzOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gK8KgwqDCoCAvKioKPiA+ID4gPiA+ICvCoMKgwqDC oCAqIEdyb3VwIGluZGV4IGluIEFWRm9ybWF0Q29udGV4dC4KPiA+ID4gPiA+ICvCoMKgwqDCoCAq Lwo+ID4gPiA+ID4gK8KgwqDCoCBpbnQgaW5kZXg7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArwqDC oMKgIC8qKgo+ID4gPiA+ID4gK8KgwqDCoMKgICogRm9ybWF0LXNwZWNpZmljIGdyb3VwIElELgo+ ID4gPiA+ID4gK8KgwqDCoMKgICogZGVjb2Rpbmc6IHNldCBieSBsaWJhdmZvcm1hdAo+ID4gPiA+ ID4gK8KgwqDCoMKgICogZW5jb2Rpbmc6IHNldCBieSB0aGUgdXNlciwgcmVwbGFjZWQgYnkgbGli YXZmb3JtYXQgaWYKPiA+ID4gPiA+IGxlZnQKPiA+ID4gPiA+IHVuc2V0Cj4gPiA+ID4gPiArwqDC oMKgwqAgKi8KPiA+ID4gPiA+ICvCoMKgwqAgaW50IGlkOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4g K8KgwqDCoCAvKioKPiA+ID4gPiA+ICvCoMKgwqDCoCAqIENvZGVjIHBhcmFtZXRlcnMgYXNzb2Np YXRlZCB3aXRoIHRoaXMgc3RyZWFtIGdyb3VwLgo+ID4gPiA+ID4gQWxsb2NhdGVkCj4gPiA+ID4g PiBhbmQgZnJlZWQKPiA+ID4gPiA+ICvCoMKgwqDCoCAqIGJ5IGxpYmF2Zm9ybWF0IGluIGF2Zm9y bWF0X25ld19zdHJlYW1fZ3JvdXAoKSBhbmQKPiA+ID4gPiA+IGF2Zm9ybWF0X2ZyZWVfY29udGV4 dCgpCj4gPiA+ID4gPiArwqDCoMKgwqAgKiByZXNwZWN0aXZlbHkuCj4gPiA+ID4gPiArwqDCoMKg wqAgKgo+ID4gPiA+ID4gK8KgwqDCoMKgICogLSBkZW11eGluZzogZmlsbGVkIGJ5IGxpYmF2Zm9y bWF0IG9uIHN0cmVhbSBncm91cAo+ID4gPiA+ID4gY3JlYXRpb24gb3IKPiA+ID4gPiA+IGluCj4g PiA+ID4gPiArwqDCoMKgwqAgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdmZvcm1hdF9maW5k X3N0cmVhbV9pbmZvKCkKPiA+ID4gPiA+ICvCoMKgwqDCoCAqIC0gbXV4aW5nOiBmaWxsZWQgYnkg dGhlIGNhbGxlciBiZWZvcmUKPiA+ID4gPiA+IGF2Zm9ybWF0X3dyaXRlX2hlYWRlcigpCj4gPiA+ ID4gPiArwqDCoMKgwqAgKi8KPiA+ID4gPiA+ICvCoMKgwqAgQVZDb2RlY1BhcmFtZXRlcnMgKmNv ZGVjcGFyOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gK8KgwqDCoCB2b2lkICpwcml2X2RhdGE7Cj4g PiA+ID4gPiArCj4gPiA+ID4gPiArwqDCoMKgIC8qKgo+ID4gPiA+ID4gK8KgwqDCoMKgICogTnVt YmVyIG9mIGVsZW1lbnRzIGluIEFWU3RyZWFtR3JvdXAuc3RyZWFtX2luZGV4Lgo+ID4gPiA+ID4g K8KgwqDCoMKgICoKPiA+ID4gPiA+ICvCoMKgwqDCoCAqIFNldCBieSBhdl9zdHJlYW1fZ3JvdXBf YWRkX3N0cmVhbSgpIGFuZAo+ID4gPiA+ID4gYXZfc3RyZWFtX2dyb3VwX25ld19zdHJlYW0oKSwg bXVzdCBub3QKPiA+ID4gPiA+ICvCoMKgwqDCoCAqIGJlIG1vZGlmaWVkIGJ5IGFueSBvdGhlciBj b2RlLgo+ID4gPiA+ID4gK8KgwqDCoMKgICovCj4gPiA+ID4gPiArwqDCoMKgIGludCBuYl9zdHJl YW1faW5kZXhlczsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICvCoMKgwqAgLyoqCj4gPiA+ID4gPiAr wqDCoMKgwqAgKiBBIGxpc3Qgb2YgaW5kZXhlcyBvZiBzdHJlYW1zIGluIHRoZSBncm91cC4gTmV3 Cj4gPiA+ID4gPiBlbnRyaWVzCj4gPiA+ID4gPiBhcmUKPiA+ID4gPiA+IGNyZWF0ZWQgd2l0aAo+ ID4gPiA+ID4gK8KgwqDCoMKgICogYXZfc3RyZWFtX2dyb3VwX2FkZF9zdHJlYW0oKSBhbmQKPiA+ ID4gPiA+IGF2X3N0cmVhbV9ncm91cF9uZXdfc3RyZWFtKCkuCj4gPiA+ID4gPiArwqDCoMKgwqAg Kgo+ID4gPiA+ID4gK8KgwqDCoMKgICogLSBkZW11eGluZzogZW50cmllcyBhcmUgY3JlYXRlZCBi eSBsaWJhdmZvcm1hdCBpbgo+ID4gPiA+ID4gYXZmb3JtYXRfb3Blbl9pbnB1dCgpLgo+ID4gPiA+ ID4gK8KgwqDCoMKgICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSWYgQVZGTVRDVFhfTk9IRUFE RVIgaXMgc2V0IGluIGN0eF9mbGFncywKPiA+ID4gPiA+IHRoZW4KPiA+ID4gPiA+IG5ldyBlbnRy aWVzIG1heSBhbHNvCj4gPiA+ID4gPiArwqDCoMKgwqAgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBhcHBlYXIgaW4gYXZfcmVhZF9mcmFtZSgpLgo+ID4gPiA+ID4gK8KgwqDCoMKgICogLSBtdXhp bmc6IGVudHJpZXMgYXJlIGNyZWF0ZWQgYnkgdGhlIHVzZXIgYmVmb3JlCj4gPiA+ID4gPiBhdmZv cm1hdF93cml0ZV9oZWFkZXIoKS4KPiA+ID4gPiA+ICvCoMKgwqDCoCAqCj4gPiA+ID4gPiArwqDC oMKgwqAgKiBGcmVlZCBieSBsaWJhdmZvcm1hdCBpbiBhdmZvcm1hdF9mcmVlX2NvbnRleHQoKS4K PiA+ID4gPiA+ICvCoMKgwqDCoCAqLwo+ID4gPiA+ID4gK8KgwqDCoCBpbnQgKnN0cmVhbV9pbmRl eDsKPiA+ID4gPiA+ICt9IEFWU3RyZWFtR3JvdXA7Cj4gPiA+ID4gCj4gPiA+ID4gSSBzZWUgbm8g cHJvdmlzaW9ucyBmb3IgYXR0YWNoaW5nIG1ldGFkYXRhLCBmb3IgZXhhbXBsZSBIRUlGCj4gPiA+ ID4gc3RpdGNoaW5nLgo+ID4gPiA+IFB1dHRpbmcgaXQgaW4gY29kZXJwYXIgc2VlbXMgd3Jvbmcs IHNpbmNlIGl0IGlzIGNvbnRhaW5lci1sZXZlbAo+ID4gPiA+IG1ldGFkYXRhLiBXZSBjb3VsZCBq dXN0IGhhdmUgYW4gSEVJRiBzcGVjaWZpYyBzdHJ1Y3QgYXMKPiA+ID4gPiBjb250YWluZXIKPiA+ ID4gPiBtZXRhZGF0YS4KPiA+ID4gCj4gPiA+IFRoZSBkb3h5IGZvciBBVkNvZGVjUGFyYW1ldGVy cyBzYXlzICJUaGlzIHN0cnVjdCBkZXNjcmliZXMgdGhlCj4gPiA+IHByb3BlcnRpZXMgb2YgYW4g ZW5jb2RlZCBzdHJlYW0uIiwgc28gSXQncyBub3QgYWJvdXQgY29udGFpbmVyCj4gPiA+IGxldmVs Cj4gPiA+IHByb3BzLgo+ID4gCj4gPiBJdCAqaXMqIGNvbnRhaW5lciBsZXZlbCBwcm9wcy4gVGhl IHVuZGVybHlpbmcgY29kZWNzIGhhdmUgbm8KPiA+IGNvbmNlcHQgb2YKPiA+IHRoaXMga2luZCBv ZiBzdGl0Y2hpbmcuIFRoZSBjbG9zZXN0IHlvdSdyZSBnb2luZyB0byBnZXQgaXMgdGlsZXMgaW4K PiA+IEpQRUcyMDAwLCBidXQgSSBkb3VidCBIRUlGIHN1cHBvcnQgSlBFRzIwMDAuCj4gPiAKPiA+ IFdlIG1pZ2h0IHNheSAid2VsbCB0aGUgcmVzdWx0aW5nIHN0cmVhbSBncm91cCBoYXMgcmVzb2x1 dGlvbiBzbwo+ID4gaXQncwo+ID4gbGlrZSBhIGNvZGVjIiBidXQgc2VlIGJlbG93Lgo+ID4gCj4g PiA+IEFsdGhvdWdoIGNvZGVjcGFyIHdpbGwgYmUgdXNlZCB0byBleHBvcnQgdGhlIG1lcmdlZC9z dGl0Y2hlZAo+ID4gPiBzdHJlYW0KPiA+ID4gcHJvcHMgbGlrZSBkaW1lbnNpb25zIGFuZCBjaGFu bmVsIGxheW91dCwgbWF5YmUgeW91J3JlIHJpZ2h0Cj4gPiA+IGFib3V0Cj4gPiA+IHRoZQo+ID4g PiBtZXRhZGF0YSBiZWNhdXNlIHRoZXJlIHdvdWxkIGJlIGEgY2xhc2ggYmV0d2VlbiBhY3R1YWwK PiA+ID4gSEVWQy9PcHVzL0FBQy9BVjEKPiA+ID4gZXh0cmFkYXRhIGFuZCB0aGUgSEVJRi9JQU1G L2V0YyBzcGVjaWZpYyBpbmZvIGlmIGJvdGggdXNlCj4gPiA+IGNvZGVjcGFyLmV4dHJhZGF0YSwg ZXZlbiBpZiBvbmUgd2lsbCBiZSBpbiBBVlN0cmVhbSBhbmQgdGhlIG90aGVyCj4gPiA+IGluCj4g PiA+IEFWU3RyZWFtR3JvdXAuCj4gPiAKPiA+IFllcywgcHJldHR5IG11Y2guIEJ1dCBpdCdzIG1v cmUgdGhhdCBjb2RlY3BhciBpcyBwcmVzc2VkIGludG8KPiA+IHNlcnZpY2UKPiA+IHdoZXJlIGl0 IHByb2JhYmx5IGRvZXNuJ3QgYmVsb25nLiBJdCBtaWdodCBiZSBtb3JlIGFwcHJvcHJpYXRlIHRv Cj4gPiBjYWxsCj4gPiB0aGVzZSAiZXNzZW5jZSBwYXJhbWV0ZXJzIi4gSSdtIGdvaW5nIHRvIHN0 aWNrIG15IG5lY2sgb3V0IGZ1cnRoZXIKPiA+IGFuZAo+ID4gc2F5IHRoYXQgcGljdHVyZSBhbmQg c291bmQgZXNzZW5jZSBzaG91bGQgYmUgaGFuZGxlZCB3aXRoIGRpZmZlcmVudAo+ID4gc3RydWN0 cywgbm90IHNtdXNoZWQgdG9nZXRoZXIgaW50byBvbmUgc3RydWN0IGxpa2UKPiA+IEFWQ29kZWNQ YXJhbWV0ZXJzLgo+IAo+IENhbiB5b3Ugc3VnZ2VzdCBob3cgdG8gYXBwcm9hY2ggdGhpcyB0aGVu LCBpZiBub3Qgd2l0aCAKPiBBVkNvZGVjUGFyYW1ldGVycz8gRm9yIHRoZSByZXN1bHRpbmcgbWVy Z2VkL3N0aXRjaGVkIHN0cmVhbSwgd2UgbmVlZAo+IGF0IAo+IHRoZSB2ZXJ5IGxlYXN0IGRpbWVu c2lvbnMsIGFuZCBmb3IgYXVkaW8gd2UgbmVlZCBjaGFubmVsIGxheW91dCwgYW5kCj4gZm9yIAo+ IGVhY2ggZGlmZmVyZW50IGtpbmQgb2YgZ3JvdXAgdHlwZSAoSEVJRiwgSUFNRiwgVFMgcHJvZ3Jh bXMpIHdlIG5lZWQgCj4gc3BlY2lmaWMgcGFyYW1ldGVycywgbGlrZSBvcmRlciBvZiB0aWxlcyBm b3IgSEVJRiwgbWl4aW5nIHBhcmFtZXRlcnMKPiBmb3IgCj4gSUFNRiwgYW5kIHRoZXNlIHBhcmFt ZXRlcnMgc2hvdWxkIGJlIGluIGEgZm9ybSBlYXN5IGZvciB0aGUgdXNlcgo+IChsaWtlIAo+IG91 ciBDTEkpIHRvIGZlZWQgdG8gbGF2ZmksIHdoZXJlIHRoZSBhY3R1YWwgbWVyZ2luZy9zdGl0Y2hp bmcgd291bGQKPiB0YWtlIAo+IHBsYWNlIHdpdGggbmV3IG9yIGV4aXN0aW5nIGZpbHRlcnMgZm9y IHRoaXMgc3BlY2lmaWMgcHVycG9zZS4KPiAKPiBNYXliZSBzb21ldGhpbmcgbGlrZToKPiAKPiAt LS0tCj4gZW51bSBBVlN0cmVhbUdyb3VwUGFyYW1zVHlwZSB7Cj4gwqDCoMKgwqAgQVZfU1RSRUFN X0dST1VQX1BBUkFNU19OT05FLAo+IMKgwqDCoMKgIEFWX1NUUkVBTV9HUk9VUF9QQVJBTVNfVFMs Cj4gwqDCoMKgwqAgQVZfU1RSRUFNX0dST1VQX1BBUkFNU19IRUlGLAo+IMKgwqDCoMKgIEFWX1NU UkVBTV9HUk9VUF9QQVJBTVNfSUFNRiwKPiB9Owo+IAo+IHR5cGVkZWYgc3RydWN0IEFWU3RyZWFt R3JvdXBUU1BhcmFtcyB7Cj4gwqDCoMKgwqAgLy8gQmFzaWNhbGx5IEFWUHJvZ3JhbQo+IH0gQVZT dHJlYW1Hcm91cFRTUGFyYW1zOwo+IAo+IHR5cGVkZWYgc3RydWN0IEFWU3RyZWFtR3JvdXBIRUlG UGFyYW1zIHsKPiDCoMKgwqDCoCAvLyBkaW1lbnNpb25zLCB0aWxlIG9yZGVyLCBldGMKPiB9IEFW U3RyZWFtR3JvdXBIRUlGUGFyYW1zOwo+IAo+IHR5cGVkZWYgc3RydWN0IEFWU3RyZWFtR3JvdXBJ QU1GUGFyYW1zIHsKPiDCoMKgwqDCoCAvLyBjaGFubmVsIGxheW91dCwgbWl4aW5nIHBhcmFtcwo+ IH0gQVZTdHJlYW1Hcm91cElBTUZQYXJhbXM7Cj4gCj4gdHlwZWRlZiBzdHJ1Y3QgQVZTdHJlYW1H cm91cCB7Cj4gwqDCoMKgwqAgWy4uLl0KPiDCoMKgwqDCoCBlbnVtIEFWU3RyZWFtR3JvdXBQYXJh bXNUeXBlIHR5cGU7Cj4gwqDCoMKgwqAgdW5pb24gewo+IMKgwqDCoMKgwqDCoMKgwqAgQVZTdHJl YW1Hcm91cFRTUGFyYW1zIHRzOwo+IMKgwqDCoMKgwqDCoMKgwqAgQVZTdHJlYW1Hcm91cEhFSUZQ YXJhbXMgaGVpZjsKPiDCoMKgwqDCoMKgwqDCoMKgIEFWU3RyZWFtR3JvdXBJQU1GUGFyYW1zIGlh bWY7Cj4gwqDCoMKgwqAgfSBlc3NlbmNlOwo+IMKgwqDCoMKgIFsuLi5dCj4gfSBBVlN0cmVhbUdy b3VwOwoKU29ycnkgZm9yIG5vdCByZXBseWluZyB0byB0aGlzIHNvb25lci4KClllcywgYSB0eXBl ZCB1bmlvbiBsaWtlIHRoaXMgc2hvdWxkIHdvcmsgbmljZWx5LiBUaGlzIHdheSB3ZSBrZWVwCnRo aW5ncyByZWxhdGVkIHRvIGVhY2ggdHlwZSBvZiBzdHJlYW0gZ3JvdXAgc2VwYXJhdGUuCgovVG9t YXMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVn LWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBl Zy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNp dCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdp dGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=