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 E3A7446BF2 for ; Wed, 5 Jul 2023 12:38:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6F55168C611; Wed, 5 Jul 2023 15:38:27 +0300 (EEST) Received: from frankplowman.com (frankplowman.com [51.89.148.29]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4406068C593 for ; Wed, 5 Jul 2023 15:38:20 +0300 (EEST) Received: from [10.0.0.4] (port=53380) by frankplowman.com with esmtpsa (TLS1.3) tls TLS_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1qH1ly-005Gt9-0K for ffmpeg-devel@ffmpeg.org; Wed, 05 Jul 2023 14:38:19 +0200 Message-ID: <8e614bcf-3282-a604-9913-7952d64896a3@frankplowman.com> Date: Wed, 5 Jul 2023 13:38:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Frank Plowman In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH] cbs_h266: add range extension support 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gMDUvMDcvMjAyMyAxMjo0NSwgSmFtZXMgQWxtZXIgd3JvdGU6Cj4gT24gNy81LzIwMjMgODoz OCBBTSwgTnVvIE1pIHdyb3RlOgo+PiBGcm9tOiBmcmFua3Bsb3cgPHBvc3RAZnJhbmtwbG93bWFu LmNvbT4KPj4KPj4gLS0tCj4+IMKgIGxpYmF2Y29kZWMvY2JzX2gyNjYuaMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHwgMTggKysrKysrCj4+IMKgIGxpYmF2Y29kZWMvY2JzX2gyNjZf c3ludGF4X3RlbXBsYXRlLmMgfCA3OSArKysrKysrKysrKysrKysrKysrKysrKysrLS0KPj4gwqAg MiBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQo+Pgo+PiBk aWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9jYnNfaDI2Ni5oIGIvbGliYXZjb2RlYy9jYnNfaDI2Ni5o Cj4+IGluZGV4IGUzM2QwOGEwZjUuLjQwYWJhOWViMTMgMTAwNjQ0Cj4+IC0tLSBhL2xpYmF2Y29k ZWMvY2JzX2gyNjYuaAo+PiArKysgYi9saWJhdmNvZGVjL2Nic19oMjY2LmgKPj4gQEAgLTEyMCw2 ICsxMjAsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgSDI2NkdlbmVyYWxDb25zdHJhaW50c0luZm8gewo+ PiDCoMKgwqDCoMKgIHVpbnQ4X3QgZ2NpX25vX3ZpcnR1YWxfYm91bmRhcmllc19jb25zdHJhaW50 X2ZsYWc7Cj4+IMKgwqDCoMKgwqAgdWludDhfdCBnY2lfbnVtX3Jlc2VydmVkX2JpdHM7Cj4+IMKg wqDCoMKgwqAgdWludDhfdCBnY2lfcmVzZXJ2ZWRfemVyb19iaXRbMjU1XTsKPj4gKwo+PiArwqDC oMKgIHVpbnQ4X3QgZ2NpX2FsbF9yYXBfcGljdHVyZXNfY29uc3RyYWludF9mbGFnOwo+PiArwqDC oMKgIHVpbnQ4X3QgZ2NpX25vX2V4dGVuZGVkX3ByZWNpc2lvbl9wcm9jZXNzaW5nX2NvbnN0cmFp bnRfZmxhZzsKPj4gK8KgwqDCoCB1aW50OF90IGdjaV9ub190c19yZXNpZHVhbF9jb2Rpbmdfcmlj ZV9jb25zdHJhaW50X2ZsYWc7Cj4+ICvCoMKgwqAgdWludDhfdCBnY2lfbm9fcnJjX3JpY2VfZXh0 ZW5zaW9uX2NvbnN0cmFpbnRfZmxhZzsKPj4gK8KgwqDCoCB1aW50OF90IGdjaV9ub19wZXJzaXN0 ZW50X3JpY2VfYWRhcHRhdGlvbl9jb25zdHJhaW50X2ZsYWc7Cj4+ICvCoMKgwqAgdWludDhfdCBn Y2lfbm9fcmV2ZXJzZV9sYXN0X3NpZ19jb2VmZl9jb25zdHJhaW50X2ZsYWc7Cj4+IMKgIH0gSDI2 NkdlbmVyYWxDb25zdHJhaW50c0luZm87Cj4+IMKgIMKgIHR5cGVkZWYgc3RydWN0IEgyNjZSYXdQ cm9maWxlVGllckxldmVsIHsKPj4gQEAgLTQ1MSw2ICs0NTgsMTUgQEAgdHlwZWRlZiBzdHJ1Y3Qg SDI2NlJhd1NQUyB7Cj4+IMKgIMKgwqDCoMKgwqAgdWludDhfdMKgIHNwc19leHRlbnNpb25fZmxh ZzsKPj4gwqAgK8KgwqDCoCB1aW50OF90wqAgc3BzX3JhbmdlX2V4dGVuc2lvbl9mbGFnOwo+PiAr wqDCoMKgIHVpbnQ4X3TCoCBzcHNfZXh0ZW5zaW9uXzdiaXRzOwo+PiArCj4+ICvCoMKgwqAgdWlu dDhfdMKgIHNwc19leHRlbmRlZF9wcmVjaXNpb25fZmxhZzsKPj4gK8KgwqDCoCB1aW50OF90wqAg c3BzX3RzX3Jlc2lkdWFsX2NvZGluZ19yaWNlX3ByZXNlbnRfaW5fc2hfZmxhZzsKPj4gK8KgwqDC oCB1aW50OF90wqAgc3BzX3JyY19yaWNlX2V4dGVuc2lvbl9mbGFnOwo+PiArwqDCoMKgIHVpbnQ4 X3TCoCBzcHNfcGVyc2lzdGVudF9yaWNlX2FkYXB0YXRpb25fZW5hYmxlZF9mbGFnOwo+PiArwqDC oMKgIHVpbnQ4X3TCoCBzcHNfcmV2ZXJzZV9sYXN0X3NpZ19jb2VmZl9lbmFibGVkX2ZsYWc7Cj4+ ICsKPj4gwqDCoMKgwqDCoCBIMjY2UmF3RXh0ZW5zaW9uRGF0YSBleHRlbnNpb25fZGF0YTsKPj4g wqAgwqAgfSBIMjY2UmF3U1BTOwo+PiBAQCAtNzM0LDYgKzc1MCw4IEBAIHR5cGVkZWYgc3RydWN0 wqAgSDI2NlJhd1NsaWNlSGVhZGVyIHsKPj4gwqAgwqDCoMKgwqDCoCB1aW50OF90wqAgc2hfc2ln bl9kYXRhX2hpZGluZ191c2VkX2ZsYWc7Cj4+IMKgwqDCoMKgwqAgdWludDhfdMKgIHNoX3RzX3Jl c2lkdWFsX2NvZGluZ19kaXNhYmxlZF9mbGFnOwo+PiArwqDCoMKgIHVpbnQ4X3TCoCBzaF90c19y ZXNpZHVhbF9jb2RpbmdfcmljZV9pZHhfbWludXMxOwo+PiArwqDCoMKgIHVpbnQ4X3TCoCBzaF9y ZXZlcnNlX2xhc3Rfc2lnX2NvZWZmX2ZsYWc7Cj4+IMKgwqDCoMKgwqAgdWludDE2X3Qgc2hfc2xp Y2VfaGVhZGVyX2V4dGVuc2lvbl9sZW5ndGg7Cj4+IMKgwqDCoMKgwqAgdWludDhfdMKgIHNoX3Ns aWNlX2hlYWRlcl9leHRlbnNpb25fZGF0YV9ieXRlWzI1Nl07Cj4+IMKgIGRpZmYgLS1naXQgYS9s aWJhdmNvZGVjL2Nic19oMjY2X3N5bnRheF90ZW1wbGF0ZS5jIAo+PiBiL2xpYmF2Y29kZWMvY2Jz X2gyNjZfc3ludGF4X3RlbXBsYXRlLmMKPj4gaW5kZXggNDg1YzAyZjU5MC4uODkzZmE1NTM2OSAx MDA2NDQKPj4gLS0tIGEvbGliYXZjb2RlYy9jYnNfaDI2Nl9zeW50YXhfdGVtcGxhdGUuYwo+PiAr KysgYi9saWJhdmNvZGVjL2Nic19oMjY2X3N5bnRheF90ZW1wbGF0ZS5jCj4+IEBAIC02MSw3ICs2 MSw3IEBAIHN0YXRpYyBpbnQgRlVOQyhnZW5lcmFsX2NvbnN0cmFpbnRzX2luZm8pIAo+PiAoQ29k ZWRCaXRzdHJlYW1Db250ZXh0ICpjdHgsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgUldDb250ZXh0ICpydywKPj4gSDI2NkdlbmVyYWxDb25zdHJhaW50c0luZm8gKmN1cnJlbnQp Cj4+IMKgIHsKPj4gLcKgwqDCoCBpbnQgZXJyLCBpOwo+PiArwqDCoMKgIGludCBlcnIsIGksIG51 bV9hZGRpdGlvbmFsX2JpdHNfdXNlZDsKPj4gwqAgwqDCoMKgwqDCoCBmbGFnKGdjaV9wcmVzZW50 X2ZsYWcpOwo+PiDCoMKgwqDCoMKgIGlmIChjdXJyZW50LT5nY2lfcHJlc2VudF9mbGFnKSB7Cj4+ IEBAIC0xNDksNyArMTQ5LDI1IEBAIHN0YXRpYyBpbnQgRlVOQyhnZW5lcmFsX2NvbnN0cmFpbnRz X2luZm8pIAo+PiAoQ29kZWRCaXRzdHJlYW1Db250ZXh0ICpjdHgsCj4+IMKgwqDCoMKgwqDCoMKg wqDCoCBmbGFnKGdjaV9ub19sYWRmX2NvbnN0cmFpbnRfZmxhZyk7Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoCBmbGFnKGdjaV9ub192aXJ0dWFsX2JvdW5kYXJpZXNfY29uc3RyYWludF9mbGFnKTsKPj4g wqDCoMKgwqDCoMKgwqDCoMKgIHViKDgsIGdjaV9udW1fcmVzZXJ2ZWRfYml0cyk7Cj4KPiBUaGlz IHNob3VsZCBiZSByZW5hbWVkIHRvIGdjaV9udW1fYWRkaXRpb25hbF9iaXRzIHdoaWxlIGF0IGl0 Lgo+Cj4+IC3CoMKgwqDCoMKgwqDCoCBmb3IgKGkgPSAwOyBpIDwgY3VycmVudC0+Z2NpX251bV9y ZXNlcnZlZF9iaXRzOyBpKyspIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChjdXJyZW50LT5nY2lf bnVtX3Jlc2VydmVkX2JpdHMgPiA1KSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZsYWco Z2NpX2FsbF9yYXBfcGljdHVyZXNfY29uc3RyYWludF9mbGFnKTsKPj4gKyBmbGFnKGdjaV9ub19l eHRlbmRlZF9wcmVjaXNpb25fcHJvY2Vzc2luZ19jb25zdHJhaW50X2ZsYWcpOwo+PiArIGZsYWco Z2NpX25vX3RzX3Jlc2lkdWFsX2NvZGluZ19yaWNlX2NvbnN0cmFpbnRfZmxhZyk7Cj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGZsYWcoZ2NpX25vX3JyY19yaWNlX2V4dGVuc2lvbl9jb25zdHJh aW50X2ZsYWcpOwo+PiArIGZsYWcoZ2NpX25vX3BlcnNpc3RlbnRfcmljZV9hZGFwdGF0aW9uX2Nv bnN0cmFpbnRfZmxhZyk7Cj4+ICsgZmxhZyhnY2lfbm9fcmV2ZXJzZV9sYXN0X3NpZ19jb2VmZl9j b25zdHJhaW50X2ZsYWcpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBudW1fYWRkaXRpb25h bF9iaXRzX3VzZWQgPSA2Owo+PiArwqDCoMKgwqDCoMKgwqAgfSBlbHNlIHsKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgaW5mZXIoZ2NpX2FsbF9yYXBfcGljdHVyZXNfY29uc3RyYWludF9mbGFn LCAwKTsKPj4gKyBpbmZlcihnY2lfbm9fZXh0ZW5kZWRfcHJlY2lzaW9uX3Byb2Nlc3NpbmdfY29u c3RyYWludF9mbGFnLCAwKTsKPj4gKyBpbmZlcihnY2lfbm9fdHNfcmVzaWR1YWxfY29kaW5nX3Jp Y2VfY29uc3RyYWludF9mbGFnLCAwKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW5mZXIo Z2NpX25vX3JyY19yaWNlX2V4dGVuc2lvbl9jb25zdHJhaW50X2ZsYWcsIDApOwo+PiArIGluZmVy KGdjaV9ub19wZXJzaXN0ZW50X3JpY2VfYWRhcHRhdGlvbl9jb25zdHJhaW50X2ZsYWcsIDApOwo+ PiArIGluZmVyKGdjaV9ub19yZXZlcnNlX2xhc3Rfc2lnX2NvZWZmX2NvbnN0cmFpbnRfZmxhZywg MCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG51bV9hZGRpdGlvbmFsX2JpdHNfdXNlZCA9 IDA7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGZvciAoaSA9 IDA7IGkgPCBjdXJyZW50LT5nY2lfbnVtX3Jlc2VydmVkX2JpdHMgLSAKPj4gbnVtX2FkZGl0aW9u YWxfYml0c191c2VkOyBpKyspIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmxhZ3Mo Z2NpX3Jlc2VydmVkX3plcm9fYml0W2ldLCAxLCBpKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0K Pj4gwqDCoMKgwqDCoCB9Cj4+IEBAIC05NjMsNiArOTgxLDIzIEBAIHN0YXRpYyBpbnQgRlVOQyh2 cHMpIChDb2RlZEJpdHN0cmVhbUNvbnRleHQgCj4+ICpjdHgsIFJXQ29udGV4dCAqcncsCj4+IMKg wqDCoMKgwqAgcmV0dXJuIDA7Cj4+IMKgIH0KPj4gwqAgK3N0YXRpYyBpbnQgRlVOQyhzcHNfcmFu Z2VfZXh0ZW5zaW9uKShDb2RlZEJpdHN0cmVhbUNvbnRleHQgKmN0eCwgCj4+IFJXQ29udGV4dCAq cncsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSDI2NlJhd1NQUyAqY3VycmVudCkKPj4gK3sKPj4gK8Kg wqDCoCBpbnQgZXJyOwo+PiArCj4+ICvCoMKgwqAgZmxhZyhzcHNfZXh0ZW5kZWRfcHJlY2lzaW9u X2ZsYWcpOwo+PiArwqDCoMKgIGlmIChjdXJyZW50LT5zcHNfdHJhbnNmb3JtX3NraXBfZW5hYmxl ZF9mbGFnKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBmbGFnKHNwc190c19yZXNpZHVhbF9jb2Rpbmdf cmljZV9wcmVzZW50X2luX3NoX2ZsYWcpOwo+PiArwqDCoMKgIH0gZWxzZSB7Cj4+ICvCoMKgwqDC oMKgwqDCoCBpbmZlcihzcHNfdHNfcmVzaWR1YWxfY29kaW5nX3JpY2VfcHJlc2VudF9pbl9zaF9m bGFnLCAwKTsKPj4gK8KgwqDCoCB9Cj4+ICvCoMKgwqAgZmxhZyhzcHNfcnJjX3JpY2VfZXh0ZW5z aW9uX2ZsYWcpOwo+PiArwqDCoMKgIGZsYWcoc3BzX3BlcnNpc3RlbnRfcmljZV9hZGFwdGF0aW9u X2VuYWJsZWRfZmxhZyk7Cj4+ICvCoMKgwqAgZmxhZyhzcHNfcmV2ZXJzZV9sYXN0X3NpZ19jb2Vm Zl9lbmFibGVkX2ZsYWcpOwo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIDA7Cj4+ICt9Cj4+IMKgIMKg IHN0YXRpYyBpbnQgRlVOQyhzcHMpKENvZGVkQml0c3RyZWFtQ29udGV4dCAqY3R4LCBSV0NvbnRl eHQgKnJ3LAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBI MjY2UmF3U1BTICpjdXJyZW50KQo+PiBAQCAtMTUxOCw5ICsxNTUzLDMzIEBAIHN0YXRpYyBpbnQg RlVOQyhzcHMpKENvZGVkQml0c3RyZWFtQ29udGV4dCAKPj4gKmN0eCwgUldDb250ZXh0ICpydywK Pj4gwqDCoMKgwqDCoCB9IGVsc2Ugewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgQ0hFQ0soRlVOQyh2 dWlfcGFyYW1ldGVyc19kZWZhdWx0KSAoY3R4LCBydywgJmN1cnJlbnQtPnZ1aSkpOwo+PiDCoMKg wqDCoMKgIH0KPj4gKwo+PiDCoMKgwqDCoMKgIGZsYWcoc3BzX2V4dGVuc2lvbl9mbGFnKTsKPj4g LcKgwqDCoCBpZiAoY3VycmVudC0+c3BzX2V4dGVuc2lvbl9mbGFnKQo+PiAtwqDCoMKgwqDCoMKg wqAgQ0hFQ0soRlVOQyhleHRlbnNpb25fZGF0YSkgKGN0eCwgcncsIAo+PiAmY3VycmVudC0+ZXh0 ZW5zaW9uX2RhdGEpKTsKPj4gK8KgwqDCoCBpZiAoY3VycmVudC0+c3BzX2V4dGVuc2lvbl9mbGFn KSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBmbGFnKHNwc19yYW5nZV9leHRlbnNpb25fZmxhZyk7Cj4+ ICvCoMKgwqDCoMKgwqDCoCB1Yig3LCBzcHNfZXh0ZW5zaW9uXzdiaXRzKTsKPj4gKwo+PiArwqDC oMKgwqDCoMKgwqAgaWYgKGN1cnJlbnQtPnNwc19yYW5nZV9leHRlbnNpb25fZmxhZykgewo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBDSEVDSyhGVU5DKHNwc19yYW5nZV9leHRlbnNpb24pKGN0 eCwgcncsIGN1cnJlbnQpKTsKPj4gK8KgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGluZmVyKHNwc19leHRlbmRlZF9wcmVjaXNpb25fZmxhZywgMCk7Cj4+ ICsgaW5mZXIoc3BzX3RzX3Jlc2lkdWFsX2NvZGluZ19yaWNlX3ByZXNlbnRfaW5fc2hfZmxhZywg MCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGluZmVyKHNwc19ycmNfcmljZV9leHRlbnNp b25fZmxhZywgMCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGluZmVyKHNwc19wZXJzaXN0 ZW50X3JpY2VfYWRhcHRhdGlvbl9lbmFibGVkX2ZsYWcsIDApOwo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBpbmZlcihzcHNfcmV2ZXJzZV9sYXN0X3NpZ19jb2VmZl9lbmFibGVkX2ZsYWcsIDAp Owo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgIH0gZWxzZSB7Cj4+ICvCoMKgwqDCoMKg wqDCoCBpbmZlcihzcHNfcmFuZ2VfZXh0ZW5zaW9uX2ZsYWcsIDApOwo+PiArwqDCoMKgwqDCoMKg wqAgaW5mZXIoc3BzX2V4dGVuc2lvbl83Yml0cywgMCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpbmZl cihzcHNfZXh0ZW5kZWRfcHJlY2lzaW9uX2ZsYWcsIDApOwo+PiArwqDCoMKgwqDCoMKgwqAgaW5m ZXIoc3BzX3RzX3Jlc2lkdWFsX2NvZGluZ19yaWNlX3ByZXNlbnRfaW5fc2hfZmxhZywgMCk7Cj4+ ICvCoMKgwqDCoMKgwqDCoCBpbmZlcihzcHNfcnJjX3JpY2VfZXh0ZW5zaW9uX2ZsYWcsIDApOwo+ PiArwqDCoMKgwqDCoMKgwqAgaW5mZXIoc3BzX3BlcnNpc3RlbnRfcmljZV9hZGFwdGF0aW9uX2Vu YWJsZWRfZmxhZywgMCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBpbmZlcihzcHNfcmV2ZXJzZV9sYXN0 X3NpZ19jb2VmZl9lbmFibGVkX2ZsYWcsIDApOwo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKg IGlmIChjdXJyZW50LT5zcHNfZXh0ZW5zaW9uXzdiaXRzKQo+PiArwqDCoMKgwqDCoMKgwqAgQ0hF Q0soRlVOQyhleHRlbnNpb25fZGF0YSkoY3R4LCBydywgJmN1cnJlbnQtPmV4dGVuc2lvbl9kYXRh KSk7Cj4+IMKgIMKgwqDCoMKgwqAgQ0hFQ0soRlVOQyhyYnNwX3RyYWlsaW5nX2JpdHMpIChjdHgs IHJ3KSk7Cj4+IMKgIEBAIC0zMDA1LDYgKzMwNjQsMTggQEAgc3RhdGljIGludCBGVU5DKHNsaWNl X2hlYWRlcikgCj4+IChDb2RlZEJpdHN0cmVhbUNvbnRleHQgKmN0eCwgUldDb250ZXh0ICpydywK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGZsYWcoc2hfdHNfcmVzaWR1YWxfY29kaW5nX2Rpc2FibGVk X2ZsYWcpOwo+PiDCoMKgwqDCoMKgIGVsc2UKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGluZmVyKHNo X3RzX3Jlc2lkdWFsX2NvZGluZ19kaXNhYmxlZF9mbGFnLCAwKTsKPj4gKwo+PiArwqDCoMKgIGlm ICghY3VycmVudC0+c2hfdHNfcmVzaWR1YWxfY29kaW5nX2Rpc2FibGVkX2ZsYWcgJiYKPj4gK8Kg wqDCoMKgwqDCoMKgIHNwcy0+c3BzX3RzX3Jlc2lkdWFsX2NvZGluZ19yaWNlX3ByZXNlbnRfaW5f c2hfZmxhZykKPj4gK8KgwqDCoMKgwqDCoMKgIHViKDMsIHNoX3RzX3Jlc2lkdWFsX2NvZGluZ19y aWNlX2lkeF9taW51czEpOwo+PiArwqDCoMKgIGVsc2UKPj4gK8KgwqDCoMKgwqDCoMKgIGluZmVy KHNoX3RzX3Jlc2lkdWFsX2NvZGluZ19yaWNlX2lkeF9taW51czEsIDApOwo+PiArCj4+ICvCoMKg wqAgaWYgKHNwcy0+c3BzX3JldmVyc2VfbGFzdF9zaWdfY29lZmZfZW5hYmxlZF9mbGFnKQo+PiAr wqDCoMKgwqDCoMKgwqAgZmxhZyhzaF9yZXZlcnNlX2xhc3Rfc2lnX2NvZWZmX2ZsYWcpOwo+PiAr wqDCoMKgIGVsc2UKPj4gK8KgwqDCoMKgwqDCoMKgIGluZmVyKHNoX3JldmVyc2VfbGFzdF9zaWdf Y29lZmZfZmxhZywgMCk7Cj4KPiBEbyB5b3Uga25vdyB3aGF0IHNhbXBsZSBpZiBhbnkgaW4gdGhl IGNvbmZvcm1hbmNlIHN1aXRlIGNvdmVycyB0aGlzPwoKQSBtYXRyaXggc2hvd2luZyB3aGljaCB0 ZXN0IGJpdHN0cmVhbXMgdGVzdCB3aGljaCByYW5nZSBleHRlbnNpb24gCmZlYXR1cmVzIGlzIGF2 YWlsYWJsZSBoZXJlOiAKaHR0cHM6Ly9naXRodWIuY29tL2ZmdnZjL0ZGbXBlZy9pc3N1ZXMvODMj aXNzdWVjb21tZW50LTE1NzU2NTgyMzIKCj4KPj4gKwo+PiDCoMKgwqDCoMKgIGlmIChwcHMtPnBw c19zbGljZV9oZWFkZXJfZXh0ZW5zaW9uX3ByZXNlbnRfZmxhZykgewo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgdWUoc2hfc2xpY2VfaGVhZGVyX2V4dGVuc2lvbl9sZW5ndGgsIDAsIDI1Nik7Cj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBmb3IgKGkgPSAwOyBpIDwgY3VycmVudC0+c2hfc2xpY2VfaGVhZGVy X2V4dGVuc2lvbl9sZW5ndGg7IAo+PiBpKyspCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KPiBmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZmZtcGVn LWRldmVsQGZmbXBlZy5vcmcKPiBodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9m Zm1wZWctZGV2ZWwKPgo+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFp bAo+IGZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNj cmliZSIuCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczov L2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJl LCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcu b3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=