From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5483CC433EF for ; Fri, 3 Dec 2021 04:10:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346531AbhLCEN1 (ORCPT ); Thu, 2 Dec 2021 23:13:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53854 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241617AbhLCEN0 (ORCPT ); Thu, 2 Dec 2021 23:13:26 -0500 Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com [IPv6:2607:f8b0:4864:20::72f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9AEC2C061757 for ; Thu, 2 Dec 2021 20:10:02 -0800 (PST) Received: by mail-qk1-x72f.google.com with SMTP id q64so2209952qkd.5 for ; Thu, 02 Dec 2021 20:10:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20210112.gappssmtp.com; s=20210112; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=G03Bg9mTbcDJu1/QL9hBZCtHuqV9yBXy6ux9CJibey4=; b=bsEwGmmgf3txjglpzc5YaAeR4W/oyU1/zOUTXDpJEiYetY7SY62/raSqON9gmUIUlO pIaF83D6yBL+YIf0k+fPrwFiu8RGvAo9fMnqsVFfdTvuMwuJ1/n9yaFkOzCknc/grbD8 wFd/iCeaO512Wvko11rRHcQLa0Pc4A5MNi2YgGkQDnXt+aAc6t5yPLAQn6IIJIyAXGPD oLNY7r0mElPAYns97rN9VRcQV/S7mJXlIf7lk2bdLQ9dDY3XzKOR7AzRTRM4yGGe64DE bLbuRcFFeitDq7MPircuDFOirWW7a8MgSPiBfhBWZccsijmvYUJFZDWN2NDw0Fkkt6uz U6eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=G03Bg9mTbcDJu1/QL9hBZCtHuqV9yBXy6ux9CJibey4=; b=UGQTS0JEWoBoNmc6ua57ODQ8/vXGXV4DwhBo6byRWaFyiZu3Kwl2DDLLknsIFxahNt 85EcFN9L5SOV23OhzAjNwZ98J5PJkGGqtmxFcRi/vHBXrQgLPc7Pg01+1t15lKbe5C24 Rxu8WQykCOla0PxCH6gzZEHT2J/MW5ugbdtk6Oe/9DqRsJqeR0Ez9JjyuWDYKgcdOD8K VJodz+XaWkQQUAnmMVE9pQbpt/Syf01b5jmY9M90ckJtR+cddgFk/9wlQLbQvGpG03Um xoRCYT5WCaCIlAbjGtOdoolA2uA6MLmqJVQuZPC2YFbr8lgOpgyH44n8z3XIQSkcFEkl eb7A== X-Gm-Message-State: AOAM533z+mwX0x90k+l7ihhsm9l7+Yd+/+8HneCR2qqet4m6WpA7dRWB BZKmRqyY0HfmM59A108OLVtt2w== X-Google-Smtp-Source: ABdhPJy3lE+zu/WVZLgfUkQvuqOJwbFKWmqUTJpWqvRPMzY5LH3zWKkSuJbd0Fpv/Y2ZoYYy7lCd0Q== X-Received: by 2002:a05:620a:f07:: with SMTP id v7mr15253259qkl.289.1638504601624; Thu, 02 Dec 2021 20:10:01 -0800 (PST) Received: from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id h3sm1456297qko.78.2021.12.02.20.10.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Dec 2021 20:10:01 -0800 (PST) Message-ID: Subject: Re: [EXT] Re: [PATCH v12 00/13] amphion video decoder/encoder driver From: Nicolas Dufresne To: Ming Qian , "mchehab@kernel.org" , "shawnguo@kernel.org" , "robh+dt@kernel.org" , "s.hauer@pengutronix.de" Cc: "hverkuil-cisco@xs4all.nl" , "kernel@pengutronix.de" , "festevam@gmail.com" , dl-linux-imx , Aisheng Dong , "linux-media@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Date: Thu, 02 Dec 2021 23:09:59 -0500 In-Reply-To: References: <9947131322e034bb6336802e5afb4b6132ca5071.camel@ndufresne.ca> <9b7fd6802c89c5d3bb6a42b44f13a90f6c3caf22.camel@ndufresne.ca> <0deb3fa15dd162d7c7b6dbe24821fdf9523dddd3.camel@ndufresne.ca> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.1 (3.42.1-1.fc35) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le vendredi 26 novembre 2021 à 06:31 +0000, Ming Qian a écrit : > > -----Original Message----- > > From: Nicolas Dufresne [mailto:nicolas@ndufresne.ca] > > Sent: Thursday, November 25, 2021 11:36 PM > > To: Ming Qian ; mchehab@kernel.org; > > shawnguo@kernel.org; robh+dt@kernel.org; s.hauer@pengutronix.de > > Cc: hverkuil-cisco@xs4all.nl; kernel@pengutronix.de; festevam@gmail.com; > > dl-linux-imx ; Aisheng Dong ; > > linux-media@vger.kernel.org; linux-kernel@vger.kernel.org; > > devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org > > Subject: Re: [EXT] Re: [PATCH v12 00/13] amphion video decoder/encoder > > driver > > > > Caution: EXT Email > > > > Le jeudi 25 novembre 2021 à 05:25 +0000, Ming Qian a écrit : > > > For test [JCT-VC-HEVC_V1] (GStreamer-H.265-V4L2-Gst1.0) > > > VPSSPSPPS_A_MainConcept_1, The vpu report an unsupported message to > > driver, so driver report pollerr to gstreamer. > > > But this stream can be decoded using the amphion vpu when I test it > > > using our unit test, I checked the difference, there are many vps, sps > > > and pps at the beginning, gstreamer will skip the first vpu and two > > > pps, totally skip 56 bytes. It leds to vpu can't decode And our unit test > > > won't > > skip anthing, so the vpu can decode the stream. > > > > This specific test triggers a bug in GStreamer HEVC parser, I'm aware of > > this > > one, and it is on my todo to fix (just not as trivial as it looks like, the > > VCL nal > > detection code was implemented wrong and that ended up leaking into the > > rest of the design). This specific test will of course be marked and skipped > > for CI > > test that uses GStreamer. > > > > regards, > > Nicolas > > Hi Nicolas, > >     For the h264 decoder test, If I test with our unit test tool, the result > is 124/135 tests successfully, > But only 75/135 tests successfully when test using gstreamer. >     There are 49 tests with different results, and all of the 49 test streams > are interlaced stream. > The amphion vpu will output the interlaced frame directly, it won't merge the > interlaced two parts into one progressive frame. >      And the gstreamer tiled unpack function(unpack_NV12_TILED) won't handle > the interlaced case, so the output frame is abnormal, and led to test fail. >      I think it should be a hardware limitation of the amphion vpu. And maybe If this is the case, it needs to be signaled as ALTERNATE (if you have 1 v4l2 buffer per field) or SEQ if they are stored in the same v4l2_buffer but on top of each other instead of interleaved. Some bit about this might not we all wired properly, I have only tested alternate field for capture devices (Xilinx ZinqMP). Please check the signalling of interlace field in your driver, I'll check the state of GStreamer in this regard. > the gstreamer videoconvert can handle it. > The interlaced list is as below: > [JVT-AVC_V1] cabac_mot_fld0_full > [JVT-AVC_V1] cabac_mot_mbaff0_full > [JVT-AVC_V1] cabac_mot_picaff0_full > [JVT-AVC_V1] CABREF3_Sand_D > [JVT-AVC_V1] CAFI1_SVA_C > [JVT-AVC_V1] CAMA1_Sony_C > [JVT-AVC_V1] CAMA1_TOSHIBA_B > [JVT-AVC_V1] CAMA3_Sand_E > [JVT-AVC_V1] CAMACI3_Sony_C > [JVT-AVC_V1] CAMANL1_TOSHIBA_B > [JVT-AVC_V1] CAMANL2_TOSHIBA_B > [JVT-AVC_V1] CAMANL3_Sand_E > [JVT-AVC_V1] CAMASL3_Sony_B > [JVT-AVC_V1] CAMP_MOT_MBAFF_L30 > [JVT-AVC_V1] CAMP_MOT_MBAFF_L31 > [JVT-AVC_V1] CANLMA2_Sony_C > [JVT-AVC_V1] CANLMA3_Sony_C > [JVT-AVC_V1] CAPA1_TOSHIBA_B > [JVT-AVC_V1] CAPAMA3_Sand_F > [JVT-AVC_V1] cavlc_mot_fld0_full_B > [JVT-AVC_V1] cavlc_mot_mbaff0_full_B > [JVT-AVC_V1] cavlc_mot_picaff0_full_B > [JVT-AVC_V1] CVCANLMA2_Sony_C > [JVT-AVC_V1] CVFI1_Sony_D > [JVT-AVC_V1] CVFI1_SVA_C > [JVT-AVC_V1] CVFI2_Sony_H > [JVT-AVC_V1] CVFI2_SVA_C > [JVT-AVC_V1] CVMA1_Sony_D > [JVT-AVC_V1] CVMA1_TOSHIBA_B > [JVT-AVC_V1] CVMANL1_TOSHIBA_B > [JVT-AVC_V1] CVMANL2_TOSHIBA_B > [JVT-AVC_V1] CVMAPAQP3_Sony_E > [JVT-AVC_V1] CVMAQP2_Sony_G > [JVT-AVC_V1] CVMAQP3_Sony_D > [JVT-AVC_V1] CVMP_MOT_FLD_L30_B > [JVT-AVC_V1] CVMP_MOT_FRM_L31_B > [JVT-AVC_V1] CVNLFI1_Sony_C > [JVT-AVC_V1] CVNLFI2_Sony_H > [JVT-AVC_V1] CVPA1_TOSHIBA_B > [JVT-AVC_V1] FI1_Sony_E > [JVT-AVC_V1] MR6_BT_B > [JVT-AVC_V1] MR7_BT_B > [JVT-AVC_V1] MR8_BT_B > [JVT-AVC_V1] MR9_BT_B > [JVT-AVC_V1] Sharp_MP_Field_1_B > [JVT-AVC_V1] Sharp_MP_Field_2_B > [JVT-AVC_V1] Sharp_MP_Field_3_B > [JVT-AVC_V1] Sharp_MP_PAFF_1r2 > [JVT-AVC_V1] Sharp_MP_PAFF_2r > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BFC16C433EF for ; Fri, 3 Dec 2021 04:11:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:Cc:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=q+ke4FEdzZkWmf5LX0RNLj/4t91OCw4KcjfBSfn/jyg=; b=IgXyGlEwEAmLw7 NbcFPEqlnlxySjb+DJ2orMyA4IFkwmDUJQ5QU4vaCJmBivlgcSLe+BJa5dcIAlY0HTnIHBqJyBBpY XTOwdEct4zGLjbR+kJHzVvC9VOIYEfDwBZTOTzLjswyayRdWEGYsbd83HmXzUff1zOlgDID28XF8/ RO5N1pkItoU5id1jUDiZ08TMKUVFd3b/t6EvigION24GMeWAYPbpz0rJXlmke/2H4RdLRct2SGeZB UU2Y2w7jSJa5DC0SycnKN1X2oOBuHEUVn3uSJ0haIQOw+esa7iiAF43q6GJMz/gETe2u0eAHl4z25 869ks//U7ZF42P2kt3KA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mszte-00EF50-HW; Fri, 03 Dec 2021 04:10:06 +0000 Received: from mail-qk1-x736.google.com ([2607:f8b0:4864:20::736]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1msztb-00EF4G-G6 for linux-arm-kernel@lists.infradead.org; Fri, 03 Dec 2021 04:10:04 +0000 Received: by mail-qk1-x736.google.com with SMTP id b67so2201400qkg.6 for ; Thu, 02 Dec 2021 20:10:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20210112.gappssmtp.com; s=20210112; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=G03Bg9mTbcDJu1/QL9hBZCtHuqV9yBXy6ux9CJibey4=; b=bsEwGmmgf3txjglpzc5YaAeR4W/oyU1/zOUTXDpJEiYetY7SY62/raSqON9gmUIUlO pIaF83D6yBL+YIf0k+fPrwFiu8RGvAo9fMnqsVFfdTvuMwuJ1/n9yaFkOzCknc/grbD8 wFd/iCeaO512Wvko11rRHcQLa0Pc4A5MNi2YgGkQDnXt+aAc6t5yPLAQn6IIJIyAXGPD oLNY7r0mElPAYns97rN9VRcQV/S7mJXlIf7lk2bdLQ9dDY3XzKOR7AzRTRM4yGGe64DE bLbuRcFFeitDq7MPircuDFOirWW7a8MgSPiBfhBWZccsijmvYUJFZDWN2NDw0Fkkt6uz U6eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=G03Bg9mTbcDJu1/QL9hBZCtHuqV9yBXy6ux9CJibey4=; b=joFW3/Dkvnpfw+AgzfXLPmB+zDR5BVhScuNFfro3JX1vnfmXgHOPowqU2yTjRaqQCL 5QeA9tcf/QOWRGFqgC4n1ud8VEP9gHkJTg8gXnEpKn1qYvu4VKYs2A7vlLpRypyog664 g8jibFw2KMqxYaWbOsHj5fYvqlRYDN6m3fG16YhfbaHXIcxuLjwVqrhMaOp9OCJWEVm8 QXov4i99aMH9z/MKiaDB4Wvn9ET+8OwYrb5+9ClYPXD+cKtvB6Pr36lVjz2ySBt/8h8O r7rkZL1XCE/cTrhpxIoVG1A5iZPIHqaxhUVliMDRCaIXluadtv/8lxW/ldyR8VJo0zpi GQLA== X-Gm-Message-State: AOAM531rH1JtH/cLFgqUZRcqDn2fZr5tGNpgpNonuR+y/87h7ujym/vl JTKav8a0dBzZ/b7cldOvqhRaUw== X-Google-Smtp-Source: ABdhPJy3lE+zu/WVZLgfUkQvuqOJwbFKWmqUTJpWqvRPMzY5LH3zWKkSuJbd0Fpv/Y2ZoYYy7lCd0Q== X-Received: by 2002:a05:620a:f07:: with SMTP id v7mr15253259qkl.289.1638504601624; Thu, 02 Dec 2021 20:10:01 -0800 (PST) Received: from nicolas-tpx395.localdomain (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id h3sm1456297qko.78.2021.12.02.20.10.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Dec 2021 20:10:01 -0800 (PST) Message-ID: Subject: Re: [EXT] Re: [PATCH v12 00/13] amphion video decoder/encoder driver From: Nicolas Dufresne To: Ming Qian , "mchehab@kernel.org" , "shawnguo@kernel.org" , "robh+dt@kernel.org" , "s.hauer@pengutronix.de" Cc: "hverkuil-cisco@xs4all.nl" , "kernel@pengutronix.de" , "festevam@gmail.com" , dl-linux-imx , Aisheng Dong , "linux-media@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Date: Thu, 02 Dec 2021 23:09:59 -0500 In-Reply-To: References: <9947131322e034bb6336802e5afb4b6132ca5071.camel@ndufresne.ca> <9b7fd6802c89c5d3bb6a42b44f13a90f6c3caf22.camel@ndufresne.ca> <0deb3fa15dd162d7c7b6dbe24821fdf9523dddd3.camel@ndufresne.ca> User-Agent: Evolution 3.42.1 (3.42.1-1.fc35) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211202_201003_570624_EC789C0F X-CRM114-Status: GOOD ( 26.82 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org TGUgdmVuZHJlZGkgMjYgbm92ZW1icmUgMjAyMSDDoCAwNjozMSArMDAwMCwgTWluZyBRaWFuIGEg w6ljcml0wqA6Cj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gRnJvbTogTmljb2xh cyBEdWZyZXNuZSBbbWFpbHRvOm5pY29sYXNAbmR1ZnJlc25lLmNhXQo+ID4gU2VudDogVGh1cnNk YXksIE5vdmVtYmVyIDI1LCAyMDIxIDExOjM2IFBNCj4gPiBUbzogTWluZyBRaWFuIDxtaW5nLnFp YW5AbnhwLmNvbT47IG1jaGVoYWJAa2VybmVsLm9yZzsKPiA+IHNoYXduZ3VvQGtlcm5lbC5vcmc7 IHJvYmgrZHRAa2VybmVsLm9yZzsgcy5oYXVlckBwZW5ndXRyb25peC5kZQo+ID4gQ2M6IGh2ZXJr dWlsLWNpc2NvQHhzNGFsbC5ubDsga2VybmVsQHBlbmd1dHJvbml4LmRlOyBmZXN0ZXZhbUBnbWFp bC5jb207Cj4gPiBkbC1saW51eC1pbXggPGxpbnV4LWlteEBueHAuY29tPjsgQWlzaGVuZyBEb25n IDxhaXNoZW5nLmRvbmdAbnhwLmNvbT47Cj4gPiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmc7 IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7Cj4gPiBkZXZpY2V0cmVlQHZnZXIua2VybmVs Lm9yZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCj4gPiBTdWJqZWN0OiBS ZTogW0VYVF0gUmU6IFtQQVRDSCB2MTIgMDAvMTNdIGFtcGhpb24gdmlkZW8gZGVjb2Rlci9lbmNv ZGVyCj4gPiBkcml2ZXIKPiA+IAo+ID4gQ2F1dGlvbjogRVhUIEVtYWlsCj4gPiAKPiA+IExlIGpl dWRpIDI1IG5vdmVtYnJlIDIwMjEgw6AgMDU6MjUgKzAwMDAsIE1pbmcgUWlhbiBhIMOpY3JpdCA6 Cj4gPiA+IEZvciB0ZXN0IFtKQ1QtVkMtSEVWQ19WMV0gKEdTdHJlYW1lci1ILjI2NS1WNEwyLUdz dDEuMCkKPiA+ID4gVlBTU1BTUFBTX0FfTWFpbkNvbmNlcHRfMSwgVGhlIHZwdSByZXBvcnQgYW4g dW5zdXBwb3J0ZWQgbWVzc2FnZSB0bwo+ID4gZHJpdmVyLCBzbyBkcml2ZXIgcmVwb3J0IHBvbGxl cnIgdG8gZ3N0cmVhbWVyLgo+ID4gPiBCdXQgdGhpcyBzdHJlYW0gY2FuIGJlIGRlY29kZWQgdXNp bmcgdGhlIGFtcGhpb24gdnB1IHdoZW4gSSB0ZXN0IGl0Cj4gPiA+IHVzaW5nIG91ciB1bml0IHRl c3QsIEkgY2hlY2tlZCB0aGUgZGlmZmVyZW5jZSwgdGhlcmUgYXJlIG1hbnkgdnBzLCBzcHMKPiA+ ID4gYW5kIHBwcyBhdCB0aGUgYmVnaW5uaW5nLCBnc3RyZWFtZXIgd2lsbCBza2lwIHRoZSBmaXJz dCB2cHUgYW5kIHR3bwo+ID4gPiBwcHMsIHRvdGFsbHkgc2tpcCA1NiBieXRlcy4gSXQgbGVkcyB0 byB2cHUgY2FuJ3QgZGVjb2RlIEFuZCBvdXIgdW5pdCB0ZXN0Cj4gPiA+IHdvbid0Cj4gPiBza2lw IGFudGhpbmcsIHNvIHRoZSB2cHUgY2FuIGRlY29kZSB0aGUgc3RyZWFtLgo+ID4gCj4gPiBUaGlz IHNwZWNpZmljIHRlc3QgdHJpZ2dlcnMgYSBidWcgaW4gR1N0cmVhbWVyIEhFVkMgcGFyc2VyLCBJ J20gYXdhcmUgb2YKPiA+IHRoaXMKPiA+IG9uZSwgYW5kIGl0IGlzIG9uIG15IHRvZG8gdG8gZml4 IChqdXN0IG5vdCBhcyB0cml2aWFsIGFzIGl0IGxvb2tzIGxpa2UsIHRoZQo+ID4gVkNMIG5hbAo+ ID4gZGV0ZWN0aW9uIGNvZGUgd2FzIGltcGxlbWVudGVkIHdyb25nIGFuZCB0aGF0IGVuZGVkIHVw IGxlYWtpbmcgaW50byB0aGUKPiA+IHJlc3Qgb2YgdGhlIGRlc2lnbikuIFRoaXMgc3BlY2lmaWMg dGVzdCB3aWxsIG9mIGNvdXJzZSBiZSBtYXJrZWQgYW5kIHNraXBwZWQKPiA+IGZvciBDSQo+ID4g dGVzdCB0aGF0IHVzZXMgR1N0cmVhbWVyLgo+ID4gCj4gPiByZWdhcmRzLAo+ID4gTmljb2xhcwo+ IAo+IEhpIE5pY29sYXMsCj4gCj4gwqDCoMKgwqBGb3IgdGhlIGgyNjQgZGVjb2RlciB0ZXN0LCBJ ZiBJIHRlc3Qgd2l0aCBvdXIgdW5pdCB0ZXN0IHRvb2wsIHRoZSByZXN1bHQKPiBpcyAxMjQvMTM1 IHRlc3RzIHN1Y2Nlc3NmdWxseSwKPiBCdXQgb25seSA3NS8xMzUgdGVzdHMgc3VjY2Vzc2Z1bGx5 IHdoZW4gdGVzdCB1c2luZyBnc3RyZWFtZXIuCj4gwqDCoMKgwqBUaGVyZSBhcmUgNDkgdGVzdHMg d2l0aCBkaWZmZXJlbnQgcmVzdWx0cywgYW5kIGFsbCBvZiB0aGUgNDkgdGVzdCBzdHJlYW1zCj4g YXJlIGludGVybGFjZWQgc3RyZWFtLgo+IFRoZSBhbXBoaW9uIHZwdSB3aWxsIG91dHB1dCB0aGUg aW50ZXJsYWNlZCBmcmFtZSBkaXJlY3RseSwgaXQgd29uJ3QgbWVyZ2UgdGhlCj4gaW50ZXJsYWNl ZCB0d28gcGFydHMgaW50byBvbmUgcHJvZ3Jlc3NpdmUgZnJhbWUuCj4gwqDCoMKgwqDCoEFuZCB0 aGUgZ3N0cmVhbWVyIHRpbGVkIHVucGFjayBmdW5jdGlvbih1bnBhY2tfTlYxMl9USUxFRCkgd29u J3QgaGFuZGxlCj4gdGhlIGludGVybGFjZWQgY2FzZSwgc28gdGhlIG91dHB1dCBmcmFtZSBpcyBh Ym5vcm1hbCwgYW5kIGxlZCB0byB0ZXN0IGZhaWwuCj4gwqDCoMKgwqDCoEkgdGhpbmsgaXQgc2hv dWxkIGJlIGEgaGFyZHdhcmUgbGltaXRhdGlvbiBvZiB0aGUgYW1waGlvbiB2cHUuIEFuZCBtYXli ZQoKSWYgdGhpcyBpcyB0aGUgY2FzZSwgaXQgbmVlZHMgdG8gYmUgc2lnbmFsZWQgYXMgQUxURVJO QVRFIChpZiB5b3UgaGF2ZSAxIHY0bDIKYnVmZmVyIHBlciBmaWVsZCkgb3IgU0VRIGlmIHRoZXkg YXJlIHN0b3JlZCBpbiB0aGUgc2FtZSB2NGwyX2J1ZmZlciBidXQgb24gdG9wCm9mIGVhY2ggb3Ro ZXIgaW5zdGVhZCBvZiBpbnRlcmxlYXZlZC4KClNvbWUgYml0IGFib3V0IHRoaXMgbWlnaHQgbm90 IHdlIGFsbCB3aXJlZCBwcm9wZXJseSwgSSBoYXZlIG9ubHkgdGVzdGVkCmFsdGVybmF0ZSBmaWVs ZCBmb3IgY2FwdHVyZSBkZXZpY2VzIChYaWxpbnggWmlucU1QKS4gUGxlYXNlIGNoZWNrIHRoZSBz aWduYWxsaW5nCm9mIGludGVybGFjZSBmaWVsZCBpbiB5b3VyIGRyaXZlciwgSSdsbCBjaGVjayB0 aGUgc3RhdGUgb2YgR1N0cmVhbWVyIGluIHRoaXMKcmVnYXJkLgoKPiB0aGUgZ3N0cmVhbWVyIHZp ZGVvY29udmVydCBjYW4gaGFuZGxlIGl0Lgo+IFRoZSBpbnRlcmxhY2VkIGxpc3QgaXMgYXMgYmVs b3c6Cj4gW0pWVC1BVkNfVjFdIGNhYmFjX21vdF9mbGQwX2Z1bGwKPiBbSlZULUFWQ19WMV0gY2Fi YWNfbW90X21iYWZmMF9mdWxsCj4gW0pWVC1BVkNfVjFdIGNhYmFjX21vdF9waWNhZmYwX2Z1bGwK PiBbSlZULUFWQ19WMV0gQ0FCUkVGM19TYW5kX0QKPiBbSlZULUFWQ19WMV0gQ0FGSTFfU1ZBX0MK PiBbSlZULUFWQ19WMV0gQ0FNQTFfU29ueV9DCj4gW0pWVC1BVkNfVjFdIENBTUExX1RPU0hJQkFf Qgo+IFtKVlQtQVZDX1YxXSBDQU1BM19TYW5kX0UKPiBbSlZULUFWQ19WMV0gQ0FNQUNJM19Tb255 X0MKPiBbSlZULUFWQ19WMV0gQ0FNQU5MMV9UT1NISUJBX0IKPiBbSlZULUFWQ19WMV0gQ0FNQU5M Ml9UT1NISUJBX0IKPiBbSlZULUFWQ19WMV0gQ0FNQU5MM19TYW5kX0UKPiBbSlZULUFWQ19WMV0g Q0FNQVNMM19Tb255X0IKPiBbSlZULUFWQ19WMV0gQ0FNUF9NT1RfTUJBRkZfTDMwCj4gW0pWVC1B VkNfVjFdIENBTVBfTU9UX01CQUZGX0wzMQo+IFtKVlQtQVZDX1YxXSBDQU5MTUEyX1NvbnlfQwo+ IFtKVlQtQVZDX1YxXSBDQU5MTUEzX1NvbnlfQwo+IFtKVlQtQVZDX1YxXSBDQVBBMV9UT1NISUJB X0IKPiBbSlZULUFWQ19WMV0gQ0FQQU1BM19TYW5kX0YKPiBbSlZULUFWQ19WMV0gY2F2bGNfbW90 X2ZsZDBfZnVsbF9CCj4gW0pWVC1BVkNfVjFdIGNhdmxjX21vdF9tYmFmZjBfZnVsbF9CCj4gW0pW VC1BVkNfVjFdIGNhdmxjX21vdF9waWNhZmYwX2Z1bGxfQgo+IFtKVlQtQVZDX1YxXSBDVkNBTkxN QTJfU29ueV9DCj4gW0pWVC1BVkNfVjFdIENWRkkxX1NvbnlfRAo+IFtKVlQtQVZDX1YxXSBDVkZJ MV9TVkFfQwo+IFtKVlQtQVZDX1YxXSBDVkZJMl9Tb255X0gKPiBbSlZULUFWQ19WMV0gQ1ZGSTJf U1ZBX0MKPiBbSlZULUFWQ19WMV0gQ1ZNQTFfU29ueV9ECj4gW0pWVC1BVkNfVjFdIENWTUExX1RP U0hJQkFfQgo+IFtKVlQtQVZDX1YxXSBDVk1BTkwxX1RPU0hJQkFfQgo+IFtKVlQtQVZDX1YxXSBD Vk1BTkwyX1RPU0hJQkFfQgo+IFtKVlQtQVZDX1YxXSBDVk1BUEFRUDNfU29ueV9FCj4gW0pWVC1B VkNfVjFdIENWTUFRUDJfU29ueV9HCj4gW0pWVC1BVkNfVjFdIENWTUFRUDNfU29ueV9ECj4gW0pW VC1BVkNfVjFdIENWTVBfTU9UX0ZMRF9MMzBfQgo+IFtKVlQtQVZDX1YxXSBDVk1QX01PVF9GUk1f TDMxX0IKPiBbSlZULUFWQ19WMV0gQ1ZOTEZJMV9Tb255X0MKPiBbSlZULUFWQ19WMV0gQ1ZOTEZJ Ml9Tb255X0gKPiBbSlZULUFWQ19WMV0gQ1ZQQTFfVE9TSElCQV9CCj4gW0pWVC1BVkNfVjFdIEZJ MV9Tb255X0UKPiBbSlZULUFWQ19WMV0gTVI2X0JUX0IKPiBbSlZULUFWQ19WMV0gTVI3X0JUX0IK PiBbSlZULUFWQ19WMV0gTVI4X0JUX0IKPiBbSlZULUFWQ19WMV0gTVI5X0JUX0IKPiBbSlZULUFW Q19WMV0gU2hhcnBfTVBfRmllbGRfMV9CCj4gW0pWVC1BVkNfVjFdIFNoYXJwX01QX0ZpZWxkXzJf Qgo+IFtKVlQtQVZDX1YxXSBTaGFycF9NUF9GaWVsZF8zX0IKPiBbSlZULUFWQ19WMV0gU2hhcnBf TVBfUEFGRl8xcjIKPiBbSlZULUFWQ19WMV0gU2hhcnBfTVBfUEFGRl8ycgo+IAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwg bWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK