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 BF7F740297 for ; Fri, 22 Jul 2022 13:48:34 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6F2CD68B6D0; Fri, 22 Jul 2022 16:48:23 +0300 (EEST) Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 247BB68B451 for ; Fri, 22 Jul 2022 16:48:17 +0300 (EEST) Received: by mail-lf1-f42.google.com with SMTP id t1so7712888lft.8 for ; Fri, 22 Jul 2022 06:48:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=CDmTZ3fEjnWRhDc+8QbUr1vHaUK/Yo2JF6Fcr/e1Kg8=; b=Tm/2o+RXdXFJ703KutINkI38qAH6rGz3LdQp+bMYIT4r7ARgy8KHoYdDyHfm2MHMkA 3H8T6W3AiQwjCFGbnHw3iiXJayqgAWQ/FeJQ+aGG0LRGNiZsbBNMtwBYaJmi8IviSRwg NzN+kMc65cGTt6mcxvASeip+lFutn+3GEoe2tDUvX66xJ/ULWF/L18Cehf1ZJ87n2pIc 1jDdy17zyIRV9eJG5YvciU+lg0yxHOiHdPg+YEc/ULFwlKOsaJL5l/2xOhVt+zEPalu6 WwnHyyByWQiVQNYWoWH/V/nkZcWkRJYkzJL9ZrnhpRjNnEH+IFAAZ9ehXNWo/ZpETPh7 sbLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CDmTZ3fEjnWRhDc+8QbUr1vHaUK/Yo2JF6Fcr/e1Kg8=; b=oFPFdsA/JKO3Woyr3iwpOD11+LK1kI3wbckiE4Nvp4yFlmCvSL4pAgxOs9PRxg3AUL h8eOyfyXrK6J3cgs4dhrC7OCihppnxAHDlcRfz6R/g4byt7P8j1tDYsHMFwvP9EqlIj8 s0ekEU1BPZaCYapScfQgh9B7niukqNX0aNg2lytHzfdIUGQa1TYinNI8LNkbBkqFK8rV MH1nI8BisrXMqVLJpK4KDZdAQSwRt8k8dQUskObozN/E1XCM4KrvPPwX6NRt0fDS9XtM gCApnoPIgQ/3Ulna45zVv4Jt5TVs3t6SQu/wnpVzIhip+QycY9qqMMfC0rquy3KRomAO +aGA== X-Gm-Message-State: AJIora9NWza4mVHpg2AvLMClRRuLjx5AuUP05s5/alLu4DgI8HQ39ROT yv0Qt8lmfGop+CLPe1Ugbm82zs/tYno= X-Google-Smtp-Source: AGRyM1tYYHixHYNqYxkTnvK4tqEQWQwrNknqiivhNQkLoWEuO8/GSzC6WOT2ZCPlGiw1s+wnTwOH/Q== X-Received: by 2002:a05:6512:33c9:b0:48a:6bf1:7ecf with SMTP id d9-20020a05651233c900b0048a6bf17ecfmr53025lfg.450.1658497696092; Fri, 22 Jul 2022 06:48:16 -0700 (PDT) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id s2-20020a056512314200b0047f8cb94004sm1071647lfi.35.2022.07.22.06.48.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Jul 2022 06:48:15 -0700 (PDT) From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 22 Jul 2022 16:48:08 +0300 Message-Id: <20220722134808.16692-2-jeebjp@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220722134808.16692-1-jeebjp@gmail.com> References: <20220722134808.16692-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 2/2] ffmpeg: add video heartbeat capability to fix_sub_duration 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: RnJvbTogSmFuIEVrc3Ryw7ZtIDxqYW4uZWtzdHJvbUAyNGkuY29tPgoKU3BsaXRzIHRoZSBjdXJy ZW50bHkgaGFuZGxlZCBzdWJ0aXRsZSBhdCByYW5kb20gYWNjZXNzIHBvaW50CnBhY2tldHMgdGhh dCBjYW4gYmUgY29uZmlndXJlZCB0byBmb2xsb3cgYSBzcGVjaWZpYyBvdXRwdXQgc3RyZWFtLgoK VGhpcyB3YXkgdGhlIHN1YnRpdGxlIC0gd2hpY2ggaXMga25vd24gdG8gYmUgc2hvd24gYXQgdGhp cyB0aW1lCmNhbiBiZSBzcGxpdCBhbmQgcGFzc2VkIHRvIG11eGVyIGJlZm9yZSBpdHMgZnVsbCBk dXJhdGlvbiBpcwp5ZXQga25vd24uCgpDby1hdXRob3JlZC1ieTogQW5kcnplaiBOYWRhY2hvd3Nr aSA8YW5kcnplai5uYWRhY2hvd3NraUAyNGkuY29tPgpDby1hdXRob3JlZC1ieTogQmVybmFyZCBC b3VsYXkgPGJlcm5hcmQuYm91bGF5QDI0aS5jb20+CgpTaWduZWQtb2ZmLWJ5OiBKYW4gRWtzdHLD tm0gPGphbi5la3N0cm9tQDI0aS5jb20+Ci0tLQogZG9jL2ZmbXBlZy50ZXhpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDExICsrCiBmZnRvb2xzL2ZmbXBlZy5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxNDIgKysrKysrKysrKysrKysrKysrCiBmZnRvb2xzL2ZmbXBl Zy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKwogZmZ0b29scy9mZm1wZWdf b3B0LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICsrCiB0ZXN0cy9mYXRlL2ZmbXBl Zy5tYWsgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKysKIC4uLi9mYXRlL2ZmbXBlZy1m aXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdCAgICB8ICA0OCArKysrKysKIDYgZmlsZXMgY2hhbmdl ZCwgMjMyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9yZWYvZmF0ZS9m Zm1wZWctZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQKCmRpZmYgLS1naXQgYS9kb2MvZmZtcGVn LnRleGkgYi9kb2MvZmZtcGVnLnRleGkKaW5kZXggNzY3ZGY2OWI3Zi4uMGI5YmViMjlkOSAxMDA2 NDQKLS0tIGEvZG9jL2ZmbXBlZy50ZXhpCisrKyBiL2RvYy9mZm1wZWcudGV4aQpAQCAtMTMxMiw2 ICsxMzEyLDE3IEBAIExpc3QgYWxsIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBjb21wb25lbnRzIGVu YWJsZWQgaW4gdGhpcyBidWlsZCBvZiBmZm1wZWcuCiBBY3R1YWwgcnVudGltZSBhdmFpbGFiaWxp dHkgZGVwZW5kcyBvbiB0aGUgaGFyZHdhcmUgYW5kIGl0cyBzdWl0YWJsZSBkcml2ZXIKIGJlaW5n IGluc3RhbGxlZC4KIAorQGl0ZW0gLWZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0WzpAdmFye3N0 cmVhbV9zcGVjaWZpZXJ9XQorU2V0IGEgc3BlY2lmaWMgb3V0cHV0IHZpZGVvIHN0cmVhbSBhcyB0 aGUgaGVhcnRiZWF0IHN0cmVhbSBhY2NvcmRpbmcgdG8gd2hpY2gKK3RvIHNwbGl0IGFuZCBwdXNo IHRocm91Z2ggY3VycmVudGx5IGluLXByb2dyZXNzIHN1YnRpdGxlIHVwb24gcmVjZWlwdCBvZiBh CityYW5kb20gYWNjZXNzIHBhY2tldC4KKworVGhpcyBsb3dlcnMgdGhlIGxhdGVuY3kgb2Ygc3Vi dGl0bGVzIGZvciB3aGljaCB0aGUgZW5kIHBhY2tldCBvciB0aGUgZm9sbG93aW5nCitzdWJ0aXRs ZSBoYXMgbm90IHlldCBiZWVuIHJlY2VpdmVkLgorCitSZXF1aXJlcyBAb3B0aW9uey1maXhfc3Vi X2R1cmF0aW9ufSB0byBiZSBzZXQgZm9yIHRoZSByZWxldmFudCBpbnB1dCBzdWJ0aXRsZQorc3Ry ZWFtIGZvciB0aGlzIHRvIGhhdmUgYW55IGVmZmVjdC4KKwogQGVuZCB0YWJsZQogCiBAc2VjdGlv biBBdWRpbyBPcHRpb25zCmRpZmYgLS1naXQgYS9mZnRvb2xzL2ZmbXBlZy5jIGIvZmZ0b29scy9m Zm1wZWcuYwppbmRleCBmYjE0OGEwNDA0Li5hMGFkNWNjMzljIDEwMDY0NAotLS0gYS9mZnRvb2xz L2ZmbXBlZy5jCisrKyBiL2ZmdG9vbHMvZmZtcGVnLmMKQEAgLTEyNyw2ICsxMjcsNyBAQCB0eXBl ZGVmIHN0cnVjdCBCZW5jaG1hcmtUaW1lU3RhbXBzIHsKICAgICBpbnQ2NF90IHN5c191c2VjOwog fSBCZW5jaG1hcmtUaW1lU3RhbXBzOwogCitzdGF0aWMgaW50IHRyaWdnZXJfZml4X3N1Yl9kdXJh dGlvbl9oZWFydGJlYXQoT3V0cHV0U3RyZWFtICpvc3QsIGNvbnN0IEFWUGFja2V0ICpwa3QpOwog c3RhdGljIEJlbmNobWFya1RpbWVTdGFtcHMgZ2V0X2JlbmNobWFya190aW1lX3N0YW1wcyh2b2lk KTsKIHN0YXRpYyBpbnQ2NF90IGdldG1heHJzcyh2b2lkKTsKIHN0YXRpYyBpbnQgaWZpbHRlcl9o YXNfYWxsX2lucHV0X2Zvcm1hdHMoRmlsdGVyR3JhcGggKmZnKTsKQEAgLTk2OCw2ICs5NjksMTMg QEAgc3RhdGljIGludCBlbmNvZGVfZnJhbWUoT3V0cHV0RmlsZSAqb2YsIE91dHB1dFN0cmVhbSAq b3N0LCBBVkZyYW1lICpmcmFtZSkKICAgICAgICAgICAgICAgICAgICBhdl90czJzdHIocGt0LT5k dXJhdGlvbiksIGF2X3RzMnRpbWVzdHIocGt0LT5kdXJhdGlvbiwgJmVuYy0+dGltZV9iYXNlKSk7 CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoKHJldCA9IHRyaWdnZXJfZml4X3N1Yl9kdXJhdGlv bl9oZWFydGJlYXQob3N0LCBwa3QpKSA8IDApIHsKKyAgICAgICAgICAgIGF2X2xvZyhOVUxMLCBB Vl9MT0dfRVJST1IsCisgICAgICAgICAgICAgICAgICAgIlN1YnRpdGxlIGhlYXJ0YmVhdCBsb2dp YyBmYWlsZWQgaW4gJXMhICglcylcbiIsCisgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGF2 X2VycjJzdHIocmV0KSk7CisgICAgICAgICAgICBleGl0X3Byb2dyYW0oMSk7CisgICAgICAgIH0K KwogICAgICAgICBpZiAoZW5jLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9WSURFTykKICAg ICAgICAgICAgIHVwZGF0ZV92aWRlb19zdGF0cyhvc3QsIHBrdCwgISF2c3RhdHNfZmlsZW5hbWUp OwogCkBAIC0xODg4LDYgKzE4OTYsMTYgQEAgc3RhdGljIHZvaWQgZG9fc3RyZWFtY29weShJbnB1 dFN0cmVhbSAqaXN0LCBPdXRwdXRTdHJlYW0gKm9zdCwgY29uc3QgQVZQYWNrZXQgKnAKIAogICAg IG9zdC0+c3luY19vcHRzICs9IG9wa3QtPmR1cmF0aW9uOwogCisgICAgeworICAgICAgICBpbnQg cmV0ID0gdHJpZ2dlcl9maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdChvc3QsIHBrdCk7CisgICAg ICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9S LAorICAgICAgICAgICAgICAgICAgICJTdWJ0aXRsZSBoZWFydGJlYXQgbG9naWMgZmFpbGVkIGlu ICVzISAoJXMpXG4iLAorICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBhdl9lcnIyc3RyKHJl dCkpOworICAgICAgICAgICAgZXhpdF9wcm9ncmFtKDEpOworICAgICAgICB9CisgICAgfQorCiAg ICAgb3V0cHV0X3BhY2tldChvZiwgb3BrdCwgb3N0LCAwKTsKIAogICAgIG9zdC0+c3RyZWFtY29w eV9zdGFydGVkID0gMTsKQEAgLTIzNDIsNiArMjM2MCwxMzAgQEAgb3V0OgogICAgIHJldHVybiBy ZXQ7CiB9CiAKK3N0YXRpYyBpbnQgY29weV9hdl9zdWJ0aXRsZShBVlN1YnRpdGxlICpkc3QsIEFW U3VidGl0bGUgKnNyYykKK3sKKyAgICBpbnQgcmV0ID0gQVZFUlJPUl9CVUc7CisgICAgQVZTdWJ0 aXRsZSB0bXAgPSB7CisgICAgICAgIC5mb3JtYXQgPSBzcmMtPmZvcm1hdCwKKyAgICAgICAgLnN0 YXJ0X2Rpc3BsYXlfdGltZSA9IHNyYy0+c3RhcnRfZGlzcGxheV90aW1lLAorICAgICAgICAuZW5k X2Rpc3BsYXlfdGltZSA9IHNyYy0+ZW5kX2Rpc3BsYXlfdGltZSwKKyAgICAgICAgLm51bV9yZWN0 cyA9IDAsCisgICAgICAgIC5yZWN0cyA9IE5VTEwsCisgICAgICAgIC5wdHMgPSBzcmMtPnB0cwor ICAgIH07CisKKyAgICBpZiAoIXNyYy0+bnVtX3JlY3RzKQorICAgICAgICBnb3RvIHN1Y2Nlc3M7 CisKKyAgICBpZiAoISh0bXAucmVjdHMgPSBhdl9jYWxsb2Moc3JjLT5udW1fcmVjdHMsIHNpemVv ZigqdG1wLnJlY3RzKSkpKQorICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOworCisgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBzcmMtPm51bV9yZWN0czsgaSsrKSB7CisgICAgICAgIEFWU3Vi dGl0bGVSZWN0ICpzcmNfcmVjdCA9IHNyYy0+cmVjdHNbaV07CisgICAgICAgIEFWU3VidGl0bGVS ZWN0ICpkc3RfcmVjdDsKKworICAgICAgICBpZiAoIShkc3RfcmVjdCA9IHRtcC5yZWN0c1tpXSA9 IGF2X21hbGxvY3ooc2l6ZW9mKCp0bXAucmVjdHNbMF0pKSkpIHsKKyAgICAgICAgICAgIHJldCA9 IEFWRVJST1IoRU5PTUVNKTsKKyAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQor CisgICAgICAgIHRtcC5udW1fcmVjdHMrKzsKKworICAgICAgICBkc3RfcmVjdC0+dHlwZSAgICAg ID0gc3JjX3JlY3QtPnR5cGU7CisgICAgICAgIGRzdF9yZWN0LT5mbGFncyAgICAgPSBzcmNfcmVj dC0+ZmxhZ3M7CisKKyAgICAgICAgZHN0X3JlY3QtPnggICAgICAgICA9IHNyY19yZWN0LT54Owor ICAgICAgICBkc3RfcmVjdC0+eSAgICAgICAgID0gc3JjX3JlY3QtPnk7CisgICAgICAgIGRzdF9y ZWN0LT53ICAgICAgICAgPSBzcmNfcmVjdC0+dzsKKyAgICAgICAgZHN0X3JlY3QtPmggICAgICAg ICA9IHNyY19yZWN0LT5oOworICAgICAgICBkc3RfcmVjdC0+bmJfY29sb3JzID0gc3JjX3JlY3Qt Pm5iX2NvbG9yczsKKworICAgICAgICBpZiAoc3JjX3JlY3QtPnRleHQpCisgICAgICAgICAgICBp ZiAoIShkc3RfcmVjdC0+dGV4dCA9IGF2X3N0cmR1cChzcmNfcmVjdC0+dGV4dCkpKSB7CisgICAg ICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICAgICAgICAgIGdvdG8g Y2xlYW51cDsKKyAgICAgICAgICAgIH0KKworICAgICAgICBpZiAoc3JjX3JlY3QtPmFzcykKKyAg ICAgICAgICAgIGlmICghKGRzdF9yZWN0LT5hc3MgPSBhdl9zdHJkdXAoc3JjX3JlY3QtPmFzcykp KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICAgICAg ICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgICAgIH0KKworICAgICAgICBmb3IgKGludCBqID0g MDsgaiA8IDQ7IGorKykgeworICAgICAgICAgICAgLy8gU1VCVElUTEVfQklUTUFQIGltYWdlcyBh cmUgc3BlY2lhbCBpbiB0aGUgc2Vuc2UgdGhhdCB0aGV5CisgICAgICAgICAgICAvLyBhcmUgbGlr ZSBQQUw4IGltYWdlcy4gZmlyc3QgcG9pbnRlciB0byBkYXRhLCBzZWNvbmQgdG8KKyAgICAgICAg ICAgIC8vIHBhbGV0dGUuIFRoaXMgbWFrZXMgdGhlIHNpemUgY2FsY3VsYXRpb24gbWF0Y2ggdGhp cy4KKyAgICAgICAgICAgIHNpemVfdCBidWZfc2l6ZSA9IHNyY19yZWN0LT50eXBlID09IFNVQlRJ VExFX0JJVE1BUCAmJiBqID09IDEgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVZQ QUxFVFRFX1NJWkUgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3JlY3QtPmgg KiBzcmNfcmVjdC0+bGluZXNpemVbal07CisKKyAgICAgICAgICAgIGlmICghc3JjX3JlY3QtPmRh dGFbal0pCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmICghKGRz dF9yZWN0LT5kYXRhW2pdID0gYXZfbWVtZHVwKHNyY19yZWN0LT5kYXRhW2pdLCBidWZfc2l6ZSkp KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gQVZFUlJPUihFTk9NRU0pOworICAgICAgICAgICAg ICAgIGdvdG8gY2xlYW51cDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRzdF9yZWN0LT5s aW5lc2l6ZVtqXSA9IHNyY19yZWN0LT5saW5lc2l6ZVtqXTsKKyAgICAgICAgfQorICAgIH0KKwor c3VjY2VzczoKKyAgICAqZHN0ID0gdG1wOworCisgICAgcmV0dXJuIDA7CisKK2NsZWFudXA6Cisg ICAgYXZzdWJ0aXRsZV9mcmVlKCZ0bXApOworCisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGlj IGludCBmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdChJbnB1dFN0cmVhbSAqaXN0LCBpbnQ2NF90 IHNpZ25hbF9wdHMpCit7CisgICAgaW50IHJldCA9IEFWRVJST1JfQlVHOworICAgIGludCBnb3Rf b3V0cHV0ID0gMTsKKyAgICBBVlN1YnRpdGxlICpwcmV2X3N1YnRpdGxlID0gJmlzdC0+cHJldl9z dWIuc3VidGl0bGU7CisgICAgQVZTdWJ0aXRsZSBzdWJ0aXRsZTsKKworICAgIGlmICghaXN0LT5m aXhfc3ViX2R1cmF0aW9uIHx8ICFwcmV2X3N1YnRpdGxlLT5udW1fcmVjdHMgfHwKKyAgICAgICAg c2lnbmFsX3B0cyA8PSBwcmV2X3N1YnRpdGxlLT5wdHMpCisgICAgICAgIHJldHVybiAwOworCisg ICAgaWYgKChyZXQgPSBjb3B5X2F2X3N1YnRpdGxlKCZzdWJ0aXRsZSwgcHJldl9zdWJ0aXRsZSkp IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHN1YnRpdGxlLnB0cyA9IHNpZ25hbF9w dHM7CisKKyAgICByZXR1cm4gZW5jb2RlX211eF9zdWJ0aXRsZXMoaXN0LCAmc3VidGl0bGUsICZn b3Rfb3V0cHV0KTsKK30KKworc3RhdGljIGludCB0cmlnZ2VyX2ZpeF9zdWJfZHVyYXRpb25faGVh cnRiZWF0KE91dHB1dFN0cmVhbSAqb3N0LCBjb25zdCBBVlBhY2tldCAqcGt0KQoreworICAgIGlu dDY0X3Qgc2lnbmFsX3B0cyA9IGF2X3Jlc2NhbGVfcShwa3QtPnB0cywgb3N0LT5tdXhfdGltZWJh c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFWX1RJTUVfQkFTRV9R KTsKKworICAgIGlmICghb3N0LT5maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdCB8fCAhKHBrdC0+ ZmxhZ3MgJiBBVl9QS1RfRkxBR19LRVkpKQorICAgICAgICAvLyB3ZSBhcmUgb25seSBpbnRlcmVz dGVkIGluIGhlYXJ0YmVhdHMgb24gc3RyZWFtcyBjb25maWd1cmVkLCBhbmQKKyAgICAgICAgLy8g b25seSBvbiByYW5kb20gYWNjZXNzIHBvaW50cy4KKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBm b3IgKGludCBpbmRleCA9IDA7IGluZGV4IDwgbmJfaW5wdXRfc3RyZWFtczsgaW5kZXgrKykgewor ICAgICAgICBJbnB1dFN0cmVhbSAqc3VidGl0bGVfaXN0ID0gaW5wdXRfc3RyZWFtc1tpbmRleF07 CisgICAgICAgIGludCByZXQgPSBBVkVSUk9SX0JVRzsKKworICAgICAgICBpZiAoIXN1YnRpdGxl X2lzdC0+ZGVjb2RpbmdfbmVlZGVkIHx8CisgICAgICAgICAgICBzdWJ0aXRsZV9pc3QtPmRlY19j dHgtPmNvZGVjX3R5cGUgIT0gQVZNRURJQV9UWVBFX1NVQlRJVExFKQorICAgICAgICAgICAgY29u dGludWU7CisKKyAgICAgICAgaWYgKChyZXQgPSBmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdChz dWJ0aXRsZV9pc3QsIHNpZ25hbF9wdHMpKSA8IDApCisgICAgICAgICAgICByZXR1cm4gcmV0Owor ICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHRyYW5zY29kZV9zdWJ0aXRs ZXMoSW5wdXRTdHJlYW0gKmlzdCwgQVZQYWNrZXQgKnBrdCwgaW50ICpnb3Rfb3V0cHV0LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqZGVjb2RlX2ZhaWxlZCkKIHsKZGlmZiAt LWdpdCBhL2ZmdG9vbHMvZmZtcGVnLmggYi9mZnRvb2xzL2ZmbXBlZy5oCmluZGV4IDM5MWEzNWNm NTAuLmY3ZmViYWJlN2UgMTAwNjQ0Ci0tLSBhL2ZmdG9vbHMvZmZtcGVnLmgKKysrIGIvZmZ0b29s cy9mZm1wZWcuaApAQCAtMjA5LDYgKzIwOSw4IEBAIHR5cGVkZWYgc3RydWN0IE9wdGlvbnNDb250 ZXh0IHsKICAgICBpbnQgICAgICAgIG5iX3JlaW5pdF9maWx0ZXJzOwogICAgIFNwZWNpZmllck9w dCAqZml4X3N1Yl9kdXJhdGlvbjsKICAgICBpbnQgICAgICAgIG5iX2ZpeF9zdWJfZHVyYXRpb247 CisgICAgU3BlY2lmaWVyT3B0ICpmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdDsKKyAgICBpbnQg ICAgICAgIG5iX2ZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0OwogICAgIFNwZWNpZmllck9wdCAq Y2FudmFzX3NpemVzOwogICAgIGludCAgICAgICAgbmJfY2FudmFzX3NpemVzOwogICAgIFNwZWNp Zmllck9wdCAqcGFzczsKQEAgLTU4MSw2ICs1ODMsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgT3V0cHV0 U3RyZWFtIHsKIAogICAgIC8qIGZyYW1lIGVuY29kZSBzdW0gb2Ygc3F1YXJlZCBlcnJvciB2YWx1 ZXMgKi8KICAgICBpbnQ2NF90IGVycm9yWzRdOworCisgICAgLyoKKyAgICAgKiBib29sIG9uIHdo ZXRoZXIgdGhpcyBzdHJlYW0gc2hvdWxkIGJlIHV0aWxpemVkIGZvciBzcGxpdHRpbmcKKyAgICAg KiBzdWJ0aXRsZXMgdXRpbGl6aW5nIGZpeF9zdWJfZHVyYXRpb24gYXQgcmFuZG9tIGFjY2VzcyBw b2ludHMuCisgICAgICovCisgICAgdW5zaWduZWQgaW50IGZpeF9zdWJfZHVyYXRpb25faGVhcnRi ZWF0OwogfSBPdXRwdXRTdHJlYW07CiAKIHR5cGVkZWYgc3RydWN0IE91dHB1dEZpbGUgewpkaWZm IC0tZ2l0IGEvZmZ0b29scy9mZm1wZWdfb3B0LmMgYi9mZnRvb2xzL2ZmbXBlZ19vcHQuYwppbmRl eCBhYzdmZTNiMjdhLi4yM2IyYjVkMWIzIDEwMDY0NAotLS0gYS9mZnRvb2xzL2ZmbXBlZ19vcHQu YworKysgYi9mZnRvb2xzL2ZmbXBlZ19vcHQuYwpAQCAtOTcsNiArOTcsNyBAQCBzdGF0aWMgY29u c3QgY2hhciAqY29uc3Qgb3B0X25hbWVfZmlsdGVyc1tdICAgICAgICAgICAgICAgICAgID0geyJm aWx0ZXIiLCAiYWYiLAogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX2ZpbHRlcl9z Y3JpcHRzW10gICAgICAgICAgICA9IHsiZmlsdGVyX3NjcmlwdCIsIE5VTEx9Owogc3RhdGljIGNv bnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX3JlaW5pdF9maWx0ZXJzW10gICAgICAgICAgICA9IHsi cmVpbml0X2ZpbHRlciIsIE5VTEx9Owogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1l X2ZpeF9zdWJfZHVyYXRpb25bXSAgICAgICAgICA9IHsiZml4X3N1Yl9kdXJhdGlvbiIsIE5VTEx9 Oworc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX2ZpeF9zdWJfZHVyYXRpb25faGVh cnRiZWF0W10gPSB7ImZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0IiwgTlVMTH07CiBzdGF0aWMg Y29uc3QgY2hhciAqY29uc3Qgb3B0X25hbWVfY2FudmFzX3NpemVzW10gICAgICAgICAgICAgID0g eyJjYW52YXNfc2l6ZSIsIE5VTEx9Owogc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1l X3Bhc3NbXSAgICAgICAgICAgICAgICAgICAgICA9IHsicGFzcyIsIE5VTEx9Owogc3RhdGljIGNv bnN0IGNoYXIgKmNvbnN0IG9wdF9uYW1lX3Bhc3Nsb2dmaWxlc1tdICAgICAgICAgICAgICA9IHsi cGFzc2xvZ2ZpbGUiLCBOVUxMfTsKQEAgLTE2ODYsNiArMTY4Nyw5IEBAIHN0YXRpYyBPdXRwdXRT dHJlYW0gKm5ld19vdXRwdXRfc3RyZWFtKE9wdGlvbnNDb250ZXh0ICpvLCBBVkZvcm1hdENvbnRl eHQgKm9jLCBlCiAgICAgTUFUQ0hfUEVSX1NUUkVBTV9PUFQoYml0c19wZXJfcmF3X3NhbXBsZSwg aSwgb3N0LT5iaXRzX3Blcl9yYXdfc2FtcGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9j LCBzdCk7CiAKKyAgICBNQVRDSF9QRVJfU1RSRUFNX09QVChmaXhfc3ViX2R1cmF0aW9uX2hlYXJ0 YmVhdCwgaSwgb3N0LT5maXhfc3ViX2R1cmF0aW9uX2hlYXJ0YmVhdCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICBvYywgc3QpOworCiAgICAgaWYgKG9jLT5vZm9ybWF0LT5mbGFncyAmIEFWRk1U X0dMT0JBTEhFQURFUikKICAgICAgICAgb3N0LT5lbmNfY3R4LT5mbGFncyB8PSBBVl9DT0RFQ19G TEFHX0dMT0JBTF9IRUFERVI7CiAKQEAgLTM4OTEsNiArMzg5NSwxMSBAQCBjb25zdCBPcHRpb25E ZWYgb3B0aW9uc1tdID0gewogICAgIHsgImF1dG9zY2FsZSIsICAgICAgICBIQVNfQVJHIHwgT1BU X0JPT0wgfCBPUFRfU1BFQyB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QVF9FWFBFUlQg fCBPUFRfT1VUUFVULCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IC5vZmYgPSBPRkZT RVQoYXV0b3NjYWxlKSB9LAogICAgICAgICAiYXV0b21hdGljYWxseSBpbnNlcnQgYSBzY2FsZSBm aWx0ZXIgYXQgdGhlIGVuZCBvZiB0aGUgZmlsdGVyIGdyYXBoIiB9LAorICAgIHsgImZpeF9zdWJf ZHVyYXRpb25faGVhcnRiZWF0IiwgT1BUX1ZJREVPIHwgT1BUX0JPT0wgfCBPUFRfRVhQRVJUIHwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QVF9TUEVDIHwgT1BUX09VVFBV VCwgICAgICAgICAgICAgICAgICAgICAgIHsgLm9mZiA9IE9GRlNFVChmaXhfc3ViX2R1cmF0aW9u X2hlYXJ0YmVhdCkgfSwKKyAgICAgICAgInNldCB0aGlzIHZpZGVvIG91dHB1dCBzdHJlYW0gdG8g YmUgYSBoZWFydGJlYXQgc3RyZWFtIGZvciAiCisgICAgICAgICJmaXhfc3ViX2R1cmF0aW9uLCBh Y2NvcmRpbmcgdG8gd2hpY2ggc3VidGl0bGVzIHNob3VsZCBiZSBzcGxpdCBhdCAiCisgICAgICAg ICJyYW5kb20gYWNjZXNzIHBvaW50cyIgfSwKIAogICAgIC8qIGF1ZGlvIG9wdGlvbnMgKi8KICAg ICB7ICJhZnJhbWVzIiwgICAgICAgIE9QVF9BVURJTyB8IEhBU19BUkcgIHwgT1BUX1BFUkZJTEUg fCBPUFRfT1VUUFVULCAgICAgICAgICAgeyAuZnVuY19hcmcgPSBvcHRfYXVkaW9fZnJhbWVzIH0s CmRpZmYgLS1naXQgYS90ZXN0cy9mYXRlL2ZmbXBlZy5tYWsgYi90ZXN0cy9mYXRlL2ZmbXBlZy5t YWsKaW5kZXggOTRmNTA0MjNiZS4uNjZjZmFhMGEyMyAxMDA2NDQKLS0tIGEvdGVzdHMvZmF0ZS9m Zm1wZWcubWFrCisrKyBiL3Rlc3RzL2ZhdGUvZmZtcGVnLm1hawpAQCAtMTA5LDYgKzEwOSwyMCBA QCBmYXRlLWZmbXBlZy1maXhfc3ViX2R1cmF0aW9uOiBDTUQgPSBmbXRzdGRvdXQgc3J0IC1maXhf c3ViX2R1cmF0aW9uIFwKICAgLXJlYWxfdGltZSAxIC1mIGxhdmZpIFwKICAgLWkgIm1vdmllPSQo VEFSR0VUX1NBTVBMRVMpL3N1Yi9DbG9zZWRjYXB0aW9uX3JvbGx1cC5tMnZbb3V0MCtzdWJjY10i CiAKKyMgQmFzaWMgdGVzdCBmb3IgZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQsIHdoaWNoIGNh dXNlcyBhIGJ1ZmZlcmVkIHN1YnRpdGxlCisjIHRvIGJlIHB1c2hlZCBvdXQgd2hlbiBhIHZpZGVv IGtleWZyYW1lIGlzIHJlY2VpdmVkIGZyb20gYW4gZW5jb2Rlci4KK0ZBVEVfU0FNUExFU19GRk1Q RUctJChjYWxsIEZJTFRFUkRFTURFQ0VOQ01VWCwgTU9WSUUsIE1QRUdWSURFTywgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgTVBFRzJWSURFTywgU1VCUklQLCBTUlQsIExBVkZJX0lOREVW ICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICBNUEVHVklERU9fUEFSU0VSIENDQVBUSU9O X0RFQ09ERVIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTVBFRzJWSURFT19FTkNPREVS IE5VTExfTVVYRVIgUElQRV9QUk9UT0NPTCkgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg Kz0gZmF0ZS1mZm1wZWctZml4X3N1Yl9kdXJhdGlvbl9oZWFydGJlYXQKK2ZhdGUtZmZtcGVnLWZp eF9zdWJfZHVyYXRpb25faGVhcnRiZWF0OiBDTUQgPSBmbXRzdGRvdXQgc3J0IC1maXhfc3ViX2R1 cmF0aW9uIFwKKyAgLXJlYWxfdGltZSAxIC1mIGxhdmZpIFwKKyAgLWkgIm1vdmllPSQoVEFSR0VU X1NBTVBMRVMpL3N1Yi9DbG9zZWRjYXB0aW9uX3JvbGx1cC5tMnZbb3V0MCtzdWJjY10iIFwKKyAg LW1hcCAwOnYgLWZpeF9zdWJfZHVyYXRpb25faGVhcnRiZWF0OnY6MCBcCisgIC1jIG1wZWcydmlk ZW8gLWI6diAyTSAtZyAzMCAtc2NfdGhyZXNob2xkIDEwMDAwMDAwMDAgXAorICAtZiBudWxsIC0K KwogRkFURV9TVFJFQU1DT1BZLSQoY2FsbCBSRU1VWCwgTVA0IE1PViwgRUFDM19ERU1VWEVSKSAr PSBmYXRlLWNvcHktdHJhYzMwNzQKIGZhdGUtY29weS10cmFjMzA3NDogQ01EID0gdHJhbnNjb2Rl IGVhYzMgJChUQVJHRVRfU0FNUExFUykvZWFjMy9jc2lfbWlhbWlfc3RlcmVvXzEyOF9zcHguZWFj M1wKICAgICAgICAgICAgICAgICAgICAgIG1wNCAiLWNvZGVjIGNvcHkgLW1hcCAwIiAiLWNvZGVj IGNvcHkiCmRpZmYgLS1naXQgYS90ZXN0cy9yZWYvZmF0ZS9mZm1wZWctZml4X3N1Yl9kdXJhdGlv bl9oZWFydGJlYXQgYi90ZXN0cy9yZWYvZmF0ZS9mZm1wZWctZml4X3N1Yl9kdXJhdGlvbl9oZWFy dGJlYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTU3YTQxMDkyMQot LS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3JlZi9mYXRlL2ZmbXBlZy1maXhfc3ViX2R1cmF0aW9u X2hlYXJ0YmVhdApAQCAtMCwwICsxLDQ4IEBACisxCiswMDowMDowMCw5NjggLS0+IDAwOjAwOjAx LDAwMQorPGZvbnQgZmFjZT0iTW9ub3NwYWNlIj57XGFuN30oPC9mb250PgorCisyCiswMDowMDow MSwwMDEgLS0+IDAwOjAwOjAxLDE2OAorPGZvbnQgZmFjZT0iTW9ub3NwYWNlIj57XGFuN30oPC9m b250PgorCiszCiswMDowMDowMSwxNjggLS0+IDAwOjAwOjAxLDM2OAorPGZvbnQgZmFjZT0iTW9u b3NwYWNlIj57XGFuN30oPGk+IGluYXVkaWJsPC9pPjwvZm9udD4KKworNAorMDA6MDA6MDEsMzY4 IC0tPiAwMDowMDowMSw1NjgKKzxmb250IGZhY2U9Ik1vbm9zcGFjZSI+e1xhbjd9KDxpPiBpbmF1 ZGlibGUgcmFkaW8gY2hhdDwvaT48L2ZvbnQ+CisKKzUKKzAwOjAwOjAxLDU2OCAtLT4gMDA6MDA6 MDIsMDAyCis8Zm9udCBmYWNlPSJNb25vc3BhY2UiPntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlv IGNoYXR0ZXI8L2k+ICk8L2ZvbnQ+CisKKzYKKzAwOjAwOjAyLDAwMiAtLT4gMDA6MDA6MDMsMDAz Cis8Zm9udCBmYWNlPSJNb25vc3BhY2UiPntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNoYXR0 ZXI8L2k+ICk8L2ZvbnQ+CisKKzcKKzAwOjAwOjAzLDAwMyAtLT4gMDA6MDA6MDMsMTAzCis8Zm9u dCBmYWNlPSJNb25vc3BhY2UiPntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNoYXR0ZXI8L2k+ ICk8L2ZvbnQ+CisKKzgKKzAwOjAwOjAzLDEwMyAtLT4gMDA6MDA6MDMsMzAzCis8Zm9udCBmYWNl PSJNb25vc3BhY2UiPntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNoYXR0ZXI8L2k+ICkKKz4+ PC9mb250PgorCis5CiswMDowMDowMywzMDMgLS0+IDAwOjAwOjAzLDUwMworPGZvbnQgZmFjZT0i TW9ub3NwYWNlIj57XGFuN30oPGk+IGluYXVkaWJsZSByYWRpbyBjaGF0dGVyPC9pPiApCis+PiBT YWZldHkgcmVtYTwvZm9udD4KKworMTAKKzAwOjAwOjAzLDUwNCAtLT4gMDA6MDA6MDMsNzA0Cis8 Zm9udCBmYWNlPSJNb25vc3BhY2UiPntcYW43fSg8aT4gaW5hdWRpYmxlIHJhZGlvIGNoYXR0ZXI8 L2k+ICkKKz4+IFNhZmV0eSByZW1haW5zIG91ciBudW1iPC9mb250PgorCisxMQorMDA6MDA6MDMs NzA0IC0tPiAwMDowMDowNCwwMDQKKzxmb250IGZhY2U9Ik1vbm9zcGFjZSI+e1xhbjd9KDxpPiBp bmF1ZGlibGUgcmFkaW8gY2hhdHRlcjwvaT4gKQorPj4gU2FmZXR5IHJlbWFpbnMgb3VyIG51bWJl ciBvbmU8L2ZvbnQ+CisKLS0gCjIuMzYuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxA ZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2 ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2 ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=