From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 7647A4B208 for ; Thu, 23 Oct 2025 10:57:42 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'ShqJsXhrE0EPhHCqB4VhZJ8txZzyOblkqo+9J9onVws=', expected b'bNoEgU67LYsa4E1/otutFvVL4wF7ArHz7iTjVmn6xrQ=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1761217051; h=content-type : mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-transfer-encoding : from; bh=ShqJsXhrE0EPhHCqB4VhZJ8txZzyOblkqo+9J9onVws=; b=WY0h85T0oONATHjC7dPFtmxqAFIWIrEPnD09GNu78Z+0H4GLaaT8FxdbJPiNKGRHdwCB9 cYsscRWF+Ztzuu5E5eXvWYXYptALVndq64mYj96aEAa1Tp8obSChjJCCmjaZ6vriOT7rCCD 42kI2ROsHdBEdC3eGSTPlHp+2kb1JcADjbCyjgxxB4FeVQwfSgeT9wMxYbIPMJg3Fm212t+ 4Azq80G2J3WpC2pYTUqtLhfNQ6VY8ZKK5Voo5u1yk7XeU2GgpNU0hWp9Qw4CFeyWLQy7eDP FanSkKMMViKb1/nw4fE8O6OwcalnV8920skeFGSawqYnpaFQXi+Z4CkbuseA== Received: from [172.19.0.2] (unknown [172.19.0.2]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 7929168F608; Thu, 23 Oct 2025 13:57:31 +0300 (EEST) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1761217049; b=CxsDMNq+Y7R0TsLeLQEzCteU5u9ie/TLu+3wYE3EsyJahZhbDT5lkwvWC90yrbXedGtaZ bdQdgErtdWBL/XM16neXYOupe5StTyYM64rIdocufY6Lst7eaDni7Nf5VIMBTv5DeFRmkfk Wlgw1KS4vPVkQEVil0QX0wsyuR5FAcIFTIy31Y9I93KDdayQhby7f6f+upLwz9TVHrNSbBU SvtpTz9rfrusqVUQjOpOKurKxmvGFIlSg9J+J5uYHmanOFAi9FG8FLzM11kj3A24mgYhilF LLReltmRVhcaz7O+dYJl1BWb5wxxFEDca9w8uN4js5ppzZmH068tgEO7suLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1761217049; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=ShqJsXhrE0EPhHCqB4VhZJ8txZzyOblkqo+9J9onVws=; b=WLRxSEKE3jZ0/msVIz9f8B4WKEAu3hLpFEuEZvcKGYT6xJQ3BF0qUgimDZ2uRkIHyKgyX onlQ5MqtNwfEVL6xGFcIS5mfPV/8DhzcVI+8y5207QJLNJmJieVbImh4MhXs12XkMRbVNAv wzPsfSfBaGvHw2XusCnG1gg9DW3f1YQxVc5qHTE7KQdAHpNU8tMmXouj+dgF3y2INlHek+F tRbcCMmqadpH1aEP/E+zsS6HJ/o5Uxjf5JM/F9rGt7Cv7tK1vCIL7rt8JMV3YkNovgRW2P2 Q4aqAt2h5qnLlrVaXdJ2yMAoMCpHCe2Lxf9N1GIUK+DwK6syo9zaDoakWyTg== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1761217043; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=bNoEgU67LYsa4E1/otutFvVL4wF7ArHz7iTjVmn6xrQ=; b=W9670VHtJZmN2rv8CINLZt9xse04z56I32MAYGm15QAGDXSL6640S/PAVZlJeirhfWJUR EBqQ12mUXlm0wUmOnHEPEV9xCdhhngO3F73Df+/iHOnP9p9amVQkMM9VzfvI60yfAesmZ+A Q697gJ8U2xFDTeq7faXZfG7r6vqaSkiTpOX08eel5pHqMFD91LFsBcZvIQS6IqQSlebEhRC xaS0cSFj9frBUP8zl7W32SrUWTXkovKydP/eInPELYey8T5ETYtJXYYNfmfLFB+80UGd6B1 Hueygq4oMJVvd1hh8NyZFJgN/QiPz/YwMgwILLGLPpocnOj4Ido1dBQvnWoA== Received: from 547bf0a948a1 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 13DB768F5F1 for ; Thu, 23 Oct 2025 13:57:23 +0300 (EEST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Oct 2025 10:57:22 -0000 Message-ID: <176121704324.25.327631241398781509@7d278768979e> Message-ID-Hash: 2P5YTYFK472TFBFU4J6LCXZIBRF74YJP X-Message-ID-Hash: 2P5YTYFK472TFBFU4J6LCXZIBRF74YJP X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] avformat: Combine hlsenc/dashenc codec string generation, make public API (PR #20739) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: =?utf-8?q?Martin_Storsj=C3=B6_via_ffmpeg-devel?= Cc: =?utf-8?q?Martin_Storsj=C3=B6?= Content-Transfer-Encoding: base64 Archived-At: List-Archive: List-Post: UFIgIzIwNzM5IG9wZW5lZCBieSBNYXJ0aW4gU3RvcnNqw7YgKG1zdG9yc2pvKQpVUkw6IGh0dHBz Oi8vY29kZS5mZm1wZWcub3JnL0ZGbXBlZy9GRm1wZWcvcHVsbHMvMjA3MzkKUGF0Y2ggVVJMOiBo dHRwczovL2NvZGUuZmZtcGVnLm9yZy9GRm1wZWcvRkZtcGVnL3B1bGxzLzIwNzM5LnBhdGNoCgoK RnJvbSBlYzVmNzZkOWUyOGEzZTc5YmJkOGUzNjk0NzA3NDk1OTczMTc0OTBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWFydGluPTIwU3RvcnNqPUMzPUI2Pz0gPG1h cnRpbkBtYXJ0aW4uc3Q+CkRhdGU6IFRodSwgMjMgT2N0IDIwMjUgMTM6MzU6MTIgKzAzMDAKU3Vi amVjdDogW1BBVENIIDEvM10gYXZmb3JtYXQvdnBjYzogR2VuZXJhbGl6ZSB0aGUgQVZGb3JtYXRD b250ZXh0IHBhcmFtZXRlcgogdG8gdm9pZCoKClRoaXMgcGFyYW1ldGVyIGlzIG9ubHkgdXNlZCBh cyBhIGxvZ2dpbmcgY29udGV4dDsgZG9uJ3QgcmVxdWlyZQphIGZ1bGwgQVZGb3JtYXRDb250ZXh0 IGhlcmUuCi0tLQogbGliYXZmb3JtYXQvdnBjYy5jIHwgMjAgKysrKysrKysrKy0tLS0tLS0tLS0K IGxpYmF2Zm9ybWF0L3ZwY2MuaCB8ICA2ICsrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNl cnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC92cGNj LmMgYi9saWJhdmZvcm1hdC92cGNjLmMKaW5kZXggYTU5Nzc5MTZiZi4uZjk3NzAwZjVlNiAxMDA2 NDQKLS0tIGEvbGliYXZmb3JtYXQvdnBjYy5jCisrKyBiL2xpYmF2Zm9ybWF0L3ZwY2MuYwpAQCAt MzUsNyArMzUsNyBAQCBlbnVtIFZQWF9DSFJPTUFfU1VCU0FNUExJTkcKICAgICBWUFhfU1VCU0FN UExJTkdfNDQ0ID0gMywKIH07CiAKLXN0YXRpYyBpbnQgZ2V0X3ZweF9jaHJvbWFfc3Vic2FtcGxp bmcoQVZGb3JtYXRDb250ZXh0ICpzLAorc3RhdGljIGludCBnZXRfdnB4X2Nocm9tYV9zdWJzYW1w bGluZyh2b2lkICpsb2djdHgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGVudW0gQVZQaXhlbEZvcm1hdCBwaXhlbF9mb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVudW0gQVZDaHJvbWFMb2NhdGlvbiBjaHJvbWFfbG9jYXRpb24pCiB7 CkBAIC01MSwxNSArNTEsMTUgQEAgc3RhdGljIGludCBnZXRfdnB4X2Nocm9tYV9zdWJzYW1wbGlu ZyhBVkZvcm1hdENvbnRleHQgKnMsCiAgICAgICAgICAgICByZXR1cm4gVlBYX1NVQlNBTVBMSU5H XzQ0NDsKICAgICAgICAgfQogICAgIH0KLSAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLCAiVW5z dXBwb3J0ZWQgcGl4ZWwgZm9ybWF0ICglZClcbiIsIHBpeGVsX2Zvcm1hdCk7CisgICAgYXZfbG9n KGxvZ2N0eCwgQVZfTE9HX0VSUk9SLCAiVW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0ICglZClcbiIs IHBpeGVsX2Zvcm1hdCk7CiAgICAgcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgaW50IGdldF9iaXRf ZGVwdGgoQVZGb3JtYXRDb250ZXh0ICpzLCBlbnVtIEFWUGl4ZWxGb3JtYXQgcGl4ZWxfZm9ybWF0 KQorc3RhdGljIGludCBnZXRfYml0X2RlcHRoKHZvaWQgKmxvZ2N0eCwgZW51bSBBVlBpeGVsRm9y bWF0IHBpeGVsX2Zvcm1hdCkKIHsKICAgICBjb25zdCBBVlBpeEZtdERlc2NyaXB0b3IgKmRlc2Mg PSBhdl9waXhfZm10X2Rlc2NfZ2V0KHBpeGVsX2Zvcm1hdCk7CiAgICAgaWYgKGRlc2MgPT0gTlVM TCkgewotICAgICAgICBhdl9sb2cocywgQVZfTE9HX0VSUk9SLCAiVW5zdXBwb3J0ZWQgcGl4ZWwg Zm9ybWF0ICglZClcbiIsCisgICAgICAgIGF2X2xvZyhsb2djdHgsIEFWX0xPR19FUlJPUiwgIlVu c3VwcG9ydGVkIHBpeGVsIGZvcm1hdCAoJWQpXG4iLAogICAgICAgICAgICAgICAgcGl4ZWxfZm9y bWF0KTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KQEAgLTE1MCwxNiArMTUwLDE2IEBAIHN0 YXRpYyB2b2lkIHBhcnNlX2JpdHN0cmVhbShHZXRCaXRDb250ZXh0ICpnYiwgaW50ICpwcm9maWxl LCBpbnQgKmJpdF9kZXB0aCkgewogICAgICpiaXRfZGVwdGggPSAqcHJvZmlsZSA8PSAxID8gOCA6 IDEwICsgZ2V0X2JpdHMxKGdiKSAqIDI7CiB9CiAKLWludCBmZl9pc29tX2dldF92cGNjX2ZlYXR1 cmVzKEFWRm9ybWF0Q29udGV4dCAqcywgQVZDb2RlY1BhcmFtZXRlcnMgKnBhciwKK2ludCBmZl9p c29tX2dldF92cGNjX2ZlYXR1cmVzKHZvaWQgKmxvZ2N0eCwgQVZDb2RlY1BhcmFtZXRlcnMgKnBh ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsIGlu dCBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVlJhdGlvbmFsICpmcmFtZV9y YXRlLCBWUENDICp2cGNjKQogewogICAgIGludCBwcm9maWxlID0gcGFyLT5wcm9maWxlOwogICAg IGludCBsZXZlbCA9IHBhci0+bGV2ZWwgPT0gQVZfTEVWRUxfVU5LTk9XTiA/CiAgICAgICAgIGdl dF92cDlfbGV2ZWwocGFyLCBmcmFtZV9yYXRlKSA6IHBhci0+bGV2ZWw7Ci0gICAgaW50IGJpdF9k ZXB0aCA9IGdldF9iaXRfZGVwdGgocywgcGFyLT5mb3JtYXQpOworICAgIGludCBiaXRfZGVwdGgg PSBnZXRfYml0X2RlcHRoKGxvZ2N0eCwgcGFyLT5mb3JtYXQpOwogICAgIGludCB2cHhfY2hyb21h X3N1YnNhbXBsaW5nID0KLSAgICAgICAgZ2V0X3ZweF9jaHJvbWFfc3Vic2FtcGxpbmcocywgcGFy LT5mb3JtYXQsIHBhci0+Y2hyb21hX2xvY2F0aW9uKTsKKyAgICAgICAgZ2V0X3ZweF9jaHJvbWFf c3Vic2FtcGxpbmcobG9nY3R4LCBwYXItPmZvcm1hdCwgcGFyLT5jaHJvbWFfbG9jYXRpb24pOwog ICAgIGludCB2cHhfdmlkZW9fZnVsbF9yYW5nZV9mbGFnID0KICAgICAgICAgZ2V0X3ZweF92aWRl b19mdWxsX3JhbmdlX2ZsYWcocGFyLT5jb2xvcl9yYW5nZSk7CiAKQEAgLTE4Niw3ICsxODYsNyBA QCBpbnQgZmZfaXNvbV9nZXRfdnBjY19mZWF0dXJlcyhBVkZvcm1hdENvbnRleHQgKnMsIEFWQ29k ZWNQYXJhbWV0ZXJzICpwYXIsCiAgICAgfQogCiAgICAgaWYgKHByb2ZpbGUgPT0gQVZfUFJPRklM RV9VTktOT1dOIHx8ICFiaXRfZGVwdGgpCi0gICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfV0FSTklO RywgIlZQOSBwcm9maWxlIGFuZC9vciBiaXQgZGVwdGggbm90IHNldCBvciBjb3VsZCBub3QgYmUg ZGVyaXZlZFxuIik7CisgICAgICAgIGF2X2xvZyhsb2djdHgsIEFWX0xPR19XQVJOSU5HLCAiVlA5 IHByb2ZpbGUgYW5kL29yIGJpdCBkZXB0aCBub3Qgc2V0IG9yIGNvdWxkIG5vdCBiZSBkZXJpdmVk XG4iKTsKIAogICAgIHZwY2MtPnByb2ZpbGUgICAgICAgICAgICA9IHByb2ZpbGU7CiAgICAgdnBj Yy0+bGV2ZWwgICAgICAgICAgICAgID0gbGV2ZWw7CkBAIC0xOTcsMTQgKzE5NywxNCBAQCBpbnQg ZmZfaXNvbV9nZXRfdnBjY19mZWF0dXJlcyhBVkZvcm1hdENvbnRleHQgKnMsIEFWQ29kZWNQYXJh bWV0ZXJzICpwYXIsCiAgICAgcmV0dXJuIDA7CiB9CiAKLWludCBmZl9pc29tX3dyaXRlX3ZwY2Mo QVZGb3JtYXRDb250ZXh0ICpzLCBBVklPQ29udGV4dCAqcGIsCitpbnQgZmZfaXNvbV93cml0ZV92 cGNjKHZvaWQgKmxvZ2N0eCwgQVZJT0NvbnRleHQgKnBiLAogICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCB1aW50OF90ICpkYXRhLCBpbnQgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICBB VkNvZGVjUGFyYW1ldGVycyAqcGFyKQogewogICAgIFZQQ0MgdnBjYzsKICAgICBpbnQgcmV0Owog Ci0gICAgcmV0ID0gZmZfaXNvbV9nZXRfdnBjY19mZWF0dXJlcyhzLCBwYXIsIGRhdGEsIGxlbiwg TlVMTCwgJnZwY2MpOworICAgIHJldCA9IGZmX2lzb21fZ2V0X3ZwY2NfZmVhdHVyZXMobG9nY3R4 LCBwYXIsIGRhdGEsIGxlbiwgTlVMTCwgJnZwY2MpOwogICAgIGlmIChyZXQgPCAwKQogICAgICAg ICByZXR1cm4gcmV0OwogCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC92cGNjLmggYi9saWJhdmZv cm1hdC92cGNjLmgKaW5kZXggYmFkMzhjNTYxNS4uMmExMzYyYWJhZSAxMDA2NDQKLS0tIGEvbGli YXZmb3JtYXQvdnBjYy5oCisrKyBiL2xpYmF2Zm9ybWF0L3ZwY2MuaApAQCAtNDMsNyArNDMsNyBA QCB0eXBlZGVmIHN0cnVjdCBWUENDIHsKIC8qKgogICogV3JpdGVzIFZQIGNvZGVjIGNvbmZpZ3Vy YXRpb24gdG8gdGhlIHByb3ZpZGVkIEFWSU9Db250ZXh0LgogICoKLSAqIEBwYXJhbSBzIGFkZHJl c3Mgb2YgdGhlIEFWRm9ybWF0Q29udGV4dCBmb3IgdGhlIGxvZ2dpbmcgY29udGV4dC4KKyAqIEBw YXJhbSBsb2djdHggb3BhcXVlIHBvaW50ZXIgZm9yIGxvZ2dpbmcuCiAgKiBAcGFyYW0gcGIgYWRk cmVzcyBvZiB0aGUgQVZJT0NvbnRleHQgd2hlcmUgdGhlIHZwY0Mgc2hhbGwgYmUgd3JpdHRlbi4K ICAqIEBwYXJhbSBkYXRhIGFkZHJlc3Mgb2YgYSBkYXRhIGFycmF5IHdoaWNoIGNvbnRhaW5zIGNv ZGVkIGJpdHN0cmVhbSBkYXRhIGZyb20KICAqICAgICAgICAgICAgIHdoaWNoIGNvZGVjIGluZm9y bWF0aW9uIGNhbiBiZSBleHRyYWN0ZWQuIE1heSBiZSBOVUxMLgpAQCAtNTIsMTEgKzUyLDExIEBA IHR5cGVkZWYgc3RydWN0IFZQQ0MgewogICogQHJldHVybiA+PTAgaW4gY2FzZSBvZiBzdWNjZXNz LCBhIG5lZ2F0aXZlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gYW4gQVZFUlJPUgogICogICAgICAg ICBjb2RlIGluIGNhc2Ugb2YgZmFpbHVyZQogICovCi1pbnQgZmZfaXNvbV93cml0ZV92cGNjKEFW Rm9ybWF0Q29udGV4dCAqcywgQVZJT0NvbnRleHQgKnBiLAoraW50IGZmX2lzb21fd3JpdGVfdnBj Yyh2b2lkICpsb2djdHgsIEFWSU9Db250ZXh0ICpwYiwKICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgdWludDhfdCAqZGF0YSwgaW50IGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgQVZD b2RlY1BhcmFtZXRlcnMgKnBhcik7CiAKLWludCBmZl9pc29tX2dldF92cGNjX2ZlYXR1cmVzKEFW Rm9ybWF0Q29udGV4dCAqcywgQVZDb2RlY1BhcmFtZXRlcnMgKnBhciwKK2ludCBmZl9pc29tX2dl dF92cGNjX2ZlYXR1cmVzKHZvaWQgKmxvZ2N0eCwgQVZDb2RlY1BhcmFtZXRlcnMgKnBhciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsIGludCBsZW4s CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVlJhdGlvbmFsICpmcmFtZV9yYXRlLCBW UENDICp2cGNjKTsKIAotLSAKMi40OS4xCgoKRnJvbSAxYjEyNTEzOWFiMzk2MDUyMTM1OTk5NWYw M2ExNDkxMTYyMGE5ZGVlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/ TWFydGluPTIwU3RvcnNqPUMzPUI2Pz0gPG1hcnRpbkBtYXJ0aW4uc3Q+CkRhdGU6IFRodSwgMjMg T2N0IDIwMjUgMTM6MjA6NTQgKzAzMDAKU3ViamVjdDogW1BBVENIIDIvM10gaGxzZW5jLCBkYXNo ZW5jOiBTaGFyZSB0aGUgcm91dGluZSBmb3IgZ2VuZXJhdGluZyBhIGNvZGVjCiBzdHJpbmcKClRo ZSBvbmUgaW4gZGFzaGVuYyB3YXMgYWRkZWQgaW4KZmU1ZTZlMzRjMDVlMjc0Zjk4NTI4YmU0Zjc3 ZjNjNDc0NDczZjk3Nywgd2hpbGUgdGhlIG9uZSBpbiBobHNlbmMKd2FzIGFkZGVkIGxhdGVyIGlu IDBhZmExNzFmMjViYzliNjEzYTc3MzI4MTgyZTU0ZDZlNzgxMjY5ZDMuIEJvdGgKaGF2ZSBoYWQg dmFyaW91cyBhZGRpdGlvbnMgb24gdG9wOyBtZXJnZSBib3RoIGltcGxlbWVudGF0aW9ucwppbnRv IG9uZSBzaGFyZWQuIChOb3RhYmxlIGFkZGl0aW9ucyBpbgowNjBlNzRlMmE5NzBiYjEyYWIxMzhj ZmZmNWFhZmY4ZDEzMmZmYzY1LAoxY2YyZjA0MGUzNGJiZmVkZGU2MGZmM2Q5MWIyZjdiNzcwYWNh ODViLAphMmIxZGQwY2UzMDE0NTBhNDdjOTcyNzQ1YTZiMzNjNGMyNzNhYTVkIGFuZAo3OTdmMGIy N2MxNzUwMjJkODk2ZTQ2ZGI0YWMyODczZTNlMGE3MGFmLikKCkZvciBIMjY0L2F2YzEsIHVzZSB0 aGUgaW1wbGVtZW50YXRpb24gZnJvbSBobHNlbmMgKHdoaWNoIGRvZXNuJ3QKdXNlIHRlbXBvcmFy eSBhbGxvY2F0aW9ucykuIEZvciBtb3N0IG90aGVyIGNvZGVjcywgdXNlIHRoZQpvbmx5IGltcGxl bWVudGF0aW9uIGZyb20gd2hpY2hldmVyIGhhZCBvbmUuCgpUaGUgb3JpZ2luYWwgZGFzaGVuYyBp bXBsZW1lbnRhdGlvbiB0cmllZCB0byBiZSBnZW5lcmljIGJhc2VkCm9uIFJGQyA2MzgxLCBsb29r aW5nIHVwIGNvZGVjIHRhZ3MgaW4gZmZfY29kZWNfbW92dmlkZW9fdGFncwpvciBmZl9jb2RlY19t b3ZhdWRpb190YWdzLCBhbmQgZG9pbmcgc3BlY2lmaWMgZXh0cmEgYWRkaXRpb25zCmZvciAibXA0 YSIgYW5kICJtcDR2Ii4gSW4gcHJhY3RpY2UsIG9ubHkgQVZfQ09ERUNfSURfQUFDCmFuZCBBVl9D T0RFQ19JRF9NUEVHNCBldmVyIG1hcHBlZCB0byB0aGVzZTsgc2ltcGxpZnkgdGhpcyB0bwphIG1v cmUgc3RyYWlnaHRmb3J3YXJkIGNvZGVjIGlkIGJhc2VkIGhhbmRsaW5nLCBhbmQgbWVyZ2UKd2l0 aCB0aGUgQUFDIHByb2ZpbGUgYmFzZWQgY29kZSBmcm9tIGhsc2VuYy4KClRoZXJlJ3MgYSBzbGln aHQgYmVoYXZpb3VyIGRpZmZlcmVuY2UgZnJvbSB0aGUgb2xkIG9uZSBpbgpkYXNoZW5jOyBpZiB0 aGVyZSdzIG5vIGNvZGUgZm9yIGEgc3BlY2lmaWMgY29kZWMgSUQsIHdlIHByZXZpb3VzbHkKanVz dCBvdXRwdXQgd2hhdCB3ZSBtYXRjaGVkIGZyb20gdGhlIG1vdiB0YWcgdGFibGVzLCBidXQgbm93 CndlIHdvbid0IG91dHB1dCBhbnl0aGluZy4gQnV0IG1vc3QgY29tbW9ubHkgdXNlZCBjb2RlY3Mg aW4KREFTSCBzaG91bGQgYmUgY292ZXJlZCBoZXJlLgotLS0KIGxpYmF2Zm9ybWF0L01ha2VmaWxl ICAgICAgfCAgIDQgKy0KIGxpYmF2Zm9ybWF0L2NvZGVjc3RyaW5nLmMgfCAyMjQgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGxpYmF2Zm9ybWF0L2Rhc2hlbmMuYyAgICAg fCAxMzMgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbGliYXZmb3JtYXQvaGxzZW5jLmMgICAgICB8 IDExNiArLS0tLS0tLS0tLS0tLS0tLS0tLQogbGliYXZmb3JtYXQvaW50ZXJuYWwuaCAgICB8ICAx NCArKysKIDUgZmlsZXMgY2hhbmdlZCwgMjQ2IGluc2VydGlvbnMoKyksIDI0NSBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZvcm1hdC9jb2RlY3N0cmluZy5jCgpkaWZmIC0t Z2l0IGEvbGliYXZmb3JtYXQvTWFrZWZpbGUgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQppbmRleCBl ZDkzNDU4ZjAzLi44NjE3N2FmMmY0IDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9NYWtlZmlsZQor KysgYi9saWJhdmZvcm1hdC9NYWtlZmlsZQpAQCAtMTc5LDcgKzE3OSw3IEBAIE9CSlMtJChDT05G SUdfQ09OQ0FUX0RFTVVYRVIpICAgICAgICAgICAgKz0gY29uY2F0ZGVjLm8KIE9CSlMtJChDT05G SUdfQ1JDX01VWEVSKSAgICAgICAgICAgICAgICAgKz0gY3JjZW5jLm8KIE9CSlMtJChDT05GSUdf REFUQV9ERU1VWEVSKSAgICAgICAgICAgICAgKz0gcmF3ZGVjLm8KIE9CSlMtJChDT05GSUdfREFU QV9NVVhFUikgICAgICAgICAgICAgICAgKz0gcmF3ZW5jLm8KLU9CSlMtJChDT05GSUdfREFTSF9N VVhFUikgICAgICAgICAgICAgICAgKz0gZGFzaC5vIGRhc2hlbmMubyBobHNwbGF5bGlzdC5vCitP QkpTLSQoQ09ORklHX0RBU0hfTVVYRVIpICAgICAgICAgICAgICAgICs9IGRhc2gubyBkYXNoZW5j Lm8gaGxzcGxheWxpc3QubyBjb2RlY3N0cmluZy5vCiBPQkpTLSQoQ09ORklHX0RBU0hfREVNVVhF UikgICAgICAgICAgICAgICs9IGRhc2gubyBkYXNoZGVjLm8KIE9CSlMtJChDT05GSUdfREFVRF9E RU1VWEVSKSAgICAgICAgICAgICAgKz0gZGF1ZGRlYy5vCiBPQkpTLSQoQ09ORklHX0RBVURfTVVY RVIpICAgICAgICAgICAgICAgICs9IGRhdWRlbmMubwpAQCAtMjY3LDcgKzI2Nyw3IEBAIE9CSlMt JChDT05GSUdfSEVWQ19NVVhFUikgICAgICAgICAgICAgICAgKz0gcmF3ZW5jLm8KIE9CSlMtJChD T05GSUdfRVZDX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gZXZjZGVjLm8gcmF3ZGVjLm8KIE9C SlMtJChDT05GSUdfRVZDX01VWEVSKSAgICAgICAgICAgICAgICAgKz0gcmF3ZW5jLm8KIE9CSlMt JChDT05GSUdfSExTX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gaGxzLm8gaGxzX3NhbXBsZV9l bmNyeXB0aW9uLm8KLU9CSlMtJChDT05GSUdfSExTX01VWEVSKSAgICAgICAgICAgICAgICAgKz0g aGxzZW5jLm8gaGxzcGxheWxpc3QubworT0JKUy0kKENPTkZJR19ITFNfTVVYRVIpICAgICAgICAg ICAgICAgICArPSBobHNlbmMubyBobHNwbGF5bGlzdC5vIGNvZGVjc3RyaW5nLm8KIE9CSlMtJChD T05GSUdfSE5NX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gaG5tLm8KIE9CSlMtJChDT05GSUdf SFhWU19ERU1VWEVSKSAgICAgICAgICAgICAgKz0gaHh2cy5vCiBPQkpTLSQoQ09ORklHX0lBTUZf REVNVVhFUikgICAgICAgICAgICAgICs9IGlhbWZkZWMubwpkaWZmIC0tZ2l0IGEvbGliYXZmb3Jt YXQvY29kZWNzdHJpbmcuYyBiL2xpYmF2Zm9ybWF0L2NvZGVjc3RyaW5nLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTg5MTMxZmJlYQotLS0gL2Rldi9udWxsCisrKyBi L2xpYmF2Zm9ybWF0L2NvZGVjc3RyaW5nLmMKQEAgLTAsMCArMSwyMjQgQEAKKy8qCisgKiBDb3B5 cmlnaHQgKGMpIDIwMTQgTWFydGluIFN0b3Jzam8KKyAqIENvcHlyaWdodCAoYykgMjAxOCBBa2Ft YWkgVGVjaG5vbG9naWVzLCBJbmMuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVn LgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQor ICovCisKKyNpbmNsdWRlICJsaWJhdnV0aWwvYXZzdHJpbmcuaCIKKyNpbmNsdWRlICJsaWJhdnV0 aWwvaW50cmVhZHdyaXRlLmgiCisjaW5jbHVkZSAibGliYXZ1dGlsL21lbS5oIgorI2luY2x1ZGUg ImxpYmF2dXRpbC9yYXRpb25hbC5oIgorCisjaW5jbHVkZSAibGliYXZjb2RlYy9hdmNvZGVjLmgi CisKKyNpbmNsdWRlICJhdjEuaCIKKyNpbmNsdWRlICJhdmMuaCIKKyNpbmNsdWRlICJhdmZvcm1h dC5oIgorI2luY2x1ZGUgImludGVybmFsLmgiCisjaW5jbHVkZSAibmFsLmgiCisjaW5jbHVkZSAi dnBjYy5oIgorCitzdGF0aWMgY29uc3Qgc3RydWN0IGNvZGVjX3N0cmluZyB7CisgICAgZW51bSBB VkNvZGVjSUQgaWQ7CisgICAgY29uc3QgY2hhciBzdHJbOF07Cit9IGNvZGVjc1tdID0geworICAg IHsgQVZfQ09ERUNfSURfVlA4LCAidnA4IiB9LAorICAgIHsgQVZfQ09ERUNfSURfVlA5LCAidnA5 IiB9LAorICAgIHsgQVZfQ09ERUNfSURfVk9SQklTLCAidm9yYmlzIiB9LAorICAgIHsgQVZfQ09E RUNfSURfT1BVUywgIm9wdXMiIH0sCisgICAgeyBBVl9DT0RFQ19JRF9GTEFDLCAiZmxhYyIgfSwK KyAgICB7IEFWX0NPREVDX0lEX05PTkUgfQorfTsKKworc3RhdGljIHZvaWQgc2V0X3ZwOV9jb2Rl Y19zdHIodm9pZCAqbG9nY3R4LCBBVkNvZGVjUGFyYW1ldGVycyAqcGFyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQVZSYXRpb25hbCAqZnJhbWVfcmF0ZSwgY2hhciAqc3RyLCBpbnQg c2l6ZSkgeworICAgIFZQQ0MgdnBjYzsKKyAgICBpbnQgcmV0ID0gZmZfaXNvbV9nZXRfdnBjY19m ZWF0dXJlcyhsb2djdHgsIHBhciwgTlVMTCwgMCwgZnJhbWVfcmF0ZSwgJnZwY2MpOworICAgIGlm IChyZXQgPT0gMCkgeworICAgICAgICBzbnByaW50ZihzdHIsIHNpemUsICJ2cDA5LiUwMmQuJTAy ZC4lMDJkIiwKKyAgICAgICAgICAgICAgICAgdnBjYy5wcm9maWxlLCB2cGNjLmxldmVsLCB2cGNj LmJpdGRlcHRoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBEZWZhdWx0IHRvIGp1c3QgdnA5 IGluIGNhc2Ugb2YgZXJyb3Igd2hpbGUgZmluZGluZyBvdXQgcHJvZmlsZSBvciBsZXZlbAorICAg ICAgICBhdl9sb2cobG9nY3R4LCBBVl9MT0dfV0FSTklORywgIkNvdWxkIG5vdCBmaW5kIFZQOSBw cm9maWxlIGFuZC9vciBsZXZlbFxuIik7CisgICAgICAgIGF2X3N0cmxjcHkoc3RyLCAidnA5Iiwg c2l6ZSk7CisgICAgfQorfQorCitpbnQgZmZfbWFrZV9jb2RlY19zdHIodm9pZCAqbG9nY3R4LCBB VkNvZGVjUGFyYW1ldGVycyAqcGFyLAorICAgICAgICAgICAgICAgICAgICAgIEFWUmF0aW9uYWwg KmZyYW1lX3JhdGUsIGNoYXIgKnN0ciwgaW50IHNpemUpCit7CisgICAgaW50IGk7CisKKyAgICBp ZiAoc2l6ZSA8IDUpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CisKKyAgICBzdHJb MF0gPSAnXDAnOworCisgICAgLy8gY29tbW9uIFdlYm0gY29kZWNzIGFyZSBub3QgcGFydCBvZiBS RkMgNjM4MQorICAgIGZvciAoaSA9IDA7IGNvZGVjc1tpXS5pZCAhPSBBVl9DT0RFQ19JRF9OT05F OyBpKyspCisgICAgICAgIGlmIChjb2RlY3NbaV0uaWQgPT0gcGFyLT5jb2RlY19pZCkgeworICAg ICAgICAgICAgaWYgKGNvZGVjc1tpXS5pZCA9PSBBVl9DT0RFQ19JRF9WUDkpIHsKKyAgICAgICAg ICAgICAgICBzZXRfdnA5X2NvZGVjX3N0cihsb2djdHgsIHBhciwgZnJhbWVfcmF0ZSwgc3RyLCBz aXplKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYXZfc3RybGNweShz dHIsIGNvZGVjc1tpXS5zdHIsIHNpemUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0 dXJuIDA7CisgICAgICAgIH0KKworICAgIGlmIChwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lE X0gyNjQpIHsKKyAgICAgICAgLy8gUkZDIDYzODEKKyAgICAgICAgdWludDhfdCAqZGF0YSA9IHBh ci0+ZXh0cmFkYXRhOworICAgICAgICBpZiAoZGF0YSkgeworICAgICAgICAgICAgY29uc3QgdWlu dDhfdCAqcDsKKworICAgICAgICAgICAgaWYgKEFWX1JCMzIoZGF0YSkgPT0gMHgwMSAmJiAoZGF0 YVs0XSAmIDB4MUYpID09IDcpCisgICAgICAgICAgICAgICAgcCA9ICZkYXRhWzVdOworICAgICAg ICAgICAgZWxzZSBpZiAoQVZfUkIyNChkYXRhKSA9PSAweDAxICYmIChkYXRhWzNdICYgMHgxRikg PT0gNykKKyAgICAgICAgICAgICAgICBwID0gJmRhdGFbNF07CisgICAgICAgICAgICBlbHNlIGlm IChkYXRhWzBdID09IDB4MDEpICAvKiBhdmNDICovCisgICAgICAgICAgICAgICAgcCA9ICZkYXRh WzFdOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJ TlZBTCk7CisgICAgICAgICAgICBzbnByaW50ZihzdHIsIHNpemUsCisgICAgICAgICAgICAgICAg ICAgICAiYXZjMS4lMDJ4JTAyeCUwMngiLCBwWzBdLCBwWzFdLCBwWzJdKTsKKyAgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7CisgICAgICAgIH0KKyAg ICB9IGVsc2UgaWYgKHBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfSEVWQykgeworICAgICAg ICAvLyAzR1BQIFRTIDI2LjI0NAorICAgICAgICB1aW50OF90ICpkYXRhID0gcGFyLT5leHRyYWRh dGE7CisgICAgICAgIGludCBwcm9maWxlID0gQVZfUFJPRklMRV9VTktOT1dOOworICAgICAgICB1 aW50MzJfdCBwcm9maWxlX2NvbXBhdGliaWxpdHkgPSBBVl9QUk9GSUxFX1VOS05PV047CisgICAg ICAgIGNoYXIgdGllciA9IDA7CisgICAgICAgIGludCBsZXZlbCA9IEFWX0xFVkVMX1VOS05PV047 CisgICAgICAgIGNoYXIgY29uc3RyYWludHNbOF0gPSAiIjsKKworICAgICAgICBpZiAocGFyLT5w cm9maWxlICE9IEFWX1BST0ZJTEVfVU5LTk9XTikKKyAgICAgICAgICAgIHByb2ZpbGUgPSBwYXIt PnByb2ZpbGU7CisgICAgICAgIGlmIChwYXItPmxldmVsICE9IEFWX0xFVkVMX1VOS05PV04pCisg ICAgICAgICAgICBsZXZlbCA9IHBhci0+bGV2ZWw7CisKKyAgICAgICAgLyogY2hlY2sgdGhlIGJv dW5kYXJ5IG9mIGRhdGEgd2hpY2ggZnJvbSBjdXJyZW50IHBvc2l0aW9uIGlzIHNtYWxsIHRoYW4g ZXh0cmFkYXRhX3NpemUgKi8KKyAgICAgICAgd2hpbGUgKGRhdGEgJiYgKGRhdGEgLSBwYXItPmV4 dHJhZGF0YSArIDE5KSA8IHBhci0+ZXh0cmFkYXRhX3NpemUpIHsKKyAgICAgICAgICAgIC8qIGdl dCBIRVZDIFNQUyBOQUwgYW5kIHNlZWsgdG8gcHJvZmlsZV90aWVyX2xldmVsICovCisgICAgICAg ICAgICBpZiAoIShkYXRhWzBdIHwgZGF0YVsxXSB8IGRhdGFbMl0pICYmIGRhdGFbM10gPT0gMSAm JiAoKGRhdGFbNF0gJiAweDdFKSA9PSAweDQyKSkgeworICAgICAgICAgICAgICAgIHVpbnQ4X3Qg KnJic3BfYnVmOworICAgICAgICAgICAgICAgIGludCByZW1haW5fc2l6ZSA9IDA7CisgICAgICAg ICAgICAgICAgaW50IHJic3Bfc2l6ZSA9IDA7CisgICAgICAgICAgICAgICAgdWludDMyX3QgcHJv ZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzID0gMDsKKyAgICAgICAgICAgICAgICB1aW50OF90IGhp Z2hfbmliYmxlID0gMDsKKyAgICAgICAgICAgICAgICAvKiBza2lwIHN0YXJ0IGNvZGUgKyBuYWx1 IGhlYWRlciAqLworICAgICAgICAgICAgICAgIGRhdGEgKz0gNjsKKyAgICAgICAgICAgICAgICAv KiBwcm9jZXNzIGJ5IHJlZmVyZW5jZSBHZW5lcmFsIE5BTCB1bml0IHN5bnRheCAqLworICAgICAg ICAgICAgICAgIHJlbWFpbl9zaXplID0gcGFyLT5leHRyYWRhdGFfc2l6ZSAtIChkYXRhIC0gcGFy LT5leHRyYWRhdGEpOworICAgICAgICAgICAgICAgIHJic3BfYnVmID0gZmZfbmFsX3VuaXRfZXh0 cmFjdF9yYnNwKGRhdGEsIHJlbWFpbl9zaXplLCAmcmJzcF9zaXplLCAwKTsKKyAgICAgICAgICAg ICAgICBpZiAoIXJic3BfYnVmKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihF SU5WQUwpOworICAgICAgICAgICAgICAgIGlmIChyYnNwX3NpemUgPCAxMykgeworICAgICAgICAg ICAgICAgICAgICBhdl9mcmVlcCgmcmJzcF9idWYpOworICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLyogc2tpcCBzcHNfdmlkZW9f cGFyYW1ldGVyX3NldF9pZCAgIHUoNCksCisgICAgICAgICAgICAgICAgICogICAgICBzcHNfbWF4 X3N1Yl9sYXllcnNfbWludXMxICAgIHUoMyksCisgICAgICAgICAgICAgICAgICogIGFuZCBzcHNf dGVtcG9yYWxfaWRfbmVzdGluZ19mbGFnIHUoMSkKKyAgICAgICAgICAgICAgICAgKgorICAgICAg ICAgICAgICAgICAqIFRJRVIgcmVwcmVzZW50cyB0aGUgZ2VuZXJhbF90aWVyX2ZsYWcsIHdpdGgg J0wnIGluZGljYXRpbmcgdGhlIGZsYWcgaXMgMCwKKyAgICAgICAgICAgICAgICAgKiBhbmQgJ0gn IGluZGljYXRpbmcgdGhlIGZsYWcgaXMgMQorICAgICAgICAgICAgICAgICAqLworICAgICAgICAg ICAgICAgIHRpZXIgPSAocmJzcF9idWZbMV0gJiAweDIwKSA9PSAwID8gJ0wnIDogJ0gnOworICAg ICAgICAgICAgICAgIHByb2ZpbGUgPSByYnNwX2J1ZlsxXSAmIDB4MWY7CisgICAgICAgICAgICAg ICAgLyogUFJPRklMRV9DT01QQVRJQklMSVRZIGlzIGdlbmVyYWxfcHJvZmlsZV9jb21wYXRpYmls aXR5X2ZsYWdzLCBidXQgaW4gcmV2ZXJzZSBiaXQgb3JkZXIsCisgICAgICAgICAgICAgICAgICog aW4gYSBoZXhhZGVjaW1hbCByZXByZXNlbnRhdGlvbiAobGVhZGluZyB6ZXJvZXMgbWF5IGJlIG9t aXR0ZWQpLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHByb2ZpbGVfY29t cGF0aWJpbGl0eV9mbGFncyA9IEFWX1JCMzIocmJzcF9idWYgKyAyKTsKKyAgICAgICAgICAgICAg ICAvKiByZXZpc2UgdGhlc2UgYml0cyB0byBnZXQgdGhlIHByb2ZpbGUgY29tcGF0aWJpbGl0eSB2 YWx1ZSAqLworICAgICAgICAgICAgICAgIHByb2ZpbGVfY29tcGF0aWJpbGl0eV9mbGFncyA9ICgo cHJvZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzICYgMHg1NTU1NTU1NVUpIDw8IDEpIHwgKChwcm9m aWxlX2NvbXBhdGliaWxpdHlfZmxhZ3MgPj4gMSkgJiAweDU1NTU1NTU1VSk7CisgICAgICAgICAg ICAgICAgcHJvZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzID0gKChwcm9maWxlX2NvbXBhdGliaWxp dHlfZmxhZ3MgJiAweDMzMzMzMzMzVSkgPDwgMikgfCAoKHByb2ZpbGVfY29tcGF0aWJpbGl0eV9m bGFncyA+PiAyKSAmIDB4MzMzMzMzMzNVKTsKKyAgICAgICAgICAgICAgICBwcm9maWxlX2NvbXBh dGliaWxpdHlfZmxhZ3MgPSAoKHByb2ZpbGVfY29tcGF0aWJpbGl0eV9mbGFncyAmIDB4MEYwRjBG MEZVKSA8PCA0KSB8ICgocHJvZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzID4+IDQpICYgMHgwRjBG MEYwRlUpOworICAgICAgICAgICAgICAgIHByb2ZpbGVfY29tcGF0aWJpbGl0eV9mbGFncyA9ICgo cHJvZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzICYgMHgwMEZGMDBGRlUpIDw8IDgpIHwgKChwcm9m aWxlX2NvbXBhdGliaWxpdHlfZmxhZ3MgPj4gOCkgJiAweDAwRkYwMEZGVSk7CisgICAgICAgICAg ICAgICAgcHJvZmlsZV9jb21wYXRpYmlsaXR5ID0gKHByb2ZpbGVfY29tcGF0aWJpbGl0eV9mbGFn cyA8PCAxNikgfCAocHJvZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzID4+IDE2KTsKKyAgICAgICAg ICAgICAgICAvKiBza2lwIDggKyA4ICsgMzIKKyAgICAgICAgICAgICAgICAgKiBDT05TVFJBSU5U UyBpcyBhIGhleGFkZWNpbWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnZW5lcmFsX2NvbnN0cmFp bnRfaW5kaWNhdG9yX2ZsYWdzLgorICAgICAgICAgICAgICAgICAqIGVhY2ggYnl0ZSBpcyBzZXBh cmF0ZWQgYnkgYSAnLicsIGFuZCB0cmFpbGluZyB6ZXJvIGJ5dGVzIG1heSBiZSBvbWl0dGVkLgor ICAgICAgICAgICAgICAgICAqIGRyb3AgdGhlIHRyYWlsaW5nIHplcm8gYnl0ZXMgcmVmZXIgdG8g SVNPL0lFQzE0NDk2LTE1LgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGhp Z2hfbmliYmxlID0gcmJzcF9idWZbN10gPj4gNDsKKyAgICAgICAgICAgICAgICBzbnByaW50Zihj b25zdHJhaW50cywgc2l6ZW9mKGNvbnN0cmFpbnRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICBoaWdoX25pYmJsZSA/ICIlMDJ4LiV4IiA6ICIlMDJ4IiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICByYnNwX2J1Zls2XSwgaGlnaF9uaWJibGUpOworICAgICAgICAgICAgICAgIC8qIHNraXAg OCArIDggKyAzMiArIDQgKyA0MyArIDEgYml0ICovCisgICAgICAgICAgICAgICAgbGV2ZWwgPSBy YnNwX2J1ZlsxMl07CisgICAgICAgICAgICAgICAgYXZfZnJlZXAoJnJic3BfYnVmKTsKKyAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRhdGErKzsKKyAg ICAgICAgfQorICAgICAgICBpZiAocGFyLT5jb2RlY190YWcgPT0gTUtUQUcoJ2gnLCd2JywnYycs JzEnKSAmJgorICAgICAgICAgICAgcHJvZmlsZSAhPSBBVl9QUk9GSUxFX1VOS05PV04gJiYKKyAg ICAgICAgICAgIHByb2ZpbGVfY29tcGF0aWJpbGl0eSAhPSBBVl9QUk9GSUxFX1VOS05PV04gJiYK KyAgICAgICAgICAgIHRpZXIgIT0gMCAmJgorICAgICAgICAgICAgbGV2ZWwgIT0gQVZfTEVWRUxf VU5LTk9XTiAmJgorICAgICAgICAgICAgY29uc3RyYWludHNbMF0gIT0gJ1wwJykgeworICAgICAg ICAgICAgc25wcmludGYoc3RyLCBzaXplLCAiJXMuJWQuJXguJWMlZC4lcyIsIGF2X2ZvdXJjYzJz dHIocGFyLT5jb2RlY190YWcpLCBwcm9maWxlLCBwcm9maWxlX2NvbXBhdGliaWxpdHksIHRpZXIs IGxldmVsLCBjb25zdHJhaW50cyk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcmV0dXJu IEFWRVJST1IoRUlOVkFMKTsKKyAgICB9IGVsc2UgaWYgKHBhci0+Y29kZWNfaWQgPT0gQVZfQ09E RUNfSURfQVYxKSB7CisgICAgICAgIC8vIGh0dHBzOi8vYW9tZWRpYWNvZGVjLmdpdGh1Yi5pby9h djEtaXNvYm1mZi8jY29kZWNzcGFyYW0KKyAgICAgICAgQVYxU2VxdWVuY2VQYXJhbWV0ZXJzIHNl cTsKKyAgICAgICAgaW50IGVycjsKKyAgICAgICAgaWYgKCFwYXItPmV4dHJhZGF0YV9zaXplKQor ICAgICAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKKyAgICAgICAgaWYgKChlcnIgPSBm Zl9hdjFfcGFyc2Vfc2VxX2hlYWRlcigmc2VxLCBwYXItPmV4dHJhZGF0YSwgcGFyLT5leHRyYWRh dGFfc2l6ZSkpIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBlcnI7CisKKyAgICAgICAgc25wcmlu dGYoc3RyLCBzaXplLCAiYXYwMS4lMDF1LiUwMnUlcy4lMDJ1IiwKKyAgICAgICAgICAgICAgICAg ICAgc2VxLnByb2ZpbGUsIHNlcS5sZXZlbCwgc2VxLnRpZXIgPyAiSCIgOiAiTSIsIHNlcS5iaXRk ZXB0aCk7CisgICAgICAgIGlmIChzZXEuY29sb3JfZGVzY3JpcHRpb25fcHJlc2VudF9mbGFnKQor ICAgICAgICAgICAgYXZfc3RybGNhdGYoc3RyLCBzaXplLCAiLiUwMXUuJTAxdSUwMXUlMDF1LiUw MnUuJTAydS4lMDJ1LiUwMXUiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2VxLm1vbm9jaHJv bWUsCisgICAgICAgICAgICAgICAgICAgICAgICBzZXEuY2hyb21hX3N1YnNhbXBsaW5nX3gsIHNl cS5jaHJvbWFfc3Vic2FtcGxpbmdfeSwgc2VxLmNocm9tYV9zYW1wbGVfcG9zaXRpb24sCisgICAg ICAgICAgICAgICAgICAgICAgICBzZXEuY29sb3JfcHJpbWFyaWVzLCBzZXEudHJhbnNmZXJfY2hh cmFjdGVyaXN0aWNzLCBzZXEubWF0cml4X2NvZWZmaWNpZW50cywKKyAgICAgICAgICAgICAgICAg ICAgICAgIHNlcS5jb2xvcl9yYW5nZSk7CisgICAgfSBlbHNlIGlmIChwYXItPmNvZGVjX2lkID09 IEFWX0NPREVDX0lEX01QRUc0KSB7CisgICAgICAgIC8vIFJGQyA2MzgxCisgICAgICAgIHNucHJp bnRmKHN0ciwgc2l6ZSwgIm1wNHYuMjAiKTsKKyAgICAgICAgLy8gVW5pbXBsZW1lbnRlZCwgc2hv dWxkIG91dHB1dCBQcm9maWxlTGV2ZWxJbmRpY2F0aW9uIGFzIGEgZGVjaW1hbCBudW1iZXIKKyAg ICAgICAgYXZfbG9nKGxvZ2N0eCwgQVZfTE9HX1dBUk5JTkcsICJJbmNvbXBsZXRlIFJGQyA2Mzgx IGNvZGVjIHN0cmluZyBmb3IgbXA0dlxuIik7CisgICAgfSBlbHNlIGlmIChwYXItPmNvZGVjX2lk ID09IEFWX0NPREVDX0lEX01QMikgeworICAgICAgICBzbnByaW50ZihzdHIsIHNpemUsICJtcDRh LjQwLjMzIik7CisgICAgfSBlbHNlIGlmIChwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX01Q MykgeworICAgICAgICBzbnByaW50ZihzdHIsIHNpemUsICJtcDRhLjQwLjM0Iik7CisgICAgfSBl bHNlIGlmIChwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0FBQykgeworICAgICAgICAvLyBS RkMgNjM4MQorICAgICAgICBpbnQgYW90ID0gMjsKKyAgICAgICAgaWYgKHBhci0+ZXh0cmFkYXRh X3NpemUgPj0gMikgeworICAgICAgICAgICAgYW90ID0gcGFyLT5leHRyYWRhdGFbMF0gPj4gMzsK KyAgICAgICAgICAgIGlmIChhb3QgPT0gMzEpCisgICAgICAgICAgICAgICAgYW90ID0gKChBVl9S QjE2KHBhci0+ZXh0cmFkYXRhKSA+PiA1KSAmIDB4M2YpICsgMzI7CisgICAgICAgIH0gZWxzZSBp ZiAocGFyLT5wcm9maWxlICE9IEFWX1BST0ZJTEVfVU5LTk9XTikKKyAgICAgICAgICAgIGFvdCA9 IHBhci0+cHJvZmlsZSArIDE7CisgICAgICAgIHNucHJpbnRmKHN0ciwgc2l6ZSwgIm1wNGEuNDAu JWQiLCBhb3QpOworICAgIH0gZWxzZSBpZiAocGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9B QzMpIHsKKyAgICAgICAgc25wcmludGYoc3RyLCBzaXplLCAiYWMtMyIpOworICAgIH0gZWxzZSBp ZiAocGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9FQUMzKSB7CisgICAgICAgIHNucHJpbnRm KHN0ciwgc2l6ZSwgImVjLTMiKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gQVZFUlJP UihFSU5WQUwpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2xpYmF2Zm9y bWF0L2Rhc2hlbmMuYyBiL2xpYmF2Zm9ybWF0L2Rhc2hlbmMuYwppbmRleCBhZjkyZTM4YmJkLi42 MzZlNzcwNDUwIDEwMDY0NAotLS0gYS9saWJhdmZvcm1hdC9kYXNoZW5jLmMKKysrIGIvbGliYXZm b3JtYXQvZGFzaGVuYy5jCkBAIC00Miw4ICs0Miw2IEBACiAKICNpbmNsdWRlICJsaWJhdmNvZGVj L2F2Y29kZWMuaCIKIAotI2luY2x1ZGUgImF2MS5oIgotI2luY2x1ZGUgImF2Yy5oIgogI2luY2x1 ZGUgImF2Zm9ybWF0LmgiCiAjaW5jbHVkZSAiYXZpb19pbnRlcm5hbC5oIgogI2luY2x1ZGUgImhs c3BsYXlsaXN0LmgiCkBAIC01MSwxMSArNDksOSBAQAogI2luY2x1ZGUgImh0dHAuaCIKICNlbmRp ZgogI2luY2x1ZGUgImludGVybmFsLmgiCi0jaW5jbHVkZSAiaXNvbS5oIgogI2luY2x1ZGUgIm11 eC5oIgogI2luY2x1ZGUgIm9zX3N1cHBvcnQuaCIKICNpbmNsdWRlICJ1cmwuaCIKLSNpbmNsdWRl ICJ2cGNjLmgiCiAjaW5jbHVkZSAiZGFzaC5oIgogCiB0eXBlZGVmIGVudW0gewpAQCAtMjA2LDE4 ICsyMDIsNiBAQCB0eXBlZGVmIHN0cnVjdCBEQVNIQ29udGV4dCB7CiAgICAgaW50NjRfdCB1cGRh dGVfcGVyaW9kOwogfSBEQVNIQ29udGV4dDsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBjb2RlY19z dHJpbmcgewotICAgIGVudW0gQVZDb2RlY0lEIGlkOwotICAgIGNvbnN0IGNoYXIgc3RyWzhdOwot fSBjb2RlY3NbXSA9IHsKLSAgICB7IEFWX0NPREVDX0lEX1ZQOCwgInZwOCIgfSwKLSAgICB7IEFW X0NPREVDX0lEX1ZQOSwgInZwOSIgfSwKLSAgICB7IEFWX0NPREVDX0lEX1ZPUkJJUywgInZvcmJp cyIgfSwKLSAgICB7IEFWX0NPREVDX0lEX09QVVMsICJvcHVzIiB9LAotICAgIHsgQVZfQ09ERUNf SURfRkxBQywgImZsYWMiIH0sCi0gICAgeyBBVl9DT0RFQ19JRF9OT05FIH0KLX07Ci0KIHN0YXRp YyBpbnQgZGFzaGVuY19pb19vcGVuKEFWRm9ybWF0Q29udGV4dCAqcywgQVZJT0NvbnRleHQgKipw YiwgY2hhciAqZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVkRpY3Rpb25h cnkgKipvcHRpb25zKSB7CiAgICAgREFTSENvbnRleHQgKmMgPSBzLT5wcml2X2RhdGE7CkBAIC0z MjcsMTE3ICszMTEsNiBAQCBzdGF0aWMgaW50IGluaXRfc2VnbWVudF90eXBlcyhBVkZvcm1hdENv bnRleHQgKnMpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIHNldF92cDlfY29kZWNf c3RyKEFWRm9ybWF0Q29udGV4dCAqcywgQVZDb2RlY1BhcmFtZXRlcnMgKnBhciwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEFWUmF0aW9uYWwgKmZyYW1lX3JhdGUsIGNoYXIgKnN0ciwg aW50IHNpemUpIHsKLSAgICBWUENDIHZwY2M7Ci0gICAgaW50IHJldCA9IGZmX2lzb21fZ2V0X3Zw Y2NfZmVhdHVyZXMocywgcGFyLCBOVUxMLCAwLCBmcmFtZV9yYXRlLCAmdnBjYyk7Ci0gICAgaWYg KHJldCA9PSAwKSB7Ci0gICAgICAgIGF2X3N0cmxjYXRmKHN0ciwgc2l6ZSwgInZwMDkuJTAyZC4l MDJkLiUwMmQiLAotICAgICAgICAgICAgICAgICAgICB2cGNjLnByb2ZpbGUsIHZwY2MubGV2ZWws IHZwY2MuYml0ZGVwdGgpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIERlZmF1bHQgdG8ganVz dCB2cDkgaW4gY2FzZSBvZiBlcnJvciB3aGlsZSBmaW5kaW5nIG91dCBwcm9maWxlIG9yIGxldmVs Ci0gICAgICAgIGF2X2xvZyhzLCBBVl9MT0dfV0FSTklORywgIkNvdWxkIG5vdCBmaW5kIFZQOSBw cm9maWxlIGFuZC9vciBsZXZlbFxuIik7Ci0gICAgICAgIGF2X3N0cmxjcHkoc3RyLCAidnA5Iiwg c2l6ZSk7Ci0gICAgfQotICAgIHJldHVybjsKLX0KLQotc3RhdGljIHZvaWQgc2V0X2NvZGVjX3N0 cihBVkZvcm1hdENvbnRleHQgKnMsIEFWQ29kZWNQYXJhbWV0ZXJzICpwYXIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgIEFWUmF0aW9uYWwgKmZyYW1lX3JhdGUsIGNoYXIgKnN0ciwgaW50IHNp emUpCi17Ci0gICAgY29uc3QgQVZDb2RlY1RhZyAqdGFnc1syXSA9IHsgTlVMTCwgTlVMTCB9Owot ICAgIHVpbnQzMl90IHRhZzsKLSAgICBpbnQgaTsKLQotICAgIC8vIGNvbW1vbiBXZWJtIGNvZGVj cyBhcmUgbm90IHBhcnQgb2YgUkZDIDYzODEKLSAgICBmb3IgKGkgPSAwOyBjb2RlY3NbaV0uaWQg IT0gQVZfQ09ERUNfSURfTk9ORTsgaSsrKQotICAgICAgICBpZiAoY29kZWNzW2ldLmlkID09IHBh ci0+Y29kZWNfaWQpIHsKLSAgICAgICAgICAgIGlmIChjb2RlY3NbaV0uaWQgPT0gQVZfQ09ERUNf SURfVlA5KSB7Ci0gICAgICAgICAgICAgICAgc2V0X3ZwOV9jb2RlY19zdHIocywgcGFyLCBmcmFt ZV9yYXRlLCBzdHIsIHNpemUpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg ICBhdl9zdHJsY3B5KHN0ciwgY29kZWNzW2ldLnN0ciwgc2l6ZSk7Ci0gICAgICAgICAgICB9Ci0g ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgIC8vIGZvciBjb2RlY3MgcGFydCBv ZiBSRkMgNjM4MQotICAgIGlmIChwYXItPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX1ZJREVP KQotICAgICAgICB0YWdzWzBdID0gZmZfY29kZWNfbW92dmlkZW9fdGFnczsKLSAgICBlbHNlIGlm IChwYXItPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX0FVRElPKQotICAgICAgICB0YWdzWzBd ID0gZmZfY29kZWNfbW92YXVkaW9fdGFnczsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybjsKLQot ICAgIHRhZyA9IHBhci0+Y29kZWNfdGFnOwotICAgIGlmICghdGFnKQotICAgICAgICB0YWcgPSBh dl9jb2RlY19nZXRfdGFnKHRhZ3MsIHBhci0+Y29kZWNfaWQpOwotICAgIGlmICghdGFnKQotICAg ICAgICByZXR1cm47Ci0gICAgaWYgKHNpemUgPCA1KQotICAgICAgICByZXR1cm47Ci0KLSAgICBB Vl9XTDMyKHN0ciwgdGFnKTsKLSAgICBzdHJbNF0gPSAnXDAnOwotICAgIGlmICghc3RyY21wKHN0 ciwgIm1wNGEiKSB8fCAhc3RyY21wKHN0ciwgIm1wNHYiKSkgewotICAgICAgICB1aW50MzJfdCBv dGk7Ci0gICAgICAgIHRhZ3NbMF0gPSBmZl9tcDRfb2JqX3R5cGU7Ci0gICAgICAgIG90aSA9IGF2 X2NvZGVjX2dldF90YWcodGFncywgcGFyLT5jb2RlY19pZCk7Ci0gICAgICAgIGlmIChvdGkpCi0g ICAgICAgICAgICBhdl9zdHJsY2F0ZihzdHIsIHNpemUsICIuJTAyIlBSSXgzMiwgb3RpKTsKLSAg ICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICh0YWcgPT0gTUtU QUcoJ20nLCAncCcsICc0JywgJ2EnKSkgewotICAgICAgICAgICAgaWYgKHBhci0+ZXh0cmFkYXRh X3NpemUgPj0gMikgewotICAgICAgICAgICAgICAgIGludCBhb3QgPSBwYXItPmV4dHJhZGF0YVsw XSA+PiAzOwotICAgICAgICAgICAgICAgIGlmIChhb3QgPT0gMzEpCi0gICAgICAgICAgICAgICAg ICAgIGFvdCA9ICgoQVZfUkIxNihwYXItPmV4dHJhZGF0YSkgPj4gNSkgJiAweDNmKSArIDMyOwot ICAgICAgICAgICAgICAgIGF2X3N0cmxjYXRmKHN0ciwgc2l6ZSwgIi4lZCIsIGFvdCk7Ci0gICAg ICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAodGFnID09IE1LVEFHKCdtJywgJ3AnLCAnNCcs ICd2JykpIHsKLSAgICAgICAgICAgIC8vIFVuaW1wbGVtZW50ZWQsIHNob3VsZCBvdXRwdXQgUHJv ZmlsZUxldmVsSW5kaWNhdGlvbiBhcyBhIGRlY2ltYWwgbnVtYmVyCi0gICAgICAgICAgICBhdl9s b2cocywgQVZfTE9HX1dBUk5JTkcsICJJbmNvbXBsZXRlIFJGQyA2MzgxIGNvZGVjIHN0cmluZyBm b3IgbXA0dlxuIik7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKCFzdHJjbXAoc3RyLCAiYXZj MSIpKSB7Ci0gICAgICAgIHVpbnQ4X3QgKnRtcGJ1ZiA9IE5VTEw7Ci0gICAgICAgIHVpbnQ4X3Qg KmV4dHJhZGF0YSA9IHBhci0+ZXh0cmFkYXRhOwotICAgICAgICBpbnQgZXh0cmFkYXRhX3NpemUg PSBwYXItPmV4dHJhZGF0YV9zaXplOwotICAgICAgICBpZiAoIWV4dHJhZGF0YV9zaXplKQotICAg ICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoZXh0cmFkYXRhWzBdICE9IDEpIHsKLSAgICAg ICAgICAgIEFWSU9Db250ZXh0ICpwYjsKLSAgICAgICAgICAgIGlmIChhdmlvX29wZW5fZHluX2J1 ZigmcGIpIDwgMCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAoZmZf aXNvbV93cml0ZV9hdmNjKHBiLCBleHRyYWRhdGEsIGV4dHJhZGF0YV9zaXplKSA8IDApIHsKLSAg ICAgICAgICAgICAgICBmZmlvX2ZyZWVfZHluX2J1ZigmcGIpOwotICAgICAgICAgICAgICAgIHJl dHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGV4dHJhZGF0YV9zaXplID0gYXZpb19j bG9zZV9keW5fYnVmKHBiLCAmZXh0cmFkYXRhKTsKLSAgICAgICAgICAgIHRtcGJ1ZiA9IGV4dHJh ZGF0YTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChleHRyYWRhdGFfc2l6ZSA+PSA0KQotICAg ICAgICAgICAgYXZfc3RybGNhdGYoc3RyLCBzaXplLCAiLiUwMnglMDJ4JTAyeCIsCi0gICAgICAg ICAgICAgICAgICAgICAgICBleHRyYWRhdGFbMV0sIGV4dHJhZGF0YVsyXSwgZXh0cmFkYXRhWzNd KTsKLSAgICAgICAgYXZfZnJlZSh0bXBidWYpOwotICAgIH0gZWxzZSBpZiAoIXN0cmNtcChzdHIs ICJhdjAxIikpIHsKLSAgICAgICAgQVYxU2VxdWVuY2VQYXJhbWV0ZXJzIHNlcTsKLSAgICAgICAg aWYgKCFwYXItPmV4dHJhZGF0YV9zaXplKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBp ZiAoZmZfYXYxX3BhcnNlX3NlcV9oZWFkZXIoJnNlcSwgcGFyLT5leHRyYWRhdGEsIHBhci0+ZXh0 cmFkYXRhX3NpemUpIDwgMCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBhdl9zdHJs Y2F0ZihzdHIsIHNpemUsICIuJTAxdS4lMDJ1JXMuJTAydSIsCi0gICAgICAgICAgICAgICAgICAg IHNlcS5wcm9maWxlLCBzZXEubGV2ZWwsIHNlcS50aWVyID8gIkgiIDogIk0iLCBzZXEuYml0ZGVw dGgpOwotICAgICAgICBpZiAoc2VxLmNvbG9yX2Rlc2NyaXB0aW9uX3ByZXNlbnRfZmxhZykKLSAg ICAgICAgICAgIGF2X3N0cmxjYXRmKHN0ciwgc2l6ZSwgIi4lMDF1LiUwMXUlMDF1JTAxdS4lMDJ1 LiUwMnUuJTAydS4lMDF1IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlcS5tb25vY2hyb21l LAotICAgICAgICAgICAgICAgICAgICAgICAgc2VxLmNocm9tYV9zdWJzYW1wbGluZ194LCBzZXEu Y2hyb21hX3N1YnNhbXBsaW5nX3ksIHNlcS5jaHJvbWFfc2FtcGxlX3Bvc2l0aW9uLAotICAgICAg ICAgICAgICAgICAgICAgICAgc2VxLmNvbG9yX3ByaW1hcmllcywgc2VxLnRyYW5zZmVyX2NoYXJh Y3RlcmlzdGljcywgc2VxLm1hdHJpeF9jb2VmZmljaWVudHMsCi0gICAgICAgICAgICAgICAgICAg ICAgICBzZXEuY29sb3JfcmFuZ2UpOwotICAgIH0KLX0KLQogc3RhdGljIGludCBmbHVzaF9keW5i dWYoREFTSENvbnRleHQgKmMsIE91dHB1dFN0cmVhbSAqb3MsIGludCAqcmFuZ2VfbGVuZ3RoKQog ewogICAgIHVpbnQ4X3QgKmJ1ZmZlcjsKQEAgLTE3MDEsOCArMTU3NCw4IEBAIHN0YXRpYyBpbnQg ZGFzaF9pbml0KEFWRm9ybWF0Q29udGV4dCAqcykKICAgICAgICAgICAgIGMtPmhhc192aWRlbyA9 IDE7CiAgICAgICAgIH0KIAotICAgICAgICBzZXRfY29kZWNfc3RyKHMsIHN0LT5jb2RlY3Bhciwg JnN0LT5hdmdfZnJhbWVfcmF0ZSwgb3MtPmNvZGVjX3N0ciwKLSAgICAgICAgICAgICAgICAgICAg ICBzaXplb2Yob3MtPmNvZGVjX3N0cikpOworICAgICAgICBmZl9tYWtlX2NvZGVjX3N0cihzLCBz dC0+Y29kZWNwYXIsICZzdC0+YXZnX2ZyYW1lX3JhdGUsIG9zLT5jb2RlY19zdHIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVvZihvcy0+Y29kZWNfc3RyKSk7CiAgICAgICAgIG9zLT5m aXJzdF9wdHMgPSBBVl9OT1BUU19WQUxVRTsKICAgICAgICAgb3MtPm1heF9wdHMgPSBBVl9OT1BU U19WQUxVRTsKICAgICAgICAgb3MtPmxhc3RfZHRzID0gQVZfTk9QVFNfVkFMVUU7CkBAIC0xODM4 LDcgKzE3MTEsNyBAQCBzdGF0aWMgaW50IHVwZGF0ZV9zdHJlYW1fZXh0cmFkYXRhKEFWRm9ybWF0 Q29udGV4dCAqcywgT3V0cHV0U3RyZWFtICpvcywKIAogICAgIG1lbWNweShwYXItPmV4dHJhZGF0 YSwgZXh0cmFkYXRhLCBleHRyYWRhdGFfc2l6ZSk7CiAKLSAgICBzZXRfY29kZWNfc3RyKHMsIHBh ciwgZnJhbWVfcmF0ZSwgb3MtPmNvZGVjX3N0ciwgc2l6ZW9mKG9zLT5jb2RlY19zdHIpKTsKKyAg ICBmZl9tYWtlX2NvZGVjX3N0cihzLCBwYXIsIGZyYW1lX3JhdGUsIG9zLT5jb2RlY19zdHIsIHNp emVvZihvcy0+Y29kZWNfc3RyKSk7CiAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2xp YmF2Zm9ybWF0L2hsc2VuYy5jIGIvbGliYXZmb3JtYXQvaGxzZW5jLmMKaW5kZXggZDNkYjgzMDkz Yy4uOGUzNjg4N2UwNiAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvaGxzZW5jLmMKKysrIGIvbGli YXZmb3JtYXQvaGxzZW5jLmMKQEAgLTQ0LDEzICs0NCwxMSBAQAogCiAjaW5jbHVkZSAiYXZmb3Jt YXQuaCIKICNpbmNsdWRlICJhdmlvX2ludGVybmFsLmgiCi0jaW5jbHVkZSAiYXZjLmgiCiAjaWYg Q09ORklHX0hUVFBfUFJPVE9DT0wKICNpbmNsdWRlICJodHRwLmgiCiAjZW5kaWYKICNpbmNsdWRl ICJobHNwbGF5bGlzdC5oIgogI2luY2x1ZGUgImludGVybmFsLmgiCi0jaW5jbHVkZSAibmFsLmgi CiAjaW5jbHVkZSAibXV4LmgiCiAjaW5jbHVkZSAib3Nfc3VwcG9ydC5oIgogI2luY2x1ZGUgInVy bC5oIgpAQCAtMzU4LDExOCArMzU2LDEwIEBAIHN0YXRpYyB2b2lkIHdyaXRlX2NvZGVjX2F0dHIo QVZTdHJlYW0gKnN0LCBWYXJpYW50U3RyZWFtICp2cykKICAgICBpZiAodnMtPmF0dHJfc3RhdHVz ID09IENPREVDX0FUVFJJQlVURV9XSUxMX05PVF9CRV9XUklUVEVOKQogICAgICAgICByZXR1cm47 CiAKLSAgICBpZiAoc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IMjY0KSB7 Ci0gICAgICAgIHVpbnQ4X3QgKmRhdGEgPSBzdC0+Y29kZWNwYXItPmV4dHJhZGF0YTsKLSAgICAg ICAgaWYgKGRhdGEpIHsKLSAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnA7Ci0KLSAgICAgICAg ICAgIGlmIChBVl9SQjMyKGRhdGEpID09IDB4MDEgJiYgKGRhdGFbNF0gJiAweDFGKSA9PSA3KQot ICAgICAgICAgICAgICAgIHAgPSAmZGF0YVs1XTsKLSAgICAgICAgICAgIGVsc2UgaWYgKEFWX1JC MjQoZGF0YSkgPT0gMHgwMSAmJiAoZGF0YVszXSAmIDB4MUYpID09IDcpCi0gICAgICAgICAgICAg ICAgcCA9ICZkYXRhWzRdOwotICAgICAgICAgICAgZWxzZSBpZiAoZGF0YVswXSA9PSAweDAxKSAg LyogYXZjQyAqLwotICAgICAgICAgICAgICAgIHAgPSAmZGF0YVsxXTsKLSAgICAgICAgICAgIGVs c2UKLSAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgICAgICBzbnByaW50ZihhdHRy LCBzaXplb2YoYXR0ciksCi0gICAgICAgICAgICAgICAgICAgICAiYXZjMS4lMDJ4JTAyeCUwMngi LCBwWzBdLCBwWzFdLCBwWzJdKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGdvdG8g ZmFpbDsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9 PSBBVl9DT0RFQ19JRF9IRVZDKSB7Ci0gICAgICAgIHVpbnQ4X3QgKmRhdGEgPSBzdC0+Y29kZWNw YXItPmV4dHJhZGF0YTsKLSAgICAgICAgaW50IHByb2ZpbGUgPSBBVl9QUk9GSUxFX1VOS05PV047 Ci0gICAgICAgIHVpbnQzMl90IHByb2ZpbGVfY29tcGF0aWJpbGl0eSA9IEFWX1BST0ZJTEVfVU5L Tk9XTjsKLSAgICAgICAgY2hhciB0aWVyID0gMDsKLSAgICAgICAgaW50IGxldmVsID0gQVZfTEVW RUxfVU5LTk9XTjsKLSAgICAgICAgY2hhciBjb25zdHJhaW50c1s4XSA9ICIiOwotCi0gICAgICAg IGlmIChzdC0+Y29kZWNwYXItPnByb2ZpbGUgIT0gQVZfUFJPRklMRV9VTktOT1dOKQotICAgICAg ICAgICAgcHJvZmlsZSA9IHN0LT5jb2RlY3Bhci0+cHJvZmlsZTsKLSAgICAgICAgaWYgKHN0LT5j b2RlY3Bhci0+bGV2ZWwgIT0gQVZfTEVWRUxfVU5LTk9XTikKLSAgICAgICAgICAgIGxldmVsID0g c3QtPmNvZGVjcGFyLT5sZXZlbDsKLQotICAgICAgICAvKiBjaGVjayB0aGUgYm91bmRhcnkgb2Yg ZGF0YSB3aGljaCBmcm9tIGN1cnJlbnQgcG9zaXRpb24gaXMgc21hbGwgdGhhbiBleHRyYWRhdGFf c2l6ZSAqLwotICAgICAgICB3aGlsZSAoZGF0YSAmJiAoZGF0YSAtIHN0LT5jb2RlY3Bhci0+ZXh0 cmFkYXRhICsgMTkpIDwgc3QtPmNvZGVjcGFyLT5leHRyYWRhdGFfc2l6ZSkgewotICAgICAgICAg ICAgLyogZ2V0IEhFVkMgU1BTIE5BTCBhbmQgc2VlayB0byBwcm9maWxlX3RpZXJfbGV2ZWwgKi8K LSAgICAgICAgICAgIGlmICghKGRhdGFbMF0gfCBkYXRhWzFdIHwgZGF0YVsyXSkgJiYgZGF0YVsz XSA9PSAxICYmICgoZGF0YVs0XSAmIDB4N0UpID09IDB4NDIpKSB7Ci0gICAgICAgICAgICAgICAg dWludDhfdCAqcmJzcF9idWY7Ci0gICAgICAgICAgICAgICAgaW50IHJlbWFpbl9zaXplID0gMDsK LSAgICAgICAgICAgICAgICBpbnQgcmJzcF9zaXplID0gMDsKLSAgICAgICAgICAgICAgICB1aW50 MzJfdCBwcm9maWxlX2NvbXBhdGliaWxpdHlfZmxhZ3MgPSAwOwotICAgICAgICAgICAgICAgIHVp bnQ4X3QgaGlnaF9uaWJibGUgPSAwOwotICAgICAgICAgICAgICAgIC8qIHNraXAgc3RhcnQgY29k ZSArIG5hbHUgaGVhZGVyICovCi0gICAgICAgICAgICAgICAgZGF0YSArPSA2OwotICAgICAgICAg ICAgICAgIC8qIHByb2Nlc3MgYnkgcmVmZXJlbmNlIEdlbmVyYWwgTkFMIHVuaXQgc3ludGF4ICov Ci0gICAgICAgICAgICAgICAgcmVtYWluX3NpemUgPSBzdC0+Y29kZWNwYXItPmV4dHJhZGF0YV9z aXplIC0gKGRhdGEgLSBzdC0+Y29kZWNwYXItPmV4dHJhZGF0YSk7Ci0gICAgICAgICAgICAgICAg cmJzcF9idWYgPSBmZl9uYWxfdW5pdF9leHRyYWN0X3Jic3AoZGF0YSwgcmVtYWluX3NpemUsICZy YnNwX3NpemUsIDApOwotICAgICAgICAgICAgICAgIGlmICghcmJzcF9idWYpCi0gICAgICAgICAg ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBpZiAocmJzcF9zaXplIDwgMTMpIHsK LSAgICAgICAgICAgICAgICAgICAgYXZfZnJlZXAoJnJic3BfYnVmKTsKLSAgICAgICAgICAgICAg ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIC8qIHNraXAg c3BzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQgICB1KDQpLAotICAgICAgICAgICAgICAgICAqICAg ICAgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSAgICB1KDMpLAotICAgICAgICAgICAgICAgICAq ICBhbmQgc3BzX3RlbXBvcmFsX2lkX25lc3RpbmdfZmxhZyB1KDEpCi0gICAgICAgICAgICAgICAg ICoKLSAgICAgICAgICAgICAgICAgKiBUSUVSIHJlcHJlc2VudHMgdGhlIGdlbmVyYWxfdGllcl9m bGFnLCB3aXRoICdMJyBpbmRpY2F0aW5nIHRoZSBmbGFnIGlzIDAsCi0gICAgICAgICAgICAgICAg ICogYW5kICdIJyBpbmRpY2F0aW5nIHRoZSBmbGFnIGlzIDEKLSAgICAgICAgICAgICAgICAgKi8K LSAgICAgICAgICAgICAgICB0aWVyID0gKHJic3BfYnVmWzFdICYgMHgyMCkgPT0gMCA/ICdMJyA6 ICdIJzsKLSAgICAgICAgICAgICAgICBwcm9maWxlID0gcmJzcF9idWZbMV0gJiAweDFmOwotICAg ICAgICAgICAgICAgIC8qIFBST0ZJTEVfQ09NUEFUSUJJTElUWSBpcyBnZW5lcmFsX3Byb2ZpbGVf Y29tcGF0aWJpbGl0eV9mbGFncywgYnV0IGluIHJldmVyc2UgYml0IG9yZGVyLAotICAgICAgICAg ICAgICAgICAqIGluIGEgaGV4YWRlY2ltYWwgcmVwcmVzZW50YXRpb24gKGxlYWRpbmcgemVyb2Vz IG1heSBiZSBvbWl0dGVkKS4KLSAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICBw cm9maWxlX2NvbXBhdGliaWxpdHlfZmxhZ3MgPSBBVl9SQjMyKHJic3BfYnVmICsgMik7Ci0gICAg ICAgICAgICAgICAgLyogcmV2aXNlIHRoZXNlIGJpdHMgdG8gZ2V0IHRoZSBwcm9maWxlIGNvbXBh dGliaWxpdHkgdmFsdWUgKi8KLSAgICAgICAgICAgICAgICBwcm9maWxlX2NvbXBhdGliaWxpdHlf ZmxhZ3MgPSAoKHByb2ZpbGVfY29tcGF0aWJpbGl0eV9mbGFncyAmIDB4NTU1NTU1NTVVKSA8PCAx KSB8ICgocHJvZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzID4+IDEpICYgMHg1NTU1NTU1NVUpOwot ICAgICAgICAgICAgICAgIHByb2ZpbGVfY29tcGF0aWJpbGl0eV9mbGFncyA9ICgocHJvZmlsZV9j b21wYXRpYmlsaXR5X2ZsYWdzICYgMHgzMzMzMzMzM1UpIDw8IDIpIHwgKChwcm9maWxlX2NvbXBh dGliaWxpdHlfZmxhZ3MgPj4gMikgJiAweDMzMzMzMzMzVSk7Ci0gICAgICAgICAgICAgICAgcHJv ZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzID0gKChwcm9maWxlX2NvbXBhdGliaWxpdHlfZmxhZ3Mg JiAweDBGMEYwRjBGVSkgPDwgNCkgfCAoKHByb2ZpbGVfY29tcGF0aWJpbGl0eV9mbGFncyA+PiA0 KSAmIDB4MEYwRjBGMEZVKTsKLSAgICAgICAgICAgICAgICBwcm9maWxlX2NvbXBhdGliaWxpdHlf ZmxhZ3MgPSAoKHByb2ZpbGVfY29tcGF0aWJpbGl0eV9mbGFncyAmIDB4MDBGRjAwRkZVKSA8PCA4 KSB8ICgocHJvZmlsZV9jb21wYXRpYmlsaXR5X2ZsYWdzID4+IDgpICYgMHgwMEZGMDBGRlUpOwot ICAgICAgICAgICAgICAgIHByb2ZpbGVfY29tcGF0aWJpbGl0eSA9IChwcm9maWxlX2NvbXBhdGli aWxpdHlfZmxhZ3MgPDwgMTYpIHwgKHByb2ZpbGVfY29tcGF0aWJpbGl0eV9mbGFncyA+PiAxNik7 Ci0gICAgICAgICAgICAgICAgLyogc2tpcCA4ICsgOCArIDMyCi0gICAgICAgICAgICAgICAgICog Q09OU1RSQUlOVFMgaXMgYSBoZXhhZGVjaW1hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2VuZXJh bF9jb25zdHJhaW50X2luZGljYXRvcl9mbGFncy4KLSAgICAgICAgICAgICAgICAgKiBlYWNoIGJ5 dGUgaXMgc2VwYXJhdGVkIGJ5IGEgJy4nLCBhbmQgdHJhaWxpbmcgemVybyBieXRlcyBtYXkgYmUg b21pdHRlZC4KLSAgICAgICAgICAgICAgICAgKiBkcm9wIHRoZSB0cmFpbGluZyB6ZXJvIGJ5dGVz IHJlZmVyIHRvIElTTy9JRUMxNDQ5Ni0xNS4KLSAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAg ICAgICAgICBoaWdoX25pYmJsZSA9IHJic3BfYnVmWzddID4+IDQ7Ci0gICAgICAgICAgICAgICAg c25wcmludGYoY29uc3RyYWludHMsIHNpemVvZihjb25zdHJhaW50cyksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgaGlnaF9uaWJibGUgPyAiJTAyeC4leCIgOiAiJTAyeCIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgcmJzcF9idWZbNl0sIGhpZ2hfbmliYmxlKTsKLSAgICAgICAgICAgICAg ICAvKiBza2lwIDggKyA4ICsgMzIgKyA0ICsgNDMgKyAxIGJpdCAqLwotICAgICAgICAgICAgICAg IGxldmVsID0gcmJzcF9idWZbMTJdOwotICAgICAgICAgICAgICAgIGF2X2ZyZWVwKCZyYnNwX2J1 Zik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBk YXRhKys7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0LT5jb2RlY3Bhci0+Y29kZWNfdGFnID09 IE1LVEFHKCdoJywndicsJ2MnLCcxJykgJiYKLSAgICAgICAgICAgIHByb2ZpbGUgIT0gQVZfUFJP RklMRV9VTktOT1dOICYmCi0gICAgICAgICAgICBwcm9maWxlX2NvbXBhdGliaWxpdHkgIT0gQVZf UFJPRklMRV9VTktOT1dOICYmCi0gICAgICAgICAgICB0aWVyICE9IDAgJiYKLSAgICAgICAgICAg IGxldmVsICE9IEFWX0xFVkVMX1VOS05PV04gJiYKLSAgICAgICAgICAgIGNvbnN0cmFpbnRzWzBd ICE9ICdcMCcpIHsKLSAgICAgICAgICAgIHNucHJpbnRmKGF0dHIsIHNpemVvZihhdHRyKSwgIiVz LiVkLiV4LiVjJWQuJXMiLCBhdl9mb3VyY2Myc3RyKHN0LT5jb2RlY3Bhci0+Y29kZWNfdGFnKSwg cHJvZmlsZSwgcHJvZmlsZV9jb21wYXRpYmlsaXR5LCB0aWVyLCBsZXZlbCwgY29uc3RyYWludHMp OwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICB9IGVsc2UgaWYg KHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfTVAyKSB7Ci0gICAgICAgIHNu cHJpbnRmKGF0dHIsIHNpemVvZihhdHRyKSwgIm1wNGEuNDAuMzMiKTsKLSAgICB9IGVsc2UgaWYg KHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfTVAzKSB7Ci0gICAgICAgIHNu cHJpbnRmKGF0dHIsIHNpemVvZihhdHRyKSwgIm1wNGEuNDAuMzQiKTsKLSAgICB9IGVsc2UgaWYg KHN0LT5jb2RlY3Bhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfQUFDKSB7Ci0gICAgICAgIGlm IChzdC0+Y29kZWNwYXItPnByb2ZpbGUgIT0gQVZfUFJPRklMRV9VTktOT1dOKQotICAgICAgICAg ICAgc25wcmludGYoYXR0ciwgc2l6ZW9mKGF0dHIpLCAibXA0YS40MC4lZCIsIHN0LT5jb2RlY3Bh ci0+cHJvZmlsZSsxKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgLy8gVGhpcyBpcyBmb3Ig YmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbi4K LSAgICAgICAgICAgIHNucHJpbnRmKGF0dHIsIHNpemVvZihhdHRyKSwgIm1wNGEuNDAuMiIpOwot ICAgIH0gZWxzZSBpZiAoc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9BQzMp IHsKLSAgICAgICAgc25wcmludGYoYXR0ciwgc2l6ZW9mKGF0dHIpLCAiYWMtMyIpOwotICAgIH0g ZWxzZSBpZiAoc3QtPmNvZGVjcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9FQUMzKSB7Ci0g ICAgICAgIHNucHJpbnRmKGF0dHIsIHNpemVvZihhdHRyKSwgImVjLTMiKTsKLSAgICB9IGVsc2Ug eworICAgIGlmIChmZl9tYWtlX2NvZGVjX3N0cih2cy0+YXZmLCBzdC0+Y29kZWNwYXIsICZzdC0+ YXZnX2ZyYW1lX3JhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIsIHNpemVvZihh dHRyKSkgPCAwKQogICAgICAgICBnb3RvIGZhaWw7Ci0gICAgfQorCiAgICAgLy8gRG9uJ3Qgd3Jp dGUgdGhlIHNhbWUgYXR0cmlidXRlIG11bHRpcGxlIHRpbWVzCiAgICAgaWYgKCFhdl9zdHJpc3Ry KHZzLT5jb2RlY19hdHRyLCBhdHRyKSkgewogICAgICAgICBzbnByaW50Zih2cy0+Y29kZWNfYXR0 ciArIGNvZGVjX3N0cmxlbiwKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2ludGVybmFsLmggYi9s aWJhdmZvcm1hdC9pbnRlcm5hbC5oCmluZGV4IDFhNTBiYTA3ZDMuLjRjZDU1YTA0MjYgMTAwNjQ0 Ci0tLSBhL2xpYmF2Zm9ybWF0L2ludGVybmFsLmgKKysrIGIvbGliYXZmb3JtYXQvaW50ZXJuYWwu aApAQCAtNjYxLDQgKzY2MSwxOCBAQCBpbnQgZmZfZGljdF9zZXRfdGltZXN0YW1wKEFWRGljdGlv bmFyeSAqKmRpY3QsIGNvbnN0IGNoYXIgKmtleSwgaW50NjRfdCB0aW1lc3RhbQogICovCiBpbnQg ZmZfcGFyc2Vfb3B0c19mcm9tX3F1ZXJ5X3N0cmluZyh2b2lkICpvYmosIGNvbnN0IGNoYXIgKnN0 ciwgaW50IGFsbG93X3Vua293bik7CiAKKy8qKgorICogTWFrZSBhIFJGQyA2MzgxIGxpa2Ugc3Ry aW5nIGRlc2NyaWJpbmcgYSBjb2RlYy4KKyAqCisgKiBAcGFyYW0gbG9nY3R4IGEgY29udGV4dCBm b3IgcG90ZW50aWFsIGxvZyBtZXNzYWdlcworICogQHBhcmFtIHBhciBwb2ludGVyIHRvIGFuIEFW Q29kZWNQYXJhbWV0ZXJzIHN0cnVjdCBkZXNjcmliaW5nIHRoZSBjb2RlYworICogQHBhcmFtIGZy YW1lX3JhdGUgYW4gb3B0aW9uYWwgcG9pbnRlciB0byBBVlJhdGlvbmFsIGZvciB0aGUgZnJhbWUg cmF0ZSwKKyAqICAgICAgICAgICAgICAgICAgIGZvciBkZWNpZGluZyB0aGUgcmlnaHQgcHJvZmls ZSBmb3IgdmlkZW8gY29kZWNzCisgKiBAcGFyYW0gc3RyIHRoZSBvdXRwdXQgc3RyaW5nIGJ1ZmZl cgorICogQHBhcmFtIHNpemUgdGhlIHNpemUgb2YgdGhlIHN0cmluZyBwb2ludGVkIHRvIGJ5IHN0 cgorICogQHJldHVybiA8MCBvbiBlcnJvcgorICovCitpbnQgZmZfbWFrZV9jb2RlY19zdHIodm9p ZCAqbG9nY3R4LCBBVkNvZGVjUGFyYW1ldGVycyAqcGFyLAorICAgICAgICAgICAgICAgICAgICAg IEFWUmF0aW9uYWwgKmZyYW1lX3JhdGUsIGNoYXIgKnN0ciwgaW50IHNpemUpOworCiAjZW5kaWYg LyogQVZGT1JNQVRfSU5URVJOQUxfSCAqLwotLSAKMi40OS4xCgoKRnJvbSBiODc0OGY3NjY0Y2Jl MDcwZTYyMGIwNWNlZDkxOGMxZDY4MGNkMmEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiA9P1VURi04P3E/TWFydGluPTIwU3RvcnNqPUMzPUI2Pz0gPG1hcnRpbkBtYXJ0aW4uc3Q+CkRh dGU6IFRodSwgMjMgT2N0IDIwMjUgMTM6NDk6MTUgKzAzMDAKU3ViamVjdDogW1BBVENIIDMvM10g YXZmb3JtYXQ6IE1ha2UgYXZfbWFrZV9jb2RlY19zdHIgYSBwdWJsaWMgQVBJCgpJbXBsZW1lbnRp bmcgdGhpcyByZXF1aXJlcyBhIGJ1bmNoIG9mIG5vbnRyaXZpYWwgY29kZWMgc3BlY2lmaWMKcGFy c2luZy4gQXMgbGliYXZmb3JtYXQgYWxyZWFkeSBpbXBsZW1lbnRzIHRoaXMsIGV4cG9zZSBpdApm b3IgdXNlcnMgYXMgd2VsbC4KLS0tCiBkb2MvQVBJY2hhbmdlcyAgICAgICAgICAgIHwgIDMgKysr CiBsaWJhdmZvcm1hdC9NYWtlZmlsZSAgICAgIHwgMTIgKysrKysrKystLS0tCiBsaWJhdmZvcm1h dC9hdmZvcm1hdC5oICAgIHwgMTQgKysrKysrKysrKysrKysKIGxpYmF2Zm9ybWF0L2NvZGVjc3Ry aW5nLmMgfCAgMiArLQogbGliYXZmb3JtYXQvZGFzaGVuYy5jICAgICB8ICA0ICsrLS0KIGxpYmF2 Zm9ybWF0L2hsc2VuYy5jICAgICAgfCAgMiArLQogbGliYXZmb3JtYXQvaW50ZXJuYWwuaCAgICB8 IDE0IC0tLS0tLS0tLS0tLS0tCiBsaWJhdmZvcm1hdC92ZXJzaW9uLmggICAgIHwgIDQgKystLQog OCBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kb2MvQVBJY2hhbmdlcyBiL2RvYy9BUEljaGFuZ2VzCmluZGV4IDZlN2Y1ZDIwMzcu LjA2YWNjY2I2MDUgMTAwNjQ0Ci0tLSBhL2RvYy9BUEljaGFuZ2VzCisrKyBiL2RvYy9BUEljaGFu Z2VzCkBAIC0yLDYgKzIsOSBAQCBUaGUgbGFzdCB2ZXJzaW9uIGluY3JlYXNlcyBvZiBhbGwgbGli cmFyaWVzIHdlcmUgb24gMjAyNS0wMy0yOAogCiBBUEkgY2hhbmdlcywgbW9zdCByZWNlbnQgZmly c3Q6CiAKKzIwMjUtMTAteHggLSB4eHh4eHh4eHh4IC0gbGF2ZiA2Mi54Lnh4eCAtIGF2Zm9ybWF0 LmgKKyAgQWRkIGF2X21ha2VfY29kZWNfc3RyCisKIDIwMjUtMDgteHggLSB4eHh4eHh4eHh4IC0g bGF2ZiA2Mi42LjEwMCAtIG9nZ3BhcnNldm9yYmlzLmggb2dncGFyc2VvcHVzLmggb2dncGFyc2Vm bGFjLmgKICAgRHJvcCBoZWFkZXIgcGFja2V0cyBmcm9tIHNlY29uZGFyeSBjaGFpbmVkIG9nZy97 ZmxhYywgb3B1cywgdm9yYmlzfSBzdHJlYW1zCiAgIGZyb20gZGVtdXhlciBvdXRwdXQuCmRpZmYg LS1naXQgYS9saWJhdmZvcm1hdC9NYWtlZmlsZSBiL2xpYmF2Zm9ybWF0L01ha2VmaWxlCmluZGV4 IDg2MTc3YWYyZjQuLmY3OGY2NzNlNTggMTAwNjQ0Ci0tLSBhL2xpYmF2Zm9ybWF0L01ha2VmaWxl CisrKyBiL2xpYmF2Zm9ybWF0L01ha2VmaWxlCkBAIC03LDkgKzcsMTEgQEAgSEVBREVSUyA9IGF2 Zm9ybWF0LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogICAgICAgICAgIHZlcnNpb25fbWFqb3IuaCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAogCiBPQkpTID0gYWxsZm9ybWF0cy5vICAgICAgICAgXAor ICAgICAgIGF2MS5vICAgICAgICAgICAgICAgIFwKICAgICAgICBhdmZvcm1hdC5vICAgICAgICAg ICBcCiAgICAgICAgYXZpby5vICAgICAgICAgICAgICAgXAogICAgICAgIGF2aW9idWYubyAgICAg ICAgICAgIFwKKyAgICAgICBjb2RlY3N0cmluZy5vICAgICAgICBcCiAgICAgICAgZGVtdXgubyAg ICAgICAgICAgICAgXAogICAgICAgIGRlbXV4X3V0aWxzLm8gICAgICAgIFwKICAgICAgICBkdW1w Lm8gICAgICAgICAgICAgICBcCkBAIC0yMSw2ICsyMyw3IEBAIE9CSlMgPSBhbGxmb3JtYXRzLm8g ICAgICAgICBcCiAgICAgICAgbWV0YWRhdGEubyAgICAgICAgICAgXAogICAgICAgIG11eC5vICAg ICAgICAgICAgICAgIFwKICAgICAgICBtdXhfdXRpbHMubyAgICAgICAgICBcCisgICAgICAgbmFs Lm8gICAgICAgICAgICAgICAgXAogICAgICAgIG9wdGlvbnMubyAgICAgICAgICAgIFwKICAgICAg ICBvc19zdXBwb3J0Lm8gICAgICAgICBcCiAgICAgICAgcHJvdG9jb2xzLm8gICAgICAgICAgXApA QCAtMzEsMTIgKzM0LDEzIEBAIE9CSlMgPSBhbGxmb3JtYXRzLm8gICAgICAgICBcCiAgICAgICAg dXJsZGVjb2RlLm8gICAgICAgICAgXAogICAgICAgIHV0aWxzLm8gICAgICAgICAgICAgIFwKICAg ICAgICB2ZXJzaW9uLm8gICAgICAgICAgICBcCisgICAgICAgdnBjYy5vICAgICAgICAgICAgICAg XAogCiBPQkpTLSQoSEFWRV9MSUJDX01TVkNSVCkgICAgICAgICAgICAgICAgICs9IGZpbGVfb3Bl bi5vCiAKICMgc3Vic3lzdGVtcwogT0JKUy0kKENPTkZJR19JU09fTUVESUEpICAgICAgICAgICAg ICAgICArPSBpc29tLm8KLU9CSlMtJChDT05GSUdfSVNPX1dSSVRFUikgICAgICAgICAgICAgICAg Kz0gYXYxLm8gYXZjLm8gaGV2Yy5vIG5hbC5vIHZ2Yy5vIHZwY2MubworT0JKUy0kKENPTkZJR19J U09fV1JJVEVSKSAgICAgICAgICAgICAgICArPSBhdmMubyBoZXZjLm8gdnZjLm8KIE9CSlMtJChD T05GSUdfSUFNRkRFQykgICAgICAgICAgICAgICAgICAgKz0gaWFtZl9yZWFkZXIubyBpYW1mX3Bh cnNlLm8gaWFtZi5vCiBPQkpTLSQoQ09ORklHX0lBTUZFTkMpICAgICAgICAgICAgICAgICAgICs9 IGlhbWZfd3JpdGVyLm8gaWFtZi5vCiBPQkpTLSQoQ09ORklHX05FVFdPUkspICAgICAgICAgICAg ICAgICAgICs9IG5ldHdvcmsubwpAQCAtMTc5LDcgKzE4Myw3IEBAIE9CSlMtJChDT05GSUdfQ09O Q0FUX0RFTVVYRVIpICAgICAgICAgICAgKz0gY29uY2F0ZGVjLm8KIE9CSlMtJChDT05GSUdfQ1JD X01VWEVSKSAgICAgICAgICAgICAgICAgKz0gY3JjZW5jLm8KIE9CSlMtJChDT05GSUdfREFUQV9E RU1VWEVSKSAgICAgICAgICAgICAgKz0gcmF3ZGVjLm8KIE9CSlMtJChDT05GSUdfREFUQV9NVVhF UikgICAgICAgICAgICAgICAgKz0gcmF3ZW5jLm8KLU9CSlMtJChDT05GSUdfREFTSF9NVVhFUikg ICAgICAgICAgICAgICAgKz0gZGFzaC5vIGRhc2hlbmMubyBobHNwbGF5bGlzdC5vIGNvZGVjc3Ry aW5nLm8KK09CSlMtJChDT05GSUdfREFTSF9NVVhFUikgICAgICAgICAgICAgICAgKz0gZGFzaC5v IGRhc2hlbmMubyBobHNwbGF5bGlzdC5vCiBPQkpTLSQoQ09ORklHX0RBU0hfREVNVVhFUikgICAg ICAgICAgICAgICs9IGRhc2gubyBkYXNoZGVjLm8KIE9CSlMtJChDT05GSUdfREFVRF9ERU1VWEVS KSAgICAgICAgICAgICAgKz0gZGF1ZGRlYy5vCiBPQkpTLSQoQ09ORklHX0RBVURfTVVYRVIpICAg ICAgICAgICAgICAgICs9IGRhdWRlbmMubwpAQCAtMjY3LDcgKzI3MSw3IEBAIE9CSlMtJChDT05G SUdfSEVWQ19NVVhFUikgICAgICAgICAgICAgICAgKz0gcmF3ZW5jLm8KIE9CSlMtJChDT05GSUdf RVZDX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gZXZjZGVjLm8gcmF3ZGVjLm8KIE9CSlMtJChD T05GSUdfRVZDX01VWEVSKSAgICAgICAgICAgICAgICAgKz0gcmF3ZW5jLm8KIE9CSlMtJChDT05G SUdfSExTX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gaGxzLm8gaGxzX3NhbXBsZV9lbmNyeXB0 aW9uLm8KLU9CSlMtJChDT05GSUdfSExTX01VWEVSKSAgICAgICAgICAgICAgICAgKz0gaGxzZW5j Lm8gaGxzcGxheWxpc3QubyBjb2RlY3N0cmluZy5vCitPQkpTLSQoQ09ORklHX0hMU19NVVhFUikg ICAgICAgICAgICAgICAgICs9IGhsc2VuYy5vIGhsc3BsYXlsaXN0Lm8KIE9CSlMtJChDT05GSUdf SE5NX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gaG5tLm8KIE9CSlMtJChDT05GSUdfSFhWU19E RU1VWEVSKSAgICAgICAgICAgICAgKz0gaHh2cy5vCiBPQkpTLSQoQ09ORklHX0lBTUZfREVNVVhF UikgICAgICAgICAgICAgICs9IGlhbWZkZWMubwpAQCAtNjM0LDcgKzYzOCw3IEBAIE9CSlMtJChD T05GSUdfV0FWX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gd2F2ZGVjLm8gcGNtLm8KIE9CSlMt JChDT05GSUdfV0FWX01VWEVSKSAgICAgICAgICAgICAgICAgKz0gd2F2ZW5jLm8KIE9CSlMtJChD T05GSUdfV0MzX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gd2MzbW92aWUubwogT0JKUy0kKENP TkZJR19XRUJNX01VWEVSKSAgICAgICAgICAgICAgICArPSBtYXRyb3NrYWVuYy5vIG1hdHJvc2th Lm8gXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdjEubyBh dmxhbmd1YWdlLm8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXZsYW5ndWFnZS5vCiBPQkpTLSQoQ09ORklHX1dFQk1fREFTSF9NQU5JRkVTVF9NVVhFUikgICs9 IHdlYm1kYXNoZW5jLm8KIE9CSlMtJChDT05GSUdfV0VCTV9DSFVOS19NVVhFUikgICAgICAgICAg Kz0gd2VibV9jaHVuay5vCiBPQkpTLSQoQ09ORklHX1dFQlBfTVVYRVIpICAgICAgICAgICAgICAg ICs9IHdlYnBlbmMubwpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvYXZmb3JtYXQuaCBiL2xpYmF2 Zm9ybWF0L2F2Zm9ybWF0LmgKaW5kZXggYTc0NDY1NDZlNS4uMjEzNTZiMmU4NCAxMDA2NDQKLS0t IGEvbGliYXZmb3JtYXQvYXZmb3JtYXQuaAorKysgYi9saWJhdmZvcm1hdC9hdmZvcm1hdC5oCkBA IC0yODkwLDYgKzI4OTAsMjAgQEAgaW50IGF2X21hdGNoX2V4dChjb25zdCBjaGFyICpmaWxlbmFt ZSwgY29uc3QgY2hhciAqZXh0ZW5zaW9ucyk7CiBpbnQgYXZmb3JtYXRfcXVlcnlfY29kZWMoY29u c3QgQVZPdXRwdXRGb3JtYXQgKm9mbXQsIGVudW0gQVZDb2RlY0lEIGNvZGVjX2lkLAogICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBzdGRfY29tcGxpYW5jZSk7CiAKKy8qKgorICogTWFrZSBh IFJGQyA2MzgxIGxpa2Ugc3RyaW5nIGRlc2NyaWJpbmcgYSBjb2RlYy4KKyAqCisgKiBAcGFyYW0g bG9nY3R4IGEgY29udGV4dCBmb3IgcG90ZW50aWFsIGxvZyBtZXNzYWdlcworICogQHBhcmFtIHBh ciBwb2ludGVyIHRvIGFuIEFWQ29kZWNQYXJhbWV0ZXJzIHN0cnVjdCBkZXNjcmliaW5nIHRoZSBj b2RlYworICogQHBhcmFtIGZyYW1lX3JhdGUgYW4gb3B0aW9uYWwgcG9pbnRlciB0byBBVlJhdGlv bmFsIGZvciB0aGUgZnJhbWUgcmF0ZSwKKyAqICAgICAgICAgICAgICAgICAgIGZvciBkZWNpZGlu ZyB0aGUgcmlnaHQgcHJvZmlsZSBmb3IgdmlkZW8gY29kZWNzCisgKiBAcGFyYW0gc3RyIHRoZSBv dXRwdXQgc3RyaW5nIGJ1ZmZlcgorICogQHBhcmFtIHNpemUgdGhlIHNpemUgb2YgdGhlIHN0cmlu ZyBwb2ludGVkIHRvIGJ5IHN0cgorICogQHJldHVybiA8MCBvbiBlcnJvcgorICovCitpbnQgYXZf bWFrZV9jb2RlY19zdHIodm9pZCAqbG9nY3R4LCBBVkNvZGVjUGFyYW1ldGVycyAqcGFyLAorICAg ICAgICAgICAgICAgICAgICAgIEFWUmF0aW9uYWwgKmZyYW1lX3JhdGUsIGNoYXIgKnN0ciwgaW50 IHNpemUpOworCiAvKioKICAqIEBkZWZncm91cCByaWZmX2ZvdXJjYyBSSUZGIEZvdXJDQ3MKICAq IEB7CmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9jb2RlY3N0cmluZy5jIGIvbGliYXZmb3JtYXQv Y29kZWNzdHJpbmcuYwppbmRleCA1ODkxMzFmYmVhLi43M2U2MGIxM2ExIDEwMDY0NAotLS0gYS9s aWJhdmZvcm1hdC9jb2RlY3N0cmluZy5jCisrKyBiL2xpYmF2Zm9ybWF0L2NvZGVjc3RyaW5nLmMK QEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIHZvaWQgc2V0X3ZwOV9jb2RlY19zdHIodm9pZCAqbG9n Y3R4LCBBVkNvZGVjUGFyYW1ldGVycyAqcGFyLAogICAgIH0KIH0KIAotaW50IGZmX21ha2VfY29k ZWNfc3RyKHZvaWQgKmxvZ2N0eCwgQVZDb2RlY1BhcmFtZXRlcnMgKnBhciwKK2ludCBhdl9tYWtl X2NvZGVjX3N0cih2b2lkICpsb2djdHgsIEFWQ29kZWNQYXJhbWV0ZXJzICpwYXIsCiAgICAgICAg ICAgICAgICAgICAgICAgQVZSYXRpb25hbCAqZnJhbWVfcmF0ZSwgY2hhciAqc3RyLCBpbnQgc2l6 ZSkKIHsKICAgICBpbnQgaTsKZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L2Rhc2hlbmMuYyBiL2xp YmF2Zm9ybWF0L2Rhc2hlbmMuYwppbmRleCA2MzZlNzcwNDUwLi44YTE5ZmNkNzY0IDEwMDY0NAot LS0gYS9saWJhdmZvcm1hdC9kYXNoZW5jLmMKKysrIGIvbGliYXZmb3JtYXQvZGFzaGVuYy5jCkBA IC0xNTc0LDcgKzE1NzQsNyBAQCBzdGF0aWMgaW50IGRhc2hfaW5pdChBVkZvcm1hdENvbnRleHQg KnMpCiAgICAgICAgICAgICBjLT5oYXNfdmlkZW8gPSAxOwogICAgICAgICB9CiAKLSAgICAgICAg ZmZfbWFrZV9jb2RlY19zdHIocywgc3QtPmNvZGVjcGFyLCAmc3QtPmF2Z19mcmFtZV9yYXRlLCBv cy0+Y29kZWNfc3RyLAorICAgICAgICBhdl9tYWtlX2NvZGVjX3N0cihzLCBzdC0+Y29kZWNwYXIs ICZzdC0+YXZnX2ZyYW1lX3JhdGUsIG9zLT5jb2RlY19zdHIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVvZihvcy0+Y29kZWNfc3RyKSk7CiAgICAgICAgIG9zLT5maXJzdF9wdHMgPSBB Vl9OT1BUU19WQUxVRTsKICAgICAgICAgb3MtPm1heF9wdHMgPSBBVl9OT1BUU19WQUxVRTsKQEAg LTE3MTEsNyArMTcxMSw3IEBAIHN0YXRpYyBpbnQgdXBkYXRlX3N0cmVhbV9leHRyYWRhdGEoQVZG b3JtYXRDb250ZXh0ICpzLCBPdXRwdXRTdHJlYW0gKm9zLAogCiAgICAgbWVtY3B5KHBhci0+ZXh0 cmFkYXRhLCBleHRyYWRhdGEsIGV4dHJhZGF0YV9zaXplKTsKIAotICAgIGZmX21ha2VfY29kZWNf c3RyKHMsIHBhciwgZnJhbWVfcmF0ZSwgb3MtPmNvZGVjX3N0ciwgc2l6ZW9mKG9zLT5jb2RlY19z dHIpKTsKKyAgICBhdl9tYWtlX2NvZGVjX3N0cihzLCBwYXIsIGZyYW1lX3JhdGUsIG9zLT5jb2Rl Y19zdHIsIHNpemVvZihvcy0+Y29kZWNfc3RyKSk7CiAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAt LWdpdCBhL2xpYmF2Zm9ybWF0L2hsc2VuYy5jIGIvbGliYXZmb3JtYXQvaGxzZW5jLmMKaW5kZXgg OGUzNjg4N2UwNi4uYTg5OGZmY2I5MyAxMDA2NDQKLS0tIGEvbGliYXZmb3JtYXQvaGxzZW5jLmMK KysrIGIvbGliYXZmb3JtYXQvaGxzZW5jLmMKQEAgLTM1Niw3ICszNTYsNyBAQCBzdGF0aWMgdm9p ZCB3cml0ZV9jb2RlY19hdHRyKEFWU3RyZWFtICpzdCwgVmFyaWFudFN0cmVhbSAqdnMpCiAgICAg aWYgKHZzLT5hdHRyX3N0YXR1cyA9PSBDT0RFQ19BVFRSSUJVVEVfV0lMTF9OT1RfQkVfV1JJVFRF TikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGZmX21ha2VfY29kZWNfc3RyKHZzLT5hdmYs IHN0LT5jb2RlY3BhciwgJnN0LT5hdmdfZnJhbWVfcmF0ZSwKKyAgICBpZiAoYXZfbWFrZV9jb2Rl Y19zdHIodnMtPmF2Ziwgc3QtPmNvZGVjcGFyLCAmc3QtPmF2Z19mcmFtZV9yYXRlLAogICAgICAg ICAgICAgICAgICAgICAgICAgICBhdHRyLCBzaXplb2YoYXR0cikpIDwgMCkKICAgICAgICAgZ290 byBmYWlsOwogCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9pbnRlcm5hbC5oIGIvbGliYXZmb3Jt YXQvaW50ZXJuYWwuaAppbmRleCA0Y2Q1NWEwNDI2Li4xYTUwYmEwN2QzIDEwMDY0NAotLS0gYS9s aWJhdmZvcm1hdC9pbnRlcm5hbC5oCisrKyBiL2xpYmF2Zm9ybWF0L2ludGVybmFsLmgKQEAgLTY2 MSwxOCArNjYxLDQgQEAgaW50IGZmX2RpY3Rfc2V0X3RpbWVzdGFtcChBVkRpY3Rpb25hcnkgKipk aWN0LCBjb25zdCBjaGFyICprZXksIGludDY0X3QgdGltZXN0YW0KICAqLwogaW50IGZmX3BhcnNl X29wdHNfZnJvbV9xdWVyeV9zdHJpbmcodm9pZCAqb2JqLCBjb25zdCBjaGFyICpzdHIsIGludCBh bGxvd191bmtvd24pOwogCi0vKioKLSAqIE1ha2UgYSBSRkMgNjM4MSBsaWtlIHN0cmluZyBkZXNj cmliaW5nIGEgY29kZWMuCi0gKgotICogQHBhcmFtIGxvZ2N0eCBhIGNvbnRleHQgZm9yIHBvdGVu dGlhbCBsb2cgbWVzc2FnZXMKLSAqIEBwYXJhbSBwYXIgcG9pbnRlciB0byBhbiBBVkNvZGVjUGFy YW1ldGVycyBzdHJ1Y3QgZGVzY3JpYmluZyB0aGUgY29kZWMKLSAqIEBwYXJhbSBmcmFtZV9yYXRl IGFuIG9wdGlvbmFsIHBvaW50ZXIgdG8gQVZSYXRpb25hbCBmb3IgdGhlIGZyYW1lIHJhdGUsCi0g KiAgICAgICAgICAgICAgICAgICBmb3IgZGVjaWRpbmcgdGhlIHJpZ2h0IHByb2ZpbGUgZm9yIHZp ZGVvIGNvZGVjcwotICogQHBhcmFtIHN0ciB0aGUgb3V0cHV0IHN0cmluZyBidWZmZXIKLSAqIEBw YXJhbSBzaXplIHRoZSBzaXplIG9mIHRoZSBzdHJpbmcgcG9pbnRlZCB0byBieSBzdHIKLSAqIEBy ZXR1cm4gPDAgb24gZXJyb3IKLSAqLwotaW50IGZmX21ha2VfY29kZWNfc3RyKHZvaWQgKmxvZ2N0 eCwgQVZDb2RlY1BhcmFtZXRlcnMgKnBhciwKLSAgICAgICAgICAgICAgICAgICAgICBBVlJhdGlv bmFsICpmcmFtZV9yYXRlLCBjaGFyICpzdHIsIGludCBzaXplKTsKLQogI2VuZGlmIC8qIEFWRk9S TUFUX0lOVEVSTkFMX0ggKi8KZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3ZlcnNpb24uaCBiL2xp YmF2Zm9ybWF0L3ZlcnNpb24uaAppbmRleCAzNTk5NmExNGJhLi43MGM1NTRjMTljIDEwMDY0NAot LS0gYS9saWJhdmZvcm1hdC92ZXJzaW9uLmgKKysrIGIvbGliYXZmb3JtYXQvdmVyc2lvbi5oCkBA IC0zMSw4ICszMSw4IEBACiAKICNpbmNsdWRlICJ2ZXJzaW9uX21ham9yLmgiCiAKLSNkZWZpbmUg TElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiAgIDYKLSNkZWZpbmUgTElCQVZGT1JNQVRfVkVSU0lP Tl9NSUNSTyAxMDEKKyNkZWZpbmUgTElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiAgIDcKKyNkZWZp bmUgTElCQVZGT1JNQVRfVkVSU0lPTl9NSUNSTyAxMDAKIAogI2RlZmluZSBMSUJBVkZPUk1BVF9W RVJTSU9OX0lOVCBBVl9WRVJTSU9OX0lOVChMSUJBVkZPUk1BVF9WRVJTSU9OX01BSk9SLCBcCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQkFWRk9STUFU X1ZFUlNJT05fTUlOT1IsIFwKLS0gCjIuNDkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdCAtLSBmZm1wZWct ZGV2ZWxAZmZtcGVnLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGZmbXBlZy1k ZXZlbC1sZWF2ZUBmZm1wZWcub3JnCg==