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 5284240FFB for ; Fri, 12 Aug 2022 10:19:14 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B679A68B964; Fri, 12 Aug 2022 13:19:01 +0300 (EEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 029BD68B915 for ; Fri, 12 Aug 2022 13:18:55 +0300 (EEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20220812101853euoutp01ac1e71b5e9c4f0b7d2f747b8b0c84717~KkaEZyx1s1614016140euoutp01c for ; Fri, 12 Aug 2022 10:18:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20220812101853euoutp01ac1e71b5e9c4f0b7d2f747b8b0c84717~KkaEZyx1s1614016140euoutp01c DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1660299533; bh=rvseKKo+cg6mjXvoCSyzJ6wHqDtG54rCRCTQ9xYCVv8=; h=From:To:Subject:Date:References:From; b=icEN39L7WefRk48VKNW5OhtXlramXGBgLTzPW1579JPP10+sF2ZoAl5j1vD8FCsGO e/XIn5jWkiIw3g+ODq4vOLrmLgkG3qZHbVXZveoLIyxcyFnN7sbClRDIozmzzefWxl oTUEVNeSK6stvx0DrfQKzOw0LnuNevvsR3BCu3WY= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20220812101853eucas1p252bc8cb3466fe8c166785ebfaf7d63cb~KkaEGQhLI1489014890eucas1p2w for ; Fri, 12 Aug 2022 10:18:53 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 1A.09.09580.D0926F26; Fri, 12 Aug 2022 11:18:53 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20220812101852eucas1p1b2e5b0614d34d75e7dd7d5c601d0a31c~KkaDl7Tus1340813408eucas1p1U for ; Fri, 12 Aug 2022 10:18:52 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20220812101852eusmtrp19a903c0b95ec3f62c42ece3a6e2dd2ae~KkaDlXPl_2022220222eusmtrp1R for ; Fri, 12 Aug 2022 10:18:52 +0000 (GMT) X-AuditID: cbfec7f5-9c3ff7000000256c-aa-62f6290d4692 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 63.6A.09095.C0926F26; Fri, 12 Aug 2022 11:18:52 +0100 (BST) Received: from AMDN3260 (unknown [106.210.132.171]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20220812101852eusmtip24773a558f31f23f39cf255df2216ac04~KkaDVA_Ir0390303903eusmtip2W for ; Fri, 12 Aug 2022 10:18:52 +0000 (GMT) From: "Dawid Kozinski" To: Date: Fri, 12 Aug 2022 12:18:52 +0200 Message-ID: <009c01d8ae34$ebe75b50$c3b611f0$@samsung.com> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AdiuNBMi13UfmF5iTKWtkxZSgz3Dow== Content-Language: pl X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFIsWRmVeSWpSXmKPExsWy7djP87q8mt+SDJpfilp8+3SG2YHR48+i zSwBjFFcNimpOZllqUX6dglcGcuaprIXtG5jrphxcRF7A+P0+cxdjJwcEgImEv1r/zN1MXJx CAmsYJQ4cGgiC4QziUliy/QuKGcik8S6KfeBWjjAWt6v1IaIL2eU2DNzPTOE08Yk8bD1NyPI XDYBfYmZiz6xgdgiArISq/9NAbOFBUIlJj/+CWazCKhKHJhzkwXE5hWwlHj66jwjhC0ocXLm E7A4s4C2xLKFr6FuVZD4+XQZK8RMPYlnv/qgakQkbjxqYQQ5QkLgI7vE2s1zWSEaXCSaHuyH ahaWeHV8CzuELSNxenIPC8Q3xRKH+h0gzBqJQz/SISqsJd42HmcECTMLaEqs36UPEXaUuHd9 DVQjn8SNt4IQB/BJTNo2HRo6vBIdbUIQpopEX6cYRKOUxNNlc6Au8ZCY/fQ30wRGxVlIvp2F 5NtZSL6ahXDCAkaWVYziqaXFuempxcZ5qeV6xYm5xaV56XrJ+bmbGIHJ4fS/4193MK549VHv ECMTB+MhRgkOZiUR3rJFn5OEeFMSK6tSi/Lji0pzUosPMUpzsCiJ8yZnbkgUEkhPLEnNTk0t SC2CyTJxcEo1MElVX8iU7Yw+NWPHnj+zQ9if9S8qnprn8vv9A4Gvkq6sarEnFysKaX+V3OTO ayzTH2Ni6aod63r7peHE11ZLL5cn+vuKXEoRr49werUwaNIsxVNz+GZOLXsrtPYow86nstxi 9n4es7futvPmObHoiJA8P8da3oD5En9UVl06z3E6oUFo7c5bQX3GR7jm/Nk/ZWmmzI2JgpP+ lH5xq/h7efmlXco6vlcY/Zf2HWXmfLXl6gT+/0tTeu5JdvU/3CSxuS1yaqKA+TQLlqqgduvv od1/JSQm3VjFuySORTloo943DneZgCKD51b2IWkz+PcK9X/rfTahdZW63QGLnxzOF45qujGX H7z/zmaR65oHxUosxRmJhlrMRcWJAM+jeTx9AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrOLMWRmVeSWpSXmKPExsVy+t/xe7o8mt+SDGYvNLL49ukMswOjx59F m1kCGKP0bIryS0tSFTLyi0tslaINLYz0DC0t9IxMLPUMjc1jrYxMlfTtbFJSczLLUov07RL0 MiZ+5CxYM5ep4sCsiUwNjL3nGLsYOTgkBEwk3q/U7mLk4hASWMoo0TD7GlsXIydQXEpi6dJF jBC2sMSfa11sEEUtTBIftrazgyTYBPQlZi76BNYgIiArsfrfFDBbWCBY4vGZL2DNLAKqEgfm 3GQBsXkFLCWevjrPCGELSpyc+QQsziygLfH05lM4e9nC18wQixUkfj5dxgoxX0/i2a8+qBoR iRuPWhgnMArMQjJqFpJRs5CMmoWkZQEjyypGkdTS4tz03GJDveLE3OLSvHS95PzcTYzAEN92 7OfmHYzzXn3UO8TIxMF4iFGCg1lJhLds0eckId6UxMqq1KL8+KLSnNTiQ4ymQL9NZJYSTc4H RlleSbyhmYGpoYmZpYGppZmxkjivZ0FHopBAemJJanZqakFqEUwfEwenVAPTtFvBXn8zS0+l zTB9KR73b0vafbH0J53P9nmkvWBY51vloVH3Lq+tLie5a1XcVfVkU5Z7qxav1/lg9f6ORmQ8 41OLm+lTpX3iXZdsyv2SUHi3pVeyrL9N9qc/p/nbpobblysUmCJOhmRvmNwgZrDzXXDDzScn N9T4FblET+3g+druuMfivzD7MTOZ2OyTbZYvA7MORMV/krd9pla/RMxyaunVWisx1RkOllEc 2zm3dTXO+2JRtPKehk7ADd0aR1u3FL7bd/IU7CwiHcP4L/Uz6ycmManpcjy+/JBp87uED8c8 ep5u7z4uxiduJyIc2aOyTziQ/dvrYJWDG+1U/q5MTvrwwOGplLjS2lNCSizFGYmGWsxFxYkA Lw5/O/oCAAA= X-CMS-MailID: 20220812101852eucas1p1b2e5b0614d34d75e7dd7d5c601d0a31c X-Msg-Generator: CA X-RootMTR: 20220812101852eucas1p1b2e5b0614d34d75e7dd7d5c601d0a31c X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20220812101852eucas1p1b2e5b0614d34d75e7dd7d5c601d0a31c References: Subject: [FFmpeg-devel] [PATCH 2/2] Provided support for MPEG-5 EVC (Essential Video Coding) codec 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: LSBBZGRlZCBtdXhlciBmb3IgRVZDIGZvcm1hdCAoTVA0LCByYXcpCi0gQWRkZWQgZGVtdXhlciBm b3IgRVZDIGZvcm1hdCAoTVA0KQotIEFkZGVkIGV2YyBleHRlbnNpb24gdG8gdGhlIGxpc3Qgb2Yg ZXh0ZW5zaW9ucyBmb3IgZmZfbW92X2RlbXV4ZXIKLSBBZGRlZCBpbmZvcm1hdGlvbiB0byBtb292 IGF0b21pCgpTaWduZWQtb2ZmLWJ5OiBEYXdpZCBLb3ppbnNraSA8ZC5rb3ppbnNraUBzYW1zdW5n LmNvbT4KLS0tCiBkb2MvbXV4ZXJzLnRleGkgICAgICAgICAgfCAgIDYgKwogbGliYXZmb3JtYXQv TWFrZWZpbGUgICAgIHwgICA0ICstCiBsaWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgfCAgIDIgKwog bGliYXZmb3JtYXQvZXZjLmMgICAgICAgIHwgNDYxICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogbGliYXZmb3JtYXQvZXZjLmggICAgICAgIHwgMTQ4ICsrKysrKysrKysr KysKIGxpYmF2Zm9ybWF0L2V2Y2RlYy5jICAgICB8IDE0MiArKysrKysrKysrKysKIGxpYmF2Zm9y bWF0L2lzb21fdGFncy5jICB8ICAgMiArCiBsaWJhdmZvcm1hdC9tb3YuYyAgICAgICAgfCAgIDIg Ky0KIGxpYmF2Zm9ybWF0L21vdmVuYy5jICAgICB8ICAzNSArKy0KIGxpYmF2Zm9ybWF0L3Jhd2Vu Yy5jICAgICB8ICAxMyArKwogMTAgZmlsZXMgY2hhbmdlZCwgODEyIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmb3JtYXQvZXZjLmMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBsaWJhdmZvcm1hdC9ldmMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2 Zm9ybWF0L2V2Y2RlYy5jCgpkaWZmIC0tZ2l0IGEvZG9jL211eGVycy50ZXhpIGIvZG9jL211eGVy cy50ZXhpCmluZGV4IGIyZjQzMjZhYWUuLjA4YWIyMGMwOWUgMTAwNjQ0Ci0tLSBhL2RvYy9tdXhl cnMudGV4aQorKysgYi9kb2MvbXV4ZXJzLnRleGkKQEAgLTIxMjQsNiArMjEyNCwxMiBAQCBEVFMg Q29oZXJlbnQgQWNvdXN0aWNzIChEQ0EpIGF1ZGlvLgogCiBEb2xieSBEaWdpdGFsIFBsdXMsIGFs c28ga25vd24gYXMgRW5oYW5jZWQgQUMtMywgYXVkaW8uCiAKK0BzdWJzZWN0aW9uIGV2YworCitN UEVHLTUgRXNzZW50aWFsIFZpZGVvIENvZGluZyAoRVZDKSAvIEVWQyAvIE1QRUctNSBQYXJ0IDEg RVZDIHZpZGVvLgorCitFeHRlbnNpb25zOiBldmMKKwogQHN1YnNlY3Rpb24gZzcyMgogCiBJVFUt VCBHLjcyMiBhdWRpby4KZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L01ha2VmaWxlIGIvbGliYXZm b3JtYXQvTWFrZWZpbGUKaW5kZXggZTQyMDM4NDM1NS4uZjUzMjZhZWE3OSAxMDA2NDQKLS0tIGEv bGliYXZmb3JtYXQvTWFrZWZpbGUKKysrIGIvbGliYXZmb3JtYXQvTWFrZWZpbGUKQEAgLTI0OSw2 ICsyNDksOCBAQCBPQkpTLSQoQ09ORklHX0hDT01fREVNVVhFUikgICAgICAgICAgICAgICs9IGhj b20ubyBwY20ubwogT0JKUy0kKENPTkZJR19IRFNfTVVYRVIpICAgICAgICAgICAgICAgICArPSBo ZHNlbmMubwogT0JKUy0kKENPTkZJR19IRVZDX0RFTVVYRVIpICAgICAgICAgICAgICArPSBoZXZj ZGVjLm8gcmF3ZGVjLm8KIE9CSlMtJChDT05GSUdfSEVWQ19NVVhFUikgICAgICAgICAgICAgICAg Kz0gcmF3ZW5jLm8KK09CSlMtJChDT05GSUdfRVZDX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0g ZXZjZGVjLm8gcmF3ZGVjLm8KK09CSlMtJChDT05GSUdfRVZDX01VWEVSKSAgICAgICAgICAgICAg ICAgKz0gcmF3ZW5jLm8KIE9CSlMtJChDT05GSUdfSExTX0RFTVVYRVIpICAgICAgICAgICAgICAg Kz0gaGxzLm8gaGxzX3NhbXBsZV9lbmNyeXB0aW9uLm8KIE9CSlMtJChDT05GSUdfSExTX01VWEVS KSAgICAgICAgICAgICAgICAgKz0gaGxzZW5jLm8gaGxzcGxheWxpc3QubyBhdmMubwogT0JKUy0k KENPTkZJR19ITk1fREVNVVhFUikgICAgICAgICAgICAgICArPSBobm0ubwpAQCAtMzU4LDcgKzM2 MCw3IEBAIE9CSlMtJChDT05GSUdfTU9WX0RFTVVYRVIpICAgICAgICAgICAgICAgKz0gbW92Lm8g bW92X2NoYW4ubyBtb3ZfZXNkcy5vIFwKIE9CSlMtJChDT05GSUdfTU9WX01VWEVSKSAgICAgICAg ICAgICAgICAgKz0gbW92ZW5jLm8gYXYxLm8gYXZjLm8gaGV2Yy5vIHZwY2MubyBcCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVuY2hpbnQubyBtb3ZfY2hh bi5vIHJ0cC5vIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bW92ZW5jY2VuYy5vIG1vdmVuY190dG1sLm8gcmF3dXRpbHMubyBcCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdmlfaXNvbS5vCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdmlfaXNvbS5vIGV2Yy5vCiBPQkpTLSQoQ09O RklHX01QMl9NVVhFUikgICAgICAgICAgICAgICAgICs9IHJhd2VuYy5vCiBPQkpTLSQoQ09ORklH X01QM19ERU1VWEVSKSAgICAgICAgICAgICAgICs9IG1wM2RlYy5vIHJlcGxheWdhaW4ubwogT0JK Uy0kKENPTkZJR19NUDNfTVVYRVIpICAgICAgICAgICAgICAgICArPSBtcDNlbmMubyByYXdlbmMu byBpZDN2MmVuYy5vCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9hbGxmb3JtYXRzLmMgYi9saWJh dmZvcm1hdC9hbGxmb3JtYXRzLmMKaW5kZXggYWU0NDc5ZmI3YS4uZGZjZTQ5ZDE0OSAxMDA2NDQK LS0tIGEvbGliYXZmb3JtYXQvYWxsZm9ybWF0cy5jCisrKyBiL2xpYmF2Zm9ybWF0L2FsbGZvcm1h dHMuYwpAQCAtMTQ4LDYgKzE0OCw4IEBAIGV4dGVybiBjb25zdCBBVklucHV0Rm9ybWF0ICBmZl9l YV9jZGF0YV9kZW11eGVyOwogZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2VhYzNfZGVt dXhlcjsKIGV4dGVybiBjb25zdCBBVk91dHB1dEZvcm1hdCBmZl9lYWMzX211eGVyOwogZXh0ZXJu IGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2VwYWZfZGVtdXhlcjsKK2V4dGVybiBjb25zdCBBVklu cHV0Rm9ybWF0ICBmZl9ldmNfZGVtdXhlcjsKK2V4dGVybiBjb25zdCBBVk91dHB1dEZvcm1hdCBm Zl9ldmNfbXV4ZXI7CiBleHRlcm4gY29uc3QgQVZPdXRwdXRGb3JtYXQgZmZfZjR2X211eGVyOwog ZXh0ZXJuIGNvbnN0IEFWSW5wdXRGb3JtYXQgIGZmX2ZmbWV0YWRhdGFfZGVtdXhlcjsKIGV4dGVy biBjb25zdCBBVk91dHB1dEZvcm1hdCBmZl9mZm1ldGFkYXRhX211eGVyOwpkaWZmIC0tZ2l0IGEv bGliYXZmb3JtYXQvZXZjLmMgYi9saWJhdmZvcm1hdC9ldmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi40MmQwOWJjZTAxCi0tLSAvZGV2L251bGwKKysrIGIvbGliYXZm b3JtYXQvZXZjLmMKQEAgLTAsMCArMSw0NjEgQEAKKy8qCisgKiBFVkMgaGVscGVyIGZ1bmN0aW9u cyBmb3IgbXV4ZXJzCisgKiBDb3B5cmlnaHQgKGMpIDIwMjIgRGF3aWQgS296aW5za2kgPGQua296 aW5za2lAc2Ftc3VuZy5jb20+CisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgRkZtcGVnLgor ICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZtcGVnIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBlZzsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICov CisKKyNpbmNsdWRlICJsaWJhdnV0aWwvaW50cmVhZHdyaXRlLmgiCisjaW5jbHVkZSAibGliYXZj b2RlYy9nZXRfYml0cy5oIgorI2luY2x1ZGUgImxpYmF2Y29kZWMvZ29sb21iLmgiCisjaW5jbHVk ZSAiYXZmb3JtYXQuaCIKKyNpbmNsdWRlICJhdmlvLmgiCisjaW5jbHVkZSAiZXZjLmgiCisjaW5j bHVkZSAiYXZpb19pbnRlcm5hbC5oIgorCisvLyBUaGUgbGVuZ3RoIGZpZWxkIHRoYXQgaW5kaWNh dGVzIHRoZSBsZW5ndGggaW4gYnl0ZXMgb2YgdGhlIGZvbGxvd2luZyBOQUwgdW5pdCBpcyBjb25m aWd1cmVkIHRvIGJlIG9mIDQgYnl0ZXMKKyNkZWZpbmUgRVZDX05BTF9VTklUX0xFTkdUSF9CWVRF ICAgICAgICAoNCkgIC8qIGJ5dGUgKi8KKyNkZWZpbmUgRVZDX05BTF9IRUFERVJfU0laRSAgICAg ICAgICAgICAoMikgIC8qIGJ5dGUgKi8KKworLy8gcnBsIHN0cnVjdHVyZQordHlwZWRlZiBzdHJ1 Y3QgUmVmUGljTGlzdFN0cnVjdCB7CisgICAgaW50IHBvYzsKKyAgICBpbnQgdGlkOworICAgIGlu dCByZWZfcGljX251bTsKKyAgICBpbnQgcmVmX3BpY19hY3RpdmVfbnVtOworICAgIGludCByZWZf cGljc1tFVkNfTUFYX05VTV9SRUZfUElDU107CisgICAgY2hhciBwaWNfdHlwZTsKKworfSBSZWZQ aWNMaXN0U3RydWN0OworCisvLyBUaGUgc3R1cmN0dXJlIHJlZmxlY3RzIFNQUyBSQlNQKHJhdyBi eXRlIHNlcXVlbmNlIHBheWxvYWQpIGxheW91dAorLy8gQHNlZSBJU09fSUVDXzIzMDk0LTEgc2Vj dGlvbiA3LjMuMi4xCisvLworLy8gVGhlIGZvbGxvd2luZyBkZXNjcmlwdG9ycyBzcGVjaWZ5IHRo ZSBwYXJzaW5nIHByb2Nlc3Mgb2YgZWFjaCBlbGVtZW50CisvLyB1KG4pIC0gdW5zaWduZWQgaW50 ZWdlciB1c2luZyBuIGJpdHMKKy8vIHVlKHYpIC0gdW5zaWduZWQgaW50ZWdlciAwLXRoIG9yZGVy IEV4cF9Hb2xvbWItY29kZWQgc3ludGF4IGVsZW1lbnQgd2l0aCB0aGUgbGVmdCBiaXQgZmlyc3QK K3R5cGVkZWYgc3RydWN0IEVWQ1NQUyB7CisgICAgaW50IHNwc19zZXFfcGFyYW1ldGVyX3NldF9p ZDsgICAvLyB1ZSh2KQorICAgIGludCBwcm9maWxlX2lkYzsgICAgICAgICAgICAgICAgLy8gdSg4 KQorICAgIGludCBsZXZlbF9pZGM7ICAgICAgICAgICAgICAgICAgLy8gdSg4KQorICAgIGludCB0 b29sc2V0X2lkY19oOyAgICAgICAgICAgICAgLy8gdSgzMikKKyAgICBpbnQgdG9vbHNldF9pZGNf bDsgICAgICAgICAgICAgIC8vIHUoMzIpCisgICAgaW50IGNocm9tYV9mb3JtYXRfaWRjOyAgICAg ICAgICAvLyB1ZSh2KQorICAgIGludCBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOyAgLy8gdWUo dikKKyAgICBpbnQgcGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXM7IC8vIHVlKHYpCisgICAgaW50 IGJpdF9kZXB0aF9sdW1hX21pbnVzODsgICAgICAvLyB1ZSh2KQorICAgIGludCBiaXRfZGVwdGhf Y2hyb21hX21pbnVzODsgICAgLy8gdWUodikKKworICAgIC8vIEBub3RlCisgICAgLy8gQ3VycmVu dGx5IHRoZSBzdHJ1Y3R1cmUgZG9lcyBub3QgcmVmbGVjdCB0aGUgZW50aXJlIFNQUyBSQlNQIGxh eW91dC4KKyAgICAvLyBJdCBjb250YWlucyBvbmx5IHRoZSBmaWVsZHMgdGhhdCBhcmUgbmVjZXNz YXJ5IHRvIHJlYWQgZnJvbSB0aGUgTkFMIHVuaXQgYWxsIHRoZSB2YWx1ZXMKKyAgICAvLyBuZWNl c3NhcnkgZm9yIHRoZSBjb3JyZWN0IGluaXRpYWxpemF0aW9uIG9mIEVWQ0RlY29kZXJDb25maWd1 cmF0aW9uUmVjb3JkCisKKyAgICAvLyBAbm90ZQorICAgIC8vIElmIG5lY2Vzc2FyeSwgYWRkIHRo ZSBtaXNzaW5nIGZpZWxkcyB0byB0aGUgc3RydWN0dXJlIHRvIHJlZmxlY3QKKyAgICAvLyB0aGUg Y29udGVudHMgb2YgdGhlIGVudGlyZSBOQUwgdW5pdCBvZiB0aGUgU1BTIHR5cGUKKworfSBFVkNT UFM7CisKK3R5cGVkZWYgc3RydWN0IEVWQ05BTFVuaXRBcnJheSB7CisgICAgdWludDhfdCAgYXJy YXlfY29tcGxldGVuZXNzOworICAgIHVpbnQ4X3QgIE5BTF91bml0X3R5cGU7CisgICAgdWludDE2 X3QgbnVtTmFsdXM7CisgICAgdWludDE2X3QgKm5hbFVuaXRMZW5ndGg7CisgICAgdWludDhfdCAg KipuYWxVbml0OworfSBFVkNOQUxVbml0QXJyYXk7CisKKy8qKgorICogQGJyaWVmIFNwZWNpZmll cyB0aGUgZGVjb2RlciBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGZvciBJU08vSUVDIDIzMDk0 LTEgdmlkZW8gY29udGVudC4KKyAqIEBzZWUgSVNPL0lFQyAxNDQ5Ni0xNToyMDIxIENvZGluZyBv ZiBhdWRpby12aXN1YWwgb2JqZWN0cyDDouKCrOKAnSBQYXJ0IDE1Og0KKyAqICAgICAgQ2Fycmlh Z2Ugb2YgbmV0d29yayBhYnN0cmFjdGlvbiBsYXllciAoTkFMKSB1bml0IHN0cnVjdHVyZWQgdmlk ZW8gaW4gdGhlIElTTyBiYXNlIG1lZGlhIGZpbGUgZm9ybWF0DQorICovDQordHlwZWRlZiBzdHJ1 Y3QgRVZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQgew0KKyAgICB1aW50OF90ICBjb25maWd1 cmF0aW9uVmVyc2lvbjsgICAgICAgICAgLy8gOCBiaXRzDQorICAgIHVpbnQ4X3QgIHByb2ZpbGVf aWRjOyAgICAgICAgICAgICAgICAgICAvLyA4IGJpdHMNCisgICAgdWludDhfdCAgbGV2ZWxfaWRj OyAgICAgICAgICAgICAgICAgICAgIC8vIDggYml0cw0KKyAgICB1aW50MzJfdCB0b29sc2V0X2lk Y19oOyAgICAgICAgICAgICAgICAgLy8gMzIgYml0cw0KKyAgICB1aW50MzJfdCB0b29sc2V0X2lk Y19sOyAgICAgICAgICAgICAgICAgLy8gMzIgYml0cw0KKyAgICB1aW50OF90ICBjaHJvbWFfZm9y bWF0X2lkYzsgICAgICAgICAgICAgLy8gMiBiaXRzDQorICAgIHVpbnQ4X3QgIGJpdF9kZXB0aF9s dW1hX21pbnVzODsgICAgICAgICAvLyAzIGJpdHMNCisgICAgdWludDhfdCAgYml0X2RlcHRoX2No cm9tYV9taW51czg7ICAgICAgIC8vIDMgYml0cw0KKyAgICB1aW50MTZfdCBwaWNfd2lkdGhfaW5f bHVtYV9zYW1wbGVzOyAgICAgLy8gMTYgYml0cw0KKyAgICB1aW50MTZfdCBwaWNfaGVpZ2h0X2lu X2x1bWFfc2FtcGxlczsgICAgLy8gMTYgYml0cw0KKyAgICB1aW50OF90ICByZXNlcnZlZDsgICAg ICAgICAgICAgICAgICAgICAgLy8gNiBiaXRzICcwMDAwMDAnYg0KKyAgICB1aW50OF90ICBsZW5n dGhTaXplTWludXNPbmU7ICAgICAgICAgICAgLy8gMiBiaXRzDQorICAgIHVpbnQ4X3QgIG51bV9v Zl9hcnJheXM7ICAgICAgICAgICAgICAgICAvLyA4IGJpdHMNCisgICAgRVZDTkFMVW5pdEFycmF5 ICphcnJheTsNCit9IEVWQ0RlY29kZXJDb25maWd1cmF0aW9uUmVjb3JkOw0KKw0KK3R5cGVkZWYg c3RydWN0IE5BTFUgew0KKyAgICBpbnQgb2Zmc2V0Ow0KKyAgICB1aW50MzJfdCBzaXplOw0KK30g TkFMVTsNCisNCit0eXBlZGVmIHN0cnVjdCBOQUxVTGlzdCB7DQorICAgIE5BTFUgKm5hbHVzOw0K KyAgICB1bnNpZ25lZCBuYWx1c19hcnJheV9zaXplOw0KKyAgICB1bnNpZ25lZCBuYl9uYWx1czsg ICAgICAgICAgLy8vPCB2YWxpZCBlbnRyaWVzIGluIG5hbHVzDQorfSBOQUxVTGlzdDsNCisNCitz dGF0aWMgaW50IGdldF9uYWx1X3R5cGUoY29uc3QgdWludDhfdCAqYml0cywgaW50IGJpdHNfc2l6 ZSkNCit7DQorICAgIGludCB1bml0X3R5cGVfcGx1czEgPSAwOw0KKw0KKyAgICBpZiAoYml0c19z aXplID49IEVWQ19OQUxfSEVBREVSX1NJWkUpIHsNCisgICAgICAgIHVuc2lnbmVkIGNoYXIgKnAg PSAodW5zaWduZWQgY2hhciAqKWJpdHM7DQorICAgICAgICAvLyBmb3JiaWRkZW5femVyb19iaXQN CisgICAgICAgIGlmICgocFswXSAmIDB4ODApICE9IDApDQorICAgICAgICAgICAgcmV0dXJuIC0x Ow0KKw0KKyAgICAgICAgLy8gbmFsX3VuaXRfdHlwZQ0KKyAgICAgICAgdW5pdF90eXBlX3BsdXMx ID0gKHBbMF0gPj4gMSkgJiAweDNGOw0KKyAgICB9DQorDQorICAgIHJldHVybiB1bml0X3R5cGVf cGx1czEgLSAxOw0KK30NCisNCitzdGF0aWMgdWludDMyX3QgcmVhZF9uYWxfdW5pdF9sZW5ndGgo Y29uc3QgdWludDhfdCAqYml0cywgaW50IGJpdHNfc2l6ZSkNCit7DQorICAgIHVpbnQzMl90IG5h bHVfbGVuID0gMDsNCisNCisgICAgaWYgKGJpdHNfc2l6ZSA+PSBFVkNfTkFMX1VOSVRfTEVOR1RI X0JZVEUpIHsNCisNCisgICAgICAgIGludCB0ID0gMDsNCisgICAgICAgIHVuc2lnbmVkIGNoYXIg KnAgPSAodW5zaWduZWQgY2hhciAqKWJpdHM7DQorDQorICAgICAgICBmb3IgKGludCBpID0gMDsg aSA8IEVWQ19OQUxfVU5JVF9MRU5HVEhfQllURTsgaSsrKQ0KKyAgICAgICAgICAgIHQgPSAodCA8 PCA4KSB8IHBbaV07DQorDQorICAgICAgICBuYWx1X2xlbiA9IHQ7DQorICAgICAgICBpZiAobmFs dV9sZW4gPT0gMCkNCisgICAgICAgICAgICByZXR1cm4gMDsNCisgICAgfQ0KKw0KKyAgICByZXR1 cm4gbmFsdV9sZW47DQorfQ0KKw0KKy8vIEBzZWUgSVNPX0lFQ18yMzA5NC0xICg3LjMuMi4xIFNQ UyBSQlNQIHN5bnRheCkNCitzdGF0aWMgaW50IGV2Y2NfcGFyc2Vfc3BzKGNvbnN0IHVpbnQ4X3Qg KmJzLCBpbnQgYnNfc2l6ZSwgRVZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQgKmV2Y2MpDQor ew0KKyAgICBHZXRCaXRDb250ZXh0IGdiOw0KKyAgICBpbnQgc3BzX3NlcV9wYXJhbWV0ZXJfc2V0 X2lkOw0KKyAgICBFVkNTUFMgc3BzOw0KKw0KKyAgICBpZiAoaW5pdF9nZXRfYml0czgoJmdiLCBi cywgYnNfc2l6ZSkgPCAwKQ0KKyAgICAgICAgcmV0dXJuIDA7DQorDQorICAgIHNwcy5zcHNfc2Vx X3BhcmFtZXRlcl9zZXRfaWQgPSBnZXRfdWVfZ29sb21iKCZnYik7DQorDQorICAgIGlmIChzcHNf c2VxX3BhcmFtZXRlcl9zZXRfaWQgPj0gRVZDX01BWF9TUFNfQ09VTlQpDQorICAgICAgICByZXR1 cm4gMDsNCisNCisgICAgLy8gdGhlIEJhc2VsaW5lIHByb2ZpbGUgaXMgaW5kaWNhdGVkIGJ5IHBy b2ZpbGVfaWRjIGVxYWwgdG8gMA0KKyAgICAvLyB0aGUgTWFpbiBwcm9maWxlIGlzIGluZGljYXRl ZCBieSBwcm9maWxlX2lkYyBlcWFsIHRvIDENCisgICAgc3BzLnByb2ZpbGVfaWRjID0gZ2V0X2Jp dHMoJmdiLCA4KTsNCisNCisgICAgc3BzLmxldmVsX2lkYyA9IGdldF9iaXRzKCZnYiwgOCk7DQor DQorICAgIHNwcy50b29sc2V0X2lkY19oID0gZ2V0X2JpdHMoJmdiLCAzMik7DQorICAgIHNwcy50 b29sc2V0X2lkY19sID0gZ2V0X2JpdHMoJmdiLCAzMik7DQorDQorICAgIC8vIDAgLSBtb25vY2hy b21lDQorICAgIC8vIDEgLSA0OjI6MA0KKyAgICAvLyAyIC0gNDoyOjINCisgICAgLy8gMyAtIDQ6 NDo0DQorICAgIHNwcy5jaHJvbWFfZm9ybWF0X2lkYyA9IGdldF91ZV9nb2xvbWIoJmdiKTsNCisN CisgICAgc3BzLnBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMgPSBnZXRfdWVfZ29sb21iKCZnYik7 DQorICAgIHNwcy5waWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcyA9IGdldF91ZV9nb2xvbWIoJmdi KTsNCisNCisgICAgc3BzLmJpdF9kZXB0aF9sdW1hX21pbnVzOCA9IGdldF91ZV9nb2xvbWIoJmdi KTsNCisgICAgc3BzLmJpdF9kZXB0aF9jaHJvbWFfbWludXM4ID0gZ2V0X3VlX2dvbG9tYigmZ2Ip Ow0KKw0KKyAgICBldmNjLT5wcm9maWxlX2lkYyA9IHNwcy5wcm9maWxlX2lkYzsNCisgICAgZXZj Yy0+bGV2ZWxfaWRjID0gc3BzLmxldmVsX2lkYzsNCisgICAgZXZjYy0+dG9vbHNldF9pZGNfaCA9 IHNwcy50b29sc2V0X2lkY19oOw0KKyAgICBldmNjLT50b29sc2V0X2lkY19sID0gc3BzLnRvb2xz ZXRfaWRjX2w7DQorICAgIGV2Y2MtPmNocm9tYV9mb3JtYXRfaWRjID0gc3BzLmNocm9tYV9mb3Jt YXRfaWRjOw0KKyAgICBldmNjLT5iaXRfZGVwdGhfbHVtYV9taW51czggPSBzcHMuYml0X2RlcHRo X2x1bWFfbWludXM4Ow0KKyAgICBldmNjLT5iaXRfZGVwdGhfY2hyb21hX21pbnVzOCA9IHNwcy5i aXRfZGVwdGhfY2hyb21hX21pbnVzODsNCisgICAgZXZjYy0+cGljX3dpZHRoX2luX2x1bWFfc2Ft cGxlcyA9IHNwcy5waWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOw0KKyAgICBldmNjLT5waWNfaGVp Z2h0X2luX2x1bWFfc2FtcGxlcyA9IHNwcy5waWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlczsNCisN CisgICAgcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgZXZjY19hcnJheV9hZGRfbmFsX3Vu aXQodWludDhfdCAqbmFsX2J1ZiwgdWludDMyX3QgbmFsX3NpemUsDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50OF90IG5hbF90eXBlLCBpbnQgcHNfYXJyYXlfY29tcGxl dGVuZXNzLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZDRGVjb2RlckNv bmZpZ3VyYXRpb25SZWNvcmQgKmV2Y2MpDQorew0KKyAgICBpbnQgcmV0Ow0KKyAgICB1aW50OF90 IGluZGV4Ow0KKyAgICB1aW50MTZfdCBudW1OYWx1czsNCisgICAgRVZDTkFMVW5pdEFycmF5ICph cnJheTsNCisNCisgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgZXZjYy0+bnVtX29mX2FycmF5 czsgaW5kZXgrKykNCisgICAgICAgIGlmIChldmNjLT5hcnJheVtpbmRleF0uTkFMX3VuaXRfdHlw ZSA9PSBuYWxfdHlwZSkNCisgICAgICAgICAgICBicmVhazsNCisNCisgICAgaWYgKGluZGV4ID49 IGV2Y2MtPm51bV9vZl9hcnJheXMpIHsNCisgICAgICAgIHVpbnQ4X3QgaTsNCisNCisgICAgICAg IHJldCA9IGF2X3JlYWxsb2NwX2FycmF5KCZldmNjLT5hcnJheSwgaW5kZXggKyAxLCBzaXplb2Yo RVZDTkFMVW5pdEFycmF5KSk7DQorICAgICAgICBpZiAocmV0IDwgMCkNCisgICAgICAgICAgICBy ZXR1cm4gcmV0Ow0KKw0KKyAgICAgICAgZm9yIChpID0gZXZjYy0+bnVtX29mX2FycmF5czsgaSA8 PSBpbmRleDsgaSsrKQ0KKyAgICAgICAgICAgIG1lbXNldCgmZXZjYy0+YXJyYXlbaV0sIDAsIHNp emVvZihFVkNOQUxVbml0QXJyYXkpKTsNCisgICAgICAgIGV2Y2MtPm51bV9vZl9hcnJheXMgPSBp bmRleCArIDE7DQorICAgIH0NCisNCisgICAgYXJyYXkgICAgPSAmZXZjYy0+YXJyYXlbaW5kZXhd Ow0KKyAgICBudW1OYWx1cyA9IGFycmF5LT5udW1OYWx1czsNCisNCisgICAgcmV0ID0gYXZfcmVh bGxvY3BfYXJyYXkoJmFycmF5LT5uYWxVbml0LCBudW1OYWx1cyArIDEsIHNpemVvZih1aW50OF90 ICopKTsNCisgICAgaWYgKHJldCA8IDApDQorICAgICAgICByZXR1cm4gcmV0Ow0KKw0KKyAgICBy ZXQgPSBhdl9yZWFsbG9jcF9hcnJheSgmYXJyYXktPm5hbFVuaXRMZW5ndGgsIG51bU5hbHVzICsg MSwgc2l6ZW9mKHVpbnQxNl90KSk7DQorICAgIGlmIChyZXQgPCAwKQ0KKyAgICAgICAgcmV0dXJu IHJldDsNCisNCisgICAgYXJyYXktPm5hbFVuaXQgICAgICBbbnVtTmFsdXNdID0gbmFsX2J1ZjsN CisgICAgYXJyYXktPm5hbFVuaXRMZW5ndGhbbnVtTmFsdXNdID0gbmFsX3NpemU7DQorICAgIGFy cmF5LT5OQUxfdW5pdF90eXBlICAgICAgICAgICA9IG5hbF90eXBlOw0KKyAgICBhcnJheS0+bnVt TmFsdXMrKzsNCisNCisgICAgLyoNCisgICAgICogV2hlbiB0aGUgc2FtcGxlIGVudHJ5IG5hbWUg aXMgJ2V2YzEnLCB0aGUgZGVmYXVsdCBhbmQgbWFuZGF0b3J5IHZhbHVlIG9mDQorICAgICAqIGFy cmF5X2NvbXBsZXRlbmVzcyBpcyAxIGZvciBhcnJheXMgb2YgYWxsIHR5cGVzIG9mIHBhcmFtZXRl ciBzZXRzLCBhbmQgMA0KKyAgICAgKiBmb3IgYWxsIG90aGVyIGFycmF5cy4NCisgICAgICovDQor ICAgIGlmIChuYWxfdHlwZSA9PSBFVkNfU1BTX05VVCB8fCBuYWxfdHlwZSA9PSBFVkNfUFBTX05V VCkNCisgICAgICAgIGFycmF5LT5hcnJheV9jb21wbGV0ZW5lc3MgPSBwc19hcnJheV9jb21wbGV0 ZW5lc3M7DQorDQorICAgIHJldHVybiAwOw0KK30NCisNCitzdGF0aWMgdm9pZCBldmNjX2luaXQo RVZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQgKmV2Y2MpDQorew0KKyAgICBtZW1zZXQoZXZj YywgMCwgc2l6ZW9mKEVWQ0RlY29kZXJDb25maWd1cmF0aW9uUmVjb3JkKSk7DQorICAgIGV2Y2Mt PmNvbmZpZ3VyYXRpb25WZXJzaW9uID0gMTsNCisgICAgZXZjYy0+bGVuZ3RoU2l6ZU1pbnVzT25l ICAgPSAzOyAvLyA0IGJ5dGVzDQorfQ0KKw0KK3N0YXRpYyB2b2lkIGV2Y2NfY2xvc2UoRVZDRGVj b2RlckNvbmZpZ3VyYXRpb25SZWNvcmQgKmV2Y2MpDQorew0KKyAgICB1aW50OF90IGk7DQorDQor ICAgIGZvciAoaSA9IDA7IGkgPCBldmNjLT5udW1fb2ZfYXJyYXlzOyBpKyspIHsNCisgICAgICAg IGV2Y2MtPmFycmF5W2ldLm51bU5hbHVzID0gMDsNCisgICAgICAgIGF2X2ZyZWVwKCZldmNjLT5h cnJheVtpXS5uYWxVbml0KTsNCisgICAgICAgIGF2X2ZyZWVwKCZldmNjLT5hcnJheVtpXS5uYWxV bml0TGVuZ3RoKTsNCisgICAgfQ0KKw0KKyAgICBldmNjLT5udW1fb2ZfYXJyYXlzID0gMDsNCisg ICAgYXZfZnJlZXAoJmV2Y2MtPmFycmF5KTsNCit9DQorDQorc3RhdGljIGludCBldmNjX3dyaXRl KEFWSU9Db250ZXh0ICpwYiwgRVZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQgKmV2Y2MpDQor ew0KKyAgICB1aW50OF90IGk7DQorICAgIHVpbnQxNl90IGosIGFwc19jb3VudCA9IDAsIHNwc19j b3VudCA9IDAsIHBwc19jb3VudCA9IDA7DQorDQorICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfVFJB Q0UsICAiY29uZmlndXJhdGlvblZlcnNpb246ICAgICAgICAgICAgICAgICUiUFJJdTgiXG4iLA0K KyAgICAgICAgICAgZXZjYy0+Y29uZmlndXJhdGlvblZlcnNpb24pOw0KKyAgICBhdl9sb2coTlVM TCwgQVZfTE9HX1RSQUNFLCAgInByb2ZpbGVfaWRjOiAgICAgICAgICAgICAgICAgICAgICAgICAl IlBSSXU4IlxuIiwNCisgICAgICAgICAgIGV2Y2MtPnByb2ZpbGVfaWRjKTsNCisgICAgYXZfbG9n KE5VTEwsIEFWX0xPR19UUkFDRSwgICJsZXZlbF9pZGM6ICAgICAgICAgICAgICAgICAgICAgICAg ICAgJSJQUkl1OCJcbiIsDQorICAgICAgICAgICBldmNjLT5sZXZlbF9pZGMpOw0KKyAgICBhdl9s b2coTlVMTCwgQVZfTE9HX1RSQUNFLCAgInRvb2xzZXRfaWRjX2g6ICAgICAgICAgICAgICAgICAg ICAgICAlIlBSSXUzMiJcbiIsDQorICAgICAgICAgICBldmNjLT50b29sc2V0X2lkY19oKTsNCisg ICAgYXZfbG9nKE5VTEwsIEFWX0xPR19UUkFDRSwgInRvb2xzZXRfaWRjX2w6ICAgICAgICAgICAg ICAgICAgICAgICAgJSJQUkl1MzIiXG4iLA0KKyAgICAgICAgICAgZXZjYy0+dG9vbHNldF9pZGNf bCk7DQorICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfVFJBQ0UsICJjaHJvbWFfZm9ybWF0X2lkYzog ICAgICAgICAgICAgICAgICAgICUiUFJJdTgiXG4iLA0KKyAgICAgICAgICAgZXZjYy0+Y2hyb21h X2Zvcm1hdF9pZGMpOw0KKyAgICBhdl9sb2coTlVMTCwgQVZfTE9HX1RSQUNFLCAgImJpdF9kZXB0 aF9sdW1hX21pbnVzODogICAgICAgICAgICAgICAlIlBSSXU4IlxuIiwNCisgICAgICAgICAgIGV2 Y2MtPmJpdF9kZXB0aF9sdW1hX21pbnVzOCk7DQorICAgIGF2X2xvZyhOVUxMLCBBVl9MT0dfVFJB Q0UsICAiYml0X2RlcHRoX2Nocm9tYV9taW51czg6ICAgICAgICAgICAgICUiUFJJdTgiXG4iLA0K KyAgICAgICAgICAgZXZjYy0+Yml0X2RlcHRoX2Nocm9tYV9taW51czgpOw0KKyAgICBhdl9sb2co TlVMTCwgQVZfTE9HX1RSQUNFLCAgInBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXM6ICAgICAgICAg ICAlIlBSSXUxNiJcbiIsDQorICAgICAgICAgICBldmNjLT5waWNfd2lkdGhfaW5fbHVtYV9zYW1w bGVzKTsNCisgICAgYXZfbG9nKE5VTEwsIEFWX0xPR19UUkFDRSwgICJwaWNfaGVpZ2h0X2luX2x1 bWFfc2FtcGxlczogICAgICAgICAgJSJQUkl1MTYiXG4iLA0KKyAgICAgICAgICAgZXZjYy0+cGlj X2hlaWdodF9pbl9sdW1hX3NhbXBsZXMpOw0KKyAgICBhdl9sb2coTlVMTCwgQVZfTE9HX1RSQUNF LCAgImxlbmd0aFNpemVNaW51c09uZTogICAgICAgICAgICAgICAgICAlIlBSSXU4IlxuIiwNCisg ICAgICAgICAgIGV2Y2MtPmxlbmd0aFNpemVNaW51c09uZSk7DQorICAgIGF2X2xvZyhOVUxMLCBB Vl9MT0dfVFJBQ0UsICAibnVtX29mX2FycmF5czogICAgICAgICAgICAgICAgICAgICAgICUiUFJJ dTgiXG4iLA0KKyAgICAgICAgICAgZXZjYy0+bnVtX29mX2FycmF5cyk7DQorICAgIGZvciAoaSA9 IDA7IGkgPCBldmNjLT5udW1fb2ZfYXJyYXlzOyBpKyspIHsNCisgICAgICAgIGF2X2xvZyhOVUxM LCBBVl9MT0dfVFJBQ0UsICJhcnJheV9jb21wbGV0ZW5lc3NbJSJQUkl1OCJdOiAgICAgICAgICAg ICAgICUiUFJJdTgiXG4iLA0KKyAgICAgICAgICAgICAgIGksIGV2Y2MtPmFycmF5W2ldLmFycmF5 X2NvbXBsZXRlbmVzcyk7DQorICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX1RSQUNFLCAiTkFM X3VuaXRfdHlwZVslIlBSSXU4Il06ICAgICAgICAgICAgICAgICAgICAlIlBSSXU4IlxuIiwNCisg ICAgICAgICAgICAgICBpLCBldmNjLT5hcnJheVtpXS5OQUxfdW5pdF90eXBlKTsNCisgICAgICAg IGF2X2xvZyhOVUxMLCBBVl9MT0dfVFJBQ0UsICJudW1OYWx1c1slIlBSSXU4Il06ICAgICAgICAg ICAgICAgICAgICAgICAgICUiUFJJdTE2IlxuIiwNCisgICAgICAgICAgICAgICBpLCBldmNjLT5h cnJheVtpXS5udW1OYWx1cyk7DQorICAgICAgICBmb3IgKGogPSAwOyBqIDwgZXZjYy0+YXJyYXlb aV0ubnVtTmFsdXM7IGorKykNCisgICAgICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX1RSQUNF LA0KKyAgICAgICAgICAgICAgICAgICAibmFsVW5pdExlbmd0aFslIlBSSXU4Il1bJSJQUkl1MTYi XTogICAgICAgICAgICAgICAgICUiUFJJdTE2IlxuIiwNCisgICAgICAgICAgICAgICAgICAgaSwg aiwgZXZjYy0+YXJyYXlbaV0ubmFsVW5pdExlbmd0aFtqXSk7DQorICAgIH0NCisNCisgICAgLyoN CisgICAgICogV2UgbmVlZCBhdCBsZWFzdCBvbmUgU1BTLg0KKyAgICAgKi8NCisgICAgZm9yIChp ID0gMDsgaSA8IGV2Y2MtPm51bV9vZl9hcnJheXM7IGkrKykNCisgICAgICAgIHN3aXRjaCAoZXZj Yy0+YXJyYXlbaV0uTkFMX3VuaXRfdHlwZSkgew0KKyAgICAgICAgY2FzZSBFVkNfQVBTX05VVDoN CisgICAgICAgICAgICBhcHNfY291bnQgKz0gZXZjYy0+YXJyYXlbaV0ubnVtTmFsdXM7DQorICAg ICAgICAgICAgYnJlYWs7DQorICAgICAgICBjYXNlIEVWQ19TUFNfTlVUOg0KKyAgICAgICAgICAg IHNwc19jb3VudCArPSBldmNjLT5hcnJheVtpXS5udW1OYWx1czsNCisgICAgICAgICAgICBicmVh azsNCisgICAgICAgIGNhc2UgRVZDX1BQU19OVVQ6DQorICAgICAgICAgICAgcHBzX2NvdW50ICs9 IGV2Y2MtPmFycmF5W2ldLm51bU5hbHVzOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAg ZGVmYXVsdDoNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIH0NCisgICAgaWYgKCFzcHNf Y291bnQgfHwgc3BzX2NvdW50ID4gRVZDX01BWF9TUFNfQ09VTlQpDQorICAgICAgICByZXR1cm4g QVZFUlJPUl9JTlZBTElEREFUQTsNCisNCisgICAgLyogdW5zaWduZWQgaW50KDgpIGNvbmZpZ3Vy YXRpb25WZXJzaW9uID0gMTsgKi8NCisgICAgYXZpb193OChwYiwgZXZjYy0+Y29uZmlndXJhdGlv blZlcnNpb24pOw0KKw0KKyAgICAvKiB1bnNpZ25lZCBpbnQoOCkgcHJvZmlsZV9pZGMgKi8NCisg ICAgYXZpb193OChwYiwgZXZjYy0+cHJvZmlsZV9pZGMpOw0KKw0KKyAgICAvKiB1bnNpZ25lZCBp bnQoOCkgcHJvZmlsZV9pZGMgKi8NCisgICAgYXZpb193OChwYiwgZXZjYy0+bGV2ZWxfaWRjKTsN CisNCisgICAgLyogdW5zaWduZWQgaW50KDMyKSB0b29sc2V0X2lkY19oICovDQorICAgIGF2aW9f d2IzMihwYiwgZXZjYy0+dG9vbHNldF9pZGNfaCk7DQorDQorICAgIC8qIHVuc2lnbmVkIGludCgz MikgdG9vbHNldF9pZGNfbCAqLw0KKyAgICBhdmlvX3diMzIocGIsIGV2Y2MtPnRvb2xzZXRfaWRj X2wpOw0KKw0KKyAgICAvKg0KKyAgICAgKiB1bnNpZ25lZCBpbnQoMikgY2hyb21hX2Zvcm1hdF9p ZGM7DQorICAgICAqIHVuc2lnbmVkIGludCgzKSBiaXRfZGVwdGhfbHVtYV9taW51czg7DQorICAg ICAqIHVuc2lnbmVkIGludCgzKSBiaXRfZGVwdGhfY2hyb21hX21pbnVzODsNCisgICAgICovDQor ICAgIGF2aW9fdzgocGIsIGV2Y2MtPmNocm9tYV9mb3JtYXRfaWRjIDw8IDYgfA0KKyAgICAgICAg ICAgIGV2Y2MtPmJpdF9kZXB0aF9sdW1hX21pbnVzOCAgPDwgMyB8DQorICAgICAgICAgICAgZXZj Yy0+Yml0X2RlcHRoX2Nocm9tYV9taW51czgpOw0KKw0KKyAgICAvKiB1bnNpZ25lZCBpbnQoMTYp IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXM7ICovDQorICAgIGF2aW9fd2IxNihwYiwgZXZjYy0+ cGljX3dpZHRoX2luX2x1bWFfc2FtcGxlcyk7DQorDQorICAgIC8qIHVuc2lnbmVkIGludCgxNikg cGljX3dpZHRoX2luX2x1bWFfc2FtcGxlczsgKi8NCisgICAgYXZpb193YjE2KHBiLCBldmNjLT5w aWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcyk7DQorDQorICAgIC8qDQorICAgICAqIGJpdCg2KSBy ZXNlcnZlZCA9ICcxMTExMTEnYjsNCisgICAgICogdW5zaWduZWQgaW50KDIpIGNocm9tYUZvcm1h dDsNCisgICAgICovDQorICAgIGF2aW9fdzgocGIsIGV2Y2MtPmxlbmd0aFNpemVNaW51c09uZSB8 IDB4ZmMpOw0KKw0KKyAgICAvKiB1bnNpZ25lZCBpbnQoOCkgbnVtT2ZBcnJheXM7ICovDQorICAg IGF2aW9fdzgocGIsIGV2Y2MtPm51bV9vZl9hcnJheXMpOw0KKw0KKyAgICBmb3IgKGkgPSAwOyBp IDwgZXZjYy0+bnVtX29mX2FycmF5czsgaSsrKSB7DQorICAgICAgICAvKg0KKyAgICAgICAgICog Yml0KDEpIGFycmF5X2NvbXBsZXRlbmVzczsNCisgICAgICAgICAqIHVuc2lnbmVkIGludCgxKSBy ZXNlcnZlZCA9IDA7DQorICAgICAgICAgKiB1bnNpZ25lZCBpbnQoNikgTkFMX3VuaXRfdHlwZTsN CisgICAgICAgICAqLw0KKyAgICAgICAgYXZpb193OChwYiwgZXZjYy0+YXJyYXlbaV0uYXJyYXlf Y29tcGxldGVuZXNzIDw8IDcgfA0KKyAgICAgICAgICAgICAgICBldmNjLT5hcnJheVtpXS5OQUxf dW5pdF90eXBlICYgMHgzZik7DQorDQorICAgICAgICAvKiB1bnNpZ25lZCBpbnQoMTYpIG51bU5h bHVzOyAqLw0KKyAgICAgICAgYXZpb193YjE2KHBiLCBldmNjLT5hcnJheVtpXS5udW1OYWx1cyk7 DQorDQorICAgICAgICBmb3IgKGogPSAwOyBqIDwgZXZjYy0+YXJyYXlbaV0ubnVtTmFsdXM7IGor Kykgew0KKyAgICAgICAgICAgIC8qIHVuc2lnbmVkIGludCgxNikgbmFsVW5pdExlbmd0aDsgKi8N CisgICAgICAgICAgICBhdmlvX3diMTYocGIsIGV2Y2MtPmFycmF5W2ldLm5hbFVuaXRMZW5ndGhb al0pOw0KKw0KKyAgICAgICAgICAgIC8qIGJpdCg4Km5hbFVuaXRMZW5ndGgpIG5hbFVuaXQ7ICov DQorICAgICAgICAgICAgYXZpb193cml0ZShwYiwgZXZjYy0+YXJyYXlbaV0ubmFsVW5pdFtqXSwN CisgICAgICAgICAgICAgICAgICAgICAgIGV2Y2MtPmFycmF5W2ldLm5hbFVuaXRMZW5ndGhbal0p Ow0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorICAgIHJldHVybiAwOw0KK30NCisNCitpbnQgZmZf aXNvbV93cml0ZV9ldmNjKEFWSU9Db250ZXh0ICpwYiwgY29uc3QgdWludDhfdCAqZGF0YSwNCisg ICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplLCBpbnQgcHNfYXJyYXlfY29tcGxldGVuZXNz KQ0KK3sNCisgICAgRVZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQgZXZjYzsNCisgICAgaW50 IG5hbHVfdHlwZTsNCisgICAgc2l6ZV90IG5hbHVfc2l6ZTsNCisgICAgdW5zaWduZWQgY2hhciAq Yml0cyA9ICh1bnNpZ25lZCBjaGFyICopZGF0YTsNCisgICAgaW50IGJ5dGVzX3RvX3JlYWQgPSBz aXplOw0KKw0KKyAgICBpbnQgcmV0ID0gMDsNCisNCisgICAgaWYgKHNpemUgPCA4KSB7DQorICAg ICAgICAvKiBXZSBjYW4ndCB3cml0ZSBhIHZhbGlkIGV2Y0MgZnJvbSB0aGUgcHJvdmlkZWQgZGF0 YSAqLw0KKyAgICAgICAgcmV0dXJuIEFWRVJST1JfSU5WQUxJRERBVEE7DQorICAgIH0gZWxzZSBp ZiAoKmRhdGEgPT0gMSkgew0KKyAgICAgICAgLyogRGF0YSBpcyBhbHJlYWR5IGV2Y0MtZm9ybWF0 dGVkICovDQorICAgICAgICBhdmlvX3dyaXRlKHBiLCBkYXRhLCBzaXplKTsNCisgICAgICAgIHJl dHVybiAwOw0KKyAgICB9DQorDQorICAgIGV2Y2NfaW5pdCgmZXZjYyk7DQorDQorICAgIHdoaWxl IChieXRlc190b19yZWFkID4gRVZDX05BTF9VTklUX0xFTkdUSF9CWVRFKSB7DQorICAgICAgICB1 aW50OF90ICpuYWx1X2J1ZiA9IE5VTEw7DQorICAgICAgICBuYWx1X3NpemUgPSByZWFkX25hbF91 bml0X2xlbmd0aChiaXRzLCBFVkNfTkFMX1VOSVRfTEVOR1RIX0JZVEUpOw0KKyAgICAgICAgaWYg KG5hbHVfc2l6ZSA9PSAwKSBicmVhazsNCisNCisgICAgICAgIGJpdHMgKz0gRVZDX05BTF9VTklU X0xFTkdUSF9CWVRFOw0KKyAgICAgICAgYnl0ZXNfdG9fcmVhZCAtPSBFVkNfTkFMX1VOSVRfTEVO R1RIX0JZVEU7DQorDQorICAgICAgICBpZiAoYnl0ZXNfdG9fcmVhZCA8IG5hbHVfc2l6ZSkgYnJl YWs7DQorDQorICAgICAgICBuYWx1X3R5cGUgPSBnZXRfbmFsdV90eXBlKGJpdHMsIGJ5dGVzX3Rv X3JlYWQpOw0KKyAgICAgICAgbmFsdV9idWYgPSBiaXRzOw0KKw0KKyAgICAgICAgc3dpdGNoIChu YWx1X3R5cGUpIHsNCisgICAgICAgIGNhc2UgRVZDX0FQU19OVVQ6DQorICAgICAgICBjYXNlIEVW Q19TUFNfTlVUOg0KKyAgICAgICAgY2FzZSBFVkNfUFBTX05VVDoNCisgICAgICAgICAgICByZXQg PSBldmNjX2FycmF5X2FkZF9uYWxfdW5pdChuYWx1X2J1ZiwgbmFsdV9zaXplLCBuYWx1X3R5cGUs IHBzX2FycmF5X2NvbXBsZXRlbmVzcywgJmV2Y2MpOw0KKyAgICAgICAgICAgIGlmIChyZXQgPCAw KQ0KKyAgICAgICAgICAgICAgICBnb3RvIGVuZDsNCisgICAgICAgICAgICBlbHNlIGlmIChuYWx1 X3R5cGUgPT0gRVZDX1NQU19OVVQpDQorICAgICAgICAgICAgICAgIHJldCA9IGV2Y2NfcGFyc2Vf c3BzKG5hbHVfYnVmLCBuYWx1X3NpemUsICZldmNjKTsNCisgICAgICAgICAgICBpZiAocmV0IDwg MCkNCisgICAgICAgICAgICAgICAgZ290byBlbmQ7DQorICAgICAgICAgICAgYnJlYWs7DQorICAg ICAgICBkZWZhdWx0Og0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICAgICAgfQ0KKw0KKyAgICAg ICAgYml0cyArPSBuYWx1X3NpemU7DQorICAgICAgICBieXRlc190b19yZWFkIC09IG5hbHVfc2l6 ZTsNCisgICAgfQ0KKw0KKyAgICByZXQgPSBldmNjX3dyaXRlKHBiLCAmZXZjYyk7DQorDQorZW5k Og0KKyAgICBldmNjX2Nsb3NlKCZldmNjKTsNCisgICAgcmV0dXJuIHJldDsNCit9DQorDQpkaWZm IC0tZ2l0IGEvbGliYXZmb3JtYXQvZXZjLmggYi9saWJhdmZvcm1hdC9ldmMuaA0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLmQzZGVlM2U4ZGUNCi0tLSAvZGV2L251bGwN CisrKyBiL2xpYmF2Zm9ybWF0L2V2Yy5oDQpAQCAtMCwwICsxLDE0OCBAQA0KKy8qDQorICogRVZD IGhlbHBlciBmdW5jdGlvbnMgZm9yIG11eGVycw0KKyAqIENvcHlyaWdodCAoYykgMjAyMiBEYXdp ZCBLb3ppbnNraSA8ZC5rb3ppbnNraUBzYW1zdW5nLmNvbT4NCisgKg0KKyAqIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEZGbXBlZy4NCisgKg0KKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3INCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljDQorICogTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyDQorICogdmVyc2lvbiAy LjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u DQorICoNCisgKiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwNCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VDQorICogTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCisgKg0KKyAqIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCisgKiBM aWNlbnNlIGFsb25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3 YXJlDQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v ciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQ0KKyAqLw0KKw0KKyNpZm5kZWYgQVZGT1JNQVRf RVZDX0gNCisjZGVmaW5lIEFWRk9STUFUX0VWQ19IDQorDQorI2luY2x1ZGUgPHN0ZGludC5oPg0K KyNpbmNsdWRlICJsaWJhdnV0aWwvcmF0aW9uYWwuaCINCisjaW5jbHVkZSAiYXZpby5oIg0KKw0K Ky8qKg0KKyAqIEBzZWUgSVNPX0lFQ18yMzA5NC0xXzIwMjAsIDcuNC4yLjIgTkFMIHVuaXQgaGVh ZGVyIHNlbWFudGljDQorICogICAgICBUYWJsZSA0IMOi4oKs4oCcIE5BTCB1bml0IHR5cGUgY29k ZXMgYW5kIE5BTCB1bml0IHR5cGUgY2xhc3Nlcw0KKyAqLw0KK2VudW0gRVZDTkFMVW5pdFR5cGUg ew0KKyAgICBFVkNfTk9JRFJfTlVUICAgICAgICAgICAgPSAwLA0KKyAgICBFVkNfSURSX05VVCAg ICAgICAgICAgICAgPSAxLA0KKyAgICBFVkNfUlNWX1ZDTF9OVVQwMiAgICAgICAgPSAyLA0KKyAg ICBFVkNfUlNWX1ZDTF9OVVQwMyAgICAgICAgPSAzLA0KKyAgICBFVkNfUlNWX1ZDTF9OVVQwNCAg ICAgICAgPSA0LA0KKyAgICBFVkNfUlNWX1ZDTF9OVVQwNSAgICAgICAgPSA1LA0KKyAgICBFVkNf UlNWX1ZDTF9OVVQwNiAgICAgICAgPSA2LA0KKyAgICBFVkNfUlNWX1ZDTF9OVVQwNyAgICAgICAg PSA3LA0KKyAgICBFVkNfUlNWX1ZDTF9OVVQwOCAgICAgICAgPSA4LA0KKyAgICBFVkNfUlNWX1ZD TF9OVVQwOSAgICAgICAgPSA5LA0KKyAgICBFVkNfUlNWX1ZDTF9OVVQxMCAgICAgICAgPSAxMCwN CisgICAgRVZDX1JTVl9WQ0xfTlVUMTEgICAgICAgID0gMTEsDQorICAgIEVWQ19SU1ZfVkNMX05V VDEyICAgICAgICA9IDEyLA0KKyAgICBFVkNfUlNWX1ZDTF9OVVQxMyAgICAgICAgPSAxMywNCisg ICAgRVZDX1JTVl9WQ0xfTlVUMTQgICAgICAgID0gMTQsDQorICAgIEVWQ19SU1ZfVkNMX05VVDE1 ICAgICAgICA9IDE1LA0KKyAgICBFVkNfUlNWX1ZDTF9OVVQxNiAgICAgICAgPSAxNiwNCisgICAg RVZDX1JTVl9WQ0xfTlVUMTcgICAgICAgID0gMTcsDQorICAgIEVWQ19SU1ZfVkNMX05VVDE4ICAg ICAgICA9IDE4LA0KKyAgICBFVkNfUlNWX1ZDTF9OVVQxOSAgICAgICAgPSAxOSwNCisgICAgRVZD X1JTVl9WQ0xfTlVUMjAgICAgICAgID0gMjAsDQorICAgIEVWQ19SU1ZfVkNMX05VVDIxICAgICAg ICA9IDIxLA0KKyAgICBFVkNfUlNWX1ZDTF9OVVQyMiAgICAgICAgPSAyMiwNCisgICAgRVZDX1JT Vl9WQ0xfTlVUMjMgICAgICAgID0gMjMsDQorICAgIEVWQ19TUFNfTlVUICAgICAgICAgICAgICA9 IDI0LA0KKyAgICBFVkNfUFBTX05VVCAgICAgICAgICAgICAgPSAyNSwNCisgICAgRVZDX0FQU19O VVQgICAgICAgICAgICAgID0gMjYsDQorICAgIEVWQ19GRF9OVVQgICAgICAgICAgICAgICA9IDI3 LA0KKyAgICBFVkNfU0VJX05VVCAgICAgICAgICAgICAgPSAyOCwNCisgICAgRVZDX1JTVl9OT05W Q0wyOSAgICAgICAgID0gMjksDQorICAgIEVWQ19SU1ZfTk9OVkNMMzAgICAgICAgICA9IDMwLA0K KyAgICBFVkNfUlNWX05PTlZDTDMxICAgICAgICAgPSAzMSwNCisgICAgRVZDX1JTVl9OT05WQ0wz MiAgICAgICAgID0gMzIsDQorICAgIEVWQ19SU1ZfTk9OVkNMMzMgICAgICAgICA9IDMzLA0KKyAg ICBFVkNfUlNWX05PTlZDTDM0ICAgICAgICAgPSAzNCwNCisgICAgRVZDX1JTVl9OT05WQ0wzNSAg ICAgICAgID0gMzUsDQorICAgIEVWQ19SU1ZfTk9OVkNMMzYgICAgICAgICA9IDM2LA0KKyAgICBF VkNfUlNWX05PTlZDTDM3ICAgICAgICAgPSAzNywNCisgICAgRVZDX1JTVl9OT05WQ0wzOCAgICAg ICAgID0gMzgsDQorICAgIEVWQ19SU1ZfTk9OVkNMMzkgICAgICAgICA9IDM5LA0KKyAgICBFVkNf UlNWX05PTlZDTDQwICAgICAgICAgPSA0MCwNCisgICAgRVZDX1JTVl9OT05WQ0w0MSAgICAgICAg ID0gNDEsDQorICAgIEVWQ19SU1ZfTk9OVkNMNDIgICAgICAgICA9IDQyLA0KKyAgICBFVkNfUlNW X05PTlZDTDQzICAgICAgICAgPSA0MywNCisgICAgRVZDX1JTVl9OT05WQ0w0NCAgICAgICAgID0g NDQsDQorICAgIEVWQ19SU1ZfTk9OVkNMNDUgICAgICAgICA9IDQ1LA0KKyAgICBFVkNfUlNWX05P TlZDTDQ2ICAgICAgICAgPSA0NiwNCisgICAgRVZDX1JTVl9OT05WQ0w0NyAgICAgICAgID0gNDcs DQorICAgIEVWQ19SU1ZfTk9OVkNMNDggICAgICAgICA9IDQ4LA0KKyAgICBFVkNfUlNWX05PTlZD TDQ5ICAgICAgICAgPSA0OSwNCisgICAgRVZDX1JTVl9OT05WQ0w1MCAgICAgICAgID0gNTAsDQor ICAgIEVWQ19SU1ZfTk9OVkNMNTEgICAgICAgICA9IDUxLA0KKyAgICBFVkNfUlNWX05PTlZDTDUy ICAgICAgICAgPSA1MiwNCisgICAgRVZDX1JTVl9OT05WQ0w1MyAgICAgICAgID0gNTMsDQorICAg IEVWQ19SU1ZfTk9OVkNMNTQgICAgICAgICA9IDU0LA0KKyAgICBFVkNfUlNWX05PTlZDTDU1ICAg ICAgICAgPSA1NSwNCisgICAgRVZDX1VOU1BFQ19OVVQ1NiAgICAgICAgID0gNTYsDQorICAgIEVW Q19VTlNQRUNfTlVUNTcgICAgICAgICA9IDU3LA0KKyAgICBFVkNfVU5TUEVDX05VVDU4ICAgICAg ICAgPSA1OCwNCisgICAgRVZDX1VOU1BFQ19OVVQ1OSAgICAgICAgID0gNTksDQorICAgIEVWQ19V TlNQRUNfTlVUNjAgICAgICAgICA9IDYwLA0KKyAgICBFVkNfVU5TUEVDX05VVDYxICAgICAgICAg PSA2MSwNCisgICAgRVZDX1VOU1BFQ19OVVQ2MiAgICAgICAgID0gNjINCit9Ow0KKw0KK2VudW0g ew0KKyAgICAvLyA3LjQuMy4yOiBhcHNfdmlkZW9fcGFyYW1ldGVyX3NldF9pZCBpcyB1KDQpLg0K KyAgICBFVkNfTUFYX0FQU19DT1VOVCA9IDMyLA0KKw0KKyAgICAvLyA3LjQuMy4xOiBzcHNfc2Vx X3BhcmFtZXRlcl9zZXRfaWQgaXMgaW4gWzAsIDE1XS4NCisgICAgRVZDX01BWF9TUFNfQ09VTlQg PSAxNiwNCisNCisgICAgLy8gNy40LjMuMjogcHBzX3BpY19wYXJhbWV0ZXJfc2V0X2lkIGlzIGlu IFswLCA2M10uDQorICAgIEVWQ19NQVhfUFBTX0NPVU5UID0gNjQsDQorDQorICAgIC8vIDcuNC41 OiBzbGljZSBoZWFkZXIgc2xpY2VfcGljX3BhcmFtZXRlcl9zZXRfaWQgaW4gWzAsIDYzXQ0KKyAg ICBFVkNfTUFYX1NIX0NPVU5UID0gNjQsDQorDQorICAgIC8vIEUuMy4yOiBjcGJfY250X21pbnVz MVtpXSBpcyBpbiBbMCwgMzFdLg0KKyAgICBFVkNfTUFYX0NQQl9DTlQgPSAzMiwNCisNCisgICAg Ly8gQS40LjE6IGluIHRhYmxlIEEuMSB0aGUgaGlnaGVzdCBsZXZlbCBhbGxvd3MgYSBNYXhMdW1h UHMgb2YgMzUgNjUxIDU4NC4NCisgICAgRVZDX01BWF9MVU1BX1BTID0gMzU2NTE1ODQsDQorDQor ICAgIEVWQ19NQVhfTlVNX1JFRl9QSUNTID0gMjEsDQorDQorICAgIC8vIEEuNC4xOiBwaWNfd2lk dGhfaW5fbHVtYV9zYW1wbGVzIGFuZCBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcyBhcmUNCisg ICAgLy8gY29uc3RyYWluZWQgdG8gYmUgbm90IGdyZWF0ZXIgdGhhbiBzcXJ0KE1heEx1bWFQcyAq IDgpLiAgSGVuY2UgaGVpZ2h0Lw0KKyAgICAvLyB3aWR0aCBhcmUgYm91bmRlZCBhYm92ZSBieSBz cXJ0KDggKiAzNTY1MTU4NCkgPSAxNjg4OC4yIHNhbXBsZXMuDQorICAgIEVWQ19NQVhfV0lEVEgg ID0gMTY4ODgsDQorICAgIEVWQ19NQVhfSEVJR0hUID0gMTY4ODgsDQorDQorICAgIC8vIEEuNC4x OiB0YWJsZSBBLjEgYWxsb3dzIGF0IG1vc3QgMjIgdGlsZSByb3dzIGZvciBhbnkgbGV2ZWwuDQor ICAgIEVWQ19NQVhfVElMRV9ST1dTICAgID0gMjIsDQorICAgIC8vIEEuNC4xOiB0YWJsZSBBLjEg YWxsb3dzIGF0IG1vc3QgMjAgdGlsZSBjb2x1bW5zIGZvciBhbnkgbGV2ZWwuDQorICAgIEVWQ19N QVhfVElMRV9DT0xVTU5TID0gMjAsDQorDQorICAgIC8vIEEuNC4xOiB0YWJsZSBBLjEgYWxsb3dz IGF0IG1vc3QgNjAwIHNsaWNlIHNlZ21lbnRzIGZvciBhbnkgbGV2ZWwuDQorICAgIEVWQ19NQVhf U0xJQ0VfU0VHTUVOVFMgPSA2MDAsDQorDQorICAgIC8vIDcuNC43LjE6IGluIHRoZSB3b3JzdCBj YXNlICh0aWxlc19lbmFibGVkX2ZsYWcgYW5kDQorICAgIC8vIGVudHJvcHlfY29kaW5nX3N5bmNf ZW5hYmxlZF9mbGFnIGFyZSBib3RoIHNldCksIGVudHJ5IHBvaW50cyBjYW4gYmUNCisgICAgLy8g cGxhY2VkIGF0IHRoZSBiZWdpbm5pbmcgb2YgZXZlcnkgQ3RiIHJvdyBpbiBldmVyeSB0aWxlLCBn aXZpbmcgYW4NCisgICAgLy8gdXBwZXIgYm91bmQgb2YgKG51bV90aWxlX2NvbHVtbnNfbWludXMx ICsgMSkgKiBQaWNIZWlnaHRJbkN0YnNZIC0gMS4NCisgICAgLy8gT25seSBhIHN0cmVhbSB3aXRo IHZlcnkgaGlnaCByZXNvbHV0aW9uIGFuZCBwZXJ2ZXJzZSBwYXJhbWV0ZXJzIGNvdWxkDQorICAg IC8vIGdldCBuZWFyIHRoYXQsIHRob3VnaCwgc28gc2V0IGEgbG93ZXIgbGltaXQgaGVyZSB3aXRo IHRoZSBtYXhpbXVtDQorICAgIC8vIHBvc3NpYmxlIHZhbHVlIGZvciA0SyB2aWRlbyAoYXQgbW9z dCAxMzUgMTZ4MTYgQ3RiIHJvd3MpLg0KKyAgICBIRVZDX01BWF9FTlRSWV9QT0lOVF9PRkZTRVRT ID0gRVZDX01BWF9USUxFX0NPTFVNTlMgKiAxMzUsDQorfTsNCisNCitpbnQgZmZfaXNvbV93cml0 ZV9ldmNjKEFWSU9Db250ZXh0ICpwYiwgY29uc3QgdWludDhfdCAqZGF0YSwNCisgICAgICAgICAg ICAgICAgICAgICAgIGludCBzaXplLCBpbnQgcHNfYXJyYXlfY29tcGxldGVuZXNzKTsNCisNCisj ZW5kaWYgLy8gQVZGT1JNQVRfRVZDX0gNCisNCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9ldmNk ZWMuYyBiL2xpYmF2Zm9ybWF0L2V2Y2RlYy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMC4uNThkYzY3MWQyNA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvbGliYXZmb3JtYXQv ZXZjZGVjLmMNCkBAIC0wLDAgKzEsMTQyIEBADQorLyoNCisgKiBSQVcgRVZDIHZpZGVvIGRlbXV4 ZXINCisgKg0KKyAqIENvcHlyaWdodCAoYykgMjAyMSBEYXdpZCBLb3ppbnNraSA8ZC5rb3ppbnNr aUBzYW1zdW5nLmNvbT4NCisgKg0KKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4NCisg Kg0KKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3INCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljDQorICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyDQorICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQorICoNCisgKiBGRm1wZWcgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCisgKiBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv Zg0KKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VDQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4NCisgKg0KKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMNCisgKiBMaWNlbnNlIGFsb25nIHdpdGggRkZt cGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQorICogRm91bmRhdGlvbiwg SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x MzAxIFVTQQ0KKyAqLw0KKw0KKyNpbmNsdWRlICJsaWJhdmNvZGVjL2dldF9iaXRzLmgiDQorI2lu Y2x1ZGUgImxpYmF2Y29kZWMvZ29sb21iLmgiDQorI2luY2x1ZGUgImxpYmF2Y29kZWMvaW50ZXJu YWwuaCINCisNCisjaW5jbHVkZSAicmF3ZGVjLmgiDQorI2luY2x1ZGUgImF2Zm9ybWF0LmgiDQor DQorLy8gVGhlIGxlbmd0aCBmaWVsZCB0aGF0IGluZGljYXRlcyB0aGUgbGVuZ3RoIGluIGJ5dGVz IG9mIHRoZSBmb2xsb3dpbmcgTkFMIHVuaXQgaXMgY29uZmlndXJlZCB0byBiZSBvZiA0IGJ5dGVz DQorI2RlZmluZSBFVkNfTkFMX1VOSVRfTEVOR1RIX0JZVEUgICAgICAgICg0KSAgLyogYnl0ZSAq Lw0KKw0KKyNkZWZpbmUgRVZDX05BTF9IRUFERVJfU0laRSAgICAgICAgICAgICAoMikgIC8qIGJ5 dGUgKi8NCisjZGVmaW5lIE1BWF9TUFNfQ05UICAgICAgICAgICAgICAgICAgICAgKDE2KSAvKiBk ZWZpbmVkIHZhbHVlIGluIEVWQyBzdGFuZGFyZCAqLw0KKw0KKy8vIE5BTFUgdHlwZXMNCisvLyBA c2VlIElTT19JRUNfMjMwOTQtMV8yMDIwIDcuNC4yLjIgTkFMIHVuaXQgaGVhZGVyIHNlbWFudGlj cw0KKy8vDQorI2RlZmluZSBFVkNfTlVUX05PTklEUiAgICAgICAgICAgICAgICAgICgwKSAgLyog Q29kZWQgc2xpY2Ugb2YgYSBub24tSURSIHBpY3R1cmUgKi8NCisjZGVmaW5lIEVWQ19OVVRfSURS ICAgICAgICAgICAgICAgICAgICAgKDEpICAvKiBDb2RlZCBzbGljZSBvZiBhbiBJRFIgcGljdHVy ZSAqLw0KKyNkZWZpbmUgRVZDX05VVF9TUFMgICAgICAgICAgICAgICAgICAgICAoMjQpIC8qIFNl cXVlbmNlIHBhcmFtZXRlciBzZXQgKi8NCisjZGVmaW5lIEVWQ19OVVRfUFBTICAgICAgICAgICAg ICAgICAgICAgKDI1KSAvKiBQaWN0dXJlIHBhcmVtZXRlciBzZXQgKi8NCisjZGVmaW5lIEVWQ19O VVRfQVBTICAgICAgICAgICAgICAgICAgICAgKDI2KSAvKiBBZGFwdGF0aW9uIHBhcmFtZXRlciBz ZXQgKi8NCisjZGVmaW5lIEVWQ19OVVRfRkQgICAgICAgICAgICAgICAgICAgICAgKDI3KSAvKiBG aWxsZXIgZGF0YSAqLw0KKyNkZWZpbmUgRVZDX05VVF9TRUkgICAgICAgICAgICAgICAgICAgICAo MjgpIC8qIFN1cHBsZW1lbnRhbCBlbmhhbmNlbWVudCBpbmZvcm1hdGlvbiAqLw0KKw0KK3R5cGVk ZWYgc3RydWN0IEVWQ1BhcnNlckNvbnRleHQgew0KKyAgICBpbnQgZ290X3NwczsNCisgICAgaW50 IGdvdF9wcHM7DQorICAgIGludCBnb3RfaWRyOw0KKyAgICBpbnQgZ290X25vbmlkcjsNCit9IEVW Q1BhcnNlckNvbnRleHQ7DQorDQorc3RhdGljIGludCBnZXRfbmFsdV90eXBlKGNvbnN0IHVpbnQ4 X3QgKmJpdHMsIGludCBiaXRzX3NpemUpDQorew0KKyAgICBpbnQgdW5pdF90eXBlX3BsdXMxID0g MDsNCisNCisgICAgaWYoYml0c19zaXplID49IEVWQ19OQUxfSEVBREVSX1NJWkUpIHsNCisgICAg ICAgIHVuc2lnbmVkIGNoYXIgKnAgPSAodW5zaWduZWQgY2hhciAqKWJpdHM7DQorICAgICAgICAv LyBmb3JiaWRkZW5femVyb19iaXQNCisgICAgICAgIGlmICgocFswXSAmIDB4ODApICE9IDApIHsN CisgICAgICAgICAgICBhdl9sb2coTlVMTCwgQVZfTE9HX0VSUk9SLCAiQ2Fubm90IGdldCBiaXRz dHJlYW0gaW5mb3JtYXRpb24uIE1hbGZvcm1lZCBiaXRzdHJlYW0uXG4iKTsNCisgICAgICAgICAg ICByZXR1cm4gLTE7DQorICAgICAgICB9DQorDQorICAgICAgICAvLyBuYWxfdW5pdF90eXBlDQor ICAgICAgICB1bml0X3R5cGVfcGx1czEgPSAocFswXSA+PiAxKSAmIDB4M0Y7DQorICAgIH0NCisN CisgICAgcmV0dXJuIHVuaXRfdHlwZV9wbHVzMSAtIDE7DQorfQ0KKw0KK3N0YXRpYyB1aW50MzJf dCByZWFkX25hbF91bml0X2xlbmd0aChjb25zdCB1aW50OF90ICpiaXRzLCBpbnQgYml0c19zaXpl KQ0KK3sNCisgICAgdWludDMyX3QgbmFsdV9sZW4gPSAwOw0KKw0KKyAgICBpZihiaXRzX3NpemUg Pj0gRVZDX05BTF9VTklUX0xFTkdUSF9CWVRFKSB7DQorDQorICAgICAgICBpbnQgdCA9IDA7DQor ICAgICAgICB1bnNpZ25lZCBjaGFyICpwID0gKHVuc2lnbmVkIGNoYXIgKiliaXRzOw0KKw0KKyAg ICAgICAgZm9yKGludCBpPTA7IGk8RVZDX05BTF9VTklUX0xFTkdUSF9CWVRFOyBpKyspIHsNCisg ICAgICAgICAgICB0ID0gKHQgPDwgOCkgfCBwW2ldOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAg bmFsdV9sZW4gPSB0Ow0KKyAgICAgICAgaWYobmFsdV9sZW4gPT0gMCkgew0KKyAgICAgICAgICAg IGF2X2xvZyhOVUxMLCBBVl9MT0dfRVJST1IsICJJbnZhbGlkIGJpdHN0cmVhbSBzaXplIVxuIik7 DQorICAgICAgICAgICAgcmV0dXJuIDA7DQorICAgICAgICB9DQorICAgIH0NCisNCisgICAgcmV0 dXJuIG5hbHVfbGVuOw0KK30NCisNCitzdGF0aWMgaW50IHBhcnNlX25hbF91bml0cyhjb25zdCBB VlByb2JlRGF0YSAqcCwgRVZDUGFyc2VyQ29udGV4dCAqZXYpDQorew0KKyAgICBpbnQgbmFsdV90 eXBlOw0KKyAgICBzaXplX3QgbmFsdV9zaXplOw0KKyAgICB1bnNpZ25lZCBjaGFyICpiaXRzID0g KHVuc2lnbmVkIGNoYXIgKilwLT5idWY7DQorICAgIGludCBieXRlc190b19yZWFkID0gcC0+YnVm X3NpemU7DQorDQorICAgIHdoaWxlKGJ5dGVzX3RvX3JlYWQgPiBFVkNfTkFMX1VOSVRfTEVOR1RI X0JZVEUpIHsNCisNCisgICAgICAgIG5hbHVfc2l6ZSA9IHJlYWRfbmFsX3VuaXRfbGVuZ3RoKGJp dHMsIEVWQ19OQUxfVU5JVF9MRU5HVEhfQllURSk7DQorICAgICAgICBpZihuYWx1X3NpemUgPT0g MCkgYnJlYWs7DQorDQorICAgICAgICBiaXRzICs9IEVWQ19OQUxfVU5JVF9MRU5HVEhfQllURTsN CisgICAgICAgIGJ5dGVzX3RvX3JlYWQgLT0gRVZDX05BTF9VTklUX0xFTkdUSF9CWVRFOw0KKw0K KyAgICAgICAgaWYoYnl0ZXNfdG9fcmVhZCA8IG5hbHVfc2l6ZSkgYnJlYWs7DQorDQorICAgICAg ICBuYWx1X3R5cGUgPSBnZXRfbmFsdV90eXBlKGJpdHMsIGJ5dGVzX3RvX3JlYWQpOw0KKw0KKyAg ICAgICAgYml0cyArPSBuYWx1X3NpemU7DQorICAgICAgICBieXRlc190b19yZWFkIC09IG5hbHVf c2l6ZTsNCisNCisgICAgICAgIGlmIChuYWx1X3R5cGUgPT0gRVZDX05VVF9TUFMpDQorICAgICAg ICAgICAgZXYtPmdvdF9zcHMrKzsNCisgICAgICAgIGVsc2UgaWYgKG5hbHVfdHlwZSA9PSBFVkNf TlVUX1BQUykNCisgICAgICAgICAgICBldi0+Z290X3BwcysrOw0KKyAgICAgICAgZWxzZSBpZiAo bmFsdV90eXBlID09IEVWQ19OVVRfSURSICkNCisgICAgICAgICAgICBldi0+Z290X2lkcisrOw0K KyAgICAgICAgZWxzZSBpZiAobmFsdV90eXBlID09IEVWQ19OVVRfTk9OSURSKQ0KKyAgICAgICAg ICAgIGV2LT5nb3Rfbm9uaWRyKys7DQorICAgIH0NCisNCisgICAgcmV0dXJuIDA7DQorfQ0KKw0K K3N0YXRpYyBpbnQgZXZjX3Byb2JlKGNvbnN0IEFWUHJvYmVEYXRhICpwKQ0KK3sNCisgICAgRVZD UGFyc2VyQ29udGV4dCBldiA9IHswfTsNCisgICAgaW50IHJldCA9IHBhcnNlX25hbF91bml0cyhw LCAmZXYpOw0KKw0KKyAgICBpZiAocmV0ID09IDAgJiYgZXYuZ290X3NwcyAmJiBldi5nb3RfcHBz ICYmIChldi5nb3RfaWRyIHx8IGV2LmdvdF9ub25pZHIgPiAzKSkNCisgICAgICAgIHJldHVybiBB VlBST0JFX1NDT1JFX0VYVEVOU0lPTiArIDE7ICAvLyAxIG1vcmUgdGhhbiAubXBnDQorDQorICAg IHJldHVybiAwOw0KK30NCisNCitGRl9ERUZfUkFXVklERU9fREVNVVhFUihldmMsICJyYXcgRVZD IHZpZGVvIiwgZXZjX3Byb2JlLCAiZXZjIiwgQVZfQ09ERUNfSURfRVZDKQ0KZGlmZiAtLWdpdCBh L2xpYmF2Zm9ybWF0L2lzb21fdGFncy5jIGIvbGliYXZmb3JtYXQvaXNvbV90YWdzLmMNCmluZGV4 IDM2MmNiNzdlOGYuLjk4Zjg2NjA5NGIgMTAwNjQ0DQotLS0gYS9saWJhdmZvcm1hdC9pc29tX3Rh Z3MuYw0KKysrIGIvbGliYXZmb3JtYXQvaXNvbV90YWdzLmMNCkBAIC0xNDcsNiArMTQ3LDggQEAg Y29uc3QgQVZDb2RlY1RhZyBmZl9jb2RlY19tb3Z2aWRlb190YWdzW10gPSB7DQogICAgIHsgQVZf Q09ERUNfSURfSDI2NCwgTUtUQUcoJ2QnLCAndicsICdhJywgJzEnKSB9LCAvKiBBVkMtYmFzZWQg RG9sYnkgVmlzaW9uIGRlcml2ZWQgZnJvbSBhdmMxICovDQogICAgIHsgQVZfQ09ERUNfSURfSDI2 NCwgTUtUQUcoJ2QnLCAndicsICdhJywgJ3YnKSB9LCAvKiBBVkMtYmFzZWQgRG9sYnkgVmlzaW9u IGRlcml2ZWQgZnJvbSBhdmMzICovDQogDQorICAgIHsgQVZfQ09ERUNfSURfRVZDLCAgTUtUQUco J2UnLCAndicsICdjJywgJzEnKSB9LCAvKiBFVkMvTVBFRy01ICovDQorDQogICAgIHsgQVZfQ09E RUNfSURfVlA4LCAgTUtUQUcoJ3YnLCAncCcsICcwJywgJzgnKSB9LCAvKiBWUDggKi8NCiAgICAg eyBBVl9DT0RFQ19JRF9WUDksICBNS1RBRygndicsICdwJywgJzAnLCAnOScpIH0sIC8qIFZQOSAq Lw0KICAgICB7IEFWX0NPREVDX0lEX0FWMSwgIE1LVEFHKCdhJywgJ3YnLCAnMCcsICcxJykgfSwg LyogQVYxICovDQpkaWZmIC0tZ2l0IGEvbGliYXZmb3JtYXQvbW92LmMgYi9saWJhdmZvcm1hdC9t b3YuYw0KaW5kZXggNmVlNmVkMDk1MC4uMjgwNDllNjc5MCAxMDA2NDQNCi0tLSBhL2xpYmF2Zm9y bWF0L21vdi5jDQorKysgYi9saWJhdmZvcm1hdC9tb3YuYw0KQEAgLTkwOTAsNyArOTA5MCw3IEBA IGNvbnN0IEFWSW5wdXRGb3JtYXQgZmZfbW92X2RlbXV4ZXIgPSB7DQogICAgIC5sb25nX25hbWUg ICAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJRdWlja1RpbWUgLyBNT1YiKSwNCiAgICAgLnBy aXZfY2xhc3MgICAgID0gJm1vdl9jbGFzcywNCiAgICAgLnByaXZfZGF0YV9zaXplID0gc2l6ZW9m KE1PVkNvbnRleHQpLA0KLSAgICAuZXh0ZW5zaW9ucyAgICAgPSAibW92LG1wNCxtNGEsM2dwLDNn MixtajIscHNwLG00Yixpc20saXNtdixpc21hLGY0dixhdmlmIiwNCisgICAgLmV4dGVuc2lvbnMg ICAgID0gIm1vdixtcDQsbTRhLDNncCwzZzIsbWoyLHBzcCxtNGIsaXNtLGlzbXYsaXNtYSxmNHYs YXZpZixldmMiLA0KICAgICAuZmxhZ3NfaW50ZXJuYWwgPSBGRl9GTVRfSU5JVF9DTEVBTlVQLA0K ICAgICAucmVhZF9wcm9iZSAgICAgPSBtb3ZfcHJvYmUsDQogICAgIC5yZWFkX2hlYWRlciAgICA9 IG1vdl9yZWFkX2hlYWRlciwNCmRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9tb3ZlbmMuYyBiL2xp YmF2Zm9ybWF0L21vdmVuYy5jDQppbmRleCBjOGIyZTE0MWNiLi45M2U0ZjY0YTYzIDEwMDY0NA0K LS0tIGEvbGliYXZmb3JtYXQvbW92ZW5jLmMNCisrKyBiL2xpYmF2Zm9ybWF0L21vdmVuYy5jDQpA QCAtMzUsNiArMzUsNyBAQA0KICNpbmNsdWRlICJpc29tLmgiDQogI2luY2x1ZGUgImF2MS5oIg0K ICNpbmNsdWRlICJhdmMuaCINCisjaW5jbHVkZSAiZXZjLmgiDQogI2luY2x1ZGUgImxpYmF2Y29k ZWMvYWMzX3BhcnNlcl9pbnRlcm5hbC5oIg0KICNpbmNsdWRlICJsaWJhdmNvZGVjL2RueGhkZGF0 YS5oIg0KICNpbmNsdWRlICJsaWJhdmNvZGVjL2ZsYWMuaCINCkBAIC0xMzkyLDYgKzEzOTMsMjEg QEAgc3RhdGljIGludCBtb3Zfd3JpdGVfaHZjY190YWcoQVZJT0NvbnRleHQgKnBiLCBNT1ZUcmFj ayAqdHJhY2spDQogICAgIHJldHVybiB1cGRhdGVfc2l6ZShwYiwgcG9zKTsNCiB9DQogDQorc3Rh dGljIGludCBtb3Zfd3JpdGVfZXZjY190YWcoQVZJT0NvbnRleHQgKnBiLCBNT1ZUcmFjayAqdHJh Y2spDQorew0KKyAgICBpbnQ2NF90IHBvcyA9IGF2aW9fdGVsbChwYik7DQorDQorICAgIGF2aW9f d2IzMihwYiwgMCk7DQorICAgIGZmaW9fd2ZvdXJjYyhwYiwgImV2Y0MiKTsNCisNCisgICAgaWYg KHRyYWNrLT50YWcgPT0gTUtUQUcoJ2UnLCd2JywnYycsJzEnKSkNCisgICAgICAgIGZmX2lzb21f d3JpdGVfZXZjYyhwYiwgdHJhY2stPnZvc19kYXRhLCB0cmFjay0+dm9zX2xlbiwgMSk7DQorICAg IGVsc2UNCisgICAgICAgIGZmX2lzb21fd3JpdGVfZXZjYyhwYiwgdHJhY2stPnZvc19kYXRhLCB0 cmFjay0+dm9zX2xlbiwgMCk7DQorDQorICAgIHJldHVybiB1cGRhdGVfc2l6ZShwYiwgcG9zKTsN Cit9DQorDQogLyogYWxzbyB1c2VkIGJ5IGFsbCBhdmlkIGNvZGVjcyAoZHYsIGlteCwgbWVyaWRp ZW4pIGFuZCB0aGVpciB2YXJpYW50cyAqLw0KIHN0YXRpYyBpbnQgbW92X3dyaXRlX2F2aWRfdGFn KEFWSU9Db250ZXh0ICpwYiwgTU9WVHJhY2sgKnRyYWNrKQ0KIHsNCkBAIC0xNjQxLDYgKzE2NTcs MTYgQEAgc3RhdGljIGludCBtb3ZfZ2V0X2gyNjRfY29kZWNfdGFnKEFWRm9ybWF0Q29udGV4dCAq cywgTU9WVHJhY2sgKnRyYWNrKQ0KICAgICByZXR1cm4gdGFnOw0KIH0NCiANCitzdGF0aWMgaW50 IG1vdl9nZXRfZXZjX2NvZGVjX3RhZyhBVkZvcm1hdENvbnRleHQgKnMsIE1PVlRyYWNrICp0cmFj aykNCit7DQorICAgIGludCB0YWcgPSB0cmFjay0+cGFyLT5jb2RlY190YWc7DQorDQorICAgIGlm ICghdGFnKQ0KKyAgICAgICAgdGFnID0gTUtUQUcoJ2UnLCAndicsICdjJywgJ2knKTsNCisNCisg ICAgcmV0dXJuIHRhZzsNCit9DQorDQogc3RhdGljIGNvbnN0IHN0cnVjdCB7DQogICAgIGVudW0g QVZQaXhlbEZvcm1hdCBwaXhfZm10Ow0KICAgICB1aW50MzJfdCB0YWc7DQpAQCAtMTcyMiw2ICsx NzQ4LDggQEAgc3RhdGljIHVuc2lnbmVkIGludCBtb3ZfZ2V0X2NvZGVjX3RhZyhBVkZvcm1hdENv bnRleHQgKnMsIE1PVlRyYWNrICp0cmFjaykNCiAgICAgICAgICAgICB0YWcgPSBtb3ZfZ2V0X21w ZWcyX3hkY2FtX2NvZGVjX3RhZyhzLCB0cmFjayk7DQogICAgICAgICBlbHNlIGlmICh0cmFjay0+ cGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IMjY0KQ0KICAgICAgICAgICAgIHRhZyA9IG1v dl9nZXRfaDI2NF9jb2RlY190YWcocywgdHJhY2spOw0KKyAgICAgICAgZWxzZSBpZiAodHJhY2st PnBhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfRVZDKQ0KKyAgICAgICAgICAgIHRhZyA9IG1v dl9nZXRfZXZjX2NvZGVjX3RhZyhzLCB0cmFjayk7DQogICAgICAgICBlbHNlIGlmICh0cmFjay0+ cGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9ETlhIRCkNCiAgICAgICAgICAgICB0YWcgPSBt b3ZfZ2V0X2RueGhkX2NvZGVjX3RhZyhzLCB0cmFjayk7DQogICAgICAgICBlbHNlIGlmICh0cmFj ay0+cGFyLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9WSURFTykgew0KQEAgLTIyODAsNiAr MjMwOCw5IEBAIHN0YXRpYyBpbnQgbW92X3dyaXRlX3ZpZGVvX3RhZyhBVkZvcm1hdENvbnRleHQg KnMsIEFWSU9Db250ZXh0ICpwYiwgTU9WTXV4Q29udGV4DQogICAgICAgICBtb3Zfd3JpdGVfYXZj Y190YWcocGIsIHRyYWNrKTsNCiAgICAgICAgIGlmICh0cmFjay0+bW9kZSA9PSBNT0RFX0lQT0Qp DQogICAgICAgICAgICAgbW92X3dyaXRlX3V1aWRfdGFnX2lwb2QocGIpOw0KKyAgICB9DQorICAg IGVsc2UgaWYgKHRyYWNrLT5wYXItPmNvZGVjX2lkID09QVZfQ09ERUNfSURfRVZDKSB7DQorICAg ICAgICBtb3Zfd3JpdGVfZXZjY190YWcocGIsIHRyYWNrKTsNCiAgICAgfSBlbHNlIGlmICh0cmFj ay0+cGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9WUDkpIHsNCiAgICAgICAgIG1vdl93cml0 ZV92cGNjX3RhZyhtb3YtPmZjLCBwYiwgdHJhY2spOw0KICAgICB9IGVsc2UgaWYgKHRyYWNrLT5w YXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0FWMSkgew0KQEAgLTYwMzAsNyArNjA2MSw4IEBA IGludCBmZl9tb3Zfd3JpdGVfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBr dCkNCiAgICAgaWYgKChwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX0ROWEhEIHx8DQogICAg ICAgICAgcGFyLT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IMjY0IHx8DQogICAgICAgICAgcGFy LT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9IRVZDIHx8DQotICAgICAgICAgcGFyLT5jb2RlY19p ZCA9PSBBVl9DT0RFQ19JRF9UUlVFSEQpICYmICF0cmstPnZvc19sZW4gJiYNCisgICAgICAgICBw YXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX1RSVUVIRCB8fA0KKyAgICAgICAgIHBhci0+Y29k ZWNfaWQgPT0gQVZfQ09ERUNfSURfRVZDKSAmJiAhdHJrLT52b3NfbGVuICYmDQogICAgICAgICAg IVRBR19JU19BVkNJKHRyay0+dGFnKSkgew0KICAgICAgICAgLyogY29weSBmcmFtZSB0byBjcmVh dGUgbmVlZGVkIGF0b21zICovDQogICAgICAgICB0cmstPnZvc19sZW4gID0gc2l6ZTsNCkBAIC03 Njg5LDYgKzc3MjEsNyBAQCBzdGF0aWMgY29uc3QgQVZDb2RlY1RhZyBjb2RlY19tcDRfdGFnc1td ID0gew0KICAgICB7IEFWX0NPREVDX0lEX0gyNjQsICAgICAgICAgICAgTUtUQUcoJ2EnLCAndics ICdjJywgJzMnKSB9LA0KICAgICB7IEFWX0NPREVDX0lEX0hFVkMsICAgICAgICAgICAgTUtUQUco J2gnLCAnZScsICd2JywgJzEnKSB9LA0KICAgICB7IEFWX0NPREVDX0lEX0hFVkMsICAgICAgICAg ICAgTUtUQUcoJ2gnLCAndicsICdjJywgJzEnKSB9LA0KKyAgICB7IEFWX0NPREVDX0lEX0VWQywg ICAgICAgICAgICAgTUtUQUcoJ2UnLCAndicsICdjJywgJzEnKSB9LA0KICAgICB7IEFWX0NPREVD X0lEX01QRUcyVklERU8sICAgICAgTUtUQUcoJ20nLCAncCcsICc0JywgJ3YnKSB9LA0KICAgICB7 IEFWX0NPREVDX0lEX01QRUcxVklERU8sICAgICAgTUtUQUcoJ20nLCAncCcsICc0JywgJ3YnKSB9 LA0KICAgICB7IEFWX0NPREVDX0lEX01KUEVHLCAgICAgICAgICAgTUtUQUcoJ20nLCAncCcsICc0 JywgJ3YnKSB9LA0KZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L3Jhd2VuYy5jIGIvbGliYXZmb3Jt YXQvcmF3ZW5jLmMNCmluZGV4IDI2N2ZjZTI1MmQuLmI3YjJhZmY0NTMgMTAwNjQ0DQotLS0gYS9s aWJhdmZvcm1hdC9yYXdlbmMuYw0KKysrIGIvbGliYXZmb3JtYXQvcmF3ZW5jLmMNCkBAIC00MDEs NiArNDAxLDE5IEBAIGNvbnN0IEFWT3V0cHV0Rm9ybWF0IGZmX2hldmNfbXV4ZXIgPSB7DQogfTsN CiAjZW5kaWYNCiANCisjaWYgQ09ORklHX0VWQ19NVVhFUg0KK0FWT3V0cHV0Rm9ybWF0IGZmX2V2 Y19tdXhlciA9IHsNCisgICAgLm5hbWUgICAgICAgICAgICAgID0gImV2YyIsDQorICAgIC5sb25n X25hbWUgICAgICAgICA9IE5VTExfSUZfQ09ORklHX1NNQUxMKCJyYXcgRVZDIHZpZGVvIiksDQor ICAgIC5leHRlbnNpb25zICAgICAgICA9ICJldmMiLA0KKyAgICAuYXVkaW9fY29kZWMgICAgICAg PSBBVl9DT0RFQ19JRF9OT05FLA0KKyAgICAudmlkZW9fY29kZWMgICAgICAgPSBBVl9DT0RFQ19J RF9FVkMsDQorICAgIC53cml0ZV9oZWFkZXIgICAgICA9IGZvcmNlX29uZV9zdHJlYW0sDQorICAg IC53cml0ZV9wYWNrZXQgICAgICA9IGZmX3Jhd193cml0ZV9wYWNrZXQsDQorICAgIC5mbGFncyAg ICAgICAgICAgICA9IEFWRk1UX05PVElNRVNUQU1QUywNCit9Ow0KKyNlbmRpZg0KKw0KICNpZiBD T05GSUdfTTRWX01VWEVSDQogY29uc3QgQVZPdXRwdXRGb3JtYXQgZmZfbTR2X211eGVyID0gew0K ICAgICAubmFtZSAgICAgICAgICAgICAgPSAibTR2IiwNCi0tIA0KMi4xNy4xDQoNCg0KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBt YWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21h aWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBh Ym92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1Ympl Y3QgInVuc3Vic2NyaWJlIi4K