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 966684E8C8 for ; Thu, 12 Jun 2025 09:39:23 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id D822168BE10; Thu, 12 Jun 2025 12:39:17 +0300 (EEST) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id A379768B4E4 for ; Thu, 12 Jun 2025 12:39:11 +0300 (EEST) Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-451e2f0d9c2so5643535e9.1 for ; Thu, 12 Jun 2025 02:39:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749721151; x=1750325951; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:thread-topic:message-id:to :from:subject:date:user-agent:from:to:cc:subject:date:message-id :reply-to; bh=EqHw6MNu5RZck9uuGvCrP1JQGRVXRVnK6ZHKf5lk/s8=; b=k1qbUaZV7R1fbI3v2DD8yyT2yP6M3YN1UmAIA8lwSSQVCj0ycDVt9ZBqHx1kfMu6wZ /1rnszWw6c5W5ALP/OyVpk4qG07baFEZHRCh1ex+6wCeBdvfHzhvhsobu7qPHXgrJDYc +QtStZxX1qqTwaafxKyTdwflEaF8BndjnZgxU/SR/u30sYL6KOH9X05KaFyP1Q5hK/rz eIG8Yu3vB5aPkeZ6PTe6agQa/wELyxqB6A6JPhXe8gbcinrWiY+Q8eF9d/uTnX+dyKwR V5H+DP1HX/FHoyO/jmyfq9ucX0MHf/jEFSfEhIAyfRMybofuvOFoiE88DVev6NStMzt4 3F6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749721151; x=1750325951; h=content-transfer-encoding:mime-version:thread-topic:message-id:to :from:subject:date:user-agent:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=EqHw6MNu5RZck9uuGvCrP1JQGRVXRVnK6ZHKf5lk/s8=; b=TPKaU2d+cpaUzmMbW0JQnfH83I5+EnO6ph9YmYjhgsdWgH/OuzqSgzD+Z7F/EHrqgr 9W+uPoXT1i/0f97tvaOigtp6PKZlOVsOIrwweiKiI2WoiQErafJ/jtuKSCTJYFrQH4A9 RwEtX/QCCeifitYSaZC6tafXEyUXz0YwmLSXX109+Kaqihb9wiEJuvC7/DsyhhmKowl/ 9f6EJ4dwVJQlrrmZdIgZSMCVnpkhsOjE/hvi45QWyu2Iy8ikv+eGV7ywNM4l8ClVnb3L TV3WTqesv2EagI78xzKW7JyhqPOQP/1CXme0aiGPIdyc3w2bEtwDw63NuCWKeaMT4EZE o9ug== X-Gm-Message-State: AOJu0Yx6Rubrt5tJkV7+kYjqSRUjadvDhglxB7rkRZ1970wEujDeKQFu qfEPLq1KfryeZB3bWDlFJ2bRrVQNWw3rMHIktETCeOy1kk7j3Yb8y69leeOqhA== X-Gm-Gg: ASbGncuXkJO2UGDGfHXmlerYIjbrhmJGVzrchp2y+bI86d8RnDjJU1GlZT/LiLqm/it 48RT+nuttoCgV+Qy7tbddfnY6AOI5bBnsDCwr0YCcmO0VdoenPMND13vU165EvcFn6JHaBJwrdM dj0naOc6aY/qpy8EtwaTnnBU0eqvgNMefMebYSOfhZqpODwS0LnCr8tAdQukF0iKaw1rmNxWZfR Pj2N6mllt0KcBbng39EK4np6CMcIuV9WlMRylLgM8bk34f9mTef/bmWGRt29Tooz75FkzOaENSV Kc517C4N9c2QGChHAXB9QkmPzgcMVL/2GNj8C91dhJJNPDuTBVqgBEuB5xA6dxH+K8A/UJzfOhc 2fvLtq9K0nlbbTNeucq8Urrml3dK0ccFqvhAZ0XGSpczSo9w= X-Google-Smtp-Source: AGHT+IFvUXLEWw/bzSatTxiBMe9GMjsA8g6toFAxnSvlzubO99J0C4x0JPhwCuw4X5H298hqyruTbQ== X-Received: by 2002:a05:600c:5303:b0:442:f904:1305 with SMTP id 5b1f17b1804b1-4532c27bc4cmr28797195e9.6.1749721150629; Thu, 12 Jun 2025 02:39:10 -0700 (PDT) Received: from [192.168.1.14] (lfbn-idf1-1-107-128.w82-124.abo.wanadoo.fr. [82.124.194.128]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3a56199a930sm1477386f8f.35.2025.06.12.02.39.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Jun 2025 02:39:10 -0700 (PDT) User-Agent: Microsoft-MacOutlook/16.77.23091003 Date: Thu, 12 Jun 2025 11:39:10 +0200 From: Quentin RENARD To: Message-ID: <2E19A3A7-7D7A-4975-80FD-7D4E3CF2D49A@gmail.com> Thread-Topic: [PATCH 2/2] avfilter: added yazf filter Mime-version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avfilter: added yazf filter 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: VGhlIG1haW4gcmVhc29uIGJlaGluZCB0aGlzIGNoYW5nZSBpcyBhZGRpbmcgZmxvYXRpbmcgcG9p bnQgcHJlY2lzaW9uIHRvIHNjYWxlL2Nyb3AgdG8gdGhlIHpvb21wYW4gZmlsdGVyLiBIb3dldmVy IHRoZSBjdXJyZW50IHpvb21wYW4gZmlsdGVyIGhhdmUgYSBmZXcgdGhpbmdzIHRoYXQgZG9u4oCZ dCBmaXQgbXkgdXNlIGNhc2U6CgotIG91dHB1dCBhc3BlY3QgcmF0aW8gaXMgZm9yY2VkIHRvIGJl IHRoZSBzYW1lIGFzIHRoZSBpbnB1dCBhc3BlY3QgcmF0aW8KLSBvdXRwdXQgc2l6ZSBjYW4ndCBi ZSBkeW5hbWljCi0gUFRTIGlzIHJld3JpdHRlbgoKSSd2ZSB0cmllZCB1cGRhdGluZyB0aGUgY3Vy cmVudCB6b29tcGFuIGZpbHRlciBidXQgY291bGRuJ3QgZG8gc29tZXRoaW5nIHRoYXQgd291bGRu J3QgYnJlYWsgdGhpbmdzIGZvciB0aGUgdXNlcnMuCgpUaGVyZWZvcmUgSSBlbmRlZCB1cCBjcmVh dGluZyB0aGlzIG5ldyBmaWx0ZXIuCgpTaWduZWQtb2ZmLWJ5OiBRdWVudGluIFJlbmFyZCA8Y29u dGFjdC1naXRodWJAYXN0aWNvZGUuY29tPgotLS0KIENoYW5nZWxvZyAgICAgICAgICAgICAgICB8 ICAgMSArCiBkb2MvZmlsdGVycy50ZXhpICAgICAgICAgfCAgNTkgKysrKysrKysrKwogbGliYXZm aWx0ZXIvTWFrZWZpbGUgICAgIHwgICAxICsKIGxpYmF2ZmlsdGVyL2FsbGZpbHRlcnMuYyB8ICAg MSArCiBsaWJhdmZpbHRlci92Zl95YXpmLmMgICAgfCAyMzQgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDI5NiBpbnNlcnRpb25zKCspCiBj cmVhdGUgbW9kZSAxMDA2NDQgbGliYXZmaWx0ZXIvdmZfeWF6Zi5jCgpkaWZmIC0tZ2l0IGEvQ2hh bmdlbG9nIGIvQ2hhbmdlbG9nCmluZGV4IDQyMTc0NDk0MzguLjYzMmQwZTAzZDEgMTAwNjQ0Ci0t LSBhL0NoYW5nZWxvZworKysgYi9DaGFuZ2Vsb2cKQEAgLTE4LDYgKzE4LDcgQEAgdmVyc2lvbiA8 bmV4dD46CiAtIEFQViBlbmNvZGluZyBzdXBwb3J0IHRocm91Z2ggYSBsaWJvcGVuYXB2IHdyYXBw ZXIKIC0gVlZDIGRlY29kZXIgc3VwcG9ydHMgYWxsIGNvbnRlbnQgb2YgU0NDIChTY3JlZW4gQ29u dGVudCBDb2RpbmcpOgogICBJQkMgKEludGVyIEJsb2NrIENvcHkpLCBQYWxldHRlIE1vZGUgYW5k IEFDVCAoQWRhcHRpdmUgQ29sb3IgVHJhbnNmb3JtCistIHlhemYgZmlsdGVyCiAKIAogdmVyc2lv biA3LjE6CmRpZmYgLS1naXQgYS9kb2MvZmlsdGVycy50ZXhpIGIvZG9jL2ZpbHRlcnMudGV4aQpp bmRleCA2M2Y1NWY1Nzk0Li45NGIyMDRiN2Y4IDEwMDY0NAotLS0gYS9kb2MvZmlsdGVycy50ZXhp CisrKyBiL2RvYy9maWx0ZXJzLnRleGkKQEAgLTI1OTg2LDYgKzI1OTg2LDY1IEBAIFNldCBibHVy IHN0cmVuZ3RoLiBEZWZhdWx0IHZhbHVlIGlzIDEyOC4KIEBzdWJzZWN0aW9uIENvbW1hbmRzCiBU aGlzIGZpbHRlciBzdXBwb3J0cyBzYW1lIEByZWZ7Y29tbWFuZHN9IGFzIG9wdGlvbnMuCiAKK0Bz ZWN0aW9uIHlhemYKKworQXBwbHkgWm9vbSAmIFBhbiBlZmZlY3Qgd2l0aCBmbG9hdGluZyBwb2lu dCBwcmVjaXNpb24sIHdpdGhvdXQgcmV3cml0aW5nIFBUUywgd2l0aCBwb3NzaWJsZSBkeW5hbWlj IG91dHB1dCBzaXplIGFsbCB0aGUgd2hpbGUgcmVzcGVjdGluZyB0aGUgb3V0cHV0IHNpemUgYXNw ZWN0IHJhdGlvICgieWF6ZiIgbWVhbnMgInlldCBhbm90aGVyIHpvb21wYW4gZmlsdGVyIikuCisK K1RoaXMgZmlsdGVyIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorCitAdGFibGUgQG9w dGlvbgorQGl0ZW0gegorU2V0IHRoZSB6b29tIGV4cHJlc3Npb24uIFJhbmdlIGlzIDEtMTAuIERl ZmF1bHQgaXMgMS4KKworQGl0ZW0geAorQGl0ZW0geQorU2V0IHRoZSB4IGFuZCB5IGV4cHJlc3Np b24uIERlZmF1bHQgaXMgMC4KKworQGl0ZW0gdworQGl0ZW0gaAorU2V0IHRoZSBvdXRwdXQgZnJh bWUgd2lkdGggYW5kIGhlaWdodCBleHByZXNzaW9uLiBEZWZhdWx0IGlzIDEuCitAZW5kIHRhYmxl CisKK0VhY2ggZXhwcmVzc2lvbiBjYW4gY29udGFpbiB0aGUgZm9sbG93aW5nIGNvbnN0YW50czoK KworQHRhYmxlIEBvcHRpb24KK0BpdGVtIGluX3csIGl3CitJbnB1dCB3aWR0aC4KKworQGl0ZW0g aW5faCwgaWgKK0lucHV0IGhlaWdodC4KKworQGl0ZW0gbgorSW5wdXQgZnJhbWUgY291bnQuCisK K0BpdGVtIHQKK1RoZSBpbnB1dCB0aW1lc3RhbXAgZXhwcmVzc2VkIGluIHNlY29uZHMuCitAZW5k IHRhYmxlCisKK0FkZGl0aW9uYWxseSB4IGFuZCB5IGV4cHJlc3Npb25zIGNhbiBjb250YWluIHRo ZSBmb2xsb3dpbmcgY29uc3RhbnRzOgorCitAdGFibGUgQG9wdGlvbgorQGl0ZW0gegorTGFzdCBj YWxjdWxhdGVkIHpvb20gZnJvbSAneicgZXhwcmVzc2lvbiBmb3IgY3VycmVudCBpbnB1dCBmcmFt ZS4KKworQGl0ZW0gencKK0xhc3QgY2FsY3VsYXRlZCB6b29tIHdpZHRoIGZvciBjdXJyZW50IGlu cHV0IGZyYW1lLgorCitAaXRlbSB6aAorTGFzdCBjYWxjdWxhdGVkIHpvb20gaGVpZ2h0IGZvciBj dXJyZW50IGlucHV0IGZyYW1lLgorQGVuZCB0YWJsZQorCitAc3Vic2VjdGlvbiBFeGFtcGxlcwor CitAaXRlbWl6ZQorQGl0ZW0KK1pvb20gaW4gMnggaW50byBjZW50ZXIgb2YgcGljdHVyZSBmb3Ig Zmlyc3QgMzAgZnJhbWVzOgorQGV4YW1wbGUKK3lhemY9eD0nKGl3LzIpLSh6dy8yKSc6eT0nKGlo LzIpLSh6aC8yKSc6ej0nbWluKDIsIDErbiovMzApJzp3PTEwODA6aD0xMDgwIgorQGVuZCBleGFt cGxlCisKK0BlbmQgaXRlbWl6ZQorCiBAc2VjdGlvbiB6b29tcGFuCiAKIEFwcGx5IFpvb20gJiBQ YW4gZWZmZWN0LgpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0ZXIvTWFrZWZpbGUgYi9saWJhdmZpbHRl ci9NYWtlZmlsZQppbmRleCA3YzZkZmNmNGJmLi4yMDU3MDQwMTRkIDEwMDY0NAotLS0gYS9saWJh dmZpbHRlci9NYWtlZmlsZQorKysgYi9saWJhdmZpbHRlci9NYWtlZmlsZQpAQCAtNTgyLDYgKzU4 Miw3IEBAIE9CSlMtJChDT05GSUdfWUFESUZfVklERU9UT09MQk9YX0ZJTFRFUikgICAgICs9IHZm X3lhZGlmX3ZpZGVvdG9vbGJveC5vIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1ldGFsL3V0aWxzLm8gXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeWFkaWZfY29tbW9uLm8KIE9CSlMtJChDT05GSUdfWUFF UEJMVVJfRklMVEVSKSAgICAgICAgICAgICAgICs9IHZmX3lhZXBibHVyLm8KK09CSlMtJChDT05G SUdfWUFaRl9GSUxURVIpICAgICAgICAgICAgICAgICAgICs9IHZmX3lhemYubyBwZXJzcGVjdGl2 ZS5vCiBPQkpTLSQoQ09ORklHX1pNUV9GSUxURVIpICAgICAgICAgICAgICAgICAgICArPSBmX3pt cS5vCiBPQkpTLSQoQ09ORklHX1pPT01QQU5fRklMVEVSKSAgICAgICAgICAgICAgICArPSB2Zl96 b29tcGFuLm8KIE9CSlMtJChDT05GSUdfWlNDQUxFX0ZJTFRFUikgICAgICAgICAgICAgICAgICs9 IHZmX3pzY2FsZS5vCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9hbGxmaWx0ZXJzLmMgYi9saWJh dmZpbHRlci9hbGxmaWx0ZXJzLmMKaW5kZXggM2JjMDQ1YjI4Zi4uNWZjODAzMDNmNSAxMDA2NDQK LS0tIGEvbGliYXZmaWx0ZXIvYWxsZmlsdGVycy5jCisrKyBiL2xpYmF2ZmlsdGVyL2FsbGZpbHRl cnMuYwpAQCAtNTQ0LDYgKzU0NCw3IEBAIGV4dGVybiBjb25zdCBGRkZpbHRlciBmZl92Zl95YWRp ZjsKIGV4dGVybiBjb25zdCBGRkZpbHRlciBmZl92Zl95YWRpZl9jdWRhOwogZXh0ZXJuIGNvbnN0 IEZGRmlsdGVyIGZmX3ZmX3lhZGlmX3ZpZGVvdG9vbGJveDsKIGV4dGVybiBjb25zdCBGRkZpbHRl ciBmZl92Zl95YWVwYmx1cjsKK2V4dGVybiBjb25zdCBGRkZpbHRlciBmZl92Zl95YXpmOwogZXh0 ZXJuIGNvbnN0IEZGRmlsdGVyIGZmX3ZmX3ptcTsKIGV4dGVybiBjb25zdCBGRkZpbHRlciBmZl92 Zl96b29tcGFuOwogZXh0ZXJuIGNvbnN0IEZGRmlsdGVyIGZmX3ZmX3pzY2FsZTsKZGlmZiAtLWdp dCBhL2xpYmF2ZmlsdGVyL3ZmX3lhemYuYyBiL2xpYmF2ZmlsdGVyL3ZmX3lhemYuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43OThiYTEzNzBhCi0tLSAvZGV2L251bGwK KysrIGIvbGliYXZmaWx0ZXIvdmZfeWF6Zi5jCkBAIC0wLDAgKzEsMjM0IEBACisvKgorICogQ29w eXJpZ2h0IChjKSAyMDI1IFF1ZW50aW4gUmVuYXJkCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQg b2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZt cGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZG bXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwg SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x MzAxIFVTQQorICovCisKKyNpbmNsdWRlICJsaWJhdnV0aWwvZXZhbC5oIgorI2luY2x1ZGUgImxp YmF2dXRpbC9vcHQuaCIKKyNpbmNsdWRlICJwZXJzcGVjdGl2ZS5oIgorI2luY2x1ZGUgInZpZGVv LmgiCisKK3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCB2YXJfbmFtZXNbXSA9IHsKKyAgICAiaW5f dyIsICAgIml3IiwKKyAgICAiaW5faCIsICAgImloIiwKKyAgICAieiIsCisgICAgInp3IiwKKyAg ICAiemgiLAorICAgICJuIiwKKyAgICAidCIsCisgICAgTlVMTAorfTsKKworZW51bSB2YXJfbmFt ZSB7CisgICAgVkFSX0lOX1csICAgVkFSX0lXLAorICAgIFZBUl9JTl9ILCAgIFZBUl9JSCwKKyAg ICBWQVJfWiwKKyAgICBWQVJfWlcsCisgICAgVkFSX1pILAorICAgIFZBUl9OLAorICAgIFZBUl9U LAorICAgIFZBUlNfTkIKK307CisKK3R5cGVkZWYgc3RydWN0IFlBWkZDb250ZXh0IHsKKyAgICBj b25zdCBBVkNsYXNzICpjbGFzczsKKyAgICBjaGFyICp4X2V4cHJfc3RyLCAqeV9leHByX3N0ciwg KndfZXhwcl9zdHIsICpoX2V4cHJfc3RyLCAqem9vbV9leHByX3N0cjsKKyAgICBBVkV4cHIgKnhf ZXhwciwgKnlfZXhwciwgKndfZXhwciwgKmhfZXhwciwgKnpvb21fZXhwcjsKKyAgICBkb3VibGUg dmFyX3ZhbHVlc1tWQVJTX05CXTsKKyAgICBQZXJzcGVjdGl2ZVJlc2FtcGxlQ29udGV4dCAqcjsK K30gWUFaRkNvbnRleHQ7CisKK3N0YXRpYyBhdl9jb2xkIGludCBpbml0KEFWRmlsdGVyQ29udGV4 dCAqY3R4KQoreworICAgIFlBWkZDb250ZXh0ICpzID0gY3R4LT5wcml2OworICAgIGludCByZXQ7 CisKKyAgICBzLT5yID0gcGVyc3BlY3RpdmVfcmVzYW1wbGVfY29udGV4dF9hbGxvYyhQRVJTUEVD VElWRV9SRVNBTVBMRV9JTlRFUlBPTEFUSU9OX0xJTkVBUiwgUEVSU1BFQ1RJVkVfUkVTQU1QTEVf U0VOU0VfU09VUkNFKTsKKyAgICBpZiAoIXMtPnIpCisgICAgICAgIHJldHVybiBBVkVSUk9SKEVO T01FTSk7CisKKyAgICByZXQgPSBhdl9leHByX3BhcnNlKCZzLT54X2V4cHIsIHMtPnhfZXhwcl9z dHIsIHZhcl9uYW1lcywgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgMCwgY3R4KTsKKyAgICBpZiAo cmV0IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHJldCA9IGF2X2V4cHJfcGFyc2Uo JnMtPnlfZXhwciwgcy0+eV9leHByX3N0ciwgdmFyX25hbWVzLCBOVUxMLCBOVUxMLCBOVUxMLCBO VUxMLCAwLCBjdHgpOworICAgIGlmIChyZXQgPCAwKQorICAgICAgICByZXR1cm4gcmV0OworCisg ICAgcmV0ID0gYXZfZXhwcl9wYXJzZSgmcy0+d19leHByLCBzLT53X2V4cHJfc3RyLCB2YXJfbmFt ZXMsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIGN0eCk7CisgICAgaWYgKHJldCA8IDApCisg ICAgICAgIHJldHVybiByZXQ7CisKKyAgICByZXQgPSBhdl9leHByX3BhcnNlKCZzLT5oX2V4cHIs IHMtPmhfZXhwcl9zdHIsIHZhcl9uYW1lcywgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgMCwgY3R4 KTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHJldCA9IGF2 X2V4cHJfcGFyc2UoJnMtPnpvb21fZXhwciwgcy0+em9vbV9leHByX3N0ciwgdmFyX25hbWVzLCBO VUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAwLCBjdHgpOworICAgIGlmIChyZXQgPCAwKQorICAgICAg ICByZXR1cm4gcmV0OworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY29uZmlnX291 dGxpbmsoQVZGaWx0ZXJMaW5rICpvdXRsaW5rKQoreworICAgIEFWRmlsdGVyQ29udGV4dCAqY3R4 ID0gb3V0bGluay0+c3JjOworICAgIEFWRmlsdGVyTGluayAqaW5saW5rID0gY3R4LT5pbnB1dHNb MF07CisgICAgWUFaRkNvbnRleHQgKnMgPSBjdHgtPnByaXY7CisKKyAgICBzLT52YXJfdmFsdWVz W1ZBUl9JTl9XXSA9IHMtPnZhcl92YWx1ZXNbVkFSX0lXXSA9IGlubGluay0+dzsKKyAgICBzLT52 YXJfdmFsdWVzW1ZBUl9JTl9IXSA9IHMtPnZhcl92YWx1ZXNbVkFSX0lIXSA9IGlubGluay0+aDsK KworICAgIG91dGxpbmstPncgPSBGRk1BWChhdl9leHByX2V2YWwocy0+d19leHByLCBzLT52YXJf dmFsdWVzLCBOVUxMKSwgMSk7CisgICAgb3V0bGluay0+aCA9IEZGTUFYKGF2X2V4cHJfZXZhbChz LT5oX2V4cHIsIHMtPnZhcl92YWx1ZXMsIE5VTEwpLCAxKTsKKyAgICByZXR1cm4gMDsKK30KKwor c3RhdGljIGludCBmaWx0ZXJfZnJhbWUoQVZGaWx0ZXJMaW5rICppbmxpbmssIEFWRnJhbWUgKmlu KQoreworICAgIEFWRmlsdGVyQ29udGV4dCAqY3R4ID0gaW5saW5rLT5kc3Q7CisgICAgWUFaRkNv bnRleHQgKnMgPSBjdHgtPnByaXY7CisgICAgQVZGaWx0ZXJMaW5rICpvdXRsaW5rID0gY3R4LT5v dXRwdXRzWzBdOworICAgIGludCByZXQ7CisgICAgQVZGcmFtZSAqb3V0ID0gTlVMTDsKKyAgICBm bG9hdCB6b29tLCBhLCBjcm9wX3gsIGNyb3BfeSwgY3JvcF93LCBjcm9wX2g7CisgICAgZG91Ymxl IHJlZls0XVsyXTsKKworICAgIGlubGluay0+dyA9IGluLT53aWR0aDsKKyAgICBpbmxpbmstPmgg PSBpbi0+aGVpZ2h0OworICAgIHMtPnZhcl92YWx1ZXNbVkFSX05dID0gZmZfZmlsdGVyX2xpbmso aW5saW5rKS0+ZnJhbWVfY291bnRfb3V0OworICAgIHMtPnZhcl92YWx1ZXNbVkFSX1RdID0gVFMy VChpbi0+cHRzLCBpbmxpbmstPnRpbWVfYmFzZSk7CisKKyAgICBpZiAoKHJldCA9IGNvbmZpZ19v dXRsaW5rKG91dGxpbmspKSA8IDApCisgICAgICAgIGdvdG8gZXJyOworCisgICAgYSA9IChmbG9h dClvdXRsaW5rLT53IC8gKGZsb2F0KW91dGxpbmstPmg7CisgICAgCisgICAgcy0+dmFyX3ZhbHVl c1tWQVJfWl0gPSB6b29tID0gYXZfY2xpcGQoYXZfZXhwcl9ldmFsKHMtPnpvb21fZXhwciwgcy0+ dmFyX3ZhbHVlcywgTlVMTCksIDEsIDEwKTsKKyAgICAKKyAgICBjcm9wX3cgPSAoZmxvYXQpaW5s aW5rLT53IC8gem9vbTsKKyAgICBjcm9wX2ggPSBjcm9wX3cgLyBhOworICAgIGlmIChjcm9wX2gg PiBpbmxpbmstPmgpIHsKKyAgICAgICAgY3JvcF9oID0gaW5saW5rLT5oOworICAgICAgICBjcm9w X3cgPSBjcm9wX2ggKiBhOworICAgIH0KKyAgICBzLT52YXJfdmFsdWVzW1ZBUl9aV10gPSBjcm9w X3c7CisgICAgcy0+dmFyX3ZhbHVlc1tWQVJfWkhdID0gY3JvcF9oOworICAgIAorICAgIGNyb3Bf eCA9IGF2X2NsaXBkKGF2X2V4cHJfZXZhbChzLT54X2V4cHIsIHMtPnZhcl92YWx1ZXMsIE5VTEwp LCAwLCBGRk1BWChpbmxpbmstPncgLSBjcm9wX3csIDApKTsKKyAgICBjcm9wX3kgPSBhdl9jbGlw ZChhdl9leHByX2V2YWwocy0+eV9leHByLCBzLT52YXJfdmFsdWVzLCBOVUxMKSwgMCwgRkZNQVgo aW5saW5rLT5oIC0gY3JvcF9oLCAwKSk7CisKKyAgICByZWZbMF1bMF0gPSBjcm9wX3g7CisgICAg cmVmWzBdWzFdID0gY3JvcF95OworICAgIHJlZlsxXVswXSA9IGNyb3BfeCArIGNyb3BfdzsKKyAg ICByZWZbMV1bMV0gPSBjcm9wX3k7CisgICAgcmVmWzJdWzBdID0gY3JvcF94OworICAgIHJlZlsy XVsxXSA9IGNyb3BfeSArIGNyb3BfaDsKKyAgICByZWZbM11bMF0gPSBjcm9wX3ggKyBjcm9wX3c7 CisgICAgcmVmWzNdWzFdID0gY3JvcF95ICsgY3JvcF9oOworCisgICAgb3V0ID0gZmZfZ2V0X3Zp ZGVvX2J1ZmZlcihvdXRsaW5rLCBvdXRsaW5rLT53LCBvdXRsaW5rLT5oKTsKKyAgICBpZiAoIW91 dCkgeworICAgICAgICByZXQgPSBBVkVSUk9SKEVOT01FTSk7CisgICAgICAgIGdvdG8gZXJyOwor ICAgIH0KKworICAgIGlmICgocmV0ID0gYXZfZnJhbWVfY29weV9wcm9wcyhvdXQsIGluKSkgPCAw KQorICAgICAgICBnb3RvIGVycjsKKworICAgIGlmICgocmV0ID0gcGVyc3BlY3RpdmVfcmVzYW1w bGVfY29uZmlnX3Byb3BzKHMtPnIsIG91dC0+d2lkdGgsIG91dC0+aGVpZ2h0LCBvdXQtPmZvcm1h dCwgcmVmKSkgPCAwKSB7CisgICAgICAgIGdvdG8gZXJyOworICAgIH0KKworICAgIHBlcnNwZWN0 aXZlX3Jlc2FtcGxlKHMtPnIsIGN0eCwgaW4sIG91dCk7CisKKyAgICBhdl9mcmFtZV9mcmVlKCZp bik7CisgICAgcmV0dXJuIGZmX2ZpbHRlcl9mcmFtZShvdXRsaW5rLCBvdXQpOworICAgIAorZXJy OgorICAgIGF2X2ZyYW1lX2ZyZWUoJmluKTsKKyAgICBhdl9mcmFtZV9mcmVlKCZvdXQpOworICAg IHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBjb25zdCBlbnVtIEFWUGl4ZWxGb3JtYXQgcGl4X2Zt dHNbXSA9IHsKKyAgICBBVl9QSVhfRk1UX1lVVjQxMFAsIEFWX1BJWF9GTVRfWVVWNDExUCwKKyAg ICBBVl9QSVhfRk1UX1lVVjQyMFAsIEFWX1BJWF9GTVRfWVVWNDIyUCwKKyAgICBBVl9QSVhfRk1U X1lVVjQ0MFAsIEFWX1BJWF9GTVRfWVVWNDQ0UCwKKyAgICBBVl9QSVhfRk1UX1lVVko0MTFQLCBB Vl9QSVhfRk1UX1lVVko0MjBQLAorICAgIEFWX1BJWF9GTVRfWVVWSjQyMlAsIEFWX1BJWF9GTVRf WVVWSjQ0MFAsCisgICAgQVZfUElYX0ZNVF9ZVVZKNDQ0UCwKKyAgICBBVl9QSVhfRk1UX1lVVkE0 MjBQLCBBVl9QSVhfRk1UX1lVVkE0MjJQLAorICAgIEFWX1BJWF9GTVRfWVVWQTQ0NFAsCisgICAg QVZfUElYX0ZNVF9OT05FCit9OworCitzdGF0aWMgYXZfY29sZCB2b2lkIHVuaW5pdChBVkZpbHRl ckNvbnRleHQgKmN0eCkKK3sKKyAgICBZQVpGQ29udGV4dCAqcyA9IGN0eC0+cHJpdjsKKworICAg IHBlcnNwZWN0aXZlX3Jlc2FtcGxlX2NvbnRleHRfZnJlZSgmcy0+cik7CisgICAgYXZfZXhwcl9m cmVlKHMtPnhfZXhwcik7CisgICAgYXZfZXhwcl9mcmVlKHMtPnlfZXhwcik7CisgICAgYXZfZXhw cl9mcmVlKHMtPnpvb21fZXhwcik7CisgICAgYXZfZXhwcl9mcmVlKHMtPndfZXhwcik7CisgICAg YXZfZXhwcl9mcmVlKHMtPmhfZXhwcik7Cit9CisKKyNkZWZpbmUgT0ZGU0VUKHgpIG9mZnNldG9m KFlBWkZDb250ZXh0LCB4KQorI2RlZmluZSBGTEFHUyBBVl9PUFRfRkxBR19WSURFT19QQVJBTXxB Vl9PUFRfRkxBR19GSUxURVJJTkdfUEFSQU0KKworc3RhdGljIGNvbnN0IEFWT3B0aW9uIHlhemZf b3B0aW9uc1tdID0geworICAgIHsgInoiLCAic2V0IHRoZSB6b29tIGV4cHJlc3Npb24iLCBPRkZT RVQoem9vbV9leHByX3N0ciksIEFWX09QVF9UWVBFX1NUUklORywgey5zdHIgPSAiMSIgfSwgLmZs YWdzID0gRkxBR1MgfSwKKyAgICB7ICJ4IiwgInNldCB0aGUgem9vbSB4IGV4cHJlc3Npb24iLCBP RkZTRVQoeF9leHByX3N0ciksIEFWX09QVF9UWVBFX1NUUklORywgey5zdHIgPSAiMCIgfSwgLmZs YWdzID0gRkxBR1MgfSwKKyAgICB7ICJ5IiwgInNldCB0aGUgem9vbSB5IGV4cHJlc3Npb24iLCBP RkZTRVQoeV9leHByX3N0ciksIEFWX09QVF9UWVBFX1NUUklORywgey5zdHIgPSAiMCIgfSwgLmZs YWdzID0gRkxBR1MgfSwKKyAgICB7ICJ3IiwgInNldCB0aGUgb3V0cHV0IHcgZXhwcmVzc2lvbiIs IE9GRlNFVCh3X2V4cHJfc3RyKSwgQVZfT1BUX1RZUEVfU1RSSU5HLCB7LnN0ciA9ICIxIiB9LCAu ZmxhZ3MgPSBGTEFHUyB9LAorICAgIHsgImgiLCAic2V0IHRoZSBvdXRwdXQgaCBleHByZXNzaW9u IiwgT0ZGU0VUKGhfZXhwcl9zdHIpLCBBVl9PUFRfVFlQRV9TVFJJTkcsIHsuc3RyID0gIjEiIH0s IC5mbGFncyA9IEZMQUdTIH0sCisgICAgeyBOVUxMIH0KK307CisKK0FWRklMVEVSX0RFRklORV9D TEFTUyh5YXpmKTsKKworc3RhdGljIGNvbnN0IEFWRmlsdGVyUGFkIGF2ZmlsdGVyX3ZmX3lhemZf aW5wdXRzW10gPSB7CisgICAgeworICAgICAgICAubmFtZSAgICAgICAgID0gImRlZmF1bHQiLAor ICAgICAgICAudHlwZSAgICAgICAgID0gQVZNRURJQV9UWVBFX1ZJREVPLAorICAgICAgICAuZmls dGVyX2ZyYW1lID0gZmlsdGVyX2ZyYW1lLAorICAgIH0sCit9OworCitzdGF0aWMgY29uc3QgQVZG aWx0ZXJQYWQgYXZmaWx0ZXJfdmZfeWF6Zl9vdXRwdXRzW10gPSB7CisgICAgeworICAgICAgICAu bmFtZSAgICAgICAgID0gImRlZmF1bHQiLAorICAgICAgICAudHlwZSAgICAgICAgID0gQVZNRURJ QV9UWVBFX1ZJREVPLAorICAgICAgICAuY29uZmlnX3Byb3BzID0gY29uZmlnX291dGxpbmssCisg ICAgfSwKK307CisKK2NvbnN0IEZGRmlsdGVyIGZmX3ZmX3lhemYgPSB7CisgICAgLnAubmFtZSAg ICAgICAgICA9ICJ5YXpmIiwKKyAgICAucC5kZXNjcmlwdGlvbiAgID0gTlVMTF9JRl9DT05GSUdf U01BTEwoIkFwcGx5IFpvb20gJiBQYW4gZWZmZWN0IHdpdGggZmxvYXRpbmcgcG9pbnQgcHJlY2lz aW9uLiIpLAorICAgIC5wLnByaXZfY2xhc3MgICAgPSAmeWF6Zl9jbGFzcywKKyAgICAucC5mbGFn cyAgICAgICAgID0gQVZGSUxURVJfRkxBR19TTElDRV9USFJFQURTLAorICAgIC5pbml0ICAgICAg ICAgICAgPSBpbml0LAorICAgIC5wcml2X3NpemUgICAgICAgPSBzaXplb2YoWUFaRkNvbnRleHQp LAorICAgIC51bmluaXQgICAgICAgICAgPSB1bmluaXQsCisgICAgRklMVEVSX0lOUFVUUyhhdmZp bHRlcl92Zl95YXpmX2lucHV0cyksCisgICAgRklMVEVSX09VVFBVVFMoYXZmaWx0ZXJfdmZfeWF6 Zl9vdXRwdXRzKSwKKyAgICBGSUxURVJfUElYRk1UU19BUlJBWShwaXhfZm10cyksCit9OwotLSAK Mi4zOS4xCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6 Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmli ZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVn Lm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K