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 D249246FA6 for ; Mon, 24 Jul 2023 08:29:27 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8331568C75C; Mon, 24 Jul 2023 11:29:25 +0300 (EEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02olkn2036.outbound.protection.outlook.com [40.92.44.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D3DDA68C753 for ; Mon, 24 Jul 2023 11:29:19 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TNCgIgwWIDreUeC2bFBbd3bdIm3HGCln09NU4yY0qnE0i21dTi/vPpL9hIOkSloRX/WzL7uaY34zzwN1lwT7wY7YrOMhDLjU1qAiuzsS0diwi5BUU+DFPS88s2ub2Em1dfIO0f2ylcnsivV9nE6hi0XkS8Y7lKmr3PkFjhR8smCdbOi0uJm73wSVlAbSbMBBxJnxIuj/LVV5ykyoT5DS4553zuB6NFl9b1BML0Q687Z0XJ9Kvct7CiA5u6h5gVc8gREFbT/WlCjndOFyj/GLrgU7RR75LmiU4Z77h/SPgARBGsgva8M8AW+EmJJ+tIlztkuPY3WwxnFcUTCc7PhDhA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dUU06bNfNwgR6hJlkAbJy5y2UUJ7LUUbZ4VDSh1Gyyo=; b=ADxmutQyvHJDpr9KvHStLVe7NAbcVzW0ishg5jXYXpMC7aW6hwD2Lcd6IYCb0LYcE1X+UI0acJfg8jr7W/vg3rwuBmAZefEHey7xlFASIAmAc80nTJI2wqDKegMHpk5hSDKL/iaFPtU5vrIsE6M23ftROH+sg32nK1YaoaDmw11q+n/CFuUdy5+REX5qcwmagSVwnp9c3//1AiBNf2Suq1efenOTQkc8RQE7blYHOEWT7F0fQWbTcOdVrQh9E1tkrGKsQRRRUxsjXOe1Y6bkZJo1nRd99ChBKcFqvLZR6GXCENcr3l05BO5nTpQRK/LRU+XJBXTChCZqfV4yk3bNBw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dUU06bNfNwgR6hJlkAbJy5y2UUJ7LUUbZ4VDSh1Gyyo=; b=fKk3Gk9+zw1bGyT2QLElsqtz+iBHoPAbqPR5FBKIEDaf0NBE8o3jhku/6Hho2hOrKO99wO0pBCtSPkk+8q8Sg9aFJnEiQiBGA8vsZWdBlmuWrdSo5gxkS1wC6l6PhsTova48YxBMytFit8LAlBCBCUaSZ0NJfMt153Ucj+vJeYoZJf0ndFlVuND7aMF7pDZjwMKMjBjQ3n0d6qZ7G49A3U/HEuTnue6TWFdM8fKi9VsMHjOaBilNOMW8WePLLK2iq0A46grL/6xeMUE/5wK8Wlo0hNVT/IRV//FJNtP9Li839gplljM4E6yc2UgfE1jhAwFsJfAc+NjOXNbMs57BMg== Received: from PH7PR11MB7430.namprd11.prod.outlook.com (2603:10b6:510:274::20) by IA1PR11MB6169.namprd11.prod.outlook.com (2603:10b6:208:3eb::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.31; Mon, 24 Jul 2023 08:29:16 +0000 Received: from PH7PR11MB7430.namprd11.prod.outlook.com ([fe80::6216:b3a7:a5b2:bd43]) by PH7PR11MB7430.namprd11.prod.outlook.com ([fe80::6216:b3a7:a5b2:bd43%4]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 08:29:16 +0000 From: hung kuishing To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH] add prores bitstream demuxer and muxer Thread-Index: Adm3kVnd2HkDpZRvRuWzRFTGp4i0WwGbq96AAAIlEHk= Date: Mon, 24 Jul 2023 08:29:16 +0000 Message-ID: References: In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [B9EeILTSPFib86Ph9lG+R2yrvPelFwbHp028USO76eI=] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR11MB7430:EE_|IA1PR11MB6169:EE_ x-ms-office365-filtering-correlation-id: edba699d-097c-4b88-7d2b-08db8c20118d x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: B1H6FLyXhCzv6Rbk0RkWnoyzNcZh1l8q++1vw7H4O+HrRCsr6Ut0DbXQUUFmbuIhsHAqfu6dhloPercN4GvrIs06sxOkAZwQGeGVUdD3+41+IaHH70ggl6zcNkDS9yqz3/YTYfGfTCue1ruCY/32kcGo5I/kT+QYrt8m2Zxf0n643nDEM2cpX7B9CcreCCwrNJ6EXzIr+yNBh86+CVvnD0V9nk6XdrCxkKSpBU44MMOlY4V2+eN1Uh1cIlqV3BEq/VKgvcHWBY3Z65Y9tXYI/t3+ESshXaU19nmH3tE2xbFM9cNmzUbhthxV4Oue7/p6sS7tmwo+xXsur4WdHC5tlSqg9/zn11qj7zqE3Prg5u7L3F9195liZygw4p/asOuz9iKEEGpfgkUwUBQBD1FzfYAxhp9kPNZr9Q+9LW2oV6lL0zhqdb9Q9qlxbwFtDm8fM2GKJvtSEVwPcdkOAvfkZtaVvurb0vzU9kiwrha/2kih0E1Npq7lOx/EHPDm2il8/V1MRfNKx/vlLmvL4rgGBO5oZaJogpF/lTch0Se1BIh80rmwsAOVp5pceHRCfEluOjXQvKKoXopz9oLzyQj4iOag0cj10bZQzssEchviY1c= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?Zk1DZ2FOU0pLQzlFb3VVQUc4dDJ3TU9lbmsrYjlyQ3RPR0JiQ3BYRVF0L3lk?= =?gb2312?B?aHQxbTBVdlBuSEluaHR6V0tmZ2ZpdGF5ZEp5NzdMYWZnbW5TcmVHRVdhQTdj?= =?gb2312?B?R1EyNkkrZjFVUnN1eC9WUXdTR3hzL3pFMm1HRElLQnlFd2Z1Y3dHZ0dlVEla?= =?gb2312?B?L1RCMmVJSng3WVpOcjJDbnIzay9MTHEwbURjczM4YlhrelVtL2NucU1nWU9P?= =?gb2312?B?a05ObFBlbDZPT2JXcURlZXE5dlZDVGlCbWtEbzUvMWtRaDVKS1FkZ1dGZTk0?= =?gb2312?B?N2pXc0FiVFdrVjg1SVNva0RxS2d6MUk5bTJhOExzRkJEY05Sb0dLOGVxVEZx?= =?gb2312?B?VnlaMTBNSDduVU90Yy9VWGo5NHJiRHYwOU44YThUZlVXckZqSjhJUU5XYnlm?= =?gb2312?B?cHA3a2t4K0VSYTMwUzJqUXRGWTJaK2ZhWk1JSGNVa2tSaGRWbmxYSUhkSTBa?= =?gb2312?B?NHRFclUzTDBpS0FCZ0IxQWJQSHo2aXFMSFlrYk9UMGs3Zk1ZSDJGd3l5T0tY?= =?gb2312?B?UVp5N0hqNG5CUkg4d2I2Nm5HMFhuWHJwNVIyK1lTQ3ZWc3hIcVIvTWxqNSsz?= =?gb2312?B?TSszWUVIZGV0SnpaSVVvME9hRDZUVDR6ZHVRaFVaVmRuajBLT0dNYjlWNmcz?= =?gb2312?B?LzEwNWVWM3poeGQ0VWJxTHM0aXFwRXI3d2RXNDdOeVBMTmlwdE13NnlCOUgz?= =?gb2312?B?SFhxVDNob3g1K0pLT0d5cnIvT2laVXFJM0FrdGdMdTU4NktYUUxPVTBXOHFo?= =?gb2312?B?d2pNeEN5dDhsNWMyeXRSenN0ZTN2bVJpT1R2SzZ5QTZ0SDJqaGk0dUtkelJw?= =?gb2312?B?T0hMOXloL2YwaXlDZlVoc3c5WTQwZ093SmZjUTlQVUN4VDVDWmF1SzNEQ3JY?= =?gb2312?B?SlJKWTVNM1NUZkdiQkZRQldRbW1RN0xvNy9CL2dDOHd6Q0Fjdi9LRTVzUzNa?= =?gb2312?B?TXhqWnV6YTZOUkwrYytsU1diSGlUb082YUs4aEt2Z2w4Q1JZbUpPMUtsYXNJ?= =?gb2312?B?V3UvRmxpajhGTVZrNVdoZ29vR0R3NnVyRjZEZHhVRGl1cnpYMmpzWlhvQkpp?= =?gb2312?B?UDZwNnBEaGNtekRLOS91Z1psMGdrWHNuQ1FxbXE0ZG9lbHdrTjk2eWF6NlZN?= =?gb2312?B?azVsUW43czA0UmZ1WTcyK2ZjemJzbXpEc1laL0ZkOUZzZzh5REdHTlByUml4?= =?gb2312?B?TytCdnF2c1hZeGpwLzgvMWFva29lNjY1VVF1aWhlbGZWbkJkdXVjb0twVWNl?= =?gb2312?B?TjBSL3JWaU93a3FTSWR6d3lybFdnbHNuQ05lMUFLSFpQQmY1M0NBYjJhTFpO?= =?gb2312?B?OEpRNDRGUS8yRHVSZEFXRlZBcGpLVEd5aDVacG9Rekd0UU0xUm5oWXpodFpH?= =?gb2312?B?R0JjdUFyV2ZRaXhNYzByRFBEYWlJY0dJRXZsekdZbEFIYnpNTjdKR280cmdX?= =?gb2312?B?dElZV3hDZGxNWXZlV2hlMUFUTnZFMTZod05Vb3lEOTFkdGNES3JZWkxWV1dK?= =?gb2312?B?UUpCMUZFVFppck00cEFQVXhUUnB3cXhHamgzK3lrOXc0OTAyOFV2emYvanUx?= =?gb2312?B?UGJCcnVKUitOMUVadjFsZFdlN3QzZlBVVTM3L1hYTzdBeVlLODF0NmlSWFYv?= =?gb2312?B?TjQzTjdSSzg2NWczMjloSmFJUUZkYkE9PQ==?= MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB7430.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: edba699d-097c-4b88-7d2b-08db8c20118d X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jul 2023 08:29:16.3908 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6169 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] =?gb2312?b?u9i4tDogIFtQQVRDSF0gYWRkIHByb3JlcyBi?= =?gb2312?b?aXRzdHJlYW0gZGVtdXhlciBhbmQgbXV4ZXI=?= 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="gb2312" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: QW5kcmVhcyBSaGVpbmhhcmR0OiBUaGFuayB5b3UgZm9yIHlvdXIgcmV2aWV3ISBJIHdpbGwgdHJ5 IHVzZSBwcmVmaXhlZCBsZW5ndGguDQoNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCreivP7IyzogZmZtcGVnLWRldmVsIDxmZm1wZWctZGV2ZWwtYm91bmNlc0BmZm1wZWcub3Jn PiC0+rHtIEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2suY29t Pg0Kt6LLzcqxvOQ6IDIwMjPE6jfUwjI0yNUgMTU6MjUNCsrVvP7IyzogZmZtcGVnLWRldmVsQGZm bXBlZy5vcmcgPGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnPg0K1vfM4jogUmU6IFtGRm1wZWctZGV2 ZWxdIFtQQVRDSF0gYWRkIHByb3JlcyBiaXRzdHJlYW0gZGVtdXhlciBhbmQgbXV4ZXINCg0KaHVu ZyBrdWlzaGluZzoNCj4gLS0tDQo+ICBsaWJhdmNvZGVjL01ha2VmaWxlICAgICAgICB8ICAxICsN Cj4gIGxpYmF2Y29kZWMvcGFyc2Vycy5jICAgICAgIHwgIDEgKw0KPiAgbGliYXZjb2RlYy9wcm9y ZXNfcGFyc2VyLmMgfCA5MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K PiAgbGliYXZmb3JtYXQvTWFrZWZpbGUgICAgICAgfCAgMiArDQo+ICBsaWJhdmZvcm1hdC9hbGxm b3JtYXRzLmMgICB8ICAyICsNCj4gIGxpYmF2Zm9ybWF0L3Byb3Jlc2RlYy5jICAgIHwgNjIgKysr KysrKysrKysrKysrKysrKysrKysrKysNCj4gIGxpYmF2Zm9ybWF0L3Jhd2VuYy5jICAgICAgIHwg MTMgKysrKysrDQo+ICA3IGZpbGVzIGNoYW5nZWQsIDE3MiBpbnNlcnRpb25zKCspDQo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgbGliYXZjb2RlYy9wcm9yZXNfcGFyc2VyLmMNCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBsaWJhdmZvcm1hdC9wcm9yZXNkZWMuYw0KPg0KPiBkaWZmIC0tZ2l0IGEvbGliYXZj b2RlYy9NYWtlZmlsZSBiL2xpYmF2Y29kZWMvTWFrZWZpbGUNCj4gaW5kZXggMWIwMjI2YzA4OS4u YjZlYmJmYjM0MCAxMDA2NDQNCj4gLS0tIGEvbGliYXZjb2RlYy9NYWtlZmlsZQ0KPiArKysgYi9s aWJhdmNvZGVjL01ha2VmaWxlDQo+IEBAIC0xMjE0LDYgKzEyMTQsNyBAQCBPQkpTLSQoQ09ORklH X1dFQlBfUEFSU0VSKSAgICAgICAgICAgICArPSB3ZWJwX3BhcnNlci5vDQo+ICBPQkpTLSQoQ09O RklHX1hCTV9QQVJTRVIpICAgICAgICAgICAgICArPSB4Ym1fcGFyc2VyLm8NCj4gIE9CSlMtJChD T05GSUdfWE1BX1BBUlNFUikgICAgICAgICAgICAgICs9IHhtYV9wYXJzZXIubw0KPiAgT0JKUy0k KENPTkZJR19YV0RfUEFSU0VSKSAgICAgICAgICAgICAgKz0geHdkX3BhcnNlci5vDQo+ICtPQkpT LSQoQ09ORklHX1BST1JFU19QQVJTRVIpICAgICAgICAgICArPSBwcm9yZXNfcGFyc2VyLm8NCj4N Cj4gICMgYml0c3RyZWFtIGZpbHRlcnMNCj4gIE9CSlMtJChDT05GSUdfQUFDX0FEVFNUT0FTQ19C U0YpICAgICAgICAgICs9IGFhY19hZHRzdG9hc2NfYnNmLm8NCj4gZGlmZiAtLWdpdCBhL2xpYmF2 Y29kZWMvcGFyc2Vycy5jIGIvbGliYXZjb2RlYy9wYXJzZXJzLmMNCj4gaW5kZXggMjg1ZjgxYTkw MS4uZmY3YzE1YjdkMSAxMDA2NDQNCj4gLS0tIGEvbGliYXZjb2RlYy9wYXJzZXJzLmMNCj4gKysr IGIvbGliYXZjb2RlYy9wYXJzZXJzLmMNCj4gQEAgLTgwLDYgKzgwLDcgQEAgZXh0ZXJuIGNvbnN0 IEFWQ29kZWNQYXJzZXIgZmZfd2VicF9wYXJzZXI7DQo+ICBleHRlcm4gY29uc3QgQVZDb2RlY1Bh cnNlciBmZl94Ym1fcGFyc2VyOw0KPiAgZXh0ZXJuIGNvbnN0IEFWQ29kZWNQYXJzZXIgZmZfeG1h X3BhcnNlcjsNCj4gIGV4dGVybiBjb25zdCBBVkNvZGVjUGFyc2VyIGZmX3h3ZF9wYXJzZXI7DQo+ ICtleHRlcm4gY29uc3QgQVZDb2RlY1BhcnNlciBmZl9wcm9yZXNfcGFyc2VyOw0KDQpUaGVzZSBs aXN0cyBhcmUgc3VwcG9zZWQgdG8gYmUgc29ydGVkIGFscGhhYmV0aWNhbGx5Lg0KDQo+DQo+ICAj aW5jbHVkZSAibGliYXZjb2RlYy9wYXJzZXJfbGlzdC5jIg0KPg0KPiBkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy9wcm9yZXNfcGFyc2VyLmMgYi9saWJhdmNvZGVjL3Byb3Jlc19wYXJzZXIuYw0KPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi40YjUwMTQ3NzY4DQo+IC0t LSAvZGV2L251bGwNCj4gKysrIGIvbGliYXZjb2RlYy9wcm9yZXNfcGFyc2VyLmMNCj4gQEAgLTAs MCArMSw5MSBAQA0KPiArLyoNCj4gKyAqIFByb1JlcyBiaXRzdHJlYW0gcGFyc2VyDQo+ICsgKiBD b3B5cmlnaHQgKGMpIDIwMjMgY2xhcmtoIDxodW5na3Vpc2hpbmdAb3V0bG9vay5jb20+DQo+ICsg Kg0KPiArICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLg0KPiArICoNCj4gKyAqIEZGbXBl ZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3INCj4gKyAq IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMNCj4gKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlcg0KPiArICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ICsgKg0KPiArICogRkZtcGVnIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQo+ICsgKiBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv Zg0KPiArICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZSBHTlUNCj4gKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuDQo+ICsgKg0KPiArICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYw0KPiArICogTGljZW5zZSBhbG9u ZyB3aXRoIEZGbXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KPiArICog Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQSAwMjExMC0xMzAxIFVTQQ0KPiArICovDQo+ICsNCj4gKyNpbmNsdWRlICJwYXJzZXIuaCIN Cj4gKyNpbmNsdWRlICJsaWJhdnV0aWwvaW50cmVhZHdyaXRlLmgiDQo+ICsNCj4gK3N0YXRpYyBp bnQgcHJvcmVzX2ZpbmRfZnJhbWVfZW5kKFBhcnNlQ29udGV4dCAqcGMsIGNvbnN0IHVpbnQ4X3Qg KmJ1ZiwgaW50IGJ1Zl9zaXplKQ0KPiArew0KPiArICAgIGludCBwaWNfZm91bmQgID0gcGMtPmZy YW1lX3N0YXJ0X2ZvdW5kOw0KPiArICAgIHVpbnQzMl90IHN0YXRlID0gcGMtPnN0YXRlOw0KPiAr ICAgIGludCBjdXIgPSAwOw0KPiArDQo+ICsgICAgaW50IGZsYWcgPSBBVl9SQjMyKCJpY3BmIik7 DQoNCk1LQkVUQUc7IGFsc28gdXNlIHVpbnQzMl90IGZvciBmbGFnLg0KDQo+ICsgICAgaWYgKCFw aWNfZm91bmQpIHsNCj4gKyAgICAgICAgZm9yICg7IGN1ciA8IGJ1Zl9zaXplOyBjdXIrKykgew0K PiArICAgICAgICAgICAgc3RhdGUgPSAoc3RhdGU8PDgpIHwgYnVmW2N1cl07DQo+ICsgICAgICAg ICAgICBpZiAoc3RhdGUgPT0gZmxhZyl7DQo+ICsgICAgICAgICAgICAgICAgKytjdXI7DQo+ICsg ICAgICAgICAgICAgICAgcGljX2ZvdW5kID0gMTsNCj4gKyAgICAgICAgICAgICAgICBicmVhazsN Cj4gKyAgICAgICAgICAgIH0NCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gKw0KPiArICAgIGlm IChwaWNfZm91bmQpIHsNCj4gKyAgICAgICAgaWYgKCFidWZfc2l6ZSkNCj4gKyAgICAgICAgICAg IHJldHVybiBFTkRfTk9UX0ZPVU5EOw0KPiArICAgICAgICBmb3IgKDsgY3VyIDwgYnVmX3NpemU7 ICsrY3VyKSB7DQo+ICsgICAgICAgICAgICBzdGF0ZSA9IChzdGF0ZSA8PCA4KSB8IGJ1ZltjdXJd Ow0KPiArICAgICAgICAgICAgaWYgKHN0YXRlID09IGZsYWcpIHsNCj4gKyAgICAgICAgICAgICAg ICBwYy0+ZnJhbWVfc3RhcnRfZm91bmQgPSAwOw0KPiArICAgICAgICAgICAgICAgIHBjLT5zdGF0 ZSA9IC0xOw0KPiArICAgICAgICAgICAgICAgIHJldHVybiBjdXIgLSA3Ow0KPiArICAgICAgICAg ICAgfQ0KPiArICAgICAgICB9DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcGMtPmZyYW1lX3N0YXJ0 X2ZvdW5kID0gcGljX2ZvdW5kOw0KPiArICAgIHBjLT5zdGF0ZSA9IHN0YXRlOw0KPiArDQo+ICsg ICAgcmV0dXJuIEVORF9OT1RfRk9VTkQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQgcHJvcmVz X3BhcnNlKEFWQ29kZWNQYXJzZXJDb250ZXh0ICpzLCBBVkNvZGVjQ29udGV4dCAqYXZjdHgsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqKnBvdXRidWYsIGludCAqcG91 dGJ1Zl9zaXplLA0KPiArICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwg aW50IGJ1Zl9zaXplKQ0KPiArew0KPiArICAgIFBhcnNlQ29udGV4dCAqcGMgPSBzLT5wcml2X2Rh dGE7DQo+ICsgICAgaW50IG5leHQ7DQo+ICsNCj4gKyAgICBpZiAocy0+ZmxhZ3MgJiBQQVJTRVJf RkxBR19DT01QTEVURV9GUkFNRVMpIHsNCj4gKyAgICAgICAgbmV4dCA9IGJ1Zl9zaXplOw0KPiAr ICAgIH0gZWxzZSB7DQo+ICsgICAgICAgIG5leHQgPSBwcm9yZXNfZmluZF9mcmFtZV9lbmQocGMs IGJ1ZiwgYnVmX3NpemUpOw0KPiArICAgICAgICBpZiAoZmZfY29tYmluZV9mcmFtZShwYywgbmV4 dCwgJmJ1ZiwgJmJ1Zl9zaXplKSA8IDApIHsNCj4gKyAgICAgICAgICAgICpwb3V0YnVmID0gTlVM TDsNCj4gKyAgICAgICAgICAgICpwb3V0YnVmX3NpemUgPSAwOw0KPiArICAgICAgICAgICAgcmV0 dXJuIGJ1Zl9zaXplOw0KPiArICAgICAgICB9DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgKnBvdXRi dWYgPSBidWY7DQo+ICsgICAgKnBvdXRidWZfc2l6ZSA9IGJ1Zl9zaXplOw0KPiArDQo+ICsgICAg cmV0dXJuIG5leHQ7DQo+ICt9DQo+ICsNCj4gK2NvbnN0IEFWQ29kZWNQYXJzZXIgZmZfcHJvcmVz X3BhcnNlciA9IHsNCj4gKyAgICAuY29kZWNfaWRzICAgICAgPSB7IEFWX0NPREVDX0lEX1BST1JF UyB9LA0KPiArICAgIC5wcml2X2RhdGFfc2l6ZSA9IHNpemVvZihQYXJzZUNvbnRleHQpLA0KPiAr ICAgIC5wYXJzZXJfcGFyc2UgICA9IHByb3Jlc19wYXJzZSwNCj4gKyAgICAucGFyc2VyX2Nsb3Nl ICAgPSBmZl9wYXJzZV9jbG9zZQ0KPiArfTsNCj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L01h a2VmaWxlIGIvbGliYXZmb3JtYXQvTWFrZWZpbGUNCj4gaW5kZXggNGNiMDBmODcwMC4uYTdmMjY1 MjUyZCAxMDA2NDQNCj4gLS0tIGEvbGliYXZmb3JtYXQvTWFrZWZpbGUNCj4gKysrIGIvbGliYXZm b3JtYXQvTWFrZWZpbGUNCj4gQEAgLTYzOSw2ICs2MzksOCBAQCBPQkpTLSQoQ09ORklHX1hXTUFf REVNVVhFUikgICAgICAgICAgICAgICs9IHh3bWEubw0KPiAgT0JKUy0kKENPTkZJR19ZT1BfREVN VVhFUikgICAgICAgICAgICAgICArPSB5b3Aubw0KPiAgT0JKUy0kKENPTkZJR19ZVVY0TVBFR1BJ UEVfREVNVVhFUikgICAgICArPSB5dXY0bXBlZ2RlYy5vDQo+ICBPQkpTLSQoQ09ORklHX1lVVjRN UEVHUElQRV9NVVhFUikgICAgICAgICs9IHl1djRtcGVnZW5jLm8NCj4gK09CSlMtJChDT05GSUdf UFJPUkVTX0RFTVVYRVIpICAgICAgICAgICAgKz0gcHJvcmVzZGVjLm8gcmF3ZGVjLm8NCj4gK09C SlMtJChDT05GSUdfUFJPUkVTX01VWEVSKSAgICAgICAgICAgICAgKz0gcmF3ZW5jLm8NCj4NCj4g ICMgZXh0ZXJuYWwgbGlicmFyeSBtdXhlcnMvZGVtdXhlcnMNCj4gIE9CSlMtJChDT05GSUdfQVZJ U1lOVEhfREVNVVhFUikgICAgICAgICAgKz0gYXZpc3ludGgubw0KPiBkaWZmIC0tZ2l0IGEvbGli YXZmb3JtYXQvYWxsZm9ybWF0cy5jIGIvbGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jDQo+IGluZGV4 IDYzMjQ5NTJiZDIuLjg5NTMzZWI2ODYgMTAwNjQ0DQo+IC0tLSBhL2xpYmF2Zm9ybWF0L2FsbGZv cm1hdHMuYw0KPiArKysgYi9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMNCj4gQEAgLTUyMCw2ICs1 MjAsOCBAQCBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfeHdtYV9kZW11eGVyOw0KPiAg ZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX3lvcF9kZW11eGVyOw0KPiAgZXh0ZXJuIGNv bnN0IEFWSW5wdXRGb3JtYXQgIGZmX3l1djRtcGVncGlwZV9kZW11eGVyOw0KPiAgZXh0ZXJuIGNv bnN0IEZGT3V0cHV0Rm9ybWF0IGZmX3l1djRtcGVncGlwZV9tdXhlcjsNCj4gK2V4dGVybiBjb25z dCBBVklucHV0Rm9ybWF0ICBmZl9wcm9yZXNfZGVtdXhlcjsNCj4gK2V4dGVybiBjb25zdCBGRk91 dHB1dEZvcm1hdCBmZl9wcm9yZXNfbXV4ZXI7DQo+ICAvKiBpbWFnZSBkZW11eGVycyAqLw0KPiAg ZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2ltYWdlX2JtcF9waXBlX2RlbXV4ZXI7DQo+ ICBleHRlcm4gY29uc3QgQVZJbnB1dEZvcm1hdCAgZmZfaW1hZ2VfY3JpX3BpcGVfZGVtdXhlcjsN Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3Byb3Jlc2RlYy5jIGIvbGliYXZmb3JtYXQvcHJv cmVzZGVjLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uMTE1 NDFmOGNkMw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2xpYmF2Zm9ybWF0L3Byb3Jlc2RlYy5j DQo+IEBAIC0wLDAgKzEsNjIgQEANCj4gKy8qDQo+ICsgKiBQcm9SZXMgYml0c3RyZWFtIGRlbXV4 ZXINCj4gKyAqIENvcHlyaWdodCAoYykgMjAyMyBjbGFya2ggPGh1bmdrdWlzaGluZ0BvdXRsb29r LmNvbT4NCj4gKyAqDQo+ICsgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBGRm1wZWcuDQo+ICsgKg0K PiArICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcg0KPiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYw0KPiArICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyDQo+ICsgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCj4gKyAqDQo+ICsgKiBG Rm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwN Cj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mDQo+ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQ0KPiArICogTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCj4gKyAqDQo+ICsgKiBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljDQo+ICsgKiBM aWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3 YXJlDQo+ICsgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs b29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBDQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUg ImxpYmF2dXRpbC9pbnRyZWFkd3JpdGUuaCINCj4gKyNpbmNsdWRlICJhdmZvcm1hdC5oIg0KPiAr I2luY2x1ZGUgInJhd2RlYy5oIg0KPiArDQo+ICtzdGF0aWMgaW50IHByb3Jlc19jaGVja19mcmFt ZV9oZWFkZXIoY29uc3QgdWludDhfdCAqYnVmLCBjb25zdCBpbnQgZGF0YV9zaXplKQ0KPiArew0K PiArICAgIGludCBoZHJfc2l6ZSwgd2lkdGgsIGhlaWdodDsNCj4gKyAgICBpbnQgdmVyc2lvbiwg YWxwaGFfaW5mbzsNCj4gKw0KPiArICAgIGhkcl9zaXplID0gQVZfUkIxNihidWYpOw0KPiArICAg IGlmIChoZHJfc2l6ZSA8IDIwKQ0KPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFU QTsNCj4gKw0KPiArICAgIHZlcnNpb24gPSBidWZbM107DQo+ICsgICAgaWYgKHZlcnNpb24gPiAx KQ0KPiArICAgICAgICByZXR1cm4gQVZFUlJPUl9JTlZBTElEREFUQTsNCj4gKw0KPiArICAgIHdp ZHRoICA9IEFWX1JCMTYoYnVmICsgOCk7DQo+ICsgICAgaGVpZ2h0ID0gQVZfUkIxNihidWYgKyAx MCk7DQo+ICsgICAgaWYgKCF3aWR0aCB8fCAhaGVpZ2h0KQ0KPiArICAgICAgICByZXR1cm4gQVZF UlJPUl9JTlZBTElEREFUQTsNCj4gKw0KPiArICAgIGFscGhhX2luZm8gPSBidWZbMTddICYgMHgw ZjsNCj4gKyAgICBpZiAoYWxwaGFfaW5mbyA+IDIpDQo+ICsgICAgICAgIHJldHVybiBBVkVSUk9S X0lOVkFMSUREQVRBOw0KPiArDQo+ICsgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyBpbnQgcHJvcmVzX3Byb2JlKGNvbnN0IEFWUHJvYmVEYXRhICpwKQ0KPiArew0KPiArICAgIGlm IChwLT5idWZfc2l6ZSA8IDI4IHx8IEFWX1JMMzIocC0+YnVmICsgNCkgIT0gQVZfUkwzMigiaWNw ZiIpKQ0KDQpUaGVyZSBpcyBubyBuZWVkIHRvIHVzZSBsaXR0bGUtZW5kaWFuIGhlcmUgKGl0IGlz IHVubmF0dXJhbCBmb3IgYQ0KYmlnLWVuZGlhbiBmb3JtYXQgYW55d2F5KS4gWW91IGNhbiBlLmcu IHVzZSBBVl9STjMyIGZvciBib3RoLg0KDQo+ICsgICAgICAgIHJldHVybiAwOw0KPiArDQo+ICsg ICAgaWYgKHByb3Jlc19jaGVja19mcmFtZV9oZWFkZXIocC0+YnVmICsgOCwgcC0+YnVmX3NpemUg LSA4KSA8IDApDQo+ICsgICAgICAgIHJldHVybiAwOw0KPiArDQo+ICsgICAgcmV0dXJuIEFWUFJP QkVfU0NPUkVfTUFYOw0KPiArfQ0KPiArDQo+ICtGRl9ERUZfUkFXVklERU9fREVNVVhFUihwcm9y ZXMsICJyYXcgUHJvUmVzIiwgcHJvcmVzX3Byb2JlLCBOVUxMLCBBVl9DT0RFQ19JRF9QUk9SRVMp DQoNCklJUkMgUHJvUmVzJ3Mgc3ViYmxvY2tzIGhhdmUgYW4gSVNPQk1GRi1zdHlsZSBsZW5ndGgt ZmllbGQgcHJlZml4ZWQgdG8NCnRoZSBibG9jaywgeWV0IHlvdSBkbyBub3QgdXNlIHRoaXMgYW5k IHNpbXBseSByZXR1cm4gYSBzbWFsbCBhbW91bnQgb2YNCmRhdGEgKFJBV19QQUNLRVRfU0laRSAo PTEwMjRCKSBieSBkZWZhdWx0KSBpbiBlYWNoIHBhY2tldC4gVGhpcyBkb2Vzbid0DQpzZWVtIHJl YXNvbmFibGUuDQoNClRoZSBwYXJzZXIsIHRvbywganVzdCBpZ25vcmVzIHRoaXMgYW5kIHNpbXBs eSBzZWFyY2hlcyBmb3IgdGhlIHN5bmMNCmNvZGUuIEluIHRoaXMgY2FzZSwgSSBhbSBhY3R1YWxs eSB3b25kZXJpbmcgd2hldGhlciB0aGlzIGlzIGNvcnJlY3QgYXQNCmFsbDogSXMgaXQgZ3VhcmFu dGVlZCB0aGF0ICJpY3BmIiBjYW4ndCBhcHBlYXIgaW5zaWRlIG9uZSBvZiB0aGVzZQ0Kc3ViYmxv Y2tzLCBjYXVzaW5nIG1pc3BhcnNpbmcgd2l0aCB5b3VyIHByb3Bvc2VkIHBhcnNlcj8gSWYgaXQg aXMNCmxlbmd0aC1wcmVmaXhlZCwgdGhlcmUgaXMgbm8gbmVlZCBmb3IgZXNjYXBpbmcgdGhlIHN0 YXJ0Y29kZS4NCg0KPiBkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvcmF3ZW5jLmMgYi9saWJhdmZv cm1hdC9yYXdlbmMuYw0KPiBpbmRleCBmOTE2ZGIxM2EyLi5kYjdkODhlNzgyIDEwMDY0NA0KPiAt LS0gYS9saWJhdmZvcm1hdC9yYXdlbmMuYw0KPiArKysgYi9saWJhdmZvcm1hdC9yYXdlbmMuYw0K PiBAQCAtNTg4LDMgKzU4OCwxNiBAQCBjb25zdCBGRk91dHB1dEZvcm1hdCBmZl92YzFfbXV4ZXIg PSB7DQo+ICAgICAgLnAuZmxhZ3MgICAgICAgICAgID0gQVZGTVRfTk9USU1FU1RBTVBTLA0KPiAg fTsNCj4gICNlbmRpZg0KPiArDQo+ICsjaWYgQ09ORklHX1BST1JFU19NVVhFUg0KPiArY29uc3Qg RkZPdXRwdXRGb3JtYXQgZmZfcHJvcmVzX211eGVyID0gew0KPiArICAgIC5wLm5hbWUgICAgICAg ICAgICA9ICJwcm9yZXMiLA0KPiArICAgIC5wLmxvbmdfbmFtZSAgICAgICA9IE5VTExfSUZfQ09O RklHX1NNQUxMKCJyYXcgcHJvcmVzIHZpZGVvIiksDQo+ICsgICAgLnAuZXh0ZW5zaW9ucyAgICAg ID0gInByb3JlcyIsDQo+ICsgICAgLnAuYXVkaW9fY29kZWMgICAgID0gQVZfQ09ERUNfSURfTk9O RSwNCj4gKyAgICAucC52aWRlb19jb2RlYyAgICAgPSBBVl9DT0RFQ19JRF9QUk9SRVMsDQo+ICsg ICAgLmluaXQgICAgICAgICAgICAgID0gZm9yY2Vfb25lX3N0cmVhbSwNCj4gKyAgICAud3JpdGVf cGFja2V0ICAgICAgPSBmZl9yYXdfd3JpdGVfcGFja2V0LA0KPiArICAgIC5wLmZsYWdzICAgICAg ICAgICA9IEFWRk1UX05PVElNRVNUQU1QUywNCj4gK307DQo+ICsjZW5kaWYNCg0KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmZmbXBlZy1kZXZlbCBtYWls aW5nIGxpc3QNCmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnDQpodHRwczovL2ZmbXBlZy5vcmcvbWFp bG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwNCg0KVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsg YWJvdmUsIG9yIGVtYWlsDQpmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3Vi amVjdCAidW5zdWJzY3JpYmUiLg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVn Lm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRv IHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVx dWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=